Cơng nghệ thơng tin
PHÁT TRIỂN THUẬT TỐN CHỮ KÝ SỐ DỰA TRÊN
HỆ MÃ POLIGH - HELLMAN
Nguyễn Vĩnh Thái1, Lưu Hồng Dũng2
Tóm tắt: Bài báo đề xuất xây dựng thuật tốn chữ ký số trên cơ sở phát
triển hệ mã khóa bí mật Poligh – Hellman. Thuật tốn chữ ký mới đề xuất có
ngun tắc làm việc tương tự thuật tốn chữ ký RSA, song cho phép nhiều đối
tượng ký có thể cùng sử dụng chung một modulo p trong các thuật toán ký và
thuật toán kiểm tra chữ ký. Đồng thời, bài báo cũng phân tích mức độ an tồn
của lược đồ mới đề xuất, cho thấy khả năng ứng dụng của nó trong thực tế.
Từ khóa: Chữ ký số, thuật toán chữ ký số, lược đồ chữ ký số, hệ mật khóa bí mật, hệ mã Poligh – Hellman.
1. ĐẶT VẤN ĐỀ
Hệ mã Poligh – Hellman [1] được đề xuất và công bố bởi S. Poligh và M.
Hellman vào năm 1976. Đây là một hệ mã khóa bí mật nhưng được xây dựng theo
phương pháp của các hệ mã lũy thừa RSA [2] , ElGamal [3],... Hệ mã Poligh –
Hellman có phương pháp mã hóa hồn tồn như hệ mật RSA. Song do hệ mã
Poligh – Hellman sử dụng modulo p là số nguyên tố nên các khóa mã hóa và giải
mã phải được giữ bí mật hồn tồn, chính vì lý do này mà hệ mã Poligh – Hellman
là một hệ mã khóa bí mật và khơng thực hiện được chức năng của một hệ chữ ký
số như hệ mật RSA.
Bài báo đề xuất một thuật toán chữ ký số được phát triển từ hệ mã Poligh –
Hellman, lược đồ mới đề xuất có nguyên tắc làm việc tương tự lược đồ RSA, song
lại cho phép các đối tượng ký cùng sử dụng chung một modulo p nguyên tố như
các lược đồ DSA trong chuẩn DSS [4] của Hoa Kỳ hay GOST R34.10 – 94 của
Liên bang Nga [5].
2. PHÁT TRIỂN THUẬT TOÁN CHỮ KÝ SỐ DỰA TRÊN HỆ MÃ
POLIGH – HELLMAN
2.1. Hệ mã Poligh – Hellman
2.1.1. Thuật tốn hình thành tham số và khóa
Thuật tốn bao gồm các bước như sau:
[1]. Sinh số nguyên tố p lớn, mạnh.
[2]. Tính: ϕ ( p ) = ( p − 1)
[3]. Chọn khóa mã hóa e là một giá trị ngẫu nhiên thỏa mãn: 1 < e < ϕ ( p ) và:
gcd(e, ϕ ( p )) = 1
[4]. Tính khóa giải mã d theo cơng thức: d = e −1 mod ϕ ( p )
[5]. Khóa bí mật chia sẻ giữa đối tượng gửi/mã hóa và nhận/giải mã là các
tham số: p, d và e.
2.1.2 Thuật tốn mã hóa và giải mã
a) Thuật tốn mã hóa:
Thuật tốn bao gồm các bước:
[1]. Biểu diễn bản tin cần ký M thành một giá trị m tương ứng trong khoảng
[0, p – 1]
180 N.V. Thái, L.H. Dũng, “Phát triển thuật toán chữ ký số dựa trên hệ mã Poligh – Hellman.”
Cơng nghệ thơng tin
[2]. Người gửi sử dụng khóa mã hóa (e) để mã hóa bản tin:
C = m e mod p
Bản mã tương ứng với bản tin M là C.
b) Thuật toán giải mã:
Thuật toán kiểm tra bao gồm các bước:
[1]. Người nhận sử dụng khóa giải mã (d) để giải mã bản tin nhận được:
m = C d mod p
[2]. Chuyển giá trị m thành bản tin ban đầu.
Nhận xét:
Trong hệ mã Poligh – Hellman, khóa mã hóa (e) và giải mã (d) là 2 giá trị
nghịch đảo nhau theo modul ϕ ( p ) . Do p là số nguyên tố, nên ϕ ( p ) = ( p − 1) . Như
vậy, chỉ cần biết 1 trong 2 giá trị e hoặc d thì hồn tồn dễ dàng tính được giá trị
kia. Vì thế, cả 2 khóa e và d đều phải được giữ bí mật và do đó hệ Poligh –
Hellman là một hệ mã khóa bí mật. Cũng vì lí do đó, hệ Poligh – Hellman khơng
thể thực hiện vai trị của một hệ chữ ký số như hệ mật RSA.
2.2. Thuật toán chữ ký mới đề xuất MTA 17.3 – 01
Thuật toán chữ ký mới đề xuất, ký hiệu MTA 17.3 – 01, được xây dựng theo
nguyên tắc của hệ mã Poligh – Hellman bao gồm các thuật tốn hình thành tham số
và khóa, thuật tốn ký và kiểm tra chữ ký như sau:
2.2.1 Thuật tốn hình thành các tham số hệ thống và khóa
a) Hình thành các tham số hệ thống
Hình thành tham số bao gồm các bước thực hiện như sau:
[1]. Chọn số nguyên tố p lớn sao cho việc giải bài tốn logarit rời rạc trên Zp là
khó.
[2]. Lựa chọn hàm băm (hash function) H: {0,1}* a Zn , với: n < p .
[3]. Công khai: p, H(.).
Ghi chú: Trong ứng dụng thực tế, p là tham số hệ thống và do nhà cung cấp
dịch vụ chứng thực số tạo ra.
b) Thuật tốn hình thành khóa
Mỗi người dùng U hình thành cặp khóa bí mật và cơng khai của mình theo các
bước như sau:
[1]. Chọn giá trị ex thỏa mãn: 1 < ex < p − 1 và: gcd(ex , p − 1) = 1
−1
[2]. Tính giá trị: d x = (ex ) mod( p − 1)
[3]. Chọn một giá trị ngẫu nhiên t thỏa mãn: 1 < t < p − 1
(
)
t
[4]. Tính giá trị khóa e theo cơng thức: e = (ex ) mod p mod( p − 1)
Kiểm tra nếu: gcd(e, p − 1) = 1 thì thực hiện lại từ bước [3].
(
t
)
[5]. Tính giá trị khóa d1 theo công thức: d1 = (d x ) mod p mod( p − 1)
Kiểm tra nếu: gcd(d1 , p − 1) = 1 thì thực hiện lại từ bước [3].
[6]. Tính giá trị khóa d2 cơng thức:
t
t
t
t
d 2 = (d x ) mod( p − 1) × (ex ) mod( p − 1) − (d x ) mod p × (ex ) mod p mod( p − 1)
(
)
Kiểm tra nếu: gcd(d 2 , p − 1) = 1 thì thực hiện lại từ bước [3].
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 12 - 2017
181
Cơng nghệ thơng tin
[7]. Cơng khai: e ; giữ bí mât: d1, d2.
2.2.2 Thuật toán chữ ký số
a) Thuật toán ký
Thuật tốn bao gồm các bước:
[1]. Tính giá trị đại diện của bản tin cần ký (M): m = H (M)
d
[2]. Hình thành phần thứ nhất của chữ ký: S1 = (m ) 1 mod p
d
[3]. Hình thành phần thứ hai của chữ ký: S 2 = (m ) 2 mod p
[4]. Chữ ký số tương ứng với bản tin M là cặp: S = (S1, S2).
b) Thuật toán kiểm tra
Thuật tốn kiểm tra bao gồm các bước:
[1]. Tính giá trị đại diện của bản tin cần thẩm tra (M): m = H(M)
e
[2]. Tính giá trị m theo cơng thức: m = S 2 × (S1 ) mod p
[3]. Kiểm tra nếu m = m thì chữ ký là hợp lệ, nguồn gốc và tính tồn vẹn của
bản tin cần thẩm tra được cơng nhận.
2.2.4 Tính đúng đắn của thuật tốn MTA 17.3 – 01
Tính đúng đắn của thuật tốn chữ ký mới đề xuất được chứng minh qua các bổ
đề và mệnh đề sau đây:
Bổ đề 1:
Nếu: p là số nguyên tố, 1 < e < p − 1 , gcd(e, p − 1) = 1 , d = e −1 mod( p − 1) và
0 ≤ m < p thì: m e.d mod p = m .
Chứng minh:
Thật vậy, ta có: d = e −1 mod( p − 1) . Nên: d × e mod( p − 1) = 1
Do đó sẽ tồn tại số nguyên k sao cho: d × e = k × ( p − 1) + 1
Theo định lý Euler [6] ta có: m ( p −1) mod p = 1
Từ đây suy ra:
me.d mod p = m k .( p −1)+1 mod p = m k .( p −1) mod p × m mod p
(
((
)(
)
)
p −1)
= mk
mod p × m mod p = 1 × m mod p = m
Bổ đề được chứng minh.
Bổ đề 2:
Nếu: p là số nguyên tố, 1 < e < p − 1 , gcd(e, p − 1) = 1 , d = e −1 mod( p − 1) ,
t
t
0 ≤ m < p thì: m(e ) .(d ) mod p = m .
Chứng minh: Thật vậy, theo Bổ đề 1 ta có:
t
t
(
t
m(e ) .(d ) mod p = m (e.d ) mod p = m e.d mod p
(
t −1
= m (e.d ) mod p = m e.d mod p
)(
(
)(
t −2
e.d )
e.d )t −3
)(
e. d )t −1
mod p
t −2
mod p = m (e.d ) mod p
t −3
= me.d mod p
mod p = m(e.d ) mod p
............................................................................................
(
3
= m (e.d ) mod p = me.d mod p
(
= me.d mod p
)
e.d
)(
e .d ) 2
2
mod p = m(e.d ) mod p
mod p = me.d mod p = m
182 N.V. Thái, L.H. Dũng, “Phát triển thuật toán chữ ký số dựa trên hệ mã Poligh – Hellman.”
Công nghệ thông tin
Bổ đề được chứng minh.
Mệnh đề:
−1
Cho p là số nguyên tố, 1 < ex < p − 1 , gcd(ex , p − 1) = 1 , d x = (ex ) mod( p − 1) ,
0≤ m< p,
(
t
)
e = (ex ) mod p mod( p − 1) ,
1 < t < p −1,
(
)
= ((d ) mod( p − 1) × (e ) mod( p − 1) − (d ) mod p × (e ) mod p )mod( p − 1) ,
t
d1 = (d x ) mod p mod( p − 1) ,
d2
t
t
x
t
x
t
x
d
x
d
e
0 ≤ m < p , C1 = (m ) 1 mod p , C2 = (m ) 2 mod p . Nếu: m = C2 × (C1 ) mod p thì:
m =m.
Chứng minh:
Thật vậy, do:
e
m = C2 × (C1 ) mod p =
(
) (
)
e
= m d 2 mod p × m d1 mod p mod p = m d 2 × m d1 .e mod p
= m (( d x )
× m (( d
=m
t
)
mod ( p −1).( e x )t mod ( p −1)− ( d x )t mod p .(e x )t mod p mod ( p −1)
t
t
x ) mod p )mod ( p −1).(( e x ) mod p )mod ( p −1)
(d x )t .(e x )t mod ( p −1)
mod p = m
×
mod p
( d x )t . ( e x )t
mod p
(e x )t .( d x )t
Theo Bổ đề 2, ta có: m
mod n = m
Từ đây suy ra: m = m
Mệnh đề được chứng minh.
2.2.5 Mức độ an tồn của thuật tốn MTA 17.3 – 01
Mức độ an tồn của thuật tốn mới đề xuất có thể đánh giá qua các khả năng sẽ
được xem xét dưới đây:
a) Khả năng tấn cơng làm lộ khóa mật
Với thuật tốn hình thành khóa ở mục 2.1.1, hồn tồn có thể chọn giá trị của t
sao cho d1, d2 và e không nghịch đảo với nhau theo cả modulo p và modulo (p-1).
Nghĩa là từ e khơng thể tính được d1 và d2 bằng phép nghịch đảo theo modulo p và
modulo (p-1). Ngồi ra, việc tính d1, d2 bằng cách giải bài toán logarit rời rạc từ:
d
d
S1 = (m ) 1 mod p và: S 2 = (m ) 2 mod p cũng khơng khả thi, vì đây là bài tốn khó
nếu giá trị của tham số p được chọn đủ lớn.
b) Khả năng tấn cơng thuật tốn chữ ký số
Bảng 1 và 2 cho thấy các thuật toán ký và kiểm tra chữ ký của MTA 17.3 – 01
và của thuật tốn chữ ký số RSA có cơ chế làm việc tương tự như nhau. Vì vậy,
các chứng minh và đánh giá về tính an tồn của RSA cũng hồn tồn có thể áp
dụng đối với MTA 17.3 – 01.
Bảng 1. Thuật toán ký của RSA và MTA 17.3 – 01
Thuật toán
Thuật toán ký
d
RSA
S = (m ) mod n
d
MTA 17.3 – 01
S = (m ) 1 mod p
1
d
S 2 = (m ) 2 mod p
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 12 - 2017
183
Cơng nghệ thơng tin
Bảng 2. Thuật tốn kiểm tra của RSA và MTA 17.3 – 01
Thuật toán
Thuật toán kiểm tra
e
RSA
m = (S ) mod n
if m = H (M ) then S = true
e
MTA 17.3 – 01
m = S × (S ) mod p
2
1
if m = H ( M ) then (S1,S2) = true
2.2.6 Hiệu quả thực hiện của thuật toán MTA 17.3 – 01
Hiệu quả thực hiện của các thuật tốn có thể được đánh giá thơng qua số phép
toán cần thực hiện hay tổng thời gian cần thực hiện các phép tốn để hình thành và
kiểm tra chữ ký. Để so sánh hiệu quả thực hiện của thuật toán mới đề xuất với
thuật toán chữ ký số RSA, ở đây qui ước sử dụng các ký hiệu:
Texp : thời gian thực hiện một phép toán mũ modul;
Th : thời gian thực hiện hàm băm (hash function).
Tmul : thời gian thực hiện một phép toán nhân modul;
a) Thời gian thực hiện của thuật tốn RSA:
Thời gian hình thành chữ ký là: (Texp + Th)
Thời gian kiểm tra chữ ký là: (Texp + Th)
Tổng thời gian thực hiện:
(2Texp + 2Th )
b) Thời gian thực hiện của thuật toán MTA 17.3 – 01:
Thời gian hình thành chữ ký là: (2Texp + Th)
Thời gian kiểm tra chữ ký là: (Texp + Th + Tmul)
(3Texp + 2Th +Tmul )
Tổng thời gian thực hiện:
Tổng hợp thời gian thực hiện của thuật toán mới đề xuất MTA 17.3 – 01 và
của RSA được chỉ ra trên Bảng 3 như sau:
Bảng 3. Thời gian thực hiện của các thuật toán MTA 17.3 – 01 và RSA
TT
1
Thuật toán
RSA
Tổng thời gian thực hiện
2Texp + 2Th
2 MTA 17. 3 – 01
3Texp + 2Th + Tmul
Nhận xét:
Từ Bảng 3 có thể thấy rằng hiệu quả thực hiện của thuật toán MTA 17.3 – 01
thấp hơn thuật toán RSA.
3. KẾT LUẬN
Bài báo đề xuất một thuật toán chữ ký mới từ việc phát triển hệ mã khóa bí mật
Poligh – Hellman. Thuật tốn mới đề xuất có ngun tắc làm việc cơ bản như lược
đồ chữ ký RSA, song các đối tượng ký có thể sử dụng chung modulo p mà khơng
ảnh hưởng đến độ an tồn của lược đồ. Một số phân tích sơ bộ về độ an tồn và
hiệu quả thực hiện cho thấy khả năng ứng dụng của thuật tốn mới đề xuất là hồn
tồn thực tế.
TÀI LIỆU THAM KHẢO
184 N.V. Thái, L.H. Dũng, “Phát triển thuật toán chữ ký số dựa trên hệ mã Poligh – Hellman.”
Công nghệ thông tin
[1] Pohlig, S. and Hellman, M., ”An Improved Algorithm for Computing Logarithms over
[2]
[3]
[4]
[5]
[6]
[7]
[8]
GF(p) and its Cryptographic Significance,” IEEE Trans. on Info. Theory Vol. IT24(1) pp. 106-110 (Jan. 1978).
R. L. Rivest, A. Shamir, L. M. Adleman, “A Method for Obtainỉng Digital Signatures
and Public Key Cryptosystems”, Commun. of the ACM, Voi. 21, No. 2, 1978, pp. 120126.
ElGamal T., “ A public key cryptosystem and a signature scheme based on discrete
logarithms”. IEEE Transactions on Information Theory. 1985, Vol. IT-31, No. 4.
pp.469–472.
National Institute of Standards and Technology, NIST FIPS PUB 186-3. Digital
Signature Standard, US Department of Commerce, 1994.
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).
R. Kenneth, “Elementary Number Theory and its Applications”, AT & T Bell
Laboratories, 4th Edition, ISBN: 0-201- 87073-8, 2000.
Mark Stamp, Richard M. Low , “Applied cryptanalysis: Breaking Ciphers in the Real
World”. John Wiley & Sons, Inc., ISBN 978-0-470-1.
D. Boneh, “Twenty Years of Attacks on the RSA Cryptosystem, Notices of the
American Mathematical Society”, 46(2), 1999, pp. 203-213.
DEVELOPING NEW DIGITAL SIGNATURE ALGORITHM BASED ON
POLIGH – HELLMAN EXPONENTIATION CIPHER
ABSTRACT— This paper proposes new digital signature algorithm based on the Poligh – Hellman
exponentiation cipher. The proposed signature algorithm has the same working principle as the RSA signature
algorithm, but allows multiple signatures to share the modulo p in signed algorithms and signature verification
algorithms. In addition to information security capabilities, the new algorithm has the ability to validate the
integrity and origin of the message is confidential.
KEYWORDS — Public - Key Cryptosystem, Secret - Key Cryptosystem, Digital Signature Algorithm, Poligh
– Hellman exponentiation cipher.
Nhận bài ngày 16 tháng 8 năm 2017
Hoàn thiện ngày 26 tháng 11 năm 2017
Chấp nhận đăng ngày 28 tháng 11 năm 2017
Địa chỉ:
1
2
Viện CNTT, Viện KH và CN QS
Khoa CNTT, Học viện KTQS.
Email:
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 12 - 2017
185