1. Trang chủ
  2. » Luận Văn - Báo Cáo

luận văn: nghiên cứu sự an toàn của một số hệ mật mã hiện đại

84 464 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 84
Dung lượng 3,38 MB

Nội dung

luận văn: nghiên cứu sự an toàn của một số hệ mật mã hiện đại trường đh quốc gia hà nộiluận văn: nghiên cứu sự an toàn của một số hệ mật mã hiện đại trường đh quốc gia hà nộiluận văn: nghiên cứu sự an toàn của một số hệ mật mã hiện đại trường đh quốc gia hà nội

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

LUẬN VĂN THẠC SĨ KỸ THUẬT PHẦN MỀM

Người hướng dẫn khoa học: TS Lê Phê Đô

Hà Nội – 2014

Trang 2

LỜI CAM ĐOAN

Tôi xin cam đoan kết quả đạt được trong luận văn là sản phẩm của riêng của cá nhân tôi, nếu trích dẫn thì có ghi chú rõ ràng Trong toàn bộ nội dung của luận văn, những điều được trình bày hoặc là của cá nhân hoặc là được tổng hợp từ nhiều nguồn tài liệu Tất cả các tài liệu tham khảo đều có xuất xứ rõ ràng và được trích dẫn hợp pháp

Tôi xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo quy định cho lời cam đoan của mình

Hà Nội, ngày 02 tháng 12 năm 2014

Phạm Thị Lương

Trang 3

MỤC LỤC

LỜI CAM ĐOAN 1

DANH MỤC CÁC TỪ VIẾT TẮT 4

DANH MỤC HÌNH VẼ 4

MỞ ĐẦU 5

Lý do chọn đề tài: 5

Đối tượng và phạm vi nghiên cứu: 5

Mục đích nghiên cứu của luận văn: 5

Bố cục luận văn: 5

CHƯƠNG I CƠ SỞ TOÁN HỌC CỦA MẬT MÃ HIỆN ĐẠI 7

I.1 Tổng quan về số nguyên tố: 7

1.1 Số nguyên tố 7

1.2 Một số định lý cơ bản 11

1.3 Thuật toán kiểm định số nguyên tố Miller – Selfridge – Rabin (MSR) 12

1.4 Các tiêu chuẩn đường cong Elliptic 13

1.5 Thuật toán AKS 15

I.2 Các phương pháp phân tích nhân tử số nguyên 16

2.1 Các phương pháp phân tích nhân tử cổ điển 16

2.2 Phương pháp phân số liên tục 17

2.3 Thuật toán Pollard 19

2.4 Sàng bậc 2 21

2.5 Phương pháp đường cong Elliptic 23

I.3 Logarit rời rạc 25

3.1 Các khái niệm cơ sở 25

3.2 Thuật toán bước Baby và bước Giant của Shank 25

3.3 Thuật toán Pollig – Hellman 26

CHƯƠNG 2: NGHIÊN CỨU SỰ AN TOÀN CỦA MỘT SỐ HỆ MẬT MÃ HIỆN ĐẠI 30 II.1 Mật mã RSA 30

Trang 4

2.1 Các cuộc tấn công vào RSA 30

2.1.1 Factoring RSA-768 31

2.1.2 Tấn công Fault-Base : 41

II.2 Mật mã Elgamal 51

2.2 Các cuộc tấn công vào hệ mật mã Elgamal : 51

2.2.1 Phương pháp phân rã số nguyên: 51

2.2.2 Tấn công gặp nhau ở giữa( MEET-IN-THE-MIDDLE ATTACK) 56

2.2.3 Tấn công hai bảng 58

II.3 Mật mã đường cong Elliptic 59

2.3 Các cuộc tấn công vào mật mã dựa trên đường cong Elliptic 60

2.3.1 Tấn công ECC2K-130 61

2.3.2 Tấn công logarit rời rạc trên đường cong 66

2.3.3 Tấn công dựa vào nguồn điện đơn giản- Simple power attacks (SPA): 70

2.3.4 Tấn công phân tích nguồn điện vi phân DPA: 71

2.3.5 Tấn công không điểm(Zero-point attacks): 72

2.3.7 Đánh giá sự an toàn của mật mã dựa trên đường cong Elliptic thông qua các cuộc tấn công : 76

CHƯƠNG 3: CÀI ĐẶT 78

Một số hình ảnh 79

TỔNG KẾT 80

KẾT LUẬN 80

HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 81

TÀI LIỆU THAM KHẢO 82

Trang 5

DANH MỤC CÁC TỪ VIẾT TẮT

Mật mã đường cong Elliptic ECC Elliptic Curve Cryptography Định lý đồng dư Trung Hoa CRT Chinese Remainder Theorem Bài toán logarit rời rạc DLP Discrete Logarithm Problem Mảng cổng lập trình được dạng trường FPGA Field Programmable Gate Array

Tầng các ổ cắm bảo mật SSL Secure Sockets Layer

ECDBL Elliptic curve dou-bling ECADD Elliptic curve addition

Phân tích nguồn điện vi phân DPA Differential Power Analysis Phân tích nguồn điện đơn giản SPA Simply Power Analysis

DANH MỤC HÌNH VẼ

Hình 2.1 Lược đồ tấn công Fault-Base

Hình 2.2 Ví dụ về khôi phục khóa theo các bit của cửa sổ

Hình 2.3 Tỷ lệ bit lỗi thu được trong OpenSSL khi điều chỉnh điện thế Hình 2.4 Phần trăm tích lũy các bits của khóa bí mật khi khôi phục Hình 3.1 Chọn số cần phân tích

Hình 3.2 Kết quả phân tích

Bảng 2.1 Độ dài của khóa giữa RSA và ECC khi ở cùng mức an toàn

Trang 6

Trong luận văn tôi đã tổng hợp các kết quả nghiên cứu mới nhất ở Việt Nam và trên thế giới về ba hệ mật mã trên Từ đó người sử dụng có thể đảm bảo an toàn cho dữ liệu của mình

Tôi xin chân thành cảm ơn thầy Lê Phê Đô đã tận tình hướng dẫn tôi hoàn thành luận văn này

Đối tượng và phạm vi nghiên cứu:

Đối tượng nghiên cứu:

 Các khái niệm, thuật toán và độ phức tạp của các thuật toán liên quan

 Độ phức tạp và hiệu quả của một số phương pháp tấn công

 Xây dựng và cài đặt một phương pháp tấn công RSA

Phạm vi nghiên cứu của luận văn:

 Các khái niệm và thuật toán từ cổ điển đến hiện đại liên quan đến các hệ mật

