Phương pháp sử dụng hai khóa bí mật tức thời

Một phần của tài liệu (Luận án tiến sĩ) 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 (Trang 52 - 56)

Trong [23], [26] đưa ra các lược đồ sửa đổi bằng cách sử dụng hai khóa bí mật tức thời 1 và 2. Ở đây, không thể được xác định dù là lặp lại cùng với các khóa bí mật tức thời ( 1, 2). Các quá trình là phức tạp hơn lược đồ ECDSA thông thường và điều đó làm tăng mức độ an toàn. Giai đoạn sinh cặp khóa là giống như ECDSA.

Thuật toán ký ECDSA - dùng 2 khóa:

Đầu vào: m, a. Đầu ra: ( 1,2, ). Bước 1: Chọn 1, 2 ∈ [1, … , − 1]. Bước 2: Tính 1( 1,1) = 1 ; 2( 2,2) = 2 . Bước 3: Tính 1 = 1 ; 2= 2 . Bước 4: Tính ℎ = ( ). Bước 5: Tính = 1−1(ℎ 2 + ( 1 +2)) .

TIEU LUAN MOI download : skknchat@gmail.com

46

Thuật xác minh chữ ký:

Đầu vào: m, , ( 1,2, ).

Đầu ra: “Chữ ký hợp lệ” hoặc “Chữ ký không hợp lệ”.

Bước 1 : Kiểm tra1,2 và thuộc khoảng [1, − 1]? Nếu sai, đưa ra “chữ ký không hợp lệ” và dừng lại.

Bước 2: Tính = −1 . Bước 3: Tính ℎ = ( ). Bước 4: Tính 1= ℎ 2 . Bước 5: Tính 2 = ( 1 + 2) . Bước 6: Tính ( 0, 0) = 1 + 2 . Bước 7: Tính = 0 .

Bước 8: Đưa ra “Chữ ký hợp lệ” nếu =1; ngược lại trả về “Chữ ký không hợp lệ”.

Nhận xét: Khóa 2 được sử dụng trong thuật toán ký được sử dụng như một khóa bí mật tức

thời, nhưng nó lại được sử dụng trong bước 4 của thuật toán xác minh. Điều này dẫn đến sự bất hợp lý của lược đồ này. Tuy nhiên, đây không phải là một vấn đề quá lớn, vì chỉ cần thực hiện một vài thay đổi nhỏ để đảm bảo tính hợp lý cho lược đồ này. Cụ thể, có 3 chỉnh sửa là:

- Chữ ký trong bước 6 của thuật toán ký là ( 1, 2, ) thay cho ( 1, 2, ).

- Bước 4 của thuật toán xác minh 1 ← ℎ .

- Bước 6 của thuật toán xác minh được sửa là ( 0,0) ← 1 2 + 2 .

Thuật toán ký ECDSA 2 khóa được sửa đổi:

Đầu vào: m, a. Đầu ra: ( 1, 2, ). Bước 1: Chọn 1, 2 ∈ [1, … , − 1]. Bước 2: Tính 1( 1, 1) = 1 ; 2( 2, 2) = 2 . Bước 3: Tính 1 = 1 , 2 = 2 . Bước 4: Tính ℎ = ( ). Bước 5: Tính = 1−1(ℎ 2 + ( 1 +2)) .

TIEU LUAN MOI download : skknchat@gmail.com

47

Thuật xác minh chữ ký:

Đầu vào: m, , ( 1, 2, ).

Đầu ra: “Chữ ký hợp lệ” hoặc “Chữ ký không hợp lệ”.

Bước 1: Kiểm tra1 và thuộc khoảng [1, . . , − 1]? và kiểm tra2 thuộc đường cong?

Bước 2: Tính = −1 . Bước 3: Tính ℎ = ( ). Bước 4: Tính 1= ℎ . Bước 5: Tính 2 = ( 1 + 2) . Bước 6: Tính ( 0, 0) = 1 2 + 2 . Bước 7: í ℎ = 0 .

Bước 8: Đưa ra “Chữ ký hợp lệ” nếu =1; ngược lại trả về “Chữ ký không hợp lệ”.

Tính đúng đắn của việc sửa đổi ở trên được thể hiện ở chỗ, nếu ( 1, 2, ) là chữ ký của được sinh ra theo thuật toán sinh chữ ký thì khi kiểm tra bằng thuật toán xác minh sẽ cho kết quả hợp lệ. Thật vậy, ta luôn có:

= 1−1(ℎ 2 + ( 1 + 2))

⇔ 1= −1(ℎ 2 + ( 1 +2))

⇔ 1= ℎ −1 2 + ( 1 +2)−1 ⇔ 1= ℎ 2 + ( 1 +2)

⇔ 1=1 2+2 .

Do đó, ta luôn thu được:

1 =12 +2 ,

điều này dẫn đến:

1( 1,1) = 1 2 + 2 = ( 0,0),

