intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Về một số lưu ý đối với lược đồ chữ ký số

Chia sẻ: ViEngland2711 ViEngland2711 | Ngày: | Loại File: PDF | Số trang:9

72
lượt xem
2
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Trong các chuẩn chữ ký số hiện như ECDSA, GOST R 34.10-2012, ECGDSA, EC-Schnorr, …, thuật toán ký thường kèm theo một số bước kiểm tra xem 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 không. Bài viết sẽ phân tích ý nghĩa của các bước kiểm tra như vậy trong các chuẩn chữ ký số trên.

Chủ đề:
Lưu

Nội dung Text: Về một số lưu ý đối với lược đồ chữ ký số

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 />
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2