LUẬN VĂN:CÁC PHƯƠNG PHÁP TẤN CÔNG RSA docx

57 467 0
LUẬN VĂN:CÁC PHƯƠNG PHÁP TẤN CÔNG RSA docx

Đ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

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ <> Bùi Tuấn Anh CÁC PHƯƠNG PHÁP TẤN CÔNG RSA KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành : Công Nghệ Thông Tin HÀ NỘI – 2009 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ <> Bùi Tuấn Anh CÁC PHƯƠNG PHÁP TẤN CÔNG RSA KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành : Công Nghệ Thông Tin Cán bộ hướng dẫn: TS. Hồ Văn Canh HÀ NỘI – 2009 LỜI CÁM ƠN Để thực hiện hoàn thành luận văn “ Các phương pháp tấn công RSA” em đã nhận được sự hướng dẫn và giúp đỡ nhiệt tình của nhiều tập thể và cá nhân Trước hết, em xin bày tỏ lòng biết ơn chân thành đến ban lãnh đạo cùng quý thầy cô trong khoa Công nghệ thông tin - Trường Đại học Công nghệ, Đại học quốc gia Hà Nội đã tận tình dạy dỗ, truyền đạt kiến thức, kinh nghi ệm quý báu và tạo điều kiện thuận lợi cho em trong suốt thời gian học tập và thực hiện đề 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 TS. Hồ Văn Canh, người đã tận tình hướng dẫn, giúp đỡ em trong suốt quá trình thực hiện đề tài. Xin trân trọng gửi đến gia đình, bạn bè và người thân những tình cảm tốt đẹp nhất đã giúp đỡ động viên em trong suốt quá trình học tập cũng như thực hiện và hoàn thành luận văn. Hà Nội, ngày 15/05/2009 Sinh viên Bùi Tuấn Anh TÓM TẮT NỘI DUNG Hệ mật RSA được phát minh bởi Ron Rivest, Adi Shamir, và Len Adleman, công bố lần đầu vào tháng 8 năm 1977. Hệ mật sử dụng 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 ứng dụng rộng rãi trong thương mại điện tử và đặc biệt nó là hạt nhân của hệ thống thanh toán điện tử. 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 mà khi sử dụng RSA người dùng cần cải thiện. Thực tế v ấn đề thám mã đối với hệ mật RSA hiện tại đang được các nhà nghiên cứu tập trung khai thác các sơ hở của RSA như: tấn công vào số mũ công khai hoặc số mũ bí mật thấp, tấn công vào các tham số nguyên tố p, q bé hoặc cách xa nhau lớn, hoặc tập trung vào việc phân tích nhân tử số n(modul của RSA). Luận văn của em sẽ trình bày các phương pháp tấn công RSA trong vòng 20 năm trở lại đây và lựa chọn môt phương pháp t ấn công phổ biến để demo. Mục lục MỞ ĐẦU 1 Chương 1. CÁC KHÁI NIỆM CƠ BẢN 2 1.1 Một số khái niệm toán học 2 1.1.1 Số nguyên tố và nguyên tố cùng nhau 2 1.1.2 Đồng dư thức 2 1.1.3 Không gian Z n và Z n * 3 1.1.4 Phần tử nghịch đảo 3 1.1.5 Khái niệm nhóm, nhóm con, nhóm Cyclic 4 1.1.6 Hàm Ф Euler 4 1.1.7 Các phép toán cơ bản trong không gian modulo 5 1.1.8 Độ phức tạp tính toán 5 1.1.9 Hàm một phía và hàm một phía có cửa sập 6 1.2 Vấn đề mã hóa 7 1.2.1 Giới thiệu về mã hóa 7 1.2.2 Hệ mã hóa 7 1.2.3 Những tính năng của hệ mã hóa 8 Chương 2. TỔNG QUAN VỀ MÃ HOÁ CÔNG KHAI MÃ THÁM 9 2.1 Mã hoá khoá công khai 9 2.1.1 Đặc điểm của Hệ mã khoá công khai 9 2.1.2 Nơi sử dụng Hệ mã hóa khoá công khai 10 2.2 Các bài toán liên quan đến hệ mã hoá khoá công khai 10 2.2.1 Bài toán phân tích số nguyên thành thừa số nguyên tố 11 2.2.2 Bài toán RSA (Rivest-Shamir-Adleman) 11 2.2.3 Bài toán thặng dư bậc hai 11 2.2.4 Bài toán tìm căn bậc hai mod n 12 2.2.5 Bài toán lôgarit rời rạc 13 2.2.6 Bài toán lôgarit rời rạc suy rộng 13 2.2.7 Bài toán Diffie-Hellman 13 2.2.8 Bài toán giải mã đối với mã tuyến tính 14 2.3 Vấn đề thám mã 16 Chương 3. TỔNG KẾT NHỮNG KẾT QUẢ TẤN CÔNG VÀO HỆ MẬT RSA TRONG NHỮNG NĂM QUA 19 3.1 Một số giả thiết ngầm định 19 3.2 Phân tích các số nguyên lớn 19 3.3 Các tấn công cơ bản 20 3.3.1 Modul chung 20 3.3.2 Mù (Blinding) 21 3.4 Số mũ riêng bé (Low Private Exponnent) 21 3.4.1 Độ lớn e 22 3.4.2 Sử dụng CRT 22 3.5 Số mũ công khai bé (Low public Exponent) 23 3.5.1 Hastad's Broadcast Attack 23 3.5.2 Franklin-Reiter Related Message Attack 24 3.6 Thành phần công khai bé 24 3.6.1 Coppersmith's Short Pad Attack. 25 3.6.2 Tấn công bằng khóa riêng. 25 3.7 Cài đặt các tấn công. 26 3.7.1 Tấn công dựa trên thời gian. 27 3.7.2 Tấn công dựa trên các lỗi ngẫu nhiên. 28 3.8 Một số tấn công bằng nhân tử hóa số N với số N lớn 29 3.8.1 Tìm nhân tử lớn nhất thứ nhất N≤ 29 3.8 2 Phân tích thứ hai 30 3.8.3 Phân tích thứ ba 31 3.8.4 Thuật toán Pollard (p-1) 32 3.9 Kết luận 33 Chương 4. THƯ VIỆN TÍNH TOÁN SỐ LỚN 34 4.1 Biểu diễn số lớn 34 4.2 Các phép toán trong số lớn 35 4.2.1 So sánh hai số 35 4.2.2 Cộng hai số lớn dương 36 4.2.3 Trừ hai số lớn dương 36 4.2.4 Phép nhân hai số lớn. 37 4.2.5 Phép chia hai số lớn dương. 38 4.2.6 Lũy thừa 40 4.2.7 Ước chung lớn nhất 41 4.2.8 Phép nhân theo module p 42 4.2.9 Tìm phần từ nghịch đảo theo module p 42 4.2.10 Phép cộng có dấu 43 4.2.11 Phép trừ có dấu 44 4.3.12 Phép nhân có dấu 44 Chương 5. PHƯƠNG PHÁP TẤN CÔNG BẰNG 45 NHÂN TỬ HOÁ SỐ N SỬ DỤNG ĐỊNH LÝ FERMAT 45 5.1 Bổ đề 1 45 5.2 Định lý Fermat 45 KẾT LUẬN 48 1 MỞ ĐẦ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 Trên cơ sở hiểu các khái niệm cơ bản, các cơ sở toán học, để có cái nhìn tổng quan về vấn đề thám mã đối với hệ mật RSA trong những năm qua, em đã tổng kết lại các phương pháp tấn công vào hệ mật RSA và kết quả thu được trong những năm qua. Trong chương này em đã trình bày chi tiết các thuật toán tấn công vào hệ mật RSA như: các tấn công cơ bản - modul chung, mù, tấn công vào số mũ công khai hoặc số mũ bí mật thấp, tấn công dựa trên thời gian hay dựa vào các lỗi ngẫu nhiên. Ngoài ra, em cũng trình bày các thuật toán tấn công RSA bằng nhân tử hoá số N với số N lớn như thuật toán Pollard, tuy nhiên các thuật toán được giới thiệu ở đây mới chỉ giải quyết cho modul N của RSA có độ dài hạn chế, còn mudul N có độ dài lớn thì cho đến nay chưa có phương pháp khả thi nào được công b ố. 2 Chương 1 - CÁC KHÁI NIỆM CƠ BẢN 1.1 Một số khái niệm toán học 1.1.1 Số nguyên tố và nguyên tố cùng nhau Số nguyên tố là số nguyên dương chỉ chia hết cho 1 và chính nó. Ví dụ: 2, 3, 5, 7, 11, 17, … Hệ mật mã thường sử dụng các số nguyên tố ít nhất là lớn hơn 10 150 . Hai số m và n được gọi là nguyên tố cùng nhau, nếu ước số chung lớn nhất của chúng bằng Ký hiệu: gcd (m, n) = 1. Ví dụ: 9 và 14 là hai số nguyên tố cùng nhau. 1.1.2 Đồng dư thức Cho a và b là các số nguyên n là số nguyên dương. Khi đó a được gọi là đồng dư với b theo modulo n, ký hiệu là a ≡ b (mod n), nếu a, b chia cho n có cùng số dư. n được gọi là modulo của đồng dư. Kí hiệu: a ≡ b (mod n) Ví dụ: 5 ≡ 7 mod 2 vì: 5 mod 2 = 1 và 7 mod 2 = 1 Tính chất của đồng dư: Cho a, a 1 , b, b 1 , c ∈ Z. Ta có các tính chất sau: - a ≡ b mod n nếu và chỉ nếu a và b có cùng số dư khi chia cho n - Tính phản xạ: a ≡ a mod n - Tính đối xứng: Nếu a ≡ b mod n thì b ≡ a mod n - Tính giao hoán: Nếu a ≡ b mod n và b ≡ c mod n thì a ≡ c mod n - Nếu a ≡ a 1 mod n, b ≡ b 1 mod n thì a + b ≡ (a 1 +b 1 ) mod n và ab ≡ a 1 b 1 mod n Lớp tương đương: Lớp tương đương của số nguyên a là tập hợp các số nguyên đồng dư với a theo modulo n. 3 Cho n cố định đồng dư với n trong không gian Z vào các lớp tương đương. Nếu a = qn + r, trong đó 0 ≤ r ≤ n thì a ≡ r mod n. Vì vậy mỗi số nguyên a là đồng dư theo modulo n với duy nhất một số nguyên trong khoảng từ 0 đến n-1 và được gọi là thặng dư nhỏ nhất của a theo modulo n. Cũng vì vậy, a và r cùng thuộc một lớp tương đương. Do đó r có thể đơn giản được sử dụng để thể hiện lớp tương đương. 1.1.3 Không gian Z n và Z n * Không gian Z n (các số nguyên theo modulo n) Không gian các số nguyên theo modulo n: Z n là tập hợp các số nguyên không âm nhỏ hơn n. Tức là: Z n = {0, 1, 2, … n-1}. Tất cả các phép toán trong Z n đều được thực hiện theo modulo n. Ví dụ: Z 11 = {0, 1, 2, 3, …, 10} Trong Z 11 : 6 + 7 = 2, bởi vì 6 + 7 = 13 ≡ 2 (mod 11). Không gian Z n * Là tập hợp các số nguyên p ∈ Z n , nguyên tố cùng n. Tức là: Z n * = { p ∈ Z n | gcd (n, p) = 1}, Ф(n) là số phần tử của Z n * Nếu n là một số nguyên tố thì: Z n * = { p ∈ Z n | 1 ≤ p ≤ n – 1} Ví dụ: Z 2 = {0, 1} thì Z 2 * = {1} vì gcd (1, 2) = 1. 1.1.4 Phần tử nghịch đảo Định nghĩa: Cho a ∈ Z n . Nghịch đảo của a theo modulo n là số nguyên x ∈ Z n sao cho ax ≡ 1(mod n). Nếu x tồn tại thì đó là giá trị duy nhất, và a được gọi là khả nghịch. Nghịch đảo của a ký hiệu là a -1 . Tính chất: • Cho a, b ∈ Z n . Phép chia a cho b theo modulo n là tích của a và b theo modulo n, và chỉ được xác định khi b có nghịch đảo theo modulo n. • Cho a ∈ Z n , a là khả nghịch khi và chỉ khi gcd (a, n) = 1. [...]... ứng với tấn công bản mã, tấn công biết bản rõ và tấn công chọn lựa bản rõ Trong khi công việc thám mã thuần túy sử dụng các điểm yếu trong các thuật toán mật mã hóa, những cuộc tấn công khác lại dựa trên sự thi hành, được biết đến như là các tấn công side-channel Nếu người thám mã biết lượng thời gian mà thuật toán cần để mã hóa một lượng bản rõ nào đó, anh ta có thể sử dụng phương thức tấn công thời... đây có thể chỉ ra rằng k luôn bằng 2 và vì thế hoàn toàn bị rò rỉ một nửa tín hiệu bít ý nghĩa nhất của d 3.7 Cài đặt các tấn công 26 3.7.1 Tấn công dựa trên thời gian Tấn công thông minh của Kocher cho thấy rằng bằng phương pháp lựa chọn thời gian chính xác để giải mã (hoặc ký số) RSA của smartcard, Marvin có thể nhanh chóng tìm ra thành phần giải mã riêng d Sử dụng thuật toán “repeated squaring algorithm”... lý 5 được biết như là một phương pháp tấn công vào khóa riêng (partial key-exposure) Tương tự như các phương pháp tấn công đã tồn tại, với giá trị e lớn hơn và phải bé hơn N , tuy nhiên với số bít tăng kỹ thuật sẽ phức tạp hơn Có một điều thú vị là các hệ mật dựa trên log rời rạc như hệ mật khóa công khai ElGamal, thì dường như không dẽ bị phá vỡ bởi phương pháp này Hơn nữa nếu gx mod p và một nhân... 5), thực tế thuật toán tốt hay không phụ thuộc vào kích thước đầu vào Trong luận văn này chúng ta quan tâm đến thuật toán được coi là có hiệu quả Chúng ta tập trung chủ yếu vào nghiên cứu hàm ngược của RSA để tấn công vào RSA Việc khó khăn của tính hàm ngược RSA chính là 17 từ đầu vào ngẫu nhiên, được cho bởi (N,e,C), một kẻ tấn công không thể tìm ra bản rõ M Nếu cho trước (N,e,C), rất khó để tìm ra thông... khóa công khai được sử dụng thấp, khóa riêng tìm được theo phương pháp ở phần trên giúp cho phương pháp của Kocher có thể khôi phục được toàn bộ d chỉ cần biết trước một phần tư số bít của d 27 Giải pháp chống đỡ: 1) Đơn giản nhất là tăng độ trễ nhất định để quá trình mũ hóa luôn mất một thời gian nhất định 2) Rivest đưa ra dựa trên cơ chế bịt các kẽ hở (blinding) Kocher đã khám phá ra một cách tấn công. .. một ánh xạ f: x α xe mod N Nếu d cho trước, hàm đó có thể dễ dàng nghịch đảo được bằng cách dùng phương trình trên Chúng ta coi d như là một cửa sập (trapdoor) để nghịch đảo hàm f 7) Chúng ta nghiên cứu độ khó của hàm ngược (nghịch đảo) RSA khi không cho trước của sập d và nghiên cứu phương pháp tấn công RSA trong trường hợp này 8) Chúng ta quan tấm đến thuật toán hữu hiệu có thời gian bé, tính bậc... đề đảo của mệnh đề 1 cũng đúng Mệnh đề 2: Với (N,e) là khóa công khai của RSA Cho trước khóa riêng d, người ta có thể phân tích thành nhân tử môdul N=pq một cách hiệu quả Ngược lại cho các thừa số của N, người ta có thể khôi phục được d một cách có hiệu quả Từ các mệnh đề ở trên người ta đã đưa ra một số tấn công vào RSA sau đây: 3.3 Các tấn công cơ bản 3.3.1 Modul chung Để tránh việc phân tích modul... trường hợp này việc tấn công là thất bại - Thường nó chỉ áp dụng với khi số mũ công khai e được sử dụng với giá trị nhỏ Với e lớn, công việc tính toán gcd là rất khó Một câu hỏi thú vị (nếu không nói là khó) đặt ra là liệu việc tấn công với một số e bất kỳ sẽ như thế nào Khí đó việc tính toán gcd của g1 và g2 theo cách trên có trong thời gian đa thức đối với log e ? 3.6 Thành phần công khai bé 24 3.6.1... thể tìm ra M một cách có hiệu quả 2 Thực tế, khi e = 3 tấn công có thể đạt được với độ dài của các bít thêm vào là ít hơn 1/9 độ dài của bản thông điệp Đây là một kết quả quan trọng Lưu ý rằng việc đưa ra giá trị e = 65537 thì sự tấn công là vô ích đối với các modul kích kỡ chuẩn th 3.6.2 Tấn công bằng khóa riêng Với (N,d) là một khóa riêng của RSA Giả sử rằng Marvin có thể tìm được một nhân tử trong... tính và Thám mã vi phân là các phương pháp chung cho mã hóa khóa đối xứng Khi mã hóa dựa vào các vấn đề toán học như độ khó NP, giống như trong trường hợp của thuật toán khóa bất đối xứng, các thuật toán như phân tích ra thừa số nguyên tố trở thành công cụ tiềm năng cho thám mã Ở luận văn này, ta tập trung nghiên cứu vấn đề thám mã với RSA Từ khi được công bố lần đầu, hệ RSA đã được phân tích hệ số an . phân tích nhân tử số n(modul của RSA) . Luận văn của em sẽ trình bày các phương pháp tấn công RSA trong vòng 20 năm trở lại đây và lựa chọn môt phương pháp t ấn công phổ biến để demo. . Attack. 25 3.6.2 Tấn công bằng khóa riêng. 25 3.7 Cài đặt các tấn công. 26 3.7.1 Tấn công dựa trên thời gian. 27 3.7.2 Tấn công dựa trên các lỗi ngẫu nhiên. 28 3.8 Một số tấn công bằng nhân. lại các phương pháp tấn công vào hệ mật RSA và kết quả thu được trong những năm qua. Trong chương này em đã trình bày chi tiết các thuật toán tấn công vào hệ mật RSA như: các tấn công cơ

Ngày đăng: 27/06/2014, 22:20

Từ khóa liên quan

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

Tài liệu liên quan