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

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

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

04.10.2019

MẬT MÃ ƯD TRONG ATTT
Bài 02. Mật mã đối xứng

1

Cấu trúc, đặc điểm của mã
dòng

2

Mã dòng RC4

3

Cấu trúc, đặc điểm của mã
khối

4

Chế độ hoạt động của mã
khối

Khái niệm

1

Cấu trúc, đặc điểm của mã
dòng


2

Mã dòng RC4

3

Cấu trúc, đặc điểm của mã
khối

4

Chế độ hoạt động của mã
khối

Hệ mật Vernam
(One-Time Pad)
ki

Nguồn khóa
ngẫu nhiên

Nguồn khóa
ngẫu nhiên

ci = mi + ki

ki

ci


Bản mã

Nguồn tin

mi = ci − ki

mi

Bản rõ

4

Ví dụ hệ mật Vernam

Ví dụ hệ mật Vernam

Bộ kí tự:
chữ cái latin
Khóa ngẫu nhiên: PWKAX
Thơng điệp:
HELLO

MÃ HĨA



H

Khóa


P



W

E
(7)

(15)
(22)

L
(4)

W

(11)

K

(22)

A

(21)

O

(11)


A

(10)

V
(0)

L

(14)

X
(0)

?

(23)

?
(?)

Bộ kí tự:
chữ cái latin
Khóa ngẫu nhiên: PWKAX
Bản mã:
WAVLL

GIẢI MÃ


(?)

5



W

Khóa

P



H

A

(22)

V
(0)

W

(15)

K

(22)


E
(7)

(21)

(11)

L

(11)

A

(10)

L
(4)

L

(11)

X
(0)

L
(11)

(23)


O
(14)

6

1


04.10.2019

Mã dịng – Thường gặp

ðặc trưng của hệ mật Vernam
K

Có độ mật hoàn thiện

P ( m / c) = P ( m)

K

Mở rộng
khóa

Nguồn tin

zi

ci = mi ⊕ zi


E

Kích thước khóa bằng
kích thước bản rõ

Mở rộng
khóa

zi
Bản mã

ci

mi = ci ⊕ zi

mi

Bản rõ

mi , zi , ci ∈ {0,1}

7

ðịnh nghĩa mã dòng

D

8


Mã dòng – Trường hợp tổng quát

- Một hệ mật mã dịng là một hệ mật đối xứng,
trong đó các kí tự rõ được kết hợp với một
dịng kí tự khóa giả ngẫu nhiên.
- Trong mã dịng, từng kí tự rõ được mã hóa
riêng rẽ bởi một kí tự tương ứng trong dịng
khóa để cho ra một kí tự mã.

K

K

Mở rộng
khóa

E
Nguồn tin

Mở rộng
khóa

zi

zi

ci = ezi ( mi )
Bản mã

D


mi = d zi ( ci )

mi
mi , ci , zi ∈ A

9

ci

Bản rừ

10

Khỏi nim mó dũng

Mó dũng

ã Khi ôm rng khúaằ
L b sinh số giả ngẫu nhiên (PRNG)
–Là quan trọng nhất
–Quyết định độ an tồn của mã dịng

Mã khối
Mã đồng bộ
Mã dịng
Mật mã đối xứng

Mã tự đồng bộ


• Phân loại
–zi chỉ phụ thuộc K: «mã dịng đồng bộ»
–zi phụ thuộc ci-n, ci-n+1, ..., ci-1: «mã
dịng tự đồng bộ»
11

Mã đồng bộ
(OFB, Counter)
Mã kết hợp
Mã tự đồng bộ
(CFB)

12

2


04.10.2019

ðặc điểm của mã dịng

Ứng dụng của mã dịng
• Mã dịng có tốc độ cao do cơ chế sinh dịng
khóa và mã hóa khá đơn giản so với mã khối.
• Mã dịng có thể mã hóa lượng dữ liệu bất kì,
khơng cần phải chờ đợi kích thước đầu vào đạt
đến giá trị nhất định như mã khối.

Mỗi phần tử đầu vào được mã hóa bởi một
phần tử riêng biệt của dịng khóa

Kết quả biến đổi một phần tử đầu vào phụ
thuộc vào vị trí của phần tử trong chuỗi
Tốc độ cao, có thể mã hóa/giải mã gần với thời
gian thực
Có thể được cài đặt hiệu quả bằng phần cứng
và/hoặc phần mềm

Mã hóa dữ liệu
yêu cầu độ trễ
thấp: voice, video
conference

Mã hóa dữ liệu từ
nguồn sinh liên
tục, tốc độ không
ổn định

13

14

Thông tin chung về RC4

1

Cấu trúc, đặc điểm của mã
dòng

2


Mã dòng RC4

