1. Trang chủ
  2. » Kỹ Năng Mềm

NHỮNG THUẬT TOÁN LOGARITH RỜI RẠC

9 7 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 9
Dung lượng 19,55 KB

Nội dung

Chọn số lượng đủ lớn biểu thức (5.3), giải hệ phương trình tuyến tính thu được ứng với các ẩn log a q -logarith rời rạc của phần tử của cơ sở nhân tử.. Tầng 4.[r]

(1)

Chương 5

NHỮNG THUẬT TOÁN LOGARITH RỜI RẠC 5.1 Mở đầu Phương pháp đơn định

Cho G nhóm nhân Abel, a , b∈G Bài tốn tìm kiếm nghiệm phương trình ax=b

gọi tốn logarith rời rạc nhóm G Nghiệm x phương trình gọi logarith rời rạc số a b, ký hiệu logab , số a cố định nghiệm

phương trình tồn tại; logab∈Z|G| , ¿G∨¿

Bài toán logarithm rời rạc có vai trị lớn ứng dụng mật mã Đặc biệt quan trọng trường hợp Gq¿❑

=F¿ , với q=p

l , p số nguyên tố, l∈N , tức trong

trường Galois, trường hợp G nhóm điểm đường cong Elliptic trường hữu hạn

Chúng ta xem phương trình

ax≡ b(modp) (5.1)

trong nhóm Zp❑ , với p số nguyên tố Chúng ta giả sử bậc a(modp)

p-1 Khi phương trình giải được, nghiệm x phần tử Zp −1 Trong phần miêu tả phương pháp đơn định để xác định nghiệm (5.1)

Nếu với giúp đỡ phương pháp chọn giải phương trình (5.1) cần O(p) lệnh số học

Nghiệm logab phương trình (5.1) tìm theo công thức sau 1− aj

¿1bj(modp −1)

¿

logab ≡

❑ ❑

¿

,

thế độ phức tạp tính theo cơng thức thi tồi cách lựa chọn

Thuật tốn giải phương trình (5.1) có độ phức tạp O(p1/2logp) lệnh số học

(2)

Bước Lập bảng giá trị cu(modp

),1≤u ≤ H , xếp Bước 4. Lập bảng giá trị b.av

(modp),0≤ v ≤ H , xếp

Bước 5. Tìm trùng phần tử từ bảng thứ va bảng thứ hai Để làm điều cu≡ b.av(modp) ,

từ aHu− v≡b(modp)

Bước 6. Đưa giá trị x ≡Hu− v(modp −1) Kết thúc thuật toán.

Chúng ta chứng minh đắn thuật toán Bất kỳ số nguyên x, 0≤ x ≤ p −2 , biểu diễn dạng x ≡Hu− v(modp −1) , 1≤ u ≤ H ,0≤ v ≤ H , rõ ràng tập số H,H-1,H-2,…,H-H, 2H, 2H-1,…, H2 , H21 ,…, H2− H chứa tập số 0,1,…,p-2, H2

>p Từ dẫn đến đắn thuật toán Đánh giá độ phức tạp thuật toán rõ ràng đúng, tập từ N phần tử xếp cần O(NlogN) lệnh số học

5.2 Thuật toán Pohlig-Xellman

Bây giả sử biết phân tích thành nhân tử p-1 thừa số

p−1=∏

i=1

s

qiαi

Lúc phương trình (5.1) giải cần log

αi(¿p+qi)

i=1

s

¿

O¿

lệnh số học với giúp đỡ

thuật toán sau

Thuật toán Pohlig-Xellman

Bản chất thuật tốn nằm chổ, tìm số lượng đủ lớn phương trình x theo modulo qiαi với tất i, sau tìm nghiệm phương trình ban đầu định lý phần dư trung hoa Để tìm x theo modulo thế, phải giải đồng dư thức

a

p −1

qi αi

¿x(a

p −1

qi αi

)(modp)

¿

Phương trình giải với độ phức tạp thời gian đa thức trường hợp qi khơng q lớn (có nghĩa không vượt qúa logp¿c

¿ , c số đó)

(3)

