Đồ án bảo mật thông tin: Tìm hiểu về hệ mã chuẩn cài đặt DES và thám mã 3 vòng Đồ án bảo mật thông tin: Tìm hiểu về hệ mã chuẩn cài đặt DES và thám mã 3 vòng Đồ án bảo mật thông tin: Tìm hiểu về hệ mã chuẩn cài đặt DES và thám mã 3 vòng Đồ án bảo mật thông tin: Tìm hiểu về hệ mã chuẩn cài đặt DES và thám mã 3 vòng Đồ án bảo mật thông tin: Tìm hiểu về hệ mã chuẩn cài đặt DES và thám mã 3 vòng Đồ án bảo mật thông tin: Tìm hiểu về hệ mã chuẩn cài đặt DES và thám mã 3 vòng Đồ án bảo mật thông tin: Tìm hiểu về hệ mã chuẩn cài đặt DES và thám mã 3 vòng Đồ án bảo mật thông tin: Tìm hiểu về hệ mã chuẩn cài đặt DES và thám mã 3 vòng Đồ án bảo mật thông tin: Tìm hiểu về hệ mã chuẩn cài đặt DES và thám mã 3 vòng Đồ án bảo mật thông tin: Tìm hiểu về hệ mã chuẩn cài đặt DES và thám mã 3 vòng Đồ án bảo mật thông tin: Tìm hiểu về hệ mã chuẩn cài đặt DES và thám mã 3 vòng Đồ án bảo mật thông tin: Tìm hiểu về hệ mã chuẩn cài đặt DES và thám mã 3 vòng Đồ án bảo mật thông tin: Tìm hiểu về hệ mã chuẩn cài đặt DES và thám mã 3 vòng Đồ án bảo mật thông tin: Tìm hiểu về hệ mã chuẩn cài đặt DES và thám mã 3 vòng
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC DL VĂN LANG KHOA CÔNG NGHỆ THÔNG TIN ĐỀ ÁN: MƠN BẢO MẬT THƠNG TIN TÌM HIỂU HỆ MÃ CHUẨN CÀI ĐẶT DES VÀ THÁM MÃ VỊNG GVHD: NGUYỄN XN DŨNG SVTH: NGƠ THỊ TUYẾT HÀ –T012825 Tháng Năm MỤC LỤC I .1 Giới thiệu . I.2 Các Hệ Mã Thông Dụng: e. Phương pháp Affine f. Phương pháp Vigenere I.2 LẬP MÃ DES 16 I. THÁM MÃ DES . 20 I.3.1. Thám mã hệ DES - vòng 23 II.3.2. Thám mã hệ DES 6-vòng . 27 II.3. Các thám mã vi sai khác . 32 III. CÀI ĐẶT THÁM MÃ DES VÒNG 32 III.1 Giao Diện . 32 III.2 XỬ LÝ LỜI NÓI ĐẦU Hiện nay, nước ta giai đoạn tiến hành công nghiệp hóa, đại hóa đất nước. Tin học xem ngành mũi nhọn. Tin học đóng góp nhiều cho xã hội khía cạnh sống. Mã hóa thông tin ngành quan trọng có nhiều ứng dụng đời sống xã hội. Ngày nay, ứng dụng mã hóa bảo mật thông tin sử dụng ngày phổ biến lónh vực khác Thế giới, từ lónh vực an ninh, quân sự, quốc phòng…, lónh vực dân thương mại điện tử, ngân hàng… Ứng dụng mã hóa bảo mật thông tin hệ thống thương mại điện tử, giao dòch chứng khoán,… trở nên phổ biến giới ngày trở nên quen thuộc với người dân Việt Nam. Tháng 7/2000, thò trường chứng khoán lần hình thành Việt Nam; thẻ tín dụng bắt đầu sử dụng, ứng dụng hệ thống thương mại điện tử bước đầu quan tâm xây dựng. Do đó, nhu cầu ứng dụng mã hóa bảo mật thông tin trở nên cần thiết. I. MỘT SỐ PHƯƠNG PHÁP MÃ HÓA I .1 Giới thiệu Đònh nghóa 1.1: Một hệ mã mật (cryptosystem) bộ-năm (P, C, K, E, D) thỏa mãn điều kiện sau: 1. P không gian rõ. tập hợp hữu hạn tất mẩu tin nguồn cần mã hóa có 2. C không gian mã. tập hợp hữu hạn tất mẩu tin có sau mã hóa 3. K không gian khoá. tập hợp hữu hạn khóa sử dụng 4. Với khóa kK, tồn luật mã hóa ekE luật giải mã dkD tương ứng. Luật mã hóa ek: P C luật giải mã ek: C P hai ánh xạ thỏa mãn dk ek x x, x P Tính chất 4. tính chất quan trọng hệ thống mã hóa. Tính chất bảo đảm việc mã hóa mẩu tin xP luật mã hóa ekE giải mã xác luật dkD. Đònh nghóa 1.2: Zm đònh nghóa tập hợp {0, 1, ., m-1}, trang bò phép cộng (ký hiệu +) phép nhân (ký hiệu ). Phép cộng phép nhân Zm thực tương tự Z, ngoại trừ kết tính theo modulo m Ví dụ: Giả sử ta cần tính giá trò 11 13 Z16. Trong Z, ta có kết phép nhân 1113=143. Do 14315 (mod 16) nên 1113=15 Z16. Một số tính chất Zm 1. Phép cộng đóng Zm, i.e., a, b Zm, a+b Zm 2. Tính giao hoán phép cộng Zm, i.e., a, b Zm, a+b =b+a 3. Tính kết hợp phép cộng Zm, i.e., a, b, c Zm, (a+b)+c =a+(b+c) 4. Zm có phần tử trung hòa 0, i.e., a Zm, a+0=0+a=a 5. Mọi phần tử a Zm có phần tử đối m – a 6. Phép nhân đóng Zm, i.e., a, b Zm, ab Zm 7. Tính giao hoán phép cộng Zm, i.e., a, b Zm, ab=ba 8. Tính kết hợp phép cộng Zm, i.e., a, b, c Zm, (ab)c =a(bc) 9. Zm có phần tử đơn vò 1, i.e., a Zm, a1=1a=a 10. Tính phân phối phép nhân phép cộng, i.e., a, b, c Zm, (a+b)c =(ac)+(bc) 11. Zm có tính chất 1, – nên tạo thành nhóm. Do Zm có tính chất nên tạo thành nhóm Abel. Zm có tính chất (1) – (10) nên tạo thành vành I.2 Các Hệ Mã Thông Dụng: a. Hệ Mã Đầy (Shift Cipher ) Shift Cipher phương pháp lâu đời sử dụng để mã hóa. Thông điệp mã hóa cách dòch chuyển (xoay vòng) ký tự k vò trí bảng chữ cái. Phương pháp Shift Cipher Cho P = C = K = Z26. Với K 25, ta đònh nghóa eK = x + K mod 26 dK = y - K mod 26 (x,y Z26) 26 số ký tự bảng chữ La tinh, cách tương tự đònh nghóa cho bảng chữ bất kỳ. Đồng thời ta dễ dàng thấy mã đẩy hệ mật mã dK(eK(x)) = x với xZ26. b. Hệ KEYWORD-CEASAR Trong hệ mã khóa từ chọn trước, ví dụ PLAIN. Từ xác đònh dãy số nguyên Z26 (15,11,0,8,13) tương ứng với vò trí chữ chữ chọn bảng chữ cái. Bây rõ mã hóa cách dùng hàm lập mã theo thứ tự: e15, e11, e0, e8, e13, e15, e11, e0, e8, e, . với eK hàm lập mã hệ mã chuyển. c. Hệ Mã Vuông (SQUARE) Trong hệ từ khóa dùng theo cách khác hẳn. Ta dùng bảng chữ tiếng Anh (có thể bỏ chữ Q, muốn tổng số chữ số số phương) đòi hỏi chữ từ khóa phải khác nhau. Bây chữ bảng chữ viết dạng hình vuông, khóa chữ lại theo thứ tự bảng chữ. d. Mã vò Một hệ mã khác tiếng . Hệ mã sử dụng hàng trăm năm nay. Phương pháp : Cho P = C = Z26. K gồm tất hoán vò có 26 ký hiệu 0, .,25. Với hoán vò K, ta đònh nghóa: e(x) = (x) đònh nghóa d(y) = -1(y) với -1 hoán vò ngược hoán vò . Trong mã vò ta lấy P C bảng chữ La tinh. Ta sử dụng Z26 mã đẩy lập mã giải mã phép toán đại số. e. Phương pháp Affine Cho P = C = Z26 cho K = {(a,b) Z26 Z26 : gcd(a,26) = 1} Với K = (a,b) K, ta xác đònh eK(x) = ax+b mod 26 (x,y Z26) dK = a-1(y-b) mod 26 Phương pháp Affine lại trường hợp đặc biệt khác Substitution Cipher. Để giải mã xác thông tin mã hóa hàm ek E ek phải song ánh. Như vậy, với giá trò yZ26, phương trình ax+by (mod 26) phải có nghiệm xZ26. Phương trình ax+by (mod 26) tương đương với ax(y–b ) (mod 26). Vậy, ta cần khảo sát phương trình ax(y–b ) (mod 26) Đònh lý1.1: Phương trình ax+by (mod 26) có nghiệm xZ26 với giá trò bZ26 a 26 nguyên tố nhau. Vậy, điều kiện a 26 nguyên tố bảo đảm thông tin mã hóa hàm ek giải mã giải mã cách xác. Gọi (26) số lượng phần tử thuộc Z26 nguyên tố với 26. m Đònh lý 1.2: Nếu n pi i với pi số nguyên tố khác ei Z+, i m e i 1 m n pi i pi i i 1 e e 1 Trong phương pháp mã hóa Affine , ta có 26 khả chọn giá trò b, (26) khả chọn giá trò a. Vậy, không gian khóa K có tất n(26) phần tử. Vấn đề đặt cho phương pháp mã hóa Affine Cipher để giải mã thông tin mã hóa cần phải tính giá trò phần tử nghòch đảo a–1 Z26. f. Phương pháp Vigenere phương pháp mã hóa Vigenere sử dụng từ khóa (keyword) có độ dài m. Có thể xem phương pháp mã hóa Vigenere Cipher bao gồm m phép mã hóa Shift Cipher áp dụng luân phiên theo chu kỳ. Không gian khóa K phương pháp Vigenere có số phần tử 26, lớn hẳn phương pháp số lượng phần tử không gian khóa K phương pháp Shift Cipher. Do đó, việc tìm mã khóa k để giải mã thông điệp mã hóa khó khăn phương pháp Shift Cipher. Phương pháp mã hóa Vigenere Cipher Chọn số nguyên dương m. Đònh nghóa P = C = K = (Z26)m K = { (k0, k1, ., kr-1) (Z26)r} Với khóa k = (k0, k1, ., kr-1) K, đònh nghóa: ek(x1, x2, ., xm) = ((x1+k1) mod 26, (x2+k2) mod n, ., (xm+km) mod 26) dk(y1, y2, ., ym) = ((y1–k1) mod n, (y2–k2) mod n, ., (ym–km) mod 26) với x, y (Z26)m g. Hệ mã Hill Phương pháp Hill Cipher Lester S. Hill công bố năm 1929: Cho số nguyên dương m, đònh nghóa P = C = (Z26)m. Mỗi phần tử xP m thành phần, thành phần thuộc Z26. Ý tưởng phương pháp sử dụng m tổ hợp tuyến tính m thành phần phần tử xP để phát sinh m thành phần tạo thành phần tử yC. Phương pháp mã hóa Hill Cipher Chọn số nguyên dương m. Đònh nghóa: P = C = (Z26)m K tập hợp ma trận mm khả nghòch k1,1 k1, k1,m k k 2,1 2,m K , đònh nghóa: Với khóa k k k k m, m ,m m,1 k1,1 k1, k1,m k k 2,1 2,m ek x xk x1 , x2 , ., xm với x=(x1, x2, ., xm) P k k k m, m ,m m,1 dk(y) = yk–1 với y C Mọi phép toán số học thực Zn h. Mã hoán vò Những phương pháp mã hóa nêu dựa ý tưởng chung: thay ký tự thông điệp nguồn ký tự khác để tạo thành thông điệp mã hóa. Ý tưởng phương pháp mã hoán vò giữ nguyên ký tự thông điệp nguồn mà thay đổi vò trí ký tự; nói cách khác thông điệp nguồn mã hóa cách xếp lại ký tự đó. Phương pháp mã hóa mã hoán vò Chọn số nguyên dương m. Đònh nghóa: P = C = (Z26)m K tập hợp hoán vò m phần tử {1, 2, ., m} Với khóa K, đònh nghóa: e x1 , x2 , ., xm x 1 , x 2 , . x m d y1 , y2 , ., ym y 1 1 , y 1 2 , . y 1 m với –1 hoán vò ngược Phương pháp mã hoán vò trường hợp đặc biệt phương pháp Hill. Với hoán vò tập hợp {1, 2, ., m} , ta xác đònh ma trận k = (ki, j ) theo công thức sau: 1, nế u i j ki , j 0, trườ ng hợ p ngượ clạ i Ma trận k ma trận mà dòng cột có phần tử mang giá trò 1, phần tử lại ma trận 0. Ma trận thu cách hoán vò hàng hay cột ma trận đơn vò Im nên k ma trận khả nghòch. Rõ ràng, mã hóa phương pháp Hill với ma trận k hoàn toàn tương đương với mã hóa phương pháp mã hoán vò với hoán vò . d. Mã vòng Trong hệ trước cách thức phần tử rõ mã hóa với khóa K. Như xâu mã y có dạng sau: y = y1y2 . = eK(x1) eK(x2) . Các hệ mã loại thường gọi mã khối (block cipher). Còn hệ mã dòng. Ý tưởng sinh chuỗi khóa z = z1z2 ., sử dụng để mã hóa xâu rõ x = x1x2 .theo qui tắc sau: y y1 y2 . ez1 ( x1 )ez2 ( x2 ) . I.3 Quy trình thám mã: Cứ phương pháp mã hoá ta lại có phương pháp thám mã tương ứng nguyên tắc chung để việc thám mã thành công yêu cầu người thám mã phải biết hệ mã dùng hoá. Ngoài ta phải biết mã rõ ứng. nhìn chung hệ mã đối xứng dễ cài đặt với tốc độ thực thi nhanh. Tính an toàn phụ thuộc vào yếu tố : Không gian khoá phải đủ lớn với phép trộn thích hợp hệ mã đối xứng tạo hệ mã có tính an toàn cao. bảo mật cho việc truyền khóa cần xử lý cách nghiêm túc. Và hệ mã hoá liệu đời (DES). DES xem chuẩn mã hóa liệu cho ứng dụng từ ngày 15 tháng năm 1977 Ủy ban Quốc gia Tiêu chuẩn Mỹ xác nhận năm lần lại có chỉnh sửa, bổ sung. DES hệ mã trộn phép hoán vò. với phép trộn thích hợp việc giải mã lại toán khó. Đồng thời việc cài đặt hệ mã cho ứng dụng thực tế lại thuận lợi. Chính lý ứng dụng rộng rãi DES suốt 20 năm qua, Mỹ mà khắp giới. Mặc dù theo công bố (năm 1998) hệ DES, với khả máy tính nay, bẻ khóa giờ. Tuy nhiên DES mô hình chuẩn cho ứng dụng bảo mật thực tế. II. HỆ MÃ CHUẨN DES (Data Encryption Standard) II.1 Đặc tả DES Phương pháp DES mã hóa từ x có 64 bit với khóa k có 56 bit thành từ có y 64 bit. Thuật toán mã hóa bao gồm giai đoạn: 1. Với từ cần mã hóa x có độ dài 64 bit, tạo từ x0 (cũng có độ dài 64 bit) cách hoán vò bit từ x theo hoán vò cho trước IP (Initial Permutation). Biểu diễn x0 = IP(x) = L0R0, L0 gồm 32 bit bên trái x0, R0 gồm 32 bit bên phải x0 L0 R0 x0 Hình.1 Biểu diễn dãy 64 bit x thành thành phần L R 2. Xác đònh cặp từ 32 bit Li, Ri với 1 i 16theo quy tắc sau: Li = Ri-1 Ri = Li-1 f (Ri-1, Ki) với biểu diễn phép toán XOR hai dãy bit, K1, K2, ., K16 dãy 48 bit phát sinh từ khóa K cho trước (Trên thực tế, khóa Ki phát sinh cách hoán vò bit khóa K cho trước). Li-1 Ri-1 f Ki Li Ri Hình.2 Quy trình phát sinh dãy 64 bit LiRi từ dãy 64 bit Li-1Ri-1và khóa Ki 3. Áp dụng hoán vò ngược IP-1 dãy bit R16L16, thu từ y gồm 64 bit. Như vậy, y = IP-1 (R16L16) Dim strbanma As String strbanma += "03C70306D8A09F10" + Chr(13) + Chr(10) strbanma += "78560A0960E6D4CB" + Chr(13) + Chr(10) strbanma += "45FA285BE5ADC730" + Chr(13) + Chr(10) strbanma += "134F7915AC253457" + Chr(13) + Chr(10) strbanma += "D8A31B2F28BBC5CF" + Chr(13) + Chr(10) strbanma += "0F317AC2B23CB944" txtbanma.Text = strbanma khoitao() End Sub 'des Hàm cắt bit cuối Function catbitcuoi(ByVal k As String) As String 'dua vao 64 bit tra 56 bit Dim i As Integer = Dim j As Integer Dim tam As String While i < 63 For j = i To i + tam += k.Substring(j, 1) Next i=i+8 End While Return tam End Function Function ls(ByVal s As String, ByVal n As Integer) As String Return s.Substring(n, s.Length - n) + s.Substring(0, n) End Function Hàm tạo dãy khoá Sub taodaykhoa(ByVal khoa As String) khoa = hoanvi_pc1(khoa) Dim d(2) As String Dim c(2) As String c(0) = khoa.Substring(0, 28) c(0) = ls(c(0), 1) d(0) = khoa.Substring(28, 28) d(0) = ls(d(0), 1) daykhoa(0) = hoanvi_pc2(c(0) + d(0)) Dim i As Integer For i = To If i = Then c(i) = ls(c(i - 1), 1) d(i) = ls(d(i - 1), 1) Else c(i) = ls(c(i - 1), 2) d(i) = ls(d(i - 1), 2) End If daykhoa(i) = hoanvi_pc2(c(i) + d(i)) Next i End Sub Hàm xử lý chuỗi nhập Function bi_acsii(ByVal int As Integer) As String Dim tam(7) As Char Dim i As Integer For i = To tam(i) = (int Mod 2).ToString int \= Next Array.Reverse(tam) Return tam End Function Hàm mã hoá Function mahoa(ByVal x As String) As String Dim i, j As Integer Dim l(2) As String Dim r(2) As String 'x = hoanvi_ip(x) Dim l0 As String = x.Substring(0, 32) Dim r0 As String = x.Substring(32, 32) l(0) = r0 For i = To 31 r(0) += (l0.Substring(i, 1) Xor f(r0, daykhoa(0)).Substring(i, 1)).ToString Next For i = To l(i) = r(i - 1) Dim a As String = f(r(i - 1), daykhoa(i)) For j = To 31 r(i) += (l(i - 1).Substring(j, 1) Xor a.Substring(j, 1)).ToString Next j Next i Dim t As String = l(2) + r(2) Return t 'Return hoanvi_iptru(r(2) + l(2)) End Function Hàm tạo hàm f Function f(ByVal r As String, ByVal daykhoa_k As String) As String Dim i As Integer Dim e As String Dim hv As String = hoanvi_e(r) For i = To 47 e += (hv.Substring(i, 1) Xor daykhoa_k.Substring(i, 1)).ToString Next Dim b(7) As String Dim c As String For i = To b(i) = e.Substring(i * 6, 6) Dim haibitdaucuoi As String = b(i).Substring(0, 1) + b(i).Substring(5, 1) Dim bonbitgiua As String = b(i).Substring(1, 4) Dim srow = thapphan(haibitdaucuoi) Dim scol = thapphan(bonbitgiua) Dim sij As Integer = s(i).Rows(srow).Item(scol) c += binary(sij, 4) Next Return hoanvi_p(c) End Function Hàm đổi chữ 'Function doirachu(ByVal y As String) As String 'Dim tam As String = y 'Dim tam1 As String = "" 'Dim so As Integer 'Dim i As Integer 'Dim j As Integer 'While i < tam.Length - 'so = 'For j = i To i + 'If tam.Substring(j, 1) = Then 'so += ^ (7 - (j - i)) 'End If 'Next 'tam1 += Chr(so) 'i = i + 'End While 'Return tam1 'End Function Function doirachu(ByVal y As String) As String Dim tam As String = y Dim tam1 As String = "" Dim so As Integer Dim i, j As Integer While i < tam.Length - so = For j = i To i + If tam.Substring(j, 1) = Then so += ^ (3 - (j - i)) End If Next tam1 += chucai(so) i=i+4 End While Return tam1 End Function Chữ Function chucai(ByVal so As Integer) As Char Select Case so Case Return "0" Case Return "1" Case Return "2" Case Return "3" Case Return "4" Case Return "5" Case Return "6" Case Return "7" Case Return "8" Case Return "9" Case 10 Return "A" Case 11 Return "B" Case 12 Return "C" Case 13 Return "D" Case 14 Return "E" Case 15 Return "F" End Select End Function Hàm chuyển mã asc Function asc(ByVal a As Char) Select Case a Case "0" asc = Case "1" asc = Case "2" asc = Case "3" asc = Case "4" asc = Case "5" asc = Case "6" asc = Case "7" asc = Case "8" asc = Case "9" asc = Case "A" asc = 10 Case "B" asc = 11 Case "C" asc = 12 Case "D" asc = 13 Case "E" asc = 14 Case "F" asc = 15 End Select End Function Hàm chọn khoá Sub chonkhoadung() Dim i As Integer Dim x As String = banro(0) 'For i = To banro(0).Length - 'x += binary(asc(banro(0).Substring(i, 1)), hebit) 'Next For i = To 255 taodaykhoa(chuoikhoa(i)) Dim banma1 As String = doirachu(mahoa(x)) If banma1 = doirachu(banma(0)) Then chuoikhoa(i) = chuoikhoa(i).Replace("#", "0") txtkhoa.Text = doirachu(chuoikhoa(i)) Exit Sub End If Next MessageBox.Show("khong tim duoc khoa") End Sub Private Sub txtbanro_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtbanro.TextChanged btthamma.Enabled = True lbthongbao.Text = "" End Sub Private Sub txtbanma_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtbanma.TextChanged btthamma.Enabled = True lbthongbao.Text = "" End Sub End Class [...]... PC-2 K1 Các hoán vò PC-1 và PC-2 được sử dụng trong việc tính lòch khóa là như sau: PC-1 57 1 10 19 63 7 14 21 49 58 2 11 55 62 6 13 41 50 59 34 7 54 61 5 33 42 51 60 39 46 53 28 25 34 43 52 31 38 45 20 17 26 35 44 23 30 37 12 9 18 27 36 15 22 29 4 1 21 26 13 47 33 34 29 5 10 8 2 55 48 53 32 PC-2 14 3 23 16 41 30 44 46 17 28 19 7 50 40 49 42 11 15 12 27 31 51 39 50 24 6 4 20 37 45 56 36 Bây giờ ta... trong J1 I .3. 1 Thám mã hệ DES - 3 vòng Bây giờ ta sẽ xét ý tưởng vừa trình bày cho việc thám mã hệ DES - ba vòng Ta sẽ bắt đầu với cặp bản rõ và các bản mã tương ứng: L0R0, L0*R0*, L3R3 và L3*R3* Ta có thể biểu diễn R3 như sau: R3 = L2 f(R2, K3) = R1 f(R2, K3) = L0 f(R0, K1) f(R2, K3) R3* có thể biểu diễn một cách tương tự , do vậy: R3’ = L0’ f(R0, K1) f(R0*, K1) f(R2, K3) f(R2*, K3) Bây... 33 35 37 39 26 28 30 32 25 27 29 31 18 20 22 24 17 19 21 23 10 12 14 16 9 11 13 15 2 4 6 8 1 3 5 7 Điều này có nghóa là bit thứ 58 của x là bit đầu tiên của IP(x); bit thứ 50 của x là bit thứ hai của IP(x) v.v Hoán vò ngược IP-1 sẽ là: IP-1 40 39 38 37 36 35 34 33 8 7 6 5 4 3 2 1 48 47 46 45 44 43 42 41 16 15 14 13 12 11 10 9 56 55 54 53 52 51 50 49 24 23 22 21 20 19 18 17 64 63 62 61 60 59 58 57 32 ... 13 3 6 10 0 9 3 4 14 8 0 5 9 6 14 3 0 6 7 11 13 1 0 14 3 13 4 1 4 14 10 7 14 0 1 6 7 11 13 0 5 3 11 8 11 8 6 13 3 14 10 9 12 3 15 5 9 5 6 0 7 12 8 15 5 2 0 14 10 15 5 2 6 8 9 3 1 6 2 12 10 12 0 15 9 5 6 12 3 6 10 9 14 11 13 0 5 0 15 3 0 14 3 5 12 9 5 6 7 2 8 11 S4 7 13 10 3 13 8 6 15 14 11 9 0 3 5 0 6 0 6 12 10 6 15 11 1 9 0 7 13 10 3 13 8 S5 2 14 4 11 12 11 2 8 4 2 1 12 1 12 11 7 7 4 10 0 10 7 13. .. IP-1 cho R16L16 ta nhận được bản mã trong dạng thập lục phân như sau: 85E8 135 40F0AB405 I 3 THÁM MÃ DES Một phương pháp rất nổi tiếng trong thám mã DES là thám mã vi sai‚ (differential cryptanalysic) do Biham và Shamir đề xuất Đó là phương pháp thám với bản rõ được chọn Nó không được sử dụng trong thực tế để thám mã DES 16 vòng, mà chỉ được sử dụng để thám các hệ DES có ít vòng hơn Bây giờ ta sẽ mô tả... 1 12 7 13 10 6 12 12 6 9 0 0 9 3 5 5 11 2 14 7 8 0 13 S2 15 3 0 13 1 13 14 8 8 4 7 10 14 7 11 1 6 15 10 3 11 2 4 15 3 8 13 4 4 14 1 2 S3 10 5 15 9 10 13 13 1 0 7 6 10 9 0 4 13 14 9 9 0 6 3 8 6 3 4 15 9 15 6 3 8 5 10 0 7 1 2 11 4 13 8 1 15 12 5 2 14 7 14 12 3 11 12 5 11 4 11 10 5 2 15 14 2 8 1 7 12 1 4 15 9 2 7 1 4 8 2 3 5 5 12 14 11 11 1 5 12 12 10 2 7 4 14 8 2 15 9 4 14 8 5 15 6 5 0 9 15 3 15 12 0... thước (xấp xỉ) 3N/16, là tập đề xuất và ta hy vọng là chỉ gồm các bit khóa đúng chứ không có các xâu khác Điều này làm đơn giản hóa cho việc xây dựng tất cả các tập chấp nhận được I bằng một thuật toán đệ qui II .3 3 Các thám mã vi sai khác Phương pháp thám mã vi sai còn có thể áp dụng để thám các hệ DES nhiều vòng hơn Với hệ DES 8 -vòng đòi hỏi 214 bản rõ chọn và các hệ 10-, 12-, 14- và 1 6vòng đòi hỏi... đích thám mã, ta có thể bỏ qua hoán vò khởi tạo IP và hoán vò đảo của nó (bởi vì điều đó không cần thiết cho việc thám mã) Như đã nhận xét ở trên, ta xét các hệ DES n vòng, với n 16 Trong cài đặt ta có thể coi L0R0 là bản rõ và LnRn như là bản mã Thám mã vi sai đòi hỏi phải so sánh x-or (exclusive-or) của hai bản rõ với x-or của hai bản mã tương ứng Nói chung, ta sẽ quan sát hai bản rõ L0R0 và L0*R0*... 31 30 29 28 27 26 25 Hàm mở rộng E được đặc tả theo bảng sau: 32 4 8 12 16 20 24 28 1 5 9 13 17 21 25 29 E – bảng chọn bit 2 3 6 7 10 11 14 15 18 19 22 23 26 27 30 31 4 8 12 16 20 24 28 32 5 9 13 17 21 25 29 1 Tám S-hộp và hoán vò P sẽ được biểu diễn như sau: S1 14 0 4 15 4 15 1 12 13 7 14 8 1 4 8 2 2 14 13 4 15 2 6 9 11 13 2 1 8 1 11 7 3 10 15 5 10 6 12 11 6 12 9 3 12 11 7 14 5 9 3 10 9 5 10 0 0 3. .. hệ thập lục phân: Bản mã Bản rõ 748502CD38451097 38 74756 438 451097 486911026ACDFF31 37 5BD31F6ACDFF31 35 7418DA013FEC86 12549847013FEC86 03C7 030 6D8A09F10 78560A0960E6D4CB 45FA285BE5ADC 730 134 F7915AC2 534 57 D8A31B2F28BBC5CF 0F317AC2B23CB944 Từ cặp đầu tiên ta tính các xâu nhập của S-hộp (cho vòng 3) từ các phương trình (2) và (3) Chúng là: E = 000000000111111000001110100000000110100000001100 E* = 101111110000001010101100000001010100000001010010 . BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC DL VĂN LANG KHOA CÔNG NGHỆ THÔNG TIN ĐỀ ÁN: MƠN BẢO MẬT THƠNG TIN TÌM HIỂU HỆ MÃ CHUẨN CÀI ĐẶT DES VÀ THÁM MÃ 3 VỊNG . hóa và bảo mật thông tin trong các hệ thống thương mại điện tử, giao dòch chứng khoán,… đã trở nên phổ biến trên thế giới và sẽ ngày càng trở nên quen thuộc với người dân Việt Nam. Tháng 7/2000,. dụng mã hóa và bảo mật thông tin trở nên rất cần thiết. I. MỘT SỐ PHƯƠNG PHÁP MÃ HÓA I .1 Giới thiệu Đònh nghóa 1.1: Một hệ mã mật (cryptosystem)