1. Trang chủ
  2. » Cao đẳng - Đại học

Giáo trình Mật mã học - PGS.TS. Nguyễn Bình (chủ biên) - Trường Đại Học Quốc Tế Hồng Bàng

20 19 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

Víi sù ph¸t triÓn cña khoa häc kü thuËt vµ c«ng nghÖ, cïng víi c¸c nhu cÇu ®Æc biÖt cã liªn quan tíi an toµn th«ng tin, ngµy nay c¸c kü thuËt chÝnh trong an toµn th«ng tin bao gåm: Kü[r]

(1)

Lời nói đầu

Trong s phát triển xã hội loài ng−ời, kể từ có trao đổi thơng tin, an tồn thơng tin trở thành nhu cầu gắn liền với nh− hình với bóng Từ thủa sơ khai, an tồn thơng tin đ−ợc hiểu đơn giản giữ đ−ợc bí mật điều đ−ợc xem nh− nghệ thuật ch−a phải ngành khoa học Với phát triển khoa học kỹ thuật công nghệ, với nhu cầu đặc biệt có liên quan tới an tồn thơng tin, ngày kỹ thuật an tồn thơng tin bao gồm: Kỹ thuật mật mã (Cryptography), Kỹ thuật nguỵ trang (Steganography), Kỹ thuật tạo bóng mờ (Watermarking - hay xăm điện tử) Kỹ thuật mật mã nhằm đảm bảo ba dịch vụ an toàn bản:Bí mật (Confidential), Xác thực (Authentication), Đảm bảo tính tồn vẹn (Integrity) Có thể thấy mật mã học lĩnh vực khoa học rộng lớn có liên quan nhiều đến tốn học nh−: Đại số tuyến tính, Lý thuyết thơng tin, Lý thuyết độ phức tạp tính tốn…

(2)

Hy vọng sách tài liệu tham khảo hữu ích cho giảng viên, sinh viên tr−ờng đại học kỹ thuật công nghệ

Xin trân trọng giới thiệu bạn đọc

Hà Nội, ngày 23 tháng 10 năm 2003

(3)

thuật ngữ viết tắt

DES Data Encryption Standard Chn m· d÷ liƯu LAN Local Area Network M¹ng cơc bé

MDV M· dịch vòng

MTT MÃ thay

MHV MÃ hoán vị

ECB Electronic Code Book Chế độ mã điện tử CFB Cripher Feedback Chế độ phản hồi mã CBC Cripher Block Chaining Chế độ liên kết khối mã RSA Rivest - Shamir - Adleman

