1. Trang chủ
  2. » Giáo Dục - Đào Tạo

(Luận văn thạc sĩ) một số thuật toán phân tích số nguyên hiện đại và ứng dụng

34 15 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 123,64 KB

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

Cấu trúc

  • Nguyễn Thị Bình

  • Danh sách kí hiệu

  • MỞ ĐẦU

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

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

    • 1.2 Phân tích Fermat

    • 1.3 Phân tích Pollard p-1

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

    • 2.1 Sự kiểm tra ước

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

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

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

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

    • 2.6 Khả năng phân tích số bằng các ``chip'' chuyên dụng

  • KẾT LUẬN VÀ KIẾN NGHỊ

  • TÀI LIỆU THAM KHẢO

Nội dung

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

Trong bài viết này, chúng tôi sẽ trình bày về thám mã, một vấn đề phức tạp Tuy nhiên, chúng tôi sẽ chỉ tập trung vào những khía cạnh đơn giản nhất để dễ hiểu Nội dung phần đầu sẽ được dựa trên tài liệu tham khảo [2].

Thám mã, hay còn gọi là phân tích mã, là quá trình nghiên cứu các phương pháp nhằm "phá vỡ" lớp ngụy trang của văn bản do mã hóa tạo ra, từ đó giúp hiểu rõ nội dung của 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 ba loại:

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

• 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ã).

Trong bài viết này, chúng ta sẽ khám phá các phương pháp thám mã, nhấn mạnh rằng việc thám mã trở nên phức tạp hơn khi không biết hệ mật mã đã được sử dụng Giả sử người thám mã đã nắm rõ hệ mật mã, mục tiêu là thiết kế một hệ mật mã an toàn và bảo mật.

Trong bài viết này, chúng ta sẽ điểm qua các loại tấn công vào hệ mật mã, với mức độ tấn công phụ thuộc vào kiến thức của người thám mã về hệ mật mã đang được áp 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ã.

Tấn công chọn bản tin rõ (chosen plaintext) xảy ra khi người thám mã tạm thời có quyền truy cập vào bộ mã hóa, cho phép họ lựa chọn bản tin rõ và tạo ra bản mã tương ứng.

Tấn công chọn bản mã (chosen ciphertext) cho phép kẻ tấn công tạm thời truy cập vào bộ giải mã, từ đó có thể chọn bản mã và khôi phục 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ã

Thám mã tích cực là quá trình mà người thám mã can thiệp vào dữ liệu truyền, nhận hoặc lưu trữ nhằm làm sai lệch thông tin với mục đích riêng.

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ã.

Mật mã affine là một phương pháp mã hóa trong đó bảng chữ cái của thông điệp được chuyển đổi thành các số tự nhiên từ 0 đến m−1 Để mã hóa, một hàm modulo được sử dụng, với công thức e(x) = (ax + b) (mod m), trong đó m là kích thước bảng chữ cái, a là khóa mã và b là một giá trị tùy chọn Điều quan trọng là giá trị a và m phải là các số nguyên tố cùng nhau để đảm bảo tính bảo mật của hệ thống.

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

Trudy thống kê tần suất xuất hiện của 26 chữ cái như trong bảng sau:

Trong bản mã, các chữ cái xuất hiện tổng cộng 57 lần, cho thấy phương pháp thám mã affine có hiệu quả Tần suất xuất hiện của các chữ cái theo thứ tự là: R (8 lần), D (6 lần), E, H, K (5 lần), và F, S, V (4 lần) Dựa vào tần suất này, ta dự đoán R có thể là mã của e, và D là mã của t Để tiếp tục phân tích, ta cần áp dụng công thức e K (x) = ax + b, với e K (4) và e K (19) = 3.

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

Giải hệ phương trình cho ta giá trị a = 6 và b, nhưng điều này không tạo thành khóa vì gcd(a, 26) = 2 > 1 Chúng ta tiếp tục phỏng đoán rằng R là mã của a và E là mã của t, nhưng kết quả vẫn chưa thỏa mãn yêu cầu.

H, ta cóa=8 Cuối cùng, vớiK ta tìm đượcK = (3,5) Sử dụng khóa mã này ta có được bản tin rõ là algorithmsrequiregeneraldefinitionsofarithmeticprocesses

(algorithms require general definitions of arithmetic processes)

Phân tích Fermat

Trước khi thảo luận về các thuật toán phân tích số nguyên, ta sẽ giới thiệu một số quy ước về thuật ngữ và khái niệm cơ sở.

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 cvàksao cho với mọix>k, ta có

Ta xét ví dụ f(x) =2x 2 +x+1làO(x 2 ) khix→∞vớic=2, k=0.

