Kết quả thực nghiệm

Một phần của tài liệu (LUẬN văn THẠC sĩ) lý thuyết lưới và ứng dụng trong mật mã luận văn ths toán học 604601 (Trang 76 - 87)

3 Ứng dụng của thuật toán LLL trong mật mã

3.3 Kết quả thực nghiệm

Các Tấn công 1, 2 và 3 đã được cài đặt thực tế trên bộ cơng cụ tính tốn đại số Magma với năng lực tính tốn CPU Intel Core i7-6700 3.4 Ghz, 8Gb RAM. Trong GOST R 34.10-2012, ta xét đường cong

E :y2 =x3+ax+b trong [ví dụ 7,[6]] được định nghĩa trên trường hữu hạn Fp, ở đây p=57896044618658097711785492504343953926 634992332820282019728792003956564821041 a=7 b=43308876546767276905765904595650931995 942111794451039583252968842033849580414 Cấp của nhóm các điểm đường cong elliptic E(Fp) là

q=5789604461865809771178549250434395392 7082934583725450622380973592137631069619

Mã nguồn cài đặt 3 tấn công này lên GOST R 34.10-2012 được chúng tôi đặt trong [28]. Dưới đây là một số kết quả thực nghiệm mà chúng tơi đã đạt được.

Tấn cơng trên GOST R 34.10-2012 Kích thước của q (bít) Kích thước của a (bít) Kích thước của k (bít) Kích thước của k−1 (bít) Thời gian (giây) Tấn cơng 1 256 126 126 0,23 Tấn công 2 256 80 256 80 1,79 Tấn công 3 256 90 256 90 1,44

Bảng 3.1: Kết quả thực nghiệm các tấn công lên GOST R 34.10-2012 P,[6]] được định nghĩa trên trường hữu hạn Fp, ở đây

p=11579208921035624876269744694940757353 0086143415290314195533631308867097853951

a =3

b =410583637251521421293261297800472684091 14441015993725554835256314039467401291 Cấp của nhóm các điểm đường cong elliptic E(Fp) là

q=11579208921035624876269744694940757352 9996955224135760342422259061068512044369 Tấn cơng trên ECDSA Kích thước của q (bít) Kích thước của a (bít) Kích thước của k (bít) Kích thước của k−1 (bít) Thời gian (giây) Tấn cơng 1 256 126 126 0,2 Tấn công 2 256 80 256 80 1,8 Tấn công 3 256 90 256 90 1,4

Bảng 3.2: Kết quả thực nghiệm các tấn công lên ECDSA

Trong DSA, ta sử dụng tự sinh gồm p có kích thước 1024 bít và q có kích thước 160 bít.

Tấn cơng trên DSA Kích thước của q (bít) Kích thước của a (bít) Kích thước của k (bít) Kích thước của k−1 (bít) Thời gian (giây) Tấn cơng 1 160 78 78 0,21 Tấn công 2 160 50 160 50 1,7 Tấn công 3 160 56 160 56 1,3

Kết luận

Trong luận văn này đã trình bày một số kiến thức cơ bản của lý thuyết lưới, phương pháp Coppersmith để tìm nghiệm nhỏ của đa thức một biến, bốn tấn công lên ba lược đồ chữ ký và một số điểm nhầm lẫn trong các bài báo [8], [23], [24].

Luận văn đã cho thấy một phần tầm quan trọng của thuật toán LLL trong lý thuyết số và mật mã. Các tấn công lên lược đồ chữ ký mà luận văn tìm hiểu cũng là nhưng tấn công gần đây nhất dựa trên lý thuyết lưới. Các nhầm lẫn trong [23], [8] có thể xuất phát từ chủ quan của tác giả và có thể được chỉnh sửa, tính khơng khả thi của [24] xuất phát từ việc tấn công được dựa trên một giả thiết mạnh. Trong đó, các đóng góp chính của luận văn bao gồm:

1. Dựa trên các phương pháp tấn công trong [2], [8], [23], [24] lên lược đồ chữ ký DSA, ECDSA áp dụng vào lược đồ chữ ký GOST R 34.10-2012.

2. Chỉ ra một số nhầm lẫn trong các bài báo [23], [24], và [8].

