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 trên Zp
Trong [1] đề 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 (Discrete Logarithm Problem)
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 [2 – 9] 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 [1] 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.
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Tóm tắt nội dung tài liệu: 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 trên Zp
= lq, q|(p-1) Từ (8) và (9) ta có: 1 p u y 1 y x x y 1 E [2]. select α: 1 2 1 2 1 1 1 p 1 / q x x y Z u mod q k [3]. x1 mod p 1 2 1 [4]. if (x1 = 1) then goto [2] Hay: 1 1 u y1 y2 1 x1 x2 y1 E [5]. select x2: 1 x2 q (10) 1 1 x x 1 x1 x2 y1 Z mod q k 1 2 x1 .x2 [6]. y1 x1 mod p , y2 x1 mod p Từ (10), suy ra: [7]. return {q, x1, x2, y1, y2} 1 1 1 u y1 y2 1 k x1 x2 y1 E Chú thích: x 1 x y 1 Z mod q - len(.) : Hàm tính độ dài (theo bit) của một số nguyên. 1 2 1 Hay: - p: Tham số hệ thống/tham số miền. 1 1 1 u y1 y2 1 k x1 y1 E - q, x1, x2: Khóa bí mật. (11) x y 1 E x 1 Z mod q - y1, y2: Khóa công khai của đối tượng ký. 2 1 1 2.2.2. Thuật toán ký Từ (11) và (8), có thể tính thành phần thứ nhất của chữ ký theo (2): Giả sử (R,S) là chữ k ý lên bản tin M, u là 1 giá trị R x u mod p trong khoảng (1,q) và R được tính từ u theo công thức: 1 u (2) và thành phần thứ 2 theo (3): R x1 mod p S x v mod p Và S được tính từ v theo công thức: 1 v (3) Từ đây thuật toán ký được mô tả trên Bảng 2 như sau: S x1 mod p Bảng 2. Thuật toán k ý Ở đâ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 đồ Input: p, q, x1, x2, y1, y2, M. có dạng: Output: (R,S). y1 y2 E R.S mod p S R y1 y2 mod p [1]. E H(M ) Với: 3 TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG – Vol. 17 No. 8, 2019. [2]. select k: 1 k q 2.2.4. Tính đúng đắn của lược đồ mới đề xuất k Điều cần chứng minh ở đây là: Cho p, q là 2 số Z x mod p [3]. 1 nguyên tố với: q | ( p 1) , H : 0,1 Z n , | q | | n | | p | , 1 1 1 p 1 / q x1 x2 [4]. u y1 y 2 1 k x1 y1 E , , , 1 p x1 mod p 1 x2 q y1 x1 mod p 1 1 1 x1 .x2 k x2 y1 E x1 Z mod q , , , , , y2 x1 mod p E H M 1 k q Z x1 mod p 1 1 u y 1 y 1 k x y 1 E x y 1 E x 1 Z mod q [5]. v y1 u y 2 x1 E 1 2 1 1 2 1 1 1 , 1 1 , v y1 u y2 x1 E x2 E x1 Z mod q x2 E x1 Z mod q R x u mod p , S x v mod p . Nếu: Z R S mod p , [6]. R x u mod p 1 1 1 y1 , y2 E Z thì: . A S mod p B R y1 y 2 mod p A B [7]. S x v mod p 1 Tính đúng đắn của thuật toán mới đề xuất được chứng [8]. return (R,S) minh như sau: Từ (3), (8) và (12) ta có: Chú thích: A S y1 mod p x v.y1 mod p - M: bản tin cần ký, với: . 1 M {0,1} 1 1 (15) y1 . u.y2 x1 .E x2 . E x1 .Z .y1 x mod p - (R,S): chữ ký của U lên M. 1 u.y x .E x . E x 1 .Z x 2 1 2 1 mod p 2.2.3. Thuật toán kiểm tra chữ ký 1 Thuật toán kiểm tra của lược đồ được giả thiết là: Với: 1 1 1 y1 y2 E R.S mod p S R y y mod p u y1 y 2 1 k x1 y1 E 1 2 x y 1 E x 1 Z mod q Ở đây, E là giá trị đại diện của bản tin cần thẩm tra: 2 1 1 E H (M ) . Nếu M và chữ ký (R,S) thỏa mãn đẳng thức Từ (2), (3), (5), (8), (11) và (14) ta lại có: u v trên thì chữ ký được coi là hợp lệ và bản tin sẽ được xác Z R S mod p x1 x1 mod p 1 1 thực về nguồn gốc và tính toàn vẹn. Ngược lại, thì chữ ký u y1 . u.y2 x1 .E x2 . E x1 .Z x1 mod p 1 1 1 1 bị coi là giả mạo và bản tin bị phủ nhận về nguồn gốc và u u. y1 .y2 y1 .x1 .E y1 .x2 . E x1 .Z x1 mod p tính toàn vẹn. Do đó, nếu vế trái của đẳng thức kiểm tra 1 1 1 1 u. y1 . y2 1 y1 .x2 . E x1 .Z y1 .x1 .E x mod p được tính theo: 1 1 1 1 1 1 1 1 1 1 y1 . y2 1 . k x1 . y1 .E x2 . y1 . E x1 .Z . y1 .y2 1 . x2 . y1 . E x1 .Z y1 .x1 .E y1 x A S mod p (12) 1 1 1 1 1 1 1 k x2 . y1 . E x1 .Z x1 . y1 .E x2 . y1 . E x1 .Z y1 .x1 .E mod p x1 mod p và vế phải được tính theo: k x1 mod p Z B R y2 y E y Z mod p (13) 1 2 (16) ở đây: Z R S mod p (14) Thay (1), (2), (5) và (16) vào (13) ta được: y2 E Z Thì điều kiện chữ ký hợp lệ là: A = B B R y1 y2 mod p u.y x x .E x 1.x .Z (17) Khi đó, thuật toán kiểm tra của lược đồ mới đề xuất x 2 x 1 2 x 1 2 mod p được mô tả trong Bảng 3 như sau: 1 1 1 u.y x .E x . E x 1.Z x 2 1 2 1 mod p Bảng 3. Thuật toán kiểm tra 1 Từ (15) và (17) suy ra điều cần chứng minh: A B Input: p, y1, y2, M, (R,S). 2.2.5. Ví dụ Output: true / false. Tính đúng đắn của lược đồ mới đề xuất được minh [1]. E H(M ) họa bằng một ví dụ số như sau: y a. Sinh tham số và khóa (Bảng 1): [2]. A S 1 mod p Input: p – số nguyên tố, lq – độ dài (tính theo bit) của [3]. Z R S mod p số nguyên tố q. y2 E Z [4]. B R y1 y2 mod p Output: q, x1, x2, y1, y2. [5]. if ( A B) then {return true } - Giá trị của p: 1112504748194107058548379149876527136337231 else {return false } 9494651382867527128102052391566875979592156 Chú thích: 8156524417444891805426748144310226815292210 56687456481556094275955901 - M, (R,S): bản tin, chữ ký cần thẩm tra. - Giá trị của q: - Nếu kết quả trả về là true thì tính toàn vẹn và nguồn 1396040063414249106233756715423506814076734 gốc của M được khẳng định. Ngược lại, nếu kết quả là 227141 false thì M bị phủ nhận về nguồn gốc và tính toàn vẹn. - Giá trị của x1: Nguyễn Đức Thụy, Lưu Hồng Dũng 4 4058370318607681007755510762685178271365232 - Giá trị của E tính được: 1929471000568735620774126567223984754965898 9947977578985497828433112196137971551981039 1628005083289795572876280216639462805193338 19360 400762227172605620843386 - Giá trị của Z tính được: - Giá trị của x : 2 6906971967963642513654078827923678321013235 1336469017197379871919685315068540686272278 4165420687120820589978943542468944086437422 035577 2743202530983070198874182835401612482869547 - Giá trị của y1: 3639138169566805153939123 4166414543853754477463513432272555621490994 - Giá trị của A tính được: 1901511883506834222768226003954066407701818 4672624538388502266835853716710549106327303 7011737172556088349519326398149222698213562 0654205315339132641545609008093755946635143 5357462427830114211211397 0085314736282096802082511226037032882409747 - Giá trị của y2: 8248327543711674383209614 3444900405691608012655812518275077028167817 - Giá trị của B tính được: 3954520452155461712791247704263118008086208 4672624538388502266835853716710549106327303 1531110700411769515287169190952536509099543 0654205315339132641545609008093755946635143 2125038309781498783298331 0085314736282096802082511226037032882409747 b. Sinh chữ ký (Bảng 2): 8248327543711674383209614 Input: p, q, y1, y2, x1, x2, M. Output: (R,S) = true. Output: (R,S). + Trường hợp 2: - Bản tin: M = “THIS IS A NEWDIGITAL - Bản tin: M = “THIS IS A NEWDIGITAL SIGNATURE ALGRITHM !” SIGNATURE ALGRITHM ” - Giá trị của k: - Giá trị của R cần kiểm tra: 1255212206829023352132843655989569922266921 4449911408752777649244040466206307370345414 693676 1929343934596076092067962791347983369564752 - Giá trị của E tính được: 9435255945295141087456014749221312569125192 0262737597326392043100028 9947977578985497828433112196137971551981039 19360 - Giá trị của S cần kiểm tra: - Giá trị của R tính được: 8726662134419522036019694497359990811104394 1598406241186524326179846189573383626435667 4449911408752777649244040466206307370345414 0716353450614720987111795916106614857121946 1929343934596076092067962791347983369564752 9884581337455422383981655 9435255945295141087456014749221312569125192 0262737597326392043100028 - Giá trị của E tính được: - Giá trị của S tính được: 4594281291465525110174667743773336338947794 35085 8726662134419522036019694497359990811104394 1598406241186524326179846189573383626435667 - Giá trị của Z tính được: 0716353450614720987111795916106614857121946 6906971967963642513654078827923678321013235 9884581337455422383981655 4165420687120820589978943542468944086437422 c. Kiểm tra chữ ký (Bảng 3): 2743202530983070198874182835401612482869547 3639138169566805153939123 Input: p, y1, y2, (R,S), M. - Giá trị của A tính được: + Trường hợp 1: 4672624538388502266835853716710549106327303 - Bản tin: M = “THIS IS A NEWDIGITAL 0654205315339132641545609008093755946635143 SIGNATURE ALGRITHM !” 0085314736282096802082511226037032882409747 - Giá trị của R cần kiểm tra: 8248327543711674383209614 4449911408752777649244040466206307370345414 - Giá trị của B tính được: 1929343934596076092067962791347983369564752 2092530588255877058475346020861947849287161 9435255945295141087456014749221312569125192 9098055755472151142456277874491594998297359 0262737597326392043100028 0481783036341432328353498341496594709850878 - Giá trị của S cần kiểm tra: 8639292155159467540424063 8726662134419522036019694497359990811104394 Output: (R,S) = false. 1598406241186524326179846189573383626435667 + Trường hợp 3: 0716353450614720987111795916106614857121946 9884581337455422383981655 - Bản tin: M = “THIS IS A NEWDIGITAL 5 TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, ĐẠI HỌC ĐÀ NẴNG – Vol. 17 No. 8, 2019. SIGNATURE ALGRITHM !” kiện: - Giá trị của R cần kiểm tra: y1 y2 R.S mod p E S R y1 y2 mod p (18) 4449911408752777649244040466206307370345414 Từ (2.12), nếu chọn trước R rồi tính S thì khi đó điều 1929343934596076092067962791347983369564752 kiện (18) sẽ có dạng: 9435255945295141087456014749221312569125192 y R.S mod p S 1 a y mod p 19) 0262737597326392043100020 2 - Giá trị của S cần kiểm tra: Còn nếu chọn trước S rồi tính R thì khi đó điều kiện 8726662134419522036019694497359990811104394 (18) sẽ trở thành: y R.S mod p 1598406241186524326179846189573383626435667 R 2 b y mod p (20) 2 0716353450614720987111795916106614857121946 Với a, b là hằng số, dễ thấy rằng (19) và (20) cũng là 9884581337455422383981650 một dạng bài toán khó chưa có cách giải tương tự bài toán - Giá trị của E tính được: logarit rời rạc kết hợp khai căn trên Zp. 9947977578985497828433112196137971551981039 Kết luận 19360 Bài báo đề xuất xây dựng thuật toán chữ k ý số dựa - Giá trị của Z tính được: trên tính khó giải của bài toán logarit rời rạc – khai căn 3844497704372142663146652508134385887429567 trên Zp. Mức độ an toàn của các thuật toán xây dựng theo 1303561714050415768364551394492036594500866 phương pháp này sẽ được đảm bảo bằng mức độ khó của 2358048595180941298839593305260276003644856 việc giải bài toán trên. Ở đây, bài toán logarit rời rạc kết 6748451335740220074232991 hợp khai căn trên Zp là một dạng bài toán khó mới, lần - Giá trị của A tính được: đầu được đề xuất và ứng dụng trong việc xây dựng thuật 1406677822597821802010526057075954693241085 toán chữ ký số. Từ phương pháp mới đề xuất có thể xây 6857650576352585936590763908843256504202090 dựng một lớp thuật toán chữ ký số có độ an toàn cao cho 1655785689180545584176292246996396677465791 các ứng dụng trong thực tế. 6245247844607175313754533 Tài liệu tham khảo - Giá trị của B tính được: [1] Nguyen Duc Thuy and Luu Hong Dung, “A New Construction Method of Digital Signature Algorithms”, IJCSNS International 9939385551582310543738421446931192840015113 Journal of Computer Science and Network Security. Vol. 16 No. 12 8197085285633813123513787042678692559553651 pp. 53-57, December 2016. ISSN: 1738 - 7906. 7098339876103450401240752626350520689260376 [2] Q. X. WU, Y. X. Yang and Z. M. HU, "New signature schemes 3153501037477621806591752 based on discrete logarithms and factoring", Journal of Beijing University of Posts and Telecommunications, vol. 24, pp. 61-65, 2.2.5. Mức độ an toàn của lược đồ mới đề xuất January 2001. [3] Z. Y. Shen and X. Y. Yu, "Digital signature scheme based on Mức độ an toàn của lược đồ mới đề xuất có thể đánh discrete logarithms and factoring", Information Technology, vol. giá qua khả năng chống lại một số dạng tấn công như: 28,pp. 21-22, June 2004. - Tấn công khóa bí mật [4] Shimin Wei, “Digital Signature Scheme Based on Two Hard Problems”, IJCSNS International Journal of Computer Science and Ở lược đồ mới đề xuất, cặp tham số x1, x2 cùng được Network Security, VOL.7 No.12, December 2007. [5] Eddie Shahrie Ismail, Tahat N.M.F., Rokiah. R. Ahmad, “A New sử dụng làm khóa bí mật để hình thành chữ k ý. Vì thế, Digital Signature Scheme Based on Factoring and Discrete lược đồ chỉ bị phá vỡ nếu cả 2 tham số này cùng bị lộ, nói Logarithms”, Journal of Mathematics and Statistics, 04/2008; 12(3). cách khác là kẻ tấn công phải giải được bài toán logarit DOI: 10.3844/jmssp.2008.222.225 Source:DOAJ. rời rạc kết hợp khai căn trên Zp. Do đó, mức độ an toàn [6] Qin Yanlin , Wu Xiaoping,“ New Digital Signature Scheme Based on both ECDLP and IFP”, Computer Science and của lược đồ mới đề xuất xét theo khả năng chống tấn công Information Technology, 2009. ICCSIT 2009. 2nd IEEE làm lộ khóa bí mật được đánh giá bằng mức độ khó của International Conference on, 8-11 Aug. 2009, E-ISBN : 978-1- việc giải được DLRP. Cần chú ý, DLRP là một dạng bài 4244-4520-2, pp 348 - 351. toán khó mới, mà ngay cả khi có các giải thuật thời gian [7] Swati Verma1, Birendra Kumar Sharma, “A New Digital Signature Scheme Based on Two Hard Problems”, International đa thức cho FRP và DLP cũng không có nghĩa là sẽ giải Journal of Pure and Applied Sciences and Technology, ISSN 2229 – được bài toán này. Ngoài ra, tham số q cũng được sử 6107, Int. J. Pure Appl. Sci. Technol., 5(2) (2011), pp. 55-59. dụng với vai trò khóa bí mật trong thuật toán ký. Như [8] Sushila Vishnoi , Vishal Shrivastava, ”A new Digital Signature vậy, để phá vỡ tính an toàn của thuật toán, kẻ tấn công Algorithm based on Factorization and Discrete Logarithm problem”, International Journal of Computer Trends and còn phải giải được bài toán tìm bậc của x1. Tuy nhiên, Technology, volume 3, Issue 4, 2012. việc tìm bậc của x1 là không thể thực hiện được, vì x1 ở [9] A.N. Berezin, N.A. Moldovyan, V.A. Shcherbacov, đây là 1 tham số bí mật. "Cryptoschemes Based on Difficulty of Simultaneous Solving Two Different Difficult Problems", Computer Science Journal of - Tấn công giả mạo chữ ký Moldova, vol.21, no.2(62), 2013. Từ thuật toán kiểm tra (Bảng 3) của thuật toán mới đề [10] N.A. Moldovyan, "Digital Signature Scheme Based on a New Hard Problem", Computer Science Journal of Moldova, vol.16, xuất cho thấy, một cặp (R,S) giả mạo sẽ được công nhận no.2(47), 2008 là chữ ký hợp lệ với một bản tin M nếu thỏa mãn điều Nguyễn Đức Thụy, Lưu Hồng Dũng 6 (BBT nhận bài: //201.., hoàn tất thủ tục phản biện: //201..) (The Board of Editors received the paper on /./201, its review was completed on //201) Thông tin về tác giả Nguyễn Đức Thụy: - Tốt nghiệp đại học ngành Công nghệ thông tin tại trường Đại học Ngoại ngữ - Tin học TP.HCM năm 2005, Thạc sĩ tại Học viện KTQS năm 2013; - Hiện đang công tác tại khoa CNTT – Trường Cao đẳng KT-KT TP.HCM; - Hướng nghiên cứu: An toàn và bảo mật thông tin; - Điện thoại: 0832555505. Lưu Hồng Dũng: - Tốt nghiệp đại học ngành Vô tuyến Điện tử tại Học viện KTQS năm 1989, Tiến sĩ tại Học viện KTQS năm 2013; - Hiện đang công tác tại khoa CNTT- Học viện KTQS; - Hướng nghiên cứu: An toàn và bảo mật thông tin; - Điện thoại: 0906000013.
File đính kèm:
- xay_dung_luoc_do_chu_ky_so_dua_tren_tinh_kho_cua_bai_toan_lo.pdf