Kí hiệu O lớn được sử dụng để mô tả thời gian chạy và yêu cầu lưu trữ của thuật toán, thường được viết tắt là O(g(x)) với giả định x tiến tới vô hạn Khi phân tích hàm nhiều biến, biến nào tiến tới vô hạn sẽ được chỉ rõ Trong định nghĩa của O(g(x)), tất cả các sự kiện đều được xem xét khi x tiến tới vô hạn.

• 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ặcs=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 1N Khi đó t ≥s >√

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

Thuật toán như sau function trialDivision(N) for s from 2 to floor(sqrt(N)) if s divides N then return s, N/s end if 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ầm thườngs,t vớis≤t Phát biểu s|N tương đương vớis≡0 (mod N).

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

Phương pháp phân tích ρ của Pollard, được J.M Pollard công bố vào năm 1975, là một phương pháp xác suất nhằm phân tích hợp số N thông qua phép lặp modulo đa thức N Cụ thể, chúng ta khởi tạo dãy với x₀ ≡ 2 (mod n) và tiếp tục tính toán theo công thức xₙ₊₁ ≡ x²ₙ + 1 (mod n).

Dãy tuần hoàn bắt đầu từ một chỉ số nhất định, và có thể chứng minh rằng độ dài của chu trình không vượt quá N thông qua phương pháp phản chứng.

Giả sử chu trình có độ dài L lớn hơn N, nhưng chỉ có N giá trị phân biệt x_n trong chu trình, điều này dẫn đến việc tồn tại hai giá trị x_n đồng dư nhau Những giá trị này có thể được xác định là "các điểm xuất phát" cho chu trình có độ dài nhỏ hơn hoặc bằng N Các lập luận xác suất cho thấy thời gian dự kiến để dãy này theo mod n rơi vào một chu trình và độ dài dự kiến của chu trình 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ùng khác nhau, nhưng hàm f(n) =x 2 n +1cho 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ử s và t là các nhân tử không tầm thường của N với điều kiện st = N và s ≤ t Nếu tồn tại các số nguyên không âm i và j với i < j sao cho x_i ≡ x_j (mod s) nhưng x_i 6≡ x_j (mod N), thì có thể khẳng định rằng s chia hết cho (x_i - x_j) và cũng chia hết cho N, dẫn đến s chia hết cho gcd(x_i - x_j, N) Với giả thiết s ≥ 2, ta có gcd(x_i - x_j, N) ≥ 2 Theo định nghĩa, gcd(x_i - x_j, N) là ước số chung lớn nhất của (x_i - x_j) và N.

N 6 | (xi−x j ) và do đóN 6 | gcd(xi−x j ,N) Chúng ta cũng cóN 6 | gcd(xi− x j ,N), gcd(x i −x j ,N)>1 vàgcd(x i −x j ,N) |N Như vậy, gcd(x i −x j ,N) là một nhân tử không tầm thường củaN.

Để tìm i, j sao cho x_i ≡ x_j (mod s) và x_i 6≡ x_j (mod n), ta nhận thấy các dãy x_n (mod s) có tính tuần hoàn với chu trình tỷ lệ với s Pollard đã đề xuất so sánh x_n với x_{2n} cho n = 1, 2, 3, Tại mỗi n, chúng ta kiểm tra xem d(x_n - x_{2n}, N) có phải là một nhân tử không tầm thường của N hay không, và lặp lại quá trình cho đến khi tìm được một nhân tử Nếu không tìm thấy nhân tử, thuật toán sẽ không dừng lại.

Thuật toán là function pollardRho(N)

# Initial values x(i) and x(2*i) for i = 0. xi := 2 x2i := 2 do

# Find x(i+1) and x(2*(i+1)) xiPrime := xi ^ 2 + 1 x2iPrime := (x2i ^ 2 + 1) ^ 2 + 1

The algorithm involves incrementing the variable 'i' to modify the running values for x(i) and x(2*i) Specifically, we calculate xi as xiPrime modulo N and x2i as x2iPrime modulo N The next step is to determine the greatest common divisor (gcd) of the difference between xi and x2i with N If the gcd is neither 1 nor N, the function will return the gcd and N divided by the gcd The modulo operator ensures that the results are non-negative integers that satisfy the equivalence relation.

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

Phương pháp phân tích Brent, được phát triển bởi R Brent vào năm 1980, là một cải tiến của thuật toán ρ Pollard Thuật toán ρ Pollard nhằm mục đích tìm kiếm một nhân tử không tầm thường s của N bằng cách xác định các chỉ số i, j với điều kiện i < j sao cho x_i ≡ x_j (mod s) và x_i ≠ x_j (mod n) Dãy số x_n được định nghĩa qua quan hệ truy hồi với x_0 ≡ 2 (mod N) và x_{n+1} ≡ x_n^2 + 2 (mod N).

