Tải bản đầy đủ (.pdf) (44 trang)

Mã hóa đối xứng căn bản

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.34 MB, 44 trang )

1
BẢO MẬT THÔNG TIN
BÀI 2:
MÃ HÓA ĐỐI XỨNG
CĂN BẢN
Nguyễn Hữu Thể
2
Nội dung
1. Mã hóa Ceasar
2. Mô hình mã hóa đối xứng (Symmetric Ciphers)
3. Mã hóa thay thế đơn bảng (Monoalphabetic Substitution
Cipher)
4. Mã hóa thay thế đa bảng (Polyalphabetic Substitution
Cipher)
5. One-Time Pad
6. Mã hoán vị (Permutation Cipher)
Mã hóa Ceasar









Julius Caesar
3
Mã hóa Ceasar
 Thế kỷ thứ 3 trƣớc công nguyên, nhà quân sự ngƣời La Mã
Julius Ceasar đã nghĩ ra phƣơng pháp mã hóa một bản tin: thay


thế mỗi chữ trong bản tin bằng chữ đứng sau nó k vị trí trong
bảng chữ cái. Giả sử chọn k = 3, ta có bảng chuyển đổi nhƣ sau:


(sau Z sẽ vòng lại là A, do đó x -> A, y -> B và z -> C)
• Giả sử có bản tin gốc (bản rõ): meet me after the toga party
• Nhƣ vậy bản tin mã hóa (bản mã) sẽ là:
PHHW PH DIWHU WKH WRJD SDUWB
 Ceasar gửi bản mã. Khi cấp dƣới nhận đƣợc bản mã, tiến hành
giải mã theo quy trình ngƣợc lại để có đƣợc bản rõ.
4
Mã hóa Ceasar
 Gán cho mỗi chữ cái một con số nguyên từ 0 đến 25:

 Phƣơng pháp Ceasar đƣợc biểu diễn nhƣ sau: với mỗi chữ cái
p thay bằng chữ mã hóa C, trong đó:
C = (p + k) mod 26 (trong đó mod là phép chia lấy số dƣ)
 Và quá trình giải mã đơn giản là:
p = (C – k) mod 26
k đƣợc gọi là khóa. Dĩ nhiên là Ceasar và cấp dƣới phải cùng
dùng chung một giá trị khóa k, nếu không bản tin giải mã sẽ
không giống bản rõ ban đầu.

5
Mã hóa Ceasar
 Ngày nay phƣơng pháp mã hóa của Ceasar không đƣợc xem là
an toàn.
 Giả sử đối thủ của Ceasar có đƣợc bản mã:
PHHW PH DIWHU WKH WRJD SDUWB
và biết đƣợc phƣơng pháp mã hóa và giải mã là phép cộng trừ

modulo 26.
 Đối thủ có thể thử tất cả 25 trƣờng hợp của k nhƣ sau:
6
Mã hóa Ceasar
7
 Trong 25 trƣờng hợp
trên, chỉ có trƣờng
hợp k=3 thì bản giải
mã tƣơng ứng là có ý
nghĩa.
 Do đó đối thủ có thể
chắc chắn rằng
“meet me after the
toga party” là bản rõ
ban đầu.
Mã hóa Ceasar
 Với bản chữ cái Tiếng Việt (29 ký tự) với khóa là 3:



Gán cho mỗi chữ cái một con số nguyên từ 0 đến 28:


 Phƣơng pháp Ceasar biểu diễn tiếng Việt nhƣ sau: với mỗi chữ cái
p thay bằng chữ mã hóa C, trong đó:
C = (p + k) mod 29 (trong đó mod là phép chia lấy số dƣ)
 Và quá trình giải mã đơn giản là:
p = (C – k) mod 29

8

Bảng chữ cái thƣờng: AĂÂBCDĐEÊGHIKLMNOÔƠPQRSTUƢVXY
Bảng chữ cái mật mã: BCDĐEÊGHIKLMNOÔƠPQRSTUƢVXYAĂÂ
Mã hóa Ceasar
 Code Java
private String encryptMessage(String msg, int k) {
String result = "";
for (int i = 0; i < msg.length(); i++)
result += encryptChar(msg.charAt(i), k);
return result;
}
private char encryptChar(char c, int k) {
if (Character.isLetter(c))
return (char) ('A' + (c - 'A' + k) % 26); //'A'=65
else
return c;
}
Nếu giải mã: encryptMessage(msg,26-k);

