Thuật toán mã hóa – xác thực thông tin phát triển từ mật mã OTP

7 20 0
Thuật toán mã hóa – xác thực thông tin phát triển từ mật mã OTP

Đang tải... (xem toàn văn)

Thông tin tài liệu

Bài viết đề xuất thuật toán mã hóa – xác thực thông tin từ việc phát triển mật mã sử dụng khóa một lần - OTP (One - Time Pad). Ưu điểm của thuật toán mới đề xuất là có tính an toàn và hiệu quả thực hiện cao tương tự OTP, đồng thời việc thiết lập, quản lý - phân phối và sử dụng khóa hoàn toàn giống như các hệ mã khóa đối xứng đang được ứng dụng trong thực tế (DES, AES…).

Nghiên cứu khoa học cơng nghệ THUẬT TỐN MÃ HĨA – XÁC THỰC THÔNG TIN PHÁT TRIỂN TỪ MẬT MÃ OTP Lưu Hồng Dũng1*, Nguyễn Ánh Việt2, Đồn Thị Bích Ngọc3 Tóm tắt: Bài báo đề xuất thuật tốn mã hóa – xác thực thơng tin từ việc phát triển mật mã sử dụng khóa lần - OTP (One - Time Pad) Ưu điểm thuật toán đề xuất có tính an tồn hiệu thực cao tương tự OTP, đồng thời việc thiết lập, quản lý phân phối sử dụng khóa hồn tồn giống hệ mã khóa đối xứng ứng dụng thực tế (DES, AES…) Từ khóa: Symmetric-Key Cryptography; Symmetric-Key Cryptographic Algorithm; Symmetric-Key Cryptosystems; One - Time Pad Algorithm; OTP Cipher ĐẶT VẤN ĐỀ Mật mã sử dụng khóa lần OTP Gilbert Vernam đề xuất vào năm 1917 Joseph Mauborgne tiếp tục hoàn thiện sau Nguyên tắc mật mã OTP sử dụng khóa mật chia sẻ trước có độ dài với độ dài tin cần mã hóa (bản rõ), bit mã nhận từ việc cộng loại trừ (XOR) trực tiếp bit rõ với bit tương ứng khóa mật Lý thuyết Claude E Shannon [6] OTP loại mã có độ mật hoàn thiện (Perfect Secrecy) Hiện tại, mật mã OTP xem loại mã an tồn tuyệt đối, khơng thể phá vỡ Điều đặc biệt công theo kiểu “vét cạn” (Brute force attack) máy tính lượng tử loại mã trở nên vơ nghĩa, đáp ứng điều kiện khóa sau: - Khóa có tính chất ngẫu nhiên; - Mỗi khóa dùng để mã hóa tin; - Kích thước khóa phải lớn kích thước rõ; - Khóa phải giữ bí mật hồn tồn Tuy có độ an tồn tốc độ mã hóa cao khả cài đặt dễ dàng thiết bị có lực tính tốn tài ngun hạn chế, với yêu cầu khóa ra, loại mã có khả ứng dụng thực tế Nguyên nhân việc tạo khóa phải có tính thực ngẫu nhiên, nhằm loại trừ nguy an toàn: a) từ khóa biết, kẻ cơng tìm (suy ra) khóa sử dụng trước hay khóa sử dụng tương lai; b) chuỗi bit khóa tồn chu kỳ lặp lại, từ tạo mối liên quan rõ mã, kẻ cơng tận dụng mối liên quan để phá mã tương tự với mã hóa đa bảng Vigenère [7] Tuy nhiên, yêu cầu không dễ thực mặt kỹ thuật ứng dụng Nhưng lý chủ yếu làm cho mã OTP có ý nghĩa thực tế khóa dùng lần phải có kích thước khơng nhỏ kích thước tin cần mã hóa, song lại phải giữ bí mật tuyệt đối tin cần mã hóa Đã có số nghiên cứu nhằm giải hạn chế mật mã OTP công bố [1-5], song từ kết công bố cho thấy nghiên cứu chủ yếu tập trung giải vấn đề tạo chuỗi bit khóa OTP từ chuỗi bit giả ngẫu nhiên có kích thước hạn chế, cịn việc sử dụng khóa nhiều lần tương tự hệ mã khóa đối xứng khác hạn chế nghiên cứu Từ đó, báo đề xuất biến thể mật mã OTP với việc thiết lập, quản lý – phân phối sử dụng khóa thực hồn tồn hệ mã khóa đối xứng Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 12 - 2020 87 Công nghệ thơng tin sử dụng thực tế (DES, AES,…) Ngồi ra, xác thực nguồn gốc tính tồn vẹn tin mã hóa tính bổ sung quan trọng cho thuật toán THUẬT TỐN MÃ HĨA – XÁC THỰC THƠNG TIN 2.1 Mơ tả thuật tốn Bản rõ P mã hóa dạng n khối liệu Pi có kích thước 128-bit: P = {P1,P2,…,Pi,…,Pn}, |Pi| = 128 bit, i = n Khóa sử dụng lần KOT bao gồm n khóa Ki có kích thước tương ứng với kích thước khối liệu: KOT = {K1,K2,…,Ki,…,Kn}, |Ki| = 128 bit, i = n Do đó, mã C bao gồm n khối liệu Ci có kích thước 128-bit: C = {C1,C2,…,Ci,…,Cn}, |Ci| = 128 bit, i = n Thuật tốn mã hóa phép XOR bit khối rõ Pi với bit tương ứng khóa Ki : Ci = Pi  Ki , i = n Tương tự, thuật toán giải mã phép XOR bit khối mã Ci với bit tương ứng khóa Ki: Pi = Ci  Ki , i = n Chú ý: Trường hợp chia tin P thành n khối khơng chẵn bù thêm số bit để khối cuối đủ 128-bit, việc bù thêm thực tương tự hệ mã khối khác (DES, AES,…) [8] Khóa bí mật K để mã hóa giải mã cho tin P bao gồm khóa sử dụng lần KOT khóa bí mật chia sẻ trước đối tượng gửi/mã hóa – nhận/giải mã KS Trong đó, khóa sử dụng lần KOT bao gồm khóa Ki: KOT = {K1,K2,…,Ki,…,Kn} dùng để mã hóa khối liệu rõ bên gửi giải mã khối mã phía bên nhận Khóa bí mật chia sẻ KS bên gửi sử dụng để tạo ”mầm khóa” - C0 tương ứng với tin cần mã hóa, nhờ hàm băm (Hash Function) MD5: C0 = MD5(P,KS) Thành phần C0 gửi khối mã sang cho bên nhận Dễ thấy rằng, giá trị C0 khác với tin cần mã hóa khác có tính chất ngẫu nhiên – hệ việc tạo từ hàm băm MD5 [9] Tiếp đến, bên gửi nhận tạo khóa K1 từ KS C0 nhờ hàm MD5 sau: K1 = MD5(C0,KS) Phía gửi tin, khóa Ki sinh thuật tốn từ khóa đứng trước Ki-1 khối liệu tương ứng Pi-1: Ki = MD5(Pi-1,Ki-1), i = n Phía nhận tin, sau tạo khóa K1: K1 = MD5(C0,KS) giải mã khối đầu tiên: P1 = C1  K1 Từ đây, khóa tạo theo qui tắc với phía bên gửi: Ki = MD5(Pi-1,Ki-1), i = n khối mã giải mã: 88 L H Dũng, N A Việt, Đ T B Ngọc, “Thuật tốn mã hóa – xác thực … từ mật mã OTP.” Nghiên cứu khoa học công nghệ Pi = Ci  Ki , i = n Chú ý rằng, việc tạo khóa KOT phía bên gửi thực trước hay đồng thời với mã hóa khối liệu tin, cịn phía nhận tin việc tạo khóa KOT giải mã khối mã cần phải thực cách đồng thời với Như vậy, thuật toán đề xuất khóa bí mật K bao gồm thành phần có chức phân biệt: K = {KS, KOT} Trong đó: KS khóa bí mật chia sẻ đối tượng tham gia trao đổi thơng tin mật, khóa sử dụng để tạo khóa KOT tương ứng với tin; KOT khóa sử dụng lần cho việc mã hóa giải mã khối liệu Từ đây, thuật tốn sinh khóa mã hóa mơ tả sau: Input: P = {P1,P2,…,Pi,…,Pn}, KS Output: C = { C0,C1,C2,…,Ci,…,Cn} C0 = MD5(P||KS) K1 = MD5(C0||KS) C1 = P1  K1 C[0] = C0, C[1] = C1 for i = to n begin Ki = MD5(Pi-1|| Ki-1|| Pi-1|| Ki-1) Ci = Pi  Ki C[i] = Ci end return C Ghi chú: - Phép toán  phép cộng modulo (XOR) hai chuỗi bit - Phép toán “||” phép ghép nối tiếp xâu bit Thuật tốn sinh khóa, giải mã xác thực bao gồm bước thực sau: Input: C = {C0,C1,C2,…,Ci,…,Cn}, KS Output: M = {M1,M2,…,Mi,…,Mn}, true/false K1 = MD5(C0||KS) M1 = C1  K1 M[1] = M1 for i = to n do: begin Ki = MD5(Pi-1|| Ki-1|| Pi-1|| Ki-1) Mi = Ci  Ki M[i] = Mi end M0 = MD5(M||KS) if (M0 = C0) then return {M,true} else return {M,false} Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 12 - 2020 89 Công nghệ thông tin Ghi chú: - Nếu kết trả {M,true} tin xác thực nguồn gốc tính tồn vẹn Ngược lại, kết trả {M,false} M tin giả mạo C bị thay đổi trình truyền tin - Nếu mã truyền xác từ bên gửi sang bên nhận khối liệu C0 bên nhận C0 bên gửi Mặt khác, bên nhận bên gửi có thuật tốn sinh khóa với liệu vào C0 khóa bí mật chia sẻ KS nên khóa mã hóa khóa giải mã sử dụng lần (KOT) hồn tồn giống Vì thế, tin sau giải mã rõ trước mã hóa Nên điều kiện M0 = C0 thỏa mãn hoàn toàn 2.2 Một số đánh giá độ an tồn hiệu thực thuật tốn đề xuất 2.2.1 Mức độ an toàn Tương tự mật mã OTP, khóa KOT sử dụng lần, dạng công thám mã vi sai, thám mã tuyến tính, nói chung tất dạng công biết đến với mã khối điển DES, AES, khơng có tác dụng với thuật tốn đề xuất Ở đây, mức độ an toàn thuật tốn đề xuất đánh giá qua khả kháng lại số dạng công sau: - Tấn cơng khóa bí mật chia sẻ: Tấn cơng khóa bí mật chia sẻ thực dựa vào cách tạo giá trị C0: C0 = MD5(P||KS) tính giá trị khóa K1: K1 = MD5(C0||KS) Với việc tạo C0 K1 kích thước LK khóa bí mật chia sẻ hồn tồn chọn tùy biến khoảng: Lmin≤LK≤2L-LP Trong đó: Lmin kích thước tối thiểu đủ để bảo đảm ngưỡng an tồn (≥ 80 bit); LP kích thước rõ L kích thước lớn liệu đầu vào hàm băm MD5 Khi đó, liệu đầu vào hàm MD5 ghép nối tiếp xâu bit KS với P trường hợp tạo giá trị C0 ghép nối tiếp xâu bit KS với C0 trường hợp cần tạo khóa K1 Từ thấy rằng, khóa bí mật chia sẻ trước bên gửi – nhận hồn tồn giữ bí mật khơng giá trị mà cịn bí mật kích thước khóa Dễ thấy với đặc tính chiều hàm băm, với kích thước KS tham số bí mật việc tìm KS từ C0, P K1 (K1 biết P cơng khai) hồn tồn bất khả thi - Tấn cơng “vét cạn” có mã: Nếu KOT chuỗi bit thực ngẫu nhiên rõ mã tạo khơng có mối quan hệ Khi đó, cơng theo kiểu “vét cạn” giải mã thành tin có nghĩa có độ dài (với mã) kẻ cơng tất tin có nghĩa sau giải mã có khả tin mã hóa (bản rõ) Nghĩa là, khơng có thông tin mã cho phép kẻ công lựa chọn rõ từ tin có nghĩa sau giải mã phương pháp “vét cạn” Ngồi ra, KOT thực ngẫu nhiên từ khóa biết kẻ cơng khơng thể tìm (suy) khóa khác tạo trước hay sau Với thuật tốn đề xuất, khóa sử dụng lần KOT tập khóa Ki tạo hàm băm MD5 theo nguyên tắc: a) khóa Ki sinh từ khóa đứng trước Ki-1 khối liệu tương ứng Pi-1; b) riêng khóa K1 tạo “mầm khóa” C0 khóa bí mật chia sẻ KS Như vậy, KOT thực chất chuỗi bit tạo việc ghép nối tiếp n chuỗi (bit) Ki, mà chuỗi Ki đoạn 90 L H Dũng, N A Việt, Đ T B Ngọc, “Thuật tốn mã hóa – xác thực … từ mật mã OTP.” Nghiên cứu khoa học công nghệ 128-bit n chuỗi bit sở tạo MD5 – đóng vai trị hàm sinh số ngẫu nhiên với giá trị khởi tạo hay “mầm” (seed) khác Nói cách khác, chuỗi bit KOT tạo từ n chuỗi bit sở khác nhau, cách lấy từ chuỗi bit sở chuỗi (m bit đầu tiên) ghép nối tiếp n chuỗi với Với việc sử dụng MD5 để tạo chuỗi bit sở, chuỗi có kích thước hạn chế Ki khơng tồn chu kỳ lặp lại chuỗi thực có tính ngẫu nhiên điều hồn tồn khẳng định Mặt khác, chuỗi bit sở tạo giá trị khởi tạo khác nên chúng độc lập với nhau, dẫn đến chuỗi Ki (128-bit chuỗi bit sở) độc lập với Như vậy, K OT ghép nối tiếp chuỗi 128-bit có tính ngẫu nhiên độc lập nhau, nên KOT không tồn chu kỳ lặp lại có tính ngẫu nhiên điều hồn tồn khẳng định Tóm lại, KOT tạo theo giải pháp đề xuất đáp ứng u cầu tính ngẫu nhiên khóa theo nghĩa: a) từ khóa biết, kẻ cơng khơng thể tìm khóa tạo trước sau đó; b) chuỗi bit khóa khơng tồn chu kỳ lặp lại, nên không tạo mối liên quan rõ mã Do đó, cơng theo dạng “vét cạn” hồn tồn kháng thuật toán đề xuất - Tấn công giả mạo: Mật mã OTP không cung cấp tính xác thực cho tin mã hóa, kẻ cơng chặn mã gửi gửi cho bên nhận tin giả mạo có kích thước với tin thật Trường hợp giải mã tin vơ nghĩa, người nhận suy đốn giả mạo thực lỗi truyền tin gây Tuy nhiên, giải mã tin có nghĩa người nhận khơng có cách xác định tin thật hay giả mạo Ở thuật toán đề xuất, việc tạo “mầm khóa” C0 từ khóa bí mật chia sẻ KS tin mã hóa nhờ hàm băm MD5 phía bên gửi: C0 = MD5(P||KS), bên nhận hồn tồn có khả nhận thực xác nguồn gốc tính tồn vẹn tin sau giải mã qua việc tính: M0 = MD5(M||KS) kiểm tra: M0 = C0 Đặc biệt là, có bên nhận thực việc xác thực này, điều yếu tố quan trọng tạo nên khả kháng lại công dạng “vét cạn” thuật toán đề xuất 2.2.2 Hiệu thực Có thể nâng cao hiệu thuật tốn đề xuất khóa KOT tạo trước thủ tục mã hóa giải mã thực Khi đó, thuật tốn sinh khóa, mã hóa giải mã mơ tả sau: + Thuật tốn sinh khóa: Input: P = {P1,P2,…,Pi,…,Pn}, KS Output: KOT = {K1,K2,…,Ki,…,Kn},C0 C0 = MD5(P||KS) KOT[1] = MD5(C0||KS) for i = to n begin KOT[i] = MD5(KOT[i-1]) end return {KOT,C0} + Thuật tốn mã hóa: Tạp chí Nghiên cứu KH&CN qn sự, Số Đặc san CNTT, 12 - 2020 91 Công nghệ thông tin Input: P = {P1,P2,…,Pi,…,Pn}, KOT = {K1,K2,…,Ki,…,Kn},C0 Output: C = {C0,C1,C2,…,Ci,…,Cn} C[0] = C0 for i = to n begin C[i] = P[i]  KOT[i] end return C + Thuật toán giải mã xác thực: Input: C = {C0,C1,C2,…,Ci,…,Cn}, KOT = {K1,K2,…,Ki,…,Kn},KS Output: M = {M1,M2,…,Mi,…,Mn}, true/false for i = to n begin M[i] = C[i]  KOT[i] end M0 = MD5(M||KS) if (M0 = C0) then return {M,true} else return {M,false} Có thể thấy rằng, hiệu thực thuật toán đề xuất đạt xấp xỉ hiệu thực mật mã OTP hai sử dụng thuật toán sinh số ngẫu nhiên Trên thực tế, nâng cao tốc độ thực thuật tốn sinh khóa cách sử dụng thuật tốn sinh số ngẫu nhiên dạng ghi dịch hồi tiếp tuyến tính – LFSR (Linear Feedback Shift Registers) [9] kiểu Shrinking Generator [11] KẾT LUẬN Bài báo đề xuất thuật tốn mã hóa – xác thực thơng tin từ việc phát triển mật mã sử dụng khóa lần OTP Với giải pháp thiết kế khóa mật từ phân khóa tách biệt, thuật tốn đề xuất có khả loại trừ tất dạng cơng hệ mã khối/khóa đối xứng biết đến, ưu điểm quan trọng kế thừa từ mật mã OTP Ngoài ra, có chế xác thực nguồn gốc tính tồn vẹn tin mã hóa, thuật tốn cịn có khả chống lại dạng công giả mạo hiệu Những ưu điểm khác thuật tốn có tốc độ hiệu thực so sánh với mật mã OTP, song khóa mật chia sẻ sử dụng nhiều lần hệ mật khóa đối xứng khác Đây đặc tính quan trọng mang lại khả ứng dụng cao cho thuật toán việc thiết kế - chế tạo thiết bị bảo mật thông tin TÀI LIỆU THAM KHẢO [1] SharadPatil , Ajay Kumar (2010) "Effective Secure Encryption Scheme(One Time Pad) [2] 92 using Complement Approach" International Journal of Computer Science & Communication, Vol.1,No.1,January-June 2010, pp.229-233 Raman Kumar,Roma Jindal, Abhinav Gupta , SagarBhalla, HarshitArora (2011) "A Secure Authentication System-Using Enhanced One Time Pad Technique" IJCSNS International L H Dũng, N A Việt, Đ T B Ngọc, “Thuật tốn mã hóa – xác thực … từ mật mã OTP.” Nghiên cứu khoa học công nghệ Journal of Computer Science and Network Security,VOL.11 No.2,February 2011 [3] SharadPatil ,ManojDevare , Ajay Kumar (2007) "Modified One Time Pad Data Security Scheme: Random Key Generation Approach" International Journal of Computer Science and Security (IJCSS) ,Volume (3): Issue(2) [4] N.J.Croft and M.S.Olivier (2005) “Using an approximated One-Time Pad to Secure ShortMessaging service(SMS)” SATNAC 2005 Proceedings [5] Jeff Connelly (1978) "A Practical Implementation of a One-time Pad Cryptosystem" CPE 456 , June 11, 2008 [6] Shannon C.E (1949) "Communication Theory of Secrecy Systems" Bell System Technical Journal, Vol.28-4, pp 656-715 [7] William Stallings (2005) "Cryptography and Network Security Principles and Practices" Prentice Hall [8] FIPS PUB 197: "Federal information processing standards publication 197" Category: computer security standard, cryptography November 2001 [9] Menezes A., Van Oorschot P and Vanstone S (1996) "Handbook of Applied Cryptography" Boca Raton, Florida: CRC Press [10] D Coppersmith, H Krawczyk, and Y Mansour, “The shrinking generator,” in CRYPTO ’93: Proceedings of the 13th annual international cryptology conference on Advances in cryptology, (New York, NY, USA), pp 22–39, Springer-Verlag New York, Inc., 1994 ABSTRACT AN ENCRYPTION AND AUTHENTICATION ALGORITHM DEVELOPED BASED ON THE ONE – TIME PAD CIPHER An encryption and authentication algorithm developed based on the One – Time Pad (OTP) cipher are proposed Advantages of the new algorithm is to have high safety and efficient implementation as OTP cipher, but the establishment, management - distribution and usage of keys are exactly the same as the Symmetric-key cryptosystems in practice (DES,AES, etc.) Keywords: Symmetric-key cryptography; Symmetric-key cryptographic algorithm; Symmetric-key cryptosystems; One - time pad algorithm; OTP cipher Nhận ngày 17 tháng 10 năm 2020 Hoàn thiện ngày 10 tháng 12 năm 2020 Chấp nhận đăng ngày 15 tháng 12 năm 2020 Địa chỉ: 1Học viện KTQS; Bộ Tư lệnh Tác chiến không gian mạng; Trường Đại học CNTT & TT, Đại học Thái Nguyên *Email: luuhongdung@gmail.com Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 12 - 2020 93 ...Công nghệ thông tin sử dụng thực tế (DES, AES,…) Ngồi ra, xác thực nguồn gốc tính tồn vẹn tin mã hóa tính bổ sung quan trọng cho thuật tốn THUẬT TỐN MÃ HĨA – XÁC THỰC THƠNG TIN 2.1 Mơ tả thuật tốn... tượng tham gia trao đổi thông tin mật, khóa sử dụng để tạo khóa KOT tương ứng với tin; KOT khóa sử dụng lần cho việc mã hóa giải mã khối liệu Từ đây, thuật toán sinh khóa mã hóa mơ tả sau: Input:... Ngọc, ? ?Thuật tốn mã hóa – xác thực … từ mật mã OTP. ” Nghiên cứu khoa học công nghệ Pi = Ci  Ki , i = n Chú ý rằng, việc tạo khóa KOT phía bên gửi thực trước hay đồng thời với mã hóa khối liệu tin,

Ngày đăng: 07/05/2021, 13:17

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

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

Tài liệu liên quan