Phân tích về độ an toàn của lược đồ chữ ký số Schnorr

Một phần của tài liệu Nghiên cứu một số giải pháp đảm bảo an toàn và hiệu quả cho lược đồ chữ ký số kiểu ECSchnorr. (Trang 29)

Độ an toàn chứng minh được của lược đồ chữ ký số Schnorr đã được phân tích trong một số tài liệu [14], [24]. Những phân tích dựa trên ý tưởng chính là xem xét độ an toàn của lược đồ chữ ký số trong mô hình lý tưởng. Ở đó, một hoặc một số thành phần nào đó của lược đồ chữ ký số được lý tưởng hóa. Cụ thể:

(1) [14] đã chứng minh độ an toàn cho lược đồ chữ ký số Schnorr trong mô hình bộ tiên tri ngẫu nhiên - với hàm băm được lý tưởng hóa như một hàm ngẫu nhiên;

(2) [24] đã chứng minh độ an toàn cho lược đồ chữ ký số Schnorr trong mô hình nhóm tổng quát - với các phép toán nhóm được lý tưởng hóa.

Cũng cần lưu ý rằng, trong các công trình được nhắc tới ở trên, dù lược đồ Schnorr được phân tích an toàn trong mô hình bộ tiên tri ngẫu nhiên hay mô hình nhóm tổng quát, thì điều kiện về hàm băm cũng cần được xem xét cẩn thận. Đối với mô hình bộ tiên tri ngẫu nhiên, hiển nhiên hàm băm được yêu cầu như một hàm ngẫu nhiên (nghĩa là, cho một đầu vào chọn trước được tính lần đầu tiên với “hàm băm được lý tưởng hóa”, kết quả đưa ra sẽ là một đầu ra ngẫu nhiên; tuy nhiên nếu đầu vào này được tính lại, thì kết quả được trả ra trùng với lần tính đầu tiên với đầu vào này). Trong khi đó, [24] chỉ ra rằng nếu hàm băm được sử dụng có tính chất kháng tiền ảnh với phần phụ ngẫu nhiên và kháng tiền ảnh thứ hai với phần phụ ngẫu nhiên thì lược đồ chữ ký số Schnorr sẽ an toàn trong mô hình nhóm tổng quát.

Trong [14] Pointcheval đã chỉ ra độ an toàn của lược đồ Schnorr, nếu bài toán logarit rời rạc là khó và hàm băm được mô hình hóa như bộ tiên tri ngẫu nhiên, thì lược đồ Schnorr là an toàn trước tấn công lựa chọn thông điệp thích nghi. Đối với EC-Schnorr thì chưa có chứng minh tương tự như trên. 1.2.5. Yêu cầu đối với hàm băm trong lược đồ chữ ký số EC-Schnorr

Trong phần này, một số tính chất của hàm băm mà liên quan đến độ an toàn của lược đồ chữ ký số EC-Schnorr sẽ được xem xét. Lưu ý rằng, một bài toán được xem là khó nếu xác suất để giải được bài toán đó trong thời gian đa thức là không đáng kể.

Định nghĩa 1.4 [14]. Một hàm băm được gọi là kháng va chạm nếu việc

tìm ra hai thông điệp �1 ≠ 2 sao cho �(�1) = �(�2) là khó.

Định nghĩa 1.5 [24]. Một hàm băm được gọi là kháng tiền ảnh với tiền tố

ngẫu nhiên trên miền (rpp[�]) nếu với là một giá trị được chọn ngẫu nhiên trước bởi kẻ tấn công và là chuỗi bit ngẫu nhiên trong miền được chọn trước bởi người thách thức thì việc kẻ tấn công tìm ra thông điệp

thỏa mãn �(||�|| ) = ℎ là khó.

Định nghĩa 1.6 [24]. Một hàm băm được gọi là kháng tiền ảnh thứ hai với

