Xây dựng lược đồ chữ ký số dựa trên bài toán logarit rời rạc kết hợp khai căn trên Zₚ

40  
Nguyễn Đức Thụy, Bùi Tất Hiếu, Lưu Hồng Dũng  
XÂY DỰNG LƯỢC ĐỒ CHỮ KÝ SỐ DỰA TRÊN BÀI TOÁN  
LOGARIT RỜI RẠC KẾT HỢP KHAI CĂN TRÊN Zp  
A CONSTRUCTION METHOD OF DIGITAL SIGNATURE SCHEME BASED ON  
THE DISCRETE LOGARIT COMBINING FINDING ROOT PROBLEM ON ZP  
Nguyễn Đức Thụy1, Bùi Tất Hiếu2, Lưu Hồng Dũng3  
1Trường Cao đẳng Kinh tế - Kỹ thuật Tp.HCM; thuyphulam2013@gmail.com  
2Trường Cao đẳng Du lịch Hà Nội; buitathieu@yahoo.com  
3Học viện Kỹ thuật Quân sự; luuhongdung@gmail.com  
Tóm tắt - Các lược đồ chữ ký số thường được xây dựng dựa trên  
một số bài toán khó đã được nghiên cứu kỹ lưỡng. Các DSS được  
biết đến nhiều nhất dựa trên ba bài toán khó sau đây: 1). Bài toá n  
phân tích một số nguyên lớn ra các thừa số nguyên tố: n = p.q,  
ở đây p và q là các số nguyên tố lớn; 2). Bài toán logarit rời rạc  
trên trường hữu hạn nguyên tố Zp; 3). Bài toán logarit rời rạc trong  
một nhóm các điểm trên một số đường cong eliptic. Bài báo đề  
xuất xây dựng lược đồ chữ ký số dựa trên bài toán logarit rời rạc  
kết hợp khai căn trên Zp, đây là một dạng bài toán khó mới, thuộc  
lớp các bài toán chưa có cách giải về mặt toán học. Việc xây dựng  
lược đồ chữ ký số dựa trên tính khó của bài toán logarit rời rạc kết  
hợp khai căn này cho phép nâng cao độ an toàn của thuật toán.  
Abstract - The digital signature schemes (DSSes) are based on some  
well investigated hard computational problems. The most efficient  
known DSSes are based on the following three difficult problems:  
1). Factorization of a composite number n = p.q, where p and q are two  
large primes; 2). Findingdiscrete logarithm modulo large prime number  
Zp; 3). Finding discrete logarithm in a group of points of some elliptic  
curve. The paper proposes building a digital signature scheme based  
on the difficulty of the discrete logarithm combining finding root problem  
on Zp,.This problem is a new difficult problem type, the problems class  
without mathematical solution. Building a digital signature scheme  
based on the difficulty of the discrete logarithm combining finding root  
problem allows us to improve the security of the algorithm.  
Từ khóa - Chữ ký số; thuật toán chữ ký số; lược đồ chữ ký số; bài  
toá n Logarit rời rạc; bài toán khai căn  
Key words - Digital signature; Digital signature algorithm; Digital  
Signature Scheme (DSS); Discrete Logarithm Problem (DLP);  
Finding Root Problem (FRP)  
* , hãy tìm các  
Zp  
1. Đặt vấn đề  
Với mỗi cặp số nguyên dương  
(
y1, y2  
)
Trong [9], đề xuất một phương pháp xây dựng thuật  
toán chữ ký số dựa trên tính khó của việc giải bài toán  
logarit rời rạc trên Zp. Ưu điểm của phương pháp mới đề  
xuất là từ đó có thể triển khai một lớp thuật toán chữ ký số  
cho các ứng dụng khác nhau. Tuy nhiên, độ an toàn của các  
thuật toán chữ ký được xây dựng theo phương pháp này chỉ  
được đảm bảo bởi độ khó của việc giải bài toán logarit rời  
rạc – DLP trên Zp. Do đó, nếu có một giải thuật thời gian  
đa thức cho bài toán này (DLP) thì tính an toàn của các  
thuật toán sẽ bị phá vỡ hoàn toàn. Nâng cao độ an toàn cho  
các thuật toán chữ ký số dựa trên tính khó của việc giải  
đồng thời 2 bài toán khó là một hướng tiếp cận đang nhận  
được nhiều sự quan tâm của các nhà nghiên cứu. Trong [10  
17] các tác giả đã đề xuất một số thuật toán chữ ký xây  
dựng trên đồng thời hai bài toán phân tích số và logarit rời  
rạc. Trong bài báo này, cũng với mục đích nâng cao độ an  
toàn cho các thuật toán chữ ký số, nhóm tác giả tiếp tục  
phát triển phương pháp đề xuất trong [9] trên cơ sở tính  
khó giải của một bài toán mới, ở đây được gọi là bài toán  
logarit rời rạc kết hợp khai căn trên Zp, ký hiệu: DLRP  
(Discrete Logarithm combining Finding Root Problem).  
Đây là một dạng bài toán khó lần đầu được đề xuất và ứng  
dụng cho việc xây dựng thuật toán chữ ký số và có nhiều  
triển vọng cho phép xây dựng các thuật toán phù hợp với  
các ứng dụng thực tế đòi hỏi độ an toàn cao.  
số x1 và x2 thỏa mãn hệ phương trình sau:  
x1+x2  
(
x1  
x1  
)
mod p = y1  
(x1 )  
1.x2  
(
)
mod p = y2  
Về mặt hình thức, nếu x1 là hằng số, x2 là biến cần tìm  
thì bài toán trên sẽ trở thành bài toán logarit rời rạc trên  
Zp DLP. Tuy nhiên, ở đây x1 cũng là ẩn số như x2, vì thế  
các giải thuật cho DLP không thể áp dụng với bài toán này.  
Tương tự, nếu x2 là hằng số và x1 là biến thì bài toán trên  
lại trở thành bài toán khai căn trên Zp FRP [18]. Song ở  
đây x2 cũng là biến cần tìm, do vậy các giải thuật cho FRP  
cũng không áp dụng được đối với bài toán mới đề xuất.  
Trong toán học, bài toán trên thực chất là một hệ phương  
trình phi tuyến và thuộc lớp các bài toán chưa có cách giải,  
các giải thuật cho DLP và FRP hiện tại là không áp dụng  
được với bài toán này. Điều đó cho thấy, bài toán mới đề  
xuất ở đây có mức độ khó cao hơn DLP và FRP.  
2.2. Xây dựng lược đồ chữ ký dựa trên tính khó của bài  
toán mới đề xuất  
2.2.1. Thuật toán sinh khóa  
Ở phương pháp xây dựng thuật toán chữ ký mới đề  
xuất, bài toán logarit rời rạc kết hợp khai căn trên Zp được  
sử dụng để hình thành cặp khóa bí mật và công khai của  
các đối tượng ký. Trong đó, p là tham số hệ thống (tham số  
miền) do nhà cung cấp dịch vụ tạo ra, ở đây p là số nguyên  
tố cần phải được chọn sao cho việc giải bài toán DLP là  
khó. Cặp (x1, x2) là khóa bí mật và (y1,y2) là các khóa công  
khai tương ứng của mỗi đối tượng ký trong hệ thống. Để  
tạo khóa x1 mỗi thực thể ký cần tạo trước số nguyên tố q  
2. Bài toán khó mới và phương pháp xây dựng thuật  
toán chữ ký số  
2.1. Bài toán logarit rời rạc - khai căn trên Zp  
Bài toán logarit rời rạc kết hợp khai căn trên trường Zp  
được đề xuất ở đây có thể phát biểu như sau:  
ISSN 1859-1531 - TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ ĐẠI HỌC ĐÀ NẴNG, VOL. 17, NO. 7, 2019  
41  
Z*p  
. Khóa x1 được tạo  
thỏa mãn: q|(p – 1) và một số  
Nên:  
v = uy 1 y + x + x y 1 E +  
p1  
q
(
)
(
2 ) ( )  
(
1
2
1
1
theo:  
.
mod p  
x1 =  
+ y 1 x 1 x Z modq  
(
)
(
)
)
1
1
2
Khóa x2 là một giá trị được chọn ngẫu nhiên trong  
khoảng (1, q). Sau đó, các khóa công khai được tạo ra từ  
Hay:  
(x1, x2) theo (1.1):  
v = y 1 u y + x E +  
(
)
(
1
2
1
(x1 )  
1.x2  
x1+x2  
(8)  
(9)  
y1 =  
(
x1  
)
mod p  
y2 =  
(
x1  
)
mod p  
+ x E + x 1 Z mod q  
,
(1)  
(
)
(
)
2
1
)
Chú ý rằng, tham số q cũng được sử dụng với vai trò của  
một khóa bí mật tương tự như x1 x2 trong thuật toán ký.  
Mặt khác, từ (2), (3) và (4) ta có:  
(
v +u  
)
mod q = k  
Thuật toán sinh khóa có thể được mô tả lại như trên  
Bảng 1 sau đây:  
Từ (8) và (9) ta có:  
Bảng 1. Thuật toán sinh khóa  
uy 1 y + x + x y 1 E +  
(
)
(
)
(
)
(
(
1
2
1
2
1
Input: p – số nguyên tố, lq – độ dài (tính theo bit) của số  
nguyên tố q.  
Output: q, x1, x2, y1, y2.  
+ x 1 x y 1 Z +u modq = k  
(
)
(
)
)
1
2
1
Hay:  
1. generate q: len(q) = lq, q|(p-1)  
u  
y
1 y +1 + x + x y 1 E +  
(
)
(
) ( )  
2. select α:  
(
)
1  
p  
(
1
2
1
2
1
(10)  
p1  
)
x1 ( / q mod p  
+
x
1 x2 y 1 Z modq = k  
(
)
(
)
)
(
)
1
1
3.  
4. if (x1 = 1) then goto [2]  
Từ (10), suy ra:  
5. select x2:  
1x2 q  
1.x2  
u =  
y
1 y +1 1 k x + x y 1 E  
(
)
(
(
)
(
)
x1 +x2  
(
)
(
x1  
)
1
2
1
2
1
6.  
,
y1  
(
x1  
)
mod p  
y2  
(
x1  
)
mod p  
x 1 x y 1 Z mod q  
(
)
(
)
)
7. return {q, x1, x2, y1, y2}  
1
2
1
Hay:  
Chú thích:  
- len(.): Hàm tính độ dài (theo bit) của một số nguyên.  
- p: Tham số hệ thống/tham số miền.  
- q, x1, x2: Khóa bí mật.  
u =  
y
1 y +1 1 k x y 1 E  
(
)
(
( )  
(
)
1
2
1
1
(11)  
x y 1 E + x 1 Z modq  
(
)
(
( )  
)
2
1
1
)
Từ (11) và (8), có thể tính thành phần thứ nhất của chữ  
ký theo (2):  
- y1, y2: Khóa công khai của đối tượng ký.  
2.2.2. Thuật toán ký  
u
R =  
(
x1  
)
mod p  
Giả sử (R,S) là chữ ký lên bản tin M, u là 1 giá trị trong  
khoảng (1,q) và R được tính từ u theo công thức:  
và thành phần thứ 2 theo (3):  
u mod p  
S =  
(
x1  
v mod p  
)
(2)  
R =  
S được tính từ v theo công thức:  
S = x1  
v mod p  
Ở đây: v cũng là 1 giá trị trong khoảng (1,q).  
Cũng giả thiết rằng phương trình kiểm tra của lược đồ  
(
x1  
)
Từ đây thuật toán ký được mô tả trên Bảng 2 như sau:  
Bảng 2. Thuật toán ký  
(3)  
(
)
Input: p, q, x1, x2, y1, y2, M.  
Output: (R,S).  
1.  
E H(M)  
2. select k:  
có dạng:  
1k q  
k mod p  
y1  
y2  
(
S
)
(
R
)
(
y1  
)
E   
(
y2  
R.S mod p mod p  
)
Z  
u   
(
x1  
)
3.  
4.  
Với:  
k
(
(
y1  
)
y1  
1 y2 +1  
)
1   
(
k x1   
(
y1  
)
1 E −  
và:  
(4)  
RS mod p =  
(
x1  
)
.
mod p  
E = H(M)  
x2   
(
y1  
)
1   
1   
(
E +  
(
x1  
)
1 Z  
)
)  
mod q  
k Zq*  
Trong đó: H(.) là hàm băm và  
v   
(
)
(
u y2 + x1 E +  
1 Z
)
)
mod q  
5.  
k
(
x1  
)
mod p = Z  
Đặt:  
Khi đó có thể đưa phương trình kiểm tra về dạng:  
(5)  
(6)  
+ x2   
(
E +  
x1  
( )  
u mod p  
v mod p  
6.  
7.  
R  
S  
(
x1  
)
y1  
y2  
Z
)
(
S
)
(
R
)
(
y1  
)
E   
(
y2  
mod p  
x1  
( )  
Từ (1), (2), (3) và (6) ta có:  
8. return (R,S)  
v. y1  
u. y2  
(
x1 +x2  
)
(
(
x1  
)
1 .x2  
)
(7)  
(
x1  
Từ (7) suy ra:  
vy uy + x + x E + x 1 x Z modq  
)
(
x1  
)
(
x1  
)
.E   
(
x1  
)
.Z mod p  
Chú thích:  
M {0,1}  
- M: bản tin cần ký, với:  
.
(
(
)
(
)
)
1
2
1
2
1
2
- (R,S): chữ ký của U lên M.  
42  
Nguyễn Đức Thụy, Bùi Tất Hiếu, Lưu Hồng Dũng  
2.2.3. Thuật toán kiểm tra chữ ký  
Từ (2), (3), (5), (8), (11) và (14) ta lại có:  
Z = RS mod p =  
x
u x v mod p  
) ( )  
1 1  
Thuật toán kiểm tra của lược đồ được giả thiết là:  
(
E   
(
y2  
)
mod p  
u+  
y
1. u.y2 +x1.E+x2. E+  
x
1.Z  
)
1
y1  
y2  
R.S mod p  
(
)
(
1
(
(
)
(
S
)
(
R
)
(
y1  
)
=
=
=
x
) mod p  
(
(
(
)
)
)
1
u+u.  
y
1.y2  
+
y
1.x .E+  
y
1.x2. E+  
x
1.Z  
(
)
(
)
(
)
(
)
) mod p  
1
1
1
1
(
1
x
Ở đây, E là giá trị đại diện của bản tin cần thẩm tra:  
. Nếu M và chữ ký (R,S) thỏa mãn đẳng thức trên  
1
u.  
(
y
1.y2 +1 +  
y
1.x2. E+  
x
1.Z  
+
y
1.x1.E  
)
1
(
)
(
)
(
)
(
1
)
1
(
1
)
E = H(M)  
x
mod p  
1
1  
y
1.y2 +1 . kx .  
y
1.Ex2  
.
(
y
1. E+  
x
1.Z  
.
y
1.y2 +1 .+x2  
.
(
y
1. E+  
x
1.Z  
+
y
1.x1.E  
)
1
thì chữ ký được coi là hợp lệ và bản tin sẽ được xác thực về  
nguồn gốc và tính toàn vẹn. Ngược lại, thì chữ ký bị coi là giả  
mạo và bản tin bị phủ nhận về nguồn gốc và tính toàn vẹn. Do  
đó, nếu vế trái của đẳng thức kiểm tra được tính theo:  
(
)
(
)
)
(
)
(
)
)
(
)
(
(
1
)
1
1
1
(
1
)
(
1
)
1
(
1
)
(
)
=
x
1
(
)
kx2  
.
y
1. E+  
x
1.Z x .  
y
1.E+x2  
.
(
y
1. E+  
x
1.Z  
+
y
1.x1.E  
)
1
(
)
(
)
(
)
)
(
)
(
1
(
1
)
1
1
1
(
1
)
mod p =  
x
mod p  
(
)
1
k
=
x
mod p = Z  
(
)
1
y1  
(16)  
(17)  
(12)  
A =  
(
S
)
mod p  
Thay (1), (2), (5) và (16) vào (13) ta được:  
và vế phải được tính theo:  
y2  
E
Z
B =  
(
R
)
(
y1  
)
(
y2  
)
mod p  
y2  
E
Z
(13)  
(14)  
B =  
(
R
)
(
y1  
Z = RS mod p  
thì điều kiện chữ ký hợp lệ là: A = B.  
)
(
y2  
)
mod p  
u.y2  
(
x1 +x2  
)
.E  
(x1 )  
1.x2 .Z  
=
=
(
(
x1  
)
)
(
x1  
)
1.Z  
(
x1  
)
mod p  
ở đây:  
(
u.y2 +x1.E+x2  
.
(
E+  
(
x1  
)
x1  
)) mod p  
Từ (15) và (17) suy ra điều cần chứng minh:  
Khi đó, thuật toán kiểm tra của lược đồ mới đề xuất  
được mô tả trong Bảng 3 như sau:  
A= B  
2.2.5. Ví dụ  
Bảng 3. Thuật toán kiểm tra  
Tính đúng đắn của lược đồ mới đề xuất được minh họa  
bằng một ví dụ số như sau:  
Input: p, y1, y2, M, (R,S).  
Output: true  
/
.
false  
a. Sinh tham số và khóa (Bảng 1)  
Input: p – số nguyên tố, lq – độ dài (tính theo bit) của  
số nguyên tố q.  
1.  
2.  
3.  
E H(M)  
y1  
A  
(
S
)
mod p  
Output: q, x1, x2, y1, y2.  
Z RS mod p  
-
Giá trị của p:  
y2  
E
Z
4.  
B   
(
R
)
(
y1  
)
(
y2  
)
mod p  
1112504748194107058548379149876527136337231  
9494651382867527128102052391566875979592156815  
6524417444891805426748144310226815292210566874  
56481556094275955901  
5. if (  
) then {return  
A = B  
else {return  
}
true  
}
false  
Chú thích:  
-
Giá trị của q:  
1396040063414249106233756715423506814076734227141  
Giá trị của x1:  
- M, (R,S): bản tin, chữ ký cần thẩm tra.  
- Nếu kết quả trả về là true thì tính toàn vẹn và nguồn  
gốc của M được khẳng định. Ngược lại, nếu kết quả là false  
thì M bị phủ nhận về nguồn gốc và tính toàn vẹn.  
-
4058370318607681007755510762685178271365232  
1929471000568735620774126567223984754965898162  
8005083289795572876280216639462805193338400762  
227172605620843386  
2.2.4. Tính đúng đắn của lược đồ mới đề xuất  
Điều cần chứng minh ở đây là: Cho p, q là 2 số nguyên  
tố với:  
x1 = (  
0,1   
,
,
,
,
,
,
H :  
   
Zn  
|q||n|| p|  
q | (p 1)  
1  
p  
-
Giá trị của x2:  
1336469017197379871919685315068540686272278035577  
- Giá trị của y1:  
x1+x2  
p1  
)/ q  
,
,
1x2 q  
y1 =  
( )  
x1  
mod p  
mod p  
)
1.x2  
k
(
x1  
,
mod p  
,
,
Z =  
(
x1  
)
mod p  
(
M
)
y2 =  
(
x1  
)
E = H  
1k q  
,
4166414543853754477463513432272555621490994  
1901511883506834222768226003954066407701818701  
1737172556088349519326398149222698213562535746  
2427830114211211397  
u =  
y
1 y2 +1 1 k x y 1 E x y 1 E + x 1 Z modq  
(
(
)
(
(
)
(
)
(
)
)
1
)
1
1
2
1
(
1
)
1   
(
u y2 + x1 E + x2   
(
E +  
(
.
x1  
)
1 Z
)
)
mod q  
,
v =  
(
y1  
)
u
v
Nếu:  
,
Z = R S mod p  
R =  
(
x1  
)
mod p  
S =  
B =  
(
x1  
)
mod p  
,
y1  
y2  
Z
E   
(
y2  
)
-
Giá trị của y2:  
,
thì:  
mod p  
.
A = B  
A =  
(
S
)
mod p  
(
R
)
(
y1  
)
3444900405691608012655812518275077028167817  
3954520452155461712791247704263118008086208153  
1110700411769515287169190952536509099543212503  
8309781498783298331  
Tính đúng đắn của thuật toán mới đề xuất được chứng  
minh như sau:  
Từ (3), (8) và (12) ta có:  
y1  
v.y1  
A = S mod p = x  
mod p  
(
)
( )  
1
b. Sinh chữ ký (Bảng 2)  
Input: p, q, y1, y2, x1, x2, M.  
Output: (R,S).  
y
1. u.y2 +x1.E+x2  
.
E+  
x
1.Z .y1  
(
(
)
(
)
(15)  
1
(
1
)
)
(
= x  
mod p  
(
)
)
1
u.y2 +x1.E+x2  
.
E+  
x
1.Z  
)
(
(
1
)
= x  
) mod p  
(
1
-
Bản tin: M = “THIS IS A NEWDIGITAL  
SIGNATURE ALGRITHM !”  
- Giá trị của k:  
u =  
y
1 y2 +1 1 k x y 1 E −  
Với:  
(
)
(
(
)
(
1
)
(
1
1
x y 1 E + x 1 Z modq  
(
)
(
)
)
2
1
1
)
ISSN 1859-1531 - TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ ĐẠI HỌC ĐÀ NẴNG, VOL. 17, NO. 7, 2019  
43  
1255212206829023352132843655989569922266921693676  
Giá trị của E tính được:  
994797757898549782843311219613797155198103919360  
Giá trị của R tính được:  
4449911408752777649244040466206307370345414  
1929343934596076092067962791347983369564752943  
5255945295141087456014749221312569125192026273  
7597326392043100028  
-
-
-
Giá trị của S cần kiểm tra:  
4449911408752777649244040466206307370345414  
1929343934596076092067962791347983369564752943  
5255945295141087456014749221312569125192026273  
7597326392043100028  
8726662134419522036019694497359990811104394  
1598406241186524326179846189573383626435667071  
6353450614720987111795916106614857121946988458  
1337455422383981655  
-
Giá trị của S tính được:  
-
Giá trị của E tính được:  
459428129146552511017466774377333633894779435085  
Giá trị của Z tính được:  
8726662134419522036019694497359990811104394  
1598406241186524326179846189573383626435667071  
6353450614720987111795916106614857121946988458  
1337455422383981655  
-
6906971967963642513654078827923678321013235  
4165420687120820589978943542468944086437422274  
3202530983070198874182835401612482869547363913  
8169566805153939123  
c. Kiểm tra chữ ký (Bảng 3)  
Input: p, y1, y2, (R,S), M.  
+ Trường hợp 1:  
-
Giá trị của A tính được:  
-
Bản tin: M = “THIS IS A NEWDIGITAL  
SIGNATURE ALGRITHM !”  
Giá trị của R cần kiểm tra:  
4672624538388502266835853716710549106327303  
0654205315339132641545609008093755946635143008  
5314736282096802082511226037032882409747824832  
7543711674383209614  
-
4449911408752777649244040466206307370345414  
1929343934596076092067962791347983369564752943  
5255945295141087456014749221312569125192026273  
7597326392043100028  
-
Giá trị của B tính được:  
2092530588255877058475346020861947849287161  
9098055755472151142456277874491594998297359048  
1783036341432328353498341496594709850878863929  
2155159467540424063  
-
Giá trị của S cần kiểm tra:  
8726662134419522036019694497359990811104394  
1598406241186524326179846189573383626435667071  
6353450614720987111795916106614857121946988458  
1337455422383981655  
Output: (R,S) = false.  
Chú thích:  
Trường hợp này kết quả cho thấy chữ ký không hợp lệ  
vì ký tự cuối cùng của bản tin đã bị sửa đổi.  
-
Giá trị của E tính được:  
994797757898549782843311219613797155198103919360  
Giá trị của Z tính được:  
+ Trường hợp 3:  
-
-
Bản tin: M = “THIS IS A NEWDIGITAL  
SIGNATURE ALGRITHM !”  
Giá trị của R cần kiểm tra:  
6906971967963642513654078827923678321013235  
4165420687120820589978943542468944086437422274  
3202530983070198874182835401612482869547363913  
8169566805153939123  
-
4449911408752777649244040466206307370345414  
1929343934596076092067962791347983369564752943  
5255945295141087456014749221312569125192026273  
7597326392043100020  
-
Giá trị của A tính được:  
4672624538388502266835853716710549106327303  
0654205315339132641545609008093755946635143008  
5314736282096802082511226037032882409747824832  
7543711674383209614  
-
Giá trị của S cần kiểm tra:  
8726662134419522036019694497359990811104394  
1598406241186524326179846189573383626435667071  
6353450614720987111795916106614857121946988458  
1337455422383981650  
-
Giá trị của B tính được:  
4672624538388502266835853716710549106327303  
0654205315339132641545609008093755946635143008  
5314736282096802082511226037032882409747824832  
7543711674383209614  
-
Giá trị của E tính được:  
994797757898549782843311219613797155198103919360  
Giá trị của Z tính được:  
-
Output: (R,S) = true.  
3844497704372142663146652508134385887429567  
1303561714050415768364551394492036594500866235  
8048595180941298839593305260276003644856674845  
1335740220074232991  
Chú thích:  
Trường hợp này kết quả cho thấy chữ ký hợp lệ vì tính  
toàn vẹn của cả bản tin và chữ ký đều được đảm bảo.  
+ Trường hợp 2:  
-
Giá trị của A tính được:  
-
Bản tin: M = “THIS IS A NEWDIGITAL  
SIGNATURE ALGRITHM ”  
Giá trị của R cần kiểm tra:  
1406677822597821802010526057075954693241085  
6857650576352585936590763908843256504202090165  
-
44  
Nguyễn Đức Thụy, Bùi Tất Hiếu, Lưu Hồng Dũng  
5785689180545584176292246996396677465791624524  
7844607175313754533  
bài toán trên. Ở đây, bài toán logarit rời rạc kết hợp khai căn  
trên Zp là một dạng bài toán khó mới, lần đầu được đề xuất  
và ứng dụng trong việc xây dựng thuật toán chữ ký số. Từ  
phương pháp mới đề xuất có thể xây dựng một lớp thuật toán  
chữ ký số có độ an toàn cao cho các ứng dụng trong thực tế.  
-
Giá trị của B tính được:  
9939385551582310543738421446931192840015113  
8197085285633813123513787042678692559553651709  
8339876103450401240752626350520689260376315350  
1037477621806591752  
TÀI LIỆU THAM KHẢO  
[1] R.L. Rivest, A. Shamir, and L.M. Adleman. A Method for Obtaining  
Digital Signatures and Public Key Cryptosystems. Communications  
of the ACM, 1978, vol. 21, no 2, pp. 120126.  
Output: (R,S) = false.  
Chú thích:  
[2] Rabin M.O. Digitalized Signatures and Public Key Functions as  
Intractable as Factorization. - Technical report MIT/LCS/TR-212,  
MIT Laboratory for Computer Science, 1979.  
Trường hợp này kết quả cho thấy chữ ký không hợp lệ  
vì chữ số cuối cùng của R và S đã bị thay đổi.  
2.2.6. Mức độ an toàn của lược đồ mới đề xuất  
[3] 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.469472.  
Mức độ an toàn của lược đồ mới đề xuất có thể đánh  
giá qua khả năng chống lại một số dạng tấn công như:  
[4] Schnorr C.P. Efficient signature generation by smart cards. J.  
Cryptology. 1991. vol. 4. pp. 161174.  
- Tấn công khóa bí mật  
[5] National Institute of Standards and Technology, NIST FIPS PUB 186.  
Digital Signature Standard, U.S. Department of Commerce, 1994.  
Ở lược đồ mới đề xuất, cặp tham số x1, x2 cùng được sử  
dụng làm khóa bí mật để hình thành chữ ký. Vì thế, lược  
đồ chỉ bị phá vỡ nếu cả 2 tham số này cùng bị lộ, nói cách  
khác là kẻ tấn công phải giải được bài toán logarit rời rạc  
kết hợp khai căn trên Zp. Do đó, mức độ an toàn của lược  
đồ mới đề xuất xét theo khả năng chống tấn công làm lộ  
khóa bí mật được đánh giá bằng mức độ khó của việc giải  
được DLRP. Cần chú ý, DLRP là một dạng bài toán khó  
mới, mà ngay cả khi có các giải thuật thời gian đa thức cho  
FRP và DLP cũng không có nghĩa là sẽ giải được bài toán  
này. Ngoài ra, tham số q cũng được sử dụng với vai trò  
khóa bí mật trong thuật toán ký. Như vậy, để phá vỡ tính  
an toàn của thuật toán, kẻ tấn công còn phải giải được bài  
toán tìm bậc của x1. Tuy nhiên, việc tìm bậc của x1 là không  
thể thực hiện được, vì x1 ở đây là 1 tham số bí mật.  
[6] 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).  
[7] ANSI X9.62 and FIPS 186-2. Elliptic curve signature algorithm, 1998.  
[8] GOST R 34.10-2001. Russian Federation Standard. Information  
Technology. Cryptographic data Security. Produce and check  
procedures of Electronic Digital Signature. Government Committee  
of the Russia for Standards, 2001 (in Russian).  
[9] Nguyen Duc Thuy and Luu Hong Dung, “A New Construction  
Method of Digital Signature Algorithms”, IJCSNS International  
Journal of Computer Science and Network Security. Vol. 16 No. 12  
pp. 53-57, December 2016. ISSN: 1738 - 7906.  
[10] Q. X. WU, Y. X. Yang and Z. M. HU, "New signature schemes based  
on discrete logarithms and factoring", Journal of Beijing University of  
Posts and Telecommunications, vol. 24, pp. 61-65, January 2001.  
- Tấn công giả mạo chữ ký  
[11] Z. Y. Shen and X. Y. Yu, "Digital signature scheme based on  
discrete logarithms and factoring", Information Technology, vol. 28,  
pp. 21-22, June 2004.  
Từ thuật toán kiểm tra (Bảng 3) của thuật toán mới đề  
xuất cho thấy, một cặp (R,S) giả mạo sẽ được công nhận là  
chữ ký hợp lệ với một bản tin M nếu thỏa mãn điều kiện:  
[12] Shimin Wei, “Digital Signature Scheme Based on Two Hard  
Problems”, IJCSNS International Journal of Computer Science and  
Network Security, VOL.7 No.12, December 2007.  
y1  
y2  
R.S mod p   
(
y2  
E mod p  
)
(18)  
(
S
)
(
R
)
(
y1  
)
[13] Eddie Shahrie Ismail, Tahat N.M.F., Rokiah. R. Ahmad, “A New  
Digital Signature Scheme Based on Factoring and Discrete  
Logarithms”, Journal of Mathematics and Statistics, 04/2008; 12(3).  
DOI: 10.3844/jmssp.2008.222.225 Source:DOAJ.  
Từ (18), nếu chọn trước R rồi tính S thì khi đó điều kiện  
(18) sẽ có dạng:  
y1  
(R.S )mod p  
(19)  
(
S
)
a   
(
y2  
)
mod p  
[14] Qin Yanlin, Wu Xiaoping, “New Digital Signature Scheme Based on  
both ECDLP and IFP”, Computer Science and Information  
Technology, 2009. ICCSIT 2009. 2nd IEEE International Conference  
on, 8-11 Aug. 2009, E-ISBN: 978-1-4244-4520-2, pp 348 - 351.  
Còn nếu chọn trước S rồi tính R thì khi đó điều kiện  
(18) sẽ trở thành:  
y2  
(R.S )mod p  
(
R
)
b   
(
y2  
)
mod p  
[15] Swati Verma1, Birendra Kumar Sharma, “A New Digital Signature  
Scheme Based on Two Hard Problems”, International Journal of  
Pure and Applied Sciences and Technology, ISSN 2229 6107, Int.  
J. Pure Appl. Sci. Technol., 5(2) (2011), pp. 55-59.  
(20)  
Với a, b là hằng số, dễ thấy rằng (19) và (20) cũng là  
một dạng bài toán khó chưa có cách giải tương tự bài toán  
logarit rời rạc kết hợp khai căn trên Zp.  
[16] Sushila Vishnoi, Vishal Shrivastava, “A new Digital Signature Algorithm  
based on Factorization and Discrete Logarithm problem”, International  
Journal of Computer Trends and Technology, volume 3, Issue 4, 2012.  
3. Kết luận  
[17] A.N. Berezin, N.A. Moldovyan, V.A. Shcherbacov, "Cryptoschemes  
Based on Difficulty of Simultaneous Solving Two Different Difficult  
Problems", ComputerScience Journal of Moldova, vol.21, no.2(62), 2013.  
Bài báo đề xuất xây dựng thuật toán chữ ký số dựa trên  
tính khó giải của bài toán logarit rời rạc – khai căn trên Zp.  
Mức độ an toàn của các thuật toán xây dựng theo phương  
pháp này sẽ được đảm bảo bằng mức độ khó của việc giải  
[18] N.A. Moldovyan, "Digital Signature Scheme Based on a New Hard  
Problem", Computer Science Journal of Moldova, vol.16, no.2(47), 2008.  
(BBT nhận bài: 03/3/2019, hoàn tất thủ tục phản biện: 04/7/2019)  
pdf 5 trang baolam 10/05/2022 3000
Bạn đang xem tài liệu "Xây dựng lược đồ chữ ký số dựa trên bài toán logarit rời rạc kết hợp khai căn trên Zₚ", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfxay_dung_luoc_do_chu_ky_so_dua_tren_bai_toan_logarit_roi_rac.pdf