Phương pháp này sử dụng cải tiến của phương pháp Pollard’s rho- một phương pháp tấn công mạnh nhất chống lại ECDLP.
2.3.1.1 Các bước thuật toán: Phương pháp này sử dụng hàm lặp
Cho điểm pi(x, y) là một điểm phân biệt sao cho HW(x) 34 và HW(x) trả về giá trị là trọng số hamming của x. Khi đó hàm lặp được định nghĩa là:
+1= ( )⊕ (2.1)
Với ( ) = ( và j= ((HW( )/2) mod 8) + 3
Để giải quyêt ECC2K- 130 cần khoảng 260.9 hàm lặp như vậy.
Cho Pi(x, y) là hàm lặp tính Pi+1(x’, y’). Hình dưới đây thể hiện luồng của hàm lặp ([15], trang 6).
j= ((HW(x)/2) mod 8)+ ), ) dx= x+ ), dy= y+ ) s= 1/dx, x’=dx+ x’+ x (x’+ x)* y’ = y+ x’ +(x’ +x)* H y x Y’ x’ dx
2.3.1.2 Tối ưu hóa phương pháp ([15], trang 8)
Hàm lặp bao gồm hai phép nhân điểm, một phép nghịch đảo và một số phép tính bình phương trên . Vì vậy có thể tối ưu các phép toán trên trường hữu hạn để tối ưu hóa cuộc tấn công. Có thể sử dụng các đa thức cơ sở để biểu diễn, khi đó hàm lặp có thể thực hiện bằng cách sử dụng Eculid mở rộng hoặc định lý Fermat nhỏ. * Phép nhân điểm:
Một phần tử của có thể được biểu diễn bởi hai đa thức cơ sở P và Type-II normal basis N với
P={1, , 2,⋅⋅⋅, 130},
N={ + −1, 2 + −2, + ,⋅⋅⋅, + }
ở đây w là gốc của đa thức tối giản bậc 131 trong khi là phần tử nguyên thủy của 263rd
- Phép nhân đa thức cơ sở
Thuật toán nhân trong đa thức cơ sở gồm hai bước: Nhân đa thức và giảm số mũ. Có thể thực hiện riêng hoặc xen kẽ. Cho hai phần tử A(w) = và B(w)=
, một thuật toán nhân modun bit-serial
ở đây sử dụng đa thức P(w). Với tồn tại đa thức có trọng số thấp P(w) = w131 + w13 + w2+ w + 1. Do đó độ phức tạp ở bước 3 của thuật toán 2.7 là (m+ 4) phép XOR và (m+ 4) phép AND.
Thuật toán 2.7:
Input A(w)= , B(w)= , và P(w)
Output: A(w)B(w) mod P(w)
C(w)= 0;
For i= m – 1 to 0 do
C(w) w(C(w) +CmP(w)+ biA(w)); End for
Return C(w)/w
Cũng có thể tính C(w)= A(w)B(w) = trước sau đó giảm xuống với P(w). Phương pháp Karatsuba có thể sử dụng để giảm độ phức tạp của đa thức nhân.
* Phép nhân thông thường:
Phép nhân thông thường đề xuất bởi Sunar và Koc sử dụng phần tử + với i [1, m] có thể viết lại thành ( + ) với j [1, m]. Kết quả là, các cơ sở sau đây là pN tương đương với N:
cho = ( là một phần tử T trong là đại diện T= . Một phép nhân của A và B đại diện cho pN yêu cầu m2 phép AND và 3m(m-1)/ 2 phép XORs
Thuật toán này sau đó được Kwon cải tiến nhằm giảm thời gian thực hiện phép tính nhân và có độ phức tạp là 2m phép toán AND và 2m phép toán XOR
* Phép nhân điểm Shokrollahis:
Shokrollahi phát hiện ra một thuật toán hiệu quả cho việc chuyển đổi cơ sở giữa hoán vị bình thường cơ sở và cơ sở đa thức. Sau đó, Bernstein và Lange đề xuất tối ưu hóa hơn nữa để tiếp cận này bao gồm một nhiều hơn chức năng chuyển đổi thẳng về phía trước. Đa thức cơ sở mới nP được định nghĩa là đa thức cơ sở loại II
nP = { ( + }
Ký hiệu AnP và ApN là đại diện của A sử dụng nP và pN. Phép nhân khi đó thực hiện như sau:
Chuyển đổi đa thức cơ sở: AnP ApN BnP BpN
Đa thức nhân: CnP AnPBnP
Chuyển đổi ngược về đa thức cơ sở (chuyển đổi 2m bit) CpN CnP
Giảm:
Cho SpN2nP là một hàm chuyển đổi ApN thành AnP * Phép nghịch đảo:
Nghịch đảo là phép toán có chi phí cao nhất trong các phép toán cơ bản. Thuật toán Eculid và thuật toán fermat nhỏ được sử dụng để thực hiện phép nghịch đảo. Trong Trong đa thức cơ sở, các biến nhị phân của EEA thường nhanh hơn so với FLT, nhưng nó đòi hỏi phần cứng chuyên dụng. Mặt khác FLT có thể thực hiện trên số nhân tiêu chuẩn, do đó không bị tràn bộ nhớ. Do vậy ở đây chon FLT cho việc thực hiện phép tính nghịch đảo.
Như vậy với mỗi phép toán trong hàm lặp có thể dùng các cách khác nhau để tối ưu hóa, mục đích là để giảm số lần lặp trong FPGA, do đó làm giảm thiểu thời gian tính toán và độ phức tạp
2.3.1.3 Đánh giá phương pháp:
Với việc tấn công vào đường cong Elliptic trên trường hữu hạn có thể phá được khóa có độ dài 131 bit sử dụng phương pháp lặp trên FPGA. Như vậy để đảm bảo an toàn dữ liệu cần lựa chọn khóa có độ dài tối thiểu lớn hơn 131 bit.