p−1¿/q

¿

j¿

rq , j≡ a¿

, j=0, , q −1

Bước 2. Đối với số nguyên tố q, ∨¿p −1 , tìm logab(mod)

Đặt

x ≡logab(mod)≡ x0+x1q+ +xα −1qα −1(mod) , với 0≤ xi≤q −1 Lúc từ

(5.1) dẫn đến

p−1¿/q

¿

p−1¿/q

¿

x0¿ ¿

b¿

Với giúp đỡ bảng bước tìm x0 .Lúc rõ ràng ta có p−1¿/q2

¿

p −1¿/q

¿

x1¿ ¿

ba− x0¿¿ ¿

Theo bảng bước ta tìm giá trị x1 tiếp tục Giá trị xi

được tìm thấy từ phương trình

p −1¿/qi+1

¿

p −1¿/q

¿

xi¿ ¿

ba− x0− x1q − − xi−1qi −1

¿¿ ¿

Bước 3. Khi tìm logab(modqiαi

), i=1, ., s , tìm logab(modp −1) theo

định lý phần dư trung hoa Kết thúc thuật toán

Chúng ta chứng minh đánh giá độ phức tạp thuật toán Tập phần tử

p−1¿/qi

¿ ¿

a¿

cần ∑

i=1

s

O(logp) lệnh số học Sau tập rqi,j tất q

(4)

i=1

s

O(qi) lệnh số học Để tìm giá trị xi bước cần nâng bậc(có nghĩa tìm

axi−1q

i −1

), tìm phần tử nghịch đảo,nhân, nâng bậc tiến hành theo bảng Tất kết hợp lại độ phức tạp thuật toán nêu

Chú ý Thuật tốn Polug-Xellman có độ phức tạp đa thức (logOp¿c1)

¿ trường

hợp tất ước nguyên tố qi của p không vượt logp¿c2

¿ , c1, c2

hằng số dương

5.3 Phương pháp ρ - Pollaid logarithm rời rạc

Chúng ta tìm hiểu phương pháp ρ - Pollaird nhân tử hóa số ngun Bây tìm hiểu tốn logarithm rời rạc theo modulo số nguyên tố p Chúng ta muốn giải phương trình ax≡ b(modp) Để làm việc xem dãy số

{ui},{vi},{zi} , i=0,1,2, .,

Được xác định sau: u0=v0=0 , z0=1 ,

ui+1≡ui+1(modp −1) , 0<zi<p/3 ;

ui+12ui(modp −1) , p/3<zi<2/3p ;

ui+1≡ui(modp −1) , 2/3p<zi<p ;

vi+1≡ vi(modp −1) , 0<zi<p/3 ;

vi+12vi(modp −1) , p/3<zi<2/3p ;

vi+1≡ vi+1(modp−1) , 2/3p<zi<p ;

zi+1≡ bui+1avi+1

(modp −1)

Tiếp theo xem tập hợp (zi, ui, vi, z2i,u2i, v2i) , i=1,2,3, ., tìm vị

trí i, cho zi=z2i Từ đẳng thức cuối ta rút bu2i− ui≡ avi− v2i(modp

)

Nếu gcd(u2i− ui, p −1)=1 , l∈Z , l(u2i−ui)1(modp −1) thu

được

b ≡ al(vi−v2i)(modp ) , từ giá trị x cần tìm logab ≡l(vi− v2i)(modp −1)

5.4 Logarith rời rạc trường nguyên tố

(5)

ở p số nguyên tố Thuật tốn có độ phức tạp Lp[1

2; c] với số giá trị số c Chúng ta cho a(modp) có bậc p-1

Thuật tốn Adleman

Tầng 1 Hình thành sở nhân tử, bao gồm tất số nguyên tố q, q ≤ B=econst√logploglogp

Tầng 2 Bằng cách chọn lựa tìm số tự nhiên ri cho ari≡

q ≤ B

qαiq

(modp) , q số nguyên tố Từ dẫn đến

ri≡

q ≤ B

αiqlogaq(modp −1) (5.3), q số nguyên tố

Tầng 3 Chọn số lượng đủ lớn biểu thức (5.3), giải hệ phương trình tuyến tính thu ứng với ẩn logaq -logarith rời rạc phần tử sở nhân tử.

Tầng 4 Bằng cách lựa chọn tìm giá trị r, cho ar⋅b ≡

q ≤B

qβq⋅p

1 pk(modp) ,

p1, , pk - số nguyên tố với độ lớn “trung bình”, có nghĩa B<pi<B1 , với B1=econst√logploglogp

Tầng 5 Bằng cách tính tốn tương tự tầng thuật tốn, tìm logarithm rời rạc logapi đối với số nguyên tố p1, , pk tầng 4.

Tầng 6 Xác định giá trị cần tìm logab : logab ≡− r+∑

q ≤ B

βqlogaq+∑

i=1

k

logapi(modp −1) Kết thúc thuật toán.

Thuật toán COS Tầng 1 Đặt

H:=[P1/2]+1, J:=H2− p>0, L

=e√logploglogp,0<ε<1 Hình thành tập hợp

{qq<L1/2}{H+c∨0<c<L1/2+ε} , q số nguyên tố

Tầng 2 Bằng cách sàng tìm cặp c1, c2 sao cho 0<ci<L1/2+ε , i=1,2

(H+c1)(H+c2)

q ≤ L1/2

(6)

(H+c1)(H+c2)≡ J+(c1+c2)H+c1c2(modp)

Logarith theo số a thu biểu thức sau

loga(H+c1)+loga(H+c2)

q ≤ L1/2

αq(c1, c2)logaq(modp −1) a tính theo cơng thức

a ≡

q ≤ L1/2

qβq(modp ) Từ

1

q ≤ L1/2

βqlogaq(modp −1)

Tầng 3 Trên tầng tìm số lượng đủ lớn phương trình, giải hệ phương trình tuyến tính thu tìm loga(H+c),logaq

Tầng 4 Để tìm x, đưa giới hạn L2 Bằng cách chọn ngẫu nhiên,chúng ta tìm giá trị w, thỏa mãn biểu thức

awb ≡

q<L1/2

qgq

L1/2 ≤ u<L2

uhu(modp

) ,q,u số nguyên tố

Trong biểu thức với có mặt số nguyên tố u có độ lớn “trung binh” Tầng 5 Bằng cách tương tự tầng tìm logarithm số số nguyên tố u, u xuất tầng

Tầng 6 Chúng ta tìm đáp số x=logab ≡− w+∑

q<L1/2

gqlogaq+ ∑

L1/2 ≤u<L2

hulogau(mod p−1) Thuật tốn có độ phức tạp làO(exp((logploglogp)1 / 2)) lệnh số học.

Thuật toán LOGsmooth

Giả sử q số nguyên tố, ước p-1 Khi tập nghiệm phương trình x 'q=1

trong trường Zp gồm phần tử 1, c , c2, , cq −1 , với

c ≡ a

p −1

q

(modp) Nếu cho

số d biết thỏa mãn điều kiện phương trình x 'q=1 , lựa chọn số t

cho d=ct,0≤ t ≤ q −1

Giả sử p−1=qkl , với q l nguyên tố Chúng ta tìm số

ui,i=0,1, , k , mà chúng thỏa mãn

ba− ui

¿lq

k −i

1(modp)

¿ (5.4)

Khi i=k có đồng dư

ba− uk

¿l1(modp)

(7)

Từ (5.2) tương đương

x −uk

¿ ¿

a¿

¿

Bởi ord(a)=p-1, nên đẳng thức cuối cho ta (x − uk)l chia hết cho p-1, có nghĩa

x ≡uk(modqk)

Chúng ta tìm đồng dư thức ước q 1, tìm x (mod p-1) định lý phần dư trung hoa

Vấn đề cịn lại tìm ui để thỏa mãn phương trình (5.4) Chúng ta đặt

u0=1 Nếu số ui tìm được, từ (5.4) dẫn đến ba− ui

¿lq

k −i −1

¿ thỏa mãn phương

trình x 'q=1(modp

) Lúc tìm t cho

ba− ui

¿lq

