Mô hình ký số DSA là thuật toán ký số dựa trên độ khó của bài toán tính logarit rời rạc, đƣợc đề xuất lần đầu bởi 2 nhà toán học ElGamal [11] và Schnorr [20]
Thuật toán DSA đƣợc thực hiện qua các bƣớc sau:
Khởi tạo:
Chọn số nguyên tố p có độ dài bit là 160bit
Chon số nguyên tố p nằm trong khoảng 1
(2L, 2 )L , với L là bội của 64 thỏa mãn 512 L 1024.
Chọn số g có dạng gh(p1)/qmodp với h là số nguyên dƣơng nằm trong khoảng (1, p-1)
Tạo khóa bí mật:
Chọn 1 số nguyên ngẫu nhiên, hoặc giả ngẫu nhiên x với 0 < x < q. Khóa bí mật là PR=( x )
Tạo khóa công khai :
Tính toán ygxmodp. Khóa công khai là PU = (p, q, g, y)
Quá trình ký số thông điệp m của bên gửi :
Chọn ra số ngẫu nhiên hoặc giả ngẫu nhiên x với 0 < x < q
Tính r(gkmod ) modp q
Tính sK1( ( )H m x r) mod q
Công bố chứ ký Sg(m)=(r,s)
Quá trình xác thực của bên nhận :
Thông điệp bên nhận nhận đƣợc là ( m’|(r’,s’) )
Tính w=(s') mod1 q
Tính u1H m( ') w mod q
Tính u2 ( ' w) modr q
Tính vgu1yu2modpmodq
Comment [u7]: ElGamal, T. "A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms." IEEE Transactions on Information Theory, July 1985.
Comment [u8]: Schnorr, C. "Efficient Signatures for Smart Card." Journal of Cryptology, No. 3, 1991.
Nếu v=r’ thì chữ ký trên thông điệp m là hợp lệ
Trong mô hình chữ ký điện tử DSA, hàm H đƣợc quy định là hàm băm SHA-1
Mô hình ký số và xác thực của DSA đƣợc mô tả trong hình vẽ 1.14a, và mô hình truyền thông sử dụng chữ ký điện tử DSA đƣợc biểu diễn trong hình 1.14b
Hình 1.14a : Mô hình ký số và xác thực DSA