Tải bản đầy đủ (.pdf) (57 trang)

Nghiên cứu một số vấn đề bảo mật và an toàn thông tin cho các mạng dùng giao thức liên mạng máy tính IP đảm bảo toán học cho các hệ mật sinh tham số cho hệ mật elgamal

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.61 MB, 57 trang )

Chơng trình KC-01:
Nghiên cứu khoa học
phát triển công nghệ thông tin
và truyền thông

Đề tài KC-01-01:
Nghiên cứu một số vấn đề bảo mật và
an toàn thông tin cho các mạng dùng
giao thức liên mạng máy tính IP

Báo cáo kết quả nghiên cứu

Đảm bảo toán học cho các hệ mật

Quyển 3B: Sinh tham sè an toµn cho hƯ mËt Elgamal”

Hµ NéI-2002


Báo cáo kết quả nghiên cứu

Đảm bảo toán học cho các hệ mật

Quyển 3B: Sinh tham số an toàn cho hệ mật Elgamal

Chủ trì nhóm nghiên cứu:
TS. Lều Đức Tân


Mục lục
chơng i- vai trò của số nguyên tố dạng p=2q+1


TRONG MậT MÃ
mở đầu
1.1 BàI TOáN logarit rời rạc và các ứng dụng trong
mật mÃ
1.1.1 Bài toán logarit rời rạc trên trờng GF(p)
1.1.2 Hệ mật Elgamal
1.1.3 Chữ ký số Elgamal
1.1.4 Sơ đồ phân phối khoá Diffie-Hellman
1.2 các thuật toán tìm logarit rời rạc
1.2.1 Thuật toán Shanks
1.2.2 Thuật toán Pohlig - Hellman
1.2.3 Thuật toán sàng bậc q
1.2.4 Thuật toán sàng trờng số
Tài liệu dẫn
chơng ii-sinh số nguyên tố lớn bằng phơng
pháp tăng dần độ dài
mở đầu
2.1 Một số kết quả trong lý thut sè
2.2 Tht to¸n Pocklington
2.2.1 Tht to¸n kiĨm tra tính nguyên tố Pocklington trên lớp LF
2.2.2 Đánh giá xác suất sai lầm của thuật toán Pock-testF
2.2.3 Thuật toán sinh số nguyên tố trên lớp LF
2.2.3.1 Mở đầu
2.2.3.2 Một số phân tích về khả năng tồn tại số nguyên tố độ dài n
trong lớp số LF
2.3 Thuật toán sinh các số nguyên tố n bit từ
thuật toán sinh các số nguyên tố 2.3.1 Mở đầu
2.3.2 Thuật toán
2.3.3 Phân tích khả năng sinh các số nguyên tố dộ dài n của thuật toán

2.3.4 Phân tích thời gian thực hiện việc sinh một số nguyên tố độ dài n


2.3.5 Sự tồn tại thuật toán nhanh sinh đợc toàn bộ các số nguyên tố
2.3.5.1 Thuật toán
2.3.5.2 Kết luận
Tài liệu dẫn
chơng iii-chơng trình sinh số nguyên tố
mạnh cho hệ mật elgamal
mở đầu
3.1 lớp Lp và số lợng số nguyên tố trong lớp lp
3.1.1 Lớp Lp(k)
3.1.2 Số các số nguyên tố độ dài n=3klogp bit có trong lớp Lp(k)
3.1.3 Thuật toán sinh số nguyên tố n bit trên các lớp Lp(k) với p nhỏ
3.1.4 Trờng hợp p=2
3.2 Việc sinh các số nguyên tố mạnh và gần mạnh
3.2.1 Khái niệm số nguyên tố mạnh và gần mạnh
3.2.2 Số nguyên tố Sophie
3.2.3 Thuật toán sinh số nguyên tố gần mạnh
3.2.3.1 Thuật toán
3.2.4 Thuật toán sinh nhanh các nhân nguyên tố lớn đợc gài đặt
3.2.4.1 Phơng pháp sinh nhanh từ số nguyên tố nhỏ
3.2.4.2 Phơng pháp gấp đôi độ dài từ số nguyên tố lớn
3.3 tính toán trên các số lớn
3.3.1 Phép nhân số lín
3.3.2 PhÐp chia hai sè lín
3.3.3 PhÐp luü thõa modulo các số lớn
3.3.3.1 Công thức luỹ thừa theo khai triển nhị phân của số mũ
3.3.3.2 Công thức luỹ thừa theo khai triển a phân của số mũ
3.3.3.3 Phơng pháp khai triển số mũ theo cơ số thay đổi (cơ số động)

tài liệu dẫn
phụ lục 1. các kết quả thử nghiệm
1.1 Giíi thiƯu vỊ phÇn mỊm