tiền tố ngẫu nhiên trên miền (rpsp[[[[[[[[[[[[[[[]) nếu với là một thông điệp được chọn trước bởi kẻ tấn công và là chuỗi bit ngẫu nhiên trong miền được chọn trước bởi người thách thức thì việc kẻ tấn công tìm ra thông điệp �′ ≠ � thỏa mãn �(||�|| ) = (�′|| ) là khó.

Theo [24], nếu hàm băm � đạt được tính kháng va chạm thì nó cũng đạt được tính chất kháng tiền ảnh với tiền tố ngẫu nhiên và kháng tiền ảnh thứ hai với tiền tố ngẫu nhiên. Lưu ý rằng kết quả trong [24] đúng cho “tiền tố” (prefix) thì cũng đúng cho “hậu tố” (postfix).

Đối với một số lược đồ chữ ký số như DSA, ECDSA, ECGDSA,… để đạt được tính chất an toàn như trong Định nghĩa 1.2, điều kiện đối với hàm

băm � được sử dụng là đạt được tính kháng va chạm. Bởi trong các lược đồ này, các thông điệp được băm trực tiếp bởi hàm băm �, và sau đó giá trị băm thu được cùng với các khóa bí mật dài hạn (khóa ký) và ngắn hạn được sử dụng để tính ra chữ ký. Do đó, nếu tồn tại hai thông điệp �1 ≠ �2 sao cho �(�1) = �(�2) thì bất cứ chữ ký (((((((((((((((, �) nào là hợp lệ với �1, cũng là hợp lệ với �2. Do đó, kẻ tấn công dễ dàng tìm ra một giả mạo tồn tại trên các lược đồ chữ ký số này bằng cách yêu cầu người ký ký lên thông điệp �1 để thu được chữ ký (, � ) và đưa ra cặp chữ ký - thông điệp hợp lệ là (, � ) và �2.

Tuy nhiên, ngay cả khi kẻ tấn công có khả năng tìm ra va chạm của hàm băm, thì anh ta vẫn gặp khó khăn trong việc tìm ra một chữ ký giả mạo trên một thông điệp mới nào đó trong lược đồ chữ ký số EC-Schnorr (nghĩa là, không thể thực hiện việc giả mạo giống như với các lược đồ chữ ký số DSA, ECDSA, ECGDSA,…). Thật vậy, do thông điệp được băm trong lược đồ chữ ký số EC-Schnorr được đưa ra bởi phép nối thông điệp ký với một thành phần được sinh ra trong mỗi lần ký, nên để thực hiện việc giả mạo dựa trên cặp thông điệp “va chạm” tìm được đối với hàm băm � thì ít nhất cặp va chạm này cần có các bit cuối giống nhau. Do đó, kẻ tấn công không thể lợi dụng một cặp va chạm bất kỳ của hàm băm � để thực hiện việc giả mạo.

Dựa theo hai kết quả trong [24] cho lược đồ chữ ký số Schnorr tổng quát, ta nhận thấy rằng nếu hàm băm � được sử dụng không thỏa mãn tính chất rpp[[[[[[[[[[[[[[[] hoặc rpsp[�], với = {�{{ �|| | | | | | | | | | | | | | ∈ (��) và có cấp �}, thì kẻ tấn công có thể dễ dàng tìm ra được giả mạo của lược đồ chữ ký số Schnorr theo kịch bản tấn công lựa chọn thông điệp thích nghi. Dưới đây, ta sẽ phát biểu lại hai kết quả này để phù hợp cho lược đồ chữ ký số EC-Schnorr.

Mệnh đề 1.7 [24]. Nếu hàm băm được sử dụng không thỏa mãn tính chất

rpp[[[[[[[[[[[[[[[], với = {�{{ �| || | | | | | | | | | | | | ∈ (��) và có cấp �} thì lược đồ chữ ký số EC- Schnorr sẽ không an toàn theo Định nghĩa 1.2.

Chứng minh: Gọi � là một kẻ tấn công tính chất rpp[[[[[[[[[[[[[[[] của hàm băm �, chúng ta xác định một thuật toán cho ℬ với đầu vào là khóa công khai �� = � của người ký và điểm � ∈ �(��) có cấp q, ta đi tìm giả mạo của lược đồ chữ ký số EC-Schnorr như sau:

1. ℬ chạy �, và đợi � trả về giá trị �.

2. Sau khi nhận được giá trị r, ℬ chọn ngẫu nhiên � ∈ ℤ� và tính � = + ��

, sau đó gửi cho � giá trị thách thức � = ��.

3. Sau khi nhận được thông điệp � thỏa mãn �(||�|| ) = mà � trả về, ℬ đưa ra cặp thông điệp � và chữ ký trên thông điệp đó là (((((((((((((((, �).

Hiển nhiên (, � ) là chữ ký hợp lệ trên thông điệp � do = �� +

và � =

�(||�|| �) thỏa mãn phương trình xác minh của lược đồ chữ ký số EC- Schnorr. Và do, ℬ chỉ sử dụng dữ liệu công khai để thực hiện việc giả mạo, nên ℬ được xem là thành công trong việc tìm ra giả mạo trên lược đồ chữ ký số EC- Schnorr. Nói cách khác, lược đồ chữ ký số EC-Schnorr là không an toàn theo Định nghĩa 1.2 nếu hàm băm không thỏa mãn rpp[[[[[[[[[[[[[[[].■

Mệnh đề 1.8 [24]. Nếu hàm băm được sử dụng không thỏa mãn tính chất

rpsp[[[[[[[[[[[[[[[], với = {�{{ �| || | | | | | | | | | | | | ∈ (��) và có cấp �} lược đồ chữ ký số EC-Schnorr sẽ không an toàn theo Định nghĩa 1.2.

Chứng minh: Gọi � là một kẻ tấn công tính chất rpsp[[[[[[[[[[[[[[[] của hàm băm �, chúng ta xác định một thuật toán cho ℬ tìm giả mạo của lược đồ chữ ký số EC- Schnorr theo kịch bản lựa chọn thông điệp thích nghi (nghĩa là ngoài dữ liệu công khai là khóa công khai = � của người ký và điểm � ∈ �(��) có cấp q, ℬ còn được phép yêu cầu chữ ký của người ký trên một thông điệp bất kỳ) như sau:

1. ℬ chạy �, và đợi � đưa ra thông điệp �.

2. Sau khi nhận được �, ℬ yêu cầu chữ ký (, � ) của người ký trên thông điệp �, tính = + �� , sau đó gửi cho � giá trị thách thức � = ��.

3. Sau khi nhận được thông điệp � ≠ � sao cho �(||�|| �) =

�(�||||||||||||||||�) mà � đưa ra, thì ℬ đưa ra cặp thông điệp � và chữ ký trên thông điệp đó là ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( , ).

Do, �(||�|| �) = �(�||||||||||||||||�) và (, � ) là chữ ký hợp lệ trên �, nên (�, �) cũng là chữ ký hợp lệ trên �. Mặt khác, do ℬ chưa bao giờ yêu cầu chữ ký trên thông điệp �′, nên ℬ được xem là thành công trong việc tìm ra giả mạo trên lược đồ chữ ký số EC-Schnorr. Nói cách khác, lược đồ chữ ký số EC-Schnorr là không an toàn theo Định nghĩa 1.2 nếu hàm băm không thỏa mãn tính chất rpsp[[[[[[[[[[[[[[[].■

Hai kết quả trên cho thấy, để đảm bảo độ an toàn cho lược đồ chữ ký EC-Schnorr, điều kiện cần đối với hàm băm � được sử dụng là có tính chất rpp[[[[[[[[[[[[[[[] hoặc rpsp[�], với = {�{{ �|| | | | | | | | | | | | | | ∈ (� �) và có cấp �}. Theo [24], một hàm băm có tính chất kháng va chạm sẽ đảm bảo điều kiện cần như vậy.

Lưu ý: Theo khuyến nghị của NIST trong SP 800-57 [53] thì độ dài bit đầu ra của hàm băm được sử dụng trong các lược đồ chữ ký số phải bằng hoặc lớn hơn độ an toàn tính theo độ dài bit của � (cấp của điểm cơ sở).

1.2.6. Về tính hiệu quả của lược đồ chữ ký số EC-Schnorr

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.

1.3. Các vấn đề cần nghiên cứu

Cho đến nay, lược đồ chữ ký số kiểu Schnorr đã được chứng minh an toàn một cách khá toàn diện, từ mô hình bộ tiên tri ngẫu nhiên đến mô hình nhóm tổng quát. Điều này được xem là điểm vượt trội so với các lược đồ chữ ký số ECDSA hay GOST R 34.10-2012. Lược đồ ECDSA mới chỉ được chứng minh an toàn trong mô hình nhóm tổng quát. Trong khi đó, lược đồ chữ ký số GOST R 34.10-2012 vẫn chưa có chứng minh an toàn nào được công bố công khai trong hai mô hình kể trên.

Như chúng ta đã biết, mặc dù đã và đang được triển khai rộng rãi trong các ứng dụng thực tế nhưng các lược đồ chữ ký số dựa trên đường cong elliptic đang tồn tại một điểm yếu chung đó là: nếu khóa bí mật tức thời được sinh lặp lại1 trong quá trình tạo chữ ký số cho hai thông điệp khác nhau thì khóa bí mật dài hạn của người ký sẽ bị lộ. Đây là một chủ đề rất được quan tâm nghiên cứu. Công trình nghiên cứu của các tác giả của Hung-Zih Liao, Yuan-Yuan Shen [26] đã đưa ra một phương pháp sinh chữ ký số bảo vệ khóa bí mật dài hạn của người ký ngay cả trong trường hợp khóa bí mật tức thời bị lặp lại cho

Một phần của tài liệu Nghiên cứu một số giải pháp đảm bảo an toàn và hiệu quả cho lược đồ chữ ký số kiểu ECSchnorr. (Trang 29)

Tải bản đầy đủ (DOC)

(131 trang)
w