Tải bản đầy đủ (.pdf) (7 trang)

Mật mã ứng dụng trong an toàn thông tin (4)

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 (630.97 KB, 7 trang )

19.10.2019

MẬT MÃ ỨNG DỤNG
TRONG ATTT
Bài 04. Hàm băm và
mật mã khóa cơng khai

1

Hàm băm

2

Tấn cơng từ điển

3

Một số thuật tốn
mật mã khóa cơng
khai điển hình

Giới thiệu về hàm băm

1

• Giá trị băm “đại diện” cho
một thông báo (văn bản) rất
dài

Hàm băm


2

Tấn cơng từ điển

3

Một số thuật tốn
mật mã khóa cơng
khai điển hình

– Có thể gọi là “bản tóm lược”
của thơng báo (message
digest)

• Một bản tóm lược thơng báo
như là một `` dấu vân tay số digital fingerprint'' của tài
liệu gốc
Tóm lược thơng báo có độ dài tùy ý
thành bản tóm lược có độ dài cố định
h = H(M)

4

Tính chất của hàm băm

Tính chất của hàm băm
• Băm và mã hóa

• Hàm nghiền


Xin chào.
Đây là một ví dụ về mã
hóa.

Hàm băm như hàm “nghiền” hay “tóm lược”

ke

NhbXBsZSBzZW50ZW5jZS
B0byBzaG93IEVuY3J5cHR
pb24KsZSBzZ

E

kd

Xin chào.
Đây là một ví dụ về mã
hóa.

D

NhbXBsZSBzZW50ZW5jZS
B0byBzaG93IEVuY3J5cHR
pb24KsZSBzZ

Mã hóa là hai chiều, và yêu cầu khóa để mã hóa/giải mã
Đây là một bản rõ dễ
dàng đọc được mà
khơng cần dùng khóa.

Các câu dài hơn văn
bản trên rất nhiều.

h

52f21cf7c7034a20
17a21e17e061a863

