Vấn đề logarit rời rạc

Một phần của tài liệu nghiên cứu và phát triển phương pháp rút gọn chữ kí số (Trang 38 - 45)

Bài toỏn logarit rời rạc trong Zp là đối tƣợng trong nhiều cụng trỡnh nghiờn cứu và đƣợc xem là bài toỏn khú nếu p đƣợc chọn cẩn thận. Cụ thể khụng cú một thuật toỏn thời gian đa thức nào cho bài toỏn logarit rời rạc. Để gõy khú khăn cho cỏc phƣơng phỏp tấn cụng đó biết p phải cú ớt nhất 150 chữ số và (p-1) phải cú ớt nhất một thừa số nguyờn tố. Lợi thế của bài toỏn logarit rời rạc trong xõy dựng hệ mật mó là khú tỡm đƣợc cỏc logarit rời rạc, song bài toỏn ngƣợc lấy lũy thừa lại cú thể tớnh toỏn hiệu quả theo thuật toỏn “bỡnh phƣơng và nhõn”. Núi cỏch khỏc, lũy thừa theo modulo p là hàm một chiều với cỏc số nguyờn tố p thớch hợp.

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

Ở đõy ta xem p là số nguyờn tố, α là phần tử nguyờn thủy theo modulo p. Ta thấy rằng p va α là cỏc số cố định. Khi đú bài toỏn logarit rời rạc cú thể đƣợc phỏt biểu dƣới dạng sau:

Định nghĩa 2.2

Tỡm mốt số mũ a duy nhất 0 ≤ a ≤ p-2 sao cho , với cho trước.

