Phát triển thuật toán chữ ký số dựa trên hệ mã Poligh - Hellman
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 hoàn toà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 hoàn toà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].
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Tóm tắt nội dung tài liệu: 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 PHÁT TRI ỂN THU ẬT TOÁN CH Ữ KÝ S Ố D ỰA TRÊN HỆ MÃ POLIGH - HELLMAN Nguy ễn V ĩnh Thái 1, L ưu H ồng D ũng 2 Tóm t ắt: Bài báo đề xu ất xây d ựng thu ật toán ch ữ ký s ố trên c ơ s ở phát tri ển h ệ mã khóa bí mật Poligh – Hellman. Thu ật toán ch ữ ký m ới đề xu ất có nguyên t ắc làm vi ệc t ươ ng t ự thu ật toá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 toà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 hoàn toà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 hoàn toà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 toán hình thành tham s ố và khóa Thu ật toá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 toán mã hóa và gi ải mã a) Thu ật toán mã hóa: Thu ật toá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 = me 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ì hoàn toà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 toán hình thành tham s ố và khóa, thu ật toán ký và ki ểm tra ch ữ ký nh ư sau: 2.2.1 Thu ật toá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 toán logarit r ời r ạc trên Z p 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 toá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 = ((dx ) 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 d2 = ((dx ) mod( p − )1 × (ex ) mod( p − )1 − (dx ) mod p × (ex ) mod p)mod( p − )1 Ki ểm tra n ếu: gcd( d2 , 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 toá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) d1 [2]. Hình thành ph ần th ứ nh ất c ủa ch ữ ký: S1 = (m) mod p d 2 [3]. Hình thành ph ần th ứ hai c ủa ch ữ ký: S2 = (m) mod p [4]. Ch ữ ký s ố t ươ ng ứng v ới b ản tin M là c ặp: S = (S 1, S 2). b) Thu ật toán ki ểm tra Thu ật toá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 = S2 × (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 toà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 toán MTA 17.3 – 01 Tính đúng đắn c ủa thu ật toá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ì: me. d mod p = m . Ch ứng minh: Th ật v ậy, ta có: d = e−1 mod( p − )1 . Nên: d× emod( 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 = mk.( p−1) + 1 mod p = (mk.( p−1) mod p)× mmod p ()p−1 = (()mk mod p)× mmod p = 1× mmod 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 ()e. d t−1 m()()()e. d mod p = m e. d mod p = (me. d mod p) mod p t−1 ()e. d t−2 t−2 = m()e. d mod p = ()me. d mod p mod p = m()e. d mod p t 3 ()e. d − t−3 = ()me. d mod p mod p = m()e. d mod p .......... .......... .......... .......... .......... .......... .......... .......... .......... .. 3 ()e. d 2 2 = m()e. d mod p = ()me. d mod p mod p = m()e. d mod p e. d = ()me. 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 , t 0 ≤ m < p , 1 < t< p −1 , e = ((ex ) mod p)mod( p − )1 , t d1 = ((d x ) mod p)mod( p − )1 , t t t t d2 = ((dx ) mod( p − )1 × (ex ) mod( p − )1 − (dx ) mod p × (ex ) mod p)mod( p − )1 , d1 d 2 e 0 ≤ m < p , C1 = (m) mod p , C2 = (m) 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 = ()()md 2 mod p × md1 mod p mod p = md 2 × md1 . e mod p ()()()()()()d t mod p−1 . e t mod p−1 − d t mod p. e t mod p mod ()p−1 = m( x x x x ) × ()d t mod p mod ()()p−1 . e t mod p mod ()p−1 × m()x ()x mod p ()()()()()d t . e t mod p−1 d t . e t = m x x mod p = m x x mod p ()()e t . d t Theo B ổ đề 2, ta có: m x x mod n = m Từ đây suy ra: m = m Mệnh đề được ch ứng minh. 2.2.5 M ức độ an toàn c ủa thu ật toán MTA 17.3 – 01 Mức độ an toàn c ủa thu ật toá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 toán hình thành khóa ở mục 2.1.1 , hoàn toà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). Ngoài ra, vi ệc tính d1, d2 b ằng cách gi ải bài toán logarit r ời r ạc t ừ: d1 d 2 S1 = (m) mod p và: S2 = (m) mod p c ũng không kh ả thi, vì đây là bài toá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 toá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 toá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 toàn c ủa RSA c ũng hoàn toà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ý RSA S = (m)d mod n MTA 17.3 – 01 d1 S1 = (m) mod p d 2 S2 = (m) 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 toán ki ểm tra c ủa RSA và MTA 17.3 – 01 Thu ật toán Thu ật toán ki ểm tra RSA m = (S )e mod n if m = H (M ) then S = true MTA 17.3 – 01 e m = S2 × (S1 ) mod p if m = H (M ) then (S 1,S 2) = 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 toá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 toá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 toán RSA: Thời gian hình thành ch ữ ký là: (T exp + Th) Thời gian ki ểm tra ch ữ ký là: (T exp + T h) Tổng th ời gian th ực hi ện: (2Texp + 2T h ) 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à: (T exp + T h + Tmul ) Tổng th ời gian th ực hi ện: (3Texp + 2T h +T mul ) 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 Thu ật toán Tổng th ời gian th ực hi ện 1 RSA 2Texp + 2Th 2 MTA 17. 3 – 01 3Texp + 2Th + T mul 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 toán m ới đề xu ất có nguyên 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 toàn c ủa l ược đồ. M ột s ố phân tích s ơ b ộ v ề độ an toàn và hi ệu qu ả th ực hi ện cho th ấy kh ả n ăng ứng d ụng c ủa thu ật toán m ới đề xu ất là hoàn toà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 GF(p) and its Cryptographic Significance ,” IEEE Trans. on Info. Theory Vol. IT- 24(1) pp. 106-110 (Jan. 1978). [2] 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. 120- 126. [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.469–472. [4] National Institute of Standards and Technology, NIST FIPS PUB 186-3. Digital Signature Standard, US Department of Commerce, 1994. [5] 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). [6] R. Kenneth, “Elementary Number Theory and its Applications” , AT & T Bell Laboratories, 4th Edition, ISBN: 0-201- 87073-8, 2000. [7] Mark Stamp, Richard M. Low , “ Applied cryptanalysis: Breaking Ciphers in the Real World”. John Wiley & Sons, Inc., ISBN 978-0-470-1. [8] 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 Vi ện CNTT, Vi ện KH và CN QS 2 Khoa CNTT, H ọc vi ện KTQS. Email: nguyenvinhthai@gmail.com. Tạp chí Nghiên c ứu KH&CN quân s ự, S ố Đặc san CNTT, 12 - 2017 185
File đính kèm:
- phat_trien_thuat_toan_chu_ky_so_dua_tren_he_ma_poligh_hellma.pdf