Một số phương phỏp hiện đại

Một phần của tài liệu Nghiên cứu hệ mật mã khoá công khai trong giao dịch điện tử (Trang 51)

Phương phỏp phõn tớch p-1 của Pollard

Thuật toỏn phõn tớch p-1 của Pollard là một thuật toỏn phõn tớch với mục để tỡm cỏc thừa số nguyờn tố của số nguyờn n (n là hợp số) một cỏch cú hiệu quả. Trong đú p-1 là b-Smooth, b là số nguyờn dương chọn trước. (b là số nguyờn dương, số nguyờn n được gọi là b-Smooth nếu mọi thừa số nguyờn tố của nú đều  b).

ý tưởng của thuật toỏn: Nếu p-1 là ước của Q, a là số nguyờn dương, gcd(a, p) = 1 khi đú p sẽ là ước của aQ - 1. Bởi theo định lý Fermat: “ nếu ap-1  1 mod p thỡ aQ 1 mod p”, do đú cú thể tỡm p bằng thuật toỏn Euclid đối với aQ - 1 và n.

Thuật toỏn:

Chọn B là số nguyờn dương nào đú làm cận, Q là bội số chung nhỏ nhất của tất cỏc cỏc số nguyờn tố  B. Với Q  n, ta cú nếu ql n  l ln q  ln n  l        q n ln ln Do đú, Q =    B q q n

q ln /ln sẽ bao toàn bộ cỏc số nguyờn tố phõn biệt q  B. Nếu p là một thừa số nguyờn tố của n, thoả p-1 là B-Smooth thỡ p-1 sẽ là ước của Q. vỡ vậy với mọi số nguyờn a thoả món UCLN(a, p) = 1, thỡ theo định lý Fermat, ta cú: aQ  1 mod p. Nếu d = UCLN(aQ -1, n) thỡ p phải là ước của d.

Chỳ ý: cú thể xảy ra trường hợp d = n, trong trường hợp này thuật toỏn khụng phõn tớch được n và điều này chỉ xảy ra khi n là tớch của ớt nhất hai thừa số nguyờn tố phõn biệt rất lớn.

Thủ tục giả mó của thuật toỏn. Input: Số nguyờn n, n là hợp số

Output: d là thừa số khụng tầm thường của n. 1. chọn cận B

- tớnh d = UCLN(a, n) - nếu d  2 thỡ return(d)

3. với mỗi số nguyờn tố q  B, làm cỏc việc sau: - tớnh l =       q n ln ln - tớnh a = aql modn 4. tớnh d = UCLN(a-1, n)

5. Nếu d = 1 hoặc d = n thỡ return(FALSE); ngược lại return(d).

Phương phỏp phõn tớch của Pollard rho

Phương phỏp này cũn được gọi là phương phỏp phõn tớch thứ 2 của Pollard. í tưởng của phương phỏp:Tạo chuỗi số nguyờn  xi tuần hoàn theo mod p Tỡm về phớa trước của chuỗi cỏc chỉ số i, j sao cho: xixj mod p. Xỏc định thừa số p của N.

Việc xỏc định chuỗi  xi tuần hoàn theo mod m, m là số nguyờn dương bất kỳ, cú thể thực hiện như sau:

Đặt xi F(xi-1, xi-2, ..., xi-s) mod m (3.14) trong đú: s là một hằng số độc lập với i,

F là một đa thức với giỏ trị khởi đầu là x1, x2,...,xs Khi đú cỏc giỏ trị xs+1, xs+2, ... được tớnh theo (I.3.2.1).

Vỡ tất cả cỏc xk được lấy modun m nờn chỉ cú m giỏ trị khỏc nhau mà xk cú thể nhận, mặt khỏc chỉ cú nhiều nhất là ms chuỗi s số xk liờn tiếp (xi-1, xi-2, ..., xi-s) do đú sau ms + 1 bước sẽ cú hai chuỗi s số liờn tiếp giống nhau xảy ra. Ta gọi 2 chuỗi này là: xi-1, xi-2, ..., xi-s và xj-1, xj-2, ..., xj-s.

Theo cỏch xỏc định xi cho bởi (I.3.2.1) là chỉ dựa vào s giỏ trị đứng trước (xi- 1, xi-2, ..., xi-s) nờn rừ ràng là xi và xj phải cú giỏ trị giống nhau.

Vỡ vậy ta thu được hai chuỗi s số nguyờn liờn tiếp giống nhau mới là: xi, xi-1, xi-2, ..., xi+1-s và xj, xj-1, xj-2, ..., xj+1-s.

Tiếp tiếp quỏ trỡnh này cho xi+1, xj+1, ... cuối cựng ta thu được chuỗi tuần hoàn theo mod m.

