Tấn công không điểm(Zero-point attacks):

Một phần của tài liệu luận văn: nghiên cứu sự an toàn của một số hệ mật mã hiện đại (Trang 73)

Nhiệm vụ của tấn công này là tìm số mũ bí mật d bằng cách chọn từ điểm cơ sở Q. Khóa riêng được lấy từ các bit quan trọng nhất. Mà hầu hết các bit quan trọng này dl-2 có thể tính được dựa vào các công thức: ECDBL(2Q), ECADD(2Q, Q) ECDBL(3Q) và ECADD(3Q, Q). Nếu có thể tạo ra các giá trị Zero- value thì có thể khôi phục được các bit quan trọng dl-2 của khóa. Nếu tìm được các giá trị đó ở : ECDBL(2Q), ECADD(2Q, Q) thì bit dl-2= 0.

Nếu tìm được các giá trị đó ở ECDBL(3Q) và ECADD(3Q, Q).thì bit dl-2= 1. Giả sử (dl-1,.. dl-i+1) là các bit mà thám mã biết được, Để khôi phục bit dl-i thì sẽ kiểm tra một trong các giá trị ECDBL(2kQ), ECADD(2kQ, Q), ECDBL((3k+1)Q) và ECADD-F((3k+1)Q). Khi d- j 2j-i-1

Chúng ta đã biết rằng nếu dl-i= 0 thì tìm được giá trị ở ECDBL(2kQ), ECADD(2kQ,Q), còn nếu dl-i= 1 thì tìm được giá trị ở ECDBL((3k+1)Q) và ECADD- F((3k+1)Q).

Do đó nếu tìm được 1 điểm P theo bit tìm được ở ECDBL thì có thể điểm cơ sở Q- (c-1 mod #E)P. Trong đó #E: Là số điểm trên đường cong E. C: Là số nguyên đối với tấn công này

Mặt khác: Để sử dụng các giá trị Zero-value ở ECADD(2Q, Q) thì phải tìm được điểm cơ sở Q,dựa theo giá trị tìm Zero tìm được ở (ECADD(cQ,Q).Tức là thám mã đã tìm được điểm cơ sở Q.

Tấn công zero- value trên trường nhị nhân F2m:

Cho E: y2+ xy= x3+Ax2+ B là đường cong elliptic trên trường nhị phân F2m. Sao

cho B# 0. Đường cong E có điểm zero- value P=(x, y) từ ECDBL nếu và chỉ nếu thỏa

mãn một trong những điều kiện sau đây:

1, x2+y = 0 2, Ax2+ y2= 0 3, y2+ B= 0

4, y(P)= 0 hoặc y([2]P)= 0 5, x(P)= 0 hoặc x([2]P)= 0

Cách tìm điểm zVP trên trường nhị phân F2m

Cho đường cong Elliptic trên trường nhị phân F2m = y2+ xy= x3+ Ax2+ B

Điều kiện 1 : x2+y = 0, cho P thuộc E sao cho x2= y -> x4 + Ax2 + B =0. Có thể

dễ dàng được tìm được biểu thức này

Điều kiện 2 : Ax2 + y2 = 0, cho P thuộc E sao cho y2 = Ax2 -> x3 + x2 + B = 0. Đa thức này cũng có thể dễ dàng tính được.

Điều kiện 3 : y2 + B= 0. Trước hết ta có điểm (0, ) luôn tồn tại trên đường

cong, nhưng điểm (0, ) có thứ tự 2. Tuy nhiên nếu điểm (x, ) sao cho x F2m tồn tại trên đường cong thì điểm đó sẽ có thứ tự lớn hơn. Như vậy điểm tồn tại trên đường cong nếu và chỉ nếu x2+ Ax + = 0 là một nghiệm trên F2m

Điều kiện 4 : y(P)= 0 tức là phải giải phương trình x3+ Ax2 + B= 0. Điều kiện y([2]P) = 0 thì cần giải phương trình 3(x2+ x+ y)- (x2+ xy)= 0. Với 3 là một đa

thức chia. Nhưng nếu x3+ Ax2 + B= 0 không có nghiệm thì có thể không tìm được điểm (x, y) trên đường cong thỏa mãn y([2]P)= 0

Chống lại tấn công ZVP nhờ phép đẳng cấu đối với đường cong nhị phân với A# 1

Để ngăn chặn các cuộc tấn công ZVP chúng ta phải chọn một đường cong mà không có điểm ZVP bậc lớn và là đẳng cấu với đường cong ban đầu. Với mỗi đường cong chọn một điểm s ngẫu nhiên, s F2m và sử dụng hàm isomorphism tính đường

cong tương ứng E’. Nếu E’ không có điểm ZVP thì quay lại s, nếu không ta chọn s

ngẫu nhiên. Mất khoảng hơn 30 phép thử để tìm được 1 điểm s như vậy.

Bảng sau trình bày các điểm s đó trong hệ thập lục phân tướng ứng với từng đường cong sinh ra bởi SECG với A # 1

Name of curve S sect113r1 18FAA414E74440750490C01BB277D sect113r2 1D15B022CC73D9E966F8A0ABFA26F sect131r1 5EF4C6145AA39FFACD6C3296E49AB1246 sect131r2 71C674FDCAE7A4BDE497F58E833EDF9F2 sect163r1 5277F5AB7FFFF42D506904A46AE18086F317DFD86

sect193r1 163E42DF9E7D5373A9C1610E3758E626CC784110B676111AD sect193r2 1D1A0FD2202E04C7E7EF572304AE231CCBDE817720884068F Bảng 2.1.Các đẳng cấu an toàn cho đường cong SECG trên trường F2m với A # 1, B#

0, 2.3.6 Tấn công dựa vào phân tích điểm yếu:

2.3.6.1.Tấn công Biehl-Meyer-M¨uller

a/.Tấn công cơ bản- Không kiểm tra giá trị đầu vào, chưa biết :

Đường cong :

E: y2 + a1xy + a3y= x3+ a2x2+ a4x+ a6 định nghĩa trên trường K.

Biehl, Meyer, M¨uller quan sát thấy rằng tham số a6 không được sử dụng trong việc thêm vào các thao tác như ký hiệu trong các tiêu chuẩn ANSI X9.63 và IEEE 1363.

Nếu một thiết bị mã hóa nhận được như là đầu vào một điểm = ( , ) K K Nhưng !∈ E. Sau đó phép nhân vô hướng d sẽ được thực hiện trên đường cong

(a1, a2,, a3, a4, 6) với 6 = 2 + a1 + a3 - a2 2 – a4 .

Giả sử được chọn sao cho đường cong có bậc r nhỏ bậc của . Với điều kiện là bài toán logarit rời rạc được tính trong nhóm con của r tạo ra bởi , < > khi đó giá trị của d mod r có thể được khôi phục.. Lặp lại quá trình này với nhiều điểm khác

nhau lựa chọn trên i

Giá trị của di d mod ri từ d i khi ri = ordEi i. Khi đó ta tìm d bởi định lý đồng dư

Trung Hoa

b/.Tấn công lỗi tại moment ngẫu nhiên của thuật toán nhân:

Giả sử rằng đường cong mạnh định nghĩa trên trường Fq, đặc biệt là E(Fq) có chứa một nhóm con của số nguyên tố bậc p với p> q/logq. Các thao tác dP= Q được

thực hiện bởi thuật toán nhị phân và chúng ta có thể lặp đi lặp lại một số điểm đầu vào

P do đó gây ra một lỗi trong quá trình đăng ký m nếu lặp đi lặp lại liên tiếp thuật toán

nhân

Giải pháp chống đỡ

Vì nó được thông báo trong hầu hết các giao thức của ECC nên chúng ta phải kiểm tra điểm đầu vào có thuộc về đường cong đưa ra hay không.

2.3.6.2.Tấn công Ciet-Joye

Ciet-Joye đã cải tiến ý tưởng của Biehl, Meyer và Muller bằng cách mở rộng các giả thiết chỉ có một vài bit lỗi được chèn vào các điểm cơ sở. Lỗi hiển thị một cách ngẫu nhiên trong các tọa độ của P = (x, y) trong các tham số đường cong elliptic hoặc trong các đại diện trường cho phép phục hồi một phần khóa bí mật d.

Trong một thiết bị mã hóa các thông số hệ thống được lưu trữ trong bộ nhớ tạm thời (Ví dụ như EEPROM) và được chuyển vào bộ nhớ làm việc (ví dụ RAM) cho tính

toán.

a/. Lỗi trong điểm cơ sở P:

Đường cong Elliptic E trên trường K cho bởi công thức:

E: y2 + a1xy + a3y= x3+ a2x2+ a4x+ a6.

Với P= (x, y là điểm cơ sở và công khai. ).

Giả sử rằng chỉ có tọa độ x của điểm P thường bị lỗi ở trong vị trí bit chưa biết. P = ( , y).

Thiết bị mã hóa sau đó tính

= d = ( Q, Q). định nghĩa đường cong (a1, a2,, a3, a4, 6) với

6 = 2Q + a1 Q Q + a3 Q - 3Q- a2 2Q – a4 Q

Với = ( , y) thuộc , là một nghiệm trong K của đa thức: X3 +a2X2 + (a4 – a1y)X +( 6 – y2 – a3y)

Nếu r= ord trong là nhỏ thì bài toán DLP của được tính như sau: Các nghiệm trong K của đa thức X3 +a2X2 + (a4 – a1y)X +( 6 – y2 – a3y)

có hầu hết các bit phù hợp với tọa độ ban đầu x của P được lấy từ .

Các khóa bí mật d có thể được phục hồi từ , = d sử dụng thuật toán Pohlig- Hellman. Tùy thuộc vào số lượng các giá trị phù hợp của , các thực tế được tìm thấy với xác suất 1,1 / 2 hoặc 1/3. Trường hợp cả hai tọa độ của P bị lỗi được xử lý tương tự

b/. Lỗi ở các tham số hệ thống- trường đại diện

Bây giờ chúng ta giả sử rằng các trường đại diện của trường K trong bộ nhớ đệm bị lỗi hoặc xảy ra một lỗi trong quá trình chuyển giao. Các đường cong elliptic, E có đặc tính khác nhau từ 2 hoặc 3 và do đó có thể chuyển thành y 2 = X 3 + a4 x + a 6

xác định trên F q đại diện bởi các số nguyên tố q lớn, lưu trữ trong bộ nhớ đệm. Nếu một bit lỗi xảy ra trong q, sao cho q ↦ , các tính toán được thực hiện theo modulo ,. Do đó điểm P trở thành ≡ P mod và các tính toán của Q = dP trên E được thay thế bởi Q = d trên đường cong E: y 2 = X 3 + 4 x + 6 sao cho i i mod với i= 4, 6. Với và =( Q, Q) là điểm trên đường cong , ta có :

6 2 - 3- 4 mod

Q2 - Q3 - 4 mod . |

= iei

Kết quả gồm tập các phần tử ( 1, l) khi i = Q mod iei cũng như trên i.

Nếu ri = ord i trên I là nhỏ thì giá trị của khóa bí mật d có thể tính được theo DLP trong sử dụng định lý đồng dư Trung Hoa

Tương tự cách tìm nếu K là trường nhị phân. Biện pháp chống lại tấn công :

Để chống lại tấn công do lỗi tham số, trường đại diện. Một trong các biện pháp là nếu P là một điểm trên đường cong ban đầu, ta có thể thực hiện được bằng cách sử dụng a6 như một số nguyên để kiểm tra. Cho P=(x, y)

a6 = y2+ a1xy+ a3y– 3- a2x2 a4x trên K.

Có thể khôi phục lại khóa d bao gồm thông số lỗi. Có thể ngăn chặn được bằng cách thêm vào CRC checksum (Cyclic redundancy check) Đây là một loại hàm băm sử dụng số cố định của bit được gọi là checksum. Checksum được sử dụng để phát hiện lỗi khi lưu trữ hoặc sau khi truyền.

Sau khi đọc vào các tham số hệ thống thì CRC checksum sẽ tính toán và so sánh với một giá trị lưu trữ. Tức là trước khi trả ra kết quả Q thì thông số hệ thống và các biến đầu vào sẽ được kiểm tra trước.

Một phần của tài liệu luận văn: nghiên cứu sự an toàn của một số hệ mật mã hiện đại (Trang 73)

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

(84 trang)