1. Trang chủ
  2. » Công Nghệ Thông Tin

Một giải pháp xây dựng hệ mật khóa đối xứng

5 6 0

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

THÔNG TIN TÀI LIỆU

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

MỘT GIẢI PHÁP XÂY DỰNG HỆ MẬT KHÓA ĐỐI XỨNG @ Lưu Hồng Dũng1, Nguyễn Ánh Việt2 Học viện Kỹ Thuật Quân sự; Bộ Tư Lệnh Tác chiến không gian mạng Bài viết đề xuất giải pháp xây dựng thuật tốn mật mã khóa đối xứng từ việc phát triển hệ mã sử dụng khóa lần OTP (One-Time Pad) Ưu điểm thuật toán xây dựng theo giải pháp đề xuất tính an tồn hiệu thực kế thừa mật mã OTP Đồng thời việc thiết lập, quản lý - phân phối sử dụng khóa thuật tốn đề xuất dựa hệ mã khóa đối xứng ứng dụng thực tế (DES, AES…) GIỚI THIỆU - Loại trừ dạng công biết hệ mật khóa đối xứng thực tế; - Tích hợp hiệu thiết bị có kích thước nhỏ, dung lượng nhớ lực tính tốn hạn chế Giải pháp để xây dựng thuật toán mật mã với yêu cầu đặt đề xuất dựa việc phát triển hệ mã sử dụng OTP có độ an toàn hiệu thực cao [1-5] OTP Gilbert Vernam đề xuất vào năm 1917 Joseph Mauborgne tiếp tục hồn thiện sau Ngun tắc 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) Lý thuyết Claude E Shannon [6] OTP loại mật mã có độ mật hoàn thiện (perfect secrecy) Hiện tại, OTP xem loại mật mã an tồn tuyệt đối, khơng thể phá vỡ Điều đặc biệt cơng vét cạn (brute force) 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ã khó triển khai thực tế Số (057) 2020 l Tạp chí AN TỒN THÔNG TIN 21 GIẢI PHÁP - CÔNG NGHỆ Việc xây dựng thuật toán mật mã hiệu cao cho mục đích thiết kế, chế tạo thiết bị bảo mật thông tin phục vụ lĩnh vực an ninh - quốc phòng kinh tế - xã hội điều kiện có ý nghĩa thực tiễn to lớn Với mục tiêu đặt ra, thuật toán xây dựng nhằm đáp ứng yêu cầu: trực tiếp bit rõ với bit tương ứng khóa mật Nguyên nhân việc tạo khóa phải thực ngẫu nhiên, nhằm loại trừ nguy an toàn bao gồm: 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 Trong [8], sở nghiên cứu cơng bố trước đó, tác giả đề xuất thuật tốn mã hóa phát triển dựa nguyên lý mật mã OTP sử dụng hàm băm (Hash Function) để sinh dịng khóa, thuật tốn có tính hiệu thực cao, dễ cài đặt phần cứng phần mềm Trong báo này, nhóm tác giả đề xuất giải pháp nhằm cho phép tạo biến thể mật mã OTP, thừa kế số ưu điểm OTP, song việc thiết lập, quản lý – phân phối sử dụng khóa đồng với hệ mã khóa đối xứng sử dụng thực tế 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 xây dựng theo giải pháp Điểm khác giải pháp đề xuất so với thuật toán [8] chuỗi khóa tạo chủ yếu thuật tốn sinh số ngẫu nhiên có kết hợp với hàm băm mà khơng hồn tồn hàm băm [8], điều cho phép nâng cao tốc độ thực thuật tốn mã hóa sử dụng thuật toá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 [10] GIẢI PHÁP XÂY DỰNG THUẬT TỐN MẬT MÃ KHĨA ĐỐI XỨNG HIỆU NĂNG CAO Nguyên tắc xây dựng thuật toán mật mã theo giải pháp đề xuất Mã hóa giải mã theo khối với OTP Bản rõ P mã hóa dạng n khối liệu Pi có kích thước m bit: P = {P1,P2,…,Pi,…,Pn}, |Pi| = m bit, i = n Khóa sử dụng lần KOT bao gồm n khóa 22 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| = m 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 Do đó, mã C bao gồm n khối liệu Ci có kích thước m bit: C = {C1,C2,…,Ci,…,Cn}, |Ci| = m bit, 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 đủ m bit, việc bù thêm thực tương tự hệ mã khối khác (DES, AES,…) Sử dụng khóa khác để mã hóa/giải mã tin 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 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 F1: C0 = F1(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 tạo từ hàm băm F1 Tiếp đến, hai bên gửi nhận tạo khóa K1 từ KS C0 nhờ hàm F1 sau: K1 = F1(C0, KS) Phía gửi tin, khóa Ki sinh thuật tốn F2 từ khóa đứng trước Ki-1 khối liệu tương ứng Pi-1: Ki = F2(Pi-1, Ki-1), i = n Ở đây, F2 hàm sinh số ngẫu nhiên – RNG (Random Number Generator), phân tích phần Số (057) 2020 l Tạp chí AN TỒN THƠNG TIN sau (mục Mức độ an tồn) cho thấy F2 hồn tồn hàm sinh số giả ngẫu nhiên – PRNG (PseudoRandom Number Generator) mà khơng thiết phải thực RNG Phía nhận tin, sau tạo: K1 = F1(C0,KS) giải mã khối đầu tiên: P1 = C1 K1 Từ đây, khóa tạo theo quy tắc với phía bên gửi: Ki = F2(Pi-1, Ki-1), i = n Với khóa Ki tạo việc giải mã khối mã thực hiện: Pi = Ci Input: C = {C0,C1,C2,…,Ci,…,Cn}, KS Output: M = {M1,M2,…,Mi,…,Mn}, true/false [1] K1 = F1(C0,KS) [2] M1 = C1 ⊕ K1 [3] M[1] = M1 [4] for i = to n do: begin Ki = F2(Mi-1,Ki-1) Mi = Ci ⊕ Ki Ki, i = n M[i] = Mi Như giải pháp đề xuất, khóa bí mật K bao gồm hai 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 Cịn KOT khóa sử dụng lần cho việc mã hóa giải mã tin Thuật tốn bên người gửi Thuật tốn sinh khóa mã hóa bao gồm bước thực mô tả sau: Input: P = {P1,P2,…,Pi,…,Pn}, KS Output: C = {C0,C1,C2,…,Ci,…,Cn} [1] C0 = F1(P,KS) [2] K1 = F1(C0,KS) K1 [4] C[0] = C0, C[1] = C1 [5] for i = to n begin end [5] M0 = F1(M,KS) [6] if (M0 = C0) then return {M,true} else return {M,false} 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 nhau, 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ì 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 Ki = F2(Pi-1, Ki-1) MỘT SỐ ĐÁNH GIÁ VỀ GIẢI PHÁP XÂY DỰNG THUẬT TOÁN MẬT MÃ ĐƯỢC ĐỀ XUẤT Ci = Pi Mức độ an toàn Ki C[i] = Ci Mức độ an tồn thuật tốn mật mã khóa đối xứng xây dựng theo giải pháp đề xuất đánh giá qua khả chống lại số dạng công sau: end [6] return C Ghi chú: - Phép toán ⊕ phép cộng modulo (XOR) hai chuỗi bit Thuật toán bên người nhận - 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 = F1(P,KS) tính giá trị khóa K1: K1 = F1(C0,KS) Số (057) 2020 l Tạp chí AN TỒN THƠNG TIN 23 GIẢI PHÁP - CƠNG NGHỆ [3] C1 = P1 Thuật tốn sinh khóa, giải mã xác thực bao gồm bước thực sau: 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 F1 Khi đó, liệu đầu vào hàm F1 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 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 hoà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 rằng, 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 hồn tồn khơng 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ệ Tấn cơng vét cạn giải mã thành tin 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 Nghĩa là, khơng có thơng tin mã cho phép kẻ công lựa chọn rõ số tin có nghĩa sau giải mã cơng 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 Theo giải pháp đề xuất, khóa sử dụng lần KOT tập khóa Ki tạo hàm băm F1 hàm sinh số ngẫu nhiên F2 theo nguyên tắc: Thứ nhất, khóa Ki sinh từ khóa đứng trước Ki-1 khối liệu tương ứng Pi-1 F2; Thứ hai, riêng khóa K1 tạo “mầm khóa” C0 khóa bí mật chia sẻ KS hàm băm F1 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 m bit n chuỗi bit sở tạo F1 F2 với giá trị khởi tạo hay “mầm” 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 24 (m bit đầu tiên) ghép nối tiếp n chuỗi với Nếu chuỗi bit sở tạo hàm băm hàm sinh số giả ngẫu nhiên có chu kỳ lặp lại lớn kích thước chuỗi Ki chọn nhỏ chu kỳ lặp lại chuỗi bit sở chuỗi thực có tính ngẫu nhiên theo nghĩa: a) không tồn chu kỳ lặp lại; b) từ số bit cho trước khơng thể tính bit tiếp theo, điều hồn tồn khẳng định Mặt khác, chuỗi Ki tạo theo: Ki = F2(Pi-1, Ki-1), nên điều kiện để Ki tạo thành chuỗi giá trị lặp lại Pi phải tạo thành chuỗi lặp lại, mà thực tế điều lại khó xảy Do đó, với giải pháp đề xuất KOT đáp ứng yê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ã Từ đó, thuật tốn xây dựng theo giải pháp đề xuất hồn tồn kháng lại công vét cạn - Tấn công giả mạo: 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ã rõ 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 để khẳng định tin thật hay tin giả mạo Với giải pháp đề xuất, việc tạo “mầm khóa” C0 từ khóa bí mật chia sẻ KS rõ nhờ hàm băm F1 phía bên gửi: C0 = F1(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 = F1(M,KS) kiểm tra điều kiện: M0 = C0 Hiệu thực Có thể nâng cao hiệu thuật toán xây dựng theo giải pháp đề 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: Số (057) 2020 l Tạp chí AN TỒN THƠNG TIN + Thuật tốn sinh khóa: dạng cơng hệ mã khối, ưu điểm quan trọng kế thừa từ OTP Ngồ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 thực tế Những ưu điểm khác thuật toán tốc độ hiệu thực so sánh với hệ mã OTP, song khóa mật chia sẻ sử dụng nhiều lần hệ mã khóa đối xứng khác Đây đặc tính quan trọng mang lại khả cho thuật tốn ứng dụng việc thiết kế, chế tạo thiết bị bảo mật thông tin Input: P = {P1,P2,…,Pi,…,Pn}, KS Output: KOT = {K1,K2,…,Ki,…,Kn}, C0 [1] C0 = F1(P,KS) [2] KOT[1] = F1(C0,KS) [3] for i = to n begin KOT[i] = F2(KOT[i-1]) end [4] return {KOT,C0} + Thuật toán mã hóa: Input: P = {P1,P2,…,Pi,…,Pn}, C0, KOT = {K1,K2,…,Ki,…,Kn} Output: C = {C0,C1,C2,…,Ci,…,Cn} [1] C[0] = C0 [2] for i = to n begin C[i] = P[i] ⊕ KOT[i] end [3] return C TÀI LIỆU THAM KHẢO SharadPatil, Ajay Kumar (2010) Effective Secure Encryption Scheme (One Time Pad) 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 Journal of Computer Science and Network Security, Vol.11 No.2 + 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 [1] for i = to n do: begin M[i] = C[i] ⊕ KOT[i] end [2] M0 = F1(M,KS) [3] if (M0 = C0) then return {M,true} else return {M,false} 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) N.J.Croft and M.S.Olivier (2005) “Using an approximated One-Time Pad to Secure ShortMessaging service(SMS)” SATNAC 2005 Proceedings Shannon C.E (1949) Communication Theory of Secrecy Systems Bell System Technical Journal, Vol.28-4, pp.656-715 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 Tuy nhiên, do: KOT[i] = F2(KOT[i-1]) Nên tiềm tàng khả tồn chu kỳ lặp lại chuỗi KOT KẾT LUẬN Bài báo đề xuất giải pháp xây dựng thuật tốn mật mã khóa đối xứng 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 xây dựng theo giải pháp có khả loại trừ số William Stallings (2005) Cryptography and Network Security Principles and Practices Prentice Hall Marcio Ricardo Rosemberg, Daniel Schwabe, Marcus Poggi, A Hybrid Block and Stream Cipher Encryption Scheme Based on Collision Resistant Hash Functions Monografias em Ciờncia da Computaỗóo n 13/17, ISSN: 0103-9741 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 (1994), “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 Số (057) 2020 l Tạp chí AN TỒN THƠNG TIN 25 GIẢI PHÁP - CƠNG NGHỆ Jeff Connelly (1978) A Practical Implementation of a One-time Pad Cryptosystem CPE 456 ... F2(Pi-1, Ki-1) MỘT SỐ ĐÁNH GIÁ VỀ GIẢI PHÁP XÂY DỰNG THUẬT TOÁN MẬT MÃ ĐƯỢC ĐỀ XUẤT Ci = Pi Mức độ an toàn Ki C[i] = Ci Mức độ an tồn thuật tốn mật mã khóa đối xứng xây dựng theo giải pháp đề xuất... kiểu Shrinking Generator [10] GIẢI PHÁP XÂY DỰNG THUẬT TỐN MẬT MÃ KHĨA ĐỐI XỨNG HIỆU NĂNG CAO Ngun tắc xây dựng thuật toán mật mã theo giải pháp đề xuất Mã hóa giải mã theo khối với OTP Bản rõ... Như giải pháp đề xuất, khóa bí mật K bao gồm hai 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

Ngày đăng: 07/05/2021, 14:09

Xem thêm:

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

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

TÀI LIỆU LIÊN QUAN

w