Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 36 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
36
Dung lượng
920,77 KB
Nội dung
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 1.4.1 Khái niệm 1.4.2 Phƣơng pháp mã hóa 1.4.3 Ƣu điểm nhƣợc điểm 10 1.5 Phƣơng pháp mã hóa bất đối xứng 11 1.5.1 Khái niệm 11 1.5.2 Phƣơng pháp mã hóa 11 1.5.3 Ƣu điểm nhƣợc điểm 12 1.6 Giới thiệu số phƣơng pháp mã hóa 12 1.6.1 Phƣơng pháp mã hóa Ceasar 12 1.6.2 Mã Playfair 13 1.6.3 Mã Rail Fence 15 1.6.4 Mã dịch chuyển dòng 15 Đồ án tốt nghiệp 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 16 2.2 Mơ tả sơ lƣợc thuật tốn 16 2.3 Một số định lý đƣợc sử dụng 17 2.3.1 Định lý số dƣ Trung Quốc 17 2.3.2 Thuật tốn bình phƣơng nhân 18 2.3.3 Định lý Fermat nhỏ 19 2.4 Phƣơng pháp mã hóa giải mã 20 2.4.1 Tạo khóa 20 2.4.2 Mã hóa 21 2.4.3 Giải mã 22 2.4.4 Ví dụ 22 2.4.5 Chuyển đổi văn rõ 23 2.4.6 Tạo chữ ký số cho văn 24 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 25 3.2 Các vấn đề đặt 25 3.2.1 Vấn đề an ninh 25 3.2.2 Q trình tạo khóa 27 3.2.3 Tốc độ 28 3.2.4 Phân phối khóa 28 3.2.5 Tấn công 28 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 30 4.1.1 Thiết kế giao diện 30 4.1.2 Các bƣớc thực mã hóa giải mã văn 30 4.2 Kết đạt đƣợc 32 4.3 Hƣớng phát triển đồ án 33 KẾT LUẬN 34 TÀI LIỆU THAM KHẢO 36 Đồ án tốt nghiệp 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ỹ Nguyễn Thị Hồng Anh 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 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 10 tháng 05 năm 2010 Sinh viên thực hiện: Cao Xuân Trung Đồ án tốt nghiệp 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 đƣợ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, nhƣng thơng tin mang tính chất sống cịn 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 đƣợc xem phƣơng pháp có tính an toàn cao Mặt khác, xã hội phát triển nhƣ 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 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 toà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 Đồ án tốt nghiệp Tìm hiểu phương pháp mã hóa khóa cơng khai RSA ứng dụng Và đƣợc đồng ý giáo viên hƣớng dẫn – Thạc sỹ Nguyễn Thị Hồng Anh 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 đƣợc 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 tốn vấn đề đặt thực tế Chƣơng 4: Thiết kế chƣơng trình kết đạt đƣợc 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ã hố RSA an tồn bảo mật thơng tin Kết nghiên cứu đề tài đƣợc 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ử Đồ án tốt nghiệp 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 đƣợc khơng có phƣơng tiện giải mã Bản rõ P đƣợc gọi là tin gốc Bản rõ đƣợc chia nhỏ có kích thƣớc phù hợp Bản mã C tin gốc đƣợ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 đƣợc thuật tốn, nhƣng khơng biết thơng tin khóa khơng tìm đƣợc 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 yê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ã đƣợc kẻ thám mã nhƣ 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ã : Đồ án tốt nghiệp 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 đƣợc 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 đƣợc 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 Đồ án tốt nghiệp 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 đƣợc sử dụng ngày Trong mã hố 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 toá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 nhƣ 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õ đƣợc 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ó đƣợ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õ đƣợc giữ nguyên, chúng đƣợc 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 Đồ án tốt nghiệp 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 nhƣng độ an tồn khơng cao Mã hóa bất đối xứng xử lí chậm hơn, nhƣng độ 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 toán mã hoá cổ điển thuật toán mà khố mã hố tính tốn đƣợc 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 nhƣ 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 khoá trƣớc thơng báo đƣợc gửi đi, khố phải đƣợc 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ã Bản rõ gốc Mã hố Mã hố Hình 1: Mã hố giải mã với khoá đối xứng Đồ án tốt nghiệp Tìm hiểu phương pháp mã hóa khóa cơng khai RSA ứng dụng Trong hình vẽ : K1có thể trùng K2, K1 tính tốn từ K2, K2 tính tốn từ K1 Các phƣơng pháp mã hóa cổ điển nhƣ: mã Ceasar, mã Playfair, mã Vigenere, …và phƣơng pháp mã hóa đại nhƣ: DES( Data Encrypt Standard), AES(Advanced Encryption Standard),…đều phƣơng pháp mã hóa đối xứng 1.4.3 Ƣu điểm nhƣợc điểm 1.4.3.1 Ưu điểm Các thuật toán đối xứng nói chung địi hỏi cơng suất tính tốn thuật tốn khóa bất đối xứng Trên thực tế, thuật tốn khóa bất đối xứng có khối lƣợng tính tốn nhiều gấp trăm, ngàn lần thuật tốn khóa đối xứng có chất lƣợng tƣơng đƣơng Vì tốc độ mã hóa giải mã nhanh nhiều so với phƣơng pháp mã hóa bất đối xứng 1.4.3.2 Nhược điểm - Các phƣơng mã hố cổ điển địi hỏi ngƣời mã hố ngƣời giải mã phải chung khoá Khi khố phải đƣợc giữ bí mật tuyệt đối, ta dễ dàng xác định khoá biết khố - Hệ mã hố đối xứng khơng bảo vệ đƣợc an tồn có xác suất cao khoá ngƣời gửi bị lộ Trong hệ khoá phải đƣợc gửi kênh an toàn kẻ địch cơng kênh phát khố - Vấn đề quản lý phân phối khoá khó khăn phức tạp sử dụng hệ mã hố cổ điển Ngƣời gửi ngƣời nhận ln ln thơng với vấn đề khố Việc thay đổi khố khó dễ bị lộ - Khuynh hƣớng cung cấp khố dài mà phải đƣợc thay đổi thƣờng xuyên cho ngƣời trì tính an tồn lẫn hiệu chi phí cản trở nhiều tới việc phát triển hệ mật mã cổ điển Đồ án tốt nghiệp 10 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 đƣợc 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 Đồ án tốt nghiệp 22 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 đƣợc mã : C(P)= 123 11 mod 221 = 115 Tiến hành giải mã, ta thu đƣợc rõ: P(C) = 11535 mod 221 =123 Cả hai phép tính đƣợc 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 khơng có tác dụng dễ dàng tìm đƣợc 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 đƣợc gán giá trị m = cho mã giá trị e N Tƣơng tự, ký tự ASCII khác, SOH, có giá trị ln 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 đƣợc 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 tồn Sau Đồ án tốt nghiệp 23 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 nhƣ PKCS, đƣợc 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 đƣợc 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 cấu trúc rõ 2.4.6 Tạo chữ ký số cho văn Thuật tốn RSA cịn đƣợc 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 nhƣ A thực giải mã) Giá trị cuối chữ ký điện tử văn xét Khi B nhận đƣợc 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ị nhƣ 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 nhƣ chữ ký điện tử khơng đƣợc dùng khóa chung cho đồng thời cho hai mục đích Đồ án tốt nghiệp 24 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 tốn Việc sử dụng cặp khóa khơng đối xứng có nhƣợc điểm q trình giải mã nhiều thời gian, nhƣng với hệ mã này, toá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 toá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 đƣợc 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 đề 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 đƣợc thuật tốn hiệu để giải chúng) khơng thể thực đƣợc việc phá mã toàn RSA Phá mã phần phải đƣợc ngăn chặn phƣơng pháp chuyển đổi rõ an toà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 toán phân tích n thừa số nguyên tố Khi thực đƣợ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 đƣợc số nguyên tố p q cho: n = p*q dễ dàng tìm đƣợc giá trị (p-1)*(q-1) qua xác định d từ e Chƣa có phƣơng pháp Đồ án tốt nghiệp 25 Tìm hiểu phương pháp mã hóa khóa cơng khai RSA ứng dụng đƣợc 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 đƣợc đ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 đƣợc 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 hầu nhƣ 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 đƣợc 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 đƣợc 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 đƣợc thuật tốn hiệu để giải chúng) khơng thể thực đƣợc việc phá mã toàn RSA Phá mã phần phải đƣợc 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 dƣới cho biết thời gian dự đoán, giả sử phép toán thực micro giây: Đồ án tốt nghiệp 26 Tìm hiểu phương pháp mã hóa khóa công khai RSA ứng dụng Số chữ số số đƣợc 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 Quá trình tạo khóa Việc tìm số ngun tố đủ lớn p q thƣờng đƣợc 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 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 đƣợc 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ố đƣợc lựa chọn cần đồng thời ngẫu nhiên khơng dự đốn đƣợc Đây yêu cầu khác nhau: số đƣợc lựa chọn ngẫu nhiên (khơng có kiểu mẫu kết quả) nhƣng dự đốn đƣợc dù phần an ninh thuật tốn khơng đƣợc đảm bảo Nếu kẻ cơng đốn đƣợc nửa chữ số p hay q chúng dễ dàng tìm nửa cịn 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 đƣợc d từ n e Mặc dù e có giá trị nhƣng số mũ nhỏ khơng cịn đƣợc 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 Đồ án tốt nghiệp 27 Tìm hiểu phương pháp mã hóa khóa cơng khai RSA ứng dụng 65537 đƣợc xem đủ lớn khơng 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 nhƣ 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 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 đƣợ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 đƣợc 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 Đồ án tốt nghiệp 28 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 q trình giải mã ln 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 đƣợc 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 đƣợc 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 đƣợc khóa phiên) Do phát này, mơ hình chuyển đổi an tồn nhƣ chuyển đổi mã hóa bất đối xứng tối ƣu (Optimal Asymmetric Encryption Padding) đƣợc 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 Đồ án tốt nghiệp 29 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) Đồ án tốt nghiệp 30 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ổ yê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 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 Đồ án tốt nghiệp 31 Tìm hiểu phương pháp mã hóa khóa cơng khai RSA ứng dụng Hình 7: Văn sau đƣợc 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 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 đƣợc - Nắm đƣợc 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 tốn RSA ứng dụng đƣợc thuật tốn mã hóa thơng tin Đồ án tốt nghiệp 32 Tìm hiểu phương pháp mã hóa khóa cơng khai RSA ứng dụng vào thực tiễn - Cài đặt đƣợc thuật toán RSA với số nguyên tố nhỏ(20 < p,q < 100) - Mã hóa đƣợc văn dƣới dạng *.txt, mã hóa đƣợc 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 toá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 Đồ án tốt nghiệp 33 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 toá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ố nhƣ độ phức tạp thuật toán, thời gian mã hố vấn đề phân phối khố 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 nhƣ 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 đƣợc độ 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 toán mã khố cơng khai khắc phục đƣợ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, nhƣng ngƣời có khố bí mật giải mã đƣợc Phƣơng pháp mã hố cơng khai sử dụng thuật toán RSA chậm yêu cầu số ngun tố lớn để sinh khố cơng khai khố bí mật nhƣng 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ố nguyên tố nhỏ, nên chƣơng trình mã hóa giải mã đƣợc 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 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ế đƣợc ứng dụng việc mã hóa khóa để xác định việc mát thông tin đƣờng truyền Đồ án tốt nghiệp 34 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 nhiều điểm chƣa phù hợp, chƣa đáp ứng đƣợc nhu cầu sử dụng Em mong nhận đƣợc bảo, đóng góp ý kiến thầy bạn để phát triển đồ án thành ứng dụng hồn thiện, phục vụ cho mục đích mã hoá 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 Đồ án tốt nghiệp 35 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 tồ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 Đồ án tốt nghiệp 36 ... cơng khai) Đây cách phân loại chủ yếu phổ biến Đồ án tốt nghiệp 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... 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... 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