1.1.1 Về lu trữ các số nguyên tố mạnh sinh đợc
1.1.2 Vấn đề ghi lại bằng chứng về tính nguyên tố và tính nguyên tố
mạnh của các số sinh đợc
1.2 Khả năng sinh số nguyên tố mạnh của chơng trình
1.2.1 Số nguyên tố mạnh lớn nhất sinh đợc
1.2.2 Một số kết luận thống kê thu đợc
phụ lục 2. Ví dụ về số các số Pepin, Pocklington
và Sophie
1. Bảng số lợng các số Pepin =r216+1 với r lẻ và không quá 32 bit
2. Bảng số lợng các số Pocklington q=R(216+1)+1 và số Sophie không
quá 32 bit
3. Bảng tất cả các số Sophie dạng q=R(216+1)+1 và không quá 32 bit
3.1 Bảng tất cả các số Sophie dạng q=R(216+1)+1 (từ 25 đến 31 bit)
3.2 Bảng tất cả các số Sophie dạng q=R(216+1)+1 (32 bit)


chơng i. vai trò của số nguyên tố dạng p=2q+1 trong mật mÃ.

chơng i

vai trò của số nguyên tố dạng p=2q+1 TRONG
MậT MÃ

mở đầu
Số nguyên tố dạng p=2q+1 với q cũng nguyên tố, tự nó trong lý thuyết

số cũng là một vẫn đề đợc nhiều nhà toán học lớn quan tâm, nhng từ khi
một số hệ mật khoá công khai ra đời thì một trong những lớp hệ mật đó có
các hệ mật mà độ an toàn của nó dựa trên tích khó giải của bài toán logarit rời
rạc trên trờng GF(p) thì vấn đề sử dụng các số nguyên tố này càng trở nên
cấp thiết. Trong chơng này chúng tôi chỉ điểm lại các kết quả đà đợc
nghiên cứu về vấn đề trên để cuối cùng khẳng định sự định hớng trong đề tài
của chúng tôi là cần thiết. Sự cần thiết này không gì khác là tạo ra cho chúng
ta một "máy" sinh ra đợc các sản phẩm tốt nhất phục vụ cho các hệ mật nói
trên, đó là các số nguyên tố mạnh.
Kết cấu của chơng bao gồm 2 phần chính, một là giới thiệu bài toán
logarit rời rạc trên trờng GF(p) cùng với các ứng dụng trong mật mà của nó
và hai là các thuật toán giải bài toán logarit với mục đích nh là một minh
chứng cho việc khẳng định số nguyên tố dạng p=2q+1 với q cũng nguyên tố
là loại tham số tốt nhất dùng cho các hệ mật nêu trên.

