Phương pháp sử dụng lược đồ chữ ký số tất định

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 45 - 52)

Một phương án được xem xét để đảm bảo các khóa bí mật tức thời được sinh một cách độc lập là sử dụng các lược đồ chữ ký số tất định thay cho các lược đồ chữ ký số xác suất. Cụ thể, trong các lược đồ chữ ký số tất định, khóa bí mật tức thời được sinh một cách tất định và phụ thuộc vào thông điệp được ký thay vì được chọn ngẫu nhiên. Sau đây chúng ta sẽ xem xét hai lược đồ chữ ký số tất định, ECDSA và EC-Schnorr.

TIEU LUAN MOI download : skknchat@gmail.com

39

a) Lược đồ chữ ký số ECDSA tất định [56] (DECDSA):

Thuật toán ký (của trên thông điệp ):

Đầu vào: m, a.

Đầu ra: ( , ).

Bước 1: Tính = ( || ).

Bước 2: Tính = = ( , ).

Bước 3: Tính = , nếu = 0 quay về bước 1.

Bước 4: Tính ℎ = ( ).

Bước 5: Tính = −1(ℎ + ) ; nếu = 0, quay lại bước 1.

Bước 6: Đưa ra chữ ký của trên thông điệp là ( , ).

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

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

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

Bước 1: Xác minh , có thuộc [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 = ℎ và 2 = .

Bước 5: Tính = 1 + 2 = ( , ) và tính = .

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

Chúng ta có thể thấy rằng dường như lược đồ chữ ký số DECDSA sẽ lặp vô hạn ở Bước 3 và Bước 5 của thuật toán ký, mặc dù xác suất xảy ra những sự kiện như vậy là rất thấp. Tuy nhiên, để tránh vấn đề đó xảy ra thì

theo mô tả trong [56], sẽ được thiết lập với một hàm HMAC (cụ thể là

HMAC_DRBG) sao cho nếu Bước 3 hoặc Bước 5 yêu cầu quay lại Bước 1 thì một giá trị mới sẽ được sinh ra. Cụ thể như sau:

TIEU LUAN MOI download : skknchat@gmail.com

40

Khi bắt đầu thuật toán ký thông điệp , hai giá trị và sẽ được gán với một giá trị cố định, chẳng hạn = 0 01 … 0 01 và = 0 00 … 0 00.2 Sau đó tính: = HMAC ( || || ) và = HMAC ( ).

Lặp lại các bước sau cho đến khi tìm được thỏa mãn điều kiện của

DECDSA:

- Lấy chuỗi rỗng , nghĩa là độ dài bit của lúc đầu bằng 0.

- Khi độ dài bit của vẫn nhỏ hơn độ dài bit của , tiếp tục thực hiện:

= ( ) và = || .

- Chuyển sang dạng số nguyên và gán giá trị đó cho khóa . Nếu giá

trị này thỏa mãn Bước 3 và Bước 5 của thuật toán ký thì kết thúc quá trình sinh khóa . Ngược lại, tính = ( ||0 00) và = ( ), sau đó tiếp tục vòng lặp để tìm lại thỏa mãn.

Phân tích an toàn: Đối với lược đồ DECDSA và các biến thể tương ứng của

các lược đồ chữ ký số dựa trên ECDLP như EC-Schnorr, EC-GDSA,…chúng ta luôn được đảm bảo rằng khả năng mà hai thông điệp khác nhau được ký bởi cùng một khóa bí mật tức thời là rất khó xảy ra nếu hàm băm được sử dụng có tính chất kháng va chạm. Điều này có được bởi vì, trong lược đồ DECDSA, nếu kẻ tấn công có thể thu được chữ ký của hai thông điệp 1 ≠ 2mà các khóa bí mật tức thời được sử dụng trong quá trình tạo chữ ký cho chúng bằng nhau (nghĩa là ( || 1) = ( || 2)) thì có thể xây dựng trên kẻ tấn công này một bộ tìm kiếm va chạm hiệu quả đối với hàm băm . Như vậy, bằng việc sử dụng các lược đồ chữ ký số tất định chúng ta đã giải quyết được bài toán lựa chọn bộ tạo số ngẫu nhiên chất lượng cao cũng như không phải lo ngại các yếu tố tạo ra bộ tạo số ngẫu nhiên yếu làm ảnh hưởng đến tính an toàn của lược đồ chữ ký số.

2Ở đây độ dài bit của và được khởi tạo ban đầu sẽ bằng 8 ∗(ℎ 8), với (⋅) là

hàm nhận đầu vào là một số thập phân và đưa ra số nguyên gần nhất và hLen là độ dài bit của hàm băm .

TIEU LUAN MOI download : skknchat@gmail.com

41

Phân tích điểm hạn chế của giải pháp này: Như đã chỉ ra ở trên, phương pháp sử dụng các lược đồ chữ ký số tất định có ưu điểm hơn so với các lược đồ xác suất trong việc ngăn chặn các tấn công khôi phục khóa ký dài hạn từ việc dùng lặp lại khóa bí mật tức thời. Tuy nhiên, đã có một số tấn công cài đặt lên các lược đồ chữ ký số tất định. Ta xem xét kỹ hai kịch bản tấn công gây lỗi lên lược đồ chữ ký số DECDSA đã được đề xuất trong [20], ở đó kẻ tấn công được giả sử có khả năng can thiệp vật lý vào thiết bị ký. Trong các kịch bản đó, giả sử rằng kẻ tấn công đã nhận được một chữ ký chính xác ( 0, 0) cho thông điệp :

* K ch b n 1:ị Kẻ tấn công sửa đổi thành ′ sau khi ( || ) đã được tính. Tấn công theo cách sửa đổi thông tin được thực hiện theo giao thức sau giữa là người tấn công và là người giữ tham số mật .

Giao thức 2.1. Tấn công thứ nhất lên lược đồ DECDSA

(người tấn công)

Bước 1 Chọn thông báo bất kỳ

Gửi yêu cầu ký lên đến

Bước 2

Bước 3 Gửi yêu cầu ký lên đến .

Thaybằng ’ trên thiết bị

tính toán củatrong khoảng thời gian ngay sau khi thiết bị

Bước 4 này tính xong bước 1 trong

thuật toán ký DECDSA và trước khi thiết bị này thực hiện bước 4.

Nếu ( ’ ≠ ) quay lại bước 1.

Ngược lại lấy

Bước 5 = ′−1ℎ′ − −1ℎ

= ( −1 −′−1)

TIEU LUAN MOI download : skknchat@gmail.com

42

* Kịch bản 2: Do trong thực tế ECDSA và các lược đồ chữ ký dựa trên DLP

đều có nguy cơ bị tấn công timing (đo thời gian thực hiện). Để tránh điều đó, một phương pháp phổ biến được sử dụng là gây nhiễu việc tính thành phần trong chữ ký.

Cụ thể, thành phần này được làm nhiễu bằng cách tính ≔ ([ ( || ) + 1 ] ) , ở đó

1 là một số nguyên ngẫu nhiên bất kỳ và là hàm trích xuất hoành độ của một điểm

thuộc đường cong. Trong trường hợp này, có thể xảy ra kịch bản tấn công như sau đối với thuật toán ký của lược đồ DECDSA: Ở đây, giả thiết rằng kẻ tấn công có quyền can

thiệp vào bước tính ≔ ([ ( || ) + 1 ] ) để tạo ra một chữ ký ( ′, ′) khác trên

cùng thông điệp m (chi tiết về cách can thiệp để gây lỗi được mô tả trong [20]). Lưu ý

chữ ký này không nhất thiết phải hợp lệ. Khi đó, kẻ tấn công có thể thực hiện như tấn công theo Giao thức 2.2 và thu được khóa bí mật như được chỉ ra trong Kết quả 2.3.

Giao thức 2.2. Tấn công thứ 2 lên lược đồ DECDSA

Bước 1

Chọn thông báo bất kỳ Gửi yêu cầu ký lên đến S

Bước 2

Bước 3 Gửi yêu cầu ký lên đến

Can thiệp vào bước tính

Bước 4 r ≔ ([ (|| ) +1 ] )

Lấy= ( ′ −′ )−1

Bước 5 = ( )( −′)

TIEU LUAN MOI download : skknchat@gmail.com

43

Kết quả 2.3.Giao thức 2.2 sẽ trả về giá trị tính được của chính là khóa bí mật của trong trường hợp chèn lỗi khiến′ ≠ở bước 4.

Chứng minh. Kết thúc bước 5 của giao thức 2.2, chúng ta thu được hệ hai phương trình hai ẩn (mấu chốt ở đây là do tính tất định của ( || )):

( || )0 = 0+ ( ) . ( || )′ = ′+ ( ) . Do đó, ( || ) 0 ′ = 0 ′ + ( )′ . ( || )′ 0 = ′ 0 + ( )0 .

Lưu ý rằng việc chèn lỗi khiến ≠ ′ và do đó ≠′, tiếp theo trừ theo vế của hai phương trình ở trên ta có:

( 0 ′ −′ 0) = ( )( 0 −′) .

= ( 0 ′ −′

0)−1 ( )( 0 −′) .

Tóm lại kết quả đã được chứng minh. ■

Các tác giả trong [20] cũng lưu ý rằng tấn công được xem xét chỉ gây

ảnh hưởng đến các lược đồ chữ ký số tất định mà không áp dụng được cho các lược đồ chữ ký số xác suất mà có nguồn ngẫu nhiên tốt. Điều này có thể được minh họa thông qua trường hợp của lược đồ chữ ký số ECDSA.

Cụ thể, trong kịch bản tấn công trên lên lược đồ chữ ký số DECDSA, kẻ tấn công đều thu được một hệ hai phương trình hai ẩn (khóa ký và khóa bí

mật tức thời ( || )) nên dễ dàng khôi phục lại khóa ký . Trong khi đó, đối

với lược đồ chữ ký số ECDSA thông thường mỗi khóa bí mật tức thời được sinh mới và được xem là một ẩn riêng biệt, nên nếu kẻ tấn công thực hiện tấn công tương tự thì chỉ thu được một hệ hai phương trình nhưng có ba ẩn (khóa ký và hai khóa bí mật tức thời). Do đó, các tấn công gây lỗi trên lược đồ chữ ký số DECDSA khó có thể áp dụng đối lược đồ chữ ký số ECDSA.

TIEU LUAN MOI download : skknchat@gmail.com

44

b) Lược đồ chữ ký số EC-Schnorr tất định

