THUẬT TOÁN POHLIG-HELLMAN

Một phần của tài liệu BÀI TOÁN LOGARIT rời rạc và DIFFIE HELLMAN (Trang 30 - 34)

là một tích của các số nguyên đôi một nguyên tố cùng nhau, khi đó Định lý thặng dư Trung Hoa nói rằng việc giải một phương trình modulo m không dễ hơn việc giải một hệ phương trình modulo mi với mỗi i, do nó cho ta biết cách kết hợp các nghiệm để thu được nghiệm của phương trình modulo m.

Trong bài toán logarit rời rạc, ta cần giải phương trình gx h (mod p).

Trong trường hợp này, modulo p là số nguyên tố, do đó việc sử dụng Định lý thặng dư Trung Hoa là không khả thi. Tuy nhiên, nhắc lại rằng nghiệm x được xác định chỉ với modulo p 1, do đó ta có thể xem nghiệm nằm ở trong Z/(p 1)Z. Điều này gợi ý phân tích p 1 thành tích các thừa số nguyên tố có thể đóng một vai trò quan trọng trong việc xác định tính khó của bài toán logarit rời rạc trong Fp. Tổng quát hơn, nếu G là một nhóm bất kỳ và g 2 G là một phần tử có cấp N, thì nghiệm của gx = h trong G được xác định duy nhất modulo N, do đó việc phân tích N thành thừa số nguyên tố là cần thiết. Đây chính là ý tưởng của thuật toán Pohlig- Hellman.

Định lý 8.1 (Thuật toán Pohlig-Hellman). Cho G là một nhóm, và ta có bài toán logarit rời rạc trong G với mọi phần tử có cấp là một lũy thừa của một số nguyên tố. Với tính rời rạc, nếu g 2 G có cấp qe và giả sử ta có thể giải gx = h trong O(Sqe ) bước.

Cho g 2 G là một phần tử có cấp N, và giả sử N phân tích được thành tích của lũy thừa các số nguyên tố

N = q1e1 q2e2 qett .

Khi đó bài toán logarit rời rạc gx = h có thể được giải trong

!

O å Sqeii + log N bước

bằng cách sử dụng thủ tục sau: (1) Với mỗi 1 i t, ta đặt

Chú ý rằng gi có lũy thừa nguyên tố cấp qiei , do đó sử dụng thuật toán đã cho để giải bài toán logarit rời rạc

giy = hi.

Cho y = yi là một nghiệm của (8.2).

(2) Sử dụng Định lý thặng dư Trung Hoa để giải hệ phương trình đồng dư

x y1 (mod q1e1 ), x y2 (mod q2e2 ), . . . ,x yt (mod qett ). (8.3)

Chứng minh. Thời gian chạy khá rõ ràng, do Bước (1) mất O(å S ei ) bước, và Bước

q

i

(2), theo Định lý thặng dư Trung Hoa, mất O(log N) bước. Trong thực hành, việc tính toán theo Định lý thặng dư Trung Hoa thông thường là không đáng kể so với các tính toán logarit rời rạc.

Ta vẫn phải chỉ ra Bước (1) và (2) cho ta nghiệm của gx = h. Cho x là một nghiệm của hệ phương trình đồng dư (8.3). Khi đó, với mỗi i ta có thể viết

x = yi + qiei zi Khi đó ta có thể tính (gx)N/qiei = (gyi+qiei zi )N/qiei , =(gN/qiei )yi .gNzi =(gN/qiei )yi = giyi = hi =hN/qiei = glogg(h).N/qiei với zi nào đó. theo (8.4) do gN là phần tử đơn vị,

theo định nghĩa của gi, theo (8.2)

theo định nghĩa của hi.

(8.4)

Theo định nghĩa của logarit rời rạc cơ số g, ta có thể viết thành

N

.x

qei i

(8.5)

và logarit rời rạc với cơ số g được định nghĩa modulo N, do gN là phần tử đơn vị. Tiếp theo, ta thấy rằng

N N N (adsbygoogle = window.adsbygoogle || []).push({});

qe1 , qe2 , . . . , qet

1 2 t

không có thừa số chung, nghĩa là ước chung lớn nhất của chúng là 1. Áp dụng liên tiếp thuật toán Euclid mở rộng, khi đó ta có thể tìm được các số nguyên c1, c2, . . . , ct sao cho

