Bài giảng Cơ sở lý thuyết mật mã - Chương II: Các hệ mật khóa bí mật - Hoàng Thu Phương

Nội dung chính

 2.1. Giới thiệu về hệ mật khóa bí mật

 2.2. Các hệ mật thay thế đơn giản

 2.3. Các hệ mật thay thế đa biểu

 2.3.1. Hệ mật thay thế đa biểu

 2.3.2. Hệ mật Playfair

 2.3.3. Hệ mật Hill

 2.3.4. Hệ mật Vigenere

 2.3.5. Hệ mật Beaufort

 2.3.6. Khoảng giải mã duy nhất của các hệ mật thay thế

đa biểu tuần hoàn

pdf 120 trang yennguyen 3640
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Cơ sở lý thuyết mật mã - Chương II: Các hệ mật khóa bí mật - Hoàng Thu Phương", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Cơ sở lý thuyết mật mã - Chương II: Các hệ mật khóa bí mật - Hoàng Thu Phương

Bài giảng Cơ sở lý thuyết mật mã - Chương II: Các hệ mật khóa bí mật - Hoàng Thu Phương
Hoàng Thu Phương - Khoa ATTT 1
Hoàng Thu Phương - Khoa ATTT 2
CHƯƠNG 2
CÁC HỆ MẬT KHÓA BÍ MẬT
Hoàng Thu Phương - Khoa ATTT 3
Nội dung chính
 2.1. Giới thiệu về hệ mật khóa bí mật
 2.2. Các hệ mật thay thế đơn giản
 2.3. Các hệ mật thay thế đa biểu
 2.3.1. Hệ mật thay thế đa biểu
 2.3.2. Hệ mật Playfair
 2.3.3. Hệ mật Hill
 2.3.4. Hệ mật Vigenere
 2.3.5. Hệ mật Beaufort
 2.3.6. Khoảng giải mã duy nhất của các hệ mật thay thế 
đa biểu tuần hoàn
Hoàng Thu Phương - Khoa ATTT 4
Nội dung chính
 2.4. Các hệ mật thay thế không tuần hoàn
 2.4.1. Hệ mật khoá chạy
 2.4.2. Hệ mật Vernam
 2.5. Các hệ mật chuyển vị
 2.6. Các hệ mật tích
 2.7. Chuẩn mã dữ liệu (DES)
 2.7.1. Thuật toán DES
 2.7.2. Các chế độ hoạt động của DES
 2.7.3. Double DES và Triple DES
 2.8. Chuẩn mã dữ liệu tiên tiến (AES)
Hoàng Thu Phương - Khoa ATTT 5
2.1. Giới thiệu về hệ mật khóa bí mật
 Mã hóa cổ điển là phương pháp mã hóa đơn giản nhất 
xuất hiện đầu tiên trong lịch sử ngành mã hóa. Thuật 
toán đơn giản và dễ hiểu. Những phương pháp mã 
hóa này là cơ sở cho việc nghiên cứu và phát triển 
thuật toán mã hóa đối xứng được sử dụng ngày nay.
 Mọi thuật toán cổ điển đều là mã khóa đối xứng, vì ở 
đó thông tin về khóa được chia sẻ giữa người gửi và 
người nhận. MĐX là kiểu duy nhất trước khi phát 
minh ra khóa công khai (hệ mã không đối xứng) vào 
những năm 1970.
Hoàng Thu Phương - Khoa ATTT 6
 Mật mã đối xứng sử dụng cùng một khóa cho việc mã hóa và 
giải mã. Có thể nói MĐX là mã một khóa hay mã khóa riêng 
hay mã thỏa thuận.
 Hiện nay các MĐX và công khai tiếp tục phát triển và hoàn 
thiện. Mã công khai ra đời hỗ trợ mã đối xứng chứ không thay 
thế nó, do đó mã đối xứng đến nay vẫn được sử dụng rộng rãi.
 Có ba phương pháp chính trong mật mã khoá bí mật (mật mã 
khoá riêng hay mật mã cổ điển):
 Hoán vị
 Thay thế
 Xử lý bit (chủ yếu nằm trong các ngôn ngữ lập trình)
 Ngoài ra còn có phương pháp hỗn hợp thực hiện kết hợp các 
phương pháp trên mà điển hình là chuẩn mã dữ liệu (DES – Data 
Encryption Standard) của Mỹ.
2.1. Giới thiệu về hệ mật khóa bí mật
Hoàng Thu Phương - Khoa ATTT 7
 Định nghĩa 2.1: Một hệ mật là bộ 5 thoả 
mãn các điều kiện sau:
 1) là tập hữu hạn các bản rõ có thể
 2) là tập hữu hạn các bản mã có thể
 3) là tập hữu hạn các khoá có thể
 Đối với mỗi có một quy tắc mã hoá , 
và một quy tắc giải mã tương ứng: , ,sao 
cho: với .
2.1. Giới thiệu về hệ mật khóa bí mật
 , , , ,P CK E D
P
C
K
k K
ke E ke : P C
kd D kd : C P
 xxed kk x P
Hoàng Thu Phương - Khoa ATTT 8
2.1. Giới thiệu về hệ mật khóa bí mật
 Sơ đồ khối một hệ mật truyền tin mật:
Hoàng Thu Phương - Khoa ATTT 9
2.2. Các hệ mật thay thế đơn giản
 Các HMTT đơn biểu
 Khi khóa đã được chọn thì mỗi kí tự của bản rõ được ánh xạ đến 
một kí tự duy nhất của bản mã. Do mỗi cách mã hóa như vậy sẽ 
tương ứng với một hoán vị của bảng chữ và hoán vị đó chính là 
khóa của mã đã cho. Như vậy độ dài của khóa ở đây là 26 và số 
khóa có thể có là 26!. 
 Ví dụ: Ta có bản mã tương ứng với bản rõ trong bảng chữ đơn 