Việc xỏc định cỏc chỉ số i, j thoả món: xixj mod p, được tiến hành như sau:

Do p là ước của N cũn chưa biết, nờn ta tỡm i, j theo cỏch: Tớnh xi mod N, xj mod N và kiểm tra UCLN(xi - xj, N) > 1;

Nếu UCLN(xi - xj, N) < N thỡ nú chớnh là một thừa số khụng tầm thường của N; ngược lại gcd(xi - xj, N) = N thỡ việc phõn tớch là khụng thành cụng.

Phương phỏp phõn tớch bằng phõn số liờn tục

Phương phỏp phõn tớch bằng phõn số liờn tục là một trong cỏc phương phỏp phõn tớch rất hiệu quả. Nú là phương phỏp đầu tiờn cú thời gian thực hiện là hàm mũ nhỏ, tức là: nếu thời gian phõn tớch số nguyờn n được viết dạng n, thỡ  sẽ tăng rất chậm so với việc của tăng n. Trong suốt những năm 70 của thế kỷ 20, nú là phương phỏp chớnh được sử dụng để phõn tớch cỏc số nguyờn lớn. Một trong cỏc ý tưởng của phương phỏp là việc tỡm nghiệm khụng tầm thường của phương trỡnh đồng dư bậc hai: x2 y2mod N, sau đú tớnh thừa số p của n bằng thuật toỏn Euclid đối với

x+y và n. Kỹ thuật tỡm nghiệm khụng tầm thường củax2y2mod n được vận dụng theo kỹ thuật của phương phỏp Legendre, nhưng được ỏp dụng để tỡm cỏc thặng dư bậc hai nhỏ đối với cỏc khai triển theo phõn số liờn tục của n. Từ ý tưởng của Maurice và Kraitchik là từ cỏc thặng dư đó biết cú thể kết hợp để tạo ra cỏc thặng dư mới, trong phương phỏp này, cỏc thặng đó biết được kết hợp để tạo ra cỏc thặng dư bậc hai - là ý tưởng giống với ý tưởng trong phương phỏp p-1 của Pollard.

Thành cụng của phương phỏp phõn tớch p-1 của Pollard dựa vào tớnh chất p-1 là B_Smooth đối với một số thừa số nguyờn tố của n; trường hợp khụng tồn tại p như vậy, thỡ việc phõn tớch sẽ khụng thành cụng. Xuất phỏt từ nhận xột, p-1 chớnh là bậc của nhúm *

p

Z , phương phỏp phõn tớch bằng đường cong Ellip được cải tiến từ phương phỏp phõn tớch p-1 của Pollard bằng cỏch thay nhúm *

p

Z bởi nhúm đường cong ellip ngẫu nhiờn trong Zp. Bậc của cỏc nhúm như vậy là xấp xỉ phõn bố đều trong khoảng p12 p,p12 p, Nếu nhúm được chọn cú bậc là B_Smooth, thỡ phương phỏp đường cong ellip cú sỏc xuất tỡm được thừa số khụng tầm thường của N cao hơn. Ngược lại, nếu bậc của nhúm được chọn khụng là B_Smooth thỡ việc phõn tớch cũng là khụng thành cụng, những cú thể lặp lại bằng cỏch chọn nhúm khỏc.

Thời gian tỡm được thừa số p của n phụ thuộc vào kớch thước của thừa số p; chớnh vỡ vậy mà phương phỏp này được lựa chọn để tỡm cỏc thừa số nhỏ của n trước. Thực nghiệm cho thấy, phương phỏp đạt hiệu quả tốt cho việc tỡm cỏc thừa số cú t chữ số; t 40. Nhưng với cỏc bài toỏn mà cú thừa số nguyờn tố cú kớch thước xấp xỉ nhau thỡ phương phỏp này là khụng phự hợp.

Phương phỏp phõn tớch bỡnh phương ngẫu nhiờn

í tưởng của phương phỏp là từ nhận xột: nếu x và y là hai số nguyờn thoả món điều kiện :

x2  y2 mod n và x khụng đồng dư với  y mod n (3.15)

Khi đú n sẽ chia hết cho x2 – y2 = (x-y)(x+y), những n khụng đồng thời chia hết cho (x-y) và (x+y). Vỡ thế UCLN(x-y,n) sẽ là một thừa số khụng tầm thường của n.

Chiến lược được sử dụng để tỡm x và y một cỏch ngẫu nhiờn thoả món điều kiện (3.15) của phương phỏp là như sau:

Chọn tập S gồm t số nguyờn tố đầu tiờn, S được gọi là “cơ sở phõn tớch” Tỡm cỏc cặp số (ai, bi) thoả:

2. , 0, 1    t j ij e j i p e b ij bi laf pt-Smooth.