mã RSA, Elgamal, và các hệ mật trên đường cong Elliptic

 Các vấn đề mới xuất hiện liên quan đến độ an toàn của các hệ mật mã hiện đại

 Những kết quả mới trong các lĩnh vực liên quan

Mục đích nghiên cứu của luận văn:

Dựa trên kết quả tổng hợp được đề xuất những phương án sử dụng các hệ mật

mã RSA, Elgamal và hệ mật trên đường cong Elliptic một cách an toàn trong điều kiện hiện nay

Bố cục luận văn:

Luận văn gồm 3 chương cùng với phần mở đầu, kết luận và các danh mục

Chương 1: Cơ sở toán học của mật mã hiện đại

Trình bày các khái niệm cơ bản của đại số và số học, các thuật toán và bài toán liên quan đến các hệ mật mã

Chương 2: Nghiên cứu sự an toàn của một sô hệ mật mã hiện đại

Chương này trình bày tổng quan về các hệ mật mã RSA, Elgemal, mật mã dựa trên đường cong Elliptic Nội dung chính của chương là trình bày các tấn công và đánh giá sự an toàn thông qua các tấn công đó

Chương 3: Cài đặt

Trang 7

Cài đặt một tấn công vào RSA sử dụng phương pháp phân tích Fermat số N

Trang 8

CHƯƠNG I CƠ SỞ TOÁN HỌC CỦA MẬT MÃ HIỆN ĐẠI

I.1 Tổng quan về số nguyên tố:

1.1 Số nguyên tố

a, Số lượng số nguyên tố

Số nguyên tố là số nguyên dương chỉ chia hết cho 1 và chính nó

Ví dụ, 2, 3, 7 là ba số nguyên tố đầu tiên

Ba số nguyên tố lớn nhất được tìm ra cho đến nay là

STT Số nguyên tố Số chữ số Ngày tìm ra Người/Tổ

năm 2013

GIMPS / Curtis

Coope

Các số nguyên tố lớn đóng vai trò cốt yếu trong việc xây dựng các hệ mật mã hiện đại, như hệ mật RSA, ElGamal và hệ mật trên đường cong Eliptic Vì vậy, việc tìm ra các số nguyên tố lớn luôn giành được sự quan tâm đặc biệt của cộng đồng toán học và công nghệ thông tin

Câu hỏi đặt ra là số các số nguyên tố có đủ nhiều cho các ứng dụng của chúng

ta hay không? Hơn 2.000 năm trước Euclid đã chứng minh được tính vô hạn của các

số nguyên tố Cụ thể hơn, các nhà toán học sau đó đã tìm ra được phân bố của các số nguyên tố trong định lý sau:

Định lý 1.1 Định lý về số các số nguyên tố

Giả sử ( )x là số các số nguyên tố nhỏ hơn hoặc bằng x, khi đó ( )

ln

x x

x

  theo nghĩa ( ) / ( / ln )x x x 1 khi x

Tôi không đưa ra chứng minh định lý này ở đây vì ra ngoài nội dung của luận văn, mà tôi đưa ra bảng sau để chứng tỏ số nguyên tố quả thực là đủ dùng cho các ứng dụng của chúng ta

Trang 9

Một số nguyên dương n > 1 bất kỳ luôn có biểu diễn duy nhất dưới dạng:

b, Mười số nguyên tố lớn nhất thuộc lớp Mersenne:

rank prime Digits who when Reference

Trang 10

Các số nguyên tố không thuộc lớp Mersenne

Số nguyên tố lớn nhất không thuộc dạng số Mersenne được phát hiện là số 19.249x213.018.586+1, gồm 3.918.990 chữa số Ngày được kiểm định là 26 tháng 3 năm

2007

c, Số nguyên tố dạng n!+1

Số nguyên tố lớn nhất dạng n!+1 là số 150.209!+1 gồm 712.355 chữ số, được chứng minh vào tháng 10 năm 2011 Mười số nguyên tố lớn nhất dạng n!+1

rank prime Digits Who When reference

Trang 11

e, Cặp số nguyên tố sinh đôi n±1:

Cặp số nguyên tố sinh đôi lớn nhất là cặp 3756801695685x2666669±1, được tìm ra vào tháng 12 năm 2011 Mười số nguyên tố dạng sinh đôi lớn nhất:

g, Các số nguyên tố dạng Sophie German:

Số nguyên tố p được gọi là số nguyên tố dạng Sophie German nếu 2p+1 cũng là số nguyên tố Mười số nguyên tố dạng Sophie German lớn nhất là:

Trang 12

Giả sử a  Z và nn  Phần tử nghịch đảo của số nguyên a theo modulo n là

số nguyên x thỏa mãn ax ≡ 1(modn) Nếu x là số nguyên dương nhỏ nhất thỏa mãn là phần tử nghịch đảo của a, ta ký hiệu x=a-1

Ngoài ra, ta nhận thấy a=a-1 nếu và chỉ nếu a=1 hoặc a=p-1, do đó tích của các

số a-1 với 2≤ a-1 ≤p-2 cũng chính là tích của các số a=2, 3, …, p-2 được săp theo 1 thứ

tự nào đó Bới vậy, sau khi hoán vị các phần tử một cách thích hợp, ta có :

Trang 13

Định lý 1 6 Tổng quát hóa Định lý nhỏ Fermat

Nếu n thuộc N và m thuộc Z sao cho gcd(m, n) = 1, khi đó

mФ(n)≡1(modn)

1.3 Thuật toán kiểm định số nguyên tố Miller – Selfridge – Rabin (MSR)

Bài toán là kiểm định số n>1 lẻ xem có phải là số nguyên tố hay không

Chúng ta giả sử n-1=2tm, ở đây m là số nguyên lẻ thuộc N và t thuộc N

Số n được sử dụng trong các bước tính toán sau, trong đó ta sử dụng “thuật toán bình phương và nhân”

Bước 1: Chọn ngẫu nhiên số a thỏa 2≤a≤n-2

Bước 2 : Tính x0≡am(modn)

Nếu x0  1(mod )n

Khi đó ta kết thúc thuật toán và kết luận n có thể là số nguyên tố

Nếu x0  1(mod )n và t=1, ta cũng kết thúc thuật toán và kết luận n là hợp số

Nếu khác, ta đặt j=1 và đi đến bước (3)

Bước 3: Tính 2

(mod )

j

m j

xa n Nếu xj≡1(modn) thì ta kết thúc thuật toán và kết luận “n là hợp số”

Nếu xj≡ -1(modn), ta kết thúc thuật toán với kết luận “n có thể là số nguyên tố”

Nếu khác, đặt j=j+1 và đi đến bước (4)

Bước 4: Nếu j=t-1, khi đó đi tới bước (5) Nếu khác, quay lại bước (3)

Bước 5: Tính x t1a2t1m(mod )n

