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

Tóm tắt luận văn Thạc sĩ Toán học: Một số thuật toán trong số học ứng dụng

36 9 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 36
Dung lượng 855,21 KB

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

Nội dung

Luận văn trình bày một số thuật toán số học và ứng dụng; thuật toán phân tích một số nguyên ra các thừa số nguyên tố bắt đầu từ sàng Eratosthennes, phương pháp RHO của Pollard, phân tích Fermat, phương pháp Squfof, thuật toán Dixon, thuật toán sàng bậc hai.

Trang 1

B ăGIÁOăD CăVÀă ÀOăT O

TR NGă IăH CăTH NGăLONG

NGUY NăTH ăTHANHăHUY N

M TăS ăTHU TăTOÁNăTRONG S ăH Că NGăD NG

TÓMăT TăLU NăV NăTH CăS ăTOÁNăH C

Chuyên ngành: Ph ng pháp toán s c p

Mã s : 8 46 01 13

HÀăN I,ă2018

Trang 2

Công trình đ căhoànăthànhăt i:

Tr ngăđ iăh căTh ngăLong

NG IăH NGăD NăKHOAăH C

Trang 3

Trang

Ch ng 1 Thuật toán và t duy thuật toán 2

1.1 Thuật toán 2

1.2 Đ ph c tạp c a thuật toán 2

1.3 T duy thuật toán 3

Ch ng 2 M t s thuật toán s h c th ng d ng 4 2.1 Ki n th c c bản 4

2.1.1 T nh chia h t 4

2.1.2 S nguy n t 5

2.1.3 Đ ng d 5

2.1.4 H thặng d và l p thặng d 6

2.1.5 Phân s li n t c 6

2.2 M t s thuật toán t m c chung l n nhất 7

2.2.1 Thuật toán Euclid 7

2.2.2 Thuật toán J.Stein 7

2.2.3 Thuật toán Euclid m r ng 7

2.2.4 Đ nh l Fermat nh 9

2.3 M t s thuật toán phân t ch s nguy n thành t ch các th a s nguy n t đặc bi t 11

2.3.1 Phân t ch s nguy n bằng sàng Erathostenes 11

2.3.2 Pollard s rho method 11

2.3.3 Đ ng cong Eliptic 13

2.3.4 Ph ng pháp c a Fermat 15

2.3.5 Ph ng pháp Squfof 16

2.3.6 Thuật toán Dixon 16

2.3.7 Thuật toán Sàng bậc hai-Quadratic Sieve 17

Trang 4

Ch ng 3 H mã kh a RSA, ch k s và hàm băm mật mã 19

3.1 H mã h a RSA 19

3.2 Tạo kh a, mã h a, giải mã c a h RSA 19

3.3 Ch k đi n t -Ch k s 20

3.4 Hàm băm 21

3.4.1 Ph ng th c mã h a MD5 21

3.4.2 Ph ng th c mã h a SHA 1 25

Tài li u tham khảo 32

Trang 5

M đầu

S h c là m t m n khoa h c l th , hấp dẫn nh ng ng i h c và làm toán,các giáo vi n, h c sinh tr n khắp th gi i Mặc d khoa h c k thuật ngàynay rất phát tri n nh ng c nh ng bài toán t th i c đại vẫn c n giá tr đ ntận bây gi và vi c đi t m m t thuật toán phân t ch s nguy n ra t ch các th a

s nguy n t là m t trong nh ng thuật toán nh vậy Ch nh nh đ kh c a

vi c phân t ch s nguy n thành t ch các th a s nguy n t đã là c s cho s

ra đ i c a mật mã h c

Luận văn này tr nh bày m t s thuật toán s h c và ng d ng Thuậttoán phân t ch m t s nguy n ra các th a s nguy n t bắt đầu t sàngEratosthennes, ph ng pháp RHO c a Pollard, phân t ch Fermat, ph ngpháp Squfof, thuật toán Dixon, thuật toán sàng bậc hai Luận văn đ c chialàm ba ch ng:

1 Ch ng 1: Thuật toán và t duy thuật toán tr nh bày nh ng khái ni m

c bản v thuật toán, đ ph c tạp và t duy thuật toán

2 Ch ng 2: M t s thuật toán th ng d ng tr nh bày m t s ki n th c c

bản v m t s thuật toán s h c th ng d ng

c a thuật toán phân t ch s nguy n thành t ch các th a s nguy n t vàomật mã và tạo ch k s

Trang 6

Ch ng 1

Thuật toán và t duy thuật toán

Ch ng này tr nh bày nh ng khái ni m c bản v thuật toán, đ ph c tạp

và t duy thuật toán N i dung c a ch ng này đ c h nh thành t tài li u[1]

1.1 Thuật toán

Đ nh ngh a 1.1 Thuật toán là m t quy tắc, thao tác đ v i nh ng d li u

ban đầu đã cho, ta t m đ c l i giải cho bài toán sau m t khoảng th i gian h u hạn.

Trong thuật toán cần c :

Đầu vào: input

Đầu ra: output

Thuật toán phải bao g m nhi u b c và phải th a mãn y u cầu sau:

Trang 7

N u thuật toán c th i gian th c hi n f(n) = O(g(n)) ta n i th i gian th c

hi n là cấp g(n).

Ch ng ta cần l u th m m t đi m sau đây Trong th c t ch ng ta c nnhắc đ n thuật toán xác suất t c là thuật toán ph thu c vào m t hay

đ c g i là thuật toán, v ch ng c th , v i xác suất quá bé, kh ng bao gi

k t th c Tuy nhi n, th c nghi m ch ra rằng, các thuật toán xác suất th ng

h u hi u h n các thuật toán tất đ nh Thậm ch , trong rất nhi u tr ng

h p, ch c các thuật toán nh th là s d ng đ c Ta đ nh ngh a th m:

L x [u; v] = exp(v(lnx) u (lnlnx)1ưu). Trong su t luận văn hàm L n đ c d ng đ

t nh th i gian chạy

Ta c : L n [0; v] = exp(v(lnlnn)) = (lnn) v và L n [1; v] = exp(v(lnn)) = n v Th igian chạy L n [u, v] v i u < 0 và v là hằng s là th i gian m (subexponentialtime.)

1.3 T duy thuật toán

T duy thuật toán là s t ng h p các năng l c t duy đ giải quy t vấn đtheo m t quy tr nh xác đ nh h ng đ n m t tác nhân t ng th ch (tác nhânđây mu n n i là con ng i, máy t nh, hay bất c m t thi t b nào c ch cnăng t nh toán t đ ng c th hi u và th c hi n đ c thuật toán)

T duy thuật toán lu n đ nh h ng vào vi c m ra m t con đ ng l n, m tgiải pháp vạn năng cho vi c giải quy t hàng loạt vấn đ T duy thuật toán

gi p làm thay đ i quan đi m nh n nhận vấn đ và thay đ i th i quen làm toáncho h c sinh thay v làm theo m o m c bi n đ i th s làm toán theo c bản

và c t nh ng d ng r ng rãi, t ng quát cho nhi u tr ng h p

Thuật toán c các đặc đi m[1]:

Đ là m t dãy h u hạn các b c sắp x p theo m t tr nh t nhất đ nh

M i b c là m t thao tác s cấp, tr ng h p đặc bi t c ng c th là m tthuật toán đã bi t Các b c r ràng, thao tác ch nh xác (trong c ng m t đi u

ki n, hai b x l c ng th c hi n m t thuật toán th phải cho ra c ng m t k tquả)

C t nh k t th c T duy thuật toán là cách suy ngh đ nhận th c, đ giảiquy t vấn đ m t cách c tr nh t (sắp x p lần l t, th t tr c sau).[1]

Trang 8

Đ nh l 2.1 V i m i s nguy n d ng a, b t n tại duy nhất cặp s nguy n

kh ng âm (q, r) sao cho:

b = aq + r, r < a.

