7. Ý NGHĨA KHOA HỌC VÀ THỰC TIÊN CỦA ĐỀ TÀI
3.2.2. Các đánh giá kết quả mô phỏng hàm băm mới
Theo kết quả mô phỏng đánh giá độ khuếch tán của hàm băm đề xuất, khoảng cách Hamming của các mã băm đạt xấp xỉ một nửa độ dài mã băm, tức là khi ta thay 1 bit trong bản tin đầu vào thì mã băm đầu ra sẽ thay đổi một nửa chiều dài. Từ đây ta thấy độ khuếch tán là rất tốt.
Để có thêm kết luận về hàm băm đề xuất, phải thực hiện thêm các đánh khác như: tính xung đột, tính bảo mật…
3.3.KẾT LUẬN CHƯƠNG 3
Nội dung chương này đề cập đến các hàm băm hộ MD4, đây là họ có nhiều hàm băm đang được sử dụng rộng rãi. Phần tiếp theo là đề xuất xây dựng một hàm băm mới 128 bit, với mục đích tăng độ dài hàm băm hạn chế phép tấn công ngày sinh nhật; các mô phỏng đánh giá độ khuếch tán của hàm băm mới đề xuất này cho thấy kết quả rất khả quan.
KẾT LUẬN VÀ KIẾN NGHỊ
Các kết quả nghiên cứu chính của luận án bao gồm các nội dung sau đây:
Đề xuất phương pháp xây dựng hệ mật trên các cấp số nhân cyclic của vành đa thức. Hệ mật mới này được xây dựng theo lược đồ Feistel có sửa đổi với sơ đồ mật mã khối có độ dài đầu ra 128 bit. Ưu điểm nổi bật của hệ mật này là (1) Mạch điện mã hóa và giải mã cùng một cấu trúc và rất đơn giản chỉ gồm các thanh ghi dịch và bộ cộng modul 2, tốc độ xử lý nhanh, (2) Phương pháp mã hóa hàm f được xây dựng trên cấu trúc của cấp số nhân cyclic trên vành đa thức Z2[ ] /x xn 1 với 2k
n , (Vành đa thức này là vành chẵn đặc biệt và không được xem xét trong lý thuyết mã sửa sai), do đó dễ dàng mở rộng độ dài từ, (3) Một số mô phỏng đánh giá cho thấy kết quả khuếch tán của hệ mật khá tốt (tương đương DES).
Đề xuất phương pháp tạo khóa cho hệ mật từ các M-dãy theo các cấp số nhân của vành đa thức có hai lớp kề cyclic, đây cũng là vành đặc biệt và ít được dùng trong lý thuyết mã sửa sai. Các M-dãy xây dựng theo phương pháp này có chu kỳ lớn và cũng đảm bảo tính chất giả ngẫu nhiên của dãy. Trong luận án đã sử dụng các M-dãy trên vành 61
1
x vào việc tạo các khóa con bên trong hệ mật, cụ thể là 16 khóa con cho 16 vòng mã hóa theo sơ đồ Feistel. Do số lượng khóa tạo được rất nhiều (2601 khóa) nên mỗi lần mã hóa một khối thông tin vào, có thể sử dụng các khóa khác, điều này sẽ tránh được vấn đề của các mật mã khối là khi bản rõ đầu vào giống nhau và sử dụng cùng một khóa thì bản mã đầu ra sẽ giống nhau. Ngoài ra các M-dãy đề xuất trong luận án hoàn toàn có thể sử dụng mật mã dòng.
Xây dựng một hàm băm mới có độ dài 128 bit với khối mật mã được xây dựng trên các cấp số nhân cyclic. Đây là cơ sở để xây dựng thêm các hàm băm mới với một số ưu điểm: (1) phương pháp mã hóa đơn giản hơn, (2) có thể dễ dàng mở rộng độ dài mã băm nhằm mục đích hạn chế phép tấn công ngày sinh nhật,
(3) hàm băm có độ khuếch tán (hay hỗn loạn) khá tốt (đây là một tính chất quan trọng của hàm băm). Theo các kết quả mô phỏng đánh giá tính khuếch tán của hệ mật mới và của các hàm băm đề xuất cho thấy tính khuếch tán khá tốt. Với hệ mật thì độ khuếch tán tương đương DES, với hàm băm độ khuếch tán đạt xấp xỉ một nửa độ dài mã băm.
Kiến nghị hướng phát triển
Phát triển thêm các hệ mật mã mới trên cơ sở hàm mã hóa xây dựng từ các cấp số nhân cyclic và kết hợp thêm các khâu phi tuyến để tăng độ an toàn cho hệ mật.
Trên cơ sở hàm băm đề xuất trong luận án, xây dựng thêm các hàm băm mới có độ dài lớn hơn.
Tìm hiểu và thực hiện thêm các phương pháp đánh giá hàm băm đề xuất để hoàn thiện nghiên cứu về hàm băm mới này.
DANH MỤC CÁC CÔNG TRÌNH CÓ LIÊN QUAN ĐẾN LUẬN ÁN
[1]. Nguyễn Bình,Vương Đức Hạnh, Hồ Quang Bửu “Quasi–cyclic Codes over Polynomial Rings withTwo Cyclotomic Cosets”, Tạp chí Khoa học và Công nghệ, Viện Khoa học và Công nghệ Việt Nam, chuyên san các công trình về điện tử viễn thông và CNTT, tập 1, số 1 năm 2010 trang 77-81.
[2]. Hồ Quang Bửu, Trần Đức Sự, “Constructing Interleaved M-sequences over Polynomial Rings with Two Cyclotomic Cosets”, Tạp chí Khoa học và Công nghệ Quân sự, số 47, 02 -2012, trang 133-140.
[3]. Hồ Quang Bửu, Ngô Đức Thiện, Trần Đức Sự, “Xây dựng hệ mật trên các cấp số nhân cyclic của vành đa thức”, Tạp chí Khoa học và Công nghệ, Viện Khoa học và Công nghệ Việt Nam, Chuyên san các công trình nghiên cứu về Điện tử, Viễn thông và CNTT, Tập 50 số 2A, tháng 9-2012, ISSN 0866 708X.
[4]. Hồ Quang Bửu, Ngô Đức Thiện, Trần Đức Sự, “Xây dựng hàm băm trên các cấp số nhân cyclic”, Chuyên san các công trình nghiên cứu, phát triển và ứng dụng CNTT và Truyền thông, Kỳ 3 Tạp chí Thông tin, KHCN của bộ Thông tin và Truyền thông, Tập V-1 số 7 (27), tháng 5-2012, ISSN 1859-3526. [5]. Nguyễn Toàn Thắng, Ngô Đức Thiện, Hồ Quang Bửu, “Xây dựng hàm băm
mở rộng trên các cấp số nhân cyclic”, Hội thảo Điện tử - Truyền thông An toàn thông tin, ATC/REV, tháng 10-2012, pp. 52 - 57.
[6]. Hồ Quang Bửu, đề tài khoa học cấp bộ TT&TT: “Nghiên cứu thực trạng và khả năng triển khai ứng dụng xác thực cổng thông tin điện tử”. Mã số: 125- 10-KHKT-RD, ban hành theo quyết định số: 234/QĐ-BTTTT ngày 10/2/2010.
TÀI LIỆU THAM KHẢO
Tiếng Việt
[1]. Bùi Lai An, (2012), “Về một cấu trúc tổng quát của mã PN phi tuyến đa chiều đa cấp theo kiểu lồng ghép”, Luận án tiến sĩ kỹ thuật, 2012.
[2]. Đặng Hoài Bắc, (2010) “Các mã cyclic và cyclic cục bộ trên vành đa thức có hai lớp kề cyclic”, Luận án TS kỹ thuật.
[3]. Nguyễn Bình (2004), "Nghiên cứu xây dựng hạ tầng khóa công khai phục vụ thư tín điện tử và thương mại điện tử”, Báo các kết quả nghiên cứu đề tài Bộ Bưu chính - Viễn thông, 6/2004.
[4]. Nguyễn Bình (2004), Giáo trình Mật mã học, Học viện Công nghệ Bưu chính Viễn thông, Nxb Bưu điện, 2004.
[5]. Nguyễn Bình (2008), Giáo trình Lý thuyết thông tin, Học viện Công nghệ Bưu chính Viễn thông, Nxb Bưu điện, 2008.
[6]. Lê Đình Thích (2002), Nghiên cứu các mã xyclic cục bộ trên vành đa thức, Luận án Tiến sĩ kỹ thuật.
Tiếng Anh
[7]. Dang Hoai Bac, Nguyen Binh, Nguyen Xuan Quynh, Young Hoon Kim (2007), “Polynomial rings with two cyclotomic cosets and their applications in Communication”, MMU International Symposium on Information and Communications Technologies 2007, Malaysia, ISBN: 983-43160-0-3.
[8]. Dang Hoai Bac, Nguyen Binh, Nguyen Xuan Quynh (2007), “Decomposition in polynomial ring with with two cyclotomic cosets”, 36th AIC, November 18-23 2007, Manila.
[9]. Nguyen Binh, Dang Hoai Bac (2004), “Cyclic Codes over Extended Rings of Polynomial Rings with Two Cyclotomic Cosets”, REV’04, Vietnam.
[10]. Nguyen Binh, Le Dinh Thich (2002), “The Oders of Polynomials and Algorithms for Defining Oder of Polynomial over Polynomial Ring”, VICA- 5, Hanoi, Vietnam.
[11]. Dang Hoai Bac, Nguyen Binh, Nguyen Xuan Quynh (2007), "Novel Algebraic Structure for Cyclic Codes", Applied Algebra, Algebraic Algorithms, and Error Correcting Codes –Conf., AAECC 17, LNCS 4851, pp 301-310, Springer-Verlag Berlin Heidelberg.
[12]. Dang Hoai Bac, Nguyen Binh, Nguyen Xuan Quynh (2007), "New Algebraic Structure Based on Cyclic Geometric Progressions over Polynomial Ring Applied for Cryptography" IEEE, International Conference on Computational Intelligence and Security (CIS) CIS'07, December 15-19, 2007, Harbin, China.
[13]. Nguyen Binh (2002), “Crypto-System Based on Cyclic Geometric Progressions over Polynomial Ring (Part I)”, REV’02, Vietnam.
[14]. Nguyen Binh (2002), “Circulant Crypto System over Polynomial Ring (Part II)”, REV’02, Vietnam.
[15]. Bart PRENEEL (2003), “Analysis and Design of Cryptographic Hash Functions”, Ph.D project, February 2003.
[16]. Bellovir S., Merritt M. (1992), “Encrypted Key Exchange”, Proc. IEEE Symp. Security and Privacy IEEE Comp Soc Press 1992.
[17]. Denning D., Branstad D. (1996), “A Taxonomy of Key Escrow Ecryption Systems”, Comm ACM, v39 n3, Mar 1996.
[18]. Hamming R. W. (1980), Coding and Information Theory, Englwood Cliffs, N.J Prentice Hall.
[19]. Huth M. R. A. (2001), Secure Communication Systems, Cambridge University Press, 2001.
[20]. Jean-Yves Chouinard (2002), ELG 5373 Secure Communications and Data Encryption, School of Information Technology and Engineering, University of Ottawa, April 2002.
[21]. John B. Anderson and Seshadri Mohan, (1991), Source and Channel Coding, Kluwer Academic Publishers, Boston/Dordrecht/London.
[22]. Knudsen, L.; Preneel, B (2002), Construction of secure and fast hash functions using nonbinary error-correcting codes, IEEE Transactions on Information Theory, Volume 48, Issue 9, Sept. 2002 Page(s): 2524 - 2539
[23]. Magnus Daum (2005), “Cryptanalysis of Hash Functions of the MD4- Family”, Dissertation zur Erlangung des Grades eines Doktor der Naturwissenschaften der Ruhr-UniversitÄat Bochum am Fachbereich Mathematik vorgelegt von Magnus Daum unter der Betreuung von Prof. Dr. Hans Dobbertin Bochum, Mai 2005.
[24]. Markku-Juhani Olavi Saarinen (2009), “Cryptanalysis of Dedicated Crypto- graphic Hash Functions”, Thesis submitted to The University of London for the degree of Doctor of Philosophy. Department of Mathematics Royal Holloway, University of London, 2009.
[25]. Menezes A. J, Van Oorchot P. C. (1998), Handbook of Applied Cryptography, CRC Press, (1998).
[26]. Michal Rjaˇ sko (2008), “Properties of Cryptographic Hash Functions”, Comenius University in Bratislava, Faculty of Mathematics, Physics and Informatics Department of Computer Science, Advisor: RNDr. Martin Stanek, PhD. Bratislava 2008.
[27]. Paul J. McCarthy (1996), Algebraic Extensions of Fields, Blaisdell Publishing Company.
[28]. Pascal JUNOD (2004), “Statiscal Cryptanalysis of Block Ciphers”, Thèse No 3179 (2004), Présentée à La Faculté Informatique & Communications, Institud de Systèmes de Communications.
[29]. Preneel, B.; Govaerts, R.; Vandewalle, J., “Hash functions for information authentication”, CompEuro'92. Computer Systems and Software En- gineering', Proceedings. 4-8 May 1992 Page(s):475 – 480.
[30]. Rudolf Lidl, Harald Neiderreiter (1983), Finite Fields, Addision-Wesley Publishing Company.
[31]. Schneier B. (1996), Applied Cryptography, John Wiley Press, 1996.
[32]. Stallings W. (2000), “Networks Security Essentials: Applications and Standards”, Prentice Hall, (2000).
[33]. Stinson D. R. (1995), Cryptography: Theory and Practice, CRC Press, 1995. [34]. Shamir A. (1985), “Identity-based cryptorytions and signature schemes,
Advanced in Cryptology” - CRYPTO'84, LNCS196, Springer_Verlag, pp.47-53, 1985
[35]. Shannon C. E. (1948), A mathematical theory of communication, Bell Syst Tech J.
[36]. Todd K. Moon (2005), Error Correction Coding, Wiley-Interscience, a John Wiley & Sons, Inc., Publication.
[37]. Message authentication with one-way hash functions, INFOCOM’92. Eleventh Annual Joint Conference of the IEEE Computer and Communications Societies. IEEE, 4-8 May 1992 Page(s): 2055 - 2059 vol.3.
PHỤ LỤC A:
THÔNG SỐ CỦA MỘT SỐ HÀM BĂM
Phụ lục này trình bày các thông số của các hàm nén sử dụng trong các hàm băm họ MD4.
Với mỗi hàm, đầu tiên là các mô tả về các thông số, ví dụ độ dài mã băm đầu ra n, độ dài đầu ra hàm nén m, số lượng các thanh ghi r, số bước mã hóa s, độ dài của một từ w, số lượng các từ thông báo tđược tách từ thông báo ban đầu có chiều dài l.
Khi mô tả mở rộng thông báo, có các phép hoán vị k khác nhau nếu phép mở rộng theo kiểu hoán vị vòng, còn nếu mở rộng theo kiểu đệ quy thì sử dụng Wi. Khi mô tả các bước mã hóa sử dụng các công thức cho bước mã hóa, ví dụ tính Ritừ Ri1,...,Ri r ,Wi cùng với các bảng các phần của các bước độc lập.
Một số hàm có thay đổi nhỏ trong các thanh ghi khác với tính toán theo công thức đa cho, sử dụng ký hiệu ( ,...)Ri để mô tả giá trị thực tế của r thanh ghi sau bước i, và được gọi là trạng thái.
Trong trường hợp tính toán song song hai luồng, ký hiệu L i
R là cho luồng bên trái và RiR là cho luồng bên phải. Các giá trị khởi tạo ký hiệu là Rr,...,Rl.
MD4
Các thông số:
Mở rộng thông báo:
Giá trị khởi tạo:
Bước mã hóa:
Trạng thái:
MD5
Các thông số:
Mở rộng thông báo:
Giá trị khởi tạo:
Bước mã hóa:
Trạng thái:
MD4 mở rộng Các thông số:
Mở rộng thông báo:
Giá trị khởi tạo:
Bước mã hóa:
Trạng thái:
RIPEMD-0
Các thông số:
Mở rộng thông báo:
Giá trị khởi tạo:
Bước mã hóa:
Trạng thái:
RIPEMD-128 Các thông số:
Mở rộng thông báo:
Giá trị khởi tạo:
Bước mã hóa:
Trạng thái:
RIPEMD-160 Các thông số:
Mở rộng thông báo:
Giá trị khởi tạo:
Bước mã hóa:
Trạng thái:
RIPEMD-256 Giống RIPEMD-128
Các thông số:
Giá trị khởi tạo:
Bước mã hóa:
Giống RIPE-128: Sau bước 15 (và các bước 31, 47, 63 tương ứng) thay nội dung R12L bằng R12R (và R31L bằng R31R, R46L bằng R46R, R61L bằng R61Rtương ứng).
Đầu ra:
RIPEMD-320 Giống RIPEMD-160
Các thông số:
Giá trị khởi tạo:
Bước mã hóa:
Giống RIPE-160: Sau bước 15 (và các bước 31, 47, 63, 79 tương ứng) thay nội dung R14L bằng R14R (và R27L bằng R27R, R46L bằng R46R, R59L bằng R59R, R77L bằng
77
R
R tương ứng).
SHA-0 và SHA-1
Các thông số:
Mở rộng thông báo:
Giá trị khởi tạo:
Bước mã hóa:
Trạng thái:
SHA-256
Các thông số:
Mở rộng thông báo:
Giá trị khởi tạo:
Bước mã hóa:
Trạng thái:
SHA-512
Các thông số:
Mở rộng thông báo:
Giá trị khởi tạo:
Trạng thái:
Đầu ra:
SHA-224
SHA-224 giống với SHA-256
Các thông số:
Giá trị khởi tạo:
Đầu ra:
SHA-384
SHA-384 giống với SHA-512
Các thông số:
Giá trị khởi tạo:
PHỤ LỤC B:
CÁC CHƯƠNG TRÌNH TÍNH TOÁN VÀ MÔ PHỎNG
1. Hàm tính hoán vị IP và IP-1 128 bit
function A=IP128(ax,flag)
% Hoan vi va hoan vi nguoc 128 bit %
% Cu phap: A = IP128(AX,FLAG) % AX 128 bit thong tin vao % A 128 bit thong tin ra % FLAG = 1 --> Hoan vi thuan % FLAG = -1 --> Hoan vi nguoc
IP= [[122:-8:2] [124:-8:4] [126:-8:6] [128:-8:8] [121:-8:1] [123:-8:3] [125:-8:5] [127:-8:7]]; IPI = [[80:-1:65] [16:-1:1] [96:-1:81] [32:-1:17] [112:-1:97] [48:-1:33] [128:-1:113]
[64:-1:49]]; IP = reshape(IP',1,128); IPI = reshape(IPI,1,128); switch flag case 1 for ii=1:128 A(ii)=ax(IP(ii)); end case -1 for ii=1:128 A(ii)=ax(IPI(ii)); end otherwise
A='Khong hop le'; return;
end
% --- end of file ---
2. Hàm tính các phần tử của cấp số nhân cyclic trên vành có 2 lớp kề
function ketquabin = CGP2LK(ax,px,s,n);
% tim cap so nhan cho vanh co 2 lop ke Cyclic % cu phap: KQBIN = CGP2LK(ax,px,s,n);
% ax la da thuc dau, dang BIN % px la cong boi,dang BIN % KQBIN --> ket qua dang BIN % s --> so phan tu
% n --> vanh da thuc X^n + 1 (n la so nguyen to) %---
ax(length(ax)+1:n)=0; px(length(px)+1:n)=0;
kq=nhandathuc(ax,px,n); %--- for jj=2:s tg=nhandathuc(kq(jj-1,:),px,n); kq=[kq;tg]; end ketquabin=kq; % --- end of file ---
+ Hàm nhân hai đa thức dạng nhị phân function kq= nhandathuc(x,y,n);
% Cu phap KQ = NHANDATHUC(X,Y,n);
% X, Y la vec to nhi phan, la he so cua da thuc. % KQ --> ket qua dang BINVEC
% n --> vanh da thuc: X^n + 1 dx=length(x); dy=length(y); if dx <= n x((dx+1):n)=0; else
disp('Do dai vuot qua n'); kq=[]; return; end if dy <= n y((dy+1):n)=0; else
disp('Do dai vuot qua n'); kq=[];
end; somu=0; tg=[]; for jj=1:dx if x(jj)==1 somu=somu+1; tg(somu,:)=shift(y,jj-1); end end stg=size(tg); if stg(1)==1 kq=tg; else kq=sum(tg); kq=mod(kq,2); end
+ Hàm chuyển đổi đa thức dạng số mũ sang dạng nhị phân function kq=pol2bin(ax);
% Chuyen tu so mu da thuc ax thanh dang vecto nhi phan %
% Cu phap: KQ= POL2BIN(ax); % AX: la da thuc dang POL, % n: Vanh da thuc X^n+1; % KQ la da thuc dang BINVEC m=max(ax); kq=zeros(1,m+1); for jj=1:length(ax) vt=ax(jj); kq(vt+1)=1; end
3. Hàm tính các phần tử của cấp số nhân cyclic trên vành x2k 1
function ketquabin = CGPC(ax,px,n);
% Tim cap so nhan cho vanh chan dang: X^n+1 Voi n=2^k % cu phap: KQBIN = CGPC(ax,px,n);
% ax la da thuc dau, dang BIN % px la cong boi,dang BIN % KQBIN --> ket qua dang BIN %--- ax(length(ax)+1:n)=0; px(length(px)+1:n)=0; kq=ax; %--- for jj=2:n tg=nhandathuc(kq(jj-1,:),px,n); kq=[kq;tg]; end