Nếu xt-1≠-1(modn), khi đó kết thúc thuật toán với kết luận “n là hợp số”

Nếu xt-1≡-1(modn), khi đó kết thúc thuật toán với kết luận “n có thể là số nguyên tố”

Trang 14

theo cơ sở a Khi n là hợp số nhưng thuật toán lại tuyên bố n là số nguyên tố với xác suất sai nhiều nhất là 25%

1.4 Các tiêu chuẩn đường cong Elliptic

Trước hết, chúng ta giới thiệu một số kiến thức cơ sở

Định nghĩa 6.1 Đường cong Elliptic

Giả sử F là trường hữu hạn với các chỉ số đặc trưng không bằng 2 và 3 Nếu a

và b thuộc F được cho sao cho 4a3+27b2≠0 trong F, khi đó đường cong Elliptic E được cho trên F được xác định bởi phương trình y2=x3+ax+b thuộc F[x] Tập tất cả các nghiệm (x, y) thuộc F của phương trình y2=x3+ax+b cùng với 1 điểm O, được gọi là điểm vô hạn, được ký hiệu là E(F), được gọi là tập các điểm =-hữu tỷ trên E

Các tính chất của đường cong Elliptic

Chúng ta giả sử E(Q) là là đường cong elliptic trên Q được cho bởi y2=x3+ax+b,

ở đây a và b thuộc Z, và O được ký hiểu là điểm vô hạn

P+O=P, O+Q=Q với mọi P, Q

Nếu P=-Q, khi đó P+Q=O

Quy về theo modulo n :

GS n>1 đã được chọn và cố định với gcd(n, 6)=1 và gcd(4a3+27b2, n)=1 Khi đó ta nói rằng E được quy về modulo n nếu các hệ số a, b được quy về modulo n và mỗi điểm P trên E được quy về modulo n theo cách như sau:

Nếu P=(r1/r2; s1/s2) ở đây

gcd(r1;r2)=gcd(s1;s2)=gcd(r2s2;n)=1; khi đó

P=(t1, t2), ở đây

Trang 15

Sau đây ta giới thiệu thuật toán phân tích nhân tử theo phương pháp đường cong Elliptic :

Giả sử n là hợp số, nguyên tố cùng nhau với 6 và không là lũy thừa của số nguyên tố nào

Chọn đường cong Elliptic

Chọn ngẫu nhiên cặp (E, P), ở đây E=E(Zn) là một đường cong Elliptic

Nếu pjP≠O (modn) khi đó đặt P= pjP và lặp lại với k bằng k+1

Nếu k≤apj, thì quay lại bước 3

Nếu k>apj thay j bởi j+1, và đặt k=1 Nếu j≤l, ta quay lại (3) Nếu khác, ta đi đến (5) Khi pjP=O(modn), ta tính gcd(m2, n) Nếu n>g, thuật toán hoàn thành Nếu g=n ta cũng đến (5)

Chọn cặp ( E, P) mới

Thay r=r-1 Nếu r>0 ta quay lại (1)

Nếu khác ta kết luận thuật toán thất bại

Ví dụ, giả sử n=923, và ta chọn (E, P)=(y2=x3+2x+9 ; (0,3))

Kiểm tra

gcd(4*23+27*92, 923)=1,

Trang 16

Chọn B=4, A=3, M=6=2.3

Tính p1P=2(0, 3)=(718; 373);

Thay P ban đầu bởi (718; 373) và tính

p2P=3P=2P+P=(505; 124) + (718; 373)≡O(modn), do vậy n không phải là số nguyên

tố

Thực vậy , n=13.71

Nhận xét: Thời gian chạy của thuật toán phụ thuộc nhiều vào ước nguyên tố nhỏ nhất của n Thuật toán có hiệu quả nhất khi n có ước nguyên tố nhỏ Người ta đã chứng minh được rằng, nếu p là ước nguyên tố nhỏ nhất của n, khi đó thời gian chạy trung bình là:

2 (exp( (2 (1)) ln (ln ln ) ).ln )

1.5 Thuật toán AKS

Năm 2002, ba nhà khoa học là Manindra Agrawal, Neeraj Kayal và Nitin Saxena đã giới thiệu thuật toán AKS chạy trong thời gian đã thức để kiểm định xem một số tự nhiên lớn hơn 1 có phải là số nguyên tố hay không

Định lý 1.7 ([2] trang 30)

Nếu thuật toán kết luận n là số nguyên tố thì n thực sự là số nguyên tố

Thuật toán AKS

Input: n≥1;

STEP 1 If a b, 1and a b,  such that n = ab, then Output COMPOSITE; STEP 2 Find the minimal r  such that Or(n)>log2(n);

STEP 3 For a=1 to r do

If 1<(a, n)<n, then Output COMPOSITE;

STEP 4 If r≥n, then Output PRIME;

STEP 5 For a=1 to  ( ) logr n do

If (xa)nx namod(x r1, )n then Output COMPOSITE STEP 6 Output PRIME

Ở đây, Or(n) là bậc của n theo modulo n, hàm log tính theo cơ số 2, và (r) làm phi – Euler của r

Trong thuật toán AKS ta đã sử dụng bổ đề sau:

Trang 17

Bổ đề Giả sử a là 1 số nguyên, khi đó n là số nguyên tố nếu và chỉ nếu”

Xét số nguyên tố q là một nhân tử của n và qk là ước của n còn qk+1 thì không Khi đó,

qk không phải là ước của q

n

C và gcd(an-q, qk)=1, do đó hệ số của Xq không bằng 0 theo modulo n

Đây chính là điều phải chứng minh

Số nguyên tố lớn nhất được tìm ra bằng AKS cho đến nay là số

Thời gian chạy của thuật toán ([2] trang 35)

Thuật toán chạy trong thời gian đa thức, cụ thể như sau

STEP 1 Chạy nhiều nhất O(log3n) phép toán;

STEP 2 Cần O(log7n) phép toán;

I.2 Các phương pháp phân tích nhân tử số nguyên

2.1 Các phương pháp phân tích nhân tử cổ điển ([1], trang 207-209)

a) Bài toán phân tích nhân tử số nguyên

Bài toán

Cho n thuộc N, hãy tìm các số pj với j=1, 2, …, r thuộc N với p1<p2< …<pr và các

ej, với j thuộc N, với j=1, 2, …,r thuộc N sao cho :

1

j

r e j j

Phương pháp thử chia:

Đây là phương pháp lâu đời nhất để phân tích 1 số nguyên, để tiến hành ta chia n với

tất cả các số nguyên tố nhỏ hơn hoặc bằng n

Phương pháp phân tích nhân tử Ferma

Chỉ được ứng dụng với các số nguyên dạng