Bước tiếp theo là tiến hành tỡm tập con cỏc bi mà tớch của nú là một số chớnh phương. Cú thể chọn được tập bằng cỏch chỉ chọn cỏc bi mà trong khai triển của nú, cỏc thừa số pj cú số mũ chẵn, hoặc với mỗi i, ta tạo một vộctơ vi = (vi1,vi2,...,vit); trong đú vij = eij mod 2; sau đú tỡm tập con T khỏc trống của S thoả món : 

  T i i v 0

trong Z2. (tập T đựơc tỡm ra bằng phương phỏp khử Gauss tỡm tập vộctơ phụ thuộc tuyến tớnh). Khi đú  T i i b sẽ là một số bỡnh phương. Rồi đặt:    T i i a x ;    T i i b y ta

thu được cặp (x, y) thoả x2  y2 mod N; kiểm tra xem x y mod N ?, nếu sai thỡ UCLN(x-y, N) sẽ là một thừa số khụng tầm thường của N. Ngược lại, thay một số cặp (ai, bi) rồi lặp lại thuật toỏn.

Phương phỏp phõn tớch bằng sàng trường số

Sàng trường số được xem là một trong những phương phỏp hiệu quả nhất để phõn tớch những số nguyờn N cú dạng: N = re + s; với r, s là những số nguyờn nhỏ, e cú thể lớn. Vớ dụ những số đó được phõn tớch thành cụng bằng phương phỏp là: số F9 = 2512 + 1, và số M523 = 2523 - 1.

Cũng giống với phương phỏp bỡnh phương ngẫu nhiờn, ý tưởng của sàng trường số là tỡm cỏc số nguyờn x và y thoả món: x2 y2 mod N và x khụng đồng dư với  y mod N. Điểm khỏc so với bỡnh phương ngẫu nhiờn là, phương phỏp sàng trường số sử dụng 2 cơ sở phõn tớch: một bao gồm tất cả cỏc số nguyờn tố nhỏ hơn một cận B1 nào đú; cơ sở cũn lại bao gồm tất cả cỏc số nguyờn tố (thoả một tiờu chuẩn nào đú) và nhỏ hơn một cận B2, B2 là phần tử của một vũng (ring) cỏc số nguyờn của một trường số đại số được chọn phự hợp.

Cho đến nay, sàng trường số được xem là phương phỏp giải bài toỏn phõn tớch ra thừa số nhanh nhất.

Phương phỏp sàng bỡnh phương

Phương phỏp sàng bỡnh phương là phương phỏp phõn tớch thừa số hiệu quả nhất, phương phỏp này được mụ tả như sau:

Gọi n là số nguyờn dương cần phõn tớch.

Ký hiệu: m n , đa thức q(x) = ( x +m)2 - n. (3.16) Từ nhận xột: q(x) = x2 + 2mx + m2 - n  x2 + 2mx là rất bộ so với n nếu giỏ trị tuyệt đối của x là nhỏ. Thuật toỏn sàng bỡnh phương chọn ai = (x+m) và kiểm tra xem bi = (x +m)2 - n cú phải là pt - Smooth khụng. Nhận thấy rằng a2i = (x

+m)2 bi mod n, nếu bi chia hết cho số nguyờn tố p thỡ (x +m)2  n mod p. Do đú, cơ sở phõn tớch chỉ cần cỏc số nguyờn tố p cú ký hiệu Legendre (n/p) = 1; hơn nữa, vỡ bi cú thể õm vỡ vậy -1 cũng được chọn vào cơ sở phõn tớch.

Cỏc sơ đồ (giải thuật) mó khoỏ cụng khai về căn bản thường chậm hơn so với cỏc lược đồ mó khoỏ đối xứng (vd DES). Vỡ điều này mà trong thực tế, mó húa khoỏ cụng khai được sử dụng rộng rói để vận chuyển cỏc khoỏ được sử dụng cho việc mó hoỏ cỏc dữ liệu quan trọng bằng cỏc giải thuật mó đối xứng và cỏc ứng dụng khỏc yờu cầu tớnh nguyờn vẹn dữ liệu, xỏc thực; bờn cạnh đú cũng ỏp dụng cho việc mó hoỏ cỏc danh mục dữ liệu nhỏ như số PIN trờn thẻ tớn dụng của khỏch hàng[1].

Chương 4

CÁC SƠ ĐỒ CHỮ Kí SỐ, SƠ ĐỒ ĐỊNH DANH ỨNG DỤNG HỆ MÃ RSA CHO BÀI TOÁN GDĐT

Một phần của tài liệu Nghiên cứu hệ mật mã khoá công khai trong giao dịch điện tử (Trang 51)

Tải bản đầy đủ (PDF)

(88 trang)