3. Cài đặt thực nghiệm các tấn công của Blake 2002, Poulakis 2011, Draziotis 2016 lên GOST R 34.10-2012.

Hiện nay, thuật tốn LLL gốc [16] đã có nhiều thuật tốn cải tiến về độ phức tạp và hiệu quả cài đặt như các thuật toán MLLL [26], BKZ [25], HKZ [15], FPLLL [27]. Việc tìm hiểu các thuật toán này là một hướng nghiên cứu tiếp sau luận văn này. Bên cạnh đó, lý thuyết lưới đang là một hướng được các nhà mật mã quan tâm nhiều khi các hệ mật xây dựng trên lưới được tin tưởng là có thể kháng lại các máy tính lượng tử điều mà các hệ mật truyền thống khơng làm được. Do đó, tìm hiểu việc xây dựng các hệ mật dựa trên lưới cũng là một hướng đi tiếp của luận văn.

Tài liệu tham khảo

[1] Padraic Bartlett. Finding all the roots: Sturm’s theorem. class notes, 2013.

[2] Ian F Blake and Theodoulos Garefalakis. On the security of the digi- tal signature algorithm.Designs, Codes and Cryptography, 26(1):87–

96, 2002.

[3] Dan Boneh and Glenn Durfee. Cryptanalysis of rsa with private key d less than n/sup 0.292. IEEE transactions on Information Theory,

46(4):1339–1349, 2000.

[4] Murray R Bremner. Lattice basis reduction: an introduction to the LLL algorithm and its applications. CRC Press, 2011.

[5] Don Coppersmith. Small solutions to polynomial equations, and low exponent rsa vulnerabilities. Journal of Cryptology, 10(4):233–260,

1997.

[6] Vasily Dolmatov and Alexey Degtyarev. Gost r 34.10-2012: Digital signature algorithm. 2013.

[7] Konstantinos Draziotis and Dimitrios Poulakis. Lattice attacks on dsa schemes based on lagrange’s algorithm. In International Con- ference on Algebraic Informatics, pages 119–131. Springer, 2013.

[8] Konstantinos A Draziotis. Dsa lattice attacks based on copper- smith’s method. Information Processing Letters, 116(8):541–545,

2016.

[10] PUB FIPS. 186-4: Federal information processing standards pub- lication. digital signature standard (dss). Information Technology Laboratory, National Institute of Standards and Technology (NIST), Gaithersburg, MD, pages 20899–8900, 2013.

[11] Nicolas Gama and Phong Nguyen. Predicting lattice reduction.

Advances in Cryptology–EUROCRYPT 2008, pages 31–51, 2008.

[12] Nicholas Howgrave-Graham. Finding small roots of univariate mod- ular equations revisited. InIMA International Conference on Cryp- tography and Coding, pages 131–142. Springer, 1997.

[13] ISO/IEC 14888-3:2006. Information technology – Security tech- niques – Digital signatures with appendix – Part 3: Discrete log- arithm based mechanisms. Standard, 2016.

[14] Antoine Joux. A new index calculus algorithm with complexity l (1/4+ o (1)) in small characteristic. InInternational Conference on Selected Areas in Cryptography, pages 355–379. Springer, 2013.

[15] Ravi Kannan. Improved algorithms for integer programming and related lattice problems. InProceedings of the fifteenth annual ACM symposium on Theory of computing, pages 193–206. ACM, 1983.

[16] Arjen Klaas Lenstra, Hendrik Willem Lenstra, and László Lovász. Factoring polynomials with rational coefficients. Mathematische Annalen, 261(4):515–534, 1982.

[17] Alexander May. Using lll-reduction for solving rsa and factorization problems., 2010.

[18] Daniele Micciancio and Panagiotis Voulgaris. A deterministic sin- gle exponential time algorithm for most lattice problems based on voronoi cell computations. SIAM Journal on Computing,

42(3):1364–1391, 2013.

[19] Phong Q Nguyen and Igor E Shparlinski. The insecurity of the digital signature algorithm with partially known nonces. Journal of Cryptology, 15(3), 2002.

[20] Phong Q Nguyen and Igor E Shparlinski. The insecurity of the el- liptic curve digital signature algorithm with partially known nonces.