n= x2+ay2=z2+aw2,

Trang 18

ở đây x≠z và y≠w

Nghĩa là n có thể biểu diễn bằng 2 cách với điều kiện a≠0 và a thuộc Z

Khi đó n có 1 nhân tử không tầm thường là gcd( w xyz n , )

b) Phương pháp phân tích Legendre

Phương pháp này còn được gọi là phương pháp phân số liên tục

Và ta có nhân tử không tầm thường của n là x w   pzy (mod ) n

c) Phương pháp phân tích nhân tử lũy thừa phổ dụng

Giả sử e là lũy thừa phổ dụng của n thuộc N và e=2bm, ở đây b≥0 và m lẻ Khi đó ta thực hiện các bước sau :

(1) Chọn ngẫu nhiên 1 số a thỏa 1<a<n-1

Nếu gcd(a, n)>1, khi đó ta có 1 nhân tử của n và có thể kết thúc thuật toán

Nếu khác, ta đi đến bước 2

(2) Tính x0≡am(modn) Nếu x0≡1(modn), ta quay lại bước 1 Nếu khác, tính

2

xxn với mọi j=1, 2, …, b

Nếu xj≡-1(modn), ta quay lại bước (1)

Nếu xj≡1(modn), nhưng xj-1 không đồng dư với +-1(modn), khi đó gcd(xj-1-1,n) là 1 nhân tử không tầm thường của n

Ví dụ, Cho n= 15841, e=25.405 GS chọn a=2, khi đó 2405≡1(modn) Bởi vậy ta quay lại bước 1

2.2 Phương pháp phân số liên tục ([1], trang 211-213):

Giả sử chúng ta cần phân tích n thuộc N và cận trơn B đã được chọn Khi đó chúng ta thực hiện các bước sau:

(1) Chọn một nhân tử cơ sở từ tập các số nguyên tố

A={p1; p2; …; pk}

Trang 19

Với k thuộc n nào đó được xđ bởi B và chỉ số J

Từ các kiến thức hiện nay, chúng ta biết k tối ưu là

exp( log( ) log log( ))

(2) Tập Q0=1; P0=0; A-2=0; A-1=1; A0=  n =P1

Với mỗi số tự nhiên j≤J, ta dùng công thức đệ quy sau:

2 1

j j j j

j i i

(3) Với mỗi tập S các chỉ số của j, với các véc tơ vj xây dựng được ở bước (2),

Do  n  77 , khi đó chúng ta tính bảng sau:

Trang 20

2.3 Thuật toán Pollard ([1], trang 214-215)

Năm 1974, Pollard công bố sơ đồ phân tích nhân tử Ông ta suy luận rằng, nếu (p-1)|n,

ở đây p là số nguyên tố thì p|(tn-1) khi p không phải là ước của t (theo định lý nhỏ Fermat)

Thuật toán Pollard p-1:

Gỉa sử ta mong muốn phân tích n  , và cận trơn B đã được chọn Khi đó ta thực hiện các bước sau:

(1) Chọn số cơ sở a  , ở đây 2≤a<n và tính g=gcd(a, n) Nếu g>1, khi đó ta có

nhân tử của n Nếu khác, ta đi đến bước (2)

Trang 21

(2) Với tất cả số nguyên tố p≤B, tính ln( )

ln( )

n m p

(3) Tính g=gcd(a-1, n) Nếu g>1, khi đó chúng ta có nhân tử của n, và thuật toán

thành công Nếu khác, thuật toán thất bại

Phân tích thuật toán Đặt

1

j

t j j

al≡1(modp), theo định lý nhỏ Fermat

Bởi vậy, nếu g=gcd(al-1, n), khi đó p|g Nếu g=n thì thuật toán thất bại Nếu ngược lại thuật toán thành công

Ví dụ Lấy n=44717, và chọn B- trơn là 13, và lấy a=2

Chúng ta biết a là nguyên tố cùng nhau với n theo kết quả ở bước (1) Bảng sau cho kết cục ở bước (2):

Ta đi đến bước (3), và kiểm tra gcd(a-1, n)=gcd(4171, 44717)=97

Từ đây ta có phân tích n=97.461 Nhận thấy rằng, p=97 là B-trơn do 1=25.3, nhưng q=461 không phải là B-trơn do q-1=22.5.23

p-Pollard’s đã phát triển phương pháp khác để phân tích vào năm 1975, được gọi là Phương pháp phân tích Monte Carlo cũng được gọi là Phương pháp Pollard rho

Cho n thuộc N là 1 hợp số, và p là một ước nguyên tố của n (nhưng ta không biết), ta tiến hành các bước sau:

(1) Chọn một đa thức f với deg(f)≥2 – thường lấy f(x)=x2+1 cho đơn

Trang 22

(3) Sàng qua tất cả các hiệu xi-xjmodulon cho đến khi xác định được

xB≠xj(modn), Nhưng xB≡xj(modn) với số tự nhiên B>j>1 Khi đó, gcd(xB-xj, n)

là ước số không tầm thường của n

(2) Với mỗi số nguyên không âm j, đặt t=±j Tính y t ( nt)2n

Cho đến khi tìm được k+2 giá trị là pk-trơn Với mỗi t,

Chúng ta tính với tất cả các p mà n không phải là thặng dư bậc 2 theo modulop

Trang 23

Ví dụ, Lấy n=60377 Từ phương trình xác định k tối ưu ta có

exp( log( ) log log( ))

Trang 24

2.5 Phương pháp đường cong Elliptic ([1], trang 220-221)

Trước hết, chúng ta giới thiệu một số kiến thức cơ sở

Định nghĩa 6.1 Đường cong Elliptic

Giả sử F là trường hữu hạn với các chỉ số đặc trưng không bằng 2 và 3 Nếu a

và b thuộc F được cho sao cho 4a3+27b2≠0 trong F, khi đó đường cong Elliptic E được cho trên F được xác định bởi phương trình y2=x3+ax+b thuộc F[x] Tập tất cả các nghiệm (x, y) thuộc F của phương trình y2=x3+ax+b cùng với 1 điểm O, được gọi là điểm vô hạn, được ký hiệu là E(F), được gọi là tập các điểm =-hữu tỷ trên E

Các tính chất của đường cong Elliptic

Chúng ta giả sử E(Q) là là đường cong elliptic trên Q được cho bởi y2=x3+ax+b, ở đây

a và b thuộc Z, và O được ký hiểu là điểm vô hạn

(1) Tính chất cộng:

Với 2 điểm P(x1, y1) , Q(x2, y2) bất kỳ trên E, với P, Q khác O và P≠-Q,

ta xác định:

P+Q=(x3, y3) Với x3=m2-x1-x2

