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

Một số thuật toán phân tích số nguyên hiện đại và ứng dụng

34 40 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 34
Dung lượng 297,47 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

TRƯỜNG ĐẠI HỌC KHOA HỌCNGUYỄN THỊ BÌNH MỘT SỐ THUẬT TOÁN PHÂN TÍCH SỐ NGUYÊN HIỆN ĐẠI VÀ ỨNG DỤNG LUẬN VĂN THẠC SĨ TOÁN HỌC THÁI NGUYÊN - 2017... TRƯỜNG ĐẠI HỌC KHOA HỌCNGUYỄN THỊ BÌNH M

Trang 1

TRƯỜNG ĐẠI HỌC KHOA HỌC

NGUYỄN THỊ BÌNH

MỘT SỐ THUẬT TOÁN PHÂN TÍCH SỐ NGUYÊN HIỆN ĐẠI

VÀ ỨNG DỤNG

LUẬN VĂN THẠC SĨ TOÁN HỌC

THÁI NGUYÊN - 2017

Trang 2

TRƯỜNG ĐẠI HỌC KHOA HỌC

NGUYỄN THỊ BÌNH

MỘT SỐ THUẬT TOÁN

PHÂN TÍCH SỐ NGUYÊN HIỆN ĐẠI

VÀ ỨNG DỤNG

LUẬN VĂN THẠC SĨ TOÁN HỌC

Chuyên ngành: Phương pháp Toán sơ cấp

NGƯỜI HƯỚNG DẪN KHOA HỌC

GS.TSKH HÀ HUY KHOÁI

THÁI NGUYÊN - 2017

Trang 3

Mục lục

Chương 1 Thám mã và một số thuật toán phân tích số nguyên cổ điển 8

1.1 Thám mã và phân tích số nguyên 8

1.2 Phân tích Fermat 12

1.3 Phân tích Pollard p − 1 17

Chương 2 Một số thuật toán hiện đại phân tích số nguyên 20 2.1 Sự kiểm tra ước 20

2.2 Thuật toán phân tích ρ của Pollard 21

2.3 Phương pháp phân tích Brent 24

2.4 Phương pháp phân tích dùng đường cong elliptic 26

2.5 Phương pháp phân tích bằng sàng trường số 28

2.6 Khả năng phân tích số bằng các “chip” chuyên dụng 30

Trang 4

Lời cảm ơn

Luận văn này được thực hiện tại Trường Đại học Khoa học - Đại họcThái Nguyên và hoàn thành với sự hướng dẫn của GS.TSKH Hà Huy Khoái(Trường Đại học Thăng Long, Hà Nội) Tác giả xin được bày tỏ lòng biết ơnchân thành và sâu sắc tới người hướng dẫn khoa học của mình đã dành nhiềucông sức hướng dẫn để tác giả hoàn thành luận văn

Tác giả xin trân trọng cảm ơn Ban Giám hiệu Trường Đại học Khoa học

- Đại học Thái Nguyên, Ban Chủ nhiệm Khoa Toán-Tin, cùng các giảng viên

đã tham gia giảng dạy, đã tạo mọi điều kiện tốt nhất để tác giả học tập vànghiên cứu

Tác giả muốn gửi những lời cảm ơn tốt đẹp nhất tới tập thể Lớp B, caohọc Toán khóa 9 (2015-2017) đã động viên và giúp đỡ tác giả rất nhiều trongsuốt quá trình học tập

Nhân dịp này, tác giả cũng xin chân thành cảm ơn Sở Giáo dục và Đàotạo Hải Phòng, Ban Giám hiệu và các đồng nghiệp ở Trường THPT NguyễnĐức Cảnh, Huyện Kiến Thụy, Thành phố Hải Phòng đã tạo điều kiện cho tácgiả hoàn thành tốt nhiệm vụ học tập và công tác của mình

Cuối cùng, tác giả muốn dành những lời cảm ơn đặc biệt nhất đến bố mẹ

và đại gia đình đã luôn động viên và chia sẻ những khó khăn để tác giả hoànthành tốt luận văn này

Trang 6

Mở đầu

