07/01/2018
Chương 4:
CHỮ KÝ SỐ
(DIGITAL SIGNATURES)
GV: Nguyễn Thị Hạnh
GV: Nguyễn Thị Hạnh
Nội dung chính
1. Khái niệm về chữ ký số (Digital Signature)
2. Các dịch vụ bảo mật cung cấp bởi chữ ký số
3. Một vài chữ ký số thông dụng
4. Mô tả vài ứng dụng của chữ ký số (Cryptography & Network Security. McGraw-Hill,
GV: Nguyễn Thị Hạnh
1
Inc., 2007., Chapter 13)
07/01/2018
Mục tiêu
(cid:1) Định nghĩa và sự cần thiết (cid:1) Qui trình tạo (sign) và thẩm tra (Verify) chữ ký (cid:1) Chữ ký có dùng khóa (Private Key, Public Key) (cid:1) Ký trên Message Digest
˗ Khái niệm chữ ký số (Digital Signature)
˗ Các dịch vụ bảo mật được cung cấp bởi
GV: Nguyễn Thị Hạnh
Digital Signature (cid:1) Xác thực thông điệp (Message authentication) (cid:1) Toàn vẹn thông điệp (Message Interity) (cid:1) Chống từ chối (Nonrepudiaton) (cid:1) Bảo mật (Confidentiality)
Mục tiêu
˗ Nêu các tấn công trên Digital Signature ˗ Thảo luận các cơ chế Digital Signature (RSA,
ELGamal, Shnorr, DSS, và Elliptic Curve) (cid:1) Ý tưởng tổng quát (cid:1) Phát sinh khóa (cid:1) Tạo và thẩm tra chữ ký (cid:1) Ví dụ cụ thể
GV: Nguyễn Thị Hạnh
2
˗ Mô tả vài ứng dụng của Digital Signatures
07/01/2018
1. Khái niệm về chữ ký số
˗ Chữ ký số là một trong ứng dụng quan trọng
nhất của mã hóa khóa công khai.
GV: Nguyễn Thị Hạnh
˗ Message Authentication chỉ bảo vệ thông điệp trao đổi giữa hai bên tham gia không bị hiểu chỉnh hay giả mạo từ bên thứ 3, nhưng nó không bảo vệ thông điệp bị hiểu chỉnh hay giả mạo từ một trong 2 bên tham gia, nghĩa là: (cid:1) Bên nhận giả mạo thông điệp của bên gửi (cid:1) Bên gửi chối là đã gửi thông điệp đến bên nhận ˗ Chữ ký số không những giúp xác thực thông điệp mà còn bảo vệ mỗi bên khỏi bên kia
1. Khái niệm về chữ ký số
˗ Chữ ký số là một dạng chữ ký điện tử. ˗ Về căn bản chữ ký số có khái niệm giống như chữ ký thông thường nhưng được xây dựng dựa trên mật mã khóa công khai.
GV: Nguyễn Thị Hạnh
3
˗ Nhằm bảo đảm vấn đề toàn vẹn dữ liệu, và chống sự chối bỏ trách nhiệm khi đã ký.
07/01/2018
Digital Signature Process
˗ Người gửi dùng một thuật toán tạo chữ ký
(signing algorithm) để ký thông điệp. Thông điệp và chữ ký được gửi cho người nhận. ˗ Người nhận dùng thuận toán thẩm tra chữ ký
(Verifying algorithm) để thẩm tra.
˗ Nếu đúng, thông điệp được chấp nhận, ngược
GV: Nguyễn Thị Hạnh
lại sẽ từ chối thông điệp
Digital Signature Process
GV: Nguyễn Thị Hạnh
4
07/01/2018
Need for Keys
(cid:1) Dùng khóa bí mật secret key, ký và thẩm tra chữ ký
được không?
GV: Nguyễn Thị Hạnh
˗ Một digtal signature cần hệ thống public-key. Người ký (signer) ký bằng private key của chính mình; người kiểm tra (verifier) kiểm tra bằng public key của signer
Signing the Digest
˗ Ký trên digest của thông điệp sẽ ngắn hơn
ký trên thông điệp
˗ Người gửi có thể ký trên cốt thông điệp và
GV: Nguyễn Thị Hạnh
5
người nhận có thể kiểm tra trên cốt thông điệp
07/01/2018
2. Các dịch vụ bảo mật cung cấp
bởi chữ ký số
˗ Xác thực thông điệp (Message authentication)
˗ Toàn vẹn thông điệp (Message Interity)
˗ Chống từ chối (Nonrepudiaton)
GV: Nguyễn Thị Hạnh
˗ Bảo mật (Confidentiality)
Message Authentication
GV: Nguyễn Thị Hạnh
6
˗ Một cơ chế chữ ký số giống như một chữ ký truyền thống là có thể cung cấp sự xác thực thông điệp
07/01/2018
Message Integrity
˗ Chúng ta không thể có được cùng chữ ký nếu
GV: Nguyễn Thị Hạnh
thông điệp đã được hiệu chỉnh
Nonrepudiation
˗ Nonrepudiation có thể được cung cấp bằng
GV: Nguyễn Thị Hạnh
7
cách dùng một trusted Center
07/01/2018
Confidentiality
˗ Thêm confidentiality vào cơ chế digital signature
GV: Nguyễn Thị Hạnh
Một Digital Signature không cung cấp tính bí mật. Nếu cần bảo mật, một tần khác của encryption/decryption được áp dụng
Tấn công trên Digital Signature
˗ Các loại tấn công trên Digital Signature
(Attack Types)
GV: Nguyễn Thị Hạnh
8
˗ Giả mạo chữ ký (Forgery)
07/01/2018
Attack Types
˗ Key-Only Attack: Eve chỉ có thể truy suất đến các thông tin công khai của Alice, Để giả mạo thông điệp, Eve cần tạo chữ ký của Alice để thuyết phục Bob rằng thông điệp đến từ Alice
GV: Nguyễn Thị Hạnh
˗ Known-Message Attack: Eve có thể truy suất đến một hoặc nhiều cặp thông điệp – chữ ký, Eve cố gắng tạo một thông điệp khác và giả chữ ký của Alice trên thông điệp đó
Attack Types
GV: Nguyễn Thị Hạnh
9
˗ Chosen-Message Attack: Eve bằng cách này hay cách khác sắp đặt Alice ký một hoặc nhiều thông điệp cho cô ta. Eve có một cặp choose- message/signature. Sau đó Eve tạo ra một thông điệp khác, với nội dung cô ta muốn, và giả mạo chữ ký của Alice lên đó
07/01/2018
Forgery Types
˗ Existential Forgery: có thể tìm và chỉ ra được thông điệp (có thể vô nghĩa), đối phương có thể tạo chữ ký hợp lệ trên thông điệp này
GV: Nguyễn Thị Hạnh
˗ Selective Forgery: cho trước một thông điệp, đối phương tạo chữ ký hợp lệ trên thông điệp này (rất khó)
3. Vài chữ ký số thông dụng
˗ RSA Digital Signature Scheme
˗ ElGamal Digital Signature Scheme
˗ Schnorr Digital Signature Scheme
˗ Digital Signature Standard (DSS)
˗ Elliptic Curve Digital Signature Scheme
GV: Nguyễn Thị Hạnh
10
07/01/2018
3.1 RSA Digital Signature Scheme
˗ Ý tưởng mật mã RSA được dùng cho việc ký
và kiểm tra chữ ký, nó được gọi là cơ chế chữ ký số RSA
˗ Người gửi dùng private key của chính mình để ký vào tài liệu; người nhận dùng public key của người gửi để kiểm tra chữ ký
GV: Nguyễn Thị Hạnh
˗ So với chữ ký truyền thống, private key đóng vai trò là chữ ký của chính người gửi, public key của người gửi đóng vài trò là bản sao của chữ ký mà có thể được công khai
3.1 RSA Digital Signature Scheme
GV: Nguyễn Thị Hạnh
11
˗ Ý tưởng tổng quát của cơ chế chữ ký RSA
07/01/2018
3.1 RSA Digital Signature Scheme
Phát sinh khóa (Key Generation) ˗ Phát sinh khóa trong cơ chế chữ ký RSA là
GV: Nguyễn Thị Hạnh
hoàn toàn giống như phát sinh khóa RSA ˗ Trong đó d là bí mật, e và n là công khai
RSA Digital Signature Scheme
GV: Nguyễn Thị Hạnh
12
Tạo và Thẩm tra chữ ký
07/01/2018
RSA Digital Signature Scheme
Ví dụ: Phát sinh khóa:
(cid:1) Alice chọn p = 823 và q = 953, và tính n = 784319. (cid:1) Giá trị f (n) là 782544 (cid:1) Alice chọn e = 313 và tính d = 160009
Alice muốn ký và gửi thông điệp M=19070 cho Bob
(cid:1) Tạo chữ ký:
S=(19070160009) mod 784319 = 210625 mod 784319
(cid:1) Gửi (M, S) cho Bob ˗ Bob nhận (M, S) và tính M’
M’=210625313mod 784319 = 19070 mod 784319
˗ (cid:2) M ” M’ mod n
GV: Nguyễn Thị Hạnh
Chữ ký RSA trên Message Digest
GV: Nguyễn Thị Hạnh
13
07/01/2018
Chữ ký RSA trên Message Digest
Lưu ý: ˗ Khi cốt thông điệp được ký thay cho thông
GV: Nguyễn Thị Hạnh
điệp của nó, thì độ nhạy cảm của chữ ký số RSA tùy thuộc vào sức mạnh của hàm băm
ElGamal Digital Signature Scheme
GV: Nguyễn Thị Hạnh
14
˗ Ý tưởng tổng quát của chữ ký ElGamal
07/01/2018
ElGamal Digital Signature Scheme
Phát sinh khóa (Key Generation) ˗ Phát sinh khóa trong cơ chế chữ ký ElGamal là hoàn toàn giống như phát sinh khóa mật mã ElGamal
GV: Nguyễn Thị Hạnh
˗ Trong đó (e1,e2,p) là public key; d là private key
ElGamal Digital Signature Scheme
r £ p-1, gcd(r, p-1)=1
k mod p
(cid:1) Chọn ngẫu nhiên r, 1 £ (cid:1) Tính s1 = e1 (cid:1) Tính s2 = (M-d x S1) x r-1 mod (p-1), với r-1 là
nghịch đảo nhân của r modulo n
(cid:1) Chữ ký là (S1,S2)
Tạo chữ ký
£ p-1;
£ p; 1 £ S2
M mod p S1x S1
(cid:1) Kiểm tra 1 £ S1 (cid:1) Tính v1 = e1 (cid:1) Tính v2= e2 (cid:1) Chữ ký hợp lệ (cid:219)
S2 mod p v1=v2
GV: Nguyễn Thị Hạnh
15
Thẩm tra chữ ký
07/01/2018
ElGamal Digital Signature Scheme
GV: Nguyễn Thị Hạnh
Tạo và Thẩm tra chữ ký
ElGamal Digital Signature Scheme
Một số vấn đề ˗ Giá trị r phải phân biệt cho mỗi thông điệp
giá trị r, từ đó có được private key a
được ký (cid:1) (s1-s2)r = (h(m1)-h(m2))mod (p-1) (cid:1) Nếu gcd((s1-s2),p-1)=1 thì có thể dễ dàng xác đinh
˗ Nếu không dùng hàm băm thì có thể bị tình
GV: Nguyễn Thị Hạnh
16
trạng existential forgery
07/01/2018
Schnorr Digital Signature Scheme
˗ Với chữ ký ElGamal thì p cần phải rất lớn thì mới đảm bảo bài toán logaric rời rạc là khó thực hiện trong Z* p. Theo khuyến cáo p phải ít nhất 1024-bit (cid:2) chữ ký là 2048-bit.
GV: Nguyễn Thị Hạnh
˗ Để giảm kích cở của chữ ký, Schnorr đề xuất một cơ chế chữ ký mới dựa trên ElGamal nhưng với một kích cở chữ ký được giảm.
Schnorr Digital Signature Scheme
GV: Nguyễn Thị Hạnh
17
Ý tưởng tổng quát của chữ ký Schnorr
07/01/2018
Schnorr Digital Signature Scheme
Phát sinh khóa 1. Chọn một số nguyên tố p, thường chọn p có
d mod p.
độ lớn 1024-bit
GV: Nguyễn Thị Hạnh
2. Chọn số nguyên tố q 3. Alice chọn e1 sao cho e1 p = 1 mod p. 4. Chọn 1 số nguyên d, làm private key 5. Tính e2= e1 6. Public key là (e1, e2, p, q); private key là d
Schnorr Digital Signature Scheme
GV: Nguyễn Thị Hạnh
18
Tạo và Thẩm tra chữ ký
07/01/2018
Digital Signature Standard (DSS)
˗ NIST đã công bố chuẩn xử lý thông tin liên ban FIPS 186, được biết như là Digital Signature Standard (DSS)
GV: Nguyễn Thị Hạnh
˗ DSS được đề xuất năm 1991 và hiểu chỉnh lại 1993, 1996 có một hiệu chỉnh nhỏ, năm 2000, một phiên bản mở rộng của chuẩn được phát hành như FIPS 186-2, 2009 cập nhật FIPS 186-3. Phiên bản cuối cùng hợp nhất các thuật tóan chữ ký số dựa trên mật mã RSA và đường cong Eliptic
Digital Signature Standard (DSS)
GV: Nguyễn Thị Hạnh
19
˗ Ý tưởng tổng quát của chữ ký DSS
07/01/2018
Digital Signature Standard (DSS)
p, và e1 = g(p-1)/q mod p, e1
*)
Phát sinh khóa ˗ Chọn số nguyên tố p và q ˗ Chọn g trong Z*
d mod p
„ 1 (e1 là phần tử sinh của nhóm con bậc q của Zp
GV: Nguyễn Thị Hạnh
˗ Chọn 1 £ d £ q-1, tính e2= e1 ˗ Public key (e1, e2, p, q), private key d
Digital Signature Standard (DSS)
GV: Nguyễn Thị Hạnh
20
˗ Tạo và Thẩm tra chữ ký
07/01/2018
Digital Signature Standard (DSS)
Lưu ý: ˗ Các tính toán chữ ký DSS nhanh hơn tính
toán của chữ ký RSA khi dùng cùng giá trị p ˗ Chữ ký DSS là nhỏ hơn chữ ký Elgamal bởi vì
GV: Nguyễn Thị Hạnh
q nhỏ hơn p
Elliptic Curve Digital Signature Scheme
GV: Nguyễn Thị Hạnh
21
˗ Ý tưởng tổng quát của chữ ký EC
07/01/2018
Elliptic Curve Digital Signature Scheme
Phát sinh khóa ˗ Chọn một đường cong elliptic Ep(a, b). ˗ Chọn số nguyên tố q, chọn private key d (số
nguyên)
GV: Nguyễn Thị Hạnh
˗ Chọn e1(…, …), một điểm trên đường cong. ˗ Tính e2(…, …) = d × e1(…, …). ˗ Public key là (a, b, p, q, e1, e2); private key là d.
Elliptic Curve Digital Signature Scheme
GV: Nguyễn Thị Hạnh
22
Tạo và Thẩm tra chữ ký
07/01/2018
Những biến thể chữ ký
(cid:1) Một tài liệu được ký cần được gắn nhãn thời gian (Timestamped) để ngăn chặn tài liệu bị phát lại (replay) bởi đối phương
(cid:1) Ví dụ: Alice ký một yêu cầu đối với nhà bang của cô ta, Bob chuyển tiền cho Eve, Tài liệu yêu cầu này có thể bị chặn và phát lại bởi Eve nếu không có nhãn thời gian gắn trên tài liệu
GV: Nguyễn Thị Hạnh
˗ Time Stamped Signatures
Những biến thể chữ ký
Blind Signatures ˗ Giả sử có một tài liệu mà chúng ta muốn có
chữ ký mà không muốn tiết lộ nội dung của tài liệu đối với người ký.
˗ Ví dụ: Nhà khoa học phát minh ra một lý
GV: Nguyễn Thị Hạnh
23
thuyết rất quan trọng mà cần được ký bởi công chứng viên, công chứng viên sẽ ký nhưng sẽ không biết gì về nội dung của phát minh.
07/01/2018
Những biến thể chữ ký
(cid:1) Bob tạo một thông điệp, ẩn (Blind) nó, và gửi
thông điệp ẩn này cho Alice
(cid:1) Alice ký thông điệp ẩn và trả về chữ ký trên thông
điệp ẩn.
(cid:1) Bob bỏ ẩn chữ ký để thu về chữ ký trên thông điệp
gốc
GV: Nguyễn Thị Hạnh
Blind Signatures ˗ Các bước thực hiện:
Mô tả vài ứng dụng của chữ ký số
GV: Nguyễn Thị Hạnh
24
07/01/2018
Câu hỏi và bài tập
1. Những đặc tính nào mà chữ ký số nên có? 2. Những yêu cầu nào mà một chữ ký số cần
GV: Nguyễn Thị Hạnh
25
phải thỏa mãn?