như sau:
Hoàng Thu Phương - Khoa ATTT 10
2.2. Các hệ mật thay thế đơn giản
 Mật mã dịch vòng (MDV):
Hoàng Thu Phương - Khoa ATTT 11
2.2. Các hệ mật thay thế đơn giản
 Xét ví dụ: k =5; bản rõ: meetmeatsunset
 B1: Biến bản rõ thành dãy số nguyên theo bảng trên, 
ta được dãy:
12.4.4.19.12.4.0.19.18.20.13.18.4.19
 B2: Cộng 5 vào mỗi giá trị trên và rút gọn tổng theo 
mod 26. Ta được dãy:
17.9.9.24.17.9.5.24.23.25.18.23.9.24
 B3: Biến dãy số ở B2 thành kí tự tương ứng. Ta 
được bản mã: RJJYRJFYXZSXJY
Hoàng Thu Phương - Khoa ATTT 12
2.2. Các hệ mật thay thế đơn giản
 Mã thay thế (MTT)
 Ví dụ: với phép TT trên, từ bản rõ: meetmeatsunset. 
Ta thu được bản mã: THHMTHXMVUSVHM
Hoàng Thu Phương - Khoa ATTT 13
2.2. Các hệ mật thay thế đơn giản
 Tính an toàn của mã trên bảng chữ đơn. Tổng 
cộng có 26! Xấp xỉ khoảng 4x1026 khóa. Với khá 
nhiều khóa vậy nhiều người nghĩ rằng mã trên 
bảng chữ đơn sẽ an toàn. Nhưng không phải vậy!
 Vấn đề ở đây là do:
 Các đặc trưng về ngôn ngữ, tần suất xuất hiện của các 
chữ trong bản rõ và chữ tương ứng trong bản mã là như 
nhau
 Nên thám mã có thể suy đoán được ánh xạ của một số 
chữ và từ đó dò tìm ra chữ mã cho các chữ khác.
o
Hoàng Thu Phương - Khoa ATTT 14
2.2. Các hệ mật thay thế đơn giản
 Tính dư thừa của ngôn ngữ và thám mã. Ngôn ngữ của loài 
người là dư thừa.Có một số chữ hoặc các cặp chữ hoặc bộ 
ba chữ được dùng thường xuyên hơn các bộ chữ cùng độ 
dài khác. Chẳng hạn như các bộ chữ sau đây trong tiếng 
Anh "th lrd s m shphrd shll nt wnt". 
 Tóm lại trong nhiều ngôn ngữ các chữ không được sử dụng 
thường xuyên như nhau. Trong tiếng Anh chữ E được sử 
dụng nhiều nhất; sau đó đến các chữ T, R, N, I, O, A, S. 
Một số chữ rất ít dùng như: Z, J, K, Q, X. 
 Bằng phương pháp thống kê, ta có thể xây dựng các bảng 
các tần suất các chữ đơn, cặp chữ, bộ ba chữ.
Hoàng Thu Phương - Khoa ATTT 15
2.2. Các hệ mật thay thế đơn giản
 Sử dụng bảng tần suất vào việc thám mã vì mã thế trên bảng chữ 
đơn không làm thay đổi tần suất tương đối của các chữ, có nghĩa 
là ta vẫn có bảng tần suất trên nhưng đối với bảng chữ mã tương 
ứng
Hoàng Thu Phương - Khoa ATTT 16
Khi đó ta có dự đoán 1 số vị trí trong xâu kí tự rõ là: 
T--- ------- -- -OT TOO ---- TO -----
 Suy luận tiếp tục ta có bản rõ:
2.2. Các hệ mật thay thế đơn giản
 Do đó có cách thám mã trên bảng chữ đơn như sau:
 Tính toán tần suất của các chữ trong bản mã
 So sánh với các giá trị đã biết
 Tìm kiếm các chữ đơn hay dùng A-I-E, bộ đôi NO và bộ ba RST; và các 
bộ ít dùng JK, X-Z..
 Trên bảng chữ đơn cần xác định các chữ dùng các bảng bộ đôi và bộ ba 
trợ giúp
 Ví dụ: Thám mã bản mã trên bảng chữ đơn, cho bản mã:
wklv phvvdjh lv qrw wrr kdug wr euhdn
 Dự đoán các bộ kí tự hay xuất hiện
THIS MESSAGE IS NOT TOO HARD TO BREAK
Đoán w và r là T và O.
Hoàng Thu Phương - Khoa ATTT 17
2.3. Các hệ mật thay thế đa biểu
 2.3.1. Hệ mật thay thế đa biểu
 2.3.2. Hệ mật Playfair
 2.3.3. Hệ mật Hill
 2.3.4. Hệ mật Vigenere
 2.3.5. Hệ mật Beaufort
 2.3.6. Khoảng giải mã duy nhất của các hệ mật 
thay thế đa biểu tuần hoàn
Hoàng Thu Phương - Khoa ATTT 18
2.3.1. Hệ mật thay thế đa biểu
 Yếu điểm của các mã pháp đơn biểu là phân bố tần 
suất của chúng phản ánh phân bố của bảng chữ cái 
cơ sở. Một mã pháp an toàn hơn về mặt mật mã sẽ 
thể hiện phân bố bằng phẳng hơn, điểu này sẽ 
không cho kẻ thám mã chút thông tin nào.
 Một hướng khác làm tăng độ an toàn cho mã trên 
bảng chữ là sử dụng nhiều bảng chữ để mã. Mỗi 
chữ sẽ được mã bằng bất kì chữ nào trong bản mã 
tùy thuộc vào ngữ cảnh khi mã hóa. Làm như vậy 
để trải bằng tần suất các chữ xuất hiện trong bản 
mã. Do đó làm mất bớt cấu trúc của bản rõ được 
thể hiện trên bản mã và làm cho mã thám đa bảng 
khó hơn.
Hoàng Thu Phương - Khoa ATTT 19
2.3.1. Các hệ mật thay thế đa biểu
 Ví dụ: Để san bằng phân bố ta kết hợp các chữ cái có 
