Khoa Mạng máy tính & Truyền thông - UIT
2
BÁO CÁO BÀI THỰC HÀNH SỐ 2
Block Cipher: DES - AES
Môn học: An toàn mạng máy tính
Lớp: NT101.O11.MMCL
Giảng viên hướng dẫn
Nguyễn Xuân Hà
Sinh viên thực hiện
Lê Huỳnh Quang Vũ (21522797)
Nguyễn Trọng Phúc (21522476)
Trần Nguyễn Quốc Bảo (21521865)
Mức độ hoàn thành
Hoàn thành
Thời gian thực hiện
09/10/2023 16/10/2023
Tự chấm điểm
10/10
A. C ỚC THC HÀNH
B. TRẢ LỜI CÁC U HỎI
Lab
Lab 2: Block Cipher: DES - AES
2
1. DES AES Encryption
Task 1.1: Describe in detail (step-by-step) how DES encryption works by using CrypTool. When
it comes to repetitive steps, you don’t have to describe each step in the series, you just need to
describe the first one
Bước 1: Key 56-bit sẽ được hoán vị lần 1 để tạo ra 2 khối 28-bit, gọi là C0D0.
Bước 2: Các Key C0D0 sẽ lần lượt tiến hành dịch chuyển bit (Cyclic Shift), tạo thành C1
D1.
Bước 3: Tổng hợp 2 key C1D1 rồi tiếp tục tiến hành hoán vị lần 2, tạo ra key K1.
Bước 4: Plaint text 64-bit được hoán vị để tạo ra 2 khối 32-bit, gọi là L0R0.
Bước 5: R0 trở thành L1, đồng thời cùng với K1 trở thành input cho Round Function.
Bước 6: Output của Round Function, gọi là f(R0), sẽ thực hiện phép xor với L0, tạo thành R1.
2. Mode of Operation Padding
Task 2.1: Using template Block modes of Symmetric ciphers in Cryptool 2 to show the difference
between two modes of operation: ECB and CBC when encrypting the smiley picture. Comparing
both results and explain why.
Trả lời:
- Chế độ ECB:
Hình ảnh được mã hóa ở chế độ ECB sẽ hiển thị khuôn mặt cười với các khối pixel lặp đi lặp lại.
Điều này là do chế độ ECB mã hóa từng khối văn bản gốc một cách độc lập, vì vậy nếu cùng một
khối văn bản gốc xuất hiện nhiều lần ở đầu vào thì cùng một khối văn bản mã hóa đó sẽ xuất hiện
nhiều lần ở đầu ra.
- Chế độ CBC:
Hình ảnh đượchóa ở chế độ CBC sẽ hiển thị khuôn mặt cười với nhiều pixel trông ngẫu nhiên
hơn. Điều này do chế độ CBC hóa từng khối văn bản gốc bằng cách sử dụng bản của
khối trước đó, do đó việc mã hóa từng khối văn bản gốc phụ thuộc vào văn bản gốc đầu vào cho
đến thời điểm đó.
- Giải thích:
Sự khác biệt trong các mẫu mã hóa giữa chế độ ECB và CBC là do cách chúng xử lý chuỗi khối.
Trong chế độ ECB, mỗi khối văn bản gốc được mã hóa độc lập mà không quan tâm đến các khối
khác trong tin nhắn. Điều này nghĩa nếu ng một khối văn bản gốc xuất hiện nhiều lần
trong tin nhắn thì khối văn bản mã hóa đó sẽ xuất hiện nhiều lần ở đầu ra.
Trong chế độ CBC, mỗi khối văn bản gốc được mã hóa bằng văn bản mã hóa của khối trước đó.
Điều này nghĩa việc hóa từng khối bản phụ thuộc vào bản đầu vào cho đến thời
điểm đó. Điều này làm cho chế độ CBC có khả năng chống lại một số loại tấn công nhất định tốt
hơn, chẳng hạn như các cuộc tấn công bằng văn bản rõ ràng.
Task 2.2: Using DES with different modes of operation (channing mode) to encrypt the following
plaintext:
• Plaintext: UNIVERSITY OF INFORMATION TECHNOLOGY
• Key: Your student ID (8-digit number). Example: 18521234
Lab 2: Block Cipher: DES - AES
3
• Padding mode: PKCS7
• Mode of operation:
a. DES - mode ECB
b. DES - mode CBC
c. DES - mode CFB
d. DES - mode OFB
The output needs to convert to HEX format.
• Find out and compare the differences of the results of 4 channing modes:
ECB,CBC, CFB, OFB
• Find out and describe how PKCS7 padding mode works. What happen if we
don’t use padding in each mode? (set Padding Mode to None). Explain why
Chế độ
Mô tả
Ưu điểm
Nhược điểm
ECB
(Electronic Code
Book) mã hóa mỗi
khối dữ liệu độc lập
với nhau, không phụ
thuộc vào các khối
khác.
Mã hóa đơn giản, dễ
triển khai
Dễ bị tấn công bởi các
mẫu mã hóa lặp đi lặp
lại, không bảo mật dữ
liệu
CBC
(Cipher Block
Chaining) mỗi khối
dữ liệu được mã hóa
bằng cách XOR với
khối dữ liệu đã mã
hóa trước đó.
Bảo mật dữ liệu tốt
hơn ECB, không dễ bị
tấn công bởi các mẫu
mã hóa lặp đi lặp lại
Phụ thuộc vào khối dữ
liệu trước đó, nếu có
lỗi xảy ra ở một khối
thì sẽ ảnh hưởng đến
các khối tiếp theo
CFB
(Cipher Feedback) sử
dụng đầu ra của khối
mã hóa trước đó để
mã hóa khối dữ liệu
hiện tại.
Không phụ thuộc vào
khối dữ liệu trước đó,
nếu có lỗi xảy ra ở
một khối thì sẽ không
ảnh hưởng đến các
khối tiếp theo
Mã hóa chậm hơn
CBC
OFB
(Output Feedback) sử
dụng đầu ra của khối
mã hóa để tạo ra một
luồng bit ngẫu nhiên,
luồng bit này sau đó
được XOR với khối
dữ liệu hiện tại để mã
hóa.
Không phụ thuộc vào
khối dữ liệu trước đó,
nếu có lỗi xảy ra ở
một khối thì sẽ không
ảnh hưởng đến các
khối tiếp theo
Mã hóa nhanh hơn
CFB, nhưng không
bảo mật dữ liệu tốt
bằng CBC
- PKCS7 padding mode là một cách thức chuẩn hóa dữ liệu trước khi mã a, để đảm bảo rằng
dữ liệu luôn độ dài bội số của khối hóa. Điều này giúp ngăn chặn các lỗi thể xảy ra do
dữ liệu không được padding chính xác.
Lab 2: Block Cipher: DES - AES
4
- Để sử dụng PKCS7 padding mode, đầu tiên cần xác định độ dài khối của khối hóa. Sau
đó, đối với mỗi khối dữ liệu, cần thêm các byte padding vào cuối khối để đạt được độ dài bội số
của khối hóa. Số lượng byte padding cần thêm được xác định bởi byte cuối cùng của khối dữ
liệu. Nếu byte cuối cùng của khối dữ liệu có giá trị n, thì cần thêm n byte padding vào cuối khối.
- dụ: nếu độ dài khối hóa 16-byte và khối dữ liệu giá trị "Hello, world!", thì cần
thêm 1 byte padding vào cuối khối để đạt được độ dài bội số của 16 byte.
Không sử dụng padding trong mỗi chế độ:
Nếu không sử dụng padding trong mỗi chế độ, có thể dẫn đến các lỗi sau:
- ECB: Dễ bị tấn công bởi các mẫu mã hóa lặp đi lặp lại.
- CBC: hóa không an toàn, thể bị tấn công bởi các phương pháp tấn công ciphertext-
stealing.
- CFB: Không thể mã hóa được tất cả dữ liệu.
- OFB: Không thể mã hóa được tất cả dữ liệu và mã hóa không an toàn, có thể bị tấn công bởi
các phương pháp tấn công ciphertext-stealing.
Do đó, nên sử dụng padding trong mỗi chế độ để đảm bảo tính bảo mật và chính xác của dữ liệu.
a. DES - mode ECB
- Output:
1B 42 7A DE BA D2 1B 4E 89 51 62 1B 3E 0D 3B D9 3F 77 0F CB E4 73 E2 26 8B AE 40 56 98
07 06 CB 68 2C 4F 29 35 CF EE 7C 7D 69 26 E8 82 A7 38 73
b. DES - mode CBC
- Output:
1B 42 7A DE BA D2 1B 4E BF CC 98 E1 F2 32 8F 76 28 2F BD 54 FA 83 0C 7F 79 9A F5 D6 54
CD 38 DE 4D 95 E3 A0 22 3D 36 79 EC 87 60 96 D4 DF 5C 2D
Lab 2: Block Cipher: DES - AES
5
c. DES - mode CFB
- Output:
E1 83 18 9E F0 19 9C E0 62 B4 13 C9 42 56 F6 2C 91 86 48 F0 19 6B 41 BF C0 CA 26 81 FD 74
AF 8B A9 CF 6B 37 C5 4B FB D0 D1 6D 6F B8 FD 05 8C A1
d. DES - mode OFB
- Output:
E1 88 C7 57 10 9D 5B 21 B8 B0 DD 39 DF 48 6E FA 0B CE 0F 6C BA 7D BB 49 73 6A F0 E0 01
AB 90 B3 33 CC 3A 3E EC F4 BD 55