Bài toán Logarithm rời rạc

Một phần của tài liệu epsilon vol10 2016 august tạp chí toán học mới (Trang 33 - 37)

Định nghĩa 1.1. Bài toán Logarithm rời rạc trên đường cong Elliptic (ECDLP):Cho đường cong E trên trường hữu hạnFq,điểmP ∈E(Fq)với bậcn(nP =O=∞) và điểmQ∈E(Fq), tìm số nguyênk ∈ [0, n−1]sao choQ = kP. Số nguyênk được gọi là Logarithm rời rạc củaQ với cơ sởP, và thường được viết làk = logPQ.

Bất kỳ một hệ mật khóa công khai nào cũng phải sử dụng một bài toán khó để xây dựng hàm một chiều. Ý nghĩa một chiều ở đây có nghĩa là tính thuận thì dễ (thuật toán giải trong thời gian đa thức) và tính ngược thì khó (thuật toán giải với thời gian không phải là đa thức - thường là hàm mũ hoặc nửa mũ). Các tham số của Hệ mật dựa trên đường cong Elliptic (ECC) cần phải được lựa chọn cẩn thận để tránh được các tấn công đối với bài toán ECDLP. Thuật toán vét cạn để giải bài toán ECDLP là lần lượt tính thử các điểmP,2P,3P, ... cho đến khi điểm mới tính được đúng bằng điểm Q. Trong trường hợp xấu nhất sẽ phải cần đến n bước thử, trung bình thường là n/2là đạt được điểmQ, do đó cần phải chọnn đủ lớn để bài toán vét cạn là không khả thi (n ≥2160).

Thuật toán tốt nhất hiện nay để tấn công bài toán ECDLP là sự kết hợp của thuật toán Pohlih- Hellman và Pollard’s rho, thuật toán này có thời gian tính làO(√p), vớiplà ước số nguyên tố lớn nhất củando đó phải chọn sốnsao cho nó chia hết số nguyên tốplớn nhất có√pđủ lớn để giải bài toán này là không khả thi.

Trong phần tiếp theo, một số phương pháp tấn công bài toán Logarithm rời rạc sẽ được trình bày, đa số các phương pháp này có thể áp dụng được cho một nhóm bất kỳ. Chi tiết có thể tham khảo trong [3,8,21].

ChoGlà nhóm các điểm trên đường congE. P, Q∈Glà các điểm trên đường congE, chúng ta cần giải bài toánkP =Q,N là bậc củaG.

1.1. Phương pháp bước nhỏ, bước lớn

Phương pháp này do Shanks đề xuất và được H. Cohen mô tả trong [22].

Thuật toán 1Phương pháp bước nhỏ, bước lớn

1: Chọnm≥√

N và tínhmP.

2: Tính và lưu trữ danh sáchiP với0≤i < m

3: TínhQ−jmP vớij = 0,1, . . . , m−1

4: ifiP =Q−jmP then

5: k =i+jm( mod N)

6: end if

7: Quay về bước 3

Dễ dàng nhận thấyQ=iP +jmP hayQ= (i+jm)P từ đók =i+jm. ĐiểmiP được tính bằng cách cộng thêmP vào(i−1)P và giá trị này được gọi là bước nhỏ.Q−jmP được tính bằng cách cộng thêmmP vàoQ−(j−1)mP và giá trị này được gọi là bước lớn.

1.2. Phương pháp Pollard’s ρ và λ

Phương pháp này do Pollard đề xuất trong [23].

Định nghĩa hàmf : G → Gmột cách ngẫu nhiên Pi+1 = f(Pi)với P0 cũng được chọn một cách ngẫu nhiên. Bởi vìGlà tập hữu hạn do đó sẽ có các chỉ sối0 < j0 màPi0 =Pj0, từ đó ta có:

Pi0+1 =f(Pi0) =f(Pj0) = Pj0+1

Tương tự sẽ cóPi0+l =Pj0+lvớil ≥0, từ đó chuỗiPi là chuỗi tuần hoàn với chu kỳ làj0−i0. Hàm biểu diễn chuỗiPi thường giống chữ cái Hi Lạpρvà đó là lý do tại sao phương pháp này có tên là phương phápρ.

Hàmf được chọn như sau: Chia tậpGthànhstập con không trùng nhauS1, S2, . . . , Sscó kích thước tương đương nhau,sthường được chọn là20, chọn2ssố ngẫu nhiênai, bi modN. Đặt:

Mi =aiP +biQ Và định nghĩa:

f(g) = g+Mi, g ∈Si

Biểu diễnPj dưới dạngPj =ujP +vjQ, khiPi0 =Pj0 ta có:

