Câu hỏi và bài tập
1. Clio a = 13, p = 20. Tìm giá trị nghịch đáo của a trong phép modulo p dùng thuật toán Euclid mờ rộng (xem phụ lục 2).
2. Cho n = 17, lập bàng tương tự như Báng 4-1. Liệt kê các primitive root cùa n.
3. Áp dụng thuật toán bình phương liên tiếp tính 721 mod 13
4. Cho p = 5, Q= 11, e = 7. Tính khóa riêng (d, N) trong phương pháp RSA.
5. Thực hiện mà hóa và giãi mà bằng phương pháp RSA với^ = 3,ạ=ll,e = 7,Àf= 5 theo hai trường hợp mà hóa bảo mật và mà hóa chứng thực.
6. Alice chọn p = 7. q = 11, e = 17, Bob chọn p = 11, q = 13, e = 11:
a. Tính khóa riêng KRA cùa Alice và KRB của Bob
b. Alice muon gời cho Bob bân tin M ~ 9 vừa áp dụng chứng thực và bào mật như ở sơ đồ 4-3. Hày thực hiện quá trình mà hóa và giãi mà.
7. Xét thuật toán Miller-Rabin (xem phụ lục 2). Với số 37, cho biết kết quá của thuật toán Miller-Rabin trong các trường hợp sau đây cùa a: 9,17,28.
8. Dùng thuật toán Miller-Rabin, kiêm tra tính nguyên tố của số 169.
1-93Câ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?
95 trang |
Chia sẻ: thucuc2301 | Lượt xem: 1693 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Giáo trình Nhập môn an toàn thông tin - Chương 4: Chữ ký điện tử (Chữ ký số) - Trần Thị Kim Chi, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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), SA
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 = 2P là:
S = sigk (M) = M
d (mod n)
= 23 (mod 15)
= 8, SA.
* 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 kZp-1* .
• (Vì kZp-1* , nên nguyên tố cùng p -1, do đó tồn tại k
-1 mod
(p -1) ).
• Chữ ký trên xP là y = sigk(x, k) = (, ), yA (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ử α = 2Zp* .
• Chọn khóa bí mật là a = 211Zp* .
• 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ì kZp-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
Các file đính kèm theo tài liệu này:
- nhap_mon_an_toan_thong_tin_tran_thi_kim_chic04_chukyso_chukydientu_8049_2021724.pdf