Tác động của việc dùng lại khóa bí mật tức thời hoặc lộ khóa bí mật tức

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 41 - 43)

tức thời.

Công thức tính chữ ký (𝑟, 𝑠) trong toàn bộ các lược đồ chữ ký số dựa trên đường cong elliptic đã được ban hành thành chuẩn như DSA, GOST R 34.10-94, GDSA, Schnorr và ECDSA, GOST R 34.10-2012, ECGDSA, EC- Schnorr đều được xác định theo công thức sau:

𝑟 = 𝑅(𝑚, 𝑘, 𝑎)

𝑠 = 𝑆(𝑚, 𝑘, 𝑟, 𝑎)

Với 𝑅, 𝑆 là các quan hệ được xác định rõ trong các thuật toán chữ ký số. Từ công thức tính 𝑠 của cả 4 lược đồ ECDSA, GOST R34.10-2012, ECGDSA, EC-Schnorr ta có kết quả sau:

Kết quả 2.1. Các lược đồ ECDSA, GOST R34.10-2012, ECGDSA, EC- Schnorr đều bị phá vỡ hoàn toàn nếu biết được 𝑘 (hay lộ khóa bí mật tức thời).

Hơn nữa kết quả tiếp theo cho thấy cả 4 lược đồ trên đều bị phá vỡ hoàn toàn nếu dùng lặp lại khóa bí mật tức thời.

Kết quả 2.2. Các lược đồ ECDSA, GOST R34.10-2012, ECGDSA, EC- Schnorr đều bị phá vỡ hoàn toàn nếu dùng lặp lại khóa bí mật tức thời (hay trùng khóa bí mật tức thời).

Chứng minh. Giả sử (𝑟, 𝑠) và (𝑟’, 𝑠’) là hai chữ ký lên hai thông điệp khác nhau 𝑚 và 𝑚’ (𝑚 ≠ 𝑚’) với cùng một khóa bí mật tức thời 𝑘 nào đó của một trong 4 lược đồ kể trên.

Xét ba lược đồ ECDSA, GOST R34.10-2012, ECGDSA. Theo như các Bước 3 tương ứng đưa ra trong Bảng 1.1 trong Chương 1, ta có 𝑟 = 𝑥 𝑚𝑜𝑑 𝑞 với (𝑥, 𝑦) = 𝑘. 𝑃. Do trùng khóa 𝑘 nên ta có 𝑟 = 𝑟’.

Theo như các Bước 3 tương ứng đưa ra trong Bảng 1.1, ta có:

- Với lược đồ ECDSA, do 𝑠 = 𝑘−1(𝐻(𝑚) + 𝑎𝑟) 𝑚𝑜𝑑 𝑞 nên ta thu được hệ phương trình sau:

{𝑠 = 𝑘

−1(𝐻(𝑚) + 𝑎. 𝑟) 𝑚𝑜𝑑 𝑞 𝑠′ = 𝑘−1(𝐻(𝑚′) + 𝑎. 𝑟) 𝑚𝑜𝑑 𝑞

Vì 𝐻(𝑚) ≠ 𝐻(𝑚’) (điều này hầu như luôn xảy ra do 𝑚 ≠ 𝑚’ và 𝐻 là hàm băm kháng va chạm) nên ta có 𝑠 ≠ 𝑠’ (𝑚𝑜𝑑 𝑞), vì vậy tìm được khóa bí mật dài hạn của lược đồ ECDSA:

𝑎 = (𝑠. (𝐻(𝑚) – 𝐻(𝑚’))(𝑠 − 𝑠′)−1 − 𝐻(𝑚)). 𝑟−1 𝑚𝑜𝑑 𝑞. - Với GOST R34.10-2012, do 𝑠 = (𝑘𝐻(𝑚) + 𝑎𝑟) 𝑚𝑜𝑑 𝑞 nên ta thu được hệ phương trình sau:

{ 𝑠 = (𝑘𝐻(𝑚) + 𝑎𝑟) 𝑚𝑜𝑑 𝑞

𝑠′ = (𝑘𝐻(𝑚′) + 𝑎𝑟) 𝑚𝑜𝑑 𝑞

Lập luận tương tự như trên, ta tính được:

𝑎 = (𝑠 − (𝐻(𝑚) − 𝐻(𝑚′))−1(𝑠 − 𝑠′) 𝐻(𝑚)) 𝑟−1 𝑚𝑜𝑑 𝑞.

- Với ECGDSA, do 𝑠 = 𝑎(𝑘𝑟 – 𝐻(𝑚)) 𝑚𝑜𝑑 𝑞 nên thu được hệ sau: {𝑠 = 𝑎(𝑘𝑟 – 𝐻(𝑚)) 𝑚𝑜𝑑 𝑞 𝑠′ = 𝑎(𝑘𝑟 – 𝐻(𝑚′)) 𝑚𝑜𝑑 𝑞 Do 𝑎 ≠ 0, nên ta có: 𝑠(𝑘𝑟 − 𝐻(𝑚)) = 𝑠′(𝑘𝑟 − 𝐻(𝑚′)) 𝑚𝑜𝑑 𝑞 ⇔ 𝑘 = (𝑠𝑟 − 𝑠′𝑟)−1(𝑠𝐻(𝑚) − 𝑠′𝐻(𝑚′)) 𝑚𝑜𝑑 𝑞 Từ đó dễ dàng tính được khóa bí mật 𝑎.

- Tương tự với EC-Schnorr, ta có:

𝑠 = (𝑘 – 𝑎 𝐻(𝑚||𝑥)) 𝑚𝑜𝑑 𝑞. (với 𝑥 là hoành độ của 𝑘𝑃) Từ đó ta thu được hệ phương trình sau:

{𝑠 = (𝑘 − 𝑎. 𝐻(𝑚||𝑥)) 𝑚𝑜𝑑 𝑞 𝑠′ = (𝑘 − 𝑎. 𝐻(𝑚′||𝑥)) 𝑚𝑜𝑑 𝑞

Từ đây tính được: 𝑎 = (𝑠 − 𝑠′). (𝐻(𝑚) – 𝐻(𝑚’))−1 𝑚𝑜𝑑 𝑞. Tóm lại cả 4 lược đồ kể trên đều bị phá vỡ hoàn toàn.■

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 41 - 43)

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

(123 trang)