– Băm là một chiều. Khơng có khả năng tính ngược lại ( no 'de-hashing’)

5

6

1


19.10.2019

Tính chất của hàm băm

Có độ dài cố định

1

Hàm băm

2

Tấn cơng từ điển


3

Một số thuật tốn
mật mã khóa cơng
khai điển hình

Kháng tiền ảnh:
Kháng tiền ảnh thứ hai:
Kháng va chạm:

7

Tấn cơng từ điển

Tấn cơng từ điển

9

10

Tấn cơng từ điển
Password
mimoza
violet210
luckyday
mysecret
vietninja
p@$$w0rd
khongbiet

.....

Tấn cơng từ ñiển
Password
mimoza
violet210
luckyday
p@$$w0rd
p@$$w0rd
p@$$w0rd
khongbiet
.....

Hash 0xe3bca98abcd
0x938ff302c906
0xf2357adef39c
0x03aa8c0ff391
0xff0cea390de9
0x930000b8ca8
0xe3bca98abcd
0xac0bb81ca83
......

Precomputed Hash Table

11

Salt
0x7381a0f10c3
0xa0c110f139d

0x30ea0fd1d2f
0x31ffac10ca0
0xffa0cc103e1
0x00a10fc13d
0xd103c3f13f1

Hash
0x938ff3a2c906
0xf23e7adef39c
0x03aa8c01f391
0xff0cea3d0de9
0x930e00b8ca8
0xe3bc098abcd
0xac0bb80ca83
......

Sử dụng Salt chống lại Precomputed Hash Table

12

2


19.10.2019

Tấn cơng từ điển

Sử dụng salt ngăn chặn được việc dùng
Precomputed Hash Table nhưng không ngăn


1

Hàm băm

2

Tấn công từ điển

3

Một số thuật tốn
mật mã khóa cơng
khai điển hình

chặn được việc sử dụng từ điển
Để chống lại tấn công từ điển cần sử dụng mật
khẩu khơng có trong từ điển!
13

Hàm băm và ứng dụng

Hàm băm và ứng dụng

Cơ sở toán học

Cơ sở toán học

Thuật toán Diffie-Hellman

Thuật toán Diffie-Hellman


Thuật toán El-Gamal

Thuật toán El-Gamal

Thuật tốn RSA

Thuật tốn RSA
15

Nhóm hữu hạn

Nhóm
Nhóm (G, *) là một tập hợp G, cùng với
phép tốn hai ngơi * thỏa mãn:
1. Tính đóng

a, b ∈ G ⇒ a * b ∈ G Ví dụ: (Z, +) là

một
2. Tính kết hợp
(a * b) * c = a *(b * c) ∀a, b, c ∈ G

16

nhóm

3. Tồn tại phần tử trung hòa

∃e ∈ G : a * e = e * a = a ∀a ∈ G


Nhóm hữu hạn là nhóm có số phần
tử hữu hạn
|G| = q
Nhóm cộng Zn
G = {0, 1, 2, ..., n-1}
Nhóm nhân Z*n

4. Tồn tại phần tử nghịch đảo

∀a ∈ G ∃b ∈ G : a * b = b * a = e
17

18

3


19.10.2019

Phần tử sinh của nhóm cyclic

Phần tử sinh của nhóm cyclic

Nhóm cyclic là nhóm mà trong đó tồn tại
phần tử g, sao cho khi áp dụng liên tiếp
phép toán * lên phần tử g thì thu được
tất cả các phần tử khác của nhóm.
Ví dụ 1: Z5 = {{0, 1, 2, 3, 4}, +}
2+2

2+2+2
2+2+2+2
2+2+2+2+2
2+2+2+2+2+2

=
=
=
=
=

4
1
3
0
2

(mod
(mod
(mod
(mod
(mod

5)
5)
5)
5)
5)

Ví dụ 2: Z*5 = {{1, 2, 3, 4}, ×}

3
3
3
3

×3
×3×3
×3×3×3
^1

=
=
=
=

4
2
1
3

(mod
(mod
(mod
(mod

5)
5)
5)
5)


Nếu n = 2, 4, pk, 2pk (p là số ngun tố
lẻ) thì Z*n là nhóm cyclic.

19

Phần tử g được gọi là phần tử sinh hay
căn nguyên thủy.

20

Thuật toán Diffie-Hellman

Hàm băm và ứng dụng

Cơ sở toán học
Thuật toán Diffie-Hellman
Thuật toán El-Gamal
Thuật toán RSA
22

21

Thuật toán Diffie-Hellman

Hàm băm và ứng dụng

Cơ sở toán học
Thuật toán Diffie-Hellman
Thuật toán El-Gamal
Thuật toán RSA

23

24

4


19.10.2019

Thuật tốn mã hóa ElGamal

Thuật tốn mã hóa ElGamal
Sinh cặp khóa cho Alice:
Chọn số nguyên tố p, phần tử sinh g của Z*p
Chọn ngẫu nhiên
x ∈ [1, p-1]
Tính
h = gx
Khóa bí mật là
KSA = (p, g, x)
Khóa cơng khai là
KPA = (p, g, h)
Ví dụ:

Thuật tốn mã hóa ElGamal
Là thuật tốn mật mã khóa cơng khai

*
G = Z 29
; q = 28; g = 8


x = 15; h = g x = 815 = 21( mod 29 )
25

Thuật toán mã hóa ElGamal
Mã hóa (thơng điệp m gửi cho Alice)
Biết khóa công khai là
KPA = (p, g, h)
Chọn ngẫu nhiên
y ∈ [1, p-1]
Tính khóa chung
s = hy
Bản mã: c = (c1, c2) = (gy, m⋅⋅s)
Ví dụ:

KS A = ( 29,8,15 ) ; c = (17, 4 ) ;

y = 7; s = h y = 217 = 12

s = c1x = 1715 = 12;

7

c1 = g = 8 = 17; c2 = ms = 10 ⋅12 = 4
c = ( c1 , c2 ) = (17, 4 )

26

Thuật tốn mã hóa ElGamal
Giải mã (bởi Alice)

Bản mã
c = (c1, c2)
Dùng khóa bí mật là KSA = (p, g, x)
Tính khóa chung
s = c1x
Bản rõ: m = c2⋅s-1
Ví dụ:

KPA = ( 29,8, 21) ; m = 10;
y

KS A = ( 29,8,15 ) ; KPA = ( 29,8, 21)

s −1 = 17;

m = c2 s −1 = 4 ⋅17 = 10 ( mod 29 )
27

Lược đồ kí số ElGamal

28

Lược đồ kí số ElGamal
Sinh cặp khóa cho Alice:
Chọn số nguyên tố p, phần tử sinh g của Z*p
Chọn ngẫu nhiên
x ∈ [1, p-1]
Tính
h = gx
Khóa bí mật là

KSA = (p, g, x)
Khóa cơng khai là
KPA = (p, g, h)
Ví dụ:

Lược đồ kí số ElGamal
Tuy cùng tên với thuật tốn mã hóa ElGamal
nhưng bản chất thuật toán rất khác biệt.

*
G = Z 29
; q = 28; g = 8

x = 15; h = g x = 815 = 21( mod 29 )
29

KS A = ( 29,8,15 ) ; KPA = ( 29,8, 21)

30

5


19.10.2019

Lược đồ kí số ElGamal

Lược đồ kí số ElGamal
Kiểm tra chữ kí (bởi bất kì ai)
Thơng điệp m, sử dụng KPA = (p, g, h)

1. Kiểm tra: 0< r 2. Kiểm tra: gm == hr⋅rs (mod p)
−1
Cơ chế: s = ( m − xr ) k ( mod p − 1)

m = xr + sk ( mod p − 1)

Thực hiện kí số (bởi Alice)
Thơng điệp m, sử dụng KSA = (p, g, x)
1. Sinh ngẫu nhiên: 12. Tính r=gk (mod p)
3. Tính s = (m-xr)k-1 (mod p-1)
4. Nếu s=0 thì trở lại bước 1
5. Chữ kí số lên thơng điệp m là (r,s)
Ví dụ:


g m = g xr + sk = g xr g sk = h r r s ( mod p )
Ví dụ:
m = 10; sign (10 ) = ( 3, 7 ) ; KPA = ( 29,8, 21)

m=10; KSA=(29,8,15)
k= 11; r = gk = 811=3 (mod p)
k-1=23; s= (m-xr)k-1 =(10 – 15*3)*23=7
sign(10) = (3,7)

g m = 810 = 4 ( mod 29 )

31


h r r s = 213 ⋅ 37 = 4 ( mod 29 )

Hàm băm và ứng dụng

32

Thuật toán mã hóa RSA

Cơ sở tốn học
Thuật tốn Diffie-Hellman

Thuật tốn mã hóa RSA

Thuật tốn El-Gamal
Thuật tốn RSA
33

Thuật tốn mã hóa RSA
Sinh cặp khóa cho Alice:
Chọn 2 số ngun tố p, q
Tính n = pq, ϕ = (p-1)(q-1)
Chọn số mũ công khai e: gcd(e, ϕ)=1
Tính số mũ bí mật d: ed=1 (mod ϕ)
Ví dụ:

34

Thuật tốn mã hóa RSA
Mã hóa và giải mã
Mã hóa: c = me (mod n)

Giải mã
m = cd (mod n)
Cơ chế:
m = cd = med = mkϕϕ+1 = m (mod n)

p = 41, q = 43, n = 1763, ϕ = 40 ⋅ 42 = 1680
e = 11, d = 11−1 = 611( mod1680 )

Ví dụ:

m = 100; KS A = (1763, 611) ; KPA = (1763,11)
c = m e = 10011 = 182 ( mod1763)

KS A = (1763, 611) ; KPA = (1763,11)
35

m = c d = 182611 = 100 ( mod1763)

36

6


19.10.2019

Thuật tốn kí số RSA

Thuật tốn kí số RSA
Thuật tốn kí số hồn tồn tương tự thuật tốn
mã hóa. Trong đó, khóa bí mật được dùng để

kí, khóa cơng khai được dùng để kiểm tra chữ


Thuật tốn kí số RSA
Sinh cặp khóa cho Alice:
Chọn 2 số ngun tố p, q
Tính n = pq, ϕ = (p-1)(q-1)
Chọn số mũ công khai e: (e, ϕ)=1
Tính số mũ bí mật d: ed=1 (mod ϕ)
Ví dụ:

p = 41, q = 43, n = 1763, ϕ = 30 ⋅ 42 = 1680
e = 11, d = 11−1 = 611( mod1680 )
KS A = (1763, 611) ; KPA = (1763,11)

37

Thuật tốn kí số RSA
Kí số và kiểm tra chữ kí
Kí số:
sign(m) = s = md (mod n)
Kiểm tra: se == m (mod n)

38

1

Hàm băm

2


Tấn công từ điển

3

Một số thuật tốn
mật mã khóa cơng
khai điển hình

Ví dụ:

m = 100; KS A = (1763, 611) ; KPA = (1763,11)
sign ( m ) = s = m d = 100611 = 1658 ( mod1763)
s e = 165811 = 100 = m ( mod1763 )
39

7



×