[r]
(1)Ự Ố Lưu Hồng Dũng1, Hoàng Thị Mai2, Nguyễn Hữu Mộng3
1Khoa Công nghệ Thông tin, Học viện Kỹ thuật Quân sự Khoa Công nghệ Thông tin, Đại học Thủđô Hà Nội 3 Khoa Công nghệ Thông tin, Học viện Kỹ thuật Quân sự
luuhongdung@hotmail.com, htmai@cdsphanoi.edu.vn, nghm06@yahoo.com
TÓM TẮT— Bài báo đề xuất dạng lược đồ chữ ký số xây dựng tính khó giải tốn phân tích số
nguyên lớn thừa số nguyên tố Từ dạng lược đồ đề xuất phát triển lược đồ chữ ký có khả ứng dụng thực tế
Từ khóa— Digital Signature, Digital Signature Schema, Integer Factorization Problem, Prime Factorization I. ĐẶT VẤN ĐỀ
Nghiên cứu phát triển lược đồ chữ ký số nội dung nghiên cứu khoa học quan trọng, mang tính thời an tồn thơng tin Hầu hết lược đồ chữ ký số dựa tính khó tốn: phân tích số nguyên lớn thừa số nguyên tố, toán khai toán logarit rời rạc modulo hợp số Thuật toán chữ ký sốđầu tiên (RSA) đề xuất công bố Ron Rivest, Adi Shamir Len Adleman [1] vào năm 1977 Viện Công nghệ Massachusetts (MIT) Hoa Kỳ Thuật toán chữ ký sốnày xây dựng dựa tính khó tốn phân tích số nguyên lớn thừa số nguyên tố Lược đồ Elgamal [17] gồm hệ mã chữ ký số có độ
an tồn dựa toán logarit rời rạc
Trên tảng tốn phân tích số, có nhiều hướng nghiên cứu phát triển thuật toán chữ ký số RSA [2] [5] nghiên cứu việc sinh tham sốđầu vào cho thuật tốn nhằm tăng mức độ an tồn thuật toán, [6] nghiên cứu xác thực tin chữ ký số RSA-PSS theo cách sử dụng hai thuật tốn tảng thuật tốn mã hóa kiểm tra EMSA-PSS cho tin thuật toán tạo chữ ký RSA để xác thực tin
Nhằm tăng độ an toàn cho lược đồ chữ ký số, có mạch nghiên cứu khác xây dựng lược đồ chữ ký dựa tảng hai tốn: phân tích số logarit rời rạc Năm 1998, Shao [8] Li-Xiao [9] đề xuất lược
đồ chữ ký số dạng Sau Lee [10] năm 2000 chứng minh lược đồ chữ ký Shao khơng an tồn
báo cáo Để khắc phục nhược điểm lược đồ chữ ký Shao, He [11] năm 2001 đề xuất sơđồ chữ ký số
cũng dựa vào toán phân tích số ngun tốn logarit rời rạc; sử dụng modulo tập số mũ khóa bí mật Vào năm 2002 Hung Min Sun [12] lược đồđó dựa toán logarit rời rạc Năm 2003, Wang, Lin Chang [14] đề xuất lược đồ chữ ký dựa hai tốn khó lược đồ chưa bị đánh bại Năm 2007, Wei [15] đưa hai lược đồ cải tiến từ hai lược đồ Shao Li-Xiao nhằm chống lại công vào hai lược đồ Năm 2009, Lin, Gun Chen [16] cho lược đồ Wei khơng an tồn giả mạo chữ ký hợp lệ thông điệp cách sử dụng phương pháp Pollard Schnorr
Theo hướng nghiên cứu khác, [3] đề cập đến việc xây dựng lược đồ chữ ký số sở tốn phân tích số ngun lớn thừa số ngun tố (bài tốn phân tích số) kết hợp với toán khai modulo hợp số (bài toán khai căn) Tuy nhiên, toán khai khơng có vai trị định đến mức độ an tồn lược đồ nên
đã khơng đề cập đến [3] Bài báo đề xuất phương pháp xây dựng lược đồ chữ ký số theo nguyên tắc [3], phương pháp đề xuất ởđây mô tả dạng lược đồ tổng quát từ cho phép triển khai lược đồ chữ ký số khác cho ứng dụng thực tế Hơn nữa, phương pháp đề xuất xây dựng sở tốn phân tích số kết hợp với tốn logarit rời rạc modulo hợp số nên cho phép tạo lược đồ chữ ký có hiệu thực (tốc độ, tài nguyên hệ thống) cao lược đồ chữ ký xây dựng [3] Cũng tương tự toán khai lược đồ [3], toán logarit rời rạc ởđây khơng có vai trị định tới độ an tồn lược đồ xây dựng theo phương pháp đề xuất nên không
được đề cập ởđây
II. XÂY DỰNG LƯỢC ĐỒ CHỮ KÝ DỰA TRÊN BÀI TỐN PHÂN TÍCH SỐ
A. Bài tốn phân tích một số nguyên lớn thừa số ngun tố
Bài tốn phân tích số phát biểu sau: Cho số n∈N, tìm biểu diễn:
k
e k e e
p p p n
2
= , với ei ≥1 pi số nguyên tố
Trong hệ mật RSA [1], tốn phân tích sốđược sử dụng làm sởđể hình thành cặp khóa cơng khai (e)/bí mật (d) cho thực thể ký phát biểu sau:
(2)- Từ n khó tìm p q
Với việc giữ bí mật tham số p, q khả tính khóa mật (d) từ khóa cơng khai (e) modulo n khó thực hiện, p, q chọn đủ lớn mạnh [4,7]
Hiện tại, toán coi tốn khó chưa có giải thuật thời gian đa thức cho hệ mật RSA chứng minh thực tế cho tính khó giải toán
B. Xây dựng lược đồ dạng tổng quát
Dạng lược đồ đề xuất ởđây xây dựng sở tính khó giải tốn phân tích số thiết kế theo dạng lược đồ sinh chữ ký thành phần tương tự DSA chuẩn chữ ký số Mỹ (DSS) hay GOST R34.10-94 Liên bang Nga, bao gồm dạng tổng quát sau
2.1 Dạng lược đồ thứ
Giả sử có văn cần ký M chữ ký số chứa hai thành phần S Z Để hình thành chữ ký số ta chọn hai số nguyên tố lớn khác nhau, đủ mạnh p, q đặt n= p×q, đồng thời chọn số nguyên t thỏa mãn
) (
1<t<φ n với φ(n)là hàm Ơle n, tức φ(n)=(p−1)×(q−1)
Giả sử thành phần thứ S chữ ký tính từ giá trị u khoảng (1,n) theo công thức: S=utmodn (1.1)
Thành phần thứ hai Z chữ ký tính từ giá trị v khoảng (1,n) theo công thức: Z=vtmodn (1.2)
Giả thiết rằngf(S,Z)≡ktmodn (1.3) với f(S,Z) hàm của S Z với k được chọn ngẫu nhiên cho n
k< <
1 Cũng giả thiết phương trình kiểm tra lược đồ có dạng: Zf1(M,f(S,Z)) ≡Sf2(M,f(S,Z))modn Xét cho trường hợp cụ thể: f(S,Z)=S×Rmodn đặt R ktmodn
= Khi từ (1.1), (1.2) (1.3) ta có
R Z S
f( , )= , nên có thểđưa phương trình kiểm tra dạng:
n S
Zf1(M,R) ≡ f2(M,R)mod (1.4)
ởđây: f1(M,R), f2(M,R) hàm M R
Vấn đềđặt ởđây cần tìm {u,v} cho {S,Z} thỏa mãn (1.3) (1.4) Từ (1.1), (1.2) (1.3) ta có:
u×vmodn=k (1.5) Từ (1.1), (1.2) (1.4) ta có:
vf1(M,R) ≡uf2(M,R)modn (1.6) Từ (1.6) suy ra:
v=uf1(M,R)−1.f2(M,R)modn (1.7) Từ (1.5) (1.7) ta có:
u×uf1(M,R)−1.f2(M,R)modn=k hay:
uf1(M,R)−1.f2(M,R)+1modn=k
dẫn đến:
u=k[f1(M,R)−1.f2(M,R)+1]−1modn (1.8)
và:
(3)Từ (1.1) (1.8) ta có cơng thức tính thành phần thứ chữ ký: S=k[f1(M,R)−1.f2(M,R)+1]−1.tmodn (1.10)
Từ (1.2) (1.9), cơng thức tính thành phần thứ hai chữ ký có dạng: Z=k[f1(M,R)−1.f2(M,R)+1]−1.f1(M,R)−1.f2(M,R).tmodn
Cũng chọn v làm thành phần thứ hai chữ ký, cặp (v,S) chữ ký lên tin M phương trình kiểm tra có dạng:
vf1(M,R).t≡Sf2(M,R)modn
Từ phân tích thiết kế đây, khái qt phương pháp hình thành tham số, phương pháp hình thành kiểm tra chữ ký dạng lược đồ thứ nhưđược Bảng 1.1, Bảng 1.2 Bảng 1.3 a) Phương pháp hình thành tham số
Bảng 1.1:
Input: p, q – số nguyên tố lớn Output: n, t, ø(n)
[1] n←p×q [2] φ(n)←(p−1)×(q−1)
[3] select t: 1<t<φ(n)
[4] return {n, t, ø(n)} Chú ý:
i) {n, t}: tham số cơng khai ii) ø(n): tham số bí mật
Nhận xét:
Ở lược đồ đề xuất không sử dụng cặp khóa bí mật/cơng khai nhưở lược đồ chữ ký RSA, DSA, b) Phương pháp hình thành chữ ký
Bảng 1.2:
Input: n, t, ø(n), M – Bản tin ký đối tượng U Output: (v,s)
[1] selectk: 1<k<n
[2] R←ktmodn [3] if (gcd((f1(M,R),φ(n))≠1 OR
gcd((f1(M,R)−1×f2(M,R)+1),φ(n))≠1) thengoto [1] [4] u←k[f1(M,R)−1.f2(M,R)+1]−1modn
[6] v←k[f1(M,R)−1.f2(M,R)+1]−1.f1(M,R)−1.f2(M,R)modn
[7] S←utmodn [8] return (v,S)
Chú ý:
(4)i) Thuật tốn khơng sử dụng khóa bí mật việc hình thành chữ ký nhưở lược đồ chữ ký RSA, DSA,
ii) Tham sốø(n)được sử dụng khóa bí mật để hình thành chữ ký (v,s) đối tượng U lên tin M c) Phương pháp kiểm tra chữ k ý
Bảng 1.3:
Input: n, t,M – Bản tin cần thẩm tra, (v,s) – Chữ ký U lên M Output: (v,s) = true / false
[1] A←vf1(M,R).tmodn (1.11) [2] B←Sf2(M,R)modn (1.12)
[3] if (A=B) then {return true;} else {return false;}
Chú ý:
i) U: đối tượng chủ thể cặp tham số {n,t}
ii) (v,s) = true: chữ ký hợp lệ, Mđược khẳng định nguồn gốc tính tồn vẹn
iii) (v,s) = false: chữ ký không hợp lệ, M không cơng nhận nguồn gốc tính tồn vẹn Nhận xét:
Tham số {n,t} sử dụng khóa cơng khai đối tượng U để kiểm tra tính hợp lệ chữ k ý (v,s) d) Tính đắn dạng lược đồ thứ
Tính đắn dạng lược đồ thứ phù hợp phương pháp kiểm tra chữ ký với phương pháp hình thành tham số hệ thống phương pháp hình thành chữ ký Điều cần chứng minh ởđây là: cho p, q số nguyên tố, n=p×q, φ(n)=(p−1)×(q−1), 1<t<φ(n), 1<k<n, R=ktmodn, gcd((f1(M,R),φ(n))=1,
1 )) ( ), ) , ( ) , (
gcd((f1 M R−1 f2 M R + φn = ,u kf MR f MR modn
1 1( , ) ( , )1]
[ − −
+
= ,v=k[f1(M,R)−1.f2(M,R)+1]−1.f1(M,R)−1.f2(M,R)modn, S =utmodn Nếu: A=vf1(M,R).tmodn ,B=Sf2(M,R)modn thì:A=B
Có thể chứng minh tính đắn dạng lược đồ sau: Từ (1.9) (1.11) ta có:
A=vf1(M,R).tmodn=k[f1(M,R)−1.f2(M,R)+1]−1.f2(M,R).tmodn (1.13)
Từ (1.10) (1.12) ta lại có:
B=Sf2(M,R)modn=k[f1(M,R)−1.f2(M,R)+1]−1.f2(M,R).tmodn (1.14)
Từ (1.13) (1.14) suy ra: A=B
Đây điều cần chứng minh 2.2 Dạng lược đồ thứ hai
Phương pháp phân tích thiết kế áp dụng dạng lược đồ thứ hai tương tự dạng lược đồ
thứ Cũng giả sử S thành phần thứ chữ ký lên tin M S tính từ giá trị u khoảng theo công thức:
S=gumodn (2.1) ởđây: n= p×q, với p, q số nguyên tố phân biệt và: 1<g<n
(5)Z=g modn (2.2)
Giả thiết f(S,Z)≡gkmodn (2.3) với f(S,Z) hàm của S Z với k được chọn ngẫu nhiên cho
) (
1<k <φ n Cũng giả thiết phương trình kiểm tra lược đồ có dạng: Zf1(M,f(S,Z)) ≡Sf2(M,f(S,Z))modn Xét cho trường hợp cụ thể: f(S,Z)=S×Rmodn đặt R=gkmodn Khi đó từ (2.1), (2.2) (2.3) ta có
R Z S
f( , )= , nên có thểđưa phương trình kiểm tra dạng:
n S
Zf1(M,R) ≡ f2(M,R)mod (2.4)
ởđây: f1(M,R), f2(M,R) hàm M R
Vấn đềđặt ởđây cần tìm {u,v} cho {S,Z} thỏa mãn (2.3) (2.4) Từ (2.1), (2.2) (2.3) ta có:
(u+v)modφ(n)=k (2.5) Từ (2.1), (2.2) (2.4) ta có:
v×f1(M,R)≡u×f2(M,R)modφ(n) (2.6) Từ (2.6) suy ra:
( , ) 2( , )mod ( )
1 M R f M R n
f u
v= × − × φ (2.7) Từ (2.5) (2.7) ta có:
u+u×f1(M,R)−1×f2(M,R)modφ(n)=k
hay:
u×(f1(M,R)−1×f2(M,R)+1)modφ(n)=k dẫn đến:
u=k×[f1(M,R)−1×f2(M,R)+1]−1modφ(n) (2.8)
và:
v=k×[f1(M,R)−1×f2(M,R)+1]−1×f1(M,R)−1×f2(M,R)modφ(n) (2.9)
Từ (2.1) (2.8) ta có cơng thức tính thành phần thứ chữ ký:
S=gk.[f1(M,R)−1.f2(M,R)+1]−1modφ(n)modn (2.10)
Từ (2.2) (2.9), cơng thức tính thành phần thứ hai chữ ký có dạng: Z =gk.[f1(M,R)−1.f2(M,R)+1]−1.f1(M,R)−1.f2(M,R)modφ(n)modn
Cũng chọn v làm thành phần thứ hai chữ ký, cặp (v,S) chữ ký lên tin M phương trình kiểm tra có dạng:
gv.f1(M,R)≡Sf2(M,R)modn
Từ phân tích thiết kế đây, khái quát phương pháp hình thành tham số, phương pháp hình thành kiểm tra chữ ký dạng lược đồ thứ hai Bảng 2.1, Bảng 2.2 Bảng 2.3
a) Phương pháp hình thành tham số Bảng 2.1:
Input: p, q – số nguyên tố lớn Output: n, g, ø(n)
(6)[2] φ(n)←(p−1)×(q−1) [3] select g: 1<g<n [4] return {n, g, ø(n)} Chú ý:
i) {n, g}: tham số cơng khai ii) ø(n): tham số bí mật
Nhận xét:
Ở lược đồ đề xuất khơng sử dụng cặp khóa bí mật/cơng khai nhưở lược đồ chữ ký RSA, DSA, b) Phương pháp hình thành chữ k ý
Bảng 2.2:
Input: n, g, ø(n), M – Bản tin ký đối tượng U Output: (v,s)
[1] selectk: 1<k<φ(n) [2] R←gkmodn
[3] if (gcd((f1(M,R),φ(n))≠1 OR
gcd((f1(M,R)−1.f2(M,R)+1),φ(n))≠1) thengoto [1] [4] u←k.[f1(M,R)−1.f2(M,R)+1]−1modφ(n)
[5] [ ( , ) ( , ) 1] ( , ) 2( , )mod ( )
1
1
1 M R f M R f M R f M R n
f k
v← − + − − φ [6] S←gumodn
[7] return (v,S) Chú ý:
U: đối tượng k ý chủ thể tham số {n,g,ø(n)} Nhận xét:
i) Thuật toán khơng sử dụng khóa bí mật việc hình thành chữ ký nhưở lược đồ chữ ký RSA, DSA,
ii) Tham sốø(n)được sử dụng khóa bí mật để hình thành chữ ký (v,s) đối tượng U lên tin M c) Phương pháp kiểm tra chữ ký
Bảng 2.3:
Input: n, g,M – Bản tin cần thẩm tra, (v,s) – Chữ ký U lên M Output: (v,s) = true / false
[1] A←gv.f1(M,R)modn (2.11)
[2] B←Sf2(M,R)modn (2.12)
[3] if (A=B) then {return true;} else {return false;}
Chú ý:
(7)ii) (v,s) = true: chữ ký hợp lệ, Mđược khẳng định nguồn gốc tính tồn vẹn
iii) (v,s) = false: chữ ký không hợp lệ, M không công nhận nguồn gốc tính tồn vẹn Nhận xét:
Tham số {n,g} sử dụng khóa cơng khai đối tượng U để kiểm tra tính hợp lệ chữ k ý (v,s) d) Tính đắn dạng lược đồ thứ hai
Điều cần chứng minh ởđây là: cho p, q số nguyên tố, n=p×q , φ(n)=(p−1)×(q−1), 1<g<n, 1<k<φ(n),
n g
R= kmod , gcd((f1(M,R),φ(n))=1, gcd((f1(M,R)−1.f2(M,R)+1),φ(n))=1,
) ( mod ] ) , ( ) , (
.[f1 M R f2 M R n k
u= − + − φ , [ ( , ) ( , ) 1] ( , )1 2( , )mod ( )
1
1
1M R f M R f M R f M R n
f k
v= − + − − φ , S gumodn
=
Nếu: A=gv.f1(M,R)modn ,B=Sf2(M,R)modn thì:A=B
Tính đắn dạng lược đồ thứ hai có thểđược chứng minh sau: Từ (2.9) (2.11) ta có:
n g n g n g A R M f R M f R M f k R M f R M f R M f R M f R M f k R M f v mod mod mod ) , ( ] ) , ( ) , ( [ ) , ( ) , ( ) , ( ] ) , ( ) , ( [ ) , ( 2 1 1 1 − − − − − + + = = = (2.13)
Từ (2.10) (2.12) ta lại có: n g n g n S B R M f R M f R M f k R M f u R M f mod mod mod ) , ( ] ) , ( ) , ( [ ) , ( ) , ( 2 1 2 − − + = = = (2.14) Từ (2.13) (2.14) suy ra:
A=B
Đây điều cần chứng minh
2.3 Một số lược đồ chữ ký sốđược phát triển từ lược đồ dạng tổng quát
Bằng việc lựa chọn hàm f1(M,R)và f2(M,R)khác nhau, từ dạng tổng quát đề xuất đây, triển khai số lược đồ chữ ký số sau
a) Lược đồ thứ LD-01
Lược đồ LD-01 phát triển từ dạng tổng quát thứ với lựa chọn: f1(M,R)=1 R
M H R M
f2( , )= ( )× , ởđây H(.) hàm băm H(M) giá trịđại diện tin ký M Các thuật tốn hình thành tham số, hình thành kiểm tra chữ ký mô tả Bảng 3.1, Bảng 3.2 Bảng 3.3
a) Thuật tốn hình thành tham số Bảng 3.1:
Input: p, q – số nguyên tố lớn Output: n, t, H(.),ø(n)
[1] n←p×q [2] φ(n)←(p−1)×(q−1)
[3] select H { } aZm
∗
1 ,
: , m<n [4] select t: 1<t<φ(n)
[5] return {n, t, H(.),ø(n)} Chú ý: