Với giả thiết hợp lý, Thời gian chạy tiệm cận của giai đoạn tiền tính toán này cỡ và thời gian để tính một giá trị logarithm rời rạc riêng là khoảng Hình 5.5.. Bít thứ i của logarithm rờ
Trang 1Bây giờ ta có 3 đồng dư thức theo 3 giá trị log chưa biết Giải các phương trình đồng dư này, ta có log52 = 6578, log53 = 6190, log57 = 1301
Bây giờ giả sử ta cần tìm log59451, ta chọn số mũ "ngẫu nhiên" s=7736 và tính:
9451ì57736 mod 10007 = 8400
Vì 8400 = 24315271 các thừa số trong B nên ta nhận được:
log59451 = 4log52 + log53 + log55 + log57 - s mod 10006
= 4ì6578 + 6190 + 2ì1 + 1310 - 7736 mod 10006 = 6057
Kiểm tra lại ta thấy rằng 56057 ≡ 9451 ( mod 10007)
Đã có nhiều nghiên cứu phân tích mò mẫm nhiều kiểu thuật toán khác nhau Với giả thiết hợp lý, Thời gian chạy tiệm cận của giai đoạn tiền tính toán này cỡ
và thời gian để tính một giá trị logarithm rời rạc riêng là khoảng
Hình 5.5 Bít thứ i của logarithm rời rạc
Bản chất của bài toán: I = (p, α, β, i) trong đó p là số nguyên tố ,
α∈Zp* là phần tử nguyên thuỷ, β ∈ Zp* và i là một số nguyên sao cho 1
≤ i ≤ ⎣log2(p-1)⎦
Mục tiêu:Tính Li(β) là bít thấp nhất thứ i của logαβ (với α và p cho trước)
5.1.2 Độ bảo mật tưng bít của các logarithm rời rạc
Bây giờ ta xem xét vấn đề về thông tin bộ phận của các logarithm rời rạc và thử xem việc tính các bít riêng của các logarithm rời rạc là khó hay dễ
Cụ thể , xét bài toán trình bày trên hình 5.5 Bài toán này được gọi là bài toán
về bít thứ i
Trang 2Trước tiên, ta sẽ chỉ ra rằng, bít thấp nhất của các logarithm rời rạc rất
dễ tính toán Nói cách khác, nếu i = 1 thì bài toán về bít thứ i có thể giải
được một cách hiệu quả Điều này rút ra từ tiêu chuẩn Euler liên quan đến thặng dư bình phương theo modulo p, với p là số nguyên tố
Xét ánh xạ f: Zp* ặZp* được định nghĩa như sau:
f(x) = x2 mod p Nếu kí hiệu QR(p) là tập các thặng dư bình phương theo modulo p thì
QR(p) = { x2 mod p : x ∈ Zp*} Trước tiên ta thấy rằng, f(x) = f(p-x) Tiếp theo xét thấy:
w2 ≡ x2 mod p khi và chỉ khi p | (w-x)(w+x)
điều này sẽ xảy ra khi và chỉ khi w ≡ ± x mod p Từ đây rút ra:
| f-1(y) | = 2 với mọi y ∈ QR(p) và bởi vậy:
| QR(p) = (p-1)/2
Điều đó có nghĩa là có đúng một nữa các thặng dư trong Zp* là các thặng dư bình phương và một nữa không phải
Bây giở giả sử rằng, α là một phần tử nguyên thuỷ của Zp* Khi đó
αa∈QR(p) nếu a chẵn Vì (p-1)/2 phần tử α0mod p, α2 mod p, .,αp-3 mod p
đều là các phần tử khác nhau nên:
QR(p) = {α2i mod p: 0 ≤ i ≤ (p-3)/2}
Bởi vậy, β là thặng dư bình phương khi và chỉ khi logαβ là chẵn, tức khi và chỉ khi L1(β) = 0 Tuy nhiên theo tiêu chuẩn Euler β là thặng dư bình phương khi và chỉ khi
β(p-1)/2 ≡ 1 (mod p)
Trang 3Như vậy, ta đã có công thức hữu hiệu sau để tính L1(β):
Bây giờ xét việc tính Li(β) với i > 1 Giả sử
p-1 = 2s t trong đó t là số lẻ Khi đó có thể chỉ ra rằng, dễ dàng tính được Li(β) nếu 1≤s Mặt khác, việc tính Ls+1(β) chắc chắn là khó nếu dùng thuật toán giả
định bất kì cho việc tính Ls+1(β) để tính các logarithm rời rạc trong Zp
Ta sẽ chứng minh kết quả này trong trường hợp s = 1 Chính xác hơn, nếu p ≡ 3 (mod 4)là số nguyên tố thì ta sẽ chỉ ra cách sử dụng một thuật toán giả định bất kì tính L2(β) để giải bài toán logarithm rời rạc trong Zp
Nếu β là một thặng dư bình phương trong Zp và p ≡ 3 ( mod 4) thì
±β(p+1)/2 mod p là hai giá trị căn bậc hai của modulo p Một chú ý cũng quan trọng là với bất kì β ≠ 0:
L1(β) ≠ L1(p-β)
nếu p ≡ 3 (mod 4) Ta sẽ thấy điều đó như sau Giả sử
αa ≡ β (mod p) thì αa+(p-1)/2 ≡ -β (mod p)
Vì p ≡ 3 (mod 4) nên số nguyên (p-1)/2 là một số lẻ Từ đây rút ra kết quả
Bây giờ giả sử β = αa với số mũ chẵn a (chưa biết) nào đó Khi đó hoặc:
β(p+1)/4 ≡ αa/2 (mod p) hoặc
-β(p+1)/4 ≡ αa/2 (mod p)
Ta có thể xác định giá trị nào trong hai giá trị có thể này là đúng nếu biết giá trị L2(β), vì
L2(β) = L1(αa/2)
Điều này được khai thác trong thuật toán được mô tả trong hình 5.6
ở cuối thuật toán, các giá trị xi là các bít biểu diễn nhị phân của logαβ, nghĩa là:
0 nếu β(p-1)/2 ≡ 1( mod p)
L1(β)=
1 trong các trường hợp còn lại
Trang 4Dưới đây là một ví dụ nhỏ để minh hoạ
Ví dụ 5.5
Giả sử p =19, α = 2 và β = 6 Vì trong ví dụ này, các giá trị quá nhỏ nên có thể lập bảng các giá trị của L1(γ) và L2(γ) với mọi mọi giá trị γ∈Z19*.( Nói chung L1 có thể tính được một cách hiệu quả bằng tiêu chuẩn Euler, còn
L2 được tính theo thuật toán giả định) Các giá trị này được cho trên bảng 5.1 Thuật toán được tiến hành như trên hình 5.7
Bởi vậy, log26 = 11102 = 14, ta có thể dễ dàng kiểm tra được giá trị này
Hình 5.6 Tính các logarithm rời rạc trong Z p với p ≡ 3 ( mod 4) khi biết trước thuật toán giả định L 2 (β)
1 x0 = L1(β)
2 β = β/αx0 mod p
3 i =1
4 While β ≠ 1 do
5 xi = L2(β)
6 γ = β(p+1)/4 (mod p)
7 if L1(γ) = xi then
8 β = γ
9 else
10 β = p -γ
11 β = β/αx i mod p
12 i = i+1
Bảng 5.1 Các giá trị của L1 và L2 với p =19, α = 2
γ L1(γ) L2(γ) γ L1(γ) L2(γ) γ L1(γ) L2(γ)
1 0 0 7 0 1 13 1 0
2 1 0 8 1 1 14 1 1
3 1 0 9 0 0 15 1 1
4 0 1 10 1 0 16 0 0
5 0 0 11 0 0 17 0 1
6 0 1 12 0 0 18 1 0
Trang 5Có thể đưa ra một chứng minh hình thức cho tính đúng đắn của thuật toán bằng phương pháp quy nạp Kí hiệu
Với i ≥ 0, ta định nghĩa:
Yi = ⎣x/2i+1⎦
Hình 5.7 Tính log 2 6 trong Z 19
1 x0 = 0
2 β =6
3 i =1
5 x1 = L2(6) = 1
6 γ = 5
7 L1(5) = 0 ≠ x1
10 β =14
11 i =2
12 i =2
5 x2 = L2(7) =1
6 γ = 11
7 L1(11) = 0 ≠ x2
10 β =8
11 β =4
12 i = 3
5 x3 = L2(4) = 1
6 γ =17
7 L1(17) = 0 ≠ x3
10 β = 2
11 β =1
12 i = 4
4 DONE
Cũng vậy ta xác định β0 là giá trị của β ở bước 2 trong thuật toán; và với i≥1,
ta xác định βi là giá trị của β ở bước 11 trong bước lặp thứ i của vòng While
Có thể chứng minh bằng phương pháp quy nạp rằng:
βi ≡ α2Y i (mod p) với mọi i≥0 Bây giờ để ý rằng: 2Y = Y - x