Từ giả thiết này, yêu cầu ứng dụng hệ thống tính toán hiệu năng cao, thuật toán di truyền Genetic Algorithm để xây dựng thuật toán dạng thám mã “hộp đen” để tìm ra khoá mật đã sử dụng để
Trang 1iii
MỤC LỤC
Trang phụ bìa
Lời cam đoan i
Lời cảm ơn ii
Mục lục iii
Danh mục các từ viết tắt tiếng Anh vi
Danh mục các bảng vii
Danh mục các hình vẽ, đồ thị viii
MỞ ĐẦU 1
Chương I GIỚI THIỆU VỀ CHUẨN MÃ HÓA DỮ LIỆU DES (DATA ENCRYPTION STANDARD) 3
1.1 Giới thiệu về Thuật toán mã hoá DES 3
1.2 Quy trình mã hóa theo DES 4
1.3 Lập mã và giải mã DES 4
1.3.1 Quy trình lập mã DES 4
1.3.2 Thực hiện mã hóa DES theo sơ đồ 6
1.3.3 Tính các khóa con k1, k2, , k16 từ khóa gốc K 7
1.3.4 Tính hàm f(Ri-1, ki) 9
1.3.5 Quy trình giải mã DES 12
1.3.6 Độ an toàn của Chuẩn mã hóa dữ liệu DES 12
1.4 Các chế độ mã hóa của DES 13
1.4.1 Chế độ bản mã cơ bản (EBC) 13
1.4.2 Chế độ liên kết khối mã (CBC) 14
Chương II CÁC PHƯƠNG PHÁP THÁM MÃ CHUẨN MÃ HÓA DỮ LIỆU DES, CÁC HỆ THỐNG CHUYÊN DỤNG PHỤC VỤ THÁM MÃ DES 15
2.1 Một số khái niệm cơ bản 15
2.2 Các phương pháp thám mã 16
2.2.1 Thám mã đường tắt 16
2.2.1.1 Thám mã vi sai 16
Trang 2iv
2.2.1.2 Thám mã tuyến tính 19
2.2.1.3 Thám mã phi tuyến 19
2.2.1.4 Thám mã vi sai tuyến tính 20
2.2.1.5 Một số phương pháp thám mã đường tắt khác 20
2.2.2 Thám mã hộp đen (vét cạn để tìm khóa) 20
2.3 Các hệ thống chuyên dụng phục vụ thám mã 21
2.3.1 Các phần cứng chuyên dụng 21
2.3.2 Các hệ thống tính toán hiệu năng cao 22
Chương III NGHIÊN CỨU, ĐỀ XUẤT PHƯƠNG PHÁP THÁM MÃ DES 24
3.1 Mô tả bài toán thám mã DES 24
3.1.1 Các giả thiết của bài toán 24
3.1.2 Chi tiết hóa bài toán và các yếu tố đầu vào 24
3.2 Xây dựng thuật toán nhận dạng bản rõ tiếng Anh 25
3.2.1 Vai trò của nhận dạng bản rõ tự động trong thám mã “vét cạn” 26
3.2.2 Một số phương pháp nhận dạng bản rõ tự động 26
3.2.2.1 Nhận dạng dựa vào từ điển 26
3.2.2.2 Nhận dạng dựa trên tập hợp từ, cụm từ giả định 27
3.2.2.3 Nhận dạng dựa vào phương pháp thống kê đặc trưng ngôn ngữ 27
3.2.3 Xây dựng thuật toán nhận dạng bản rõ dựa vào phương pháp thống kê đặc trưng ngôn ngữ 28
3.2.3.1 Một số khái niệm cơ sở về “bản rõ” 28
3.2.3.2 Thuật toán nhận dạng bản rõ 29
3.3 Tìm hiểu thuật toán di truyền (GAs) 36
3.3.1 Giới thiệu 36
3.3.2 Thuật toán di truyền nhị phân 36
3.3.2.1 Thuật toán di truyền nhị phân - sự chọn lọc tự nhiên trên máy tính 36
3.3.2.2 Các thành phần của thuật toán di truyền nhị phân 37
3.4 Đề xuất phương pháp thám mã DES 46
3.4.1 Xây dựng thuật toán di truyền dò tìm khóa 46
3.4.1.1 Xác định hàm phù hợp (hàm chi phí) 47
Trang 3v
3.4.1.2 Tạo lập họ khóa khởi tạo 48
3.4.1.3 Giải mã bản mã cho trước với các khóa trong họ 49
3.4.1.4 Tính mức độ phù hợp của các khóa 50
3.4.1.5 Chọn lọc 50
3.4.1.6 Ghép cặp 50
3.4.1.7 Kết hợp 51
3.4.1.8 Đột biến 51
3.4.1.9 Thế hệ tiếp theo 52
3.4.1.10 Kiểm tra hội tụ 53
3.4.2 Vai trò của hệ thống tính toán song song 53
3.4.3 Ước lượng thời gian, độ phức tạp của tính toán 56
KẾT LUẬN 58
TÀI LIỆU THAM KHẢO 59
PHỤ LỤC 1 Bảng trọng số tần suất bộ đôi chữ cái tiếng Anh 60
PHỤ LỤC 2 Mã nguồn chương trình thám mã DES áp dụng thuật toán di truyền chạy trên máy tính đơn 61
Trang 4vi
DANH MỤC CÁC TỪ VIẾT TẮT TIẾNG ANH
DES Data Encryption Standard Chuẩn mã hoá dữ liệu
FEAL Fast Data Encipherment Algorithm Thuật toán mã hóa dữ liệu nhanh AES Advanced Encryption Standard Chuẩn mã hoá tiến bộ
IDEA International Data Encryption
3 DES Triple Data Encryption Standard Một phiên bản mới của DES
GA Genetic Algorithm Thuật toán di truyền
ECB Electronic Codebook Chế độ mã hoá cơ bản
CBC Cipher Block Chaining Chế độ mã hoá liên kết khối mã
Trang 5vii
DANH MỤC CÁC BẢNG
Bảng 2.1 Tổng hợp về khả năng tấn công thám mã vi sai đối với
Bảng 3.2 Ví dụ về tiến trình ghép cặp và giao phối theo hình thức
Bảng 3.3 Tính toán mức độ phù hợp của các khoá trong một thế hệ 50
Trang 6viii
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Hình 1.1 Mô phỏng sự mã hoá (a) và giải mã (b) theo DES 3
Hình 1.3 Sơ đồ quy trình tính các khóa con k1, k2, , k16 7 Hình 1.4 Sơ đồ quy trình tính hàm f (Ri-1, ki) 9 Hình 1.5 Mã hóa và giải mã theo chế độ mã hóa cơ bản (EBC) 13 Hình 1.6 Mã hóa và giải mã theo chế độ liên kết khối mã (CBC) 14 Hình 2.1 So sánh mức an toàn giữa DES và AES dưới góc độ thám
Hình 3.1 Mô tả giả thiết và bài toán thám mã DES 24 Hình 3.2 So sánh thám mã dựa trên nhận dạng bản rõ thủ công
Hình 3.3 Mô phỏng về xác suất chuyển giữa hai chữ cái liền kề trong
Hình 3.4 Sự tương tự giữa thuật toán di truyền và di truyền sinh
Hình 3.5 Biểu đồ luồng của thuật toán di truyền nhị phân 37 Hình 3.6 Biểu diễn giao phối với hình thức lai ghép điểm đơn 42 Hình 3.7 Quy trình thám mã dựa trên thuật toán di truyền 46 Hình 3.8 Quy trình tạo lập tập khóa khởi tạo P (N pop) gồm 100
Hình 3.9 Mức độ tăng tốc theo lý thuyết của GA với N pop = 100 54 Hình 3.10 Mô hình của một GA song song master - slave 54 Hình 3.11 Số lượng bộ vi xử lý tối ưu khi áp dụng mô hình GA
master - slave theo tỷ lệ Tf/Tc và Npop 55
Trang 71
MỞ ĐẦU
DES (viết tắt của Data Encryption Standard, hay Chuẩn mã hóa dữ liệu) là một hệ mật mã khóa đối xứng do Công ty IBM thiết kế dựa trên hệ mật mã do chính họ đã nghiên cứu trước đó - hệ mật mã Lucifer và được FIPS (Tiêu chuẩn xử lý thông tin Liên bang Hoa Kỳ) chọn làm chuẩn chính thức vào năm 1976 Sau đó, Chuẩn này được sử dụng rộng rãi trên phạm vi thế giới
Ngay từ đầu, thuật toán của nó đã gây ra rất nhiều tranh luận liên quan đến các thành phần thiết kế mật, độ dài khóa tương đối ngắn Do đó, DES đã được giới nghiên cứu xem xét rất kỹ lưỡng, việc này đã thúc đẩy hiểu biết hiện đại về mật mã khối (block cipher) và các phương pháp tấn công (hay thám mã) tương ứng Có thể nói, sự xuất hiện của DES đã tạo nên một làn sóng, một nguồn cảm hứng nghiên cứu trong giới khoa học
về lĩnh vực mật mã học, đặc biệt là các phương pháp thám mã mã khối Với DES, giới khoa học đã có một thuật toán mật mã để nghiên cứu
Mặc dù trong thời gian qua đã có rất nhiều kết quả nghiên cứu về thám mã DES đã được công bố, DES có thể bị phá khoá bởi các hệ thống chuyên dụng trong vòng chưa đầy
24 giờ, nhưng việc nghiên cứu thám mã DES vẫn có ý nghĩa để hướng tới thám mã các hệ mật mã khối có độ dài khóa mật lớn hơn, đã và đang dần thay thế DES như AES, IDEA, 3 DES, RC4, RC5, Phân tích mật mã hay thám mã còn đưa ra những khuyến cáo, phản hồi cho các chuyên gia trong thiết kế lại các hệ mật mã để chống lại các dạng tấn công mới Đồng thời, nó cũng có ý nghĩa trong hỗ trợ công tác tình báo, phản gián v.v
Với lý do trên, tác giả chọn đề tài: “Nghiên cứu phương pháp thám mã Chuẩn
mật mã DES nhờ hệ thống tính toán hiệu năng cao” Trong phạm vi nghiên cứu của đề
tài này, bài toán đặt ra là với một bản mã được mã hoá từ một thông điệp tiếng Anh bởi Thuật toán mã hoá DES, với giả thiết người thám mã có thể truy cập đến chức năng mã hóa/giải mã của DES Từ giả thiết này, yêu cầu ứng dụng hệ thống tính toán hiệu năng cao, thuật toán di truyền (Genetic Algorithm) để xây dựng thuật toán dạng thám mã “hộp đen” để tìm ra khoá mật đã sử dụng để mã hoá thông điệp đó trong thời gian ngắn (dự kiến khoảng 8 đến 15 phút)
Tác giả đã nghiên cứu, trình bày Luận văn thành ba chương Nội dung chính, kết quả nghiên cứu của các chương như sau:
Chương I: Giới thiệu về chuẩn mã hoá dữ liệu - DES (Data Encryption Standard) Chương II: Các phương pháp thám mã Chuẩn mã hoá dữ liệu DES, các hệ thống
chuyên dụng phục vụ thám mã DES
Trang 82
Chương III: Nghiên cứu, đề xuất phương pháp thám mã DES
Do mức độ phức tạp của công việc thám mã là rất lớn nên bài toán đặt ra với giả thiết người thám mã biết được các thông tin về bản mã được mã hóa bởi DES (chế độ ECB) từ “bản rõ” tương ứng là một thông điệp tiếng Anh Từ giả thiết này, xây dựng thuật toán di truyền để xác định khóa mật k đã sử dụng để mã hóa cũng như tìm ra “bản rõ” tương ứng
Để giải quyết yêu cầu đặt ra và các bài toán nói trên, bài toán được chia thành các bài toán con để gải quyết vấn đề:
- Xây dựng thuật toán nhận dạng “bản rõ” và “tiêu chuẩn bản rõ” là cơ sở xác định hàm “phù hợp”, một thành phần quan trọng của thuật toán di truyền nói chung và của thuật toán di truyền thám mã nói riêng
- Tìm hiểu về thuật toán di truyền, xây dựng thuật toán di truyền để thực hiện tìm kiếm khoá mật với phương pháp “vét cạn có định hướng” trong không gian khoá (K2) xác định khoảng 209 tỷ khóa
Độ phức tạp của phương pháp này chủ yếu phụ thuộc sự phán đoán, nhận dạng ngôn ngữ của “bản rõ” tương ứng với bản mã và phụ thuộc độ dài của khóa (số lượng bit khóa), hoàn toàn không phụ thuộc vào thuật toán mã hóa khối mã của DES Vì vậy, để đạt được kết quả, mục tiêu nghiên cứu, tác giả đã sử dụng phương pháp thống kê đặc trưng ngôn ngữ và áp dụng thuật toán di truyền
Đề tài tập trung nghiên cứu, xây dựng thuật toán nhận dạng bản rõ và thuật toán di truyền Đồng thời, tác giả đã đề xuất ứng dụng mô hình hệ thống tính toán song song, mô hình GA master - slave giúp rút ngắn thời gian thám mã khoảng 100 lần Để đạt được kết quả thám mã một cách tốt nhất, đòi hỏi phải có được một hệ thống tính toán song song và
kỹ năng lập trình song song Tuy nhiên, với điều kiện và khả năng thực tế, tác giả đã xây dựng dựng chương trình thám mã thử nghiệm bằng ngôn ngữ Visual Basic NET 2008 chạy trên một máy tính đơn, và giả định thuật toán di truyền hội tụ sau hai triệu thế hệ thì tổng thời gian thám mã ước lượng khoảng 19,4 giờ
Trang 93
Chương I GIỚI THIỆU VỀ CHUẨN MÃ HÓA DỮ LIỆU - DES (DATA ENCRYPTION
STANDARD) [4]
1.1 GIỚI THIỆU VỀ THUẬT TOÁN MÃ HOÁ DES
DES được phân biệt giữa hai khái niệm là Chuẩn mã hoá dữ liệu (DES - Data Encryption Standard) và Thuật toán mã hoá dữ liệu (DEA - Data Encryption Algorithm) Thuật toán mã hoá là thành phần cơ bản của Chuẩn mã hoá Việc nghiên cứu, phân tích về DES chính là nghiên cứu, phân tích về thuật toán của nó
Trong lĩnh vực mật mã học, có hai loại hệ mật mã thường được đề cập đến, đó là mật mã khoá công khai (khoá bất đối xứng) và mật mã khoá bí mật (khoá đối xứng) Riêng đối với hệ mật mã đối xứng lại chia ra làm hai loại là mã hoá, giải mã theo khối và
mã hoá, giải mã theo dòng DES (Data Encryption Standard) hay Chuẩn mã hóa dữ liệu thuộc hệ mật mã khoá đối xứng và thực hiện mã hoá, giải mã theo khối Độ dài của khối thông tin mã hoá, giải mã là 64 bit
Quy trình mã hoá, giải mã khối gồm hai thuật toán là mã hoá (ký hiệu là E) và giải
mã (ký hiệu là D) Cả hai thuật toán đều tác động lên một khối đầu vào 64 bit sử dụng khoá 56 bit để cho ra khối 64 bit Đối với bất kỳ khoá nào, giải mã là hàm ngược của mã hoá, nghĩa là:
- Mã hoá khối: Ek(M),
- Giải mã khối: M = Dk(Ek(M)),
trong đó, M là khối thông tin 64 bit và k là khoá 56 bit
Thuật toán mã hóa
Bản rõ 64 bit
a Quy trình mã hoá b Quy trình giải mã
Hình 1.1 Mô phỏng sự mã hoá (a) và giải mã (b) theo DES
Trang 104
1.2 QUY TRÌNH MÃ HÓA THEO DES
Quy trình mã hoá của mật mã khối nói chung và mã hoá theo DES nói riêng đƣợc thực hiện qua năm giai đoạn sau:
Giai đoạn 1: “bản rõ” chữ “bản rõ” số (Dạng nhị phân)
Rõ số
Giai đoạn 4: Các đoạn 64 bit Mã số Bản Mã số (Dạng nhị phân)
1.3 LẬP MÃ VÀ GIẢI MÃ DES
1.3.1 Quy trình lập mã DES
Thuật toán DES tập trung thực hiện Giai đoạn 3 của quy trình mã hóa Đó là
chuyển đổi “bản rõ” số với 64 bit thành bản Mã số với 64 bit
Trang 126
1.3.2 Thực hiện mã hóa DES theo sơ đồ
* “bản rõ” là xâu X, bản mã là xâu Y, khóa là xâu k, đều có độ dài 64 bit
* Thuật toán mã hóa DES thực hiện qua 3 bước chính sau:
Bước 1: “bản rõ” x được hoán vị theo hoán vị IP, thành IP (x)
IP (x) = L0R0, trong đó L0 là 32 bit đầu (left), R0 là 32 bit cuối (right) (IP (x) tách thành L0R0)
Bước 2: Thực hiện 16 vòng mã hóa với những phép toán giống nhau
Dữ liệu được kết hợp với khóa thông qua hàm f:
L i = R i-1 , R i = L i-1 ⊕ f (R i-1 , k i ), trong đó:
⊕ là phép toán hoặc loại trừ của hai dãy bit (cộng theo modulo 2)
k 1 , k 2 , , k 16 là các khóa con (48 bit) được tính từ khóa gốc K
Bước 3: Thực hiện phép hoán vị ngược IP -1 cho xâu R 16 L 16, thu được bản mã y
Y = IP -1 (R 16 L 16 ) (Lưu ý thứ tự bit R 16 và L 16)
* Hoán vị ban đầu IP
+ bit 1 của IP(x) là bit 58 của x 58 50 42 34 26 18 10 2 + bit 2 của IP(x) là bit 50 của x 60 52 44 36 28 20 12 4
Trang 148
* Tính khóa k i (48 bit):
- Khóa K là xâu 64 bit, trong đó 56 bit là khóa và 8 bit để kiểm tra chẵn lẻ nhằm phát hiện sai, các bit này không tham gia vào quá trình tính toán
Các bit kiểm tra tính chẵn lẻ nằm ở vị trị 8, 16, 24, 32, 40, 48, 56, 64, sao cho mỗi
byte chứa một số lẻ các bit 1 Bởi vậy mỗi sai sót đơn lẻ đƣợc xác định trong mỗi nhóm 8
Trong đó C0 là 28 bit đầu, D0 là 28 bit cuối cùng của PC-1(K)
+ Với i = 1, 2, , 16, ta tính C i = LS i (C i-1 ), D i = LS i (D i-1 )
Trong đó, LSi là phép chuyển dịch vòng trái:
→ Dịch 1 vị trí nếu i = 1, 2, 9, 16 Dịch 2 vị trí với những giá trị i khác
+ Với i = 1, 2, , 16, khóa k i đƣợc tính theo phép hoán vị PC-2 từ C i D i:
Trang 159
1.3.4 Tính hàm f(R i-1 , k i )
R i-1
E(R i-1 ) E
Hình 1.4 Sơ đồ quy trình tính hàm f (Ri-1, ki)
Để cho đơn giản, ta không ghi chỉ số i-1, i, và mô tả cách tính f(R, k): a) Mở rộng xâu R (32 bit) thành xâu 48 bit, theo hàm mở rộng E
E: R (32 bit) → E(R) (48 bit)
E(R) gồm 32 bit cũ của R và 16 bit của R xuất hiện lần thứ 2
b) Tính E(R) ⊕ k, trong đó E(R) (48 bit) và k (48 bit)
Kết quả gồm 8 xâu B j có 6 bit (8 * 6 = 48):
B = B 1 B 2 B 3 B 4 B 5 B 6 B 7 B 8
Trang 16+ b 1 b 6 xác định biểu diễn nhị phân của hàng r trong Sj (0 ≤ r ≤ 3)
+ b 2 b 3 b 4 b 5 xác định biểu diễn nhị phân của cột c trong Sj (0 ≤ c ≤ 15)
Xâu C j (4 bit) đƣợc định nghĩa là biểu diễn nhị phân của phần tử S j (r, c)
d) Thực hiện 8 lần c), ta nhận đƣợc xâu C = C 1 C 2 C 8 (32 bit)
Sau hoán vị P, cho kết quả P(C), đó chính là f(R, k)
Trang 1812
* Quy định lập bảng S j :
- Mỗi hàng của bảng S phải là một hoán vị của 0, 1, , 15
- Không có bảng S nào là hàm tuyến tính hay Apphin của các đầu vào của nó
- Thay đổi 1 bit vào ở một bảng S, sẽ gây ra sự thay đổi ít nhất 2 bit ra của nó
- Nếu 2 xâu vào của một bảng S giống nhau ở 2 bit đầu và 2 bit cuối, thì 2 xâu ra
phải khác nhau
- Với mỗi bảng S, nếu cố định 1 bit vào xét giá trị của 1 bit ra nào đó, thì số các
xâu vào tạo ra giá trị 0 ở bit ra đó cũng phải xấp xỉ bằng số các xâu vào tạo ra giá trị 1 ở bit ra đó
1.3.5 Quy trình giải mã DES
Quy trình giải mã của DES tương tự như quy trình lập mã, nhưng sử dụng các khóa
theo thứ tự ngược lại: k 16 , k 15 , , k 1
Xuất phát từ bản mã Y (đầu vào), kết quả là “bản rõ” X (đầu ra)
1.3.6 Độ an toàn của Chuẩn mã hóa DES
a) Độ an toàn của Chuẩn mã hóa DES có liên quan đến các bảng S j:
Ngoại trừ các bảng S, mọi tính toán trong DES đều tuyến tính, tức là việc tính phép
hoặc loại trừ của hai đầu ra cũng giống như phép hoặc loại trừ của hai đầu vào, rồi tính
toán đầu ra
Các bảng S chứa đựng nhiều thành phần phi tuyến của hệ mật, là yếu tố quan trọng nhất đối với độ an toàn của hệ thống
Khi mới xây dựng hệ mật DES, thì tiêu chuẩn xây dựng các hộp S không được biết
đầy đủ Và có thể các hộp S này có thể chứa các “cửa sập” được giấu kín Và đó cũng là
một điểm đảm bảo tính an toàn của hệ mật DES
b) Hạn chế của DES chính là kích thước không gian khóa:
Số khóa có thể là 256, không gian này là nhỏ để đảm bảo an toàn thực sự Nhiều thiết bị chuyên dụng đã được đề xuất nhằm phục vụ tấn công với một cặp “bản rõ” - bản
mã đã biết Phép tấn công này chủ yếu thực hiện theo phương pháp “vét cạn” Tức là với
Trang 19Dưới đây là sơ đồ mô tả chế độ mã hoá cơ bản và chế độ mã hoá liên kết khối mã
1.4.1 Chế độ mã cơ bản (ECB - electronic codebook)
Trang 20Vector khởi tạo
(Initialization Vector – IV)
Vector khởi tạo
(Initialization Vector – IV)
b Giải mã
Hình 1.6 Mã hóa (a) và giải mã (b) theo chế độ liên kết khối mã (CBC)
DES có thể áp dụng một trong các chế độ mã hoá như đã nói trên Nhưng để giới hạn phạm vi nghiên cứu của đề tài, khi thực hiện hiện công việc thám mã đương nhiên chúng ta giả định bản mã cho trước được mã hóa bởi chuẩn mã hóa DES, đồng thời cũng giả định rằng bản mã được mã hóa theo chế độ mã cơ bản (ECB) Tức là “bản rõ” được chia nhỏ thành các khối độc lập, mỗi khối 64 bit Mỗi khối này được mã hóa bởi cùng một khóa k nào đó để tạo ra các khối mã 64 bit độc lập
Ngày nay, Thuật toán mã hóa dữ liệu (DEA - Data Encryption Algorithm) của Chuẩn mã hóa dữ liệu DES đã được công bố chi tiết, cho nên các chương trình mã hóa
DES, các thư viện mã nguồn mở vể DES được công bố rộng rãi Phụ lục 1 của Luận văn
là một ví dụ về sử dụng Thư viện mã nguồn mở Chilkat.Crypt2 về DES để thực hiện mã
hóa, giải mã một thông điệp, với các chế độ mã hóa cơ bản (ECB), chế độ mã hóa liên kết khối mã (CBC)
Trang 2115
Chương II CÁC PHƯƠNG PHÁP THÁM MÃ CHUẨN MÃ HÓA DỮ LIỆU DES,
CÁC HỆ THỐNG CHUYÊN DỤNG PHỤC VỤ THÁM MÃ DES
2.1 MỘT SỐ KHÁI NIỆM CƠ BẢN
Để thuận tiện cho việc nghiên cứu của đề tài, chúng ta tìm hiểu một số khái niệm
về mật mã học, mật mã, mật mã hoá và phân tích mật mã, thám mã,
- Mật mã học là một lĩnh vực liên quan với các kỹ thuật ngôn ngữ và toán học để
đảm bảo an toàn thông tin, cụ thể là trong thông tin liên lạc Về phương diện lịch sử, mật
mã học gắn liền với quá trình mã hóa
- Mật mã là thuật toán để mật mã hóa và giải mật mã Hoạt động chính xác của mật
mã thông thường được kiểm soát bởi khóa - một đoạn thông tin bí mật nào đó cho phép tùy biến cách thức tạo ra văn bản mã
- Mật mã hóa là quá trình chuyển đổi các thông tin thông thường (văn bản thường hay văn bản “rõ”) thành dạng không đọc trực tiếp được, là văn bản mã Giải mật mã là
quá trình ngược lại, phục hồi lại văn bản thường từ văn bản mã
- Phân tích mật mã hay thám mã là khoa học nghiên cứu cách phá các hệ mật
nhằm phục hồi “bản rõ” ban đầu từ bản mã Việc tìm hiểu các thông tin về khóa và các phương pháp biến đổi thông tin cũng là một nhiệm vụ quan trọng của phân tích mật mã Công việc phân tích bản tin mã hóa thường để nhận được bản tin rõ trong điều kiện không biết trước khóa mã Trong thực tế, công việc thám mã gặp nhiều khó khăn hơn khi không biết rõ hệ mật mã nào được sử dụng Tuy nhiên, để đơn giản hóa, chúng ta giả sử người thám mã đã biết rõ hệ mật mã được sử dụng khi tiến hành phân tích mã Hiện nay, hầu hết các tài liệu đồng nhất giữa các khái niệm “phân tích mật mã”, “thám mã”, hay
“tấn công”
Có thể phân loại thám mã theo nhiều góc độ, nhưng để đi theo hướng nghiên cứu của đề tài, chúng ta phân loại thám mã thành hai dạng chính là “thám mã đường tắt” và
“thám mã hộp đen”
- Thám mã đường tắt là phương pháp thám mã dựa trên các phân tích toán học, thống
kê và cấu trúc chi tiết bên trong thuật toán mã hóa hóa/giải mã, để từ đó có các thống kê
về xác suất, các hệ phương trình tuyến tính, của hệ mã hóa giúp rút ngắn thời gian phá
mã so với “thám mã vét cạn” Các phương pháp thám mã đường tắt đã được công bố gồm
có thám mã vi sai, thám mã tuyến tính, thám mã phi tuyến, thám mã vi sai tuyến tính v.v
Để thám mã thành công DES, các phương pháp thám mã này thường cần phải sử dụng một số lượng rất lớn các cặp “bản rõ” - bản mã có lựa chọn (thám mã vi sai, thám mã vi
Trang 2216
sai - tuyến tính cần 247 cặp “bản rõ” - mã, thám mã phi tuyến cần khoảng 243 cặp “bản rõ”
- mã), đồng thời cần phải phân tích, thống kê chi tiết thuật toán mã hóa Do đó, phương pháp thám mã này thường chỉ được công bố trên lý thuyết mà khó đạt được trong thực tế
- Thám mã hộp đen hoàn toàn khác với thám mã đường tắt, phương pháp thám mã
này không phân tích chi tiết thuật toán mã hóa mà xem nó như là một “hộp đen” để dò tìm khóa khi biết “bản rõ”, bản mã hoặc chỉ biết bản mã Phương pháp này có thể áp dụng cho
hệ mật mã khối bất kỳ Độ phức tạp tính toán của phương pháp này chỉ phụ thuộc vào các tham số như độ dài khóa và độ dài khối mã Thông thường, khi người ta nói đến các
phương pháp “thám mã vét cạn”, “tấn công vét cạn”, “tấn công bạo lực” (brute-force
attack), hay “tấn công dùng bạo lực” (attacks using force) thì đều có thể được hiểu như là phương pháp thám mã hộp đen
Ngoài ra, với giả định khi người thám mã đã biết thuật toán mã hoá (đối với một hệ
mã hoá xác định), chúng ta có thể phân loại thám mã dựa trên các số lượng thông tin được biết về “bản rõ”, bản mã:
- Thám mã chỉ biết bản mã: người thám mã chỉ có bản tin mã hóa,
- Thám mã chỉ biết bản tin rõ: người thám mã có bản tin rõ và bản mã tương ứng,
- Thám mã với “bản rõ” được chọn: do người thám mã biết thuật toán mã hoá, nên
người đó có khả năng chọn bản tin rõ và xây dựng bản mã tương ứng,
- Thám mã với bản mã được chọn: do người thám mã biết thuật toán mã hoá, nên
người đó có khả năng chọn bản mã và xây dựng lại bản tin rõ tương ứng
Trong mọi trường hợp thám mã nói trên, mục đích là tìm ra khóa mật được sử dụng cho hệ mã hoá
Trang 2317
Giá trị khác nhau có thể được định nghĩa thông qua các nhiều cách, nhưng phép toán cộng loại trừ (⊕ - XOR) thường được sử dụng Khi có được khác nhau của các cặp
“bản rõ” cần thiết, người tấn công thực hiện tính toán giá trị khác nhau giữa các cặp bản
mã tương ứng nhằm khám phá ra được các mẫu thống kê quy luật trong sự phân bổ của
chúng Cặp kết quả giá trị khác nhau (vào - ra) được gọi là vi sai (differential) Đối với
bất kỳ hệ mã hóa nào, để việc thám mã vi sai thành công thì giá trị khác nhau đầu vào cần phải được lựa chọn cẩn thận Đồng thời, việc phân tích bên trong của thuật toán là rất quan trọng và phải được thực hiện đồng thời Phương pháp chuẩn chính là theo dõi một
“đường dẫn” vi sai với xác suất xuất hiện cao thông qua các giai đoạn của việc mã hóa,
được gọi là đặc tính vi sai
Độ an toàn của DES có được duy nhất từ các hộp S, bởi vì, các hộp S là hoàn toàn phi tuyến Ngoài ra, toàn bộ các bước khác trong DES là các phép toán tuyến tính: hoán vị hai nửa, hoán vị các bit, phép mở rộng, và các phép XOR Nếu như các hộp S cũng là tuyến tính thì DES sẽ dễ dàng bị phá vỡ Để tấn công vi sai, chúng ta có thể bỏ qua các phép biến đổi tuyến tính gồm các hoán vị P, phép mở rộng E, mà tập trung tấn công vào hàm F, các hộp S gồm S1, S2, đến S8 Theo như các kết quả nghiên cứu, thực nghiệm thì các hộp S không phải là an toàn toàn tuyệt đối và có những “lỗ hổng” hay “điểm yếu”
nhất định Trong đó, hộp S 1 và hộp S 5 được coi là “yếu” nhất, hộp S 7 được coi là an toàn nhất Việc dựa trên cơ sở các hộp S “yếu” (chẳng hạn S1, S5) sẽ giúp dò tìm một số bit khóa nhanh hơn khi sử dụng các hộp S khác
Thông thường, việc dò tìm khóa chính là dò tìm khóa con cuối cùng (k16) Sau khi
đã có K16, chúng ta dễ dàng suy luận ra các khóa con khác k15, k14, , k1, và khóa chính K bằng cách tính ngược các phép toán tuyến tính (hoán vị, dịch vòng trái, ) Như chúng ta
đã biết, việc dò tìm khóa căn cứ vào xác suất tồn tại các cặp vi sai (vào - ra) của từng vòng lặp Khi số vòng lặp tăng lên, và đối với DES là 16 vòng lặp thì xác suất tồn tại các cặp vi sai này cho đến vòng mã hóa cuối cùng là rất nhỏ Điều này đồng nghĩa với việc chúng ta cần sử dụng một số lượng rất lớn các cặp bản rõ - bản mã
Thám mã vi sai là phương pháp tấn công đầu tiên đối với DES để có thể tìm thấy khóa nhanh hơn là tìm kiếm vét cạn không gian khóa Theo lý thuyết, đây là một kiểu tấn công có tính khả thi Tuy nhiên nhìn vào Bảng 2.1 dưới đây, ta có thể thấy tấn công thám
mã vi sai là dường như khó đạt hiệu quả trên thực tế
Trang 24kế lại thì vẫn có thể bị tấn công thám mã vi sai
* Cải tiến thành công chống thám mã vi sai của DES:
Kể từ khi thám mã vi sai được biết đến rộng rãi, nó trở thành một sự quan tâm đáng kể của những người thiết kế hệ mật mã Những hệ mã hóa mới cần đều phải được chứng minh thuật toán có khả năng chống lại kiểu tấn công này Và đã có nhiều hệ mã hóa, trong đó có Chuẩn mã hóa tiến bộ (Advanced Encryption Standard - AES) đã chứng minh được khả năng chống lại tấn công vi sai Chúng ta có thể quan sát và so sánh mức
độ an toàn của DES và AES qua Hình 2.1 dưới đây:
Trang 2519
2.1(a) Biều đồ phân bổ
các cặp XOR của một trong
2.2.1.3 Thám mã phi tuyến [10]
Nhƣ chúng ta đã biết, không có quan hệ tuyến tính nào giữa đầu ra và đầu vào của các hộp S của DES Mặt khác bằng cách biểu diễn các hộp S nhƣ là các đa thức Boolean thì dễ dàng có thể thiết lập các quan hệ đại số nào đó giữa các bit đầu ra và đầu vào của các hộp S Chúng ta cũng biết rằng bậc của các đa thức này có bậc nhỏ hơn hay bằng 6
Do đó một cách tự nhiên bài toán sau đây có thể đƣợc đặt ra: Bậc nhỏ nhất trong các quan
hệ đại số của các hộp S là bao nhiêu và quan hệ đại số nào có bậc nhỏ nhất? Có thể thấy rằng luôn tồn tại một quan hệ bậc 3 trong tất cả các hộp S Bởi vậy câu hỏi trên đƣợc viết
Trang 2620
lại như sau: liệu có tồn tại quan hệ bậc 2 hay không ? Một số kết quả nghiên cứu cho thấy
có 7 quan hệ bậc 2 của các hộp S1, S2 và S5 của DES với xác suất bằng 1 Bằng cách sử dụng một trong các quan hệ bậc 2 này, họ đã xây dựng một thuật toán tấn công cải tiến cho DES đủ 16 vòng Cách thức thực hiện là tổ hợp các phương pháp xấp xỉ phi tuyến và
phương pháp xấp xỉ nhiều lần Sự cải tiến này có thể rút gọn số cặp rõ - mã đòi hỏi xuống
còn 25/34 (73,5%) của con số 243 đòi hỏi bởi tấn công của Matsui
2.2.1.5 Một số phương pháp thám mã đường tắt khác [15]
Ngoài các phương pháp thám mã đường tắt nói trên thì một số phương pháp khác
đã được các nhà mật mã học nghiên cứu và đề xuất áp dụng như phương pháp thám mã tích phân, phương pháp thám mã vi sai bậc cao, thám mã nội suy v.v
2.2.2 Thám mã hộp đen (vét cạn để tìm khoá) [1, 2, 8]
Thám mã hộp đen nói chung và tấn công vét cạn nói riêng là phương pháp thám
mã không phân tích sâu cấu trúc bên trong của hệ mật mã Cơ sở của phương pháp này chủ yếu dựa vào sức mạnh của các hệ thống tính toán hiệu năng cao để thực hiện vét cạn
và tìm ra khoá mật Đây là phương pháp thám mã đơn giản nhất đối với hệ mật mã khối Việc thám mã đơn thuần chỉ là thử tất cả các khóa, khóa này nối tiếp khóa kia, cho đến
khi tìm ra khóa đúng Như vậy, trong trường hợp xấu nhất ta cần phải thử 2 l khóa, nếu độ
dài khóa là l Và riêng đối với hệ DES thì trường hợp xấu nhất ta cần phải thử 256 khóa (khoảng hơn 72 triệu tỷ khóa)
Người ta có thể sử dụng máy tính song song có nhiều bộ vi xử lý hoặc các mạng máy tính chuyên dùng để thám mã Mỗi bộ xử lý hoặc một máy tính trong hệ thống sẽ kiểm tra một tập con độc lập của toàn bộ không gian khóa Xác suất thành công tìm ra khóa đúng của mỗi đơn vị xử lý bằng 1/số_đơn_vị_xử_lý Ví dụ, nếu một đơn vị xử lý làm việc với tập khóa con bằng 1/10 tập khóa tổng thể thì xác suất thành công tìm ra khóa đúng của nó sẽ là 10% Bởi vậy, chúng ta có thể nhận thấy được vai trò của độ dài của khóa đối với sự đảm bảo an toàn cho hệ mã hóa khối dưới góc độ chống lại tấn công vét cạn
Trang 2721
So với các hệ mã hóa khác thì Chuẩn mã hóa DES có độ dài khóa tương đối ngắn (56 bit) và nó đã trở thành tâm điểm nghiên cứu tấn công thám mã vét cạn của nhiều nhà mật mã học Mặc dù, trên thực tế trong thời gian gần đây, DES đã được công bố là bị phá
vỡ bởi nhiều hệ thống chuyên dụng, nhưng việc nghiên cứu thám mã DES vẫn có ý nghĩa
để hướng tới thám mã các hệ mật mã mới tương tự DES (AES, IDEA, Triple DES, )
Dựa vào cách thức phân loại thám mã và phân tích, tìm hiểu các phương pháp thám mã nói trên để để xác định rõ bài toán thám mã được nghiên cứu, đề xuất trong đề
tài này thuộc phương pháp thám mã hộp đen, đồng thời là thám mã chỉ biết bản mã, và
người thám mã biết thuật toán mã hóa/giải mã (có thể truy cập vào chức năng mã hóa/giải
mã của DES)
2.3 CÁC HỆ THỐNG CHUYÊN DỤNG PHỤC VỤ THÁM MÃ [15]
Hiện nay, đã có nhiều hệ thống chuyên dụng đã và đang được nghiên cứu ứng dụng trong thám mã hệ mật mã khối nói chung, đối với DES nói riêng Những hệ thống này gồm có các phần cứng chuyên dụng thám mã, điện toán lưới, điện toán đám mây, siêu máy tính, máy tính song song, hệ thống máy tính cụm cluster v.v
2.3.1 Phần cứng chuyên dụng [15]
Đối với bất cứ hệ mã hóa nào, kiểu thám mã (tấn công) cơ bản và đơn giản nhất là thám mã vét cạn hay thám mã bạo lực: thử lần lượt tất cả các khóa có thể cho đến khi tìm
ra khóa đúng Độ dài của khóa sẽ xác định số lượng phép thử tối đa cần thực hiện và do
đó thể hiện tính khả thi của phương pháp Xuất phát từ đặc điểm của thám mã vét cạn có thể được thực hiện song song trên nhiều bộ xử lý, đã có rất nhiều hệ thống phần cứng được thiết kế để thám mã thành công và nhiều ý tưởng khác Sau đây là một số hệ thống
đã được cộng đồng các chuyên gia nghiên cứu đề xuất:
a) Hệ thống phá mã Deep Crack của Hiệp hội EFF
Hệ thống phá mã DES của Hiệp hội EFF được xây dựng với ngân sách 250000 đô
la Mỹ Hệ thống bao gồm 1536 bộ vi xử lý thiết kế riêng và có khả năng duyệt hết toàn bộ khóa của DES trong vòng vài ngày
b) Dự án phá mã DESCHALL
Vào năm 1997, công ty bảo mật RSA đã tài trợ một chuỗi cuộc thi với giải thưởng 10.000 đô la Mỹ cho đội đầu tiên phá mã được một bản tin mã hóa bằng DES Đội chiến thắng trong cuộc thi này là dự án DESCHALL với những người dẫn đầu bao gồm Rocke Verser, Matt Curtin và Justin Dolske Họ đã sử dụng hàng nghìn máy tính nối mạng thám
mã DES thành công
c) Các nghiên cứu đề xuất khác
Trang 2822
Trong giới nghiên cứu, nhiều đề xuất về các hệ thống phá mã DES được đề ra Năm 1977, Diffie và Hellman dự thảo một hệ thống có giá khoảng 20 triệu đô la Mỹ và
có khả năng phá khóa DES trong 1 ngày Năm 1993, Wiener dự thảo một hệ thống khác
có khả năng phá mã trong vòng 7 giờ với giá 1 triệu đô la Mỹ
2.3.2 Các hệ thống tính toán hiệu năng cao
a) Điện toán lưới [15]
Điện toán lưới đặt trọng tâm vào việc di chuyển một tải công việc (workload) đến địa điểm của các tài nguyên điện toán cần thiết để sử dụng Một lưới là một nhóm máy chủ mà trên đó nhiệm vụ lớn được chia thành những tác vụ nhỏ để chạy song song, được xem là một máy chủ ảo Sức mạnh cơ bản nhất của điện toán lưới đó chính là nhằm đạt được hiệu năng cao nhất dựa trên rất nhiều máy tính hay nguồn lực tính toán trên mạng Các nguồn lực này bao gồm: nguồn lực quản lý tri thức, hệ thống tích hợp kiến trúc dịch
vụ lưới mở, các nguồn lực tính toán khác cùng với dữ liệu
Điện toán lưới sẽ là một môi trường tính toán đạt hiệu năng cao nhất khi nó được
tổ chức một cách khoa học, có sự phối hợp của nhiều tổ chức, nhiều quốc gia Dựa trên cở
sở này, việc triển khai các ứng dụng thám mã vét cạn sẽ tính khả thi cao
b) Điện toán đám mây [15]
Một công nghệ tính toán mạnh và được ứng dụng rộng rãi trong thời gian gần đây,
đó là điện toán đám mây (Cloud Computing) Thuật ngữ điện toán đám mây xuất hiện bắt nguồn từ ứng dụng điện toán lưới Điện toán đám mây, còn gọi là điện toán máy chủ ảo,
là mô hình điện toán sử dụng các công nghệ máy tính và phát triển dựa vào mạng Internet
Ở mô hình điện toán này, mọi khả năng liên quan đến công nghệ thông tin đều được cung
cấp dưới dạng các dịch vụ, cho phép người sử dụng truy cập các dịch vụ công nghệ từ một nhà cung cấp nào đó trong đám mây mà không cần phải có các kiến thức, kinh nghiệm về
công nghệ đó, cũng như không cần quan tâm đến các cơ sở hạ tầng phục vụ công nghệ đó
c) Máy tính song song [15]
Tính toán song song là một hình thức tính toán trong đó nhiều phép tính được thực hiện đồng thời, hoạt động trên nguyên tắc là những vấn đề lớn đều có thể chia thành nhiều phần nhỏ hơn, sau đó được giải quyết tương tranh ("trong lĩnh vực tính toán") Có nhiều hình thức khác nhau của tính toán song song: song song cấp bit, song song cấp lệnh, song song dữ liệu, và song song tác vụ Tính toán song song đã được sử dụng từ nhiều năm qua, chủ yếu là trong lĩnh vực tính toán hiệu năng cao Gần đây hình thức tính toán này được quan tâm nhiều hơn, do những hạn chế vật lý ngăn chặn việc tăng hiệu năng tính toán chỉ bằng cách tăng tần số Sự tiêu hao điện năng (dẫn đến sinh nhiệt) từ máy tính đã trở thành một mối lo ngại Vì vậy, trong những năm gần đây, tính toán song song đã trở thành mô hình thống trị trong lĩnh vực kiến trúc máy tính, phần lớn là dưới dạng bộ xử lý
đa nhân
Trang 2923
Với đặc điểm về năng lực tính toán mạnh, máy tính song song là công cụ ứng dụng hiệu quả trong thám mã Tuy nhiên, nó đòi hỏi áp dụng thuật toán phù hợp và phương pháp lập trình song song
d) Hệ thống máy tính cụm Cluster [15]
Hệ thống máy tính cụm cluster là một kiến trúc nhằm đảm bảo nâng cao khả năng sẵn sàng cho các hệ thống mạng máy tính Cluster cho phép sử dụng nhiều máy chủ kết hợp với nhau tạo thành một cụm có tính dung lỗi nhằm đảm bảo tính sẵn sàng của hệ thống mạng Cluster là một hệ thống bao gồm nhiều máy chủ được kết nối với nhau theo dạng song song hay phân tán và được sử dụng như một tài nguyên thống nhất Nếu một máy chủ ngừng hoạt động do bị sự cố hoặc để nâng cấp, bảo trì, thì toàn bộ công việc mà máy chủ này đảm nhận sẽ được tự động chuyển sang cho một máy chủ khác (trong cùng một cluster) mà không làm cho hoạt động của hệ thống bị ngắt hay gián đoạn Một hệ thống máy tính cụm cluster cần thoả mãn các yêu cầu về tính sẵn sàng cao (high availability), độ tin cậy cao (reliability) và khả năng mở rộng được (scalability)
Trong điều kiện kinh tế, kỹ thuật hiện nay, việc xây dựng được hệ thống thám mã dựa trên điện toán lưới hoặc điện toán đám mây là hoàn toàn khả thi, nhưng trên thực tế công việc thám mã là vô cùng nhạy cảm, có tính chất, phạm vi thuộc lĩnh vực an ninh quốc gia Việc tận dụng các máy tính, các tài nguyên trên Internet vượt khỏi biên giới quốc gia là điều mà các cơ quan an ninh không mong muốn Ngoài ra, so với các hệ thống khác thì hệ thống máy tính cụm cluster thường được xây dựng với giá thành rẻ hơn, thuận lợi so với các hệ thống tính toán hiệu năng cao khác Với những lý do trên, tác giả chọn
hệ thống máy tính cụm cluster để hỗ trợ cho việc nghiên cứu, đề xuất phương pháp thám
mã DES
Trang 3024
Chương III NGHIÊN CỨU, ĐỀ XUẤT PHƯƠNG PHÁP THÁM MÃ DES
So với mật mã học thì khoa học thám mã là một lĩnh vực có liên quan, nhưng được nghiên cứu một cách độc lập và có nhiều sự khác biệt rất lớn đối với mật mã học Một điều khác biệt cơ bản được đề cập ở đây đó là thám mã phức tạp hơn mật mã rất nhiều Nếu mã hóa được thực hiện trên các máy tính bình thường, thì thám mã thường được thực hiện trên các “siêu” máy tính hoặc các hệ thống tính toán hiệu năng cao Nếu nói mật mã
là khoa học, thì thám mã phải là khoa học và nghệ thuật Bởi vì, công việc thám mã đòi hỏi phải hiểu biết rất chi tiết về mật mã, đồng thời hiểu biết rộng về các lĩnh vực toán học, ngôn ngữ học, và nhiều kinh nghiệm, kỹ năng khác
Độ phức tạp của công việc thám mã là rất lớn hoặc không thể xác định được khi không biết bản mã được mã hóa từ ngôn ngữ nào, hoặc được mã hóa từ hệ mật mã nào, bởi chế độ mã hóa nào (nếu đã biết hệ mật mã sử dụng để mã hóa), bản mã được mã hóa mấy lớp, bởi bao nhiêu hệ mã hóa v.v Do mức độ phức tạp như vậy, nên bài toán thám
mã cần được mô tả và chi tiết hóa các yếu tố đầu vào
3.1 MÔ TẢ BÀI TOÁN THÁM MÃ DES
3.1.1 Các giả thiết của bài toán
- Bản mã được mã bởi Chuẩn mã hóa dữ liệu DES và bởi chế độ mã hóa cơ bản ECB của DES
- Bản mã được mã được mã hóa từ “bản rõ” là một thông điệp tiếng Anh
- Người thám mã có thể truy cập được vào các chức năng mã hóa, giải mã DES
3.1.2 Chi tiết hóa bài toán và các yếu tố đầu vào
Do quá trình chạy thuật toán, máy tính phải thử giải mã bản mã với số lượng rất lớn các khóa k (toàn bộ không gian khóa của DES là 256 khóa) Vì vậy, để giảm thời gian tính toán, bản mã cho trước cần được chia nhỏ thành các khối 8 byte (64 bit) Từ đây, việc thám mã, dò tìm khóa được thực hiện dựa trên một phần 64 bit bất kỳ của bản mã
Có thể diễn giải bài toán trên một cách cụ thể hơn như sau: dựa trên một phần bản
mã (64 bit), gọi là bản mã Y, yêu cầu xây dựng thuật toán dò tìm khóa mật k, và “bản rõ”
64 bit tương ứng, gọi là “bản rõ”
Từ các giả thiết nói trên, yêu cầu ứng dụng thuật toán di truyền để dò tìm khóa mật
k đã sử dụng để mã hóa bản mã Y và tìm ra “bản rõ”
Trang 31Bản mã Y (64 bit)
Thuật toán
dò tìm khoá mật ?
Bản mã Y (64 bit)
Khoá K (56 bit) ? Bản rõ (64 bit) ?
DES -1
(Chế độ ECB)
(a) Giả thiết (b) Bài toán đặt ra
Hình 3.1 Mô tả giả thiết (a) và bài toán thám mã DES (b)
Với bài toán đặt ra như trên, tác giả đề xuất phương pháp thám mã hộp đen ứng
dụng thuật toán di truyền với sự hỗ trợ của hệ thống tính toán song song Theo như phần
tìm hiểu về phương pháp thám mã hộp đen, công việc thám mã không cần phân tích chi
tiết thuật toán bên trong DES, mà xem như các biến đổi bên trong khối mã là một “hộp
đen” Do vậy, thám mã ở đây thực chất là thực hiện vét cạn khóa trên không gian đã được
giới hạn Tuy nhiên, sự “vét cạn” là “có định hướng” nhờ thuật toán di truyền, và sự “tiến hóa” qua các thế hệ (vòng lặp) của thuật toán di truyền
3.2 XÂY DỰNG THUẬT TOÁN NHẬN DẠNG BẢN RÕ TIẾNG ANH
Phần này nghiên cứu xây dựng phương pháp, công cụ nhận dạng “bản rõ” tự động Mục đích chính của phương pháp nhận dạng “bản rõ” (hay bản rõ “hợp lệ” - “valid” plain-text) tự động là hỗ trợ tìm ra một khóa mật của tiến trình thám mã đối với các hệ mã hóa hoặc dò tìm các ảnh giấu tin mật hoặc nhiều ứng dụng khác ngoài lĩnh vực thám mã v.v Đặc biệt, trong một tiến trình thám mã, trong khi người thám mã dò tìm và thử một khóa để giải bản mã cho trước (bản mã “hợp lệ” - “valid” cipher-text), nếu thông điệp được giải mã là một “bản rõ”, thì khóa được thử chắc chắn là khóa mật (khóa đúng) “Bản rõ” ở đây được hiểu là một dãy các ký tự thuộc bảng chữ cáicủa ngôn ngữ nào đó mà người am hiểu ngôn ngữ có thể đọc, hiểu được nội dung
3.2.1 Vai trò của nhận dạng “bản rõ” tự động trong thám mã “vét cạn”
Hình 3.2 cho thấy rõ vai trò quan trọng của module hay thuật toán nhận dạng bản
rõ đối với thám mã vét cạn khi số lượng khóa thử là rất lớn Cụ thể, ví dụ toàn bộ không
Trang 3226
gian khóa của DES là 256 khóa (khoảng 209) tỷ khóa, của AES có thể là là 2128, 2192, hoặc
2256 khóa
Đọc bằng mắt thườngGiải mã toàn bộ bản mã
Kết thúcGhi nhận khóa đúng
Sinh khóa
Đúng Sai
Module nhận dạng bản rõ tự động
Sinh khóa
Đúng Sai
“Des@rt St&rm”, hoặc “?tta????t d?wn”, Thứ ba, các bản giải mã thường chứa được pha trộn nhiễu Nhiễu xuất hiện trong bản giải mã có thể do lỗi trên đường truyền hoặc do người gửi bản mã thêm (hoặc xóa) các bit một cách ngẫu nhiên vào “bản rõ” gây khó khăn cho thám mã Hơn nữa, vấn đề nhận dạng “bản rõ” phải có hiệu lực ngay cả khi đã biết bản mã được mã hóa từ một ngôn ngữ xác định hoặc khi bản mã được mã hóa từ một
ngôn ngữ bất kỳ [13]
Việc phân định giới hạn giữa bản giải mã không đầy đủ, có lỗi (candidate
plain-text) và “bản rõ” (“valid” plain-plain-text) là một bài toán hoàn toàn khác với bài toán nhận
dạng “bản rõ” đặt ra ở phần này Chẳng hạn, với yêu cầu phán đoán nghĩa đầy đủ, chính xác của xâu “?tta????t d?wn” là gì (?), liệu có phải là “Attack at dawn” hay không (?), là
Trang 3327
hoàn toàn khác với yêu cầu xác định xâu “Attack at dawn” có phải là “bản rõ” hay không Nói cách khác việc xác định nghĩa chính xác của một xâu X khi biết chắc nó là một thông điệp do người gửi có chủ đích là hoàn toàn khác với việc xác định một xâu X có phải là
một thông điệp do người gửi có chủ đích hay không [13]
Trong các phương pháp nhận dạng bản rõ được trình bày dưới đây, chúng ta giả định rằng người thám mã có một bản mã hợp lệ (“valid” cipher-text) có độ dài tối thiểu, cũng như có được bản giải mã (“candidate” plain-text) chính xác, đầy đủ để có thể phân biệt được giữa “bản rõ” với một xâu ký tự ngẫu nhiên Ví dụ, người thám mã nhận được các bản giải mã là “Attack”, “Attack at dawn” chứ không phải là “?tta??”, “?tta????t d?wn”
3.2.2 Một số phương pháp nhận dạng “bản rõ” tự động
Trước khi xây dựng phương pháp (thuật toán) nhận dạng “bản rõ”, chúng ta tìm hiểu thêm về một số phương pháp nhận dạng “bản rõ” đã được nghiên cứu, ứng dụng
3.2.2.1 Nhận dạng dựa vào từ điển
Theo phương pháp này, trước hết, cần phải tạo lập một cuốn từ điển gồm các từ phổ dụng trong các lĩnh vực về kinh tế, chính trị xã hội, pháp luật, Cuốn từ điển này được số hóa làm cơ sở cho việc nhận dạng “bản rõ” Để nhận biết một “văn bản” A có phải là “bản rõ” hay không thì trước hết chúng ta cần phải tiền xử lý, tách “văn bản” A thành N “từ” Tiếp đó, lần lượt so sánh các “từ” của “văn bản” A với các từ trong từ điển Nếu số lần khớp từ trong “văn bản” A với từ điển đạt tới một ngưỡng tỷ lệ nào đó thì A
có thể được xem như là “bản rõ”
Phương pháp nhận dạng dựa vào từ điển có các ưu điểm là chỉ cần xây dựng từ điển một lần nhưng được dùng lặp lại nhiều lần, việc sử dụng từ điển có thể được mở rộng sang dò tìm mật khẩu Hiện nay, việc dò tìm mật khẩu dựa vào từ điển là một trong những phương pháp đã được ứng dụng khá hiệu quả Tuy nhiên, phương pháp nhận dạng này có các nhược điểm lớn như việc tạo ra một cuốn từ điển đầy đủ thuộc nhiều lĩnh vực tương đối phức tạp, để nhận dạng được đúng đắn thì văn bản phải tương đối dài và chính xác, tốc độ nhận dạng không đạt yêu cầu nếu ứng dụng để tìm khoá mã
3.2.2.2 Nhận dạng dựa trên tập hợp từ, cụm từ giả định
Việc nhận dạng “bản rõ” dựa trên tập hợp các từ, các cụm từ đã được giả định thuộc về một lĩnh vực nào đó Chẳng hạn, khi thám mã, giải mã các bức thư điện tử thì chúng ta sẽ đối chiếu phần đầu bản giải mã (phần đầu thư) với các cụm từ ngày tháng, ví
dụ “Monday, July 24, 2012”, “July 25”, , các cụm từ kính thưa, kính gửi như “Dear”,
“Dear Sir/Madam”, “Nice to meet you”,
Trang 3428
Phương pháp này có các ưu điểm là tốc độ nhận dạng “bản rõ” nhanh hơn nhiều so với phương pháp nhận dạng dựa vào từ điển do chỉ cần đối chiếu văn bản với tập hợp nhỏ các cụm từ giả định, tạo cơ sở giả định, bổ sung mới các từ, cụm từ giả định nhanh hơn nhiều so với tạo lập cuốn từ điển, rất hiệu quả đối với thám mã các hệ mật mã cổ điển có không gian khóa không quá lớn
Phương pháp này có các nhược điểm là kết quả thám mã thường dựa vào ngữ cảnh
và sự suy đoán, sự bổ sung cụm từ giả định của con người, xác suất thành công không xác định hoặc không cao và khó tự động hoá
3.2.2.3 Nhận dạng dựa vào phương pháp thống kê đặc trưng ngôn ngữ
Đặc trưng của một chữ viết thuộc ngôn ngữ nào đó có thể được xác định dựa trên
thống kê tần suất đơn hoặc tần suất bộ đôi của sự xuất hiện các chữ cái Phần này sẽ tập
trung nghiên cứu xây dựng thuật toán nhận dạng “bản rõ” tự động dựa trên thống kê tần
suất bộ đôi
Tần suất bộ đôi là xác suất để một chữ cái liền kề sau chữ cái khác hay xác suất để
hai chữ cái bất kỳ trong bảng chữ cái đứng cạnh nhau Đặc trưng này của ngôn ngữ được thể hiện ở mô hình nổi tiếng được ứng dụng rộng rãi trong lĩnh vực xử lý ngôn ngữ tự nhiên - Mô hình xích Markov Dựa vào mô hình này để xây thuật toán giúp máy tính phân biệt được chữ viết một ngôn ngữ xác định với một xâu ký tự ngẫu nhiên, hoặc phân biệt chữ viết của hai hay nhiều ngôn ngữ khác nhau Tuy nhiên, trong phạm vi nghiên cứu của
đề tài, việc xây dựng thuật toán nhận dạng “bản rõ” (“valid” plain-text) là để phân biệt được một thông điệp tiếng Anh với một xâu ký tự ngẫu nhiên Trong trường hợp này, xâu
ký tự ngẫu nhiên được sinh ra do thực hiện giải mã bản mã cho trước (“valid” cipher-text) bởi một khóa thử k bất kỳ, mà không phải là khóa đúng
3.2.3 Xây dựng thuật toán nhận dạng “bản rõ” dựa vào phương pháp thống
kê đặc trưng ngôn ngữ
3.2.3.1 Một số khái niệm cơ sở về “bản rõ”
Định nghĩa 3.1: Một “bản rõ” X = x1x2 xm là một dãy các ký tự của bản chữ cái A = {a, b, c, , z} mà người am hiểu ngôn ngữ có thể đọc, hiểu được nội dung thông tin chứa trong x
Định nghĩa 3.2: Ta gọi bảng chữ cái A là tập hợp tất cả các ký hiệu khác nhau,
cho phép viết được thành một bản tin rõ có nghĩa (plaintext)
Ví dụ: A1 = {a, b, , z};
A2 = {a, b, , z, 0, 1, , 9};
Trang 3529
A3 = {x: x ∈ {0, 1}8}; v.v đều là những bảng chữ cái
Định nghĩa 3.3: Một “bản rõ” (thông điệp) X = x0x1 xn-1 được gọi là được viết theo bảng chữ cái A nào đó là một dãy hữu hạn các biến ngẫu nhiên tuân theo một quy luật xác suất nào đó
Định nghĩa 3.4: Một “bản rõ” (thông điệp) X được gọi là tuân theo xích Markov nếu X = x0 xn-1 gồm n ký tự xi được chọn từ bảng chữ cái tiếng Anh A = {a, b,…, z}
có các tính chất sau:
X có phân bố xác suất P(xi) không đồng đều và không độc lập vì sự xuất hiện một
ký tự bất kỳ trong dãy phụ thuộc vào các ký tự ngay trước đó
P(x1) = P(x1/x0); P(x2) = P(x2/x1); …; P(xn-1) = P(xn-1/xn-2)
Hình 3.3 Mô phỏng về xác suất chuyển
giữa hai chữ cái liền kề trong chữ viết tiếng Anh [15]
Ngược lại, nếu X là mẫu ngẫu nhiên, có phân bố đều thì:
P(xi) = (1/26), hay P(x1) = P(x2) = … = P(xn-1) = 1/26
3.2.3.2 Thuật toán nhận dạng “bản rõ”
Mục đích của phần này là nghiên cứu và mở rộng một bổ đề cơ bản trong lý thuyết thông tin Trên cơ sở đó, đề xuất một thuật toán phân lớp các đối tượng phục vụ yêu cầu cần thiết của các kỹ thuật thám mã (cryptanalysis) các hệ mã hóa và kỹ thuật phát hiện ảnh giấu tin mật (steganalysis)
Trang 3630
Bổ đề 1 có thể được mở rộng sang trường hợp hàm nhiều biến như sau:
Bổ đề 1’ Giả sử f(x1, x2, , xn), g(x1, x2, , xn) là hai hàm không âm, khả tích trên không gian n chiều
S = S1 x S2 x x Sn (trường hợp đặc biệt là S = Sn) đối với độ đo µ = (µ1,
µ2, , µn), 𝜎 hữu hạn nào đó sao cho:
Bây giờ chúng ta đưa ra một số khái niệm cơ sở
Định nghĩa 1 Hai hàm số f và g được xác định trên tập hợp S được gọi là bằng
nhau theo nghĩa xác suất P (f =P g) nếu ∃𝜀 > 0, và xác suất:
P{x ∊ S: |f(x) – g(x)| < 𝜀} = 1
Định nghĩa 2 Hai hàm số f và g được xác định trên tập hợp S được gọi là khác nhau theo nghĩa xác suất (f g)P nếu ∃𝜀 > 0, và xác suất:
P{x ∊ S: |f(x) – g(x)| ≥ 𝜀} = 1
Ta ký hiệu: U(f) = {h: h =P f}; U(g) = {h: h =P g}
Rõ ràng rằng nếu f g P thì giao của hai tập hợp U(f) U(g) =P (1)
(theo nghĩa xác suất)
Chứng minh:
Thật vậy, giả sử h ∈ U(f), tức là ∀𝜀1 > 0, ta có xác suất
P{|h - f| < 𝜀1} = 1 và đồng thời h ∈ U(g), tức là:
Trang 37Kết quả này trái với giả thiết f gP Vậy khẳng định (1) đƣợc chứng minh
Sự phân biệt giữa hai tập hợp U(f) và U(g) là cơ sở để phân biệt giữa hai tập hợp xâu ký tự là tập hợp xâu ký tự ngẫu nghiên, và tập hợp các xâu ký tự là “bản rõ” hay các xâu có nghĩa, đọc đƣợc
b, c, , z}, i =1, 𝑚 Hãy xây dựng một thuật toán để máy tính trả lời cho câu hỏi: dãy
X là “bản rõ” hay là dãy giả ngẫu nhiên (một dãy vô nghĩa)?
c) Phương pháp giải
Nhƣ đã định nghĩa ở trên, theo quan điểm Markov, một thông báo rõ X = x0 xn-1 là một mẫu đƣợc lấy có lựa chọn các ký tự từ bảng chữ cái A = {a0, a1, , am-1} với
Trang 3832
phân bố xác suất P(X), X ∈ A Nếu X là “bản rõ” (thông báo rõ) thì phân bố xác suất của chúng là không đồng đều và không độc lập vì sự xuất hiện một ký tự bất kỳ trong dãy phụ thuộc vào các ký tự ngay trước đó Còn nếu X là mẫu ngẫu nhiên độc lập có phân bố đều thì P(X) = (1/m)n Trong đó, m là số lượng chữ cái của bảng chữ cái A, còn n là
độ dài của mẫu X
Như vậy, với bài toán đặt ra ở Mục 3, ta có hai giả thuyết được đặt ra như sau:
• Giả thuyết H0 : Mẫu X = (x0, , xn-1) là dãy ngẫu nhiên, độc lập lấy từ họ phân bố đều, tức là có mật độ xác suất: P(X) = f0(x) = 1/m, ∀𝑥
• Giả thuyết H1 : Mẫu X lấy từ một nguồn Markov m trạng thái Tức là P(X) =
g0(X), X ∈ A Với g0(X) được cho trước hoặc được xác định bằng phương pháp ước lượng thống kê nào đó, chẳng hạn phương pháp ước lượng cực đại hợp lý (Maximal Likelihood Estimator) Như vậy là hàm f(X) và g(X) là đã biết (hoặc có thể ước lượng được) Có nhiều cách giải bài toán được cho ở Mục 3
Do mục tiêu của bài toán và Mệnh đề nói trên áp dụng cho nhận dạng “bản rõ” tiếng Anh nên không gian biến đã được xác định, gồm 26 chữ cái tiếng Anh Vì vậy, có thể thay dấu tích phân ( ) bằng dấu tổng (∑) vào vế trái của Bất đẳng thức 3.2, và 3.3 đồng thời thêm một số tham số dương k để có biểu thức sau:
Như vậy, theo Mệnh đề nếu (3.4) ≥ 0 thì h(x) ∈ U(f)
Trái lại, theo Mệnh đề nếu (3.4) < 0 thì h(x) ∈ U(g)
Trong (3.4) đối với một lớp rộng rãi các ngôn ngữ la tinh, ta chọn k = 7 còn log là logarit cơ số 10
Dưới đây sẽ trình bày thuật toán nhận biết “bản rõ” dựa trên tần suất tần suất bộ
đôi Thuật toán gồm hai phần Trong đó phần offline thực hiện tiền tính toán tần suất đối với chữ viết là ngôn ngữ tiếng Anh và chỉ thực hiện một lần Phần Online thực hiện tính
toán tần số hay số lần xuất hiện của các bộ đôi chữ cái (không cần tính tần suất) đối với xâu đầu vào X