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

Phương pháp xác lập khóa cho các hệ mật mã

khóa bí mật được đề xuất đầu tiên bởi W. Diffie và

M. Hellman vào năm 1976 và được gọi là giao

thức trao thỏa thuận Diffie-Hellman (DiffieHellman Key Agreement Protocol) (gọi tắt là

phương pháp Diffie-Hellman), sau đó đã mở ra

một lĩnh vực mới về khoa học mật mã: mật mã

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

điểm cơ bản của phương pháp Diffie-Hellman là

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ả

năng chống lại một số dạng tấn công giả mạo trong

thực tế. Một số phương pháp đã được phát triển

sau đó như ECDH (Elliptic Curve Diffie-Hellman

Key Exchange), MQV (Menezes-Qu-Vanstone

Protocol), ECMQV (Elliptic Curve Menezes-QuVanstone Protocol). đã được ứng dụng phổ biến

trong thực tế. Tuy nhiên, việc phát triển các

phương pháp mới để ứng dụng trong thực tế vẫn

luôn là yêu cầu cần thiết được đặt ra.

Bài báo đề xuất 2 phương pháp cho phép bảo

đả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

truyền thông, vì thế sẽ chống được các kiểu tấn

công giả mạo trong thực tế.

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 trang 1

Trang 1

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 trang 2

Trang 2

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 trang 3

Trang 3

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 trang 4

Trang 4

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 trang 5

Trang 5

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 trang 6

Trang 6

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 trang 7

Trang 7

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 trang 8

Trang 8

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 trang 9

Trang 9

pdf 9 trang duykhanh 6700
Bạn đang xem tài liệu "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", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: 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

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
à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 x A
 K A = (RB ) × (yB ) mod p 
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 = R kB × y xB mod p 
B thống nhất sử dụng một thuật toán mật mã khóa B ( A ) ( 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 
 1 < x , x < p , y = ()g xA mod p , 
mã thông tin, bao gồm các bước thực hiện như sau: A B A
 xB
 Bước 1: yB = (g) mod p , 1 < k A < p , 
 + Đối tượng A thực hiện các bước: k A
 RA = (g) mod p , 1 < kB < p , 
 1- Chọn ngẫu nhiên một giá trị kA thỏa mãn: 
 k B
 RB = (g) mod p . Nếu: 
 1 < k A < p . 
 k A x A
 K A = (RB ) × (yB ) mod p , 
 2- Hình thành thông tin thỏa thuận khóa RA 
 kB xB
 theo công thức: KB = (RA ) × (yA ) mod p thì: K A = K B . 
 k A
 RA = ()g mod p Chứng minh: 
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 x
 K = R A × y A mod p xB
 A ()B (B ) yB = (g) mod p (4) 
 k k A x x A
 = ()g B mod p × (g B mod p)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 xB
 KB = ()RA × (yA )mod p Như vậy, khả năng chống tấn công làm lộ khóa 
 k k B x xB bí mật dùng chung của thuật toán mới đề xuất phụ 
 = ()g A mod p × (g A mod p)mod p 
 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 .xB 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. 
 k A x A Những phân tích trên cho thấy khả năng chống 
 Từ: K A = ()RB × (yB )mod p 
 giả mạo nguồn gốc của khóa bí mật dùng chung 
 k B xB
 và: KB = ()RA × (yA )mod p 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 k và x hoặc: 
 A A 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 
 R = g k A mod p (1) 
 A () 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 đó. 
 x A d) Tính bí mật về phía trước riêng biệt đối với 
 yA = ()g mod p (2) 
 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 
 R = ()g k B mod p (3) 
 B khóa riêng dài hạn của B sau một quá trình thỏa 
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 k B x A
 RB = (g) mod p và SB = ()yB mod p rồi 
đượ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< kC < p và 
 e) Tính bí mật về phía trước tương hỗ 
 tính giá trị R và S theo công thức: 
 Khi biết cả khóa riêng dài hạn của A và B sau C C
 kC xC
một quá trình thỏa thuận khóa thì kẻ tấn công cũng RC = (g) mod p và SC = ()yB mod p 
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 k A
 RAC = (RC ) mod p , rồi gửi cho B. 
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 
 R = (R )k B mod p , rồi gửi cho C. 
hơn 2. Xét trường hợp số đối tượng là 3, với các AB A
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: 
 kC
khóa lớn hơn 3 cũng có thể thực hiện hoàn toàn RBC = (RB ) mod p , rồi gửi cho A. 
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 x A
 K A = (RBC ) × (SC ) mod p 
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 = R k B × S xB mod p 
như sau: B ( AC ) ( A )
Bước 1: 3- C tính khóa bí mật KC theo công thức: 
 kC xC
