1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên Cứu Về Hàm Băm Trên Cơ Sở Mạng Hoán Vị Thay Thế Điều Khiển Được Và Ứng Dụng Trong Mã Hóa Xác Thực Văn Bản.pdf

87 7 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 87
Dung lượng 1,97 MB

Nội dung

Số hóa bởi Trung tâm Học liệu http //lrc tnu edu vn/ ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG ––––––––––––––––– ĐỖ THU HOÀI NGHIÊN CỨU VỀ HÀM BĂM TRÊN CƠ SỞ MẠNG HOÁN VỊ T[.]

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THƠNG ––––––––––––––––– ĐỖ THU HỒI NGHIÊN CỨU VỀ HÀM BĂM TRÊN CƠ SỞ MẠNG HOÁN VỊ THAY THẾ ĐIỀU KHIỂN ĐƯỢC VÀ ỨNG DỤNG TRONG MÃ HÕA XÁC THỰC VĂN BẢN Chuyên ngành: Khoa học máy tính Mã số : 62.48.01 LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH Thái Ngun, năm 2013 Số hóa Trung tâm Học liệu Tai ngay!!! Ban co the xoa dong chu nay!!! http://lrc.tnu.edu.vn/ LỜI CAM ĐOAN Em xin cam đoan toàn luận văn: “Nghiên cứu hàm băm sở mạng hoán vị thay điều khiển đƣợc ứng dụng mã hóa xác thực văn bản” thân tìm hiểu, nghiên cứu Khơng có chép nội dung từ luận văn khác Tất nội dung hình ảnh minh họa có nguồn gốc xuất xứ rõ ràng từ tài liệu tham khảo nhiều nguồn khác mà xây dựng nên Ngồi cịn có góp ý định hƣớng thầy giáo TS Vũ Đức Thái Em xin cam đoan lời đúng, thơng tin sai lệch em xin hồn tồn chịu trách nhiệm trƣớc Hội đồng Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn/ MỤC LỤC LỜI CAM ĐOAN MỤC LỤC DANH MỤC CÁC CHỮ VIẾT TẮT DANH MỤC HÌNH ẢNH DANH MỤC BẢNG BIỂU CHƢƠNG TỔNG QUAN VỀ HÀM BĂM 10 1.1 Giới thiệu hàm băm 10 1.1.1 Định nghĩa hàm băm 10 1.1.2 Lịch sử phát triển hàm băm 11 1.1.3 Thuộc tính an tồn hàm băm 13 1.1.4 Các quan niệm an toàn 15 1.2 Ứng dụng hàm băm 16 1.3 Xu hƣớng thiết kế 17 1.3.1 Hàm băm khơng khóa có khóa .17 1.3.2 Hàm băm lặp .18 1.3.3 Hàm băm dựa hình 28 1.3.4 Hàm nén 29 CHƢƠNG KIẾN TRÚC MẠNG CHUYỂN VỊ THAY THẾ ĐIỀU KHIỂN ĐƢỢC 30 2.1 Các phần tử mã hóa điều khiển đƣợc dựa mạng chuyển vị thay 30 2.1.1 Phần tử điều khiển 30 2.1.2 Phân loại phần tử 32 2.1.3 Nhóm phụ phần tử U2/1 với đầu tuyến tính 37 2.2 Tô pô đối xứng 41 CHƢƠNG XÂY DỰNG VÀ CÀI ĐẶT CHƢƠNG TRÌNH MƠ PHỎNG 51 3.1 Bài toán ứng dụng .51 3.2 Thiết kế CSDL, thuật tốn giao diện chƣơng trình hàm băm .51 3.2.1 Thiết kế sở liệu .51 3.2.2 Thuật toán thực 53 3.2.3 Phân tích modul chƣơng trình 54 3.2.4 Giao diện chƣơng trình 58 Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn/ 3.3 Cài đặt chƣơng trình 58 3.4 Tích hợp Add-In vào cho phần mềm Microsoftword 2007 .59 3.5 Thử nghiệm đánh giá kết .60 3.5.1 Một số kết thử nghiệm chƣơng trình 60 3.5.2 Đánh giá kết 61 3.6 Nghiên cứu sử dụng công nghệ FPGA để cấu hình phần tử điều khiển đƣợc 62 3.7 Kết luận .69 KẾT LUẬN 71 TÀI LIỆU THAM KHẢO 72 PHỤ LỤC 74 Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn/ DANH MỤC CÁC CHỮ VIẾT TẮT Từ viết tắt AES CE CSPN DES DDP FPGA HMAC NIST NMAC MAC MD5 MDP NL PKC RIPEMD RO SHA SPN TT UOWHFs Nghĩa tiếng Anh Advanced Encryption Standard Controlled Element Controlled Substitution Permutation Network Data Encrypt Standar Data Dependent Permutation (datadriven permutation) Field Programmable Gate Array Nghĩa tiếng Việt Tiêu chuẩn mã hóa tiên tiến Phần tử điều khiển đƣợc Mạng Hoán vị-Thay điều khiển đƣợc Chuẩn mã hóa liệu Hốn vị phụ thuộc vào liệu Thiết bị lập trình có tái cấu hình Hashed Message Authentication Xác thực thơng điệp hàm băm Code National Institute of Standards and Viện Tiêu chuẩn Công nghệ Technology Quốc gia Mỹ Non-Message Authentication Code Không mã xác thực thông điệp Message Authentication Code Mã xác thực thông điệp Message-Digest algorithm Giải thuật tóm tắt thơng điệp Message-Digest Permutation Hốn vị tóm tắt thông điệp Non Linearity Phi tuyến Public Key Cryptographic Mật mã khóa cơng khai Race Integrity Primitives Phân loại đánh giá tính tồn vẹn Evaluation Message Digest ngun thủy thông điệp Reverse Osmosis Thẩm thấu ngƣợc Secure Hash Algorithm Thuật giải băm an toàn Substitution Permutation Network Mạng hoán vị thay Truth Table Bảng giá trị chân lý phép toán logic Universal One -Way Hash Hàm băm chiều phổ dụng Functions Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn/ DANH MỤC HÌNH ẢNH Hình 1.1 Hoạt động hàm băm 11 Hình 1.2 Sơ đồ biểu diễn thuộc tính khả chống đụng độ, ngăn nghịch ảnh nghịch ảnh thứ 14 Hình 1.3 Thuật tốn bƣớc đệm Merkle-Damgard .20 Hình 1.4 Cấu trúc Merkle-Damgard 20 Hình 1.5 Tấn cơng đa đụng độ 21 Hình 1.6 Cấu trúc kim cƣơng 24 Hình 1.7 Cấu trúc NMAC (a) HMAC (b) 27 Hình 1.8 Cấu trúc MDP 28 Hình 1.9 Cấu trúc mẫu .29 Hình 2.1 Phần tử F2/1: a Sơ đồ tổng quát; b Sơ đồ dạng hàm Logic với biến vào; c Sơ đồ dạng phép thế; d,e Biểu diễn CE thuộc loại P2/1; f Đặc trƣng vi phân F2/1 30 Hình 2.2 Mơ tả trực quan tồn khả có hộp S 2x2 34 Hình 2.3 Tơ pơ phần tử F8/12 (a), F-18/12 (b), F32/96 (c), F-132/96 (d) .44 Hình 2.4 Cấu trúc phần tử 32/96 (a), -1 32/96 (b), 64/384 (c) -1 64/384 (d) .45 Hình 2.5 Cấu trúc phần tử đối xứng F2n/4m (a), P16/32 (b) F64/256 46 Hình 3.1: Kết thử nghiệm với file *.doc 52 Hình 3.2 : Kết thử nghiệm với file *.txt .53 Hình 3.3 Các phần tử (a,e), (e,g), (f,i), (p,h), (x,d) 55 Hình 3.4 Phần tử CP F8/12 55 Hình 3.5 Phần tử CP F-18/12 .56 Hình 3.6 Phần tử F96/1 .56 Hình 3.7 Phần tử F32/96 (a), F -132/96 (b) 57 Hình 3.8 Phần tử F32/32 .57 Hình 3.9 Giao diện chƣơng trình .58 Hình 3.10 Xây dựng thƣ viện HashDLL.dll 59 Hình 3.11 Giao diện sử dụng Add-In “Ez Hash Function” word 2007 .60 Hình 3.12 Phần tử (a) đƣợc biểu diễn thành cặp hàm logic biến (b) thành phép 2x2 (c) 64 Hình 3.13 Cấu trúc tổng quát phần tử Số hóa Trung tâm Học liệu n/m 65 http://lrc.tnu.edu.vn/ Hình 3.14 Các đặc trƣng vi phân phần tử F2/2 66 Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn/ DANH MỤC BẢNG BIỂU Bảng 1.2 Một số thuật ngữ hàm băm 18 Bảng 2.1 Xác suất đặc trƣng vi phân phần tử .35 Bảng 2.2 Toàn phần tử điều khiển đƣợc thỏa mãn tiêu chí lựa chọn 36 Bảng 2.3 Tập đối hợp phi tuyến tính điều khiển đƣợc 38 Bảng 2.4 Xác suất tập đặc trƣng vi phân phần tử 40 Bảng 2.5 Các phần tử hoán vị điều khiển đƣợc với cấu trúc đối xứng 47 Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn/ MỞ ĐẦU Mật mã (Cryptography) ngành khoa học nghiên cứu nội dung toán học, kỹ thuật nhằm cung cấp dịch vụ bảo vệ thơng tin q trình tuyền tin Khoa học mật mã đời phát triển từ sớm, kết nghiên cứu lĩnh vực đƣợc sử dụng nhiều lĩnh vực quân sự, trị, ngoại giao Ngày nay, công nghệ thông tin phát triển ứng dụng mã hóa bảo mật thơng tin đƣợc sử dụng rộng rãi sang nhiều lĩnh vực khác nhƣ kinh tế, thƣơng mại điện tử, ngân hàng… Với phát triển công nghệ truyền thông mạng giao dịch tồn cầu, việc trao đổi thơng tin ngày đơn giản thuận tiện hơn, bên cạnh nảy sinh nhiều yêu cầu cao bảo mật thông tin hệ thống ứng dụng điện tử Xã hội phát triển, nhu cầu sử dụng dịch vụ mạng ngày lớn chúng khơng ngừng đƣợc nâng cao mặt để đáp ứng xu thời đại Trong môi trƣờng mạng, việc truy nhập, lƣu giữ trao đổi thông tin (trong có thơng tin nhạy cảm) đƣợc phát triển với tốc độ cao Điều tạo điều kiện cho hoạt động phi pháp mạng ngày gia tăng Việc xâm phạm dƣới hình thức khác gây hậu nặng nề cho cá nhân tổ chức xã hội Và thực tế hình thành mâu thuẫn nhu cầu phát triển ứng dụng mạng với nguy an tồn thơng tin Do nhu cầu thực tế, khoa học mật mã không ngừng đƣợc nghiên cứu, phát triển ứng dụng Trên thực tế, mật mã phân chia hình thức thành ba hƣớng - mật mã khóa bí mật, mật mã khóa cơng khai, hàm băm mật mã Trong hàm băm mật mã đóng vai trị vơ quan trọng ứng dụng bảo vệ an tồn thơng tin (xác thực, kiểm tra tính tồn vẹn, chữ ký số, …) Trong năm qua vấn đề nghiên cứu mật mã Việt Nam nhiều hạn chế nhiều lý có kết nghiên cứu mang nội dung bản, đặc thù áp dụng tình cụ thể đơn vị sử dụng Cịn Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn/ lại đa số cơng nghệ, kỹ thuật mã hóa ứng dụng thiết bị theo mơ hình mã hóa giới nhƣ DES, AES, MD5, Do đó, việc nghiên cứu phát triển hàm băm mật mã tốt, đƣợc sử dụng thực tiễn nhằm phát triển thuật toán ngày tối ƣu, thuật toán phù hợp cho ứng dụng - mục tiêu đƣợc đặt nhằm nâng cao tính độc lập xây dựng giải pháp an tồn thơng tin Với mục đích phát triển hàm băm có độ phức tạp cao có khả ứng dụng thực tiễn em chọn đề tài: “Nghiên cứu hàm băm sở mạng hoán vị thay điều khiển ứng dụng mã hóa xác thực văn bản” cho luận văn tốt nghiệp Nội dung đề tài nghiên cứu gồm có: Tìm hiểu thuật tốn hàm băm; mạng chuyển vị thay điều khiển đƣợc; xây dựng cài đặt mơ thuật tốn băm; mã hóa xác thực văn bản; đánh giá độ tin cậy thuật tốn đề xuất khả ứng dụng Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn/ 72 TÀI LIỆU THAM KHẢO Tiếng việt: [1] Đỗ Thị Bắc, Nguyễn Hiếu Minh (2010) "Xây dựng hàm băm tốc độ cao sở chuyển vị điều khiển đƣợc" Các vấn đề bảo mật thông tin Tập 2; Số 89, trang 2-6; [2] Hồ Ngọc Duy, Đỗ Thị Bắc (2010) “Các thuật toán mã khối tốc độ cao sở mạng hoán vị-thay điều khiển đƣợc” Các vấn đề bảo mật thông tin Tập 2; Số 89, trang 7-17; [3] Simon Singh (1999) "Mật mã - Từ cổ điển đến lƣợng tử" Nhà xuất trẻ TP Hồ Chí Minh - 492 trang; [4] Trần Duy Lai (2009), tuyển chọn hàm băm mật mã SHA-3, http://antoanthongtin.vn/ , ngày 03/7/2009 Tiếng Anh: [5] Daemen J., Rijmen V The design of Rijndael AES – the Advanced Encryption Standard – Berlin Springer-Verlag 2002 – 180 p [6] Jean-Sébastien Coron, Yevgeniy Dodis, Cécile Malinaud, Prashant Puniya (2005)," Merkle-Damgard Revisited: How to Construct a Hash Function" Advances in Cryptology – CRYPTO 2005 Lecture Notes in Computer Science Volume 3621, 2005, pp 430-448 [7] Moldovyan A A., Moldovyan N A., Moldovyanu P A (2007), “Architecture Types of the Bit Permutation Instruction for General Purpose Processors” // Springer LNGC Vol XIV pp 147–159 / 3d Int Workshop IF\&GIS'07 Proc St.Petersburg, May 28-29, 2007 St Petersburg, Russia [8] Nikolay A Moldovyan, Alexander A Moldovyan (2008), “Data-Driven Block ciphers for fast telecommunication systems”, Auerbach Publications – Taylor & Francis Group a informa business 270 Madison Avenue New York, NY 10016, ISBN 1-4200-5411-2 Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn/ 73 [9] Wang X., Yin Y.L., Yu H (2005) "Finding collisions in the full SHA-1" // Advances in cryptology – CRYPTO 2005 / Lecture Notes in Computer Science Berlin, Springer-Verlag Vol 3621 P 17–36 Trang web: [10] http://www.amazon.com [11] http://doc.edu.vn/ [12] http://www.ebook.edu.vn/ [13] http://antoanthongtin.vn/ Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn/ 74 PHỤ LỤC Một số đoạn mã code chƣơng trình * Xây dựng khối P2/1 private int y1, y2; private void P2_1_0(int x1, int x2) { if (rdae.Checked == true) { y1 = x1; y2 = x2; } if (rdeg.Checked == true) { y1 = x2; y2 = x1; } if (rdfi.Checked == true) { Xor(ref y1, x2, 1); Xor(ref y2, x1, 1); } if (rdph.Checked == true) { Xor(ref y1, x2, 1); y2 = x1; } if (rdxd.Checked == true) { Xor(ref y1, x1, x2); Xor(ref y2, x1, 1); } } public void P2_1_1(int x1, int x2) { if (rdae.Checked == true) { y1 = x2; y2 = x1; } if (rdeg.Checked == true) Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn/ 75 { y1 = x1; Xor(ref y2, x1, x2); } if (rdfi.Checked == true) { int tempx2=0; Xor(ref tempx2, x2, 1); Xor(ref y1, x1, tempx2); y2 = x2; } if (rdph.Checked == true) { Xor(ref y1, x1, x2); y2 = x2; } if (rdxd.Checked == true) { Xor(ref y1, x1, 1); Xor(ref y2, x2, 1); } } * Xây dựng khối P8/12 private int[] HV1_8 = new int[8] { 0, 2, 4, 6, 1, 3, 5, }; private int[] HV2_8 = new int[8] { 0, 2, 1, 3, 4, 6, 5, }; private int[] HV3_8 = new int[8] { 0, 4, 1, 5, 2, 6, 3, }; public int[] tempOut812A; public int[] tempOut812B; public int[] P_8_12_A(int[] in812, int[] v812) { tempOut812A = new int[8]; for (int i = 0; i < 3; i++) { if (i == 1) { for (int k = 0; k < 8; k++) { in812[k] = tempOut812A[HV1_8[k]]; } } if (i == 2) { for (int k = 0; k < 8; k++) Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn/ 76 { in812[k] = tempOut812A[HV2_8[k]]; } } for (int j = 0; j < 4; j++) { if (v812[4 * i + j] == 0) P2_1_0(in812[2 * j], in812[2 * j + 1]); if (v812[4 * i + j] == 1) P2_1_1(in812[2 * j], in812[2 * j + 1]); tempOut812A[2 * j] = y1; tempOut812A[2 * j + 1] = y2; } } return tempOut812A; } * Xây dựng khối P-18/12 public int[] P_8_12_B(int[] in812, int[] v812) { tempOut812B = new int[8]; for (int i = 0; i < 3; i++) { if (i == 1) { for (int k = 0; k < 8; k++) { in812[k] = tempOut812B[HV2_8[k]]; } } if (i == 2) { for (int k = 0; k < 8; k++) { in812[k] = tempOut812B[HV3_8[k]]; } } for (int j = 0; j < 4; j++) { if (v812[4 * i + j] == 0) P2_1_0(in812[2 * j], in812[2 * j + 1]); if (v812[4 * i + j] == 1) P2_1_1(in812[2 * j], in812[2 * j + 1]); tempOut812B[2 * j] = y1; tempOut812B[2 * j + 1] = y2; } } Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn/ 77 return tempOut812B; } private int[] v3296_1 = new int[48]; private int[] v3296_2 = new int[48]; private int[] v1 = new int[16]; private int[] v2 = new int[16]; private int[] v3 = new int[16]; private int[] v4 = new int[16]; private int[] v5 = new int[16]; private int[] v6 = new int[16]; private int[] v11 = new int[16]; private int[] v21 = new int[16]; private int[] v31 = new int[16]; private int[] v41 = new int[16]; private int[] v51 = new int[16]; private int[] v61 = new int[16]; private int[] vtemp1 = new int[12]; private int[] vtemp2 = new int[12]; private int[] vtemp3 = new int[12]; private int[] vtemp4 = new int[12]; private int[] vtemp5 = new int[12]; private int[] vtemp6 = new int[12]; private int[] vtemp7 = new int[12]; private int[] vtemp8 = new int[12]; * Xây dựng hộp E public int[] LL, LR; private void E(int[] L1) { LL = new int[16]; LR = new int[16]; int i; for (i = 0; i < 16; i++) { LL[i] = L1[i]; LR[i] = L1[16 + i]; } v1 = LL; for (i = 0; i < 10; i++) v2[i + 6] = LL[i]; Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn/ 78 for (i = 15; i >= 10; i ) v2[i - 10] = LL[i]; for (i = 0; i < 4; i++) v3[i + 12] = LL[i]; for (i = 15; i >= 4; i ) v3[i - 4] = LL[i]; v4 = LR; for (i = 0; i < 10; i++) v5[i + 6] = LR[i]; for (i = 15; i >= 10; i ) v5[i - 10] = LL[i]; for (i = 0; i < 4; i++) v6[i + 12] = LR[i]; for (i = 15; i >= 4; i ) v6[i - 4] = LR[i]; } private void xepV3296() { for (int i = 0; i < 4; i++) { vtemp1[i] = v11[i]; vtemp2[i] = v11[4 + i]; vtemp3[i] = v11[8 + i]; vtemp4[i] = v11[12 + i]; vtemp5[i] = v41[i]; vtemp6[i] = v41[4 + i]; vtemp7[i] = v41[8 + i]; vtemp8[i] = v41[12 + i]; } for (int i = 4; i < 8; i++) { vtemp1[i] = v21[i - 4]; vtemp2[i] = v21[i]; vtemp3[i] = v21[4 + i]; vtemp4[i] = v21[8 + i]; vtemp5[i] = v51[i - 4]; vtemp6[i] = v51[i]; vtemp7[i] = v51[4 + i]; vtemp8[i] = v51[8 + i]; } for (int i = 8; i < 12; i++) { vtemp1[i] = v31[i - 8]; vtemp2[i] = v31[i - 4]; vtemp3[i] = v31[i]; Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn/ 79 vtemp4[i] = v31[i + 4]; vtemp5[i] = v61[i - 8]; vtemp6[i] = v61[i - 4]; vtemp7[i] = v61[i]; vtemp8[i] = v61[i + 4]; } } private int[] in8_3296_1; private int[] in8_3296_2; private int[] in8_3296_3; private int[] in8_3296_4; private int[] out8_3296_1; private int[] out8_3296_2; private int[] out8_3296_3; private int[] out8_3296_4; private int[] outtemp3296; private int[] Out3296; private int[] HV3296 = new int[32] { 0, 8, 16, 24, 4, 12, 20, 28, 1, 9, 17, 25, 5, 13, 21, 29, 2, 10, 18, 26, 6, 14, 22, 30, 3, 11, 19, 27, 7, 15, 23, 31 }; * Xây dựng hộp chuyển đổi P96/1 public int[] tempV; private void P961(int[] VV1, int[] VV2, int[] VV3, int[] VV4, int[] VV5, int[] VV6, int e) { tempV = new int[16]; if (e == 0) { v11 = P2_16(VV1, e); v21 = P2_16(VV2, e); v31 = P2_16(VV3, e); v41 = P2_16(VV4, e); v51 = P2_16(VV5, e); v61 = P2_16(VV6, e); } else { v11 = VV6; v21 = VV5; v31 = VV4; v41 = VV3; Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn/ 80 v51 = VV2; v61 = VV1; } } private int[] L = new int[32] { 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, }; private int[] Out3232; * Xây dựng hộp chuyển đổi P32/32 private int[] P32_32(int[] in3232, int[] L1, int e) { Out3232 = new int[32]; E(L1); P961(v1, v2, v3, v4, v5, v6, e); xepV3296(); Out3232 = P_32_96(in3232); return Out3232; } private int[] temparr; private int[] strTOarrInt(string str) { temparr = new int[32]; for (int i = 0; i < str.Length; i++) { temparr[i] = Convert.ToInt32(str[i].ToString()); } return temparr; } private string arrIntTOstr(int[] arr,int lengt) { string tempstring = ""; for (int i = 0; i < lengt; i++) { tempstring = tempstring + arr[i].ToString(); } return tempstring; } private void Form1_Load(object sender, EventArgs e) { rdae.Checked = true; Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn/ 81 } * Hàm băm BigInteger a = new BigInteger("0D", 16); BigInteger P = new BigInteger("B25D28A71A62D775", 16); BigInteger G = new BigInteger("98915E7EC8265EDFCDA31E88F24809DDB064BDC7285DD50D7289F0A C6F49DD2D", 16); BigInteger[] Q = new BigInteger[64]; string S = ""; private string strbit256(string st) { string tempst = ""; int leng = st.Length; for (int i = 0; i < 32 * - leng; i++) { st = "0" + st; } tempst = st; return tempst; } * Thủ tục TableQ() dùng để sinh chuỗi giả ngẫu nhiên private void TableQ() { for (int i = 0; i < 64; i++) { Q[i] = a.modPow(23 + i, P).modPow(17, G); } string temps = strbit256(Q[0].ToString(2)).Substring(32 * - 25, 24); S = S + temps; for (int i = 63; i >= 0; i ) { S = S + strbit256(Q[i].ToString(2)); } } private string Qj(int j) { string q1, q2, q3, q4, tempQj = ""; q1 = S.Substring(j * 8, 8); Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn/ 82 q2 = S.Substring((j + 1) * 8, 8); q3 = S.Substring((j + 2) * 8, 8); q4 = S.Substring((j + 3) * 8, 8); tempQj = q4 + q3 + q2 + q1; return tempQj; } private string R = ""; private string V = ""; private string N = ""; private string U = ""; private string Y = ""; * Thủ tục Initialize() dùng để thiết lập giá trị ban đầu cho biến 32 bit R,V,N,U,Y private void Initialize() { R = Qj(9); V = Qj(17); N = Qj(31); U = Qj(33); Y = Qj(25); } private string Mod2(string S1, string S2, int lengt) { string result = ""; if (S2.Length == 1) { result = S1.Substring(S1.Length - lengt, lengt); } else { for (int i = 0; i < S2.Length; i++) { if (S1[i] != S2[i]) { result = result + "1"; } else result = result + "0"; } } return result; } Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn/ 83 private int StrbitToInt(string str) { int result = 0; str = Reverse(str); for (int i = 0; i < str.Length; i++) { if (str[i] == '1') { result = result + (int)Math.Pow(2, i); } } return result; } * Thủ tục ChangeNVUY(), thay đổi giá trị biến N,V,U,Y theo R private void ChangeNVUY() { N = Mod2(arrIntTOstr(P32_32(strTOarrInt(N), strTOarrInt(Y), 0),32), R, 32); int n = StrbitToInt(Mod2(N, "0", 11)); V = Mod2(arrIntTOstr(P32_32(strTOarrInt(V), strTOarrInt(N), 1),32), Qj(n), 32); n = StrbitToInt(Mod2(V, "0", 11)); U = Mod2(arrIntTOstr(P32_32(strTOarrInt(U), strTOarrInt(V), 1),32), Qj(n), 32); n = StrbitToInt(Mod2(U, "0", 11)); Y = Mod2(arrIntTOstr(P32_32(strTOarrInt(Y), strTOarrInt(N), 1),32), Qj(n), 32); } private string W; * Hàm băm vòng Ez private string Ez(string str) { string W1 = ""; string tempW = ""; string tempW2 = ""; int countblock = str.Length / 32; //1 W = str; for (int j = 6; j > 0; j ) //2 { Initialize(); //3 tempW2 = ""; W1 = ""; Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn/ 84 for (int k = 0; k < countblock; k++) //4 { ChangeNVUY(); //5 tempW = W.Substring(k * 32, 32); tempW = Mod2(Mod2(tempW, V, 32), U, 32); //6 R = Mod2(R, tempW, 32); //7 tempW = Mod2(arrIntTOstr(P32_32(strTOarrInt(tempW), strTOarrInt(V), 0),32), Y, 32); //8 tempW2 += tempW; W1 = tempW + W1; } //9 W = tempW2; } //10 return W1; } Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn/ 85 Một số file liệu thử nghiệm chƣơng trình Thời gian Chuỗi đầu vào Trƣờng Đại học Công nghệ thông tin Truyền thông - Đại học Mã băm F2/1 (giây) (a,e) CAC4617BF77817E8E3B89A44E786921E 0.0739264 (e,g) 22436F7C0D3764081F69DA47B1A71C6D 0.0864354 (f,i) 3B1806EC2D01079A990FE65683E3BDE5 0.0791042 (p,h) 396C3643032D86958B8D5BB8FA44D296 0.1250277 (x,d) E24F6E2217AC87C99134545327423AAF 0.082078 (a,e) 371342C4FA976A534A510077F2F7DCD1 4.77524 (e,g) 6E3C7488A5FE28995563287B721B7522 4.7907673 (f,i) 5F39CB8F330534DA608F28D300561386 5.0402651 (p,h) 1DD0A882EB01DEA574F0C33BFAF6A05D 4.908414 (x,d) BD689D913559A64007FB64A09E5C5911 5.2959065 (a,e) 9DB392B557018943E9DC32421A3C9A8B 41.6441499 (e,g) E5C4BC72E9176DED4063EBA6C464B937 41.4573367 (f,i) 14779295F89DF3EDE257C8031813C096 44.0018228 (p,h) 4B7381F8F286E34B28F971F6922B15C2 42.4779279 (x,d) 26A97E52EA13639D5583FEB75D1C6A32 44.3315138 Thái Nguyên File *.txt với dung lƣợng 16KB File *.doc với dung lƣợng 20MB (khoảng 65 trang) Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn/ 86 Số hóa Trung tâm Học liệu http://lrc.tnu.edu.vn/

Ngày đăng: 18/10/2023, 15:38

TÀI LIỆU CÙNG NGƯỜI DÙNG

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

TÀI LIỆU LIÊN QUAN

w