Đ nh ngh a 2.3 Trong đ nh l tr n, khi a là s chia h t b th s q đ c g i là

th ng(quotient) S r đ c g i là s d (remainder).

Trang 9

Nhận xét 2.1 Thuật toán chia c th m r ng ra tập s nguy n Z nh sau.

V i m i s nguy n a, b, a ̸= 0, t n tại duy nhất cặp s nguy n (q, r) ∈ Z×Z,

Trong phần này ch ng ta hi u các ch k hi u thay s là các s nguy n

Đ nh ngh a 2.5 Giả s n là m t s nguy n d ng Ta n i, hai s nguy n

a, b là đ ng d v i nhau theo modulo n n u a − b chia h t cho n và k hi u

a ≡ b(mod n).

tại s nguy n k, sao cho: a = b + kn. N u a ̸≡ b(mod n) c ngh a làa − b kh ngchia h t cho n

Đ nh ngh a 2.6 N u a ≡ 0(mod n) th ta n i a chia h t cho n và k hi ua n.

Ch ng ta c ng n i n là c c a a. c chung l n nhất c a hai s a, b đ c k

hi u là gcd(a, b).

Trang 10

Đ nh ngh a 2.7 (Nguy n t c ng nhau) Hai s nguy n a, b đ c g i là nguy n t c ng nhau n u gcd(a, b) 1.

Đ nh ngh a 2.8 (Phần t ngh ch đảo) N u hai s nguy n a n nguy n t

c ng nhau, t n tại s nguy n x sao cho: a.x ≡ 1(mod n) th ta g i x là phần t ngh ch đảo c a a trong phép modulo cho n và k hi u là a −1

Q k ,

Trang 11

2.2.1 Thuật toán Euclid

Đ nh l 2.8 V i m i s nguy n a ≥ 0; b > 0 th gcd(a, b) = gcd(b, a mod b).

Thuật toán Euclid:a hoặc b bằng 0 trả v gcd(a,b)= 0.

2.2.2 Thuật toán J.Stein

trong tr ng h p các s đã cho vi t d i dạng nh phân Thuật toán tr n d a

2.2.3 Thuật toán Euclid m r ng

Thuật toán Euclid m r ng h n thuật toán Euclid đi m trong tr ng h p

a và b nguy n t c ng nhau gcd(a, b) = 1 v i b ≥ a > 0 th thuật toán cho bi t

th m a −1 c a a trong phép chia modulo b t c là: a.a −1 ≡ 1(mod b)

Trang 12

Đ nh ngh a 2.11 N u s nguy n d ng a và s nguy n b nguy n t c ng

nhau th t n tại duy nhất m t s x ∈ {0, 1, 2, · · · , b − 1} sao cho ax ≡ 1(mod b).

S x này đ c g i là ngh ch đảo c a a theo modulo b (hoặc ng c lại, n i a là ngh ch đảo c a x (mod b).

Vậy, ngh ch đảo c a a theo modulo b t n tại khi và ch khi gcd(a, b) = 1.

Thuật toán Euclid m r ng

Trang 13

D ng th (i + 1) theo sau t th (i − 1) và i bằng cách khấu tr lần th icàng nhi u càng t t t lần th (i − 1), mà kh ng làm cho ph a tay phải c a k t

n us k = 0 sau đ sk−1 =gcd(x, z) và n u sk−1 = 1, th (rk−1 ≡ x1 mod z)

(x,y): a.x + b.y = gcd(a, b) V t t ng là quá tr nh t nh cặp s (x, y) vào trong

v ng lặp ch nh c a thuật toán Euclid

function Extended gcd(a, b);

]

r := a mod b; a := b; b := r (x r , y r ) := (x a , y a ) − q.(x b , y b ) (x a , y a ) := (x b , yb);

Đ nh ngh a 2.12 S Carmichael: H p s n là s Carmichael n u n là s

giả nguy n t Fermat v i m i c s a: CLN (a, n) = 1.

thuật ki m tra Miler-Kabin-thuật toán xác suất đ ki m tra t nh nguy n

