35
Chủ đề 7: Chữ ký điện tử ThS. Trần Minh Triết ThS. Trần Minh Triết

Chủ đề 7: Chữ ký điện tử

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

Page 1: Chủ đề 7: Chữ ký điện tử

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

Page 2: Chủ đề 7: Chữ ký điện 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

Page 3: Chủ đề 7: Chữ ký điện tử

Mở đầuMở đầu

Page 4: Chủ đề 7: Chữ ký điện tử

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)

Page 5: Chủ đề 7: Chữ ký điện tử

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

Page 6: Chủ đề 7: Chữ ký điện tử

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))

Page 7: Chủ đề 7: Chữ ký điện tử

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

Page 8: Chủ đề 7: Chữ ký điện tử

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…

Page 9: Chủ đề 7: Chữ ký điện tử

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*))

Page 10: Chủ đề 7: Chữ ký điện tử

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))

Page 11: Chủ đề 7: Chữ ký điện tử

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

Page 12: Chủ đề 7: Chữ ký điện tử

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

Page 13: Chủ đề 7: Chữ ký điện tử

Mở đầuMở đầuMở đầuMở đầu

mrmr

MRMR

RR s*s*

SSSA,kSA,k

MSMS

MM

mm mhmh

MhMh

hh

Page 14: Chủ đề 7: Chữ ký điện tử

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.

Page 15: Chủ đề 7: Chữ ký điện tử

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””

Page 16: Chủ đề 7: Chữ ký điện tử

Phương pháp RSAPhương pháp RSA

Page 17: Chủ đề 7: Chữ ký điện tử

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))

Page 18: Chủ đề 7: Chữ ký điện tử

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

Page 19: Chủ đề 7: Chữ ký điện tử

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.

Page 20: Chủ đề 7: Chữ ký điện tử

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

Page 21: Chủ đề 7: Chữ ký điện tử

Phương pháp DSADigital Signature AlgorithmDigital Signature Standard (DSS)

Phương pháp DSADigital Signature AlgorithmDigital Signature Standard (DSS)

Page 22: Chủ đề 7: Chữ ký điện tử

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))

Page 23: Chủ đề 7: Chữ ký điện tử

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

Page 24: Chủ đề 7: Chữ ký điện tử

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

Page 25: Chủ đề 7: Chữ ký điện tử

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

Page 26: Chủ đề 7: Chữ ký điện tử

Phương pháp ElGamalPhương pháp ElGamal

Page 27: Chủ đề 7: Chữ ký điện tử

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))

Page 28: Chủ đề 7: Chữ ký điện tử

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

Page 29: Chủ đề 7: Chữ ký điện tử

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

Page 30: Chủ đề 7: Chữ ký điện tử

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

Page 31: Chủ đề 7: Chữ ký điện tử

Phương pháp Chữ ký dùng 1 lầnPhương pháp Chữ ký dùng 1 lần

Page 32: Chủ đề 7: Chữ ký điện tử

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

Page 33: Chủ đề 7: Chữ ký điện tử

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).).

Page 34: Chủ đề 7: Chữ ký điện tử

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)), )),

Page 35: Chủ đề 7: Chữ ký điện tử

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