Vietebooks Nguyn Hong Cng
Trang 11
Bây giờ ta có 3 đồng d thức theo 3 giá trị log cha biết. Giải các
phơng trình đồng d này, ta có log
5
2 = 6578, log
5
3 = 6190, log
5
7 = 1301.
Bây giờ giả sử ta cần tìm log
5
9451, ta chọn số mũ "ngẫu nhiên"
s=7736 và tính:
9451ì5
7736
mod 10007 = 8400
Vì 8400 = 2
4
3
1
5
2
7
1
các thừa số trong B nên ta nhận đợc:
log
5
9451 = 4log
5
2 + log
5
3 + log
5
5 + log
5
7 - s mod 10006
= 4ì6578 + 6190 + 2ì1 + 1310 - 7736 mod 10006
= 6057.
Kiểm tra lại ta thấy rằng 5
6057
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ố ,
Z
p
*
là phần tử nguyên thuỷ, Z
p
*
và i là một số nguyên sao cho 1
i log
2
(p-1).
Mục tiêu:Tính L
i
() 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 tng 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.
Vietebooks Nguyn Hong Cng
Trang 12
Trớ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: Z
p
*
ặZ
p
*
đợc định nghĩa nh sau:
f(x) = x
2
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) = { x
2
mod p : x Z
p
*
}
Trớc tiên ta thấy rằng, f(x) = f(p-x). Tiếp theo xét thấy:
w
2
x
2
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 Z
p
*
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 Z
p
*
. Khi đó
a
QR(p) nếu a chẵn. Vì (p-1)/2 phần tử
0
mod 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 L
1
() = 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)
Vietebooks Nguyn Hong Cng
Trang 13
Nh vậy, ta đã có công thức hữu hiệu sau để tính L
1
():
Bây giờ xét việc tính L
i
() với i > 1. Giả sử
p-1 = 2
s
t
trong đó t là số lẻ. Khi đó có thể chỉ ra rằng, dễ dàng tính đợc L
i
() nếu
1s. Mặt khác, việc tính L
s+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 L
s+1
() để tính các logarithm rời rạc trong Z
p
.
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 L
2
() để giải bài toán logarithm rời rạc trong Z
p
.
Nếu là một thặng d bình phơng trong Z
p
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:
L
1
() L
1
(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 (cha 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ị L
2
(), vì
L
2
() = L
1
(
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ị x
i
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)
L
1
()=
1 tron
g
các trờn
g
hợ
p
còn lại
Vietebooks Nguyn Hong Cng
Trang 14
Dớ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 L
1
() và L
2
() với mọi mọi giá trị Z
19
*
.(
Nói chung L
1
có thể tính đợc một cách hiệu quả bằng tiêu chuẩn Euler, còn
L
2
đợ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, log
2
6 = 1110
2
= 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. x
0
= L
1
()
2. = /
x
0
mod p
3. i =1
4. While 1 do
5. x
i
= L
2
()
6. =
(p+1)/4
(mod p)
7. if L
1
() = x
i
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 L
1
và L
2
với p =19, = 2
L
1
() L
2
() L
1
() L
2
() L
1
() L
2
()
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
Vietebooks Nguyn Hong Cng
Trang 15
Có 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:
Y
i
= x/2
i+1
Hình 5.7 Tính log
2
6 trong Z
19
1. x
0
= 0
2. =6
3. i =1
5. x
1
= L
2
(6) = 1
6. = 5
7. L
1
(5) = 0 x
1
10. =14
11. i =2
12. i =2
5. x
2
= L
2
(7) =1
6. = 11
7. L
1
(11) = 0 x
2
10. =8
11. =4
12. i = 3
5. x
3
= L
2
(4) = 1
6. =17
7. L
1
(17) = 0 x
3
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 i1,
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 i0. Bây giờ để ý rằng: 2Y
i
= Y
i-1
- x
i