Phương pháp trao đổi khóa mã đối xứng không sử dụng mật mã khóa công khai
Mật mã là công cụ hữu hiệu, được sử dụng rộng rãi để bảo vệ bí mật
thông tin trong quá trình trao đổi nhưng việc phân phối khóa mã qua kênh an toàn
cho các mạng thông tin - thuộc các lĩnh vực Ngoại giao, An ninh, Quốc phòng - vốn
có nhiều đầu mối, trên phạm vi địa lý rộng luôn là vấn đề khó khăn hàng đầu. Mật
mã khóa công khai ra đời cuối những năm 1970 với nhiều ưu điểm đã làm giảm bớt
những khó khăn trong khâu phân phối khóa; Tuy nhiên, mặt khác, mật mã khóa
công khai làm tăng dung lượng bản mã, đồng thời cần nhiều tài nguyên trong quá
trình xử lý, gây khó khăn triển khai ứng dụng trên những thiết bị hạn chế về bộ nhớ.
Bài báo này trình bày những nghiên cứu và đề xuất một phương pháp trao đổi khóa
mã dựa trên hệ mật khóa đối xứng, không sử dụng hệ mật khóa công khai.
Tóm tắt nội dung tài liệu: Phương pháp trao đổi khóa mã đối xứng không sử dụng mật mã khóa công khai
Nghiên cứu khoa học công nghệ Tạp chí Nghiên cứu KH&CN quân sự, Số 51, 10 - 2017 95 PHƯƠNG PHÁP TRAO ĐỔI KHÓA MÃ ĐỐI XỨNG KHÔNG SỬ DỤNG MẬT MÃ KHÓA CÔNG KHAI Lê Danh Cường1*, Hồ Văn Canh2 Tóm tắt: Mật mã là công cụ hữu hiệu, được sử dụng rộng rãi để bảo vệ bí mật thông tin trong quá trình trao đổi nhưng việc phân phối khóa mã qua kênh an toàn cho các mạng thông tin - thuộc các lĩnh vực Ngoại giao, An ninh, Quốc phòng - vốn có nhiều đầu mối, trên phạm vi địa lý rộng luôn là vấn đề khó khăn hàng đầu. Mật mã khóa công khai ra đời cuối những năm 1970 với nhiều ưu điểm đã làm giảm bớt những khó khăn trong khâu phân phối khóa; Tuy nhiên, mặt khác, mật mã khóa công khai làm tăng dung lượng bản mã, đồng thời cần nhiều tài nguyên trong quá trình xử lý, gây khó khăn triển khai ứng dụng trên những thiết bị hạn chế về bộ nhớ. Bài báo này trình bày những nghiên cứu và đề xuất một phương pháp trao đổi khóa mã dựa trên hệ mật khóa đối xứng, không sử dụng hệ mật khóa công khai. Từ khóa: Mật mã; Thám mã; Mật mã khóa đối xứng; Mật mã khóa bất đối xứng; Khóa bí mật; Khóa công khai. 1. ĐẶT VẤN ĐỀ Ngoài ứng dụng các hệ mật mã khóa bí mật, hiện nay các thuật toán mã hóa khóa công khai (Asymmetric Key Cryptography) được sử dụng rộng rãi để bảo mật thông tin, đặc biệt là những thông tin nhạy cảm, liên quan đến thương mại điện tử [8, 9, 10]. Tuy nhiên, nhược điểm lớn nhất của chúng là vấn đề trao đổi khóa mã. Việc trao đổi khóa bằng hệ mật khóa công khai có một số nhược điểm như làm tăng đáng kể kích cỡ bản mã (so với bản mã gốc) và chậm hơn so với sử dụng mô hình mật mã khóa đối xứng (Symmetric Key Cryptography) [1]. Do vậy, làm cho việc mã hóa/ giải mã thông tin trở nên chậm chạp và tốn nhiều bộ nhớ, gây khó khăn trong việc ứng dụng trên những thiết bị hạn chế về loại tài nguyên này. Câu hỏi đặt ra là có hay không một phương pháp trao đổi, thỏa thuận khóa không cần sử dụng hệ mật khóa công khai? Câu trả lời là có [11]. Vấn đề này đang được nhiều tổ chức, cá nhân tập trung nghiên cứu. Bài báo này đề xuất một phương pháp thỏa thuận khóa mã dựa trên hệ mật khóa đối xứng, thông qua trình bày một số thuật toán đơn giản, dễ thực hiện và có độ an toàn cao. 2. NỘI DUNG NGHIÊN CỨU Trong hệ mật mã khóa đối xứng, chúng tôi chọn mật mã khối làm mục tiêu để nghiên cứu, với Chuẩn mật mã dữ liệu (DES - Data Encryption Standard) là đặc trưng. Sau đây là nội dung cụ thể. 2.1. Hệ mật mã DES DES là hệ mật mã khối điển hình nhất trong số các mật mã khối nói chung. Khóa của nó là một dãy bít giả ngẫu nhiên độ dài 64 bít. Ta ký hiệu khóa đó là 6421 ,..,, kkkK với 64,..,2,1,1,0 ik . Trong hoạt động mã hóa thực tế, thuật toán DES sẽ bỏ qua 8 bít ở các vị trí 64,56,48,40,32,24,16,8 [12]. Như vậy, độ dài khóa DES chỉ còn 56 bít, nhưng để đơn giản trong phần nghiên cứu này chúng ta vẫn coi khóa DES có độ dài 64 bít.Mô tả hoạt động của hệ mật như sau: Giả sử nơi gửi (A) muốn chuyển bí mật cho nơi nhận (B) một bản rõ nxxxX ,..,, 21 trong đó zbaxi ,..,, . Công nghệ thông tin & Cơ sở toán học cho tin học L. D. Cường, H. V. Canh, “Phương pháp trao đổi khóa mã mật mã khóa công khai.” 96 - A dùng Hệ mật DES với khóa mã K để mã hóa bản rõ X . Khi đó bản mã sẽ được ký hiệu là nyyyY ,..,, 21 . - Khi nhận được bản mã Y , B cần có khóa mã K để giải bản mã và đọc được nội dung bản rõ X . - Việc trao đổi khóa K giữa A và B có thể có nhiều cách, phổ biến và thuận tiện nhất hiện nay là dùng mật mã khóa công khai, trong bài toán này ta giả sử sử dụng Hệ mật mã khóa công khai RSA. Giả sử B sử dụng Hệ mật mã RSA với cặp khóa công khai và khóa riêng lần lượt là ),( BbN và ),( BaN . - Để trao đổi khóa K cho B, người gửi A lấy khóa công khai ),( BbN và tính: )mod(NKZ Bb . Sau đó gửi cặp ),( YZ cho B trên kênh công cộng tùy ý. - Khi nhận được cặp ),( YZ , B sử dụng khóa riêng ),( BaN để khôi phục khóa K bằng cách tính: )mod(NZK Ba . Vậy là B đã có khóa để giải bản mã Y. Như vậy, rõ ràng cặp ),( YZ được truyền đi có kích cỡ lớn hơn bản mã Y , điều đó sẽ làm cho thời gian truyền, dung lượng bộ nhớ sử dụng tăng đáng kể, đồng thời làm giảm độ an toàn của hệ thống và không thích hợp cho các ứng dụng trên các thiết bị như smartphone. Hơn thế nữa, cách làm này còn phụ thuộc vào sự phổ biến, phát triển của mật mã khóa công khai và cách thức quản lý khóa công khai trong một mạng lưới liên lạc. Thực tế đó đòi hỏi phải có một phương pháp trao đổi khóa bí mật một cách thuận tiện an toàn và thực tế hơn. 2.2. Phương pháp thỏa thuận khóa được đề xuất Ta biết rằng, độ dài khóa bí mật phụ thuộc vào yêu cầu của từng thuật toán mã hóa, cụ thể độ dài khóa mã hóa DES là 56 bit [5] - tương ứng với 7 ký tự la tinh; Độ dài khóa của thuật toán mã hóa IDEA là 128 bit [13] - tương ứng với 16 ký tự La tinhv.v... Mật mã nhóm tác giả đề xuất có độ dài mầm khóa 240 bit (tương ứng với 30 ký tự La tinh). Trong thuật toán sinh khóa bí mật, ta ký hiệu d là độ dài tính theo ký tự La tinh của mầm khóa (Key Seed) bí mật. Ký hiệu 5 m là một số tự nhiên tùy ý, cố định do hai thực thể thống nhất trước. 2.2.1. Thuật toán 1 Input: Cho )(xX là một dãy các ký tự La tinh có độ dài n tùy ý, ví dụ: )37(X = coongj hoaf xax hooij chur nghiax Vieetj Nam. Output: Một dãy gồm d ký tự La tinh, với d là một số nguyên dương tùy ý, cố định trước. Các bước tiến hành của thuật toán như sau: Bước 1: Lấy một số nguyên dương 5 m tùy ý, Bước 2: Nếu mdn thì viết liên tiếp )(nX cho đến khi mdn xxxxxxmdX ,..,,,,..,,)( 2121 Bước 3: Đổi dãy )(mdX sang dãy số nguyên dương theo nguyên tắc sau: + Chữ cái nào ở trong dãy )(mdX có giá trị bé nhất được đánh số 1; + Nếu trong dãy )(mdX có m ký tự đều có giá trị bé nhất thì ưu tiên đánh số 1 cho ký tự xuất hiện đầu tiên, tiếp đó là số 2.v.v.cho đến ký tự thứ m và cuối cùng là ký tự Nghiên cứu khoa học công nghệ Tạp chí Nghiên cứu KH&CN quân sự, Số 51, 10 - 2017 97 có giá trị lớn nhất được đánh số. Như vậy dãy )(mdY sẽ có md số khác nhau; tức là )(mdY gồm )(mdX chữ số khác nhau. Bước 4: Lập bảng (ma trận) dmijbB )( Bước 5: Điền các số của dãy )(mdY vào bảng B theo thứ tự tự nhiên cho đến khi bảng B được lấp đầy các ô thì chuyển sang bước 6. Bước 6: Với dj ,..,2,1 ; tính tổng 26mod 1 m i ijj bZ Bước 7: Return ),..,,( 21 dZZZ Thuật toán dừng và dãy ),..,,( 21 dZZZZ là mầm khóa mà hai thực thể A và B cần có để liên lạc mật với nhau. Mô tả ví dụ Giả sử từ khóa )37(X = ‘‘coongj hoaf xax hooij chur nghiax vieetj nam’’ Lấy 10 d ; 5 m ; 50. dm nên ta phải mở rộng )37(X thành )50(X : )50(X =‘‘coongj hoaf xax hooij chur nghiax vieetj nam coongj hoaf xax’’ Bây giờ ta đổi )50(X sang dãy số )50(Y =7,34,35,30,14,25,17,36,1,12,46,2,47,18,37,38,22,26,8,19,44,42,31, 15,20,23,3,48,45,24,10,11,43,27,32,4,29,9,39,40,33,16,28,21,41,5,13,49,6,50. Tiếp theo điền dãy )50(Y vào bảng B, ta có: 7 34 35 30 14 25 17 36 1 12 46 2 47 18 37 38 22 26 8 19 44 42 31 15 20 23 3 48 45 24 10 11 43 27 32 4 29 9 30 40 33 16 28 21 41 5 13 49 6 50 Với 1, 2,..,10j , ta có: 1026mod)33+10+44+46+7(1 Z : K 126mod)16+11+42+2+34(2 Z : B 226mod)28+43+31+47+35(3 Z : C 726mod)21+27+15+18+30(4 Z : H 1426mod)41+32+20+37+14(5 Z : O 1726mod)5+4+23+38+25(6 Z : R 626mod)13+29+3+22+17(7 Z : G 1226mod)49+9+48+26+36(8 Z : M 2126mod)6+39+45+8+1(9 Z : V 1526mod)50+40+24+19+12(10 Z : P Vậy mầm khóa là: ),..,,( 21 dZZZZ = (K, B, C, H, O, R, G, M, V, P) 2.2.2. Thuật toán 2 (thường được áp dụng cho kỹ thuật giấu tin mật) Công nghệ thông tin & Cơ sở toán học cho tin học L. D. Cường, H. V. Canh, “Phương pháp trao đổi khóa mã mật mã khóa công khai.” 98 Input: ảnh C Output: Khóa mã nkkkK ,..,, 21 ; 1,0 ik và n là độ dài khóa mã. Step1: Trích chọn tất cả hoặc một phần các MSB ( Most Significant Bit ) do hai thực thể liên lạc mật với nhau qui định trước của ảnh C và tạo thành ảnh thứ cấp NcccC ,..,,)1( 21 Step 2: Lập bảng (ma trận) gồm m dòng, d cột ( d có độ dài tùy ý nhưng không bé hơn n còn 5 m , dmijaA )( Step 3: Viết các bít Nccc ,..,, 21 theo thứ tự tự nhiên vào bảng A Step 4: For dj ,..,2,1 tính các tổng m i ijj ab 1 )2mod( Step 5: Return ),..,,( 21 dbbb Đây là khóa mã mà ta cần. Trong một số trường hợp, ta có thể áp dụng thuật toán trên bằng cách chọn từ khóa bất kỳ (theo quy ước) như sử dụng thông tin một số trường (họ tên, quê quá, địa chỉ người nhận) sau đó viết lặp lại với số lần tùy ý rồi chuyển sang số hóa theo một quy tắc nhất định. Ví dụ: lee danh cuwowngf và 30 d còn 5 m . Ta làm như sau: Trước hết viết leedanhcuwowngf leedanhcuwowngf leedanhcuwowngf (viết lặp lại 10 lần). Sau đó chuyển sang số hóa như đã thực hiện trong thuật toán 1. Từ đó viết dãy số này vào ma trận A theo thứ tự tự nhiên cho đến hết các ô trong bảng thì dừng. Step 4 và step 5 vẫn thực hiện như trên. 2.2.3. Mầm khóa Trong hai thuật toán trên, mầm khóa sử dụng yêu cầu phải được giữ bí mật tùy theo tính chất, cách bố trí và tổ chức mạng liên lạc. Mỗi phiên, mầm khóa được các đầu mối liên lạc thống nhất lựa chọn ngẫu nhiên từ tập cơ sở dữ liệu đủ lớn, có thể là tập các văn bản hay các ma trận điểm ảnhv.v... Khi đó, chủ thể liên lạc sẽ sử dụng mầm khóa bí mật làm đầu vào của các thuật toán trên để trao đổi, thỏa thuận khóa cho các phiên liên lạc. Từ kết quả của hai thuật toán trên cho phép ta ứng dụng xây dựng các hệ mật mã khóa bí mật an toàn trong trao đổi thông tin. 3. KẾT LUẬN Phương pháp thỏa thuận khóa bí mật trên đây có thể được dùng cho mọi hệ mật mã khóa đối xứng và cùng lúc cho nhiều người khác nhau. Việc chọn một đoạn văn rõ làm đầu vào cho thuật toán là tùy ý, hoặc có thể lấy một dãy số bất kỳ hoặc một hỗn hợp cả chữ cái và chữ số và có thể một dãy các bản rõ được lặp lạiv.v... Độ an toàn của khóa K không bị ảnh hưởng, vì dãy số tương ứng chỉ phụ thuộc vào vị trí của các ký tự trong dãy và độc lập với bản thân ký tự đó. Lý thuyết Markov đã chứng minh kết quả thu được là dãy ngẫu nhiên độc lập [4, 7, 11]. Do đó để thuận lợi và đơn giản trong trao đổi khóa, hai người A và B muốn liên lạc mật với nhau mà từ xa, có thể qui ước sử dụng ngày tháng ở đầu bản thông báo nào đó một cách công khai mà không sợ bị nghi ngờ. Điểm mạnh của phương pháp trao đổi này là thuật toán đơn giản, nhưng vẫn đảm bảo độ bí mật và an toàn cao. 4. TÀI LIỆU THAM KHẢO [1]. Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone, ‘‘Hanhdbook of Applied Cryptography’’,CRC Press, 1999. Nghiên cứu khoa học công nghệ Tạp chí Nghiên cứu KH&CN quân sự, Số 51, 10 - 2017 99 [2]. A. Menzes, M. Qu, and S. Vanstone, ‘‘Some new key agreement protocols providing implicit authentication’’. Ottawa, Canada, 1995. [3]. Doughlas R. Stison, ‘‘Cryptography: Theory and Practices’’. CRC Press 1999. [4]. FIPS, ‘‘Key management using ANSI X9, 17 Federal Information Proceeding. Standards Publication 171. U.S. Department of Commerce/ NIST. [5]. Hồ Văn Canh, Nguyễn Viết Thế, ‘‘Nhập môn phân tích thông tin có bảo mật’’. NXB Hà Nội T&T. 2010. [6]. M. Bellare and P. Rogaway, ‘‘Provably Secure Session Key Distribution’’. Proceedings of The 27th Annal ACM Symposium. [7]. Michael R.A. Huth, ‘‘Secure communicating Systems’’. Cambridge University Press, 2001. [8]. M. Burmester, ‘‘On the risk of opening distributed keys’’. Advances in Crypto-94. [9]. Phan Đình Diệu, ‘‘Mật mã và an toàn thông tin’’. NXB ĐHQG Hà Nội, 2002. [10]. R. Blom, ‘‘Non-public key distribution’’. Advances in Cryptology- Proceedings of Crypto-o3. [11]. T. Leighton and S. Micall, ‘‘Secret key agreement without public-key cryptography’’. Advances in Crypto-04. [12]. Timothy Charles Clapp, ‘‘Statistical Methods for the Processing of communication data’’. University of Cambridge Press- 2000. [13]. Trịnh Nhật Tiến, ‘‘Bảo mật thông tin và an toàn dữ liệu’’. NXBĐHQG Hà Nội, 2009. [14]. W. F. Ehrsam, S.M. Matyas, C.H. Meyer, and W.L. Tuchman, ‘‘A Cryptographic key manmagement scheme for implementing the Data Encyption Standard’’. IBM Systems Journal. ABSTRACT THE SECRET KEY EXCHANGING IN SYMMETRIC CRYPTOGRAPHY WITHOUT USING PUBLIC KEY CRYPTOGRAPHY Key distribution is one of the hardest problems in cryptography. Therefore, cryptography has been a special product used in the field of national security and defense, politics and foreign affair for a long time. Public key cryptography was invented at the end of 1970s with many advantages and quickly has application in many aspects of the daily life. In comparison with classical cryptography that uses symmetric keys and needs to keep the key secret, public key cryptography has greatly reduced the difficulty in key management and distribution. However, it also has lower computation speed and requires high performance devices as well as increases the size of the messages. In the paper, a method for exchanging secret key of symmetric key cryptography without using any public key cryptography is proposed. Input of the Algorithm is a character string of some Latin language. Keywords: Cryptography; Cryptanalysis; Symmetric key cryptography; Asymmetric key cryptography; Plaintext; Private key; Public key. Nhận bài ngày 22 tháng 6 năm 2017 Hoàn thiện ngày 07 tháng 7 năm 2017 Chấp nhận đăng ngày25 tháng 10 năm 2017 Địa chỉ: 1 Cục Kỹ thuật, Bộ Công an; 2 Cục Kỹ thuật nghiệp vụ, Tổng cục I, Bộ Công an. * Email: cuongqt34@yahoo.com.
File đính kèm:
- phuong_phap_trao_doi_khoa_ma_doi_xung_khong_su_dung_mat_ma_k.pdf