Nghiên cứu khoa học công nghệ<br />
<br />
VỀ MỘT SỐ LƯU Ý ĐỐI VỚI LƯỢC ĐỒ CHỮ KÝ SỐ<br />
Triệu Quang Phong*, Trần Duy Lai<br />
Tóm tắt: Trong các chuẩn chữ ký số hiện như ECDSA, GOST R 34.10-2012,<br />
ECGDSA, EC-Schnorr, …, thuật toán ký thường kèm theo một số bước kiểm tra xem<br />
giá trị hàm băm, hoặc một trong các thành phần của chữ ký số có giá trị bằng 0 hay<br />
không. Tuy nhiên, không có nhiều nghiên cứu nhằm giải thíchsự cần thiếtcủa các<br />
bước này. Trong bài báo này, chúng tôi sẽ phân tíchý nghĩa của các bước kiểm tra<br />
như vậy trong các chuẩn chữ ký số trên.<br />
Từ khóa: Lược đồ chữ ký số, Cặp chữ ký số- thông điệp, Ttấn công sử dụng thông điệp đơn giản, Phá vỡ hoàn<br />
toàn, Giả mạo vạn năng, Dễ uốn.<br />
<br />
1. GIỚI THIỆU<br />
Chữ ký số là một thành phần thực sự quan trọng trong các giao dịch điện tử hiện<br />
nay. Trên thế giới đã có nhiều chuẩn liên quan đến chữ ký số như: lược đồ ECDSA<br />
của Mỹ, lược đồ GOST R 34.10-2012 (ECRDSA) của Nga, lược ECGDSA của<br />
Đức,… Các lược đồ này đều có mặt trong chuẩn quốc tế ISO/IEC 14888-3 [[1]].<br />
Thông thường, một chữ ký số trên thông điệp nào đó sẽ được ký hiệu là<br />
( , ). Điểm chung của các lược đồ chữ ký số như ECDSA, GOST R 34.10-2012,<br />
ECGDSA,… là nếu xuất hiện = 0 hoặc = 0 trong thuật toán ký thì quá trình<br />
sinh chữ ký số cần được thiết lập lại. Ngoài ra, trong lược đồ chữ ký số GOST R<br />
34.10-2012, thuật toán ký cần kèm theo bước kiểm tra giá trị băm ℎ của thông điệp<br />
ký theo modulo có bằng 0 hay không (với là cấp của nhóm cơ sở).<br />
Tuy nhiên, lý do vì sao mà các lược đồ chữ ký số đó cần các bước kiểm tra như<br />
vậy lại chưa được bàn bạc nhiều. Cụ thể, qua khảo sát, chúng tôi thấy rằng chỉ có:<br />
công trình [[2]], [[6]] giải thích vì sao phải khác 0 trong lược đồ chữ ký số DSA,<br />
và có thể áp dụng để giải thích cho ECDSA; [[7]] đưa ra một kiểu tấn công giả<br />
mạo khi yêu cầu ≠ 0 trong thuật toán ký của ECDSA bị bỏ qua, tuy nhiên, tấn<br />
công này lại yêu cầu tham số miền được lựa chọn bởi kẻ tấn công; Và công trình<br />
[[3]] bàn luận về việc giá trị băm của thông điệp ký phải khác 0 cho GOST R<br />
34.10-94, và có thể áp dụng cho GOST R 34.10-2012.<br />
Theo đó, trong bài báo này, mục tiêu của chúng tôi là khảo sát và phân tích sự<br />
cần thiết của các bước kiểm tra “ , có bằng 0 hay không” trên các lược đồ chữ ký<br />
số ECDSA, GOST R 34.10-2012, ECGDSA, EC-Schnorr trong chuẩn ISO/IEC<br />
14888-3 [[1]]. Trong đó, chúng tôi chỉ ra một tấn công giả mạo (khác trong [[7]])<br />
khi yêu cầu ≠ 0 trong thuật toán ký của ECDSA bị bỏ qua, ở đó tham số miền<br />
không phụ thuộc vào việc lựa chọn của kẻ tấn công. Ngoài ra, chúng tôi cũng xem<br />
xét ảnh hưởng đối với các lược đồ chữ ký số trên trong trường hợp giá trị băm ℎ<br />
của thông điệp ký bằng 0, mặc dù trường hợp này không được xem xét trong hầu<br />
hết các chuẩn chữ ký số đó (ngoại trừ GOST R 34.10-2012).<br />
Phần còn lại của bài viết sẽ được bố cục như sau: Mục 2 sẽ trình bày các ký<br />
hiệu và khái niệm sẽ được sử dụng. Mục 3, 4, 5 và 6 sẽ lần lượt mô tả và trình bày<br />
việc khảo sát lược đồ ECDSA, GOST R 34.10-2012, ECGDSA, EC-Schnorr. Cuối<br />
cùng, phần kết luận của bài báo sẽ được trình bày trong Mục 7.<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 12 - 2017 45<br />
Công nghệ thông tin<br />
<br />
2. CÁC KÝ HIỆU VÀ KHÁI NIỆM<br />
2.1. Các ký hiệu<br />
Các lược đồ chữ ký số được khảo sát trong bài báo này đều là các lược đồ chữ<br />
ký số trên đường cong elliptic. Trước khi xem xét chúng một cách cụ thể, chúng<br />
tôi trình bày các ký hiệu sẽ được sử dụng.<br />
Số nguyên tố<br />
Trường hữu hạn có đặc số<br />
Đường cong elliptic được định nghĩa trên trường<br />
# Số điểm thuộc đường cong<br />
Điểm tại vô cùng của đường cong elliptic<br />
Số nguyên tố thỏa mãn |# là cấp của nhóm cơ sở<br />
Điểm cơ sở thuộc đường cong có cấp bằng<br />
Hàm băm được sử dụng trong lược đồ chữ ký số<br />
ℎ Giá trị băm của thông điệp<br />
Người ký<br />
∈ Phép lấy ngẫu nhiên đều<br />
Khóa ký (khóa bí mật) của<br />
Khóa công khai của<br />
Giá trị bí mật tức thời được sinh ngẫu nhiên trong quá trình ký<br />
Thông điệp cần ký<br />
( , ) Chữ ký số, trong đó là thành phần thứ nhất của chữ ký số và là<br />
thành phần thứ hai của chữ ký số<br />
, Tương ứng là hoành độ và tung độ của điểm thuộc<br />
2.2. Các khái niệm<br />
Như đã đề cập ở phần giới thiệu, bài viết này sẽ khảo sát tầm quan trọng của các<br />
bước kiểm tra = 0, = 0, hoặc ℎ = 0 bằng cách xem xét ảnh hưởng đối<br />
với lược đồ chữ ký số khi các bước kiểm tra này bị loại bỏ. Do đó, chúng tôi giả sử<br />
rằng một trong các trường hợp trên sẽ xảy ra trong quá trình thực thuật toán ký lên<br />
thông điệp nào đó, và kẻ tấn công biết được cặp chữ ký số- thông điệp này. Điều<br />
này tương đương với việc một tấn công sử dụng thông điệp đơn giản (plain<br />
known-message attack) được xem xét (nghĩa là, kẻ tấn công có quyền truy cập vào<br />
một danh sách các thông điệp đã được ký nhưng không được lựa chọn chúng).<br />
Bên cạnh đó, chúng tôi sẽ sử dụng các khái niệm liên quan đến một số mối đe<br />
dọa đối với lược đồ chữ ký số được trình bày trong [[4]] và [[5]]. Các khái niệm<br />
được phát biểu như sau.<br />
- Phá vỡ hoàn toàn (total break)[[5]]: Kẻ tấn công có khả năng tìm được khóa<br />
bí mật của người ký. Đây là mối đe dọa nguy hiểm nhất đối với một lược đồ chữ<br />
ký số.<br />
- Giả mạo vạn năng (universal forgery)[[5]]: Kẻ tấn công có thể xây dựng một<br />
thuật toán hiệu quả mà có thể ký lên bất kỳ thông điệp nào.<br />
- Dễ uốn (malleability)[[4]]: Từ một cặp chữ ký số- thông điệp, người ta có thể<br />
suy ra chữ ký số thứ hai trên thông điệp đó.<br />
<br />
<br />
46 T. Q. Phong, T. D. Lai, “Về một số lưu ý đối với lược đồ chữ ký số.”<br />
Nghiên cứu khoa học công nghệ<br />
<br />
Chúng ta có thể dễ dàng nhận ra, các độ nguy hiểm của các mối đe dọa đối với<br />
lược đồ chữ ký số được sắp xếp theo thứ tự tăng dần là tính dễ uốn, giả mạo vạn<br />
năng, phá vỡ hoàn toàn.<br />
3. KHẢO SÁT LƯỢC ĐỒ CHỮ KÝ SỐ ECDSA<br />
3.1. Mô tả lược đồ ECDSA<br />
- Thuật toán sinh khóa cho người dùng :<br />
1. Khóa bí mật của người gửi là số nguyên ∈ [1, − 1]<br />
2. Tính =<br />
3. Khóa công khai của người gửi là tổ hợp , , ,<br />
- Thuật toán ký (của trên thông điệp ): Bằng cách sử dụng khóa bí mật của<br />
mình, sinh chữ ký số cho thông điệp qua các bước sau đây.<br />
1. Chọn số nguyên ∈ [1, − 1]<br />
2. Tính = ( , ) và = mod ; nếu = 0, thì quay về bước 1<br />
3. Tính ℎ = ( )<br />
4. Tính = (ℎ + )mod ; nếu = 0, thì quay về bước 1<br />
5. Chữ ký số của đối với thông điệp là cặp số nguyên ( , )<br />
- Thuật toán xác minh (chữ ký số( , ) của trên thông điệp ):<br />
1. Xác minh rằng giá trị và thuộc khoảng [1, − 1]<br />
2. Tính = mod<br />
3. Tính ℎ = ( )<br />
4. Tính = ℎ mod<br />
5. Tính =<br />
6. Tính + =( , )<br />
7. Tính =<br />
8. Chữ ký số đối với thông điệp được xác minh là hợp lệ chỉ nếu =<br />
Lưu ý: Do thuật toán ký của lược đồ chữ ký số ECDSA quy định rằng các giá trị<br />
, cần được tính theo modulo và phải khác 0, nên hiển nhiên rằng chúng ta phải<br />
kiểm tra điều kiện và thuộc khoảng [1, − 1] trong thuật toán xác minh của<br />
lược đồ chữ ký số này. Tuy nhiên, mục đích chính của bài báo này là phân tích ý<br />
nghĩa của việc “ , phải khác 0” trong thuật toán ký đối với các lược đồ chữ ký<br />
số, nên chúng tôi sẽ sử dụng điều kiện , cần thuộc khoảng [0, − 1] trong thuật<br />
toán xác minh (của lược ECDSA và các lược đồ chữ ký số tiếp theo) thay cho điều<br />
kiện trong mô tả gốc.<br />
3.2. Khảo sát bước lặp trong thuật toán ký của ECDSA<br />
Trong lược đồ chữ ký ECDSA, giá trị băm ℎ của thông điệp được biểu diễn<br />
bởi ( ). Đối việc kiểm tra chữ ký số( , ) trên thông điệp , chúng ta cần tính<br />
điểm ( , ) = ( ) + và sau đó kiểm tra đẳng thức = .<br />
Vì vậy, phương trình xác minh đối với chữ ký số( , ) trên thông điệp trong<br />
ECDSA thực chất là ( ) = . Theo đó, chúng tôi sẽ khảo sát<br />
sự cần thiết của các bước kiểm tra = 0, = 0, hoặc ( ) = 0 đối với<br />
thuật toán ký ECDSA.<br />
<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 12 - 2017 47<br />
Công nghệ thông tin<br />
<br />
Trường hợp = . Chúng tôi nhận thấy rằng, nếu một chữ ký số ECDSA dạng<br />
(0, ) được chấp nhận là hợp lệ trên một thông điệp nào đó (mà ( ) ≠<br />
0 ), chúng ta sẽ luôn tạo ra được một chữ ký số dạng (0, ) trên một thông<br />
điệp bất kỳ. Thật vậy, chúng ta có kết quả sau.<br />
Kết quả 1. Giả sử (0, ) là chữ ký hợp lệ trên văn bản (mà ( ) ≠ 0 )<br />
và thông điệp ’ là thông điệp bất kỳ, thì (0, ) với<br />
= ( ) ( )<br />
là chữ ký hợp lệ trên .<br />
Chứng minh: Do (0, ) là chữ ký số hợp lệ trên thông điệp , nên ta có<br />
( ) =0 .<br />
Khi đó, với thông điệp bất kỳ, và = ( ) ( ) , thì<br />
⋅<br />
= = ( )<br />
= ( ) =0 .<br />
Do đó (0, ) là một chữ ký số hợp lệ trên . ■<br />
Như vậy, trong trường hợp này, lược đồ ECDSA bị giả mạo vạn năng.<br />
Trường hợp = . Có hai lý do cho việc kiểm tra = 0 trong thuật toán ký<br />
ECDSA. Lý do thứ nhất theo [[2]](cho lược đồ DSA, và cũng có thể áp dụng cho<br />
ECDSA) là nếu một chữ ký số dạng ( , 0) được sinh ra trong thuật toán ký, thì<br />
khóa bí mật của người ký sẽ bị lộ bởi công thức = −ℎ . Điều này dẫn<br />
đến lược đồ ECDSA bị phá vỡ hoàn toàn. Một lý do hiển nhiên khác được chỉ ra<br />
trong [[6]] là thuật toán xác minh của ECDSA sẽ không thể kiểm tra chữ ký số tính<br />
hợp lệ của chữ ký số( , ) khi = 0, bởi nó yêu cầu việc tính nghịch đảo .<br />
Trường hợp ( ) = . Mặc dù đối với lược đồ ECDSA không yêu cầu<br />
bước kiểm tra ( ) = 0 trong thuật toán ký, tuy nhiên, theo chúng tôi việc<br />
xem xét điều kiện này là cần thiết. Thật vậy, chúng ta nhắc lại một kết quả quen<br />
thuộc liên quan đến tính dễ uốn đối lược đồ chữ ký ECDSA như sau.<br />
Khẳng định 2 [[8]]. Nếu( , ) là chữ ký hợp lệ trên trong lược đồ chữ ký<br />
ECDSA, thì ( , − ) cũng là chữ ký hợp lệ trên trong lược đồ chữ ký này.<br />
Đối với nhược điểm này của ECDSA, chúng ta có thể dễ dàng loại bỏ nó bằng<br />
cách chỉ xem ( , ) và ( , − ) như một chữ ký. Ví dụ, thành phần thứ hai của chữ<br />
ký ECDSA được gán giá trị min{ , − } thay cho giá trị trong mô tả gốc; Và<br />
thành phần này cần được kiểm tra thuộc [1, /2] trong thuật toán xác minh. Tuy<br />
nhiên, trong trường hợp ( ) = 0 , tính dễ uốn vẫn tồn tại trên lược đồ<br />
chữ ký ECDSA ngay cả khi có sửa đổi trên.<br />
Thật vậy, giả sử ( , ) là chữ ký số cho trước được sinh theo thuật toán ký<br />
ECDSA trên thông điệp mà có ( ) = 0 , chúng ta có thể sinh ra một<br />
họ vô hạn chữ ký số hợp lệ trên thông điệp này mà không cần biết khóa bí mật<br />
của người ký. Thật vậy, do ( , ) là chữ ký số hợp lệ của nên ta có đẳng<br />
thức = , hay = . Khi đó, với là số nguyên<br />
bất kỳ, tính<br />
=<br />
=<br />
<br />
<br />
<br />
48 T. Q. Phong, T. D. Lai, “Về một số lưu ý đối với lược đồ chữ ký số.”<br />
Nghiên cứu khoa học công nghệ<br />
<br />
thì , cũng là chữ ký số hợp lệ trên thông điệp do<br />
( ) = =<br />
= = .<br />
Như vậy, trong trường hợp này, lược đồ ECDSA là dễ uốn.<br />
4. KHẢO SÁT LƯỢC ĐỒ CHỮ KÝ SỐ GOST R 34.10-2012<br />
4.1. Mô tả lược đồ GOST R 34.10-2012<br />
- Thuật toán sinh khóa cho người dùng : Thuật toán này được mô tả tương tự<br />
như thuật toán sinh khóa trong lược đồ ECDSA.<br />
- Thuật toán ký (của trên thông điệp ):<br />
1. Tính ℎ = ( ).<br />
2. =ℎ . Nếu = 0, thì gán = 1.<br />
3. Chọn số nguyên ∈ [1, − 1].<br />
4. Tính = ( , ), và = , nếu = 0 quay về bước 3.<br />
5. Tính = + ; nếu = 0, quay lại bước 3.<br />
6. Chữ ký số của trên thông điệp là ( , ).<br />
- Thuật toán xác minh (chữ ký số( , ) của trên thông điệp ):<br />
1. Xác minh , có thuộc [1, − 1] hay không<br />
2. Tính ℎ = ( )<br />
3. =ℎ . Nếu = 0, thì gán = 1<br />
4. Tính =<br />
5. Tính = và =−<br />
6. Tính + = ( , ) và tính =<br />
7. Chữ ký số được xác minh chỉ khi =<br />
4.2. Khảo sát bước lặp trong thuật toán ký của GOST R 34.10-2012<br />
Trong lược đồ chữ ký GOST R 34.10-2012, giá trị băm ℎ của thông điệp<br />
được biểu diễn bởi ( ). Đối việc kiểm tra chữ ký số ( , ) trên thông điệp ,<br />
phương trình xác minh của GOST R 34.10-2012 thực chất là<br />
( ) ( ) = . Theo đó, chúng tôi sẽ khảo sát sự ảnh hưởng đối<br />
với lược đồ chữ ký số này khi các bước kiểm tra = 0, = 0 hoặc ( ) =<br />
0 bị lược bỏ.<br />
Trường hợp = . Tương tự trường hợp của ECDSA, nếu một chữ ký sốGOST R<br />
34.10-2012 dạng (0, ) được chấp nhận là hợp lệ trên một thông điệp nào đó,<br />
chúng ta sẽ luôn tạo ra được một chữ ký số dạng (0, ) trên một thông điệp bất<br />
kỳ. Thật vậy, chúng ta có kết quả sau.<br />
Kết quả 3. Giả sử (0, ) là chữ ký hợp lệ trên văn bản (mà ( ) ≠ 0 )<br />
và thông điệp ’ là thông điệp bất kỳ, thì (0, ) với<br />
= ( ) ( )<br />
là chữ ký hợp lệ trên .<br />
Chứng minh: Do(0, ) là chữ ký số hợp lệ trên thông điệp , nên ta có<br />
( ) =0 .<br />
Khi đó, với thông điệp bất kỳ, và = ( ) ( ) , thì<br />
<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 12 - 2017 49<br />
Công nghệ thông tin<br />
<br />
⋅<br />
= = ( )<br />
= ( ) =0 .<br />
Do đó (0, ) là một chữ ký số hợp lệ trên . ■<br />
Như vậy, trong trường hợp này, lược đồ GOST R 34.10-2012 bị giả mạo vạn năng.<br />
Trường hợp = . Đối với trường hợp = 0, chúng tôi chưa tìm thấy bất cứ ảnh<br />
hưởng nào lên lược đồ chữ ký số này.<br />
Trường hợp ( ) = . Tương tự như trường hợp = 0 đối với lược đồ<br />
chữ ký số ECDSA, có hai lý do cho việc xem xét ( ) = 0 trong thuật<br />
toán ký của GOST R 34.10-2012. Nghĩa là, trong trường hợp này lược đồ GOST R<br />
34.10-2012 bị phá vỡ hoàn toàn (được chỉ ra trong [3]) và không thực hiện được<br />
thuật toán xác minh.<br />
5. KHẢO SÁT LƯỢC ĐỒ CHỮ KÝ SỐ ECGDSA<br />
5.1. Mô tả lược đồ chứ ký ECGDSA<br />
- Thuật toán sinh khóa cho người dùng :<br />
1. Chọn khóa bí mật của thực thể gửi là số nguyên ∈ [1, − 1]<br />
2. ←<br />
3. Khóa công khai của thực thể gửi là tổ hợp , , ,<br />
- Thuật toán ký (của trên thông điệp ):<br />
1. Chọn số nguyên không dự đoán được và duy nhất trong khoảng<br />
[1, − 1]<br />
2. = ( , ), trong đó là số nguyên<br />
3. = ; nếu = 0, thì quay về bước 1<br />
4. ℎ = ( ),<br />
5. = ( − ℎ) ; nếu = 0, thì quay về bước 1<br />
6. Chữ ký số của đối với thông điệp là cặp số nguyên ( , )<br />
- Thuật toán xác minh (chữ ký số( , ) của trên thông điệp ):<br />
1. Xác minh rằng các giá trị và thuộc khoảng [1, − 1]<br />
2. =<br />
3. ℎ = ( ),<br />
4. =ℎ<br />
5. =<br />
6. ( , ) = +<br />
7. =<br />
8. Chữ ký số đối với thông điệp được xác minh chỉ nếu = .<br />
5.2. Khảo sát bước lặp trong thuật toán ký của ECGDSA<br />
Trong lược đồ chữ ký ECGDSA, giá trị băm ℎ của thông điệp được biểu diễn<br />
bởi ( ). Đối với việc kiểm tra chữ ký số( , ) trên thông điệp , phương trình<br />
xác minh của ECGDSA thực chất là ( ) = . Theo đó, chúng<br />
tôi sẽ khảo sát sự ảnh hưởng đối với lược đồ chữ ký số này khi các bước kiểm tra<br />
= 0, = 0 hoặc ( ) = 0 bị lược bỏ.<br />
<br />
<br />
50 T. Q. Phong, T. D. Lai, “Về một số lưu ý đối với lược đồ chữ ký số.”<br />
Nghiên cứu khoa học công nghệ<br />
<br />
Trường hợp = . Tương tự trường hợp = 0 đối với ECDSA và ( ) =<br />
0 đối với GOST R 34.10-2012, cũng có hai lý do tương tự cho việc kiểm<br />
tra = 0 trong thuật toán ECGDSA. Nghĩa là, trong trường hợp nàylược đồ<br />
ECGDSAbị phá vỡ hoàn toàn và không thực hiện được thuật toán xác minh.<br />
Trường hợp = . Đối với trường hợp = 0, chúng tôi chưa tìm thấy bất cứ ảnh<br />
hưởng nào lên lược đồ chữ ký số này.<br />
Trường hợp ( ) = . Tương tự như trường hợp đối với lược đồ chữ ký<br />
số ECDSA, khi bước kiểm tra ( ) = 0 trong lược đồ chữ ký số<br />
ECGDSA bị bỏ qua, chúng tôi sẽ xây dựng được một họ vô hạn chữ ký số<br />
ECGDSA lên thông điệp có ( ) = 0 từ một chữ ký số ( , ) cho trước mà<br />
được tạo ra theo thuật toán ký. Thật vậy, do ( , ) là chữ ký số hợp lệ của nên ta<br />
có đẳng thức = , hay = . Khi đó, với là số<br />
nguyên bất kỳ, tính = , và = , thì , cũng<br />
là chữ ký số hợp lệ trên thông điệp do<br />
( ) = = = = .<br />
Như vậy, trong trường hợp này, lược đồ ECGDSA là dễ uốn.<br />
6. KHẢO SÁT LƯỢC ĐỒ CHỮ KÝ SỐ EC-SCHNORR<br />
6.1. Mô tả lược đồ EC-Schnorr<br />
- Thuật toán sinh khóa cho người dùng : Thuật toán này được mô tả tương tự<br />
như thuật toán sinh khóa trong lược đồ ECDSA.<br />
- Thuật toán ký (của trên thông điệp ):<br />
1. ∈ [1, − 1]<br />
2. = =( , )<br />
3. = ( ‖ ), nếu = 0 , quay lại bước 1.<br />
4. = − , nếu = 0 , quay lại bước 1.<br />
5. Đưa ra chữ ký số( , ).<br />
- Thuật toán xác minh (chữ ký số( , ) của trên thông điệp ):<br />
1. Xác minh xem thuộc miền giá trị của hàm băm và trong khoảng<br />
[1, − 1].<br />
2. + = ( , ). Nếu = , đưa ra “chữ ký số không hợp lệ” và<br />
dừng lại.<br />
3. = ( ‖ ).<br />
4. Đưa ra “chữ ký số hợp lệ” nếu = ; ngược lại trả về “chữ ký số không<br />
hợp lệ”.<br />
6.2. Khảo sát bước lặp trong thuật toán ký của EC-Schnorr<br />
Trong lược đồ chữ ký EC-Schnorr, giá trị băm ℎ của thông điệp và thành<br />
phần của chữ ký được biểu diễn bởi ( || ), với = và là giá trị bí mật<br />
tức thời được sinh ngẫu nhiên trong quá trình ký. Do đó, vai trò của thành phần của<br />
chữ ký số và giá trị băm trong lược đồ chữ ký số Schnorr là như nhau, nên trong<br />
phần này chúng tôi chỉ xem xét bước kiểm tra = 0 và = 0 trong thuật<br />
toán ký của lược đồ Schnorr.<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 12 - 2017 51<br />
Công nghệ thông tin<br />
<br />
Trường hợp = . Chúng tôi nhận thấy rằng nếu một chữ ký số Schnorr ( , ) mà<br />
=0 được sinh ra trong thuật toán ký lên thông điệp nào đó thì dễ dàng<br />
nhận được một chữ ký số khác trên thông điệp mà không cần dùng tới khóa bí<br />
mật của người ký – cụ thể, chữ ký số này có dạng ( , − ). Thật vậy, với ( , ) là<br />
chữ ký số trên thông điệp , ta có đẳng thức<br />
0= || = || = || = || ( ) .<br />
Do đó, ( , − ) cũng là chữ ký số hợp lệ trên thông điệp này. Như vậy, lược đồ<br />
chữ ký số Schnorr là dễ uốn nếu trường hợp = 0 xảy ra.<br />
Trường hợp = . Giống như trường hợp của ECGDSA và GOST R 34.10-2012,<br />
chúng tôi chưa tìm thấy điểm yếu gì trên lược đồ Schnorr khi bỏ qua việc kiểm tra<br />
= 0.<br />
7. KẾT LUẬN<br />
Như vậy, trong bài báo này, chúng tôi đã khảo sát và phân tích sự cần thiết của<br />
các bước kiểm tra = 0, = 0, hoặc ( ) = 0 trong thuật toán ký của lược đồ<br />
chữ ký số ECDSA, GOST R 34.10-2012, ECGDSA, và EC-Schnorr trong chuẩn<br />
ISO/IEC 14888-3 [[1]].<br />
Công việc của chúng tôi được thực hiện thông qua việc xem xét các mối đe dọa<br />
về việc phá vỡ hoàn toàn, giả mạo vạn năng và tính dễ uốn đối với lược đồ chữ ký<br />
số bởi tấn công sử dụng thông điệp đơn giản. Kết quả mà chúng tôi thu được có<br />
thể được tóm tắt qua bảng 1.<br />
Theo đó, vấn đề còn lại của chúng tôi là lý do vì sao cần phải khác 0 trong thuật<br />
toán ký của GOST R 34.10-2012, ECGDSA và EC-Schnorr. Ngoài ra, chúng tôi cũng<br />
tìm hiểu về lý do vì sao , cần phải khác 0 trong lược đồ chữ ký số ECKCDSA<br />
(chuẩn chữ ký số của Hàn Quốc), tuy nhiên, chúng tôi chưa thu được kết quả nào. Do<br />
đó, những vấn đề này sẽ được quan tâm trong những nghiên cứu tiếp theo.<br />
Bảng 1. Tóm tắt kết quả khảo sát.<br />
ECDSA GOST R 34.10- ECGDSA EC-Schnorr<br />
2012<br />
Bị phá vỡ hoàn<br />
toàn và không<br />
Bị giả mạo vạn Bị giả mạo vạn Dễ uốn<br />
=0 thực hiện được<br />
năng năng<br />
thuật toán xác<br />
minh<br />
Bị phá vỡ hoàn<br />
toàn và không<br />
ℎ Dễ uốn<br />
Dễ uốn thực hiện được Dễ uốn<br />
=0<br />
thuật toán xác<br />
minh<br />
Bị phá vỡ hoàn<br />
toàn và không Chưa tìm<br />
Chưa tìm thấy Chưa tìm thấy thấy mối đe<br />
=0 thực hiện được<br />
mối đe dọa mối đe dọa dọa<br />
thuật toán xác<br />
minh<br />
<br />
<br />
52 T. Q. Phong, T. D. Lai, “Về một số lưu ý đối với lược đồ chữ ký số.”<br />
Nghiên cứu khoa học công nghệ<br />
<br />
TÀI LIỆU THAM KHẢO<br />
[1]. International standard ISO/IEC DIS 14888-3. Information technology --<br />
Security techniques -- Digital signatures with appendix -- Part 3: Discrete<br />
logarithm based mechanisms. ISO/IEC JTC 1/SC 27, 2016.<br />
[2]. Ronald L. Rivest, Martin E. Hellman và John C. Anderson, “Responses to<br />
NIST’s Proposal”, Communications of the ACM, July 1992, Vol.35, No.7, pp.<br />
42-52.<br />
[3]. Markus Michels, David Naccache, and Holger Petersen, “GOST 34.10 – A<br />
Brief Overview of Russia’s DSA”, Computers & Security 15(8):725-732,<br />
1996.<br />
[4]. J. Stern, D. Pointcheval, J. Malone-Lee, N.P. Smart, “Flaws in Applying Proof<br />
Methodologies to Signature Schemes”, Annual International Cryptology<br />
Conference, CRYPTO 2002: Advances in Cryptology — CRYPTO 2002 pp<br />
93-110.<br />
[5]. D. Pointcheval, J. Stern. “Security arguments for digital signatures and blind<br />
signatures”. Journal of cryptology 13.3 (2000): 361-396.<br />
[6]. M. Braun, A. Kargl. “A Note on Signature Standards”. IACR Cryptology<br />
ePrint Archive 2007 (2007): 357.<br />
[7]. Ian F. Blake, G. Seroussi, and Nigel P. Smart, eds. “Advances in elliptic curve<br />
cryptography” (Chapter II). Vol. 317. Cambridge University Press, 2005.<br />
[8]. J. Stern, D. Pointcheval, J. Malone-Lee, Nigel P. Smart, “Flaws in Applying<br />
Proof Methodologies to Signature Schemes”, Annual International Cryptology<br />
Conference, CRYPTO 2002: Advances in Cryptology — CRYPTO 2002 pp<br />
93-110.<br />
ABSTRACT<br />
ON SOME NOTES FOR DIGITAL SIGNATURE SCHEME<br />
In the current digital signature standards such as ECDSA, GOST R 34.10-<br />
2012, ECGDSA, EC-Schnorr, …, the signing algorithm usually includes some<br />
steps for checking whether the value of the hash function or one of the<br />
signature components is equal 0 or not. However, there is not much research<br />
to explain the necessity of these steps. In this article, the signification of such<br />
test steps in the above digital signature standards will be analysed.<br />
Keywords: Digital signature scheme, Signature-message pair, Total break, Universal forgery, Malleability,<br />
The plain-known message attack.<br />
<br />
Nhận bài ngày 16 tháng 8 năm 2017<br />
Hoàn thiện ngày 26 tháng 11 năm 2017<br />
Chấp nhận đăng ngày 28 tháng 11 năm 2017<br />
<br />
Địa chỉ: Viện Khoa học-Công nghệ Mật mã, Ban Cơ yếu Chính phủ;<br />
*<br />
Email: Phongtrieu53@gmail.com.<br />
<br />
<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 12 - 2017 53<br />