Professional Documents
Culture Documents
277-Article Text-1058-1-10-20200909
277-Article Text-1058-1-10-20200909
Tóm tắt—Các lược đồ chữ ký số dựa trên hai bài của N. Y. Lee và T. Hwang về lược đồ của Harn công
toán khó sẽ tăng tính an toàn hơn lược đồ dựa trên bố năm 1996 [6], phân tích của Shin-Yan Chiou và
một bài toán khó trong trường hợp một trong hai bài Yi-Xuan He về giao thức của Vishnoi và Shrivastava
toán khó có thể giải được. Những năm qua có nhiều công bố năm 2013 [7]... Tóm lại chỉ còn hai lược đồ
nghiên cứu đề xuất lược đồ chữ ký số dựa trên hai
đưa ra trong [1] là đúng nghĩa với việc có độ an toàn
bài toán khó là bài toán logarit rời rạc và phân tích
số. Trong đó, có thể kể đến hai lược đồ đã công bố
dựa trên tính khó của hai bài toán khó đó là lược đồ
là Rabin-Schnorr và RSA-Schnorr [1]. Trong bài báo Rabin-Schnorr và RSA-Schnorr. Trong bài báo này
này, chúng tôi chỉ ra một số lỗi dẫn đến việc có thể chúng tôi trình bày hai nội dung đó là:
giả mạo chữ ký hoặc lược đồ chỉ phụ thuộc vào một • Chỉ ra một số lỗi dẫn đến việc dễ giả mạo hoặc
bài toán khó của hai lược đồ trên, đồng thời đưa ra dẫn đến việc chỉ phụ thuộc vào một bài toán khó
nhược điểm dẫn đến tính không hiệu quả của các lược của hai lược đồ Rabin-Schnorr và RSA-Schnorr.
đồ này. Ngoài ra, bài báo cũng đề xuất một lược đồ
Tiếp đến chỉ ra nhược điểm dẫn đến tính không
chữ ký số mới dựa trên hai bài toán khó mà thuật
hiệu quả của các lược đồ này.
toán ký hiệu quả hơn lược đồ Rabin-Schnorr.
• Công bố một lược đồ Williams-Rabin-Schnorr
Từ khóa—Chữ ký số, logarit rời rạc, phân tích số, với thuật toán ký hiệu quả hơn hẳn thuật toán
hai bài toán khó. ký của lược đồ Rabin-Schnorr.
Phần còn lại của bài báo được tổ chức như sau:
I. GIỚI THIỆU Trong phần 2, chúng tôi trình bày một số kết quả
Chữ ký số được dùng để xác thực về nguồn gốc làm cơ sở cho việc đánh giá tính hiệu quả của các
và tính toàn vẹn của thông tin. Các thuật toán chữ thuật toán chữ ký số. Phần 3 giới thiệu, phân tích các
ký số thường dựa trên hai hệ mật phổ biến là RSA lỗi của hai lược đồ Rabin-Schnorr và RSA-Schnorr,
và Elgamal. Hệ mật RSA dựa trên độ khó của bài và đưa ra các lược đồ sửa đổi tương ứng; phần 4 đề
toán phân tích thừa số nguyên tố. Elgamal dựa trên xuất lược đồ WR-Schnorr bằng cách thay thế lược đồ
độ khó của bài toán logarit rời rạc. Các lược đồ chữ Rabin trong Rabin-Schnorr bằng lược đồ Williams-
ký số có độ an toàn dựa trên tính khó của hai bài Rabin (WR); cuối cùng là kết luận và tài liệu tham
toán khó được quan tâm từ năm 1994 do L. Harn đề khảo.
xuất [2] và liên tục sau đó các công bố vào năm 2008
của ba tác giả E. S. Ismail, N. M. F. Tahat và R. R. II. MỘT SỐ KẾT QUẢ LÀM CƠ SỞ CHO VIỆC ĐÁNH
Amad [3], của E. S. Dermova năm 2009 [4], của S. GIÁ TÍNH HIỆU QUẢ
Vishnoi và Shrivastava năm 2012 [5], của Binh V. Các kết quả trình bày trong mục này bạn đọc có
Do, Minh H. Nguyên, Nikolay A. Moldovyal, năm thể tìm trong các tài liệu. [8], [9], [10].
2013 [1],... Cùng với chúng là những phân tích chỉ
ra thực chất về độ an toàn của chúng như phân tích
A. Một số ký hiệu
• len(a) : Số bít tối thiểu để biểu diễn nhị phân
Tác giả liên hệ: Hồ Kim Giàu
số nguyên dương a, còn gọi là độ dài của a.
Email: hkgiau@gmail.com
Đến tòa soạn: 2/2020, chỉnh sửa: 4/2020, chấp nhận đăng: • tM (N ): Chi phí trung bình cho một phép nhân
4/2020; hai số N-bít.
SỐ 01 (CS.01) 2020 TẠP CHÍ KHOA HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG 50
Bảng I
• tRed (N ): Chi phí trung bình cho một phép rút KÍCH THƯỚC TƯƠNG ĐƯƠNG VỀ ĐỘ AN TOÀN CỦA CÁC THAM
gọn một số 2N-bít theo modulo N-bít. SỐ RSA VÀ DL
• tm (N ): Chi phí trung bình cho một phép nhân
rút gọn theo modulo n với len(n) = N. N 160 224 256 384 512
L 1024 2048 3072 8192 15360
• texp (N, L): Chi phí trung bình cho một phép
tính ae mod n với len(e) = N và len(n) = L.
• tinv (N ): Chi phí trung bình cho một phép tính
a−1 mod n với len(n) = N. III. PHÂN TÍCH HAI LƯỢC ĐỒRABIN-SCHNORR VÀ
• tH : Chi phí trung bình cho một phép tính hàm RSA-SCHNORR
H: {0, 1}∞ → {0, 1}h . A. Lược đồ Rabin-Schnorr và RSA-Schnorr [1]
• tgcd (N ): Chi phí trung bình cho một phép tính
gcd(a, b) với len(a), len(b) ≤ N. 1) Các tham số: Hai lược đồ Rabin-Schnorr và
• tJacobi (N ): Chi phí trung bình cho một phép RSA-Schnorr có chung bộ tham số miền đó là:
tính ( na ) với len(n) = N. • Kích thước modulo L.
• Tập các thông báo M = {0, 1}∞ .
B. Một số kết quả • Tập các chữ ký S = N × N.
• Hàm tóm lược H:{0, 1}∞ → {0, 1}h . Giá trị h
Theo phương pháp Karatsuba thì:
được gọi là độ dài tóm lược.
tM (N ) = O(N ln3/ln2 ) (phép toán bit).
Theo phương pháp Mongomegy hoặc Barrett thì: Mỗi thành viên tương ứng với bộ các tham số sau:
tRed (N ) = 2.tM (N ). • Số nguyên tố p có dạng p = 2.n + 1 với len(p)
tinv (N ) = tgcd (N ) = tJacobi (N ) = O(N 2 ) (phép = L.
toán bit). • Hợp số n có dạng n = q.q 0 là hai số nguyên tố
lẻ khác nhau sao cho việc phân tích n ra thừa số
C. Một số quy đổi là khó (với lược đồ Rabin-Schnorr thì q, q 0 ≡ 3
(mod 4)).
tm (N ) = 3.tM (N ).
• Phần tử sinh g có cấp bằng n.
tm (L) = 3log2 (L/N ) × tm (N ) (1) • Tham số mật x ∈ hgi (nhóm cyclic sinh bởi g
trong GF(p)) và tham số công khai y = g x mod
Đặc biệt
p (với lược đồ RSA-Schnorr thêm số mũ mật d,
tm (2N ) ≈ 3 × tm (N ) (2) số mũ công khai e thỏa mãn e.d mod φ(n) = 1
với φ là số Euler).
Theo phương pháp bình phương-nhân thì
Khi này khóa ký và khóa kiểm tra chữ ký:
texp (N, L) = 1.5 × N × tm (L) (3) • Trong lược đồ Rabin-Schnorr lần lượt là:
Theo phương pháp nhị phân thì (p, n, q, q 0 , x) và (p, n, y).
√ • Trong lược đồ RSA-Schnorr lần lượt là:
tinv (N ) = tgcd (N ) = tJacobi (N ) ≈ N .tM (N ) (p, n, q, q 0 , d, x) và (p, n, e, y).
(4)
2) Lược đồ Rabin-Schnorr: Thuật toán 1,2.
Công thức Garner
Cho n = p.q là tích của hai số nguyên tố khác
Thuật toán 1: Thuật toán tạo chữ ký của
nhau. Khi đó với mỗi a ∈ Zn , ký hiệu ap = a mod
người có khóa ký là (p, n, q, q 0 , x)
p, aq = a mod q , thì:
Input: m ∈ M
a = (c(ap − aq ) + aq ) mod n (5) Output: (r, s) ∈ S
1 k ∈R (0, n)
với c = q.(q −1 mod p) (6) 2 u ← g k mod p
3 r ← H(m||u)
giá trị a được xác định từ (ap , aq ) được ký hiệu là
4 a ← (k − x.r) mod n
CRT (ap , aq ). a a
5 if (( q ) = −1) or (( q 0 ) = −1) then goto 1
0
6 sq ← a(q+1)/4 mod q ; s0q ← a(q +1)/4 mod q 0
D. Bảng kích thước tương đương về độ an toàn của
7 s ← CRT (sq , sq 0 )
các tham số RSA và logarit rời rạc (DL)
8 return (r, s)
Tham số L = len(p) đối với DL và L = len(n) đối
với RSA.
Tham số N = len(q ) đối với DL. 3) Lược đồ RSA-Schnorr: Thuật toán 3,4.
SỐ 01 (CS.01) 2020 TẠP CHÍ KHOA HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG 51
Thuật toán 2: Thuật toán kiểm tra chữ ký thì thuật toán kiểm tra bổ thêm điều kiện (s < n/2).
của người có khóa kiểm tra là (p, n, y) Lược đồ RSA-Schnorr có lỗi gống hệt như lỗi thứ hai
Input: (m, (r, s)) ∈ M × S của lược đồ Rabin-Schnorr và theo chúng tôi cũng
Output: "Accept" nếu chữ ký là hợp lệ và cần sửa đổi bước 4 trong thuật toán ký của lược đồ
"Reject" trong trường hợp ngược lại này giống như đã sửa đối với lược đồ Rabin-Schnorr.
1 a ← s2 mod n Chú ý 1. Với n là tích của hai số nguyên tố khác
2 u ← g a .y r mod p nhau q và q 0 ta có:
3 r 0 ← H(m||u) (gcd(a, n) 6= 1) ⇔ (a mod q = 0) hoặc (a mod q 0
4 If (r = r 0 ) then return "Accept" = 0).
5 Else return "Reject" 2) Nâng cao tính hiệu quả cho lược đồ Rabin-
Schnorr và RSA-Schnorr: Xuất phát từ lược đồ
ElGamal, các lược đồ phát triển của nó như DSA,
Thuật toán 3: Thuật toán tạo chữ ký của GOST, Schnorr,... nhằm đạt được tính hiệu quả cao
người có khóa ký là (p, n, q, q 0 , d, x) đều có chung một giải pháp đó là đưa thêm vào tham
Input: m ∈ M số miền N vừa đủ lớn sao cho bài toán tìm các logarit
Output: (r, s) ∈ S trong nhóm hgi có kích thước N-bít là "khó". Khi này
1 k ∈R (0, n) các lược đồ cải biên đều có hai đặc điểm:
2 u ← g k mod p • Thứ nhất. Kích thước chữ ký chỉ là 2.N bít.
3 r ← H(m||u) • Thứ hai. Các phép tính lũy thừa có số mũ N-bít.
4 a ← (k − x.r) mod n Trong khi cả hai lược đồ được trình bày ở trên luôn
5 s ← ad mod p có kích thước nhóm đúng bằng L - 1. Nếu như các
6 return (r, s) phép lũy thừa trong các thuật toán kiểm tra thường
có số mũ là (L - 1)-bít thì phép lũy thừa trong thuật
toán ký có thể điểu khiển được.
Thuật toán 4: Thuật toán kiểm tra chữ ký Chúng tôi có một số khuyến nghị như sau:
của người có khóa kiểm tra là (p, n, e, y) • Thứ nhất. Đưa vào tham số miền N giống như
Input: (m, (r, s)) ∈ M × S các cải biên nếu trên cụ thể nó được lấy tương
Output: "Accept" nếu chữ ký là hợp lệ và ứng với L theo bảng I, khi này bước 1 của các
"Reject" trong trường hợp ngược lại thuật toán ký nên chỉ là k ∈R (2N −1 , 2N ).
1 a ← se mod n Tương tự tham số mật x cũng chỉ cần là x ∈R
2 u ← g a .y r mod p (2N −1 , 2N ).
3 r 0 ← H(m||u) Tham số h = N .
4 If (r = r 0 ) then return "Accept" • Thứ hai. Số mũ công khai e nên có dạng 2t + 1,
5 Else return "Reject" thậm chí lấy cố định là 216 + 1 như khuyến cáo
đối với lược đồ RSA.
• Thứ ba. Đối với lược đồ Rabin-Schnorr, người
B. Một số phân tích và đề nghị sửa đổi cho hai lược ký tính sẵn và lưu như một tham số mật giá trị
đồ Rabin-Schnorr và RSA-Schnorr c = q.(q −1 mod p) mod n. Khi này chi phí cho
việc tính CRT (x, y) chỉ còn là tm (L).
1) Các lỗi của lược đồ Rabin-Schnorr và RSA-
Schnorr: Lược đồ Rabin-Schnorr có hai lỗi sau:
C. Các lược đồ sau khi sửa đổi
• Lỗi thứ nhất. Xuất phát từ "Nếu (r, s) được chấp
nhận bởi thuật toán kiểm tra M thì (r, −s) cũng 1) Các tham số: Các tham số cho lược đồ Rabin-
được chấp nhận". Như vậy sơ đồ là dễ giả mạo. Schnorr và RSA-Schnorr giống như nêu trong mục
• Lỗi thứ hai. Nếu gcd(s, n) 6= 1 thì đây chính là III-A1 với một số bổ sung sau:
ước của n. Trong trường hợp này lược đồ sẽ chỉ • Hàm tóm lược H:{0, 1}∞ → {0, 1}N .
còn dựa vào bài toán logarit rời rạc. • Tham số mật x ∈R (2N −1 , 2N ).
Để tránh các lỗi trên chúng tôi đề nghị bước 4 và • Số mũ công khai e = 216 + 1 dùng cho RSA-
bước 7 của thuật toán ký được sửa đổi như sau: Schnorr.
4. a ← (k − x.r) mod n; if (gcd(a, n) 6= 1) then • Tham số mật của người ký c = q.(q −1 mod p)
a a
a ∈ QR(n) khi ( ) = 1, ( ) = 1
p q Thuật toán 10: Thuật toán kiểm tra chữ ký
−2a ∈ QR(n) khi ( a ) = 1, ( a ) = −1
của người có khóa kiểm tra là (p, n, q, q 0 , x)
p q (9) Input: (m, (u, v, r, s)) ∈ M × S
b=
2a ∈ QR(n) khi ( a ) = −1, ( a ) = 1 Output: "Accept" nếu chữ ký là hợp lệ và
p q "Reject" trong trường hợp ngược lại
a a 1 if (s ≥ n/2) return "Reject"
−a ∈ QR(n) khi ( ) = −1, ( ) = −1
p q 2 b ← s2 mod n
3 if (u 6= v) then b ← b/2 mod n
4 if (v = −1) then b ← n − b
5 w ← g b .y r mod p
Sẽ thoả mãn:
6 r 0 ← H(m||w)
1) 7 If (r = r 0 ) then return "Accept"
Từ hai kết quả trên thì giá trị b tính được sau bước 4 TÀI LIỆU THAM KHẢO
của thuật toán 10 chính là giá trị a tính được ở bước
[1] B. V. Do, M. H. Nguyen, and N. A. Moldovyan, “Digital
4 trong thuật toán 9 hay
signature schemes from two hard problems,” in Multimedia
b = (k − x.r) mod n. and Ubiquitous Engineering. Springer, 2013, pp. 817–825.
Như vậy giá trị w tính được tại bước 5 trong thuật [2] L. Harn, “Public-key cryptosystem design based on factor-
toán 10 là ing and discrete logarithms,” IEE Proceedings-Computers
and Digital Techniques, vol. 141, no. 3, pp. 193–195, 1994.
w ≡ g b .y r ≡ g (k−x.r) .y r ≡ g k (mod p) [3] E. S. Ismail, N. Tahat, and R. R. Ahmad, “A new digital sig-
đúng bằng giá trị w tính được ở bước 2 thuật toán nature scheme based on factoring and discrete logarithms,”
9. Điều này dẫn đến hai giá trị r tính ở bước 3 thuật Journal of mathematics and statistics, vol. 4, no. 4, pp.
toán 9 và r0 tính ở bước 6 thuật toán 10 là trùng nhau, 222–225, 2008.
[4] E. S. Dermova, “Information authentication protocols on
hay đầu ra của thuật toán 10 là "Accept". Mệnh đề two hard problems. ph. d. dissertation,” Ph.D. dissertation,
đã được chứng minh. St. Petersburg State Electrotechnical University St. Peters-
burg, Russia, 2009.
D. Tính hiệu quả của lược đồ Williams-Rabin [5] S. Vishnoi and V. Shrivastava, “A new digitalsignature
algorithm based on factorization and discrete logarithm
Biết rằng trong hai lược đồ chữ ký dựa trên hai bài problem,” 2012.
toán khó Rabin-Schnorr sửa đổi và RSA-Schnorr sửa [6] N.-Y. Lee and T. Hwang, “Modified harn signature
đổi thì thuật toán ký của lược đồ thứ hai hiệu quả scheme based on factorising and discrete logarithms,” IEE
Proceedings-Computers and Digital Techniques, vol. 143,
hơn nhưng thuật toán kiểm tra chữ ký thì ngược lại. no. 3, pp. 196–198, 1996.
Để có những kết luận về tính hiệu quả của lược đồ [7] S. Chiou and Y. He, “Remarks on new digital signature
mới thành lập chúng tôi sẽ thực hiện so sánh thuật algorithm based on factorization and discrete logarithm
problem,” International Journal of Computer Trends and
toán ký của nó với lược đồ thứ hai và so sánh thuật Technology (IJCTT), vol. 4, pp. 3322–3324, 2013.
toán kiểm tra với lược đồ thứ nhất. Kết quả chop [8] J. Katz, A. J. Menezes, P. C. Van Oorschot, and S. A.
trong mệnh đề sau. Vanstone, Handbook of applied cryptography. CRC press,
1996.
Mệnh đề 4. Chi phí cho thuật toán thứ j , ký hiệu là [9] R. Crandall and C. B. Pomerance, Prime numbers: a
Tj (j = 5, 6, 7, 8, 9 và 10). Ta có: computational perspective. Springer Science & Business
Media, 2006, vol. 182.
T9 − T7 = 2.tJacobi (L/2). (13) [10] D. Hankerson, A. J. Menezes, and S. Vanstone, Guide to
elliptic curve cryptography. Springer Science & Business
T10 = T6 . (14) Media, 2006.
Chú ý, do [11] H. Williams, “A modification of the rsa public-key encryp-
tion procedure (corresp.),” IEEE Transactions on Informa-
(b + n) 1 khi b lẻ tion Theory, vol. 26, no. 6, pp. 726–729, 1980.
b/2 mod n =
b 1 khi b chẵn
SỐ 01 (CS.01) 2020 TẠP CHÍ KHOA HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG 55
FIX BUGS AND ENHANCE EFFICIENCY two hard problems that it is more efficient than the
FOR THE DIGITAL SIGNATURE SCHEME Rabin-Schnorr scheme in the signing algorithm.
BASED ON TWO HARD PROBLEMS
Keywords: Digital signature, discrete logarithm
Abstract: Digital signature schemes based on two problem, integer factorization problem, two hard
problems.
hard problems will be higher security than the
scheme based on a single hard problem in case one
Lều Đức Tân là Tiến sĩ toán học, từng công tác tại Học viện Kỹ
of the two hard problems was solved. In recent years, thuật Mật mã, hiện nay đã nghỉ hưu. Hướng nghiên cứu chính:
many researchers have proposed the digital signature toán học và mật mã.
scheme based on the discrete logarithm problem and
Hồ Kim Giàu Tốt nghiệp Đại học Khoa
integer factorization problem. In particular, two pub- học - Tự nhiên, TP. Hồ Chí Minh năm
lished schemes are Rabin-Schnorr and RSA-Schnorr 2005. Nhận bằng Thạc sỹ tại Học viện
[1]. In this paper, we point out some bugs that lead Bưu chính Viễn thông TP. Hồ Chí Minh
năm 2011. Đơn vị công tác: Trường Đại
to the possibility of forging signatures or schemes
học Thông tin liên lạc, Khánh Hoà. Hiện
depending only on a single hard problem of the two đang làm nghiên cứu sinh tại Học viện Kỹ
proposed schemes, and the disadvantages leading to thuật Quân sự. Email: hkgiau@gmail.com.
inefficiency of these schemes. In addition, this paper Hướng nghiên cứu hiện nay: An toàn và
bảo mật thông tin.
proposes a new digital signature scheme based on
SỐ 01 (CS.01) 2020 TẠP CHÍ KHOA HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG 56