Trong phần này chúng ta sẽ nghiên cứu các sơ đồ chữ ký điện tử DSA và lớp các chữ ký tương tự, đặc điểm của những giải thuật n ày là đều sử dụng chữ ký theo kiểu chọn lựa ngẫu nhiên. Tất cả các sơ đồ DSA kèm thông điệp đều có thể cải biến thành các sơ đồ ký khơi phục thông điệp. Ðặc biệt chúng ta sẽ đi sâu vào tìm hiểu chuẩn chữ ký điện tử DSS (Digital Signature Standard) do khả năng cài đặt thực tế của nó.
Hình 2.3: Lược đồ chữ ký DSAK h o á K h o á R i ê n g T h ô n g đ i ệ p S H A - 1 T h ô n g đ i ệ p đ ạ i d i ệ n S i n h c h ữ K ý s ố S i n h c h ữ k ý s ố C h ữ k ý s ố C h ữ k ý s ố T h ô n g đ i ệ p S H A - 1 T h ô n g đ i ệ p đ ạ i d i ệ n X á c t h ự c c h ữ k ý s ố X á c t h ự c c h ữ k ý s ố K h o á c ô n g k h a i C h ấ p n h ậ n h o ặ c t ừ c h ố i
Bảo mật và an tồn thơng tin trong hệ thống mạng cục bộ của cơ quan nhà nước
Sơ đồ chữ ký DSS dựa trên giải thuật ký điện tử DSA. Chữ ký dạng DSS là một dạng chữ ký kèm thơng điệp, điều đó có nghĩa là chữ ký phải được gửi kèm với thông điệp mà bản thân chữ ký không chứa (hoặc không sinh ra) thông điệp, thông thường những chữ ký dạng này đều địi hỏi phải có một hàm băm trên thơng điệp. Hàm băm này được sử dụng trong quá trình sinh chữ ký để xây dựng một dạng nén của dữ liệu . Dữ liệu này được gọi là văn bản đại diện (message digest). Phần văn bản đại diện n ày là đầu vào của giải thuật sinh chữ ký. Người xác nhận chữ ký cũng sử dụng h àm băm này để xây dựng phương pháp xác nhận chữ ký. Ðối với sơ đồ chữ ký DSS, hàm băm này tạo ra một giá trị số nguyên 160 bits đặc trưng cho một thông điệp, điều này làm hạn chế một trong các giá trị tham số của DSS phải l à 160 bits. Ngoài ra, chuẩn này yêu cầu việc sinh chữ ký phải sử dụng một khố bí mật cho mỗi người ký, ngược lại để xác nhận chữ ký, người xác nhận phải có một khố cơng khai tương ứng với khố bí mật của người gửi.
2.4.2.1 Giải thuật sinh khoá
Mỗi một người dùng tạo một khố cơng khai và một khố bí mật tương ứng theo cách sau:
● Chọn một số nguyên tố q sao cho 2159< q < 2160
● Chọn một số nguyên tố p sao cho 2511+64t< p < 2512+64tở đó t [0,8]
● Chọn g là một số nguyên bất kỳ nhỏ hơn p, α = g(p-1)/q mod p
● α khác 1
● Chọn số nguyên a sao cho : 1 ≤ a ≤ q - 1
● Tính β = αamod p
● Khố riêng của người dùng là a, khố cơng khai là bộ (p,q, α, β)
2.4.2.2. Giải thuật sinh chữ ký
Khi cần sinh chữ ký cho một thông điệp Z, thực thể phải làm những việc như sau:
Bảo mật và an tồn thơng tin trong hệ thống mạng cục bộ của cơ quan nhà nước
● Chọn một số nguyên mật k, 0 < k < q - 1
● Tính γ = (αkmod p) mod q.
● Tính k-1mod q.
● Tính δ = k-1(h(Z) + aγ) mod q
● Chữ ký của người dùng cho Z là cặp (δ, γ)
2.4.2.3. Giải thuật xác nhận chữ ký
Khi cần xác nhận chữ ký cho một thông điệp m thực thể phải l àm những việc như sau:
● Dành lấy khố cơng khai của thực thể ký (p,q, α, β)
● Nếu điều kiện : 0 < δ, γ < q khơng thoả mãn thì từ chối chữ ký
● Tinh w = δ-1mod q và h(Z)
● Tính e1= w.h(Z) mod q và e2= γw mod q
● Tính v = (αe1βe2mod p) mod q
● Nếu v = γ thì chấp nhận chữ ký ngồi ra thì từ chối.
Ví dụ:
Giả sử q = 101, p = 78q + 1 = 7879.
3 là phần tử nguyên thuỷ trong Z7879 nên ta có thể lấy: α = 378mod 7879 = 170 Giả sử a = 75, khi đó β = αamod 7879 = 4576
Muốn kí bức điện x = 1234, ta chọn số ngẫu nhiên k = 50, vì thế có k-1
mod 101 = 99. Khi đó có :
γ = (17050mod 7879) mod 101 = 2518 mod 101 = 94 Và δ = (1234 +75.94)99 mod 101 = 96
Chữ kí (94, 97) trên bức điện 1234 được xác minh bằng các tính tốn sau: 96-1mod 101 =25
e1 = 1234.25mod 101 = 45 e2 = 94.25 mod 101 = 2
Bảo mật và an tồn thơng tin trong hệ thống mạng cục bộ của cơ quan nhà nước 2.4.2.4 Tóm tắt lược đồ chữ ký số DSA
2.4.2.5. Các tính chất của chữ ký số DSA
+ Ðộ an toàn: Độ an toàn của chữ ký phụ thuộc vào độ an tồn của khố bí mật. Người sử dụng phải bảo vệ khóa bí mật của m ình. Nếu khố bí mật đảm bảo an tồn tuyệt đối thì chữ ký cũng có mức độ an tồn hầu như tuyệt đối. Mặt khác, với khố cơng khai , chữ ký DSA là an tồn khi từ khố cơng khai khơng thể tìm được khố bí mật, ta có:
Cho p là một số ngun tố rất lớn, phương trình tốn học sau là không thể giải được: y = ax mod p (1) với y, a = g(p-1)/qvà khác 1. Ðể xem xét điều này trước hết chúng ta nhận xét phương trình có nghiệm x duy nhất thuộc khoảng [1,q]. Thật vậy giả sử có hai nghiệm l à x1 và x2 và ta có:
y = ax1mod p và y = ax2mod p.
Giả sử p là số nguyên tố 512 bits sao cho bài tốn logarit rời rạc trong Zplà
khó giải.
Cho q là số nguyên tố 160 bits là ước của (p-1)
Giả thiết α Zplà căn bậc q của 1 modulo p
Cho p Zpvà a = Zq× Zpvà định nghĩa:
A = {(p, q, α, a, β) : β ≡ αa(mod p)}
Các số p, q, α và β là cơng khai, có a mật.
Với K = (p, q, α , a, β ) và với một số ngẫu nhiên (mật) k ,1 ≤ k ≤ q-1, ta định nghĩa:
Quá trình ký số sigk(x, k) = (γ, δ) trong đó
γ = (αkmod p) mod q và
δ = (x +aγ)k-1mod q với x Zpvà γ, δ Zq
Q trình xác minh sẽ hồn tồn sau các tính tốn :
e1= xδ-1mod q
e2= γδ-1mod q
Bảo mật và an tồn thơng tin trong hệ thống mạng cục bộ của cơ quan nhà nước
ax1chia hết cho p (không thoả mãn do p nguyên tố)
Tồn tại k nhỏ hơn p sao cho ak≡ 1 (mod p). Với giá trị a có dạng a = g(p-1)/qthì điều này khơng thể xảy ra khi g < p.
Song trên thực tế, nhiều khi một bức điện được dùng làm một tài liệu đối chứng, chẳng hạn như bản hợp đồng hay một di chúc và vì thế cần xác minh chữ ký sau nhiều năm kể từ lúc bức điện được ký. Bởi vậy, điều quan trọng là có phương án dự phịng liên quan đến sự an toàn của sơ đồ chữ ký khi đối mặt với hệ thống mật mã.
+ Tính hợp lệ: tính hợp lệ của chữ ký DSA dựa trên 2 định lý sau:
Định lý 2.1:Cho p, q là 2 số nguyên tố thoả mãn điều kiện q \ (p-1). h là một số nguyên dương bất kỳ thoả mãn h < p. Nếu :
g ≡ h(p-1)/qmod p thì gq≡ 1 mod p.
Thật vậy gq≡ (h(p-1)/q)q≡ h(p-1)mod p ≡ 1 mod p (theo định lý Ferma nhỏ).
Định lý 2.2:Với g, p, q xác định như trên ta ln có :
Nếu m ≡ n mod p thì gm≡ gnmod p. Thật vậy khơng mất tính tổng qt ta đặt m = n + kq. Thì gm≡ gn + kq≡ (gnmod p). (gkqmod p) ≡ gn mod p => điều phải chứng minh.
+ Nhược điểm: Nhược điểm lớn nhất về mặt kỹ thuật l à kích thước modulo p bị cố định = 512 bits. Nhiều người muốn kích thước này có thể thay đổi được nếu cần, có thể dùng kích cỡ lớn hơn. Ðáp ứng những đòi hỏi này, NIST đã chọn tiêu chuẩn cho phép có nhiều cỡ modulo, ng hĩa là cỡ modulo bất kì chia hết cho 64 trong phạm vi từ 512 đến 1024 bits.
Một nhược điểm nữa là DSA là chữ ký được tạo ra nhanh hơn việc thực hiện xác minh nó. Trong khi đó, nếu d ùng RSA làm sơ đồ chữ ký với số mũ xác minh công khai nhỏ hơn (chẳng hạn = 3) thì có thể xác minh nhanh hơn nhiều so với việc lập chữ ký. Ðiều này dẫn đến hai vấn đề liên quan đến những ứng dụng của sơ đồ chữ ký.
Bảo mật và an tồn thơng tin trong hệ thống mạng cục bộ của cơ quan nhà nước
Nhiều khi việc ký chỉ thực hiện một lần, song vi ệc xác minh chữ ký số lại thực hiện nhiều lần trong nhiều năm. Ðiều này lại gợi ý nhu cầu có thuật tốn xác minh nhanh hơn. Sự đáp ứng của NIST đối với yêu cầu về số lần xác minh chữ ký thực ra khơng có vấn đề gì ngồi u cầu về tốc độ, miễn là cả hai q trình có thể thực hiện đủ nhanh.