phân bố cao với các chữ có phân bố thấp. Nếu chữ cái T 
đôi lúc được mã là a và lúc khác lại được mã thành b, và 
X đôi lúc được mã thành a và đôi lúc lại được mã thành 
b thì tần suất cao của T sẽ trộn với tần suất thấp của X sẽ 
tạo ra phân bố vừa phải hơn đối với a và b
 Ta sử dụng khóa để chỉ rõ chọn bảng nào được 
dùng cho từng chữ trong bản tin.
 Độ dài khóa là chu kì lặp của các bảng chữ. Độ dài 
càng lớn và nhiều chữ khác nhau được sử dụng 
trong từ khóa thì càng khó thám mã.
Hoàng Thu Phương - Khoa ATTT 20
2.3. 2. Hệ mật Playfair
 Mã Playfair
 Như chúng ta đã thấy không phải số khoá lớn trong mã bảng 
chữ đơn đảm bảo an toàn mã. Một trong các hướng khắc phục là 
mã bộ các chữ, tức là mỗi chữ sẽ được mã bằng một số chữ 
khác nhau tùy thuộc vào các chữ mà nó đứng cạnh.
 Playfair là một trong các mã như vậy, được sáng tạo bởi Charles 
Wheastone vào năm 1854 và mang tên người bạn là Baron 
Playfair. 
 Ma trận khoá Playfair. Cho trước một từ làm khoá, với điều kiện 
trong từ khoá đó không có chữ cái nào bị lặp. Ta lập ma trận 
Playfair là ma trận cỡ 5 x 5 dựa trên từ khoá đã cho và gồm các 
chữ trên bảng chữ cái, được sắp xếp theo thứ tự nhất định.
Hoàng Thu Phương - Khoa ATTT 21
2.3. 2. Hệ mật Playfair
 Quy tắc sắp xếp:
 Trước hết viết các chữ của từ khoá vào các hàng 
của ma trận bắt từ hàng thứ nhất. 
 Nếu ma trận còn trống, viết các chữ khác trên 
bảng chữ cái chưa được sử dụng vào các ô còn 
lại. Có thể viết theo một trình tự qui ước trước, 
chẳng hạn từ đầu bảng chữ cái cho đến cuối.
 Vì có 26 chữ cái tiếng Anh, nên thiếu một ô. 
Thông thuờng ta dồn hai chữ nào đó vào một ô 
chung, chẳng hạn I và J.
Hoàng Thu Phương - Khoa ATTT 22
2.3. 2. Hệ mật Playfair
 Giả sử sử dụng từ khoá MONARCHY. Lập ma 
trận khoá Playfair tương ứng như sau: 
 Cách mã hóa và giải mã: 
Chia bản rõ thành từng cặp chữ. Nếu một cặp 
nào đó có hai chữ như nhau, thì ta chèn thêm 
một chữ lọc chẳng hạn X. Ví dụ, trước khi mã 
“balloon” biến đổi thành “ba lx lo on”.
Hoàng Thu Phương - Khoa ATTT 23
2.3. 2. Hệ mật Playfair
 Nếu cả hai chữ trong cặp đều rơi vào cùng một hàng, thì mã 
mỗi chữ bằng chữ ở phía bên phải nó trong cùng hàng của ma 
trận khóa (cuộn vòng quanh từ cuối về đầu), chẳng hạn “ar”
biến đổi thành “RM” 
 Nếu cả hai chữ trong cặp đều rơi vào cùng một cột, thì mã mỗi 
chữ bằng chữ ở phía bên dưới nó trong cùng cột của ma trận 
khóa (cuộn vòng quanh từ cuối về đầu), chẳng hạn “mu” biến 
đổi thành “CM” 
Hoàng Thu Phương - Khoa ATTT 24
2.3. 2. Hệ mật Playfair
 Trong các trường hợp khác, mỗi chữ trong cặp được mã 
bởi chữ cùng hàng với nó và cùng cột với chữ cùng cặp 
với nó trong ma trận khóa. Chẳng hạn, “hs” mã thành 
“BP”, và “ea” mã thành “IM” hoặc “JM” (tuỳ theo sở 
thích)
Hoàng Thu Phương - Khoa ATTT 25
2.3. 2. Hệ mật Playfair
 An toàn của mã Playfair:
 An toàn được nâng cao so hơn với bảng đơn, vì ta có tổng 
cộng 26 x 26 = 676 cặp. Mỗi chữ có thể được mã bằng 7 
chữ khác nhau, nên tần suất các chữ trên bản mã khác tần 
suất của các chữ cái trên văn bản tiếng Anh nói chung. 
 Muốn sử dụng thống kê tần suất, cần phải có bảng tần suất 
của 676 cặp để thám mã (so với 26 của mã bảng đơn). Như 
vậy phải xem xét nhiều trường hợp hơn và tương ứng sẽ có 
thể có nhiều bản mã hơn cần lựa chọn. Do đó khó thám mã 
hơn mã trên bảng chữ đơn.
 Mã Playfair được sử dụng rộng rãi nhiều năm trong giới 
quân sự Mỹ và Anh trong chiến tranh thế giới thứ 1. Nó có 
thể bị bẻ khoá nếu cho trước vài trăm chữ, vì bản mã vẫn 
còn chứa nhiều cấu trúc của bản rõ. 
Hoàng Thu Phương - Khoa ATTT 26
2.3.3. Hệ mật Hill
 Ý tưởng: là lấy m tổ hợp tuyến tính của m kí 
tự của một phần tử bản rõ để tạo ra một phần 
tử m kí tự bản mã.
 Mô tả:
Hoàng Thu Phương - Khoa ATTT 27
2.3.3. Hệ mật Hill (tiếp)
 Ví dụ: Giả sử cho khóa: sử dụng mật mã Hill 