Trước những năm 70 của thế kỷ XX, Số học thường được xem là mộttrong những ngành toán học thuần tuý, chỉ có ý nghĩa lý thuyết Đối tượngnghiên cứu của Số học là các quy luật trong tập hợp số nguyên; các giảthuyết lớn tồn tại trong Số học thường là các giả thuyết về số nguyên tố.Thậm chí, có những nhà toán học cho rằng, vẻ đẹp của số học có được nhờ

sự xa rời thực tiễn của nó

Ngày nay, những ứng dụng lớn lao và bất ngờ của Số học vào mật mãcho ta thấy rằng quan niệm trên đã hoàn toàn thay đổi Vẻ đẹp của Số họckhông chỉ thể hiện trong ý nghĩa “thuần tuý” của nó, mà cả trong nhữngứng dụng bất ngờ vào thực tiễn Cách đây khoảng 30 năm, khó có thể hìnhdung được rằng, một số kết quả lý thuyết trong Số học lại làm nên mộtcuộc cách mạng trong bảo mật thông tin trong Lý thuyết mật mã Cơ sởcủa những ứng dụng đó chính là Số học thuật toán, lĩnh vực nghiên cứu các

thuật toán trong Số học Trong lĩnh vực Lý thuyết mật mã, mật mã khóa

công khailà một dạng mật mã cho phép người sử dụng trao đổi các thôngtin mật mà không cần phải trao đổi các khóa chung bí mật trước đó Điềunày được thực hiện bằng cách sử dụng một cặp khóa có quan hệ toán họcvới nhau là khóa công khai và khóa cá nhân (hay khóa bí mật) Cơ sở toánhọc của vấn đề này là việc phân tích các số tự nhiên và một số vấn đề liên

Trang 7

quan đến chúng.

Luận văn này có mục đích tìm hiểu sơ lược về cơ sở toán học của Lýthuyết mật mã, đồng thời phân tích sâu hơn các thuật toán phân tích số tựnhiên để làm cơ sở toán học cho ứng dụng Ngoài các phần Mở đầu, Kếtluận, Tài liệu tham khảo, nội dung của luận văn được trình bày trong haichương:

• Chương 1 Thám mã và một số thuật toán cổ điển phân tích số nguyên.

Trong chương này chúng tôi trình bày các kiến thức cơ sở về thám mã

và sau đó là một số thuật toán cổ điển phân tích số nguyên, làm cơ sở

so sánh và phát triển cho chương tiếp theo

• Chương 2 Một số thuật toán hiện đại phân tích số nguyên Đây là nội

dung chính của luận văn Chúng tôi sẽ trình bày một số thuật toán hiệnđại phân tích số nguyên như thuật toán phân tích Pollard, phân tíchdùng đường cong elliptic hoặc sàng trường số

Thái Nguyên, ngày 10 tháng 7 năm 2017

Tác giả

Nguyễn Thị Bình

Trang 8

Thám mã (hay phân tích mã - cryptanalysis) là việc nghiên cứu các

phương pháp “phá vỡ” bức màn ngụy trang văn bản (do việc mã hóa tạonên) để có thể hiểu được nội dung văn bản

Hiện nay, trên quan điểm thám mã, người ta phân các hệ mã thành baloại:

• Loại đã bị phá;

• Loại chưa được nghiên cứu phân tích (vì còn mới, hoặc vì chưa đượcdùng rộng rãi);

Trang 9

• Loại đã được nghiên cứu nhưng chưa bị phá (RSA, IDEA, các hệ mã

sử dụng logarit rời rạc, đường cong elliptic, )

Có ba cách thông dụng trong việc chuyển hóa văn bản mã thành văn

bản gốc:

• Ăn trộm, hối lộ, hoặc mua (với giá rất cao) để có được chìa khóa;

• Khai thác tính cẩu thả hoặc lỏng lẻo của người dùng khóa (ví dụ : cóngười hay dùng tên người thân để làm mật khẩu hoặc chìa khóa);

• Phân tích mã (tức là thám mã)

Bây giờ, ta sẽ thảo luận về một số phương pháp thám mã Thực tế, thám

