Tải bản đầy đủ (.pptx) (39 trang)

Bài giảng an toàn và bảo mật thông tin chương 2 cơ sở toán học của lý thuyết mật mã

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (738.19 KB, 39 trang )

Chương 2. Cơ s ở toán h ọc
c ủa lý thuy ết m ật mã


2.1 Số học các số nguyên và
thuật toán Euclide
Tính chia h ết c ủa s ố nguyên








Cho a, b≠0 là các số nguyên. Ta nói a chia hết
cho b nếu tồn tại 1 số c sao cho:
a=b.c
Ký hiệu b|a
a là bội số của b (divisor), b là ước số của a
( mutiple)
Ví dụ: 2| 6


Tính chia h ết c ủa các s ố nguyên








Với a, b, c, d, e ∈Z, ta có:
- Nếu a|b và b|c ⇒ a|c
- Nếu a|b, thì ac|bc ∀c
- Nếu c|a và c|b, thì c| da+ be ∀d, e
- Nếu a|b và b≠0, thì |a|≤|b|
- Nếu a|b và b|a, thì |a|=|b|


Đ ịnh lý phép chia c ủa Euclid
 Đối

với mọi số n, d\{0}, luôn tồn tại duy nhất các
số q, r∈Z sao cho:
n=qd+r với 0
n

là số bị chia (divident), d là số chia (divisor), q
thương số (quotient), r là số dư (remainder), ký
hiệu Rd (n)
 ví dụ:

R7 (16)=2

R7 (-16)=?


Ư ớc chung l ớn nh ất(greatest
common divisor- gcd)





Cho hai số a, b ∈Z\{0}, c∈Z được gọi là ước chung
của a và b nếu c|a và c|b
C được gọi là ước chung lớn nhất, ký hiệu gcd(a,
b), nếu nó là số nguyên lớn nhất a, b chia hết.


B ội chung nh ỏ nh ất(Least common
multiple)




Cho hai số a, b ∈Z\{0}, c∈Z được gọi là bộichung
của a và b nếu a|c và b|c
C được gọi là bộichung nhỏ nhất, ký hiệu lcm(a,
b), nếu nó là số nguyên nhỏ nhất chia hết cho a,
b.


Thuật toán Euclide tìm UCLN
 Input:

hai số không âm a, b, a>=b
 Output: gcd(a, b).
Trong khi b>=0 thực hiện:
r a mod b

a b
b r
Cho kết quả (a)


Thu ật toán Euclid m ở r ộng




Thuật toán Euclid mở rộng dùng để tìm hai số x,
y thỏa mãn phương trình sau:
ax + by = gcd(a, b)


Euclide m ở r ộng


Ví dụ


Cho a=4864, b= 3458, tìm (d, x, y)

(38, 32, -45)


Nguyên t ố và h ợp s ố











Số tự nhiên 1nếu nó chỉ chia hết cho chính nó và cho 1.
Số tự hiên n∈N không phải là nguyên tố được gọi là hợp
số(composite).
Hai số a và b được gọi là nguyên tố cùng nhau nếu
gcd(a, b)=1.
Mọi số nguyên n>1đều có thể viết dưới dạng:
n=p1a1 .p2a2 …pkak
Lưu ý: số 1 không pải là ngto cũng không phải là hợp
số.


Hàm đ ếm các s ố nguyên t ố


Hàm đếm các số nguyên tố(prime counting
function) ∏(n) cho kết quả là các số nguyên tố
nhỏ hơn hay bằng n∈N
∏(n)=|{p∈P| p≤n}|


Phân tích h ợp s ố thành th ừa s ố
nguyên tố



Mỗi số tự nhiên n ∈N đều có thể phân tích thành
các thừa số nguyên tố duy nhất



ep (n): là số mũ của p
Ví dụ: 4725=32 .53 . 7




Phân tích h ợp s ố thành th ừa s ố
nguyên tố