với bản rõ “July”
 Ta thấy rằng ma trận có cỡ 2 × 2 nên bản rõ sẽ được chia 
thành các phần tử, mỗi phần tử chứa 2 kí tự như sau: 
“ju” tương ứng với (x1, x2) = (9, 20) và “ly” tương ứng 
với (x3, x4) = (11, 24)
 Mã hóa:
73
811
k
Hoàng Thu Phương - Khoa ATTT 28
2.3.3. Hệ mật Hill (tiếp)
 Giải mã:
 Tính:
Kiểm tra thấy rằng det(k) = 11 × 7 – 3 × 8 mod 26 = 1, rõ 
ràng ucln(26, det(k)) = 1, vậy k khả nghịch trên Z26
 Khi đó:
(3 4).k-1 = (9 20) và (11 22).k-1 = (11 24)
Hoàng Thu Phương - Khoa ATTT 29
2.3.3. Hệ mật Hill (tiếp)
 Nếu như tấn công hệ mật Hill chỉ biết bản mã thì rất khó 
nhưng nếu tấn công biết bản rõ thì lại không khó.
 Trước tiên hãy giả sử kẻ tấn công đã biết được giá trị m. Giả 
sử anh ta có ít nhất m cặp bản rõ và bản mã khác nhau là: 
xj = (x1j, x2j, . . . , xmj) và
yj = (y1j, y2j, . . . , ymj)
Sao cho yj = eK(xj), 1 ≤ j ≤ m.
 Nếu xây dựng hai ma trận m × m là X = (xi,j) và Y = (yi,j), thì 
chúng ta có phương trình ma trận Y = XK, trong đó ma trận 
khóa K cỡ m × m chưa biết 
 Ma trận X có nghịch đảo và kẻ tấn công có thể tính K = X-1Y
và do đó phá được hệ mật.
 Kẻ tấn công sẽ làm gì khi không biết m?
Hoàng Thu Phương - Khoa ATTT 30
2.3.4. Hệ mật Vigenere
 Mã thế đa bảng đơn giản nhất là mã Vigenere. 
 Thực chất quá trình mã hoá Vigenere là việc tiến 
hành đồng thời dùng nhiều mã Ceasar cùng một 
lúc trên bản rõ với nhiều khoá khác nhau. Khoá 
cho mỗi chữ dùng để mã phụ thuộc vào vị trí của 
chữ đó trong bản rõ và được lấy trong từ khoá 
theo thứ tự tương ứng.
Hoàng Thu Phương - Khoa ATTT 31
2.3.4. Hệ mật Vigenere (tiếp)
 Cách làm:
 Giả sử khoá là một chữ có độ dài d được viết dạng
K = K1K2Kd, trong đó Ki nhận giá trị nguyên từ 0 đến 25.
 Ta chia bản rõ thành các khối gồm d chữ. Mỗi chữ thứ i 
trong khối chỉ định dùng bảng chữ thứ i với tịnh tiến là Ki
giống như trong mã Ceasar.
 Trên thực tế khi mã ta có thể sử dụng lần lượt các bảng chữ 
và lặp lại từ đầu sau d chữ của bản rõ. Vì có nhiều bảng chữ 
khác nhau, nên cùng một chữ ở các vị trí khác nhau sẽ có các 
bước nhảy khác nhau, làm cho tần suất các chữ trong bản mã 
dãn tương đối đều. 
 Giải mã đơn giản là quá trình làm ngược lại. Nghĩa là dùng 
bản mã và từ khoá với các bảng chữ tương ứng, nhưng với 
mỗi chữ sử dụng bước nhảy lui lại về đầu 
Hoàng Thu Phương - Khoa ATTT 32
2.3.4. Hệ mật Vigenere (tiếp)
 Ví dụ:
 Giả sử d=6 và từ khóa là CIPHER, từ khóa này 
tương ứng với dãy số:
k = (2, 8, 15, 7, 4, 17)
 Giả sử bản rõ: meetmeatsunset. Chuyển các kí tự 
rõ thành mã trên Z26 rồi cộng với từ khóa
 Ta nhận được bản mã tương ứng: 
OMTAQVCBHBRJGB
Hoàng Thu Phương - Khoa ATTT 33
2.3.4. Hệ mật Vigenere (tiếp)
 Trên thực tế để hỗ trợ mã Vigenere, người ta đã tạo 
ra trang Saint – Cyr để trợ giúp cho việc mã và giải 
mã thủ công. 
 Đó là một bảng cỡ 26 x 26 có tên tương ứng là các 
chữ cái trong bảng chữ tiếng Anh. Hàng thứ i là 
tịnh tiến i chữ của bảng chứ cái. Khi đó chữ ở cột 
đầu tiên chính là khoá của bảng chữ ở cùng hàng. 
Do đó chữ mã của một chữ trong bản rõ nằm trên 
cùng cột với chữ đó và nằm trên hàng tương ứng 
với chữ khoá. 
Hoàng Thu Phương - Khoa ATTT 34
2.3.4. Hệ mật Vigenere (tiếp)
Hoàng Thu Phương - Khoa ATTT 35
2.3.4. Hệ mật Vigenere (tiếp)
 An toàn của mã Vigenere.
 Như vậy có chữ mã khác nhau cho cùng một chữ của bản 
rõ. Suy ra tần suất của các chữ bị là phẳng, nghĩa là tần 
suất xuất hiện các chữ trên bản mã tương đối đều nhau. 
Tuy nhiên chưa mất hoàn toàn, do độ dài của khoá có 
hạn, nên có thể tạo nên chu kỳ vòng lặp.
 Kẻ thám mã bắt đầu từ tần suất của chữ để xem có phải 
đây là mã đơn bảng chữ hay không. Giả sử đây là mã đa 
bảng chữ, sau đó xác định số bảng chữ trong từ khoá 
(dùng phương pháp Kasiski) và lần tìm từng chữ. Như 
vậy cần tăng độ dài từ khoá để tăng số bảng chữ dùng 
khi mã để “là” tần suất của các chữ.
Hoàng Thu Phương - Khoa ATTT 36
2.3.4. Hệ mật Vigenere (tiếp)
 Phương pháp Kasiski:
 Dựa trên quy luật tiếng anh: không chỉ các chữ cái mà các 
