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... Có khả năng kiểm chứng
Trang 1Chữ ký số
Trang 2 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.
Trang 3Chữ 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ý).
Trang 5Phâ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)
Trang 6Kỹ thuật tạo chữ ký
Ký trực tiếp (Direct signature)
Ký thông qua trọng tài (Arbitrated signature)
Trang 7Ký trực tiếp
Trang 8Ký 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???
Trang 10Ký 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:
Trang 11Ký 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([ID + E(E(M, PR ), PU ) + T], PR )
Trang 12Chuẩ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
Trang 13DSS và RSA
Trang 14Thô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)
Trang 15Tạ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.
Trang 16Thuậ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)
Trang 17Thuậ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
Trang 18Thuậ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 = g x 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
Trang 21gq = 1 mod p và
h(p-1) = 1 mod p
Trang 23Tấ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.