và vì vậy: 1 = 1 = 0 = .

Nghĩa là thuật toán xác minh luôn trả về kết quả hợp lệ nếu chữ ký được kiểm tra được sinh ra từ thuật toán tạo chữ ký. Do đó, dưới đây NCS sẽ đánh giá về lược đồ sửa đổi thay vì đánh giá lược đồ ban đầu.

TIEU LUAN MOI download : skknchat@gmail.com

48

Đánh giá thuật toán ký ECDSA 2 khóa sửa đổi: Theo [23], [26], nếu sử dụng cùng cặp khóa bí mật tức thời ( 1,2) đối với việc ký hai thông điệp1,2 khác nhau (giả sử hai chữ ký tương ứng là ( 1,2,1) và ( 1,2,2)) thì khóa ký không bị lộ bởi lý do sau:

1 { 2 ở đây ℎ1 = ( 1) và ℎ2 = ( 2), nên ta có: 1 1−1 2 =(ℎ1 2+ ( 1+2)−ℎ2 2− ( 1+2)) . ⇔ 1( 1 −2) = 2(ℎ1 − ℎ2) .

Theo các tác giả trong [23] và [26] kết luận rằng vì không thể thu được 1, 2 từ phương trình (2.1) và do vậy lược đồ này là an toàn hơn lược đồECDSA gốc. Tuy nhiên, theo quan điểm của NCS thì điều này không thực sự chính xác, bởi mặc dù không thể tìm ra cụ thể1,2 (nên khóa ký không bị lộ) nhưng dựa trên mối liên hệ giữa 1 và2 theo (2.1) thì kẻ tấn công sử dụng thông điệp nào cũng có thể giả mạo chữ ký hợp lệ trên thông điệp tùy ý mà không cần biết khóa ký . Điều này được NCS đưa ra trong mệnh đề sau.

Mệnh đề 2.1.Trong thuật toán ký ECDSA 2 khóa sửa đổi, nếu hai thông điệp 1≠2cùng được ký bởi cặp khóa bí mật tức thời ( 1,2)thì bất cứ kẻ tấn công sử dụng thông điệp nào cũng có thể giả mạo chữ ký hợp lệ trên thông điệp tùy ý mà không cần biết khóa ký của người dùng .

Chứng minh: Với ℎ1 = ( 1) và ℎ2 = ( 2), chúng ta xét 2 trường hợp:

TH1: nếu ℎ1 = ℎ2, thì dễ dàng suy ra chữ ký hợp lệ trên1 cũng là hợp lệ trên2, nên kẻ tấn công có thể yêu cầu chữ ký ( 1,2, ) trên

1 và sau đó đưa ra cặp thông điệp chữ ký giả mạo hợp lệ là2, ( 1,2, ), mà không cần biết khóa ký của người dùng .

TH2: Như đã đề cập, nếu sử dụng cùng cặp khóa bí mật tức thời ( 1,2) đối với việc ký hai thông điệp1,2 khác nhau (giả sử hai chữ ký tương ứng là ( 1,2,1) và (

TIEU LUAN MOI download : skknchat@gmail.com 49 1( 1 − 2) = 2(ℎ1 − ℎ2) . Do đó, chúng ta có: −1 2 1

Từ thông tin này, việc giả mạo chữ ký trên thông điệp được thực hiện đơn giản như sau:

1. Tính ℎ = ( ) và = ℎ − ℎ1.

2. = ( 1 + (ℎ1 − ℎ2)−1( 1 −2) ) .

3. Trả về chữ ký ( 1, 2, ) cho thông điệp .

Chúng ta có thể thấy nếu ( 1,2,1) là chữ ký của thông điệp1 theo thuật toán ký, thì ( 1,2, ) là chữ ký hợp lệ của thông điệp . Thật vậy, chúng ta có = ( 1 + (ℎ1 − ℎ2)−1( 1 −2) ) , nên theo (2.2) ta có:

= ( 1 +1−1 2(ℎ − ℎ1)) .

= 1−1( 2ℎ1 + ( 1 +2)) + 1−1 2(ℎ − ℎ1) . = 1−1( 2ℎ + ( 1 +2)) .

Do đó, dễ thấy rằng: ( −1ℎ) 2+ ( 1 +2)−1 = 1 .

hay chữ ký ( 1,2, ) và thông điệp thỏa mãn phương trình xác minh và như vậy ( 1,2, ) là chữ ký hợp lệ của thông điệp .■

Nhận xét: Các lược đồ chữ ký số như ECDSA, EC-Schnorr,… cũng đã được thử sửa theo

hướng sử dụng hai khóa ký 1, 2 đối với một người sử dụng . Tuy nhiên, vẫn nhận được một

kết quả tương tự là lược đồ chữ ký số sửa đổi không an toàn hơn lược đồ chữ ký số gốc.

Một phần của tài liệu (Luận án tiến sĩ) 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 (Trang 52 - 56)

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

(127 trang)
w