Một giải pháp xây dựng hệ mật khóa đối xứng
Việc xây dựng các thuật toán mật mã hiệu năng
cao cho mục đích thiết kế, chế tạo các thiết bị bảo
mật thông tin phục vụ lĩnh vực an ninh - quốc phòng
và kinh tế - xã hội trong điều kiện hiện nay có ý
nghĩa thực tiễn hết sức to lớn. Với mục tiêu đặt ra,
thuật toán được xây dựng nhằm đáp ứng các yêu cầu:
- Loại trừ các dạng tấn công đã biết đối với các hệ
mật khóa đối xứng trong thực tế;
- Tích hợp hiệu quả trên các thiết bị có kích thước
nhỏ, dung lượng nhớ và năng lực tính toán hạn chế.
Giải pháp để xây dựng thuật toán mật mã với các
yêu cầu đặt ra được đề xuất dựa trên việc phát triển
hệ mã sử dụng OTP có độ an toàn và hiệu quả thực
hiện cao [1-5]. OTP được Gilbert Vernam đề xuất
vào năm 1917 và được Joseph Mauborgne tiếp tục
hoàn thiện sau đó. Nguyên tắc căn bản của OTP là
sử dụng một khóa mật chia sẻ trước có độ dài bằng
với độ dài của bản tin cần mã hóa (bản rõ), các bit
của bản mã nhận được từ việc cộng loại trừ (XOR)
trực tiếp các bit của bản rõ với các bit tương ứng của
khóa mật.
Lý thuyết của Claude E. Shannon [6] đã chỉ ra
OTP là một loại mật mã có độ mật hoàn thiện (perfect
secrecy). Hiện tại, OTP vẫn được xem là loại mật mã
an toàn tuyệt đối, không thể phá vỡ. Điều đặc biệt là
ngay cả tấn công vét cạn (brute force) bằng máy tính
lượng tử đối với loại mã này cũng trở nên vô nghĩa, nếu
có thể đáp ứng được các điều kiện về khóa như sau:
- Khóa có tính chất ngẫu nhiên;
- Mỗi khóa chỉ được dùng để mã hóa duy nhất
một bản tin;
- Kích thước của khóa phải bằng hoặc lớn hơn
kích thước của bản rõ;
- Khóa phải được giữ bí mật hoàn toàn.
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Tóm tắt nội dung tài liệu: Một giải pháp xây dựng hệ mật khóa đối xứng
bit, i = 1...n có thể tìm (suy ra) được các khóa đã được sử dụng OT 1 2 i n i trước đó hay các khóa sẽ được sử dụng trong tương Thuật toán mã hóa là phép XOR các bit của khối lai; b) chuỗi bit khóa tồn tại chu kỳ lặp lại, từ đó tạo bản rõ Pi với các bit tương ứng của khóa con Ki : ra mối liên quan giữa bản rõ và bản mã, kẻ tấn công ⊕ Ci = Pi Ki, i = 1...n có thể tận dụng mối liên quan này để phá mã, tương Do đó, bản mã C cũng bao gồm n khối dữ liệu C tự như với mã hóa đa bảng Vigenère [7]. Tuy nhiên, i có kích thước m bit: đây là một yêu cầu không dễ thực hiện về mặt kỹ thuật trong các ứng dụng. C = {C1,C2,,Ci,,Cn}, |Ci| = m bit, i = 1...n Trong [8], trên cơ sở các nghiên cứu đã được Tương tự, thuật toán giải mã cũng là phép XOR công bố trước đó, các tác giả đề xuất thuật toán mã các bit của khối bản mã Ci với các bit tương ứng của hóa phát triển dựa trên nguyên lý của mật mã OTP khóa con Ki: trong đó sử dụng hàm băm (Hash Function) để sinh ⊕ Pi = Ci Ki, i = 1...n dòng khóa, thuật toán có tính hiệu quả thực hiện cao, dễ cài đặt trên cả phần cứng và phần mềm. Chú ý, trường hợp chia bản tin P thành n khối không chẵn thì bù thêm 1 số bit để khối cuối cùng đủ Trong bài báo này, nhóm tác giả đề xuất một giải m bit, việc bù thêm này được thực hiện tương tự như pháp nhằm cho phép tạo ra các biến thể của mật mã ở các hệ mã khối khác (DES, AES,). OTP, thừa kế được một số ưu điểm của OTP, song việc thiết lập, quản lý – phân phối và sử dụng khóa Sử dụng 2 khóa khác nhau để mã hóa/giải mã bản tin là đồng nhất với các hệ mã khóa đối xứng đang sử Khóa bí mật K để mã hóa/giải mã cho một bản tin dụng trong thực tế. Ngoài ra, xác thực nguồn gốc và P bao gồm khóa sử dụng một lần KOT và khóa bí mật tính toàn vẹn của bản tin được mã hóa cũng là một chia sẻ trước giữa 2 đối tượng gửi (mã hóa) và nhận tính năng bổ sung quan trọng cho các thuật toán xây (giải mã) – KS. Trong đó, khóa sử dụng một lần KOT dựng theo giải pháp này. Điểm khác của giải pháp đề được dùng để mã hóa các khối dữ liệu của bản rõ ở xuất ở đây so với thuật toán trong [8] là chuỗi khóa bên gửi và giải mã các khối bản mã ở phía bên nhận. được tạo ra chủ yếu bằng các thuật toán sinh số ngẫu Khóa bí mật chia sẻ K được bên gửi sử dụng để nhiên có kết hợp với hàm băm mà không hoàn toàn S tạo ra “mầm khóa” C tương ứng với mỗi bản tin cần bởi hàm băm như trong [8], điều đó cho phép nâng 0 mã hóa nhờ hàm băm F : C = F (P, K ). Thành phần cao tốc độ thực hiện thuật toán mã hóa nhất là khi sử 1 0 1 S C này được gửi như một khối của bản mã sang cho dụng thuật toán sinh số ngẫu nhiên dạng thanh ghi 0 bên nhận. Dễ thấy rằng, giá trị C là khác nhau với dịch hồi tiếp tuyến tính – LFSR (Linear Feedback 0 các bản tin cần mã hóa khác nhau và có tính chất Shift Registers) [9] kiểu Shrinking Generator [10]. ngẫu nhiên vì được tạo ra từ hàm băm F1. GIẢI PHÁP XÂY DỰNG THUẬT TOÁN MẬT Tiếp đến, hai bên gửi và nhận đều tạo khóa con MÃ KHÓA ĐỐI XỨNG HIỆU NĂNG CAO đầu tiên K1 từ KS và C0 nhờ hàm F1 như sau: Nguyên tắc xây dựng thuật toán mật mã theo giải K = F (C , K ) pháp đề xuất 1 1 0 S Phía gửi tin, các khóa K được sinh bởi cùng một Mã hóa và giải mã theo khối với OTP i thuật toán F2 từ khóa con đứng trước Ki-1 và khối dữ Bản rõ P được mã hóa dưới dạng n khối dữ liệu liệu tương ứng Pi-1: Pi có kích thước m bit: Ki = F2(Pi-1, Ki-1), i = 2...n P = {P1,P2,,Pi,,Pn}, |Pi| = m bit, i = 1...n Ở đây, F2 là hàm sinh số ngẫu nhiên – RNG Khóa sử dụng một lần KOT cũng bao gồm n khóa (Random Number Generator), như phân tích ở phần 22 Số 5 (057) 2020 l Tạp chí AN TOÀN THÔNG TIN sau (mục Mức độ an toàn) cho thấy F2 hoàn toàn Thuật toán sinh khóa, giải mã và xác thực bao có thể là các hàm sinh số giả ngẫu nhiên – PRNG gồm các bước thực hiện như sau: (PseudoRandom Number Generator) mà không nhất Input: C = {C ,C ,C ,,C ,,C }, K thiết phải thực sự là RNG. 0 1 2 i n S Output: M = {M1,M2,,Mi,,Mn}, true/false. Phía nhận tin, sau khi tạo: K = F (C ,K ) sẽ giải 1 1 0 S [1]. K = F (C ,K ) mã khối đầu tiên: P = C K . Từ đây, các khóa con 1 1 0 S 1 1 1 [2]. M = C ⊕ K tiếp theo sẽ được tạo ra theo cùng một quy tắc với 1 1 1 [3]. M[1] = M phía bên gửi: 1 [4]. for i = 2 to n do: K = F (P , K ), i = 2...n i 2 i-1 i-1 begin Với mỗi khóa con Ki được tạo ra thì việc giải mã Ki = F2(Mi-1,Ki-1) các khối mã tiếp theo sẽ được thực hiện: ⊕ Mi = Ci Ki P = C K , i = 2...n i i i M[i] = Mi Như vậy ở giải pháp đề xuất, khóa bí mật K sẽ end bao gồm hai thành phần có chức năng phân biệt: K [5]. M0 = F1(M,KS) = {KS, KOT}. Trong đó: KS là khóa bí mật chia sẻ giữa [6]. if (M0 = C0) then return {M,true} các đối tượng tham gia trao đổi thông tin mật, khóa else return {M,false} này được sử dụng để tạo ra khóa KOT tương ứng với Ghi chú: mỗi bản tin. Còn KOT là khóa sử dụng một lần cho việc mã hóa và giải mã bản tin. - Nếu kết quả trả về là {M,true} thì bản tin được Thuật toán bên người gửi xác thực về nguồn gốc và tính toàn vẹn. Ngược lại, kết quả trả về là {M,false} thì M là bản tin giả mạo Thuật toán sinh khóa và mã hóa bao gồm các hoặc C đã bị thay đổi trong quá trình truyền tin. bước thực hiện được mô tả như sau: - Nếu bản mã được truyền chính xác từ bên gửi Input: P = {P ,P ,,P ,,P }, K 1 2 i n S sang bên nhận thì khối dữ liệu C0 của bên nhận Output: C = {C0,C1,C2,,Ci,,Cn} cũng chính là C0 của bên gửi. Mặt khác, do bên nhận và bên gửi có cùng thuật toán sinh khóa với [1]. C0 = F1(P,KS) dữ liệu vào C0 và khóa bí mật chia sẻ KS như nhau, [2]. K1 = F1(C0,KS) nên khóa mã hóa và khóa giải mã sử dụng một lần GIẢI PHÁP - CÔNG NGHỆ [3]. C1 = P1 K1 KOT sẽ hoàn toàn giống nhau. Vì thế bản tin sau giải [4]. C[0] = C0, C[1] = C1 mã cũng chính là bản rõ trước khi mã hóa. Nên điều [5]. for i = 2 to n do kiện M0 = C0 được thỏa mãn hoàn toàn. begin MỘT SỐ ĐÁNH GIÁ VỀ GIẢI PHÁP XÂY DỰNG THUẬT TOÁN MẬT MÃ ĐƯỢC ĐỀ XUẤT Ki = F2(Pi-1, Ki-1) Ci = Pi Ki Mức độ an toàn C[i] = C i Mức độ an toàn của thuật toán mật mã khóa đối end xứng xây dựng theo giải pháp đề xuất có thể đánh giá [6]. return C qua khả năng chống lại một số dạng tấn công như sau: Ghi chú: - Tấn công khóa bí mật chia sẻ: Tấn công khóa bí - Phép toán ⊕ là phép cộng modulo 2 (XOR) hai mật chia sẻ có thể thực hiện dựa vào cách tạo giá trị C : C = F (P,K ) hoặc tính giá trị của khóa con K : chuỗi bit. 0 0 1 S 1 K1 = F1(C0,KS). Thuật toán bên người nhận Số 5 (057) 2020 l Tạp chí AN TOÀN THÔNG TIN 23 Với việc tạo C0 và K1 như trên thì kích thước LK con (m bit đầu tiên) rồi ghép nối tiếp n chuỗi con của khóa bí mật chia sẻ hoàn toàn có thể chọn tùy này với nhau. biến trong khoảng: L ≤L ≤2L-L . Trong đó, L là min K P min Nếu các chuỗi bit cơ sở được tạo ra bởi các hàm kích thước tối thiểu đủ để bảo đảm ngưỡng an toàn băm và hàm sinh số giả ngẫu nhiên có chu kỳ lặp lại (≥ 80 bit); L là kích thước bản rõ và L là kích thước P lớn và kích thước của các chuỗi con K được chọn lớn nhất của dữ liệu đầu vào hàm băm F . Khi đó, dữ i 1 nhỏ hơn chu kỳ lặp lại của chuỗi bit cơ sở thì các liệu đầu vào hàm F là sự ghép nối tiếp xâu bit của K 1 S chuỗi con này thực sự có tính ngẫu nhiên theo nghĩa: với P trong trường hợp tạo giá trị C , hoặc là sự ghép 0 a) không tồn tại chu kỳ lặp lại; b) từ một số bit cho nối tiếp xâu bit của K với C trong trường hợp tạo S 0 trước không thể tính được bit tiếp theo, là điều hoàn khóa con K . Từ đây có thể thấy rằng, khóa bí mật 1 toàn có thể khẳng định. Mặt khác, do các chuỗi con chia sẻ trước giữa bên gửi và nhận hoàn toàn có thể K được tạo theo: K = F (P , K ), nên một trong được giữ bí mật không chỉ về giá trị mà còn bí mật i i 2 i-1 i-1 các điều kiện để các K tạo thành chuỗi giá trị lặp lại cả về kích thước khóa. i là các Pi cũng phải tạo thành chuỗi lặp lại, mà trên Dễ thấy rằng, với đặc tính một chiều của hàm thực tế điều này lại khó xảy ra. băm, hơn nữa với kích thước của K cũng là một S Do đó, với giải pháp đề xuất K đã đáp ứng được tham số bí mật, thì việc tìm được K từ C , P và K là OT S 0 1 yêu cầu về tính ngẫu nhiên của khóa theo nghĩa: a) hoàn toàn không khả thi. từ một khóa đã biết, kẻ tấn công không thể tìm được - Tấn công vét cạn khi chỉ có bản mã: Nếu KOT là các khóa đã được tạo ra trước hoặc sau đó; b) chuỗi một chuỗi bit thực sự ngẫu nhiên thì giữa bản rõ và bit khóa không tồn tại chu kỳ lặp lại, nên sẽ không bản mã được tạo ra sẽ không có bất kỳ mối quan hệ tạo ra mối liên quan giữa bản rõ và bản mã. Từ đó, nào. Tấn công vét cạn có thể giải một bản mã thành thuật toán được xây dựng theo giải pháp đề xuất bất kỳ bản tin nào có cùng độ dài (với bản mã) và đối hoàn toàn có thể kháng lại tấn công vét cạn. với kẻ tấn công thì tất cả các bản tin có nghĩa sau giải - Tấn công giả mạo: OTP không cung cấp tính mã đều có khả năng là bản tin được mã hóa. Nghĩa năng xác thực cho bản tin được mã hóa, vì vậy kẻ là, sẽ không có bất kỳ thông tin nào trong bản mã cho tấn công có thể chặn bản mã được gửi đi và gửi cho phép kẻ tấn công lựa chọn đúng bản rõ trong số các bên nhận một bản tin giả mạo có cùng kích thước với bản tin có nghĩa sau giải mã bằng tấn công vét cạn. bản tin thật. Trường hợp giải mã ra một bản rõ vô Ngoài ra, nếu K thực sự ngẫu nhiên thì từ một khóa OT nghĩa, người nhận có thể suy đoán về một sự giả mạo đã biết, kẻ tấn công không thể tìm (suy) ra các khóa đã được thực hiện hoặc do lỗi truyền tin gây ra. Tuy khác đã được tạo ra trước hay sau đó. nhiên, nếu giải mã ra một bản tin có nghĩa, thì chính Theo giải pháp đề xuất, khóa sử dụng một người nhận cũng không có cách nào để khẳng định lần KOT là một tập các khóa con Ki được tạo bởi được rằng đây là bản tin thật hay bản tin giả mạo. hàm băm F và hàm sinh số ngẫu nhiên F theo 2 1 2 Với giải pháp đề xuất, bằng việc tạo “mầm khóa” nguyên tắc: Thứ nhất, mỗi khóa con K được sinh i C từ khóa bí mật chia sẻ K và bản rõ nhờ hàm băm ra từ khóa con đứng trước nó là K và khối dữ liệu 0 S i-1 F ở phía bên gửi: C = F (P,K ), bên nhận hoàn toàn tương ứng P bởi F ; Thứ hai, riêng khóa con đầu 1 0 1 S i-1 2 có khả năng nhận thức chính xác nguồn gốc cũng tiên K được tạo ra bởi “mầm khóa” C và khóa bí 1 0 như tính toàn vẹn của bản tin sau giải mã qua việc mật chia sẻ K bởi hàm băm F . Như vậy, K thực S 1 OT tính: M = F (M,K ) và kiểm tra điều kiện: M = C . chất là một chuỗi bit được tạo ra bởi việc ghép nối 0 1 S 0 0 Hiệu quả thực hiện tiếp n chuỗi (bit) con Ki, mà các chuỗi con Ki này chính là đoạn m bit đầu tiên của n chuỗi bit cơ sở Có thể nâng cao hiệu quả thuật toán xây dựng được tạo bởi F hoặc F với các giá trị khởi tạo 1 2 theo giải pháp đề xuất nếu khóa KOT được tạo ra hay các “mầm” khác nhau. Nói cách khác, chuỗi trước các khi các thủ tục mã hóa và giải mã được bit KOT được tạo ra từ n chuỗi bit cơ sở khác nhau, thực hiện. Khi đó, các thuật toán sinh khóa, mã hóa bằng cách lấy ra từ mỗi chuỗi bit cơ sở 1 chuỗi và giải mã được mô tả như sau: 24 Số 5 (057) 2020 l Tạp chí AN TOÀN THÔNG TIN + Thuật toán sinh khóa: dạng tấn công đối với các hệ mã khối, đây là một ưu điểm rất quan trọng được kế thừa từ OTP. Ngoài ra, Input: P = {P ,P ,,P ,,P }, K 1 2 i n S do có cơ chế xác thực nguồn gốc và tính toàn vẹn Output: K = {K ,K ,,K ,,K }, C OT 1 2 i n 0 của bản tin được mã hóa, các thuật toán này còn có [1]. C = F (P,K ) 0 1 S khả năng chống lại các dạng tấn công giả mạo trong [2]. K [1] = F (C ,K ) OT 1 0 S thực tế. Những ưu điểm khác của các thuật toán này [3]. for i = 2 to n do là tốc độ và hiệu quả thực hiện có thể so sánh với hệ begin mã OTP, song khóa mật chia sẻ có thể sử dụng nhiều K [i] = F (K [i-1]) OT 2 OT lần như các hệ mã khóa đối xứng khác. Đây là những end đặc tính rất quan trọng mang lại khả năng cho các [4]. return {K ,C } OT 0 thuật toán mới có thể ứng dụng được trong việc thiết + Thuật toán mã hóa: kế, chế tạo các thiết bị bảo mật thông tin. Input: P = {P1,P2,,Pi,,Pn}, C0, KOT = {K1,K2,,Ki,,Kn} TÀI LIỆU THAM KHẢO Output: C = {C0,C1,C2,,Ci,,Cn} [1]. C[0] = C 0 1. SharadPatil, Ajay Kumar (2010). Effective Secure [2]. for i = 1 to n do Encryption Scheme (One Time Pad) using Complement begin Approach. International Journal of Computer Science & ⊕ Communication, Vol.1,No.1,January-June 2010, pp.229-233. C[i] = P[i] KOT[i] end 2. Raman Kumar, Roma Jindal, Abhinav Gupta, [3]. return C SagarBhalla, HarshitArora (2011). A Secure Authentication System - Using Enhanced One Time Pad + Thuật toán giải mã và xác thực: Technique. IJCSNS International Journal of Computer Science and Network Security, Vol.11 No.2. Input: C = {C ,C ,C ,,C ,,C }, 0 1 2 i n 3. SharadPatil, ManojDevare, Ajay Kumar (2007). Modified KOT = {K1,K2,,Ki,,Kn},KS One Time Pad Data Security Scheme: Random Key Output: M = {M1,M2,,Mi,,Mn}, true/false. Generation Approach. International Journal of Computer [1]. for i = 1 to n do: Science and Security (IJCSS), Volume (3): Issue(2). begin 4. N.J.Croft and M.S.Olivier (2005). “Using an M[i] = C[i] ⊕ K [i] approximated One-Time Pad to Secure ShortMessaging OT service(SMS)”. SATNAC 2005 Proceedings. end 5. Jeff Connelly (1978). A Practical Implementation of a GIẢI PHÁP - CÔNG NGHỆ [2]. M = F (M,K ) 0 1 S One-time Pad Cryptosystem. CPE 456. [3]. if (M = C ) then return {M,true} 0 0 6. Shannon C.E. (1949). Communication Theory of Secrecy else return {M,false} Systems. Bell System Technical Journal, Vol.28-4, pp.656-715. Có thể thấy rằng, hiệu quả thực hiện của thuật 7. William Stallings (2005). Cryptography and Network toán được đề xuất khi đó đạt xấp xỉ hiệu quả thực Security Principles and Practices. Prentice Hall. hiện của mật mã OTP. Tuy nhiên, do: 8. Marcio Ricardo Rosemberg, Daniel Schwabe, Marcus Poggi, A Hybrid Block and Stream Cipher Encryption Scheme KOT[i] = F2(KOT[i-1]) Based on Collision Resistant Hash Functions. Monografias em Ciência da Computação n° 13/17, ISSN: 0103-9741. Nên sẽ tiềm tàng khả năng tồn tại chu kỳ lặp lại 9. Menezes A., Van Oorschot P. and Vanstone S. (1996). trong chuỗi K . OT Handbook of Applied Cryptography. Boca Raton, KẾT LUẬN Florida: CRC Press. 10. D. Coppersmith, H. Krawczyk, and Y. Mansour Bài báo đề xuất giải pháp xây dựng thuật toán (1994), “The shrinking generator,” in CRYPTO ’93: mật mã khóa đối xứng từ việc phát triển mật mã sử Proceedings of the 13th annual international cryptology dụng khóa một lần OTP. Với giải pháp thiết kế khóa conference on Advances in cryptology, (New York, NY, mật từ 2 phân khóa tách biệt, các thuật toán xây dựng USA), pp. 22-39, Springer-Verlag New York, Inc. theo giải pháp ở đây có khả năng loại trừ một số Số 5 (057) 2020 l Tạp chí AN TOÀN THÔNG TIN 25
File đính kèm:
- mot_giai_phap_xay_dung_he_mat_khoa_doi_xung.pdf