3

Cấu trúc, đặc điểm của mã
khối

4

Chế độ hoạt động của mã
khối

RC4 được thiết kế để đạt hiệu năng cao khi cài
đặt bằng phần mềm
Xây dựng bởi Ron Rivest năm 1987 nhưng đến
năm 1994 mới được tiết lộ
Được ứng dụng rộng rãi
Kích thước khóa: 40-2048 bít [4]
16

Sơ đồ chung của RC4

Khởi tạo S-box
0

1

Key

Khóa K

40-2048 bít

Khởi tạo
S-box

S-box
256*8 bít

Tạo dịng
khóa

0
S

Dịng
khóa

17

2

KeyLen-1
∙∙∙∙∙∙∙∙

1

2

252


253

254

255

∙∙∙∙∙∙∙∙

for i = 0..255 do
KeyLen = 5 .. 256 (bytes)
S[i]:= i;
Key[i] = 1 byte
j:=0;
for i = 0..255 do
j:=(j+S[i]+Key[i mod KeyLen]) mod 256;
swap (S[i], S[j]);
18

3


04.10.2019

Thơng tin thêm về RC4

Tạo dịng khóa

Thuật tốn đơn giản, rõ ràng
i:=0; j:=0;
while GeneratingOutput:

i:=(i+1) mod 256;
j:= (j+S[i]) mod 256;
swap (S[i], S[j]);
z:= S[(S[i] + S[j]) mod 256];
Output z; //dịng khóa được sinh từng byte
end while

Kích thước từ có thể thay đổi (ví dụ, có thể sử
dụng 4 bít thay vì 8 bít)
Dùng 1 khóa để mã 2 thơng điệp???

20

19

Thơng tin thêm về RC4
Ứng dụng RC4
WEP
BitTorrent protocol encryption
Microsoft Point-to-Point Encryption
Opera Mini
Secure Sockets Layer*
Secure shell*
Remote Desktop Protocol
Kerberos*
SASL Mechanism Digest-MD5*
PDF
Skype

1


Cấu trúc, đặc điểm của mã
dòng

2

Mã dòng RC4

3

Cấu trúc, đặc điểm của mã
khối

4

Chế độ hoạt động của mã
khối

21

Nguyên lý thiết kế mã khối

Nguyên lý thiết kế mã khối

Nguyên tắc Kerckhoffs
• "A cryptosystem should be secure even if everything
about the system, except the key, is public knowledge"
• "The enemy knows the system" (Shannon)

Cấu trúc lưới Feistel

(Feistel network)

Nguyờn lý ôKhuch tỏn v xỏo trnằ
ã Khuch tỏn
ã Xỏo trộn
• />
Cấu trúc SPN
(Substitution-permutation network)

Sử dụng hàm hợp
• Hàm mã hóa phức tạp = Hàm hợp của nhiều hàm mã
hóa đơn giản khơng giao hốn

23

24

4


04.10.2019

Cấu trúc lưới Feistel

Cấu trúc lưới Feistel
(Feistel network)

F: round function
Ki: round key
Li: left half

Ri: right half

Horst Feistel

Mã hóa:

o Born in Germany
o January 30, 1915
o Died November 14, 1990
o Moved to US in 1934

 Li +1 = Ri

 Ri +1 = Li ⊕ F ( Ri , K i )
Giải mã

 Ri = Li +1

 Li = Ri +1 ⊕ F ( Ri , K i )

25

ðặc ñiểm của mạng Feistel

26

Các hệ mật sử dụng mạng Feistel

1. Tại mỗi vòng, chỉ một nửa khối được mã hóa
cần nhiều vịng

giảm hiệu năng
2. Việc mã hóa và giải mã là giống hệt nhau, chỉ
khác ở trật tự sử dụng khóa vịng
chỉ cần 1
hàm/1 mạch điện tử để thực hiện cả mã hóa
và giải mã
3. Hàm F() khơng cần phải có hàm ngược F-1()

Blowfish
Camellia
CAST-128
DES
FEAL
GOST 28147-89
ICE
KASUMI
LOKI97

Lucifer
MARS
MAGENTA
MISTY1
RC5
Simon
TEA
Triple DES
Twofish
XTEA

27


Ứng dụng khác của mạng Feistel

28

Nguyên lý thiết kế mã khối

Cấu trúc SPN
(Substitution-permutation network)

Một số hệ mật sử dụng biến thể của mạng
Feistel (CAST-256, CLEFIA, MacGuffin, RC2,
RC6, Skipjack, SMS4)
Một số hệ mật khơng có cấu trúc mạng Feistel
nhưng chứa mạng Feistel trong thành phần của
nó (MISTY1, Threefish)

Rijndael, Square, Shark, BKSQ

