Xem mẫu

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