Pollard đã đề xuất phương pháp so sánh x_n với 2^n cho n = 1, 2, 3, Brent đã nâng cấp phương pháp này bằng cách so sánh x_n với x_m, trong đó m là lũy thừa nguyên của 2 và nhỏ hơn n.

Thuật toán là function brentFactor(N)

# Initial values x(i) and x(m) for i = 0. xi := 2 xm := 2 for i from 1 to infinity

To find \( x(i) \) from \( x(i-1) \), we use the formula \( x_i := (x_{i-1}^2 + 1) \mod N \) We then calculate \( s := \text{gcd}(x_i - x_m, N) \) If \( s \) is neither 1 nor \( N \), we return \( s \) and \( N/s \) Additionally, if \( i \) is an integral power of 2, we set \( x_m := x_i \) The function `integralPowerOf2(z)` determines if \( z \) is a power of 2, returning true if it is and false otherwise An efficient implementation checks successive powers of 2 until the power equals or exceeds \( z \).

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

Thuật toán này thường là tốt khi thừa số bé củan chỉ có khoảng từ 13 đến

Thuật toán này sử dụng một đường cong elliptic và một điểm R trên đó để phân tích, với khả năng xử lý các số lớn vượt xa 47 chữ số.

Quá trình lấy bội của điểm R trên đường cong elliptic theo modulo n yêu cầu phải làm việc với phân số có dạng (y2 - y1)/(x2 - x1) Tuy nhiên, phép nghịch đảo theo modulo n sẽ không thực hiện được khi mẫu số bằng 0.

Khi (x₁ − x₂) không phải là nguyên tố cùng nhau với n, tức là tồn tại một ước p của nó, thì việc tính điểm bội theo modulo p sẽ dẫn đến mẫu số bằng 0, và điểm bội trở thành vô cùng, ký hiệu là ∅ Ngược lại, khi tính điểm bội trên trường hữu tỷ, mặc dù mẫu số của cả hai tọa độ điểm bội đều có ước p, nhưng không gặp sự cố nào Nếu không xảy ra điều tương tự với ước q, thì p sẽ là ước chung lớn nhất của n và một trong hai mẫu số này Tóm lại, trong quá trình lấy bội của điểm R trên trường số hữu tỷ, có khả năng sẽ xảy ra trường hợp mà mẫu số của điểm bội có ước chung với n.

Để giải quyết bài toán, ta có thể cộng điểm R với chính nó theo modulo n cho đến khi gặp sự cố Khi đó, ta sẽ sử dụng lại điểm R và tìm ước chung lớn nhất giữa n và mẫu số của tọa độ điểm trong biểu diễn hữu tỷ.

Chúng ta có thể chọn một hợp số đủ lớn với nhiều loại ước số khác nhau Nếu một trong các ước này gây ra sự cố trong việc tính bội điểm R, thì việc lấy bội của R theo hợp số đó cũng sẽ gặp sự cố Khi đó, ta chỉ cần lấy ước chung lớn nhất của n với mẫu số của tọa độ điểm bội trong biểu diễn hữu tỷ để tìm ra một ước của n.

Khả năng “gặp may” trong việc tính các bội lớn thường cao hơn so với bội nhỏ, vì vậy người ta thường bắt đầu bằng cách tính một bội đủ lớn Việc tính bội lớn có thể thực hiện nhanh chóng qua phương pháp nhân đôi liên tiếp, tương tự như phép bình phương liên tiếp Thông thường, người ta chọn bội k=r! tùy theo R, do hợp số này có nhiều ước số khác nhau Cần lưu ý rằng các ước số của k không liên quan đến ước của n, vì vậy k không cần phải đủ lớn để thâu tóm một ước nào đó của n.

Khi thuật toán không cho kết quả với r!R không phải là ∅ theo modulo p hoặc q, và khi r!R là ∅ theo cả hai modulo p và q, ước chung lớn nhất tìm được sẽ bằng n Trong trường hợp này, cần chọn một đường cong khác và một điểm R khác.

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

Phương pháp phân tích số lớn này được coi là mạnh nhất hiện nay, đặc biệt khi n có hơn 110 chữ số thập phân (n > 10^110) và ước bé nhất của nó có trên 48 chữ số, thường được sử dụng trong RSA Các bước chuẩn bị để thực hiện thuật toán này bao gồm những gì cần thiết để đảm bảo hiệu quả và chính xác.

• Lấy số tự nhiênd ≈ q log(n) log log(n) vàm=⌊√ d n⌋.

• Khai triển sốntheo cơ số m, n=m d +a d − 1 m d − 1 +ããã+a 0 0≤a i

Ngày đăng: 10/06/2021, 08:58

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