uj0P +vj0Q=ui0P +vi0Q (ui0 −uj0)P = (vj0 −vx‘j0)Q

k= (vj0 −vx‘j0)1(ui0 −uj0) (mod N) Phương pháp này cũng tương tự như phương pháp trên cần√

N bước, tuy nhiên không gian lưu trữ sẽ nhỏ hơn.

1.3. Phương pháp Pohlig-Hellman

Pohlig và Hellman đề xuất phương pháp này trong [24].

Nếu có thể phân tích bậcN củaGthành các thừa số nguyên tố thì có thể viết:

N =Y

i

qiei

Ý tưởng của phương pháp này là tìmk (mod qiei) với mỗii, sau đó áp dụng định lý đồng dư Trung Hoa để tínhk (mod N). Coiqlà số nguyên tố vàqelà lũy thừaecủaqđược chia hết bởi N, viếtkdưới dạng sau:

k =k0+k1q+k2q2+ã ã ã , 0≤ki < q Lý giải thuật toán 2 như sau:

N

q Q= N

q (k0+k1q+ã ã ã)P

=k0

N

q P + (k1+k2q+ã ã ã)N P =k0

N q P Bởi vìN P =∞và từ đây có thể tìm đượck0. Tiếp theo:

Q1 =Q−k0P = k1q+k2q2+ã ã ã P N

q2Q1 = N

q (k1+k2q+ã ã ã)P

=k1

N

q P + (k2+k3q+ã ã ã)N P =k1

N q P

Từ đó tìm được k1, tương tự như vậy chúng ta sẽ tìm được k2, k3. . . Thuật toán sẽ dừng khi e =r+ 1, khi đóN/qe+1 không còn là số nguyên nữa và chúng ta không thể nhânQe với một số hữu tỷ.

Thuật toán 2Phương pháp Pohlig-Hellman

1: TínhT =n j

N qPo

| 0≤j ≤q−1.

2: Tính NqQ. Đó là phần tửk0

N qP

củaT.

3: ife= 1then

4: Nhảy đến bước 15.

5: end if

6: Q1 ←Q−k0P

7: Tính Nq2Q1. Đó là phần tửk1

N qP

củaT.

8: ife= 2then

9: Nhảy đến bước 15.

10: end if

11: Lần lượt tính được các giá trịk0, k1, . . . , kr−1 vàQ0, Q1, . . . , Qr−1

12: Qr←Qr−1−kr−1qr−1P

13: Xác địnhkrsao cho qr+1N Qr =kr

N qP

14: ife=r+ 1then

15: k =k0+k1q+k2q2 +ã ã ã+ke−1qe−1( mod qe)

16: Stop.

17: end if

18: Quay về bước 11.

1.4. Phương pháp tấn công MOV

Tấn công MOV là tên viết tắt của các tác giả Menezes, Okamoto, và Vanstone [25], sử dụng cặp Weil để chuyển đổi bài toán Logarithm rời rạc trong E(Fq) thành bài toán Logarithm rời rạc trongF×qm. Bởi vì giải bài toán Logarithm rời rạc trong trường hữu hạn sẽ dễ dàng và nhanh hơn giải Logarithm rời rạc trong nhóm các điểm trên đường cong Elliptic. Chọnmsao cho:

E[N]⊆F×qm

Bởi vì tất cả các điểm trongE[N]đều có tọa độ trongFq =∪j≥1Fqj, nênmtồn tại. Theo định nghĩa về cặp Weil và các thuộc tính của cặp song tuyến tính:

ζ2 =eN(Q, T1) =eN(kP, T1) = eN(P, T1)k=ζ1k Thuật toán 3Tấn công MOV

1: Chọn điểm ngẫu nhiênT ∈E(Fqm).

2: Tính bậcM củaT.

3: Chod = gcd(M, N)và choT1 = (M/d)T có nghĩa làT1 có bậc là d, chia hết bởiN, do đóT1 ∈E[N].

4: Tớnh cỏc cặp Weilζ1 =eN(P, T1)vàζ2 =eN(Q, T1). Cả haiζ1, ζ2 ∈àd⊆Fìqm.

5: Giải bài toán Logarithm rời rạcζ2 =ζ1k trongF×qm, sẽ tính đượck (mod N).

6: Lặp lại với điểm ngẫu nhiênT cho đến khi bội số chung nhỏ nhất của các sốdlàN, từ đó xác định đượck (mod N).

Một phần của tài liệu epsilon vol10 2016 august tạp chí toán học mới (Trang 33 - 37)

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

(228 trang)