Ở phần này chỳng ta sẽ đỏnh giỏ độ an toàn của sơ đồ chữ kớ số mới đƣợc trỡnh bày ở cụng thức (3.5) và (3.6). Sự phức tạp nhất của thuật toỏn là việc tớnh toỏn giỏ trị δ đƣợc cho bởi hàm . Nhƣ vậy việc xõy dựng „cặp đụi lũy thừa‟ của hàm này dựa trờn việc tớnh toỏn logarit rời rạc là khụng hiệu quả, tƣơng đối mất nhiều thời gian. Sau đõy sẽ trỡnh bày một phƣơng phỏp hiệu quả hơn.
Cỏc bƣớc của thuật toỏn
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
Bước 2:For i = 0 to N
Tớnh z‟(i) = , trong đú số nguyờn N =
Bước 3: Sắp xếp cỏc cặp (I, z‟(i)) theo z‟(i) và đặt j = 0
Bước 4: Tớnh z‟‟(j) =
Bước 5: Tỡm z‟(i0) sao cho z‟(i0) = z‟‟(j) For i = 0 to N
If z‟‟(j) = z‟(i) then chuyển sang bƣớc 6 J = j + 1 quay lại bƣớc 4
Bước 6: Tớnh giỏ trị U‟ = i0N + j
và phõn tớch ra thừa số nguyờn tố của U – U‟
Bước 7: Chọn ƣớc số δ sao cho = β
Chứng minh thuật toỏn
Thuật toỏn tớnh giỏ trị U‟ = i0N + j sao cho y = . Thật vậy, giả sử ta cú i0 và j0 sao cho
Do đú U U‟ mod δ => δ
Độ khú của bƣớc 2 bằng phộp toỏn lũy thừa 2N = 2 . Độ khú của bƣớc 3 bằng Nlog2N trờn bit giỏ trị. Độ khú của bƣớc 4 và 5 là lũy thừa dƣơng với phộp so sỏnh toỏn 2-1Nlog2N. Độ khú của bƣớc 1, 6, 7 và độ khú của tất cả phộp so sỏnh là khụng đỏng kể với độ khú của phộp toỏn lũy thừa. Nhƣ vậy tổng tất cả độ khú của thuật toỏn sẽ là W = 3 . Với 160 bit chỳng ta cú W phộp toỏn lũy thừa. Thuật toỏn cần một lƣợng lớn bộ nhớ để lƣu trữ bit số. Nhƣ vậy thuật toỏn tiết kiệm đƣợc thời gian tớnh toỏn nhƣng tốn bộ nhớ lƣu trữ.
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
Theo thuật toỏn Floyd về yờu cầu lƣu trữ tối thiểu và hiệu quả về thời gian tớnh toỏn ỏp dụng cho {x0, x1, …, xi…, xj…} là một chuỗi 1024 bit thu bởi cụng thức đệ quy sau
xi+1 =
Trong đú xi đƣợc tựy chọn tựy ý. Những dóy ngẫu nhiờn này biểu diễn một phần khụng cú chu kỡ (phần đuụi) theo sau đú bởi phần cú chu kỡ (lặp lại của chu kỡ một số). Độ dài trung bỡnh của phần khụng chu kỡ . Độ dài trung bỡnh của phần chu kỡ là . Theo thuật toỏn Folyd cho phộp tỡm i và j sao cho xi ≠xj và xi+1 = xj+2, khi đú
(xi+1, xj+2) = )
Nhƣ vậy phộp tớnh số mũ và sử dụng rất nhỏ bộ nhớ lƣu trữ. Nhƣ vậy δ là ƣớc số của giỏ trị xi – xj sẽ cú thể dễ dàng tỡm thấy. Do đú số nguyờn tố bớ mật δ cần phải cú độ dài tối thiểu là ≥ 156 160 bit. Nhƣ thế chỳng ta cú độ dài tối thiểu của chữ kớ là 320 bớt cho phƣơng phỏp rỳt gọn chữ kớ số đƣợc cho bởi phƣơng trỡnh (3.5) và (3.6)