Trong mục này NCS sẽ tiến hành lập hai bảng đánh giá về chi phí thực hiện của thuật toán tạo chữ ký (Bảng 1.1) và thuật toán xác minh chữ ký (Bảng 1.2) cho 4 lược đồ ECDSA, GOST R34.10-2012, ECGDSA và EC- Schnorr để thể hiện tính hiệu quả của lược đồ EC-Schnorr so với 3 lược đồ trước đó. Trước khi trình bày hai Bảng 1.1 và 1.2, NCS đưa ra một số ký hiệu và một kết quả nhỏ để giải thích cho sự hình thành của hai bảng này.
Ký hiệu về chi phí của các phép toán được thực hiện trong 4 lược đồ:
- I là chi phí của phép nghịch đảo, M là chi phí của phép nhân trên ��. - MP là chi phí của phép nhân điểm trên �(��).
Chú ý: Trong các thuật toán tạo cũng như kiểm tra chữ ký thì phần chi phí tính toán bỏ qua chi phí của những phép toán có bậc thấp như phép lấy ngẫu nhiên, phép so sánh.
Kết quả mà NCS đưa ra ở đây là:
Bổ đề 1.1. Giả sử hàm H được sử dụng trong lược đồ chữ ký EC-Schnorr có
độ dài hash bằng kích thước của tham số �, xác suất để tìm được tiền nghịch ảnh � sao cho �(�) = 0 là ε, và � là thương của phép chia � cho �.
Khi đó xác suất để thuật toán sinh chữ ký EC-Schnorr được thực hiện không bị vào lần lặp nào, ký hiệu là ρ, thỏa mãn: ρ ≥ (1 − �) (1 − �+1). (1.1)
�
Chứng minh:
Theo thuật toán ký của EC-Schnorr thì sự kiện (r = 0) xảy ra là tương đương với sự kiện với sự kiện (| ) = 0(| ( | ). Trường hợp này mang lại cho chúng ta = ||� | | thỏa mãn �(�) = 0 , mà theo giả thiết của Bổ đề 1.1 ta có ngay xác suất xảy ra sự kiện này là:
Prob(r = 0) = Prob(| ) = 0 (| ( | �) = ε . (1.2) Bây giờ chúng ta khảo sát xác suất của sự kiện (s = 0)/(r ≠ 0). Sự kiện trên tương đương với:
k = a.r mod q
⇔ =
�. �−1 ��� � ⇔ =
�. �−1 ��� �
Vì � là phần tử thuộc �� nên không có quá � + 1 giá trị � thỏa mãn � = . �
−1 . Do đó, xác suất để sự kiện (s = 0) xảy ra là:
Prob(s = 0) ≤ t+1 . (1.3)
q
Cuối cùng, từ (1.2) và (1.3) ta có:
Prob((r ≠ 0)∧(s ≠ 0)) ≥ (1 − ε) (1 − t+1
q
và đây là điều cần chứng minh.■
Lược đồ Thu t toán sinh ch ký.ậ ữ Đ u vào: ầ m, a. Đ u ra: ầ (r,s). Chi phí tính toán ECDSA Bước 1: Chọn � ∈� [1, … , − 1 ]. Bước 2: Tính (x,y) = k.P.
Bước 3: Tính r = x mod q. Nếu � = 0 quay về Bước 1.
Bước 4: Tính h = H(m).
Bước 5: Tính s = �−1(ℎ + ) mod q. Nếu
� = 0, quay lại Bước 1.
Bước 6: Đưa ra chữ ký là ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( , ) . I + 2M + MP + H GOST R34. 10- 2012 Bước 1: Chọn � ∈� [1, … , − 1 ]. Bước 2: Tính (x,y) = k.P.
Bước 3: Tính r = x mod q. Nếu � = 0
quay về Bước 1.
Bước 4: Tính h = H(m). N u (ế h mod q = 0), h = 1.
Bước 5: Tính s = (k.h + a.r) mod q.
Nếu � = 0, quay lại Bước 1.
Bước 6: Đưa ra chữ ký là ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( , ).
2M + MP + H
ECGDSA Bước 1: Chọn � ∈� [1, … , − 1 ].
Bước 2: Tính (x,y) = k.P.
Bước 3: Tính r = x mod q. Nếu � = 0
quay về Bước 1.
Bước 4: Tính h = H(m).
Bước 5: Tính s = a.(k.r – h) mod q.
Nếu � = 0, quay lại Bước 1.
Bước 6: Đưa ra chữ ký là ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( , ).
2M + MP + H
EC-Schnorr Bước 1: Chọn � ∈� [1, … , − 1 ].
Bước 2: Tính (x,y) = k.P.
Bước 3: Tính r = H(m||x) mod q. Nếu � = 0 quay về Bước 1.
Bước 4: Tính s = (k – a.r) mod q. Nếu � = 0, quay lại Bước 1.
Bước 5: Đưa ra chữ ký là ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( , ).
Lược đồ Thu t toán ki m tra ch ký.ậ ể ữ Đ u vào: ầ m, �, (r,s). Đ u ra: ầ “Ch ký h p l ” ho c “Ch ký không h p ữ ợ ệ ặ ữ ợ l ”.ệ Chi phí tính toán
ECDSA Bước 1: Xác minh , � có thuộc [1, − 1 ]?
Bước 2: Tính h = H(m).
Bước 3: Tính = ℎ. �−1 mod q; =. � −1 mod q. Bước 4: Tính (x,y) = u.P + v.Q. Bước 5: Tính r* = x mod q. Bước 6: N u (ế r*=r) thì đ a ra “Ch ký h p l ”.ư ữ ợ ệ Ngượ ạc l i “Ch ký không h p l ”.ữ ợ ệ I + 2M + 2MP + H GOST R34. 10- 2012
Bước 1: Xác minh , � có thuộc [1, − 1 ]?
Bước 2: Tính h = H(m).
Bước 3: Tính = �. ℎ −1 mod q; = �. ℎ −1 mod q.
Bước 4: Tính (x,y) = u.P + v.Q. Bước 5: Tính r* = x mod q. Bước 6: N u (ế r*=r) thì đ a ra “Ch ký h p l ”. ư ữ ợ ệ Ngượ ạc l i “Ch ký h p không l ”.ữ ợ ệ I + 2M + 2MP + H
ECGDSA Bước 1: Xác minh , � có thuộc [1, − 1 ]?
Bước 2: Tính h = H(m).
Bước 3: Tính = ℎ. � −1 mod q; = . � −1 mod q.
Bước 4: Tính (x,y) = u.P + v.Q. Bước 5: Tính r* = x mod q. Bước 6: N u (ế r*=r) thì đ a ra “Ch ký h p l ”. ư ữ ợ ệ Ngượ ạc l i “Ch ký không h p l ”.ữ ợ ệ I + 2M + 2MP + H
EC-Schnorr Bước 1: Xác minh , � có thuộc [1, − 1 ]?
Bước 2: Tính (x,y) = s.P + r.Q.
Bước 3: Tính r* = H(m||x) mod q.
Bước 4: N u (ế r*=r) thì đ a ra “Ch ký h p l ”. ư ữ ợ ệ
Ngượ ạc l i “Ch ký không h p l ”.ữ ợ ệ
2MP + H
Kết quả từ hai bảng trên cho thấy lược đồ chữ ký số EC-Schnorr thể hiện ưu thế rõ rệt về tính hiệu quả (sinh chữ ký và xác minh chữ ký nhanh) so với các lược đồ chữ ký khác như ECDSA, GOST R 34.10-2012, ECGDSA.