Nếu P=-Q, khi đó P+Q=O

(2) Quy về theo modulo n :

GS n>1 đã được chọn và cố định với gcd(n, 6)=1 và gcd(4a3+27b2, n)=1 Khi đó ta nói rằng E được quy về modulo n nếu các hệ số a, b được quy

về modulo n và mỗi điểm P trên E được quy về modulo n theo cách như sau:

Nếu P=(r1/r2; s1/s2) ở đây

Trang 25

gcd(r1;r2)=gcd(s1;s2)=gcd(r2s2;n)=1; khi đó P=(t1, t2), ở đây

t1=r1(r2)-1(modn),

t2=s1(s2)-1(modn) (3) Luật nhóm modulo

GS rằng P1 và P2 là các điểm trên E(Q) với P1+P2≠O và có mẫu số nguyên tố cùng nhau với n Trong đó, P1+P2 được gọi là có mẫu số nguyên tố cùng nhau với n nếu và chỉ nếu không tồn tại số nguyên tố p|n sao cho P1+P2 = O trên đường cong elliptic E(Zp)

Sau đây ta giới thiệu thuật toán phân tích nhân tử theo phương pháp đường cong Elliptic :

GS n là hợp số, nguyên tố cùng nhau với 6 và không là lũy thừa của số nguyên tố nào

(1) Chọn đường cong Elliptic

Chọn ngẫu nhiên cặp (E, P), ở đây E=E(Zn) là một đường cong Elliptic

1

p j

l a j j

M p

 và lũy thừa của các số nguyên tố trong

khai triển của M nhỏ hơn hoặc bằng phần nguyên dưới của ln(A)/ln(pj):

(a) Nếu pjP≠O (modn) khi đó đặt P= pjP và lặp lại với k bằng k+1

(i) Nếu k≤apj, thì quay lại bước 3

(ii) Nếu k>apj thay j bởi j+1, và đặt k=1 Nếu j≤l, ta quay lại (3) Nếu

khác, ta đi đến (5)

(b) Khi pjP=O(modn), ta tính gcd(m2, n) Nếu n>g, thuật toán hoàn thành Nếu g=n

ta cũng đến (5)

(5) Chọn cặp mới

Trang 26

Thay r=r-1 Nếu r>0 ta quay lại (1) Nếu khác ta kết luận thuật toán thất bại

I.3 Logarit rời rạc

3.1 Các khái niệm cơ sở

Bài toán logarithm rời rạc:

Giả sử G là một nhóm cyclic có phần tử sinh là g, cho h là một phần tử của G, hãy tìm logarithm cơ số g của h trong G: loggh(mod|G|)

Nghĩa là ta phải tìm phần tử x trong G thỏa mãn h≡gx(mod|G|)

Bài toán logarithm rời rạc có vai trò rất lớn trong ứng dụng của mật mã Đặc biệt quan trọng trong trường hợp G  F (q)*, với q  p l, p là số nguyên tố, l  N, tức là trong trường Galois, cũng như trong trường hợp G là một nhóm điểm của đường cong Elliptic trong trường hữu hạn

Ví dụ, G=Z5*, và phần tử sinh là 2, khi đó logarithm rời rạc của 1 là 4 bởi vì

24 ≡ 1 mod 5

3.2 Thuật toán bước Baby và bước Giant của Shank

Cho p là một số nguyên tố, thuật toán bước Baby bước Giant của Shank là một thuật toán tính logarithm rời rạc của số nguyên h thuộc *

p

Z với cơ số g và theo modulo

p Thuật toán này nhanh hơn thuật toán vét cạn với số phép toán trung bình là ( log )

h(g-m)q=gr(modp)

Với phân tích như vậy, chúng ta có chiến lược như sau,

Trang 27

- Tính tất cả các lũy thừa của g theo modulo p: g0, g1, …, gm-1(modp),

- Trước hết, tính g-m(modp), tiếp theo, ta tính h(g-m)q(modp) với q=0, 1, 2, … cho đến khi xuất hiện q thỏa mãn h(g-m)q≡qr(modp) với 0  r m nào đó

Khi đó, logarithm rời rạc của h trong *

Các bước thực hiện như sau:

Vậy logarithm rời rạc của h=6 là 25

3.3 Thuật toán Pollig – Hellman ([3], trang 241-243):

Giả sử rằng

1

i

k c i i

Trang 28

n q

  (I.3.1) Dùng hệ thức (I 3 1) ta có thể dễ dàng tính được a0 bằng cách như sau :

/

   , Với i≤q-1 nào đó Khi điều này xảy ra, chúng ta biết ngay a0=i

Như vậy, với c=1 ta đã làm xong Bây giờ ta xét với c>1, chúng ta tiến hành xác định

a1, a2, …, ac-1 Quá trình này tương tự như khi xác định a0 Đặt 0= và xác định

n q j

    (I 3 2) Khi j=0 thì từ (I 3 2) trở thành (I 3 1)

Khi đã biết j, ta dễ dàng tính aj từ hệ thức (I 3 2)

Bằng công thức truy hồi khi biết aj và j ta có thể tính j+1 :

1

j j

a q

     (I 3 3)

Do đó ta có thể tính a0, 1, , a1 2, , c1, ac1 bằng cách áp dụng (I.3.1) và (I.3.2)

Sau đây là trình bày dưới dạng giả mã của thuật toán Pohlig – Hellman

Thuật toán Pohlig – Hellman(G, n, , , q, c)

Trang 29

n q j

in q j

Xác định x 2

hoặc 1 Chúng ta xác định các hệ số này như sau

Trang 31

CHƯƠNG 2: NGHIÊN CỨU SỰ AN TOÀN CỦA MỘT SỐ HỆ MẬT MÃ HIỆN ĐẠI Các hệ mật RSA, Elgamal và hệ mật trên đường cong Elliptic hiện đang là ba

hệ mật hiện đại được sử dụng rộng rãi trong thực tế Trên thế giới, đã có nhiều công trình nghiên cứu về sự an toàn của ba hệ mật này Trong đó phải kể đến các công trình nghiên cứu về thám mã từ đó đưa ra các giải pháp nhằm nâng cao việc bảo mật khi sử dụng các hệ mật trên

Đối với RSA, sự an toàn của nó phụ thuộc vào độ khó của bài toán phân tích n thành thừa số nguyên tố p, q Hiện nay có nhiều thuật toán để giải bài toán này Trong

đó chạy nhanh nhất phải kế đến thuật toán sàng trường số của Pollard Như vậy phải luôn cải tiến song song với việc đánh giá sự an toàn của RSA để đảm bảo an toàn cho việc sử dụng dữ liệu của mình