nhóm chữ cái lẫn các từ đầy đủ đều lặp lại
 Ví dụ: 
 Các từ kết thúc bằng: s, -th, -ed, -ion, -tion, 
 Bắt đầu bằng kí tự: im-, in-, un-,
 Các từ: of, and, with, are, is, that,  xuất hiện với tần suất cao
 Tuân theo quy tắc: nếu một thông báo đư ... biệt ở đầu ra với 
một xác suất cho trước.
 Nếu tìm được một thể hiện đầu vào - đầu ra với xác suất 
cao. Thì có thể luận ra khoá con được sử dụng trong vòng 
đó
 Sau đó có thể lặp lại cho nhiều vòng (với xác suất giảm 
dần) 
 Cặp đúng cho bít khoá như nhau
 Cặp sai cho giá trị ngẫu nhiên
 Đối với số vòng lớn, xác suất để có nhiều cặp đầu vào 64 bít 
thoả mãn yêu cầu là rất nhỏ.
2.7.1. Thuật toán DES
Hoàng Thu Phương - Khoa ATTT 90
 Qui trình thám mã như sau: thực hiện mã hoá lặp 
lại với cặp bản rõ có XOR đầu vào biết trước cho 
đến khi nhận được XOR đầu ra mong muốn
 Khi đó có thể tìm được 
 nếu vòng trung gian thỏa mãn XOR yêu cầu thì có cặp 
đúng
 nếu không thì có cặp sai, tỷ lệ sai tương đối cho tấn công 
đã biết trước dựa vào thống kê.
 Sau đó có thể tạo ra các khoá cho các vòng theo 
suy luận sau
2.7.1. Thuật toán DES
Hoàng Thu Phương - Khoa ATTT 91
2.7.1. Thuật toán DES
 Thám mã tuyến tính: nó cũng dùng phương pháp thống kê. Cơ 
sở của phương pháp dựa trên tìm xấp xỉ tuyến tính 
 Tìm xấp xỉ tuyến tính với xác suất p != ½
P[i1, i2,..., ia] (+) C[j1, j2,..., ib] = K[k1, k2,..., kc]
trong đó ia, jb, kc là các vị trí bit trong bản rõ, mã, khoá.
 Điều kiện trên cho phương trình tuyến tính của các bít khoá. 
 Để nhận được 1 bít khoá sử dụng thuật toán lân cận tuyến tính
 Sử dụng một số lớn các phương trình thử nghiệm. Hiệu quả cho bởi |p – 1/2|
 Trong quá trình tìm hiểu DES người ta đã hệ thống lại các tiêu chuẩn thiết 
kế DES. Như báo cáo bởi Copperscmith trong [COPP94]: 
 Có 7 tiêu chuẩn đối với S box được cung cấp để đảm bảo
 tính phi tuyến tính
 chống tham mã sai phân
 Rối loạn tốt
 Có 3 tiêu chuẩn cho hoán vị P để tăng độ khuếch tán
Hoàng Thu Phương - Khoa ATTT 92
2.7.2. Các chế độ hoạt động của DES
 Có 4 chế độ làm việc đã được phát triển cho 
DES:
 Chế độ quyển mã điện tử (ECB)
 Chế độ phản hồi mã (CFB)
 Chế độ liên kết khối mã (CBC)
 Chế độ phản hồi đầu ra (OFB) 
Hoàng Thu Phương - Khoa ATTT 93
 Chế độ quyển mã điện tử (ECB)
 Mẫu tin được chia thành các khối độc lập, sau đó mã từng khối
 Mỗi khối là giá trị cần thay thế như dùng sách mã, do đó có tên như vậy
 Mỗi khối được mã độc lập với các mã khác Ci = DESK1(Pi)
 Khi dùng: truyền an toàn từng giá trị riêng lẻ
2.7.2. Các chế độ hoạt động của DES
Hoàng Thu Phương - Khoa ATTT 94
 Ưu và nhược của ECB:
 Lặp trên bản mã được chỉ rõ lặp trên bản tin
 Nếu dóng đúng khối
 Đặc biệt với hình ảnh
 Hoặc với bản tin mà thay đổi rất ít sẽ trở thành đối 
tượng để thám mã
 Nhược điểm là các khối được mã độc lập
 Được sử dụng chủ yếu khi gửi một ít dữ liệu
2.7.2. Các chế độ hoạt động của DES
Hoàng Thu Phương - Khoa ATTT 95
2.7.2. Các chế độ hoạt động của DES
 Chế độ phản hồi mã 
(CFB)
 Bản tin coi như dòng 
các bít
 Bổ sung vào đầu ra của 
mã khối
 Kết quả phản hồi trở lại 
cho giai đoạn tiếp theo, 
vì vậy có tên như vậy.
 Nói chung cho phép số bít phản hồi là 1, 8, 64, hoặc tuỳ ý: ký hiệu 
tương ứng là CFB1, CFB8, CFB64, 
 Thường hiệu quả sử dụng cả 64 bít
Ci = Pi XOR DESK1(Ci-1); C-1 = IV
 Được dùng cho mã dữ liệu dòng, xác thực
Hoàng Thu Phương - Khoa ATTT 96
2.7.2. Các chế độ hoạt động của DES
 Ưu và nhược điểm của CFB
 Được dùng khi dữ liệu đến theo byte/bit
 Chế độ dòng thường gặp nhất
 Hạn chế là cần ngăn chuồng khi mã khối sau mỗi n bit
 Nhận xét là mã khối được dùng ở chế độ mã ở cả hai đầu
 Lỗi sẽ lan ra một vài block sau lỗi