Mạng Feistel cịn được sử dụng cho mục đích
khác với xây dựng mã khối, ví dụ, sử dụng
trong lược đồ OAEP (Optimal Asymmetric
Encryption Padding)
29

30

5



04.10.2019

Cấu trúc SPN

1

Cấu trúc, đặc điểm của mã
dòng

2

Mã dòng RC4

3

Cấu trúc, đặc điểm của mã
khối

4

Chế độ hoạt động của mã
khối

31

Chế ñộ hoạt ñộngcủa mã khối
1.
2.
3.
4.

5.

Confidentiality modes
• ECB, CBC, OFB, CFB, CTR...

Chế ñộ hoạt ñộng của mã khối
ECB: Electronic Codebook Mode
CBC: Cipher Bock Chaining Mode
OFB: Output Feedback Mode
CFB: Cipher Feedback Mode
CTR: Counter Mode

Authenticated Encryption
modes
• CCM, GCM, CWC, EAX...

33

34

ECB: Electronic Codebook Mode

ECB: Electronic Codebook Mode
ECB: Encrypt

C j = CIPH K ( Pj )

j = 1..n

ECB: Decrypt


Pj = CIPH K−1 ( C j )

35

j = 1..n

36

6


04.10.2019

ECB: Electronic Codebook Mode

CBC: Cipher Bock Chaining Mode

ECB: Đặc điểm

- Đầu vào giống nhau dẫn đến đầu ra
giống nhau
- Một bít lỗi trong khối mã dẫn đến mất
một khối tương ứng khi giải mã
- Có thể xử lý các khối song song

37

38


CBC: Cipher Bock Chaining Mode

CBC: Cipher Bock Chaining Mode

CBC: Encrypt

CBC: Đặc điểm

CBC: Decrypt

- Khi các khối rõ giống nhau thì các
khối mã vẫn khác nhau
- Một bít lỗi trong khối mã thứ j dẫn
đến mất khối j và j+1 khi giải mã
- Khơng thể mã hóa song song các
khối, chỉ có thể giải mã song song
39

40

CFB: Cipher Feedback Mode

CFB: Cipher Feedback Mode
CFB: Encrypt

CFB: Decrypt

I1 = IV

I1 = IV


I j = LSBb− s ( I j −1 ) | C

#
j −1

O j = CIPH K ( I j )
#
j

#
j

C = P ⊕ MSBs (O j )

41

I j = LSBb−s ( I j −1 ) | C #j −1

j = 2..n

O j = CIPH K ( I j )

j = 1..n

#
j

#
j


P = C ⊕ MSBs (O j )

j = 1..n − 1

42

7


04.10.2019

CFB: Cipher Feedback Mode

OFB: Output Feedback Mode

CFB: Đặc điểm

- Khi bản rõ là giống nhau thì bản mã
vẫn khác nhau
- Một bít lỗi trong bản mã dẫn đến mất
b/s khối (s bit) khi giải mã
- Là mã dòng tự đồng bộ, chịu được
lỗi mất hoặc thêm kí tự
43

44

OFB: Output Feedback Mode
OFB: Encrypt


OFB: Output Feedback Mode
OFB: Đặc điểm

OFB: Decrypt

I1 = IV

I1 = IV

I j = O j −1

I j = O j −1

j = 2..n

O j = CIPH K ( I j )

O j = CIPH K ( I j )

j = 1..n

C j = Pj ⊕ O j

Pj = C j ⊕ O j

j = 1..n − 1

Cn# = Pn# ⊕ MSBu ( On )


Pn# = Cn# ⊕ MSBu ( On )

- Khi bản rõ là giống nhau thì bản mã
vẫn khác nhau
- Một bít lỗi trong bản mã dẫn đến một
bít lỗi tương ứng khi giải mã
- Bản rõ khơng chẵn kích thước khối
vẫn khơng cần đệm
- Là mã dòng đồng bộ

45

46

CTR: Counter Mode

CTR: Counter Mode
CTR: Encrypt

47

CTR: Decrypt

O j = CIPH K (T j )

O j = CIPH K (T j )

j = 1..n

C j = Pj ⊕ O j


Pj = C j ⊕ O j

j = 1..n − 1

Cn# = Pn ⊕ MSBu ( On )

Pn# = Pn ⊕ MSBu ( On )

48

8


04.10.2019

CTR: Counter Mode
CTR: Đặc điểm

- Khi bản rõ là giống nhau thì bản mã
vẫn khác nhau
- Một bít lỗi trong bản mã dẫn đến một
bít lỗi tương ứng khi giải mã
- Bản rõ khơng chẵn kích thước khối
vẫn khơng cần đệm
- Là mã dịng đồng bộ
- Có thể cài đặt song song
49

9




×