t

Trang 14

x ≡ 1( mod p) hoặc x ≡ (p − 1)( mod p).

p là s nguy n t vi t lại p d i dạng p = 2k.q + 1 trong đ q là s l , a là

• Hoặc trong dãy s aq; a2q; a4q; · · · ; a2k−1q t n tại m t s mà đ ng d v i

(p − 1) modp.

Đ nh ngh a 2.13 Giả s n là s nguy n d ng l n − 1 = 2s.t trong đ s là s nguy n kh ng âm, t là s nguy n d ng l Ta n i n đ c ki m tra Miller c

s b, n u hoặc bt ≡ 1 mod n hoặc b2j.t ≡ −1 mod n v i j nào đ , 0 ≤ j ≤ s − 1.

MR2.(Ch n a m i): Ch n ngẫu nhi n s t nhi natrong khoảng1 < a < N.

Đặt e ← 0, b ← aq mod N N u b = 1, chuy n sang MR4

b2 mod N , e ← e + 1 N u b ̸= N − 1,in ra th ng báo n là h p s và k t

th c thuật toán

MR4 Đặt c ← c − 1 N u c > 0, chuy n sang MR2.N u c = 0 in ra th ngbáo N là s nguy n t Trả l i FALSE K t th c

Đ i v i s l n c th ch ng minh rằng m t s nguy n ngẫu nhi n đ c

ch n m t ∈ (2, 3, , n − 1) c c h i t nhất 75% kh ng th a mãn các đi u ki nnày và do đ là m t ch ng minh cho t nh h p nhất c a n xem [38,49]); xem

th m [3] Đi u này ch ng t n là h p s

Trang 15

• u đi m: sàng c a Erathostenes cho ta thuật toán xác đ nh m i s nguy n

t kh ng v t quá m t s cho tr c

Đ i v i hầu h t các con s , n rất hi u quả v hầu h t các con s đ u

ln√n = ln √n2√n. Ch ng ta cần O(log2n.log2m) phép t nh bit đ chia n cho

2 √n

ln n.C.log2n = C √

m t tri u phép t nh m t giây, th i gian cần thi t s vào khoảng 3, 1.1036

năm.(xem [1]) V vậy, ch ng ta t d ng đ xác đ nh xem m t s c phải

s nguy n t hay kh ng?

2.3.2 Pollard s rho method

Pollard s d ng m t hàm giả ngẫu nhi n đ sinh dãy x 1 ; x 2 ; · · · ; x k Hàm

x1; x 2 = f (x 1 ); x 3 = f (x 2 ); · · · ; x k = f (xk−1)(2). Do dãy x2; x 3 ; · · · ; x k đ c sinh

b i hàm f(x), n u t n tại x i ≡ x j mod p th ta d dàng suy ra: x i+1 ≡ x j+1

modp, x i+2 ≡ x j+2 mod p, · · · (3).

Trang 16

N i cách khác, ta s c m t v ng trong các dãy s b i f(x) khi lấy mod p

gi a các x j v i hi v ng t m thấy x j , x k nào đ sao cho: x j ∈ x / k ( mod n)

INPUTS: n là s nguy n cần phân t ch

f(x) là hàm tạo s giả ngẫu nhi n

Trang 17

Thành c ng đáng ch nhất c a ph ng pháp rho c a Pollard cho t i nay

Pollard s p − 1 method

hi u quả

Thuật toán

3) T nh ak( modn) (bằng thuật toán b nh ph ng li n ti p)

4) T nh (a k − 1, n) (Bằng thuật toán Euclid.)

5) N u d = (ak− 1, n) kh ng phải là m t c th c s c a n, ta lặp lại quá

tr nh tr n v i m t s a khác, hoặc k khác(hoặc cả a và k khác)

hi u quả khi c ch t may mắn

Thuật toán đ ng cong elliptic mạnh h n đ c Lesntra xây d ng vào nh ng

Ph ng pháp đ ng cong eliptic khắc ph c hoàn toàn đ c nh c đi m

