Lược đồ chữ ký RSA có độ an toàn phụ thuộc vào việc giải quyết bài toán lũy thừa theo module các số nguyên tố lớn. Lược đồ ký bao gồm cả hai loại kèm thông điệp và khôi phục thông điệp. Lược đồ được đề xuất năm
1977 và được coi là có ứng dụng rộng rãi nhất dựa trên công nghệ sử dụng khóa chung.
a) Nội dung: Cho n p.q là có số nguyên tố pq
Cho PAZn. Kn,p,q,a,b,n p.q;a.b1mod n. Các giá trị n,b là công khai.
Với mỗi kn,p,q,a,b ta định nghĩa: Sig x xa n
k( ) mod ;
n b
k x y true x y n x y Z
Ver ( , ) mod ; , .
b) Thuật toán sinh khóa:
Chọn hai số nguyên tố lớn giả ngẫu nhiên pq. Tính n p.q và
1 1
n p q
Chọn số ngẫu nhiên số tự nhiên b sao cho 1b n và nguyên tố cùng nhau với n .
Tính số tự nhiên a là duy nhất: 1a(n) và a.b1mod n bằng thuật toán Euclid mở rộng.
Khóa công khai của A là (𝑛, 𝑏) và khóa bí mật là n,a
c) Thuật toán sinh chữ ký
Chữ ký trên thông điệp m(nếu m lớn thì ký vào đại diện tài liệu của m
là zH m ).
Chọn khóa bí mật a. Tính chữ ký là smamodn
d) Thuật toán xác nhận chữ ký
Xác nhận chữ ký s. Chọn khóa công khai b. Tính m' sbmodn
Chữ ký đúng nếu '
m m
Ví dụ 1.1: Giả sử A cần ký một chữ ký s lên thông điệp m=31229978
Sinh khóa: Chọn số nguyên tố p= 7927 và q=6997. Tính n=p.q=55465219. (n)55450296
Sinh chữ ký: Chữ ký trên m là 30729435 55465219 mod 31229978 mod 44360237 m n s a Xác nhận chữ ký: Tính m' sbmodn307294355mod5546521931229978m. Vậy chữ ký đúng.
Thấy rằng hệ mã hóa RSA an toàn khi giữ được bí mật khóa giải mã a,p,q, n . Nếu biết được p và q, thì thám mã sẽ tính được (n) và tính được a theo lý thuyết thuật toán Euclide mở rộng. Tuy nhiên bài toán phân tích n thành tích các thừa số nguyên tố p và q là bài toán khó [].