chương 3 chuẩn mã hóa dữ liệu

48 373 0
chương 3  chuẩn mã hóa dữ liệu

Đ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

Vietebooks Nguyn Hong Cng Trang 1 Chơng 3 Chuẩn m dữ liệu 3.1. Mở đầu. Ngày 15.5.1973. Uỷ ban tiêu chuẩn quốc gia Mỹ đã công bố một khuyến nghị cho các hệ mật trong Hồ sơ quản lý liên bang. Điều này cuối cùng đã dẫn đến sự phát triển của Chuẩn mã dữ liệu (DES) và nó đã trở thành một hệ mật đợc sử dụng rộng rãi nhất trên thế giới. DES đợc IBM phát triển và đợc xem nh một cải biên cuả hệ mật LUCIPHER. Lần đầu tiên DES đợc công bố trong Hồ sơ Liên bang vào ngày 17.3.1975. Sau nhiều cuộc trânh luận công khai, DES đã đợc chấp nhận chọn làm chuẩn cho các ứng dụng không đợc coi là mật vào 5.1.1977. Kể từ đó cứ 5 năm một lần, DES lại đợc Uỷ ban Tiêu chuẩn Quốc gia xem xét lại. Lần đổi mới gàn đây nhất của DES là vào tháng 1.1994 và tiếp tới sẽ là 1998. Ngời ta đoán rằng DES sẽ không còn là chuẩn sau 1998. 3.2. Mô tả DES Mô tả đầy đủ của DES đợc nêu trong Công bố số 46 về các chuẩn xử lý thông tin Liên bang (Mỹ) vào 15.1.1977. DES mã hoá một xâu bít x của bẳn rõ độ dài 64 bằng một khoá 54 bít. Bản mã nhậ đợc cũng là một xâu bít có độ dài 48. Trớc hết ta mô tả ở mức cao của hệ thống. Thuật toán tiến hành theo 3 giai đoạn: 1.Với bản rõ cho trớc x, một xâu bít x 0 sẽ đợc xây dựng bằng cách hoán vị các bít của x theo phép hoán vị cố định ban đầu IP. Ta viết:x 0 = IP(X) = L 0 R 0 , trong đó L 0 gồm 32 bít đầu và R 0 là 32 bít cuối. 2. Sau đó tính toán 16 lần lặp theo một hàm xác định. Ta sẽ tính L i R i , 1 i 16 theo quy tắc sau: L i = R i-1 R i = L i-1 f(R i-1 ,K i ) trong đó kí hiệu phép hoặc loại trừ của hai xâu bít (cộng theo modulo 2). f là một hàm mà ta sẽ mô tả ở sau, còn K 1 ,K 2 , . . . ,K 16 là các xâu bít độ dài 48 đợc tính nh hàm của khoá K. ( trên thực tế mỗi K i là một phép chọn hoán Vietebooks Nguyn Hong Cng Trang 2 vị bít trong K). K 1 , . . ., K 16 sẽ tạo thành bảng khoá. Một vòng của phép mã hoá đợc mô tả trên hình 3.1. 3. áp dụng phép hoán vị ngợc IP -1 cho xâu bít R 16 L 16 , ta thu đợc bản mã y. Tức là y=IP -1 (R 16 L 16 ). Hãy chú ý thứ tự đã đảo của L 16 và R 16 . Hình 3.1. Một vong của DES Hàm f có hai biến vào: biến thứ nhất A là xâu bít độ dài 32, biến thứ hai J là một xâu bít độ dài 48. Đầu ra của f là một xâu bít độ dài 32. Các bớc sau đợc thực hiện: 1. Biến thứ nhất A đợc mở rộng thành một xâu bít độ dài 48 theo một hàm mở rộng cố định E. E(A) gồm 32 bít của A (đợc hoán vị theo cách cố định) với 16 bít xuất hiện hai lần. 2. Tính E(A) J và viết kết quả thành một chuỗi 8 xâu 6 bít = B 1 B 2 B 3 B 4 B 5 B 6 B 7 B 8 . 3.Bớc tiếp theo dùng 8 bảng S 1 , S 2 , ,S 8 ( đợc gọi là các hộp S ). Với mỗi S i là một bảng 4ì16 cố định có các hàng là các số nguyên từ 0 đến 15. Với xâu bít có độ dài 6 (Kí hiệu B i = b 1 b 2 b 3 b 4 b 5 b 6 ), ta tính S j (B j ) nh sau: Hai bít b 1 b 6 xác định biểu diễn nhị phân của hàng r của S j ( 0 r 3) và bốn bít (b 2 b 3 b 4 b 5 ) xác định biểu diễn nhị phân của cột c của S j ( 0 c 15 ). Khi đó S j (B j ) sẽ xác định phần tử S j (r,c); phần tử này viết dới dạng nhị phân là một xâu bít có độ dài 4. ( Bởi vậy, mỗi S j có thể đợc coi là một hàm mã mà đầu vào là một xâu bít có độ dài 2 và một xâu bít có độ dài 4, còn đầu ra là một xâu bít có độ dài 4). Bằng cách tơng tự tính các C j = S j (B j ), 1 j 8. 4. Xâu bít C = C 1 C 2 C 8 có độ dài 32 đợc hoán vị theo phép hoán vị cố định P. Xâu kết quả là P(C) đợc xác định là f(A,J). L i-1 R i-1 f K i + L i R i Vietebooks Nguyn Hong Cng Trang 3 Hàm f đợc mô tả trong hình 3.2. Chủ yếu nó gômg một phép thế ( sử dụng hộp S ), tiếp sau đó là phép hoán vị P. 16 phép lặp của f sẽ tạo nên một hệ mật tích nêu nh ở phần 2.5. Hình 3.2. Hàm f của DES Trong phần còn lại của mục này, ta sẽ mô tả hàm cụ thể đợc dùng trong DES. Phép hoán vị ban đầu IP nh sau: B 1 B 2 B 3 B 4 B 5 B 6 B 7 B 8 c 1 c 2 c 3 c 4 c 5 c 6 c 7 c 8 A J E E(A) + S 1 S 2 S 3 S 4 S 5 S 6 S 7 S 8 f (A,J) Vietebooks Nguyn Hong Cng Trang 4 IP 58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 31 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7 Bảng này có nghĩa là bít thứ 58 của x là bít đầu tiên của IP(x); bít thứ 50 của x là bít thứ hai của IP(x), .v.v . . . Phép hoán vi ngợc IP -1 là: IP -1 40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 31 38 6 46 14 54 22 62 30 37 5 45 13 53 21 61 29 36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27 34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25 Hàm mở rộng E đợc xác đinh theo bảng sau: Bảng chọn E bít 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1 Tám hộp S là: Vietebooks Nguyễn Hoàng Cương Trang 5 S 1 14 4 13 1 2 15 11 8 3 10 3 12 5 9 1 7 1 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13 S 1 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9 S 3 10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1 13 6 4 9 8 5 3 0 11 1 2 12 5 10 14 7 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12 S 4 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14 S 5 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3 S 6 12 1 10 15 9 2 6 8 0 13 3 4 14 7 15 11 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6 4 3 2 12 9 5 15 10 11 14 11 7 6 0 8 13 S 7 4 11 12 14 15 0 8 13 3 12 9 7 5 10 6 1 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12 Vietebooks Nguyn Hong Cng Trang 6 S 8 13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11 Và phép hoán vị P có dạng: P 16 7 20 29 12 28 1 15 23 5 18 31 32 27 3 19 13 30 22 11 4 Cuối cung ta cần mô tả việc tính toán bảng khoá từ khoá K. Trên thực tế, K là một xâu bít độ dài 64, trong đó 56 bít là khoá và 8 bít để kiểm tra tính chẵn lẻ nhằm phát hiện sai. Các bít ở các vị trí 8,16, . . ., 64 đợc xác định sao cho mỗi byte chứa một số lẻ các số "1". Bởi vậy một sai sót đơn lẻ có thể phát hiện đợc trong mỗi nhóm 8 bít. Các bít kiểm tra bị bỏ qua trong quá trình tính toán bảng khoá. 1. Với một khoá K 64 bít cho trớc, ta loại bỏ các bít kiểm tra tính chẵn lẻ và hoán vị các bít còn lại của K theo phép hoán vị cố định PC-1. Ta viết: PC-1(K) = C 0 D 0 2. Với i thay đổi từ 1 đến 16: 3. C i = LS i (C i-1 ) D i = LS i (Di-1) Việc tính bảng khoá đợc mô tả trên hình 3.3 Các hoán vị PC-1 và PC-2 đợc dùng trong bảng khoá là: Vietebooks Nguyễn Hoàng Cương Trang 7 PC-1 57 49 41 33 25 17 1 58 50 42 34 26 10 2 59 51 43 35 19 11 3 60 52 44 63 55 47 39 31 23 7 62 54 46 38 30 14 6 61 53 45 37 21 13 5 28 20 12 H×nh 3.3 TÝnh b¶ng kho¸ DES. K PC - 1 C 0 D 0 L S 1 L S 1 C 1 D 1 PC - 2 K 1 . . L S 16 L S 16 C 16 D 16 PC - 2 K 16 Vietebooks Nguyn Hong Cng Trang 8 PC-2 14 17 11 24 1 5 3 28 15 6 21 10 23 19 12 4 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 Bây giờ ta sẽ đa ra bảng khoá kết quả. Nh đã nói ở trên, mỗi vòng sử dụng một khoá 48 bít gồm 48 bít nằm trong K. Các phần tử trong các bảng dới đây biểu thị các bít trong K trong các vòng khoá khác nhau. Vòng 1 10 51 34 60 49 17 35 57 2 9 19 42 3 35 26 25 44 58 59 1 36 27 18 41 22 28 39 54 37 4 47 30 5 53 23 29 61 21 38 63 15 20 45 14 13 62 55 31 Vòng 2 2 43 26 52 41 9 25 49 59 1 11 34 60 27 18 17 36 50 51 58 57 19 10 33 14 20 31 46 29 63 39 22 28 45 15 21 53 13 30 55 7 12 37 6 5 54 47 23 Vòng 3 51 27 10 36 25 58 9 33 43 50 60 18 44 11 2 1 49 34 35 42 41 3 59 17 61 4 15 30 13 47 23 6 12 29 62 5 37 28 14 39 54 63 21 53 20 38 31 7 Vòng 4 35 11 59 49 9 42 58 17 27 34 44 2 57 60 51 50 33 18 19 26 25 52 43 1 45 55 62 14 28 31 7 53 63 13 46 20 21 12 61 23 38 47 5 37 4 22 15 54 Vietebooks Nguyễn Hoàng Cương Trang 9 Vßng 5 19 60 43 33 58 26 42 1 11 18 57 51 41 44 35 34 17 2 3 10 9 36 27 50 29 39 46 61 12 15 54 37 47 28 30 4 .5 63 45 7 22 31 20 21 55 6 62 38 Vßng 6 3 44 27 17 42 10 26 50 60 2 41 35 25 57 19 18 1 51 52 59 58 49 11 34 13 23 30 45 63 62 38 21 31 12 14 55 20 47 29 54 6 15 4 5 39 53 46 22 Vßng 7 52 57 11 1 26 59 10 34 44 51 25 19 9 41 3 2 50 35 36 43 42 33 60 18 28 7 14 29 47 46 22 5 15 63 61 39 4 31 13 38 53 62 55 20 23 38 30 6 Vßng 8 36 41 60 50 10 43 59 18 57 35 9 3 58 25 5251 34 19 49 27 26 17 44 2 12 54 61 13 31 30 6 20 62 47 45 23 55 15 28 22 37 46 39 4 721 14 53 Vßng 9 57 33 52 42 2 35 51 10 49 27 1 60 50 17 44 43 26 11 41 19 18 9 36 59 4 46 53 5 23 22 61 12 54 39 37 15 47 7 20 14 29 38 31 63 62 13 6 45 Vßng 10 41 17 36 26 51 19 35 59 33 11 50 44 34 1 57 27 10 60 25 3 2 58 49 43 55 30 37 20 7 6 45 63 38 23 21 62 31 54 4 61 13 22 15 47 46 28 53 29 Vietebooks Nguyn Hong Cng Trang 10 Vòng 11 25 1 49 10 35 3 19 43 17 60 34 57 18 50 41 11 59 44 9 52 51 42 33 27 39 14 21 4 54 53 29 47 22 7 5 46 15 38 55 45 28 6 62 31 30 12 37 13 Vòng 12 9 50 33 59 19 52 3 27 1 44 18 41 2 34 25 60 43 57 58 36 35 26 17 11 23 61 5 55 38 37 13 31 6 54 20 30 62 22 39 29 12 53 46 15 14 63 21 28 Vòng 13 58 34 17 43 3 36 52 11 50 57 2 25 51 18 9 44 27 41 42 49 19 10 1 60 7 45 20 39 22 21 28 15 53 38 4 14 46 6 23 13 63 37 30 62 61 47 5 12 Vòng 14 42 18 1 27 52 49 36 60 34 41 51 9 35 2 58 57 11 25 26 33 3 59 50 44 54 29 4 23 6 5 12 62 37 22 55 61 30 53 7 28 47 21 14 46 45 31 20 63 Vòng 15 26 2 50 11 36 33 49 44 18 25 35 58 19 51 42 41 60 9 10 17 52 43 34 57 38 13 55 7 53 20 63 46 21 6 39 45 14 37 54 12 31 5 61 30 29 15 4 47 Vòng 16 18 59 42 3 57 25 41 36 10 17 27 50 11 43 34 33 52 1 2 9 44 35 26 49 30 5 47 62 45 12 55 58 13 61 31 37 6 27 46 4 23 28 53 22 21 7 62 39 Phép giải mã đợc thực hiện nhờ dùng cùng thuật toán nh phép mã nếu đầu vào là y nhng dùng bảng khoá theo thứ tự ngợc lại K 16 , K 1 . Đầu ra của thuật toán sẽ là bản rõ x. [...]... hoạ Ví dụ 3. 3 Giả sử ta có 3 cặp các bản rõ và các bản mã, trong đó các bản rõ có các phép XOR xác định, chúng đợc mã hoá bằng cùng một khoá Để cho gọn ta sẽ biểu thị dới dạng mã Hexa: Bản rõ 748502CD38451097 38 74756 438 451097 486911026ACDFF31 37 5BD31F6ACDFF31 35 7418DA013FEC86 12549847013FEC86 Bản mã 03C7 030 6D8AO9F10 78560A960E6D4CB 45FA285BE5ADC 730 134 F7915AC2 534 57 D8A31B2F28BBC5CF 0F317AC2B23CB944 Trang... trong J1 3. 6.1 Tấn công DES 3 vòng Bây giờ ta xét xem việc ứng dụng các ý tởng của phần trớc trong phép tấn công bản rõ chọn lọc lên một hệ DES 3 vòng Ta bắt đầu ằng một cặp các bản rõ và bản mã tơng ứng L0R0, L0*R0*,L3R3, và L3*R3* Có thể biểu thị R3 nh sau: R3 = L2 f (R2,K3) = R1 f (R2,K3) = L0 f (R0,K1) f (R2,K3) Biểu diễn R3* theo cách tơng tự nh vậy R3' = L0' f (R0,K1) f(R0*,K1) f (R2,K3) ... bằng 0,85 0 ,33 Bởi vậy xác suất để ít nhất một tập testj có lực lợng bằng 0 sẽ vào khoảng 0,67 Nh vậy ta hy vọng loại bỏ đợc 2 /3 số cặp sai bằng cách quan sát đơn giản này ( ta sẽ gọi là phép lọc ) Tỷ lệ các cặp đúng còn lại sau phép lọc xấp xỉ bằng (1/16)/(1 /3) = (3/ 16) Ví dụ 3. 4 Giả sử ta có cặp mã - rõ sau: Bản rõ Bản mã 86FA1C2B1F51D3BE C6F21C2B1B51D3BE 1E23ED7F2F5 539 71 296DE2B687AC 634 0 Nhận thấy... (R2*,K3) Bây giờ, giả sử ta đã chọn đợc các bản rõ sao cho R0 = R0* , nghĩa là để R0' = 00 .0 * Khi đó f (R0,K1) = f (R0 ,K1) và nh vậy: R3' = L0' f(R2,K3) f(R2*,K3) Lúc này R3' đã biết vì có thể tính đợc nó từ hai bản mã L0' cũng đã biết do có thể tính đợc nó từ hai bản rõ Điều này có nghiã là ta có thể tính f(R2,K3)f(R2*,K3) từ phơng trình: f(R2,K3)f(R2*,K3) = R3' L0' Bây giờ ta có f(R2,K3) =... (3. 2) (3. 3) bằng cách dùng hàm mở rộng E đợc biết công khai Đây là các mẫu vào các hột S ở vòng thứ 3 Nh thế ta đã biết E và E* và C ' của vòng thứ 3 và có thể thực hiện ( nh ở phần trớc) để xây dựng các tệp test1, , test8 chứa các giá trị có thể của các bít trong J1, .,J8 Mô tả dạng giả mã của thuật toán này đợc cho ở hình 3. 9 Hình 3. 9 Cách tấn công DC lên DES 3 vòng Đầu vào L0R0,L0*R0* , L3R3... Có thể biểu thị R6 nh sau: R6 = L5 f(R5,K6) = R4 f(R5,K6) = L3 f(R3,K4) f(R5,K6) R6* có thể biểu thị theo cách tơng tự và bởi vậy: R6' = L3' f(R3,K4) f(R3*,K4) f(R5,K6) f(R5*,K6) ( hãy chú ý sự tơng tự với phép tấn công 3 vòng) Trang 32 (3. 4) Vietebooks Nguyn Hong Cng R6' đã biết Từ đặc trng này ta thấy rằng L3' = 0400000016 và R3' = 4008000016 với xác suất1/16 Nếu đây là trờng hợp thực tế thì... f(R2*,K3) = P(C*), trong đó C và C* ký hiệu tơng ứng 2 dãy ra của 8 hộp S ( hãy nhớ lại rằng P là một phép hoán vị cố định công khai ) Bởi vậy: P(C) P(C*) = R3' L0' và do đó: C' = C C* = P-1(R3' L0') Đây là XOR ra của 8 hộp S ở vòng thứ 3 Trang 26 (3. 1) Vietebooks Nguyn Hong Cng Bây giờ R2 = L3 và R2* = L3* cũng đã biết ( chúng là một phần của các bản mã) Bởi vậy, có thể tính và E = E(L3) E* = E(L3*)... vòng Đầu vào L0R0,L0*R0* , L3R3 và L3*R3*, trong đó R0 = R0* 1 Tính C ' = P-1(R3' L0') 2 Tính E = E(L3) và E* = E(L3*) 3 For j = 1 to 8 do Tính testj(Ej, Ej*, Cj') Trong phơng pháp tấn công này sẽ phải dùng một số bộ ba E, E*,C ' nh vậy, Ta phải thiết lập 8 dãy bộ đếm và nhờ vậy xác định đợc 48 bít trong khoá K3 ( khoá của vòng thứ 3) Sau đó tính 56 bít trong khóa theo cách tìm kiếm vét cạn trong... =E(R5) = E(L6) E1* E2* E3* E4* E5* E6* E 7* E8* =E(R5*) = E(L6*) có thể đợc tính theo các bản mã nh đã mô tả trên hình 3. 13 Hình 3. 13 DC đối với DES 6 vòng Đầu vào L0R0,L0*R0*,L6R6,và L6*R6* trong đó L0' = 4008000016 và R0' = 0400000016 1 Tính C' = P-1(R6' 4008000016) 2 Tính E = E(L6) và E* = E(L6*) 3 For j {2, 5, 6, 7, 8} do Tính testj(Ej, Ej*, Cj') Bây giờ ta muốn xác định 30 bít khoá trong J2, J5,... đó sẽ đợc mã hoá bằng cách tính yi = xi zi,i 1 Trong chế độ CFB, ta bắt đầu với y0 = IV (là một véc tơ khởi tạo 64 bít) và tạo phần tử zi của dòng khoá bằng cách mã hoá khối bản mã trớc đó Tức zi = eK(yi-1), i 1 Cũng nh trong chế độ OFB: yi = xi zi,i 1 Việc sử dụng CFB đợc mô tả trên hình 3. 5 (chú ý rằng hàm mã DES eK đợc dùng cho cả phép mã và phép giải mã ở các chế độ CFB và OFB) Hình 3. 5 Chế độ . 42 33 27 39 14 21 4 54 53 29 47 22 7 5 46 15 38 55 45 28 6 62 31 30 12 37 13 Vòng 12 9 50 33 59 19 52 3 27 1 44 18 41 2 34 25 60 43 57 58 36 35 26 17 11 23 61 5 55 38 37 13 31 6 54 20 30 . 17 36 50 51 58 57 19 10 33 14 20 31 46 29 63 39 22 28 45 15 21 53 13 30 55 7 12 37 6 5 54 47 23 Vòng 3 51 27 10 36 25 58 9 33 43 50 60 18 44 11 2 1 49 34 35 42 41 3 59 17 61 4 15 30 13. 43 34 57 38 13 55 7 53 20 63 46 21 6 39 45 14 37 54 12 31 5 61 30 29 15 4 47 Vòng 16 18 59 42 3 57 25 41 36 10 17 27 50 11 43 34 33 52 1 2 9 44 35 26 49 30 5 47 62 45 12 55 58 13 61 31

Ngày đăng: 11/07/2014, 13:57

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan