Các hệ mật mã với các thuật toán lập mật mã và giải mã thực hiện bằng máy tính được phát triển nhanh chóng, đồng thời các lĩnh vực truyền tin cần sử dụng mật mã cũng được mở rộng ngoài c
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP
BÀI TẬP LỚN
AN TOÀN VÀ AN NINH MẠNG
Tên bài tập lớn: Chuẩn mã hóa dữ liệu DES (Data Encryption Standard)
GIÁO VIÊN HƯỚNG DẪN: HOÀNG ĐẮC THẮNG
SINH VIÊN THỰC HIỆN: NGUYỄN THỊ HẢO
MÃ SV: 22103200105
LỚP: DHMT16A2HN
Trang 2
Nội dung
CHƯƠNG 1: GIỚI THIỆU VỀ DES 3
I GIỚI THIỆU VỀ DES 3
1 DES(mã hóa) 3
2 Lịch sử 3
II Quá trình 3
1 DES với vai trò là một tiêu chuẩn 3
2 Quá trình 4
3 Quá trình thay thế DES 5
CHƯƠNG 2.Hệ mã hóa chuẩn DES 6
I Giới thiệu về hệ mã chuẩn 6
1 Giới thiệu 6
2 Tính năng DES 6
3 Độ dài khóa trong DES 6
II Mô tả sơ đồ mã hóa DES 7
1 Mục đích hoán vị ban đầu 7
2 Cách thức hoạt động 8
3 Bảng Hoán vị 8
Kết quả 8
IV Round i (Vòng lặp i) 8
V Hàm F 11
VI Sinh khoá con của DES 11
VII Mô tả hộp S-Box 13
VIII Inverse Initial Permutation (IP−1): : Hoán vị ngược ban đầu 16
CHƯƠNG 3.Độ an toàn của DES 16
I Độ an toàn của DES 16
1 Thám mã sai phân 17
2 Thám mã tuyến tính: 18
II Giải mã DES 19
III Điểm yếu của DES 19
1 Tính bù 19
2 Khóa yếu 19
3 DES có cấu trúc đại số 20
4.Không gian khóa K 20
Trang 3CHƯƠNG 1: GIỚI THIỆU VỀ DES
I GIỚI THIỆU VỀ DES
1 DES(mã hóa)
DES(viếttắtcủaData Encryption Standard,hayTiêu chuẩn Mã hóa Dữ liệu)làmộtphươngphápmậtmãhóađượcFIPS(TiêuchuẩnXửlýThôngtin LiênbangHoaKỳ)chọnlàmchuẩnchínhthứcvàonăm1976.Sauđóchuẩnnày đượcsửdụngrộngrãitrênphạmvithếgiới.Ngaytừđầu,thuậttoáncủanóđã gâyrarấtnhiềutranhcãi,donóbaogồmcácthànhphầnthiếtkếmật,độdài khóatươngđốingắn,vàcácnghingờvềcửasauđểCơquanAnninhquốcgia HoaKỳ(NSA)cóthểbẻkhóa.Dođó,DESđãđượcgiớinghiêncứuxemxétrất kỹlưỡng,việcnàyđãthúcđẩyhiểubiếthiệnđạivềmậtmãkhối(block cipher) vàcácphươngphápthámmãtươngứng
HiệnnayDESđượcxemlàkhôngđủantoànchonhiềuứngdụng.Nguyên nhânchủyếulàđộdài56 củabit khóalàquánhỏ.KhóaDESđãtừngbịphá trongvòngchưađầy24giờ.Đãcórấtnhiềukếtquảphântíchchothấynhững điểmyếuvềmặtlýthuyếtcủamãhóacóthểdẫnđếnphákhóa,tuychúng khôngkhảthitrongthựctiễn.Thuậttoánđượctintưởnglàantoàntrongthực tiễncódạngTripleDES(thựchiệnDESbalần),mặcdùtrênlýthuyếtphương phápnàyvẫncóthểbịphá.GầnđâyDESđãđượcthaythế
bằngAES(Advanced Encryption Standard,hayTiêuchuẩnMãhóaTiêntiến)
2 Lịch sử
Đầu những năm 1970: DES được phát triển bởi IBM, dựa trên thuật toán
Lucifer do Horst Feistel thiết kế Lucifer là một trong những thuật toán mã hóa khối đầu tiên, sử dụng cấu trúc Feistel.
1973: Cục Tiêu chuẩn Liên bang Hoa Kỳ (NBS), hiện nay là Viện Tiêu
chuẩn và Công nghệ Quốc gia Hoa Kỳ (NIST), nhận ra nhu cầu về một tiêu chuẩn mã hóa để bảo vệ thông tin nhạy cảm của chính phủ.
1974: Sau khi không có đề xuất nào đáp ứng yêu cầu trong lần kêu gọi đầu
tiên, NBS tiếp tục kêu gọi lần thứ hai IBM đã đưa ra một đề xuất dựa trên Lucifer, được phát triển trong những năm 1973-1974.
II Quá trình
1 DES với vai trò là một tiêu chuẩn
Bấtchấpnhữngchỉtrích,DESđượcchọnlàmtiêuchuẩnliênbang(HoaKỳ)vào tháng11năm1976vàđượccôngbốtạitàiliệucótênlàFIPS PUB 46vào ngày15tháng1năm1977chophépsửdụngchínhthứcđốivớithôngtinkhông mật.DEStiếptụcđượckhẳngđịnhlàtiêuchuẩnvàocácnăm1983 1988, (với tênFIPS-46-1),1993(FIPS-46-2)và1998(FIPS-46-3).Lầncuốicùngquyđịnh dùng"TripleDES"(xemthêmởphầnsau).Ngày26tháng5năm2002,DES
Trang 4đượcthaythếbằngAESsaumộtcuộcthirộngrãi(xemthêmQuátrìnhAES). Tuynhiên,tạithờiđiểmnăm2004,DESvẫncònđượcsửdụngkháphổbiến
Năm1994,thêmmộtphươngpháptấncôngkhác(trênlýthuyết)đượccôngbố
làthámmãtuyếntính.TuynhiênthờiđiểmnhucầuthaythếDEStrởnênthựcsự cấpthiếtlàvàonăm1998khimộtcuộctấncôngbạolựcchứngtỏrằngDEScóthể bịphávỡtrênthựctế.Cácphươngphápthámmãnàysẽđượcmiêutảkỹhơnở phầnsau
SựxuấthiệncủaDESđãtạonênmộtlànsóngnghiêncứutronggiớikhoahọcvề lĩnhvựcmậtmãhọc,đặcbiệtlàcácphươngphápthámmãmãkhối.Vềđiều
này,BruceSchneierviết:
"NSA coi DES là một trong những sai lầm lớn nhất Nếu họ biết trước rằng chi tiết của thuật
toán sẽ được công bố để mọi người có thể viết chương trình phần mềm, họ sẽ không bao giờ đồng ý DES đã tạo nên nguồn cảm hứng nghiên cứu trong lĩnh vực thám mã hơn bất kỳ điều gì khác: Giới khoa học đã có một thuật toán để nghiên cứu - thuật toán mà NSA khẳng định là an toàn."
2 Quá trình
15 tháng 5 năm 1973 NBS đưa ra lời kêu gọi đầu tiên về một thuật toán mã hóa tiêu chuẩn.
27 tháng 8 năm 1974 NBS đưa ra lời kêu gọi thứ hai.
17 tháng 3 năm 1975 DES được công bố trên công báo liên bang Hoa Kỳ để công chúng đóng
góp ý kiến.
Tháng 8 , 1976 Hội thảo đầu tiên về DES.
Tháng 9 , 1976 Hội thảo lần hai, bàn về nền tảng toán học của DES.
Tháng 11 , 1976 DES được phê chuẩn làm tiêu chuẩn chính thức.
15 tháng 1 năm 1977 DES được xác nhận làm tiểu chuẩn của FIPS (FIPS PUB 46).
1983 DES được công bố lại lần đầu.
1986 HBO phát sóng chương trình Videocipher II, một kênh TV mã hóa dựa
trên DES.
22 tháng 1 năm 1988 DES được xác nhận lần hai với tên FIPS 46-1, thay thế FIPS PUB 46 1992
Biham và Shamir công bố kiểu tấn công thám mã vi sai (trên lý thuyết) với độ phức tạp thấp hơn tấn công bạo lực Tuy nhiên, kiểu tấn công này đòi hỏi người tấn công lựa chọn 2 văn bản rõ (một điều kiện không thực47
tế) [1]
Trang 530 tháng 12 năm 1993 DES được xác nhận lần ba với tên FIPS 46-2.
1994 Thực nghiệm thám mã DES lần đầu tiên được thực hiện với kỹ
thuật thám mã tuyến tính .[2]
Tháng 6 , 1997 Dự án DESCHALL đã phá vỡ được một bản tin mã hóa bằng DES (lần
đầu tiên trước công chúng).
Tháng 7 , 1998 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ờ.
Tháng 1 , 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.
25 tháng 10 năm 1999
DES được xác nhận lần thứ tư với tên FIPS 46-3 Lần này phương pháp Triple DES được khuyến cáo sử dụng còn DES chỉ được dùng cho các hệ thống ít quan trọng.
26 tháng 11 năm 2001 AES được công bố trong FIPS 197
26 tháng 5 năm 2002 AES trở thành tiêu chuẩn
26 tháng 7 năm 2004
Việc bãi bỏ FIPS 46-3 (cùng với một số tiêu chuẩn liên quan khác) được đăng trên công báo liên bang Hoa Kỳ
( http://edocket.access.gpo.gov/2004/04-16894.htm ).
19 tháng 5 năm 2005 NIST bãi bỏ FIPS 46-3
3 Quá trình thay thế DES
Triple DES (3DES): Để tăng cường bảo mật, DES được sử dụng ba lần
trong một số ứng dụng, gọi là Triple DES (3DES) Mặc dù an toàn hơn,
3DES vẫn có những hạn chế và không được coi là giải pháp lâu dài.
2001: DES chính thức được thay thế bởi AES (Advanced Encryption
Standard), một thuật toán mã hóa mạnh hơn và an toàn hơn.
DES đã để lại một di sản quan trọng trong lĩnh vực mật mã học, giúp định hình các tiêu chuẩn và phương pháp mã hóa hiện đại.
Trang 62.Hệ mã hóa chuẩn DES
I Giới thiệu về hệ mã chuẩn
1 Giới thiệu
Bước sang kỷ nguyên máy tính, việc sử
dụng máy tính nhanh chóng được phổ cập trong
mọi hoạt động của con người, và tất nhiên việc
dùng máy tính trong truyền tin bảo mật đã được
hết sức chú ý Các hệ mật mã với các thuật toán
lập mật mã và giải mã thực hiện bằng máy tính
được phát triển nhanh chóng, đồng thời các lĩnh
vực truyền tin cần sử dụng mật mã cũng được mở rộng ngoài các truyền thống Vào đầu thập niên 1970, trước tình hình phát triển đó đã nẩy sinh nhu cầu phải chuẩn hóa các giải pháp mật mã được sử dụng trong xã hội, để một mặt hướng dẫn các thành viên trong xã hội thực hiện quyền tuyên truyền tin bảo mật hợp pháp của mình, mặt khác, bảo đảm sự quản lý và giám sát của nhà nước đối với các hoạt động bảo mật đó Do đó, tại Hòa Kỳ, ngày 15/05/1973, Văn phòng quốc gia về Chuẩn (NBD - National Bureau of Standars) công bố một yêu cầu công khai xây dựng và đề xuất một thuật toán mật mã chuẩn, đáp ứng các đòi hỏi chủ yếu là:
- Thuật toán phải được định nghĩa đầy đủ và dễ hiểu
- Thuật toán phải có độ an toàn cao, độ an toàn đó không phụ thuộc vào sự giữ bí mật của bản thân thuật toán, mà chỉ nằm ở sự giữ bí mật của khóa
- Thuật toán phải được sẵn sàng cung cấp cho mọi người dùng
- Thuật toán phải thích nghi được với việc dùng có các ứng dụng khác nhau
- Thuật toán phải cài đặt được một cách tiết kiệm trong
các thiết bị điện tử
- Thuật toán phải sử dụng được có hiệu quả
- Thuật toán phải có khả năng được hợp thức hóa
- Thuật toán phải xuất khẩu được
2 Tính năng DES
- Kích thước khối = 64 bit
- Kích thước khóa = 56 bit (trên thực tế, 64 bit, nhưng 8 bit được sử dụng làm bit kiểm tra chẵn lẻ để kiểm soát lỗi, xem slide tiếp theo)
- Số vòng = 16 – 16 khóa trung gian, mỗi khóa 48 bit
3 Độ dài khóa trong DES
- Trong đặc tả DES, độ dài khóa là 64 bit:
- 8 byte; Trong mỗi byte, bit thứ 8 là bit kiểm tra chẵn lẻ
Trang 7Mỗi bit kiểm tra chẵn lẻ là XOR của 7 bit trước đó
II Mô tả sơ đồ mã hóa DES
Sơ đồ mã hóa DES (Data Encryption Standard) là một thuật toán mã hóa khối sử dụng khóa đối xứng, nghĩa là cùng một khóa được sử dụng cho cả mã hóa và giải mã Dưới đây là mô tả cơ bản về cách hoạt động của DES:
-Khối dữ liệu: DES xử lý dữ liệu theo từng khối 64 bit Mỗi khối dữ liệu sẽ được chia thành hai nửa,
mỗi nửa 32 bit
-Hoán vị khởi đầu (Initial Permutation - IP): Trước khi bắt đầu quá trình mã hóa, khối dữ liệu sẽ trải
qua một bước hoán vị khởi đầu
-16 vòng lặp mã hóa (Rounds): Dữ liệu được xử lý qua 16 vòng lặp giống hệt nhau Mỗi vòng lặp bao
gồm các bước:
o Chia dữ liệu: Khối dữ liệu được chia thành hai nửa, trái và phải
o Hàm Feistel (Feistel Function): Nửa phải được xử lý qua hàm Feistel, bao gồm các bước
mở rộng, trộn khóa, thay thế và hoán vị
o Kết hợp: Kết quả của hàm Feistel được XOR với nửa trái và sau đó hai nửa được hoán đổi vị
trí cho nhau
-Hoán vị cuối cùng (Final Permutation - FP): Sau 16 vòng lặp, hai nửa dữ liệu được kết hợp lại và trải
qua một bước hoán vị cuối cùng để tạo ra khối dữ liệu đã mã hóa
-Khóa: DES sử dụng một khóa 56 bit (thực tế là 64 bit nhưng 8 bit dùng để kiểm tra chẵn lẻ) Từ khóa chính này, 16 khóa con 48 bit được tạo ra cho mỗi vòng lặp mã hóa
DES đã từng là tiêu chuẩn mã hóa phổ biến nhưng hiện nay được xem là không đủ an toàn do độ dài khóa ngắn và khả năng bị tấn công bạo lực Nó đã được thay thế bởi các thuật toán mạnh hơn như AES
III Initial Permutation (IP) : Hoán vị ban đầu
1 Mục đích hoán vị ban đầu
Tăng cường tính bảo mật: Hoán vị ban đầu giúp phân tán thông tin trong khối dữ liệu, làm cho
việc phân tích và tấn công trở nên khó khăn hơn
Chuẩn bị dữ liệu: Bước này chuẩn bị dữ liệu để thực hiện các bước mã hóa tiếp theo.
2 Cách thức hoạt động
Dữ liệu đầu vào: DES nhận đầu vào là một khối dữ liệu 64 bit.
Hoán vị: Thay vì xử lý trực tiếp khối dữ liệu này, DES sẽ thực hiện một hoán vị theo một bảng
hoán vị cố định, được gọi là bảng Hoán vị ban đầu (IP table)
Các bit kiểm tra chẵn lẻ
Trang 83 Bảng Hoán vị
Bảng hoán vị ban đầu là một bảng 64 vị trí chỉ định cách mà 64 bit đầu vào sẽ được hoán vị Ví
dụ, bít 1 → bít 58, bít 2 → bít 50, bít 3 → bít 42,
Kết quả
Sau khi hoàn tất hoán vị ban đầu, dữ liệu được chia thành hai nửa (32 bit mỗi nửa) và sẵn sàng cho các vòng mã hóa tiếp theo của DES
Ví dụ: IP(675a6967 5e5a6b5a) = (ffb2194d 004df6fb)
IV Round i (Vòng lặp i)
• Li = Ri-1
• Ri = Li-1 f(Ri-1, Ki)⊕
⊕ là ký hiệu của phép tuyển loại trừ (XOR) của hai xâu
bit theo modulo 2
Chức năng "f (•)":
i = 1,…,16
64 bit được chia thành 32 bít nửa trái (L) và 32 bít nửa phải (R)
16 bit xuất hiện hai lần, trong bản
mở rộng
Trang 9L i=Ri – 1 R i=Li – 1 ⊕ F¿)
Round i (Vòng lặp i): i = 1,…,16
• F lấy 32 bít nửa phải R, mở rộng thành 48 bít nhờ hoán vị E, rồi cộng vào với khoá con 48 bít
• Sau đó chia thành 8 cụm 6 bít và cho qua 8 S-box để nhận được kết quả 32 bít
• Đảo lần cuối sử dụng hoán vị 32 bít P nhận được 32 bít đầu ra
• Rồi cộng với nửa trái để chuyển thành nửa phải của bước sau
E một hàm mở rộng lấy
một khối 32 bit làm đầu
Hàm hoán vị cố
định
Đọc 6 bit Quay lại 2 bit Lặp lại
Hộp thay
Hoán vị
Trang 11V Hàm F
Đầu vào: Hàm F nhận 2 đầu vào:
o R (32 bit): Phần phải của khối dữ liệu cần mã hóa
o K (48 bit): Khóa con được sử dụng trong vòng mã hóa hiện tại
Chia R thành 8 phần: Phần R 32 bit sẽ được chia thành 8 phần, mỗi phần 6 bit.
o S1, S2, S3, S4, S5, S6, S7, S8
Thay thế bằng S-box: Mỗi phần 6 bit từ R sẽ được lấy làm input cho một S-box tương ứng.
o S-box là những bảng tra thay thế được thiết kế trước, mỗi S-box có 4 bit output
Kết hợp các output S-box: Sau khi thay thế bằng S-box, ta sẽ có 8 output 4 bit.
o Các output này sẽ được nối lại thành 1 khối 32 bit
Kết quả đầu ra: Khối 32 bit này chính là kết quả đầu ra của hàm F.
o Kết quả sẽ được sử dụng trong các bước tiếp theo của quá trình mã hóa DES Tóm lại, hàm F trong DES có nhiệm vụ biến đổi 32 bit input R thành 32 bit output, dựa trên việc chia nhỏ
R thành các phần 6 bit và sử dụng các S-box để thay thế chúng
• 32 bit đầu ra của 8 S-Box được hoán vị theo cách cố định P
• Đầu ra của P là giá trị của hàm F
VI Sinh khoá con của DES
- Khóa chính: Khóa ban đầu có độ dài 64 bit, nhưng chỉ có 56 bit được sử dụng cho quá trình mã hóa 8 bit còn lại được dùng để kiểm tra tính chẵn lẻ
- Hoán vị PC-1: Khóa 64 bit được hoán vị để tạo thành chuỗi 56 bit Quá trình hoán vị này được gọi là Permuted Choice 1 (PC-1)
- Chia khóa: Chuỗi 56 bit này được chia thành hai phần, mỗi phần 28 bit, gọi là (C_0) và (D_0)
- Dịch vòng: Mỗi phần (C_i) và (D_i) sẽ được dịch vòng sang trái một số bit nhất định tùy thuộc vào vòng lặp Có tổng cộng 16 vòng lặp, và số bit dịch vòng thay đổi theo từng vòng Cụ thể:
o Vòng 1, 2, 9, 16: dịch 1 bit
o Các vòng còn lại: dịch 2 bit
- Hoán vị PC-2: Sau khi dịch vòng, hai phần (C_i) và (D_i) được kết hợp lại và hoán vị lần nữa để tạo ra khóa con (K_i) có độ dài 48 bit Quá trình này lặp lại 16 lần để tạo ra 16 khóa con khác nhau
- Sử dụng khóa con: Các khóa con này sau đó được sử dụng trong các vòng mã hóa của DES để mã hóa dữ liệu một cách an toàn
Trang 12- Ứng dụng trên thực thế cả phần cứng và phần mềm đều hiệu quả.
Khóa 64 bit (bao gồm các bit kiểm tra
Ma trận PC-1 và PC-2 được đưa ra theo tiêu chuẩn (xem slide tiếp theo)
Ci = LSi (Ci-1)
Di = LSi (Di-1)
Ki = PC-2
(CiDi) LS =
Dịch chuyển
trái một vị trí
nếu i = 1,2,9
hoặc 16
-dịch chuyển
2 vị trí cho
những i còn lại
Trang 13DES lựa chọn hoán vị 1 và 2 (PC-1, PC-2)
VII Mô tả hộp S-Box
• Có 8 hộp S khác nhau ánh xạ 6 bít vào 4 bít
• S box thực hiện các phép thế, chúng được cấu tạo không có qui luật và cố định
• Mỗi S box là hộp 4 x 16, mỗi hàng là một số nguyên từ 0 đến 15
• Giả sử ta có 6 bít đầu vào Ta lấy hai bít ngoài 1-6 ghép lại được số nhị phân xác định chọn
hàng từ 0 đến 3 trong S box Bốn bít từ 2 đến 5 là một số nhị phân xác định cột từ 0 đến 15 trong
S box
• Lấy phần tử tương ứng trên hàng và cột mới được xác định, đây là một số từ 0 đến 15, chuyển sang số nhị phân ta được 4 bít đầu ra
• Như vậy 48 bít chia thành có 8 cụm 6 bít, qua 8 S box được chuyển thành 8 cụm 4 bít, tổng
cộng là 32 bít
• Việc chọn hàng trong các S box phụ thuộc cả dữ liệu và khoá - đặc trưng này được gọi là khoá
tự xác định
Các bit kiểm tra chẵn lẻ (cụ
thể là bit 8,16,
4,32,40,48,56,64) không
được chọn, chúng không
xuất hiện trong PC-1
PC-2 chọn khóa con 48 bit cho mỗi vòng từ trạng thái lịch trình khóa 56 bit