C i= LSi(i-1) Di = LSi(Di-1)
a. an toà n: Độ an toàn của chữ ký phụ thuộc vào độ bí mật của khoá riêng Người sử dụng phải được bảo vệ trước về khóa riêng của mình Nếu khoá riêng đảm
Người sử dụng phải được bảo vệ trước về khóa riêng của mình. Nếu khoá riêng đảm bảo an toàn tuyệt đối thì chữ ký cũng có mức độ an toàn hầu như tuyệt đối. Mặt khác, với khoá công khai là công khai, chữ ký DSS là an toàn khi từ khoá công khai không thể tìm được khoá riêng, Thật vậy, ta có:
Cho p là một số nguyên tố rất lớn, phương trình toán học sau là không thể giải được: y = ax mod p (1) với y, a = g(p-1)/q và 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 (1) 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 từ (1) ta có:
y = ax1 mod p và y = ax2 mod p. Không mất tính tổng quát giả sử x1 < x2 từ đây suy ra :
ax1 chia 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)/q thì điều này không thể xảy ra khi g < p.
Trong nhiều trường hợp, thông điệp có thể mã và giải mã chỉ một lần nên nó phù hợp cho việc dùng với hệ mật bất kì (an toàn tại thời điểm được mã). 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 chúc thư 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ã.
Vì sơ đồ Elgamal không an toàn hơn bài toán logarithm rời rạc nên cần dùng modulo p lớn chẳng hạn từ 512 bít trở lên. Tuy nhiên độ dài chữ ký theo sơ đồ Elgamal là gấp đôi số bit của p mà với nhiều ứng dụng dùng thẻ thông minh thì cần chữ kí ngắn hơn nên giải pháp sửa đổi là: một mặt dùng p với độ dài biểu diễn từ 512 bít đến 1024 bít, mặt khác trong chữ ký (γ, δ), các số γ, δ có độ dài biểu diễn ngắn, chẳng hạn là 160 bít - khi đó độ dài chữ ký là 320 bít. Điều này thực hiện bằng cách dùng nhóm con Cyclic Zq* của Zp* thay cho chính bản thân Zp*, do đó mọi tính toán vẫn được thực hiện trong Zp* nhưng dữ liệu và thành phần chữ ký lại thuộc Zq*.