Designs, codes and cryptography, 30(2):201–217, 2003.

[21] Phong Q Nguyen and Brigitte Vallée. The lll algorithm. Information Security and, 2010.

[22] John M Pollard. Monte carlo methods for index computation mod p. Mathematics of computation, 32(143):918–924, 1978.

[23] Dimitrios Poulakis. Some lattice attacks on dsa and ecdsa. Ap- plicable Algebra in Engineering, Communication and Computing,

22(5):347–358, 2011.

[24] Dimitrios Poulakis. New lattice attacks on dsa schemes. Journal of Mathematical Cryptology, 10(2):135–144, 2016.

[25] Claus-Peter Schnorr. A hierarchy of polynomial time lattice basis reduction algorithms. Theoretical computer science, 53(2):201–224,

1987.

[26] Charles C Sims. Computation with finitely presented groups, vol-

ume 48. Cambridge University Press, 1994.

[27] Damien Stehlé. Floating-point lll: theoretical and practical aspects. In The LLL Algorithm, pages 179–213. Springer, 2009.

[28] Khúc Xuân Thành. Mã nguồn cài đặt tấn công lên gost r 34.10-2012, 2017.

[29] Khúc Xuân Thành trao đổi với D. Poulakis. Question on paper: New lattice attacks on dsa schemes.

[30] Khúc Xuân Thành trao đổi với K. Draziotis. Question on paper : (ec)dsa lattice attacks based on coppersmith’s method.

Phụ lục

A.1 Phương pháp dãy Sturm

Dãy Sturm của một đa thức một biến p(x) là một dãy các đa thức được xây dựng dựa trên p(x) và đạo hàm của nó bởi một biến thể của thuật tốn Euclid cho đa thức. Định lý Sturm chỉ ra rằng số các nghiệm thực phân biệt của p(x) trong một khoảng bằng số lần thay đổi dấu của giá trị dãy Sturm tại các cận của khoảng đó.

Định nghĩa A.1. [1] Một dãy Sturm là một dãy hữu hạn các đa thức

p(x0), p1(x), . . . , pm(x) có bậc giảm dần với các tính chất sau:

• p0(x) là khơng chính phương (khơng có thừa số có dạng (q(x)2), với

q(x) là đa thức bất kỳ).

• Nếu a là nghiệm của p(x) thì dấu của p1(a) giống với dấu củap0(a) và p1(a), p0(a)6= 0.

• Nếu a là nghiệm của pi(x) với i nào đó, 0 < i < m thì

pi−1(a), pi+1(a) 6= 0. Hơn nữa, dấu của pi−1(a) là ngược với dấu của pi+1(a).

• Dấu của pm(x) luôn không thay đổi và pm(x)6= 0 với mọi x.

Mệnh đề A.2. [1] Cho trước một đa thức khơng chính phương p(x), với

cách xây dựng dưới đây cho ta một dãy Sturm:

• p(x) =p0(x). • p1(x) = p0(x).

• p2(x) = −rem(p0(x), p1(x)) = p1(x)q0(x) − p0(x), ở đây rem(p (x), p (x))là phần dư khi chia đa thức p (x)cho đa thức p (x).

• p3(x) = −rem(p1(x), p2(x)) = p2(x)q1(x)−p1(x).

• pk =−rem(pk−2(x), pk−1(x)) =pk−1(x)qk−2(x)−pk−2(x).

• Lặp lại q trình này tới khi nào ta thu được −rem(pm−1, pm) = 0,

ở đây pm(x)6= 0.

Chứng minh. Xem [1].

Định lý A.3. [1] Cho p(x) là một đa thức khơng chính phương,

p0(x), . . . , pm(x) là một dãy Sturm của p(x) và một khoảng (a, b) bất kỳ sao cho pi(a), pi(b)6= 0 với ibất kỳ. Với ξ là hằng số bất kỳ, ký hiệu σ(ξ)là số lần thay đổi dấu trong dãy p0(ξ), . . . , pm(ξ). Khi đó, p(x) có σ(a)−σ(b)

nghiệm phân biệt trong khoảng (a, b).

Chứng minh. Xem [1].

Thuật tốn tìm nghiệm của đa thức dựa trên dãy Sturm Đầu vào: Một đa thức p(x) = anxn +· · ·+a1x+a0, một sai số cho

