Đồ án tốt nghiệp bảo mật thông tin

120 4 0
Đồ án tốt nghiệp bảo mật thông tin

Đ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

ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES 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 NGÔ THỊ TUYẾT HÀ – T012825 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐỒ ÁN BẢO MẬT THÔNG TIN I HỆ MÃ DES MỘT SỐ PHƯƠNG PHÁP MÃ HÓA I 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: 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ó C không gian mã tập hợp hữu hạn tất mẩu tin có sau mã hóa K không gian khoá tập hợp hữu hạn khóa sử dụng Với khóa k∈K, tồn luật mã hóa ek∈E luật giải mã dk∈D 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 d k ( ek ( x ) ) = x, ∀ x ∈ P Tính chất 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 x∈P luật mã hóa ek∈E giải mã xác luật dk∈D Đị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 11×13=143 Do 143≡15 (mod 16) nên 11×13=15 Z16 Một số tính chất Zm Phép cộng đóng Zm, i.e., ∀ a, b ∈ Zm, a+b ∈ Zm Tính giao hoán phép cộng Zm, i.e., ∀ a, b ∈ Zm, a+b =b+a Tính kết hợp phép cộng Zm, i.e., ∀ a, b, c ∈ Zm, (a+b)+c =a+(b+c) Zm có phần tử trung hòa 0, i.e., ∀ a ∈ Zm, a+0=0+a=a Mọi phần tử a Zm có phần tử đối m – a Phép nhân đóng Zm, i.e., ∀ a, b ∈ Zm, b∈ Zm Tính giao hoán phép cộng Zm, i.e., ∀ a, b ∈ Zm, b=b×a Tính kết hợp phép coäng Zm, i.e., ∀ a, b, c ∈ Zm, (b)×c =(b×c) Zm có phần tử đơn vị 1, i.e., ∀ a ∈ Zm, 1=1×a=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 =(c)+(b×c) 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ữ NGÔ THỊ TUYẾT HÀ – T012825 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES 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ữ Đồng thời ta dễ dàng thấy mã đẩy hệ mật mã dK(eK(x)) = x với x∈Z26 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ữ 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 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 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 NGÔ THỊ TUYẾT HÀ – T012825 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐỒ ÁN BẢO MẬT THÔNG TIN (x,y ∈ Z26) HỆ MÃ DES 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ị y∈Z26, phương trình ax+b≡y (mod 26) phải có nghiệm x∈Z26 Phương trình ax+b≡y (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+b≡y (mod 26) có nghiệm x∈Z26 với giá trị b∈Z26 a 26 nguyên tố 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 φ (n ) = ∏ ( piei − piei −1 ) m i =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 NGÔ THỊ TUYẾT HÀ – T012825 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES 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ử x∈P 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ử x∈P để phát sinh m thành phần tạo thành phần tử y∈C 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 m×m khả nghịch ⎛ k1,1 ⎜ ⎜ k 2,1 Với khóa k = ⎜ M ⎜ ⎜k ⎝ m ,1 L k1,m ⎞ ⎟ L k 2,m ⎟ ∈ K , định nghóa: M M ⎟ ⎟ k m, L k m,m ⎟⎠ ⎛ k1,1 k1, L k1,m ⎞ ⎜ ⎟ ⎜ k 2,1 L L k 2,m ⎟ với x=(x1, x2, , xm) ∈ P ek ( x ) = xk = ( x1 , x2 , , xm )⎜ M M M ⎟ ⎜ ⎟ ⎜k ⎟ L 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 k1, L 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 , x , , xm ) = xπ (1) , xπ (2 ) , xπ (m ) vaø ( ( ) d π ( y1 , y , , y m ) = yπ −1 (1) , yπ −1 (2 ) , yπ −1 (m ) ) với π–1 hoán vị ngược π NGÔ THỊ TUYẾT HÀ – T012825 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES 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, neáu i = π ( j ) ki, j = ⎨ ⎩0, trường hợp ngược lạ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 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 taéc sau: y = y1 y = e z1 ( x1 )e z2 ( x ) 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 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: NGÔ THỊ TUYẾT HÀ – T012825 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES 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 Xác định cặp từ 32 bit Li, Ri với 1≤ i ≤ 16theo quy taé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 Á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) NGÔ THỊ TUYẾT HÀ – T012825 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES Hàm f sử dụng bước laø A J E E(A) + B1 B2 S1 S2 C1 B3 S3 B4 B5 S5 S4 B6 B7 S6 B8 S7 S8 C2 C3 C4 C5 C6 C7 C8 P f(A,J) Hàm f có gồm tham số: Tham số thứ A dãy 32 bit, tham số thứ hai J dãy 48 bit Kết hàm f dãy 32 bit Các bước xử lý hàm f(A, J)như sau: Tham số thứ A (32 bit) mở rộng thành dãy 48 bit hàm mở rộng E Kết hàm E(A) dãy 48 bit phát sinh từ A cách hoán vị theo thứ tự định 32 bit A, có 16 bit A lập lại lần E(A) NGÔ THỊ TUYẾT HÀ – T012825 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES Thực phép toán XOR cho dãy 48 bit E(A) J, ta thu dãy 48 bit B Biểu diễn B thành nhóm bit sau:B = B1B2B3B4B5B6B7B8 Sử dụng ma trận S1, S2, , S8, ma trận Si có kích thước 4×16 dòng ma trận nhận đủ 16 giá trị từ đến 15 Xét dãy gồm bit Bj = b1b2b3b4b5b6, Sj(Bj) xác định giá trị phần tử dòng r cột c Sj, đó, số dòng r có biểu diễn nhị phân b1b6, số cột c có biểu diễn nhị phân b2b3b4b5 Bằng cách này, ta xác định dãy bit Cj = Sj(Bj), ≤ j ≤ Tập hợp dãy bit Cj lại ta có dãy 32 bit C = C1C2C3C4C5C6C7C8 Dãy 32 bit thu cách hoán vị C theo quy luật P định kết hàm F(A, J) hàm sử dụng DES Hoán vị khởi tạo IP sau: IP 58 60 62 64 57 59 61 63 50 52 54 56 49 51 53 55 42 44 46 48 41 43 45 47 34 36 38 40 33 35 37 39 26 28 30 32 25 27 29 31 18 20 22 24 17 19 21 23 10 12 14 16 11 13 15 Điều có nghóa bit thứ 58 x bit IP(x); bit thứ 50 x bit thứ hai IP(x) v.v Hoán vị ngược IP-1 là: 40 39 38 37 36 35 34 33 48 47 46 45 44 43 42 41 IP-1 16 15 14 13 12 11 10 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 31 30 29 28 27 26 25 Hàm mở rộng E đặc tả theo bảng sau: NGÔ THỊ TUYẾT HAØ – T012825 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES E – bảng chọn bit 13 17 21 25 29 32 12 16 20 24 28 13 17 21 25 29 12 16 20 24 28 32 11 15 19 23 27 31 10 14 18 22 26 30 Tám S-hộp hoán vị P biểu diễn sau: 14 15 15 12 13 14 8 2 14 13 15 11 13 S1 11 15 13 13 14 8 10 14 11 15 10 11 15 13 4 14 13 10 15 10 12 11 12 12 11 14 10 10 0 12 11 12 13 10 12 12 0 5 11 14 10 15 15 S3 10 11 13 15 12 14 14 12 11 12 11 11 10 15 14 12 13 S4 10 13 15 8 5 12 14 11 11 12 12 10 14 15 14 11 13 S5 8 15 13 15 15 12 15 10 13 10 14 14 S2 10 13 13 13 10 14 11 10 13 15 12 11 13 14 11 12 14 9 12 11 6 12 10 10 15 15 11 10 13 14 NGÔ THỊ TUYẾT HÀ – T012825 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES For k = To 63 If test(k) = Then jhop(j, k) += End If Next Next Next End Function Hàm tạo khoá vòng Function khoavong3() As String Dim khoav3 As String Dim i, j As Integer Dim count As Integer = Dim vitrimax As Integer For i = To count = Dim max As Integer = (n + 1) / For j = To 63 If jhop(i, j) = max Then count += vitrimax = j End If Next If count > Then nh lbthongbao.Text = "Nh p thêm b n mã b n rõ, ch a xác c ph n t max jh p" btthamma.Enabled = False txtbanro.Focus() n += NGÔ THỊ TUYẾT HÀ – T012825 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES ReDim banro(n) ReDim banma(n) ReDim e((n - 2) / 2) ReDim esao((n - 2) / 2) ReDim ephay((n - 2) / 2) ReDim cphay((n - 2) / 2) flag = False Exit Function End If khoav3 += binary(vitrimax, 6) Next txtkhoav3.Text = khoav3 Return khoav3 End Function Hàm Xử lý khoá Function xulikhoa() As String Dim khoa As String = khoavong3() If flag = False Then Exit Function End If khoa = hoanvi_pc2tru(khoa) Dim haitambitdau As String = khoa.Substring(0, 28) Dim haitambitcuoi As String = khoa.Substring(28, 28) haitambitdau = dichphai(haitambitdau, 4) haitambitcuoi = dichphai(haitambitcuoi, 4) khoa = haitambitdau + haitambitcuoi Dim i As Integer khoa = hoanvi_pc1tru(khoa) NGÔ THỊ TUYẾT HÀ – T012825 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES txtkhoa.Text = khoa Return khoa 'khoa 56 bit End Function Hàm tạo chuỗi khoá Sub taochuoikhoa(ByVal c As String) If flag = False Then Exit Sub End If Dim chuoibinary(255) As String Dim i As Integer For i = To 255 chuoibinary(i) = binary(i, 8) chuoikhoa(i) = taotungkhoa(c, chuoibinary(i)) Next End Sub Hàm tạo khoá Function taotungkhoa(ByVal a As String, ByVal b As String) As String Dim i As Integer Dim j As Integer = Dim tam(63) As Char For i = To 63 tam(i) = a.Substring(i, 1) If tam(i) = "?" Then tam(i) = b.Substring(j, 1) j += End If Next Return tam NGÔ THỊ TUYẾT HÀ – T012825 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES End Function Hàm dịch phải Function dichphai(ByVal s As String, ByVal n As Integer) As String Return s.Substring(s.Length - n, n) + s.Substring(0, s.Length - n) End Function Function tap_in(ByVal e As String, ByVal ephay As String, ByVal cphay As String, ByVal s As DataTable) As String() Dim tam(63), b, bsao, c, csao, cphaytam As String Dim i As Integer For i = To 63 b = bi_so(i) Dim haibitcuoi As String = b.Substring(0, 1) + b.Substring(5, 1) Dim bonbitgiua As String = b.Substring(1, 4) Dim srow = thapphan(haibitcuoi) Dim scol = thapphan(bonbitgiua) Dim sij As Integer = s.Rows(srow).Item(scol) c = binary(sij, 4) bsao = phay(ephay, b) haibitcuoi = bsao.Substring(0, 1) + bsao.Substring(5, 1) bonbitgiua = bsao.Substring(1, 4) srow = thapphan(haibitcuoi) scol = thapphan(bonbitgiua) sij = s.Rows(srow).Item(scol) csao = binary(sij, 4) cphaytam = phay(c, csao) If cphaytam = cphay Then tam(thapphan(phay(e, b))) = End If Next NGÔ THỊ TUYẾT HÀ – T012825 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES Return tam End Function Một số Hàm cho xử lý kiện Private Sub btthamma_Click(ByVal sender As System.Object, ByVal ee As System.EventArgs) Handles btthamma.Click ReDim banro(n) ReDim banma(n) ReDim e((n - 1) / 2) ReDim esao((n - 1) / 2) ReDim ephay((n - 1) / 2) ReDim cphay((n - 1) / 2) flag = True If gandulieu() = False Then Exit Sub End If If kiemtra() = False Then Exit Sub End If bi_banro_banma() xuli_e_esao_ephay() xuli_cphay() tap_test() taochuoikhoa(xulikhoa()) If flag = False Then Exit Sub End If chonkhoadung() End Sub Private Sub btthoat_Click(ByVal sender As System.Object, ByVal ee NGÔ THỊ TUYẾT HÀ – T012825 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES As System.EventArgs) Handles btthoat.Click Me.Close() End Sub Private Sub thammades_Load(ByVal sender As System.Object, ByVal ee As System.EventArgs) Handles MyBase.Load Dim strbanro As String strbanro += "748502CD38451097" + Chr(13) + Chr(10) strbanro += "3874756438451097" + Chr(13) + Chr(10) strbanro += "486911026ACDFF31" + Chr(13) + Chr(10) strbanro += "375BD31F6ACDFF31" + Chr(13) + Chr(10) strbanro += "357418DA013FEC86" + Chr(13) + Chr(10) strbanro += "12549847013FEC86" txtbanro.Text = strbanro 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 = NGÔ THỊ TUYẾT HÀ – T012825 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES 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) NGOÂ THỊ TUYẾT HÀ – T012825 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MAÕ DES 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 nhaä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, NGÔ THỊ TUYẾT HÀ – T012825 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES 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 b(i).Substring(5, 1) As String = b(i).Substring(0, 1) + Dim bonbitgiua As String = b(i).Substring(1, 4) Dim srow = thapphan(haibitdaucuoi) NGÔ THỊ TUYẾT HÀ – T012825 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES 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 = "" NGÔ THỊ TUYẾT HÀ – T012825 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES 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 NGÔ THỊ TUYẾT HÀ – T012825 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES 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 = NGÔ THỊ TUYẾT HÀ – T012825 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES 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 NGÔ THỊ TUYẾT HÀ – T012825 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES 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 NGÔ THỊ TUYẾT HÀ – T012825 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES 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 NGÔ THỊ TUYẾT HÀ – T012825 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ... ĐỒ ÁN BẢO MẬT THÔNG TIN (x,y ∈ Z26) HỆ MÃ DES 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... CHAT LUONG download : add luanvanchat@agmail.com ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES 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... : add luanvanchat@agmail.com ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES 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

Ngày đăng: 01/11/2022, 15:33

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

Tài liệu liên quan