Đối với mật mã Elgamal và mật mã trên đường cong Elliptic, tuy còn non trẻ so với RSA nhưng đang ngày càng có nhiều ứng dụng thực tiễn vì kích thước khóa nhỏ hơn rất nhiều so với RSA khi có cùng mức độ an toàn Sự an toàn của hai hệ mật mã này phụ thuộc vào bài toán logarit rời rạc Bài toán Logarit rời rạc hiện là đối tượng trong nhiều công trình nghiên cứu và được xem là bài toán khó nếu p được chọn cẩn thận Hiện nay không có thuật toán thời gian đa thức nào để giải bài toán logarit rời rạcViệc lựa chọn các tham số phù hợp sao cho bài toán logarit rời rạc trở nên khó giải

đã đảm bảo an toàn cho các hệ mật mã này

Ở Việt Nam các hệ mật mã RSA, Elgamal và mật mã trên đường cong Elliptic

đã được sử dụng trong nhiều ứng dụng bảo mật trên máy tính Tuy nhiên chưa có nhiều công trình nghiên cứu được công bố về sự an toàn của ba hệ mật mã này Do vậy đánh giá sự an toàn của ba hệ mật này là vấn đề cần thiết Việc nghiên cứu các vấn đề liên quan đến sự an toàn của các hệ mật trên có bài báo: “Sai phạm trong sử dụng mật

mã khóa công khai” đăng trên tạp chí an toàn thông tin 4/2012 Trong Bài báo này giới thiệu những số liệu khảo sát liên quan tới các modulus RSA là yếu tố ảnh hưởng nhiều tới tính an toàn của các khóa công khai

II.1 Mật mã RSA

2.1 Các cuộc tấn công vào RSA

Nếu các cuộc tấn công được biết tới trước đây tập trung chủ yếu vào việc khai thác những sơ hở do việc sử dụng RSA không đúng cách, tức là không nhằm mục đích phá vỡ cấu trúc của RSA mà chủ yếu đi phân tích các sơ hở có thể tạo ra lỗi, từ đó tấn công vào nó Khoảng 4 năm trở lại đây, giới công nghệ đã được chứng kiến những kết quả vĩ đại trong việc phá mã RSA Đó là kết quả của việc phá vỡ RSA với độ dài khóa

768 bit và mới đây nhất là 1024 bit Những kết quả vĩ đại đó cũng cho thấy một điều

Trang 32

rằng, để đảm bảo an toàn cho dữ liệu thì việc chọn khóa có độ dài đủ lớn là vô cùng quan trọng

2.1.1 Factoring RSA-768([13], trang 6-19)

Vào 02/2010, các nhà khoa học Thorsten Kleinjung cùng các cộng sự là: Kazumaro Aoki , Jens Franke, Arjen K Lenstra, Emmanuel Thomé, Joppe W Bos, Pierrick Gaudry, Alexander Kruppa, Peter L Montgomery, Dag Arne Osvik, Herman

te Riele, Andrey Timofeev, Và Paul Zimmermann đã công bố phương pháp phá vỡ được RSA- 768-bit, tương đương 232 chữ số thập phân bằng phương pháp sàng trường số- Number field sieve (NFS)

Đây là kết quả kỷ lục đối với phân tích nhân tử số nguyên nói chung Tại thời điểm đó người ta tin rằng việc phá vỡ RSA-1024 bits khó hơn việc phá RSA-768 bits

1000 lần và phá RSA-768 bits khó hơn 1000 lần so với RSA-512 bits được phá vỡ từ thập kỷ trước

Để thực hiện phá vỡ được modulos này, các nhà khoa học đã tốn khoảng nửa năm và chạy trên 80 bộ vi xử lý khác nhau để thực hiện việc chọn đa thức Việc sàng

là bước quan trọng nhất và thực hiện trên hàng trăm chiếc máy tính và mất gần hai năm

Nếu việc này làm trên một bộ vi xử lý 2,2 GHz AMD Opteron có 1 lõi với 2

GB RAM thì sẽ mất 1.500 năm Chuẩn bị dữ liệu sàng cho bước ma trận mất một vài

tuần trên một vài bộ vi xử lý

Ở đây sử dụng số N lấy từ danh sách thách đố của RSA Laboratories được treo giải 50.000 USD

2.1.1.1 Lý thuyết liên quan đến cuộc tấn công

Phương pháp đồng dư bình phương

Số nguyên n có thể phân tích thành tích của hai số x, y bằng cách tính x 2 y 2 mod n, và mong muốn n có thể phân tích thành gcd(x- y, n) gcd(x+ y, n)

Phương pháp tiếp cận Morrison-Brillhart:

Sử dụng kết hợp với đồng dư bình phương để giải phương trình x 2 y 2 mod n

Khái niệm mịn:

Ta gọi một số nguyên là ‘mịn’ nếu như nó phân tích được thành tích của các số nguyên tố nhỏ

2.1.2.2 Các bước của thuật toán

a/ Lựa chọn đa thức:

Cho n là số nguyên Trong NFS, mối quan hệ được xác định bởi cặp nguyên tố

của số nguyên (a, b) với b> 0 sao cho hai giá trị v 1 (a,b) và v 2 (a, b) phụ thuộc vào số a,

b mịn v 1 (a,b) với ràng buộc b 1 và v 2 (a,b) với ràng buộc b 2

Trang 33

Giá trị v 1 (a,b), v 2 (a,b) định nghĩa như sau:

Cho f 1 (X) , f 2 (X) Z[X] là hai đa thức rút gọn của d 1 và d 2 Sao cho

f 1 (m) f 2 (m) … 0 mod n

Cho Q( k ) = Q[X]/ (f k (X)) với k = 1, 2 là hai trường đại số Phần tử a- b k

thuộc Z[ k ] có dạng vk(a, b) và Q( k)

Mục đích chính trong Q( k ) là ánh xạ đến cặp (p, r mod p) với p là số nguyên tố

và f k (r) 0 mod p Loại trừ các phân tích của f k có dạng p được tạo bởi p và r- k

Bởi vì f k (m) 0 mod n nên Z[ k] Z/nZ với k= 1, 2

Từ i (với a i Z) nên i mod n và 1 (a- b 1 ) 2 (a- b 2 ) mod n

Tìm hai vecto v 1 (a, b) và v 2 (a, b) sao cho b 1 -mịn, b 2 -mịn

Một tập con s được xây dựng sao cho là σk trong Q( k)

với k = 1 và k= 2

Với 1 (σ 1 ) 2 (σ 2 ) mod n sau đó tính τ k = Q( k ) với k = 1,2 để tìm giá trị x=

1 (τ 1 ) và y = 2 (τ 2 ) với x 2 y 2 mod n

Từ đó có thể dễ dàng tìm được đa thức f 1 , f 2

