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ở)