Thuật toán ký (của trên thông điệp ):

Đầu vào: m, a.

Đầu ra: ( , ).

Bước 1: Tính = ( || ).

Bước 2: Tính = = ( , ).

Bước 3: Tính = ( || ), nếu = 0 , quay lại bước 1.

Bước 4: Tính = ( − ) , nếu = 0 , quay lại bước 1.

Bước 5: Đưa ra chữ ký của A trên thông điệp m là ( , ).

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

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

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

Bước 1: Xác minh , có thuộc [1, − 1]? Nếu sai, đưa ra “chữ ký không hợp lệ” và dừng lại.

Bước 2: Tính = + = ( , ). Nếu = , đưa ra “chữ ký không hợp lệ” và dừng lại.

Bước 3: Tính = ( ‖ ).

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

Tiếp theo, chúng ta xem xét lược đồ EC-Schnorr tất định với các kịch bản tấn công gây lỗi lên lược đồ chữ ký số DECDSA mà đã được đề cập ở trên. Trong các kịch bản đó, giả sử rằng kẻ tấn công đã nhận được một chữ ký chính xác ( 0, 0) của (nghĩa là 0 = ( ‖ ), với = ( , ) =

( || ) ).

* Kịch bản 1: Kẻ tấn công sửa đổithành ′ sau khi ( || ) đã được

tính. Nghĩa là,′ được tính với khóa bí mật tức thời ( || ), và′ = ( ′‖ ). Trong trường hợp này, kẻ tấn công thu được:

TIEU LUAN MOI download : skknchat@gmail.com

45

( || ) = ( ′ + ′ ) .

Trừ theo vế hai phương trình ở trên ta có:

( 0 −′) = ( ′ − 0) .

= ( ′ −0)( 0 −′)−1 .

* Kịch bản 2: Việc tính ′ ≔ ([ ( || ) +1 ] ) bị tấn công, Khi đó, kẻ tấn công thu được:

( || ) = ( 0 + ( || )) . ( || ) = ( ′ + ( ||

′)) .

Tương tự như trên chúng ta suy ra:

= ( ′ −0)( ( || ) − ( || ′))−1 .

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 45 - 52)

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

(127 trang)
w