mã sẽ phức tạp hơn nếu người ta không biết hệ mật mã đã được sử dụng.chúng ta giả sử người thám mã đã biết rõ hệ mật mã được sử dụng khi tiếnhành phân tích mã Mục đích là thiết kế được một hệ mật mã an toàn bảomật

Dưới đây ta sẽ liệt kê các loại tấn công vào hệ mật mã Mức độ tấn công

sẽ phụ thuộc vào hiểu biết của người thám mã đối với hệ mật mã được sửdụng :

• Tấn công chỉ biết bản mã (ciphertext-only): người thám mã chỉ có

bản tin mã hóa

• Tấn công biết bản tin rõ (known plaintext): người thám mã có bản

tin rõ và bản mã

Trang 10

• Tấn công chọn bản tin rõ (chosen plaintext): người thám mã tạm

thời có quyền truy xuất tới bộ mã hóa, do đó người thám mã có khảnăng chọn bản tin rõ và xây dựng bản mã tương ứng

• Tấn công chọn bản mã (chosen ciphertext): người thám mã tạm thời

có quyền truy xuất tới bộ giải mã, do đó anh ta có khả năng chọn bản

mã và xây dựng lại bản tin rõ tương ứng

Bây giờ ta sẽ liệt kê các phương pháp thám mã

1 Thám mã tích cực là việc thám mã sau đó tìm cách làm sai lạc các dữ

liệu truyền, nhận hoặc các dữ liệu lưu trữ phục vụ mục đích của ngườithám mã

2 Thám mã thụ động là việc thám mã để có được thông tin về bản tin rõ

phục vụ mục đích của người thám mã

3 Thám mã affine Trong mật mã affine, đầu tiên bảng chữ cái của thông

điệp cần mã hóa có kích thước m sẽ được chuyển thành các con số

tự nhiên từ 0, , m − 1 Sau đó dùng một hàm modulo để mã hóa vàchuyển thành bản mã Hàm mã hóa cho một ký tự như sau:

e(x) = (ax + b) (mod m)

với m là kích thước của bảng chữ cái, a và b là khóa mã Giá trị a đượcchọn sao cho a và m là nguyên tố cùng nhau

Giả sử Trudy đã lấy được bản mã sau đây:

Trang 12

K = (a, b) ta giải hệ phương trình:

H, ta có a = 8 Cuối cùng, với K ta tìm được K = (3, 5) Sử dụng khóa

mã này ta có được bản tin rõ là

Ta sẽ bắt đầu với các thuật ngữ của sẽ được dùng trong trình bày:

• Kí hiệu O lớn (big O notation) Hàm f (x) là O(g(x)) khi x → ∞ nếu

và chỉ nếu có các số dương c và k sao cho với mọi x > k, ta có

0 < f (n) ≤ cg(n)

Ta xét ví dụ f (x) = 2x2+ x + 1 là O(x2) khi x → ∞ với c = 2, k = 0

Trang 13

Kí hiệu O lớn được áp dụng trong thời gian chạy (running time) hoặctrong yêu cầu lưu trữ (storage requirements) của một thuật toán Trongtrình bày, để ngắn gọn ta cũng có thể chỉ cần viết O(g(x)), và được giảthiết là ta xét với x → ∞ Khi ta xét hàm nhiều biến, thì biến mà dần tới

vô hạn sẽ được chỉ ra Như một phần trong định nghĩa của O(g(x)), tất

cả các sự kiện xảy ra sẽ được xét với x → ∞

• Phân tích tầm thường (trivial factor) Phân tích tầm thường là phân

tích mà nhân tử là s = 1 hoặc s = N

• Phân tích không tầm thường (nontrivial factor) Phân tích không tầm

thường là phân tích một số nguyên mà trong phép phân tích có nhân tử

s thỏa mãn 1 < s < N

• Số nguyên tố (prime number) Một số nguyên dương lớn hơn 1 được

gọi là nguyên tố nếu nó chỉ chia hết cho 1 và chính nó

Với các khái niệm trên, ta có Định lý cơ bản của số học đó là : Mọi số tự

nhiên lớn hơn 1 có thể viết một cách duy nhất (không kể sự sai khác về thứ

tự các thừa số) thành tích các thừa số nguyên tố

Luận văn này có mục đích trình bày về thuật toán phân tích số nguyên

