Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 5

1.

GIỚI THIỆU :
Mã thay thế ( Substitution Cipher ) là hệ mã trong đó mỗi kí
tự của bản rõ được thay thế bởi một kí tự tương ứng trong bản
mã theo một cách nào đó . Trong Shelock Holmes có một vụ án
nhắc đến loại mã này , đó là truyện “ Những hình nhân nhảy
múa ” . Thủ phạm đã dùng mã thay thế với mỗi kí tự được thay
bằng một hình nhân người nhảy múa . Thám tử Holmes tài ba
đã áp dụng phương pháp thám mã phân tích tần suất và phân
tích mẫu từ để giải mã các hình nhân này
2.Trình bày cơ sở xây dựng :
Là phương pháp mà từng kí tự ( hay từng nhóm kí tự ) trong
Plaintext được thay thế bằng một kí tự ( hay một nhóm kí tự )
khác tạo ra Ciphertext.Bên nhận 11 4 chỉ việc đảo ngược lại
trình tự thay thế trên Ciphertext để có được Plaintext ban đầu .
Đây chính là phương pháp mã hóa thay thế CAESAR CIPHER nổi
tiếng được sử dụng bởi Julius Caesar vị hoàng đế vĩ đại của đế
chế La Mã

3.Quy tắc mã hóa , giải mã:


