Dựa trên các tấn công đối với lược đồ chữ ký số ECDSA, NCS chỉ ra rằng có thể tìm được các khóa bí mật trong lược đồ chữ ký số kiểu EC- Schnorr (bao gồm cả EC-Schnorr và EC-Schnorr-M) một cách dễ dàng khi chúng tương đối nhỏ hoặc tương đối lớn (so với cấp của nhóm). Các tấn công khả thi đối với lược đồ chữ ký số kiểu EC-Schnorr với tham số cỡ 256 bit đã được NCS cài đặt thực nghiệm.
Trước tiên, NCS nhắc lại Bổ đề Howgrave-Graham. Bổ đề này cho ta biết điều kiện khi nào một nghiệm của đa thức trên vành modulo cũng là một nghiệm thực sự trên vành các số nguyên. Xét một đa thức ℎ( , ) =
∑ , ℎ , ∈ ℝ[ , ], chuẩn của đa thức ℎ( , ) được định nghĩa
là ‖ℎ( , )‖ ≔ √∑ , ℎ , 2.
Bổ đề 3.13[18] (Howgrave-Graham). Cho đa thức ℎ( , ) ∈ ℝ[ , ]là tổng của đơn thức. Giả sử tồn tại các số nguyên 0, 0sao cho | 0| < , | 0| < với X, Y là các số nguyên dương nào đó. Khi đó, nếu ℎ( 0,0) = 0 và ‖ℎ( , )‖ < /√, thì ℎ( 0,0) = 0trên vành số nguyên.
Định nghĩa 3.14:Cho là số nguyên dương bất kỳ thuộc {1, . . . , − 1},ta định nghĩa ̅=nếu ≤ /2và ̅= −nếu > /2. Để đơn giản ta
̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅
viết −1thay cho −1( q).
Tấn công kiểu Blake lên lược đồ chữ ký số EC-Schnorr
Dựa trên tấn công của Blake [30] đưa ra đối với DSA và ECDSA, NCS
đưa ra tấn công có thể tìm được khóa bí mật và thông qua việc giải phương trình đồng dư sau đây trong lược đồ EC-Schnorr:
= ( − ) mod
TIEU LUAN MOI download : skknchat@gmail.com
86
Mệnh đề 3.15.Đố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 | | < , | ̅| < và< /6√6.
lưới được căng bởi các véctơ ( , 0,0), (0, , 0), ( , , ), trong đó =
− −1 , = −1 . Khi đó, nếu véctơ ngắn nhất trong cơ sở
LLL-rút gọn của L có độ dài lớn hơn 3√2 thì ta có thể tìm được khóa bí mật dài hạn a trong thời gian đa thức.
Chứng minh: Nhân hai vế của (3.6) với −1ta được −−1 + −1 =
0 mod . Đặt = −
nghiệm của phương trình đồng dư ( , ) = + + = 0 mod . Thật vậy:
Nếu , ≤
Nếu , >
̅
( , ̅)= − + ( − )+ = + + − −
Tương tự, cho các trường hợp ( >
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( , ) = + + .
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 =
TIEU LUAN MOI download : skknchat@gmail.com
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.
1= ( 0,1 ,2 ),2 = ( 3,4 ,5 ).
Tiếp theo ta đặt 1( , ) = 0 +1 +2 và2( , ) = 3 +4 +5. Do1( , ) và 2( , ) là các tổ hợp tuyến tính nguyên của
( ) (với ) nên các đa thức và nhận ̅ là
, = 1,2,3 1( , ) 2( , ) ( , ̅)
nghiệm theo modulo . Do đó, các đa thức1( , ),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
Hơn nữa, ta có 1 = ‖ 1( , )‖. Do đó, theo Mệnh đề 3.4, ta có:
‖ 1‖ < 2
Mặt khác, theo giả thiết, ta có<
‖ ( , )‖
1
Theo Bổ đề 3.13 và từ (3.7), (3.8), ta suy ra 1( , ̅) = 0
nguyên. Tương tự, ta có ‖ 2‖ = ‖ 2( , )‖. Cũng theo Mệnh đề 3.4, ta có:
Theo giả thiết, ta có ‖ 1‖ > 3√2 . Suy ra:
‖
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
TIEU LUAN MOI download : skknchat@gmail.com
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
( , , ). Sử dụng thuật toán LLL, tìm cơ sở LLL-rút gọn của lưới .
Bước 3.Tính0 =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 +2và 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
Do đó, để tránh tấn công thì ta cần chọn:
̅
||> =2
Khi đó 2 + > /6√6 hay + > log2( /6√6). Vì vậy, ta chọn:
> log2(
6√6)và >log2( 6√6)
TIEU LUAN MOI download : skknchat@gmail.com
89
Khi đó, điều kiện | | > = 2
T ương tự, | ̅| > = 2
Do (6√
2
256
) nên để tránh tấn công này, ta có thể chọn 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
) > 1/2 hay < − 1/2. Do vậy, điều kiện
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 ( , ) = + + = 0trong ℤ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 đó,
TIEU LUAN MOI download : skknchat@gmail.com
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 |
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 −1 + ( −1)−1 −−1 = 0 mod
Đặt=
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 (
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ức1( , ) = ,2( , ) = và3( , ) =
+ + .
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.
Ta
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 đề 3.13.
Bây giờ ta cần xác minh điều kiện để các đa thức1( , ) thỏa mãn điều kiện của Bổ đề 3.13. Theo Mệnh đề 3.4,
TIEU LUAN MOI download : skknchat@gmail.com
91
‖ 1‖ ≤ 2
Do đó, để 1( , ) thỏa mãn điều kiện của Bổ đề 3.13, ta cần
1 √2( 2 2 )3 < √3 Nói cách ‖ ( , )‖ 1 và 0,1∈ℤ ‖1( , )‖ <
nguyên. Áp dụng thuật toán giải phương trình cho
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.
Bước 2. Xây dựng lưới
( , , ). Sử dụng thuật toán LLL, tìm cơ sở LLL-rút gọn của lưới .
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ức1( , ) = 0.
TIEU LUAN MOI download : skknchat@gmail.com
92
Nhận xét 3.18. Đặt = 2 , = 2 , khi đó điều kiện2 < /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
Do đó, để tránh tấn công thì ta cần chọn:
̅ ̅ ̅ ̅ ̅
|
Khi đó 22 + > /6√
Khi đó, điều kiện |
T ương tự, điề u kiệ n, | ̅|
Do (6√
256
) nên để tránh tấn công này, ta có thể chọn 2
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 (
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
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, < −
TIEU LUAN MOI download : skknchat@gmail.com
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
Blake Poulakis
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:
Tấn công
Blake Poulakis
TIEU LUAN MOI download : skknchat@gmail.com
94