Rừ ràng là bài toỏn logarit rời rạc cú thể giải bằng một phộp tỡm kiếm vột cạn với thời gian cỡ O(p) và khụng gian cỡ O(1) (bỏ qua cỏc thừa số logarit. Bằng cỏch tớnh toỏn tất cả cỏc giỏ trị αa cú thể sắp xếp cỏc cặp cú thứ tự (a, αa mod p) cú lƣu ý đến cỏc tạo độ thứ hau của chỳng, ta cú thể giải bài toỏn logarit rời rạc với thời gian O(1) bằng O(p) phộp tớnh toỏn trƣớc và O(p) bộ nhớ (vẫn bỏ qua cỏc thừa số logarit). Thuật toỏn khụng tầm thƣờng đầu tiờn ma chỳng ta sẽ mụ tả là thuật toỏn tối ƣu húa thời gian bộ nhớ của Shanks

a. Thuật toỏn Shanks

Hỡnh 2.2. Thuật toỏn Shanks

- Nếu cần, cỏc bƣớc 1 và 2 cú thể tớnh toỏn trƣớc (tuy nhiờn, điều này khụng ảnh hƣởng tới thời gian chạy tiệm cận)

- Tiếp theo cần để ý là nếu (j, y) L1 và (i, y) L2 thỡ αmj = y = βα-i

1. Tớnh αmj mod p, 0 ≤ j ≤ m-1

2. Sắp xếp m cặp thứ tự (j, αmj mod p) cú lƣu ý tới cỏc tọa độ thứ hai của cỏc cặp này, ta sẽ thu đƣợc một danh sỏch L1. 3. Tớnh βα-i

mod p, 0 ≤ i ≤ m-1

4. Sắp xếp m cặp thứ tự (i, βα-i mod p) cú lƣu ý tới cỏc tọa độ thứ hai của cỏc cặp đƣợc sắp này, ta sẽ thu đƣợc một danh sỏch L2.

5. Tỡm một cặp (j,y) L1 và một cặp (i,y) L2 (tức là một cặp cú tọa độ thứ hai nhƣ nhau)

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

Bởi vậy

αmj = β

Nhƣ mong muốn. Ngƣợc lại, đối với β bất kỡ ta cú thể viết logαβ = mj + i

trong đú 0 ≤ j, i ≤ m-1. Vỡ vậy phộp tỡm kiếm ở bƣớc 5 chắc chắn thành cụng. Cú thể ỏp dụng cỏc thuật toỏn này chạy với thời gian O(m0 và với bộ nhớ cỡ O(m) (bỏ qua cỏc thừa số logarit. Chỳ ý là bƣớc 5 cú thể thực hiện một cỏch (đồng thời) qua từng danh sỏch L1 và L2.

Sau đõy là một vớ dụ nhỏ để minh họa. Vớ dụ 2.10.

Giả sử p = 809 và ta phải tỡm log3525. Ta cú α = 3, β = 525 và m = = 29 khi đú.

α29

mod 809 = 99

Trƣớc tiờn tớnh cỏc cặp đƣợc sắp (j,99j mod 809) với 0 ≤ j ≤ 28. Ta nhõn đƣợc danh sỏch sau: (0,1) (1,99) (2,93) (3,308) (4,559) (5,329) (6,211) (7,664) (8,207) (9,268) (10,664) (11,654) (12,26) (13,147) (14,800) (15,727) (16,781) (17,464) (18,314) (19,207) (20,582) (21,496) (22,564) (23,15) (24,676) (25,586) (26,575) (27,295) (28,81)

Danh sỏch này đƣợc sắp xếp để tạo L1.

Danh sỏch thứ 2 chứa cỏc cặp sắp (i, 525 x (3i)-1 mod 809), với 0 ≤ i ≤ 28. Danh sỏch này gồm: (0,525) (1,175) (2,328) (3,379) (4,396) (5,132) (6,44) (7,554) (8,724) (9,511) (10,440) (11,686) (12,768) (13,256) (14,355) (15,388) (16,399) (17,133) (18,314) (19,644) (20,754) (21,496) (22,564) (23,15) (24,676) (25,356) (26,658) (27,489) (28,163)

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

Sau khi sắp xếp danh sỏch này ta cú L2.

Bõy giờ nếu xử lý đồng thời qua cả hai danh sỏch, ta sẽ tỡm đƣợc (10,644) trong L1 và (19,644) trong L2. Bõy giờ ta cú thể tớnh

Log3525 = 29x10+19 =309 (adsbygoogle = window.adsbygoogle || []).push({});

Cú thể kiểm tra thấy rằng quả thực 3309 525 (mod 809). b. Thuật toỏn Pohlig – Hellman

Thuật toỏn tiếp theo mà ta nghiờn cứu là thuật toỏn Pohlig – Hellman. Giả sử

Pi là số nguyờn tố đặc biệt. Giỏ trị a = logαβ đƣợc xỏc định một cỏch duy nhất theo modulo p-1. Trƣớc tiờn nhận xột rằng, nếu cú thể tớnh a mod với mỗi i, 1 ≤ i ≤ k, thỡ cú thể tớnh a mod (p-1) theo định lớ phần dƣ China. Để thực hiện điều đú ta giả sử rằng q là số nguyờn tố. p-1 0 (mod qc) p-1 ≠ 0 (mod qc+1) Ta sẽ chỉ ra cỏch tớnh giỏ trị x = a mod qc 0 ≤ x ≤ qc

-1. Ta cú thể biểu diễn x theo cơ số q nhƣ sau:

Trong đú 0 ≤ ai ≤ q -1 với 0 ≤ i ≤ c-1. Cũng cú thể biểu diễn nhƣ sau: a = x + qcs

với s là một số nguyờn nào đú

Bƣớc đầu tiờn của thuật toỏn tớnh a0. Kết quả chớnh ở đõy là:

Để thấy rừ điều đú cần chỳ ý rằng:

Điều này cho thấy:

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

Kết quả này đỳng khi và chỉ khi:

Tuy nhiờn, chỳng ta cú

Đú chớnh là điều cần chứng minh

Do đú sẽ bắt đầu bằng việc tớnh (mod p). Nếu

Thỡ a0 = 0. Ngƣợc lại chỳng ta sẽ tớnh liờn tiếp cỏc giỏ trị:

Cho tới

.

Với một giỏ trị i nào đú. Khi điều này xảy ra ta cú a0=i

Bõy giờ nếu c = 1 thỡ ta đó thực hiện xong. Ngƣợc lại, nếu c>1 thỡ phải tiếp tục xỏc định a1. Để làm điều đú ta phải xỏc định

β1 = β α-a0

và kớ hiệu x1 = logαβ1 mod qc Dễ dàng thấy rằng

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

Vỡ thế cho nờn

Nhƣ vậy ta sẽ tớnh mod p và rồi tỡm i sao cho (mod p)

Khi đú

Nếu c = 2 thỡ cụng việc kết thỳc; nếu khụng, phải lặp lại cụng việc này c-2 lần nữa để tỡm a2,…,ac-1

Hỡnh dƣới đõy sẽ mụ tả giả mó của thuật toỏn Pohlig – Hellman.Trong thuật toỏn này, α là phần tử nguyờn thủy theo modulo p, q là số nguyờn tố.

Thuật toỏn tớnh cỏc giỏ trị a0,…,ac-1 trong đú

Hỡnh 2.3. Thuật toỏn Pohlig – Hellman

Chỳng ta minh họa thuật toỏn Pohlig – Hellman qua một vớ dụ nhỏ Vớ dụ 2.11 Giả sử p = 29; khi đú n = p -1 = 28 = 22.71 1. Tớnh 2. Đặt j = 0 và βj = β 3. While j ≤ c-1 do 4. Tớnh 5. Tỡm i sao cho 6. aj = i 7. mod p 8. j = j + 1 (adsbygoogle = window.adsbygoogle || []).push({});

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

Giả sử α = 2 và β = 18. Ta phải xỏc định a = log218. Trƣớc tiờn tớnh a (mod 4) rồi tớnh a (mod 7).

Ta sẽ bắt đầu bằng việc đặt q = 2, c = 2. Trƣớc hết

Tiếp theo (mod 29)

Vỡ a0 = 1. Tiếp theo ta tớnh

Vỡ

Ta cú a1 = 1. Bởi vậy a 3 (mod 4) Tiếp theo đặt q = 7 và c = 1, ta cú

Sau đú tớnh

Bởi vậy a0 = 4 và a 4 (mod 7) Cuối cựng giải hệ phƣơng trỡnh

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

a 3 (mod 4) a 4 (mod 7)

Bằng định lớ phần dƣ China, ta nhận đƣợc a 11 (mod 28). Điều này cú nghĩa là đó tớnh đƣợc log218 trong Z29 là 11

Một phần của tài liệu nghiên cứu và phát triển phương pháp rút gọn chữ kí số (Trang 38 - 45)