Tìm hiểu về giải thuật tạo chữ ký số sử dụng RSAPhụ LucI.Giới thiệu3II.Nội dung41.Kiến trúc42.Giải thuật và cài đặt giải thuật93.Các điểm yếu của chữ ký số sử dụng giải thuật RSA184.Các dạng tấn công20III.Kết Luận21IV.Tài Liệu Tham Khảo22 I.Giới thiệuMột số khái niệm:oChữ kí số (Digital Signature ) là một chuỗi dữ liệu liên kết với một thông điệp (message) và thực thể tạo ra thông điệp.oGiải thuật tạo ra chữ ký số (Digital Signature generation algorithm) là một phương pháp sinh chữ ký số.oGiải thuật kiểm tra chữ ký số (Digital Signature verification algorithm ) là một phương pháp xác minh tính xác thực của chữ ký số, có nghĩa là nó thực sự được tạo ra bởi 1 bên chỉ định.oMột hệ chữ ký số (Figital Signature Scheme) bao gồm giải thuật tạo chữ số và giải thuật kiểm tra chữ kỹ số.oQuá trình tạo chữ ký số (Digital Signature signing process) bao gồm:Giải thuật tạo chữ ký số.Phương pháp chuyển dữ liệu thông điệp thành dạng có thể ký đượcoQuá trình kiểm tra chữ ký số (Digital signature verification process) bao gồm:Giải thuật kiểm tra chữ ký số, vàPhương pháp khôi phục dữ liệu từ thông điệpoHàm băm (Hash Funtion) làm hàm toán học chuyển đổi thông điệp (message) có độ dài bất kỳ (hữu hạn) thành một dãy bít có độ dài cố định (tùy thuộc vào thuật toán băm). Dãy bít này được gọi là thông điệp rút gọn.(message disgest) hay giá trị băm (hash value), đại diện cho thông điệp ban đầu.Hàm băm SHA1: Thuật toán SHA1 nhận thông điệp ở đầu vào có chiều dài k chuỗi đại diện thông điệp MD2 So sánh MD1 và MD2:oNếu MD1 =MD2 > chữ ký kiểm tra thành công. Thông điệp đảm bảo tính toàn vẹn và thực sự xuất phát từ người gửi (do khóa công khai được chứng thực).oNếu MD1 MD2 > chữ ký không hợp lệ. Thông điệp có thể đã bị sửa đổi hoặc không thực sự xuất phát từ người gửi.1.2 Kiến trúc chữ ký số RSA
BÁO CÁO BÀI TẬP LỚN Môn: Mật mã học sở Đề tài : Tìm hiểu giải thuật tạo chữ ký số sử dụng RSA Giáo viên hướng dẫn: Đỗ Xuân Chợ Nhóm sinh viên: Nguyễn Đức Kiên – B14DCAT202 Nguyễn Đình Thái – B14DCAT161 Trần Mạnh Cường - B14DCAT149 Trần Thanh Tùng – B14DCAT261 Lưu Bá Sơn – B14DCAT Phụ Luc Giới thiệu I Một số khái niệm: o Chữ kí số (Digital Signature ) chuỗi liệu liên kết với thông điệp (message) thực thể tạo thông điệp o Giải thuật tạo chữ ký số (Digital Signature generation algorithm) phương pháp sinh chữ ký số o Giải thuật kiểm tra chữ ký số (Digital Signature verification algorithm ) phương pháp xác minh tính xác thực chữ ký số, có nghĩa thực tạo bên định o Một hệ chữ ký số (Figital Signature Scheme) bao gồm giải thuật tạo chữ số giải thuật kiểm tra chữ kỹ số o Quá trình tạo chữ ký số (Digital Signature signing process) bao gồm: Giải thuật tạo chữ ký số Phương pháp chuyển liệu thơng điệp thành dạng ký o Quá trình kiểm tra chữ ký số (Digital signature verification process) bao gồm: Giải thuật kiểm tra chữ ký số, Phương pháp khôi phục liệu từ thông điệp o Hàm băm (Hash Funtion) làm hàm tốn học chuyển đổi thơng điệp (message) có độ dài (hữu hạn) thành dãy bít có độ dài cố định (tùy thuộc vào thuật tốn băm) Dãy bít gọi thơng điệp rút gọn.(message disgest) hay giá trị băm (hash value), đại diện cho thông điệp ban đầu Hàm băm SHA-1: Thuật tốn SHA-1 nhận thơng điệp đầu vào có chiều dài k chuỗi đại diện thông điệp MD2 So sánh MD1 MD2: o Nếu MD1 =MD2 -> chữ ký kiểm tra thành công Thơng điệp đảm bảo tính tồn vẹn thực xuất phát từ người gửi (do khóa cơng khai chứng thực) o Nếu MD1 MD2 -> chữ ký không hợp lệ Thơng điệp bị sửa đổi không thực xuất phát từ người gửi 1.2 Kiến trúc chữ ký số RSA Cụ thể hơn: a Quá trình ký (bên gửi) b Tính tốn chuỗi đại diện (message digest/ hash value) thông điệp sử dụng giải thuật băm (Hashing algorithm) SHA-1 Chuỗi đại diện ký sử dụng khóa riêng (Priavte key) người gửi giải thuật tạo chữ ký (Signature/ Encryption algorithm) RSA Kết chữ ký số (Digital signature) thơng điệp hay gọi chuỗi đại diện mã hóa giải thuật RSA (Encryted message digest) Thơng điệp ban đầu (message) ghép với chữ ký số( Digital signature) tạo thành thông điệp ký (Signed message) Thông điệp ký (Signed message) gửi cho người nhận Quá trình kiểm tra chữ ký (bên nhận) Tách chữ ký số RSA thông điệp gốc khỏi thơng điệp ký để xử lý riêng; Tính tốn chuỗi đại diện MD1 (message digest) thơng điệp gốc sử dụng giải thuật băm (là giải thuật sử dụng q trình ký SHA-1) Sử dụng khóa công khai (Public key) người gửi để giải mã chữ ký số RSA-> chuỗi đại diện thông điệp MD2 So sánh MD1 MD2: o Nếu MD1 =MD2 -> chữ ký kiểm tra thành công Thông điệp đảm bảo tính tồn vẹn thực xuất phát từ người gửi (do khóa cơng khai chứng thực) o Nếu MD1 MD2 -> chữ ký không hợp lệ Thông điệp bị sửa đổi khơng thực xuất phát từ người gửi Giải thuật cài đặt giải thuật II.1 Giải thuật RSA dùng việc tạo khóa, mã hóa, giải mã Sơ đồ giải thuật : Thuật tốn RSA có hai Khóa: - Khóa cơng khai (Public key): cơng bố rộng rãi cho người dùng để mã hóa - Khóa bí mật (Private key): Những thơng tin mã hóa khóa cơng khai giải mã khóa bí mật tương ứng Thuật tốn sinh khóa, mã hóa giải mã 10 2.2 Cài đặt giải thuật ngôn ngữ JAVA Sử dụng BigInteger gói java.math.* cung cấp hầu hết hàm dựng hàm số học cho phép thao tác thuận lợi với số nguyên lớn Một số hàm: o Hàm dựng BigInteger (int bitLength, int certainty, Random rnd): sinh số nguyên tố ngẫu nhiên với số bit cho trước; o Hàm BigInteger add(BigInteger val): cộng số nguyên lớn; o Hàm BigInteger subtract(BigInteger val): Trừ số nguyên lớn; o Hàm BigInteger multiply(BigInteger val): nhân số nguyên lớn; o Hàm gcd(BigInteger val): Tìm USCLN số lớn o Hàm mod(BigInteger m): Tính modulo (phần dư) phép chia nguyên; o Hàm BigInteger modInverse(BigInteger m): tính modulo nghịch đảo (this-1mod m); o Hàm BigInteger modPow(BigInteger exponent, BigInteger m): Tính (thisexponent mod m) 11 Cụ thể code RSA Tạo khóa: Mã hóa: (code RSA , chữ ký số d bí mật mã hóa) Giải mã: (code RSA , chữ ký số e cơng khai mã hóa) 12 Giao diện DEMO kết chữ ký số sử dụng RSA: Bước 1: Chọn chiều dài khóa với 256, 512, 1024, 2048, 3072 bits Bước 2: Khi bấm nút tạo khóa chương trình tự đơng sinh khóa bí mật cơng khai 13 Bước 3: Tạo rõ nhập vào đầu vào người gửi sau bấm tạo chữ ký 14 Bước 4: Kiểm tra tính tồn vẹn rõ bên người nhận với trường hợp: • TH1: nội dung rõ chưa bị thay đổi: 15 • TH2: Bản rõ bị thay đổi 16 17 Các điểm yếu chữ ký số sử dụng giải thuật RSA 3.1 Chữ ký số nói chung Sự xuất chữ ký số chức tiền định nó, đặc biệt vai trò cơng cụ việc xác định tính nguyên gốc, xác định tác giả, bảo đảm tính tồn vẹn tài liệu số, đóng vai trò vơ quan trọng việc xác định địa vị pháp lý tài liệu số giao dịch số Việc sử dụng chữ ký số phần lớn trường hợp sở khẳng định giá trị pháp lý văn điện tử tương đương với tài liệu giấy Hiện nay, chữ ký số phương tiện để xác nhận giá trị pháp lý tài liệu điện tử Như vậy, với xuất chữ ký số, vấn đề giá trị pháp lý tài liệu điện tử, coi giải Việc sử dụng chữ ký số giao dịch có ưu điểm bất cập định Dưới hạn chế chữ ký số: - Sự lệ thuộc vào máy móc chương trình phần mềm: chữ ký số chương trình phần mềm máy tính Để kiểm tra tính xác thực chữ ký cần có hệ thống máy tính phần mềm tương thích Đây hạn chế chung sử dụng văn điện tử chữ ký số - Tính bảo mật không tuyệt đối: Nếu chữ ký tay thực giấy, ký trực tiếp kèm với vật mang tin, chữ ký tay chuyển giao cho người khác, chữ ký số khơng Chữ ký số mật mã cấp cho người sử dụng, phần mềm máy tính khơng phụ thuộc vào vật mang tin Chính vậy, trở ngại lớn sử dụng chữ ký số khả tách biệt khỏi chủ nhân chữ ký Nói cách khác, chủ nhân chữ ký số khơng phải người có mật mã chữ ký Tồn số nhóm đối tượng có mật mã, là: phận cung cấp phần mềm; phận cài đặt phần mềm, người sử dụng máy tính có cài đặt phần mềm Ngồi ra, mật mã bị đánh cắp Cũng có thể, chủ nhân chữ ký số chuyển giao cho người khác mật mã Như vậy, tính bảo mật chữ ký số tuyệt đối 18 - Vấn đề gốc, chính: Nếu tài liệu giấy, chữ ký ký lần có (được coi gốc) Bản gốc ký chữ ký lúc hai chỗ khác Có thể tin tưởng rằng, gốc khơng thể có thứ hai giống hệt Nhưng với văn điện tử ký chữ ký số, người copy lại copy từ copy từ copy khơng có khác biệt so với ký Đây thách thức công tác văn hành Khái niệm gốc, văn hành phải xem xét lại văn điện tử - Sự có thời hạn chữ ký điện tử Chữ ký điện tử chương trình phần mềm cấp có thời hạn cho người sử dụng Về lý thuyết, văn có hiệu lực pháp lý ký thời hạn sử dụng chữ ký Tuy nhiên, thực tế hiệu lực pháp lý văn hồn tồn bị nghi ngờ chữ ký số hết thời hạn sử dụng Đây hạn chế thách thức lớn việc sử dụng chữ ký số 3.2 Chữ ký số sử dụng RSA 3.2.1 Hiệu suất thực thuật toán RSA Tốc độ thực hệ RSA điểm yếu so với hệ mật mã khóa đối xứng Theo ước tính, thực mã hóa giải mã hệ mật mã RSA chậm 100 lần so với hệ mã khóa đối xứng DES (Khi thực phần mềm) Và chậm 1000 lần so với DES (Khi thực phần cứng) 3.2.2 Chi phí tốc độ thực thuật tốn RSA Chi phí Để thực thuật tốn RSA phần lớn tốn chi phí thực phép tính : Tạo khóa, mã hóa, giải mã Q trình mã hóa, giải mã tương với chi phí thực phép tính lũy thừa module n Để đảm bảo cho khóa bí mật an tồn thường chọn 19 mũ cơng khai e nhỏ nhiều so với số mũ bí mật d, chi phí thời gian để thực mã hóa liệu nhỏ nhiều so với thời gian giải mã 2.Tốc độ hệ RSA Tốc độ RSA điểm yếu RSA so với hệ mã đối xứng, so với hệ mã DSA RSA chậm từ 100 đến 1000 lần, RSA khơng dùng để mã hóa khối lượng liệu lớn mà thường dùng để mã hóa liệu nhỏ Các dạng cơng 4.1 Tấn công lặp Simons Norris hệ thống RSA bị cơng sử dụng cơng lặp liên tiếp Đó kẻ cơng biết khóa cơng khai (e, n) mã C tính chuỗi mã sau: C1 = Ce (mod n) C2 = C1e (mod n) ………………… e 5.Ci = Ci-1 (mod n) Nếu có phần tử Cj chuỗi iC1, C2, …, C , … cho Cj = C esẽ tìm M = Cj-1 vì: Cj = C j-1 (mod n) C = Me (mod n) 4.2 Kiểu công module n dùng chung Simons Norris hệ thống RSA bị cơng sử dụng module n dùng chung, thông điệp M mã hố hai khố cơng khai e1 e từ hai thành viên hệ thống được: C1 = M e1 (mod n) C2 = M e2 (mod n) Sau người cơng dùng thuật tốn Euclide mở rộng: e1*a +e2*b = cho gcd(e1, e2 ) = M khơi phục lại sau: M = C a C2 b mod n 4.3 Tấn cơng khố cơng khai e nhỏ Hastad đưa kiểu cơng khố công khai e nhỏ (e =3) hệ mã công khai RSA sau: Giả sử để gửi thông điệp M đến người dùng P1, P2 …,Pk với khoá cơng khai (ei , ni) A mã hố M khố cơng khai (ei , ni) 20 gửi mã Ci đến người dùng Pi, biết M < n với i = 1, 2,…, n Ta nghe trộm kết nối A thu thập k mã Ci Giả sử cáci khố cơng khai ei = khơi phục M k ≥ Thực vậy, có C1, C2, C3 với C1= M3 mod ni; C2= M3 mod n2; C3= M3 mod n3 gcd(ni, nj) = 1, i ≠ j Áp dụng định lý số dư Trung Hoa với C1,C2,C3 tìm được: C’ thuộc Zn1n2n3 thỏa C’ = M3 mod n1n2n3 -> M3 số nguyên Vậy M= 4.4 Ứng dụng chữ ký số sử dụng giải thuật RSA -Sử dụng việc đảm bảo vẹn tồn liệu: Chữ ký, cơng văn, file, tệp tin người gửi qua môi trường Internet cá nhân , quan tổ chức … III Kết Luận Bài báo cáo giới thiệu kiến trúc, cài đặt giải thuật, điểm yếu, dạng công chữ ký số sử dụng giải thuật RSA 21 IV Tài Liệu Tham Khảo 1.Giáo trình An Tồn Bảo Mật Hệ Thống Thơng Tin_TS Hồng Xn Dậu_HVCNBCVT.(Chương 4: Các kỹ thuật mã hóa thơng tin) 2.http://vi.wikipedia.org/wiki/RSA_(m%C3%A3_h%C3%B3a) http://en.wikipedia.org/wiki/RSA 4.http://vi.wikipedia.org/wiki/Ch%E1%BB%AF_k%C3%BD_s %E1%BB%91 http://en.wikipedia.org/wiki/Digital_signature 6.http://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html http://vi.wikipedia.org/wiki/SHA 8.http://www.java2s.com/Tutorial/Java/0490 Security/UseSHA1.htm https://nguyendangkhiemit.wordpress.com/2014/10/19/chu-ky-sosu-dung-giai-thuat-rsa/ 22 ... Signature Scheme) bao gồm giải thuật tạo chữ số giải thuật kiểm tra chữ kỹ số o Quá trình tạo chữ ký số (Digital Signature signing process) bao gồm: Giải thuật tạo chữ ký số Phương pháp chuyển... tồn bị nghi ngờ chữ ký số hết thời hạn sử dụng Đây hạn chế thách thức lớn việc sử dụng chữ ký số 3.2 Chữ ký số sử dụng RSA 3.2.1 Hiệu suất thực thuật toán RSA Tốc độ thực hệ RSA điểm yếu so với... đồ chữ ký số RSA o Trong phần mơ tả lược đồ chữ ký RSA Độ an tồn lược đồ chữ ký RSA dựa vào độ an toàn hệ mã RSA Lược đồ bao gồm chữ ký số kèm theo rõ tự khôi phục thơng điệp từ chữ ký số Thuật