Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 37 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
37
Dung lượng
773,33 KB
Nội dung
Tìm hiểu phương pháp mã hóa khóa cơng khai RSA ứng dụng BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC VINH KHOA CNTT ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI : TÌM HIỂU PHƯƠNG PHÁP MÃ HỐ CƠNG KHAI RSA VÀ ỨNG DỤNG Giáo viên hướng dẫn Sinh viên thực MSSV Lớp : : : : TH.s Vũ Văn Nam Phan Ngọc Cương 0751070334 48CQ107K Vinh, ngày tháng , năm 2011 SVTH: Phan Ngọc Cương GVHD: Vũ Văn Nam Tìm hiểu phương pháp mã hóa khóa cơng khai RSA ứng dụng MỤC LỤC Trang LỜI CẢM ƠN! MỞ ĐẦU Lý chọn đề tài Cấu trúc đồ án Đóng góp đồ án CHƯƠNG 1: MỘT SỐ KHÁI NIỆM VÀ PHÂN LOẠI CÁC PHƯƠNG PHÁP MÃ HÓA 1.1 Một số khái niệm 1.2 Một số vấn đề bảo vệ thơng tin 1.3 Phân loại phương pháp mã hóa 1.3.1 Phân loại theo thời gian 1.3.2 Phân loại theo phương thức xử lý 1.3.3 Phân loại theo phương thức chuyển đổi 1.3.4 Phân loại theo tính chất khóa 1.4 Phương pháp mã hóa đối xứng 10 1.4.1 Khái niệm 10 1.4.2 Phương pháp mã hóa 10 1.4.3 Ưu điểm nhược điểm 11 1.5 Phương pháp mã hóa bất đối xứng 12 1.5.1 Khái niệm 12 1.5.2 Phương pháp mã hóa 12 1.5.3 Ưu điểm nhược điểm 13 1.6 Giới thiệu số phương pháp mã hóa 13 1.6.1 Phương pháp mã hóa Ceasar 13 1.6.2 Mã Playfair 14 1.6.3 Mã Rail Fence 16 1.6.4 Mã dịch chuyển dòng 16 SVTH: Phan Ngọc Cương GVHD: Vũ Văn Nam Tìm hiểu phương pháp mã hóa khóa cơng khai RSA ứng dụng CHƯƠNG 2: PHƯƠNG PHÁP MÃ HĨA KHĨA CƠNG KHAI RSA 2.1 Giới thiệu 17 2.2 Mô tả sơ lược thuật toán 17 2.3 Một số định lý sử dụng 18 2.3.1 Định lý số dư Trung Quốc 18 2.3.2 Thuật tốn bình phương nhân 19 2.3.3 Định lý Fermat nhỏ 20 2.4 Phương pháp mã hóa giải mã 21 2.4.1 Tạo khóa 21 2.4.2 Mã hóa 22 2.4.3 Giải mã 23 2.4.4 Ví dụ 23 2.4.5 Chuyển đổi văn rõ 24 2.4.6 Tạo chữ ký số cho văn 25 CHƯƠNG 3: ĐÁNH GIÁ THUẬT TOÁN VÀ CÁC VẤN ĐỀ ĐẶT RA TRONG THỰC TẾ 3.1 Đánh giá thuật toán 26 3.2 Các vấn đề đặt 26 3.2.1 Vấn đề an ninh 26 3.2.2 Quá trình tạo khóa 28 3.2.3 Tốc độ 29 3.2.4 Phân phối khóa 29 3.2.5 Tấn công 29 CHƯƠNG 4: THIẾT KẾ CHƯƠNG TRÌNH VÀ KẾT QUẢ ĐẠT ĐƯỢC 4.1 Thiết kế chương trình 31 4.1.1 Thiết kế giao diện 31 4.1.2 Các bước thực mã hóa giải mã văn 31 4.2 Kết đạt 33 4.3 Hướng phát triển đồ án 34 KẾT LUẬN 35 TÀI LIỆU THAM KHẢO 37 SVTH: Phan Ngọc Cương GVHD: Vũ Văn Nam Tìm hiểu phương pháp mã hóa khóa cơng khai RSA ứng dụng LỜI CẢM ƠN! Trước hết em xin tỏ lời cảm ơn chân thành tới Ban chủ nhiệm khoa Công nghệ thông tin, Ban giám hiệu trường Đại học Vinh, thầy cô giáo khoa tận tình giảng dạy, trang bị cho em kiến thức, kinh nghiệm cần thiết suốt năm học trường móng vững sau em tốt nghiệp Đặc biệt, em xin chân thành cảm ơn tới Thạc sỹ Vũ Văn Nam tận tình, quan tâm, giúp đỡ hướng dẫn em suốt trình thực đề tài “Tìm hiểu phương pháp mã hóa khóa cơng khai RSA ứng dụng” để em hồn thành tốt đồ án tốt nghiệp Em xin chân thành cảm ơn tới anh chị bạn bè có nhận xét, ý kiến đóng góp, động viên quan tâm giúp đỡ em vượt qua khó khăn suốt q trình làm đồ án Mặc dù em cố gắng hoàn thành đồ án phạm vi khả cho phép khơng thể tránh khỏi thiếu sót Em kính mong nhận thơng cảm góp ý chân thành thầy cô bạn để đồ án hoàn thiện tốt Em xin chân thành cảm ơn! Vinh, ngày 20 tháng 12 năm 2011 Sinh viên thực hiện: Phan Ngọc Cương SVTH: Phan Ngọc Cương GVHD: Vũ Văn Nam Tìm hiểu phương pháp mã hóa khóa công khai RSA ứng dụng MỞ ĐẦU Lý chọn đề tài Ngày nay, ứng dụng công nghệ thông tin ngày phổ biến rộng rãi ảnh hưởng lớn đến diện mạo đời sống, kinh tế, xã hội Mọi công việc hàng ngày thực từ xa với hổ trợ máy vi tính mạng internet (từ việc học tập, mua sắm, gửi thư, kinh doanh…) Tất thông tin liên quan đến cơng việc máy vi tính quản lý truyền hệ thống mạng Đối với thơng tin bình thường khơng có ý đến, thơng tin mang tính chất sống số cá nhân (hay tổ chức) vấn đề bảo mật thật quan trọng Nhiều tổ chức, cá nhân tìm kiếm đưa nhiều giải pháp bảo mật; Phương pháp mã hóa khóa cơng khai RSA xem phương pháp có tính an tồn cao Mặt khác, xã hội phát triển ngày thời gian vàng bạc làm để giảm thời gian cơng việc đến mức mà hiệu đem lại ngày cao Tuy nhiên, phải bảo đảm q trình trao đổi thơng tin an tồn tồn vẹn, thơng tin đến nơi nhận mà khơng có thay đổi khơng bị giả mạo Làm để hai đối tác trao đổi thơng tin xác với nhau, tạo văn hợp đồng mà khơng cần có gặp gỡ trực tiếp Chúng ta phải thừa nhận rủi ro gặp phải trình giao dịch, kinh doanh mạng hữu; nguy bị thay đổi, chép liệu mạng thực trở ngại giao dịch điện tử Việc xác thực điện tử kiểm tra tính tồn vẹn liệu giao dịch điện tử biện pháp đảm bảo an tồn thơng tin; vấn đề thật cần thiết cấp bách SVTH: Phan Ngọc Cương GVHD: Vũ Văn Nam Tìm hiểu phương pháp mã hóa khóa cơng khai RSA ứng dụng Và đồng ý giáo viên hướng dẫn – Thạc sỹ Vũ Văn Nam em chọn đề tài “Tìm hiểu phương pháp mã hóa khóa cơng khai RSA ứng dụng” Cấu trúc đồ án Ngoài phần mở đầu kết luận cấu trúc đồ án triển khai ba chương: Chương 1: Một số khái niệm phân loại phương pháp mã hóa Chương 2: Phương pháp mã hóa khóa cơng khai RSA Chương 3: Đánh giá thuật toán vấn đề đặt thực tế Chương 4: Thiết kế chương trình kết đạt Và cuối Tài liệu tham khảo Đóng góp đồ án Đồ án nghiên cứu đề tài “Tìm hiểu phương pháp mã hóa khóa cơng khai RSA ứng dụng” với nhìn tổng quát đầy đủ phương pháp mã hóa khóa cơng khai RSA Đề tài tập trung nghiên cứu vào hai nội dung chính: (1) Tìm hiểu kỹ thuật mã hố cơng khai RSA (2) Vận dụng kỹ thuật mã hoá RSA an tồn bảo mật thơng tin Kết nghiên cứu đề tài vận dụng vào công tác giảng dạy, học tập môn ”An tồn bảo mật thơng tin” Giúp sinh viên có nhìn cụ thể hơn, trực quan tầm quan trọng phương pháp mã hóa RSA an tồn bảo mật thơng tin ứng dụng chữ ký điện tử SVTH: Phan Ngọc Cương GVHD: Vũ Văn Nam Tìm hiểu phương pháp mã hóa khóa cơng khai RSA ứng dụng CHƯƠNG 1: MỘT SỐ KHÁI NIỆM VÀ PHÂN LOẠI CÁC PHƯƠNG PHÁP MÃ HÓA 1.1 Một số khái niệm Trong mật mã học, ngành tốn học ứng dụng cho cơng nghệ thơng tin, mã hóa phương pháp để biến thơng tin (phim ảnh, văn bản, hình ảnh ) từ định dạng bình thường sang dạng thơng tin khơng thể hiểu khơng có phương tiện giải mã Bản rõ P gọi là tin gốc Bản rõ chia nhỏ có kích thước phù hợp Bản mã C tin gốc mã hoá Ở ta thường xét phương pháp mã hóa mà khơng làm thay đổi kích thước rõ, tức chúng có độ dài Mã thuật toán E chuyển rõ thành mã Thơng thường cần thuật tốn mã hóa mạnh, cho dù kẻ thù biết thuật toán, khơng biết thơng tin khóa khơng tìm rõ Khố K thơng tin tham số dùng để mã hố, có người gửi nguời nhận biết Khóa độc lập với rõ có độ dài phù hợp với u cầu an tồn Mã hố q trình chuyển rõ thành mã, thông thường bao gồm việc áp dụng thuật tốn mã hóa số q trình xử lý thông tin kèm theo Giải mã chuyển mã thành rõ, trình ngược lại mã hóa Mật mã chuyên ngành khoa học khoa học máy tính nghiên cứu nguyên lý phương pháp mã hoá Hiện người ta đưa nhiều chuẩn an toàn cho lĩnh vực khác công nghệ thông tin Thám mã nghiên cứu nguyên lý phương pháp giải mã mà khơng biết khố Thơng thường đưa mã mạnh làm chuẩn dùng chung người sử dụng, mã kẻ thám mã người phát triển mã tìm hiểu nghiên cứu phương pháp giải phần mã với thơng tin khơng đầy đủ Có hai phương pháp phá mã : SVTH: Phan Ngọc Cương GVHD: Vũ Văn Nam Tìm hiểu phương pháp mã hóa khóa cơng khai RSA ứng dụng - Vét cạn : Thử tất khóa - Dùng kỹ thuật: - Khai thác nhược điểm giải thuật - Dựa đặc trưng chung văn thô số cặp văn thô - văn mã hóa mẫu Lý thuyết mã bao gồm mật mã thám mã Nó thể thống nhất, để đánh giá mã mạnh hay không, phải xét từ hai khía cạnh Các nhà khoa học mong muốn tìm mơ hình mã hóa khái qt cao đáp ứng nhiều sách an tồn khác 1.2 Một số vấn đề bảo vệ thông tin - Bảo mật thông tin (Secrecy): đảm bảo thơng tin giữ bí mật - Tồn vẹn thơng tin (Integrity): bảo đảm tính tồn vẹn thơng tin liên lạc giúp phát thông tin bị sửa đổi Ví dụ: B cần đảm bảo nhận xác nội dung mà A gửi Cần đảm bảo C không can thiệp để sửa nội dung thông điệp mà A gửi cho B - Xác thực (Authentication): xác thực đối tác liên lạc xác thực nội dung thông tin liên lạc Ví dụ: B chờ A “xác nhận” đến thời điểm thực công việc Cần đảm bảo C không can thiệp để tạo “xác nhận” giả - Chống lại thoái thác trách nhiệm (Non-repudiation): đảm bảo đối tác hệ thống từ chối trách nhiệm hành động mà thực Ví dụ: B nhận thơng điệp mà A gửi A “chối” không gửi thông điệp cho B 1.3 Phân loại phương pháp mã hóa 1.3.1 Phân loại theo thời gian 1.3.1.1 Phương pháp mã hóa cổ điển Mã hố cổ điển phương pháp mã hoá đơn giản xuất lịch sử ngành mã hoá Thuật toán đơn giản dễ hiểu Những phương SVTH: Phan Ngọc Cương GVHD: Vũ Văn Nam Tìm hiểu phương pháp mã hóa khóa cơng khai RSA ứng dụng pháp mã hoá cở sở cho việc nghiên cứu phát triển thuật toán mã hoá đối xứng sử dụng ngày Trong mã hoá cổ điển có hai phương pháp bật là: thay hoán vị Bao gồm: Mã Ceasar, bảng mã chữ đơn, mã Playfair, mã Vigenere, mã Rail Fence, mã dịch chuyển dịng,… 1.3.1.2 Phương pháp mã hóa đại Mã hóa đại phương pháp mã hóa có kết hợp hai phương pháp thay hoán vị Thuật tốn phức tạp dần có nhiều ứng dụng quan trọng Bao gồm: mã Fiestel, chuẩn mã hóa liệu DES, chuẩn mã hóa nâng cao AES, RSA,… 1.3.2 Phân loại theo phương thức xử lý Mã hóa khối : Mỗi lần xử lý khối văn thô tạo khối văn mã hóa tương ứng (chẳng hạn 64 hay 128 bit) Như: mã Fiestel, DES, AES, RSA,… Mã hóa luồng : Xử lý liệu đầu vào liên tục (chẳng hạn lần bit) Chẳng hạn mã khoá tự động Vigenere 1.3.3 Phân loại theo phương thức chuyển đổi Mã hóa thay phương pháp mà kí tự (nhóm kí tự) rõ thay kí tự (một nhóm kí tự) khác để tạo mã Bên nhận cần thay ngược lại mã để có rõ ban đầu Bao gồm: mã Ceasar, mã Playfair, mã Vigenere, … Mã hóa hốn vị phương pháp má kí tự rõ giữ nguyên, chúng xếp lại vị trí để tạo mã Tức kí tự rõ hồn tồn khơng bị thay đổi kí tự khác mà đảo chỗ chúng để tạo thành mã Như: mã Rail Fence, mã dịch chuyển dòng,… 1.3.4 Phân loại theo tính chất khóa Bao gồm hai kỹ thuật mã hóa chủ yếu: phương pháp mã hóa đối xứng (mã hóa khóa bí mật) phương pháp mã hóa bất đối xứng (mã hóa khóa cơng khai) Đây cách phân loại chủ yếu phổ biến SVTH: Phan Ngọc Cương GVHD: Vũ Văn Nam Tìm hiểu phương pháp mã hóa khóa cơng khai RSA ứng dụng Hai loại mã hóa khác số lượng khóa Mã hóa đối xứng sử dụng khóa để mã hóa/giải mã Trong đó, mã hóa bất đối xứng sử dụng hai khóa khác để mã hóa giải mã thơng tin Mỗi hệ thống mã hóa có ưu nhược điểm riêng Mã hóa đối xứng xử lí nhanh độ an tồn khơng cao Mã hóa bất đối xứng xử lí chậm hơn, độ an tồn tính thuận tiện quản lí khóa cao Trong ứng dụng mã hóa tại, người ta thường kết hợp ưu điểm hai loại mã hóa Nhưng tìm hiểu, phân loại theo tính chất khóa để thấy rõ tầm quan trọng việc mã hóa liệu 1.4 Phương pháp mã hóa đối xứng 1.4.1 Khái niệm Mã hóa đối xứng phương pháp mã hóa khóa dùng cho việc mã hóa giải mã sử dụng chung khóa 1.4.2 Phương pháp mã hóa Thuật tốn đối xứng hay cịn gọi thuật tốn mã hố cổ điển thuật tốn mà khố mã hố tính toán từ khoá giải mã Trong nhiều trường hợp, khoá mã hoá khoá giải mã giống Thuật tốn cịn có nhiều tên gọi khác thuật tốn khố bí mật, thuật tốn khố đơn giản, thuật toán khoá Thuật toán yêu cầu người gửi người nhận phải thoả thuận khố trước thơng báo gửi đi, khố phải cất giữ bí mật Độ an tồn thuật toán phụ thuộc vào khoá, để lộ khoá nghĩa người mã hố giải mã thơng báo hệ thống mã hoá Sự mã hoá giải mã thuật toán đối xứng biểu thị : EK( P ) = C DK( C ) = P K1 Bản rõ K2 Bản mã Mã hoá Bản rõ gốc Mã hố Hình 1: Mã hố giải mã với khoá đối xứng SVTH: Phan Ngọc Cương 10 GVHD: Vũ Văn Nam Tìm hiểu phương pháp mã hóa khóa cơng khai RSA ứng dụng 2.4.3 Giải mã A nhận C từ B biết khóa bí mật d A tìm m từ C theo công thức sau: m = Cd mod n Biết m, A tìm lại M theo phương pháp thỏa thuận trước Quá trình giải mã hoạt động ta có: Cd ≡ ( me)d med (mod n) Do ed ≡ (mod p-1) ed ≡ (mod q-1), theo định lý Fermat nhỏ nên: med m (mod p) Và : med m (mod q) Do p q hai số nguyên tố nhau, áp dụng định lý Số dư Trung Quốc, ta có: med m (mod pq) hay: Cd m (mod n) 2.4.4 Ví dụ Sau ví dụ với số cụ thể Ở sử dụng số nhỏ để tiện tính tốn cịn thực tế phải dùng số có giá trị đủ lớn Lấy: p = 13 Số nguyên tố thứ (giữ bí mật hủy sau tạo khóa) q = 17 Số nguyên tố thứ hai (giữ bí mật hủy sau tạo khóa) N = p*q = 221 Mơđun (cơng bố cơng khai) (n) =(p-1)*(q-1) =192 Tính giá trị hàm số Ơle: e = 11 Số mũ cơng khai d = 35 Số mũ bí mật SVTH: Phan Ngọc Cương 23 GVHD: Vũ Văn Nam Tìm hiểu phương pháp mã hóa khóa cơng khai RSA ứng dụng Khóa cơng khai (11, 221), khóa bí mật (35, 221); Cho rõ P= 123; Thực mã hóa ta thu mã : C(P)= 123 11 mod 221 = 115 Tiến hành giải mã, ta thu rõ: P(C) = 11535 mod 221 =123 Cả hai phép tính thực hiệu nhờ thuật tốn bình phương nhân 2.4.5 Chuyển đổi văn rõ Trước thực mã hóa, ta phải thực việc chuyển đổi văn rõ khơng an tồn Nếu khơng có q trình này, RSA gặp phải số vấn đề sau: - Nếu m = m = tạo mã có giá trị tương ứng - Khi mã hóa với số mũ nhỏ (chẳng hạn e = 3) m có giá trị nhỏ, giá trị me nhận giá trị nhỏ (so với n) Như phép môđun tác dụng dễ dàng tìm m cách khai bậc e c (bỏ qua mơđun) - RSA phương pháp mã hóa xác định (khơng có thành phần ngẫu nhiên) nên kẻ cơng thực cơng lựa chọn rõ cách tạo bảng tra rõ mã Khi gặp mã, kẻ cơng sử dụng bảng tra để tìm rõ tương ứng - Trên thực tế, ta thường gặp vấn đề đầu gửi tin ASCII ngắn với m nhóm vài ký tự ASCII Một đoạn tin có ký tự NUL gán giá trị m = cho mã giá trị e N Tương tự, ký tự ASCII khác, SOH, có giá trị cho mã Với hệ thống dùng giá trị e nhỏ tất ký tự ASCII cho kết mã hóa khơng an tồn giá trị lớn m 255 2553 nhỏ giá trị n chấp nhận Những mã dễ dàng bị phá mã Để tránh gặp phải vấn đề trên, RSA thực tế thường bao gồm hình thức chuyển đổi ngẫu nhiên hóa m trước mã hóa Q trình chuyển đổi phải đảm bảo m không rơi vào giá trị không an toàn Sau SVTH: Phan Ngọc Cương 24 GVHD: Vũ Văn Nam Tìm hiểu phương pháp mã hóa khóa công khai RSA ứng dụng chuyển đổi, rõ mã hóa cho số khả tập hợp mã Điều làm giảm tính khả thi phương pháp cơng lựa chọn rõ (một rõ tương ứng với nhiều mã tuỳ thuộc vào cách chuyển đổi) Một số tiêu chuẩn, chẳng hạn PKCS, thiết kế để chuyển đổi rõ trước mã hóa RSA Các phương pháp chuyển đổi bổ sung thêm bít vào M Các phương pháp chuyển đổi cần thiết kế cẩn thận để tránh dạng công phức tạp tận dụng khả biết trước cấu trúc rõ 2.4.6 Tạo chữ ký số cho văn Thuật tốn RSA cịn dùng để tạo chữ ký số cho văn Giả sử A muốn gửi cho B văn có chữ ký Để làm việc này, A tạo giá trị băm (hash value) văn cần ký tính giá trị mũ d mod n (giống A thực giải mã) Giá trị cuối chữ ký điện tử văn xét Khi B nhận văn với chữ ký điện tử, tính giá trị mũ e mod n chữ ký đồng thời với việc tính giá trị băm văn Nếu giá trị B biết người tạo chữ ký biết khóa bí mật A văn không bị thay đổi sau ký Cần ý phương pháp chuyển đổi rõ (như RSA-PSS) giữ vai trò quan trọng q trình mã hóa chữ ký điện tử khơng dùng khóa chung cho đồng thời cho hai mục đích SVTH: Phan Ngọc Cương 25 GVHD: Vũ Văn Nam Tìm hiểu phương pháp mã hóa khóa cơng khai RSA ứng dụng CHƯƠNG 3: ĐÁNH GIÁ THUẬT TOÁN VÀ CÁC VẤN ĐỀ ĐẶT RA TRONG THỰC TẾ 3.1 Đánh giá thuật toán Việc sử dụng cặp khóa khơng đối xứng có nhược điểm trình giải mã nhiều thời gian, với hệ mã này, tốn giữ bí mật khơng giải mà cịn đuợc ứng dụng rộng rãi, đảm bảo đuợc bốn nội dung là: tính bí mật, tính tồn vẹn, tính xác thực tính trách nhiệm Từ kết cho thấy dùng thuật tốn RSA để mã hóa thông tin chứng thực giao dịch điện tử, với mục đích bảo mật đảm bảo tính xác thực thì: - Đỡ tốn cơng sức đầu tư cho hạ tầng bảo mật - Độ bảo mật thông tin tỉ lệ thuận với độ dài khóa - Chiều dài khóa 2048 bit tỏ hiệu lúc - Tận dụng tốc độ máy tính việc mã hóa, giả mã xác thực 3.2 Các vấn đề đặt 3.2.1 Vấn đề an ninh Độ an toàn hệ thống RSA dựa vấn đề toán học: tốn phân tích thừa số ngun tố số nguyên lớn toán RSA Nếu tốn khó (khơng tìm thuật tốn hiệu để giải chúng) khơng thể thực việc phá mã toàn RSA Phá mã phần phải ngăn chặn phương pháp chuyển đổi rõ an tồn Bài tốn RSA tốn tính bậc e mơđun n (với n hợp số): tìm số m cho me=c mod n, (e, n) khóa cơng khai c mã Hiện phương pháp triển vọng giải tốn phân tích n thừa số nguyên tố Khi thực điều này, kẻ cơng tìm số mũ bí mật d từ khóa cơng khai giải mã theo quy trình thuật tốn Nếu kẻ cơng tìm số ngun tố p q cho: n = p*q dễ dàng tìm giá trị (p-1)*(q-1) qua xác định d từ e Chưa có phương pháp SVTH: Phan Ngọc Cương 26 GVHD: Vũ Văn Nam Tìm hiểu phương pháp mã hóa khóa cơng khai RSA ứng dụng tìm máy tính để giải toán thời gian đa thức (polynomial-time) Tuy nhiên người ta chưa chứng minh điều ngược lại (sự khơng tồn thuật tốn) Xem thêm phân tích thừa số nguyên tố vấn đề Tại thời điểm năm 2005, số lớn phân tích thừa số ngun tố có độ dài 663 bít với phương pháp phân tán khóa RSA có độ dài từ 1024 tới 2048 bít Một số chun gia cho khóa 1024 bít sớm bị phá vỡ (cũng có nhiều người phản đối việc này) Với khóa 4096 bít khơng có khả bị phá vỡ tương lai gần Do đó, người ta thường cho RSA đảm bảo an toàn với điều kiện n chọn đủ lớn Nếu n có độ dài 256 bít ngắn hơn, bị phân tích vài với máy tính cá nhân dùng phần mềm có sẵn Nếu n có độ dài 512 bít, bị phân tích vài trăm máy tính thời điểm năm 1999 Một thiết bị lý thuyết có tên TWIRL Shamir Tromer mô tả năm 2003 đặt câu hỏi độ an tồn khóa 1024 bít Vì người ta khuyến cáo sử dụng khóa có độ dài tối thiểu 2048 bít Năm 1993, Peter Shor cơng bố thuật tốn Shor rằng: máy tính lượng tử (trên lý thuyết) giải tốn phân tích thừa số thời gian đa thức Tuy nhiên, máy tính lượng tử chưa thể phát triển tới mức độ nhiều năm Độ an toàn hệ thống RSA dựa vấn đề tốn học: tốn phân tích thừa số nguyên tố số nguyên lớn toán RSA Nếu tốn khó (khơng tìm thuật tốn hiệu để giải chúng) khơng thể thực việc phá mã toàn RSA Phá mã phần phải ngăn chặn phương pháp chuyển đổi rõ an toàn Độ an tồn thuật tốn RSA dựa sở khó khăn việc xác định thừa số nguyên tố số lớn Bảng cho biết thời gian dự đoán, giả sử phép toán thực micro giây: SVTH: Phan Ngọc Cương 27 GVHD: Vũ Văn Nam Tìm hiểu phương pháp mã hóa khóa cơng khai RSA ứng dụng Số chữ số số phân tích Thời gian phân tích 50 75 104 100 74 năm 200 4.000.000 năm 300 51015 năm 500 41025 năm 3.2.2 Q trình tạo khóa Việc tìm số nguyên tố đủ lớn p q thường thực cách thử xác suất số ngẫu nhiên có độ lớn phù hợp Hai số nguyên tố p q cịn cần chọn khơng q gần để phịng trường hợp phân tích n phương pháp phân tích Fermat Ngồi ra, p-1 q-1 có thừa số ngun tố nhỏ n dễ dàng bị phân tích p q cần thử để tránh khả Bên cạnh đó, cần tránh sử dụng phương pháp tìm số ngẫu nhiên mà kẻ cơng lợi dụng để biết thêm thơng tin việc lựa chọn (cần dùng tạo số ngẫu nhiên tốt) Yêu cầu số lựa chọn cần đồng thời ngẫu nhiên không dự đoán Đây yêu cầu khác nhau: số lựa chọn ngẫu nhiên (khơng có kiểu mẫu kết quả) dự đốn dù phần an ninh thuật tốn khơng đảm bảo Nếu kẻ cơng đốn nửa chữ số p hay q chúng dễ dàng tìm nửa lại (theo nghiên cứu Donald Coppersmith vào năm 1997) Một điểm cần nhấn mạnh khóa bí mật d phải đủ lớn Năm 1990, Wiener giá trị p nằm khoảng q 2q (khá phổ biến) d < n1/4/3 tìm d từ n e Mặc dù e có giá trị số mũ nhỏ khơng cịn sử dụng tạo nên lỗ hổng (đã đề cập phần chuyển đổi văn rõ) Giá trị thường dùng SVTH: Phan Ngọc Cương 28 GVHD: Vũ Văn Nam Tìm hiểu phương pháp mã hóa khóa cơng khai RSA ứng dụng 65537 xem đủ lớn khơng q lớn ảnh hưởng tới việc thực hàm mũ 3.2.3 Tốc độ RSA có tốc độ thực chậm đáng kể so với DES thuật toán mã hóa đối xứng khác Trên thực tế, B sử dụng thuật tốn mã hóa đối xứng để mã hóa văn cần gửi sử dụng RSA để mã hóa khóa để giải mã (thơng thường khóa ngắn nhiều so với văn bản) Phương thức tạo vấn đề an ninh Một ví dụ cần phải tạo khóa đối xứng thật ngẫu nhiên Nếu không, kẻ công (thường ký hiệu E) bỏ qua RSA tập trung vào việc đốn khóa đối xứng 3.2.4 Phân phối khóa Cũng giống thuật tốn mã hóa khác, cách thức phân phối khóa cơng khai yếu tố định độ an tồn RSA Q trình phân phối khóa cần chống lại công đứng (man-in-themiddle attack) Giả sử E gửi cho B khóa khiến B tin khóa (cơng khai) A Đồng thời E có khả đọc thơng tin trao đổi B A Khi đó, E gửi cho B khóa cơng khai (mà B nghĩ khóa A) Sau đó, E đọc tất văn mã hóa B gửi, giải mã với khóa bí mật mình, giữ copy đồng thời mã hóa khóa cơng khai A gửi cho A Về nguyên tắc, B A không phát can thiệp người thứ ba Các phương pháp chống lại dạng công thường dựa chứng thực khóa cơng khai (digital certificate) thành phần hạ tầng khóa cơng khai (public key infrastructure - PKI) 3.2.5 Tấn công 3.2.5.1 Tấn công dựa thời gian Vào năm 1995, Paul Kocher mô tả dạng công lên RSA: kẻ công nắm đủ thông tin phần cứng thực mã hóa xác định thời gian giải mã số mã lựa chọn nhanh chóng tìm khóa d Dạng cơng áp dụng hệ thống chữ ký điện tử sử dụng SVTH: Phan Ngọc Cương 29 GVHD: Vũ Văn Nam Tìm hiểu phương pháp mã hóa khóa cơng khai RSA ứng dụng RSA Năm 2003, Dan Boneh David Brumley chứng minh dạng cơng thực tế hơn: phân tích thừa số RSA dùng mạng máy tính (Máy chủ web dùng SSL) Tấn cơng khai thác thơng tin rị rỉ việc tối ưu hóa định lý số dư Trung quốc mà nhiều ứng dụng thực Để chống lại công dựa thời gian đảm bảo trình giải mã diễn thời gian không đổi văn mã Tuy nhiên, cách làm giảm hiệu suất tính tốn Thay vào đó, hầu hết ứng dụng RSA sử dụng kỹ thuật gọi che mắt Kỹ thuật dựa tính nhân RSA: thay tính cd mod n, Alice chọn số ngẫu nhiên r tính (rec)d mod n Kết phép tính rm mod n tác động r loại bỏ cách nhân kết với nghịch đảo r Đỗi với văn mã, người ta chọn giá trị r Vì vậy, thời gian giải mã khơng cịn phụ thuộc vào giá trị văn mã 3.2.5.2 Tấn cơng lựa chọn thích nghi mã Năm 1981, Daniel Bleichenbacher mô tả dạng cơng lựa chọn thích nghi mã (adaptive chosen ciphertext attack) thực thực tế văn mã hóa RSA Văn mã hóa dựa tiêu chuẩn PKCS #1 v1, tiêu chuẩn chuyển đổi rõ có khả kiểm tra tính hợp lệ văn sau giải mã Do khiếm khuyết PKCS #1, Bleichenbacher thực cơng lên RSA dùng cho giao thức SSL (tìm khóa phiên) Do phát này, mơ hình chuyển đổi an tồn chuyển đổi mã hóa bất đối xứng tối ưu (Optimal Asymmetric Encryption Padding) khuyến cáo sử dụng Đồng thời phòng nghiên cứu RSA đưa phiên PKCS #1 có khả chống lại dạng cơng nói SVTH: Phan Ngọc Cương 30 GVHD: Vũ Văn Nam Tìm hiểu phương pháp mã hóa khóa cơng khai RSA ứng dụng CHƯƠNG 4: THIẾT KẾ CHƯƠNG TRÌNH VÀ KẾT QUẢ ĐẠT ĐƯỢC 4.1 Thiết kế chương trình Chương trình chạy hầu hết hệ điều hành windows Cài đặt ngôn ngữ C# môi trường Visual Studio 2008 Giao diện chương trình đẹp, ngơn ngữ tiếng việt dễ sử dụng 4.1.1 Thiết kế giao diện Hình 4: Giao diện chương trình 4.1.2 Các bước thực mã hóa giải mã văn Một số hình ảnh minh họa kết thực chương trình Các bước để thực mã hóa văn bản: Bước 1: Khởi tạo tham số cho RSA cách click vào button Khởi tạo RSA menu Xử lý / Tạo khóa (Ctrl + K) SVTH: Phan Ngọc Cương 31 GVHD: Vũ Văn Nam Tìm hiểu phương pháp mã hóa khóa cơng khai RSA ứng dụng Hình 5: Tạo cặp khóa cơng khai bí mật Cửa sổ u cầu bạn lưu khóa cơng khai (*.prk) khóa bí mật (dưới dạng *.plk) để cần mở khóa cơng khai để mã hóa văn mở khóa bí mật để giải mã văn Bước 2: Mở văn cần mã hóa cách vào Menu File / Mở File đánh văn vào Bản rõ (Ctrl + O) Hình 6: Mở văn cần mã hóa SVTH: Phan Ngọc Cương 32 GVHD: Vũ Văn Nam Tìm hiểu phương pháp mã hóa khóa cơng khai RSA ứng dụng Bước 3: Tiến hành giải mã văn cách vào Menu Xử lý / Mã hóa (Ctrl + E) Chương trình u cầu người dùng mở khóa cơng khai để mã hóa Hình 7: Văn sau mã hóa Bước 4: Tiến hành giải mã văn cách vào Menu Xử lý / Giải mã (Ctrl + D) Chương trình yêu cầu người dùng mở khóa bí mật để giải mã Hình 8: Văn sau giải mã 4.2 Kết đạt - Nắm hầu hết lý thuyết phương pháp mã hóa thơng tin vấn đề an tồn bảo mật thơng tin - Tìm hiểu thuật toán RSA ứng dụng thuật toán mã hóa thơng tin vào thực tiễn SVTH: Phan Ngọc Cương 33 GVHD: Vũ Văn Nam Tìm hiểu phương pháp mã hóa khóa cơng khai RSA ứng dụng - Cài đặt thuật toán RSA với số nguyên tố nhỏ(20 < p,q < 100) - Mã hóa văn dạng *.txt, mã hóa 70% chữ tiếng việt 4.3 Hướng phát triển đồ án Nếu thời gian cho phép, em tiếp tục phát triển đồ án để mã hóa hầu hết tất văn bản, mã hóa với số nguyên tố đủ lớn hướng tới mã hóa tồn tiếng việt Hướng phát triển đồ án tập trung vào phần mềm ứng dụng Chữ ký điện tử nhằm khai thác ưu điểm bật thuật tốn mã hóa RSA việc mã hóa liệu, nâng cao tính bảo mật cho thông tin đường truyền internet SVTH: Phan Ngọc Cương 34 GVHD: Vũ Văn Nam Tìm hiểu phương pháp mã hóa khóa cơng khai RSA ứng dụng KẾT LUẬN Qua trình làm đồ án, em hiểu biết thêm kiến thức an tồn thơng tin mạng, số thuật tốn phương pháp mã hoá Để so sánh, đánh giá thuật toán mã hoá cần dựa vào số yếu tố độ phức tạp thuật toán, thời gian mã hoá vấn đề phân phối khoá môi trường nhiều người sử dụng Dễ nhận thấy phương pháp mã hoá cổ điển phương pháp đổi chỗ thay đơn giản dễ thực hiện, nhiên độ an tồn khơng cao không đạt độ phức tạp cần thiết, đồng thời khoá dễ bị lộ khoá người gửi người nhận giống Đối với thuật tốn mã khố cơng khai khắc phục vấn đề phân phối khố, khố mã hố cơng khai người có khố cơng khai mã hố tin mình, người có khố bí mật giải mã Phương pháp mã hố cơng khai sử dụng thuật tốn RSA chậm yêu cầu số nguyên tố lớn để sinh khố cơng khai khố bí mật mặt khác hữu ích chưa có thuật tốn phân tích nhanh số lớn thành thừa số số nguyên tố Vì thời gian, trình độ có hạn nên em tìm hiểu cài đặt thuật tốn mã hóa khóa cơng khai RSA vào việc mã hóa văn (*.txt) Hiện tại, chương trình mã hóa với số ngun tố nhỏ, nên chương trình mã hóa giải mã số chữ tiếng việt, số chữ gây lỗi So với đồ án chuyên ngành em tim hiểu sâu sắc vấn đề liên quan mã hóa cặp khóa kỹ thuật mã hóa cơng khai Đây ứng dụng thực tế phương pháp mã hóa RSA Vì thuật tốn mã hóa phức tạp phải có độ dài khóa đủ lớn để tránh việc thám mã nên tốc độ thực phương pháp mã hóa RSA chậm Cho nên thực tế ứng dụng việc mã hóa khóa để xác định việc mát thông tin đường truyền SVTH: Phan Ngọc Cương 35 GVHD: Vũ Văn Nam Tìm hiểu phương pháp mã hóa khóa cơng khai RSA ứng dụng Do điều kiện thời gian hạn hẹp khả có hạn, nên ứng dụng cịn nhiều điểm chưa phù hợp, chưa đáp ứng nhu cầu sử dụng Em mong nhận bảo, đóng góp ý kiến thầy cô bạn để phát triển đồ án thành ứng dụng hồn thiện, phục vụ cho mục đích mã hố chứng thực giao dịch điện tử Đề tài nghiên cứu “Tìm hiểu phương pháp mã hóa khóa cơng khai RSA ứng dụng” đề tài mẻ, có tính ứng dụng cao thực tiễn, đặt vấn đề cấp bách, có tính định xã hội mà công ty, doanh nghiệp, tổ chức, cá nhân,…việc lưu trữ, trao đổi thông tin thời gian quan trọng, việc mát thơng tin gây thảm họa lớn SVTH: Phan Ngọc Cương 36 GVHD: Vũ Văn Nam Tìm hiểu phương pháp mã hóa khóa cơng khai RSA ứng dụng TÀI LIỆU THAM KHẢO [1] PGS.TS Hồ Thuần (2000), Giáo trình “Lý thuyết mật mã an toàn liệu”, Truờng Đại học Bách Khoa Hà Nội [2] Th.S Nguyễn Cơng Nhật (2009), Giáo trình “An tồn bảo mật thông tin”, khoa CNTT - Trường Đại học Vinh [3] Một số wesite: Http://www.codeproject.com Http://www.manguon.com Http://www.vietnamnet.vn Http://www.huflit.edu.vn Http://www.wordpress.com Http://www.tailieu.vn Http://www.google.com.vn http://www.vi.wikipedia.org SVTH: Phan Ngọc Cương 37 GVHD: Vũ Văn Nam ... khóa để thấy rõ tầm quan trọng việc mã hóa liệu 1.4 Phương pháp mã hóa đối xứng 1.4.1 Khái niệm Mã hóa đối xứng phương pháp mã hóa khóa dùng cho việc mã hóa giải mã sử dụng chung khóa 1.4.2 Phương. .. mã khóa cơng khai - Khắc phục nhược điểm mã hóa khóa đối xứng cách sử dụng khóa chung để mã hóa, sau dùng khóa riêng (khóa bí mật) cho việc giải mã Trong khả để tìm khóa bí mật từ khóa cơng khai. .. tài ? ?Tìm hiểu phương pháp mã hóa khóa cơng khai RSA ứng dụng? ?? với nhìn tổng quát đầy đủ phương pháp mã hóa khóa cơng khai RSA Đề tài tập trung nghiên cứu vào hai nội dung chính: (1) Tìm hiểu