k −i −1

ct

(modp)

¿

Chúng ta đặt ui+1=ui+tq

i

Lúc

ba− ui+1

¿lq

k− i−1

cta−tlqk−11(modp)

¿

Như điều có nghĩa thỏa mãn (5.4)

Nhờ mà tìm uk cách thực theo sơ đồ: ba

− ui

¿lq

k −i −1

(modp) u0=1,ri≡¿ ,

ti=logcri, ui+1=ui+tiqi

Chúng ta xem ví dụ sau

Tìm số n cho 2x≡74(mod 163)

Ở a=2,b=74,p=163, p−1=2 34

Đặt q=3 Khi k=4 l=2 Ngoài c ≡2p −31=254104(mod 163) ,chúng ta biểu

diễn thuật tốn qua bảng sau

i

ri 58 104

ti

ui+1 7 34

(8)

Bây chọn q=2 Lúc k=1,l=81 c ≡2p −21≡ −1(mod163) Tương tự ta lập bảng

i

ri -1

ti

ui+1

Từ có x ≡2(mod 2) (5.6)

Từ (5.5) (5.6) suy x ≡34(mod162)

5.5 Logarith rời rạc trường Galois

Cố định số nguyên tố p, số tự nhiên n>1, đặt q=pn Giả sử a phần tử sinh nhóm cyclic qF¿❑

¿ Chúng ta muốn giải phương trình

ax

=b trường F(q) Để làm điều sử dụng thuật toán với sở nhân tử Chúng ta xem thuật toán index-calculus sau

Ý tưởng thuật toán , từ đẳng thức ∏

i=1

m

xi=∏ j=1

n

yj

Với phần tử xi, yj nằm trường hữu hạn Zp , thì ∑

i=1

m

logaxi≡

j=1

n

logayj(modp −1) (5.7)

Khi nhận số lượng đủ lớn biểu thức (5.7)( điều kiện phải có phần tử g, mà logag biết), giải hệ phương trình tuyến tính với ẩn logaxi logayj trong vành Zp −1 với điều kiện số lượng ẩn hệ không lớn

Phương pháp đơn giản để tạo biểu thức (5.7) – chọn phần tử g∈Zp , tính u=ag(modp) cách lựa chọn thử tìm số thỏa mãn điều kiện sau

u=∏ pi

Từ ý tưởng ta có thuật tốn cụ thể sau: Thuật toán index-calculus

(9)

vậy rút gọn theo modulo f(y), điều tìm hiểu chương trường số Phần tử q −1¿/(¿¿p −1)

a1=a¿ có bậc p-1 tạo thành p¿❑

F¿ Với hổ trợ lập

bảng logarithm “hằng số”- có nghĩa phần tử trường nguyên tố F(p)⊆F(q) Chúng ta tính a10=1,a1, a12, , a1p −2

Tầng 2 (Lựa chọn sở nhân tử) Cơ sở nhân tử B⊆F(q) thành lập từ tất đa thức bất khả quy g bật không lớn t, t số tham số, t<n

Tầng 3 (Tìm biểu thức) Lựa chọn ngẫu nhiên m, 1≤ m≤ q −2 , tìm giá trị cho thỏa mãn biểu thức

am≡ c

0∏

g∈B

gαg(m)

(modf(y)) , Với c0∈F(p) , từ tìm biểu thức

m≡logac0+∑

g∈B

αa(m)logag(modq −1) ,

ở logac0 chúng ta biết, logag chưa biết độ lớn.

Tầng 4 (tìm thuật toán cho phần tử sở nhân tử) Khi tìm tầng với số lượng đủ lớn biểu thức (lớn |B|), giải hệ phương trình tuyến tính vành Zq −1 tìm logag với g∈B

Tầng 5 (Tìm logarith riêng) Chúng ta tìm giá trị m cho modf(x)

gβg (¿) b⋅am≡ c1∏

g∈B

¿

, c1∈F(p) Từ tìm giá trị cần tìm

logab ≡− m+logac1+∑

g∈B

βqlogag(modq −1)

Ngày đăng: 08/04/2021, 18:09

w