Đây là phương pháp tấn công đầu tiên lên hệ mật mã ECC do Shanks đưa ra, và thực hiện với thời gian là hàm mũ. Nó giải bài toán DLP trong trường nguyên tố
Zp được mở rộng cho bài toán EDLP.
Bài toán: Tìm k sao cho kG = Q trên E(Fq) với #E(Fq) = N, giả sử k tồn tại thực sự.
Thuật toán
1. Chọn số nguyên m >
N
2. Tính mG
3. Với i = 0 đến i = m-1 tính (và lưu lại) iG 4. Với j = 0 đến j = m-1 tính (và lưu lại) Q – jmG
5. Sắp xếp danh sách trong bước 3 và 4 theo một thứ tự nhất định
6. So sánh các danh sách ở các bước 3 và 4 cho đến khi tìm được cặp i, j thỏa mãn iG = Q – jmG
7. Kết quả trả lại là k ≡ i + jm (mod N)
Chứng minh
Vì chúng ta chọn m thỏa mãn m2 > N nên sẽ có k < m2. Đặt
k0 ≡ k (mod m), 0 ≤ k 0 ≤ m . Đặt k1 = (k – k0) / m. Ta sẽ có: k = k0 + mk1, với
0 ≤ k1 < m Trong thuật toán trên ta thử tìm tất cả i thuộc khoảng của k0 và tất cả j
trong khoảng của k1 cho đến khi tìm được i, j thoả mãn iG = Q – jmG ⇒ (i + jm)G
=Qhay k = i + jm. Vì k tồn tại nên k0, k1 tồn tại.
Độ phức tạp thời gian
Bước 1 cần O(log N). Bước 2 và bước 3 cần O(m+1) = O( N ). Bước 4 cần
O( N ). Thuật toán sắp xếp trong bước 5 được thực hiện trong O(log( N ) N )
thời gian. Bước 6 được thực hiện trong O( N ) thời gian. Bước 7 cũng được thực hiện trong O( N ) thời gian. Bỏ qua các yếu tố logarith rời rạc ( N đủ lớn để bài toán DLP là khó giải), thì thời gian thực hiện của thuật toán là hàm mũ của Thuật toán này quá chậm vì thời gian là hàm mũ của độ dài dữ liệu vào N.
49