Chuẩn chữ ký số (DSS) được đề xuất từ năm 1991 và được chấp nhận vào cuối năm 1994 để sử dụng trong một số lĩnh vực giao dịch điện tử tại Hoa kỳ. DSS dựa vào sơ đồ chữ ký ElGamal. Để bảo đảm an tồn, số nguyên tố p cần phải đủ lớn, biểu diễn nhị phân của p phải cĩ từ 512 bit trở lên (cụ thể từ 512 đến 1024 bit, số bit là một bội của 64). Tuy nhiên, độ dài chữ ký theo sơđồ ElGamal là gấp đơi số bit của p, mà trong nhiều ứng dụng người ta lại mong muốn cĩ chữ ký độ dài ngắn, nên giải pháp sửa đổi được đề xuất là: trong khi vẫn dùng p lớn với độ dài biểu diễn 512 bit trở lên, thì sẽ hạn chếđộ dài của γ và δ trong chữ ký (γ,δ) vào khoảng 160 bit (như vậy cả chữ ký sẽ cĩ độ dài khoảng 320 bit); điều này được thực hiện bằng cách dùng một nhĩm con cyclic Zq∗ của Z∗p thay cho chính bản thân Zp∗, do đĩ mọi tính tốn vẫn được thực hiện như trong Zp∗ nhưng các dữ liệu và thành phần chữ ký lại thuộc Zq∗.
Sơđồ chuẩn chữ ký số DSSnhư sau:
Chọn p là một số nguyên tố lớn cĩ độ dài biểu diễn ≥ 512 bit sao cho bài tốn tính logarit rời rạc trong Zp là khĩ, q là một ước số nguyên tố của p -1, cĩ độ dài biểu diễn cỡ 160 bit. Gọi α ∈Z∗p là một căn bậc q của 1 theo mod p.
Đặt Π =Zp∗, Α = Zq∗×Zq∗. Chọn a Z∈ q∗ và tính β α≡ amod p. Xác định khố
K=(K’,K''), trong đĩ khố bí mật K’ = a, và khố cơng khai K'' = (p,q,α,β). Thuật tốn ký và thuật tốn kiểm thử được định nghĩa như sau: Với x ∈ Π =Zp∗, ta chọn thêm một số ngẫu nhiên k (0≤k ≤ q -1). Thuật tốn ký: ' K sig (x, k) = ( , ),γ δ trong đĩ ( k γ = α mod p) mod q, 1 (x a ).k δ = + γ − mod q.
Thuật tốn kiểm thử: "
K
ver (x,( , )γ δ ) = đúng ⇔ (α βe1. e2mod p)mod q = γ, trong đĩ 1
1 .
e =xδ− mod q và 1 2 .
e =γ δ− mod q.
Chú ý rằng ta phải cĩ δ ≠ 0 mod q để cĩ thể tính được δ -1mod q dùng trong thuật tốn kiểm thử, vì vậy nếu chọn k mà được δ ≡ 0 mod q thì phải chọn lại sốk khác để cĩ được δ≠ 0 mod q.