Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 21 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
21
Dung lượng
438 KB
Nội dung
Học viện Kỹ thuật Mật mã Môn: Cơ sở lí thuyết Mật mã MỤC LỤC MỤC LỤC i CHƯƠNG I: MÃ HÓA DES .1 1.1 Định nghĩa 1.2 Mô hình mã Feistel 1.3 Thuật toán sinh khóa 1.4 Hàm Feistel (F) CHƯƠNG II PHƯƠNG PHÁP THÁM MÃ TUYẾNTÍNHVỚIDES 2.1 Giới thiệu 2.2 Nguyên lý côngtuyếntính .8 2.2.1 Thuật toán 1: 2.2.2 Thuật toán 2: 10 2.3 Xấp xí tuyếntính S-box 10 2.4 Xấp xỉ tuyếntính hệ mã DES 11 2.5 Tỉ lệ thành côngvớicông rõ biết hệ mã DES 12 CHƯƠNG III: THỰCHÀNHTẤNCÔNGTUYẾNTÍNHDESVỚIVÒNG .14 3.1 Phương pháp áp dụng .14 3.2 Chương trình thám mã tuyếntínhvớiDESvòng 18 3.3 Kết thực nghiệm 18 Nhóm Page i Học viện Kỹ thuật Mật mã Môn: Cơ sở lí thuyết Mật mã DANH MỤC HÌNH ẢNH, BẢNG BIỂU Hình 1: Sơ đồ tính toán hệ mã Feistel Hình 2: Quá trình sinh khóa Hình 3: Hàm Feistel DES Hình 4: Sơ đồ minh họa trình áp dụng 15 Bảng 1: Tỷ lệ thành công thuật toán 12 Bảng 2: Tỷ lệ thành công thuật toán 13 Bảng 3: Tỉ lệ thành công thuật toán 16 Bảng 4: Tỉ lệ thành công thuật toán với (3.5) (3.6) 16 Bảng 5: Tỉ lệ thành công thuật toán với (3.9) (3.10) 17 Bảng 6: Tỉ lệ thành công thuật toán với (3.13) (3.14) 17 Bảng 7: Kết thực nghiệm tỉ lệ thành công thám DESvòng (tìm đủ 56 bit khóa) .19 Nhóm Page ii Học viện Kỹ thuật Mật mã Môn: Cơ sở lí thuyết Mật mã CHƯƠNG I: MÃ HÓA DES 1.1 Định nghĩa DES thuật toán mã hóa khối, xử lý khối thông tin rõ có độ dài xác định biến đổi theo trình phức tạp để trở thành khối thông tin mã có độ dài không thay đổi, độ dài khối 64 bit Hơn nữa, DES giải thuật đối xứng nên dùng mã khóa cho trình: mã hóa giải mã Khóa dùng DES có độ dài toàn 64 bit Tuy nhiên có 56 bit thực sử dụng; bit lại dùng cho việc kiểm tra Vì thế, độ dài thực tế khóa 56 bit DES có thiết kế liên quan tới khái niệm: mã hóa tổng (product cipher) mã Feistel (Feistel cipher) Một mã hóa tổng bao gồm hai hay nhiều mã hóa đơn giản (như phép thay hoán vị), mã hóa tổng an toàn nhiều so với mã hóa thành phần Mã Feistel mã khối lặp, kết hợp phép thay hoán vị Trong hệ mã Feistel, rõ biến đổi qua số vòng mã cuối Nhóm Page Học viện Kỹ thuật Mật mã Môn: Cơ sở lí thuyết Mật mã 1.2 Mô hình mã Feistel Mã Feistel mã khối lặp Có 16 chu trình giống trình xử lý Ngoài có hai lần hoán vị đầu cuối (Initial and final permutation IP & FP) Hai trình có tính chất đối (Trong trình mã hóa IP trước FP, giải mã ngược lại) Bản rõ P mã Ci chia thành nửa trái nửa phải: p = ( L0 , R0 ) Ci = ( Li , Ri ) i = 1, 2, , n Quy tắc biến đổi nửa trái phải qua vòngthực sau: Li = Ri −1 Ri = Li −1 ⊕ F ( Ri −1 , K i ) Ki khóa cho vòng thứ i Khóa sinh từ khóa K ban đầu theo thuật toán sinh khóa (key schedule): K → K1 → K → → K n F hàm mã hóa dùng chung cho tất vòng Hàm F đóng vai trò phép thay việc hoán đổi nửa trái phải có vai trò hoán vị Bản mã C tính từ kết xuất vòng cuối cùng: C = Cn = ( Ln , Rn ) Nhóm Page Học viện Kỹ thuật Mật mã Môn: Cơ sở lí thuyết Mật mã Hình 1: Sơ đồ tính toán hệ mã Feistel Để giải mã trình thực qua vòng theo thứ tự ngược lại: C → Ln , Rn Ri −1 = Li Li −1 = Ri ⊕ ( Ri −1 , K i ) Và cuối rõ là: P = ( L0 , R0 ) Nhóm Page Học viện Kỹ thuật Mật mã Môn: Cơ sở lí thuyết Mật mã 1.3 Thuật toán sinh khóa Khóa DES khối 64-bit, bit quan trọng byte bỏ qua sử dụng để kiểm tra chẵn lẻ, đảm bảo khóa lỗi Hoạt động thực permuted choice 1, ký hiệu PC: bit lại bị loại bỏ, 56 bit thu được chia làm hai phần nhau, phần xử lý độc lập Sau chu trình, phần dịch bit (tùy thuộc chu trình, chu trình 1,2,9,16 dịch bit, lại dịch bit) Các khóa 48 bit tạo thành thuật toán lựa chọn (Permuted Choice 2, hay PC-2) gồm 24 bit từ phần Quá trình dịch bit (được ký hiệu "