Ta hãy xem xét một lý do dẫn đến việc làm này

Định lý cơ bản của số học kéo theo nhận xét rằng mọi số nguyên đều

có thể được phân tích thành tích

Trang 14

Xét số

N = 25195908475657893494027183240048398571429282126204032027777137836043662020707595556264018525880784406918290641249515082189298559149176184502808489120072844992687392807287776735971418347270261896375014971824691165077613379859095700097330459748808428401797429100642458691817195118746121515172654632282216869987549182422433637259085141865462043576798423387184774447920739934236584823824281198163815010674810451660377306056201619676256133844143603833904414952634432190114657544454178424020924616515723350778707749817125772467962926386356373289912154831438167899885040445364023527381951378636564391212010397122822120720357

Số nguyên này được biết như là RSA-2048 Vào tháng 3/1991, Phòng thínghiệm RSA (RSA Laboratories) đã thông báo giải thưởng USD 200.000cho sự phân tích thành công số nguyên này Tính đến tháng 11/2004, sốnày vẫn chưa được phân tích

Nếu biết trước hai số nguyên tố lớn thì ta sẽ có một thuật toán nhanh

để nhân chúng với nhau Tuy nhiên, trong tình huống ngược lại, nếu chotích của hai số nguyên tố, rất khó phân tích ngược lại để tìm ra hai số nhưvậy Thuật toán nhanh nhất được biết đến hiện nay có tên gọi Sàng trường

Trang 15

số tổng quát (General Number Field Sieve (GNFS)), mà nếu lấy trung bìnhthì sẽ cần

#!

bước để phân tích một số nguyên với n chữ số thập phân

Thời gian chạy thuật toán bị chặn dưới bởi hàm đa thức, và bị chặn trênbởi hàm mũ theo n Chính sự khó khăn của việc phân tích các số nguyênlớn sẽ là cơ sở cho một số thuật toán mật mã hiện đại

Bây giờ ta sẽ trình bày về phân tích Fermat Thuật toán này được phátminh bởi nhà toán học Pierre de Fermat trong những năm 1600 (xem Weis-stein E.W [5]) Để làm phân tích Fermat, ta viết một hợp số N thành hiệucủa hai bình phương,

N = x2− y2.Hiệu này của các bình phương dẫn đến sự phân tích của N

N = (x + y)(x − y)

Giả sử rằng s và t là các nhân tử không tầm thường lẻ của N thỏa mãn

st = N và s ≤ t Ta tìm x và y sao cho s = (x − y) và t = (x + y) Giảiphương trình này, ta tìm x = (s + t)/2 và y = (t − s)/2 Ở đây, x và y là các

số tự nhiên, do hiệu số giữa hai số lẻ là chẵn, và một số chẵn là bội của 2

Do s > 1 và t ≥ s, ta tìm x ≥ 1 và y ≥ 0 Trong trường hợp riêng, các số x, ythỏa mãn s = (x − y) và t = (x + y), vì vậy x =pN+ y2, và do đó x ≥√N.Cũng vậy, x = (s + t)/2 ≤ 2t/2 ≤ N

Đối với thuật toán này, ta chọn x1=√

N, và xi+1 = xi+ 1 Với mỗi i, ta

Trang 16

kiểm tra khi nào thì yi=

end ifend ifend for

end function

trong đó hàm isSquare(z) đúng nếu z là một số chính phương và sai nếungược lại

Trang 17

1.3 Phân tích Pollard p − 1

Phương pháp phân tích Pollard p − 1 được giới thiệu bởi Pollard J.M năm

1974 (xem Weisstein E.W [8]) Nó dựa trên Định lí Fermat nhỏ được phát

biểu như sau:

Định lí 1.3.1 (Định lí Fermat nhỏ) Nếu p là một số nguyên tố, a là một số

tự nhiên và p 6 | a thì ap−1≡ 1 (mod p).

Giả sử chúng ta có một số nguyên dương k ≥ 1 và một số nguyên tố

p> 2 sao cho (p − 1) | k! Bây giờ ta áp dụng Định lí Fermat nhỏ với a = 2,