Ví dụ: tìm gcd và lcm của ( 143, 220)
143=11.13
220= 2^2. 5. 11
Gcd(143, 220)= 2min(2,0) .5min(1,0) . 11. 13min(1, 0)
lcm(143, 220)= 2max(2,0) .5max(1,0) . 11. 13max(1, 0)


Euler’s Totient function



Dùng để đếm các số với n.



Ví dụ: ɸ(10)=4
Nếu p là nguyên tố thì ɸ(p)= p-1
Nếu n=p.q thì ɸ(n)=(p-1)(q-1)





Euler’s Totient function


Với mọi số nguyên n có thể phân tích thành thừa
số nguyên tố thì



Ví dụ: ɸ(45)= ɸ(32 .5)=(3-1)2-1 .(5-1)1-1 =24


Euler’s Totient function


Từ ɸ(p.q)=(p-1)(q-1), ta có thể tính p khi biết

ɸ(p.q) theo công thức sau:



Công thức này được dùng trong mã hóa công
khai RSA


2.2. Đ ồng dư theo modular






Cho a, b∈Z, n∈N. a được gọi là đồng dư với b
theo modulo n nếu n|a-b( tức a-b chia hết cho n,
hay a và b chia cho n cùng số dư)
Ký hiệu: a≡b(mod n)
Ví dụ: 7≡12(mod 5)
4≡-1(mod 5)


Tính ch ất đ ồng dư modular n
Với mọi số n∈N, a, b,c ∈Z các tính chất sau luôn thỏa
mãn:
1. a≡a(mod n)- tính chất phản xạ
2. Nếu a≡b(mod n) thì b≡a(mod n)- tính đối xứng.
3. If a≡b(mod n) and b≡c(mod n) thì a≡c(mod n) (tính
bắc cầu)

Quan hệ đồng dư theo modular n là quan hệ tương
đương


Các phép toán đ ồng dư


Có thể thực hiện các phép cộng và nhân phần dư
tương tự như cộng nhân các số nguyên.

Rn (a + b) = Rn ( Rn (a ) + Rn (b))
Rn (a.b) = Rn ( Rn (a ).Rn (b))


Ví dụ:

R 7 (12 + 18) = R7 ( R7 (12) + R7 (18)) = 2
R7 (12.18) = R7 ( R7 (12).R7 (18)) = R7 (4.5) = 6


Ngh ịch đ ảo nhân


Nếu tồn tại một số b∈Zn sao cho ab≡1(mod n) thì
b được gọi là nghịch đảo nhân của a modulo n.
−1

b = a (mod n)







Điều kiện để a có nghịch đảo nhân khi và chỉ khi
gcd(a, n)=1 ( a, n nguyên tố cùng nhau).
Ví dụ: 8= 22-1 (mod 25) vì:
8.22=176=1(mod 25)


Ví d ụ ngh ịch đ ảo nhân







Cho m=5, a=2. gcd(2,5)=1, do đó 2 có nghịch
đảo nhân modulo 5.
 3=2-1 (mod 5) vì 2.3≡1(mod 5)
gcd(4, 15)=1 vậy 4 có nghịch đảo nhân modulo
15
 4.4≡1(mod 15) nên 4=4-1 (mod 15)


Cách tìm ngh ịch đ ảo nhân


C1: giải thuật Euclid mở rộng


au + pu = 1
−1

u = a mod p


C2: dùng giải thuật tính số mũ nhanh

a

−1

≡a

p −2

mod p


Cách tìm ngh ịch đ ảo nhân(tt)





Để tìm nghịch đảo nhân modulo n , áp dụng
Euclid mở rộng:
xa + yn = gcd(a, n) = 1


xa ≡ 1(mod n)
x là nghịch đảo nhân a modulo n
Nếu gcd(a, n)=k>1 thì a không có nghịch đảo
nhân modulo n.


Ví dụ


×