Bài giảng An toàn hệ thống thông tin - Chương 4: Chữ ký điện tử (Chữ ký số) - Trần Thị Kim Chi
Khái niệm về chữ ký điện tử
• Khái niệm về Digital Signature được để xuất bởi Diffie &
Hellman (1976)
• “Chữ ký điện tử (còn gọi là chữ ký số) là thông tin được mã
hoá bằng Khoá riêng của người gửi, được gửi kèm theo
văn bản nhằm đảm bảo cho người nhận định danh, xác
thực đúng nguồn gốc và tính toàn vẹn của tài liệu nhận.
• Chữ ký điện tử thể hiện văn bản gửi đi là đã được ký bởi
chính người sở hữu một Khoá riêng tương ứng với một
Chứng chỉ điện tử nào đó.”
• Chữ ký điện tử và chữ ký tay đều có chung đặc điểm là rất
khó có thể tìm được hai người có cùng một chữ ký. Chữ ký
điện tử được người ký tạo ra bằng Khoá riêng và phần có
đặc tính duy nhất của văn bản được ký.”
• Chữ ký điện tử là một trong ứng dụng quan trọng nhất
của mã hóa khóa công khai.
• 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à:
• Bên nhận giả mạo thông điệp của bên gửi
• Bên gửi chối là đã gửi thông điệp đến bên nhận
• Chữ ký điện tử 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
Tóm tắt nội dung tài liệu: Bài giảng An toàn hệ thống thông tin - Chương 4: Chữ ký điện tử (Chữ ký số) - Trần Thị Kim Chi
4(DIGITAL SIGNATURES) 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, Inc., 2007., Chapter 13) 1-2 Khái niệm về chữ ký điện tử • Khái niệm về Digital Signature được để xuất bởi Diffie & Hellman (1976) • “Chữ ký điện tử (còn gọi là chữ ký số) là thông tin được mã hoá bằng Khoá riêng của người gửi, được gửi kèm theo văn bản nhằm đảm bảo cho người nhận định danh, xác thực đúng nguồn gốc và tính toàn vẹn của tài liệu nhận. • Chữ ký điện tử thể hiện văn bản gửi đi là đã được ký bởi chính người sở hữu một Khoá riêng tương ứng với một Chứng chỉ điện tử nào đó.” • Chữ ký điện tử và chữ ký tay đều có chung đặc điểm là rất khó có thể tìm được hai người có cùng một chữ ký. Chữ ký điện tử được người ký tạo ra bằng Khoá riêng và phần có đặc tính duy nhất của văn bản được ký.” 1-3 Khái niệm về chữ ký điện tử • Chữ ký điện tử là một trong ứng dụng quan trọng nhất của mã hóa khóa công khai. • 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à: • Bên nhận giả mạo thông điệp của bên gửi • Bên gửi chối là đã gửi thông điệp đến bên nhận • Chữ ký điện tử 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-4 VÍ DỤ CHỮ KÝ SỐ TRONG THỦ TỤC HQĐT Doanh nghiệp nhập tờ khai Ký điện tử Kiểm tra chữ ký điện tử Kiểm tra hiệu lực chữ ký số của DN Lưu tờ khai và xử lý theo quy trình nghiệp vụ Khai hải quan In tờ khai và làm các quy trình trong thông quan điện tử Trả phản hồi về cho DN Doanh nghiệp Hải quan 1-5 Khái niệm về chữ ký điện tử Ví dụ cơ bản: • Mike có hai khóa, một khóa công khai và một khóa riêng. • Mike đưa khóa công khai của mình cho Amanda, nhưng giữ lại khóa riêng cho mình. • Khi muốn chuyển tài liệu cho Amanda, Mike có thể xác nhận (ký) các tài liệu này dùng chính khóa riêng của mình và gửi chúng đến Amanda. • Amanda sau đó sẽ dùng khóa công khai của Mike, để có thể kiểm tra tài liệu mà cô ấy nhận được, thực sự được gửi bởi Mike. 1-6 Mục tiêu của chữ ký điện tử Mục tiêu an toàn • Xác thực (Authentication) • Chống phủ nhận (Non-repudiation) 1-7 Đặc điểm chữ ký số 1. Đảm bảo tính xác thực • Chứng minh tính hợp pháp của người gửi • Chứng minh tính toàn vẹn của dữ liệu 2. Chữ ký số là hàm của các tham số • Thông báo giao dịch (văn bản gốc) • Thông tin bí mật của người gửi (Khóa riêng của sender) • Thông tin công khai trên mạng (Khóa công khai) • Mã xác thực : Đảm bảo tính toàn vẹn của thông điệp 1-8 Đặc điểm chữ ký số 1-9 1. Người gởi (chủ nhân văn bản): ký văn bản bằng cách mã hóa nó với khóa bí mật của mình, rồi gởi cho bên nhận. 2. Người nhận tiến hành kiểm tra chữ ký bằng cách sử dụng khóa công khai của người gởi để giải mã văn bản. Nếu giải mã thành công thì văn bản ký là đúng người gởi Nguyên lý ký điện tử trong hệ mật mã công khai Sơ đồ sử dụng chữ ký điện tử 1-11 • Dùng để chiết xuất đặc trưng của văn bản, đầu ra là một dãy số xác định gọi là mã băm. • Rất “nhạy” đối với các thay đổi trong văn bản. • Có tính kháng xung đột, tính một chiều và tốc độ nhanh. Hàm băm mật mã Hàm băm mật mã Signing the Digest • Ký trên digest của thông đệ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à người nhận có thể kiểm tra trên cốt thông điệp Digital Signature Process Tạo và Kiểm tra chữ ký số • Trong mô hình này, Alice sau khi tính giá trị hash HA cho thông điệp M thì sẽ mã hóa HA bằng khóa riêng của Alice để tạo thành chữ ký điện tử DS. Alice gửi kèm DS theo M cho Bob. • Bob dùng khóa công khai của Alice để giải mã chữ ký điện tử DS và có được giá trị hash HA của Alice. • Vì Trudy không có KRA nên không thể sửa được HA. • Ngoài ra, vì Alice là người duy nhất có KRA, nên chỉ có Alice mới có thể tạo DS từ M. Do đó Alice không thể từ chối là đã gửi bản tin. 1-14 • Chữ ký không phải là nét vẽ ngoằn ngoèo khó bắt chước mà là một dãy số trích từ đặc trưng văn bản đã được mã hóa. • So với chữ ký thông thường, chữ ký số có ưu thế vượt trội hơn chữ ký tay. Chính xác tuyệt đối Kiểm định dễ dàng và chính xác “Chữ ký điện tử mở đường cho các dịch vụ có độ tin cậy cao” Nhận xét • Mô hình CKS ở trên chỉ đạt được nếu như mỗi người sở hữu đúng cặp chìa khóa của chính mình. • Có thể xẩy ra hiện tượng “mạo danh” người gởi. Do đó, ta cần có cơ chế để xác định “ai là ai” trên toàn hệ thống. • Giải pháp: chứng minh thư số Nhược điểm mô hình chữ ký số 1. Xác thực thông điệp (Message Authentication): Người ký được xác nhận là chủ chữ ký. 2. Toàn vẹn thông điệp (Message Integrity): Nội dung chưa bị thay đổi hoặc xáo trộn kể từ khi nó được ký điện tử. 3. Chống từ chối (Non-repudiation): Chứng minh với tất cả các bên về nguồn gốc của nội dung đã ký. Từ "thoái thác" dùng để chỉ hành động của một người ký từ chối bất kỳ mối liên kết nào với nội dung đã ký. 4. Bảo mật (Confidentiality) Ứng dụng của chữ ký số Nonrepudiation • Nonrepudiation có thể được cung cấp bằng cách dùng một trusted Center 1-18 Confidentiality • Thêm confidentiality vào cơ chế digital signature Một Digital Signature không cung cấp tính bí mật. Nếu cần bảo mật, encryption/decryption được áp dụng 1-19 Public Notary (công chứng) • Trong trường hợp bên Alice cố cãi rằng cô ta chẳng may làm thất lạc hay vô tình đánh lộ zA và bị một kẻ thứ ba lợi dụng chứ không có ý định tạo ra văn bản có chữ ký như thế khi đó có thể thêm trọng tài vào hệ thống. • Người trọng tài này cũng còn gọi là công chứng viên (public notary) sẽ ký đè lên chữ ký của Alice để chứng thực, Alice không thể nào chối cãi. 1-20 Proof of delivery (xác nhận giao hàng - hoá đơn) • Ngược lại, bên gửi cũng cần được bảo vệ để chống lại hiện tượng người nhận có nhận được thông báo nhưng chối là chưa nhận được. • Điều này có thể thực hiện được qua những giao thức có phân xử (adjudicated protocol), tức là những giao thức mà sau đó cho phép người thứ ba có thể kiểm định lại được. 1-21 Tấn công trên Digital Signature • Các loại tấn công trên Digital Signature (Attack Types) • Giả mạo chữ ký (Forgery) 1-22 Attack Types • Key-Only Attack • Known-Message Attack • Chosen-Message Attack 1-23 Forgery Types • Existential Forgery • Selective Forgery 1-24 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 1-25 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ý • 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 1-26 RSA Digital Signature Scheme • Ý tưởng tổng quát của cơ chế chữ ký RSA 1-27 RSA Digital Signature Scheme Phát sinh khóa (Key Generation) • Phát sinh khóa trong cơ chế chữ ký RSA là 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 1-28 RSA Digital Signature Scheme 1) Tạo cặp khóa (bí mật, công khai) (a, b): • Chọn 2 số nguyên tố p, q, xác định n = p * q, n là công khai, đặt P = A = Zn và định nghĩa: • Tính f(n) = (p-1).(q-1). • Chọn khóa công khai e < f(n), nguyên tố cùng nhau với f(n). • Khóa bí mật d là phần tử nghịch đảo của e theo mod f(n): e*d1 (mod f(n). • Tập cặp khóa (bí mật, công khai) K = (e, d)/ e, d Zn , e*d 1 (mod f(n)). 2) Ký số: Chữ ký trên M P là S = sigk (M) = M d (mod n), S A 3) .Kiểm tra chữ ký: verk(M, S) = TRUE MS e (mod n) với M,S Zn . 1-29 RSA Digital Signature Scheme Tạo và Thẩm tra chữ ký 1-30 RSA Digital Signature Scheme Ví dụ: Phát sinh khóa: • Alice chọn p = 823 và q = 953, và tính n = 784319. • Giá trị f(n) là 782544 • 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 • Tạo chữ ký: S=(19070160009) mod 784319 = 210625 mod 784319 • Gửi (M, S) cho Bob • Bob nhận (M, S) và tính M’ M’=210625313mod 784319 = 19070 mod 784319 • M M’ mod n 1-31 Chữ ký trên m = 2 *Tạo cặp khóa (bí mật, công khai) : Chọn 2 số nguyên tố: p=3, q=5 n = p*q = 3*5 = 15(công khai) Đặt P = A = Zn . Tính f(n) = (p-1).(q-1) = 2 * 4 = 8. Chọn khóa công khai e = 3 < f(n), nguyên tố với f(n) = 8. =>Tìm d: là phần tử nghịch đảo của e theo mod f(n): e*d1 (mod f(n)). EXAMPLE Bước i N b Ri+1 Qi+1 Xi Xi+1 Xi+2 0 8 3 2 2 0 1 -2 1 3 2 1 1 1 -2 3 2 2 1 0 1 -2 3 -5 Vậy khóa bí mật d = 3 * Ký số: Chữ ký trên M = 2 P là: S = sigk (M) = M d (mod n) = 23 (mod 15) = 8, S A. * Kiểm tra chữ ký: verk(M, S) = TRUE MS e (mod n) 283 (mod 15). EXAMPLE Sử dụng cơ chế chữ ký RSA cho các bài toán sau: 1) Cho p=5, q=11, e=7. Tạo và kiểm tra chữ ký điện tử với bản tin M=5 2) Cho p=7, q=11, e=17. Tạo và kiểm tra chữ ký điện tử với bản tin M=3 BÀI TẬP Bài toán căn bản bảo đảm độ an toàn của Sơ đồ chữ ký RSA: a) Ký trước, Mã hóa sau: • T ký trước vào x bằng chữ ký S = sigk(M), sau đó mã hoá x và y nhận được z = eT(M, S). T gửi z cho N. • Nhận được z, N giải mã z để được M, S. • Tiếp theo kiểm tra chữ ký verN(M, S) = true ? b) Mã hóa trước, Ký sau: • T mã hoá trước M bằng u = eT (M), sau đó ký vào u bằng chữ ký v = sigT(u). • T gửi (u, v) cho N. • Nhận được (u, v), N giải mã u được M. • Tiếp theo kiểm tra chữ ký verN(u, v) = true ? ĐỘ AN TOÀN CỦA CHỮ KÝ RSA Chữ ký RSA trên Message Digest 1-36 Chữ ký RSA trên Message Digest Lưu ý: • Khi cốt thông điệp được ký thay cho thông đ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 1-37 ElGamal Digital Signature Scheme • Ý tưởng tổng quát của chữ ký ElGamal 1-38 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 • Trong đó (e1,e2,p) là public key; d là private key 1-39 ElGamal Digital Signature Scheme Tạo chữ ký • Chọn ngẫu nhiên r, 1 r p-1, gcd(r, p-1)=1 • Tính S1 = e1 k mod p • 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 • Chữ ký là (S1,S2) Thẩm tra chữ ký • Kiểm tra 1 S1 p; 1 S2 p-1; • Tính v1 = e1 M mod p • Tính v2= e2 S1x S1 S2 mod p • Chữ ký hợp lệ v1=v2 1-40 ElGamal Digital Signature Scheme Tạo và Thẩm tra chữ ký 1-41 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 được ký • (S1-S2)r = (h(m1)-h(m2))mod (p-1) • Nếu gcd((S1-S2),p-1)=1 thì có thể dễ dàng xác đinh giá trị r, từ đó có được private key a •Nếu không dùng hàm băm thì có thể bị tình trạng existential forgery 1-42 1) Tạo cặp khóa (bí mật, công khai) (a, k) : • Chọn phần tử nguyên tử α Zp* . Đặt P = Z p*, A = Z p* x Z p-1. • Chọn khóa bí mật là a Zp* . Tính khóa công khai β α a mod p. • Định nghĩa tập khóa: = {(p, α, a, β): β α a mod p}. • Các giá trị p, α, β được công khai, phải giữ bí mật a. HỆ CHỮ KÝ ELGAMMAL 2) Ký số: • Dùng 2 khóa ký: khóa a và số ngẫu nhiên k Zp-1* . • (Vì k Zp-1* , nên nguyên tố cùng p -1, do đó tồn tại k -1 mod (p -1) ). • Chữ ký trên x P là y = sigk(x, k) = (, ), y A (E1) Trong đó Z p*, Zp-1: = α k mod p và = (x – a * ) * k-1 mod (p -1) 3) Kiểm tra chữ ký: verk (x, , ) = TRUE β * α x mod p. (E2) HỆ CHỮ KÝ ELGAMMAL Chữ ký Elgamal trên dữ liệu x = 112. 1) Tạo cặp khóa (bí mật, công khai) (a, β) : • Chọn số nguyên tố p = 463. Đặt P = Z p*, A = Z p* x Z p-1. • Chọn phần tử nguyên tử α = 2 Zp* . • Chọn khóa bí mật là a = 211 Zp* . • Tính khóa công khai β α a mod p = 2211 mod 463 = 249. • Định nghĩa tập khóa: = {(p, α, a, β): β α a mod p}. • Các giá trị p, α, β được công khai, phải giữ bí mật a. EXAMPLE i e[i]= 21110 p=p*p p=p mod 463 p= p*2 p= p mod 463 0 1 1 1 2 2 1 1 4 4 8 8 2 0 64 64 - 64 3 1 642 392 784 321 4 0 3212 255 - 255 5 0 2552 205 - 205 6 1 2052 355 710 247 7 1 2472 356 712 249 EXAMPLE Tính β α a mod p = 2211 mod 463 = 249. 2) Ký số: Chọn ngẫu nhiên bí mật • k= 235 Zp-1* . Khóa ký là (a, k ). • Vì k Zp-1* nguyên tố cùng p -1, Ǝ k -1 mod (p -1). • Cụ thể: ƯCLN(k, p-1) = ƯCLN(235, 462) = 1, nên k-1 mod (p-1) = 235 -1 mod 462 = 289. • Chữ ký trên dữ liệu x = 112 là ( , ) = (16, 108), trong đó: = α k mod p = 2235 mod 463 = 16 = (x – a* )*k-1 mod (p -1) =(112- 211*16)*289 mod 462 = 108 EXAMPLE Bước i N b Ri+1 Qi+1 Xi Xi+1 Xi+2 0 462 235 227 1 0 1 -1 1 235 227 8 1 1 -1 2 2 227 8 3 28 -1 2 -57 3 8 3 2 2 2 -57 116 4 3 2 1 1 -57 116 -173 5 2 1 0 1 116 -173 289 k-1 mod (p-1) = 235 -1 mod 462 = 289.EXAMPLE i e[i]= 23510 p=p*p p=p mod 463 p= p*2 p= p mod 463 0 1 1 1 2 2 1 1 4 4 8 8 2 1 64 64 128 128 3 0 1282 179 - 179 4 1 1792 94 188 188 5 0 1882 156 - 156 6 1 1562 260 520 57 7 1 572 8 16 16 EXAMPLE Tính = α k mod p = 2235 mod 463 = 16 . 3) Kiểm tra chữ ký: verk (x, , ) = đúng β * α x mod p. β * = 24916 * 16 108mod 463 = 132 α x mod p = 2112 mod 463 = 132. Hai giá trị đó bằng nhau, như vậy chữ ký là đúng. EXAMPLE * Bài toán căn bản bảo đảm độ an toàn của Sơ đồ chữ ký Elgammal: 1). TH1: Giả mạo chữ ký cùng với tài liệu được ký. • T có thể ký trên tài liệu ngẫu nhiên bằng cách chọn trước đồng thời x,,. • Chọn x,, thoả mãn điều kiện kiểm thử như sau: • Chọn các số nguyên i, j sao cho 0 i, j p-2, GCD(j, p-1) = 1 và tính: • = α i β j mod p • = - j -1 mod (p -1) • x = - ij -1 mod (p -1). • Chứng minh (, ) là chữ ký trên x, bằng cách kiểm tra điều kiện kiểm thử: • β * β αi β j( αi β j ) αi β j j -1 mod p α x mod p ĐỘ AN TOÀN CỦA HỆ CHỮ KÝ ELGAMAL • Chọn các tham số của sơ đồ chữ ký Elgammal: • Chọn p = 463, phần tử sinh α = 2, Khóa bí mật a = 135. • Khóa công khai β = α a mod p = 2 135 mod 463 = 272. • Chọn x,, thoả mãn điều kiện kiểm thử như sau: • Chọn i = 89, j = 125, 0 i, j p-2, gcd(j, p-1) = 1. Tính j - 1 mod (p-1) = 377. = α i * β j mod p = 289 * 272125 mod 463 = 218 = – * j -1 mod (p -1) = -218 * 377 mod 462 = 50 x = - * i * j -1 mod (p -1) = -218 * 89 * 377 mod 462 = 292 • (, ) = (218, 50) là chữ ký trên x = 292, vì TM Đkiện kiểm thử: EXAMPLE 2) TH2: Sử dụng lại chữ ký của bức điện trước đó • Nếu (, ) là chữ ký trên tài liệu x có từ trước, thì có thể giả mạo chữ ký trên tài liệu x’ khác. • Chọn số nguyên k, i, j thỏa mãn 0 k, i, j p-2, (k – j, p-1) = 1 và tính: = h α i β j mod p = (h – j) -1 mod (p -1), x’ = (hx + i) (h – j) -1 mod (p -1) • (, ) là chữ ký trên x’, vì thỏa mãn điều kiện kiểm thử: β * α x' mod p. ĐỘ AN TOÀN CỦA HỆ CHỮ KÝ ELGAMAL Cả hai cách giả mạo nói trên đều cho chữ ký đúng trên tài liệu tương ứng, nhưng đó không phải là tài liệu được chọn theo ý của người giả mạo. Tài liệu đó đều được tính sau khi tính chữ ký, vì vậy giả mạo loại này trong thực tế cũng không có ý nghĩa nhiều. TÓM LẠI 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 chữ ký là 2048-bit. • Để 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. 1-55 Schnorr Digital Signature Scheme Ý tưởng tổng quát của chữ ký Schnorr 1-56 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ó độ lớn 1024-bit 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 d mod p. 6.Public key là (e1, e2, p, q); private key là d 1-57 Schnorr Digital Signature Scheme Tạo và Thẩm tra chữ ký 1-58 • Thuật toán CKĐT DSA là thuật toán được đề nghị trong chuẩn chữ ký điện tử DSS (Digital Signature Standard) của NIST. • Nó cung cấp một trình tự để tạo và xác nhận CKĐT • DSA sử dụng 1 cặp khóa công khai – khóa riêng. Trong cả giai đoạn ký và xác nhận văn bản được ký thể hiện dưới dạng thông điệp rút gọn là kết quả của việc áp dụng hàm băm SHA-1 lên văn bản cần ký. THUẬT TOÁN CKĐT DSA & CHUẨN CKĐT DSS Digital Signature Process Tạo và Kiểm tra chữ ký số 1-60 1,Tạo khoá • Chọn p là số nguyên tố L bit, sao cho 2L-1<p<2L , 512 ≤ L ≤ 1024, L chia hết cho 64. • Chọn q là một số nguyên tố 160 bít và là ước số của p-1 với 2159<q<2160 • Chọn h, với 1 1. (z = (p-1) / q.) • Chọn x ngẫu nhiên, thoả mãn 0 < x < q. • Tính giá trị y = gx mod p. • Khoá công là (p, q, g, y). Khoá riêng là x. THUẬT TOÁN CKĐT DSA & CHUẨN CKĐT DSS Thuật giải DSA – Chuẩn chữ ký số b. Tạo chữ kí số • Tạo 1 số ngẫu nhiên với mỗi thông điệp, giá trị k thỏa mãn 0 < k < q • Tính r = (gk mod p) mod q • Tính s = (k-1(SHA-1(m) + x*r)) mod q, ở đây SHA-1(m) là hàm băm mã hoá SHA-1 áp dụng cho thông điệp m • Tính toán lại chữ ký trong trường hợp không chắc chắn khi r=0 hoặc s=0 • Dữ liệu được gửi đi là Văn bản M, chữ ký (r, s). 1-62 Thuật giải DSA – Chuẩn chữ ký số 3, Kiểm tra chữ ký • Loại bỏ chữ ký nếu hoặc 0< r <q hoặc 0< s <q không thỏa mãn. • Tính w = (s)-1 mod q • Tính u1 = (SHA-1(m)*w) mod q • Tính u2 = (r*w) mod q • Tính v = ((gu1*yu2) mod p) mod q • Chữ ký là có hiệu lực nếu v = r • Nếu v != r’ văn bản có thể đã được sửa đổi trên đường truyền hoặc khóa cá nhân mã hóa văn bản không khớp với khóa công khai mà người nhận đang giữ (người gửi mạo danh) 1-63 Thuật giải DSA – Chuẩn chữ ký số 1-64 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) • 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 1-65 Digital Signature Standard (DSS) • Ý tưởng tổng quát của chữ ký DSS 1-66 1) Tạo cặp khóa: Cho p là 1 số nguyên tố 512 bit trong trường logarit rời rạc Zp ; q là 1 số nguyên tố 160 bit và q chia hết cho (p-1). Cho α Є Zp*; P=Zp*; A =Zp*Zq: K={(p, q, α, a, β): β αa (mod p)} với p, q, α, β công khai, a là bí mật Chọn 1 số ngẫu nhiên k(1<=k<=q-1) 2) Ký số: sigk( , ) trong đó: =(ak mod p) mod q & =(x+a* )k-1 mod q Với x Є Zp* và , Є Zq 3) Kiểm tra chữ ký: Tính e1=x* -1 và e2= * -1 Ver(x, , )= TRUE (αe1βe2 mod p) mod q= CHUẨN CKĐT DSS Digital Signature Standard (DSS) • Tạo và Thẩm tra chữ ký 1-68 • Giả sử: q=101, p=78q + 1=7879 • 3 là phần tử nguyên tử trong Z7879 nên ta có thể lấy: a = 3 78 mod 7879 =170 • Giả sử a=75, khi đó • B=aa mod 7879 = 4567 • Bây giờ giả sử Bob muốn kí bức điện x = 1234 anh ta chọn số ngẫu nhiên k = 50, vì thế: k -1 mod 101 =99 • Khi đó: =(17050 mod 7879) mod 101 = 2518 mod 101=94 • Và =(1234 + 75 *94) mod 101=97 => chữ ký: ( 94, 97) CHUẨN CKĐT DSS Chứng minh: • -1 =97-1 mod 101 = 25 • e1= 1234 * 25 mod 101=45 • e2=94 * 25mod 101=27 • (17045*456727 mod 7879) mod 101=2518 mod 101=94 • Vì thế chữ kí hợp lệ CHUẨN CKĐT DSS 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ì q nhỏ hơn p 1-71 Elliptic Curve Digital Signature Scheme • Ý tưởng tổng quát của chữ ký EC 1-72 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) • 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. 1-73 Elliptic Curve Digital Signature Scheme Tạo và Thẩm tra chữ ký 1-74 Những biến thể chữ ký • Time Stamped Signatures • 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 • Ví dụ: Alice ký một yêu cầu đối với ngân hàng 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 1-75 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ý 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. 1-76 Những biến thể chữ ký Blind Signatures • Các bước thực hiện: • Bob tạo một thông điệp, ẩn (Blind) nó, và gửi thông điệp ẩn này cho Alice • Alice ký thông điệp ẩn và trả về chữ ký trên thông điệp ẩn. • Bob bỏ ẩn chữ ký để thu về chữ ký trên thông điệp gốc 1-77 • Là chứng thực để gắn một chìa khóa công khai với một thực thể (cá nhân, máy chủ, cty,). Hay nói cách khác, CTS giúp xác định chìa khóa công khai thuộc về thực thể nào. • Một CTS thường gồm chìa khóa công khai và một số thông tin khác về thực thể sở hữu chìa khóa đó. • Chứng thư số thuộc sở hữu của nhà cc chứng thư số, viết tắt CA (certificate authority). Chứng thư số CA • Sinh cặp chìa khóa bất đối xứng an toàn • Tránh xung đột chứng thực • Hoặc tránh định danh giống nhau Cấp phát chứng thư số Đăng ký chứng thực Cấp chứng thực cho người dùng Sơ đồ tạo chứng thư số Các mô hình hệ thống • Là quá trình lưu trữ an toàn các dấu tích về thời gian tạo ra văn bản cùng với những lần sửa đổi nó. • Được sử dụng để xác định thời điểm ký văn bản • Được phát hành bởi bên thứ 3 tin cậy và đóng vai trò như cơ quan đóng dấu tem thời gian. Tem thời gian tin cậy (trusted timestamping) Qui trình đóng dấu và kiểm định tem thời gian có sự tham gia của các đối tượng sau: 1. Dữ liệu cần đóng dấu tem thời gian 2. Bên thứ 3 tin cậy (TSA-time stamp authority) 3. Dịch vụ gắn tem thời gian: cung cấp thẻ tem thời gian. 4. Người yêu cầu tem thời gian 5. Người kiểm tra tem thời gian Tem thời gian tin cậy (trusted timestamping) Sơ đồ đóng tem thời gian tin cậy cho dữ liệu Kiểm tra tem thời gian tin cậy • Do tính chất của hàm băm nên tem thời gian tin cậy không chỉ khẳng định dữ liệu đã tồn tại trước thời điểm ghi nhãn thời gian mà còn khẳng định dữ liệu không hề thay đổi kể từ khi được cấp phát tem thời gian. • Tem thời gian chỉ khẳng định dữ liệu được sinh ra trước thời điểm cấp tem thời gian. Để xác định chính xác khoảng thời gian xẩy ra một sự kiện nào đó đối với dữ liệu, ta tiến hành đóng tem thời gian hai lần. Nhận xét • Công cụ mật mã mà TSA sử dụng sắp hết thời hạn sử dụng • Bản thân TSA có thể sắp được thay thế bởi TSA khác • Thuật toán băm thay đổi Dữ liệu được cấp phát tem thời gian mới bao gồm dữ liệu gốc và con tem cũ Tem thời gian bội 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 phải thỏa mãn? 3. Thực hành 4. Ví dụ 5. Xác thực điện tử 1-92 Câu hỏi và bài tập 1-93 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 phải thỏa mãn? 1-94
File đính kèm:
- bai_giang_an_toan_he_thong_thong_tin_chuong_4_chu_ky_dien_tu.pdf