tr n Trong bất k th nghi m nào trong đ m i lần th nghi m bất k kh ngcần y u t may mắn M t th nghi m thành c ng n u m t s ngẫu nhi n gần

λ = yQ− y P

x Q − x P mod n

xR = (λ2− x P − x Q ) mod n

y R = (λ(x P − x Q ) − y P ) mod n

Trang 18

-Đi m tại v c ng O là đi m c ng v i bất k đi m nào c ng s ra ch nh

x R = (λ2− 2x P ) mod p.

yR = (λ(x P − x R ) − y P ) mod p.

M r ng ra,phép nhân kP nhận đ c bằng cách th c hi n k lần phép c ng.Thuật toán nhân đ i và th m cho ta cách làm nh sau:

Thuật toán nhân t h a v i m t đ ng cong elliptic Cho k là h p s

sao cho k = k 1 k2 khi đ ta c th t nh kP = k 1 (k 2 P ).

vào n C ng nh a ; x; y ∈ Z n, sao cho P (x; y; 1) ∈ V n t y2 = x3+ ax + b ⇔ b ≡

y2− x3− ax( mod n) th a mãn đi u ki n (4a3+ 27b2∈ Z n.)

Thuật toán t m ki m c s t nhi n d c a s n: 1 < d < n Đ i v i t ng

e (r) = max {m |∈ Z ≥0 , rm ≤ v + 2√v + 1}, và sau đ :

Trang 19

ta phân t ch đ c n ra th a s và thuật toán d ng.N u nh t m đ c kP và

kh ng t m đ c d th thuật toán d ng và th ng báo và thuật toán phân t chthành nhân t kh ng thành c ng.Thuật toán k t th c

Đ nh l 2.12 Giả s E là đ ng cong elliptic cho b i ph ng tr nh y2 =

x3+ ax + b, trong đ a, b ∈ Z (4a3 + 27b2, n) = 1. Giả s P 1 P 2 là hai

đi m tr n E c mẫu s c a các t a đ nguy n t c ng nhau v i n, đ ng th i

P1 ̸= −P 2 Khi đ đi m P1+ P2 c t a đ v i mẫu s nguy n t c ng nhau v i

n n u và ch n u kh ng t n tại c nguy n t nào c a n, p | n v i t nh chất sau đây Các đi m P1 modP P2 mod P tr n E mod p c t ng là đi m

O mod p ∈ E mod p. (E mod p là đ ng cong tr n tr ng Fp nhận đ c bằng cách lấy đ ng d r t g n modulo pcác h s c a ph ng tr nh y2 = x3+ ax + b.)

Thuật toán nhân t h a v i m t đ ng cong elliptic Cho k là h p

s sao cho k = k 1 k 2 khi đ ta c th t nh kP = k 1 (k 2 P )

vào n. C ng nh a ; x; y ∈ Z n, sao cho P (x; y; 1) ∈ V n t y2 = x3+ ax + b ⇔ b ≡

y2− x3− ax( mod n) th a mãn đi u ki n (4a3+ 27b2∈ Z n.)

Thuật toán t m ki m c s t nhi n d c a s n : 1 < d < n. Đ i v i t ng

kP, n u trong quá tr nh t nh toán t m đ c c c a s n, 1 < d < n, th ch ng

Trang 20

n = x2− y2 = (x + y)(x − y) Bây gi , ta c k t quả y u h n:

Giả s c x, y : x2≡ y2( mod n) và 0 < x < y < n, x + y ̸= n khi đ n là m t

và do đ d 1 = gcd(x − y, n)và d 2 = gcd(x + y, n) là các c s kh ng tầm th ng

Ta c p2k ≡ (−1)k+1Qk+1( mod n)nh vậy, ta phải t m đ c cácQk+1 v i ch

s chẵn và là s ch nh ph ngy2 th x2≡ y2( mod n).Khi đ ,(x k +y)(x k −y) n.

