NGHIÊN CỨU CÁC TẤN CÔNG LÊN HỆ MẬT RSA

46 489 0
NGHIÊN CỨU CÁC TẤN CÔNG LÊN HỆ MẬT RSA

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Hệ mật mã khoá công khai RSA được sử dụng phổ biến trong lĩnh vực đảm bảo tính riêng tư và cung cấp cơ chế xác thực của dữ liệu số. Ngày nay RSA được phát triển và ứng dụng rộng rãi trong thương mại điện tử, được sử dụng trong việc tạo khoá và xác thực của mail, trong truy cập từ xa, và đặc biệt nó là hạt nhân của hệ thống thanh toán điện tử. RSA được ứng dụng rộng rãi trong các lĩnh vực nơi mà an ninh an toàn thông tin được đòi hỏi. Chính vì lý do được sử dụng rộng rãi trong thương mại điện tử cũng như có độ an toàn cao mà đã có rất nhiều sự nhòm ngó cũng như các cuộc tấn công nhằm phá vỡ sự an toàn của hệ mật RSA. Ngay từ khi được công bố lần đầu, hệ RSA đã được phân tích hệ số an toàn bởi nhiều nhà nghiên cứu. Mặc dù trải qua nhiều năm nghiên cứu và đã có một số cuộc tấn công ấn tượng nhưng không mang lại kết quả là phá huỷ. Đa phần họ mới chỉ ra được những mối nguy hiểm tiềm ẩn của RSA. Để phục vụ cho việc phân tích các tính chật của hệ mật RSA, em đã trình bày các khái niệm cơ bản liên quan đến toán học, mật mã và thám mã, trình bày tổng quan về hệ mã hoá khoá công khai, các bài toán liên quan đến hệ mã hoá khoá công khai

BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT MÃ ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC ĐỀ TÀI NGHIÊN CỨU CÁC TẤN CÔNG LÊN HỆ MẬT RSA Học viên thực hiện: Khóa: 09 Chuyên ngành: An toàn thông tin Người hướng dẫn: ThS Đinh Tiến Thành Hà Nội, 2017 LỜI CẢM ƠN Để thực hoàn thành đồ án “ Nghiên cứu công lên hệ mật RSA”, em nhận hướng dẫn giúp đỡ nhiệt tình nhiều tập thể cá nhân Trước hết, em xin bày tỏ lòng biết ơn chân thành đến ban giám đốc quý thầy cô khoa An toàn thông tin – Học viện kỹ thuật mậttận tình dạy dỗ, truyền đạt kiến thức, kinh nghiệm quý báu tạo điều kiện thuận lợi cho em suốt thời gian học tập thực đề tài Đặc biệt, em xin bày tỏ lòng biết ơn sâu sắc đến thầy hướng dẫn ThS Đinh Tiến Thành, người tận tình hướng dẫn, giúp đỡ em suốt trình thực đề tài Xin trân trọng gửi đến gia đình, bạn bè người thân tình cảm tốt đẹp giúp đỡ động viên em suốt trình học tập thực hoàn thành luận văn Hà Nội, ngày tháng 2017 Học viên thực năm LỜI CAM ĐOAN Em xin cam đoan đồ án em tự nghiên cứu hướng dẫn thầy giáo ThS Đinh Tiến Thành Để hoàn thành đồ án này, em sử dụng tài liệu ghi mục tài liệu tham khảo, không sử dụng tài liệu khác mà không ghi Nếu sai, em xin chịu hình thức kỷ luật theo quy định Học viện Hà Nội, ngày tháng 2017 Học viên thực năm MỤC LỤC LỜI CẢM ƠN……………………………………………… ………………… i LỜI CAM ĐOAN…………………………………………… …………………ii MỤC LỤC…………………………………………………….……………… iii …….48 TÀI LIỆU KHẢO…………………………………………………… 49 THAM MỞ ĐẦU Hệ mật mã khoá công khai RSA sử dụng phổ biến lĩnh vực đảm bảo tính riêng tư cung cấp chế xác thực liệu số Ngày RSA phát triển ứng dụng rộng rãi thương mại điện tử, sử dụng việc tạo khoá xác thực mail, truy cập từ xa, đặc biệt hạt nhân hệ thống toán điện tử RSA ứng dụng rộng rãi lĩnh vực nơi mà an ninh an toàn thông tin đòi hỏi Chính lý sử dụng rộng rãi thương mại điện tử có độ an toàn cao mà có nhiều nhòm ngó công nhằm phá vỡ an toàn hệ mật RSA Ngay từ công bố lần đầu, hệ RSA phân tích hệ số an toàn nhiều nhà nghiên cứu Mặc dù trải qua nhiều năm nghiên cứu có số công ấn tượng không mang lại kết phá huỷ Đa phần họ mối nguy hiểm tiềm ẩn RSA Để phục vụ cho việc phân tích tính chật hệ mật RSA, em trình bày khái niệm liên quan đến toán học, mật mã thám mã, trình bày tổng quan hệ mã hoá khoá công khai, toán liên quan đến hệ mã hoá khoá công khai CHƯƠNG I: HỆ MẬTCÔNG KHAI 1.1 1.2 1.2.1.1 1.2.1.2 Mục tiêu Nghiên cứu tổng quan hệ mật mã khóa công khai từ hiểu có nhìn tổng quan hệ mật mã khóa công khai Các nội dung 1.2.1 Cơ sở toán học hệ mật mã khóa công khai Số nguyên tố Số nguyên tố: Số nguyên tố số tự nhiên lớn 1, có hai ước Số p số nguyên tố không chia hết cho số đoạn [2, p1] Một số ví dụ số nguyên tố: 2, 3, 5, 7, 11, 13, 17, 19, 23, … Số nguyên tố nhau: Hai số nguyên a, b gọi nguyên tố ước chung lớn chúng a b nguyên tố  gcd(a, b) = Số nguyên tố an toàn: Số nguyên tố an toàn số nguyên tố có dạng 2p+1, với p số nguyên tố Các số nguyên tố an toàn (trừ số 7) có dạng 6k-1 Đồng dư modulo Cho số nguyên dương n, số nguyên a b gọi đồng dư modulo n chúng có số dư chia cho n Phép đồng dư quan hệ tương đương (bao gồm tính chất phản xạ, đối xứng, bắc cầu) Tập hợp số nguyên không gian modulo n tạo thành vành với Abel với hai phép toán cộng nhân Nếu n số nguyên tố tập hợp trường Kí hiệu: Ví dụ: Một số tính chất: Cho số nguyên dương n số nguyên a, b ta có số tính chất sau: • • • • Nghịch đảo modulo: Một số nguyên x gọi nghịch đảo số nguyên a không gian modulo n nếu: Hay Ví dụ: a 1 a 1 x x 4 x 5 6 x 7 8 x 9 x 10 x 10 10 11 11 Số nguyên a tồn nghịch đảo modulo a nguyên tố với n Định lý fermat nhỏ: Nếu p số nguyên tố với số nguyên a ta có: Hay: Ví dụ: 1.2.1.3 Phi hàm Euler Phi hàm euler số nguyên dương định nghĩa số số nguyên dương nhỏ n nguyên tố với n Ký hiệu: Công thức: Một số ví dụ: n 10 11 12 15 20 27 30 40 50 64 81 100 10 8 18 16 29 32 54 40 Định lý euler: Cho trước số nguyên dương n, với số nguyên dương a nguyên tố với n ta có: 1.2.1.4 Thặng dư bậc hai Thặng dư bậc hai: y gọi thặng dư bậc hai modulo n tồn số nguyên dương x cho: Ví dụ: Các giá trị thặng dư bậc modulo 11 x Các giá trị thặng dư bậc hai modulo 9 x 7 9 9 10 10 11 Các giá trị thặng dư bậc hai số modulo n N 10 11 12 13 14 15 16 17 18 19 20 Thăng dư bậc modulo n 1, 4, 5, 6, 1, 3, 4, 5, 1, 4, 1, 3, 4, 9, 10, 12 1, 2, 4, 7, 8, 9, 11 1, 4, 6, 9, 10 1, 4, 1, 2, 4, 8, 9, 13, 15, 16 1, 4, 7, 9, 10, 13, 16 1, 4, 5, 6, 7, 9, 11, 16, 17 1, 4, 5, 9, 16 Các giá trị đoạn [1,n-1] thặng dư bậc modulo n gọi số bất thặng dư bậc hai hay không thặng dư bậc hai modulo n Ký hiệu Legendre: Nếu p số nguyên tố lẻ số a nguyên tố với p ta có ký hiệu legendre sau: Ký hiệu legengre mang giá trị: • • • Trong ký hiệu legendre mang giá trị: nếu a thặng dư bậc mod p -1 a không thặng dư bậc mod p Theo tiêu chuẩn Euler, ký hiệu Lengendre tính công thức: Tính chất: Ký hiệu legendre có số tính chất sau: • Nếu ta có • • Ví dụ: a p 11 13 • • 10 11 12 1 1 -1 -1 -1 -1 -1 -1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 1 -1 -1 -1 1 Ký hiệu Jacobi: Ký hiệu Jacobi khái niệm tổng quát ký hiệu Legendre: Với số nguyên tố lẻ p ký hiệu Jacobi ký hiệu Legendre Với số hợp số lẻ n, ký hiệu Jacobi định nghĩa tích ký hiệu Legendre tương ứng với thừa số nguyên tố n Nếu Ký hiệu Jacobi mang giá trị: • • • Trong ký hiệu Legendre mang giá trị: -1 a không thặng dư bậc hai modulo n a thặng dư bậc hai modulo n không thặng dư bậc hai modulo n Ví dụ: 10 16 25 36 49 64 81 100 1 0 -1 0 10 4 10 11 12 13 14 121 144 169 196 -1 -1 -1 Ta có: • không thặng dư bậc hai modulo 15 • thặng dư bậc hai modulo 15 Do đó, Ký hiệu Jacobi mang giá trị ta kết luận gcd(a, n) = 1, ta kết luận a có phải thặng dư bậc hai modulo n hay không 1.2.1.5 Số dễ vỡ (B-smooth) Số dễ vỡ số nguyên mà phân tích thành tích số nguyên tố nhỏ Một số N gọi B-smooth tất thừa số nguyên tố N nhỏ B Ví dụ: Ta có: Nên 1620 số 5-smooth 1.2.1.6 Nhóm, vành, trường Nhóm Nhóm tập hợp G với phép toán dùng kể kết hợp phần tử thành phần từ ký hiệu ab Một tập hợp (G,) muốn gọi nhóm thỏa mãn điều kiện sau: • Tính đóng: o Với a, b thuộc G ab thuộc G o • Tính kết hợp: o Với a,b,c thuộc G (ab)c=a(bc) o • Phần tử đơn vị: o Tồn phần tử cho phần tử , phương trình thỏa mãn o • Phần tử nghịch đảo: o Đối với phần tử , tồn phần tử cho với e phần tử đơn vị o Một nhóm gọi nhóm Abel có thêm tính chất sau đây: • Tính giao hoán: o Ví dụ: 10 Bước 1: Chọn đa thức tối giản f(x) g(x) với hệ số nguyên nhỏ tồn số nguyên m thỏa mãn: Bước 2: Với nghiệm số phức hàm f(x) nghiệm số phức hàm g(x), tìm cặp số nguyên tố (a, b) cho số B-smooth, với deg(f) bậc hàm f(x) Bước 3: Dùng đại số tuyến tính để tìm tập hợp S cho: số phương Bước 4: Dùng tập S để tìm số với: Xác định hàm ánh xạ Với m nghiệm chung hàm f(x) g(x) hay Từ ta phân tích N thành nhân tử cách tính gcd(x) Ví dụ: Phân tích N = Chọn hai hàm số: Và chọn số m 634639 Ta có: Chọn tập U={(-9, 10), (-3, 2), (-1, 3), (2, 5), (3, 8), (6, 1), (7, 3)} Chọn Khi đó: Ta lại có: 32 Từ (1)(2)(3) suy Dễ dàng tính được: Kết luận: N = 563 * 1951 Độ phức tạp thuật toán: Số mũ riêng bé Wiener attack: Với hệ mậtRSA có: 2.2.4 Ta dễ dàng tính d Ta có: d số nguyên dương khác 0, chia vế (2) cho ta được: Ta có: Xét ta thấy: Từ (4) va (5) ta có Từ (2) ta có: mà nên ta có: Kết hợp (1), (6), (7), ta có: Định lý: Với số vô tỉ , tồn vô hạn số hữu tỉ p/q với q>0 cho: Do đó, điểm hội tụ phân số liên tục , d thỏa (1) d tính cách tìm tập hợp điểm hội tụ phân số liên tục thời gian ngắn Ví dụ: Chọn N=160523347, e=60728973 Ta có: Và điểm hội tụ là: 33 Phân số phân số trên, chọn số phân số để kiểm tra tìm d Ta có để kiểm tra: • Tính giải phương trình: để tìm p, q Nếu không tìm quay lại chọn phân số khác o Thử với phân số , ta có k=3, d=8, Ta thấy số nguyên nên d, quay lại thử với phân số khác o Thử với phân số , ta có k=14, d=37, Giải phương trình • ta thu p= 12347, q=13001 Vậy ta tìm phân số d=37 Chọn ngẫu nhiên số a tính: kết a số d cần tìm: o o o o o , d=37 Mở rộng Wiener attack Sau thuật toán Wiener công bố khoảng 10 năm, nhà toán học Boneh Durfee cải tiến thuật toán Wiener với mọi: dễ dàng tìm d Xét: Ta có: Ta có e nên: 34 Vì nên tìm số k s thỏa Boneh Durfee với tìm số mũ bí mật cách hiệu Số mũ công khai bé Trong thực tế, để tiếm kiệm thời gian, chi phí tính toán người ta thường sử dụng số mũ công khai bé có số bit có nghĩa tốt.Các giá trị thường sử dụng 3,17,65537,… 2.2.5 Bit Phép toán Kết 1 0 1 1 1 Như ta thấy với số bit, số 17 có chữ số có nghĩa nên số lượng tính toán Tuy nhiên số mũ công khai bé, ta tìm số mũ bí mật giải mã bí mật 2.2.5.1 Định lý Coppersmith Định lý Coppersmith kết quan trọng trình thám mã RSA có tác động lớn đến việc công hệ mậtRSA với số mũ công khai nhỏ Xét hàm số biến tối giản với hệ số nguyên: Với số tự nhiên bậc hàm số p(x) Với số giới hạn B thích hợp, ta tìm tất nghiệm nguyên nhỏ thỏa: Định lý: Cho N hợp số lớn, hàm số đơn biến tối giản với hệ số nguyên với số tự nhiên 35 Xét số tự nhiên nghiệm hàm số p(x) hay Nếu tính thời gian đa thức phụ thuộc vào Định lý chủ yếu dựa thuật toán giảm sở lưới gọi LLL Hay nói cách khác thuật toán để chuyển từ phương trình đồng dư modulo N bậc sang phương trình dạng đại số cách sử dụng lưới với chiều, sau giải phương trình đại số r(x) để tìm kết Việc giải phương trình hệ đồng dư modulus N đòi hỏi việc phải phân tích N thành thừa số nguyên tố, điều kiện khó Trong đó, việc giải phương trình đại số tương ứng phần giúp giảm đáng kể độ khó phức tạp.Tuy nhiên, phương pháp hiệu hay không phụ thuộc lớn vào bậc hàm số p(x) Bậc cần phải đủ bé để việc thực thuật toán LLL khoảng thời gian chấp nhận Định lý Coppersmith sử dụng lưới nhiều chiều để tìm tất nghiệm nguyên nhỏ phương trình đồng dư tính thời gian đa thức Ví du: Ma trận 6x6 M: Ma trận 6x6 H: H= 46 − 98 32 − 57   70   48 − 104 32 − 56   73  55 36 − 74 27 − 50    82 − 171 60 − 109   125  − 175 − 115 254 − 74 126 −     41  27 − 59 18 − 31   Từ ma trận sử dụng LLL, ma trận M giảm thành ma trận B theo công thức B=HM  8*2 − 24 * 2  50 *  49  115 − 83 * * 22   61 16 * 37 * 2   21 − 37 * − 14 *  − 201 * 33* 2  36 − * 23 − 1* 24 20 * 13 * 23 * 24 − 16 * 23 * 23 * 24 14 * − * 23 − * 24 * 25   * 25  *  * 25   − * 25  *  Ta có vector Chia giá trị vector cho ta thu (3, 8, -24, -8, -1, 2) Giải phương trình nghiệm nguyên r(x) cho ta nghiệm 2.2.5.2 Tấn công số mũ công khai bé định lý số dư Trung Hoa Giả sử số mũ công khai sử dụng Alice gửi lúc thông điệp cho người khác với khóa công khai khác (cùng số mũ công khai) Khóa công khai nhận thông điệp , ta có: Ta có đôi nguyên tố (1) Đặt Theo định lý số dư Trung Hoa ta có: Từ (1)(2) ta có Đến ta việc khai bậc x để thu giá trị n Ví dụ: Ta có khóa công khai người sau:, Đặt: Dễ dàng tính được: Kiểm tra lại: Vậy thông điệp gửi m=123 Thành phần công khai bé 2.2.6.1 Tấn công Coppersmith’s short pad 2.2.6 37 Phương pháp dung để công hệ thống má hóa RSA sử dụng thuật toan padding thêm vài bit ngẫu nhiên vào cuối rõ trước mã hóa Giả sử Alice mã hóa thông điệp sau padding gửi cho Bob, Trudy nhận tác động vào đường truyền chặn không cho mã đến tay Bob Sau thời gian Bob không trả lời, Alice gửi lại rõ lần Lúc Trudy nhận mã khác rõ (do random bit lúc padding khác nhau), Trudy tìm thông điệp ban đầu Định lý: Với (N,e) khóa công khai RSA, với n số bit modulus N , thông điệp M có m bit định nghĩa : Nếu Trudy biết khóa công khai mã tương ứng , Trudy dễ dàng tìm thông điệp M ban đầu Lưu ý, với e=3, phương pháp công hiệu độ dài phần padding phải nhỏ độ dài thông điệp M Tấn công partial key exposure Nếu biết bit lsb d (với n số bit modulus N), khôi phục d thời gian ngắn Gọilà bit cuối d hay 2.2.6.2 Ta có: Với s = p + q, chuyển phương trình phương trình đồng dư modulo m ta có: mà nên ta có: Số mũ công khai e thường chọn với giá trị nhỏ, thường 65537, nên ta thử tất số k khoảng từ đến e để tính Với ta giải phương trình đồng dư để tìm giá trị Định lý Coppersmith: Nếu biết m bit lớn bé p, ta phân tích N thành thừa số nguyên tố cách hiệu 2.2.7 Các công 2.2.7.1 Modulus chung Giả sử Alice Bob dùng chung số modulus N Alice phân tích nhân tử N dựa vào khóa bí mật Gọi (N, ) (N, ) cặp khóa công khai khóa bí mật Alice (N, ) (N, ) khóa công khai khóa bí mật Bob 38 Alice cần biết Bob dùng chung số N với tìm khóa bí mật Bob, Alice dùng số mũ bí mật để tính p, q từ tìm Từ Alice phân tích N tìm số mũ bí mật Bob Giả sử Trudy biết khóa công khai Alice Bob (N, ), (N, ) để mã hóa thông điệp, Trudy giải mã thông điệp từ mã và hai số nguyên tố Nếu gcd() tồn x, y nguyên thỏa phương trình Phương trình dễ dàng giải giải thuật Euclid mở rộng Với nghiệm nguyên x, y tìm được, ta tính: Tấn công blinding Giả sử, Bob muốn Alice ký thông điệp m (ký tương tự với việc giải mã với số mũ bí mật Alice) Alice không đồng ý, Bob lừa Alice ký rõ khác mà từ tính giả chữ ký Alice với thông điệp m Bob chọn số ngẫu nhiên r tính: 2.2.7.2 Và Alice sẵn lòng ký thông điệp cho Bob: Mà chữ ký Alice với thông điệp m 39 CHƯƠNG 3: CÀI ĐẶT MÔ PHỎNG MỘT SỐ TẤN CÔNG ĐIỂN HÌNH Mục tiêu Cài đặt mô thành công số phương pháp công điển hình lên hệ mật RSA 3.2 Nội dung 3.2.1 Phương pháp công cách sử dụng định lý Fermat Thuật toán Fermat : 3.1 1< a ≤ b Cho n hợp số, n = ab, u= số tự nhiên, a+b b−a ,v = n = ab = u − v 2 , n =u −v a = u − v, b = u + v Đặt Thuật toán Fermat tìm biểu diễn n dạng , từ nhận phân tích Chúng ta làm việc với độ lớn rk = xk2 − y k2 − n Giá trị ban đầu Nếu rk = [ ] ( x , y ) = ( n ,0 ) thuật toán dừng Nếu rk < n = xk2 − y k2 = ( x k − y k )( xk + y k ) , , , , ( xk +1 , y k +1 ) := ( xk + 1, y k ) sau Sự tăng số k diễn theo quy tắc sau ( xk +1 , y k +1 ) := ( xk , y k + 1) Nếu n = (u − v)(u + v) = ab , k=0,1,2,… , mục đích đạt rk > , với u, v ; rk +1 := xk2+1 − y k2+1 − n Chúng ta chứng minh với số bước thực có hạn thuật rk = toán đưa đến giá trị Kịch bản: A gửi cho B cặp mã công khai RSA, sau B dùng mã công khai mã hóa thông điệp gửi lại cho A, ta đứng bắt khóa công khai đoạn mã hóa tìm cách công để đọc thông điệp gửi Khóa công khai: N=13407807929942597099574024998205849006659775027073105949 8537796375590715341878739349623543825811203280620204285771825560 36011473483723266299806060581317923 e = 65537 40 Bản mã c=95532091042545967586764595632657743387483184597812901313 6296632228439056927941823242204934380258720490366760693194169874 5666183949581942232655122625333554 Ta nghi ngờ cặp khóa RSA phân tích phương pháp Fermat.Ta dùng ngôn ngữ lập trình python để cài đặt thuật toán để kiểm tra Ngôn ngữ: Python2.7 Script: def fermat (n): x=0 while 1: y = n + x ** if gmpy2.is_square(y): return gmpy2.isqrt(y) - x, gmpy2.isqrt(y) + x x+=1 Dùng đoạn script để phân tích nhân tử cho modulus 2011654328996743906175947537905508450053458300176804646975472960 1603150272593137679160921573754354556510180172365826249765752108 90170609494904470809810168 ta thu cặp số nguyên tố: p=11579208923731619542357098500868792028581364188212273768778433 0325339864313379, q=11579208923731619542357098500868792028581364188212273768778433 0325339864315137 Có cửa sập p, q ta dễ dàng tính số mũ bí mật d giải mã mã thành rõ Script: def decrypt(c, p, n, e=65537): q = n/p phi = (p-1)*(q-1) d = gmpy2.invert(e, phi) m = pow(c ,d, n) return m 41 Hình 1: Đoạn mã hoàn chỉnh để giải mã Ta thu mã 1337 Phương pháp công số mũ riêng bé phương pháp Wiener 3.2.2 Định lý Wiener: Với số vô tỉ , tồn vô hạn số hữu tỉ p/q với q>0 cho: Do đó, điểm hội tụ phân số liên tục , d thỏa (1) d tính cách tìm tập hợp điểm hội tụ phân số liên tục thời gian ngắn Kịch bản: A gửi cho B cặp mã công khai RSA, sau B dùng mã công khai mã hóa thông điệp gửi lại cho A, ta đứng bắt khóa công khai đoạn mã hóa tìm cách công để đọc thông điệp gửi Khóa công khai: N=13407807929942597113830719089811054723215730320137488983 7648294984967647666718153910511390603459577565493552500215233043 76289335077201668304668598564116687 e=12676909717260413942809070315437048921302444996756804842 6915335255999364978966390735334575685509257971751920571999890333 92354659934227086999559013594159177 Bản mã: 42 c=29337453424574985348256001592502701479325304311438726075 4472128234288600829204543323074959457330034339055213694329805934 0270326472234343072624595313420329 Ta thu cặp khóa công khai với số mũ công khai sấp xỉ với modulus n nên ta nghi ngờ số mũ riêng bé sử dụng Dùng ngôn ngữ lập trình python để cài đặt thuật toán kiểm tra Ngôn ngữ: Python 2.7 Script: def continued_fraction(e,n): res = [] while n: x = gmpy2.f_div(e, n) res.append(x) e, n = n, e - n * x return res def convergents(frac): p2, q2 = gmpy2.mpz(0), gmpy2.mpz(1) p1, q1 = gmpy2.mpz(1), gmpy2.mpz(0) res = [] for i in frac: p, q = i * p1 + p2, i * q1 + q2 p2, q2 = p1, q1 p1, q1 = p, q res.append((p,q)) return res def wiener(e,n): frac = continued_fraction(e,n) conv = convergents(frac) for i in conv: denominator = i[1] kphi = e * denominator - if pow (2, kphi, n) == 1: return denominator Dùng đoạn script để kiểm tra cặp khóa công khai (1340780792994259711383071908981105472321573032013748898376482949 8496764766671815391051139060345957756549355250021523304376289335 077201668304668598564116687, 1267690971726041394280907031543704892130244499675680484269153352 43 5599936497896639073533457568550925797175192057199989033392354659 934227086999559013594159177) ta thu số mũ riêng 1333333337 Có số mũ riêng ta dễ dàng tính rõ công thức: Hình 2: Đoạn script thực thi giải mã Ta thu mã 7331 44 KẾT LUẬN Hơn hai thập niên nghiên cứu vào toán tính toàn RSA để tìm công hiệu công hiệu tìm Những công khám phá chủ yếu minh hoạ cạm bẫy phải tránh trình cài đặt RSA Lúc cài đặt cách đảm bảo an ninh giới số Chúng ta phân loại công RSA thành loại: • • • • • Tấn khai thác sai sót hệ thống Tấn công khoá riêng có số mũ thấp không đủ, khoá riêng có số mũ thấp không sử dụng Tấn công khoá công khai có số mũ thấp Tấn công cài đặt Tấn công cách nhân tử hoá Hệ mậtRSA đựơc cài đặt triển khai theo chuẩn mà nhà phát triển RSA khuyến cáo có độ an toàn cao Nhưng ngày với phát triển nhanh hệ tính toán số hứa hẹn tương lai có chạy đua hệ tính toán số với nhà phát triển RSA 45 TÀI LIỆU THAM KHẢO Tiếng Việt [1] GS.TS Nguyễn Bình, TS Trần Đức Sự, Giáo trình Cơ sở lý thuyết mật mã, Học viện Kỹ thuật Mật mã (2006) [2] TS Trần Văn Trường, ThS Trần Quang Kỳ, Giáo trình Mật mã học nâng cao, Học viện Kỹ thuật Mật mã (2006) Tiếng Anh [3] Dan Boneh, Twenty Years of Attacks on the RSA Cryptosystem, Notices of the American Mathematical Society (1999) [4] Song Y Yan, Cryptanalytic Attacks on RSA, Springer Science+Business Media, LLC (2008) [5] Jingjing Wang, Thirty Years of Attacks on the RSA Cryptosystem, 2011 [6] Filipe da Costa Boucinha, A Survey of Cryptanalytic Attacks on RSA, 2011 [7] Boise State, Attacks on RSA cryptosystem, International Journal of Scientific & Engineering (2011) [8] Abderrahmane Nitaj, Muhammad Rezal Kamel Ariffin, Dieaa I Nassr, and Hatem M Bahig, New Attacks on the RSA Cryptosystem, 2014 46 ... PHƯƠNG PHÁP TẤN CÔNG LÊN HỆ MẬT RSA 2.1 Mục tiêu Nghiên cứu số phương pháp công lên hệ mật RSA nhằm có nhìn tổng quan phương thức công 2.2 Nội dung 2.2.1 Một số giả thuyết ngầm định N: RSA modulus,... mã hoá khoá công khai CHƯƠNG I: HỆ MẬT MÃ CÔNG KHAI 1.1 1.2 1.2.1.1 1.2.1.2 Mục tiêu Nghiên cứu tổng quan hệ mật mã khóa công khai từ hiểu có nhìn tổng quan hệ mật mã khóa công khai Các nội dung... nhòm ngó công nhằm phá vỡ an toàn hệ mật RSA Ngay từ công bố lần đầu, hệ RSA phân tích hệ số an toàn nhiều nhà nghiên cứu Mặc dù trải qua nhiều năm nghiên cứu có số công ấn tượng không mang lại kết