9
Mã hóa Ceasar

10
Mô hình mã hóa đối xứng (Symmetric Ciphers)










11
 Bản rõ P (plaintext)
 Thuật toán mã hóa E (encrypt algorithm)
 Khóa bí mật K (secret key)
 Bản mã C (ciphertext)
 Thuật toán giải mã D (decrypt algorithm)
Trong đó: C = E (P, K)
P = D (C, K)
Mô hình mã hóa đối xứng (Symmetric Ciphers)
 Thuật toán mã hóa và giải mã sử dụng chung một khóa, thuật
toán giải mã là phép toán ngƣợc của thuật toán mã hóa (trong
mã hóa Ceasar, E là phép cộng còn D là phép trừ).
 Vì vậy mô hình trên đƣợc gọi là phƣơng pháp mã hóa đối xứng.
 Bản mã C đƣợc gởi đi trên kênh truyền. Do bản mã C đã đƣợc
biến đổi so với bản rõ P, cho nên những ngƣời thứ ba can thiệp
vào kênh truyền để lấy đƣợc bản mã C, thì không hiểu đƣợc ý
nghĩa của bản mã.
 Khóa phải đƣợc giữ bí mật giữa ngƣời gởi và ngƣời nhận, hay
nói cách khác khóa phải đƣợc chuyển một cách an toàn từ
ngƣời gởi đến ngƣời nhận.
12
Mô hình mã hóa đối xứng (Symmetric Ciphers)
 “Nếu đã có một kênh an toàn để chuyển khóa như vậy thì tại
sao không dùng kênh đó để chuyển bản tin, tại sao cần đến
chuyện mã hóa?”
 Câu trả lời: nội dung bản tin thì có thể rất dài, còn khóa thì
thƣờng là ngắn. Ngoài ra một khóa còn có thể áp dụng để truyền
tin nhiều lần. Do đó nếu chỉ chuyển khóa trên kênh an toàn thì

đỡ tốn kém chi phí.
13
Mô hình mã hóa đối xứng (Symmetric Ciphers)
 Mã hóa Ceasar, từ một bản mã có thể dễ dàng suy ra đƣợc bản
rõ ban đầu mà không cần biết khóa bí mật. Hành động đi tìm
bản rõ từ bản mã mà không cần khóa nhƣ vậy đƣợc gọi là hành
động phá mã (cryptanalysis). Do đó một hệ mã hóa đối xứng
đƣợc gọi là an toàn khi và chỉ khi nó không thể bị phá mã
hoặc thời gian phá mã là bất khả thi.
 Trong phƣơng pháp Ceasar, lý do mà phƣơng pháp này kém an
toàn là ở chỗ khóa k chỉ có 25 giá trị, do đó kẻ phá mã có thể
thử đƣợc hết tất cả các trƣờng hợp của khóa rất nhanh chóng.
Phƣơng pháp tấn công này đƣợc gọi là phƣơng pháp vét cạn
khóa (brute-force attack). Chỉ cần nới rộng miền giá trị của
khóa thì có thể tăng thời gian phá mã đến một mức độ đƣợc coi
là bất khả thi.
14
Mô hình mã hóa đối xứng (Symmetric Ciphers)
 Bảng liệt kê thời gian phá mã trung bình tƣơng ứng với kích
thƣớc của khóa.







 Tốc độ CPU hiện nay khoảng 3x10
9
Hz

 Tuổi vũ trụ vào khoảng ≈ 10
10
năm
15
Mã hóa thay thế đơn bảng (Monoalphabetic Substitution Cipher)
 Xét lại phƣơng pháp Ceasar với k=3:


 Phƣơng pháp đơn bảng tổng quát hóa phƣơng pháp Ceasar bằng
cách dòng mã hóa không phải là một dịch chuyển k vị trí của
các chữ cái A, B, C, … nữa mà là một hoán vị của 26 chữ cái
này. Lúc này mỗi hoán vị đƣợc xem nhƣ là một khóa. Giả sử
có hoán vị sau:




 Quá trình giải mã đƣợc tiến hành ngƣợc lại.
16
Mã hóa thay thế đơn bảng (Monoalphabetic Substitution Cipher)
 Việc mã hóa đƣợc tiến hành bằng cách thay thế một chữ cái
