Bài viết đề xuất một giao thức thiết lập khóa cho các hệ thống mật mã khóa bí mật; giao thức này có khả năng thiết lập và xác thực khóa; phân tích về tính an toàn của giao thức được đề xuất, đã chỉ ra khả năng áp dụng nó vào thực tế. Mời các bạn cùng tham khảo bài viết để nắm chi tiết hơn nội dung nghiên cứu.
Các cơng trình nghiên cứu, phát triển ứng dụng CNTT-TT Tập V-1, Số x (2x), tháng x/201x XÂY DỰNG GIAO THỨC XÁC LẬP KHÓA CHO CÁC HỆ MẬT MÃ KHĨA BÍ MẬT CONSTRUCTION OF KEY ESTABLISHMENT PROTOCOL FOR SECRET KEY CRYPTOGRAPHY SYSTEMS Lưu Hồng Dũng Abstract: This paper proposed a key establishment protocol for secret key cryptography systems This protocol has the capacity of key establishment and anthentication The paper also offers analysis on the safety of the proposed protocol, has shown the ability to apply it in practice Từ khóa: Key Establishment, Key Agreement Protocol, Key Transport Protocols, Secret Key Cryptography System, Public Key Cryptography System I ĐẶT VẤN ĐỀ Phương pháp xác lập khóa cho hệ mật mã khóa bí mật đề xuất W Diffie M Hellman vào năm 1976 gọi giao thực tế Tuy nhiên, việc phát triển phương pháp để ứng dụng thực tế yêu cầu cần thiết đặt Bài báo đề xuất phương pháp cho phép bảo đảm đồng thời việc thiết lập khóa cho hệ mật mã khóa bí mật xác thực đối tượng tham gia truyền thơng, chống kiểu công giả mạo thực tế II XÂY DỰNG GIAO THỨC XÁC LẬP KHÓA Giao thức xác lập khóa đề xuất bao gồm thuật tốn: thuật tốn thỏa thuận khóa xây dựng sở toán logarit rời rạc trường hữu hạn nguyên tố thuật toán chuyển thức trao thỏa thuận Diffie-Hellman (Diffie- khóa, mà thực chất thuật tốn mật mã khóa Hellman Key Agreement Protocol) (gọi tắt công khai phát triển từ thuật tốn thỏa thuận phương pháp Diffie-Hellman), sau mở khóa thứ Cả thuật tốn sử dụng lĩnh vực khoa học mật mã: mật mã chung thuật tốn hình thành tham số hệ khóa cơng khai Hiện sử dụng phổ biến với nhiều biến thể khác Nhược điểm phương pháp Diffie-Hellman khơng có chế xác thực đối tượng tham gia thống khóa Thuật tốn hình thành tham số hệ thống khóa cơng khai 1- Chọn số nguyên tố lớn p phần tử sinh * truyền thơng phương pháp khơng có khả g nhóm Zp cho tốn logarit rời chống lại số dạng công giả mạo rạc Zp khó giải thực tế Một số phương pháp phát triển sau ECDH (Elliptic Curve Diffie-Hellman Key Exchange), MQV (Menezes-Qu-Vanstone Protocol), ECMQV (Elliptic Curve Menezes-QuVanstone Protocol) ứng dụng phổ biến * 2- Chọn khóa riêng (x) số nguyên thỏa mãn: < x < p 3- Khóa cơng khai tương ứng (y) tính theo cơng thức: Các cơng trình nghiên cứu, phát triển ứng dụng CNTT-TT y = (g ) mod p 3- Gửi giá trị RA cho đối tượng B x 4- Chứng nhận công khai y Cơ quan chứng Tập V-1, Số x (2x), tháng x/201x thực – CA (Certificate Authority) đáng tin cậy Thuật toán thỏa thuận khóa 2.1 Mơ tả thuật tốn Các đối tượng tham gia trao đổi thông tin mật + Đối tượng B thực bước: 1- Chọn ngẫu nhiên giá trị kB thỏa mãn: < kB < p 2- Hình thành thơng tin thỏa thuận khóa RB theo công thức: RB = (g ) B mod p k thống chọn tham số p g, chọn 3- Gửi giá trị RB cho đối tượng A khóa riêng tính khóa cơng khai theo Bước 2: Thuật tốn hình thành tham số hệ thống 1- Đối tượng A hình thành khóa mã hóa theo khóa cơng khai Mục Giả sử đối tượng gửi/mã cơng thức: hóa thơng tin ký hiệu A có khóa riêng xA, K A = (RB ) A × ( y B ) A mod p khóa cơng khai tương ứng A yA; Đối tượng nhận/giải mã thông tin ký hiệu B có khóa riêng xB khóa cơng khai yB Các đối tượng A B thống sử dụng thuật tốn mật mã khóa bí mật (ví dụ: DES, AES, ) để mã hóa thơng tin k x 2- Đối tượng B hình thành khóa giải mã theo công thức: K B = (R A ) B × ( y A ) B mod p k x 2.2 Tính đắn thuật tốn đề xuất (bản tin, thông báo, tài liệu, ) cần trao đổi với Điều cần chứng minh là: cho p số nhau, phương pháp để thiết lập khóa bí ngun tố, g phần tử sinh nhóm Z ∗p , mật chung cho phép A mã hóa thơng tin B giải mã thông tin, bao gồm bước thực sau: y A = (g ) A mod p , x < x A , xB < p , Bước 1: y B = (g ) B mod p , < kA < p , + Đối tượng A thực bước: RA = (g ) A mod p , < kB < p , RB = (g ) B mod p Nếu: x 1- Chọn ngẫu nhiên giá trị kA thỏa mãn: < kA < p 2- Hình thành thơng tin thỏa thuận khóa RA theo cơng thức: RA = (g ) A mod p k k k K A = (RB ) A × ( y B ) A mod p , k x K B = (RA ) B × ( y A ) B mod p thì: K A = K B k Chứng minh: x Các công trình nghiên cứu, phát triển ứng dụng CNTT-TT Thật vậy, do: và: K A = (RB ) A × ( y B ) A mod p k ( =g ×g y B = (g ) B mod p x = g k B mod p k A k B Tập V-1, Số (27), tháng 5/201x ) × (g kA x A xB xB x mod p ) xA mod p mod p (4) Việc giải (1) (2) hay (3) (4) thực chất giải toán logarit rời rạc trường hữu hạn nguyên tố Z ∗p Mặt khác, do: K B = (RA ) B × ( y A ) B mod p k ( = g k A mod p x ) × (g kB xA mod p Như vậy, khả chống cơng làm lộ khóa ) xB mod p = g k A k B × g x A x B mod p bí mật dùng chung thuật toán đề xuất phụ thuộc vào mức độ khó tốn logarit rời rạc b) Khả chống giả mạo nguồn gốc khóa bí mật Từ suy ra: K A = K B Đây điều cần chứng minh Để mạo danh A, kẻ giả mạo cần phải tính 2.3 Mức độ an tồn thuật tốn đề xuất Mức độ an tồn thuật tốn đề xuất khóa riêng (xA) A Việc tính xA thực cách giải (2) Tương tự, mạo danh B tính xB nhờ việc giải (4) đánh giá qua khả sau: Như ra, việc giải (2) (4) thực chất giải a) Chống cơng làm lộ khóa bí mật toán logarit rời rạc Từ: K A = (RB ) A × ( y B ) A mod p k và: K B = (RA ) × ( y A ) mod p kB Những phân tích cho thấy khả chống x xB giả mạo nguồn gốc khóa bí mật dùng chung cho thấy, tính khóa bí mật dùng chung cho bên tham gia truyền thông biết kA xA hoặc: kB xB Các giá trị tính nhờ việc giải: RA = (g ) A mod p k phụ thuộc vào mức độ khó tốn logarit rời rạc c) Tính bí mật phía trước A Việc biết khóa riêng dài hạn A sau q trình thỏa thuận khóa khơng cho phép kẻ cơng (1) và: tính lại khóa bí mật dùng chung thuật tốn tạo trước y A = (g ) A mod p x (2) d) Tính bí mật phía trước riêng biệt A B Hoặc: RB = (g ) B mod p k Nếu biết khóa riêng dài hạn A biết (3) khóa riêng dài hạn B sau q trình thỏa Các cơng trình nghiên cứu, phát triển ứng dụng CNTT-TT thuận khóa, kẻ cơng khơng thể tính lại khóa bí mật dùng chung thuật tốn tạo trước e) Tính bí mật phía trước tương hỗ Khi biết khóa riêng dài hạn A B sau Tập V-1, Số x (2x), tháng x/201x RB = (g ) B mod p S B = ( y B ) A mod p k x gửi cho C 3- C chọn giá trị kC thỏa mãn: < k C < p tính giá trị RC SC theo cơng thức: q trình thỏa thuận khóa kẻ cơng RC = (g ) C mod p khơng thể tính lại khóa bí mật dùng gửi cho A k SC = ( y B ) C mod p chung thuật tốn tạo trước Bước 2: 2.4 Thuật tốn thỏa thuận khóa mở rộng 1- A tính giá trị RAC theo cơng thức: Thuật tốn thỏa thuận khóa mở rộng (thuật toán mở rộng) đề xuất cho trường hợp mà có số đối tượng tham gia thỏa thuận khóa lớn Xét trường hợp số đối tượng 3, với trường hợp có số đối tượng tham gia thỏa thuận khóa lớn thực hồn tồn x RAC = (RC ) A mod p , gửi cho B k 2- B tính giá trị RB theo công thức: RAB = (RA ) B mod p , gửi cho C k 3- C tính giá trị RBC theo công thức: RBC = (RB ) C mod p , gửi cho A k tương tự giá sử đối tượng cần thỏa thuận khóa Bước 3: bí mật chung A, B C, đối tượng có 1- A tính khóa bí mật KA theo cơng thức: khóa riêng tương ứng xA, xB, xC khóa cơng khai tương ứng yA, yB, yC Các đối tượng thỏa thuận khóa bí mật chung qua bước sau: K A = (RBC ) A × (SC ) A mod p k x 2- B tính khóa bí mật KB theo cơng thức: K B = (RAC ) B × (S A ) B mod p k x 3- C tính khóa bí mật KC theo cơng thức: Bước 1: 1- A chọn giá trị kA thỏa mãn: < k A < p tính giá trị RA SA theo công thức: RA = (g ) A mod p S A = ( yC ) A mod p k x gửi cho B 2- B chọn giá trị kB thỏa mãn: < k B < p tính giá trị RB SB theo cơng thức: KC = (RAB ) C × (S B ) C mod p k x Tính đắn thuật tốn thỏa thuận khóa mở rộng đề xuất chứng minh sau: Điều cần chứng minh là: K A = K B = KC Thật vậy, ta có: Các cơng trình nghiên cứu, phát triển ứng dụng CNTT-TT K A = (RBC ) A × (SC ) A mod p k ( k ( = g k B mod p = (g ) A k k B k C theo Thuật tốn hình thành tham số hệ x = (RB ) C mod p ) ) × (( y kA k A kC ( B )x mod p C × g x B mod p × (g ) x A x B xC ) ) xA x a xC mod p mod p mod p K B = (RAC ) × (S A ) mod p ( = (RC ) mod p ( = g k C mod p = (g ) A k k B k C ) ) × (( y ) kB k A k B ( xA C mod p × g xC mod p ứng A yA; Đối tượng B có khóa riêng xB ) ) tin K, với: < K < p gửi cho đối tượng B, xB mod p x A x B xC mod p trình thực bao gồm bước sau: Bước 1: Đối tượng B thực hiện: mod p 1- Chọn ngẫu nhiên giá trị kB thỏa mãn: Và: < kB < p KC = (RAB ) C × (S B ) C mod p k ( x = (RA ) B mod p ( tượng A có khóa riêng xA, khóa cơng khai tương chọn khóa bí mật cho việc mã hóa giải mã thơng xB kA thống khóa cơng khai Mục Giả sử đối khóa cơng khai yB Giả sử rằng, đối tượng A Tương tự, ta có: kB Tập V-1, Số (27), tháng 5/201x k = g mod p kA = (g ) k A k B k C ) ) × (( y )x kC k B kC × (g ) ( × g A xA x A x B xC B mod p mod p ) ) xC x B xC mod p mod p mod p Từ suy ra: K A = K B = K C Mức độ an tồn thuật tốn mở rộng phân tích đánh giá tương tự với thuật tốn thỏa thuận khóa đề xuất Mục 2.3 Thuật tốn chuyển khóa 3.1 Mơ tả thuật toán Ở giả thiết rằng, đối tượng tham gia trao đổi thông tin A B thống sử 2- Tính giá tri RB theo công thức: RB = (g ) B mod p k 3- Gửi giá trị RB cho đối tượng A Bước 2: Đối tượng A thực hiện: 1- Chọn ngẫu nhiên giá trị kA thỏa mãn: < kA < p 2- Tính giá trị C theo cơng thức: C = K × (RB ) A × ( y B ) A mod p k x 3- Tính giá trị R theo công thức: R = (g ) A mod p k dụng thuật toán mật mã khóa bí mật (ví dụ: 4- Gửi mã (C,R) cho đối tượng B DES, AES, ) để mã hóa thông tin (bản tin, thông Bước 3: báo, tài liệu, ) cần trao đổi với Các đối Từ mã (C,R) nhận được, đối tượng B thực tượng A B lựa chọn tham số dùng chung p việc giải mã (C,R) để nhận khóa bí mật (K) g, chọn khóa riêng tính khóa cơng khai theo cơng thức sau: Các cơng trình nghiên cứu, phát triển ứng dụng CNTT-TT K = C × (R ) −kB × (yA ) − xB Tập V-1, Số x (2x), tháng x/201x mức độ an toàn thuật tốn chuyển khóa đề xuất đánh giá qua khả sau: mod p 3.2 Tính đắn thuật tốn đề xuất Điều cần chứng minh là: cho p số a) Chống cơng làm lộ khóa bí mật nguyên tố, g phần tử sinh nhóm Z ∗p , Từ: C = K × (RB ) A × ( y B ) A mod p y A = (g ) A mod p , x < x A , xB < p , y B = (g ) B mod p , < k A, kB < p , RB = (g ) B mod p , 1< K < p, x k x k − xB − xB mod p cho xA kB xB Các giá trị tính y A = (g ) A mod p (5) R = (g ) A mod p (6) và: mod p thì: K = K k Hoặc: Thật vậy, do: R = (g ) A mod p y B = (g ) B mod p (7) RB = (g ) B mod p (8) x k và: Nên: K = C × (R ) −k B ( × ( yA ) − xB k mod p ) ( = K × (RB ) A × ( yB ) A mod p × g k A mod p k × g mod p xA x ) − xB ) −kB mod p = ) × (g mod p) mod p) )mod p = × (g mod p ) × (g mod p) × = (K × g ×g mod p)mod p = × (g ×g ( × ( yA ) bên tham gia truyền thông biết kA Chứng minh: ( −kB thấy, tính khóa bí mật dùng chung cho Nếu: × (yA ) −kB K = C × (R ) và: x R = (g ) A mod p K = C × (R ) x nhờ việc giải: C = K × (RB ) A × ( y B ) A mod p , k k ( = K × g k B mod p kA − k A k B xB xA − xB x A k B k A − k A k B x A xB − xB x A = K × g k B k A × g x A x B × g − k A k B × g − x B x A mod p =K 3.3 Mức độ an tồn thuật tốn đề xuất Tương tự thuật tốn thỏa thuận khóa Mục 2, Như Mục 2.3.a, khả chống cơng làm lộ khóa bí mật dùng chung thuật toán đề xuất phụ thuộc vào mức độ khó tốn logarit rời rạc b) Khả chống giả mạo nguồn gốc khóa bí mật Để mạo danh A, kẻ giả mạo cần phải tính khóa riêng (xA) A Việc tính xA thực cách giải (5) Tương tự, mạo danh B tính xB nhờ việc giải (7) Như vậy, khả chống giả mạo nguồn gốc khóa Các cơng trình nghiên cứu, phát triển ứng dụng CNTT-TT gửi cho A bí mật dùng chung (K) phụ thuộc vào mức độ khó tốn logarit rời rạc Tập V-1, Số (27), tháng 5/201x Bước 2: 1- A tính giá trị RAC theo cơng thức: 3.4 Thuật tốn chuyển khóa mở rộng RAC = (RC ) A mod p , gửi cho B k Thuật tốn chuyển khóa mở rộng (thuật toán mở rộng) đề xuất cho trường hợp mà có 2- B tính giá trị RB theo công thức: số đối tượng lớn Xét trường hợp số đối RAB = (RA ) B mod p , gửi cho C k tượng 3, với trường hợp có số đối tượng tham gia thỏa thuận khóa lớn 3- C tính giá trị RBC theo cơng thức: RBC = (RB ) C mod p , gửi cho A k thực hoàn toàn tương tự giá sử đối tượng cần thỏa thuận khóa bí mật chung A, B C, có Bước 3: khóa riêng xA, xB, xC khóa cơng khai 1- A mã hóa khóa bí mật KA theo cơng thức: CK = K A × (RBC ) A × (SC ) A mod p , gửi tương ứng yA, yB, yC Giả sử đối tượng A tạo k trước khóa bí mật dùng chung K với: < K < p chuyển cho đối tượng B C, x cho B C 2- B giải mã CK để nhận khóa bí mật KA theo thuật toán bao gồm bước sau: công thức: Bước 1: K B = C K × (R AC ) −kB 1- A chọn giá trị kA thỏa mãn: < k A < p tính giá trị RA SA theo cơng thức: mod p công thức: xA gửi cho B − xB 3- C giải mã CK để nhận khóa bí mật KA theo RA = (g ) mod p S A = ( yC ) mod p kA × (S A ) KC = CK × (RAB ) − kC × (S B ) − xC mod p Có thể dễ dàng thấy rằng: 2- B chọn giá trị kB thỏa mãn: < k B < p tính giá trị RB SB theo cơng thức: K B = KC = K A Thật vậy, ta có: RB = (g ) mod p S B = ( y A ) mod p K B = CK × (RAC ) gửi cho C = K A × (RBC ) A × (SC ) A mod p × (RAC ) kB xB 3- C chọn giá trị kC thỏa mãn: < k C < p − kB ( k × (S A ) ( × (S A ) − xB ( × (RC ) A ( k −k B ) × (( y ) mod p) mod p) × (( y ) mod p) = RC = (g ) C mod p x ) mod p = = K A × (RB ) C mod p SC = ( yB ) C mod p mod p x tính giá trị RC SC theo công thức: k − xB k kA xA xC B −k B xA C − xB mod p ) Các cơng trình nghiên cứu, phát triển ứng dụng CNTT-TT ( ( = K A × g kB mod p ( × g kC mod p ( × ((g ) ) −k A k B = K A × (g ) A ( k A kC × g xB mod p ( × g xC mod p × (g ) A k kB kC −k A kB kC ) x xB xC × (g ) − x A xB xC = K A × (g ) A k kB kC + x A xB xC × (g ) −( k A k B kC + xA xB xC ) ) ) − xA xB ) x A xC mod p ) mod p trường hữu hạn nguyên tố × - Khóa mật dùng chung xác thực nguồn gốc, nên thuật tốn đề xuất có khả Tương tự, ta có: KC = CK × (RAB ) ( điểm sau: tính khó giải tốn logarit rời rạc mod p mod p mod p = K A chống lại dạng cơng giả mạo × (SB ) − kC khóa Các thuật tốn đề xuất có đặc - Mức độ an tồn thuật tốn phụ thuộc vào mod p × ) Tập V-1, Số x (2x), tháng x/201x − xC mod p - Khi bị lộ khóa riêng dài hạn (xA,xB) ) = K A × (RBC ) × (SC ) mod p × (RAB ) đối tượng tham gia thỏa thuận khóa (A,B) kẻ × (SB ) cơng khơng tính khóa bí mật dùng kA − xC ( ( xA mod p = ) × (( y ) mod p) mod p) mod p) × (( y ) mod p) mod p = = K A × (RB ) C mod p ( × (RA ) B k ( ( k kA × g mod p kA ( ( × ((g ) ) − k B kC A k A k C ( ( × g x B mod p × g mod p xA = K A × (g ) ( k A k B k C + x A x B xC ) − k A k B k C + x A x B xC ) = K A × (g ) − ( k A k B k C + x A x B xC ) - Có thể mở rộng thuật toán cho trường ) ) − x B xC ) x A xC mod p ) hợp có số lượng đối tượng tham gia thỏa thuận khóa lớn mod p = Chứng minh tính đắn đánh mod p × giá mức độ an tồn thuật tốn đề xuất mod p mod p cho thấy khả ứng dụng thực ( k A k B k C + x A x B xC ) × (g ) chung (K) thuật tốn tạo trước − xC xB ) xA xC B − kC = K A × g k B mod p ( − kC ) × mod p = K A Từ suy ra: K A = K B = K C Mức độ an tồn thuật tốn mở rộng phân tích đánh giá tương tự với thuật tốn chuyển khóa đề xuất Mục 3.3 III KẾT LUẬN Bài báo đề xuất giao thức xác lập khóa cho hệ mật mã khóa bí mật, bao gồm thuật tốn thỏa thuận khóa thuật tốn chuyển tế TÀI LIỆU THAM KHẢO [1] W Diffie & M Hellman, New Directions in Cryptography, IEEE Trans On Info Theory, IT-22(6):644-654, 1976 [2] William Stallings, Cryptography and Network Security Principles and Practices, Fourth Edition, Prentice Hall PTR, p 592, 2005 [3] D.R Stinson, Cryptography: Theory and Practice, CRC Press 1995 Các cơng trình nghiên cứu, phát triển ứng dụng CNTT-TT _ SƠ LƯỢC VỀ TÁC GIẢ LƯU HỒNG DŨNG Sinh năm 1966 Tốt nghiệp đại học ngành Vô tuyến Điện tử Học viện Kỹ thuật Quân năm 1989 Hiện công tác khoa CNTT- Học viện KTQS Hướng nghiên cứu: An tồn bảo mật thơng tin Email: luuhongdung@gmail.com Tập V-1, Số (27), tháng 5/201x ... giá tương tự với thuật tốn chuyển khóa đề xuất Mục 3.3 III KẾT LUẬN Bài báo đề xuất giao thức xác lập khóa cho hệ mật mã khóa bí mật, bao gồm thuật tốn thỏa thuận khóa thuật tốn chuyển tế TÀI LIỆU... yC Các đối tượng thỏa thuận khóa bí mật chung qua bước sau: K A = (RBC ) A × (SC ) A mod p k x 2- B tính khóa bí mật KB theo cơng thức: K B = (RAC ) B × (S A ) B mod p k x 3- C tính khóa bí mật. .. nhận/giải mã thơng tin ký hiệu B có khóa riêng xB khóa cơng khai yB Các đối tượng A B thống sử dụng thuật tốn mật mã khóa bí mật (ví dụ: DES, AES, ) để mã hóa thơng tin k x 2- Đối tượng B hình thành khóa