phép ε và khoảng (a, b) mà ta muốn tìm nghiệm trong đó sao cho

pi(a), pi(b) 6= 0, với pi(x) bất kỳ trong dãy Sturm tương ứng của

p(x).

Đầu ra: Các nghiệm của p(x) trong khoảng mà ta muốn tìm với sai số cho phép ε.

Bước 1: Tính dãy Sturm p0(x), . . . , pm(x) tương ứng của p(x).

Bước 2: Tính k =σ(a)−σ(b).

(1) Nếu k = 0 thì p(x) khơng có nghiệm trong khoảng (a, b). (2) Nếu k = 1 thì áp dụng phương pháp chia đơi 2 để tìm nghiệm

của p(x).

(3) Trường hợp còn lại, k ≥2.

(a) Nếu k ≤ 2ε. Dừng và p(x) có k nghiệm tại (b+a)/2 trong sai số.

(b) Nếu k ≥2ε. Đặt c= (b+a)/2.

(i) Nếu pi(c) 6= 0 với 0 < i < m bất kỳ thì thực hiện lại Bước 2 với hai khoảng (a, c) và (c, b).

(ii) Nếu pi(c) = 0 với 0< i < m bất kỳ. Đặt d=c+ω (w là một lượng nhỏ sao cho d∈(a, b). Thực hiện lại Bước 2 với hai khoảng (a, d) và (d, b).

Ví dụ A.4. [1] Tìm tất cả các nghiệm của p(x) =x6 −4x3+x−2 với sai số là ±1/10 trong khoảng (−2,2).

Trước hết, ta tính dãy Sturm

p0(x) =x6−4x3+x−2. p1(x) = 6x5−12x2+ 1. p2(x) =−rem(x6−4x3+x−2,6x5−12x2+ 1) = 2x3−5x6 + 2. p3(x) =−rem(6x5−12x2+ 1,2x3− 5x6 + 2) = 18x2− 25x24 + 32. p4(x) =−rem(2x3− 5x6 + 2,18x2− 25x24 + 32) = 92687x93312x −51592592. p5(x) =−rem(18x2− 25x24 + 32,92687x93312x − 51592592) = −12568084416175324081 . Tại x= 2, ta có p0(x) p1(x) p2(x) p3(x) p4(x) p5(x) 32 145 16,33 71,42 −3,8×10−3 −71,68 Tại x=−2, ta có p0(x) p1(x) p2(x) p3(x) p4(x) p5(x) 92 −239 −12,33 75,58 −3,98 −71,68 Do đó, σ(−2)−σ(2) = 3−1 = 2. Xét c= 0, ta có p0(x) p1(x) p2(x) p3(x) p4(x) p5(x) -2 1 2 1,5 -1,99 −71,68

Do p(−2) = 92, p(0) =−2, p(2) = 32nênp(x) có một nghiệm trong khoảng (−2,0) và một nghiệm trong khoảng (0,2). Áp dụng phương pháp chia đơi trong cả hai khoảng [−2,0] và [0,2], ta có

khoảng [a, b] điểm giữa của [a, b] p(x) tại điểm giữa [−2,0] -1 p(−1) = 2. [−1,0] -0,5 p(−0,5)≈ −1,98. [−1,−0,5] -0,75 p(−0,75)≈ −0,88. [−1,−0,75] -0,875 p(−0,875)≈0,25. [−0,875,−0,75] -0,8125 p(−0,8125) = 0.

khoảng [a, b] điểm giữa của [a, b] p(x) tại điểm giữa

[0,2] 1 p(1) =−4. [1,2] 1,5 p(1,5) = −2,61. [1,5,2] 1,75 p(1,75) = 7,04. [1,5,1,75] 1,625 p(1,625)≈0,87. [1,5,1,625] 1,5625 p(1,5625) = 0. Do đó, x= 1,5625 và x=−0,8125 là các nghiệm của p(x).

Một phần của tài liệu (LUẬN văn THẠC sĩ) lý thuyết lưới và ứng dụng trong mật mã luận văn ths toán học 604601 (Trang 76 - 87)

Tải bản đầy đủ (PDF)

(87 trang)