PHÁT TRIỂN THUẬT TOÁN MẬT MÃ KHÓA CÔNG KHAI DỰA TRÊN HỆ MẬT ELGAMAL.. 1..[r]
(1)Các cơng trình nghiên cứu, phát triển ứng dụng CNTT-TT Tập V-1, Số (28), tháng 12/2012
22 Abstract: This paper proposed a new public key cryptographic algorithm based on the ElGamal cryptosystem This algorithm has the capacity of information security and anthentication information The paper also offers analysis on the safety of the proposed schemes, has shown the ability to apply it in practice.
I. ĐẶT VẤN ĐỀ
Trong thực tế, nhiều ứng dụng địi hỏi việc bảo mật thơng tin cần phải thực đồng thời với việc xác thực nguồn gốc tính tồn vẹn thơng tin Nội dung báo đề xuất thuật tốn mật mã khóa công khai phát triển dựa hệ mật ElGamal [1] cho phép giải tốt yêu cầu nêu
II. PHÁT TRIỂN THUẬT TOÁN MẬT MÃ KHĨA CƠNG KHAI DỰA TRÊN HỆ MẬT ELGAMAL
1 Hệ mật Elgamal
Hệ mật Elgama đề xuất vào năm 1984 sở tốn logarith rời rạc Sau đó, chuẩn chữ ký số DSS [2] Mỹ GOST R34.10-94
[3] Liên bang Nga phát triển
sở thuật toán chữ ký số hệ mật
1.1 Thuật tốn hình thành tham số khóa
Các thành viên hệ thống muốn trao đổi thơng tin mật với thuật tốn mật mã Elgamma trước tiên thực trình hình thành khóa sau:
1- Chọn số ngun tố đủ lớn p cho toán logarit Zp khó giải
2- Chọn g∈Z*p phần tử nguyên thủy 3- Chọn khóa mật x số ngẫu nhiên cho:
p x< <
1 Tính khóa cơng khai y theo cơng
thức: y= gxmodp
1.2 Thuật toán mã hóa
Giả sử người gửi A, người nhận B Người gửi A có khóa bí mật xA khóa cơng khai yA Người nhận B có khóa bí mật xB khóa cơng khai yB Khi đó, để gửi tin M cho B, với:
p M < ≤
0 , người gửi A thực bước sau:
1- Chọn số ngẫu nhiên k thỏa mãn: p
k < <
1 Tính giá trịR theo cơng thức: R= gk modp
2- Sử dụng khóa cơng khai B để tính: C =M×(yB)kmodp
3- Gửi mã gồm (C,R) đến người nhận B
1.3 Thuật tốn giải mã
Để khơi phục tin ban đầu (M) từ mã (C,R) nhận được, người nhận B thực bước sau:
1- Tính giá trị Z theo cơng thức: Z = RxB modp=gk.xB modp 2- Tính gía trị nghịch đảo Z:
Z−1=(gk.xB)−1modp=g−k.xBmodp 3- Khôi phục tin ban đầu (M):
M =C×Z−1modp
1.4 Tính đúng đắn của thuật toán mật mã Elgamal
Giả sử tin nhận sau trình giải mã (C,R) M , thì:
PHÁT TRIỂN THUẬT TỐN MẬT MÃ KHĨA CƠNG KHAI DỰA TRÊN HỆ MẬT ELGAMAL
DEVELOPMENT OF PUBLIC KEY CRYPTOGRAPHIC ALGORITHM BASED ON ELGAMAL CRYPTOSYSTEM
(2)Các cơng trình nghiên cứu, phát triển ứng dụng CNTT-TT Tập V-1, Số (28), tháng 12/2012
M
p g
g M
p p
g p y
M
p Z
C M
B B
B
x k x k
x k k
B
=
× × =
× ×
=
= ×
=
−
− −
mod
mod )] mod (
) mod ) ( [(
mod
Như vậy, tin nhận sau giải mã (M ) tin ban đầu (M)
1.5 Mức độ an toàn của hệ mật ElGamal
Hệ mật ElGamal bị phá vỡ khóa mật x k tính Để tính x k, cần phải giải hai toán logarit rời rạc, chẳng hạn: y= gxmodp hay: R= gk modp
Tuy nhiên, việc giải tốn logarit rời rạc việc khó [4]
Một điểm yếu bị cơng hệ mã ElGamal giá trịk bị sử dụng lại Thực vậy, giả sử giá trịkđược sử dụng để mã hóa hai tin M M* mã tương ứng (C,R) (C*,R*) Khi ta có:
p g
M g
M C C
k x k
x
mod ) ) ( ( ) (
) (
1 *
1 *
− −
× × ×
≡
≡ ×
Suy ra:
M*×C×(C*)−1 ≡Mmodp
Nghĩa là, cần biết nội dung hai tin M M* dễ dàng biết nội dung tin
Một vấn đề đặt không với hệ
ElGamal nói riêng mà với hệ mật khóa cơng khai nói chung là: Giả sử người gửi A mã hóa tin Mđược mã C gửi C cho người nhận B Sẽ có tình xảy sau:
- Người nhận B biết chắn tin nhận (M) có nguồn gốc từ người gửi A - Giả sử mã C bị thay đổi thành C*
người nhận giải mã tin M* Trường hợp này, người nhận khẳng định nội
dung tin nhận (M*) bị thay đổi hay khơng
Thuật tốn mật mã đề xuất báo phát triển sở hệ mật ElGamal
là giải pháp cho vấn đề nêu
2 Thuật toán mật mã khóa cơng khai dựa hệ mật Elgamal
2.1 Thuật tốn hình thành tham số khóa
1- Phát sinh cặp số nguyên tố p q đủ lớn và:
) ( | p−
q cho toán logarit p
Z khó giải
2- Chọn g (p−1)/qmodp
=α ,là phần tử sinh có bậc q nhóm Zp*, nghĩa là: 1<g < p và:
p
gq ≡1mod Ở đây: α số ngun thỏa mãn: 1<α <(p−1)
3- Khóa bí mật x giá trịđược chọn ngẫu nhiên khoảng: 1< x<q Khóa cơng khai yđược tính theo công thức:
y=g−xmodp
4- Lựa chọn hàm băm (hash) H:{ } aZq
*
1 ,
0
(Ví dụ: SHA-1, MD5) 2.2 Thuật tốn mã hóa
Giả sử người gửi A, người nhận B Người gửi A có khóa bí mật xA khóa cơng khai yA Người nhận B có khóa bí mật xB khóa cơng khai yB Để gửi tin M cho B, A thực bước sau:
1- Chọn số ngẫu nhiên k thỏa mãn: 1<k <q 2- Tính giá trị R theo cơng thức:
R=gk modp (1) 3- Tính thành phần E theo công thức:
(3)24Các cơng trình nghiên cứu, phát triển ứng dụng CNTT-TT Tập V-1, Số (28), tháng 12/2012
22 24 4- Tính thành phần S theo cơng thức:
S =[k+xA×E]modq (3)
5- Sử dụng khóa cơng khai B để tính thành phần C theo cơng thức:
C =M ×(yB)kmodp (4) 6- Gửi mã gồm (C,E,S) đến B
Tương tự thuật toán Elgamal, thuật toán mật mã đề xuất bị cơng sử dụng lại giá trị k Có thể khắc phục yếu điểm sử
dụng giá trị H(x||M) thay cho k, với H(.) hàm băm kháng va chạm (chẳng hạn SHA-1, MD5, ) “||” toán tử nối/xáo trộn xâu Khi thuật tốn mã hóa sẽđược mơ tả lại sau:
1- Tính giá trị R theo công thức:
R= gH(xA||M)modp 2- Tính thành phần E theo cơng thức: E= H(R||M)modq 3- Tính thành phần S theo cơng thức:
S =[H(xA||M)+xA×E]modq 4- Sử dụng khóa cơng khai yb của người nhận để
tính thành phần C theo cơng thức:
C=M×(yB)H(xA||M)modp 5- Gửi mã gồm (C,E,S) đến người nhận B 2.3 Thuật toán giải mã
Từ mã (C,E,S) nhận được, B khôi phục kiểm tra nguồn gốc tính tồn vẹn tin ban đầu (M) sau:
1- Tính giá trị R theo công thức:
R g yA E p
S
mod ) (
×
= (5)
2- Khôi phục tin ban đầu theo cơng thức: M =C×(R)xBmodp (6)
3- Tính thành phần E theo cơng thức: E =H(R ||M)modq (7) 4- Kiểm tra E =E M =M M có
nguồn gốc từ người gửi A Chú ý:
Trường hợp sử dụng giá trị H(x||M) thay cho k, thuật toán giải mã giữ nguyên
2.4 Tính đúng đắn của thuật tốn mới đề xuất
Tính đắn hệ mật đề xuất phù hợp thuật toán giải mã với thuật toán mã hóa
Điều cần chứng minh ởđây là:
Cho: p, q số nguyên tố độc lập, p
g =α(p−1)/qmod , g =α(p−1)/qmodp,
*
p Z ∈
α , xA,xB∈[1,q−1], y g xA p
A mod
−
= ,
p g
y xB
A mod
−
= , H { } aZp
*
1 ,
: ,
p g
R= H(xA||M)mod , E=H(R||M)modq,
q E
x M x H
S=[ ( A|| )+ A× ]mod ,
p y
M
C= ×( B)H(xA||M)mod Nếu:
p y
g
R =( )S×( A)Emod , p R
C
M = ×( )xBmod , E =H(R ||M)modq
thì: M =M E = E Chứng minh:
Thật vậy, thay (3) vào (5) ta có:
p g
p g
g g
p g
g
p y
g R
k
E x E x k
E x E x k
E A S
A A
A A
mod
mod mod ) (
mod ) (
=
× ×
=
× =
× =
− ×
− × +
(8)
Từ (8) suy ra: R gk p
mod
(4)Các cơng trình nghiên cứu, phát triển ứng dụng CNTT-TT Tập V-1, Số (28), tháng 12/2012 M p g g M p p g p y M p R C M B B B B x k x k x k k B x = × × = × × × = × = − mod mod } mod ) ( mod ) ( { mod ) ( (10)
Từ (8) suy ra:
R =R (11) Thay (10) (11) vào (7) ta được:
E q M R H q M R H E = = = mod ) || ( mod ) || (
Đây điều cần chứng minh
2.5 Mức độ an tồn của thuật tốn mới đề xuất
Mức độ an tồn thuật tốn đề xuất
đánh giá bằng:
1) Khả chống thám mã
2) Khả chống giả mạo nguồn gốc nội dung tin
Về khả chống thám mã, thấy mức độ an tồn thuật tốn mật mã đề xuất hoàn toàn tương đương với thuật toán Elgamal Hệ mật bị phá vỡ khóa mật x tính
được từ việc giải toán logarit rời rạc: p
g y= −xmod
hay từ:
S =[H(x||M)+x×E]modq
Khả chống giả mạo nguồn gốc nội dung tin của thuật toán mật mã đề xuất phụ thuộc vào mức độ khó việc tạo cặp
( * * *)
,
,E S
C giả mạo thỏa mãn điều kiện kiểm tra thuật toán giải mã: E =E.Xét số trường hợp sau:
- Trường hợp thứ nhất: Giả mạo nội dung nguồn gốc tin, tin nhận
( * * *)
,
,E S
C có thành phần giả mạo Rõ ràng là, để công nhận hợp lệ cặp
( *, *, *)
S E
C giả mạo cần phải thỏa mãn:
E H g yA E p M q S mod ) || ) mod ) ( (( * * * ∗ × =
với:
M C g y E p xB p
A S mod ] ) mod ) ( ( [ × ∗ × ∗ = ∗ ∗
- Trường hợp thứ hai: Giả mạo nguồn gốc không giả mạo nội dung, trường hợp mã nhận (C,E*,S*) có cặp
( * *)
,S
E giả mạo, việc giả mạo
thành công (C,E*,S*)thỏa mãn:
E* =H((gS*×(yA)E*modp)||M)modq với:
M C g y E p xB p
A S mod ] ) mod ) ( ( [ × ∗× ∗ =
- Trường hợp thứ ba: Giả mạo nội dung không giả mạo nguồn gốc, trường hợp mã nhận (C∗,E,S)
chỉ có thành phần C∗ giả mạo, việc giả mạo sẽđược chấp nhận điều kiện sauthỏa mãn:
E H g yA E p M q S mod ) || ) mod ) ( (( × ∗ =
với:
M C g y E p xB p
A S mod ] ) mod ) ( ( [ × × = ∗ ∗
Cần ý trường hợp trên, biểu thức tính M M* xB khóa bí mật người nhận mà kẻ giả mạo Mặt khác, với việc sử dụng H(.) hàm băm có tính kháng va chạm việc tìm cặp (C*,E*,S*) giả mạo khó thực
III.KẾT LUẬN
Bài báo đề xuất thuật toán mật mã khóa cơng khai phát triển dựa hệ mật ElGamal có khả đồng thời:
1) Bảo mật thông tin
(5)26Các công trình nghiên cứu, phát triển ứng dụng CNTT-TT Tập V-1, Số (28), tháng 12/2012
22 26 3) Xác thực tính tồn vẹn thơng tin
Hơn nữa, mã tạo thuật toán đề xuất bao gồm thành phần (C,E,S) độ dài khơng lớn độ dài mã thành phần (C,R) mà thuật toán ElGamal tạo Giả sử |p| = 512 bit, |q| = 160 bit độ dài mã thuật toán ElGamal tạo là: |C| + |R| = 512 bit + 512 bit = 1024 bit Trong đó, mã với khả xác thực nguồn gốc tính tồn vẹn nội dung tin thuật toán đề xuất tạo có độ dài: |C| + |E| + |S| = 512 bit + 160 bit + 160 bit = 832 bit
Những phân tích mức độ an toàn cho thấy khả
năng ứng dụng thuật tốn đề xuất hồn tồn thực tế
TÀI LIỆU THAM KHẢO
[1] T ElGamal A public key cryptosystem and a signature scheme based on discrete logarithms IEEE Transactions on Information Theory 1985, Vol IT-31, No pp.469–472
[2] National Institute of Standards and Technology, NIST FIPS PUB 186-3 Digital Signature Standard, U.S Department of Commerce,1994
SƠ LƯỢC VỀ TÁC GIẢ
LƯU HỒNG DŨNG
Sinh năm 1966 Hưng Yên
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
[3] GOST R 34.10-94 Russian Federation Standard Information Technology Cryptographic data Security Produce and check procedures of Electronic Digital Signature based on Asymmetric Cryptographic Algorithm Government Committee of the Russia for Standards, 1994 (in Russian)
[4] D.R Stinson, Cryptography: Theory and Practice, CRC Press 1995