1. Trang chủ
  2. » Công Nghệ Thông Tin

PHÂN TÍCH MODULUS n của hệ mã RSA TRONG TRƢỜNG hợp KHÓA yếu

6 199 1

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 6
Dung lượng 0,91 MB

Nội dung

VII-P-4 PHÂN TÍCH MODULUS N CỦA HỆ MÃ RSA TRONG TRƢỜNG HỢP KHÓA YẾU Nguyễn Đức Thân1, Ngô Xuân Huy2, Trần Đình Long3 1 2 Khoa Công nghệ Thông tin, Trường ĐH KHTN, ĐHQG-HCM Khoa Công nghệ Thông tin, Trường ĐH KHTN, ĐHQG-HCM 3 Trường ĐH Khoa học Huế TÓM TẮT Hệ mã RSA được sử dụng rất phổ biến trong thương mại điện tử, các ứng dụng mã hóa và bảo vệ thông tin. Do tính phổ biến của nó, hệ mã RSA phải đối mặt với nhiều nguy cơ tấn công, trong đó có tấn công trên khóa yếu. Trong bài báo này, chúng tôi khảo sát phân tích modulus N với trường hợp khóa cá nhân yếu, cụ thể với trường hợp d   N 1/4 . Kết quả nhận được cũng đặt ra một câu hỏi mở về điều kiện để phân tích được modulus N từ cặp khóa công khai ( N , e) . Từ khóa: RSA Cryptosystem, attack RSA, lattice based cryptography. MỞ ĐẦU Hệ mã công khai được sử dụng khá phổ biến hiện nay là hệ mã RSA, được tạo ra bởi Rivest, Shamir, và Adleman [11] vào năm 1978. Chúng được ứng dụng rộng rãi và mạnh mẽ trên internet như bảo mật, chứng thực cho các hệ thống thư điện tử, thẻ tín dụng. Tính bảo mật của hệ mã RSA được dựa trên độ khó của bài toán phân tích thừa số nguyên tố. N là tích của hai số nguyên tố lớn p và q , số mũ công khai e ed  1 mod  ( N )  và số mũ bí mật d . Các số mũ e và d liên hệ với nhau bởi với  ( N )  ( p  1)(q  1) p q được gọi là phi hàm Euler. Trong một hệ thống RSA thông thường, và xấp xỉ với nhau về chiều dài bit và Hệ thống RSA được mô tả bởi modulus e N . MC Thuật toán mã hóa và giải mã được cho bởi công thức lần lượt là d C  Me  mod N  ,  mod N  . Trong thực tế nảy sinh một số vấn đề là làm sao để giảm thời gian thực thi việc giải mã, hay là làm sao để giảm thời gian thực thi việc mã hóa [2][5]. Một trong số những phương pháp dùng để giảm thời gian thực thi việc giải mã đó là sử dụng số mũ bí mật d nhỏ. Thật không may, trong năm 1990, Wiener[9] đã chỉ ra rằng với d  N mật d dựa vào số cặp khóa công khai dN 0.292  e, N  1/ 4 thì có thể tìm lại được số mũ bí . Tiếp đến năm 1999, Boneh và Durfee[4] đã chứng tỏ rằng, với thì RSA không còn an toàn được giới thiệu lần đầu tiên bởi Coppersmith tại Eurocrypt'96[6]. Các thuật toán thu gọn dàn như thuật toán Gauss hay LLL có thể áp dụng vào việc tìm lại số mũ bí mật số trường hợp số mũ bí mật d trong một d nhỏ. N dựa trên thuật toán thu gọn Gauss trên dàn hai chiều để tìm ra khóa riêng d nhỏ, sau đó dựa vào d tìm được để phân tích N . Thêm vào đó muốn 1/4 p và khẳng định việc tồn tại hệ số   1 sao cho với mọi d   N thì khóa bí mật d và hai số nguyên tố q luôn được phục hồi từ cặp khóa công khai ( N , e) bằng cách sử dụng tấn công trên dàn hai chiều. Cụ thể với 1 4  N 42 2 thì khóa cá nhân d luôn được phục hồi từ cặp khóa ( N , e) công khai. Trong bài báo này chúng tôi sẽ trình bày cách phân tích modulus THU GỌN DÀN HAI CHIỀU Trong [1], Phong Q. Nguyen chỉ ra cách tìm số mũ bí mật d dựa trên bài toán tìm vectơ ngắn nhất của dàn hai chiều dùng thuật toán Gauss để thu gọn cơ sở. Và chỉ ra lý do đoán được trong dàn hai chiều với trường hợp d  N 1/4 . Tuy nhiên phiên bản tấn công bằng dàn này chỉ là mẹo giải.Giả sử p, q là hai số nguyên tố có cùng chiều dài tính bằng bit. Từ ed  1 mod  ( N )  tồn tại số nguyên ISBN: 978-604-82-1375-6 k sao cho ed  1  k ( N ) . 101 Báo cáo toàn văn Kỷ yếu hội nghị khoa học lần IX Trường Đại học Khoa học Tự nhiên, ĐHQG-HCM Xét dàn hai chiều được sinh bởi hai vectơ b1  (e, L N ) và b2  ( N , 0) thì L chứa vectơ 2 2 t  d  b1  k  b2  (ed  kN , d N ) . Chuẩn của‖ t‖  (ed  kN )  (d N )  d N , trong khi đó vol( L)  N 3/4 . Vectơ t có thể là vectơ ngắn nhất nếu d N  vol( L)  N 3/4 nghĩa là d  N 1/4 . Sử dụng thuật toán Gauss (Thuật toán 1) với hai vectơ b1 và b 2 nói trên. Sau khi thuật toán dừng sẽ cho ra hai vectơ b1* và b*2 . Chú ý rằng vectơ b1* là vectơ ngắn nhất trong dàn. Thuật toán Gauss sẽ dừng cỡ  ‖ b1‖ log1 2 2   *   3 lần lặp[7], với 2 là vectơ cực tiểu liên tiếp thứ hai của L . Nếu b1  t thì coi như ta  đã đoán thành công và tính ra số mũ bí mật d dựa vào vectơ b1 . Thuật toán 1: Thu gọn dàn Đầu vào: Cơ sở (b1, b 2 ) (b1* , b2* ) Đầu ra: Cơ sở thu gọn Repeat If‖ b2‖ ‖ b1‖ then Swap b1 and b 2 End if  b , b   m   1 22   ‖ b1‖  b2  b2   m b1 Until‖ b2‖ ‖ b1‖ Thuật toán 1. Thuật toán thu gọn dàn hai chiều. Bổ đề 1Cho N  pq với p, q là hai số nguyên tố thỏa p  q  2 p thì 2 N  p  N  q  2 N. 2 Chứng minh. Giả sử p  q  2 p nên ta có pq  q 2  2 pq hay N  q 2  2 N . Nên có Từ N  pq nên ta có q  Suy ra N và do p N  q  2 N nên L  R là một dàn được sinh bởi hai vectơ độc lập tuyến tính b1 , b2  R 2 . Sử dụng thuật toán thu gọn dàn Gauss cho hai vectơ b1 , b 2 của dàn b0 N  2 N. p 2 N  p  N (2). Từ (1) và (2) suy ra điều cần chứng minh ■ 2 Mệnh đề 1 Cho và N N  q  2 N (1). thỏa mãn‖ L thu được hai vectơ b1* , b*2 . Nếu vectơ b  L b‖ ‖ b*2‖ thì b  sb1* với s  Z . Chứng minh Từ bL có b  sb1*  rb*2 với s, r  Z . Giả sử có điều ngược lại r  0 , ta xét ba trường hợp sau: Trƣờng hợp 1: | s | 1 và | r | 1 . Với trường hợp này ta có ISBN: 978-604-82-1375-6 102 ‖ b‖ 2 =‖ sb1*  rb*2‖ 2 =‖ b1*  b 2‖ 2 =‖ b1*‖ 2 +‖ b*2‖ 2 2b1* , b*2   1 b1* , b*2   =‖ b ‖ 2‖ b ‖   * 2   2 ‖ b1‖  * 2 2 * 1 2 | b1* , b*2  | 1  cho ‖ b1*‖ 2 2 Vì nên 1 b1* , b*2    0. 2 ‖ b1*‖ 2 Do đó  1 b1* , b*2   ‖ b‖ ‖ b ‖ 2‖ b ‖   ‖ b*2‖ 2 . * 2   2 ‖ b1‖  2 * 1 2 * 1 2 Trƣờng hợp 2: s  1 hoặc r  1 . Nếu | s || r | thì‖ b‖ 2  s 2‖ b1*  b*2‖ 2  s 2‖ b*2‖ 2 ‖ b*2‖ 2 . Nếu | s || r | thì ‖ b‖ 2  s 2‖ b1*‖ 2  r 2‖ b*2‖ 2 2sr b1* , b*2   s 2‖ b1*‖ 2  r 2‖ b*2‖ 2 2 | sr | . | b1* , b*2  | =‖ b*2‖ 2  s 2‖ b1*‖ 2 (r 2  1)‖ b*2‖ 2 2 | sr | . | b1* , b*2  |  ‖ b*2‖ 2  s 2‖ b1*‖ 2 ( r 2  1)‖ b*2‖ 2  | sr | .‖ b1*‖ 2  ‖ b*2‖ 2  s 2‖ b1*‖ 2 (r 2  1)‖ b1*‖ 2  | sr | .‖ b1*‖ 2 (Do ‖ b 2‖ ‖ b1‖ )  ‖ b*2‖ 2 ( s 2  r 2  | sr | 1)‖ b1*‖ 2  ‖ b*2‖ 2   (| s |  | r |) 2  | sr | 1‖ b1*‖ 2  ‖ b*2‖ 2 (Do (| s |  | r |) 2  1  0) Trƣờng hợp 3: s  0 . Với trường hợp này có‖ Cả ba trường hợp xét ở trên đều đi đến‖ b‖ ‖ rb*2‖ ‖ b*2‖ do r  0 . b‖ ‖ b*2‖ , nên dẫn đến mâu thuẫn. Vì vậy r  0 hoặc b  sb1* .■ TẤN CÔNG RSA TRÊN DÀN HAI CHIỀU p Với hai số nguyên tố và ước lượng k và ed  kn như sau: q thỏa điều kiện p  q  2 p thì từ Bổ đề 1 có p  q  ( 2  1) N ta Mệnh đề 2 Cho N  pq là tích của hai số nguyên tố các số nguyên dương thỏa mãn p và q thỏa điều kiện p  q  2 p . d và e là 1  e, d   ( N ) và ed  1  k ( N ) thì k  d và | ed  kN | ( 2  1)d N . Chứng minh Từ e   ( N ) có 1  k ( N )  ed  d ( N ) . Do đó k  d  1 d . (N ) Từ ed  1  k (n)  k ( p  1)(q  1) có ed  1  k (n  1  p  q) . ISBN: 978-604-82-1375-6 103 Báo cáo toàn văn Kỷ yếu hội nghị khoa học lần IX Trường Đại học Khoa học Tự nhiên, ĐHQG-HCM p  q  ( 2  1) N có Do | ed  kN || k ( p  q 1)  1|| k ( p  q) | ( 2  1)k N  ( 2  1)d N ■ N ), b2  ( N ,0) và dàn L  R được sinh bởi hai vectơ b1 , b 2 . Thì Xét hai vectơ b1  (e, t  d  b1  k  b2  (ed  kN , d N ) là vectơ ngắn nhất của dàn L . Sử dụng thuật toán thu gọn dàn L Gauss cho cơ sở b1 , b 2 của dàn và thu được cơ sở thu gọn b1* , b*2 . Mệnh đề dưới đây ước lượng chuẩn của t b*2 . Mệnh đề 3. Cho N , e là hai số nguyên thỏa điều kiện như Chú ý 1và R 2 được sinh bởi * * hai vectơ b1  (e, N ) , b 2  ( N , 0) , và t  d  b1  k  b2  (ed  kN , d N ) . Hai vectơ b1 , b 2 là kết L là dàn trong quả sau khi chạy thuật toán Gauss cho cơ sở b1 , b 2 của L , thì ‖ t‖  4  2 2  d N , 3 ‖ b*2‖  N 4 . Chứng minh Từ Mệnh đề 2 có ‖ t‖  (ed  kn)2  (d n )2  Có det(L )  e det  N ( 2  1)d N  2  (d n ) 2  4  2 2  d N N * *   N N do det(L ) ‖ b1‖ .‖ b2‖ (Bất đẳng thức Hadamard) nêncó 0  3 được N N ‖ b1‖ .‖ b2‖ ‖ b2‖ . Vì vậy * * Mệnh đề 4.Nếu * 2 N 4 ‖ b*2‖ ■ b  L thỏa mãn t  sb, s  Z thì s  1 . Chứng minh Để ý thấy rằng gcd(d , k )  1 do ed  1  k ( p  1)(q  1) . Giả sử b  a  b1  b  b2  (ae  bN , a N ) với a, b  Z . Từ t  sb có ed  kN  d N  s(ae  bN ) .  sa N ed  kN  sae  sbN (3) và d  sa (4). Thay d từ đẳng thức (4) vào đẳng thức (3) được esa  kN  sae  sbN hay k  sb (5). Từ đẳng thức (4) và (5) với s là ước chung của d và k . Thật vậy, Kết hợp với điều kiện gcd( d , k )  1 có Mệnh đề 5.Nếu d 1 42 2 4 N thì s  1 . Điều phải chứng minh.■ t là vectơ ngắn nhất của dàn L . Chứng minh Theo Mệnh đề 2 và Mệnh đề 3 có ISBN: 978-604-82-1375-6 104 ‖ t‖  (ed  kN ) 2  (d N ) 2     1 2  42 42 2 d N 42 4 2 N  N  4 N 3 ‖ b*2‖ Từ Mệnh đề (2) với t  sb1* và Mệnh đề 4 với s  1 suy ra t  b1* là vectơ ngắn nhất của dàn L .■ Phân tích modulus N từ khóa riêng Sau khi tìm được khóa riêng d d đã biết bằng thuật toán Gauss, ta sử dụng phương pháp tìm căn nguyên thủy của 1 (mod n ) . Để tìm căn nguyên thủy của 1 (mod n) , ta tiếp hành cách bước sau : Chọn a  Z * ngẫu nhiên Định nghĩa dãy b0 , b1 ,, bs với bi  a 2 t mod n , 0  i  s i Mỗi số trong dãy là căn bậc hai của số trước đó ( mod n ) Số cuối cùng trong dãy là bs  aed 1 mod n Từ ed  1 mod  (n)  , theo định lý Euler ta có bs  1 mod n  2 2 Giả sử b  1 mod n  thì n | (b  1)  (b  1)(b  1) . Nếu b  1  mod n  thì n không là ước b  1 cũng như của b  1 . Do đó, một phân tích của n chia hết b  1 và một phân tích khác chia hết b  1 . Vì vậy, p  gcd  b  1, n  là một phân tích không tầm thường của n . Suy ra, phân tích còn lại là q  n / p . Thuật toán 2 mô tả các tính hai số nguyên tố p, q từ bộ ba ( N , e, d ) . Xác suất mà của b  1  mod n  với một số nguyên ngẫu nhiên được chọn a  Z * ít nhất là 0.5. Vì vậy, số lần lặp mong đợi không vượt quá 2 [10]. Thuật toán 2: Phân tích N từ e, d cho trƣớc Đầu vào: N , e, d Đầu ra: p, q s  0, t  ed  1 While (t chẵn) {s++; t/=2; } do { Chọn a  Z * ngẫu nhiên  mod n  2 While( b  1  mod n  ) b  at b  b2 mod n }while( b  1  mod n  ) p  gcd(b  1, n) q n/ p Thuật toán 2. Thuật toán phân tích số nguyên N từ d cho trước Ví dụ ISBN: 978-604-82-1375-6 105 Báo cáo toàn văn Kỷ yếu hội nghị khoa học lần IX Trường Đại học Khoa học Tự nhiên, ĐHQG-HCM Chọn cặp khóa công khai (e, N ) sao cho d 1 42 2 N 1/4  0.38 N 1/4 để đảm bảo luôn tìm được khóa riêng d . Giả sử chọn (e, N )  (2903147714092854259 , 65220299112830 41003) . Sử dụng thuật toán Gauss với dàn hai chiều có cơ sở b1  (e, riêng N ) và b2  ( N , 0) , tìm được khóa d  811 . d , sử dụng thuật toán phân tích số nguyên N ( p, q) lần lượt là 2562355507 và 2545325929 . Sau khi tìm được được cặp , với đầu vào gồm bộ ba ( N , e, d ) ta tìm KẾT LUẬN Trong bài báo này, chúng tôi đã chứng minh chặt chẽ về lý thuyết việc tồn tại hệ số   1 sao cho với mọi d   N 1/4 thì khóa bí mật d luôn được phục hồi từ cặp khóa công khai (e, N ) . Sau đó tìm được hai số nguyên tố p, q từ khóa riêng d đã được phục hồi. Cụ thể với d   N 1/4 khi   được bộ ba (d , p, q) chính xác từ   1 42 2  0.38 thì luôn tìm lại t  ed  kN , d N bằng thuật toán Gauss. Đến đây xuất hiện một câu hỏi mở cho vấn đề đang nghiên cứu: điều kiện cần và đủ để có thể phân tích được số modulus khai ( N , e) bằng tấn công dàn dùng thuật toán Gauss trên dàn hai chiều? N từ cặp khóa công TÀI LIỆU THAM KHẢO [1]. Nguyen, Phong Q. , Public-key cryptanalysis. Recent Trends in Cryptography. Contemporary Mathematics 477 (2008). [2]. Sun, Hung-Min, and Cheng-Ta Yang. RSA with balanced short exponents and its application to entity authentication. Public Key Cryptography-PKC 2005 (2005): 199-215. [3]. Boneh, Dan, Ron Rivest, Adi Shamir, and Len Adleman. Twenty years of attacks on the RSA cryptosystem. Notices of the AMS 46, no. 2 (1999): 203-213. [4]. Boneh, Dan, and Glenn Durfee. Cryptanalysis of RSA with private key d less than N 0.292. In Advances in Cryptology—EUROCRYPT’99, pp. 1-11. Springer Berlin/Heidelberg, 1999. [5]. Sun, Hung-Min, Wu-Chuan Yang, and Chi-Sung Laih. On the design of RSA with short secret exponent. Advances in Cryptology-ASIACRYPT’99 (1999): 150-164. [6]. Coppersmith, Don. Finding a small root of a bivariate integer equation; factoring with high bits known. In Advances in Cryptology—EUROCRYPT’96, pp. 178-189. Springer Berlin/Heidelberg, 1996. [7]. Schnorr, C. P. Gittertheorie und Kryptographie. Ausarbreitung, Johann-Wolfgang-Goethe-Universit at, Frankfurt/Main (1994). [8]. Vallée, Brigitte. Gauss' algorithm revisited. Journal of Algorithms 12, no. 4 (1991): 556-572. [9]. Wiener, Michael J. Cryptanalysis of short RSA secret exponents. Information Theory, IEEE Transactions on 36, no. 3 (1990): 553-558. [10]. Kranakis, Evangelos. Primality and Cryptography. Yale University, Department of Computer Science, 1985. [11]. Rivest, Ronald L., Adi Shamir, and Len Adleman. A method for obtaining digital signatures and publickey cryptosystems. Communications of the ACM 21, no. 2 (1978): 120-126. ISBN: 978-604-82-1375-6 106 ... 1, n  ph n tích không tầm thường n Suy ra, ph n tích lại q  n / p Thuật to n mô tả tính hai số nguy n tố p, q từ ba ( N , e, d ) Xác suất mà b  1  mod n  với số nguy n ngẫu nhi n ch n. .. hay N  q  N N n có Từ N  pq n n ta có q  Suy N p N  q  N n n L  R d n sinh hai vectơ độc lập tuy n tính b1 , b2  R Sử dụng thuật to n thu g n d n Gauss cho hai vectơ b1 , b d n b0 N. .. Mệnh đề với s  1 suy t  b1* vectơ ng n d n L ■ Ph n tích modulus N từ khóa riêng Sau tìm khóa riêng d d biết thuật to n Gauss, ta sử dụng phương pháp tìm nguy n thủy (mod n ) Để tìm nguyên

Ngày đăng: 09/10/2015, 06:40

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w