Do xác định mục tiêu, phương pháp thám mã khối DES là thám mã “Hộp đen”, thám mã “vét cạn có định hướng” dựa trên các yếu tố độ dài khóasố lượng bit của khóa, bản mã, và độ dài khối mã n
Trang 1BÀI THI TIỂU LUẬN
AN NINH MẠNG VIỄN THÔNG
Đề tài: Tìm hiểu tiêu chuẩn mật mã hóa dữ liệu DES
Trang 3
LỜI CẢM ƠN
Chúng em xin gửi lời cảm ơn sâu sắc đến giảng viên bộ môn – thầy Hoàng Trọng Minh
đã dạy dỗ, truyền đạt những kiến thức quý báu cho em trong suốt thời gian học tập vừa qua Trong thời gian học tập trên lớp học, em đã có thêm cho mình nhiều kiến thức bổ ích, tinh thần học tập hiệu quả, nghiêm túc Đây chắc chắn sẽ là những kiến thức quý báu, là hành trang để em có thể vững bước sau này
Bộ môn an ninh mạng viễn thông là môn học vô cùng bổ ích và có tính thực tế cao Đảm bảo cung cấp đủ kiến thức, gắn liền với nhu cầu thực tiễn của sinh viên Tuy nhiên, do vốn kiến thức còn nhiều hạn chế và khả năng tiếp thu thực tế còn nhiều bỡ ngỡ Mặc dù chúng
em đã cố gắng hết sức nhưng chắc chắn bài tiểu luận khó có thể tránh khỏi những thiếu sót
và nhiều chỗ còn chưa chính xác, kính mong thầy xem xét và góp ý để bài tiểu luận của em được hoàn thiện hơn
Kính chúc thầy sức khỏe,hạnh phúc đạt nhiều thành tựu hơn trong sự nghiệp giảng dạy
Trang 4Mục Lục
MỞ ĐẦU 7
1.Lịch sử của DES 8
2 Mô tả thuật toán DES 8
2.1 Sơ đồ thuật toán 8
2.2 Đặc điểm DES 9
3.Quá trình mã hóa 9
3.1 Cách tính xo 10
3.2 Cách tính LiRi 11
3.2.1 Các biến trong hàm f 11
3.2.1.a Cách xác định biến thứ nhất 11
3.2.1.b Xác định biến J 12
3.2.1.c Cách tính hàm f 13
3.3 Cách xác định bản mã y 14
4 Giải mã 15
5 Các chế độ mã hóa theo DES 16
5.1 Chế độ chuyển mã điện tử ECB 16
5.2 Chế độ liên kết khối mã CBC 17
5.3 Chế độ phản hồi mã CFB 19
5.4 Chế độ phản hồi đầu ra OFB 22
5.5 Chế độ kiểu máy đếm CTR 24
6 Đánh giá độ an toàn của DES 27
6.1 Đánh giá chung về độ mật của DES 27
6.2 Ưu điểm của hệ mật mã DES 27
6.3 Điểm yếu 27
6.3.1 Tính bù: 27
Trang 56.3.2 Khóa yếu 28
6.3.3 DES có cấu trúc đại số 28
6.3.4 Không gian khóa K 29
6.4 Các dạng tấn công DES 29
7 Ứng dụng của các thuật toán DES 30
8 Tồng kết 30
TÀI LIỆU THAM KHẢO 31
Trang 6Danh mục hình
Hình 2.1 Thuật toán mã hóa DES 9
Hình 2.2 Sơ đồ mã hóa 10
Hình 3.1 Quá trình tạo khóa con k 12
Hình 3.2 Sơ đồ hoạt động của hàm f 13
Hình 4.1 Mô phỏng mã hóa (a) và giải mã (b) theo DES 15
Hình 5.1 Chế độ mã hóa/giải mã ECB 16
Hình 5.2 Chế độ mã hóa/giải mã CBC 18
Hình 5.3 Chế độ mã hóa/giải mã CFB 20
Hình 5.4 Chế độ mã hóa, giải mã OFB 22
Hình 5.5 Chế độ mã hóa, giải mã CTR 25
Danh mục bảng Bảng 3.1 Bảng IP………10
Bảng 3.2 Bảng chọn E cố định 11
Bảng 3.3 Hoán vị IP 14
Trang 7để bảo vệ an toàn thông tin dữ liệu
Ngày nay, nhu cầu trao đổi thông tin mật giữa các thành viên trong một nhóm, một tổ chức ngày càng lớn thì việc đảm bảo an toàn thông tin là rất cần thiết Cùng với sự phát triển của mật mã nói chung và của các hệ mã đối xứng nói riêng thì thám mã là một lĩnh vực cũng thường được quan tâm nghiên cứu, nhưng ít khi được công khai, hoặc công khai không đầy đủ Mặc dù, trong thời gian qua đã có nhiều kết quả nghiên cứu về DES được công bố, DES có thể bị phá khóa bởi các hệ thống chuyên dụng trong vòng chưa đầy 24 giờ, nhưng việc nghiên cứu DES vẫn rất cần thiết để hướng tới các hệ mật mã hiện đại có
độ dài khóa lớn hơn, đã và đang dần thay thế DES
Vậy làm thế nào để đánh giá được chất lượng một hệ mật mã là tốt? Hiểu được tính cần
thiết và an toàn nên chúng em chọn đề tài:” Tìm hiểu chuẩn mật mã hóa dữ liệu DES”
Mục đích của bài tiểu luận là tìm hiểu tính chất,đặc điểm ,từ đó đánh giá ưu nhược điểm của DES
Phạm vi nghiên cứu : nghiên cứu về mặt lý thuyết
Phương pháp nghiên cứu: Phân tích các thông tin thông qua các tài liệu tham khảo từ đó đưa ra kêt luận về mặt lý thuyết
Trang 81.Lịch sử của DES
DES (viết tắt của Data Encryption Standard, hay Tiêu chuẩn Mã hóa Dữ liệu) là một phương pháp mật mã hóa được FIPS (Tiêu chuẩn Xử lý Thông tin Liên bang Hoa Kỳ) chọn làm chuẩn chính thức vào năm 1976 Sau đó chuẩn này được sử dụng rộng rãi trên phạm vi thế giới Ngay từ đầu, thuật toán của nó đã gây ra rất nhiều tranh cãi, do nó bao gồm các thành phần thiết kế mật, độ dài khóa tương đối ngắn, và các nghi ngờ về cửa sau để Cơ quan An ninh quốc gia Hoa Kỳ (NSA) có thể bẻ khóa Do đó, DES đã được giới nghiên cứu xem xét rất kỹ lưỡng, việc này đã thúc đẩy hiểu biết hiện đại về mật mã khối (block cipher) và các phương pháp thám mã tương ứng
Hiện nay DES được xem là không đủ an toàn cho nhiều ứng dụng Nguyên nhân chủ yếu là độ dài 56 bit của khóa là quá nhỏ Khóa DES đã từng bị phá trong vòng chưa đầy 24 giờ Đã có rất nhiều kết quả phân tích cho thấy những điểm yếu về mặt lý thuyết của mã hóa có thể dẫn đến phá khóa, tuy chúng không khả thi trong thực tiễn Thuật toán được tin tưởng là an toàn trong thực tiễn có dạng Triple DES (thực hiện DES ba lần), mặc dù trên
lý thuyết phương pháp này vẫn có thể bị phá Gần đây DES đã được thay thế bằng AES (Advanced Encryption Standard, hay Tiêu chuẩn Mã hóa Tiên tiến)
2 Mô tả thuật toán DES
2.1 Sơ đồ thuật toán
Ở nửa hình bên trái của hình 2.1, quá trình xử lý bản rõ diễn ra trong ba giai đoạn Đầu tiên, bản rõ 64 bit được chuyển tới khối hoán vị khởi tạo để sắp xếp lại các bit và cho ra chuỗi bit đã được hoán vị Tiếp theo đó là 16 vòng mật mã Feistel Đầu ra của vòng cuối cùng (vòng 16) gồm 64 bit là một hàm của bản rõ đầu vào và khóa K Sau đó, nửa trái và nửa phải của 64 bit này sẽ được tráo đổi cho nhau Cuối cùng, các bit đã được tráo đổi đó được đưa qua bộ hoán vị kết thúc, đây là một hàm hoán vị nghịch đảo của hoán vị khởi tạo,
và cho ra 64 bit bản mã
Phần bên phải của hình 2.1 mô tả cách thức khóa 56 bit được sử dụng Ban đầu, khóa
64 bit được chuyển qua bộ hoán vị khóa Sau đó, đối với mỗi 16 vòng, khóa con Ki được tạo ra bằng cách kết hợp dịch vòng trái và hoán vị Hàm hoán vị là giống nhau ở mỗi vòng, nhưng khóa con khác nhau được tạo ra bởi các dịch vòng trái được lặp lại ở các bit khóa
Trang 9Hình 2.1 thuật toán mã hóa DES
2.2 Đặc điểm DES
Mật mã DES có các đặc điểm sau:
+ Là mã thuộc mã Feistel có 16 vòng, ngoài ra DES có thêm một hoán vị khởi tạo trước khi bắt đầu vòng 1 và một hoán vị kết thúc sau vòng 16
+ Kích thước khối là 64 bit
+ Kích thước khóa là 56 bit
+ Mỗi vòng của DES dùng khóa con có kích thước 48 bít được trích ra từ khóa chính
3.Quá trình mã hóa
Trang 11Trong hình 2.2 bit thứ 58 là bit đầu tiên của IP(x), bit thứ 50 là bit thứ 2 của IP(x),
Bit thứ 7 là bit cuối cùng của IP(x)
3.2 Cách tính 𝐋𝐢𝐑𝐢
3.2.1 Các biến trong hàm f
Có 2 biến đầu vào:
• Biến thứ hai là J là xâu bit có độ dài 48
3.2.1.a Cách xác định biến thứ nhất
định E
Bảng 3.2 Bảng chọn E cố định
Trang 123.2.1.b Xác định biến J
Biến J được xác định bởi phép hoán vị và dịch vòng xâu bit khóa k
Theo sơ đồ bên dưới, việc tạo khóa con được xác định như sau:
tra lỗi Các bit ở các vị trí 8, 16, , 64 đƣợc xác định, sao cho mỗi byte chứa số lẻ các số
1 Vì vậy, từng lỗi có thể được phát hiện trong mỗi 8 bit Các bit kiểm tra được bỏ qua khi
tính lịch khóa
Theo phép hoán vị cố định PC-1 ta viết như sau:
Với i từ 1 đến 16, ta tính:
Ci=LSi(Ci−1) (3.1)
Di=LSi(Di−1) (3.2)
i Sang trái 1 bit nếu i= 1, 2, 9, 16 hoặc sang trái 2 bit nếu i thuộc các vị trí còn lại
Hình 3.1 Quá trình tạo khóa con k
Trang 133.2.1.c Cách tính hàm f
Hình 3.2 dưới đây biểu diễn hoạt động của hàm f
Hình 3.2 Sơ đồ hoạt động của hàm f
cố định E:
E + ki=B1B2B3B4… B8 (3.3)
Trang 14Xâu bit C = C1C2C3C4… C8 có độ dài 32 bit được hoán vị theo phép hoán vị P (hộp P-Box)
Trang 154 Giải mã
Thuật toán DES tập trung thực hiện giai đoạn 3 của quy trình mã hóa Đó là chuyển đổi bản rõ số với 64 bit thành bản Mã số với 64 bit Còn đối với quy trình giải mã thì ngược lại, đổi bản mã số với 64 bit thành bản rõ số với 64 bit
Quy trình mã hóa, giải mã khối gồm 2 thuật toán là mã hóa(ký hiệu là E) và giải mã (ký hiệu là D) Cả hai thuật toán đều tác động lên một khối đầu vào 64 bit sử dụng khóa 56 bit
để cho ra khối 64 bit Đối với bất kỳ khóa k nào, giải mã là hàm ngược của mã hóa, nghĩa là:
Trong đó M là khối thông tin 64 bit và K là khóa 56 bit
Hình 4.1 Mô phỏng mã hóa (a) và giải mã (b) theo DES Quy trình giải mã của DES là quy trình ngược lại với quy trình mã hóa DES, xuất phát
từ bản mã Y ( Đầu vào), kết quả là bản rõ X( đầu ra)
Do xác định mục tiêu, phương pháp thám mã khối DES là thám mã “Hộp đen”, thám mã
“vét cạn có định hướng” dựa trên các yếu tố độ dài khóa(số lượng bit của khóa), bản mã,
và độ dài khối mã nên khi xây dựng thuật toán thám mã không cần phân tích chi tiết thuật toán DES
* Giải mã
Đối với mã hóa DES thì thuật toán giải mã sẽ làm ngược lại các bước của thuật toán mã hóa ta sẽ có bản rõ ban đầu cần mã hóa
Trang 16Thuật toán giải mã được xây dựng giống hệt như thuật toán sinh mã nhưng có các khóa con được sử dụng theo thứ tự ngược lại, tức là dùng khóa K16 cho vòng lặp 1, khóa K15 cho vòng lặp 2 … Vì vậy, thuật toán giải mã có thể được viết lại dưới dạng công thức sau:
Bây giờ chú ý rằng mỗi hàm T (phép biến đổi L và R) hoặc F đều là các hàm có tính chất
lại giống hệt như sinh mã chỉ có khác về thứ từ trong chuỗi khóa con
5 Các chế độ mã hóa theo DES
Có 5 chế độ làm việc đã được phát triển cho DES: Chế độ chuyển mã điện tử (ECB), chế
độ phản hồi mã (CFB), chế độ liên kết khối mã (CBC), chế độ phản hồi đầu ra (OFB) và chế độ kiểu máy đếm (CTR) Chế độ ECB tương ứng với cách dùng thông thường của mã khối
5.1 Chế độ chuyển mã điện tử ECB
ECB (Electronic Codebook) là chế độ mã hóa từng khối bit độc lập Với cùng một khóa
mã K, mỗi khối plaintext ứng với một giá trị ciphertext cố định và ngược lại
Hình 5.1 Chế độ mã hóa/giải mã ECB
*Mã hóa ECB
Biểu thức định nghĩa:
Trang 17liệu thì nó chỉ ảnh hưởng đến việc giải mã khối dữ liệu đó chứ không ảnh hưởng đến việc giải mã khác khối dữ liệu khác
này giúp tăng tốc độ xử lý trong các hệ thống đòi hỏi mã hóa/giải mã tốc độ cao
- Nhược điểm:
nên thông tin mã hóa dễ bị sửa đổi bằng cách như xóa bớt khối dữ liệu, chèn thêm khối
dữ liệu, hoán đổi vị trí khối dữ liệu để làm sai lệch thông tin tại nơi nhận
5.2 Chế độ liên kết khối mã CBC
CBC (Cipher Block Chaining) là chế độ mã hóa chuỗi, kết quả mã hóa của khối dữ liệu trước (ciphertext) sẽ được tổ hợp với khối dữ liệu kế tiếp (plaintext) trước khi thực thi mã hóa
Trang 18- Lần mã hóa đầu tiên:
- Lần mã hóa sau lần đầu tiên:
*Giải mã CBC
Biểu thức định nghĩa:
Trang 19𝑃𝑗 = CIPHk(𝐶𝑗)+ 𝐶𝑗−1) với j=2, 3, …, n
- Lần giải mã đầu tiên:
Lần giải mã sau lần đầu tiên:
plaintext
*Nhận xét
- Ưu điểm:
nhau cho mỗi lần mã hóa vì nó phụ thuộc vào IV hoặc giá trị mã hóa (ciphertext) của
khối dữ liệu liền trước
- Nhược điểm:
kế cần thiết kế thêm:
trong chuỗi dữ liệu
nó sẽ làm sai kết quả giải mã của khối đữ liệu đó và khối dữ liệu tiếp theo
vào ciphertext của khối dữ liệu trước, trừ lần mã hóa đầu tiên
5.3 Chế độ phản hồi mã CFB
CFB (Cipher Feedback) là chế độ mã hóa mà ciphertext của lần mã hóa hiện tại sẽ được
phản hồi (feedback) đến đầu vào của lần mã hóa tiếp theo Nghĩa là, ciphertext của lần mã hóa hiện tại sẽ được sử dụng để tính toán ciphertext của lần mã hóa kế tiếp Mô tả có vẻ giống CBC nhưng quá trình trực hiện lại khác
Trang 20- Lần mã hóa đầu tiên:
ra s bit ciphertext, ứng với biểu thức C#j
IV là giá trị không cần bảo mật nhưng phải là giá trị không thể dự đoán trước được IV có
độ dài là b bit, bằng độ dài của một khối dữ liệu mà chuẩn mã hóa quy định
Trang 21s là một số nguyên và 1 ≤ s ≤ b, đây chính là độ dài plaintext và ciphertext cho một lần mã
hóa/giải mã Giá trị của s có thể được tích hợp vào tên gọi của chế độ CFB để chỉ rõ chế độ
số lượng bit được hỗ trợ Ví dụ:
- Lần mã hóa sau lần đầu tiên:
của lần mã hóa trước đó và s bit của ciphertext của lần mã hóa trước đó, ứng với biểu
thức Ij,
thức Oj
ra s bit ciphertext, ứng với biểu thức C#j
*Nhận xét
So sánh với chế độ CBC, chế độ CFB có những điểm khác biệt sau đây:
dữ liệu sinh ra từ IV và ciphertext
thuật toán mã hóa hỗ trợ, 1 ≤ s ≤ b
- Ưu điểm:
nhau cho mỗi lần mã hóa vì nó phụ thuộc vào IV hoặc giá trị mã hóa (ciphertext) của khối dữ liệu liền trước
- Nhược điểm:
cần thêm logic để chọn số bit cần được xử lý nếu s là thông số cấu hình được
nó sẽ làm sai kết quả giải mã của khối đữ liệu đó và khối dữ liệu tiếp theo
vào ciphertext của khối dữ liệu trước, trừ lần mã hóa đầu tiên
Trang 225.4 Chế độ phản hồi đầu ra OFB
OFB (Output Feedback) là chế độ mã hóa mà giá trị ngõ ra của khối thực thi thuật toán mã hóa, không phải ciphertext, của lần mã hóa hiện tại sẽ được phản hồi (feedback) đến ngõ vào của lần mã hóa kế tiếp
Hình 5.4 Chế độ mã hóa, giải mã OFB
- Lần mã hóa đầu tiên:
Trang 23• Thực thi giải thuật mã hóa cho khối trên với khóa mã K, ứng với biểu thức Oj
- Lần mã hóa sau lần đầu tiên và trước lần cuối cùng:
ứng với biểu thức Ij
- Lần mã hóa cuối cùng (thứ n):
ứng với biểu thức Ij
(độ dài plaintext của lần cuối cùng có thể ngắn hơn độ dài của khối ngõ ra), ứng với biểu
- Lần giải mã đầu tiên:
- Lần giải mã sau lần đầu tiên và trước lần cuối cùng:
ứng với biểu thức Ij
Trang 24• XOR ciphertext và với các bit MSB của kết quả của bước trên theo độ dài của ciphertext (độ dài ciphertext của lần cuối cùng có thể ngắn hơn độ dài của khối ngõ ra), ứng với biểu thức P*n
*Nhận xét
Chế độ OFB có những đặc điểm cần chú ý như sau:
dữ liệu sinh ra từ IV và khối ngõ ra của lần mã hóa trước đó Điểm này tương tự với CFB
mã hóa quy định chứ không xử lý trên một phần hay một vài bit của khối dữ liệu
- Ưu điểm:
nhau cho mỗi lần mã hóa vì nó phụ thuộc vào IV hoặc khối ngõ ra của lần mã hóa trước
đó
hưởng đến kết quả giải mã của khối dữ liệu hiện tại
- Nhược điểm:
sau phụ thuộc vào khối ngõ ra của lần mã hóa/giải mã liền trước nó
5.5 Chế độ kiểu máy đếm CTR
CTR (Counter) là chế độ mã hóa sử dụng một tập các khối ngõ vào, gọi là các counter,
để sinh ra một tập các giá trị ngõ ra thông qua một thuật toán mã hóa Sau đó, giá trị ngõ
ra sẽ được XOR với plaintext để tạo ra ciphertext trong quá trình mã hóa, hoặc XOR với ciphertext để tạo ra plaintext trong quá trình giải mã
Trang 25Hình 5.5 Chế độ mã hóa, giải mã CTR
*Mã hóa CTR
Biểu thức định nghĩa:
𝑂𝑗 = CIPHk(𝑇𝑗) với j = 1, 2, , n𝐶𝑗 = 𝑃𝑗 + 𝑂𝑗
thực thi giải thuật mã hóa với khóa K, ứng với biểu thức Oj
ít hơn độ dài bit được quy định bởi chuẩn mã hóa thì chỉ lấy các bit trọng số cao của khối ngõ ra (output block) XOR với plaintext, ứng với biểu thức C*n
*Giải mã CTR
Biểu thức định nghĩa:
Trang 26𝑂𝑗 = CIPHk(𝑇𝑗) ) với j = 1, 2, , n
𝑃𝑗 =𝐶𝑗 + 𝑂𝑗 với j = 1, 2, , n-1
P*n = C*n + MSBu(On)
thực thi giải thuật mã hóa với khóa K, ứng với biểu thức Oj
ít hơn độ dài bit được quy định bởi chuẩn mã hóa thì chỉ lấy các bit trọng số cao của khối ngõ ra (output block) XOR với ciphertext, ứng với biểu thức P*n
*Nhận xét
Chế độ CTR có những đặc điểm cần chú ý như sau:
dữ liệu sinh ra từ các bộ đếm (counter)
- Ưu điểm:
độc lập nhưng mỗi plaintext có thể ảnh xạ đến nhiều ciphertext tùy vào giá trị bộ đếm của các lần mã hóa
- Nhược điểm:
không lặp lại
*Chú thích
• b – kích thước theo bit của một khối (block)
• j - chỉ số của các khối hoặc đoạn (segment) dữ liệu theo thứ tự từ trái sang phải
• n - số khối hoặc đoạn dữ liệu trong plaintext
• s – số bit của một đoạn dữ liệu
• u - số bit trong khối plaintext hoặc ciphertext cuối cùng
• Cj – Khối ciphertext thứ j
• C#j - Đoạn ciphertext thứ j
• C*n - khối cuối cùng của ciphertext, nó có thể là khối chỉ chứa một phần dữ liệu (partial
block)