A gởi cho B thông tin X được xác thực bằng khóa K. B đổi X thành Y và tạo ra mã xác thực mới.
A gởi thông tin X cho B, sau đó phủ nhận thông tin này (từ chối hành vi)
=> Xác thực (MAC) không giải quyết được vấn đề khi một trong hai thực thể cố ý vi phạm.
23 trang |
Chia sẻ: lvbuiluyen | Lượt xem: 2720 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Chữ ký số - Hạn chế của cơ chế xác thực thông tin, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chữ ký số Hạn chế của cơ chế xác thực thông tin A gởi cho B thông tin X được xác thực bằng khóa K. B đổi X thành Y và tạo ra mã xác thực mới. A gởi thông tin X cho B, sau đó phủ nhận thông tin này (từ chối hành vi) => Xác thực (MAC) không giải quyết được vấn đề khi một trong hai thực thể cố ý vi phạm. Chữ ký tay Xác nhận người ký và thời điểm ký (khi ký nhớ ghi ngày giờ!) Xác thực nội dung thông tin tại thời điểm ký (nhớ xem nội dung văn bản ngay trước khi ký!) Có khả năng kiểm chứng bởi một thực thể thứ 3 để giải quyết tranh chấp (công an có thể xác minh chữ ký). Chữ ký số (Digital Signature) Phát sinh từ khối thông tin gốc (thông tin cần xác nhận). Chứa nhận dạng của thực thể ký (khóa bí mật PR). Không giả mạo được. Có thể sao chép chữ ký dành cho mục đích lưu trữ. Phân lọai chữ ký số Chữ ký cố định (Deterministic) và chữ ký ngẫu nhiên (Probabilistic). Chữ ký phục hồi được (reversible Signature hay Signature with message recovery) và chữ ký không phục hồi được (non-reversible Signature hay Signature with appendix). Kỹ thuật tạo chữ ký Ký trực tiếp (Direct signature) Ký thông qua trọng tài (Arbitrated signature) Ký trực tiếp Ký trực tiếp Ký trực tiếp: Độ tin cậy của chữ ký phụ thuộc hòan tòan vào khóa bí mật. Khóa mất hoặc bị tiết lộ thì sao??? Ký qua trọng tài Trường hợp thứ nhất: sử dụng kỹ thuật mật mã đối xứng và trọng tài có thể đọc nội dung thông tin mà X gởi cho Y: X A: M + E([IDX + H(M)], Kxa) A Y: E([IDX + M + E([IDX + H(M)], Kxa) + T], Kay) Ký qua trọng tài Trường hợp thứ 2: sử dụng kỹ thuật mật mã đối xứng và trọng tài không đọc được nội dung thông tin X gởi cho Y: X A: IDX + E(M, Kxy) + E([IDX + H(E(M, Kxy))], Kxa) A Y: E([IDX + E(M, Kxy)], Kay) + E([IDX + H(E(M, Kxy)) + T], Kxa) Ký qua trọng tài Trường hợp thứ 3: sử dụng kỹ thuật mật mã bất đối xứng, trọng tài không đọc được nội dung thông tin X gởi cho Y: X A: IDX + E([IDX + E(E(M, PRx), PUy)], PRx) A Y: E([IDX + E(E(M, PRx), PUy) + T], PRa) Chuẩn chữ ký DSS DSS (Digital Signature Standard): là lọai chữ ký ngẫu nhiên, không phục hồi được. Được chuẩn hóa năm 1991, sửa đổi năm 1993, 1996, mở rộng năm 2000. Dựa trên thuật tóan mã hóa RSA và thuật tóan tạo chữ ký DSA DSS và RSA Thông tin đầu vào của hàm S Mã băm của thông tin gốc Một số ngẫu nhiên k Khóa riêng của người ký (PRa) Khóa công khai của nhóm các thực thể liên quan đến giao dịch chữ ký (PUG) Tạo và kiểm chứng chữ ký Thành phần r của chữ ký không liên quan đến thông tin gốc -> có thể dùng lại r cho nhiều chữ ký khác nhau. Thuật tóan tạo chữ ký DSA Tạo khóa (key generation). Tạo chữ ký (Signing) Xác minh chữ ký (Verifying) Thuật tóan tạo chữ ký DSA Tạo khóa chung: Tạo một số nguyên tố p ngẫu nhiên, đủ lớn (từ 512 đến 1024 bit, bội số của 64). Tạo số nguyên tố đủ lớn q sao cho q chia hết (p-1), (dài 160 bit). Tạo số nguyên g = h(p-1)/q mod p, trong đó h là số nguyên lớn hơn 1 nhỏ hơn (p-1) và thỏa điều kiện h(p-1)/q mod p > 1 Thuật tóan tạo chữ ký DSA Tạo khóa bí mật (user private key): Chọn khóa bí mật x là một số nguyên thỏa 0 < x < q Tạo khóa công khai (user public key): Tạo khóa công khai y là số nguyên thỏa: y = gx mod p Tạo số bí mật ứng với từng message: Chọn k là một số nguyên thỏa 0 < k < q Tạo chữ ký (Signing) r = (gk mod p) mod q s = [k-1(H(M) + xr)] mod q Signature = (r, s) Xác minh chữ ký (Verifying) Nhận được massage M’ với chữ ký (r’, s’) w = (s’)-1 mod q u1 = [H(M’)w] mod q u2 = r’ w mod q v = [gu1yu2 mod p] mod q Nếu r’ = v: chữ ký được xác minh Chứng minh DSA??? Dùng định lý Fermat nhỏ (little Fermat theorem) nếu g = h(p-1)/q mod p thì: gq = 1 mod p và h(p-1) = 1 mod p Chứng minh DSA??? Thao tác ký: s = [k-1(H(M) + xr] mod q, suy ra: k = H(M)s-1 + xrs-1 = H(M)w + xrw (mod q) và gk = gH(M)wgxrw = gH(M)wyrw = gu1yu2 (mod p) Tấn công chữ ký số Giả mạo chữ ký (forgery attack): Tìm chữ ký của một message M, khi biết trước các thông tin công khai, một số message và chữ ký tương ứng. Phục hồi khóa (key recovery attack): Tìm khóa bí mật từ các cặp message và chữ ký cho trước.