HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA VIỄN THÔNG 1 BÀI THI CUỐI KỲ MÔN AN NINH MẠNG TRUYỀN THÔNG NỘI DUNG TIÊU CHUẨN MẬT MÃ HOÁ DỮ LIỆU DES Giảng viên hướng dẫn Cô Nguyễn Thanh Trà Bài thi cuối[.]
Trang 1BÀI THI CUỐI KỲ MÔN: AN NINH MẠNG TRUYỀN THÔNG NỘI DUNG: TIÊU CHUẨN MẬT MÃ HOÁ DỮ LIỆU DES
Giảng viên hướng dẫn : Cô Nguyễn Thanh Trà
Trang 2
PHÂN CÔNG CÔNG VIỆC TRONG NHÓM
1 Chọn đề tài tiểu luận
2 Tìm kiếm tài liệu tham khảo về
đề tài
3 Nội dung bài tiểu luận
4 Đưa ra ý tưởng và trình bày
Hoàn thành Word Phân công việc
Ví dụ bài tập về DES
Đề cương tiểu luận
Trang 3MỤC LỤC
PHÂN CÔNG CÔNG VIỆC TRONG NHÓM 2
MỤC LỤC 3
DANH MỤC HÌNH 4
DANH MỤC BẢNG 4
1 Lý do chọn đề tài 5
2 Mục đích 5
3 Đối tượng 5
4 Phạm vi tiểu luận 5
5 Phương pháp nghiên cứu 5
6 Kết quả đạt được 5
CHƯƠNG 1: TỔNG QUAN VỀ DES 7
1.1 Khái niệm mật mã khối 7
1.1.1 Khái niệm 7
1.1.2 Key 7
1.1.3 Cấu trúc chung của mật mã khối 7
1.2 Khái niệm về DES 7
1.2.1 Lịch sử phát triển 7
1.2.2 Khái niệm 8
1.3 Độ an toàn của DES 8
1.4 Thực trạng hiện nay 8
CHƯƠNG 2: CƠ CHẾ HOẠT ĐỘNG CỦA DES 10
2.1 Cấu trúc của DES 10
2.2 Các phép hoán vị 11
2.3 Các vòng mật mã của DES 12
2.4 Thuật toán sinh khóa con của DES 14
2.5 Thuật toán giải mã DES 15
2.6 Ví dụ 16
CHƯƠNG 3: ỨNG DỤNG THỰC TẾ 20
3.1 Ứng dụng 20
3.2 So sánh một số thuật toán mã khối thông dụng 20
KẾT LUẬN 22
TÀI LIỆU THAM KHẢO 23
Trang 4DANH MỤC HÌNH
Hình 1 Cấu trúc mật mã khối 7
Hình 2 Cấu trúc của DES 10
Hình 3 Hoán vị khởi tạo 11
Hình 4 Hoán vị kết thúc 11
Hình 5 Cấu trúc 1 vòng của DES 12
Hình 6 Hàm Expand 13
Hình 7 Luồng vào S-box 13
Hình 8 Hàm S-box 13
Hình 9 Hàm P-box 14
Hình 10 Hoán vị khoá 14
Hình 11 Hoán vị và nén khoá 15
Hình 12 Sơ đồ thuật toán giải mã DES 16
DANH MỤC BẢNG Bảng 1 So sánh một số thuật toán mã khối thông dụng 21
Trang 5LỜI MỞ ĐẦU
1 Lý do chọn đề tài
Hiện nay, Công nghệ thông tin được xem như là một ngành mũi nhọn, đã và đang đóng góp rất nhiều cho xã hội ở mọi khía cạnh trong cuộc sống Thông tin có một vai trò hết sức quan trọng, bởi vậy chúng ta phải làm sao đảm bảo được tính trong suốt của thông tin, nghĩa là thông tin không bị sai lệch, không bị lộ, không bị thay đổi trong suốt quá trình truyền từ nơi gửi đến nơi nhận Với sự phát triển nhanh chóng của công nghệ mạng máy tính ngày nay, đặc biệt là mạng Internet thì khối lượng thông tin truyền tải ngày càng nhiều hơn Các tập đoàn công nghệ, Công ty đa quốc gia, Thị trường chứng khoán, tiến hành xử lý truyền nhận các thông tin đắt giá, những phiên giao dịch trái phiếu, cổ phiếu cũng được tiến hành qua mạng Với sự tăng trưởng của ngành thương mại điện tử thì hằng ngày có một khối lượng tiền khổng lồ đang lưu chuyển trên mạng Internet, vấn đề khó khăn đặt ra là làm sao giữ được thông tin bí mật hoặc tiền đến đúng địa chỉ cần đến Mã hoá thông tin là một trong những phương pháp đảm bảo được tính trong suốt của thông tin
Mã hoá thông tin là một ngành có rất nhiều ứng dụng trong nhiều lĩnh vực đời sống ngày nay như: an ninh quân sự, quốc phòng, dân sự như thương mại điện tử, ngân hàng, Với mong muốn tìm hiểu cách bảo mật thông tin, nhóm em đã chọn đề tài về chuẩn mã dữ liệu DES với các chức năng như lập mã, giải mã
2 Mục đích
Mục đích nghiên cứu là tìm hiểu chuẩn mã dữ liệu DES để có thể mã hoá và giải
mã chuỗi văn bản nhằm đảm bảo tính chính xác, an toàn cho dữ liệu cần truyền, tránh nguy cơ bị lộ hoặc mất mát thông tin khi truyền
5 Phương pháp nghiên cứu
Nghiên cứu qua việc đọc sách, báo, các tài liệu liên quan đồng thời kế thừa các kết quả nghiên cứu từ trước để xây dựng cơ sở lý thuyết của đề tài
Thông qua quan sát thực tế, cơ sở lý luận của đề tài được nghiên cứu
6 Kết quả đạt được
Từ mục đích, yêu cầu, nhiệm vụ đề ra tiểu luận đã đạt được các kết quả như sau: Tìm hiểu được chuẩn mã dữ liệu DES 16 vòng, cấu trúc, thuật toán và ứng dụng của DES vào đời sống thực tế
Trang 6Nhóm em cũng xin gửi lời cảm ơn sâu sắc tới cô Thanh Trà đã truyền đạt lại kiến thức cũng như giúp đỡ chúng em trong suốt học kì vừa qua Trong quá trình làm tiểu luận còn có nhiều thiếu sót chúng em mong được cô chỉ điểm nhiều hơn
Nhóm em xin chân thành cảm ơn!
Trang 7CHƯƠNG 1: TỔNG QUAN VỀ DES 1.1 Khái niệm mật mã khối
1.1.1 Khái niệm
Trong an ninh mạng, mã hóa khối (block cipher) 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
Ví dụ: Một thuật toán mã hóa khối có thể xử lý khối 128 bít đầu vào và biến nó thành khối 128 bit ở đầu ra Quá trình chuyển đổi còn sử dụng thêm một tham số nữa: khoá bí mật để cá biệt hóa quá trình Việc giải mã cũng diễn ra tương tự: xử lý khối mã hóa 128 bit cùng với khóa để trả về khối 128 bit bản rõ ban đầu
1.1.2 Key
Khóa bí mật (Key) là 1 private key để xác thực giữa 2 bên đầu cuối, mã hóa từ bản rõ sang bản mã, được bảo vệ trong lúc truyền tin
1.1.3 Cấu trúc chung của mật mã khối
Mật mã khối là một kiểu mật mã trong đó bản rõ được xử lý theo khối và được
sử dụng để tạo ra khối bản mã có chiều dài bằng chiều dài bản rõ Thông thường, kích thước khối được sử dụng là 64 hoặc 128 bit Cấu trúc bộ mật mã khối được mô tả như trong hình 1.1
Hình 1 Cấu trúc mật mã khối 1.2 Khái niệm về DES
1.2.1 Lịch sử phát triển
Mật mã tiêu chuẩn DES (Data Encryption Standard) được đưa ra năm 1977 bởi cục tiêu chuẩn quốc gia, giờ là Viện tiêu chuẩn và kỹ thuật quốc gia (NIST) Hoa Kỳ Thuật toán của mật mã này được gọi là DEA (Data Encryption Algorithm)
Ngày nay, nhu cầu về công nghệ thông tin trong đời sống là đa dạng Với việc ứng dụng mã hóa vào việc truyền thông tin trên mạng, mã hóa thông tin là rất cần thiết,
Khoá (K)
Bản gốc(b bits)
Thuật toán mã hoá
Bản mã(b bits)
Trang 8góp phần đảm bảo sự toàn vẹn và bảo mật, xác thực cho thông điệp cần gửi đi qua mạng Internet.
Với sự phát triển mạnh mẽ của công nghệ thông tin, đặt biệt là sự phát triển của mạng Internet, ngày càng có nhiều thông tin được lưu giữ trên máy vi tính và gửi đi trên mạng Internet Và do đó xuất hiện nhu cầu về an toàn và bảo mật thông tin trên máy tính
1.2.2 Khái niệm
DES là một loại mô hình an toàn mạng thông tin trên mạng máy tính dùng để bảo
vệ thông tin trong quá trình truyền thông tin trên mạng (Network Security)
Thuật toán này biến đổi 64 bit đầu vào trong một chuỗi các bước thành 64 bit đầu
ra DES ngày càng trở thành thuật toán mật mã đối xứng phổ biến, đặc biệt trong các ứng dụng tài chính
1.3 Độ an toàn của DES
• Cơ sở mã hóa
DES sử dụng khóa 56-Bit (có tất cả 256 xấp xỉ 7.2 * 1016 khoá) Nếu một máy
tính thực hiện mỗi giây được 1000 phép mã hoá DES thì nó sẽ mất hơn một nghìn năm
để phá vỡ mật mã
• Các cuộc tấn công vào DES
Tấn công vét cạn: 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 Phá mã bằng nhiều máy tính chạy song song (3 ngày) Áp dụng phương pháp mật mã khác dùng khóa lớn hơn (128 bit,
256 bit)
Phá mã DES theo phương pháp vi sai (differential cryptanalysis): 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á mã DES theo phương pháp thử tuyến tính (linear cryptanalysis): 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
Cải tiến tấn công của Davies (Improved Davies' attack): Cuộc tấn công của Davies là một kỹ thuật chuyên biệt cho DES, được Donald Davies đề xuất lần đầu vào những năm 80, và được cải tiến bởi Biham và Biryukov Hình thức tấn công này yêu cầu 250 bản rõ đã biết và có tỷ lệ thành công là 51% => Không khả thi
1.4 Thực trạng hiện nay
Ngay sau khi ra đời, DES được chọn làm chuẩn mã hóa dữ liệu của Hoa Kỳ, sau
đó được sử dụng rộng rãi trên toàn thế giới DES cùng với mã hóa bất đối xứng đã mở
ra một thời kì mới cho ngành mã hóa thông tin
Tuy nhiên cho đến nay thuật toán DES không được xem là an toàn do độ dài 56 bít của khóa là quá nhỏ, nhiều kết quả nghiên cứu, phân tích cho thấy việc mã hóa có thể bị phá khóa Chính vì vậy, thuật toán 3DES được sinh ra để khắc phục các nhược
Trang 9điểm của DES Thực tế cho thấy, 3DES có tính an toàn cao hơn và sử dụng trong thực
Trang 10CHƯƠNG 2: CƠ CHẾ HOẠT ĐỘNG CỦA DES
2.1 Cấu trúc của 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
Như chỉ ra ở 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ã
Hình 2 Cấu trúc của DES
Trang 11Phần bên phải của hình 2.7 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
Sơ đồ mã DES trên gồm ba phần, phần thứ nhất là các 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 Chúng ta sẽ lần lượt đi vào chi tiết của từng phần
2.2 Các phép hoán vị
Giả sử bản rõ 64 bit được đánh số từ trái qua phải là 0, 1, 2, , 63 hay b0b1b2 b63, khi đó hoán vị khởi tạo sẽ hoán đổi các bit theo quy tắc sau:
Hình 3 Hoán vị khởi tạo
Hoán vị kết thúc hoán đổi các bit theo quy tắc sau:
Hình 4 Hoán vị kết thúc
Trang 12Đối với các kiểu tấn công biết bản rõ hay bản rõ được lựa chọn, 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ị trên được cho
là do yếu tố lịch sử để lại
2.3 Các vòng mật mã của DES
Hình 5 dưới đây minh họa một vòng Feistel của DES Trong đó, hàm F được
mô tả như sau:
F (Ri-1, Ki) = P - box(S - boxes (Expand (Ri-1) ⊕ K i))
Hình 5 Cấu trúc 1 vòng của DES
Trong đó:
- Hàm Expand (R i-1): mở rộng Ri-1 từ 32 bit hành 48 bit bằng cách thay đổi các thứ
tự của các bit cũng như lặp lại các bit Việc thực hiện này nhằm hai mục đích: + Làm độ dài của Ri cùng cỡ với khoá K để thực hiện việc cộng modulo XOR
+ Cho kết quả dài hơn để có thể được nén trong suốt quá trình thay thế
Trang 13- Hàm Expand (R i-1): đánh số các bit của Ri-1 theo thứ tự từ trái qua phải là 0, 1, 2, ,31 Hàm này sẽ thực hiện vừa hoán vị vừa mở rộng 32 bit thành 48 bit theo quy tắc sau:
Hình 7 Luồng vào S-box
Hàm S-box đầu tiên hoạt động như sau:
Hình 8 Hàm S-box
Trang 14- Hàm P - box thực hiện hoán vị 32 bit đầu vào theo quy tắc:
Hình 9 Hàm P-box 2.4 Thuật toán sinh khóa con của DES
Đầu tiên, khóa 64 bit được chuyển qua bộ hoán vị và nén thành khóa 56 bít theo quy tắc PC-1 dưới đây:
Hình 10 Hoán vị khoá
Sau đó, khóa 56 bit đó được chia thành hai nửa trái KL và phải KR, mỗi nửa có kích thước 28 bit Tại vòng thứ i (i=1, , 16), KLi-1 và KRi-1 được dịch vòng trái ri bit để tạo ra hai nửa KLi và KRi với ri được xác định như sau:
Cuối cùng, khóa Ki của vòng thứ i được tạo ra bằng cách hoán vị và nén 56 bit
KLi-1 và KRi-1 thành 48 bit theo quy tắc PC-2 sau:
Trang 15Hình 11 Hoán vị và nén khoá 2.5 Thuật toán giải mã DES
Đố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
Thuậ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 …
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 đối hợp (f = f-1, hay f (f(x) =x) Do đó nếu ta thực hiện phép tích hàm DES -1 DES hay DES DES -1 thì sẽ thu được phép đồng nhất Điều đó giải thích tại sao thuật toán giải mã lại giống hệt như sinh mã chỉ có khác về thứ tự trong chuỗi khóa con
Trang 16Hình 12 Sơ đồ thuật toán giải mã DES 2.6 Ví dụ
Để có thể hiểu rõ hơn về phương pháp mã hoá DES, ta hãy xét ví dụ sau:
Đề bài:
Một bản rõ mang nội dung: M = 0123456789ABCDEF
Sử dụng khoá (ở dạng thập phân): K = 133457799BBCDFF1
Xác định bản mã đầu ra
Trang 18- Tiếp theo ta thu được các khoá Ki từ việc đưa C i , D i vào hoán vị PC-2 (56bit
dụng một bảng một bảng lựa chọn mà lặp đi lặp lại một số bit trong Ri-1 Ta gọi việc sử dụng mỗi lựa chọn bảng này là hàm E Vì vậy, E(Ri-1) có khối đầu vào 32 bit và một khối đầu ra 48 bit Với 48 bit đầu ra được viết như 8 khối 6 bit thu được bằng cách chọn các bit trong đầu vào của nó theo bảng E BIT-SELECTION TABLE
- Ta tính E(R0) từ R0 như sau:
Trang 19- Bây giờ ta phải tính S1(B1)S2(B2)S3(B3)S4(B4)S5(B5)S6(B6)S7(B7)S8(B8) Với
Si(Bi) tương ứng là đầu ra của hộp thứ i S-box Mỗi hàm S1, S2,…, S8 có một khối 6bit là đầu vào và một khối 4 bit là đầu ra Tra bảng S-box ta có:
Khối đầu vào B1 = 011000, bit đầu tiên là "0" và bit cuối cùng "0"
Cuối cùng trong việc tính toán f là làm một hàm hoán vị P của các đầu ra S-box
để có được giá trị cuối cùng của f
Giải mã: Quá trình giải mã chỉ đơn giản là nghịch đảo của mã hóa, các bước thực
hiện tương tự như trên nhưng đảo ngược thứ tự các khóa được áp dụng, tức là áp dụng khóa K16 tới K1, làm hoàn toàn giống các bước và trình tự như mã hóa
Trang 20CHƯƠNG 3: ỨNG DỤNG THỰC TẾ
3.1 Ứng dụng
DES thường được dùng để mã hoá bảo mật các thông tin trong quá trình truyền tin cũng như lưu trữ thông tin Một ứng dụng quan trọng khác của DES là kiểm tra tính xác thực của mật khẩu truy nhập vào một hệ thống (hệ thống quản lý bán hàng, quản lý thiết bị viễn thông…), hay tạo và kiểm tính hợp lệ của một mã số bí mật (thẻ internet, thẻ điện thoại di động trả trước), hoặc của một thẻ thông minh (thẻ tín dụng, thẻ payphone…)
3.2 So sánh một số thuật toán mã khối thông dụng
2001
Bruce Schneier
1993
1987 bởi Ron Rivest
1996 bị tin tặc public
1998 bởi Ron Rivest, Matt, Robsha
K1 và K2 chung:
G
20
Trang 21Tấn công phục hồi khoá, tấn công kênh
kề
Tấn công vi sai, vét cạn
Tấn công
vi sai, vét cạn
Tấn công vi sai, vét cạn
An toàn An toàn cao An toàn An toàn An toàn
Bảng 1 So sánh một số thuật toán mã khối thông dụng
Trang 22KẾT LUẬN
Mã khối thường được sử dụng trong các sản phẩm, ứng dụng mã hóa dữ liệu truyền trên trên internet, trong các giao thức truyền thông, bảo mật lưu trữ các thông tin mật, sử dụng để xây dựng các thuật toán (mã dòng, hàm băm, mã hóa xác thực, mã xác thực thông báo), tạo bộ sinh số ngẫu nhiên…
Với sự bùng nổ về công nghệ thông tin, việc nghiên cứu để phá vỡ các thuật toán
mã khối đang thu hút được rất nhiều sự chú ý Đã có rất nhiều các thuật toán từng được coi là an toàn đã bị phá vỡ - điển hình là DES, hay giới hạn khóa cũng ngày càng phải tăng lên để có thể an toàn trước khả năng tính toán của các siêu máy tính, độ dài khóa
80 bit đã không còn an toàn
Tuy nhiên, sự xuất hiện của DES đã tạo nên một làn sóng nghiên cứu trong giới khoa học về lĩnh vực mật mã học, đặc biệt là các phương pháp thám mã mã khối
Về điều này, Bruce Schneier đã viế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."
Tuy ngày nay, đã có nhiều tiêu chuẩn mã hóa tiên tiến hơn, được đề xuất thay thế cho DES và 3DES, song vẫn có nhiều lĩnh vực áp dụng DES, 3DES Và DES vẫn luôn luôn là tiêu chuẩn cơ bản, là tiền đề cho sự phát triển của các phương pháp mã hóa tiên tiến hiện nay