Hoàng Thu Phương - Khoa ATTT 97
2.7.2. Các chế độ hoạt động của DES
 Chế độ liên kết khối mã (CBC)
 Các mẫu tin được chia thành các khối
 Nhưng chúng được liên kết với nhau trong quá trình mã hoá
 Các block được sắp thành dãy, vì vậy có tên như vậy
 Sử dụng véctơ ban đầu IV để bắt đầu quá trình
Ci = DESK1(Pi XOR Ci-1); C-1 = IV
 Dùng khi: mã dữ liệu lớn, xác thực
Hoàng Thu Phương - Khoa ATTT 98
2.7.2. Các chế độ hoạt động của DES
 Ưu và nhược của CBC
 Mỗi khối mã phụ thuộc vào tất cả các khối bản rõ
 Sự thay đổi của bản tin ở đâu đó sẽ kéo theo sự thay đổi của mọi 
khối mã
 Cần giá trị véc tơ ban đầu IV được biết trước bởi người gửi và 
người nhận
 Tuy nhiên nếu IV được gửi công khai, kẻ tấn công có thể thay đổi 
bít đầu tiên và thay đổi cả IV để bù trừ
 Vậy IV cần phải có giá trị cố định trước hoặc mã hoá trong chế độ 
ECB và gửi trước phần còn lại của mẩu tin
 Ở cuối bản tin, để kiểm soát các block ngắn còn lại
 Có thể bổ sung các giá trị không phải dữ liệu như NULL
 Hoặc dùng bộ đệm cuối với số byte đếm kích thước của nó.
 Ví dụ: [ b1 b2 b3 0 0 0 0 5] <- 3 data bytes, vậy có 5 bytes 
dành cho đệm và đếm
Hoàng Thu Phương - Khoa ATTT 99
2.7.2. Các chế độ hoạt động của DES
 Chế độ phản hồi đầu ra (OFB)
 Mẩu tin xem như dòng bit
 Đầu ra của mã được bổ sung cho mẩu tin
 Đầu ra do đó là phản hồi, do đó có tên như vậy
 Phản hồi ngược là độc lập đối với bản tin
 Có thể được tính trước
Ci = Pi XOR Oi; Oi = DESK1(Oi-1); O-1 = IV
 Được dùng cho mã dòng trên các kênh âm thanh
Hoàng Thu Phương - Khoa ATTT 100
2.7.2. Các chế độ hoạt động của DES
 Ưu điểm và nhược điểm của OFB
 Được dùng khi lỗi phản hồi ngược lại hoặc ở nơi cần mã trước khi 
mẩu tin sẵn sàng
 Rất giống CFB
 Nhưng phản hồi là từ đầu ra của mã và độc lập với mẩu tin
 Là biến thể của mã Vernam, suy ra không sử dụng lại với cùng một 
dãy (Key + IV)
 Người gửi và người nhận phải đồng bộ, có phương pháp khôi phục 
nào đó là cần thiết để đảm bảo việc đó.
 Nguyên bản chỉ rõ m bit phản hồi ngược theo các chuẩn
 Các nghiên cứu tiếp theo chỉ ra rằng chỉ có OFB64 là dùng được
Hoàng Thu Phương - Khoa ATTT 101
2.7.3. Double DES và Triple DES
 DES bội hai
 Mã hóa:
C = DESK2[DESK1(M)]
 Giải mã:
M = DESK1
-1[DESK2
-1(C)]
 Có 256 sự lựa chọn cho 
khóa K1 và 2
56 sự lựa chọn 
cho khóa K2. Bởi vậy có 
2112 sự lựa chọn cho cặp 
khóa (K1, K2) 
Hoàng Thu Phương - Khoa ATTT 102
2.7.3. Double DES và Triple DES
 DES bội ba
 Mã hóa:
 Giải mã:
 Với TDES việc tìm 
khóa vét cạn yêu cầu 
khoảng:
2112 = 5,1923.1023 phép 
tính TDES, bởi vậy 
thực tế khó có thể thám 
mã thành công.
   MDESDESDESC
1K
1
2K1K
   CDESDESDESM 1
1K2K
1
1K
Hoàng Thu Phương - Khoa ATTT 103
 Nguồn gốc:
 Rõ ràng cần phải thay thế DES, vì có những tấn công về mặt lý thuyết có 
thể bẻ được nó. 
 Do đó Viện chuẩn quốc gia Hoa kỳ US NIST ra lời kêu gọi tìm kiếm chuẩn 
mã mới vào năm 1997. Sau đó có 15 đề cử được chấp nhận vào tháng 6 
năm 1998. Và được rút gọn còn 5 ứng cử viên vào tháng 6 năm 1999. Đến 
tháng 10 năm 2000, mã Rijndael được chọn làm chuẩn mã nâng cao và 
được xuất bản là chuẩn FIPS PUB 197 vào 11/2001.
 Yêu cầu của AES
 Là mã khối đối xứng khoá riêng.
 Kích thước khối dữ liệu 128 bit và độ dài khoá là tùy biến: 128, 192 hoặc 
256 bit.
 Chuẩn mã mới phải mạnh và nhanh hơn Triple DES. Mã mới có cơ sở lí 
thuyết mạnh để thời gian sống của chuẩn khoảng 20-30 năm (cộng thêm 
thời gian lưu trữ).
 Khi đưa ra thành chuẩn yêu cầu cung cấp chi tiết thiết kế và đặc tả đầy đủ. 
Đảm bảo rằng chuẩn mã mới cài đặt hiệu quả trên cả C và Java.
2.8. Chuẩn mã dữ liệu tiên tiến (AES)
Hoàng Thu Phương - Khoa ATTT 104
2.8. Chuẩn mã dữ liệu tiên tiến (AES)
 Cơ sở toán học của AES: trong AES các phép 
