Một số tấn công vào hệ mật mã RSA

82 732 2
Một số tấn công vào hệ mật mã 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

LỜI NÓI ĐẦU Ngày nay, bùng nổ công nghệ thông tin với việc phát triển phuơng tiện thông tin liên lạc tạo nhiều tiến lĩnh vực Do nhu cầu cập nhật, trao đổi thông tin thiếu người Song song với trình trao đổi thông tin người lúc họ nghĩ đến làm để bảo mật thông tin để người xem hiểu Để đáp ứng cầu hàng loạt hệ mật mã đời Ngày chúng không ngừng phát triển ngày đại Với đồ án tốt nghiệp “một số công vào hệ mật mã RSA” thực nhằm mục đích tìm hiểu tổng quan hệ mật mã nói chung đặc biệt hệ mật mã RSA Tại Việt Nam việc tìm hiểu bắt đầu bước chập chững giai đoạn đầu phát triển Chính sinh viên công nghệ thông tin em muốn tìm hiểu nắm bắt thêm thông tin hệ mật mã nói chung, đặc biệt hệ mật RSA để áp dụng thực tiễn góp phần nâng cao hiểu biết Trong thời gian làm đồ án có nhiều cố gắng đề tài, lĩnh vực mới, nên hiểu biết nhiều hạn chế Vì thế, đồ án em không tránh khỏi sai lầm thiếu sót Em mong đuợc bảo, góp ý thầy cô, bạn để đồ án em hoàn thiện Cuối em xin chân thành cảm ơn tới thầy cô giáo Khoa tạo điều kiện giúp đỡ em, đặc biệt thầy Thân Quang Khoát bảo tận tình để em hoàn thành tốt đồ án tốt nghiệp MỤC LỤC LỜI NÓI ĐẦU .1 LỜI CAM ĐOAN Error! Bookmark not defined MỤC LỤC .3 DANH MỤC HÌNH ẢNH .6 PHẦN MỘT Error! Bookmark not defined HỆ MẬT MÃ CÔNG KHAI RSA Error! Bookmark not defined CHƯƠNG TỔNG QUAN VỀ BẢO MẬT THÔNG TIN 1.1 Sơ lược lịch sử mật mã học 1.2 Những kiến thức .10 1.3 Các phương pháp mã hóa .12 1.3.1 Mã hoá cổ điển .13 1.2.2 Mã hoá đại 13 1.3.3 Hệ thống mã hoá lai (Hybrid Cryptosystems) .16 1.3.4 Hàm băm (Hash function) 17 1.4 Thám mã tính an toàn hệ mật mã 19 1.4.1 Thám mã 19 1.4.2 Tính an toàn hệ mật mã 20 1.5 Một số toán an toàn bảo mật thông tin 21 CHƯƠNG 23 HỆ MẬT MÃ CÔNG KHAI RSA 23 2.1 Sơ lược hệ mật mã khoá công khai 23 2.1.1 Sơ lược hệ mật mã công khai 23 2.1.2 Một số toán 24 2.2 Mô tả hệ mật mã RSA 28 2.2.1 Sơ đồ hệ mật mã RSA 28 2.3 Quá trình thực hệ mật mã RSA 31 2.4 Tính bảo mật RSA .31 2.4.1 Dùng modun n chung 32 2.4.2 Khi số mũ lập mã e nhỏ 33 2.4.3 Lợi dụng tính chất nhân hàm lập mã 34 2.4.4 Tấn công cách lặp phép mã 34 2.4.5 Về khả che giấu mật mã 35 CHƯƠNG 37 MỘT SỐ KIẾN THỨC CÓ LIÊN QUAN 37 3.1 Lý thuyết lưới (Lattice Theory) 37 3.1.1 Giới thiệu .37 3.1.2 Một số khái niệm tính chất lý thuyết lưới 38 3.1.3 Bài toán SVP CVP 39 3.2 Số học số nguyên 40 3.2.1 Tính chia hết số nguyên .40 3.2.2 Thuật toán Euclide 41 3.3 Độ phức tạp tính toán 43 3.3.1 Khái niệm độ phức tạp tính toán 43 3.3.2 Hàm phía cửa sập phía .45 3.4 Số nguyên tố 46 3.4.1 Một số tính chất số nguyên tố 46 3.4.2 Một số tiêu chuẩn số nguyên tố 47 3.5 Xác suất thuật toán xác suất .47 3.5.1 Khái niệm xác suất .48 3.5.2 Thuật toán xác xuất 49 PHẦN HAI 51 MỘT SỐ TẤN CÔNG VÀO HỆ MẬT RSA .51 CHƯƠNG 52 PHÂN TÍCH SỐ NGUYÊN TỐ LỚN 52 1.1 Đặt vấn đề 52 1.2 Phân tích số thành thừa số nguyên tố .53 1.3 Một số phương pháp đơn giản kiểm tra số nguyên tố 57 1.3.1 Các phương pháp thô sơ .57 1.3.2 Kiểm tra theo xác suất 58 CHƯƠNG 59 TẤN CÔNG KHI KHOÁ BÍ MẬT NHỎ .59 2.1 Phân loại công 59 2.3 Thâm nhập số mũ cá nhân thấp .59 2.4 Thâm nhập số mũ công cộng thấp 62 2.4.1 Định lý Coppersmith 62 3.4.2 Thâm nhập Hastard 67 CHƯƠNG 70 MỘT SỐ TẤN CÔNG KHÁC .70 3.1 Franklin-Reiter thâm nhập thông điệp liên quan 70 3.2 Việc thâm nhập đệm ngắn Coppersmith 71 3.3 Thâm nhập phần cách lộ liễu 73 3.4 Tấn công vào trình triển khai 74 3.4.1 Tấn công tạm thời 75 3.4.2 Lỗi ngẫu nhiên .77 3.4.3 Sự công Bleichenbacher PKCS 78 KẾT LUẬN 80 TÀI LIỆU THAM KHẢO 81 DANH MỤC HÌNH ẢNH Hình 1.1: Sơ đồ mã hoá giải mã Hình 1.2: Sơ đồ mã hoá đối xứng Hình 1.3: Sơ đồ mã hoá bất đối xứng Hình 1.4: Sơ đồ hệ thống mã hóa lai CHƯƠNG TỔNG QUAN VỀ BẢO MẬT THÔNG TIN 1.1 Sơ lược lịch sử mật mã học Từ khi, người có nhu cầu trao đổi thông tin, thư tín,… cho lúc họ nghĩ đến việc bảo mật giữ bí mật riêng tư người biết trình trao đổi thông tin Trong trình trao đổi, thông tin sử dụng phổ biến dạng văn Để giữ bí mật cho thông tin người ta sớm nghĩ cách che giấu nội dung thông tin để người hiểu đồng thời họ có cách khôi phục lại nguyên dạng ban đầu để người hiểu Tất nhiên để thực phép mật mã, ta cần thuật toán biến đổi rõ, với khoá mật mã, thành rõ mật mã, thuận toán ngược lại, biến đổi mật mã với khoá mật mã thành rõ Ngày nay, dạng biến dổi văn gọi mật mã văn bản, cách lập mật mã cho văn gọi phép lập mật mã, cách khôi phục lại nguyên dạng ban đầu thông tin văn gọi phép giải mã Phép lập mật mã phép giải mã thực dựa vào khoá riêng mà người biết gọi khoá bí mật Các thuật toán thường không thiết phải giữ bí mật mà cần giữ bí mật khoá mật mã Trong thực tiễn, có hoạt động bảo mật có hoạt động ngược lại khám phá bí mật từ mật mã, ta thường gọi hoạt động mã thám: hoạt động quan trọng không hoạt động bảo mật Do mã thám thường tập trung vào việc tìm khoá mật mã công việc phá khoá Trong thập niên gần đây, giới bắt đầu bước vào kỷ nguyên máy tính điện tử lĩnh vực mật mã có chuyển biến lớn từ giai đoạn mật mã truyền thống chuyển sang giai đoạn mật mã máy tính Ngày nay, máy tính điện tử sử dụng ngày phổ biến lĩnh vực lập giải mật mã Chính công việc kích thích không giáo sư, nhà nghiên cứu, mà cho người yêu thích môn muốn nghiên cứu, tìm hiểu chúng Vì công việc chủ yếu mật mã thực dựa máy tính điện tử nên khái niệm bí mật máy tính hoá Chính vậy, khái niệm tính bí mật khái niệm cốt lõi mật mã Trên giới, có nhiều cách tiếp cận để tìm hiểu định nghĩa khái niệm cách xác, khoa học, toán học cho chưa có Một cách tiếp cận phổ biến gắn khái niệm bí mật với khái niệm ngẫu nhiên Nếu văn có thông tin truyền rõ có nội dung xác định điều mong muốn mật mã phải có gồm ký tự xếp hỗn độn, ngẫu nhiên người nhìn hay đọc chúng không hiểu nội dung gốc Nhưng, có điều đặt chưa thể xác định khái niệm bí mật khái niệm ngẫu nhiên khó xác định cách xác Ngày nay, với trình độ Công Nghệ Thông Tin ngày phát triển hầu hết lĩnh vực đời sống xã hội, lĩnh vực An Toàn Bảo Mật Thông Tin đảm bảo tính bí mật cho thông tin truyền ngày trở nên cần thiết lúc hết Hiển nhiên, tiêu chuẩn văn mật mã đảm bảo tính bí mật cho thông tin văn truyền Vì công việc mật mã chủ yếu dựa vào máy tính điện tử nên song song với khái niệm bí mật, ngẫu nhiên khái niệm dãy bít ngẫu nhiên nghiên cứu, tìm hiểu Nhưng, ta chưa có quy định tiêu chuẩn toán học để xác định dãy bít có ngẫu nhiên hay không mà tìm hiểu số thuộc tính gần với tính ngẫu nhiên dùng làm để xác định dãy bít có giả ngẫu nhiên hay không theo nghĩa có thuộc tính hay không mà Vào năm 1960 với đời Lý thuyết độ phức tạp tính toán khái niệm tìm nội dung chung nghiên cứu cách toán học tính phức tạp Giống ví dụ cụ thể sau: người từ mật mã (là bí mật với người đó) để tìm rõ người phải thực hay nhiều trình tính toán mà độ phức tạp vượt khả tính toán người (kể máy tính) Cũng giống vậy, đoạn bít xem ngẫu nhiên dựa vào đoạn bít biết để tìm đoạn bít dãy người phải tìm hay thực trình tính toán mà độ phức tạp tương đối lớn Nhưng ngày nay, việc chuyển từ mã hoá thông tin ứng dụng dựa máy tính điện tử giai đoạn mật mã máy tính ứng dụng phát triển Chuyển sang giai đoạn mật mã máy tính làm cho hệ thống mật mã có cấu trúc tinh tế hơn, đòi hỏi lập mật mã hay giải mã phức tạp nhiều, khả giữ bí mật mật mã nâng cao trước nhiều Tuy nhiên, vào năm 1970 bước chuyển có tính chất cách mạng mà mật mã máy tính mang lại việc phát hệ mật mã có khoá công khai Cơ sở lý thuyết phát minh tồn hàm phía tức hàm số học y  f (x) mà việc tính y theo x tương đối dễ, việc tính ngược từ y tìm x tức trình tính: x  f 1 ( y ) phức tạp Các hệ mật mã công khai đời làm thay đổi chất cho việc bảo mật hệ thống công cộng, tính chất đặc biết chúng sở cho việc phát triển nhiều giao thức an toàn thông tin khác sử dụng mạng truyền thông công cộng, loại chữ kỹ điện tử, giao thức xác nhận nguồn tin định danh người gửi,…và gần việc phát triển nhiều giao thức đặc thù khác giao dịch ngân hàng, thương mại điện tử,… 1.2 Những kiến thức Mật mã học nghiên cứu phương pháp toán học liên quan đến số khía cạnh thông tin an toàn, toàn vẹn liệu, xác nhận tồn xác nhận tính nguyên thông tin Một cách định nghĩa khác hệ mật mã học sau: Trước tiên mật mã học (cryptography) nghệ thuật nhằm che giấu thông tin, cách chuyển đổi (encrypt) thông tin thành dạng thông tin không đọc (cipher text) Chỉ có người giữ chìa khoá (key) giải mã (decrypt) thông tin thành dạng thông tin hiểu (plain text) Thông tin bị giải mã mà không cần khoá bí mật Ngành học nghiên cứu việc bẻ khoá (attack/crack/hack) gọi cryptanalysis Dưới sơ đồ mã hoá giải mã: $^f Hình 1.1: Sơ đồ mã hoá giải mã 10 khôi phục m cách tính bậc ba thực C’ Khái quát hơn, tất số mũ chung e, Mar khôi phục m k ≥ e Việc thâm nhập khả thi có e nhỏ sử dụng Hastard mô tả công mạnh Để thúc đẩy đáp số Hastard, xét phòng thủ đơn giản chống lại thâm nhập Khác với phát rộng việc mã hoá m, B “đệm” thông điệp trước mã hoá Ví dụ, m chứa t bit, B gửi mi  i.2 t  m tới bên Pi Do tin tặc Mar thu mã hoá thông điệp khác nhau, nên thâm nhập vào Thật không may, Hastad phép cân tuyến tính không chắn Quả thực ông chứng minh dãy số trước bị mã hoá bị thâm nhập Giả sử thành phần P1,…, Pk, B thêm vào f i  Z n i x  Để đưa thông tin m, B gửi mã hoá fi(m) đến Pi, theo cách tin tặc Mar là: Ci  f i m  i mod ni với i = 1,…,k Hastad dãy có liên quan e đến nhau, Mar sửa lại văn gốc m từ tất văn viết mật mã Định lý kết nghiên cứu Hartad Định lý (Hastad): Cho trước dãy n1,…,nk đôi nguyên tố thiết lập nmin = mini(ni) Lấy g i  Z ni x  k đa thức có bậc lớn d Giả sử tồn m < nmin thoả mãn: gi(m) = O modni cho tất i =1,…,k 68 Chứng minh: Lấy n = n 1,…,nk Chúng ta cho tất gi’s đa thức lồi (Thực vậy, cho vài i, dẫn đến hệ số gi không khả nghịch Z *ni , tìm thừa số ni ) Chúng ta giả sử tất chúng k có bậc d Đặt: T g g (x)  i i ( x) i 1 Trong đó: Ti =    modn j i = j modn j i ≠ j Ti số nguyên biết đến hệ số số dư Trung Hoa Khi g(x) phải đa thức đa thức đồng dư với tất ni Nó đa thức bậc d Hơn nữa, biết g (m)  mod n Bây định lý kết định lý m < nmin ≤ n1/k < n 1/d Định lý đưa hệ đồng dư giải cách có hiệu quả, tính phương trình có phép chia Bằng cách thiết lập g i  f i ei  C i mod ni Chúng ta thấy Mar tìm lại m từ mật mã số lượng bên đa thức d nhỏ nhất, vị trí đa thức d lớn eideg(fi), tất i = 1,…,k Nói cách cụ thể, tất ei = e B đưa thông điệp tuyến tính liên quan, Mar phục hồi văn gốc nhanh chóng với k > c Định lý ban đầu Hastad yếu so với định lý đề cập Đối với đa thức bậc d, Hastad yêu cầu phải d(d + 1)/2 Bằng chứng Hastad tương tự định lý Coppersmith nêu phần trước Tuy nhiên, Hastad không sử dụng luỹ thừa g sở lưới thường xuyên thu liên kết yếu 69 CHƯƠNG MỘT SỐ TẤN CÔNG KHÁC 3.1 Franklin-Reiter thâm nhập thông điệp liên quan Franklin Reiter tìm phương pháp công thông minh B gửi cho A thông điệp mã hoá sử dụng modun giống Cặp (n, e) chìa khoá thông dụng mà A hay dùng Giả sử m1, m2  Z*N hai thông điệp riêng biệt thoả mãn điều chế n với m1=f(m2) cho đa thức thông dụng f  Z n x  Để gửi thông điệp m1, m2 đến A B mã hoá thông điệp truyền thông điệp viết thành mật mã đạt C1, C2 Chúng ta đưa văn mật mã C1, C2 Mar dễ dàng phục hồi m1, m2 Mặc dù công việc thâm nhập trợ giúp cho e, đưa bổ đề số mũ e = nhằm đơn giản hoá chứng minh Bổ đề (FR): Lấy e = cho phép cặp (n, 3) chìa khoá thông * dụng hệ mật RSA Lấy m1 , m2  Z n thoả mãn với m1  f (m2 ) mod n cho vài đa thức tuyến tính f  b  Z n x  với b ≠ Khi đó, cho trước (n, e, C1, C2), Mar phục hồi m1, m2 từ phương trình bậc hai * trường Z n Chứng minh: Để giữ cho phần chứng minh mức tổng quát, sử dụng số e (hơn khống chế với e = 3) Từ C1  m1e mod n , biết m2 nghiệm đa thức 70 g1 ( x )  f  x   C1  Z n x  e Tương tự, m2 nghiệm g ( x )  f  x   C  Z n Hệ số tuyến tính x – m2 chia cho hai đa e thức Do đó, Mar sử dụng thuật toán Euclide để tính usc g1 g2 Nếu usc trở thành tuyến tính, m2 tìm Do đó, usc tính phương trình bậc hai thời gian e logn Chúng ta e = usc phải tuyến tính Hệ số đa thức x  C mod n p q vào hệ số tuyến tính hệ số bậc hai bất khả quy (nhớ usc(e,  (n) ) x  C có nghiệm Zn) Do g2 chia hết cho g1, nhân tố usc phải tuyến tính Với e > usc luôn tuyến tính Tuy nhiên, vài trường hợp m1, m2 f khó thu usc tuyến tính trường hợp việc thâm nhập hay công hoàn toàn thất bại Với e > việc thâm nhập lấy phương trình e Hệ là, áp dụng số mũ e sử dụng nhỏ Với e lớn, phép tính usc bị cản trở Đó câu hỏi thú vị (mặc dù khó) để tìm thâm nhập hay công tới số e Nói cách cụ thể, liệu hệ số usc(g1, g2) tìm thấy phương trình bậc hai thời gian loge hay không? 3.2 Việc thâm nhập đệm ngắn Coppersmith Việc thâm nhập Franklin-Reiter giả tạo Xét cho cùng, B lại gửi A mật mã hoá thông điệp liên quan? Coppersmith tăng cường việc thâm nhập đưa chứng quan trọng đệm 71 Một thuật toán đơn giản ngẫu nhiên đệm lót cho văn gốc m việc cộng thêm vào vài bit ngẫu nhiên theo thứ tự từ đầu đến cuối Việc thâm nhập sau nguy hiểm việc đệm cách đơn giản Giả sử B gửi cho A mật mã m Một người thâm nhập Mar, chặn văn ngăn cản tới đích cuối B nhận A không đáp lại thông điệp định gửi lại m cho A A ngẫu nhiên gửi m truyền văn mã hoá Mar lúc có hai văn mã hoá tương ứng với hai mật mã thông điệp sử dụng hai đệm khác Định lý sau đệm sử dụng, Mar phục hồi văn gốc Định lý 8: Lấy (n, e) mã khoá hệ mật RSA với n có số bít a Đặt t = [a/e2] Cho m  Z n* thông điệp có độ dài xấp xỉ a – t (bít nhị phân) Định nghĩa m1=2mm2 + r1 m2=2mm + r2, với r1 r2 số nguyên khác biệt với ≤ r1, r2 < 2m Nếu Mar đưa cho (n, e) mật mã hoá C1, C2 m1, m2, anh phục hồi hiệu m Chứng minh: e Định nghĩa g1 ( x, y)  x  C1 g ( x, y )  ( x  y) e  C biết y = r2 – r1, đa thức có m1 nghiệm Nói cách khác, = r2 – r1 nghiệm h ( y )  res x ( g , g )  Z n  y  Bậc 1/ e2 h e2 Hơn nữa, || < m < n Do  nghiệm nhỏ hmodn, Mar dễ dàng tìm sử dụng định lý Coppersmith (Định lý 3) Một  biết tới, thâm nhập Franklin – Reiter phần trước sử dụng để phục hồi lại m1, m2 72 3.3 Thâm nhập phần cách lộ liễu Cho cặp (n, e) mã khoá RSA riêng biệt Giả sử vài phương tiện đó, Mar phá vỡ phần số nhị phân (bit) d Liệu tìm phần lại d? Thật ngạc nhiên, câu trả lời có mã khoá tương ứng nhỏ Gần đây, Durfee Frankel với độ dài e < n phục hồi d từ số bít Kết minh hoạ tầm quan trọng việc bảo vệ toàn vẹn mã khoá RSA riêng tư Định lý (BDF): Cho (n, d) mã khoá RSA riêng tư mà n có số bít a Giả thiết biểu thức [a/4] bit có giá trị nhỏ d, Mar tìm d thời gian log2e Định lý 10 (Coppersmith): Với n = p.q mođun RSA a-bit Rồi lấy a/4 bit có giá trị nhỏ p a/4 bit có giá trị cao p, ta phân tích n Định lý chắn theo sát định lý 10 Trên thực tế, định nghĩa e d, tồn số nguyên k sau: ed  k (n  p  q  1)  Do đó, d   (n) , phải có < k ≤ e Lấy modun theo n/4 lấy q = n/p, ta thu được: (ed ) p  kp(n  p  1)  kn  p(mod2a / ) Từ Mar tìm a/4 bit giá trị nhỏ d, biết giá trị ed mod2a/4 Tương tự, rút phương trình theo k p Đối với giá trị e với k, Mar giải phương trình bậc hai theo p đạt 73 số lượng giá trị ứng cử cho p mod 2a/4 Đối với giá trị ứng cử này, tiến hành thuật toán Định lý 10 để thu hệ số n Do đó, ta thấy tổng số giá trị ứng cử cho p mod 2a/4 gần thời gian elog2e, hệ số n tính Định lý biết đến thâm nhập phần lộ liễu Các việc thâm nhập tương tự áp dụng với giá trị lớn e dài e < n Tuy nhiên, việc tính toán phức tạp Để kết thúc phần này, số mũ đa thức e nhỏ, hệ thống RSA để lộ phân nửa bit có giá trị lớn khoá d riêng tư tương ứng Cần xem lại đẳng thức ed  k ( n  p  q  1)  số nguyên < k  kn   ≤ e để thấy rõ Đưa k, Mar dễ dàng tính được: dˆ    e  k ( p  q) 3k n   dˆ  d  e e n ^ Do đó, d xấp xỉ d Giới hạn rằng, cho phần lớn d, phần ^ lớn bit d với d Từ đó, có giá trị e thích hợp với k, Mar thiết lập e nhỏ yếu tố đáp ứng chi tiết dãy với nửa bít d Trường hợp e = trường hợp thú vị đặc biệt.Trong trường hợp này, k luôn hệ thống hoàn toàn để lộ phần lớn bit giá trị lớn d 3.4 Tấn công vào trình triển khai 74 Một số công vào hệ mật mã RSA chủ yếu công tập trung vào trình cài đặt hệ mật mã RSA 3.4.1 Tấn công tạm thời Ta xét thẻ thông minh có chứa khoá RSA riêng Thẻ thông minh công cụ chống trộm cắp, tin tặc Mar khó kiểm tra nội dung đánh cắp khoá Tuy nhiên, tin tặc thông minh, Koc lại với việc đo lường cách xác thời gian để kích hoạt thẻ thông minh thực hoạt động giải mã (hoặc chữ ký), Mar nhanh chóng phát số mũ giải mã riêng tư d Chúng ta giải thích làm để thiết lập thâm nhập vào RSA mà sử dụng “thuật toán bình phương lặp - repeated squaring algorithm” Cho d = d nd n-1…d0 dãy nhị phân d (ví dụ như: d   in0 i d i với d i {0,1} Thuật toán bình phương lặp tính C  m d mod n , sử dụng phần lớn 2n i d n phép nhân đồng dư Từ quan sát ta thấy C   i 0 m i mod n Thuận toán tính sau: Cho z tương đương m C tương đương Lấy i = 0, … ,n, ta thực bước sau: (1) d = i = cho C tương đương C.z modn (2) cho z tương đương z2 modn Tại điểm cuối, C có giá trị md modn Biến số z chạy suốt dãy giá trị m2i modn với i = 0,…,n, Biến số C thu bậc thích hợp dãy md modn Để cài đặt thâm nhập, Mar yêu cầu bên thẻ thông minh đưa ký số diện rộng thông điệp 75 m1 , m , , m k  Z n* đo lường thời gian Ti mà thẻ cần có để khởi động ký tự ký số Sự thâm nhập phục hồi bit d thời điểm bắt đầu với bit giá trị nhỏ Chúng ta biết d số lẻ Do đó, d0 = Xem xét bước lặp thứ hai Ban đầu z  m mod n C  m Nếu d1 = thẻ thông minh tính C z  m.m mod n Nếu khác, không tính Cho ti thời gian để thẻ thông minh tính mi mi mod n Thì ti khác biệt với khác thời gian để tính mi mi mod n phụ thuộc vào giá trị mi (thuật toán thu nhỏ mođun đơn giản cần khoảng thời gian hoàn toàn khác phụ thuộc vào giá trị bị giảm) Mar biết giá trị ti ngoại tuyến (trước cài đặt thâm nhập) thu tính chất vật lý thẻ Koc quan sát thấy d1 = 1, hai tập hợp {ti} {Ti} tương quan với Chẳng hạn như, i ti lớn mong đợi, Ti lớn mong đợi Mặt khác, d1 = 0, hai tập hợp {ti} {Ti} biến ngẫu nhiên độc lập Bằng việc tìm hiểu tổng quát, Mar xác định liệu d1 Tiếp tục phương pháp này, phục hồi d2, d 3, Cần ý có số mũ e thấp sử dụng, thâm nhập phần trình bày phần trước thâm nhập định thời Koc sử dụng 1/d bit d phát Có hai cách để phá bỏ thâm nhập Cách đơn giản bổ sung trình trì hoãn thích hợp khiến cho trình mũ hoá mođun luôn khoản thời gian định Cách thứ hai, theo quan điểm Rivest, * dựa vào lớp liên kết Trước giải mã m, thẻ thông minh lấy r  Z n bất e kỳ thực phép tính m '  m.r mod n Ta đưa d tới m’ có 76 C ' (m' ) d mod n Cuối cùng, thẻ thông minh thiết lập C  C' mod n Với cách r này, thẻ thông minh đưa d tới thông điệp ngẫu nhiên m’ mà Mar Tóm lại, Mar cài đặt thâm nhập Koc phát dạng thâm nhập khác gọi Phân tích mật mã nguồn điện Koc việc đo lường xác tiêu thụ nguồn điện trình nhận dạng ký số, Mar dễ dàng phát chìa khoá bí mật Suy ra, suốt trình nhân phép nhân đa thức độ xác, tiêu thụ lượng thẻ thông minh cao thông thường Bằng việc đo lường độ dài trình tiêu thụ cao, Mar phép lặp đưa ra, thẻ thông minh thực hai phép nhân, để lộ bit d 3.4.2 Lỗi ngẫu nhiên Quá trình cài đặt giải mã RSA ký số thường xuyên sử dụng định lý số dư Trung quốc để tăng tốc phép tính mdmodn Thay tính toán modn, người tham gia B trước tiên lại tính toán ký số mod p q sau kết hợp hai kết sử dụng định lý số dư Trung quốc Chính xác hơn, B trước tiên tính toán: Cp  m dp mod p C q  m dq mod q Ở vị trí d p  d mod( p  1) d q  d mod( q  1) Sau thu ký số C cách thiết lập: 1 mod p 0 mod p T2   0 mod q 1 mod q C  T1C p  T2 C q mod n Với T1   Thời gian thực bước cuối CRT không đáng kể so với hai ký hiệu số mũ hoá Cần ý p q hai nửa độ dài n Vì trình cài đặt đơn giản phép nhân cần gấp đôi thời gian, phép nhân modulo p nhanh bốn lần so với modulo n Hơn nữa, d p dài nửa d 77 phép tính m dp mod p nhanh lần so với m d mod n Do tổng thời gian ký số giảm lần Rất nhiều hệ thống xử lý dùng phương pháp để hoàn thiện trình cài đặt Boneh, Demillo Lipton quan sát thấy có mối nguy hiểm tồn sử dụng phương pháp CRT Tức giả sử tạo thành ký số, lỗi phần cứng máy tính B khiến tính sai cấu trúc đơn Ví dụ, copy ghi từ vị trí sang vị trí khác, bit bị lệch (Một lỗi phần cứng bị ảnh hưởng giao thoa điện từ môi trường xunh quanh lỗi phần cứng gặp, chẳng hạn lỗi thường gặp phiên đầu Bộ vi xử lý Pentium.) Được đưa cho ký số không hợp lệ, kẻ địch Mar dễ dàng tạo thừa số cho mođunn B 3.4.3 Sự công Bleichenbacher PKCS Cho n có độ dài u bit RSA mođun m thông điệp l bit với l < u Trước thực mã hoá RSA, thông thường người ta hay đệm cho m để có đủ u bít cách gắn vào số bit ngẫu nhiên Phiên cũ chuẩn biết đến PKCS1 sử dụng phương pháp Sau đệm, thông điệp sau: 02 Ngẫu nhiên 00 m Thông điệp cuối dài u bit trực tiếp sử dụng hệ mật mã RSA Khối ban đầu chứa “02” dài 16 bit đệm ngẫu nhiên bổ sung cho thông điệp Khi thông điệp PKCS nhận thông điệp từ máy B, dùng để giải mã ví dụ trình duyệt Website, kiểm tra khối ban đầu, loại bỏ đệm ngẫu nhiên Tuy nhiên, vài 78 ứng dụng kiểm tra khối “02” ban đầu không xuất chúng gửi lại thông điệp lỗi chứa “một văn mã không tồn tại’ Bleichenbacher thông điệp lỗi dẫn đến hệ nghiêm trọng: sử dụng thông điệp lỗi, kẻ thâm nhập Mar lựa chọn đọc mã văn Giả sử Mar gặp văn mã C định gửi cho B muốn đọc Để cài đặt thâm nhập, Mar lấy r  Z n* ngẫu nhiên, tính toán cho C '  rC mod n , gửi C’ tới máy B Một ứng dụng chạy máy B nhận s cố gắng để đọc mã Nó đáp lại thông điệp lỗi không đáp lại thông điệp (nếu Cd bị format) Do đó, Mar nhận thấy bit số 16 có nghĩa giải mã Cd 02 Cũng từ đó, Mar có cách để kiểm tra xem liệu bit số 16 có nghĩa việc giải mã rC mod n có 02 hay không, lựa chọn r ông ta 79 KẾT LUẬN Sau thời gian tìm hiểu đề tài tốt nghiệp “một số công vào hệ mật mã RSA” em nâng cao kiến thức số cách thức công, số kiến thức có liên quan ứng dụng nhiều trình truyền thông tin mạng thương mại điện tử hoá, trình giao dịch tiền máy ATM trình tìm hiểu hệ mật mã công khai RSA Qua đồ án tốt nghiệp hướng phát triển em tìm hiểu cách thức công kiện có liên quan đến hệ mật mã công khai RSA Do vấn đề nên trình thực đồ án không tránh khỏi sai sót Em mong thầy cô bạn sinh viên góp ý để đồ án em hoàn thiện Em xin chân thành cảm ơn! Sinh viên: Đỗ Thị Phương Lan 80 TÀI LIỆU THAM KHẢO [1] D Boneh, Twenty years of attacks on the RSA cryptosystem Noties of American Mathenatial Society (AMR), 1999 [2] D Boneh Cryptanalysis of RSA with private key d less than N0.292 Springer-verlag, 1999 [3] D Coppersmith Small solutions to polynomial equations and low- exponent RSA vulnerabilities Journal of Cryptology, 1997 [4] G Durfee Cryptanalysis of RSA using Algebraic and Lattic methods Standford university, 2002 [5] Phan Đình Diệu – Lý thuyết mật mã an toàn thông tin, Khoa Công nghệ - Đại Học Quốc Gia Hà Nội [6] Journal Athematical Attacks on RSA Cryptosystem, University of Jondan, 2006 [7] http://diendantoanhoc.net [8] http://math.hcmuns.edu.vn [9] http://vi.wikipedia.org 81 NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 82 [...]... bản mật mã đó Bản thân sơ đồ hệ thống mật mã, kể cả phép lập mã và giải mã không nhất thiết phải giữ bí mật, do đó bài toán quy về tìm kiếm chìa khoá mật mã K, hay chìa khoá giải mã K’’, nếu hệ mật mã có khoá phi đối xứng Để giải bài toán này giả thiết người thám mã biết thông tin về sơ đồ hệ mật mã được dùng, kể cả các phép lập mã và giải mã tổng quát E và D Ngoài ra, người thám mã có thể biết thêm một. .. có thể chọn một bản rõ x, và biết bản mật mã y Điều này có thể xảy ra khi người thám mã tạm thời chiếm được máy lập mã -Bài toán thám mã khi có bản mã được chọn: người thám mã có thể chọn một bản mật mã y và biết bản rõ tương ứng x Điều này có thể xẩy ra khi người thám mã chiếm được tạm thời máy giải mã 1.4.2 Tính an toàn của một hệ mật mã Tính an toàn của một hệ thống mật mã phụ thuộc vào độ khó khăn... thực hiện - Ẩn danh: che giấu danh tính của một thực thể tham gia trong một tiến trình nào đó (thường dùng trong việc giao dịch tiền điện tử) 22 CHƯƠNG 2 HỆ MẬT MÃ CÔNG KHAI RSA 2.1 Sơ lược về hệ mật mã khoá công khai 2.1.1 Sơ lược về hệ mật mã công khai Sự ra đời của khái niệm hệ mật mã khoá công khai là một tiến bộ có tính chất bước ngoặt trong lịch sử mật mã nói chung, gắn liền với sự phát triển của... hiện hệ mật mã RSA Để thực hiện hệ mật mã RSA cho một mạng truyền tin bảo mật, ngoài việc xây dựng các chương trình tính toán hàm E (với tham biến đầu vào là n, e và x) và hàm D (với tham biến đầu vào là n, d và y), ta còn phải chọn một bộ: n, d, e để tạo các khoá công khai K’ và khoá bí mật K’’ Hệ mật mã chỉ có khả năng bảo mật cao khi n = p.q là số nguyên tố rất lớn và do đó p, q cũng phải là những số. .. khoá mật mã 1.3.3 Hệ thống mã hoá lai (Hybrid Cryptosystems) Trên thực tế hệ thống mã hoá khoá công khai chưa thể thay thế hệ thống mã hoá khoá bí mật được, nó ít được sử dụng để mã hoá dữ liệu mà thường dùng để mã hoá khoá Hệ thống mã hoá khoá lai ra đời là sự kết hợp giữa tốc độ và tính an toàn của hai hệ thống mã hoá ở trên Dưới đây là mô hình của hệ thống mã hoá lai: Hình 1.4: Sơ đồ hệ thống mã hóa... thuật toán lập mã và giải mã, và đặc biệt là khoá mật mã chung k để thực hiện được các thuật toán đó Định nghĩa 1.1 Một sơ đồ hệ thống mật mã là một bộ năm: S = (P, C, K, E, D) (1) Thoả mãn các điều kiện sau: +P: là một tập hợp hữu hạn các ký tự bản rõ +C: là một tập họp các ký tự bản mã +K: là một tập hợp hữu hạn các khoá +E: là một tập ánh xạ từ KxP vào C, được gọi là phép lập mật mã +D: là một tập ánh... của RSA Bài toán thám mã khi chỉ biết bản mã đối với hệ mật mã RSA là: biết e khoá công khai K’ = (n, e), biết bản rõ y  x mod n , tìm x Bài toán này chính 31 là bài toán RSA Bài toán RSA hay chính là bài toán thám mã RSA là có độ khó tương đương với bài toán phân tích một số nguyên thành thừa số nguyên tố Do đó, giữ tuyệt đối mật mã khoá bí mật d, hay giữ tuyệt mật các thừa số p, q là có ý nghĩa... mã khi sử dụng hệ mật mã đó Người ta đã đề xuất một số cách hiểu cho khái niệm an toàn của hệ thống mật mã, để trên cơ sở đó ta nghiên cứu tính an toàn của nhiều hệ mật mã khác nhau -An toàn vô điều kiện: Giả thiết người thám mã có được thông tin về bản mã Nhưng theo quan niệm lý thuyết thông tin, nếu những hiểu biết về bản mã không thu hẹp được độ bất định về bản rõ đối với người thám mã, thì hệ mật. .. truyền tin bảo mật không còn an toàn Vì vậy ta cần phải tránh việc khi dùng hệ mật RSA để tổ chức mạng truyền tin bảo mật, cần tránh dùng chung modun n 2.4.2 Khi số mũ lập mã e nhỏ Để cho việc tính toán hàm lập mã được hiệu quả, ta dễ có xu hướng chọn số mũ e của hàm lập mã là một số nguyên nhỏ để dễ tính toán chẳng hạn như e = 3 Nhưng nếu trong một mạng truyền tin bảo mật dùng hệ mật mã RSA, nếu có nhiều... tiếng và mang tên là RSA (lấy từ ba chữ cái viết tắt tên của ba người này) và nó được sử dụng rộng rãi trong thực tiễn bảo mật và an toàn thông tin Cũng vào thời gian đó, M.O.Rabin cũng đề xuất một hệ mật khoá công khai dựa trên bài toán số học khó nói trên Liên tiếp, sau đó nhiều hệ mật mã khoá công khai được đề xuất 23 2.1.2 Một số bài toán cơ bản Ta sẽ nhắc lại một số bài toán số học được sử dụng

Ngày đăng: 03/08/2016, 16:26

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

Tài liệu liên quan