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
Rõ
H
Khóa
P
Mã
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
Mã
W
Khóa
P
Rõ
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