Khóa luận Phân tích hệ thám mã Vigenere

ĐẠI HC QUC GIA HÀ NI  
TRƯỜNG ĐẠI HC CÔNG NGHỆ  
Trnh ThDu  
PHÂN TÍCH HTHÁM MÃ VIGENERE  
KHOÁ LUN TT NGHIP ĐẠI HC HCHÍNH QUY  
Ngành: Công NghThông Tin  
HÀ NI - 2009  
ĐẠI HC QUC GIA HÀ NI  
TRƯỜNG ĐẠI HC CÔNG NGHỆ  
Trnh ThDu  
PHÂN TÍCH HTHÁM MÃ VIGENERE  
KHOÁ LUN TT NGHIP ĐẠI HC HCHÍNH QUY  
Ngành: Công nghthông tin  
Cán bhướng dn:Tiến sĩ.HVăn Canh  
HÀ NI - 2009  
ii  
LI CM ƠN  
Sau thi gian hc tp ti trường bng snlc ca bn thân cùng vi schbo dy  
dtn tình ca các thy cô trong trường Đại hc công nghnói chung và các thy cô  
trong Khoa nói riêng em đã tích luỹ được nhiu kiến thc bích trang bcho công vic  
ca mt cnhân tương lai.  
Lun văn tt nghip là kết quca scgng trong sut 4 năm hc tp và tìm hiu  
kiến thc ti trường , đó là sự đánh giá tng kết công tác hc tp trong sut thi gian qua  
ca mi sinh viên. Trong thi gian lun văn tt nghip này em đã được sgiúp đỡ nhit  
tình ca các thy cô giáo trong bmôn. Em xin gi li cm ơn sâu sc ti các thy cô  
nhng người đã trang bcho chúng em hành trang kiến thc, đặc bit thy: HVăn Canh  
đã tn tình giúp em hoàn thành lun văn.  
Do thi gian tiến hành làm lun văn và trình độ lý thuyết cũng như các kinh nghim  
thc tế còn có hn nên trong lun văn này chc chn skhông tránh khi nhng thiếu sót .  
Em xin kính mong các thy cô chbo để em có thhoàn thin hơn lun văn cũng như  
kiến thc chuyên môn ca mình.  
Em xin chân thành cm ơn !  
Hà Ni, tháng 05 năm 2009.  
Sinh viên : Trnh ThDu.  
iii  
TÓM TT NI DUNG  
Ni dung ca khóa lun là tìm hiu vhmã hóa Vigenere ni tiếng, nó được phát minh  
vào thế kth16 và được viết đầu tiên bi nhà ngoi giao Pháp Blaise de Vigenère.  
Trước hết ta đi tìm hiu vmt vài hmã hóa cổ đin như hmã hóa truyn thng mã  
thay thế, mã dch chuyn, mã affine, mã caesar, (hay chúng còn được gi là hmã hóa  
đơn biu). Đặc bit đi sâu vào tìm hiu hmã hóa Vigenere (hmã hóa đa biu) để làm rõ  
hơn độ an toàn ca hmt mã này so vi các hmt mã trên. Đồng thi, làm rõ thêm tính  
cht ca hmã hóa Vigenere và cách thc mã hóa và thám mã khi có khóa cho trước.  
Trong đó, đi nghiên cu vtn số đơn, tn số đôi, tn sba và cstrùng lp trong bn  
rõ và bn mã. Đó cũng là mt cách thám mã hiu qu. Cách phá mã khi không có khóa  
cho trước, khi đó ta cn thc hin 2 bước: đầu tiên là tìm chu kkhóa, sau đó thám mã,  
trong đó sdng hai cách là thám mã ni tiếng là ca Kasiski và dùng chstrùng khp.  
Cui cùng là chương trình mô tvtoàn bcách mã hóa, thám mã khi có khóa và khi  
không có khóa.( Là chương trình đính kèm theo Vigenere.c).  
iv  
MC LC  
Li mở đầu................................................................................................................1  
Chương 1: Hmt mã truyn thng ......................................................................4  
1.1 Mở đầu – mt shmã hóa đơn gin.............................................................................. 4  
1.1.1 Định nghĩa vhmt mã ....................................................................................4  
1.1.2.Mt sloi mã hóa truyn thng như ..................................................................5  
1.2. Mã Vigenere và các đặc tính ca nó ............................................................................. 11  
1.2.1 Định nghĩa..........................................................................................................11  
1.2.2 Tính cht.............................................................................................................12  
1.3.Phương pháp mã hóa và gii mã Vigenere(khi có khóa cho trước)........................... 13  
1.3.1 Mã hóa................................................................................................................13  
1.3.2 Gii mã...............................................................................................................15  
1.3.3 Chương trình mã hóa .................................................................................................... 15  
1.3.4 Kết lun........................................................................................................................... 16  
Chương 2: Phân tích trong trường hp không có khóa cho trước ...................17  
2.1 Nhng đặc trưng thng kê ca bn rõ: Tn số đơn, bộ đôi, trùng lp ....................... 17  
2.1.1 Tn sut ca 1 ký t...........................................................................................17  
2.1.2 Tn sut bộ đôi phbiến nht xut hin trong tiếng Anh..................................18  
2.1.3 Nhng bba phbiến nht................................................................................19  
2.2 Nhng đặc trưng thng kê ca bn mã: Tn số đơn, bộ đôi, trùng lp...................... 20  
2.3. Thng kê ca bn mã được mã bi khóa gingu nhiên, không có chu k............ 27  
2.3.1 Lý thuyết trùng khp(coincident theory)...........................................................27  
v
2.4 Mô t2 cách thám mã Vigenere.................................................................................... 31  
2.4.1 Phép thKasiski ................................................................................................31  
2.4.2 Vic xác minh tiếp cho giá trca m có thnhn được bng chstrùng hp.33  
Chương 3: Thc hành phân tích mt bn mã Vigenere.....................................34  
3.1 Thvi phép thKasiski ................................................................................................ 34  
3.2 Tính theo chstrùng hp............................................................................................... 34  
Chương 4 Kết Lun và mô tchương trình ngun ............................................40  
4.1 Mô tchương trình........................................................................................................... 40  
4.2 Kết lun.............................................................................................................................. 40  
Các thut ng..........................................................................................................41  
Danh sách tham kho .............................................................................................42  
vi  
Li mở đầu  
Ngày nay, vi sphát trin mnh mca công nghthông tin vic ng dng các  
công nghmng máy tính trnên vô cùng phcp và cn thiết. Sra đời và tiến bvượt  
bc ca nó là bước ngot trong lch sphát trin ca xã hi, đưa thế gii tknguyên  
công nghip sang knguyên thông tin và phát trin kinh tế tri thc. Công nghmng máy  
tính đã mang li nhng li ích to ln. Chúng được áp dng trong hu hết các công vic  
trong mi lĩnh vc như : chính tr, quân s, quc phòng…  
Sxut hin mng Internet cho phép mi người có thtruy cp, chia svà khai thác  
thông tin mt cách ddàng và hiu qu. Các công nghE-mail cho phép mi người có thể  
gi thư cho người khác cũng như nhn thư ngay trên máy tính ca mình. Gn đây có công  
nghE-business cho phép thc hin các hot động thương mi trên mng máy tính. Vic  
ng dng các mng cc btrong các tchc, công ty hay trong mt quc gia là rt phong  
phú. Các hthng chuyn tin ca các ngân hàng hàng ngày có thchuyn hàng tỷ đôla  
qua hthng ca mình. Các thông tin vkinh tế, chính tr, khoa hc xã hi được trao đổi  
rông rãi.  
Tuy nhiên li ny sinh vn đề van toàn thông tin. Đó cùng là mt quá trình tiến  
trin hp logic: khi nhng vui thích ban đầu vmt siêu xa lthông tin, bn nht định  
nhn thy rng không chcho phép bn truy nhp vào nhiu nơi trên thế gii, Internet còn  
cho phép nhiu người không mi mà tý ghé thăm máy tính ca bn.  
Thc vy, Internet có nhng kthut tuyt vi cho phép mi người truy nhp, khai  
thác, chia sthông tin. Nhng nó cũng là nguy cơ chính dn đến thông tin ca bn bhư  
hng hoc phá huhoàn toàn.  
Có nhng thông tin vô cùng quan trng mà vic bmt hay blàm sai lch có thể  
nh hưởng đến các tchc, các công ty hay cmt quc gia. Các thông tin van ninh  
quc gia, bí mt kinh doanh hay các thông tin tài chính là mc tiêu ca các tchc tình  
báo nước ngoài vchính trhay công nghip hoc kcp nói chung. Bn chúng có thể  
làm mi vic có thể để được nhng thông tin quý giá này. Thtưởng tượng nếu có kẻ  
xâm nhp được vào hthng chuyn tin ca các ngân hàng thì ngân hàng đó schu  
1
nhng thit hi to ln như mt tin có thdn ti bphá sn. Chưa knếu hthông thông  
tin an ninh quc gia bị đe dothì hu qukhông thlường trước được.  
[9]Theo sliu ca CERT(Computer Emegency Response Team - “Đội cp cu  
máy tính”), slượng các vtn công trên Internet được thông báo cho tchc này là ít  
hơn 200 vào năm 1989, khong 400 vào năm 1991, 1400 vào năm 1993, và 2241 vào năm  
1994. Nhng vtn công này nhm vào tt ccác máy tính có mt trên Internet, các máy  
tính ca tt ccác công ty ln như AT&T, IBM, các trường đại hc, các cơ quan nhà  
nước, các tchc quân s, nhà băng... Mt svtn công có quy mô khng l(có ti  
100.000 máy tính btn công). Hơn na, nhng con snày chlà phn ni ca tng băng.  
Mt phn rt ln các vtn công không được thông báo, vì nhiu lý do, trong đó có thể  
kể đến ni lo bmt uy tín, hoc đơn gin nhng người qun trhthng không hhay  
biết nhng cuc tn công nhm vào hthng ca h.  
Không chslượng các cuc tn công tăng lên nhanh chóng, mà các phương pháp  
tn công cũng liên tc được hoàn thin. Điu đó mt phn do các nhân viên qun trhệ  
thng được kết ni vi Internet ngày càng đề cao cnh giác. Cũng theo CERT, nhng  
cuc tn công thi k1988-1989 chyếu đoán tên người sdng-mt khu (UserID-  
password) hoc sdng mt sli ca các chương trình và hệ điu hành (security hole)  
làm vô hiu hthng bo v, tuy nhiên các cuc tn công vào thi gian gn đây bao gm  
ccác thao tác như gimo địa chIP, theo dõi thông tin truyn qua mng, chiếm các  
phiên làm vic txa (telnet hoc rlogin).  
Để va bo đảm tính bo mt ca thông tin li không làm gim sphát trin ca  
vic trao đổi thông tin qung bá trên toàn cu thì mt gii pháp tt nht là mã hoá thông  
tin. Có thhiu sơ lược mã hoá thông tin là che đi thông tin ca mình làm cho ktn công  
nếu chn được thông báo trên đường truyn thì cũng không thể đọc được và phi có mt  
giao thc gia người gi và người nhn để có thtrao đổi thông tin, đó là các cơ chế mã  
và gii mã thông tin.  
Ngày nay thì vic mã hoá đã trnên phcp. Các công ty phn mm ln trên thế  
gii đều có nghiên cu và xây dng các công c, thut toán mã hoá để áp dng cho thc  
tế. Mi quc gia hay tchc đều có nhng cơ chế mã hoá riêng để bo vhthng thông  
tin ca mình.  
Mt svn đề an toàn đối vi nhiu mng hin nay:  
2
Mt người dùng chuyn mt thông báo đin tcho mt người sdng khác. Mt  
bên thba trên cùng mng LAN này sdng mt thiết bnghe trm gói để ly thông báo  
đọc các thông tin trong đó.  
Cũng trong tình hung trên bên thba chn thông báo, thay đổi các thành phn ca  
nó và sau đó li gi cho người nhn. Người nhn không hnghi nggì trkhi nhn ra  
thông báo đó là vô lý, và có ththc hin vài hành động da trên các thành phn sai này  
đem li li ích cho bên thba.  
Người dùng log vào mt server mà không sdng mt khu được mã hoá. Mt  
người khác đang nge trm trên đường truyn và bt được mt khu logon ca người dùng,  
sau đó có thtruy nhp thông tin trên server như người sdng.  
Mt người qun trhthng không hiu vkhía cnh an toàn và yêu cu ca hệ  
thng và vô tình cho phép người dùng khác truy nhp vào thư mc cha các thông tin hệ  
thng. Người dùng phát hin ra hcó thđược các thông tin hthng và có thdùng  
nó phc vcho li ích ca mình. Tht tai hi nếu các vn đề trên xy ra, nó có thể ảnh  
hưởng không chli ích cá nhân mà còn nh hưởng ti li ích ca tp đoàn, có khi là  
quc gia.  
Vy nên vn đề bo mt thông tin ngày càng trlên cn thiết và được sdng rt  
nhiu trong các công ty, tp đoàn, ban b…Vì đó các hmã hóa mang li li ích rt ln  
đóng vai trò không ththiếu trong đời sng công nghthông tin.  
Trong tài liu này, tôi xin gii thiu vi các bn mt shmã hóa như: Caesar, mã  
thay thế, mã dch vòng…và đặc bit hvhmã hóa Vigenere ni tiếng. Hmã hóa này  
được phát minh vào thế kth16 và được viết đầu tiên bi nhà ngoi giao Pháp Blaise de  
Vigenère và là mt kiu ca mã hóa thay thế được xem xét là chưa tng bphá vtrong  
sut 4 thế kvà nó được sdng phbiến rng rãi cho vic mã hóa nhng dliu được  
truyn qua hthng đin tín trong sut thế k19.  
3
Chương 1: Hmt mã truyn thng  
1.1 Mở đầu – mt shmã hóa đơn gin:  
Trong thc tế, gisbên A mun liên lc vi B thương lượng mt vn đề bí mt  
nào đó( ví dnhư: hp đồng, bu c, thông đip bí mt …) trên mt kênh mt an toàn sao  
cho C(ktrm) không thhiu được thông tin được truyn đi gia hai người là gì, để  
tránh tình trng nghe nén và ăn trm thông tin quan trng. Kênh liên lc này có thlà mt  
đường dây đin thoi hay mt mng máy tính. Đối tượng cơ bn ca mt mã chính là khả  
năng to ra các kênh liên lc đó. Thông tin mà bên A và B mun gi cho nhau có thlà  
nhng tài liu liên quan đến bt kmt vn đề được thhin bng mt văn bn tiếng  
Anh, các dliu bng shay bt ctài liu nào có cu trúc tùy ý. A stìm cách làm thế  
nào đó để gi an toàn cho bên B mt cách an toàn nht, vy nên, bên A smã hóa tài liu  
đó (bn rõ) bng mt khóa được xác định trước và gi bn mã kết qutrên kênh. Bên C  
có bn mã thu trm được trên kênh song không thxác định ni dung ca bn rõ, nhưng  
B( người đã biết khóa mã) có thgii mã và thu được bn rõ. Đó là mc đích ca mt mã-  
đảm bo an toàn thông tin.  
1.1.1 Định nghĩa vhmt mã [1]:  
Hmt mã là mt bgm 5 thành phn(P,C,K,E,D) tha mãn các điu kin sau:  
-
-
-
-
P là mt tp hu hn các bn rõ có thể  
C là mt tp hu hn các bn mã có thể  
K là tp hu hn các khóa có th(không gian khóa)  
Đối vi mi k thuc K có mt quy tc mã ek : P->C và mt quy tc gii mã tương  
ng dk thuc D, dk : C->P ek :P->C, là hàm mà: dk(ek(x))=x vi mi bn rõ x P.  
Khi bên A mun gi mt tài liu (bn rõ x) đến cho bên B, bên A smã hóa bn rõ đó  
bng ek : P->C và gi đi trên đường truyn qua cho bên B, bên B nhn được sau đó sgii  
mã bng dk : C->P để thu li bn rõ ban đầu. Bên A và B sáp dng thtc sau dùng hệ  
mt khóa riêng. Trước tiên hchn mt khóa ngu nhiên K K . Điu này được thc  
hin khi họ ở cùng mt chvà không bbên C theo dõi hoc hcó mt kênh mt trong  
4
trường hp họ ở xa nhau. Sau đó gisbên A mun gi mt thông báo cho B trên mt  
kênh không mt và ta xem thông báo này là mt chui:  
x = x1,x2 ,. . .,xn  
vi snguyên b 1 nào đó. Ở đây mi kí hiu ca mi bn rõ xi P , 1 i n . Mi xi  
sẽ được mã hóa bng quy tc mã ek vi khóa K xác định trước đó. Bi vy bên A stính  
yi = ek(xi), 1 i n và chui bn mã nhn được y = y1,y2 ,. . .,y sẽ được gi trên kênh.  
Khi bên B nhn được y = y1,y2 ,. . .,y anh ta sgii mã bng hàm gii mã dk và thu được  
bn rõ gc x = x1,x2 ,. . .,xn  
1.1.2.Mt sloi mã hóa truyn thng như:  
1.1.2.1 Mã dch chuyn vòng( shift cipher):  
Định nghĩa[2]: GisP = C = K = Z26 vi 0 k 25 , định nghĩa:  
eK(x) = x +K mod 26  
và  
dK(x) = y -K mod 26  
(x,y Z26)  
Nhn xét: Trong trường hp K=3, hmt thường được gi là mã Caeser.  
Ta ssdng mã dch vòng(vi modulo 26) để mã hóa mt văn bn tiếng Anh thông  
thường bng cách thiết lp stương ng gia các kí tvà các thng dư theo modulo 26  
như sau: A 0,B 1, . . ., Z 25.  
A B  
C
2
D
3
E
4
F
5
G
6
H
7
I
J
K
L
M
0
1
8
9
10 11 12  
5
N
O
P
Q
R
S
T
U
V
W X  
Y
Z
13 14 15 16 17 18 19 20 21 22 23 24 25  
Ví d: Giskhóa cho mã dch vòng là K=11  
Bn rõ: wewillmeetatmidnight”  
Trước tiên biến đổi bn rõ thành dãy các snguyên ta có:  
Bn rõ s:  
22  
0
4
9
22  
12  
8
8
11 11 12  
13  
4
6
4
7
19  
19  
3
8
Sau đó cng 11 vào mi giá trri rút gn tng theo modulo 26, ta được:  
Bn mã s:  
7 15  
4
7
19 22 22 23 15 15  
4
4
11  
23 19 14 24 19 17 18  
Cui cùng biến đổi dãy snguyên này thành các kí tthu được bn mã:  
Bn mã ch: “HPHTWWXPPELEXTOYTRSE”  
Tương t, khi bên B mun xem bn mã này, trước tiên bên B sbiến đổi bn mã  
thành dãy các snguyên ri trừ đi giá trcho 11 (rút gn theo modulo 26) và cui cùng li  
biến đổi dãy này thành các ký t.  
Kết lun: Mã dch vòng là không an toàn vì nó có thbthám theo phương pháp vét  
cn. Do chcó 26 khóa nên ddàng thmi khóa dk có thcho ti khi nhn được bn rõ  
có ý nghĩa.  
6
1.1.2.2 Mã thay thế:  
Định nghĩa[2]: Cho P =C = Z26 . K cha mi hoán vcó thca  
26 kí hiu 0,1, . . . ,25 Vi mi phép hoán vπ K , ta định nghĩa:  
eπ(x) = π(x)  
và  
dπ(y) = π -1(y)  
Trong đó π -1 là hoán vngược π.  
Hmã hoá thay thế là hmã hoá trong đó mi ký tca bn rõ được thay thế bng  
ký tkhác trong bn mã (có thlà mt chcái, mt shoc mt ký hiu).  
Có 4 kthut thay thế sau đây:  
1. Thay thế đơn (A simple substitution cipher):  
Là htrong đó mt ký tca bn rõ được thay bng mt ký ttương ng trong bn  
mã. Mt ánh x1-1 tbn rõ ti bn mã được sdng để mã hoá toàn bthông đip.  
2. Thay thế đồng âm (A homophonic substitution cipher):  
Ging như hthng mã hoá thay thế đơn, ngoi trmt ký tca bn rõ có thể  
được ánh xti mt trong smt vài ký tca bn mã: sơ đồ ánh x1-n (one-to-many).  
Ví d, “A” có thtương ng vi 5, 13, 25, hoc 56, “B” có thtương ng vi 7, 19, 31,  
hoc 42, v.v.  
3. Thay thế đa mu t(A polyalphbetic substitution cipher):  
Được to nên tnhiu thut toán mã hoá thay thế đơn. ánh x1-1 như trong trường  
hp thay thế đơn, nhưng có ththay đổi trong phm vi mt thông đip. Ví d, có thcó  
năm thut toán mã hoá đơn khác nhau được sdng; đặc bit thut toán mã hoá đơn được  
7
sdng thay đổi theo vtrí ca mi ký ttrong bn rõ.  
4. Thay thế đa sơ đồ (A polygram substitution cipher):  
Là thut toán trong đó các khi ký tự được mã hoá theo nhóm. Đây là thut toán  
tng quát nht, cho phép thay thế các nhóm ký tca văn bn gc. Ví d, “ABA” có thể  
tương ng vi “RTQ”, “ABB” có thtương ng vi “SLL”, v.v.  
Ta xét ví dvphép hoán vngu nhiên Π to nên mt hàm mã hóa( các kí hiu ca bn  
được viết bng chthường còn các kí hiu ca bn mã là chin hoa).  
Ví d:  
a
b
c
d
e
f
g
h
I
j
k
l
m
T
X
N
Y
A
H
P
O
G
Z
Q
W
B
n
o
p
q
r
s
t
u
V
E
w
K
x
J
y
z
I
S
F
L
R
C
V
M
U
D
Như vy, eπ (a) = X, eπ (b) = N,. . . .. Hàm gii mã là phép hoán vngược. Điu này được  
thc hin bng cách viết hàng th2 lên trước ri sp xếp theo thtchcái. Ta nhn  
được:  
A
d
B
l
C
r
D
y
E
v
F
o
G
h
H
e
I
J
K
w
L
p
M
T
z
x
A
B
C
D
y
E
F
G
h
H
e
I
J
K
w
L
p
M
T
d
l
r
v
o
z
x
Bi vy, dπ (A) = d, dπ(B) = 1, . . .  
8
Kết lun: Mi khóa ca mã thay thế là mt phép hoán vca 26 ký t. Scác hoán vnày  
là 26! Là mt srt ln. Bi vy phép tìm khóa vét cn không ththc hin được, thm  
chí bng máy tính. Tuy nhiên, sau này sthy rng mã thay thế có thddàng bthám  
bng các phương pháp khác.  
1.1.2.3 Hmã hoá CAESAR:  
Hmã hoá CAESAR là mt hmã hóa thay thế đơn làm vic trên bng chcái tiếng  
Anh 26 ký t(A, B, …, Z).  
Trong hCaesar và các htương tcòn li ta sdng các stnhiên thay cho các  
ký t- đánh scác ký ttrong bng chcái theo tht:  
A
0
B
1
C
2
D
3
E
4
F
5
….  
….  
X
Y
Z
23  
24  
25  
Các phép toán shc thc hin theo modul 26. Có nghĩa là 26 đồng nht vi 0, 27 đồng  
nht vi 1, ….  
HCaesar sdng thut toán mã hóa trong đó mi ký tự được thay thế bi mt ký tự  
khác được xác định bng cách dch ký tcn mã hóa sang phi k bước theo modulo 26:  
Ek(α ) = (α + k)mod 26. Trong đó α là mt ký t, 0k 26  
Thut toán gii mã tương ng Dk là lùi li k bước trong bng chcái theo modul 26:  
Dk(α ) = (α - k)mod 26  
Không gian khóa ca hCaesar bao gm 26 số  
Ví d:  
Mã Hóa  
Plaint: “TRICH”  
Bn rõ s: 19 17 8 2 7  
Khóa: k=3  
Bn mã s: 22 20 11 5 10  
9
Bn mã chlà : “WULFK”  
Gii mã:  
Lùi li vi k=3 ta thu được bn rõ: “TRICH”  
Nhn xét: hmã hóa Caesar là hmã hóa cũ và không an toàn vì không gian khóa ca nó  
rt nh, do đó có ththám mã theo phương pháp vét cn. Khóa gii mã có thtính ngay  
đươc tkhóa mã hóa. Do chcó 26 khóa nên ta có ththln lượt các khóa cho đến khi  
tìm được khóa đúng.  
1.1.2.4. Mã Affine:  
Định nghĩa[2]:  
Cho P = C = Z26 và gis:  
P = { (a,b) Z26 × Z26 : UCLN(a,26) =1 }  
Vi K = (a,b) K , ta định nghĩa:  
eK(x) = ax +b mod 26  
và  
dK(y) = a-1(y-b) mod 26,  
x,y Z26  
Ví d: gisK=(7,3). Áp dng công thc ca hàm mã hóa:  
Ek(x) = 7x+3  
Và hàm gii mã tương ng là: dk(x)=15(y-3)=15y-19  
Bn rõ là: “Iwillwin”  
Bn s: 8 22 8 11 11 22 8 13  
Ta có:  
7 × 8 +3 mod 26 = 59 mod 26 = 7  
7 × 22 + 3 mod 26 = 157 mod 26 =1  
10  
7 × 8 +3 mod 26 = 59 mod 26 = 7  
7 × 11 +3 mod 26 = 80 mod 26 = 2  
7 × 11 + 3 mod 26 = 80 mod 26 =2  
7 × 22 +3 mod 26 = 157 mod 26 = 1  
7 × 8 +3 mod 26 = 59 mod 26 = 7  
7 × 13 +3 mod 26 = 94 mod 26 = 16  
Bn mã sthu được là: 7 1 7 2 2 1 7 16  
Bn mã chthu được là: “HBHCCBHQ”  
Vic gii mã chvic áp dng dK(y) = a-1(y-b) mod 26,  
1.2. Mã Vigenere và các đặc tính ca nó:  
1.2.1 Định nghĩa:  
Trong chai hmã dch vòng và mã thay thế( mt khi khóa đã được chn) mi ký  
tự được ánh xvào mt ký tduy nht. Vì đó mà các hmt còn được gi là hthay thế  
đơn biu. Bây gita strình bày mt hmt không phi là bchữ đơn, đó là hmã  
Vigenere ni tiếng. Nó được gi là hmã hóa đa biu  
Ging như Caesar nhưng ở đây khóa được thay đổi theo tng bước.  
Định nghĩa[2]:  
Cho m là mt snguyên dương cố định nào đó. Định nghĩa  
P=C=K=(Z26)m Vi khóa K = (k1,k2, …,km) ta xác định:  
ek (x1,x2,…,xm) =(x1+k1, x2+k2,….,xm+km)  
dk(y1,y2,…ym) = (y1-k1, y2-k2,….,ym-km).  
Trong đó tt ccác phép toán được thc hin trong Z26. Ta sẽ  
biến đổi các phn tca bn rõ theo thng dư 26, viết chúng  
thành các nhóm 6 ri cng vi tkhóa theo modulo 26.  
11  
Ví d: gism=5 và tkhóa là “TRICH”. Tkhóa này tương ng vi dãy số  
K=(19,17,8,2,7). Gisbn rõ là xâu:  
Bn rõ:  
“CHIPHEO”  
Ta sbiến đổi các phn tca bn rõ thành các st0-25, ta được:  
Bn rõ s:  
C
H
I
P
H
E
O
2
7
8
15  
7
4
14  
viết chúng thành các nhóm 5 ri cng vi tkhóa theo modulo 26 ta được:  
Bn rõ :  
C
2
H
I
P
H
7
E
4
O
14  
17  
5
Bn rõ s:  
7
8
15  
Khóa sviết lp li:  
=>> Bn mã s:  
19 17  
8
2
7
19  
23  
21 24 16 17 14  
Bi vy, dãy ký ttương ng ca xâu bn mã slà:  
“VYQROXF”  
Để gii mã ta có thdùng cùng tkhóa nhưng thay cho cng, ta trcho nó theo  
modulo 26.  
1.2.2 Tính cht:  
Ta thy, khóa có độ dài là m, nên các khóa có thlà 26m , bi vy phương pháp tìm  
kiếm vét cn cũng yêu cu thi gian khá ln.Vic thám mã là rt phc tp. Thhai, từ  
khóa có độ dài m, mi ký tcó thể được ánh xvào trong m ký tcó thcó, như trong ví  
dxét trên có đến 2 ký tH nhưng khi mã hóa ký tH được mã hóa thành Y và O. Đó là  
12  
mt đặc đim khác so vi các hmã hóa đơn biu. Mt hnhư vy được gi là hmt  
thay thế đa biu. Vic thám mã đa biu khó khăn hơn nhiu so vi vic thám mã hệ đơn  
biu. Đó là mt tiến bhơn so vi các phép mã hóa cổ đin ta xét bên trên.  
1.3.Phương pháp mã hóa và gii mã Vigenere(khi có khóa cho trước):  
Chúng ta xét mt ví dsau:  
Ví d:  
Bn rõ: “Now is the time for all good men”  
Keywords là: TABLE  
Ta viết theo hàng ca bn rõ và slp li ca tkhóa phía dưới bn rõ, ta được:  
Bn rõ: n o w i s t h e t i m e f o r a l l g o o d m e n  
Lp khóa: T A B L E T A B L E T A B L E T A B L E T A B L E  
1.3.1 Mã hóa:  
Chúng ta nhìn vào hình A polyalphabetic tableau ng vi mi ký tca bn rõ là  
mt ký ttrên hàng ca bng đa biu, và ng vi mi ký ttkhóa là mt ký ttrên ct  
ca bng đa biu, khi đó tìm được ký tmà là giao ca ct ký tkhóa vi hàng ký tca  
bn rõ, ta được:  
n o w i s t h e t i m e f o r a l l g o o d m e n  
T A B L E T A B L E T A B L E T A B L E T A B L E  
G O X T W M H F E M F E G Z V T L M R S H D N P R  
Vy nên, ta thu được bn mã là: “GOXTWMHFEMFEGZVTLMRSHDNPR”  
13  
Chúng ta xem xét mt vài đặc đim. Trong t“all” ca bn rõ, xut hiên 2 ch‘l’  
nhưng khi được mã hóa chúng thành L và M, ch‘t’ trong “the” và “time” được mã hóa  
thành M và E…Vì vy, nhng ký tging nhau ca bn rõ có thmã hóa thành nhng ký  
tmã khác nhau, và nhng ký tging nhau ca bn mã li có thể được to nên bi các  
ký tkhác nhau ca bn rõ.  
Hình1 : A polyalphabetic tableau  
14  
1.3.2 Gii mã:  
Sgii mã là quá trình ngược li ca mã hóa. Chúng ta viết dưới bn mã vi  
keyword được lp li, sau đó nhìn theo ct ca keyword khi nào thy ký tmã hóa, chiếu  
sang hàng ngang ta stìm ra ký trõ tương ng. Ví d, ký tmã là G, ký tkhóa là T, ta  
nhìn dc theo ct T khi nào tìm thy G, chiếu sang hàng ngang thì hàng đó là ca ký tN,  
vy nên bn rõ là N. Tương tln lượt như vy ta tìm ra được bn rõ.  
Ví d:  
Ciphertext: G O X T W M H F E M F E G Z V T L M R S H D N P R  
Keyword: T A B L E T A B L E T A B L E T A B L E T A B L E  
Paintext: n o w i s t h e t i m e f o r a l l g o o d m e n  
Trong hmã hóa này, có sdng squay vòng mt strong hmã hóa Caesar.  
Trong mi ct, đại din mt phép mã hóa Caesar đơn gin vi mt phép dch chuyn.  
1.3.3 Chương trình mã hóa:  
Chúng ta nhìn vào hàng đầu tiên trong tableau. Trong mi ct,A được miêu tbi  
mt ký tkhóa, B sẽ được miêu tký tkhóa cng thêm 1, ngoi trct cui cùng, nơi  
nó sẽ được thay thế bi lý tA. C sẽ được miêu tbi ký tkhóa cng vi 2, ngoi tr2  
ct cui cùng.  
Paintext :P  
Ciphertext: C  
Keyword: K  
Do đó, ta có:  
Ví d:  
C= [P+K-1]mod 26  
Ta xét hàng đầu tiên P=13(M), K= 20(T) ,chúng ta scó: C=[13+20-1]mod 26 =6 (F). Theo  
như trên, ct T và hàng M giao nhau ti F.  
Nếu bn rõ là vector T% và khóa là vector K%, khi đó bn rõ sẽ được xác định theo công  
thc:  
15  
C%(X)=T%(I)+K%(KP)-1  
IF C%(X)>26 THEN C%(X)=C%(X)-26  
Quá trình gii mã là sngược li ca gii mã, khi đó thay công thc trên thành:  
C%(I)=T%(K)-K%(L)+1  
IF C%(I)<0 THEN C%(I)=C%(I)+26  
1.3.4 Kết lun:  
Vic mã hóa và gii mã ca hmã hóa Vigenere khi có khóa cho trước là mt vic  
không phi phc tp, chcn viết khóa lp li dưới bn rõ(mã) khi mã (gii) hóa, ri tìm  
giao ca chúng trên bng đa biu ta sẽ được bn mã (rõ) tương ng.  
16  
Chương 2: Phân tích trong trường hp không có khóa  
cho trước  
2.1 Nhng đặc trưng thng kê ca bn rõ: Tn số đơn, bộ đôi, trùng lp:  
Gista xét bn rõ:  
Có 3 cách phân tích mang li hiu qunht là: theo tn sut các ký tự đơn(letter  
frequences) và tn sut ca các cp ký tự đôi(digram frequences), và bba(trigram).  
2.1.1 Tn sut ca 1 ký t:  
Bng 1. Bng tn sut các ký ttrong Tiếng Anh ca Robert Edward Lewand  
Letter Frequency Letter Frequency  
a
b
c
d
e
f
0.08167  
0.01492  
0.02782  
0.04253  
0.12702  
0.02228  
0.02015  
0.06094  
n
o
p
q
r
0.06749  
0.07507  
0.01929  
0.00095  
0.05987  
0.06327  
0.09056  
0.02758  
s
g
h
t
u
17  
i
0.06966  
0.00153  
0.00772  
0.04025  
0.02406  
v
w
x
y
z
0.00978  
0.02360  
0.00150  
0.01974  
0.00074  
j
k
l
m
2.1.2 Tn sut bộ đôi phbiến nht xut hin trong tiếng Anh  
th, he, in, en, nt, re, er, an, ti, es, on, at, se, nd, or, ar, al, te, co, de, to, ra, et, ed, it, sa, em,  
ro.  
Chúng ta hãy nhìn vào bng sau, ký tự đầu snm bên ct ngoài cùng ca bng, ký tthứ  
2 tương ng slà hàng đầu tiên ca bng. Khi đó, con strong mi ô đó chính là tun  
sut xut hin ca cp ký tự đó trong tiếng Anh. Ví d: tn sut ca ‘TH’ là 315, tn sut  
ca “HT” là 22.  
Bng 2: Bng tn số đôi  
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z  
A 1 32 39 15  
B 8  
C 44  
D 45 18 4 10 39 12 2 3 57 1  
10 18  
16  
10 77 18 172 2 31 1 101 67 124 12 24 7  
27 1  
19  
58  
55 1  
6 2  
21 1  
8 16  
11  
6 5  
25  
12  
46 15  
59 1  
7 1 38 16  
1
7 9 5 37 7 1 10 32 39 8 4 9  
6
E 131 11 64 107 39 23 20 15 40 1 2 46 43 120 46 32 14 154 145 80 7 16 41 17 17  
F 21 2 9 1 25 14 1 6 21 1  
10 3 2 38 3  
4 8 42 11 1 4  
1
18  
G 11 2 1 1 32 3 1 16 10  
H 84 1 2 1 5 72  
251 2  
I 18 7 55 16 37 27 10  
4 1 3 23 1  
3 1 2 46 1  
8 39 32 169 63 3  
4
21 7 13 8  
8 3 22 2  
21 106 88  
4
2
7
1
1
14 1 1  
4
J
K
2
28  
8
3 3  
2 1  
3
3
L 34 7 8 28 72 5 1  
M 56 9 1 2 48  
57 1 3 55 4 1 28 2 2 2 12 19 8 2 5  
1 26 5 3 28 16 6 6 13  
47  
3
2
N 54 7 31 118 64 8 75 9 37 3 3 10 7 9 65 7  
O 9 18 18 16 3 94 3 3 13 5 17 44 145 23 29  
P 21 1 40 7 8 29 28 26  
Q
R 57 4 14 16 148 6 6 3 77 1 11 12 15 12 54 8  
5 51 110 12 4 15 1 14  
113 37 53 96 13 36  
4 2  
42 3 14 7 2  
20  
18 39 63 6 5 10  
2 6 14 19 71 24 2 6 41 121 30 2 27  
1
17  
4
S 75 13 21 6 84 13 6 30 42  
T 56 14 6 9 94 5 1 315 128  
U 18 5 17 11 11 1 12 2 5  
12 14 8  
111 8  
30 32 53 22 4 16  
49 42 45  
21  
28 9 33 2 17  
1 1 1  
V 15  
W 32  
X 3  
53  
19  
48 37  
4
6
4 1 10 17 2  
1 4  
3 4 30 1  
1 3 6 1 1 2  
1 1  
5
1
Y 11 11 10 4 12 3 5 5 18  
6 4 3 28 7  
1
5 17 21 1 3 14  
Z
5
2
1
2.1.3 Nhng bba phbiến nht:  
the, and, tha, ent, ing, ion, tio, for, nde, has, nce, edt, tis, oft, sth, men  
19  
Sau đây là ví dvtn số đơn ca các ký ttrong bn rõ:  
“Our latest shipment of one hundred bales is now loaded. Leave haror police will not  
interfere. We can sail anytime this we Please advise conditions at your end.”  
Từ đó ta có bng tn số đơn ca tng kí tlà:  
Plaint  
E: 28  
N: 12  
A: 11  
I: 11  
O: 11  
L: 10  
S: 9  
H: 4  
W: 4  
P: 3  
U: 3  
B: 2  
F: 2  
M: 2  
Y: 2  
K: 1  
V: 1  
T: 9  
D: 7  
R: 7  
C: 4  
Không có G, J, Q, X và Z  
2.2 Nhng đặc trưng thng kê ca bn mã: Tn số đơn, bộ đôi, trùng lp  
20  
Ta xét 1 ví dthám mã sdng tn sut đơn( letter frequencies),bộ đôi( digram  
frequencies) và bba(trigram frequencies).  
Cho bn mã sau:  
“CKPKH GVGCK UGZQA GCKUG CLGPQ FJZIG PQQAF QQLHG  
FJZEF QGKEF CCQAG LOULJ QFRGM OGPQA FUGZO SJBQA  
GLOTS MFOKS JZKOQ VKIGE KOGFJ ZKJGI XKJGT OGMQP  
LCGJQ CXQKO GPQYD”  
Bước 1 :  
Chúng ta tính được tn sut xut hin ca các ký ttrong bn mã. Và bên phi là bng tn  
sut ca các ký ttrong tiếng Anh.  
Cryptogram  
English(based on 135 letters)  
G ............. 21  
Q ............. 16  
K .......... …12  
F,J,O ...... .. 9  
C .......... …8  
L,P,Z ...... ..6  
A .......... …5  
U .......... …4  
E,I,M,S .... .3  
e ............... 17  
t ............... 13  
a, o............ 11  
n, i............. 10  
s ............... 9  
r ............... 8  
h ............... 7  
l, d............. 5  
c, u............. 4  
21  
H,T,V,X .... 2  
B,D,R,Y .... 1  
p,f,m,w....... 3  
y,b,g .......... 2  
v,k .............. 1  
Và tn sut xut hin ca bộ đôi và b3 trong bn mã là:  
Digrams in Cryptogram  
English Digrams  
QA ...................... ………5  
GP,JZ,OG,PQ .................4  
KO,FJ,CK,AG,UG ..........3  
GC,GZ,GF,GL,GM,QF  
QQ,KU,KJ,FQ,JQ,JG  
th ......................... 4  
he ….................... 3  
an,in,er,re,es ........ 2  
on,ea,ti,at,st  
en,nd,or,to,nt  
LO,ZK,AF,EF,IG,SJ ...... 2  
ed,is,ar,ou,te  
of,it,ha,se,et …...... 1  
Trigrams in Cryptogram  
English Trigrams  
(in order of frequency)  
GPQ ................................. 4  
QAG, FJZ ......................... 3  
QAF,JZK,OGP,KOG  
the  
and  
tha  
ent  
ion  
CKU,AGL,UGZ,GFJ  
GLO,KUG,KJG ................ 2  
22  
Bước 2:  
Chúng ta nhn thy rng:  
- Ký tG có tn sut cao nht, vì vy chúng ta tha nhn nó là ‘A’.  
- “the” là bộ đôi có tn sut xut hin cao nht trong tiếng Anh, vì vy chúng ta  
nhìn trong b3 nhng bmà kết thúc là G, có: QAG, KOG, KJG  
- ‘t’ cũng là ký tcó tn sut cao, ‘h’ tn sut trung bình. ‘QA’ là bộ đôi tn sut  
cao nht trong bn mã, nên QAG là mt la chn chính xác và được thay thế cho  
‘the’.  
Khi đó ta có:  
e e  
CKPKH GVGCK UGZQA GCKUG CLGPQ FJZIG PQQAF QQLHG  
te the e th th  
FJZEF QGKEF CCQAG LOULJ QFRGM OGPQA FUGZO SJBQA  
e th e  
e
e
t
e
tth  
tt  
e
t
e
e
e
t
e
e
e
e
e
t
GLOTS MFOKS JZKOQ VKIGE KOGFJ ZKJGI XKJGT OGMQP  
e t e t  
LCGJQ CXQKO GPQYD  
t
Bước 3:  
Chúng ta nhìn li bn cryptogram, nhn thy:  
- F( khi th7) phi là mt nguyên âm và có 1 tn sut cao ging ‘a’ hoc ‘o’.  
‘tha’ là bba có tn sut cao nên F đại din cho ‘a’  
- ‘an’ là bộ đôi và ‘and’ là bba có tn sut cao, chúng ta nhn thy FJ và FJZ là  
phù hp, vì vy J được thay thế cho ‘n’ và Z cho ‘d’.  
23  
Nên ta có bn cryptogram mi:  
e e  
CKPKH GVGCK UGZQA GCKUG CLGPQ FJZIG PQQAF QQLHG  
and a t e the n ta e e th a ed n th  
FJZEF QGKEF CCQAG LOULJ QFRGM OGPQA FUGZO SJBQA  
nd e an d ne ne  
GLOTS MFOKS JZKOQ VKIGE KOGFJ ZKJGI XKJGT OGMQP  
en t  
LCGJQ CXQKO GPQYD  
ed th e  
e
e t and e ttha tt  
e
a
e
a
t
e
e
t
t
e
t
Bước 4:  
Nhìn li bn cryptgram bước 3, ta nhn thy:  
- e,t,a,o,n là nhng ký tcó tn sut cao nht và chúng ta đã tìm thy 4 ký t. K kết  
hp vi o.  
-‘he’ và ‘re’ , O kết hp vi r  
Ta có:  
o o e e o ed th e o e  
CKPKH GVGCK UGZQA GCKUG CLGPQ FJZIG PQQAF QQLHG  
and a teo the n ta e re th a edr n th  
FJZEF QGKEF CCQAG LOULJ QFRGM OGPQA FUGZO SJBQA  
e r aro ndort o e or ean d one one re  
GLOTS MFOKS JZKOQ VKIGE KOGFJ ZKJGI XKJGT OGMQP  
ent tor e t  
e
t and e ttha tt  
e
a
r
t
24  

Tải về để xem bản đầy đủ

pdf 48 trang yennguyen 13/06/2025 70
Bạn đang xem 30 trang mẫu của tài liệu "Khóa luận Phân tích hệ thám mã Vigenere", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfkhoa_luan_phan_tich_he_tham_ma_vigenere.pdf