Upload
kylee-patterson
View
70
Download
11
Embed Size (px)
DESCRIPTION
Chủ đề 7: Chữ ký điện tử. ThS. Trần Minh Triết. Nội dung. Mở đầu Phương pháp RSA Phương pháp DSA One-time digital signature. Mở đầu. 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 toàn vẹn thông tin (Data Integrity) - PowerPoint PPT Presentation
Citation preview
Chủ đề 7:
Chữ ký điện tửChủ đề 7:
Chữ ký điện tử
ThS. Trần Minh TriếtThS. Trần Minh Triết
Nội dungNội dung
Mở đầuMở đầu
Phương pháp RSAPhương pháp RSA
Phương pháp DSAPhương pháp DSA
One-time digital signatureOne-time digital signature
Mở đầuMở đầu
Mở đầuMở đầu
Mục tiêu của chữ ký điện tử (Digital Signature) :Mục tiêu của chữ ký điện tử (Digital Signature) :
Xác nhận người dùng (Authentication)Xác nhận người dùng (Authentication)
Tính toàn vẹn thông tin (Data Integrity)Tính toàn vẹn thông tin (Data Integrity)
Không thể từ chối trách nhiệm (Non-Repudiation)Không thể từ chối trách nhiệm (Non-Repudiation)
Mở đầuMở đầu
Một số khái niệm cơ bản:Một số khái niệm cơ bản:
Chữ ký điện tửChữ ký điện tử: chuỗi dữ liệu cho phép xác định : 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.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ý điện tửThuật toán phát sinh chữ ký điện tử: phương : phương pháp tạo ra chữ ký điện tửpháp tạo ra chữ ký điện tử
Chiến lược chữ ký điện tửChiến lược chữ ký điện tử: bao gồm : bao gồm thuật toán thuật toán phát sinh chữ ký điện tửphát sinh chữ ký điện tử và và thuật toán tương ứng thuật toán tương ứng để kiểm chứng chữ ký điện tửđể kiểm chứng chữ ký điện tử..
Digital Signature Scheme = Digital Signature Scheme =
Digital Signature Generation Algorithm + Digital Signature Generation Algorithm +
Digital Signature Verification AlgorithmDigital Signature Verification Algorithm
Mở đầuMở đầu
Một số ký hiệu:Một số ký hiệu:
MM Không gian thông điệpKhông gian thông điệp
MMSS Không gian thông điệp được kýKhông gian thông điệp được ký
SS Không gian chữ kýKhông gian chữ ký
R R Ánh xạ 1-1 từ Ánh xạ 1-1 từ MM vào vào MMSS (redundancy (redundancy function)function)
MMRR Ảnh của Ảnh của RR
RR-1-1 Hàm ngược của Hàm ngược của RR
hh Hàm một chiều với tập nguồn Hàm một chiều với tập nguồn M M
MMhh Không gian giá trị Không gian giá trị hashhash ( (hh: : MM MMhh))
Mở đầuMở đầuMở đầuMở đầu
Phân loại chữ ký điện tửPhân loại chữ ký điện tử
Chiến luợc Chiến luợc chữ kýchữ ký
Khôi phục Khôi phục thông điệpthông điệp
Đính kèmĐính kèm
Xác địnhXác định
Ngẫu nhiênNgẫu nhiên
Ngẫu nhiênNgẫu nhiên
Xác địnhXác định
Mở đầuMở đầuMở đầuMở đầu
Các chiến lược chữ ký với phần đính kèm (appendix)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ốcChữ 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 quá trình kiểm tra chữ Cần có thông điệp (gốc) cho quá trình kiểm tra chữ ký điện tửký điện tử
Sử dụng hàm băm mật mã (thay vì redundancy Sử dụng hàm băm mật mã (thay vì redundancy function)function)
Ví dụ: DSA, ElGamal, Schnorr…Ví dụ: DSA, ElGamal, Schnorr…
Mở đầuMở đầuMở đầuMở đầu
Chữ ký điện tử với phần đính kèmChữ ký điện tử với phần đính kèm
MM
mm mhmh
MhMh
hh s*s*
SSSA,kSA,k
Mh x SMh x Su u {{truetrue, , falsefalse}}u u {{truetrue, , falsefalse}}
VAVA
s* = Ss* = SA,kA,k((mmhh))
u u = = VVAA((mmhh, , s*s*))
Mở đầuMở đầuMở đầuMở đầu
Yêu cầu:Yêu cầu:
Với mỗi Với mỗi kk R, có thể dễ dàng tính R, có thể dễ dàng tính SSA,kA,k
Phải dễ dàng tínhPhải dễ dàng tính được được VVAA
Rất khó để một người không phải là Rất khó để một người không phải là signersigner có thể có thể tìm ra tìm ra m m M M và và s*s* S S sao cho sao cho VVAA((m’, s*m’, s*) = ) = truetrue, , với với m’ = hm’ = h((mm))
Mở đầuMở đầuMở đầuMở đầu
Chữ ký điện tử có khả năng cho phép khôi phục lại Chữ ký điện tử có khả năng cho phép khôi phục lại thông điệpthông điệp
MM
mm mrmr
MRMR
RR s*s*
SSSA,kSA,k
MSMS
MM
mmmrmr
MRMR
R-1R-1
s*s*
SSVAVA
Mở đầuMở đầuMở đầuMở đầu
Yêu cầu:Yêu cầu:
Với mỗi Với mỗi kk R, có thể dễ dàng tính R, có thể dễ dàng tính SSA,kA,k
Có thể dễ dàng tính Có thể dễ dàng tính VVAA
Rất khó (computationally infeasible) để một người Rất khó (computationally infeasible) để một người không phải là không phải là AA có thể tìm ra có thể tìm ra ss* * S S sao cho sao cho VVAA((ss*) *) MMRR
Mở đầuMở đầuMở đầuMở đầu
mrmr
MRMR
RR s*s*
SSSA,kSA,k
MSMS
MM
mm mhmh
MhMh
hh
Mở đầuMở đầuMở đầuMở đầu
Các mức độ “Phá vỡ” chiến lược chữ ký điện tử:Các mức độ “Phá vỡ” chiến lược chữ ký điện tử:Total BreakTotal Break: tìm được phương pháp hiệu quả để : tìm được phương pháp hiệu quả để “giả mạo” chữ ký hợp lệ.“giả mạo” chữ ký hợp lệ.
Biết được private key?Biết được private key?Không biết private key nhưng tìm được phương pháp Không biết private key nhưng tìm được phương pháp hiệu quả để giả tạo chữ ký hợp lệ.hiệu quả để giả tạo chữ ký hợp lệ.
Selective forgerySelective forgery: cho trước một thông điệp, người : cho trước một thông điệp, người tấn công tấn công có khả năng có khả năng tạo ra được chữ ký hợp lệ tạo ra được chữ ký hợp lệ trên thông điệp này.trên thông điệp này.Existential forgeryExistential forgery: có thể tìm và chỉ ra được một : có thể tìm và chỉ ra được một thông điệp (có thể vô nghĩa) nhưng dễ dàng để thông điệp (có thể vô nghĩa) nhưng dễ dàng để người tấn công có thể tạo ra được chữ ký hợp lệ người tấn công có thể tạo ra được chữ ký hợp lệ trên thông điệp này.trên thông điệp này.
Mở đầuMở đầuMở đầuMở đầu
Phân loại cách tấn côngPhân loại cách tấn côngKey-onlyKey-only: người tấn công : người tấn công chỉ biết public keychỉ biết public key
Message attackMessage attackKnown-message attackKnown-message attack: người tấn công : người tấn công có các chữ ký có các chữ ký của một tập các thông điệpcủa một tập các thông điệp. Người tấn công . Người tấn công biết nội biết nội dung của các thông điệpdung của các thông điệp nàynày nhưng nhưng không được phép không được phép chọn sẵnchọn sẵn các thông điệp. các thông điệp.
Chosen-message attackChosen-message attack: người tấn công : người tấn công có được các có được các chữ ký hợp lệchữ ký hợp lệ của một của một tập các thông điệp có chọn lọctập các thông điệp có chọn lọc. . (non-adaptive)(non-adaptive)
Adaptive chosen-message attackAdaptive chosen-message attack: người tấn công có thể : người tấn công có thể sử dụng người ký như một “sử dụng người ký như một “oracleoracle””
Phương pháp RSAPhương pháp RSA
Phương pháp RSAPhương pháp RSA
Phát sinh khóa Phát sinh khóa n, p, q, e, dn, p, q, e, d
Tạo chữ kýTạo chữ ký
Tính Tính mmrr = = RR((mm))
Tính Tính s s = = mmrrdd mod mod nn
Chữ ký tương ứng với Chữ ký tương ứng với mm là là ss
Kiểm tra chữ kýKiểm tra chữ ký
Nhận được public key (Nhận được public key (nn, , ee))
Tính Tính mmrr = = ssee mod mod nn
Kiểm tra Kiểm tra mmrr MMrr
Khôi phục Khôi phục mm = = RR-1-1((mmrr))
Phương pháp RSAPhương pháp RSA
Tấn côngTấn công
Phân tích ra thừa số nguyên tố một số nguyên lớnPhân tích ra thừa số nguyên tố một số nguyên lớn
Khả năng nhiều cặp khóa cho ra cùng chữ kýKhả năng nhiều cặp khóa cho ra cùng chữ ký
Tính chất homomorphic:Tính chất homomorphic:
Vấn đề tái cấu trúc nội dung (Reblocking problem)Vấn đề tái cấu trúc nội dung (Reblocking problem)
Tầm quan trọng của redundancy function: ISO/IEC Tầm quan trọng của redundancy function: ISO/IEC 97969796
nxxE
nxx
nxx
xExE
e
ee
mod.
mod.
mod
)(.
21
21
21
21
nxxE
nxx
nxx
xExE
e
ee
mod.
mod.
mod
)(.
21
21
21
21
Phương pháp RSAPhương pháp RSA
Tính hiệu quả (với Tính hiệu quả (với pp, , qq là các số nguyên tố là các số nguyên tố kk-bit)-bit)
Tạo chữ ký O(Tạo chữ ký O(kk33))
Kiểm tra chữ ký O(Kiểm tra chữ ký O(kk22))
Băng thôngBăng thông
Băng thông phụ thuộc vào Băng thông phụ thuộc vào RR. .
Ví dụ: ISO/IEC 9796 ánh xạ thông điệp Ví dụ: ISO/IEC 9796 ánh xạ thông điệp kk-bit thành -bit thành dãy gồm 2dãy gồm 2kk-bit trong -bit trong MMS S với chữ ký dài 2với chữ ký dài 2kk-bit.-bit.
Phương pháp DSAPhương pháp DSA
Phát sinh khóa:Phát sinh khóa:
1.1. Chọn 1 số nguyên tố Chọn 1 số nguyên tố qq 160 bit 160 bit
2.2. Chọn 0Chọn 0tt8, chọn 28, chọn 2511+64511+64tt <<pp< 2< 2512+64512+64tt với với qq||pp-1-1
3.3. Chọn Chọn gg trong Z trong Zpp**, và , và = = gg((pp-1)/-1)/qq mod mod pp, , 1 (1 ( là là
phần tử sinh của nhóm con bậc phần tử sinh của nhóm con bậc qq của Z của Zpp**))
4.4. Chọn 1 Chọn 1 aa qq-1, tính -1, tính yy= = aa mod mod pp
5.5. public key (public key (pp,,qq, , ,,yy), private key ), private key aa
Phương pháp DSADigital Signature AlgorithmDigital Signature Standard (DSS)
Phương pháp DSADigital Signature AlgorithmDigital Signature Standard (DSS)
Phương pháp DSAPhương pháp DSA
Tạo chữ ký:Tạo chữ ký:
Chọn ngẫu nhiên số nguyên Chọn ngẫu nhiên số nguyên kk, 0 < , 0 < kk < < qq
Tính Tính rr=(=(kk mod mod pp) mod ) mod qq
Tính Tính kk-1 -1 mod mod qq
Tính Tính ss==kk-1 -1 ((hh((mm) + ) + arar) mod ) mod qq
Chữ ký = (Chữ ký = (rr, , ss))
Phương pháp DSAPhương pháp DSA
Kiểm tra chữ kýKiểm tra chữ ký
Kiểm tra 0<Kiểm tra 0<rr<<qq và 0< và 0<ss<<qq, nếu không thỏa thì kết , nếu không thỏa thì kết luận là không chữ ký hợp lệluận là không chữ ký hợp lệ
Tính Tính ww= = ss-1-1mod mod qq và và hh((mm))
Tính Tính uu11==wwhh((mm)mod )mod qq, , uu22==rrww mod mod qq
Tính Tính vv = ( = (uu11yyuu2 2 mod mod pp) mod ) mod qq
Chữ ký hợp lệ Chữ ký hợp lệ v v = = rr
)(modmod)(modmod
)(mod
)(mod )(
)(mod )(
21
21
qpqpy
qkauu
qkarwmwh
qksarmh
kuu
)(modmod)(modmod
)(mod
)(mod )(
)(mod )(
21
21
qpqpy
qkauu
qkarwmwh
qksarmh
kuu
Phương pháp DSAPhương pháp DSA
Vấn đề an toàn của DSA: bài toán logarithm rời rạc Vấn đề an toàn của DSA: bài toán logarithm rời rạc trên Ztrên ZPP
** và trên nhóm con cyclic bậc và trên nhóm con cyclic bậc qq
Các tham số: Các tham số:
qq~160bit, ~160bit, pp 768~1Kb 768~1Kb
Xác suất thất bại: trong quá trình kiểm tra, ta cần tính Xác suất thất bại: trong quá trình kiểm tra, ta cần tính nghịch đảo của s. Nếu s=0 thì không tồn tại nghịch nghịch đảo của s. Nếu s=0 thì không tồn tại nghịch đảođảo
Pr[Pr[ss=0]= (1/2)=0]= (1/2)160160
Phương pháp DSAPhương pháp DSA
Tính hiệu quảTính hiệu quả
Tạo chữ kýTạo chữ kýMột thao tác tính lũy thừa moduloMột thao tác tính lũy thừa modulo
Một số thao tác 160-bit (nếu Một số thao tác 160-bit (nếu pp ~ 768 bit) ~ 768 bit)
Việc tính lũy thừa có thể được tính sẵn trướcViệc tính lũy thừa có thể được tính sẵn trước
Nhanh hơn phương pháp RSANhanh hơn phương pháp RSA
Kiểm tra chữ kýKiểm tra chữ kýHai thao tác tính lũy thừa moduloHai thao tác tính lũy thừa modulo
Châm hơn phương pháp RSAChâm hơn phương pháp RSA
Phương pháp ElGamalPhương pháp ElGamal
Phương pháp ElGamalPhương pháp ElGamal
Phát sinh khóa : Phát sinh khóa : pp, , qq, , , , aa, , yy==aa mod mod pp
là phần tử sinh của Zlà phần tử sinh của Z**pp
Public key (Public key (pp, , ), private key (), private key (aa))
Tạo chữ kýTạo chữ ký
Chọn ngẫu nhiên Chọn ngẫu nhiên kk, 1 , 1 kk pp-1, gcd(-1, gcd(kk, , pp-1)=1-1)=1
Tính Tính rr = = kk mod mod pp
Tính Tính kk-1 -1 mod (mod (pp-1)-1)
Tính Tính ss = = kk-1 -1 ( (hh((mm) - ) - arar) mod () mod (pp-1)-1)
Chữ ký là (Chữ ký là (rr,,ss))
Phương pháp ElGamalPhương pháp ElGamal
Kiểm tra chữ kýKiểm tra chữ ký
Kiểm tra 1 Kiểm tra 1 rr pp-1-1
Tính Tính vv11 = = yyrrrrss mod mod pp
Tính hTính h((mm) và ) và vv22= = hh((mm)) mod mod pp
Chữ ký hợp lệ Chữ ký hợp lệ vv11==vv22
)(mod r)(
)1(mod )(
)1(mod })({
sr)(
1
p
parmhks
parmhks
aksarmh
)(mod r)(
)1(mod )(
)1(mod })({
sr)(
1
p
parmhks
parmhks
aksarmh
Phương pháp ElGamalPhương pháp ElGamal
Một số vấn đềMột số vấn đề
Giá trị Giá trị kk phải phân biệt cho mỗi thông điệp được phải phân biệt cho mỗi thông điệp được kýký
((ss11--ss22))kk=(=(hh((mm11)-)-hh((mm22))mod ())mod (pp-1)-1)
Nếu gcd((Nếu gcd((ss11--ss22),),pp-1)=1 thì có thể dễ dàng xác -1)=1 thì có thể dễ dàng xác đinh giá trị đinh giá trị kk, từ đó có được private key , từ đó có được private key aa
Nếu không dùng hàm băm thì có thể bị tình trạng Nếu không dùng hàm băm thì có thể bị tình trạng existential forgeryexistential forgery
Phương pháp ElGamalPhương pháp ElGamal
Tính hiệu quảTính hiệu quả
Tạo chữ kýTạo chữ kýMột thao tác tính lũy thừa moduloMột thao tác tính lũy thừa modulo
Một thao tác sử dụng thuật toán Euclide để tính nghịch Một thao tác sử dụng thuật toán Euclide để tính nghịch đảođảo
Hai thao tác nhân moduloHai thao tác nhân modulo
Kiểm tra chữ kýKiểm tra chữ kýBa thao tác lũy thừa moduloBa thao tác lũy thừa modulo
Đọc thêm: Generalized ElGamal SignatureĐọc thêm: Generalized ElGamal Signature
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”
Chữ ký dùng 1 lần (Chữ ký dùng 1 lần (One-Time Signature)One-Time Signature)
Định nghĩa : chiến lược chữ ký được sử dụng để ký Định nghĩa : chiến lược chữ ký được sử dụng để ký tối đa 1 thông điệp 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ả.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ý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 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 nhanhchất là thao tác tạo và kiểm tra chữ ký rất nhanh
Phương pháp Rabin One-Time SignaturePhương pháp Rabin One-Time Signature
Tạo khóaTạo khóa
Chọn 1 thuật toán mã hóa khóa đối xứng E (ví dụ Chọn 1 thuật toán mã hóa khóa đối xứng E (ví dụ như DES)như DES)
Phát sinh 2Phát sinh 2nn dãy ngẫu nhiên dãy ngẫu nhiên kk11,,kk22......kk22nnKK, mỗi dãy , mỗi dãy có độ dài có độ dài ll
Tính Tính yyii=E=Ekkii(M(M00((ii)), )), ii [1,2[1,2nn]. ) ]. )
MM00((ii) là biểu diễn nhị phân của ) là biểu diễn nhị phân của ii được điền thêm được điền thêm đủ các bit 0 ở phần đầu để có được dãy đủ các bit 0 ở phần đầu để có được dãy ll-bit-bit
Public key là (Public key là (yy11,,yy22,...,...yy22nn), ),
private key là (private key là (kk11,,kk22,...,...kk22nn).).
Phương pháp Rabin One-Time SignaturePhương pháp Rabin One-Time Signature
Tạo chữ ký:Tạo chữ ký:
Tính Tính ssii=E=Ekkii((hh((mm)), )), ii [1,2[1,2nn]]
Chữ ký là (Chữ ký là (ss11,,ss22,...,...ss22nn))
Kiểm tra chữ ký:Kiểm tra chữ ký:
Tính Tính hh((mm))
Chọn Chọn nn số ngẫu nhiên phân biệt số ngẫu nhiên phân biệt rrjj, , rrjj[1,2[1,2nn]]
Yêu cầu người ký gửi Yêu cầu người ký gửi nn trong số 2 trong số 2nn khóa. Nhận được khóa. Nhận được dãy khóa dãy khóa kkrrjj
, , jj: 1 : 1 jj nn
Kiểm tra với Kiểm tra với nn khóa nhận được khóa nhận được yyrrjj= E= Ekkrrjj
(M(M00((rrjj))?))?
Kiểm tra tất cả Kiểm tra tất cả ssrrjj = E = Ekkrrjj
((hh((mm)), )),
Rabin One-Time SignaturesRabin One-Time Signatures
Người ký A, người kiểm tra B và TTPNgười ký A, người kiểm tra B và TTP
B cung cấp B cung cấp mm và chữ ký cho TTP và chữ ký cho TTP
TTP lấy private key TTP lấy private key kk11,...,...kk22nn từ A từ A
TTP kiểm tra private keyTTP kiểm tra private key
TTP tính TTP tính uuii=E=Ekkii((hh((mm)), 1 )), 1 ii nn. .
Nếu Nếu uuii = = ssii với tối đa với tối đa nn giá trị của giá trị của ii, thì chữ ký là “giả”. , thì chữ ký là “giả”.
Nếu có ít nhất Nếu có ít nhất nn+1 giá trị bằng nhau thì chữ ký là “thật”+1 giá trị bằng nhau thì chữ ký là “thật”
A có thể “chối” chữ ký của mình với xác suất A có thể “chối” chữ ký của mình với xác suất
Pr =Pr =
n
n2
1
n
n2
1