Như đã đề cập, lược đồ chữ ký số EC-Schnorr được xây dựng dựa trên lược đồ định danh Schnorr trên nhóm điểm đường cong elliptic thông qua “phép biến đổi Fiat-Shamir”. Bộ tham số miền và ba thuật toán của lược đồ chữ ký số EC-Schnorr được mô tả trong [54] có thể được tóm lược như sau:
Bộ tham số miền gồm:
- Một số nguyên tố lớn 𝑝 là đặc số của trường hữu hạn.
- Một đường cong elliptic 𝐸(𝐴, 𝐵) xác định trên trường hữu hạn 𝔽𝑝 bởi phương trình 𝐸 ∶ 𝑦2 = 𝑥3+ 𝐴𝑥 + 𝐵 với 𝐴, 𝐵 ∈ 𝔽𝑝 thỏa mãn 4𝐴3+ 27𝐵2 ≠ 0 𝑚𝑜𝑑 𝑝.
- Một điểm 𝑃 ∈ 𝐸(𝔽𝑝) có cấp nguyên tố 𝑞, gọi là điểm cơ sở.
Thuật toán sinh khóa 𝑲𝒆𝒚𝑮𝒆𝒏:
1. Chọn một số nguyên ngẫu nhiên 𝑎 ∈ [1, 𝑞 − 1]. 2. Tính 𝑄 = 𝑎𝑃, đưa ra 𝑝𝑘 = 𝑄 và 𝑠𝑘 = 𝑎.
Thuật toán ký 𝑺𝒊𝒈𝒏 (tạo chữ ký cho thông điệp 𝑚): 1. Chọn một số nguyên ngẫu nhiên 𝑘 ∈ [1, 𝑞 − 1]. 2. Tính 𝑅 = 𝑘𝑃.
3. Tính 𝑟 = 𝐻(𝑚||𝑥𝑅), nếu 𝑟 = 0 𝑚𝑜𝑑 𝑞, quay lại bước 1. 4. Tính s = (k − ar) mod q, nếu s = 0 mod q, quay lại bước 1. 5. Đưa ra chữ ký (r, s).
Thuật toán xác minh 𝐕𝐞𝐫𝐢𝐟𝐲 (xác minh tính hợp lệ của chữ ký σ = (𝑟, 𝑠) trên thông điệp 𝑚 theo khóa công khai 𝑝𝑘):
1. Xác minh 𝑟, 𝑠 có thuộc [1, 𝑞 − 1]? 2. Tính R = sP + rQ.
3. Tính r* = H(m||xR) mod q.
4. Nếu (𝑟∗ = r) thì đưa ra “chữ ký hợp lệ”, ngược lại đưa ra “chữ ký
không hợp lệ”.
Tính đúng đắn của lược đồ chữ ký số EC-Schnorr: Để đảm bảo tính đúng đắn thì lược đồ chữ ký số EC-Schnorr cần thỏa mãn điều kiện: nếu chữ ký (𝑟, 𝑠) được sinh ra từ thuật toán sinh chữ ký 𝑆𝑖𝑔𝑛 với thông điệp đầu vào 𝑚 thì thuật toán xác minh sẽ đưa ra kết quả (𝑟, 𝑠) là chữ ký hợp lệ trên thông điệp 𝑚. Thật vậy, vì (𝑟, 𝑠) được sinh ra từ thuật toán sinh chữ ký 𝑆𝑖𝑔𝑛 với
thông điệp đầu vào 𝑚, nên 𝑠 = (𝑘 − 𝑎𝑟) 𝑚𝑜𝑑 𝑞, với 𝑘 là số nguyên ngẫu nhiên thuộc [1, 𝑞 − 1] và 𝑟 = 𝐻(𝑚||𝑥𝑘𝑃). Do đó, thuật toán xác minh đưa ra
𝑅 = 𝑠𝑃 + 𝑟𝑄 = (𝑘 − 𝑎𝑟)𝑃 + 𝑟(𝑎𝑃) = 𝑘𝑃,
hay 𝑟 = 𝐻(𝑚||𝑥𝑅) là đúng. Vì vậy, thuật toán xác minh đưa ra kết quả (𝑟, 𝑠) là chữ ký hợp lệ trên thông điệp 𝑚.