Ngày đăng: 18/07/2017, 22:44

Từ khóa liên quan

Mục lục

  • MỞ ĐẦU

  • CHƯƠNG I: HỆ MẬT MÃ CÔNG KHAI

    • 1.1 Mục tiêu

    • 1.2 Các nội dung chính

      • 1.2.1 Cơ sở toán học của hệ mật mã khóa công khai

        • 1.2.1.1 Số nguyên tố

        • 1.2.1.2 Đồng dư modulo

        • 1.2.1.3 Phi hàm Euler

        • 1.2.1.4 Thặng dư bậc hai

        • 1.2.1.5 Số dễ vỡ (B-smooth)

        • 1.2.1.6 Nhóm, vành, trường

        • 1.2.1.7 Hàm một chiều và cửa sập

        • 1.2.2 Một số bài toán liên quan đến hệ mã công khai

          • 1.2.2.1 Thuật toán Euclid

          • 1.2.2.2 Thuật toán Euclid mở rộng

          • 1.2.2.3 Liên phân số

          • 1.2.2.4 Thuật toán bình phương và nhân

          • 1.2.2.5 Định lý số dư Trung Hoa

          • 1.2.2.6 Bài toán phân tích nhân tử

          • 1.2.2.7 Bài toán phân tích thừa số nguyên tố

          • 1.2.2.8 Bài toán logarit rời rạc

          • 1.2.2.9 Bài toán RSA

          • 1.2.2.10 Bài toán thặng dư bậc hai

          • 1.2.2.11 Bài toán căn bậc hai modulo n

Tài liệu cùng người dùng

Tài liệu liên quan