Nh vậy, các c s chung l n nhất d 1 = (x k + y, n)vàd 2 = (x k − y, n), c nhi u

1 < m i < n Q(m i ) = pαi,11 pαi,kk

m2i ≡ Q(m i )( mod n).

Trang 21

∑k+1 i=1 xiαi,k

→aj = (α1j mod 2, α 2j mod 2, , α Bj mod 2) ∈ (Z2 )B N u c th t m đ c

m t tập con các − →aj sao cho t ng các modulo 2 là vecto (0, 0, , 0) th t ch c a

2.3.7 Thuật toán Sàng bậc hai-Quadratic Sieve

Đ ph c tạp c a thuật toán là: L n[1

2 ; 1] l nh s h c

Ch ng ta m tả s đ thuật toán ban đầu c a sàng bậc hai Đầu ti n,

Trang 22

1 < gcd(X ± Y, n) < n đ làm đ c đi u này ch ng ta xem xét đa th c: Q(x) = (x + ⌊√n ⌋)2− n ≡ H(x)2( mod n). đây, H (x) = x + ⌊√n ⌋ D nhận thấy các

nguy n t p i , p 1 ≤ B sao cho: n

trong cấp s c ng

x ≡ r 1p( mod p)

x ≡ rp2 ( mod p),

ch ng ta t nh toán giá tr c a logp.

Th i gian chạy c a thuật toán là

Trang 23

Thuật toán RSA đ c lấy t ba ch cái đầu c a t n ba tác giả thuật toán

tại H c vi n C ng ngh Massachusetts (MIT) và đ c MIT đăng k bằng sáng

t ng ch nh đảm bảo t nh an toàn c a thuật toán d a tr n đ kh c a

vi c phân t ch s nguy n l n thành t ch các th a s nguy n t Thuật toán RSA

c b n b c ch nh là:tạo kh a, chia s key, mã h a và giải mã,c hai kh a:

• Kh a c ng khai( Public Key)

Trang 24

Các s nguy n t đ c ch n theo ph ng pháp th xác suất.

B c b n ,năm đ c th c hi n bằng thuật giải Euclide m r ng

Mã h a và giải mã: Bản r (th ng tin tr c khi mã h a )k hi u m

Bản mã (th ng tin sau khi mã h a )k hi u là c

m là th ng tin nhận đ c

Đ an toàn c a thuật toán RSA ph thu c vào hai bài toán: bài toán phân

t ch m t s ra t ch các th a s nguy n t và bài toán RSA Hi n nay, ch a t m

đ c m t ph ng pháp nào tr n máy t nh giải quy t đ c bài toán này trong

th i gian đa th c

3.3 Ch k đi n t -Ch k s

M t s đ ch k s c hai phần: Thuật toán k và thuật toán xác minh.Giao th c ch k s đ n giản

Bob tạo ra m t cặp kh a m t kh a c ng khai k pr và kpub

Nhập th ng đi p (sign message: s = sigk pr (x))

G i th ng đi p và ch k s (x,s) cho Alice

Alice xác minh ch k s verify signature: verk pr,B (x, s)=true/false

Trang 25

3.4 Hàm băm

Ch ng ta s nghi n c u tại sao hàm băm đ c y u cầu trong các l c đ

ch k s ?

Đ nh ngh a 3.1 Hàm băm mật mã là hàm nhận vào chu i k t c đ dài

bất k (Message) k t xuất ra m t chu i c đ dài xác đ nh(digest) g i là giá tr băm và k t quả tạo ra c dung l ng nh h n chu i đầu vào Hàm băm c các thu c t nh:

h a th ng tin v i các thuật toán đ c thi t k t y ch nh

-T m t đoạn văn bản đầu vào s tạo ra duy nhất m t hash cho m t vănbản

-T m t hash đầu ta s kh ng bao gi suy ng c đ c plantext (bản r )ban đầu

Giải thuật: G m 5 b c:

Input: chu i c đ dài bất k

l = n.512 + 448 (v i l, n nguy n)

Ngày đăng: 06/05/2021, 08:47

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