Lược đồ chữ ký số đóng vai trò quan trọng trong bảo mật và an toàn
thông tin phục vụ phát triển Chính phủ điện tử. Việc ứng dụng các lược đồ
chữ ký số dựa trên đường cong elliptic một cách an toàn và hiệu quả là một
lựa chọn phù hợp cho thế hệ Internet kết nối vạn vật, cho cuộc cách mạng
công nghiệp lần thứ 4. Với mục tiêu như vậy, luận án đã có những đóng góp
cụ thể như sau:
A. Các kết quả đạt được của luận án:
- Phân tích độ an toàn và đánh giá một số yêu cầu về hàm băm được sử
dụng để đảm bảo độ an toàn cho lược đồ chữ ký số EC-Schnorr.
- Phân tích tính hiệu quả và khả năng ứng dụng của lược đồ chữ ký số
EC-Schnorr.
- Phân tích tấn công với việc sử dụng lặp lại khóa bí mật tức thời và
đánh giá các giải pháp đã có để chống tấn công này (Kết quả 2.1, Kết quả
2.2, Kết quả 2.3, Mệnh đề 2.1).
- Đề xuất lược đồ chữ ký số EC-Schnorr-M dựa trên lược đồ ECSchnorr gốc (bổ sung thêm một phép tính hàm băm giữa khóa bí mật tức thời
và thông điệp) cùng các phân tích, đánh giá và chứng minh an toàn trong mô
hình bộ tiên tri ngẫu nhiên (Thuật toán 2.5, Mệnh đề 2.2, Hệ quả 2.4, Bổ đề
2.9, Bổ đề 2.10, Mệnh đề 2.11, Hệ quả 2.12).
- Phân tích, đánh giá, tổng quát hóa tấn công khôi phục khóa ký dài hạn
trong lược đồ chữ ký số kiểu EC-Schnorr và đề xuất tiêu chuẩn đối với thuật
toán sinh khóa của lược đồ chữ ký số kiểu EC-Schnorr, trong đó có ECSchnorr-M (Khẳng định 3.6, Thuật toán 3.1, Khẳng định 3.11, Tiêu chuẩn
3.1, Tiêu chuẩn 3.2).
- Phân tích các tấn công và đề xuất tiêu chuẩn cho khóa bí mật tức thời,
khóa bí mật dài hạn của lược đồ chữ ký số EC-Schnorr-M (Mệnh đề 3.15,
Thuật toán 3.2, Mệnh đề 3.17, Thuật toán 3.4, Tiêu chuẩn 3.3).
- Phân tích làm rõ ý nghĩa khoa học và thực tiễn của việc nghiên cứu,
đề xuất lược đồ chữ ký số EC-Schnorr-M và các tiêu chuẩn an toàn cho khóa
bí mật dài hạn và tức thời.
123 trang |
Chia sẻ: huydang97 | Ngày: 27/12/2022 | Lượt xem: 815 | Lượt tải: 4
Bạn đang xem trước 20 trang tài liệu Luận án 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 EC-Schnorr, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
thì 𝑓(�̅�, �̅�) = 𝑓(𝑘, 𝑎).
Nếu 𝑎, 𝑘 >
𝑞
2
, khi đó ta có:
𝑓(�̅�, �̅�) = 𝑎 − 𝑞 + 𝐴(𝑘 − 𝑞) + 𝐵 = 𝑎 + 𝐴𝑘 + 𝐵 − 𝑞 − 𝐴𝑞
= 𝑎 + 𝐴𝑘 + 𝐵 = 0 𝑚𝑜𝑑 𝑞.
Tương tự, cho các trường hợp (𝑎 >
𝑞
2
, 𝑘 ≤
𝑞
2
) hoặc (𝑎 ≤
𝑞
2
, 𝑘 >
𝑞
2
).
Xét các đa thức 𝑓1(𝑥, 𝑦) = 𝑞, 𝑓2(𝑥, 𝑦) = 𝑞𝑥 và 𝑓3(𝑥, 𝑦) = 𝑓(𝑥, 𝑦). Dễ thấy
rằng: 𝑓𝑖(�̅�, �̅�) = 0 mod 𝑞 (với 𝑖 = 1,2,3).
Ta xây dựng lưới 𝐿 được căng bởi các véctơ hàng của ma trận 𝐼 được
định nghĩa như sau (các hàng của ma trận 𝐼 lần lượt là hệ số của đa thức
𝑓1(𝑥𝑋, 𝑦𝑌) = 𝑞, 𝑓2(𝑥𝑋, 𝑦𝑌) = 𝑞𝑋𝑥 và 𝑓3(𝑥𝑋, 𝑦𝑌) = 𝑌𝑦 + 𝐴𝑋𝑥 + 𝐵.
𝐼 = (
𝑞 0 0
0 𝑞𝑋 0
𝐵 𝐴𝑋 𝑌
)
Do các hàng của 𝐼 là ℝ-độc lập tuyến tính nên lưới 𝐿 có số chiều là 𝑛 =
3. Áp dụng thuật toán rút gọn lưới LLL ta thu được một cơ sở mới 𝑏1 =
(𝐶0, 𝐶1, 𝐶2), 𝑏2 = (𝐶3, 𝐶4, 𝐶5) và 𝑏3 = (𝐶6, 𝐶7, 𝐶8).
(
𝑞 0 0
0 𝑞𝑋 0
𝐵 𝐴𝑋 𝑌
)
𝐿𝐿𝐿
→ (
𝐶0 𝐶1 𝐶2
𝐶3 𝐶4 𝐶5
𝐶6 𝐶7 𝐶8
)
87
Theo định nghĩa, ta có định thức của lưới:
det(𝐿) = |det(𝐼)| = 𝑞2𝑋𝑌.
Đặt 𝛾0 = 𝐶0, 𝛾1 =
𝐶1
𝑋
, 𝛾2 =
𝐶2
𝑌
, 𝛾3 = 𝐶3, 𝛾4 =
𝐶4
𝑋
và 𝛾5 =
𝐶5
𝑌
.
Khi đó, ta có:
𝑏1 = (𝛾0, 𝛾1𝑋, 𝛾2𝑌), 𝑏2 = (𝛾3, 𝛾4𝑋, 𝛾5𝑌).
Tiếp theo ta đặt 𝑔1(𝑥, 𝑦) = 𝛾0 + 𝛾1𝑥 + 𝛾2𝑦 và 𝑔2(𝑥, 𝑦) = 𝛾3 + 𝛾4𝑥 +
𝛾5𝑦. Do 𝑔1(𝑥𝑋, 𝑦𝑌) và 𝑔2(𝑥𝑋, 𝑦𝑌) là các tổ hợp tuyến tính nguyên của
𝑓𝑖(𝑥𝑋, 𝑦𝑌) (với 𝑖 = 1,2,3) nên các đa thức 𝑔1(𝑥, 𝑦) và 𝑔2(𝑥, 𝑦) nhận (�̅�, �̅�) là
nghiệm theo modulo 𝑞. Do đó, các đa thức 𝑔1(𝑥, 𝑦), 𝑔2(𝑥, 𝑦) thỏa mãn điều
kiện thứ nhất của Bổ đề 3.13, tức là:
𝑔1(�̅�, �̅�) = 0 mod 𝑞 và 𝑔2(�̅�, �̅�) = 0 mod 𝑞 (3.7)
Hơn nữa, ta có 𝑏1 = ‖𝑔1(𝑥𝑋, 𝑦𝑌)‖. Do đó, theo Mệnh đề 3.4, ta có:
‖𝑏1‖ < 2
3−1
4 (det(𝐿))
1
3 = √2(𝑞2𝑋𝑌)
1
3.
Mặt khác, theo giả thiết, ta có 𝑋𝑌 <
𝑞
6√6
. Suy ra
‖𝑔1(𝑥𝑋, 𝑦𝑌)‖ <
𝑞
√3
(3.8)
Theo Bổ đề 3.13 và từ (3.7), (3.8), ta suy ra 𝑔1(�̅�, �̅�) = 0 trên vành số
nguyên. Tương tự, ta có ‖𝑏2‖ = ‖𝑔2(𝑥𝑋, 𝑦𝑌)‖. Cũng theo Mệnh đề 3.4, ta có:
‖𝑏2‖ ≤ 2
1
4 (
det(𝐿)
‖𝑏1‖
)
1
2
.
Theo giả thiết, ta có ‖𝑏1‖ > 3√2𝑋𝑌. Suy ra:
‖𝑏2‖ ≤ 2
1
4 (
det(𝐿)
‖𝑏1‖
)
1
2
< 2
1
4 (
𝑞2𝑋𝑌
3√2𝑋𝑌
)
1
2
=
𝑞
√3
.
Khi đó, ta suy ra 𝑔2(�̅�, �̅�) = 0 trên vành số nguyên. Tiếp theo, ta giải
hệ 2 phương trình 2 ẩn 𝑔1(𝑥, 𝑦) = 0 và 𝑔2(𝑥, 𝑦) = 0. Khi đó, nếu tồn tại 𝑦
sao cho 𝑦𝑃 = 𝑄 thì �̅� = �̅� .Từ �̅� ta có thể tìm được khóa bí mật dài hạn 𝑎.■
Từ Mệnh đề 3.15, ta xây dựng thuật toán tìm khóa bí mật dài hạn của
lược đồ chữ ký số EC-Schnorr như sau:
88
Đầu vào: Các giá trị (𝑟, 𝑠) của lược đồ chữ ký số EC-Schnorr.
Đầu ra: Khóa bí mật dài hạn 𝑎 hoặc tấn công không thực hiện được.
Bước 1: Tính 𝐴 = −𝑟−1mod 𝑞 và 𝐵 = 𝑠𝑟−1mod 𝑞
Bước 2: Xây dựng lưới 𝐿 được sinh từ (𝑞, 0,0), (0, 𝑞𝑋, 0) và
(𝐵, 𝐴𝑋, 𝑌). Sử dụng thuật toán LLL, tìm cơ sở LLL-rút gọn của lưới 𝐿.
(
𝑞 0 0
0 𝑞𝑋 0
𝐵 𝐴𝑋 𝑌
)
𝐿𝐿𝐿
→ (
𝐶0 𝐶1 𝐶2
𝐶3 𝐶4 𝐶5
𝐶6 𝐶7 𝐶8
)
Bước 3.Tính 𝛾0 = 𝐶0, 𝛾1 =
𝐶1
𝑋
, 𝛾2 =
𝐶2
𝑌
, 𝛾3 = 𝐶3, 𝛾4 =
𝐶4
𝑋
và 𝛾5 =
𝐶5
𝑌
.
Bước 4. Xây dựng đa thức 𝑔1(𝑥, 𝑦), 𝑔2(𝑥, 𝑦) tương ứng là véctơ đầu
tiên và véctơ thứ hai của cơ sở LLL-rút gọn. Cụ thể, 𝑔1(𝑥, 𝑦) = 𝛾0 + 𝛾1𝑥 +
𝛾2𝑦 và 𝑔2(𝑥, 𝑦) = 𝛾3 + 𝛾4𝑥 + 𝛾5𝑦.
Bước 5. Giải hệ phương trình
{
𝑔1(𝑥, 𝑦) = 0
𝑔2(𝑥, 𝑦) = 0
Bước 6. Nếu tồn tại 𝑦 sao cho 𝑦𝑃 = 𝑄 thì trả về đầu ra là �̅� = 𝑦, còn
không thì trả về “Tấn công không thực hiện được”.
Nhận xét 3.16. Đặt 𝑋 = 2𝛼 , 𝑌 = 2𝛽, khi đó điều kiện 𝑋𝑌 < 𝑞/6√6 tương
đương 2𝛼+𝛽 < 𝑞/6√6 hay 𝛼 + 𝛽 < log2(𝑞/6√6). Theo Mệnh đề 3.15, ta có
thể khôi phục được khóa bí mật khi:
|�̅�| < 𝑋 = 2𝛼 , |�̅�| < 𝑌 = 2𝛽 và 𝑋𝑌 < 𝑞/6√6
Do đó, để tránh tấn công thì ta cần chọn:
|�̅�| > 𝑋 = 2𝛼 , |�̅�| > 𝑌 = 2𝛽 và 𝑋𝑌 > 𝑞/6√6.
Khi đó 2𝛼+𝛽 > 𝑞/6√6 hay 𝛼 + 𝛽 > log2(𝑞/6√6). Vì vậy, ta chọn:
𝛼 >
log2(
𝑞
6√6
)
2
và 𝛽 >
log2(
𝑞
6√6
)
2
89
Khi đó, điều kiện |�̅�| > 𝑋 = 2𝛼 tương đương |�̅�| > 2
log2(
𝑞
6√6
)
2 = (
𝑞
6√6
)1/2.
Tương tự, |�̅�| > 𝑌 = 2𝛽 tương đương |�̅�| > 2
log2(
𝑞
6√6
)
2 = (
𝑞
6√6
)1/2.
Do (6√6)
1/2
nhỏ hơn rất nhiều so với 𝑞1/2 ( 𝑞1/2 = 2128 bit nếu 𝑞 =
2256 ) nên để tránh tấn công này, ta có thể chọn |�̅�| > 𝑞1/2 và |�̅�| > 𝑞1/2
tương đương 𝑞1/2 < 𝑎, 𝑘 < 𝑞 − 𝑞1/2.
Thật vậy, với mọi 𝑞 > 4, ta có 𝑞1/2 < 𝑞/2. Khi đó, theo định nghĩa của
�̅�, nếu 𝑎 ≤ 𝑞/2 thì �̅� = 𝑎, do đó điều kiện |�̅�| > 𝑞1/2 suy ra 𝑎 > 𝑞1/2. Ngược
lại, nếu 𝑎 > 𝑞/2 thì �̅� = 𝑎 − 𝑞, do đó điều kiện |�̅�| > 𝑞1/2 suy ra −(𝑎 −
𝑞) > 𝑞1/2 hay 𝑎 𝑞1/2 tương đương
𝑞1/2 𝑞1/2, ta suy ra 𝑞1/2 < 𝑘 < 𝑞 − 𝑞1/2.
Tấn công Poulakis lên lược đồ chữ ký số EC-Schnorr
Tấn công này dựa trên một cách giải của các phương trình Conic có
dạng 𝑟(𝑥, 𝑦) = 𝐷𝑥𝑦 + 𝐴𝑥 + 𝐵, trong đó 𝐷, 𝐴, 𝐵 ∈ ℤ. Vì vậy, ta có thể xây
dựng tấn công chỉ cần một đa thức từ véctơ đầu tiên của cơ sở LLL-rút gọn.
Cụ thể, thuật toán giải phương trình 𝑟(𝑥, 𝑦) là như sau:
Đầu vào: Phương trình 𝑟(𝑥, 𝑦) = 𝐷𝑥𝑦 + 𝐴𝑥 + 𝐵 = 0 trong ℤ và
phân tích ra thừa số nguyên tố của 𝐵.
Đầu ra: Cặp (𝑥, 𝑦) ∈ ℤ2thỏa mãn 𝑟(𝑥, 𝑦) = 0.
Bước 1. Tính tập 𝐷(𝐵) gồm tất cả các ước của số nguyên B.
Bước 2. Với mỗi 𝑥 ∈ 𝐷(𝐵) tính 𝑦 = −(𝐵/𝑥 + 𝐴)/𝐷.
Bước 3. Nếu 𝑦 ∈ ℤ thì trả về cặp (x,y), còn không thì trả về “không
tìm được nghiệm”.
Chứng minh tính đúng đắn: Giả sử (𝑥, 𝑦) ∈ ℤ2 là nghiệm của 𝑟(𝑥, 𝑦) = 0.
Khi đó, 𝑥(𝐷𝑦 + 𝐴) = −𝐵. Suy ra 𝑥|𝐵 hay 𝐵 = 𝑥𝛽, trong đó 𝛽 ∈ ℤ. Đơn giản
hóa phương trình, ta thu được 𝐷𝑦 + 𝐴 + 𝛽 = 0. Do đó,
90
𝑦 = −(𝛽 + 𝐴)/𝐷 = −(𝐵/𝑥 + 𝐴)/𝐷.
Nếu 𝑦 ∈ ℤ thì ta có (𝑥, 𝑦) là nghiệm của 𝑟(𝑥, 𝑦) = 0.
Mệnh đề 3.17. Đối với lược đồ chữ ký số EC-Schnorr, giả sử tồn tại các số
nguyên dương 𝑋, 𝑌 sao cho |𝑘−1̅̅ ̅̅ ̅| < 𝑋, |�̅�| < 𝑌 và 𝑋2𝑌 < 𝑞/(6√6) thì có
thể tìm được khóa bí mật dài hạn 𝑎 của lược đồ chữ ký trong thời gian đa thức.
Chứng minh: Nhân cả hai vế của (3.6) với 𝑘−1 và 𝑟−1, ta có
𝑘−1𝑎 + (𝑠𝑟−1)𝑘−1 − 𝑟−1 = 0 mod 𝑞
Đặt 𝐴 = 𝑠𝑟−1mod 𝑞 và 𝐵 = −𝑟−1mod 𝑞. Khi đó, cặp (𝑘−1̅̅ ̅̅ ̅, �̅�) là
nghiệm của phương trình đồng dư 𝑓(𝑥, 𝑦) = 𝑥𝑦 + 𝐴𝑥 + 𝐵 = 0 mod 𝑞.
Xét các đa thức 𝑓1(𝑥, 𝑦) = 𝑞, 𝑓2(𝑥, 𝑦) = 𝑞𝑥 và 𝑓3(𝑥, 𝑦) = 𝑓(𝑥, 𝑦). Dễ
thấy các đa thức này cũng nhận (𝑘−1̅̅ ̅̅ ̅, �̅�) là nghiệm trên modulo 𝑞. Xây dựng
lưới 𝐿 được căng các véctơ hàng của ma trận 𝐽, ở đó 𝐽 có các hàng lần lượt là
hệ số của các đa thức 𝑓1(𝑥𝑋, 𝑦𝑌) = 𝑞, 𝑓2(𝑥𝑋, 𝑦𝑌) = 𝑞𝑋𝑥 và 𝑓3(𝑥𝑋, 𝑦𝑌) =
𝑋𝑌𝑥𝑦 + 𝐴𝑋𝑥 + 𝐵.
𝐽 = (
𝑞 0 0
0 𝑞𝑋 0
𝐵 𝐴𝑋 𝑋𝑌
)
Do các hàng của 𝐽 là ℝ-độc lập tuyến tính nên lưới có số chiều bằng
𝑛 = 3. Áp dụng thuật toán LLL vào lưới 𝐿 ta thu được một cơ sở mới như sau.
(
𝑞 0 0
0 𝑞𝑋 0
𝐵 𝐴𝑋 𝑋𝑌
)
𝐿𝐿𝐿
→ (
𝐶0 𝐶1 𝐶2
𝐶3 𝐶4 𝐶5
𝐶6 𝐶7 𝐶8
)
Ta có det(𝐿) = |det(𝐼)| = 𝑞2𝑋2𝑌. Đặt 𝛾0 = 𝐶0, 𝛾1 = 𝐶1/𝑋, 𝛾2 =
𝐶2/𝑋𝑌 . Ta có 𝑏1 = (𝛾0, 𝛾1𝑋, 𝛾2𝑋𝑌). Đặt 𝑔1(𝑥, 𝑦) = 𝛾0 + 𝛾1𝑥 + 𝛾2𝑥𝑦. Do
𝑔1(𝑥𝑋, 𝑦𝑌) là các tổ hợp tuyến tính nguyên của 𝑓𝑖(𝑥𝑋, 𝑦𝑌) với 𝑖 = 1,2,3 nên
𝑔1(𝑘−1̅̅ ̅̅ ̅, �̅�) = 0 mod 𝑞. Do vậy đa thức 𝑔1(𝑥, 𝑦) thỏa mãn điều kiện trong Bổ
đề 3.13.
Bây giờ ta cần xác minh điều kiện để các đa thức 𝑔1(𝑥, 𝑦) thỏa mãn
điều kiện của Bổ đề 3.13. Theo Mệnh đề 3.4,
91
‖𝑏1‖ ≤ 2
3−1
4 (det(𝐿))
1
3 = √2(𝑞2𝑋2𝑌)
1
3
Do đó, để 𝑔1(𝑥, 𝑦) thỏa mãn điều kiện của Bổ đề 3.13, ta cần
√2(𝑞2𝑋2𝑌)
1
3 <
𝑞
√3
Nói cách khác, ta cần 𝑋2𝑌 <
𝑞
6√6
. Khi đó, ta có ‖𝑏1‖ =
‖𝑔1(𝑥𝑋, 𝑦𝑌)‖ <
𝑞
√3
. Thật vậy, nếu 𝛾2 = 0 thì 𝛾0 = 𝑞𝑡0, 𝛾1 = 𝑞𝑋𝑡1, với
𝑡0, 𝑡1 ∈ ℤ và 𝑞√2 < ‖𝑏1‖ < 𝑞/√3 (vô lý). Suy ra, 𝛾2 ≠ 0 và ‖𝑏1‖ =
‖𝑔1(𝑥𝑋, 𝑦𝑌)‖ <
𝑞
√3
. Theo Bổ đề 3.13, ta có 𝑔1(𝑘−1̅̅ ̅̅ ̅, �̅�) = 0 trên vành số
nguyên. Áp dụng thuật toán giải phương trình cho 𝑔1(𝑥, 𝑦) ta thu được �̅� và 𝑘−1̅̅ ̅̅ ̅.
Ta có thuật toán tìm khóa bí mật dài hạn của lược đồ EC-Schnorr theo
Mệnh đề 3.17 như sau:
Đầu vào: Các giá trị (𝑟, 𝑠) của EC-Schnorr.
Đầu ra: Khóa 𝑎 hoặc “Tấn công không thực hiện được”.
Bước 1. Tính 𝐴 = 𝑠𝑟−1 mod 𝑞 và 𝐵 = −𝑟−1mod 𝑞.
Bước 2. Xây dựng lưới 𝐿 được sinh từ (𝑞, 0,0), (0, 𝑞𝑋, 0) và
(𝐵, 𝐴𝑋, 𝑋𝑌). Sử dụng thuật toán LLL, tìm cơ sở LLL-rút gọn của lưới 𝐿.
(
𝑞 0 0
0 𝑞𝑋 0
𝐵 𝐴𝑋 𝑋𝑌
)
𝐿𝐿𝐿
→ (
𝐶0 𝐶1 𝐶2
𝐶3 𝐶4 𝐶5
𝐶6 𝐶7 𝐶8
)
Bước 3. Tính: 𝛾0 = 𝐶0, 𝛾1 = 𝐶1/𝑋, 𝛾2 = 𝐶2/𝑋𝑌 .
Bước 4. Xây dựng đa thức 𝑔1(𝑥, 𝑦) từ véctơ đầu tiên của cơ sở LLL-
rút gọn. Cụ thể 𝑔1(𝑥, 𝑦) = 𝛾0 + 𝛾1𝑥 + 𝛾2𝑥𝑦.
Bước 5. Sử dụng Thuật toán 3.3 giải phương trình Conic để tính tập
𝑆 gồm các nghiệm (𝑥, 𝑦) của đa thức 𝑔1(𝑥, 𝑦) = 0.
Bước 6. Nếu tồn tại (𝑥0, 𝑦0) ∈ 𝑆 và 𝑦0𝑃 = 𝑄 thì trả về �̅� = 𝑦0, còn
không trả về “Tấn công không thực hiện được”.
92
Nhận xét 3.18. Đặt 𝑋 = 2𝛼 , 𝑌 = 2𝛽, khi đó điều kiện 𝑋2𝑌 < 𝑞/6√6 tương
đương 22𝛼+𝛽 < 𝑞/6√6 hay 2𝛼 + 𝛽 < log2(𝑞/6√6). Theo Mệnh đề 3.17, ta
có thể khôi phục được khóa bí mật khi:
|𝑘−1̅̅ ̅̅ ̅| < 𝑋, |�̅�| < 𝑌 và 𝑋2𝑌 <
𝑞
6√6
.
Do đó, để tránh tấn công thì ta cần chọn:
|𝑘−1̅̅ ̅̅ ̅| > 𝑋 = 2𝛼 , |�̅�| > 𝑌 = 2𝛽 và 𝑋2𝑌 > 𝑞/6√6.
Khi đó 22𝛼+𝛽 > 𝑞/6√6 hay 2𝛼 + 𝛽 > log2(𝑞/6√6). Vì vậy, ta chọn
𝛼 >
log2(
𝑞
6√6
)
3
và 𝛽 >
log2(
𝑞
6√6
)
3
Khi đó, điều kiện |𝑘−1̅̅ ̅̅ ̅| > 𝑋 = 2𝛼 tương đương |𝑘−1̅̅ ̅̅ ̅| > 2
log2(
𝑞
6√6
)
3 = (
𝑞
6√6
)1/3.
Tương tự, điều kiện, |�̅�| > 𝑌 = 2𝛽 tương đương |�̅�| > 2
log2(
𝑞
6√6
)
3 = (
𝑞
6√6
)1/3.
Do (6√6)
1/3
nhỏ hơn rất nhiều so với 𝑞1/3 (𝑞1/3 ≈ 285 bit nếu 𝑞 =
2256) nên để tránh tấn công này, ta có thể chọn |𝑘−1̅̅ ̅̅ ̅| > 𝑞1/3, |�̅�| > 𝑞1/3,
tương đương, 𝑞1/3 < 𝑎, 𝑘−1 < 𝑞 − 𝑞1/3.
Nhận xét 3.19. Ngoài điều kiện liên quan đến 𝑎 và 𝑘−1, ta cũng có thể áp
dụng tấn công có các điều kiện liên quan đến 𝑎−1 và 𝑘. Cụ thể, ta thực hiện
biến đổi như sau. Nhân cả hai vế của phương trình (3.6) với 𝑎−1, ta có:
𝑎−1𝑘 − 𝑠𝑎−1 − 𝑟 = 0 mod 𝑞
Đặt 𝐴 = −𝑠 mod 𝑞 và 𝐵 = −𝑟 mod 𝑞. Khi đó, cặp (𝑎−1̅̅ ̅̅ ̅, �̅�) là nghiệm
của phương trình đồng dư 𝑓(𝑥, 𝑦) = 𝑥𝑦 + 𝐴𝑥 + 𝐵 = 0 mod 𝑞. Áp dụng tấn
công tương tự như đã được trình bày như trên, ta cũng có thể khôi phục được
khóa bí mật dài hạn 𝑎 và khóa bí mật tức thời 𝑘 nếu |𝑎−1̅̅ ̅̅ ̅| < 𝑋, |�̅�| < 𝑌,
trong đó 𝑋 = 2𝛼 , 𝑌 = 2𝛽 và 2𝛼 + 𝛽 < log2(𝑞/6√6). Vì vậy, để tránh tấn
công trong trường hợp này ta có thể chọn 𝑞1/3 < 𝑎−1, 𝑘 < 𝑞 − 𝑞1/3.
93
Nhận xét 3.20. Trong lược đồ chữ số EC-Schnorr-M, khóa bí mật tức thời
𝑘𝑀 = 𝐻(𝑘||𝑚), trong đó 𝑘 ∈𝑅 [1, 𝑞 − 1]. Do đó, nếu các khóa bí mật dài hạn
a và khóa bí mật tức thời 𝑘𝑀 của lược đồ chữ ký số EC-Schnorr-M thỏa mãn
các điều kiện như trong lược đồ chữ ký số EC-Schnorr thì ta có thể khôi phục
được khóa bí mật dài hạn và tức thời của lược đồ.
Các kết quả thực nghiệm
NCS đã cài đặt các Thuật toán 3.2 và 3.4 để tìm khóa bí mật của lược
đồ chữ ký số EC-Schnorr và EC-Schnorr-M sử dụng phần mềm tính toán đại
số Magma được cài đặt trên máy tính CPU Intel Core i7-6700 3.4 Ghz, 8Gb
RAM, sử dụng bộ tham số NIST P-256 [40] có dạng 𝑦2 = 𝑥3 + 𝐴𝑥 + 𝐵
trường hữu hạn 𝔽𝑝 với các tham số cụ thể như trong Bảng 3.1 ở phần trên.
Trong từng tấn công, các lược đồ EC-Schnorr-M, EC-Schnorr cùng sử dụng
các khóa bí mật dài hạn 𝑎 và tức thời 𝑘 có các kích thước như sau:
Tấn công q (bit) |�̅�|(bit) |𝑘−1̅̅ ̅̅ ̅|(bit) |�̅�|(bit) Thời gian (giây)
Blake 256 126 256 126 0,01
Poulakis 256 80 80 256 1,36
Trong mỗi tấn công lên từng lược đồ chữ ký số, NCS thực nghiệm mô
phỏng tấn công 100 lần. Chi tiết tỉ lệ thành công và thời gian trung bình được
trình bày trong bảng sau:
Lược đồ EC-Schnorr Lược đồ EC-Schnorr-M
Tấn công Tỉ lệ thành
công
Thời gian
trung bình
Tỉ lệ thành
công
Thời gian
trung bình
Blake 72% 0,04 giây 71% 0,05 giây
Poulakis 100% 1,6 giây 100% 1,7 giây
94
3.2.4. Đề xuất tiêu chuẩn cho khóa bí mật của lược đồ kiểu EC-Schnorr
Nhận xét 3.21. Qua kết quả thực nghiệm, ta thấy rằng các tấn công có thể tìm
được các khóa bí mật trong thời gian rất nhanh. Cụ thể, đối với lược đồ chữ
ký số kiểu EC-Schnorr sử dụng cấp nhóm q có kích thước 256 bit, ta có thể
khôi phục các khóa bí mật dưới 2 giây nếu thỏa mãn các điều kiện sau đây:
- Theo tấn công của Blake: 𝑎, 𝑘 ∉ [𝑞1 2⁄ , 𝑞 − 𝑞1 2⁄ ]
- Theo tấn công của Poulakis: 𝑎, 𝑘−1, 𝑎−1, 𝑘 ∉ [𝑞1 3⁄ , 𝑞 − 𝑞1 3⁄ ]
Luận án đã dựa trên các tấn công tìm khóa bí mật trên lược đồ chữ ký
số ECDSA để xây dựng các phiên bản tấn công tương tự lên lược đồ chữ ký
số kiểu EC-Schnorr. Các kết quả lý thuyết và thực nghiệm cho thấy, trong
lược đồ chữ ký số kiểu EC-Schnorr, khi các khóa ký thỏa mãn điều kiện tấn
công thì phương pháp của Blake và Poulakis có thể tìm được các khóa ký
trong thời gian rất nhanh. Do đó, để đảm bảo an toàn khi sử dụng các lược đồ
chữ ký số trong thực tế ta cần phải lựa chọn các khóa ký và nghịch đảo của
chúng một cách cẩn thận và chính xác nhằm tránh các tấn công như vậy.
Tiêu chuẩn 3.3. Các khóa ký tức thời và khóa ký dài hạn trong lược đồ chữ
ký kiểu EC-Schnorr phải thỏa mãn điều kiện sau để tránh các tấn công kiểu
Blake và Poulakis: 𝑞1 2⁄ < 𝑎, 𝑎−1, 𝑘, 𝑘−1 < 𝑞 − 𝑞1 2⁄ .
3.2.5. Đánh giá về bộ nhớ và hiệu năng của EC-Schnorr-M khi áp dụng
Tiêu chuẩn 3.3
Tiêu chuẩn 3.3 yêu cầu phải kiểm tra các tham số khóa bí mật dài hạn
(𝑎, 𝑎−1) và tham số khóa bí mật tức thời 𝑘, 𝑘−1 nằm trong khoảng (𝑞1 2⁄ 𝑞 −
𝑞1 2⁄ ). Đối với việc kiểm tra 𝑎, 𝑎−1 ∈ (𝑞, 𝑞 − 𝑞1/2 ) không ảnh hưởng đến
hiệu năng của lược đồ EC-Schnorr-M vì việc này chỉ phải thực hiện một lần
và có thể đưa vào trong quá trình sinh tham số bí mật dài hạn của hệ mật.
Việc kiểm tra khóa bí mật tức thời 𝑘, 𝑘−1 ∈ (𝑞, 𝑞 − 𝑞1/2 ) sẽ yêu cầu một
phép tính nghịch đảo modulo (giá trị 𝑞 − 𝑞1/2 sẽ được tính toán trước bên
95
ngoài thuật toán chính của EC-Schnorr-M). Bộ nhớ tăng lên một khai báo
biến 𝑘−1 𝑚𝑜𝑑 𝑛 với kích thước theo tiêu chuẩn an toàn tối thiểu cỡ 256-bit và
một b; một biến dùng để lưu trữ giá trị 𝑞 − 𝑞1/2 với kích thước tối thiểu cỡ
256-bit. Như vậy bộ nhớ tăng thêm khoảng 02-byte (kết quả hiệu năng được
đưa ra cụ thể ở mục 3.5).
3.3. Ý nghĩa của việc nghiên cứu và đề xuất tiêu chuẩn tăng cường an
toàn cho khóa bí mật của lược đồ chữ ký số EC-Schnorr-M
3.3.1. Ý nghĩa của tiêu chuẩn về khóa bí mật
Như đã trình bày ở mục 3.2, tất cả các chuẩn đối với hệ mật Elliptic
hoặc lược đồ chữ ký số dựa trên đường cong elliptic đưa ra đều có các điểm
chung về điều kiện cấp của đường cong và cấp của nhóm điểm (cấp của
đường cong phải có ước nguyên tố lớn 𝑛 và độ lớn theo bit của 𝑛 đảm bảo
tính khó giải của bài toán ECDLP. Điểm chung tiếp theo là tiêu chuẩn để
chống lại những tấn công hiệu quả, phổ quát đối với hệ mật Elliptic, bao gồm
tấn công MOV, tấn công kiểu đường cong bất quy tắc và siêu kỳ dị.
Qua khảo sát, chỉ có duy nhất 2 chuẩn trên thế giới (ISO và SEC1v2
của Certicom) có tiêu chuẩn liên quan đến khóa bí mật, đó là yêu cầu về phân
rã 𝑛 = ±1 của cấp nhóm. Bản chất ở đây liên quan đến kiểu tấn công đối với
khóa bí mật dựa trên giả thuyết Diffie-Hellman mạnh, cái mà phụ thuộc vào
phân rã của 𝑛 ± 1. Tiêu chuẩn này được khuyến cáo chỉ áp dụng được với các
lược đồ mật mã mà tạo ra một bộ tiên đoán có thể trả về lũy thừa khóa bí mật
của nó với một đầu vào bất kỳ [10], chẳng hạn như lược đồ chữ ký mù BLS
và lược đồ mã hóa ElGamal nguyên thủy.
Cách tiếp cận của NCS trong luận án này, một phần cũng giống như
của ISO và Certicom, tập trung vào nghiên cứu các tấn công liên quan đến
khóa bí mật của lược đồ để đưa ra tiêu chuẩn nhằm tránh tấn công trực tiếp
khám phá khóa bí mật, một trong những kiểu tấn công mang tính thực tế. Các
96
Tiêu chuẩn 3.1, 3.2 và Tiêu chuẩn 3.3 mà NCS đưa ra mặc dù không xuất
phát từ các công trình do NCS tự nghiên cứu, tuy nhiên NCS thấy rằng đây là
một vấn đề cần được quan tâm, đặc biệt là đối với những người làm về kỹ
thuật mật mã.
Như vậy, với yêu cầu đảm bảo cho khóa bí mật luôn được đặt lên hàng
đầu nên việc nghiên cứu, đề xuất tiêu chuẩn để đảm bảo an toàn hơn cho khóa
bí mật là một việc làm có ý nghĩa khoa học và thực tiễn.
3.3.2. Ý nghĩa của lược đồ EC-Schnorr-M trong việc chống lại tấn công lặp
khóa bí mật
a) Mô tả tấn công Rowhammer
Tấn công Rowhammer là một kỹ thuật tấn công cho phép kẻ tấn công
sửa đổi dữ liệu trong bộ nhớ mà không cần truy cập đến nó. Bản chất của tấn
công Rowhammer là sử dụng mã phần mềm để tạo ra lỗi vào phần cứng theo
cách có thể kiểm soát được. Cụ thể là gây ra việc "lật bit" bằng cách truy cập
nhanh và liên tục vào dữ liệu trong một hàng bộ nhớ trên chip RAM để tạo ra
điện tích làm thay đổi dữ liệu được lưu trữ ở các địa chỉ khác trong "hàng bộ
nhớ". Các hàng bộ nhớ tấn công được gọi là "hàng xâm lược" và hàng nơi xảy
ra lật bit được gọi là "hàng nạn nhân".
Trong công trình “Flipping Bits in Memory Without Accessing Them:
An Experimental Study of DRAM Disturbance Errors” của nhóm tác giả
Yoongu Kim đã chứng minh rằng, bằng cách liên tục truy cập vào hai vị trí bộ
nhớ “hàng xâm lược” trong không gian địa chỉ ảo của một tiến trình, có thể
gây ra sự thay đổi bit ở vị trí “hàng nạn nhân” thứ ba. Điều này có thể thực
hiện được vì các tế bào DRAM ngày càng nhỏ và sát nhau hơn, làm cho việc
ngăn chặn các tế bào DRAM tương tác điện với nhau trở nên khó khăn hơn.
Do đó, việc truy cập vào một vị trí trong bộ nhớ có thể làm xáo trộn các vị trí
97
lân cận, khiến điện tích bị rò rỉ vào hoặc ra khỏi các ô nhớ lân cận, điều này
có thể thay đổi giá trị của ô từ 1 thành 0 hoặc ngược lại. Hiện tượng lật bit
được tạo ra bằng cách sử dụng đoạn mã nhỏ sau đây:
code1a:
mov (X),% eax // Đọc từ địa chỉ X
mov (Y),% ebx // Đọc từ địa chỉ Y
clflush (X) // Xóa bộ nhớ cache cho địa chỉ X
clflush (Y) // Xóa bộ nhớ cache cho địa chỉ Y
jmp code1a
Quy trình gây ra hiện tượng lật bit được giải thích gồm hai công đoạn
sau đây:
- Lựa chọn địa chỉ: Để code1a gây ra hiện tượng lật bit, địa chỉ X và
Y phải ánh xạ tới các hàng DRAM khác nhau trong cùng một khối. Mỗi chip
DRAM chứa nhiều hàng ô. Truy cập một byte trong bộ nhớ bao gồm việc
chuyển dữ liệu từ hàng vào “bộ đệm hàng” của chip (xả các ô của hàng trong
quá trình này), đọc hoặc ghi nội dung của bộ đệm hàng, sau đó sao chép nội
dung của bộ đệm hàng trở lại các ô của hàng ban đầu (sạc lại các tế bào).
Chính quá trình “kích hoạt” một hàng (xả và sạc lại) có thể làm xáo
trộn các hàng liền kề. Nếu điều này được thực hiện đủ số lần, giữa các lần tự
động làm mới các hàng liền kề (thường xảy ra sau mỗi 64ms), điều này có thể
gây ra hiện tượng lật bit trong các hàng liền kề.
Bộ đệm hàng hoạt động như một bộ đệm, vì vậy nếu địa chỉ X và Y trỏ
đến cùng một hàng, thì code1a sẽ chỉ đọc từ bộ đệm hàng mà không kích
hoạt hàng liên tục. Hơn nữa, mỗi khối DRAM có khái niệm riêng về “hàng
hiện đang được kích hoạt”. Vì vậy, nếu địa chỉ X và Y trỏ đến các khối khác
nhau, code1a sẽ chỉ đọc từ bộ đệm hàng của các khối đó mà không kích
hoạt các hàng liên tục. Tuy nhiên, nếu X và Y trỏ đến các hàng khác nhau
trong cùng một giàn, code1a sẽ khiến các hàng của X và Y được kích hoạt
nhiều lần. Đây được gọi là "Rowhammer".
98
- Bỏ qua bộ đệm: Không có lệnh CLFLUSH của code1a , các lần đọc
bộ nhớ (MOV) sẽ được phân phát từ bộ đệm của CPU. Việc xóa bộ nhớ cache
bằng CLFLUSH buộc các truy cập bộ nhớ được gửi đến DRAM bên dưới,
điều này cần thiết để làm cho các hàng được kích hoạt nhiều lần.
Trong nhiều năm kể từ khi cuộc tấn công Rowhammer đầu tiên được
phát hiện, các nhà nghiên cứu đã chứng minh nhiều cách sử dụng kỹ thuật này
để thay đổi dữ liệu được lưu trữ trên thẻ RAM, bao gồm cả thế hệ DDR3 và
DDR4. Mặc dù ban đầu giới hạn trong các tình huống mà kẻ tấn công có
quyền truy cập vật lý vào mục tiêu, các nhà nghiên cứu cuối cùng cho thấy
một cuộc tấn công Rowhammer có thể được thực hiện từ xa thông qua web và
sử dụng kỹ thuật này để giành quyền kiểm soát máy ảo Linux trên đám mây.
Như các nhà nghiên cứu của Google Project Zero đã giải thích vào năm
2015, tấn công Rowhammer ngày càng khả thi và hiệu quả vì các tế bào
DRAM đang dần trở nên nhỏ và sát nhau hơn. Việc thu nhỏ và khả năng đóng
gói nhiều dung lượng bộ nhớ hơn đã làm cho việc ngăn chặn các tế bào
DRAM tương tác điện với nhau trở nên khó khăn hơn.
"Rowhammer là một hiện tượng ghép điện trong silicon của chính nó,
cho phép bỏ qua tiềm năng của các chính sách bảo vệ phần cứng và bộ nhớ
phần mềm. Điều này có thể cho phép thực thi các đoạn mã không tin cậy để
thoát ra khỏi sandbox của nó và nắm quyền kiểm soát toàn bộ hệ thống" phát
biểu từ nhóm nghiên cứu của Google (Yoongu Kim và các cộng sự). Yoongu
Kim hiện là kỹ sư phần mềm tại Google, là một trong những nhà nghiên cứu
đã báo cáo lỗ hổng Rowhammer đầu tiên. Tấn công này còn được mở rộng
thành “Half-Double”, có thể gây ra các cú lộn bit ở khoảng cách của một hàng
DRAM. Half-Double hiển thị các “hàng kẻ xâm lược” có thể gây ra hiện
tượng lộn xộn trên các “hàng nạn nhân” ở xa nhau hơn. Nhóm nghiên cứu lưu
ý rằng "Với Half-Double, chúng tôi đã quan sát thấy hiệu ứng Rowhammer
99
lan truyền đến các hàng bên ngoài các hàng liền kề, mặc dù sức mạnh bị
giảm. Với ba hàng A, B và C liên tiếp, chúng tôi có thể tấn công C bằng cách
hướng một số lượng rất lớn các quyền truy cập đến A, cùng với chỉ một số ít
lượng quyền truy cập đến B. Dựa trên các thử nghiệm của chúng tôi, các
quyền truy cập vào B có một hiệu ứng phi tuyến tính, trong khi đó chúng
dường như vận chuyển hiệu ứng Rowhammer của A lên C".
b) Đối với một số bộ sinh số ngẫu nhiên tồi
Các bộ tạo số ngẫu nhiên có thể chia làm 2 loại chính: các bộ tạo số giả
ngẫu nhiên (pseudo-random number generator -PRNG) và các bộ tạo số ngẫu
nhiên thực sự (true-random number generator - TRNG).
TRNGs là các cơ chế không tất định và có thể chia làm 2 loại dựa trên
nguồn nhiễu mà nó sử dụng: TRNG vật lý và TRNG phi-vật lý. TRNG
vật lý sử dụng các nguồn nhiễu vật lý cho bởi phần cứng chuyên dụng, chẳng
hạn như đi-ốt nhiễu, dao động tự do, phân rã phóng xạ, hiệu ứng photon
lượng tử, Trong khi, TRNG phi-vật lý sử dụng các nguồn nhiễu phi-vật lý
chẳng hạn như dữ liệu hệ thống như các đầu ra của các hàm API, dữ liệu
RAM hoặc thời gian hệ thống, hoặc thao tác bàn phím, di chuyển chuột, chạm
màn hình.
PRNGs là các cơ chế tất định tạo ra một chuỗi các số “có dạng ngẫu
nhiên”. Tuy nhiên, với cùng một đầu vào cho trước thì một PRNG sẽ luôn tạo
ra cùng một đầu ra. Một số PRNG an toàn đã được chuẩn hoá bởi NIST và
ISO là Hash-DRBG, CTR-DRBG, HMAC-DRBG [8].
Ngoài ra còn có một số bộ tạo số giả ngẫu nhiên khác, như bộ tạo đồng
dư tuyến tính; bộ tạo đồng dư bậc 2, bậc 3; bộ tạo luỹ thừa modular; bộ tạo
Blum-Blum-Shub; bộ tạo Micali-Schnorr.
Mặc dù nhiều bộ tạo số giả ngẫu nhiên đã được chứng minh an toàn về
mặt lý thuyết, nhưng trong thực tế vẫn xuất hiện các tấn công lên các bộ tạo
100
này và dẫn đến phá vỡ các hệ mật sử dụng bộ tạo đó. Đa phần các tấn công
thực tế là do lỗi cài đặt hoặc do kẻ tấn công cố tình gây lỗi lên bộ tạo. Đối với
các lỗi cài đặt, việc thử nghiệm và đánh giá chặt chẽ có thể phát hiện được
các lỗi này. Tuy nhiên, với các lỗi do kẻ tấn công cố tình gây lỗi (ví dụ các
tấn công kênh kề lên các mạch phần cứng) lên thiết bị thì người thiết kế rất
khó kiểm soát do sự phát triển nhanh chóng về năng lực tính toán.
Do đó, vấn đề dùng lặp lại khóa bí mật tức thời, hoặc nhiều khóa bí mật
tức thời có tính chất đặc biệt là chứa các dãy bit lặp lại giống nhau do bộ tạo
số giả ngẫu nhiên là hoàn toàn có thể xảy ra. Để thấy được ý nghĩa thực tiễn
của việc nghiên cứu đề xuất lược đồ chữ ký số EC-Schnorr-M trong việc
chống lại tấn công sử dụng khóa bí mật bị lặp lại, chúng ta xem xét một số tấn
công thực tế sau đây đối với các bộ sinh số ngẫu nhiên mà phá vỡ độ an toàn
của hệ mật được sử dụng.
• Bộ sinh số ngẫu nhiên trong thư viện mật mã OpenSSL
Năm 2008, Bello đã khám phá ra rằng bộ sinh số ngẫu nhiên trong
OpenSSL trên hệ điều hành Debian là có thể dự đoán. Lỗ hổng này là do một
gói dữ liệu được cập nhật năm 2006 bởi một nhà thiết kế của Debian. Nhà
thiết kế đó đã bỏ đi một phần code được sử dụng trong quá trình sinh mầm
của bộ tạo số ngẫu nhiên. Bello sau đó đã phát hiện ra rằng phần code mà
người lập trình đã bỏ đi là quan trọng đối với độ an toàn của hệ mật bởi vì nó
chịu trách nhiệm xáo trộn dữ liệu ngẫu nhiên vào mầm. Điều này dẫn đến
mầm sinh ngẫu nhiên trong OpenSSL là duy nhất dựa trên ID của quá trình
đang xử lý, mà có tối đa 32768 khả năng mặc định bởi nền tảng Linux. Với
chỉ 32768 mầm có thể, có nghĩa là mầm có thể dự đoán dễ dàng hơn và một
cấu trúc OpenSSL bất kỳ mà sử dụng bộ sinh số ngẫu nhiên này sẽ trở nên dễ
bị tổn thương bởi các tấn công.
101
• Khoá yếu trong các thiết bị mạng
Năm 2012, một lỗ hổng nghiêm trọng trong việc sinh ngẫu nhiên trên
hệ điều hành Linux đã dẫn đến một số lượng lớn các chứng chỉ TLS và các
khoá SSH trở nên dễ dàng phân tích và do đó chúng bị thoả hiệp. Các nhà
nghiên cứu chỉ ra rằng một số khoá bí mật của RSA có thể khôi phục được do
các vấn đề về entropy thấp.
• Lỗ hổng trong hệ thống chức thực số công dân Đài Loan
Trong hội nghị Asiacrypt 2013, Bernstein cùng đồng sự đã chỉ ra rằng
các thẻ căn cước thông minh được cấp bởi chính phủ Đài Loan có lỗ hổng.
Nghiên cứu cũng liên quan đến các khoá bí mật có độ an toàn entropy thấp.
Các nhà nghiên cứu đã đánh giá 2 triệu khoá RSA 1024-bit từ cơ sở dữ liệu
“chứng minh nhân dân số” của Đài Loan và thấy rằng 184 các khoá trong đó
bị phân tích dễ dàng trong vài giờ. Họ cho rằng các khoá RSA yếu đó là do
một lỗ hổng nghiệm trọng trong bộ sinh số ngẫu nhiên phần cứng. Tính ngẫu
nhiên được sử dụng cho việc sinh khoá RSA chứa không đủ entropy và đã tạo
ra các mẫu có thể dự đoán và các số nguyên tố RSA chung có thể dự đoán.
Các thẻ thông minh bị tấn công theo cách này trên một phạm vi lớn đã có một
tác động mạnh lên xã hội Đài Loan thời điểm đó.
• Lỗi sinh số ngẫu nhiên đối với ví Bitcoin trên Android
Năm 2013, một mối nguy hiểm đã được phát hiện trong thư viện Java
java.security, trong lớp SecureRandom. Lỗ hổng này là do SecureRandom có
các giá trị va chạm, và dẫn đến nó có thể tạo ra cùng một đầu ra 2 lần (hiện
tượng lặp khóa). Điều này có nghĩa là SecureRandom có một lỗ hổng entropy
lớn vì đầu ra trở nên có thể dự đoán. Vì điều này, các thuật toán dựa trên
SecureRandom để tạo khoá hoặc các thành phần ngẫu nhiên mật mã khác
cũng bị thoả hiệp.
102
Một trong các thuật toán phụ thuộc đó là ví Bitcoin Android. Ví Bitcoin
Android sử dụng thuật toán ký số ECDSA để ký các giao dịch Bitcoin, thuật
toán này sử dụng lớp SecureRandom Java trên các thiết bị Android để tạo một số
ngẫu nhiên cho mỗi chữ ký. Vì lỗ hổng này, cùng một số ngẫu nhiên có thể được
tạo ra để dùng cho 2 chữ ký khác nhau. Khi đó, kẻ tấn công có thể dễ dàng khôi
phục khoá bí mật của lược đồ. Sử dụng khoá bí mật đó, một kẻ tấn công có thể
ký một giao dịch bất kỳ và do đó đánh cắp Bitcoin từ ví Bitcoin bị ảnh hưởng.
Mối nguy hiểm này có một tác động lớn bởi vì tất cả các người dùng
Android với Bitcoin được lưu trữ trên thiết bị Android sẽ gặp rủi ro trong việc
bị đánh cắp Bitcoin bởi các kẻ tấn công khai thác lỗ hổng này. Sau khi mối
nguy hiểm này được phát hiện, Google và Bitcoin đã cập nhật bản vá an toàn
để chữa lỗi này. Sau khi sửa chữa, cài đặt ví Bitcoin Android sử dụng
/dev/urandom để sinh trực tiếp số ngẫu nhiên cho các chữ ký của chúng, thay
vì sử dụng lớp SecureRandom của Java.
• NSA cài đặt backdoor trong chuẩn sinh số ngẫu nhiên
Năm 2013, bộ sinh số ngẫu tất định dựa trên đường cong elliptic
Dual_EC_DRBG mà được chấp nhận là một tiêu chuẩn quốc gia NIST SP
800-90A do ảnh hưởng của NSA, đã bị cộng đồng mật mã phản đối vì phát
hiện tồn tại một điểm yếu cố ý trong thuật toán cũng như các đường cong
elliptic được NIST đề nghị. Dựa trên các tài liệu rò rỉ từ Edward Snowden, bộ
sinh số ngẫu nhiên Dual_EC_DRBG trong chuẩn SP 800-90A chính xác là
"một bẫy bí mật của NSA", cũng như về sự an toàn của các đường cong
elliptic do NIST đề nghị trong chuẩn của NIST. Chẳng hạn:
- NIST P-256: Có đường cong xoắn là hơi yếu, độ an toàn 2121.
- NIST P-256: Có đường cong xoắn rất yếu, độ an toàn chỉ là 259.
Hơn nữa, có thể tồn tại các đường cong yếu mà ta chưa biết trong số các
chuẩn do NIST đề xuất, một vài đường cong yếu ở dạng 𝑦2 = 𝑥3 − 3𝑥 + 𝑏.
103
3.4. So sánh kết quả đạt được của luận án
3.4.1. So sánh về lý thuyết
Giải pháp đề xuất
(EC-Schnorr-M)
Lược đồ gốc
(EC-Schnorr)
Ghi chú
An toàn chứng
minh được
Đã đưa ra chứng
minh an toàn chi
tiết, rõ ràng dựa trên
phương pháp chứng
minh an toàn của
lược đồ Schnorr gốc
Chưa có (chỉ
mới có chứng
minh an toàn
cho lược đồ
Schnorr gốc;
việc áp dụng
sang không là
hiển nhiên)
Luận án áp dụng lại
phương pháp chứng
minh an toàn của lược
đồ Schnorr trên trường
hữu hạn để chứng
minh cho EC-Schnorr;
sau đó chỉ ra sự tương
đương về mặt an toàn
chứng minh được giữa
lược đồ này và phiên
bản đề xuất; đây là
cách tiếp cận mới và
cần có sự hiểu biết sâu
sắc về nguyên lý
chứng minh dựa trên
mô hình bộ tiên tri
ngẫu nhiên ROM và
Bổ đề Forking
Chống tấn
công lặp khóa
Có Không
Hiệu quả
Thêm một phép tính
hàm băm so với EC-
Schnorr gốc
Một phép tính hàm
băm trong môi trường
tính toán hạn chế (kích
thước thông điệp
nhỏ/trung bình) sẽ ảnh
hưởng không đáng kể
về hiệu năng so với
lược đồ gốc
Tiêu chuẩn 3.1
(yêu cầu khóa
bí mật không
Áp dụng cho khóa
bí mật dài hạn
Áp dụng cho
khóa bí mật dài
hạn và khóa bí
mật tức thời
- Do sử dụng thêm
phép tính hàm băm
đối với khóa bí mật
tức thời nên thuật toán
104
có liên tiếp hai
khối t-bit với
𝑡 ≥ 7)
EC-Schnorr-M do
NCS đề xuất không
cần áp dụng cho khóa
bí mật tức thời
- Việc áp dụng cho
khóa bí mật dài hạn
chỉ cần kiểm tra một
lần trong quá trình
sinh tham số
- Khi áp dụng tiêu
chuẩn này cho khóa bí
mật tức thời sẽ làm
cho hiệu năng của
thuật toán giảm đi
Tiêu chuẩn 3.2
(yêu cầu khóa
bí mật không
có liên tiếp 3
khối t-bit với
3 ≤ 𝑡 ≤ 6)
Áp dụng cho khóa
bí mật dài hạn
Áp dụng cho
khóa bí mật dài
hạn và khóa bí
mật tức thời
Do sử dụng thêm
phép tính hàm băm
đối với khóa bí mật
tức thời nên thuật toán
EC-Schnorr-M do
NCS đề xuất không
cần áp dụng cho khóa
bí mật tức thời Tiêu chuẩn 3.3
(an toàn cho
khóa bí mật)
Áp dụng cho khóa
bí mật dài hạn
Áp dụng cho
khóa bí mật dài
hạn và khóa bí
mật tức thời
3.4.2. So sánh về thực hành
NCS đã thực nghiệm các thuật toán sinh khóa, ký và kiểm tra chữ ký
của lược đồ chữ ký số EC-Schnorr và EC-Schnorr-M. Kết quả thực nghiệm
được thực hiện trên phần mềm mã nguồn mở Sagemath trên máy tính với
năng lực tính toán CPU Intel Core i7-6700 3.4 Ghz, 8Gb RAM. NCS sử dụng
các tham số NIST với 𝑞 có kích thước 256 bit cùng với đường cong elliptic
𝐸: 𝑦2 = 𝑥3 + 𝑎𝑥 + 𝑏 được định nghĩa trên trường hữu hạn 𝔽𝑝:
105
𝑝:= 1157920892103562487626974469494075735300861434152903141
95533631308867097853951
𝑎 ≔ -3
𝑏 ≔ 4105836372515214212932612978004726840911444101599372555
4835256314039467401291
𝑞:= 1157920892103562487626974469494075735299969552241357603
42422259061068512044369
Trên mỗi thông điệp, NCS thực hiện 100 lần tính chữ ký sau đó lấy kết
quả thời gian thực hiện trung bình nhằm đánh giá chính xác nhất thời gian
thực hiện của các thuật toán. Do NCS sử dụng thuật toán ký ngẫu nhiên nên
cùng một thông điệp khi ta thực hiện ký 100 lần thì sẽ sinh ra 100 chữ ký
khác nhau. Hàm băm được sử dụng là hàm băm SHA256 được hỗ trợ trong
thư viện Python.
Lược đồ chữ
ký số
Kích
thước
văn bản
Thuật
toán
sinh
khóa
(giây)
Thuật toán
sinh khóa +
kiểm tra
điều kiện
khóa bí
mật dài
hạn
(giây)
Thuật
toán ký
(giây)
Thuật toán
ký+kiểm
tra điều
kiện khóa
bí mật tức
thời
(giây)
Thuật
toán
kiểm tra
chữ ký
(giây)
EC-Schnorr
0,65 M 0.01372 0.01420 0.01500 0.01668 0.03006
1,3 MB 0.01400 0.01499 0.01741 0.01818 0.03214
3,04 MB 0.01491 0.01467 0.02175 0.02267 0.03686
7,6 MB 0.01465 0.01488 0.03231 0.03370 0.04701
10,5 MB 0.01421 0.01432 0.03860 0.03944 0.05574
19,2 MB 0.01438 0.01483 0.06145 0.06281 0.07644
EC-
Schnorr-M
0,65 M 0.01400 0.01412 0.01912 0.01949 0.03060
1,3 MB 0.01423 0.01434 0.02144 0.02172 0.03138
3,04 MB 0.01432 0.01485 0.03021 0.03064 0.03686
7,6 MB 0.01429 0.01438 0.05142 0.05282 0.04872
10,5 MB 0.01410 0.01431 0.06650 0.06942 0.05687
19,2 MB 0.01450 0.01475 0.10563 0.10851 0.07563
106
Qua kết quả thực nghiệm, ta có thể thấy rằng:
1. Thuật toán sinh khóa của lược đồ chữ ký số EC-Schnorr và EC-
Schnorr-M có thời gian thực hiện xấp xỉ nhau và không phụ thuộc vào kích
thước thông điệp. Sai số giữa các lần thực hiện (0,001 giây) là phép sai số
thực hiện trên máy tính.
2. Việc thêm các điều kiện kiểm tra khóa bí mật dài hạn và khóa bí mật
tức thời hầu như không ảnh hưởng đến tốc độ thực thi của thuật toán sinh
khóa và ký.
3. Thuật toán ký của lược đồ chữ ký số EC-Schnorr và EC-Schnorr-M
có thời gian thực hiện phụ thuộc vào kích thước thông điệp. Với các văn bản
có kích thước nhỏ thì hai thuật toán ký của hai lược đồ có thời gian sấp xỉ
nhau. Khi kích thước văn bản lớn hơn thì thời gian chênh lệch tăng lên. Điều
này là do trong thuật toán ký của lược đồ chữ ký số EC-Schnorr-M sử dụng thêm
một phép tính hàm băm so với thuật toán ký của lược đồ chữ ký EC-Schnoor.
4. Thuật toán kiểm tra chữ ký của lược đồ chữ ký EC-Schnorr và EC-
Schnorr-M có thời gian thực hiện xấp xỉ nhau và phụ thuộc vào kích thước
thông điệp. Cụ thể, kích thước thông điệp nhỏ thì ta có thời gian kiểm tra chữ
ký nhanh hơn và ngược lại. Tuy nhiên, với kích thước văn bản khoảng
19,2MB thì thời gian kiểm tra chữ ký của hai thuật toán vẫn rất nhanh (xấp xỉ
0,085 giây)
3.5. Kết luận Chương 3
Các kết quả chính trong chương này bao gồm:
- Phân tích, đánh giá, tổng quát hóa tấn công khôi phục khóa ký dài hạn
trong lược đồ chữ ký số kiểu EC-Schnorr và đề xuất tiêu chuẩn đối với thuật
toán sinh khóa của lược đồ chữ ký số kiểu EC-Schnorr. (Khẳng định 3.6,
Thuật toán 3.1, Khẳng định 3.11, Tiêu chuẩn 3.1, Tiêu chuẩn 3.2).
107
- Phân tích các tấn công và đề xuất tiêu chuẩn cho khóa bí mật tức thời,
khóa bí mật dài hạn của lược đồ kiểu EC-Schnorr (Mệnh đề 3.15, Thuật
toán 3.2, Mệnh đề 3.17, Thuật toán 3.4, Tiêu chuẩn 3.3).
- Phân tích làm rõ ý nghĩa khoa học và thực tiễn của việc nghiên cứu,
đề xuất lược đồ chữ ký số EC-Schnorr-M và các tiêu chuẩn an toàn cho khóa
bí mật (mục 3.3 và mục 3.4).
Nội dung của chương này liên quan đến các bài báo số [3], [4] (Danh
mục các công trình khoa học đã công bố).
108
Lược đồ chữ ký số đóng vai trò quan trọng trong bảo mật và an toàn
thông tin phục vụ phát triển Chính phủ điện tử. Việc ứng dụng các lược đồ
chữ ký số dựa trên đường cong elliptic một cách an toàn và hiệu quả là một
lựa chọn phù hợp cho thế hệ Internet kết nối vạn vật, cho cuộc cách mạng
công nghiệp lần thứ 4. Với mục tiêu như vậy, luận án đã có những đóng góp
cụ thể như sau:
A. Các kết quả đạt được của luận án:
- Phân tích độ an toàn và đánh giá một số yêu cầu về hàm băm được sử
dụng để đảm bảo độ an toàn cho lược đồ chữ ký số EC-Schnorr.
- Phân tích tính hiệu quả và khả năng ứng dụng của lược đồ chữ ký số
EC-Schnorr.
- Phân tích tấn công với việc sử dụng lặp lại khóa bí mật tức thời và
đánh giá các giải pháp đã có để chống tấn công này (Kết quả 2.1, Kết quả
2.2, Kết quả 2.3, Mệnh đề 2.1).
- Đề xuất lược đồ chữ ký số EC-Schnorr-M dựa trên lược đồ EC-
Schnorr gốc (bổ sung thêm một phép tính hàm băm giữa khóa bí mật tức thời
và thông điệp) cùng các phân tích, đánh giá và chứng minh an toàn trong mô
hình bộ tiên tri ngẫu nhiên (Thuật toán 2.5, Mệnh đề 2.2, Hệ quả 2.4, Bổ đề
2.9, Bổ đề 2.10, Mệnh đề 2.11, Hệ quả 2.12).
- Phân tích, đánh giá, tổng quát hóa tấn công khôi phục khóa ký dài hạn
trong lược đồ chữ ký số kiểu EC-Schnorr và đề xuất tiêu chuẩn đối với thuật
toán sinh khóa của lược đồ chữ ký số kiểu EC-Schnorr, trong đó có EC-
Schnorr-M (Khẳng định 3.6, Thuật toán 3.1, Khẳng định 3.11, Tiêu chuẩn
3.1, Tiêu chuẩn 3.2).
109
- Phân tích các tấn công và đề xuất tiêu chuẩn cho khóa bí mật tức thời,
khóa bí mật dài hạn của lược đồ chữ ký số EC-Schnorr-M (Mệnh đề 3.15,
Thuật toán 3.2, Mệnh đề 3.17, Thuật toán 3.4, Tiêu chuẩn 3.3).
- Phân tích làm rõ ý nghĩa khoa học và thực tiễn của việc nghiên cứu,
đề xuất lược đồ chữ ký số EC-Schnorr-M và các tiêu chuẩn an toàn cho khóa
bí mật dài hạn và tức thời.
B. Những đóng góp mới của luận án:
1) Phân tích chỉ ra điểm yếu của giải pháp sử dụng 2 khóa bí mật tức
thời nhằm ngăn chặn sử dụng trùng khóa trong quá trình tạo chữ ký.
2) Đề xuất một lược đồ chữ ký số EC-Schnorr-M dựa trên lược đồ EC-
Schnorr gốc nhằm giảm thiểu việc sử dụng trùng lặp khóa bí mật tức thời, với các
phân tích, đánh giá và chứng minh an toàn trong mô hình bộ tiên tri ngẫu nhiên.
3) Đề xuất tiêu chuẩn đối với thuật toán sinh khóa của lược đồ chữ ký
số kiểu EC-Schnorr, trong đó có EC-Schnorr-M nhằm tránh bị tấn công khi
khóa bí mật tức thời có các khoảng bit lặp.
4) Đề xuất tiêu chuẩn cho khóa bí mật tức thời, khóa bí mật dài hạn của
lược đồ chữ ký số EC-Schnorr-M nhằm chống tấn công kiểu Blake và Poulakis.
C. Hướng nghiên cứu tiếp theo:
- Nghiên cứu, đánh giá về khả năng ảnh hưởng của khóa bí mật dài hạn
(về không gian, về các tấn công đối với hàm băm) của lược đồ chữ ký số EC-
Schnorr-M.
- Nghiên cứu, đánh giá về lý thuyết và thực nghiệm các tấn công cài đặt
đối với lược đồ chữ ký số EC-Schnorr-M trong các thiết bị IoT.
110
DANH MỤC CÁC CÔNG TRÌNH KHOA HỌC ĐÃ CÔNG BỐ
[1]. Triệu Quang Phong, Nguyễn Quốc Toàn, Nguyễn Tiến Xuân, “Phân
tích về hai lỗi của ECDSA và các biến thể so với GOST R 34.10-
2012”, Chuyên san Nghiên cứu khoa học và công nghệ trong lĩnh vực
ATTT, Ban Cơ yếu Chính phủ, số 3.CS(04)-2016.
[2]. Đặng Minh Tuấn, Nguyễn Văn Căn, Nguyễn Ánh Việt, Nguyễn Tiến
Xuân, “Đề xuất chữ ký số ủy nhiệm và ứng dụng cho ủy nhiệm chi
trong hệ thống Bítcoin”, Kỷ yếu Hội nghị Khoa học công nghệ Quốc
gia lần thứ X: Nghiên cứu cơ bản và ứng dụng Công Nghệ thông tin
(FAIR); Đà Nẵng, ngày 17-18/8/2017, trang 131-137.
[3]. Nguyễn Tiến Xuân, Khúc Xuân Thành, Nguyễn Quốc Toàn, “Nghiên
cứu về độ an toàn của khóa bí mật trong lược đồ chữ ký số EC-
Schnorr”, Hội thảo quốc gia lần thứ XXI: Một số vấn đề chọn lọc của
công nghệ thông tin và truyền thông; Thanh Hóa, ngày 27-28 tháng 7
năm 2018, trang 256-261.
[4]. Nguyễn Tiến Xuân, Khúc Xuân Thành và Nguyễn Quốc Toàn, “Về độ
an toàn của lược đồ chữ ký số EC-Schnorr khi khóa bí mật tức thời có
các khoảng bit lặp lại”, HNUE JOURNAL OF SCIENCE, Natural
Sciences, 2018, Volume 63, Issue 11A, trang 3-16.
[5]. Nguyễn Tiến Xuân, Nguyễn Quốc Toàn, “Về một giải pháp đảm bảo
an toàn khóa bí mật tức thời trong các lược đồ chữ ký số dựa trên
ECDLP”, Tạp chí Nghiên cứu khoa học và Công nghệ quân sự, Số
Đặc san, tháng 8 năm 2019, trang 52-61.
111
Tài liệu tham khảo tiếng Việt
[1]. Nguyễn Quốc Toàn, “Nghiên cứu xây dựng các tham số an toàn cho hệ
mật Elliptic và ứng dụng”, Luận án TS, Viện KH&CN quân sự, 2012.
[2]. Nguyễn Quốc Toàn và nhóm đề tài, “Xây dựng thuật toán và chương
trình sinh tham số an toàn cho lược đồ chữ ký số GOST R 34.10-
2012”, Ban Cơ yếu Chính phủ, Hà Nội, 2016.
[3]. Võ Tùng Linh và nhóm đề tài, “Nghiên cứu cơ sở lý thuyết và xây
dựng chương trình chứng minh tính nguyên tố dựa trên đường cong
elliptic và ứng dụng”, Ban Cơ yếu Chính phủ, Hà Nội, 2012.
Tài liệu tham khảo tiếng Anh
[4]. A Statistical Test Suite for the Validation of Random Number
Generators and Pseudorandom Number Generators for Cryptographic
Applications, NIST Special Publication 800-22rev1a, April 2010.
[5]. Amos Fiat and Adi Shamir, “How to prove yourself: Practical
solutions to identification and signature problems”, In Andrew M.
Odlyzko, editor, CRYPTO 1986.
[6]. Arjen Klaas Lenstra, Hendrik Willem Lenstra, and László
Lovász,“Factoring polynomials with rational coefficients”,
Mathematische Annalen, Vol. 261, No. 4, pp. 515–534.
[7]. Arjen Klaas Lenstra, James P. Hughes, Maxime Augier, Joppe W. Bos,
Thorsten Kleinjung, and Christophe Wachter. Public keys. In Reihaneh
Safavi-Naini and Ran Canetti, editors, CRYPTO, volume 7417 of
Lecture Notes in Computer Science, pages 626-642. Springer, 2012.
[8]. Barker, E. and J. Kelsey, NIST special publication 800-90A:
Recommendation for random number generation using deterministic
random bit generators, 2012.
112
[9]. Brown, Daniel RL. "Sec 2: Recommended elliptic curve domain
parameters." Standars for Efficient Cryptography (2010).
[10]. Cheon J., Security Analysis of the Strong Diffie-Hellman Problem,
Annual International Conference on the Theory and Applications of
Cryptographic Techniques, In: Eurocrypt 2006.
[11]. Claus-Peter Schnorr, “Efficient identification and signatures for
smart cards”, CRYPTO’89, volume 435, Springer-Verlag, 1990.
[12]. Daniel R. L. Brown, SEC1v2: Elliptic Curve Cryptography,
Standards for Efficient Cryptography, 2009.
[13]. Daniel J. Bernstein, Yun-An Chang, Chen-Mou Cheng, Li-Ping
Chou, Nadia Heninger, Tanja Lange, and Nicko van Someren.
Factoring RSA keys from certified smart cards: Coppersmith in the
wild. Cryptology ePrint Archive, Report 2013/599, 2013.
[14]. David Pointcheval and Jacques Stern,“Security arguments for digital
signatures and blind signatures”, Journal of Cryptology, 13(3):361-
396, 2000.
[15]. David Brumley and Dan Boneh. Remote timing attacks are practical.
Computer Networks, 48(5):701–716, 2005.
[16]. Don Johnson, Alfred Menezes, and Scott Vanstone, “The Elliptic
Curve Digital Signature Algorithm (ECDSA)”, 2001.
[17]. Dolmatov, A. Degtyarev, “GOST R 34.10-2012: Digital Signature
Algorithm”, https://tools.ietf.org/html/rfc7091.
[18]. D. Boneh and G. Durfee, “Cryptanalysis of RSA with private key d
less than N/sup 0.292”, IEEE trans. on Info. Theory, 46(4):1339–
1349, 2000.
[19]. D. Pointcheval and J. Stern, “Security Proofs for Signature Schemes”,
Eurocrypt '96, LNCS1070, Springer-Verlag, Berlin, 1996.
113
[20]. D. Poddebniak, et al, “Attacking deterministic signature schemes
using fault attacks”, (EuroS&P), IEEE, 2018.
[21]. D. Poulakis, “Some lattice attacks on DSA and ECDSA”, Applicable
Algebra in Engineering, Comm. and Comp, 2011.
[22]. Ernest F. Brickell, David Pointcheval, Serge Vaudenay, and Moti
Yung, “Design validations for discrete logarithm based signature
schemes”, In Hideki Imai and Yuliang Zheng, editors, PKC 2000,
volume 1751 of LNCS, pages 276-292. Springer-Verlag, 2000.
[23]. G. Sarath, D. C. Jinwala, and S. Patel, “A Survey on Elliptic Curve
Digital Signature Algorithm and Its Variants”, CSE, DBDM,
CCNET, AIFL, SCOM, CICS, 121-136, 2014.
[24]. G. Neven, Nigel P. Smart, and B. Warinschi, “Hash function
requirements for Schnorr signatures”, Journal of Mathematical
Cryptology 3.1, 69-87, 2009.
[25]. Hakim Khali and Ahcene Farah, “DSA and ECDSA-based
MultiSignature Schemes”, IJCSNS International Journal of Computer
Science and Network Security, 2007.
[26]. H.Z. Liao, Hung-Zih, and Y.Y. Shen, “On the Elliptic curve digital
signature algorithm”, Tunghai Science 8: 109-126, 2006.
[27]. ISO/IEC 14888-3-2006/Amd 1-2010, “Elliptic Curve Russian Digital
Signature Algorithm, Schnorr Digital Signature Algorithm, Elliptic
Curve Schnorr Digital Signature Algorithm, and Elliptic Curve Full
Schnorr Digital Signature Algorithm”, 2010.
[28]. ISO/IEC 11770-3:2008, “Information Technology-Security
Techniques-Key Management-Part 3: Mechanisms Using Asymmetric
Techniques”, 2008.
[29]. ISO/IEC 15946-5:2017, Information technology - Security techniques
- Cryptographic techniques based on elliptic curves - Part 5: Elliptic
curve generation, 2017.
114
[30]. I.F. Blake, and T. Garefalakis. “On the security of the digital
signature algorithm”. Designs, Codes and Cryptography, 2002.
[31]. J. Malone-Lee and N. P. Smart, “Modifications of ECDSA”. In
Proceedings of Selected Areas in Cryptography - SAC’02, 2002.
[32]. Kai Michaelis, Christopher Meyer, and J¨org Schwenk. Randomly
failed! the state of randomness in current java implementations. In Ed
Dawson, editor, CT-RSA, volume 7779 of Lecture Notes in
Computer Science, pages 129- 144. Springer, 2013.
[33]. K. A. Draziotis, “DSA lattice attacks based on Coppersmith’s
method”, Information Processing Letters, 116(8):541–545, 2016.
[34]. Kan. W, Analysis of Underlying Assumptions in NIST
DRBGs, IACR Cryptol ePrint Arch, 2007.
[35]. L. Lamport, Constructing digital signatures from a one-way function,
Technical Report CSL98, SRI International, 1979.
[36]. Mihir Bellare, Zvika Brakerski, Moni Naor, Thomas Ristenpart, Gil
Segev, Hovav Shacham, and Scott Yilek. Hedged public-key
encryption: How to protect against bad randomness. In Mitsuru
Matsui, editor, ASIACRYPT, volume 5912 of Lecture Notes in
Computer Science, pages 232-249. Springer, 2009.
[37]. Murray R Bremner, “Lattice basis reduction: an introduction to the
LLL algorithm and its applications”, CRC Press, 2002.
[38]. Nadia Heninger, Zakir Durumeric, Eric Wustrow, and J. Alex
Halderman. Mining your Ps and Qs: Detection of widespread weak
keys in network devices. In Proceedings of the 21st USENIX Security
Symposium, August 2012.
[39]. Nicolas Gama and Phong Nguyen, “Predicting lattice reduction”.
Advances in Cryptology, Eurocrypt’08, pp. 31–51, 2008.
115
[40]. NIST FIPS 186-4:2013, FIPS 186-5:2019 (draft), “Digital signature
standard (dss)”, 2019.
[41]. N. Fleischhacker, T. Jager, and D. Schröder. “On tight security proofs
for Schnorr signatures”. International Conference on the Theory and
Application of Cryptology and Information Security. Springer, Berlin,
Heidelberg, 2014.
[42]. Paul Kocher, Joshua Jaffe, and Benjamin Jun. Differential power
analysis. In Advances in cryptology—CRYPTO’99, pages 789–789.
Springer, 1999
[43]. Paul C Kocher. Timing attacks on implementations of Diffie-
Hellman, RSA, DSS, and other systems. In Annual International
Cryptology Conference, pages 104–113. Springer, 1996.
[44]. Peter James Leadbítter, Dan Page, and Nigel P Smart, “Attacking
DSA under a repeated bits assumption”, In CHES, Vol. 3156, pp.
428–440, 2004.
[45]. Phillip Rogaway. Nonce-based symmetric encryption. In Roy and
Meier [32], pages 348-359.
[46]. Phillip Rogaway and Thomas Shrimpton. A provable-security
treatment of the key-wrap problem. In Vaudenay [33], pages 373-390.
[47]. Phong Q Nguyen and Igor E Shparlinski, “The insecurity of the
Elliptic curve digital signature algorithm with partially known
nonces”. Designs, codes and cryptography, pp. 201–217, 2003.
[48]. R.C. Merkle, A certified digital signature based on a conventional
function, in: Advances in Cryptology––Crypto87, LNCS, 293, 1987,
pp. 369–378.
[49]. Savu, Laura, “Signcryption Scheme based on Schnorr Digital
Signature”, 2012.
116
[50]. Scott Yilek. Resettable public-key encryption: How to encrypt on a
virtual machine. In Josef Pieprzyk, editor, CT-RSA, volume 5985 of
Lecture Notes in Computer Science, pages 41-56. Springer, 2010.
[51]. Seny Kamara and Jonathan Katz. How to encrypt with a malicious
random number generator. In Kaisa Nyberg, editor, FSE, volume 5086
of Lecture Notes in Computer Science, pages 303-315. Springer, 2008.
[52]. Seurin, Yannick, “On the exact Security of Schnorr-Type Signatures
in the Random Oracle Model”, Cryptology ePrint Archive 2012.
[53]. SP 800-57 Part 1 Rev. 5 Recommendation for Key Management: Part
1 – General.
[54]. Technical Guideline TR-03111 Elliptic Curve Cryptography Version
2.0, Bundesamt fur Sicherheit in der Informationstechnik, Germany,
[55]. Thomas Ristenpart and Scott Yilek. When good randomness goes
bad: Virtual machine reset vulnerabilities and hedging deployed
cryptography. In NDSS. The Internet Society, 2010.
[56]. T. Pornin, “RFC 6979: Deterministic Usage of the Digital Signature
Algorithm (DSA) and Elliptic Curve Digital Signature Algorithm
(ECDSA)”, August 2013.
[57]. T. Q. Phong, N. Q. Toàn, “Some Security Comparisonsof GOST R
34.10-2012 and ECDSA Signature Schemes”, 6th Workshop on
Current Trends in Cryptology (CTCrypt 2017), June 5-7, 2017, Saint
Petersburg, Repino, Russia. Pre-proceedings, p 140-158.
[58]. Y. Chen and Phong Q Nguyen, “BKZ 2.0: Better lattice security
estimates”, In Inter. Conference on the Theory and Application of
Cryptology and Infor. Security, pp. 1–20, 2011.
117
[59]. Yevgeniy Dodis, David Pointcheval, Sylvain Ruhault, Damien
Vergnaud, and Daniel Wichs. Security analysis of pseudo-random
number generators with input: /dev/random is not robust.
[60]. Zvi Gutterman, Benny Pinkas, and Tzachy Reinman, Analysis of the
linux random number generator, IEEE Computer Society, 2006.