trong bản rõ thành một chữ cái trong bản mã, nên phƣơng pháp
này đƣợc gọi là phƣơng pháp thay thế.
 Số lƣợng hoán vị của 26 chữ cái là 26!, đây cũng chính là số
lƣợng khóa của phƣơng pháp này.
 Vì 26! là một con số khá lớn nên việc tấn công phá mã vét cạn
khóa là bất khả thi (6400 thiên niên kỷ với tốc độ thử khóa là
10
9
khóa/giây). Vì vậy mã hóa đơn bảng đã đƣợc xem là một

phƣơng pháp mã hóa an toàn trong suốt 1000 năm sau công
nguyên.
17
Mã hóa thay thế đơn bảng (Monoalphabetic Substitution Cipher)
 Vào thế kỷ thứ 9, Al-Kindi (ngƣời Ả Rập) đã phát hiện ra một
phương pháp phá mã khả thi.
 Trong tiếng Anh, tần suất sử dụng của các chữ cái không
đều nhau:
 Chữ E đƣợc sử dụng nhiều nhất, còn các chữ ít đƣợc sử
dụng thƣờng là Z, Q, J.
 Cụm 2 chữ cái (digram): cụm chữ TH đƣợc sử dụng nhiều
nhất.
18
Mã hóa thay thế đơn bảng (Monoalphabetic Substitution Cipher)

19
Mã hóa thay thế đơn bảng (Monoalphabetic Substitution Cipher)
 Phƣơng pháp mã hóa đơn bảng ánh xạ một chữ cái trong bản
rõ thành một chữ cái khác trong bản mã.
 Do đó các chữ cái trong bản mã cũng sẽ tuân theo luật phân bố
tần suất trên.
 Nếu chữ E đƣợc thay bằng chữ K thì tần suất xuất hiện của
chữ K trong bản mã là 13.05%.
=> Đây chính là cơ sở để thực hiện phá mã.
20
Mã hóa thay thế đơn bảng (Monoalphabetic Substitution Cipher)
 Xét bản mã sau:
UZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXUDBMETSXAIZ
VUEPHZHMDZSHZOWSFPAPPDTSVPQUZWYMXUZUHSX
EPYEPOPDZSZUFPOMBZWPPDPTGUDTMOHMQ

21
Số lần xuất hiện
của các chữ cái
Số lần xuất hiện
của các digram
(xuất hiện từ 2
lần trở lên)
Mã hóa thay thế đơn bảng (Monoalphabetic Substitution Cipher)






 Có thể đoán: P là mã hóa của e. Z là mã hóa của t.
 Vì TH có tần suất cao nhất trong các digram nên trong 4
digram ZO, ZS, ZU, ZW có thể đoán ZW là th.
 Dòng 1 có cụm ZWSZ, nếu giả thiết rằng 4 chữ trên thuộc
một từ thì từ đó có dạng th_t, từ đó có thể kết luận rằng S
là mã hóa của a (vì từ THAT có tần suất xuất hiện cao).

22
Mã hóa thay thế đơn bảng (Monoalphabetic Substitution Cipher)





 Đến đây, ta đã phá mã đƣợc nhƣ sau:
23

Mã hóa thay thế đơn bảng (Monoalphabetic Substitution Cipher)
 Cứ tiếp tục nhƣ vậy, dĩ nhiên việc thử không phải lúc nào cũng
suôn sẻ, có những lúc phải thử và sai nhiều lần.
 Cuối cùng ta có đƣợc bản giải mã sau khi đã tách từ nhƣ sau:
it was disclosed yesterday that several informal but
direct contacts have been made with political
representatives of the enemy in moscow

 Nhƣ vậy việc phá mã dựa trên tần suất chữ cái tốn thời gian ít
hơn nhiều so với con số 6400 thiên niên kỷ.
=> Vì ứng một chữ cái trong bản gốc thì cũng là một chữ cái trong
bản mã nên vẫn bảo toàn quy tắc phân bố tần suất của các chữ cái.
24
Mã hóa thay thế đa bảng (Polyalphabetic Substitution Cipher)
 Thế kỷ thứ 15, một nhà ngoại
giao ngƣời Pháp tên là
Vigenere đã tìm ra phƣơng án
mã hóa thay thế đa bảng.

25
Blaise de
Vigenère

×