Mật mã là ngành khoa học ứng dụng toán học vào việc biến đổi thông tin thành một dạng khác với mục đích che giấu nội dụng, ý nghĩa thông tin cần mã hóa. Đây là một ngành quan trọng và được ứng dụng nhiều trong đời sống xã hội.Ngày nay, các ứng dụng mã hóa và bảo mật thông tin đang được sử dụng ngày càng phổ biến hơn trong các lĩnh vựng khác trên thế giới, từ các lĩnh vững an ninh, quân sự, quốc phòng,… cho đến các lĩnh vực dân sự như thương mại điện tử, ngân hàng… Cùng với sự phát triển của khoa học máy tính và internet, các nghiên cứu và ứng dụng khoa học mật mã ngày càng trở nên đa dạng hơn, mở ra nhiều hướng nghiên cứu chuyên sâu vào từng lĩnh vực ứng dụng đặc thù với những đặc trưng riêng. ứng dụng của khảo học mật mã không chỉ đơn thuần là mã hóa và giải mã thông tin mà còn bao gồm nhiều vấn đề khác cần được nghiên cứu và giải quyết: chứng thực nguồn gốc nội dung thông tin (kỹ thuật chữ ký điện tử), chứng nhận tính xác thực về người sở hữu mà hóa ( chứng nhận khóa công cộng), các quy trình giúp trao đổi thông tin và thực hiện giao dịch điện thử an toàn trên mạng… Những kết quả nghiên cứu về mật mã cũng đã được đưa vào trong các hệ thống phức tạp hơn, kết hơp với những kỹ thuật khác để đáp ứng yêu cầu đa dạng của các hệ thống ứng dụng khác nhau trong thực tế, ví dụ như hệ thống bỏ phiếu bầu cử qua mạng, hệ thống đào tạo từ xa, hệ thống quản lý an ninh của các đơn vị với hướng tiếp cận sinh trắc học, hệ thống cung cấp dịch vụ multinedia trên mạng với yêu cầu cung cấp dịch vụ và bảo vệ bản quyền sở hữu trí tuệ đối với thông tin số. DES là một tiêu chuẩn mã hóa dữ liệu được công bố vào năm 1975 và được FIPS chọn làm chuẩn chính thức vào năm 1976, sau đó được sử dụng rộng dãi trên thế giới. Ngày nay, khi DES không còn đủ độ an toàn do lượng bit mã hóa quá nhỏ và bị thay thế bởi nhiều chuẩn mã hóa dữ liệu cao hơn như Triple DES, AES (Advanced Encryption Standard) ,…nhưng sự ra đời của chuẩn mã hóa DES vẫn được chú ý và coi là nền tảng ban đầu của các chuẩn mã hóa của tương lai.
Trang 1CƠ SỞ LÝ THUYẾT MẬT MÃ
CHUẨN DỮ LIỆU DES
BỘ GIÁO DỤC VÀ ĐÀO TẠO HỌC VIỆN KỸ THUẬT MẬT MÃ
Giảng viên hướng dẫn:
Sinh viên thực hiện:
Trang 21
LỜI NÓI ĐẦU Mật mã là ngành khoa học ứng dụng toán học vào việc biến đổi thông tin thành một dạng khác với mục đích che giấu nội dụng, ý nghĩa thông tin cần mã hóa Đây là một ngành quan trọng và được ứng dụng nhiều trong đời sống xã hội.Ngày nay, các ứng dụng mã hóa và bảo mật thông tin đang được sử dụng ngày càng phổ biến hơn trong các lĩnh vựng khác trên thế giới, từ các lĩnh vững an ninh, quân sự, quốc phòng,… cho đến các lĩnh vực dân sự như thương mại điện tử, ngân hàng… Cùng với sự phát triển của khoa học máy tính và internet, các nghiên cứu và ứng dụng khoa học mật mã ngày càng trở nên đa dạng hơn, mở ra nhiều hướng nghiên cứu chuyên sâu vào từng lĩnh vực ứng dụng đặc thù với những đặc trưng riêng ứng dụng của khảo học mật mã không chỉ đơn thuần là mã hóa và giải mã thông tin mà còn bao gồm nhiều vấn đề khác cần được nghiên cứu và giải quyết: chứng thực nguồn gốc nội dung thông tin (kỹ thuật chữ ký điện tử), chứng nhận tính xác thực về người sở hữu mà hóa ( chứng nhận khóa công cộng), các quy trình giúp trao đổi thông tin và thực hiện giao dịch điện thử an toàn trên mạng… Những kết quả nghiên cứu về mật mã cũng đã được đưa vào trong các hệ thống phức tạp hơn, kết hơp với những kỹ thuật khác để đáp ứng yêu cầu đa dạng của các hệ thống ứng dụng khác nhau trong thực tế, ví dụ như hệ thống bỏ phiếu bầu cử qua mạng, hệ thống đào tạo từ xa, hệ thống quản lý an ninh của các đơn vị với hướng tiếp cận sinh trắc học, hệ thống cung cấp dịch vụ multinedia trên mạng với yêu cầu cung cấp dịch
vụ và bảo vệ bản quyền sở hữu trí tuệ đối với thông tin số
DES là một tiêu chuẩn mã hóa dữ liệu được công bố vào năm 1975 và được FIPS chọn làm chuẩn chính thức vào năm 1976, sau đó được sử dụng rộng dãi trên thế giới
Ngày nay, khi DES không còn đủ độ an toàn do lượng bit mã hóa quá nhỏ và bị thay thế bởi nhiều chuẩn mã hóa dữ liệu cao hơn như Triple DES, AES (Advanced Encryption Standard) ,…nhưng sự ra đời của chuẩn mã hóa DES vẫn được chú ý và coi là nền tảng ban đầu của các chuẩn mã hóa của tương lai
Trang 3MỤC LỤC
I GIỚI THIỆU CHUNG VỀ DES 1
1 Lịch sử hình thành DES 1
2 Một số cột mốc quan trọng 2
3 Ưu và nhược điểm của DES 2
3.1 Ưu điểm 2
3.2 Nhược điểm 2
II THUẬT TOÁN MÃ HÓA DES 2
1 Đặc điểm chung 2
2 Mô tả thuật toán 3
2.1 Hoán vi khởi tạo và hoán vị kết thúc 5
2.2 Thuật toán sinh khóa con 6
2.3 Cấu trúc vòng lặp của DES 8
2.3.1 Hàm Expand 9
2.3.2 Hàm S-boxes 10
2.3.3 Hàm P-Box 12
3 Ví dụ về DES 12
III ĐỘ AN TOÀN CỦA DES 18
1 Điểm yếu của DES 18
2 Các dạng tấn công DES 19
Trang 4DANH MỤC BẢNG BIỂU
Bảng 1: Hoán vị khởi tạo (Initial Permutation) 5
Bảng 2:Hoán vị kết thúc (Final permutation) 6
Bảng 3: hoán vị có chọn lọc 1(Permuted choice 1) 6
Bảng 4: Quy tắc dịch bit key 7
Bảng 5: hoán vị có chọn lọc 2(Permuted choice 2) 7
Bảng 6: Hoán vị mở rộng 32 bit lên 48 bit 10
Bảng 7: S-Box 12
Bảng 8: Hoán vị sắp xếp lại trong P-box 12
Hình 1:Sơ đồ giải thuật mã hóa DES 4 Hình 2: Sơ đồ thuật toán sinh khóa con (Key Scheduler) - Nguồn: Wikipedia 8
Hình 3: Cấu trúc một vòng lặp của DES 9
Trang 5• Các thuật toán ‘cây nhà lá vườn’ không thể đảm bảo được tính tin cậy đòi hỏi cao
• Các thiết bị khác nhau đòi hỏi sự trao đổi thông tin mật mã thống nhất, chuẩn
Một chuẩn chung cần thiết phải có với các thuộc tính như:
➢ Bảo mật ở mức cao
➢ Thuật toán được đặc tả và công khai hoàn toàn, tức là tính bảo mật
không được phép dựa trên những phần che giấu đặc biệt của thuật toán
➢ Việc cài đặt phải dễ dàng để đem lại tính kinh tế
➢ Phải mềm dẻo để áp dụng được cho muôn vàn nhu cầu ứng dụng
Năm 1973, Cục quản lý các chuẩn quốc gia của Mỹ đã có văn bản cổ động cho việc tạo lập các hệ mật mã chuẩn ở cơ quan đăng ký liên bang của Mỹ Điều này
đã dẫn đến sự công bố vào năm 1977 của cục An ninh Quốc gia Mỹ (NSA) về Data Encryption Standard, viết tắt là DES Thực chất, DES được phát triển bởi IBM như là sự sửa đổi của một hệ mã trước kia được biết với cái tên Lucipher Trong khoảng 2 thập kỷ tiếp theo, DES là hệ mã được dùng rộng rãi nhất và cũng
là gây ra nhiều nghi ngờ, tranh cãi trong lĩnh vực này: xung quanh các nguyên tắc thiết kế đảm bảo tính mật, chiều dài khóa tương đối ngắn và khả năng NSA còn
Trang 62
che giấu cửa sau (backdoor) để có thể bẻ khóa, phá mã ít tốn kém hơn thông
thường
2 Một số cột mốc quan trọng
• 1976 – DES được phê làm tiêu chuẩn chính thức
• 1977 – DES được xác nhận làm tiểu chuẩn của FIPS (FIPS PUB 46)
• 1988 – DES được xác nhận lần hai với tên FIPS 46-1, thay thế FIPS PUB
46
• 1993 – DES được xác nhận lần ba với tên FIPS 46-2
• 1988 – Thiết bị thám mã Deep Crack của tổ chức Electronic Frontier
Foundation phá được một khóa của DES trong vòng 56 giờ
• 1999 – Deep Crack cùng với distributed.net phá được một khóa của DES trong vòng 22 giờ và 15 phút
• 2005 – NIST bãi bỏ FIPS 46-3
3 Ưu và nhược điểm của DES
3.1 Ưu điểm
Tác dụng đồng loạt: Khi ta thay đổi 1 bit trong khóa sẽ gây ra tác động đồng loạt làm thay đổi nhiều bit trên bản mã Đây là tính chất mong muốn của khóa trong thuật toán mã hóa Nếu thay đổi 1 bít đầu vào hoặc khoá sẽ kéo theo thay đổi một nửa số bít đầu ra, do đó không thể đoán khoá được Có thể nói rằng DES thể hiện tác động đồng loạt mạnh
Phương pháp mã hóa nhanh hơn nhiều so với thuật toán TDES/AES
3.2 Nhược điểm
Hiện nay DES được xem là không đủ an toàn Nguyên nhân chủ yếu do độ dài khóa quá nhỏ, khóa DES đã từng bị phá trong vòng chưa đến 24 giờ Nhiều
phương pháp đã được đưa ra để thám mã DES và thành công
II THUẬT TOÁN MÃ HÓA DES
1 Đặc điểm chung
Trang 7- Khóa dùng trong DES có độ dài 64 bit Tuy nhiên chỉ có 56 bit thực sự được
sử dụng, 8 bit còn lại chỉ dùng cho việc kiểm tra chẵn lẻ
- Mỗi vòng của DES dùng khóa con có kích thước 48 bit được sinh ra từ khóa chính
- Thuật toán được thực hiện lặp lại 16 lần
2 Mô tả thuật toán
1 Mã hóa khối là những thuật toán mã hóa đối xứng hoạt động trên những khối thông tin có độ dài xác định (block) với những chuyển đổi xác định Quá trình chuyển đổi còn sử dụng them khóa bí mật để cá biệt hóa quá trình Việc giả mã cũng diễn rs tương tự như khi mã hóa
Trang 84
Hình 1:Sơ đồ giải thuật mã hóa DES
Ký hiệu ⊕ thể hiện phép XOR Hàm F làm biến đổi một nửa của khối đang xử
lý với một khóa con, đầu ra sau F được kết hợp với nửa còn lại của khối và hai phần được tráo đổi để xử lý trong chu trình kế tiếp Sau chu trình cuối cùng thì hai nửa không bị tráo đổi, đây là đặc điểm của cấu trúc Feistel khiến cho quá trình mã hóa và giải mã trở nên giống nhau Quá trình giải mã DES chính là ngược lại của quá trình mã hóa
Trang 95
Quá trình mã hóa DES gồm 3 phần chính: Phần thứ nhất là hoán vị khởi tạo và hoán vị kết thúc, phần thứ hai là các vòng Feistel, phần thứ ba là thuật toán sinh khóa con Sau đây là chi tiết từng phần
2.1 Hoán vi khởi tạo và hoán vị kết thúc
Bản rõ được chia thành các khối 64 bit, các bit trong khối được đánh số từ 1 đến 64 theo thứ tự từ trái sang phải, từ đó ta có các ma trận hoán vị
• Hoán vị khởi tạo (Initial Permutation) sẽ hoán đổi các bit theo quy tắc sau:
Bảng 1: Hoán vị khởi tạo (Initial Permutation)
Ở đây, bit đầu tiên của đầu ra được lấy từ bit thứ 58 của đầu vào, bit thứ hai được lấy từ bit 50,… và bit cuối cùng của đầu ra là bit thứ 7 của đầu vào
• Hoán vị kết thúc (Final permutation)
Trang 10Bảng 2:Hoán vị kết thúc (Final permutation)
Hoán vị kết thúc chính là hoán vị nghịch đảo của hoán vị khởi tạo Hoán vị khởi tạo và hoán vị kết thúc không có ý nghĩa bảo mật, sự tồn tại của hai hoán vị này được nhận định là do yếu tố lịch sử
2.2 Thuật toán sinh khóa con
Trong 16 vòng lặp của DES, các khóa được sử dụng tại mỗi vòng là khác nhau,
16 khóa này được gọi là khóa con và được sinh ra từ khóa chính của DES bằng thuật toán sinh khóa con Trong thuật toán sinh khóa con này (lập lịch khóa), khóa chính K (64 bit) sẽ đi qua 16 bước biến đổi, tại mỗi bước này một khóa con được sinh ra với độ dài 48 bit
Ban đầu, khóa K (64 bit) được rút trích và hoán vị thành một khóa 56 bit (tức chỉ sử dụng 56 bit) theo quy tắc PC-1:
Bảng 3: hoán vị có chọn lọc 1(Permuted choice 1)
Hoán vị có chọn lọc này chỉ chọn 56 bit trong tổng số 64 bit của khóa, tám bit còn lại (8, 16, 24, 32, 40, 48, 56, 64) được chỉ định để sử dụng như là bit chẵn lẻ (parity bits)
Trang 11Vòng i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
ri 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1
Bảng 4: Quy tắc dịch bit key
Tại các vòng 1, 2, 9, 16 thì KLi và KRi sẽ được dịch sang trái 1 bit, các vòng còn lại sẽ được dịch sang trái 2 bit
Cuối cùng, Khóa Ki của mỗi vòng được tạo ra bằng cách hoán vị và nén 56 bit của KLi và KRi thành 48 bit theo quy tắc:
Bảng 5: hoán vị có chọn lọc 2(Permuted choice 2)
PC-2 hoạt động tương tự PC-1, chỉ khác ở sự hoán vị Trong hoán vị lần này các bit 9, 18, 22, 25, 35, 38, 42, 54 sẽ bị loại bỏ, 48 bit còn lại chính là khóa con được sinh ra
Trang 128
Hình 2: Sơ đồ thuật toán sinh khóa con (Key Scheduler) - Nguồn: Wikipedia
Qua sơ đồ ta có thể thấy 56 bit của khóa chính được sử dụng và 8 bit kiểm tra chẵn lẻ (parity bits) sẽ bị lọc ra ở biến đổi PC1 Các bộ biến đổi PC1 và PC2 chỉ đơn giản là các bộ hoán vị có chọn lọc (permuted choice) Các biến đổi R1 và R2 tương ứng là các phép dịch vòng bit sang trái 1 bit và 2 bit
2.3 Cấu trúc vòng lặp của DES
Một vòng mã hóa của DES sẽ thực hiện chia khối 64 bit thành 2 phần là L và R, mỗi phần 32 bit Sau đó đem phần R biến đổi qua hàm F rồi thực hiện hoán vị giữa
L và R rồi kết hợp thành khối 64 bit
Trang 139
Hình 3: Cấu trúc một vòng lặp của DES
Một vòng lặp của DES được thể hiện như sau:
𝐿𝑖 = 𝑅𝑖−1
𝑅𝑖 = 𝐿𝑖−1 ⊕ 𝑓(𝑅𝑖−1, 𝐾𝑖) với i = 1, 2, 3, …, 16 𝑓(𝑅𝑖−1, 𝐾𝑖) = 𝑃_𝑏𝑜𝑥(𝑆_𝑏𝑜𝑥𝑒𝑠(𝐸𝑥𝑝𝑎𝑛𝑑(𝑅𝑖−1) ⊕ 𝐾𝑖)) Trong đó hàm Expand vừa mở rộng vừa hoán vị Ri-1 từ 32 bit lên 48 bit Hàm S-boxes sẽ nén 48 bit lại còn 32 bit Hàm P-box là một hoán vị 32 bit Các hàm trên được mô tả cụ thể như sau:
2.3.1 Hàm Expand
Đầu tiên 32 bit của Ri-1 sẽ được mở rộng thành 48 bit sử dụng thuật toán hoán
vị mở rộng2 (expansion permutation) với việc nhân đôi một số bit
Hàm Expand thực hiện đánh số các bit của Ri-1 từ 1 đến 32 theo thứ tự từ trái sang phải Hàm Expand thực hiện hoán vị mở rộng 32 bit thành 48 bit theo quy tắc:
2 Phương pháp này nhìn chung là lặp lại hai bit cuối của hàng trước
Trang 14Bảng 6: Hoán vị mở rộng 32 bit lên 48 bit
48 bit thu được sau quá trình mở rộng được XOR với 48 bit của khóa con đã được tạo ra từ khóa chính ở trên
2.3.2 Hàm S-boxes
48 bit sau khi trộn được chia làm 8 khối con, mỗi khối 6 bit (b0b1b2b3b4b5) và được xử lý qua hộp thay thế S-box Đầu ra của mỗi S-box là một khối 4 bit theo một chuyển đổi phi tuyến được thực hiện bằng các bảng tra dưới đây
Trang 20f(R11 ,K 12 ) = 11000010011010001100111111101010
L 13 = R 12 = 01110101101111010001100001011000
Trang 228 5 E 8 1 3 5 4 0 F 0 A B 4 0 5
III ĐỘ AN TOÀN CỦA DES
1 Điểm yếu của DES
Trang 232 Các dạng tấn công DES
Tấn công vét cạn (Brute Force Attack): Vì khóa của mã DES có chiều dài là 56 bít nên để tiến hành brute-force attack, cần kiểm tra 256 khóa khác nhau Hiện nay với những thiết bị phổ dụng, thời gian gian để thử khóa là rất lớn nên việc phá mã
là không khả thi (xem bảng) Tuy nhiên vào năm 1998, tổ chức Electronic Frontier Foundation (EFF) thông báo đã xây dựng được một thiết bị phá mã DES gồm nhiều máy tính chạy song song, trị giá khoảng 250.000$ Thời gian thử khóa là 3 ngày Hiện nay mã DES vẫn còn được sử dụng trong thương mại, tuy nhiên người
ta đã bắt đầu áp dụng những phương pháp mã hóa khác có chiều dài khóa lớn hơn (128 bít hay 256 bít) như TripleDES hoặc AES
Phương pháp vi sai (differential cryptanalysis): Năm 1990 Biham và Shamir đã giới thiệu phương pháp phá mã vi sai Phương pháp vi sai tìm khóa ít tốn thời gian hơn brute-force Tuy nhiên phương pháp phá mã này lại đòi hỏi phải có 247 cặp bản rõ - bản mã được lựa chọn (chosen-plaintext) Vì vậy phương pháp này là bất khả thi dù rằng số lần thử có thể ít hơn phương pháp brute-force
Phương pháp thử tuyến tính (linear cryptanalysis): Năm 1997 Matsui đưa ra phương pháp phá mã tuyến tính Trong phương pháp này, cần phải biết trước 243 cặp bản rõ-bản mã (known-plaintext) Tuy nhiên 243 cũng là một con số lớn nên phá mã tuyến tính cũng không phải là một phương pháp khả thi
Trang 24TÀI LIỆU THAM KHẢO
https://en.wikipedia.org/wiki/DES_supplementary_materialhttp://kathrynneugent.com/des.html
https://vi.wikipedia.org/wiki/DES_(mã_hóa)
https://voer.edu.vn/m/chuan-ma-du-lieu-des/623f6f0e
Trang 25NHẬN XÉT CỦA GIẢNG VIÊN