Nhân cả hai vế của (8.5) bởi ci và lấy tổng chạy với i = 1, 2, . . . , t. Ta suy ra

.c

q1e1 26

và khi đó (8.6) cho ta biết rằng

x = logg(h) (mod N).

Đẳng thức này chứng minh rằng x thỏa mãn gx h.

Nhận xét 8.2. Thuật toán Pohlig-Hellman nhiều hay ít có tính suy dẫn từ bài toán logarit rời rạc với các phần tử cấp bất kỳ đến bài toán logarit rời rạc có cấp lũy thừa số nguyên tố. Chính xác hơn, theo ký hiệu của Định lý (8.1), thời gian chạy Sqe với các phần tử cấp qe có thể được suy dẫn về O(e.Sq). Điều này được đưa ra trong Mệnh đề (8.1), thời gian chạy Sqe với các phần tử có cấp qe có thể suy dẫn về O(e.Sq). Điều này được chứng minh trong Mệnh đề (8.3).

Thuật toán Pohlig-Hellman chỉ ra rằng bài toán logarit rời rạc trong nhóm G là không bảo mật nếu cấp của nhóm là tích của lũy thừa các số nguyên tố nhỏ. Tổng quát hơn, nếu gx = h là dễ giải nếu cấp của phần tử g là tích của lũy thừa các số nguyên tố nhỏ. Điều này được áp dụng trong bài toán logarit rời rạc trong

Fp nếu p 1 phân tích thành tích của lũy thừa các số nguyên tố nhỏ. Do p 1 luôn là số chẵn nên cách tốt nhất để làm việc này là đặt p = 2q + 1 với q là một số nguyên tố và sử dụng một phần tử g cấp q. Khi đó thời gian chạy của thuật toán va chạm được mô tả trong Mệnh đề (6.3) là O(p

q) = O(p

p). Tuy nhiên, phương pháp giải tích chỉ số có thời gian chạy là cận lũy thừa do kể cả khi p = 2q + 1, số nguyên tố q được chọn phải khá lớn.

Ta sẽ giải thích thuật toán suy dẫn bài toán logarit rời rạc cho các phần tử có cấp là lũy thừa số nguyên tố đến bài toán logarit rời rạc cho các phần tử có cấp nguyên tố. Ý tưởng khá đơn giản: nếu g có cấp qe, thì gqe 1 có cấp q.

Mệnh đề 8.3. Cho G là một nhóm. Giả sử rằng q là một số nguyên tố, và giả sử ta biết một thuật toán mất Sq bước để giải bài toán logarit rời rạc gx = h trong G

khi g có cấp q. Bây giờ ta có g 2 G là một phần tử có cấp qe với e 1. Khi đó ta có thể giải bài toán logarit rời rạc

gx = h trong O(e.Sq) bước.

p

Nhận xét 8.4. Mệnh đề (6.3) nói rằng ta cần lấy Sq = O(p q), và Mệnh đề (8.3) nói rằng ta có thể giải bài toán logarit rời rạc (8.7) trong O(e q) bước. Chú ý rằng nếu ta áp dụng Mệnh đề (6.3) trực tiếp cho bài toán logarit rời rạc (8.7), thời gian chạy sẽ là O(qe/2), chậm hơn rất nhiều nếu e 2.

8 THUẬT TOÁN POHLIG-HELLMAN

Chứng minh. Ý tưởng chính để chứng minh mệnh đề là viết lũy thừa chưa biết x dưới dạng

x = x0 + x1q + + xe 1qe 1

với 0 xi < q,

và xác định các hệ số x0, x1, . . . . Ta bắt đầu bằng việc quan sát thấy phần tử gqe

1 có cấp q. Khi đó, ta có thể tính được hqe 1 =(gx)qe 1 =gx0+x1q+ +xe 1qe 1 qe 1 = gx0qe 1 . gqe x 1+x 2q+ +x e 1qe 2 = gqe 1 x0 do gqe = 1. Do gqe 1 là một phần tử cấp q trong G, phương trình gqe 1 x

Một phần của tài liệu BÀI TOÁN LOGARIT rời rạc và DIFFIE HELLMAN (Trang 30 - 34)