Định nghĩa : Mã thay thế là hệ mật gồm một bộ 5 thành phần
( P , C , K , E,D ) .
Cho P = C = Z26
Khóa K chưa mọi hoán vị có thể của 26 chữ số 0,1 , .... , 25 . Với
mỗi phép hoán vị r thuộc K , ta có :
Quy tắc mã hóa : eπ ( x ) = π( x ) mod 26
Quy tắc giải mã : dπ ( y ) = π-1 ( y ) mod 26 ( Trong đó , π-1 là hoán
vị ngược của π trong Z26
4.Cách thám mã
Giả sử ta có bản mã : OLQIHXIRCKGNZ PLQRZKBZB
MPBKSSIPLC . Làm sao để giải mã đoạn mã này khi mà không
thể vét cạn hết 26 ! key được . Ta sẽ dùng phương pháp phân
tích mẫu từ . Xét từ thứ nhất OLQIHXIRCKGNZ với 13 kí tự , ta
có thể viết lại từ này dưới dạng 0.1.2.3.4.5.3.6.7.8.9.10.11 trong
đó mỗi kí tự trong từ được thay thế bằng một con số , các số
này tăng dần từ 0 , 1 , và các kí tự giống nhau sẽ được kí hiệu
bằng con số giống nhau . Để ý thấy kí tự thứ 4 và kí tự thứ 7 là
giống nhau 0.1.2.3.4.5.3.6.7.8.9.10.11 . Vậy ta hãy tìm xem
trong tiếng anh có từ nào có 13 kí tự mà kí tự thứ 4 và kí tự thứ
7 giống nhau không , tức là cũng có mẫu từ dạng
0.1.2.3.4.5.3.6.7.8. 9.10.11 . Có 2 như vậy tiếng anh :
UNCOMFORTABLE và UNCOMFORTABLY . Như vậy chữ O chắn
phải được giải mã thành U , tương tự L giải mã thành N , . và Z
có thể giải mã thành E hoặc Y . Đến đây ta có thể lập bảng
mapping các khả năng của mỗi ký tự
Bản mã : OLQIHXIRCKGNZ
Khóa : UNCOMFORTABLE , UNCOMFORTABLY
Python có kiểu dữ liệu Dictionary rất thuận tiện cho nhu cầu
này

{ ' A ' : [ ] , ' C ' : [‘ T ‘] , ' B ' : [ ] , ' E ' : [ ] , ' D ' : [ ] , ' G ' :
[B'],'F:[],T:['O'],'H':['M'],'K':['A'],J:
[],'M':[],'L':['N'],'O':['U'],'N':['L'],'Q
':['C'],'P':[],'S':[],'R':[R],'U':[],T':[],'
W ' : [ ] , ' V ' : [ ] , ' Y ' : [ ] , ' X ' : ['F ' ] , ' Z [ ' E ' , ' Y ' ] }

Tiếp tục , ta xét từ thú hai PLQRZKBZB . Mẫu từ tương


ứng là 0.1.2.3.4.5.6.4.6 . Có 4 từ tiếng anh có dạng mẫu
này : CONVERSES , INCREASES , PORTENDED ,
UNIVERSES . Ta lại lập bảng mapping cho các từ này và
được { ' A ' : [ ] , ' C ' : [ ] , ' B ' : [ ' S ' , ' D ' ] , ' E ' : [ ] , ' D '
: [ ] , ' G ' : [ ] , ' F ' : [ ] , 'T ' : [ ] , ' H ' : [ ] , ' K ' : [ ' R ' , ' A
','N'],'J':[],'M':[],'L':['0','N'],'O':[],'N
':[],'Q':['N','C','R','I'],'P':['C',T','P','
U'],'S':[],'R':['V','R',T'],'U':[],T:[],'W
' : [ 1 , V : [ ] , Y : [ ] , ' X ' : [ ] , ' Z ' : [ ' E ' ] } Xét tiếp từ thứ
ba là MPBKSSIPLC Mẫu từ tương ứng là
0.1.2.3.44.5.1.6.7 , các từ có thể là ADMITTEDLY ,
DISAPPOINT . Ta lại được 1 bảng mapping khác : { ' A ' :,
'C':['Y','T'],'B':['M','S'],'E':[],'D':[],'
G ' : [ ] , F ' : [ 1 , ' T ' : [ ' E ' , ' O ' ] , ' H ' : [ ] , ' K : IT , ' A
'],J':[],'M':['A','D'],'L':['L','N'],'O':[],
'N':[],'Q':[],'P':['D','T'],'S':['T,P'],'R'
:[],'U':[],'T':[],'W':[],'V':[],'Y':[],'X':[
] , ' Z ' : [ ] } Như vậy ta đã giải mã được gần hết bảng chữ
cái . Áp dụng bảng mapping này vào bản mã ban đầu
OLQIHXIRCKGNZ PLQRZKBZB MPBKSSIPL ta được hin
rõ UNCOMFORTABLE INCREASES_ISA_OINT . Có 2 kí
tự nằm ở từ thứ 3 trong bản mã vẫn chưa được giải : M ->
? và S - > ? . Nhìn lại bảng mapping có nhận xét : K - > A
và M - > A or D. Vậy M phải được giải mã thành D hay : M
- > D. Tương tự C - > T và S - > T or P. Vậy S - > P .

Cuối cùng ta thu được bản rõ UNCOMFORTABLE


INCREASES DISAPOINT

5.Đánh giá độ an toàn

Một khóa là một hoán vị của 26 chữ cái . Do đó , số


lượng khóa trong không gian khóa là || K || = 26 !
( 403,291,461,126,605,635,584,000,000 ) hoán vị ( khóa )

Để phá mã chúng ta không thể duyệt từng khóa một mà


phải dùng cách khác do không gian lớn ( ngay cả dùng
máy tính ) .Tuy vậy , có những phương pháp thám mã
khác hiệu quả hơn như thám mã dựa trên mẫu tử .... , làm
cho các hệ mật mã thay thế không được xem là an toàn.

6.Ví dụ về mã hoá và giải mã mã thay thế :

Sau đây là 1 ví dụ về hoán vị của 26 ký tự reong bảng chữ cái


tiếng anh chữ thường là ký tự bản rõ chữ hoa là ký tự bản mã :
Dùng khoá hoán vị trên mã hoá bản rõ “hello”
-> bản mã : GHBBF
Hoán vị ngược π-1 bằng cách viết hàng thứ 2 của π lên trước và
sắp sếp theo thứ tự chữ cái trong từ điển .
Khi giải mã bản mã “GHBBF” ta sẽ thay thế ký tự hàng trên thành
hàng dưới ta sẽ thu được bản rõ : x=’ hello’

You might also like