1. Information Safe
Confidentiality
Modern cipher
Van Hoang Nguyen
Mail: startnewday85@gmail.com
Department of Computer Science
Faculty of Information Technology – Hanoi University of Agriculture.
4. Stream cipher
• Stream cipher xử lý plaintext theo từng bits hoặc
theo từng nhóm nhỏ(8bits)
• Stream cipher được xây dựng như sau:
- Khóa đóng vai trò làm input cho bộ sinh số ngẫu
nhiên(PNG)
- Output của PNG được gọi là keystream
- Keystream được tổ hợp với plaintext để tạo
thành ciphertext
Thường chỉ áp dụng cho symmetric stream cipher!
6. Stream cipher
Khi thiết kế stream cipher ta cần lưu ý
hai yếu tố sau:
• Tính ngẫu nhiên của PNG
• Key size
7. Stream cipher
• Nếu PNG thỏa mãn những yêu cầu đặt ra
trong thiết kế thì tính an toàn của stream
cipher là tương đương với block cipher
• Cài đặt của stream cipher thường đơn giản
và chạy nhanh hơn block cipher
• Stream cipher cần tránh việc sử dụng lại
khóa
• Nếu có được những tính chất của plaintext
thì stream cipher không được an toàn
8. Stream cipher
Ứng dụng của Stream cipher:
• Mã hóa các dữ liệu ngẫu nhiên
• Những ứng dụng tương tác đòi hỏi
thời gian giải mã và mã hóa phải
nhanh
9. RC4
• RC4 được thiết kế bởi Ronald
Rivest vào năm 1987
• Nền tảng của RC4 là phép
hoán vị ngẫu nhiên
• RC4 có cấu trúc đơn giản; dễ
để hiểu và phân tích
Ronald L. Rivest
10. RC4
• RC4 cho phép khóa K có cỡ từ 1 tới 256
bytes(8-1024 bits)
• RC4 sử dụng hai vector 256 bytes
T là vector tạm thời và S là vector trạng thái
• RC4 hoạt động như sau:
1. Khởi tạo vector S
2. Khóa K được sử dụng để khởi tạo vector T
3. Vector T được sử dụng để hoán vị S
4. Thực hiện sinh keystream và mã hóa(giải mã)
11. RC4
1. Khởi tạo vector S
For i=0 to 255 do S[i]=i;
2. Khởi tạo vector T
For i=0 to 255 do T[i]=K[i mode keylen];
3. Vector T được sử dụng để hoán vị S
j=0;
For i=0 to 255 do
Begin
j=(j+S[i]+T[i]) mode 256;
swap(S[i],S[j]);
End
12. RC4
4. Sinh keystream(ks) và mã hóa(giải mã):
i,j=0;
While (true) do
Begin
i=(i+1) mode 256;
Mã hóa(giải mã) đơn
giản là sử dụng ks để j=(j+S[i]) mode 256;
xor với plaintext
(ciphertext). swap(S[i],S[j]);
t=(S[i]+S[j]) mode 256;
ks=S[t];
End
14. Operation mode for block cipher
• Một chế độ thi hành là một kỹ thuật nằm nâng cao
hiệu quả của mật mã khối cho một loại ứng dụng cụ
thể.
• Các chế độ thi hành được định nghĩa trong FIPS PUB
81 gồm có:
- Electronic Code Book - ECB.
- Cipher Block Chaining - CBC.
- Cipher FeedBack - CFB.
- Outer FeedBack - OFB.
- Counter - CTR.
15. Electronic codebook Mode
ECB encryption:
ECB là chế độ đơn giản nhất – sử dụng cùng một
khóa để mã hóa tất cả các khối của plaintext.
17. Electronic codebook Mode
Nhận xét về ECB mode:
• ECB về bản chất giống hệt với monoalphabetic
cipher, chỉ có điều bảng chữ cái của ECB phức tạp
hơn.
• ECB dễ dàng bị phá nếu plaintext lớn và có tính cấu
trúc rõ ràng.
• Do đó mà ECB thường dùng để mã hóa những
plaintext ngắn như khóa bí mật.
18. Cipher Block Chaining Mode
CBC encryption:
CBC sử dụng IV như một giá trị khởi tạo cho quá
trình mã hóa và giải mã.
20. Counter Mode
CTR encryption:
Counter ban đầu được khởi tạo một giá trị nào đó. Sau mỗi
khối được mã hóa counter=counter+1 mod 2b với b là cỡ của
block.
22. Counter Mode
Nhận xét về CTR mode:
• Hardware effeciency: CTR cho phép mã và giải mã
các khối một cách song song. CBC không thể thực hiện
song song!
• Software effeciency: Do tận dụng được lợi thế xử lý
song song nên CTR sẽ chạy nhanh hơn.
• Xử lý: Nếu bộ nhớ cho phép và vẫn đảm bảo được sự
an toàn thì các output của khối mã hóa có thể được
tính trước => từ đó mà tốc độ mã hóa sẽ rất nhanh.
23. Counter Mode
Nhận xét về CTR mode:
• Cho phép truy nhập ngẫu nhiên các khối.
• Về tính an toàn CTR không mạnh như các chế độ
khác.
• CTR có cài đặt tương đối đơn giản do mã và giải mã là
như nhau.