1- A chọn một giá trị kA thỏa mãn: 1 < k A < p và KC = (RAB ) × (SB ) mod p 
 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ở 
 k A x A rộng được đề xuất có thể chứng minh như sau: 
 RA = ()g mod p và SA = ()yC mod p rồi 
 Điều cần chứng minh ở đây là: 
 gửi cho B. 
 K A = K B = KC . 
2- B chọn một giá trị kB thỏa mãn: 1 < k B < p và 
 Thật vậy, ta có: 
 tính giá trị RB và SB theo công thức: 
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 x A mình theo Thuật toán hình thành các tham số hệ 
 K A = ()RBC × (SC )mod p
 k A x A thống và khóa công khai ở Mục 1. Giả sử đối 
 = ()()R kC mod p × ()()y xC mod p mod p
 B B 
 k .k x .x tượng A có khóa riêng là xA, khóa công khai tương 
 = ()g k B mod p A C × (g xB mod p)a C mod p
 ứng của A là yA; Đối tượng B có khóa riêng là xB 
 = ()g k A .k B .kC × ()g x A .xB .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 xB
 KB = ()(RAC × SA )mod p tin là K, với: 1 < K < p và gửi cho đối tượng B, 
 k k B x xB
 = ()()R A mod p × ()()y A mod p mod p quá trình thực hiện bao gồm các bước như sau: 
 C C 
 k .k x .x .x
 = ()g kC mod p A B × (g xC mod p)A B C mod p Bước 1: 
 = ()g k A .k B .kC mod p Đối tượng B thực hiện: 
 1- Chọn ngẫu nhiên một giá trị k thỏa mãn: 
Và: B 
 kC xC 1 < k B < p . 
 KC = ()RAB × (SB )mod p
 k x 2- Tính giá tri RB theo công thức: 
 k B C xB C
 = ()()RA mod p × ()()yA mod p mod p
 k B
 k .k x .x R = (g) mod p 
 = ()g k A mod p B C × (g x A mod p)B C mod p B
 3- Gửi giá trị R cho đối tượng A. 
 = ()g k A .k B .kC × ()g x A .xB .xC mod p B
 Bước 2: 
Từ đây suy ra: K = K = K . 
 A B 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 < k A < 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 × (R )(kA × y )xA mod p 
3.1 Mô tả thuật toán B B
 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 
 k
gia trao đổi thông tin A và B cùng thống nhất sử R = (g) A mod p 
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: 
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 −kB × (y )− xB mod p mức độ an toàn của thuật toán chuyển khóa mới đề 
 A 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 
 ∗ k A x A
nguyên tố, g là phần tử sinh của nhóm Z p , Từ: C = K × (RB )(× yB )mod p 
 xA −k B − xB
1 < x A , xB < p , y A = ()g mod p , và: K = C × (R)(× yA )mod p cho 
 xB thấy, có thể tính được khóa bí mật dùng chung cho 
yB = ()g mod p , 1 < k A , k B < p , 
 các bên tham gia truyền thông nếu biết được kA và 
 k B
RB = ()g mod p , 1 < K < p , xA hoặc kB và xB . Các giá trị này có thể tính được 
 k A x A nhờ việc giải: 
C = K × ()RB × (yB )mod p , 
 x A
 k y = (g) mod p (5) 
R = ()g A mod p . Nếu: A
 và: 
 −kB − xB