MAC Message Authentication Code Mã xác thực thông báo OWHF Oneway Hash Funtion Hàm băm chiều CRHF Collision Resistant hash function Hàm băm khó va chạm MDC Manipulation Detection Code Mã phát sửa đổi LSB Least Signification Bit Bit thấp (có giá trị nhỏ

nhÊt

Header Tiêu đề

IDEA International Data Encryption Algorithm

Thuật toán mà hóa liệu quốc tế

PGP Pretty Good Privacy ThuËt to¸n m· hãa PGP SET Secure Electronic Transaction Giao dịch điện tử an toµn LFSR Linear Feedback Sequence

Register

Thanh ghi håi tiÕp tuyÕn tÝnh

Firewall Bøc t−êng lưa

Server M¸y chđ

(4)

PhÇn I

(5)

bỉ tóc vỊ lý thuyÕt sè

1.1 Sè nguyªn

Tập số nguyên {K,3,2,1,0,1,2,3,K}=Z

1.1.1 Định nghĩa 1.1

Cho a,b∈Ζ

a lμ−íc cđa b nÕu ∃c∈Z:b=a.c Ký hiƯu lμ ab

1.1.2 C¸c tÝnh chÊt chia hÕt

Ζ ∈

∀a,b,c ta cã: (i)aa

(ii) NÕu abvμ cb th× ac

(iii) NÕu ba vμ ca th× a (bx +cy) víi ∀x,y∈Z (iv) NÕu abvμ ab th× a=±b

1.1.3 Định nghĩa 1.2 (Thuật toán chia số nguyên)

NÕu a vμ b lμ c¸c sè nguyên với b1 a=qb+r; 0r<b

(6)

Phần d phép chia a v b đợc ký hiệu amodb=r Thơng phép chia a v b đợc ký hiÖu adivb=q

Ta cã

b a b a b mod a , b a b div a

⎥⎦ ⎤ ⎢⎣ ⎡ − = ⎥⎦

⎤ ⎢⎣ ⎡ =

VÝ dô: a = 73, b = 17

73 div 17 = 4, 73 mod 17 =

1.1.4 Định nghĩa 1.3 (¦íc chung)

c lμ−íc chung cđa a vμ b ca&cb

1.1.5 Định nghĩa 1.4 (Ước chung lớn (ƯCLN))

Số nguyên dơng d l ƯCLN số nguyên a v b (Ký hiệu d = (a, b)) nÕu:

(i) d lμ−íc chung cđa a vμ b (ii) NÕu cã cavμ cb th× cd

Nh (a,b) l số nguyên dơng lớn ớc a v b không kể (0,0) =

VÝ dơ: C¸c −íc chung cđa 12 vμ 18 lμ {±1,±2,±3,±6} (12,18) =

1.1.6 §Þnh nghÜa 1.5 (Béi chung nhá nhÊt (BCNN))

Số nguyên dơng d l BCNN số nguyên a vμ b (Ký hiÖu d = BCNN (a,b)) nÕu:

(i) ad,bd

(ii) NÕu cã ac, bc th× dc

(7)

Ch−¬ng 1: Bỉ tóc vỊ lý thuyÕt sè 11

1.1.7 TÝnh chÊt

( ) ( )a,b b a b , a BCNN =

VÝ dô: ( ) ( ) 36

6 18 12 18 , 12 BCNN

18 ,

12 = ⇒ = = .

1.1.8 Định nghĩa 1.6

Hai số nguyên dơng a v b đợc gọi l nguyên tố nếu: (a,b) =

1.1.9 Định nghĩa 1.7

Số nguyênp2đợc gọi l số nguyên tố ớc dơng l v p Ngợc lại p đợc gọi l hợp số

1.1.10 Định lý số học

Với số nguyên n2 ta phân tích đợc dới dạng tích luỹ thừa số nguyên tố

k

1 e

k e e

1 p p

p

n= K

Trong pi lμ số nguyên tố khác vμ ei lμ số nguyên d−ơng Hơn phõn tớch trờn l nht

1.1.11 Định nghĩa 1.8

Với n ≥2, hμm Φ( )n đ−ợc xác định lμ số số nguyên khoảng [ ]1,n nguyên tố với n

1.1.12 C¸c tÝnh chÊt cña hμm Φ(n)

(8)

(iii) NÕu ek

k e e

1 p p

p

n= K lμ phân tích thừa số nguyên tố n thì:

( ) ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ − ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ − ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ − = Φ k p 1 p 1 p 1 n

n K

1.1.13 Định lý 1.1

Víi ∀n≥5 th× ( ) ) n (ln ln n n > Φ

1.2 c¸c thuËt to¸n z

Cho a vμ b lμ số nguyên không âm v nhỏ n Cần ý số bit biểu diễn nhị phân n l

[lgn] + vμ số nμy xấp xỉ lgn Số phép toán bit bốn phép toán số lμ cộng, trừ, nhân vμ chia sử dụng thuật tốn kinh điển đ−ợc tóm l−ợc bảng 1.1 Các kỹ thuật tinh tế phép tốn nhân vμ chia có độ phức tạp nh hn

Bảng 1.1: Độ phức tạp bit phép toán Z

Phép toán Độ phức tạp bit

Cộng a + b 0(lga + lgb) = 0(lgn) Trõ a – b 0(lga + lgb) = 0(lgn) Nh©n a.b 0((lga).(lgb)) = 0((lgn)2)

Chia a = qb + r 0((lga).(lgb)) = 0((lgn)2)

ƯCLN số nguyên a vμ b đ−ợc tính theo định lý sau:

1.2.1 Định lý 1.2

Nếu k fk

k f f e k e e

1 p p ,b p p p

p

a= K = ei ≥0,fi ≥0 ( ) ( 1) ( 2) min(ek,fk)

k f , e f , e

1 p p

p b , a

CLN = K

(9)

Ch−¬ng 1: Bỉ tóc vỊ lý thut sè 13 vμ ( ) (1 1) ( 2) max(ek,fk)

k f , e max f , e max

1 p p

p b , a

BCNN = K

Ví dụ: Cho a = 4864 = 28.19; b = 3458 = 2.7.13.19 Khi đó:

( ) ( )

( ) (a,b 4864,3458) 7.13.19 442624 BCNN 38 19 3458 , 4864 b , a CLN = = = = = =

1.2.2 Định lý 1.3

Nếu a v b l số nguyên dơng với a>b ƯCLN(a,b) = ƯCLN (b,a mod b) Thuật toán Euclide sau cho ta cách tính ƯCLN hiệu m không cần phải phân tích thừa số nguyên tố

1.2.3 Thuật toán Euclide

Tính ƯCLN số nguyên

Vo : Hai số nguyên không âm a v b với a > b Ra : ¦CLN cđa a vμ b

(1) While b≠0

r b , b a , b mod a

r← ← ←

(2) Return (a)

1.2.4 Định lý 1.4

Thuật toán có thời gian chạy chừng 0(( )lgn 2) phép toán bit

Ví dụ: Sau l bớc chia thuật toán tính:

(10)

Thuật tốn đ−ợc mở rộng để khơng tính đ−ợc ƯCLN số ngun a vμ b mμ cịn tính đ−ợc số nguyên x vμ y thoả mãn ax+by=d

1.2.5 ThuËt to¸n Euclide më réng

Vμo : Hai sè nguyên không âm a v b với ab

Ra : d = ƯCLN(a,b) v số nguyên x v y tháa m·n ax+by=d

(1) Nếu b= đặt d ←a , x←1 , y←0 vμ return (d, x, y) (2) Đặt x2 ←1, x1 ←0, y2 ←0, y1←1

(3) While b >

(3.1) q←⎣a/b⎦,r←a−qb,x←x2−qx1,y←y2−qy1 (3.2) a←b, b←r, x2 ←x1, x1←x, y2 ←y1, y1 y (4) Đặt da,xx2,yy2 v v return (d, x, y)

1.2.6 Định lý 1.5

Thuật toán có thời gian chạy cỡ 0((lgn)2) phép toán bit. Ví dụ: Bảng 1.2 sau bớc thuật toán với giá trị vo a = 4864 v b = 3458

Bảng 1.2: Thuật toán Euclide më réng

Q r x y a b x2 x1 y2 y1

(11)

Ch−¬ng 1: Bỉ tóc lý thuyết số 15 Với đầu vo a = 4864 vμ b = 3458

Bëi vËy ta cã:

¦CLN(4864,3458) = 38 vμ (4864)(32) + (3458)(-45) = 38 1.3 Các số nguyên modulo n

1.3.1 §Þnh nghÜa 1.9

Nếu a vμ b lμ số nguyên a đ−ợc gọi lμ đồng d− với b theo modulo (ký hiệu lμ a = b mod n) n(a−b)

Số nguyên n đ−ợc gọi lμ modulo đồng d− Ví dụ: 24≡9mod5vì 24 – = 3.5

−11≡17mod7 v× −11−17= −4.7

1.3.2 Các tính chất

Đối với a,a1,b,b1,c ta có:

(1) a≡b(modn) nÕu vμ chØ nÕu a vμ b cịng cã phÇn d− chia cho n

(2) Tính phản xạ: aa(modn)

(3) Tớnh i xứng: Nếu a≡b(modn) b≡a(modn) (4) Tính bắc cầu: Nếu a≡b(modn) vμ b≡c(modn) a≡c(modn)

(5) NÕu a≡a1(modn) vμ b≡b1(modn) th× a+b≡a1+b1(modn) vμ a.b≡a1.b1(modn)

(12)

NÕu a = qn + r víi 0≤r≤n th× a≡r(modn)

Bởi số nguyên a lμ đồng d− theo modulo n với số nguyên nằm khoảng từ tới n - 1, số nμy đ−ợc gọi lμ thặng d− tối thiểu a mod n Nh− a vμ r đ−ợc dùng để biểu thị cho lớp t−ơng đ−ơng nμy

1.3.3 Định nghĩa 1.10

Các số nguyên modulo n (ký hiệu Zn) l tập (các lớp tơng đơng) số nguyên{0,1,2,K,n1} Các phép cộng, trừ, nhân Zn đợc thực theo modulo n

Ví dô: Z25 ={0,1,K,24} Trong Z25 ta cã: 13 + 16 = 13+16=294(mod25) Tơng tự 13.16 = Z25

1.3.4 Định nghĩa 1.11 (Phần tử nghịch đảo)

Cho a∈Zn, Phần tử nghịch đảo (ng−ợc theo phép nhân) a mod n lμ số nguyênx∈Znsao cho: ax≡1(modn)

Nếu x tồn lμ nhất, a đ−ợc gọi lμ khả nghịch Phần tử nghịch đảo a đ−ợc ký hiệu lμ a1

1.3.5 Định nghĩa 1.12

Phộp chia a cho bmodnlμ tích a vμ b−1 mod n tích nμy đ−ợc xác định b l phn t kh nghch

1.3.6 Định lý 1.6

(13)

Ch−¬ng 1: Bỉ tóc vỊ lý thuyết số 17

1.3.7 Định lý 1.7

Cho d = (a,n) Ph−ơng trình đồng d− ax≡b(modn) có nghiệm x vμ db, tr−ờng hợp nμy có d nghiệm nằm vμ n - 1, nghiệm nμy lμ tất ng d theo modulo nd

1.3.8 Định lý 1.8 (PhÇn d− China)

Nếu số nguyên n1,n2,K,nk lμ ngun tố đơi hệ ph−ơng trình đồng d−:

( )

( )

( k)

k

2

1

n mod a

x

n mod a

x

n mod a

x

≡ ≡ ≡

sÏ cã nghiÖm nhÊt theo modulo n (n = n1.n2Knk)

1.3.9 ThuËt to¸n Gausse

Nghiệm x hệ ph−ơng trình đồng d− định lý phần d− China đ−ợc tính bằng:

∑ =

= k

1 i

i i

iN M mod n

a x

Trong đó: Ni =n/nivμ Mi = Ni−1mod ni

Các tính toán ny đợc thực 0(( )lgn2) phép toán bit

(14)

1.3.10 Định lý 1.9

Nu (n1,n2)=1 thỡ cặp ph−ơng trình đồng d− x ≡ a(mod n1), x ≡ a(mod n2)

cã mét nghiÖm x a(mod n1,n2)

1.3.11 Định nghĩa 1.13

Nhãm nh©n cđa Z ln μ Zn* ={a∈Zn ( )a,n =1}

Đặc biệt, n l số nguyên tố Zn* ={a 1an1}

1.3.12 Định nghĩa 1.14

CÊp cđa Z l*n μ sè c¸c phÇn tư Z (ký hiƯu *n Z ) *n

Theo định nghĩa hμm Phi-Euler ta thấy: Z*n =Φ( )n

Cần để ý a∈Zn* vμ b∈Zn* a,b∈Z*n vμ

* n

Z lμ đóng phép nhân

1.3.13 §Þnh lý 1.10

Cho p lμ mét sè nguyên tố:

(1) Định lý Euler: Nếu aZn* aΦ( )n ≡1(mod n)

(2) NÕu n lμ tÝch số nguyên khác v ( )

(mod n ) s

(15)

Ch−¬ng 1: Bỉ tóc vỊ lý thut sè 19

1.3.14 §Þnh lý 1.11

Cho p lμ mét sè nguyên tố:

(1) Định lý Ferma: Nếu ( )a,p =1 th× ap−1 ≡1(mod p)

(2) Nếur ≡s(mod p−1)thì ar ≡ as (mod p)đối với số nguyên a Nói cách khác lμm việc với modulo số ngun tố p luỹ thừa đ−ợc rút gọn theo modulo p -

(3) Đặc biệt ap a(mod p) với số nguyên a

1.3.15 Định nghĩa 1.15

Cho a∈Z*n CÊp cđa a (ký hiƯu lμ ord( )a ) l số nguyên dơng nhỏ t cho at 1(mod n)

1.3.16 Định nghĩa 1.16

Cho a∈Z*n,ord( )a =t vμ as ≡1(mod n) t lμ −ớc s Đặc biệt t Φ( )n

Ví dụ: Cho n = 21,

Z21* = {1,2,4,5,8,10,11,13,16,17,19,20}

Chó ý r»ng Φ( )21 = Φ( ) ( )7 Φ = 12 = Z21* Cấp phần tử Z*21 đợc nêu bảng sau:

Bảng 13: Cấp phần tử Z*21

* 21

Z

a∈ 10 11 13 16 17 19 20

(16)

1.3.17 §Þnh nghÜa 1.17

Cho α∈Zn* NÕu cÊp l ( )n đợc gọi l phần tử sinh hay phần tử nguyên thủy Z NÕu *n Z cã mét phÇn tư *n sinh Z đ*n ợc gọi l cyclic

1.3.18 Các tính chất phần tử sinh Z*n

(1) Z*n cã phÇn tư sinh nÕu vμ chØ nÕu n=2,4,pk hc lμ

k

p

2 , p lμ số nguyên tố lẻ vμ k≥1 Đặc biệt, p lμ

mét sè nguyªn tố Z*n có phần tử sinh (2) Nếu l phần tử sinh Z*nthì: Zn* ={imodn 0≤i≤Φ( )n −1}

(3) Giả sử α lμ phần tử sinh Z*n, n

mod

b = αi cịng lμ mét phÇn tư sinh cña Z*n nÕu vμ chØ nÕu ( )

(i,Φn )=1 Từ ta rút Z*n lμ cyclic số phần tử sinh lμ Φ(Φ( )n )

(4) α∈Z*n lμ mét phÇn tư sinh cña * n

Z nÕu vμ chØ nÕu

( )n /p ≠1(modn)

αΦ nguyên tố p Φ( )n

VÝ dô: Z*21 không l cyclic không chứa phần tử cã cÊp Φ( )21 =12 (Chó ý r»ng 21 kh«ng thỏa mÃn điều kiện (1) trên)

* 25

(17)

Ch−¬ng 1: Bỉ tóc vỊ lý thuyết số 21

1.3.19 Định nghĩa 1.18

Cho aZ*n, a đợc gọi l thặng d bậc hai modulo n (hay bình phơng modulo n) tồn t¹i x∈Z*n cho

(modn) a

x2 ≡ Nếu khơng tồn x nh− a đ−ợc gọi lμ thặng d− không bậc hai mod n Tập tất thặng d− bậc hai modulo n đ−ợc ký hiệu lμ Qn, tập tất thặng d− không bậc hai đ−ợc ký hiệu lμ Q Cần ý theo định nghĩa n 0∉Z*n Bi vy 0Qnv 0Qn

1.3.20 Định lý 1.12

Cho p l số nguyên tố lẻ vμ α lμ mét phÇn tư sinh cđa

* p

Z Khi a∈Z*p lμ thặng d− bậc hai modulo p vμ a = αi mod p, i lμ số nguyên chẵn Từ rút ( )

2 p

Qp = − vμ ( )

1 p

Qp = − , tøc lμ mét nưa sè phÇn tư

* p

Z l thặng d bậc hai v nửa lại thặng d không bậc hai Ví dụ: =6 l phần tử sinh Z*13 Các lũy thừa

đợc liệt kê bảng sau:

i 10 11

αi mod 13 1 10 8 12 7 11

Bởi Q13 ={1,3,4,9,10,12}, Q13 ={2,5,6,7,8,11} 1.3.21 Định lý 1.13

Cho n lμ tích hai số nguyên tố lẻ khác q vμ p, n = p.q, a∈Z*n lμ thặng d− bậc hai modulo n vμ a∈Qpvμ a∈Qp Điều dẫn tới ( )( )

4 q p Q Q

(18)

vµ ( )( ) q p

Qn = − −

Ví dụ: Cho n = 21 Khi

Q21 ={1,4,16} Q21 ={2,5,8,10,11,13,17,19,20}

1.3.22 Định nghĩa 1.19

Cho aQn Nếu xZ*nthỏa mÃnx2 a(modn) x đợc gọi l bậc hai a mod n

1.3.23 Định lý 1.14 (Số bậc hai)

(1) Nếu p l số nguyên tố lẻ v aQnthì a đợc gọi l

căn bậc hai theo modulo p

(2) Tổng quát hơn, cho ek

k e e

1 p p

p

n= K , pi lμ số nguyên tố lẻ phân biệt vμ ei ≥1 Nếu a∈Qnthì có 2k bậc hai khác theo modulo n

Ví dụ: Các bậc 12 mod 37 l v 30 Các bậc cña 121 mod 315 lμ 11, 74, 101, 151, 164, 214, 241 vμ 304

1.4 C¸c thuËt to¸n Zn

Cho n l số nguyên dơng Các phần tử Zn đợc biểu thị số nguyên Q21 ={0,1,2, ,n1}

Ta thấy rằng, nÕu a,b∈Znth×

( ) ⎩ ⎨ ⎧ ≥ + − + < + + = + n b a r b a n b a b a n mod b a

(19)

Ch−ơng 1: Bổ túc lý thuyết số 23 phần d− kết sau chia cho n Các phần tử nghịch đảo Zn đ−ợc tính cách dùng thuật tốn Euclide mở rộng đ−ợc mơ tả d−ới đây:

1.4.1 Thuật tốn (Tính nghịch đảo Zn)

Vμo : a∈Zn

Ra : a−1modn(nÕu tån t¹i)

(1) Dùng thuật tốn Euclide mở rộng để tìm số nguyên x vμ y cho ax + ny = d d = (a,n)

(2) NÕu d > th× a−1 mod n không tồn Ngợc lại return (x) Phép lũy thừa theo modulo đợc thực có hiệu thuật toán nhân v bình phơng có lặp Đây l thuật toán quan trọng nhiều thủ tục mật mà Cho biểu diễn nhị phân cña k lμ:

=

t

0 i

i i2

k ki∈{ }0,1

( ) ( ) ( )0 1 t t

i

k k k t

0 i

i k

k a 2 a a a

a =∏ = K

=

1.4.2 Thuật toán nhân vμ bình ph−ơng có lặp để lấy luỹ thừa Zn

Vμo: a∈Znvμ sè nguyªn k, (0k<n) có biểu diễn nhị phân:

=

= t

0 i

i i2

k k

Ra: ak mod n

(20)

(3) Nếu k0 = đặt b←a (4) For i from to t

(4.1) §Ỉt A←A2modn

(4.2) Nếu ki =1 đặt b←A.bmodn (5) Return (b)

VÝ dơ: B¶ng 1.4 sau chØ c¸c b−íc tÝnh to¸n 5596mod1234 =1013

B¶ng 1.4: TÝnh 5596 mod 1234

i 7 9

ki 0 1 0

A 25 625 681 1011 369 421 779 947 925 b 1 625 625 67 67 1059 1059 1059 1013

Số phép toán bit phép toán Zn c túm lc bng 1.5

Bảng 1.5: Độ phức tạp bit phép toán Zn

Phép toán Độ phức tạp bit

Céng modulo a + b 0(lgn) Trõ modulo a - b 0(lgn) Nh©n modulo a.b 0((lgn)2)

Nghịch đảo modulo a-1 mod n 0((lgn)2)

Lòy thõa modulo ak mod n, k < n 0((lgn)3)

1.5 c¸c ký hiƯu legendre vμ jacobi

Ngày đăng: 01/04/2021, 15:51

Xem thêm:

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN