Nghiên cứu xây dựng thuật toán tấn công hệ mật RSA

151 41 0
Nghiên cứu xây dựng thuật toán tấn công 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

i ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THƠNG TIN&TRUYỀN THƠNG VÕ TÁ HỒNG NGHIÊN CỨU XÂY DỰNG THUẬT TỐN TẤN CƠNG HỆ MẬT RSA LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Thái Nguyên – 2020 ii LỜI CAM ĐOAN Học viên xin cam đoan luận văn cơng trình nghiên cứu thực thân, hướng dẫn khoa học TS Hồ Văn Canh Các số liệu, kết luận văn trung thực chưa công bố hình thức Tất nội dung tham khảo, kế thừa tác giả khác trích dẫn đầy đủ Em xin chịu trách nhiệm nghiên cứu Người cam đoan Võ Tá Hoàng LỜI CẢM ƠN Học viên trân trọng cảm ơn quan tâm, tạo điều kiện động viên Lãnh đạo Trường Đại học Thái Nguyên, thầy cô Khoa Đào tạo sau đại học, khoa đào tạo quý phòng ban Học viện suốt thời gian qua Học viên xin bày tỏ biết ơn sâu sắc tới TS Hồ Văn Canhđã nhiệt tình định hướng, bồi dưỡng, hướng dẫn học viên thực nội dung khoa học suốt trình nghiên cứu, thực luận văn Xin chân thành cảm ơn động viên, giúp đỡ to lớn từ phía Cơ quan đơn vị, đồng nghiệp gia đình hỗ trợ học viên suốt trình triển khai nội dung nghiên cứu Mặc dù học viên cố gắng, nhiên, luận văn không tránh khỏi thiếu sót Học viên kính mong nhận đóng góp từ phía Cơ sở đào tạo, q thầy cơ, nhà khoa học để tiếp tục hoàn thiện tạo sở cho nghiên cứu Xin trân trọng cảm ơn! Hà Nội, tháng năm 2020 Học viên Võ Tá Hoàng MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN iii MỤC LỤC iv DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT .vii DANH MỤC HÌNH VẼ, BẢNG BIỂU .viii MỞ ĐẦU CHƯƠNG 1: TÌM HIỂU VỀ HỆ MẬT RSA 1.1 Hệ mật mã hóa RSA 1.1.1 Mô tả hệ mật RSA 1.1.2 Thực thi hệ mật RSA 1.1.3 Vấn đề an toàn hệ mật RSA 1.2 Tính an toàn hệ mật mã RSA 1.2.1 An tồn vơ điều kiện 1.2.2 An toàn chứng minh 1.2.3 An tồn tính tốn 1.3 Các kiểu thám mã 1.3.1 Bài toán thám mã biết mã 1.3.2 Bài toán thám mã cặp rõ/ mã biết 1.3.3 Bài toán thám mã với rõ lựa chọn 1.3.4 Bài toán thám mã với mã lựa chọn 1.4 Tấn công hệ mật RSA lợi dụng lỗ hổng chúng 1.4.1 Biết (n) tìm p, q 10 1.4.2 Biết số mũ bí mật RSA 10 1.4.3 Giao thức công chứng 12 1.4.4 Giao thức module n chung 14 1.4.5 Giao thức số mũ công khai nhỏ 20 1.4.6 Giao thức số mũ bí mật nhỏ 21 1.4.7 Trường hợp tham số p-1 q-1 có ước nguyên tố nhỏ 24 Kết luận Chương 26 CHƯƠNG 2: NGHIÊN CỨU MỘT SỐ THUẬT TỐN TẤN CƠNG HỆ MẬT RSA 27 2.1 Kiểm tra tính nguyên tố số 27 2.1.1 Đặt toán 27 2.1.2 Các thuật tốn kiểm tra tính ngun tố theo xác suất 28 2.1.2.1 Thuật toán Fermat 29 2.1.2.2 Thuật toán Solovay-Strassen 29 2.1.2.3 Thuật toán Miller-Rabin 30 2.1.2.4 So sánh thuật toán Fermat, Solovay-Strassen Miller - Rabin 31 2.1.2.5 Kiểm tra tính nguyên tố số nguyên tố Mersenne 32 2.1.2.6 Một số thuật toán kiểm tra tính nguyên tố khác 32 2.2 Các thuật tốn phân tích thừa số 34 2.2.1 Thuật tốn tìm nhân tử lớn thứ 34 2.2.2 Thuật toán phân tích thứ hai 37 2.2.3 Thuật tốn phân tích thứ ba 38 Kết luận Chương 42 CHƯƠNG 3: ĐỀ XUẤT THUẬT TỐN TẤN CƠNG RSA KHƠNG CẦN PHÂN TÍCH NHÂN TỬ 43 3.1 Mở đầu 43 3.2 Cơ sở toán học thuật toán 44 3.2.1 Một số mệnh đề 44 3.2.2 Xác định hàm ф(n) 45 3.3 Đề xuất thuật toán 46 3.3.1 Lưu đồ giải thuật 46 3.3.2 Xây dựng chương trình 47 3.3.3 Một số ví dụ 51 Kết luận Chương 53 KẾT LUẬN 54 DANH MỤC TÀI LIỆU THAM KHẢO 55 PHỤ LỤC 57 Phụ lục Mã nguồn Chương trình 57 Phụ lục Thư viện tính tốn số lớn 71 Biểu diễn số lớn 72 Các phép toán với số lớn 73 vii DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT K ý v i RR Siv RC Chi GG Cre Ý n Hệ mật mã RSA Định lý đồng dư Trung Hoa Ước chung lớn G Trường số F thực G Trường nhị F phân Tập hợp khóa mã Thuật tốn mã hóa Thuật tốn giải mã Tập hợp rõ Tập hợp mã  Hàm Phi_Ơle  p Cặp p q số Số nguyên dương Văn P B C ả Thành phần khóa cơng Thành phần khóa bí mật Số nguyên tố Mersenne Số nguyên lẻ viii DANH MỤC HÌNH VẼ, BẢNG BIỂU Hình 3.1: Lưu đồ thuật toán 47 Hình 3.2: Giao diện chương trình 48 Hình 3.3: Kiểm tra tính chẵn số cần phân tích 49 Hình 3.4: Kiểm tra tính nguyên tố số cần phân tích 49 Hình 3.5: Chức phân tích 50 Hình 3.6: Chức dừng q trình phân tích 50 Hình 3.7: Chức hiển thị kết 51 MỞ2ĐẦU Đặt vấn đề Hệ mật RSA phát minh Ron Rivest, Adi Shamir, Len Adleman, công bố lần đầu vào tháng năm 1977 tạp chí khoa học Mỹ, sử dụng lĩnh vựcbảo mật cung cấp chế xác thực liệu số [3],[17] Ngày nay, RSA phát triển ứng dụng rộng rãi tất lĩnh vực đời sống, kinh tế xã hội, an ninh quốc phòng, đặc biệt thương mại điện tử Theo [4],[6] RSA sử dụng nhiều để trao đổi khóa bí mật xác thực hệ mật mã đối xứng; sử dụng web servers browsers nhằm đảm bảo an ninh đường truyền, đặc biệt RSA coi hạt nhân hệ thống toán điện tử Bởi vậy, nghiên cứu phân tích hệ mật RSA ln thu hút quan tâm nhiều quốc gia, tổ chức, tập đồn, cơng ty nhà khoa học đầu tư nghiên cứu [7],[9] Ở nước ta nay, hầu hết quan, tổ chức hoạt động lĩnh vực bảo mật trung tâm nghiên cứu, trường đại học khối kỹ thuật có kết nghiên cứu, phân tích hệ số an tồn tham số hệ mật, từ rõ mối nguy hiểm tiềm ẩn cần cải thiện hệ mật RSA sử dụng [5],[10] Vấn đề thám mã hệ mật RSA nhà nghiên cứu tập trung khai thác dựa sơ hở RSA như: công vào số mũ cơng khai số mũ bí mật thấp, cơng vào tham số nguyên tố p, q bé cách xa lớn, họ tập trung vào việc phân tích nhân tử số n (modul RSA) Trường hợp số lớn, từ n 1024 trở lên phương pháp khơng phát huy hiệu chạy chậm không cho mong muốn [3] Mặt khác mặt toán học chứng minh hiệu việc công hệ mật RSA phụ thuộc vào cách thu hẹp khoảng cách dò tìm số nguyên tố p hệ mật RSA Do cần có nghiên cứu cơng RSA mà khơng cần phân tích nhân tử [4] If xi  yy nho zi   xi 10  yi  nho ; nho 1; Else zi  xi  yi 10 ; nho  nho  ; Xét dấu cho z ; 2.4 Phép nhân hai số lớn 2.4.1 Nhân số lớn với số nguyên Input: Số lớn x  xn1 x0  số nguyên k Output: z  z.k , z có độ dải tối thiểu n Algorithm: l nho  ; temp ; for pi  0;i  n;i   p temp  xi.k  nho ; zi  temp%10 ; nho  temp  zi /10 ; Độ dài z 1à n ; if nho! 0 while nho! 0 n  n 1; //Tăng độ dài z , 10 zi   nho%10 ; 11 nho  nho zi /10 ; 12 i   ; 13.retum z ; 2.4.2 Nhân hai số lớn n m Cho hai số lớn x  xn1 x0 y   ym1 y0  có cần tính , z x.y có độ dài Để nhân hai số lớn ta tiến hành sau: - Lấy phần tử số thứ hai nhân với tất phần tử số thứ hay nóicách khác lấy phần tử y nhân với toàn x cộng thêm phần tử nhớ, kết đem chia cho hệ số, lấy số dư làm kết hàng tương ứng, thương số số nhớ số - Dịch trái số bước phù hợp - Cộng tất kết nhân lại Cụ thể thuật toán nhân hai số lớn sau: Input: Hai số lớn x  xn1 x0 y   ym1 y0  có độ dài n m , Output: z  x.y Algorithm: i,temp,nho ; BigNum b ; for i  0;i  m;i   temp  yi ; b  x.temp ; // Nhân số lớn với số nguyên Dichtrai b,i  ; // dịch trái vị trí; b,i z  z b ; Retum z ; 2.5 Phép chia hai số lớn dư ơn g Hai số lớn x  xn1 x0 y   ym1 y0  có độ dài n m , Xét trường hợp phép chia hai số lớn có thương nhỏ Input: Hai số lớn x  xn1 x0 y   ym1 y0  có độ dài n m , y Output: x  x ; z có độ dài k  n  m ; Algorithm: 1.For i  to i 10 BigNum c ; c  b.i ; // Nhân số lớn với số nguyên If (Sosanh c, a ==1) return i 1;// c  a Else If (Sosanh c, a ==2) retum i;c  a Thuật toán chia hai số lớn dựa ý tưởng phép chia thông thường Input: Hai số lớn x, y có độ dài n, m Output: z  x y Algorithm: BigNum b, z,c1 ; If ( y0  &&m 1 ) cout

Ngày đăng: 09/04/2021, 11:31

Từ khóa liên quan

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

Tài liệu liên quan