Mã nén
Lecture 8: Chữ ký sốLecture 8: Chữ ký số1. Gi1. Giớới thii thiệệuu2. 2. Sơ đSơ đồồchchữữ ký Elgamal ký Elgamal3. 3. Phương phPhương phááp DSAp DSA 1. Giới thiệu1. Giới thiệuMMụục tiêu cc tiêu củủa cha chữữký ský sốố(Digital Signature) :(Digital Signature) :XXáác nhc nhậận ngưn ngườời di dùùng (Authentication)ng (Authentication)TTíính tonh toààn vn vẹẹn thông tin (Data Integrity)n thông tin (Data Integrity)Không thKhông thểểttừừchchốối tri tráách nhich nhiệệm (Nonm (Non--Repudiation)Repudiation) 1. Giới thiệu1. Giới thiệuMMộột st sốốkhkháái nii niệệm cơ bm cơ bảản:n:ChChữữký ský sốố: chu: chuỗỗi di dữữliliệệu cho phu cho phéép xp xáác đc địịnh ngunh nguồồn n ggốốc/xuc/xuấất xt xứứ/th/thựực thc thểể đã t đã tạạo ra 1o ra 1 thông đi thông điệệp.p.ThuThuậật tot toáán phn pháát sinh cht sinh chữữký ský sốố: p: phương phhương phááp tp tạạo o ra chra chữữký ský sốốLưLượợc đc đồồchchữữký ský sốố: bao g: bao gồồm m thuthuậật tot toáán phn pháát sinh t sinh chchữữký ský sốốvvààthuthuậật tot toáán tương n tương ứứng đng đểểkikiểểm chm chứứng ng chchữữký ský sốố Digital Signature Scheme = Digital Signature Scheme = Digital Signature Generation Algorithm + Digital Signature Generation Algorithm + Digital Signature Verification AlgorithmDigital Signature Verification Algorithm 2. Sơ đồ chữ ký Elgamal2. Sơ đồ chữ ký ElgamalCho 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 ≡ ax(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 đó γ = akmod pvà δ =(m-xγ) k-1mod (p-1).Kiểm tra chữ ký:Ver(m, γ ,δ) = true ⇔ bγγδ≡ am(mod p) 2. 2. Sơ đồ chữ ký Elgamal -VVííddụụGiả sử cho p = 467, a =2, x = 127; khi đó:b= axmod p= 2127mod 467 = 132Nế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 đóγ =2213mod 467 = 29và δ =(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:13229* 2951≡ 189 (mod 467)và 2100≡ 189 (mod 467)Vì thế chữ kí là hợp lệ. 2. Phương pháp ElGamal2. Phương pháp ElGamalMMộột st sốốvvấấn đn đềềGiGiáátrtrịịkkphphảải phân bii phân biệệt cho mt cho mỗỗi thông đii thông điệệp đưp đượợc c kýký((ss11--ss2)2)kk=(=(mm11--mm2)mod (2)mod (pp--1)1)NNếếu gcd((u gcd((ss11--ss2),2),pp--1)=1 th1)=1 thììccóóththểểddễễddààng xng xáác đinh gic đinh giáátrtrịịkk, t, từừ đ đóóccóó đư đượợc private key c private key aa 3. Phương pháp DSADigital Signature AlgorithmDigital Signature Standard (DSS)3. Phương pháp DSADigital Signature AlgorithmDigital Signature Standard (DSS) 3. Phương pháp DSA3. Phương pháp DSAPhPháát sinh kht sinh khóóa:a:1.1.ChChọọn 1 sn 1 sốốnguyên tnguyên tốốqq160 bit160 bit2.2.ChChọọn 0n 0≤≤tt≤≤8, ch8, chọọn 2n 2511+64511+64tt<<pp< 2< 2512+64512+64ttvvớới i qq||pp--113.3.ChChọọn n ggtrong Ztrong Zpp**, v, vààαα= = gg((pp--1)/1)/qqmod mod pp, , αα≠≠114.4.ChChọọn 1 n 1 ≤≤aa≤≤qq--1, t1, tíính nh yy= = ααaamod mod pp5.5.public key (public key (pp, , qq, , αα, , yy), private key ), private key aa 3. Phương pháp DSA3. Phương pháp DSATTạạo cho chữữký:ký:ChChọọn ngn ngẫẫu nhiên su nhiên sốốnguyên nguyên kk, 0 < , 0 < kk< < qqTTíính nh rr=(=(ααkkmod mod pp) mod ) mod qqTTíính nh kk--1 1 mod mod qqTTíính nh ss==kk--1 1 ∗∗((mm+ + arar) mod ) mod qqChChữữký = (ký = (rr, , ss)) 3. Phương pháp DSA3. Phương pháp DSAKiKiểểm tra chm tra chữữkýkýKiKiểểm tra 0<m tra 0<rr<<qqvvàà0<0<ss<<qq, n, nếếu không thu không thỏỏa tha thììkkếết t luluậận ln lààkhông chkhông chữữký hký hợợp lp lệệTTíính nh ww= = ss--11mod mod qqvvààmmTTíính nh uu11==ww∗∗mmmod mod qq, , uu22==rr∗∗wwmod mod qqTTíính nh vv= (= (ααuu11yyuu2 2 mod mod pp) mod ) mod qqChChữữký hký hợợp lp lệệ⇔⇔v v = = rr [...]...Ví dụ Phương pháp Chữ ký dùng 1 lần Chữ 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 Phương pháp Rabin One-Time... tra chữ ký: Tính h(m) Chọn n số ngẫu nhiên phân biệt rj, rj∈[1,2n] Yêu cầu người ký gửi n trong số 2n khóa Nhận được dãy khóa krj, ∀ j: 1 ≤ j ≤ n Kiểm tra với n khóa nhận được yrj= Ekr (M0(rj))? j Kiểm tra tất cả srj = Ekr (h(m)), j j 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... 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 yi=Eki(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 lbit Public key là (y1,y2, y2n), private key là (k1,k2, k2n) Phương pháp Rabin One-Time Signature Tạo chữ ký: Tính si=Eki(h(m)), i ∈[1,2n] Chữ ký là (s1,s2, s2n) Kiểm tra chữ ký: ... TTP lấy private key k1, k2n từ A TTP kiểm tra private key TTP tính ui=Eki(h(m)), 1 ≤ i ≤ n Nếu ui = si 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” Bài tập Xây dựng chương trình thử nghiệm các sơ đồ chữ ký số . phn pháát sinh cht sinh chữ ký ský số : p: phương phhương phááp tp tạạo o ra chra chữ ký ský số LưLượợc đc đồồchchữ ký ský số : bao g: bao gồồm m thuthuậật. qqChChữ ký hký hợợp lp lệệ⇔⇔v v = = rr Ví dụVí dụ Phương pháp Chữ ký dùng 1 lầnPhương pháp Chữ ký dùng 1 lần Chữ ký “dùng 1 lần”Chữ ký “dùng 1 lần”ChChữ ký dký