bài tập lớn môn Cơ sở An ninh mạng, nghiên cứu mã hóa đối xứng, hệ mật mã RSA, hệ mật mã Playfair, hệ mật mã AES, hộp S và hộp P
Trang 1TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT KHOA CÔNG NGHỆ THÔNG TIN
-*** -CƠ SỞ AN NINH MẠNG TÌM HIỂU VỀ MÃ HÓA KHỐI
Hà Nội – 2023
Giảng viên hướng dẫn:
Sinh viên thực hiện:
Mã lớp học phần:
ThS Đào Anh Thư
54 - Nguyễn Văn Sơn - 2121050858
15 - Nguyễn Vũ Trọng Đài - 2121051029
69 - Lê Anh Trung - 2121050833
50 - Lão Phú Quý - 2121051110
63 - Trần Văn Thoan - 2121050829
7080703 - 21
Trang 2MỤC LỤC
1 KHÁI NIỆM MÃ HÓA KHỐI 3
1.1.Lịch sử phát triển 3
1.2 Khái niệm mã hóa khối 4
1.3 Nguyên lý hoạt động 4
2 ƯU VÀ NHƯỢC ĐIỂM MÃ KHÓA KHỐI 5
2.1 Ưu điểm 5
2.2 Nhược điểm 5
3 ỨNG DỤNG CỦA MÃ HÓA KHỐI 6
3.1 Mã hóa dữ liệu truyền trên internet 6
3.2 Bảo mật lưu trữ các thông tin mật 7
3.3 Mã hóa dữ liệu trên các thiết bị lưu trữ 7
3.4 Mã hóa dữ liệu trên thiết bị di động 8
4 HỆ MẬT MÃ PLAYFAIR 8
4.1.Khái niệm 8
4.2.An toàn của mã Playfair 9
4.3.Cách thức thực hiện 9
5.KHÁI NIỆM HỘP S VÀ HỘP 10
5.1.Khái niệm S-box 10
5.2 Khái niệm P-box 11
6 CHUẨN MÃ AES 12
6.1.Khái niệm 12
6.2.Phương pháp mã hóa AES 12
6.3.Ưu điểm của AES 14
6.4.Ứng dụng của AES 14
KẾT LUẬN 15
TÀI LIỆU THAM KHẢO 15
Trang 3PHÂN CÔNG CÔNG VIỆC
S
5
4 0858212105 Nguyễn Văn Sơn Tìm hiểu nội dung mục 3 , 5
1
5
212105 1029
Nguyễn Vũ Trọng
6
9 0833212105 Lê Anh Trung slide Tìm hiểu nội dung mục 1 , soạn báo cáo, làm 5
6
3
212105
TÌM HIỂU VỀ MÃ HÓA KHỐI
1 KHÁI NIỆM MÃ HÓA KHỐI
1.1 Lịch sử phát triển
Lịch sử mã hóa khối bắt đầu từ những năm 1970, với sự ra đời của thuật toán DES (Data
Encryption Standard) DES là một thuật toán mã hóa đối xứng, sử dụng một khóa duy nhất để mã
hóa và giải mã dữ liệu DES được phát triển bởi IBM và được chính phủ Hoa Kỳ phê duyệt làm
tiêu chuẩn mã hóa dữ liệu vào năm 1977
DES nhanh chóng trở thành thuật toán mã hóa khối phổ biến nhất trên thế giới Nó được sử
dụng trong nhiều ứng dụng khác nhau, bao gồm truyền dữ liệu qua mạng, lưu trữ dữ liệu trên
máy tính và bảo vệ các giao dịch điện tử
Tuy nhiên, DES cũng có một số nhược điểm Độ dài khóa của DES chỉ là 56 bit, khá ngắn
so với các thuật toán mã hóa hiện đại Điều này khiến DES dễ bị tấn công bằng các phương pháp
brute-force
Vào cuối những năm 1990, các nhà nghiên cứu bắt đầu phát triển các thuật toán mã hóa
khối mới, có độ dài khóa lớn hơn và an toàn hơn DES Một trong những thuật toán này là AES
(Advanced Encryption Standard)
AES được chính phủ Hoa Kỳ phê duyệt làm tiêu chuẩn mã hóa dữ liệu mới vào năm 2001
AES sử dụng khóa có độ dài lên đến 256 bit, giúp nó an toàn hơn nhiều so với DES
Các thuật toán mã hóa khối này đều có độ dài khóa lớn hơn DES và sử dụng các kỹ thuật
mã hóa hiện đại, giúp chúng an toàn hơn nhiều so với DES
Dưới đây là tóm tắt lịch sử mã hóa khối:
Trang 4- Những năm 1970: DES được phát triển và trở thành thuật toán mã hóa khối phổ
biến nhất trên thế giới
- Cuối những năm 1990: Các nhà nghiên cứu bắt đầu phát triển các thuật toán mã hóa khối mới, có độ dài khóa lớn hơn và an toàn hơn DES
- Năm 2001: AES được phê duyệt làm tiêu chuẩn mã hóa dữ liệu mới, thay thế DES
Hiện nay, mã hóa khối là một trong những công nghệ bảo mật quan trọng nhất Nó được sử dụng trong nhiều ứng dụng khác nhau, giúp bảo vệ dữ liệu khỏi bị truy cập trái phép
1.2 Khái niệm mã hóa khối
Trong mật mã, mật mã khối là một thuật toán mã hóa đối xứng xử lý các khối thông tin (khối) có
độ dài cụ thể bằng một phép biến đổi cụ thể Ví dụ: mật mã khối có thể xử lý khối đầu vào 128 bit và chuyển đổi nó thành khối đầu ra 128 bit Quá trình chuyển đổi sử dụng một tham số khác, một khóa bí mật để cá nhân hóa quy trình Giải mã hoạt động tương tự Xử lý khối 128 bit được mã hóa cùng với khóa và trả về khối văn bản gốc 128 bit ban đầu
Để mã hóa văn bản vượt quá độ dài khối, thuật toán tương ứng với chế độ mã hóa khối cụ thể sẽ được sử dụng Phân biệt với mã hóa khối là mã hóa dòng Mã hóa dòng làm việc trên từng bít của dòng
dữ liệu và quá trình biến đổi thay đổi theo quá trình mã hóa Tuy nhiên, sự phân biệt giữa 2 phương pháp nhiều khi không rõ ràng vì mã hóa khối khi hoạt động theo một chế độ nào đó thì có tác dụng như một phương pháp mã hóa dòng.…
1.3.Nguyên lý hoạt động
DES (Data Encryption Standard) là một thuật toán mã hóa khối với kích thước khối 64 bit và kích thước khóa 56 bit, được công bố chính thức bởi Tổ chức Tiêu chuẩn xử lý thông tin liên bang Hoa
Trang 5Kỳ (FIPS) vào tháng 11/1976 và được xuất bản trong tài liệu FIPS PUB 46 (01/1977) DES là một thuật toán mã hóa khóa đối xứng, nghĩa là quá trình mã hóa và giải mã sử dụng cùng một khóa
Nguyên lý hoạt động của DES có thể được chia thành các bước sau:
- Key mật mã: DES sử dụng phương pháp mật mã khối, điều này có nghĩa là mỗi khối dữ liệu sẽ được áp dụng bởi một key mật mã và thuật toán DES sẽ nhóm plain text (văn bản thuần túy) thành các khối 64 bit Bằng cách kết hợp và hoán vị các khối của plain text sẽ được chuyển đổi thành Ciphertext (văn bản đã mã hóa)
- Vòng mã hóa: Dữ liệu sẽ được DES mã hóa 16 lần với bốn chế độ khác nhau Từng khối riêng
lẻ sẽ được mã hóa hoặc bắt buộc các khối mật mã phải phụ thuộc vào những khối trước đó Riêng về giải mã thì đơn giản chỉ là nghịch đảo của mã hóa, tức là quy trình thực hiện tương tự nhưng đảo ngược thứ tự các key
- Phím 64 bit: Thực tế cho thấy mặc dù DES sử dụng key 64 bit nhưng có 8 bit trong số đó đã được dùng để kiểm tra chẵn lẻ Vì lẽ đó là key hiệu dụng chỉ có 56 bit
- Thay thế và hoán vị: Đây là hai quy trình mà Ciphertext phải trải qua trong quá trình mã hóa
- Khả năng tương thích ngược (tương thích với phiên bản cũ): Trong một số trường hợp DES cũng cung cấp khả năng này
2 ƯU ĐIỂM VÀ NHƯỢC ĐIỂM CỦA MÃ HÓA KHỐI
2.1 Ưu điểm
Tốc độ mã hóa nhanh: Mã hóa khối có thể được thực hiện hiệu quả bằng phần cứng chuyên dụng,
giúp tăng tốc độ mã hóa và giải mã dữ liệu
Linh hoạt: Mã hóa khối có thể được sử dụng để mã hóa dữ liệu có kích thước khác nhau.
An toàn: Mã hóa khối thường cung cấp mức độ an toàn cao nếu được triển khai đúng cách Các
thuật toán mã hóa khối nổi tiếng như AES (Advanced Encryption Standard) được sử dụng rộng rãi và
đã chứng minh độ an toàn của chúng
Hiệu suất: Thông thường, mã hóa khối có hiệu suất tốt, đặc biệt là đối với các dữ liệu lớn Các thuật
toán được tối ưu hóa để thực hiện nhanh chóng trên phần cứng và phần mềm hiện đại
Khả năng mở rộng: Có thể thực hiện mã hóa khối trên các khối dữ liệu độc lập, điều này giúp tăng
khả năng mở rộng và hiệu suất cho các ứng dụng yêu cầu xử lý dữ liệu lớn
Khả năng tích hợp: Các thuật toán mã hóa khối thường được tích hợp dễ dàng vào nhiều hệ thống
và ứng dụng, làm cho chúng trở thành lựa chọn phổ biến trong việc bảo vệ dữ liệu
2.2 Nhược điểm
Kích thước khóa lớn: Mã hóa khối thường sử dụng các khóa có kích thước lớn, từ 128 bit đến 256
bit Điều này có thể khiến việc lưu trữ và quản lý khóa trở nên khó khăn
Trang 6Khả năng bị tấn công bằng các phương pháp mới: Mã hóa khối dựa trên các thuật toán đã được
nghiên cứu kỹ lưỡng Do đó, các phương pháp tấn công mới có thể được phát triển để phá vỡ mã hóa
Không linh hoạt: Mã hóa khối hoạt động trên các khối dữ liệu cố định, điều này có thể làm giảm
tính linh hoạt của thuật toán trong một số tình huống
Khối cố định: Vì mã hóa khối mã hóa và giải mã theo các khối cố định, nên nếu dữ liệu đầu vào
không chia hết chính xác cho kích thước khối, cần thực hiện bước xử lý bổ sung như padding, điều này
có thể tăng độ phức tạp của hệ thống
Không duy trì trạng thái: Mã hóa khối không duy trì trạng thái giữa các khối dữ liệu Điều này có
nghĩa là mỗi khối dữ liệu được xử lý độc lập, không phụ thuộc vào các khối trước đó
Khả năng tấn công một số phiên bản cũ: Một số phiên bản của các thuật toán mã hóa khối đã bị
phá vỡ bởi các kỹ thuật tấn công nâng cao, đặc biệt là đối với các phiên bản cũ hoặc chưa được cập nhật
3.ỨNG DỤNG CỦA MÃ HÓA KHỐI
3.1 Mã hóa dữ liệu truyền trên Internet
Mã hoá dữ liệu truyền trên internet là quá trình chuyển đổi thông tin từ dạng thông thường thành dạng không đọc được (hoặc khó đọc được) bằng cách sử dụng thuật toán mã hoá Mục tiêu của quá trình này là bảo vệ tính toàn vẹn, bảo mật và riêng tư của dữ liệu khi nó được truyền tải qua các mạng truyền thông, như mạng Internet HTTPS (Hypertext Transfer Protocol Secure): Là phiên bản an toàn của HTTP, sử dụng SSL hoặc TLS để mã hoá dữ liệu truyền tải giữa trình duyệt và máy chủ web
Mã hoá dữ liệu truyền trên internet là một phần quan trọng của an ninh mạng, đặc biệt là khi thông tin nhạy cảm như thông tin tài khoản ngân hàng, mật khẩu, và thông tin cá nhân được truyền tải qua các kênh truyền thông không an toàn như internet
Trang 73.2 Bảo mật lưu trữ các thông tin mật
Bảo mật thông tin là hoạt động duy trì tính bảo mật, tính vẹn toàn & tính sẵn sàng cho tất
cả thông tin Ba yếu tố này luôn đi cùng nhau và không thể tách rời
- Tính bảo mật: bảo đảm mọi thông tin quan trọng không bị rò rỉ hay đánh cắp Thông tin chỉ được phép truy cập bởi những người đã được cấp phép
- Tính toàn vẹn: đảm bảo thông tin không bị thay đổi hoặc chỉ được phép chỉnh sửa bởi người có thẩm quyền Ngoài những điều ấy ra, tính toàn vẹn còn đảm bảo thông tin vẫn còn chính xác khi được lưu trữ hay truyền đi
- Tính sẵn sàng: bảo đảm thông tin có thể sẽ được truy cập bởi những người có quyền bất cứ khi nào họ muốn
3.3 Mã hóa dữ liệu trên các thiết bị lưu trữ
Mã hóa khối được sử dụng để bảo vệ dữ liệu trên các thiết bị lưu trữ, chẳng hạn như ổ cứng, ổ đĩa flash, và thẻ nhớ Các thiết bị này thường có tính năng mã hóa khối tích hợp, hoặc có thể được mã hóa bằng phần mềm của bên thứ ba Mã hóa khối là một công nghệ quan trọng trong bảo mật thông tin Nó được sử dụng rộng rãi trong nhiều ứng dụng khác nhau để bảo vệ dữ liệu khỏi bị truy cập trái phép
Trang 83.4 Mã hóa dữ liệu trên thiết bị di động
Mã hoá dữ liệu trên thiết bị di động đóng vai trò quan trọng trong việc bảo vệ thông tin, đặc biệt
là khi người dùng lưu trữ và truyền tải nhiều dữ liệu quan trọng qua điện thoại di động Sử dụng mã hóa dữ liệu lưu trữ trên thiết bị là một biện pháp chính, với tính năng mã hóa mặc định trên hệ điều hành di động như iOS và Android
Đối với Android, cần đảm bảo tính năng mã hóa được kích hoạt trong cài đặt để bảo vệ dữ liệu ngay cả khi thiết bị bị mất Mã hóa dữ liệu truyền tải thông qua kết nối an toàn như HTTPS là quan trọng, đặc biệt khi ứng dụng giao tiếp với máy chủ để lấy hoặc gửi dữ liệu Sử dụng các công cụ bảo mật di động như ứng dụng quản lý mật khẩu, ứng dụng chống malware, và ứng dụng theo dõi thiết bị khi bị mất Luôn duy trì hệ điều hành và ứng dụng được cập nhật để bảo vệ chống lại các lỗ hổng bảo mật tiềm ẩn Thực hiện và thúc đẩy chính sách an toàn trong tổ chức hoặc cá nhân để đảm bảo người dùng hiểu và tuân thủ các biện pháp bảo mật cần thiết trên thiết bị di động
4 HỆ MẬT MÃ PLAYFAIR
4.1.Khái niệm
Là một phương pháp mã hóa được sử dụng để bảo vệ thông điệp truyền tải qua các kênh không
an toàn
-Thành phần cơ bản:
+ Ma trận Playfair: Một ma trận vuông 5x5 được tạo ra từ một từ khóa, nơi mỗi chữ cái không được lặp lại và thường loại bỏ chữ 'J' (thường được thay thế bằng 'I') Ma trận này đóng vai trò quan trọng trong quá trình mã hóa và giải mã
+ Quy tắc mã hóa:Thông điệp được chia thành các cặp chữ cái (digraphs)
Nếu cặp nằm trên cùng một hàng, thì chúng sẽ được thay thế bằng các chữ cái ngay bên phải của chúng (quay vòng nếu nằm ở cột cuối cùng) Nếu cặp nằm trên cùng một cột, thì chúng sẽ được thay thế bằng các chữ cái ngay dưới của chúng (quay vòng nếu nằm ở hàng cuối cùng) Nếu cặp nằm trên
Trang 9cùng một hàng và cột, thì chúng sẽ được thay thế bằng các chữ cái ngay bên phải và ngay dưới (lấy chữ cái phía dưới)
+ Quy tắc giải mã: Ngược lại với quy tắc mã hóa, nếu cặp nằm trên cùng một hàng, thì chúng sẽ được thay thế bằng các chữ cái ngay bên trái của chúng Nếu cặp nằm trên cùng một cột, thì chúng sẽ được thay thế bằng các chữ cái ngay phía trên của chúng Nếu cặp nằm trên cùng một hàng và cột, thì chúng sẽ được thay thế bằng các chữ cái ngay bên trái và phía trên
4.2.An toàn của mã Playfair
- An toàn được nâng cao hơn so với bảng đơn, vì có tổng cộng 26 x 26 = 676 cặp Mỗi chữ có thể được
mã bằng 7 khác nhau, nên tần suất các chữ trên bảng mã khác tần suất của các chữ cái trên văn bản tiếng Anh nói chung
- Muốn sử dụng thống kê tần suất, cần phải có bảng tần suất của 676 cặp để thám mã ( so với 26 của
mã bảng đơn) Như vậy phải xem xét nhiều trường hợp hơn và tương ứng sẽ có thể có nhiều bản mã hơn cần lựa chọn Do đó khó thám mã hơn mã trên bảng chữ đơn
- Mã Playfair được sử dụng rộng rãi nhiều năm trong giới quân sự Mỹ và Anh trong chiến thanh thế giới thứ 1 Nó có thể bị bẻ khóa nếu cho trước vài trăm chữ, vì bản mã vẫn còn chứa nhiều cấu trúc của bản rõ
4.3.Cách thức thực hiện
Để sử dụng hệ mật mã Playfair tổng quát, bạn có thể thực hiện các bước sau:
Bước 1: Tạo Bảng Playfair
Tạo một bảng Playfair với một khối văn bản chứa tất cả các chữ cái không trùng lặp.Bảng này
có thể được tạo từ một từ khóa hoặc câu thông qua các bước sau:
1 Bỏ đi các chữ trùng lặp trong từ khóa hoặc câu
2 Thêm các chữ còn thiếu của bảng chữ cái (J thường được loại bỏ và thay thế bằng I)
Bước 2: Chuẩn bị thông điệp
Chia thông điệp cần mã hóa thành các cặp chữ cái Nếu một cặp có chữ cái giống nhau, thêm một chữ cái phụ (thường là 'X') để tạo thành cặp khác nhau
Bước 3: Mã hóa
Đối với mỗi cặp chữ cái: Nếu chúng nằm trong cùng một hàng của bảng, thay thế mỗi chữ cái bằng chữ cái bên phải của nó (vòng quay nếu nó ở cột cuối) Nếu chúng nằm trong cùng một cột, thay thế mỗi chữ cái bằng chữ cái dưới nó (vòng quay nếu nó ở hàng cuối) Nếu chúng nằm trong các hàng
và cột khác nhau, thay thế chúng bằng hình chữ nhật có các đỉnh là chữ cái tạo thành cặp
Bước 4: Giải mã
Đối với mỗi cặp chữ cái: Nếu chúng nằm trong cùng một hàng của bảng, thay thế mỗi chữ cái bằng chữ cái bên trái của nó (vòng quay nếu nó ở cột đầu) Nếu chúng nằm trong cùng một cột, thay
Trang 10thế mỗi chữ cái bằng chữ cái trên nó (vòng quay nếu nó ở hàng đầu) Nếu chúng nằm trong các hàng và cột khác nhau, thay thế chúng bằng hình chữ nhật có các đỉnh là chữ cái tạo thành cặp
Lưu ý: Có thể cần thêm hoặc loại bỏ một số chữ cái trong thông điệp để đảm bảo rằng mỗi cặp
có thể được mã hóa Đối với giải mã, cũng có thể cần xử lý các chữ cái phụ ('X') được thêm vào
Ví dụ:
Bảng Playfair:
K E Y W O
R D A B C
F G H I L
M N P Q S
T U V X Z Thông điệp cần mã hóa: “ENDAKZS”
1 Chia thành các cặp chữ cái: EN, DA, KZ, SX
2 Mã hóa: DE, BC, WO, MN
Do đó, “ENDAKZS” sau khi được mã hóa sẽ trở thành “DEBCWOMN”
5 KHÁI NIỆM HỘP S VÀ HỘP P
5.1.Khái niệm S-box
Trang 11S-box, hay Substitute Box, là một thành phần quan trọng trong nhiều thuật toán mã hóa, đặc biệt
là trong mô hình mã hóa đối xứng như DES (Data Encryption Standard) và AES (Advanced Encryption Standard).S-box là một bảng thay thế (substitution table) được sử dụng để thay đổi giá trị của các phần
tử đầu vào thành giá trị đầu ra tương ứng Trong ngữ cảnh của mã hóa, S-box được sử dụng để tạo sự phức tạp và phi tuyến tính trong quá trình mã hóa, làm tăng độ khó khăn của việc giải mã và làm cho thuật toán trở nên an toàn hơn Cụ thể, S-box thường được xây dựng dựa trên các hàm phi tuyến như hàm xấp xỉ (non-linear function) Mỗi giá trị đầu vào được ánh xạ một cách không tuyến tính đến một giá trị đầu ra Điều này giúp tăng cường tính phức tạp của quá trình mã hóa và làm cho mối quan hệ giữa đầu vào và đầu ra trở nên khó dự đoán S-box đóng vai trò quan trọng trong việc tăng cường tính
an toàn của các thuật toán mã hóa và đặc biệt là trong việc chống lại các kỹ thuật tấn công phổ biến như tấn công phân tích dựa trên đặc điểm (differential cryptanalysis) và tấn công tìm kiếm mật khẩu (brute-force attacks)
5.2.Khái niệm P-box
P-box, hay Permutation Box, là một thành phần quan trọng trong các thuật toán mã hóa, đặc biệt
là trong mô hình mã hóa đối xứng như DES (Data Encryption Standard) và các biến thể của nó.P-box được sử dụng để thực hiện hoán đổi vị trí (permutation) của các bit trong một khối dữ liệu Điều này thường được thực hiện sau một số vòng lặp của các phép thay thế (substitution) và các phép hoán đổi khác để tạo ra một cấu trúc phức tạp và phi tuyến tính trong quá trình mã hóa P-box giúp đảm bảo tính phi tuyến tính của hệ thống, làm tăng độ khó khăn của việc phân tích và giải mã Các bit được hoán đổi