Mã nén lecture3- DES

31 373 2
Mã nén lecture3- DES

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Mã nén

1Lecture 3: Chuẩn 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 đề hóa DES3. Chi tiết giải thuật 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 hóa DES-DES làthuật toán 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 hóa (ciphertext blocks) cùng kích thước 64 bít.- Để 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 hóa DESBản tin rõBản tin hóaKhóa để hóaBản tin cần hóaBản đã hóa0000000000000000 5• Sơ đồ khối thực hiện giải thuật DES- Input: Bản rõ M- Output: Bản 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 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 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 [...]... liệu hoá, P: khối dữ liệu rõ và công thức toán học cho giải là: Pi = Dk(Ci) XOR (Ci-1), Co = IV 28 Các phương án sử dụng (tiếp) Phương thức phản hồi CFB - Mỗi khối dữ liệu plaintext sẽ được XOR với hoá của khối ciphertext trước đó để tạo thành khối ciphertext mới - Nếu khối đầu tiên có chỉ số là 1 thì công thức toán học cho việc hoá là: Ci = Ek(Ci-1) XOR Pi, Co = IV C: khối dữ liệu mã. .. toàn giống các bước ở trên, chỉ có sự khác nhau đó là các khoá phải được sử dụng theo thứ tự ngược lại Nghĩa là, nếu các khoá hoá cho mỗi vòng là k1, k2, k3 , , k15, k16 thì các khoá giải 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ả để để... thức điện tử ECB - Đây là chế độ đơn giản nhất trong các chế độ - Bản tin được chia thành các khối và các khối được hoá độc lập với nhau - Nhược điểm: các khối plaintext giống nhau sẽ được hoá thành các khối ciphertext giống nhau Do vậy, nó không tốt trong việc giấu các mẫu dữ liệu và không được khuyến khích sử dụng trong các giao thức mật 27 Các phương án sử dụng (tiếp) Phương thức liên... 0123456789ABCDEF sau khi thực hiện giải thuật DES với khóa K=abcdefaa sẽ cho ra bản 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 51 19 59 42 10 50 1824 58 41 9 49 17 57 32 31 30 29 28 27 26 25 Vấn đề giải • Việc giải (Decryption) là quá trình làm ngược lại của hóa (encryption), hoàn toàn... hoá, P: khối dữ liệu rõ và công thức toán học cho giải là: Pi = Ek(Ci-1) XOR Ci, Co = IV 29 Các phương án sử dụng (tiếp) Phương thức phản hồi đầu ra OFB - Nếu khối đầu tiên có chỉ số là 1 thì công thức toán học cho việc hoá là: Ci = Pi XOR Oi Oi = Ek(Oi-1) Oo = IV C: khối dữ liệu hoá, P: khối dữ liệu rõ và công thức toán học cho giải là: Pi = Ci XOR Oi 30 • Khoảng 1975, Diffie và Hellman... toán hàm f P f(Rn-1,Kn) (32 bits) 21 hóa khối dữ liệu 64 bits M (64 bít) Bảng IP IP (64 bít) L0 (32bits) L1=R0 16 vòng lặp tính LnRn R0 (32bits) R1=L0 ⊕ F(R0, K1) … f(R0,K1) f(R0,K1) ? … Ví dụ: Cho n = 1, K1 đã có, tính: L1 = R0 = 1111 0000 1010 1010 1111 0000 1010 1010 R1 = L0 ⊕ f(R0,K1) L16=R15 R16=L15 ⊕ F(R15, K16) ?? R16 L16 Bảng IP-1 IP-1 C (đã hóa) 22 hóa khối dữ liệu 64 bits • Sau khi... 1010 R16 L16 Bảng IP-1 IP-1 C (đã hóa) 12 hóa khối dữ liệu 64 bits M (64 bít) Bảng IP IP (64 bít) L1=R0 R0 (32bits) R1=L0 ⊕ f(R0, K1) … … L16=R15 R16=L15 ⊕ f(R15, K16) Ví dụ: Cho n=1, với L0, R0, K1 đã có, tính được: L1 = R0 = 1111 0000 1010 1010 1111 0000 1010 1010 R1 = L0 ⊕ f(R0,K1) f(R,K) ? L0 (32bits) 16 vòng lặp tính LnRn ?? R16 L16 Bảng IP-1 IP-1 C (đã hóa) 13 Các bước tính toán hàm... plaintext trước khi được hoá sẽ được XOR với khối ciphertext của khối plaintext trước đó - Như vậy: mỗi khối dữ liệu ciphertext sẽ phụ thuộc vào tất cả các khối plaintext đã được xử lý cho đến thời điểm đó - Để đảm bảo tính duy nhất của bản tin thì một véc tơ khởi tạo sẽ được sử dụng trước khối dữ liệu đầu tiên - Nếu khối đầu tiên có chỉ số là 1 thì công thức toán học cho việc hoá là: Ci = Ek(Pi... f(R15, K16) • Cứ thế cho 16 lần lặp • Tại vòng lặp n=16, ta được: L16 R16 • Đảo vị trí của 2 khối này cho nhau thành: R16L16 •Áp dụng Bảng hoán vị IP-1 cho R16L16 ta được thu bản hóa cần tìm R16 L16 Bảng IP-1 IP-1 C (đã hóa) 23 Ví dụ: Giả sử tại vòng lặp thứ 16 chúng ta thu được: L16 = 01000011 01000010 00110010 00110100 R16 = 00001010 01001100 11011001 10010101 • Đảo vị trí L16R16 thành: R16L16... 33 25 17 9 1 35 27 19 11 3 37 29 21 13 5 39 31 23 15 7 Xử lý qua 16 lần lặp, 1≤n≤16, tính LnRn theo quy tắc: Ln = Rn-1 Rn = Ln-1 ⊕ f(Rn-1 ,Kn ) R16=L15 ⊕ F(R15, K16) R16 L16 Bảng IP-1 IP-1 C (đã hóa) 11 hóa khối dữ liệu 64 bits M (64 bít) 58 60 62 64 57 59 61 63 Bảng IP IP (64 bít) L0 (32bits) R0 (32bits) 50 52 54 56 49 51 53 55 42 44 46 48 41 43 45 47 Bảng IP (64 bít) 34 26 18 10 2 36 28 20 . 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- . 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 .

Ngày đăng: 13/11/2012, 17:09

Hình ảnh liên quan

Mô hình mã hóa DES - Mã nén lecture3- DES

h.

ình mã hóa DES Xem tại trang 4 của tài liệu.
Bảng PC-1 - Mã nén lecture3- DES

ng.

PC-1 Xem tại trang 7 của tài liệu.
• Giả sử khóa K ban đầu, áp dụng bảng PC-1 tính K+: - Mã nén lecture3- DES

i.

ả sử khóa K ban đầu, áp dụng bảng PC-1 tính K+: Xem tại trang 8 của tài liệu.
Bảng IP - Mã nén lecture3- DES

ng.

IP Xem tại trang 11 của tài liệu.
Bảng IP - Mã nén lecture3- DES

ng.

IP Xem tại trang 12 của tài liệu.
Bảng IP - Mã nén lecture3- DES

ng.

IP Xem tại trang 13 của tài liệu.
E(R). Bảng E (48 bít) - Mã nén lecture3- DES

ng.

E (48 bít) Xem tại trang 14 của tài liệu.
Cách ộ pS được cho trong bảng dưới đây - Mã nén lecture3- DES

ch.

ộ pS được cho trong bảng dưới đây Xem tại trang 19 của tài liệu.
Bảng P (32 bít) - Mã nén lecture3- DES

ng.

P (32 bít) Xem tại trang 20 của tài liệu.
•Áp dụng Bảng P, ta được: - Mã nén lecture3- DES

p.

dụng Bảng P, ta được: Xem tại trang 21 của tài liệu.
Bảng IP - Mã nén lecture3- DES

ng.

IP Xem tại trang 22 của tài liệu.
Bảng IP - Mã nén lecture3- DES

ng.

IP Xem tại trang 23 của tài liệu.
Bảng IP-1 (64 bít) - Mã nén lecture3- DES

ng.

IP-1 (64 bít) Xem tại trang 24 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan