Chủ đề 6:
Chữ ký điện tử
Nội dung
Mở đầu
Chữ ký điện tử
Phương pháp RSA
Phương pháp DSA
Mở đầu
Nhắc lại Hàm Băm Mật Mã
Hàm băm mật mã
Tính chất của hàm băm mật mã
Hạn chế ???
Mở đầu
Mục tiêu của chữ ký điện tử (Digital Signature) :
Xác nhận người dùng (Authentication)
Tính tồn vẹn thơng tin (Data Integrity)
Không thể từ chối trách nhiệm (Non-Repudiation)
Demo1
Văn phòng B cần thực hiện giao
dịch hàng
rút tiền
với
Ngân hàng A
Khách
phải
đến
tận nơi để giao dịch.
$ 5,000,000
OK !
?
Người gửi:
Gửi
bằng
email
Văn
phòng
B
Người nhận: Ngân hàng A
Người gửi:
Ngày gửi:
Người nhận: Ngân hàng A
10 / 10 / 2007
Văn phòng B
?
Nội dung:
Ngày gửi:
……..
Nội dung:
Rút $5,000,000
……..
Mã tài khoản: NHB-212551245
Rút $5,000,000
… ....
Mã tài khoản: NHB-212551245
Ngân hàng A
… ....
Gửi
Văn phòng B
1 0/ 10 / 2007
Demo2
Giải mã & kiểm tra chữ ký
Ok! Chấp nhận yêu
cầu & gửi tiền
$ 5,000,000
email
Người gửi:
Văn phịng B
Mã hóa & Ký
Người gửi:
Văn phòng B
Người nhận: Ngân hàng A
Người nhận: Ngân hàng A
Ngày gửi:
Ngày gửi:
10 / 10 / 2007
10 / 10 / 2007
Nội dung:
Nội dung:
……..
……..
Rút $5,000,000
Rút $5,000,000
Mã tài khoản: NHB-212551245
Mã tài khoản: NHB-212551245
… ....
… ....
Mở đầu
Một số khái niệm cơ bản:
Chữ ký điện tử: chuỗi dữ liệu cho phép xác định
nguồn gốc/xuất xứ/thực thể đã tạo ra 1 thơng điệp.
Thuật tốn phát sinh chữ ký điện tử: phương
pháp tạo ra chữ ký điện tử
Chiến lược chữ ký điện tử: bao gồm thuật toán
phát sinh chữ ký điện tử và thuật toán tương ứng
để kiểm chứng chữ ký điện tử.
Digital Signature Scheme =
Digital Signature Generation Algorithm +
Digital Signature Verification Algorithm
Mở đầu
Một số ký hiệu:
M Không gian thông điệp
MS Không gian thông điệp được ký
S Không gian chữ ký
R Ánh xạ 1-1 từ M vào MS (redundancy function)
MR Ảnh của R
R-1 Hàm ngược của R
h Hàm một chiều với tập nguồn M
Mh Không gian giá trị hash (h: M→ Mh)
M
ởđ
ầu
Mở
đầu
Phân loại chữ ký điện tử
Đính kèm (Appendix)
Chiến lược
chữ ký
Khơi phục thông điệp
(Message Recovery)
M
ởđ
ầu
Mở
đầu
Các chiến lược chữ ký với phần đính kèm (appendix)
Chữ ký điện tử đi kèm với thơng điệp gốc
Cần có thơng điệp (gốc) cho q trình kiểm tra chữ
ký điện tử
Sử dụng hàm băm mật mã (thay vì redundancy
function)
Ví dụ: DSA, ElGamal, Schnorr…
M
ởđ
ầu
Mở
đầu
Chữ ký điện tử với phần đính kèm
M
Mh
h
m
mh
S
SA,k
s*
s* = SA,k(mh)
u = VA(mh, s*)
Mh x S
VA
u ∈ {{true,
true, false
}
false}
M
ởđ
ầu
Mở
đầu
Yêu cầu:
Với mỗi k ∈ R, có thể dễ dàng tính SA,k
Phải dễ dàng tính được VA
Rất khó để một người khơng phải là signer có thể
tìm ra m ∈ M và s*∈ S sao cho VA(m’, s*) = true,
với m’ = h(m)
M
ởđ
ầu
Mở
đầu
Chữ ký điện tử có khả năng cho phép khơi phục lại
thông điệp
M
MR
R
m
mr
S
SA,k
s*
MS
S
s*
VA
MR
mr
R-1
M
m
M
ởđ
ầu
Mở
đầu
Yêu cầu:
Với mỗi k ∈ R, có thể dễ dàng tính SA,k
Có thể dễ dàng tính VA
Rất khó (computationally infeasible) để một người
khơng phải là A có thể tìm ra s* ∈ S sao cho
VA(s*) ∈ MR
VD: RSA
M
ởđ
ầu
Mở
đầu
Chuyển từ Chữ ký điện tử có khả năng cho phép khơi
phục lại thơng điệp Ỉ Chữ ký điện tử với phần đính
kèm
M
m
Mh
h
mh
MR
R
mr
MS
S
SA,k
s*
Tạo Chữ ký điện tử
Tạo chữ ký
Dữ liệu
Hash
Dữ liệu
MessageHash
Sign
Khố bí mật
Signature
Kiểm tra Chữ ký điện tử
Kiểm tra chữ ký
Dữ liệu
Hash
Signature
Verify
Khoá công cộng
?
Phương pháp RSA
Phương pháp RSA
Phát sinh khóa n, p, q, e, d
Tạo chữ ký
Tính mr = R(m)
Tính s = mrd mod n
Chữ ký tương ứng với m là s
Kiểm tra chữ ký
Nhận được public key (n, e)
Tính mr = se mod n
Kiểm tra mr ∈ Mr
Khôi phục m = R-1(mr)
Phương pháp DSA
Digital Signature Algorithm
Digital Signature Standard (DSS)
Phương pháp DSA
Phát sinh khóa:
1. Chọn 1 số nguyên tố q 160 bit
2. Chọn 0≤t≤8, chọn 2511+64t
3. Chọn g trong Zp*, và α = g(p-1)/q mod p, α≠1 (α là
phần tử sinh của nhóm con bậc q của Zp*)
4. Chọn 1 ≤ a ≤q-1, tính y= αa mod p
5. public key (p,q, α,y), private key a
Phương pháp DSA
Tạo chữ ký:
Chọn ngẫu nhiên số nguyên k, 0 < k < q
Tính r=(αk mod p) mod q
Tính k-1 mod q
Tính s=k-1 ∗(h(m) + ar) mod q
Chữ ký = (r, s)
Phương pháp DSA
Kiểm tra chữ ký
Kiểm tra 0
luận là khơng chữ ký hợp lệ
Tính w= s-1mod q và h(m)
Tính u1=w∗h(m)mod q,
u2=r∗w mod q
Tính v = (αu1yu2 mod p) mod q
Chữ ký hợp lệ ⇔ v = r
Phương pháp DSA
Tính hiệu quả
Tạo chữ ký
Một thao tác tính lũy thừa modulo
Một số thao tác 160-bit (nếu p ~ 768 bit)
Việc tính lũy thừa có thể được tính sẵn trước
Nhanh hơn phương pháp RSA
Kiểm tra chữ ký
Hai thao tác tính lũy thừa modulo
Châm hơn phương pháp RSA