Với x, y G, sự kiểm tra được tiến hành theo giao thức sau: 1. Alice chọn e1, e2 ngẫu nhiên, e1, e2 Zp*.
2. Alice tính c = ye1 e2
mod p và gửi nó cho Bob. 3. Bob tính d = ca1modq mod p và gửi nó cho Alice. 4. Alice chấp nhận y là chữ ký đúng khi và chỉ khi:
d xe1e2
mod p.
Vai trò của p, q trong lược đồ:
Lược đồ nằm trong Zp; tuy nhiên chúng ta cần tính toán trong phân nhóm nhân G của Zp
*
của bậc số nguyên tố lẻ. Đặc biệt, chúng ta cần tính phần tử nghịch đảo theo modunG, điều này lý giải tại saoGnên là nguyên tố lẻ. Nó thuận tiện nếu lấy p = 2q+1 với q là nguyên tố lẻ. Trong trường hợp này phân nhóm G tồn tại.
Đỗ Thị Xuân Thắm K31 B – Khóa luận tốt nghiệp – Chuyên ngành Tin học 42
Ở đây, chúng ta chứng minh rằng Alice sẽ chấp nhận chữ ký đúng. Trong các phép toán dưới đây, tất cả số mũ là biến đổi theo modun q.
Ta có: d ca1 mod p Mà c = ye1 e2 mod p d ye1 a1e2 a1mod p (1) Ta lại có: a mod p 1 a mod p (2) Tương tự ta cũng có: y = xa mod p ya1 = x mod p (3) Thay (2), (3) vào (1) được:
d xe1e2mod p. Đó là điều phải chứng minh.
Ví dụ: Giả sử chúng ta lấy p = 467. Từ (2) là căn nguyên thủy => 22 = 4 là thặng dư bậc 2 theo modun 467 và 4 là phần tử sinh của G. Lấy = 4. Giả sử a = 101, ta có:
= a
mod p = 4101 mod 467 = 449 Bob sẽ ký thông báo x = 119 với chữ ký:
y = xa mod p = 119101 mod 467 = 129
Giả sử Alice muốn kiểm tra chữ ký y. Alice chọn ngẫu nhiên e1 = 38, e2 = 397.
Ta có: c = ye1 e2 mod p = 12938 449397 mod 467 = 13 Alice gửi c =13 cho Bob và Bob sẽ tính d theo:
d = ca1modq mod p d = 13101 1 mod233 mod 467 (q = (p - 1)/2 = (467 –1 )/2 = 233) d = 9
Alice kiểm tra chữ ký y theo bước 4. Có: xe1e2mod p = 11938 4397 mod 467 = 9
Đỗ Thị Xuân Thắm K31 B – Khóa luận tốt nghiệp – Chuyên ngành Tin học 43
d xe1e2mod p.
Do đó, Alice chấp nhận chữ ký là đúng. (xem trong [8])