1.1 BàI TOáN logarit rời rạc và các ứng dụng trong
mật mÃ
1.1.1 Bài toán logarit rời rạc trên trờng GF(p)
Cho p là số nguyên tè lỴ, theo lý thut sè ta cã GF(p)={a:0≤ahai phép toán cộng và nhân các số theo modulo p là một trờng, khi này
GF(p)*=GF(p)\{0} là một nhóm nhân cyclic.

đề tµi: sinh sè tham sè cho hƯ mËt elgamal.

8


chơng i. vai trò của số nguyên tố dạng p=2q+1 trong mật mÃ.

Giả sử là phần tử sinh của nhóm nhân trên (hay còn gọi là phần tử

nguyên thuỷ của GF(p)) khi đó ta có aGF(p)* luôn bGF(p)* sao cho
b=a (mod p). Giá trị b nói trên đợc gọi là logarit theo cơ số của giá trị a
trên trờng GF(p) và ký hiệu là b=loga (mod p).
Một vấn đề đặt ra là:
Cho trớc p và aGF(p)* hÃy tìm b=loga (mod p-1).
Vấn đề trên chính là nội dung của bài toán tìm logarit rời rạc trên
trờng GF(p). Trong lý thuyết thuật toán thì bài toán trên đợc coi là một bài
toán khó theo nghĩa cho đến nay vẫn cha tồn tại một thuật toán thời gian đa
thức hoặc gần đa thức để giải nó và cũng chính vì vậy nhiều ứng dụng trong
mật mà đợc ra đời với độ an toàn dựa vào tính khó của bài toán nói trên.
1.1.2 Hệ mật Elgamal
ứng dụng trực tiếp là xây dựng đợc một hệ mật có độ an toàn tính toán

đó là hệ mật khoá công khai nổi tiếng mang tên Elgamal. Hệ mật này đợc
mô tả nh sau.
Trong hệ thống liên lạc mật, mọi ngời dùng chung các tham số bao
gồm p là số nguyên tố và là phần tử nguyên thuỷ của trờng GF(p).
Mỗi ngời A trong hÖ thèng tù chän mét tham sè mËt s(A) cho riêng
mình rồi tính và công khai tham số b(A)=s(A) (mod p) cho mọi ngời.
Một ngời nào đó muốn gửi cho A thông báo M (giả thiết MGF(p)*)
thì làm nh sau:

Quá trình mà hoá M
Chọn ngẫu nhiên khoá kZp-1, tính và gửi cho A cặp C(M)=(x,y) nh
sau.
x=k (mod p) và
y=Mb(A)k (mod p).
Khi nhận đợc C(M)=(x,y) thì A tìm lại đợc M nh sau.
đề tài: sinh số tham số cho hệ mật elgamal.


9


chơng i. vai trò của số nguyên tố dạng p=2q+1 trong mật mÃ.

Quá trình giải mà C(M)
M=y(xs(A))-1 (mod p).
Hệ mật nêu trên gọi là hệ mật Elgamal.
Do b(A) là công khai nên nếu nh bài toán logarit là giải đợc thì có
thể tính đợc s(A)=log b(A) (mod p-1) và do đó hệ mật Elgamal cũng bị phá.
Ngợc lại cũng cha có một kết quả nào nói rằng việc giải đợc mọi bản mÃ
theo hệ Elgamal thì sẽ tìm đợc logarit cho nên chính xác mà nói thì độ an
toàn của hƯ mËt nµy lµ ch−a b»ng tÝnh khã cđa bµi toán logarit song cũng
cha có một khẳng định nào nói rằng vấn đề trên thực sự là dễ hơn cho nên
trên thực tế ngời ta vẫn coi hệ Elgamal là có độ mật tơng đơng với tính
khó của bài toán logarit.
1.1.3 Chữ ký số Elgamal
ứng dụng tiếp sau là thiết lập một sơ đồ chữ ký số cũng mang tên

Elgamal. Sơ đồ này đợc giới thiệu đầu tiên trong một bài báo năm 1985 và
bản cải tiến của nó đợc Viện Tiêu chuẩn và Công nghệ Quốc gia Mỹ chấp
nhận làm chuẩn chữ ký số.
Trong hệ thống cần xác thực chủ quyền trên các văn bản thông qua chữ
ký điện tư, mäi ng−êi dïng chung c¸c tham sè bao gåm p là số nguyên tố và
là phần tử nguyên thuỷ của trờng GF(p).
Mỗi ngời trong hệ thống A tự chọn một tham số mật s(A) cho riêng
mình rồi tính và công khai tham số b(A)=s(A) (mod p) cho mọi ngời.
A muốn ký trên một thông báo M (giả thiết MGF(p)*) thì làm nh sau:
Quá trình ký trên M
Chọn ngẫu nhiên giá trị kZp-1, tính cặp S(M)=(x,y) nh sau.

x=k (mod p) và
y=(M-s(A)x)k-1 (mod p).

đề tài: sinh số tham số cho hÖ mËt elgamal.

10


chơng i. vai trò của số nguyên tố dạng p=2q+1 trong mật mÃ.

Cặp giá trị (x,y) trên gọi là chữ ký của A trên M và ký hiệu là SA(M).
Khi có thông báo M có kèm theo chứ ký SA(M)=(x,y) thì một ngời bất
kỳ có thể kiểm tra tính đúng đắn rằng SA(M) có phải là là chữ ký của A trên
M hay không nh sau.
Quá trình kiểm tra chữ ký S(M)
Tính đúng đắn đợc của chữ ký thông qua tính đúng đắn của đẳng thức
sau:
M=b(A)xxy (mod p).
Sơ đồ chữ ký nêu trên gọi là sơ đồ chữ ký Elgamal.
Do b(A) là công khai nên nếu nh ai đó giải đợc bài toán logarit thì rõ
ràng ngời đó sẽ tính đợc s(A)=log b(A) (mod p-1) và do đó luôn giả mạo
đợc chữ ký của A hay nói một cách khác là sơ đồ chữ ký đà bị phá. Ngợc
lại, việc giả mạo đợc chữ ký của một ngời nào đó trên một văn bản cụ thể
nào đó tuy cha có lêi gi¶i cơ thĨ nh−ng d−êng nh− nã cịng ch−a gắn đợc
với một bài toán đà đợc nghiên cứu kỹ nào nên vẫn còn có khả năng thực
hiện đợc mà không cần đến việc tính logarit. Hiện thời cha ai tìm đợc
cách giải xong cũng cha ai khẳng định rằng nó có thể giải đợc.
1.1.4 Sơ đồ phân phối khoá Diffie-Hellman
Một trong những vấn đề cần phải thực hiện đầu tiên trong một mạng
liên lạc mật đó là các bên trao đổi thông tin mật cần phải có một sự thoả

thuận với nhau về khoá đợc dùng. Việc làm này đợc gọi là quá trình phân
phối khoá và ứng dụng tiếp sau của bài toán logarit là thiết lập đợc một sơ đồ
phân phối khoá tự động một cách công khai, đó là sơ đồ phân phối khoá
Diffie-Hellman và đợc mô tả nh sau.
Trong hệ thống liên lạc mật, mọi ngời dùng chung các tham số bao
gồm p là số nguyên tố và là phần tử nguyên thuỷ của trờng GF(p).
Hai ngời A và B muốn thoả thuận với nhau về một khoá sẽ đợc dùng
trong một phiên liên lạc mật nào đó, họ làm nh sau:

đề tài: sinh sè tham sè cho hÖ mËt elgamal.

11


chơng i. vai trò của số nguyên tố dạng p=2q+1 trong mật mÃ.

Trớc hết, mỗi ngời tự chọn một tham số mật s(A) và s(B) cho riêng
mình, tính rồi công bè cho nhau tham sè b(A)=εs(A) (mod p) vµ b(B)=εs(B)
(mod p).
Khi này cả hai A và B đều có thể tính đợc một tham số chung đó là
k=s(A)s(B) (mod p). Cụ thể:
Đối với A thì tính k=[b(B)]s(A) (mod p).
Đối với B thì tính k=[b(A)]s(B) (mod p).
Tham số k nói trên gọi là khoá chung của A và B.
Bài toán "Cho biết p, , b(A) và b(B). HÃy tính k" đợc gọi là bài toán
Diffie-Hellman. Hiển nhiên nếu giải đợc bài toán logarit thì ta luôn tìm đợc
k. Điều ngợc lại cho rằng nếu có thuật toán giải đợc bài toán DiffieHellman thì sẽ giải đợc bài toán logarit đến nay vÉn ch−a cã mét chøng
minh, tuy nhiªn ng−êi ta vÉn coi là hai bài toán này là tơng đơng và do đó
độ an toàn của việc phân phối khoá theo sơ đồ Diffie-Hellman vẫn đợc quy
về tính khó giải của bài toán logarit.

1.2 các thuật toán tìm logarit rời rạc
1.2.1 Thuật toán Shanks
Một cố gắng đầu tiên trong việc giải bài toán logarit trên trờng hữu
hạn là thuật toán của Danied Shanks. ý tởng có thể trình bày nh sau :
Ký hiƯu: q= p − 1  .
Gi¶ sư x=logεa (mod p) chúng ta sẽ tìm đợc giá trị này dới dạng q
phân x=x0+x1q+...
Trớc hết ta thấy rằng do 0xp-1 nên xi=0 với mọi i>1 do đó :
x=x0+x1q.
Bây giờ từ ®¼ng thøc a=εx (mod p) ta cã :
aε − x = qx (mod p).
0

1

đề tài: sinh số tham số cho hÖ mËt elgamal.

12


chơng i. vai trò của số nguyên tố dạng p=2q+1 trong mật mÃ.

Việc tìm b, thực chất là tìm cặp x0 và x1, đợc tiến hành bằng cách vét
cạn các cặp i,j với 0i,jq-1cho đến khi tìm đợc i,j sao cho a-i=jq (mod p).
Khi đó rõ ràng x0=i và x1=j và ta đợc x=loga=i+jq.
Nh vậy bằng thuật toán này có thể tìm đợc logarit rời rạc với thời
gian tính cỡ O(q) và không gian nhớ cỡ O(q) ( bỏ qua các thừa số logarit).
Kết quả 1.2. Thời gian tính tiệm cận của thuật toán Shanks để tìm đợc
logarit trên trờng GF(p) là:
1

2

(1-1)

L(p)=exp{ lnp}.

1.2.2 Thuật toán Pohlig - Hellman
Thuật toán thứ hai chúng tôi muốn đề cập đến là thuật toán Pohlig Hellman. Cơ sở toán học của thuật toán Pohlig - Hellman là định lý phần d
Trung hoa sau đây.
Định lý phần d Trung hoa. Giả sử m1, m2,...,mr là các số nguyên dơng
nguyên tố cùng nhau từng đôi một và cho x1, x2,..., xr là các số nguyên.
Khi đó từ hệ r đồng d thức x=xi (mod mi) (i=1ữr) sẽ có một nghiệm
duy nhất theo modulo M= m1.m2...mr đợc cho theo c«ng thøc :
Γ

x= ∑ a i M i y i (mod M)
i =1

Trong đó Mi=M/mi và yi= M i1 (mod mi) với (i=1ữr).
r

Từ định lý trên, nếu p-1 =

q
i =1

i

i


thì rõ ràng để tính x=loga (mod p-1)

chúng ta có thể thông qua việc tính r giá trị xi=logεa (mod mi) víi mi= qiα

i

(i=1÷r). Chi tiÕt cđa tht toán có thể xem trong [Stinson], một điều đáng
phân tích ở đây là nếu p-1 chỉ toàn những ớc nguyên tố nhỏ thì việc tìm
x=loga (mod p) rất là dễ dàng và nh vậy điều kiện cần thiết đối với tham số

đề tài: sinh số tham số cho hệ mật elgamal.

13


chơng i. vai trò của số nguyên tố dạng p=2q+1 trong mật mÃ.

p là nó phải không có tính chất trên. Đến đây ta có thể thu đợc kết luận sau
vỊ thêi gian tÝnh cđa tht to¸n Pohlig - Hellman.
KÕt quả 1.3. Thời gian tính tiệm cận của thuật toán Pohlig - Hellman để tìm
đợc logarit trên trờng GF(p) là:
L(p)=exp{lnq} với q là ớc lớn nhất của p-1.

(1-2)

Với kết quả trên của thuật toán Pohlig-Hellman chúng ta thấy rằng
tính khó của việc giải bài toán logarit rời rạc trên GF(p) có thể quy về tính
khó của việc tìm giá trị nµy theo modulo q víi q lµ −íc lín nhÊt của p-1 (tức
là tìm xq=x (mod q)), chính vì lý do này mà từ nay về sau khi trình bày các
thuật toán khác chúng tôi chỉ tập trung vào việc tìm giá trị xq nói trên mà thôi.

1.2.3 Thuật toán sàng bậc q
Để tìm xq với x=loga (mod p) và q là ớc của p-1, thuật toán sàng bậc
q dựa vào cơ sở sau.
Kết quả 1.4. Nếu tìm đợc cặp s,t sao cho gcd(t,q)=1 và sat là một thặng d
bậc q trong GF(p) tøc lµ ∃w∈GF(p)* sao cho εsat=wq (mod p) thì xq=-st-1
(mod q).
Chứng minh.
Từ định nghĩa x=loga (mod p) ta cã a=εx (mod p)

(1-3).

Tõ gi¶ thiÕt εsat=wq (mod p), thay vào (1.3) ta đợc
s(x)t= wq (mod p).

(1-4).

Do là phần tử nguyên thuỷ của GF(p) nên luôn tồn tại r sao cho w=εr
(mod p) vµ nh− vËy tõ (1.4) ta cã.
εs(εx)t=(εr)q (mod p), suy ra
s+xt=rq (mod p-1) hay
s+xt=0 (mod q)

đề tài: sinh số tham số cho hệ mật elgamal.

(1-5).

14


chơng i. vai trò của số nguyên tố dạng p=2q+1 trong mật mÃ.


Từ giả thiết gcd(t,q)=1 nên tồn tại t-1 (mod q) và do đó từ (1-5) ta có
ngay x=-st-1 (mod q) và đây là điều cần chứng minh.
Kỹ thuật để tìm cặp s,t nêu trong kết quả 1.4 đợc thực hiện nh sau.
Chọn B là một số nguyên nào đó gọi là ngỡng của cơ sở phân tích,
giả sử m là số các số nguyên tố không quá B, sau đó tiến hành các bớc sau:
Bớc 1.Tìm m+1 cặp số si,ti (i=1ữm+1) thoả mÃn điều kiện:
m

s a t (mod p)= viq ∏ p ji
i

i

αi, j

j =1

(víi 0≤αi,j
(1-6).

Ký hiƯu véc tơ i=(i,1, i,2,..., i,m) với i=1ữm+1, rõ ràng hệ m+1 véc
tơ trong không gian m chiều nên phải phụ thuộc tuyến tính tức là tồn tại bộ
m+1 số (k1,k2,...,km+1) không đồng thời bằng 0 với 0kik11+ k22+...+ km+1m+1==(0,0,...,0).

(1-7).

Bớc 2. Tìm bộ (k1,k2,...,km+1) nói trên.

Lấy s= k1s1+ k2s2+...+ km+1sm+1 và t= k1t1+ k2t2+...+ km+1tm+1, dễ dàng kiểm tra
đợc s,t thoả mÃn điều kiện sat=wq (mod p).
Chú ý rằng, bớc 1 đợc thực hiện theo cách Lấy-Kiểm tra cho đến
khi tìm đợc đầy đủ số cặp theo yêu cầu, còn việc làm của bớc 2 chính là
giải một hệ phơng trình đại số tuyến tính hệ số trên GF(q) mà hệ này luôn có
nghiệm. Tóm lại ta luôn tìm đợc cặp s,t theo mong muốn, tuy nhiên để có
thể ®−a ra mét dÉn gi¶i t−êng minh vỊ thêi gian tính của thuật toán này là một
điều không đơn giản. Chúng ta bằng lòng với kết quả đà đợc công bố về thời
gian tính của phơng pháp sàng bậc q nh− sau (xem [Stinson]).
KÕt qu¶ 1.5. Thêi gian tÝnh tiƯm cận của thuật toán sàng bậc q để tìm đợc
logarit trên trờng GF(p) là
1

1

L(p)=exp{(1+O(1)) ln 2 q.ln ln 2 q }

(1-8).

ở trên q là ớc nguyên tố lớn nhất của p-1, còn O(1) là một vô cùng bé khi
q.

đề tài: sinh sè tham sè cho hÖ mËt elgamal.

15


chơng i. vai trò của số nguyên tố dạng p=2q+1 trong mật mÃ.

1.2.4 Thuật toán sàng trờng số

Giống nh ý tởng của thuật thoán sàng bậc q, phơng pháp sàng
trờng số cũng thực hiện theo kiểu tìm cặp s,t sao cho sat=wq (mod p), sự
khác biệt cơ bản là thay vì việc tìm các cặp s,t trên trực tiếp trên GF(p) của
sàng bậc q thì sàng trờng số lại đi tìm chúng trong trờng mở rộng K nào đó.
Tính hiệu quả của thuật toán sàng trờng số là ở chỗ có thể khéo léo lựa chọn
đợc trờng K thích hợp để việc tìm cặp s,t đợc dễ dàng hơn. Để có thể trình
bày cặn kẽ các bớc thực hiện của phơng pháp này chúng ta cần phải có một
loạt kiến thức bổ trợ về đại số cao cấp (xem chi tiết trong [P. M. Hoà]), mục
đích của đề tài này không phải là lặp lại một việc làm nh vậy mà ở đây
chúng tôi chỉ muốn dẫn ra kết quả cuối cùng về thời gian tính của thuật toán
đó là.
Kết quả 1.6. Thời gian tính tiệm cận của thuật toán sàng trờng số để tìm
đợc logarit trên trờng GF(p) là
1

2

L(p)=exp{(C+O(1)) ln 3 q.ln ln 3 q }

(1-9).

ở trên q là ớc nguyên tố lớn nhất của p-1, C1.9229 còn O(1) là một vô
cùng bé khi q.
Kết luận
Để các hệ mật mà độ mật dựa trên cơ sở tính khó giải của bài toán
logarit trên trờng GF(p) có độ an toàn cao thì:
1.Độ dài nhị phân của số nguyên tố p phải lớn. Theo các đánh giá thì
logp>500.
2. p-1 phải có ớc nguyên tố lớn, tốt nhất là các số nguyên tố mạnh.
Với các kết luận trên rõ ràng việc sinh các số nguyên tố mạnh để sử

dụng trong Ngành là một điều tất yếu và vô cùng cần thiết trong giai đoạn
này.

đề tài: sinh số tham số cho hệ mật elgamal.

16


chơng i. vai trò của số nguyên tố dạng p=2q+1 trong mật mÃ.

Tài liệu dẫn
[P. M. Hoà] Phạm Thị Minh Hoà, Nghiên cứu phơng pháp sàng trờng số,
tính logarit rời rạc trên trờng hữu hạn. Đề tài cấp cơ sở, Häc viƯn
KTMM, Hµ néi 2000.
[Stinson] Douglas Robert Stinson, MËt m· Lý thuyết và Thực hành. Bản
dịch tiếng Việt Hà nội 1995.

đề tài: sinh số tham số cho hệ mật elgamal.

17


chơng ii. sinh số nguyên tố.bằng phơng pháp tăng dần độ dài

chơng ii

sinh số nguyên tố lớn bằng phơng pháp
tăng dần độ dài
mở đầu
Một thuật toán sinh các số nguyên tố thông thờng đợc coi là một hệ

quả của một thuật toán kiểm tra tính nguyên tố nào đó theo phơng thức
"Chọn ngẫu nhiên số tự nhiên x độ dài n, sau đó lấy và kiểm tra các số trong
dÃy x+k (với k=0,1,2,...) cho đến khi đợc số nguyên tố". Nh vậy tự nhiên
mà nói thì thuật toán sinh bao giờ cũng "lâu" hơn thuật toán kiểm tra mà nó
dựa vào. Cho đến bây giờ, cha tồn tại một thuật toán kiểm tra tất định tính
nguyên tố trong thời gian ®a thøc do vËy mäi thuËt to¸n sinh theo c¸ch cổ
truyền trên không thể thực hiện đợc trong thời gian đa thức. Đối với thuật
toán xác suất thì với phơng ph¸p kiĨm tra tÝnh x¸c st cđa Rabin-Miller hay
cđa Salovay-Strassen chúng ta có ngay đợc một thuật toán sinh với thời gian
tính cỡ O(n6) và trong trờng hợp giả thuyết Riemann mở rộng là đúng đắn
thì nó cũng là một thuật toán tất định.
Trong chơng này chúng tôi đa ra một phơng thức mới để xây dựng
thuật toán sinh và với phơng thức này chúng tôi thu đợc một kết quả khá
thú vị đó là thuật toán xác suất đợc thực hiện trong thời gian O(n8). Điểm
khác biệt cơ bản giữa thuật toán mà chung tôi đa ra với thuật toán xác suất
của Rabin-Miller hay của Salovay-Strassen là ngay cả trong trờng hợp giả
thuyết Riemann mở rộng cha đợc chứng minh thì các số thu đợc tại đầu ra
của thuật toán này luôn là nguyên tố trong khi đó của thuật toán sau là cha
chắc. Kết quả thu đợc của chúng tôi chỉ là một đóng góp khiêm tốn trong
lĩnh vực lý thuyết số và thuật toán bởi vì nó mới chỉ là một ví dụ chứng tỏ sự
"Không phải là hệ quả của thuật toán sinh đối với thuật toán kiểm tra" mà vốn
đà là nh vậy thì tính đa thức của thuật toán sinh cũng cha chắc đà đóng góp
đợc gì cho khả năng tạo đợc thuật toán kiểm tra mà theo chúng tôi thì sự

đề tài: sinh 6ham sè cho hÖ mËt elgamal.

18


chơng ii. sinh số nguyên tố.bằng phơng pháp tăng dần độ dài


thiết kế đợc thuật toán kiểm tra nhanh mới là đóng góp lớn. Một đặc điểm
trong việc xây dựng thuật toán sinh của chúng tôi là các công cụ đợc sử
dụng rất đơn giản thậm chí là rất "cũ kỹ" không đòi hỏi một bổ trợ cấp cao
nào cho nên việc lập trình thực hiện nó có thể phổ cập đến mọi đối tợng.
Đơn giản nhng hiệu quả có lẽ là đóng góp cao nhất của chúng tôi trong công
bố thuật toán ở chơng này.
Kết quả đạt đợc chính trong chơng của chúng tôi có thể nêu nh sau:
Thứ nhất. Từ những phân tích về sai lầm loại 1 của thuật toán kiểm tra tính
nguyên tố các số trong lớp LF chúng ta có đợc thời gian thực hiện của thuật
toán Pock_testF dùng để kiểm tra tính nguyên tố của một số tự nhiên độ dài n
là TPock-test(n)Cn4lnn với C là một hằng số tính đợc theo xác suất sai lầm
loại 1 của thuật toán là .
Thứ hai. Từ định lý 2.6 về sự tồn tại số nguyên tố trong đoạn
[yF+1;(y+)F+1] với lnF(lnlnF+6) chúng ta có đợc định lý 2.7 về thời
gian tối đa của thuật toán sinh POCK-GENF ký hiệu là TPOCK-GEN(n)C0n6.
Cuối cùng. Bằng việc chứng minh đợc thời gian sinh một số nguyên tố độ
dài n bằng thuật toán sinh các số nguyên tố độ dài có đợc kết luận quan trọng nhất của chơng đó là thời gian tính của thuật
toán sinh số của chúng ta xây dựng là O(n7).
2.1 Một sè kÕt qu¶ trong lý thuyÕt sè
Mét sè kÕt qu¶ trong lý thuyết số đợc trích dẫn dới đây (xem
[Ribenboim], [L. Đ. Tân]...) sẽ đợc sử dụng để xây dựng thuật toán sinh số
nguyên tố và quan trọng hơn cả là chứng minh tính đa thức của thuật toán
sinh này.
Định lý Pocklington. Cho x=RF+1, trong ®ã gcd(R,F)=1. Khi ®ã nÕu mỗi
ớc nguyên tố q của F tồn tại giá trị a sao cho:
(2-1)
(a). ax-1=1 (mod x).
(2-2)

(b). (a(x-1)/q-1,x)=1.
đề tài: sinh 6ham sè cho hÖ mËt elgamal.

19


chơng ii. sinh số nguyên tố.bằng phơng pháp tăng dần độ dài

Thì mọi ớc nguyên tố p của x đều có dạng p=tF+1.
Khái niệm thặng d bậc q. Ta nói a là thặng d bậc q modulo x nếu tồn tại b
sao cho a=bq (mod x).
Định lý về thặng d bậc q. Cho p là số nguyên tố lẻ sao cho q là ớc của p-1.
Khi đó:
(a). Điều kiện cần và đủ để giá trị mGF(p)* là thặng d bậc q là
m(p-1)/q=1 (mod p)

(2-3).

(b). Số các thặng d bậc q trong GF(p)* đúng bằng (p-1)/q.

(2-4).

Một vài điều kiện đủ về tính nguyên tố.
Một điều kiện đủ về tính nguyên tố. Cho x=RF+1 thoả mÃn điều kiện của
định lý Pocklington. Khi đó
(a). Nếu RF thì x là số nguyên tố.
(b). Nếu FTrong (b) thì A=R (div F) và B=R (mod F).
Định lý Dirichlet
Số các số nguyên tố có dạng Ak+B với gcd(A,B)=1 không vợt quá x ký

hiệu là A,B(x) là vô cùng lớn tơng đơng với

A,B(x) ~

1
x
khi x tøc lµ
ϕ ( A) ln x

1
x
ϕ ( A) ln x

(2-5).

ë đây (A) là số các số không quá A và nguyên tố với A.
Chú thích.
Định lý đầu tiên do Dirichlet đa ra và chứng minh vào năm 1837 mới
dừng ở kết luận là có vô số số nguyên tố dạng Ak+B, sau này Valée Poussin
đề tài: sinh 6ham số cho hÖ mËt elgamal.

20


chơng ii. sinh số nguyên tố.bằng phơng pháp tăng dần độ dài

bổ xung thêm công thức về mật độ. Ngoài ra nhiều tác giả đà chỉ ra sự không
nh nhau của các giá trị A,B(x) với cùng một giá trị A còn 1Bvào năm 1853 Tschebycheff chỉ ra 3,1(x)<3,2(x) còn 4,1(x)<4,3(x) với một
số giá trị x nhỏ; vào năm 1957 Leech đà tính đợc với số x=26861 là số

nguyên tố nhỏ nhất để 4,1(x)>4,3(x) và tơng tự Bays & Hudson (1978) tìm
đợc x=608981813029 là số nguyên tố nhỏ nhất để 3,1(x)>3,2(x) việc chỉ ra
này Hudson & Brauer đà phải bỏ ra vài năm để nghiên cứu (xem
[Ribenboim] trang 148-150).
2.2 Thuật toán Pocklington
2.2.1 Thuật toán kiểm tra tính nguyên tố Pocklington trên lớp LF
Với cơ sở là các kết quả đà nêu trong mục 0, chúng ta có thể xây dựng
đợc thuật toán xác suất định hớng chấp nhận để kiểm tra tính nguyên tố của
các số nguyên thuộc líp LF nh− sau.
r

Gi¶ sư F=∏ p α , víi mỗi i=1ữr ta lấy số tự nhiên Mi gọi là các tham số
i

i =1

của thuật toán. Các tham số này sẽ đợc phân tích sau.
Thuật toán 2.1. Thuật toán Pocklington.ký hiệu là Pock-testF.
Đầu vào xLF.
Bớc 1. Lấy i=1;
Bớc 2. p=pi; M=Mi; m=1;
B−íc 3. LÊy a=random(x).
B−íc 4. KiĨm tra ®ång d− thức aN-11 (mod x).
Nếu đúng, sang bớc 5.
Ngợc lại, Pock-testF(x)=0, thuật toán dừng. (*1).
Bớc 5. Kiểm tra điều kiện a(x-1)/p1 (mod x)
Nếu đúng, sang bớc 6.
Ngợc lại, sang bớc 7.

đề tµi: sinh 6ham sè cho hƯ mËt elgamal.


21


chơng ii. sinh số nguyên tố.bằng phơng pháp tăng dần ®é dµi

B−íc 6. KiĨm tra ®iỊu kiƯn mNÕu ®óng, m=m+1, quay về bớc 3.
Ngợc lại, Pock-testF(x)=0, thuật toán dừng. (*2).
Bớc 7. Kiểm tra điều kiện gcd(a(x-1)/p-1,x)=1.
Nếu đúng, sang bớc 8.
Ngợc lại, Pock-testF(x)=0, thuật toán dừng. (*3).
Bớc 8. Kiểm tra điều kiện iNếu đúng, i=i+1, quay về bớc 2.
Ngợc lại, sang b−íc 9.
B−íc 9. KiĨm tra ®iỊu kiƯn R≤F.
NÕu ®óng, Pock-testF(x)=1, thuật toán dừng.
Ngợc lại, sang bớc 10.
Bớc 10. Kiểm tra ®iỊu kiƯn (R mod F)2-4(R div F)=Q2.
NÕu ®óng, Pock-testF(x)=0, tht toán dừng. (*4).
Ngợc lại, Pock-testF(x)=1, thuật toán dừng.
2.2.2 Đánh giá xác suất sai lầm của thuật toán Pock-testF.
Theo thuật toán trình bày ở phần trớc thì Pock-testF(x)=0 xảy ra tại 1
trong 4 tr−êng hỵp sau.
(*1). ax-1≠1 (mod x). (b−íc 4)
(*2). a(x-1)/p1 (mod x) trong cả M lần lấy ngẫu nhiên a. (b−íc 6)
(*3). a(x-1)/p≠1 (mod x) vµ gcd(a(x-1)/p-1,x)>1. (b−íc 7)
(*4). (R mod F)2-4(R div F)=Q2. (bớc 10)
Hiển nhiên các trờng hợp (*1), (*3) và (*4) kết luận là đúng, vậy kết
luận sai chỉ có thể xảy ở điều kiện (*2). Điều xảy ra (*2) tơng đơng với sự

kiện trong cả M lần chọn ngẫu nhiên a chúng đều thoả mÃn điều kiện a(x-1)/p1
(mod x). Theo định lý về thặng d bậc p, thì a là p-thặng d modulo x và xác
suất lấy đợc một p-thặng d trong một lần chọn ngẫu nhiên chỉ là

đề tài: sinh 6ham số cho hệ mËt elgamal.

1
, do ®ã
p

22



×