có tồn tại một số nguyên rk = gcd(xk, N) mà là ước của cả xk và N Nếu(p − 1) | k! thì p | xk và do đó rk là một nhân tử không tầm thường của N.Nếu rk không phải là một nhân tử không tầm thường của N, thì nó là mộtnhân tử tầm thường của N, tức là rk = 1 hoặc rk = N Thuật toán như sau:

• Tính rk = gcd(2k!− 1, N) với k = 1, 2, 3 Nếu rk ∈ {1, N} thì r/ k làmột nhân tử không tầm thường và ta hoàn thành công việc cần làm

Trang 18

• Ta có thể viết 2k! ≡ (2(k−1)!)k (mod n), sao cho nếu 2(k−1)! là đã biếttheo (mod n), thì 2k! có thể tính được chỉ với một phép toán lũy thừamodulo một số.

Ta trình bày thuật toán

function pollard_p1(N)

# Initial value 2^(k!) for k = 0

two_k_fact := 1

for k from 1 to infinity

# Calculate 2^(k!) (mod N) from 2^((k-1)!)

Trong đó modPow(a, b, m) lại là số nguyên nhỏ nhất không âm sao cho

ab≡ y (mod m) Hàm này được gọi là “số mũ modular”

Ta trình bày thuật toán hiệu quả đối với số mũ modular Ta viết b trong

hệ nhị phân dưới dạng

b= b020+ b121+ + bn−12n−1

Trang 19

và thấy rằng ab có thể viết lại dưới dạng

ab = ab0 20ab1 21 2bn−1 2n−1 =a20

b0

a21

b1 .a2n−1

bn−1

Trang 20

2.1 Sự kiểm tra ước

Sự kiểm tra ước là thuật toán đơn giản nhất để phân tích số nguyên Giả

sử rằng s và t là các nhân tử không tầm thường của N sao cho st = N và

s≤ t Để thực hiện thuật toán kiểm tra ước, một cách đơn giản là kiểm traxem s | N với s = 2, ,√N Khi một nhân tử như vậy s được tìm thấythì t = N/s cũng là một nhân tử, và một phép phân tích đã được tìm thấycho N Ràng buộc trên s ≤ bNc được cung cấp bởi định lí sau đây:

Định lí 2.1.1 Nếu N có nhân tử không tầm thường s, t với st = N và s ≤ t,

thì s ≤

N.

Chứng minh. Do s là nhân tử của N nên ta có s > N Khi đó t ≥ s >√N,

Trang 21

và st > N, mà điều này lại mâu thuẫn với giả thiết rằng st = N Do đó

end for

end function

Nếu thuật toán này cho hợp số N, thì nó đưa ra một cặp nhân tử không tầmthường s, t với s ≤ t Phát biểu s | N tương đương với s ≡ 0 (mod N)

2.2 Thuật toán phân tích ρ của Pollard

Phương pháp phân tích ρ của Pollard là một phương pháp xác suất để phân

tích một hợp số N bởi phép lặp một modulo đa thức N Phương pháp nàyđược công bố bởi J.M Pollard năm 1975 Giả sử chúng ta xây dựng dãy

x0 ≡ 2 (mod n),

xn+1 ≡ x2n+ 1 (mod n)

Dãy này là dãy tuần hoàn kể từ một chỉ số nào đó Có thể chứng minh rằng

độ dài của chu trình nhỏ hơn hoặc bằng N bằng phương pháp phản chứng:

Trang 22

Giả sử rằng độ dài của chu trình là L lớn hơn N, tuy nhiên ta chỉ có N giátrị phân biệt xn trong chu trình có độ dài L > N, vì vậy phải tồn tại hai giátrị xn là đồng dư nhau, và chúng có thể được xác định là “các điểm xuấtphát” của một chu trình có độ dài nhỏ hơn hoặc bằng N Các lập luận xácsuất chứng tỏ rằng thời gian dự kiến để dãy này theo mod n rơi vào mộtchu trình và độ dài dự kiến của chu trình là tỷ lệ với √N, với hầu hết N(xem Weisstein E.W [6]) Các giá trị ban đầu và các hàm lặp thường dùngkhác nhau, nhưng hàm f (n) = x2n+ 1 cho thấy là làm việc tốt trong thực tếbài toán phân tích số nguyên.

