lecture3 DES
1Lecture 3: Chuẩn mã hóa dữ liệuDES (Data Encryption Standard)1. Vài nét về lịch sử phát triển DES2. Khái quát các vấn đề mã hóa DES3. Chi tiết giải thuật mã hóa DES4. Các phương thức sử dụng 2I. Vài nét về lịch sử phát triển DESDES được công bố vào tháng 1 năm 1977, DES là một chuẩn đã được sử dụng rộng rãi cho bảo mật dữ liệu trong các hệ thống máy tính. Kể từ đócứ 5 năm một lần, DES lại được Uỷ ban Tiêu chuẩn Quốc gia Mỹ xem xét lại. Theo công bố năm 1998 thì mọi hệ DES, với những khả năng của máy tính hiện nay, đều có thể bẻ khóa trong vòng 2 giờ.Tuy nhiên, cho đến nay DES vẫn là một mô hình chuẩn cho các ứng dụng bảo mật trong thực tế. 3II. Khái quát thuật toán mã hóa DES-DES làthuật toán mã hóa khối (block cipher) nghĩa lànó làm việc trên các khối bản rõ (plaintext blocks) 64 bít, (tương đương với 16 số hecxa) và trả về các khối mã hóa (ciphertext blocks) cùng kích thước 64 bít.- Để mã hóa, DES dùng các “keys” cũng có độ dài 64 bít. Tuy nhiên mỗi key đócó8 bít bị lờ đi trong giải thuật DES, vì vậy kích thước “key” thực sự là 56 bít. 40123456789EFABCD0E329232EA6D0D730E329232EA6D0D730123456789EFABCD0000000000000000Thuật toánmã hóaKhóa KThuật toánGiải mãMô hình mã hóa DESBản tin rõBản tin mã hóaKhóa để mã hóaBản tin cần mã hóaBản đã mã hóa0000000000000000 5• Sơ đồ khối thực hiện giải thuật DES- Input: Bản rõ M- Output: Bản mã hóa C* Các bước (lời giải thô):B1: Khối bản rõ 64 bít được hoán vị(hoán vị khởi đầu) để thay đổi thứ tựcủa các bít.B2: Chia bản rõ vừa hoán vị bít làmhai nửa trái L0và phải R0, mỗi nửa32 bít.B3: Dùng 16 vòng lặp, tính LnRn(n=1 16) theo quy tắc:Ln= Rn-1Rn=Ln-1+ f(Rn-1,Kn)B4: Tại vòng lặp cuối cùng n=16, tađươc L16R16 , đổi vị trí 2 nửa này chonhau thành R16L16B5: Hoán vị thứ tự bít cho R16L16, tađược đầu ra là bản mã hóa cần tìm. 6• Chi tiết các bước thực hiện của giải thuật DESĐể chi tiết hóa thuật toán DES, cần phải tìm hiểu một số vấn đề :1. Cách hoán vị bít.2. Cách tạo 16 khóa con Ki(Subkeys) từ K.3. Cách tính hàm f.4. Cách thức mã hóa khối dữ liệu 64 bít. 7Sơ đồ tạo các khóa con (Subkeys)Vòng1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16Dịch trái1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1K+ (56bits)K (64bits)PC-1Bảng PC-1D0 (28bits)C0 (28bits)D1 (28bits)C1 (28bits)<< <<D16 (28bits)C16 (28bits)<< <<… … << <<Bảng dịch trái các bítK1 (48bits)PC-2K16 (48bits)PC-2… 57 49 41 33 25 17 9 1 58 50 42 34 26 1810 2 59 51 43 35 27 19 11 3 60 52 44 3663 55 47 39 31 23 15 7 62 54 46 38 30 2214 6 61 53 45 37 29 21 13 5 28 20 12 4Bảng PC-214 17 11 24 1 5 3 28 15 6 21 1023 19 12 4 26 8 16 7 27 20 13 241 52 31 37 47 55 30 40 51 45 33 4844 49 39 56 34 53 46 42 50 36 29 32 8Ví dụ tạo các khóa con• Giả sử khóa K ban đầu, áp dụng bảng PC-1 tính K+:K = 00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001K+ = 1111000 0110011 0010101 0101111 0101010 1011001 1001111 0001111• Từ K+, chia 2 nửa C0D0, mỗi nửa 28 bít C0 = 1111000 0110011 0010101 0101111 D0 = 0101010 1011001 1001111 0001111 Bảng PC-1 (56 bít)57 49 41 33 25 17 9 1 58 50 42 34 26 1810 2 59 51 43 35 27 19 11 3 60 52 44 3663 55 47 39 31 23 15 7 62 54 46 38 30 2214 6 61 53 45 37 29 21 13 5 28 20 12 411 9Ví dụ tạo các khóa con (tiếp)• Ví dụ: Từ C0D0đã có ở trênC0 = 1111000011001100101010101111 D0 = 0101010101100110011110001111Vòng lặp 1: dịch trái C0D01 bít ta được cặp C1D1C1 = 1110000110011001010101011111D1 = 1010101011001100111100011110Vòng lặp 2: dịch trái C1D11 bít ta được.C2D2C2 = 1100001100110010101010111111D2 = 0101010110011001111000111101 Vòng1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16Dịch trái1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1Bảng dịch trái các bít 10Ví dụ tạo các khóa con (tiếp)•Vậy, qua 16 vòng lặp ta sẽ có các cặp từ C1D1đến C16D16• Để hình thành các khóa Kn, 1≤n≤16, ta phải dựa vào các cặp CnDn đã tính ở trên và tra vào bảng hoán vị bít PC-2• Ví dụ: Giả sử ta đang cóC1D1= 1110000110 0110010101 0101111110 1010101100 1100111100 011110K1= 000110 110000 001011 101111 111111 000111 000001 110010•Tương tự, các khóa K2, K3,…, K16tương ứng tính được dựa vào C2D2, C3D3,…, C16D16và bảng PC-2Bảng PC-2 (48 bít)14 17 11 24 1 5 3 28 15 6 21 1023 19 12 4 26 8 16 7 27 20 13 241 52 31 37 47 55 30 40 51 45 33 4844 49 39 56 34 53 46 42 50 36 29 32 [...]... được sử dụng theo thứ tự ngược lại Nghĩa là, nếu các khoá mã hoá cho mỗi vòng là k1, k2, k3 , , k15, k16 thì các khoá giải mã là k16, k15, , k3, k2, k1 25 Các phương án sử dụng 1 Triple DES (DES3 ) Thời gian của DES khá lâu, đôi khi không thích hợp với mọi loại ứng dụng 2 Véc tơ khởi tạo (IV) Véc tơ khởi tạo IV- Đó một khối giả để để kích hoạt quá trình xử lý cho khối dữ liệu thật đầu tiên, và đồng... 00110010 00110100 • Áp dụng Bảng IP-1 được: IP-1 = 10000101 11101000 00010011 01010100 00001111 00001010 10110100 00000101 = 85E813540F0AB40516 Vậy với bản rõ M: 0123456789ABCDEF sau khi thực hiện giải thuật DES với khóa K=abcdefaa sẽ cho ra bản mã là: 85E813540F0AB405 40 39 38 37 36 35 34 33 8 7 6 5 4 3 2 1 Bảng IP-1 (64 bít) 48 16 56 24 64 47 15 55 23 63 46 14 54 22 62 45 13 53 21 61 44 12 52 20 60 43 11 . hóa dữ liệuDES (Data Encryption Standard)1. Vài nét về lịch sử phát triển DES2 . Khái quát các vấn đề mã hóa DES3 . Chi tiết giải thuật mã hóa DES4 . Các phương. phương thức sử dụng 2I. Vài nét về lịch sử phát triển DESDES được công bố vào tháng 1 năm 1977, DES là một chuẩn đã được sử dụng rộng rãi cho bảo mật dữ