toán cộng và nhân được thực hiện trên các byte 
trong trường hữu hạn GF(28)
 Phép cộng: 
 A = (a1 a2 a3 a4 a5 a6 a7 a8); B = (b1 b2 b3 b4 b5 b6 b7 b8)
 C = A + B = (c1 c2 c3 c4 c5 c6 c7 c8), trong đó:Ci = ai+bi
mod 2, 1 ≤ i ≤ 8.
 Ví dụ: tổng của A = 73H; B = 4EH là:
 Dạng cơ số Hexa: 73H + 4EH = 3DH
 Dạng nhị phân: 01110011 + 01001110 = 00111101
 Dạng đa thức: 
(x6 + x5 + x4 + x + 1) + (x6 + x3 + x2 + x) = (x5 + x4 + x3 + x2 + 1)
Hoàng Thu Phương - Khoa ATTT 105
2.8. Chuẩn mã dữ liệu tiên tiến (AES)
 Phép nhân: Phép nhân được thực hiện trên 
GF(28) bằng cách nhân hai đa thức rút gọn theo 
mođulo của một đa thức bất khả quy m(x). 
Trong AES đa thức bất khả quy này là:
m(x) = x8 + x4 + x3 + x +1.
 Ví dụ: A = C3H, B = 85H tương ứng với
a(x) = x7 + x6 + x +1 và b(x) = x7 + x2 + 1. Khi đó: 
C= A.B
c(x) = a(x).b(x) mod (x8 + x4 + x3 + x +1)
c(x) = x7 + x5 + x3 +x2 + x hay C = AEH = 10101110 
Hoàng Thu Phương - Khoa ATTT 106
 Chuẩn mã nâng cao AES – Rijndael: có 
các đặc trưng sau:
 Có 128/192/256 bit khoá và 128 bit khối dữ liệu. 
 Lặp hơi khác với Fiestel
 Chia dữ liệu thành 4 nhóm – 4 byte
 Thao tác trên cả khối mỗi vòng
 Thiết kế để: 
 chống lại các tấn công đã biết
 tốc độ nhanh và nén mã trên nhiều CPU
 Đơn giản trong thiết kế
2.8. Chuẩn mã dữ liệu tiên tiến (AES)
Hoàng Thu Phương - Khoa ATTT 107
 Xử lý khối dữ liệu 128 bit như 4 nhóm của 4 byte: 128 = 4*4*8 
bit. Mỗi nhóm nằm trên một hàng. Ma trận 4 hàng, 4 cột với mỗi 
phần tử là 1 byte coi như trạng thái được xử lý qua các vòng mã 
hoá và giải mã.
 Khoá mở rộng thành mảng gồm 44 từ 32 bit w[i]. 
 Có tùy chọn 9/11/13 vòng, trong đó mỗi vòng bao gồm 
 Phép thế byte (dùng một S box cho 1 byte)
 Dịch hàng (hoán vị byte giữa nhóm/cột)
 Trộn cột (sử dụng nhân ma trận của các cột)
 Cộng khoá vòng (XOR trạng thái dữ liệu với khoá vòng).
 Mọi phép toán được thực hiện với XOR và bảng tra, nên rất nhanh và hiệu 
quả.
2.8. Chuẩn mã dữ liệu tiên tiến (AES)
Hoàng Thu Phương - Khoa ATTT 108
2.8. Chuẩn mã dữ liệu tiên tiến (AES)
 Sơ đồ Rijndael
Hoàng Thu Phương - Khoa ATTT 109
Một vòng AES
2.8. Chuẩn mã dữ liệu tiên tiến (AES)
Hoàng Thu Phương - Khoa ATTT 110
 Sau đây ta xét chi tiết hơn các quá trình mã hoá, 
sinh khoá và giải mã AES:
 Quá trình mã gồm 4 bước sau:
 1. AddRoundKey - mỗi byte của khối được kết hợp với khóa con, 
các khóa con này được tạo ra từ quá trình tạo khóa con Rijndael
2.8. Chuẩn mã dữ liệu tiên tiến (AES)
Hoàng Thu Phương - Khoa ATTT 111
 Mỗi byte trạng thái được thay bởi byte trên hàng xác định bởi 4 bit trái và cột 
xác định bởi 4 bit phải.
 Chẳng hạn {95} được thay bởi hàng 9, cột 5, mà giá trị sẽ là {2A}.
 S box được xây dựng sử dụng hoán vị các giá trị trong GF(28) đã được xác 
định trong chương trước.
 Thiết kế để chống mọi tấn công đã biết
2.8. Chuẩn mã dữ liệu tiên tiến (AES)
 2. SubBytes - đây là quá trình thay thế 
(phi tuyến) trong đó mỗi byte sẽ được 
thay thế bằng một byte khác theo bảng 
tra
 Phép thê byte đơn giản
 Sử dụng một bảng 16 x 16 byte chứa 
hoán vị của tất cả 256 giá trị 8 bit
Hoàng Thu Phương - Khoa ATTT 112
 3. ShiftRows - đổi chỗ, các 
hàng trong khối được dịch 
vòng
 Dịch hàng vòng quanh 
trên mỗi hàng
 Hàng 1 không đổi
 Hàng 2 dịch vòng quanh 
1 byte sang trái
2.8. Chuẩn mã dữ liệu tiên tiến (AES)
 Hàng 3 dịch vòng quanh 2 byte sang trái
 Hàng 4 dịch vòng quanh 3 byte sang trái
 Giải mã thực hiện dịch ngược lại sang phải
 Vì trạng thái được xử lý bởi cột, bước này thực 
chất là hoán vị byte giữa các cột.
Hoàng Thu Phương - Khoa ATTT 113
 4. MixColumns - quá trình trộn làm việc 
theo các cột trong khối theo một chuyển 
đổi tuyến tính.
 Có thể biểu diễn mỗi cột mới là nghiệm 
của 4 phương trình
 để tìm ra byte mới trong mỗi cột
 Mã yêu cầu sử dụng ma trận nghịch đảo
 Với hệ số lớn thì tính toán khó khăn 