Giả sử rằng s và t là các nhân tử không tầm thường của N thỏa mãn

st = N và s ≤ t Bây giờ giả sử rằng ta đã tìm được các số nguyên không

âm i và j với i < j sao cho xi ≡ xj (mod s) nhưng xi 6≡ xj (mod n) Do

s | (xi− xj) và s | N, ta có s | gcd(xi− xj, N) Bởi giả thiết s ≥ 2, ta cógcd(xi−x j, N) ≥ 2 Bởi định nghĩa, ta có gcd(xi−xj, N) | N Ngoài ra, ta có

N 6 | (xi− xj) và do đó N 6 | gcd(xi− xj, N) Chúng ta cũng có N 6 | gcd(xi−

xj, N), gcd(xi− xj, N) > 1 và gcd(xi− xj, N) | N Như vậy, gcd(xi− xj, N)

là một nhân tử không tầm thường của N

Bây giờ ta phải tìm i, j sao cho xi ≡ xj (mod s) và xi 6≡ xj (mod n).Nhận thấy rằng các dãy xn (mod s) là tuần hoàn với độ dài của chu trình

tỷ lệ với s Pollard đã đề xuất là xn được so sánh với x2n, với n = 1, 2, 3, Với mỗi n, ta kiểm tra xem d(xn− x2n, N) có là một nhân tử không tầmthường của N hay không, ta lặp lại quá trình cho đến khi một nhân tử đượctìm thấy Nếu không có nhân tử được tìm thấy, thuật toán sẽ không chấm

Ngày đăng: 26/03/2021, 07:39

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Hà Huy Khoái, Phạm Huy Điển (1997), Nhập môn Số học thuật toán, NXB Khoa học kỹ thuật Sách, tạp chí
Tiêu đề: Nhập môn Số học thuật toán
Tác giả: Hà Huy Khoái, Phạm Huy Điển
Nhà XB: NXB Khoa học kỹ thuật
Năm: 1997
[2] Hà Huy Khoái, Phạm Huy Điển (2004), Mã hóa thông tin, NXB Đại học Quốc gia Hà Nội.Tiếng Anh Sách, tạp chí
Tiêu đề: Mã hóa thông tin
Tác giả: Hà Huy Khoái, Phạm Huy Điển
Nhà XB: NXB Đạihọc Quốc gia Hà Nội.Tiếng Anh
Năm: 2004
[3] C. Barnes (2004), Integer Factorization Algorithms, Lecture Notes, Department of Physic, Oregon State University Sách, tạp chí
Tiêu đề: Integer Factorization Algorithms
Tác giả: C. Barnes
Năm: 2004
[4] Jr.H.W. Lenstra, R. Tijdeman (eds) (1983), Computational Methods in Number Theory, Mathematical Centre Tracts, vol. 154/155, Math- ematisch Centrum, Amsterdam Sách, tạp chí
Tiêu đề: Computational Methodsin Number Theory
Tác giả: Jr.H.W. Lenstra, R. Tijdeman (eds)
Năm: 1983
[5] E.W. Weisstein, “Pierre de Fermat”, From MathWorld, an on- line encyclopedia. Available: http://scienceworld.wolfram.com/biography/Fermat.html Sách, tạp chí
Tiêu đề: Pierre de Fermat
[6] E.W. Weisstein, “Pollard Rho Factorization.” From MathWorld, an online encyclopedia. December 28, 2002. Available: http://mathworld.wolfram.com/PollardRhoFactorizationMethod.html Sách, tạp chí
Tiêu đề: Pollard Rho Factorization
[7] E.W. Weisstein, “Brent’s Factorization Method.” From MathWorld, an online encyclopedia. December 28, 2002. Available: http://mathworld.wolfram.com/BrentsFactorizationMethod.html Sách, tạp chí
Tiêu đề: Brent’s Factorization Method
[8] E.W. Weisstein, “Pollard Rho Factorization.” From MathWorld, an online encyclopedia. December 28, 2002. Available: http://mathworld.wolfram.com/Pollardp-1FactorizationMethod.html Sách, tạp chí
Tiêu đề: Pollard Rho Factorization

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w