Cho n Với d 1 N có bậc ( )1/3 và d 2 = 1, cho m là số nguyên nhỏ hơn

và Cho n= m i với 0 n i < m là cơ số m của n

b/ Sàng

Sàng bằng vector:

Cho v k (a, b) = b d k f k (a/b) Thực hiện lại ý tưởng của phương pháp sàng bằng

thuật toán của Pollard làm tăng trọng số của v 1 (a, b) bởi cặp (a,b) với a, b chia hết cho q(q là số nguyên tố lớn) cho s mod q sao cho a sb mod q, xây dựng một cơ sở giảm (u,v) của ma trận sao cho (a,b) Z 2 thì a sb mod q Vấn đề là ta phải tìm tất cả các cặp (I, j) mà - I/2 i< I/2, 0 < j < J với các phép chia phổ biến như v 1 (a, b)/q và

v 2 (a, b) là mịn Với (a, b)= iu+ jv

Sử dụng phương pháp Pollard, với mỗi cặp (prime, root) với p có cận bk mịn

Trang 34

cơ sở giảm của mạng Γp các cặp (i, j) mà vk(a, b) cho tương ứng cặp(a, b) là chia hết

cho p Sử dụng cho p lớn để xác định một cơ sở B = (α, β), (γ, δ) của Γp với những

thuộc tính sau đây

 β và δ là không âm

 -I <α ≤ 0 ≤ γ <I và γ - α ≥ I

Giả sử rằng Γp bao gồm tất cả cặp (i, j) mà i ≡ ρj mod p, trong đó 0 <ρ <p trường hợp ρ = 0 và trường hợp Γp bao gồm tất cả (i, j) mà p không chia hết cho j, bởi

vì (0, 1) và (1, 0), tương ứng, là các cặp nguyên tố cùng nhau

Với p> I, ta có : (i 0 , j 0 )= (-p, 0), (i 1 , j 1 ) = (ρ, 1) và cho (i l+1 , j l+1 )= (i l-1 , j l-1 )+ r(i l , j l ) với r= với r không âm và j l tăng Quá trình này được dừng lại trước l với | i l | <I

Nếu l là số lẻ, đặt (α, β) = (i l+1 , j l+1 )= (i l-1 , j l-1 )+ r(i l , j l ) r là số nguyên nhỏ nhất trong

đó α> -I Đặt (γ, δ)= (i l+1 , j l+1 )= (i l-1 , j l-1 )+ r(i l , j l ) r là số nguyên nhỏ nhất trong đó γ < I

Trong cả hai trường hợp, các phần tử của B = (α, β), (γ, δ) chưa được mô tả là cho bởi

(i 1 , j 1 )

Để giải thích làm thế nào để sử dụng sàng hiệu quả với các đặc tính này cho (i,

j) Γp sao cho -I / 2 ≤ i <I / 2 tìm (i l , j l ) Γp Sao cho -I / 2 ≤ i l <I / 2, j l > J, và j l là

rất nhỏ Khi B là một cơ sở của Γp, Có số nguyên d và e với (i l , c)− (i, j ) = d(α, β) + e(γ, δ)

Nếu d, e #0, sau đó điều kiện b trên B sẽ kéo theo các thành phần đầu tiên của phía bên

tay phải có giá trị tuyệt đối ≥ I

Với j l - j, β, và δ là không âm, chúng ta có d ≥ 0 và e ≥ 0 Do vậy

(d, e)=

Với RSA- 768 bits sử dụng I= 2 16 và J= 2 15 điều đó có nghĩa rằng đã sàng trên

một khu vực có kích thước khoảng 2 31 2 10 9 Với b 1 = 11 10 8 Việc sàng là bước quan trọng nhất và thực hiện trên hàng trăm chiếc máy tính và mất gần hai năm Nếu việc này làm trên một bộ vi xử lý 2,2 GHz AMD Opteron có 1 lõi với 2 GB RAM thì

Trang 35

Sử dụng một ma trận vuông để biểu diễn các quan hệ tìm được sau bước sàng Cụ thể, cho một ma trận M kích thước d d định nghĩa trên F2 và b sao cho Mx = b Các đa thức tối giản F của M trên không gian vector mở rộng ra bởi b, Mb, M2b có cận trên d, do đó F(M)b= iMib = 0

Từ F 0 = 1 có x= i M i-1 b , vì vậy có thể tìm F i ’s Biểu diễn m i,j bởi dòng j của vecto M i b Sau đó từ phương trình trên với các giá trị của j 1 j d thỏa mãn

là một quan hệ tuyến tính của d định nghĩa bởi F i Cho t bất kỳ t 0 và 1 j

d ta có

Sử dụng thuật toán khối Weidemann cho bước xử lý ma trận :

Mô tả việc sử dụng thuật toán khối cho bước xử lý ma trận như sau :

Cho M là một ma trận kích thước d d trên F2, với các điều kiện: m n, x k , 1

Mục tiêu của Thuật toán Berlekamp-Massey là tìm đa thức của ma trận F Mat n,m [X]

và G Mat n,m [X] thỏa mãn deg(F) + O(1),deg (G) + O(1) và FA G (mod

(M b x h ) = 0 với 1 h m, 0 b < + O(1) với v j = M i y k

Thuật toán của Coppersmith tạo ra một chuỗi các ma trận (m+ n) hàng F t

F t A G t (mod X t ) Cấp của F t và G tt Trong bước t 0 và cần chọn để thỏa

mãn điều kiện như vậy Cụ thể deg( )= O(1) và deg( )= O(1)

Để đi từ t đến t + 1 một đa thức bậc 1 của ma trận P t Mat m+n,m+n [X] được sinh ra

Trang 36

Đặt F t+1 = P t F t và G t+1 = P t G t Việc sinh ra này được thực hiện như sau:

Chúng ta có F t A G t + E t X t (mod X t+1 ) cho các ma trận E t Thực hiện phép khử

Gaussian trên E t ta được t sao cho t E t = sau đó đặt

p t t

Bằng cách này, mức độ nhiều nhất là hàng m được tăng lên khi chuyển từ G t

đến G t + 1 (do những hạn chế nêu trên t không làm tăng cấp), vì vậy tổng số hàng 0

trong các hệ số được tăng lên bởi n Do hạn chế đề cập ở trên cấp của các hàng của F t

và G t phát triển gần như thống nhất, tức là, chúng tăng trung bình khi đi từ t đến t + 1

Sau bước t= + + O(1) thì tổng số các hàng 0 của G t là d+ O(1) Như

vậy có thể chọn m hàng sinh ra ít nhất d hàng 0 Đó là m hàng của F và G

Bây giờ chúng ta xem xét độ dài chuỗi không cân bằng Gọi l j là độ dài của chuỗi j

nghĩa là có thể tính được với tất cả các giá trị của k và 0 I l j

Không mất tính tổng quát chúng ta có thể giả định : l 1 l 2 … l n = l Tổng

số chiều dài của chuỗi d (1+ )+ O(1) Hơn nữa chúng ta có thể giả định rằng

l 1 Mục tiêu cần đạt là FA G (mod ) với d F = def(F) l- , def(G) l-

|F.,k (Ký hiệu này là biểu thị cột thứ k của F) Các điều kiện sau sẽ bù vào

các hàng thiếu của A

Thật vậy, thiết lập d F = l - , vecto v j = M i y k thỏa mãn 1

h m, 0 b

Nếu i+b > l k ta có d F – i< d F + b - l k l- l k , như vậy = 0 và tính tổng

Ở bước thứ t ta có F t A G t + E t X t (mod X t+1 ) Cho a n là ma trận thỏa mãn

) mt (a sẽ tăng lên trong thời gian tính toán)