K = C × ()R × (yA ) mod p thì: K = K . 
 R = g k A mod p (6) 
 Chứng minh: ( )
 Thật vậy, do: Hoặc: 
 x
 k A B
 R = ()g mod p yB = (g) mod p (7) 
 Nên: và: 
 −k −x
 K = C × R B × y B mod p k B
 () (A ) RB = (g) mod p (8) 
 −k
 k A x A k A B
 = (K × ()RB × (yB )mod p)× (g mod p)Như đã chỉ ra ở Mục 2.3.a, khả năng chống tấn 
 − x
 × ()g x A mod p B mod p = công làm lộ khóa bí mật dùng chung của thuật toán 
 k x mới đề xuất ở đây cũng phụ thuộc vào mức độ khó 
 = K × ()gkB mod p A × (g xB mod p)A mod p
 ( ) của bài toán logarit rời rạc. 
 × ()g−k A .kB mod p × (g−xB .x A )mod p =
 b) Khả năng chống giả mạo về nguồn gốc khóa 
 k .k x .x
 = (K × g B A × g A B mod p)× bí mật 
 × g−k A .kB × g−xB .x A mod p mod p = Để mạo danh A, kẻ giả mạo cần phải tính được 
 () 
 kB .k A x A .xB −k A .kB −xB .x A
 = K × g × g × g × g 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, 
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: 
Thuật toán chuyển khóa mở rộng (thuật toán mở k A
 RAC = (RC ) mod p , rồi gửi cho B. 
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 
 R = (R )k B mod p , rồi gửi cho C. 
tượng là 3, với các trường hợp có số đối tượng AB A
 3- C tính giá trị R theo công thức: 
tham gia thỏa thuận khóa lớn hơn 3 cũng có thể BC
 kC
thực hiện hoàn toàn tương tự. giá sử các đối tượng RBC = (RB ) mod p , rồi gửi cho A. 
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 k A x A
 CK = K A × (RBC )(× SC )mod p , rồi gửi 
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: 
Bước 1: −k B − xB
 KB = CK × (RAC ) × ()S A 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ị R và S theo công thức: 
 A A công thức: 
 k A x A
 RA = ()g mod p và SA = ()yC mod p rồi −kC − xC
 KC = CK × (RAB )(× SB )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ị R và S theo công thức: 
 B B Thật vậy, ta có: 
 k x
 B B −k −x
 RB = ()g mod p và SB = ()yA mod p rồi B B
 KB = CK ×(RAC ) ×(SA ) mod p
 gửi cho C. kA xA −kB
 = ()K A × ()RBC ×(SC )mod p × ()RAC
 −xB
3- C chọn một giá trị kC thỏa mãn: 1< k < p và 
 C × ()SA mod p =
 k x
 tính giá trị R và S theo công thức: kC A xC A
 C C = (K A × ()()RB mod p × ()()yB mod p mod p)
 −k −x
 kC xC kA B xA B
 RC = ()g mod p và SC = ()yB mod p × ()()RC mod p × ()()yC mod p =
 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 .k x .x
 kB A C xB A C khóa. Các thuật toán mới đề xuất có những đặc 
 = (K A × ()g mod p × (g mod p) mod p)
 −k .k −x .x điểm cơ bản như sau: 
 × ()g kC mod p A B × (g xC mod p)A B mod p
 - Mức độ an toàn của thuật toán phụ thuộc vào 
 kA.kB .kC xA.xB .xC
 = (K A ×()g ×()g mod p)×
 tính khó giải của bài toán logarit rời rạc trong 
 × (()g −kA.kB .kC × (g)−xA.xB .xC mod p)mod p
 trường hữu hạn nguyên tố. 
 = K × ()g kA.kB .kC +xA.xB .xC ×
 A - Khóa mật dùng chung được xác thực về 
 −()k .k .k +x .x .x
 × ()g A B C A B C 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 −xC
 KC = CK ×()RAB ×(SB )modp - Khi bị lộ khóa riêng dài hạn (xA,xB) của các 
 k A xA −kC
 = (KA ×()RBC ×(SC )modp)×()RAB đối tượng tham gia thỏa thuận khóa (A,B) thì kẻ 
 −xC tấn công cũng không tính được khóa bí mật dùng 
 ×()SB modp =
 k x
 kC A xC A chung (K) do thuật toán đã tạo ra trước đó. 
 = (KA ×()()RB modp ×()()yB modp modp)
 −k −x - Có thể mở rộng thuật toán cho các trường 
 ×()()R kB modp C ×()()y xB modp C modp =
 A A hợp có số lượng các đối tượng tham gia thỏa thuận 
 k .k x .x
 = K × gkB modp A C × g xB modp A C modp 
 ( A ()() ) khóa lớn hơn 2. 
 k −kB .kC x −xB .xC
 ×()g A modp ×(g A modp)modp = Chứng minh về tính đúng đắn và những đánh 
 ()k A .kB .kC +xA .xB .xC
 = (KA ×()g modp)× giá về mức độ an toàn của thuật toán mới đề xuất 
 −()k .k .k +x .x .x
 ×()()g A B C A B C modp modp đã cho thấy khả năng ứng dụng của nó trong thực 
 ()k A .kB .kC +xA .xB .xC
 = KA ×()g × tế. 
 −()k A .kB .kC +xA .xB .xC
 ×()g modp = KA
 TÀI LIỆU THAM KHẢO. 
 Từ đây suy ra: . 
 K A = KB = KC [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 
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. 

File đính kèm:

  • pdfxay_dung_giao_thuc_xac_lap_khoa_cho_cac_he_mat_ma_khoa_bi_ma.pdf