hơn
2.8. Chuẩn mã dữ liệu tiên tiến (AES)
 Có các đặc trưng khác của cột như sau:
 Mỗi cột là một đa thức bậc 3 gồm 4 số hạng
 Với mỗi phần tử là một byte tương ứng với phần tử trong 
GF(28).
 Các đa thức nhân tính theo Modulo (x4+1).
Hoàng Thu Phương - Khoa ATTT 114
2.8. Chuẩn mã dữ liệu tiên tiến (AES)
 Bốn byte trong từng cột được kết hợp lại theo một phép 
biến đổi tuyến tính khả nghịch. Mỗi khối 4 byte đầu vào 
sẽ cho một khối 4 byte ở đầu ra với tính chất là mỗi byte 
ở đầu vào đều ảnh hưởng tới cả 4 byte đầu ra. 
 Cùng với bước ShiftRows, MixColumns đã tạo ra tính 
chất khuếch tán cho thuật toán. Mỗi cột được xem như 
một đa thức trong trường hữu hạn và được nhân với đa 
thức
c(x) = 3x3 + x2 + x + 2 (modulo x4 + 1)
Vì thế, bước này có thể được xem là phép nhân ma trận 
trong trường hữu hạn. 
Hoàng Thu Phương - Khoa ATTT 115
 Mở rộng khoá AES
 Dùng khoá 128 bit (16 byte) và mở rộng thành mảng 
gồm 44/52/60 từ 32 bit.
 Bắt đầu bằng việc copy khoá vào 4 từ đầu
 Sau đó tạo quay vòng các từ mà phụ thuộc vào giá trị ở 
các vị trí trước và 4 vị trí sau 
 3 trong 4 trường hợp chỉ là XOR chúng cùng nhau
 Mỗi cái thứ 4 có S box kết hợp quay và XOR với hằng số trước 
đó, trước khi XOR cùng nhau
 Thiết kế chống các tấn công đã biết
2.8. Chuẩn mã dữ liệu tiên tiến (AES)
Hoàng Thu Phương - Khoa ATTT 116
 Giải mã AES
 Giải mã ngược lại không duy nhất vì các bước thực hiện theo thứ 
tự ngược lại.
 Nhưng có thể xác định mã ngược tương đương với các bước đã 
làm đối với mã
 Nhưng sử dụng ngược lại với từng bước
 Với khoá con khác nhau
 Thực hiện được vì kết quả không thay đổi khi
 Đổi lại phép thế byte và dịch các hàng
 Đổi lại việc trộn các cột và bổ sung khoá vòng
 Lý do mở rộng khoá: các tiêu chuẩn thiết kế bao gồm
 Giả sử biết một phần khoá, khi đó không đủ để biết nhiều hơn, tức là 
các khoá con khác hoặc khoá nói chung.
 Phép biến đổi nghịch đảo được.
 Nhanh đối với nhiều kiểu CPU.
2.8. Chuẩn mã dữ liệu tiên tiến (AES)
Hoàng Thu Phương - Khoa ATTT 117
 Sử dụng hằng số vòng để làm mất tính đối xứng
 Khuếch tán bit khoá thành khoá con cho các vòng
 Có đủ tính phi đối xứng để chống thám mã
 Đơn giản trong việc giải mã
 Các khía cạnh cài đặt: 
 Có thể cài đặt hiệu quả trên CPU 8 bit
 Phép thế byte làm việc trên các byte sử dụng bảng với 256 đầu vào.
 Dịch hàng là phép dịch byte đơn giản
 Cộng khoá vòng làm việc trên byte XOR
 Các cột hỗn hợp yêu cầu nhân ma trận trong GF(28) mà làm việc trên 
giá trị các byte, có thể đơn giản bằng cách tra bảng
2.8. Chuẩn mã dữ liệu tiên tiến (AES)
Hoàng Thu Phương - Khoa ATTT 118
 có thể cài đặt hiệu quả trên CPU 32 bit
 Xác định lại các bước để sử dụng từ 32 bit
 Có thể tính trước 4 bảng với 256 đầu vào
 Sau đó mỗi cột trong mỗi vòng có thể tính bằng cách tra 4 
bảng và 4 XOR
 Cần 16 Kb để lưu các bảng
 Những nhà thiết kế tin tưởng rằng việc cài đặt rất hiệu quả 
này là yếu tố cơ bản trong việc chọn nó là mã AES 
2.8. Chuẩn mã dữ liệu tiên tiến (AES)
Hoàng Thu Phương - Khoa ATTT 119
2.8. Chuẩn mã dữ liệu tiên tiến (AES)
 Độ an toàn của AES:
 Thiết kế và độ dài khóa của thuật toán AES (128, 192 và 
256 bít) là đủ an toàn để bảo vệ các thông tin được xếp 
vào loại TỐI MẬT (secret). Các thông tin TUYỆT MẬT 
(top secret) sẽ phải dùng khóa 192 hoặc 256 bít.
 Một vấn đề khác nữa là cấu trúc toán học của AES. 
Không giống với các thuật toán mã hóa khác, AES có 
mô tả toán học khá đơn giản. Tuy điều này chưa dẫn đến 
mối nguy hiểm nào nhưng một số nhà nghiên cứu sợ 
rằng sẽ có người lợi dụng được cấu trúc này trong tương 
lai.
Hoàng Thu Phương - Khoa ATTT 120
2.8. Chuẩn mã dữ liệu tiên tiến (AES)
 Vào thời điểm năm 2006, dạng tấn công lên AES 
duy nhất thành công là tấn công kênh bên (side 
channel attack).
 Tấn công kênh bên không tấn công trực tiếp vào 
thuật toán mã hóa mà thay vào đó, tấn công lên 
các hệ thống thực hiện thuật toán có sơ hở làm lộ 
dữ liệu

File đính kèm:

  • pdfbai_giang_co_so_ly_thuyet_mat_ma_chuong_ii_cac_he_mat_khoa_b.pdf