Trong thuật toán Gausian việc loại bỏ của E t không sử dụng n- a dòng đầu tiên

Như một hệ quả, t sẽ có dạng

Trang 37

t =

Do đó tổng bậc của F t sẽ tăng m+ n- a và số hàng 0 trong G t sẽ tăng bởi a khi

thay đổi từ t đến t+ 1 Với một số cố định a, bước sẽ tăng bậc của

dòng m+ a từ l- đến l- Ở đây điểm a sẽ tăng lên

Để hiểu tại sao | F.,k ta mô tả việc chọn của và t0 Cho c là số lượng

tối đa l j tức là l n-c < l n-c+1 = l n khi đó sẽ có dạng :

=

Hàng m cuối cùng sẽ được chọn, điều này sẽ dẫn đến một giá trị của t0 gần thay vì giá trị thấp hơn gần trong thuật toán ban đầu

Cho k sao cho l k < l và xem xét các cột thứ k của F t Khi n- a k cột này sẽ chỉ

có điểm 0 ở hàng k trong X t Với n- a k sao cho t l- cột này sẽ chia hết cho

với mọi t l-

Đối với RSA-768 các nhà khoa học đã sử dụng thuật toán với các bước mô tả như trên, Tuy nhiên, một biến thể của thuật toán có thể có ích trong những tình huống nhất định.(ví dụ nếu một trong những chuỗi dài hơn nhiều so với những chuỗi khác) Sau đây là mô tả ngắn gọn biến thể đó Giả sử rằng < khi đó t <

Phần chính của việc tính toán đã được thực hiện song song tại hai địa điểm trên

4 cụm máy tính Sử dụng thuật toán khối Weidemann cho bước xử lý ma trận nên tiếp theo sẽ thực hiện 2 dãy liên tiếp nhau của các phép nhân ma trận với vecto

Trang 38

F(x, y) = 173x2 – 70xy- 63y2 , G(x, y) = x – 172y

f(x)= F(x, 1) và g(x) = G(x, 1) có root chung là = 172 mod n

Ở đây sử dụng đa thức tuyến tính g(x) f(x) được gọi là phần phụ đại số với d là bậc của f(x) g(x) được gọi là phần phụ tuyến tính

Bước 2 : Sàng

F(x, y) = 173x2 – 70xy- 63y2 , G(x, y) = x – 172y

Phải tìm F(a, b) và G(a, b) là mịn để a, b nguyên tố cùng nhau

Xây dựng ma trận vecto chứa mỗi quan hệ, sử dụng thuật toán khối Wiedemann Ma

trận vecto Mx với M là ma trận ban đầu, trong ví dụ với số nhỏ này chỉ cần nhân với 8

quan hệ :

= (-1)2.26.310.520.72.232.374.434 = (-1)8.28.72.118.132.172.192.312.372.412.472Phần phụ tuyến tính : phép tính nhân chung a- b với mỗi a, b là phụ thuộc, là root của f(x) và g(x) mod n

– b = u2 với u = 15218777599577552 Phần phụ đại số : Thực hiện phép tính a- xb mod f(x) :

Trang 39

g(x)= 34661003550492501851445829X−129118745658002122316354779157481081 Bước 2: sàng:

Cặp (a, b) sao cho F(a, b) = 0 mod q giảm đến a/b = ρ mod q

Mạng tinh thể cho bởi (q, 0) và (ρ, 1)

= u + v

Sẽ giảm xuống thành mạng nghiêng( với s là độ nghiêng)

Ví dụ với s= 44205, tìm mạng tinh thể giảm:

Do đó mạng của cặp (a, b)sao cho q chia hết cho F(a, b) là:

Cần gcd(a, b)= 1 vậy làm sao để nó liên quan đến gcd(i,j)?

gcd(a, b) chia hết cho q

gcd(i, j) : gcd(i, j) = 1 => gcd(a, b) = 1 hoặc q

Viết lại F(a, b)/ q là F’(i, j):

F’(i, j) = 15161303256584676004767144614478527114997725475 i6

- 851354685226959013191256908958430909537139447150 i5j

- 1160865422044679275000842279069374339393281708219 i4j2

Trang 40

+ 31401533065035430877729182304741709354795306270110 i3j3+ 23170460860723950600905984337555229255316340470000 i2j4

- 50317384600166516120833406579130302039250187402616 ij5

- 7807280760059800102689268443930905909245906201960 j6Tiếp theo cần sàng các giá trị(ở đây 0 < , j< I/2)

Với RSA- 768 ta dùng I= 216 tức là cần sàng 231 điểm trên (q, ) cặp

Cần sàng khoảng 480M cặp (q, ) tức là khoảng 1018 cặp (a, b) (trong đó có khoảng 60% các số là nguyên tố cùng nhau)

Với mỗi cặp (q, ) cố định, cần tìm (i, j) nguyên tố cùng nhau sao cho F’(i, j) là mịn Với mỗi số nguyên tố p, vị trí –I/2< i< I/2, 0< j< I/2 là chia hết cho p

- Với p nhỏ: sử dụng sàng trường số: p chia hết cho I = i0(j) + p

- Với p là số nguyên tố lớn(p ) có 0 hoặc 1 giá trị trên mỗi dòng

Ví dụ với p = 46625959 711I

F có hai root modun p là: 41898922 và 38600568

Giả sử root R = 41898922

Cần chuyển nó thành (i, j): r = với r = 25345641

Từ (p, r)= (46625959, 25345641) ta tìm ( ) sử dụng luật 1 của bổ đề sau:

Bổ đề 2.1:

Nếu p I chia hết tại các vị trí (i, j), các vị trí tiếp theo được cho bởi:

Ngày đăng: 10/05/2015, 16:54

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w