lecture82 Chữ kí số
Trang 1Lecture 8: Chữ ký số
1 Giới thiệu
2 Sơ đồ chữ ký Elgamal
3 Phương pháp DSA
Trang 21 Giới thiệu
Mục tiêu của chữ ký số (Digital Signature) :
Xác nhận người dùng (Authentication)
Tính toàn vẹn thông tin (Data Integrity)
Không thể từ chối trách nhiệm (Non-Repudiation)
Trang 31 Giới thiệu
Một số khái niệm cơ bản:
Chữ ký số: 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 toán phát sinh chữ ký số: phương pháp tạo
ra chữ ký số
Lược đồ chữ ký số: bao gồm thuật toán phát sinh chữ ký số và thuật toán tương ứng để kiểm chứng chữ ký số
Digital Signature Scheme =
Digital Signature Generation Algorithm + Digital Signature Verification Algorithm
Trang 42 Sơ đồ chữ ký Elgamal
Cho p là số nguyên tố, giả sử a ∈ Zp* là phần tử sinh và
x là một số ngẫu nhiên 1<=x<=p-2
Định nghĩa :
K =(p, a ,x, b): b ≡ a x (mod p).
Giá trị p, a,b là công khai, còn x là mật.
Với K =(p, a , b) và với một số ngẫu nhiên (bí mật) k ∈ Z*p-1, văn bản m được ký như sau: sigk(m) =(γ ,δ)
trong đó γ = a k mod p
và δ =(m-xγ) k -1 mod (p-1).
Kiểm tra chữ ký:
Ver(m, γ ,δ) = true ⇔ b γ γ δ ≡ a m (mod p)
Trang 52
2 Sơ đồ chữ ký Elgamal - Ví dụ
Giả sử cho p = 467, a =2, x = 127; khi đó:
b = a x mod p
= 2 127 mod 467 = 132 Nếu Bob muốn kí lên bức điện m =100 và chọn số ngẫu nhiên k =213 (chú ý là UCLN(213,466) =1 và 213 -1 mod 466 = 431) Khi đó
γ =2 213 mod 467 = 29
và δ =(100-127 × 29) 431 mod 466 = 51.
Bất kỳ ai cũng có thể xác minh chữ kí này bằng cách kiểm tra:
132 29 * 29 51 ≡ 189 (mod 467)
và 2 100 ≡ 189 (mod 467)
Vì thế chữ kí là hợp lệ.
Trang 62 Phương pháp ElGamal
Một số vấn đề
Giá trị k phải phân biệt cho mỗi thông điệp được ký
(s1-s2)k=(m1-m2)mod (p-1)
N ế u gcd((s1-s2),p-1)=1 thì có th ể d ễ dàng xác đinh giá
tr ị k, t ừ đó có đư ợ c private key a
Trang 73 Phương pháp DSA Digital Signature Algorithm Digital Signature Standard (DSS)
3 Phương pháp DSA Digital Signature Algorithm Digital Signature Standard (DSS)
Trang 83 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 <p< 2512+64t với q|p-1
3 Chọn g trong Zp*, và α = g(p-1)/q mod p, α≠1
4 Chọn 1 ≤ a ≤q-1, tính y= αa mod p
5 public key (p, q, α, y), private key a
Trang 93 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 ∗(m + ar) mod q
Chữ ký = (r, s)
Trang 103 Phương pháp DSA
Kiểm tra chữ ký
Kiểm tra 0<r<q và 0<s<q, nếu không thỏa thì kết
luận là không chữ ký hợp lệ
Tính w= s-1mod q và m
Tính u1=w∗mmod q, u2=r∗w mod q
Tính v = (αu1y u2 mod p) mod q
Chữ ký hợp lệ ⇔ v = r
Trang 11Ví dụ
Trang 12Phương pháp Chữ ký dùng 1 lần
Trang 13Chữ ký “dùng 1 lần”
Chữ ký dùng 1 lần (One-Time Signature)
Định nghĩa : chiến lược chữ ký được sử dụng để
ký tối đa 1 thông điệp
Nếu dùng lại, có thể bị tấn công để tạo chữ ký
giả
Cần có public key mới cho mỗi thông điệp cần ký Hầu hết các chiến lược one-time signature đều có tính chất là thao tác tạo và kiểm tra chữ ký rất nhanh
Trang 14Phương pháp Rabin One-Time Signature
Tạo khóa
Chọn 1 thuật toán mã hóa khóa đối xứng E (ví dụ như DES)
Phát sinh 2n dãy ngẫu nhiên k1,k2 k2n∈K, mỗi dãy
có độ dài l
Tính y i=Ek
i(M0(i)), i ∈[1,2n] )
M0(i) là biểu diễn nhị phân của i được điền
thêm đủ các bit 0 ở phần đầu để có được dãy l -bit
Public key là (y1,y2, y2n),
private key là (k1,k2, k2n)
Trang 15Phương pháp Rabin One-Time Signature
Tạo chữ ký:
Tính s i=Ek
i(h(m)), i ∈[1,2n]
Chữ ký là (s1,s2, s2n)
Kiểm tra chữ ký:
Tính h(m)
Chọn n số ngẫu nhiên phân biệt r j, r j∈[1,2n]
Yêu cầu người ký gửi n trong số 2n khóa Nhận
được dãy khóa k r
j, ∀ j: 1 ≤ j ≤ n
Kiểm tra với n khóa nhận được y r
Kiểm tra tất cả s r
Trang 16Rabin One-Time Signatures (Giải pháp khi xảy ra tranh cãi)
Rabin One-Time Signatures (Giải pháp khi xảy ra tranh cãi)
Người ký A, người kiểm tra B và TTP (Trusted Third Party)
B cung cấp m và chữ ký cho TTP
TTP lấy private key k1, k2n từ A
TTP kiểm tra private key
TTP tính u i=Ek i(h(m)), 1 ≤ i ≤ n
N ế u u i = s i v ớ i t ố i đa n giá tr ị c ủ a i, thì ch ữ ký là “gi ả ”
N ếu có ít nhất n+1 giá tr ị bằng nhau thì chữ ký là “thật”
Trang 17Bài tập
Xây dựng chương trình thử nghiệm các sơ đồ chữ ký số