Nội dung của Slide hiển thị trên Web không đúng với khi trình chiếu, các thành viên download về để có thể thấy được nội dung hoàn chỉnh.
Trang 1VIGENÈRE CIPHER
Thành viên:
-1261030002
-1261030003
Trang 2-Vấn đề đối với mã dịch vòng và mã thay thế là mỗi
kí tự luôn được ánh xạ thành một kí tự duy nhất Sau này, kĩ thuật thống kê ngôn ngữ có thể được sử dụng để phá kiểu mã hóa này Ví dụ, nó rất dễ dàng để xác định
rõ văn bản đã được mã hóa ứng với văn bản ban đầu trong tiếng Anh Từ đầu thập niên 1800 trở đi, các nhà thiết kế thuật toán mã hóa đã cố gắng để phá vỡ liên kết giữa bản rõ và bản mã
Mã thay thế mà chúng ta sử dụng phía trên là bộ mã hóa thay thế đơn biểu, vì vậy, chỉ một bảng chữ cái thay thế sẽ được sử dụng để mã hóa cho toàn bộ bảng chữ cái Một cách để giải quyết vấn đề của chúng ta là lấy một vài bảng chữ cái thay thế và sau đó mã hóa mỗi kí
tự với một bảng chữ cái khác nhau Một hệ thống như vậy được gọi là mã hóa thay thế đa biểu
The problem with the shift cipher and the
substitution cipher was that each plaintext letter always
encrypted to the same ciphertext letter Hence underlying
statistics of the language could be used to break the
cipher For example it was easy to determine which
ciphertext letter corresponded to the plaintext letter E
From the early 1800s onwards, cipher designers tried to
break this link between the plaintext and ciphertext
The substitution cipher we used above was a
mono-alphabetic substitution cipher, in that only one alphabet
substitution was used to encrypt the whole alphabet One
way to solve our problem is to take a number of
substitution alphabets and then encrypt each letter with a
different alphabet Such a system is called a
polyalphabetic substitution cipher
VIGENÈRE CIPHER
Trang 3For example we could take
Plaintext alphabet ABCDEFGHIJKLMNOPQRSTUVWXYZ
Ciphertext alphabet one
TMKGOYDSIPELUAVCRJWXZNHBQF
Ciphertext Alphabet two
DCBAHGFEMLKJIZYXWVUTSRQPON
Then the plaintext letters in an odd position we
encrypt using the first ciphertext alphabet, whilst the
plaintext letters in even positions we encrypt using the
second alphabet For example the plaintext word
HELLO, using the above alphabets would encrypt to
SHLJV Notice that the two occurrences of L in the
plaintext encrypt to two different ciphertext characters
Thus we have made it harder to use the underlying
statistics of the language If one now does a naive
frequency analysis we no longer get a common
ciphertext letter corresponding to the plaintext letter E
Ví dụ, chúng ta có thể lấy
Bản rõ ABCDEFGHIJKLMNOPQRSTUVWXYZ Bảng mã thứ nhất TMKGOYDSIPELUAVCRJWXZNHBQF Bảng mã thứ hai DCBAHGFEMLKJIZYXWVUTSRQPON
Sau đó những chữ cái ở vị trí lẻ trong bản rõ sẽ được
mã hóa bằng cách sử dụng bảng mã thứ nhất, khi những chữ cái ở vị trí chẵn chúng ta sẽ sử dụng bảng mã thứ hai Ví dụ, từ bản rõ là HELLO, sử dụng những bảng chữ cái ở phía trên có thể được mã hóa thành SHLJV Chú ý, hai lần xuất hiện của kí tự L trong bản rõ sẽ được
mã hóa thành hai kí tự mã hóa khác nhau Như vậy, việc
sử dụng kĩ thuật thống kê ngôn ngữ để phá vỡ hệ mã này
sẽ khó khăn hơn Nếu bây giờ phân tích tần số một cách đơn giản chúng ta không còn nhận thấy sự liên hệ giữa
kí tự trong bản mã với kí tự trong bản rõ trong tiếng Anh
VIGENÈRE CIPHER
Trang 4We essentially are encrypting the message two
letters at a time, hence we have a block cipher with
block length two English characters In real life one may
wish to use around five rather than just two alphabets
and the resulting key becomes very large indeed With
five alphabets the total key space is (26!)5 ≈ 2441, but
the user only needs to remember the key which is a
sequence of 26.5 = 130 letters
However, just to make life hard for the attacker, the
number of alphabets in use should also be hidden from
his view and form part of the key But for the average
user ill the early 1800s this was far too unwieldy a
system, since the key was too hard to remember
Về bản chất, chúng ta có thể mã hóa đồng thời 2 thông điệp cùng lúc, kể từ đây chúng ta có một khối mã hóa với độ dài của khối là 2 kí tự trong tiếng Anh Trong thực tế, nếu chúng ta sử dụng hơn 5 bảng mã thay vì chỉ
sử dụng 2 bảng mã và kết quả là số lượng khóa sẽ trở nên rất lớn Với 5 bảng mã thì tổng số khóa là (26!)5 ≈
2441, nhưng người sử dụng chỉ cần nhớ khóa liên tiếp với 26.5 = 130 kí tự
Tuy nhiên, để tạo sự khó khăn cho những kẻ tấn công, số lượng bảng mã nên được ẩn đi đối và là một phần của khóa Nhưng đối với phần lớn người dùng đầu những thập niên 1800 thì việc sử dụng hệ mã này là khó khăn, do khóa này rất khó để nhớ
VIGENÈRE CIPHER
Trang 5Despite its shortcomings the most famous cipher
during the 19th-century was based on precisely this
principle The Vigenère cipher, invented in 1533 by
Giovan Batista Belaso, was a variant on the above
theme, but the- key was easy to remember When looked
at in one way the Vigenère cipher is a polyalphabetic
block cipher, but when looked at in another, it is a
stream cipher which is a natural generalization of the
shift cipher
The description of the Vigenère cipher as a block
cipher takes the description of the polyal-phabetic cipher
above but restricts the possible plaintext alphabets to one
of the 26 possible cyclic shifts of the standard alphabet
Suppose five alphabets were used, this reduces the key
space down to 165 ≈ 223 and the size of the key to be
remembered as a sequence of five numbers between 0
and 25
Mặc dù nhược điểm của những bộ mã hóa phía trên được quan tâm nhất trong suốt thế kỉ XIX và là nền tảng cho những bộ mã hóa sau này Mã Vigenère, được phát minh vào năm 1533 bởi Giovan Batista Belaso, là một
sự biến đổi của các hệ mã phía trên, nhưng khóa thì rất
dễ nhớ Khi nhìn từ một phương diện nào đó, mã Vigenère là một hệ mã hóa khối đa biểu, nhưng khi nhìn
từ một phương diện khác, nó là một hệ mã hóa dòng suy rộng tự nhiên của mã dịch vòng
Sự mô tả của mã Vigenère là một hệ mã hóa khối sử dụng mô tả của hệ mã hóa đa biểu ở phía trên nhưng thu hẹp khả năng của những bản rõ với 1 trong 26 khả năng của chu kỳ thay đổi của bảng chữ cái chuẩn Giả sử 5 bảng chữ cái được sử dụng, điều này làm giảm số lượng khóa xuống 165≈223 và kích thước của khóa để nhớ là thứ tự của 5 con số nằm trong khoảng từ 0 đến 25
VIGENÈRE CIPHER
Trang 6However, the description of the Vigenère cipher as a
stream cipher is much more natural Just like the shift
cipher, the Vigenère cipher again identifies letters with
the numbers 0, , 25 The secret key is a short sequence
of letters (e.g a word) which is repeated again and again
to form a keystream Encryption involves adding the
plaintext letter to a key letter Thus if the key is
SESAME, encryption works as follows,
THISISATESTMESSAGE
SESAMESESAMESESAME
LLASUWSXWSFQWWKASI
Again we notice that A will encrypt to a different
letter depending on where it appears in the message
Tuy nhiên, sự mô tả của mã Vigenère là một hệ mã hóa dòng thì phổ biến và tự nhiên hơn Giống như hệ dịch vòng, mã Vigenère định nghĩa lại những kí tự với những con số từ 0, , 25 Khóa bí mật là một chuỗi ngắn các kí tự một cách tuần tự (ví dụ: a word) cái mà sẽ được lặp lại liên tiếp tạo thành chuỗi khóa Việc mã hóa cần phải kết hợp giữa bản rõ với từ khóa Như vậy, nếu khóa
là SESAME, quá trình mã hóa sẽ được thực hiện như sau,
THISISATESTMESSAGE SESAMESESAMESESAME LLASUWSXWSFQWWKASI Một lần nữa chúng tôi muốn nhấn mạnh rằng kí tự A
sẽ được mã hóa thành một kí tự khác phụ thuộc vào vị trí xuất hiện nó trong thông điệp
VIGENÈRE CIPHER
Trang 7But the Vigenère cipher is still easy to break using
the underlying statistics of English Once we have found
the length of the keyword, breaking the ciphertext is the
same as breaking the shift cipher a number of times
As an example, suppose the ciphertext is given by
UTPDHUG NYH USVKCG MVCE FXL KQIB
WX RKU GI TZN, RLS BBHZLXMSNP KDKS; CEB
IH HKEW IBA, YYM SBR PFR SBS, JV UPL O
UVADGR HRRWXF JV ZTVOOV YH ZCQU Y
UKWGEB, PL UQFB P FOUKCG, TBF RQ VHCF R
KPG, OU KFT ZCQU MAW QKKW ZGSY, FP PGM
QKFTK UQFB DER EZRN, MCYE, MG UCTFSVA,
WP KFT ZCQU MAW KQIJS LCOV NTHDNV
JPNUJVB IH GGV RWX ONKCGTHKFL XG VKD,
ZJM VG CCI MVGD JPNUJ, RLS EWVKJT ASGUCS
MVGD;
Nhưng hệ mã Vigenère vẫn dễ dàng bị phá vỡ bằng
kĩ thuật thống kê ngôn ngữ trong tiếng Anh Một lần nữa chúng ta tìm thấy độ dài từ khóa, phá vỡ bản mã tương
tự như việc phá vỡ mã dịch vòng một vài lần
Ví dụ, giả sử văn bản mã hóa được cho như sau UTPDHUG NYH USVKCG MVCE FXL KQIB
WX RKU GI TZN, RLS BBHZLXMSNP KDKS; CEB
IH HKEW IBA, YYM SBR PFR SBS, JV UPL O UVADGR HRRWXF JV ZTVOOV YH ZCQU Y UKWGEB, PL UQFB P FOUKCG, TBF RQ VHCF R KPG, OU KFT ZCQU MAW QKKW ZGSY, FP PGM QKFTK UQFB DER EZRN, MCYE, MG UCTFSVA,
WP KFT ZCQU MAW KQIJS LCOV NTHDNV JPNUJVB IH GGV RWX ONKCGTHKFL XG VKD, ZJM VG CCI MVGD JPNUJ, RLS EWVKJT ASGUCS MVGD;
VIGENÈRE CIPHER
Trang 8DDK VG NYH PWUV CCHIIY RD DBQN RWTH
PFRWBBI VTTK VCGNTGSF FL IAWU XJDUS, HFP
VHCF, RR LAWEY QDFS RVMEES FZB CHH JRTT
MVGZP UBZN FD ATIIYRTK WP KFT HIVJCI; TBF
BLDPWPX RWTH ULAW TG VYCHX KQLJS US
DCGCW OPPUPR, VG KFDNUJK GI JIKKC PL KGCJ
IAOV KFTR GJFSAW KTZLZES WG RWXWT
VWTL WP XPXGG, CJ FPOS VYC BTZCUW XG
ZGJQ PMHTRAIRBJG WMGFG JZQ DPB JVYGM
ZCLEWXR: CEB IAOV NYH JIKKC TGCWXF UHF
JZK
WX VCU LD YITKFTK WPKCGVCWIQT PWVY
QEBFKKQ, QNH NZTTW IRFL IAS VFRPE
ODJRXGSPTC EKWPTGEES, GMCG TTVVPLTFFJ;
YCW WV NYH TZYRWH LOKU MU AWO, KFPM
DDK VG NYH PWUV CCHIIY RD DBQN RWTH PFRWBBI VTTK VCGNTGSF FL IAWU XJDUS, HFP VHCF, RR LAWEY QDFS RVMEES FZB CHH JRTT MVGZP UBZN FD ATIIYRTK WP KFT HIVJCI; TBF BLDPWPX RWTH ULAW TG VYCHX KQLJS US DCGCW OPPUPR, VG KFDNUJK GI JIKKC PL KGCJ IAOV KFTR GJFSAW KTZLZES WG RWXWT VWTL WP XPXGG, CJ FPOS VYC BTZCUW XG ZGJQ PMHTRAIRBJG WMGFG JZQ DPB JVYGM ZCLEWXR: CEB IAOV NYH JIKKC TGCWXF UHF JZK
WX VCU LD YITKFTK WPKCGVCWIQT PWVY QEBFKKQ, QNH NZTTW IRFL IAS VFRPE ODJRXGSPTC EKWPTGEES, GMCG TTVVPLTFFJ; YCW WV NYH TZYRWH LOKU MU AWO, KFPM
VIGENÈRE CIPHER
Trang 9DYN MVCK ZT MFWCW HTWF FD JL, OPU
YAE CH LQ! PGR UF, YH MWPP RXF CDJCGOSF,
XMS UZGJQ JL, SXVPN HBG!
There is a way of finding the length of the keyword,
which is repeated to form the keystream, called the
Kasiski test First we need to look for repeated sequences
of characters Recall that English has a large repetition of
certain bigrams or trigrams and over a long enough
string of text these are likely to match up to the same two
or three letters in the key every so often By examining
the distance between two repeated sequences we can
guess the length of the keyword Each of these distances
should be a multiple of the keyword, hence taking the
greatest common divisor of all distances between the
repeated sequences should give a good guess as to the
keyword length
DYN MVCK ZT MFWCW HTWF FD JL, OPU YAE CH LQ! PGR UF, YH MWPP RXF CDJCGOSF, XMS UZGJQ JL, SXVPN HBG!
Có một cách để tìm ra độ dài của từ khóa, cái mà được lặp lại để tạo thành cấu trúc chuỗi khóa, gọi là Kasiski test Đầu tiên chúng ta cần tìm ra trình tự lặp của các kí tự Xin nhắc lại rằng, trong tiếng Anh có sự lặp lại rất lớn của bigrams hoặc trigrams và tần suất xuất hiện của những bộ đôi hoặc bộ ba này trong tiếng Anh cũng ứng với trong bản mã Bằng cách kiểm tra khoảng cách giữa hai lần lặp lại tuần tự, chúng ta có thể đoán được độ dài của khóa Mỗi khoảng cách này phải là một bội số của từ khóa, do vậy lấy ước chung lớn nhất của tất cả các khoảng cách giữa các lần lặp lại tuần tự để có được một dự đoán tốt về độ dài của khóa
VIGENÈRE CIPHER
Trang 10Let us examine the above ciphertext and look for the
bigram WX The gaps between some of the occurrences
of this bigrant are 9, 21, 66 and 30, some of which may
have occurred by chance, whilst some may reveal
information about the length of the keyword We now
take the relevant greatest common divisors to find,
gcd(30,66) = 6,
gcd(3,9) = gcd(9,66) = gcd(9,30) = gcd(21,66) = 3
We are unlikely to have a keyword of length three so
we conclude that the gaps of 9 and 21 occurred purely by
chance Hence, our best guess for the keyword is that it
is of length 6
Now we take every sixth letter and look at the
statistics just as we did for a shift cipher to deduce the
first letter of the keyword We can now see the
Chúng ta kiểm tra bản mã ở phía trên và tìm kiếm bigram WX Khoảng cách giữa các lần xuất hiện của bigram này là 9, 21, 66, 30, một vài trong số này chỉ xuất hiện một cách tình cờ, trong khi một số khác có thể
hé lộ thông tin về độ dài của khóa Bây giờ, chúng ta có các ước chung lớn nhất liên quan đến quá tình tìm kiếm, gcd(30,66) = 6,
gcd(3,9) = gcd(9,66) = gcd(9,30) = gcd(21,66) = 3 Chúng ta không tin rằng độ dài của khóa là 3, vì vậy chúng ta có thể kết luận rằng khoảng cách 9 và 21 này chỉ là xuất hiện ngẫu nhiên Kể từ bây giờ, dự đoán tốt nhất về độ dài khóa của chúng ta là 6
Bây giờ chúng ta lấy mỗi 6 kí tự và nhìn vào bảng thống kê tương tự như chúng ta đã làm với mã dịch vòng
để dự đoán kí tự đầu tiên của từ khóa Bây giờ chúng ta
VIGENÈRE CIPHER
Trang 11If we used the naive method and tried each of the 26
keys in turn we could still not detect which key is
correct, since every sixth letter of an English sentence
does not produce an English sentence Using our earlier
histogram based method is move efficient in this case
Nếu chúng ta sử dụng phương pháp vét cạn và thử lần lượt 26 khóa thì chúng ta có thể vẫn không thể phát hiện được khóa nào là chính xác, từ mỗi 6 kí tự của một câu trong tiếng Anh không thể tạo thành một câu trong tiếng Anh Trong trường hợp này việc sử dụng phương pháp biểu đồ tần suất sẽ nhanh hơn
VIGENÈRE CIPHER
Hình 3 Sự so sánh tần số xuất hiện của mỗi 6 kí tự trong
bản rõ và bản mã của ví dụ về mã Vigenère ở trên, bắt đầu với
kí tự đầu tiên
Figure 3 Comparison of plaintext and ciphertext
frequencies for every sixth letter of the Vigenère example,
starting with the first letter
Trang 12VIGENÈRE CIPHER
Hình 4 Sự so sánh tần số xuất hiện của mỗi 6 kí tự trong
bản rõ và bản mã của ví dụ về mã Vigenère ở trên, bắt đầu với
kí tự thứ hai
Figure 4 Comparison of plaintext and ciphertext
frequencies for every sixth letter of the Vigenère example,
starting with the second letter