Mã hóa Dữ Liệu trên Ổ Cứng: AES được sử dụng để mã hóa dữ liệu lưu trữ trên ổ cứng và các thiết bị lưu trữ khác nhằm bảo vệ thông tin cá nhân và doanh nghiệp khỏi bị truy cập trái phép..
Trang 1ỦY BAN NHÂN DÂN THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG CAO ĐẲNG LÝ TỰ TRỌNG THÀNH PHỐ HỒ CHÍ MINH
KHOA CÔNG NGHỆ THÔNG TIN
TIỂU LUẬN KẾT THÚC HỌC PHẦN
BẢO MẬT DỮ LIỆU
CHỦ ĐỀ:
Thuật Toán Mật Mã AES
Giảng viên hướng dẫn: LÊ ĐỨC ANH Sinh viên: Đinh Vỹ Quang(23004198)
Nguyễn Tuấn Hào(23004178)
Tạ Đình Ngọc Phong Duy Trung(23004203)
Lớp: 23C2-TKW1
Tp.Hồ Chí Minh, tháng 09/2024
Trang 2DANH SÁCH NHÓM
PHÂN CÔNG
MỨC ĐỘ HOÀN THÀNH ( SV đánh giá )
MỨC ĐỘ HOÀN THÀNH (GV Đánh giá)
Trang 3MỤC LỤC
CHƯƠNG 1: TỔNG QUAN VỀ THUẬT TOÁN AES 3
1 LỊCH SỬ HÌNH THÀNH VÀ PHÁT TRIỂN THUẬT TOÁN AES 3
2 PHẠM VI ỨNG DỤNG THUẬT TOÁN AES 4
2.1 Bảo Mật Dữ Liệu 4
2.2 Bảo Mật Truyền Thông 4
2.3 Xác Thực và Bảo Mật Giao Dịch 4
2.4 Bảo Mật Mạng 4
2.5 Bảo Mật Hệ Thống và Ứng Dụng 4
2.6 Bảo Mật Thư Điện Tử 5
2.7 Quản Lý Khóa và Bảo Mật Xác Thực 5
2.8 Hệ Thống Nhúng và IoT 5
CHƯƠNG 2: MÃ HÓA – GIẢI MÃ 1
1 CÁCH THỨC MÃ HÓA THUẬT TOÁN AES 1
2 QUÁ TRÌNH GIẢI MÃ TRONG AES-128-ECB: 5
3 CÁC LOẠI MÃ HOÁ VÀ GIẢI MÃ TRONG AES 6
CHƯƠNG 3: TRIỂN KHAI THUẬT TOÁN 8
1 CODE ( Visual code ) 8
2 DEMO GIAO DIỆN: 14
CHƯƠNG 4: TÀI LIỆU THAM KHẢO 17
Trang 4CHƯƠNG 1: TỔNG QUAN VỀ THUẬT TOÁN AES.
1 LỊCH SỬ HÌNH THÀNH VÀ PHÁT TRIỂN THUẬT TOÁN AES
Quá trình phát triển AES:
Năm 1997: Chính phủ Hoa Kỳ quyết định thay thế DES bằng một thuật toán mạnh mẽ hơn Do
đó, họ tổ chức một cuộc thi quốc tế để tìm kiếm một phương pháp mã hóa thay thế, được gọi là AES (Advanced Encryption Standard)
Cuộc thi chọn lựa thuật toán: Cuộc thi này được quản lý bởi NIST (National Institute of
Standards and Technology), với mục tiêu tìm ra một thuật toán mã hóa đối xứng có thể bảo mật
dữ liệu một cách mạnh mẽ hơn DES Các ứng viên phải đáp ứng các tiêu chí như độ an toàn, hiệu suất cao, khả năng triển khai dễ dàng và khả năng sử dụng rộng rãi
Năm 2001: Sau quá trình đánh giá kỹ lưỡng, thuật toán Rijndael của hai nhà nghiên cứu người
Bỉ là Joan Daemen và Vincent Rijmen đã được chọn làm chuẩn mới, chính thức trở thành AES.Đây là một thuật toán mã hóa khối (block cipher) có độ dài khóa 128 bit, 192 bit và 256 bit.Tính năng và ưu điểm của AES:
Khóa dài: AES hỗ trợ ba kích thước khóa khác nhau: 128, 192 và 256 bit giúp tăng cường độ bảo mật
Hiệu quả cao: AES hoạt động rất hiệu quả trên các phần cứng và phần mềm hiện đại, làm cho
nó trở thành lựa chọn phổ biến trong các ứng dụng bảo mật
Độ an toàn cao: Với các thuật toán và vòng lặp phức tạp, AES được coi là rất an toàn và khó bị phá vỡ bằng phương pháp tấn công brute force
Trang 52 PHẠM VI ỨNG DỤNG THUẬT TOÁN AES.
2.1 Bảo Mật Dữ Liệu.
Mã hóa Dữ Liệu trên Ổ Cứng: AES được sử dụng để mã hóa dữ liệu lưu trữ trên ổ cứng và các thiết bị lưu trữ khác nhằm bảo vệ thông tin cá nhân và doanh nghiệp khỏi bị truy cập trái phép
Mã hóa Dữ Liệu trên Di Động: Các thiết bị di động như smartphone và tablet sử dụng AES
để bảo vệ dữ liệu cá nhân, ứng dụng và thông tin nhạy cảm
2.2 Bảo Mật Truyền Thông.
Giao Thức SSL/TLS: AES là một trong các thuật toán mã hóa chính được sử dụng trong giao thức SSL/TLS để bảo vệ thông tin truyền qua internet, bao gồm các phiên giao dịch trực tuyến và giao tiếp qua web
VPN (Virtual Private Network): AES được sử dụng trong các giao thức VPN để mã hóa dữ liệu truyền giữa người dùng và mạng, đảm bảo tính riêng tư và bảo mật của kết nối mạng
2.3 Xác Thực và Bảo Mật Giao Dịch.
Giao Dịch Tài Chính: AES được áp dụng trong các hệ thống thanh toán điện tử và giao dịch tài chính để bảo vệ thông tin nhạy cảm như số tài khoản ngân hàng, số thẻ tín dụng, vàcác chi tiết giao dịch
Hệ Thống Ngân Hàng: Các ngân hàng và tổ chức tài chính sử dụng AES để bảo vệ dữ liệu giao dịch, thông tin khách hàng, và các hoạt động tài chính khác
2.4 Bảo Mật Mạng.
Mã hóa Dữ Liệu Mạng: AES được sử dụng để mã hóa lưu lượng mạng nhằm bảo vệ thông tin trong quá trình truyền từ một điểm đến điểm khác trong các mạng nội bộ và mạng diện rộng (WAN)
Bảo Mật Các Giao Thức Mạng: AES được áp dụng trong các giao thức bảo mật mạng như
IPsec để bảo vệ lưu lượng mạng IP khỏi bị đánh cắp hoặc sửa đổi
2.5 Bảo Mật Hệ Thống và Ứng Dụng.
Bảo Vệ Hệ Thống và Phần Mềm: Các hệ thống bảo mật phần mềm và phần cứng sử dụng
AES để mã hóa dữ liệu nhạy cảm và bảo vệ các thông tin quan trọng trong các hệ thống công nghệ thông tin
Bảo Mật Ứng Dụng: Các ứng dụng phần mềm và dịch vụ trực tuyến thường sử dụng AES
để bảo mật dữ liệu người dùng và thông tin nhạy cảm được lưu trữ và truyền tải
2.6 Bảo Mật Thư Điện Tử.
Mã hóa Email: AES được sử dụng để mã hóa nội dung email và các tệp đính kèm, đảm bảo
rằng thông tin gửi qua email chỉ có thể được đọc bởi người nhận hợp lệ
Trang 6Chữ Ký Số và Xác Thực: AES cũng được áp dụng trong các hệ thống chữ ký số để đảm bảo tính toàn vẹn và xác thực của các thông điệp và tài liệu điện tử.
2.7 Quản Lý Khóa và Bảo Mật Xác Thực.
Quản Lý Khóa: AES là một phần quan trọng trong các hệ thống quản lý khóa, nơi nó được
sử dụng để bảo vệ khóa mã hóa và đảm bảo rằng chỉ những người có quyền mới có thể truycập và sử dụng các khóa này
Xác Thực và Quyền Truy Cập: AES được sử dụng trong các hệ thống xác thực và quyền truy cập để bảo vệ thông tin xác thực và quản lý quyền truy cập của người dùng vào hệ thống và dữ liệu
2.8 Hệ Thống Nhúng và IoT.
Bảo Mật Thiết Bị IoT: AES được áp dụng trong các thiết bị Internet of Things (IoT) để bảo
về dữ liệu truyền giữa các thiết bị và đảm bảo an toàn cho các giao tiếp IoT
Hệ Thống Nhúng: AES được sử dụng trong các hệ thống nhúng để bảo mật dữ liệu và giao tiếp trong các thiết bị có hạn chế về tài nguyên
Trang 7CHƯƠNG 2: MÃ HÓA – GIẢI MÃ.
1 CÁCH THỨC MÃ HÓA THUẬT TOÁN AES
Trang 8Hình 1: Cấu trúc MÃ HÓA – GIẢI MÃ AES.
Mã hóa trong AES-128-ECB:
ECB là một chế độ mã hóa đơn giản nhất của AES Trong chế độ này, mỗi khối dữ liệu đầu vào được mã hóa độc lập với các khối dữ liệu khác
Nếu có hai khối dữ liệu giống hệt nhau, chúng sẽ được mã hóa giống hệt nhau.
Quá trình mã hóa:
Trong AES-128-ECB, dữ liệu cần mã hóa sẽ được chia thành các khối 128-bit (16 byte), mỗi khối dữ liệu sẽ được mã hóa độc lập với nhau bằng khóa 128-bit
Bước 1: Chuẩn bị dữ liệu gốc (plaintext)
Dữ liệu cần mã hóa, gọi là plaintext, sẽ được chia thành các khối 128-bit
Ví dụ: Nếu dữ liệu cần mã hóa có kích thước không phải là bội số của 128-bit (16 byte),
ta sẽ phải thêm padding vào cuối để làm cho dữ liệu có kích thước phù hợp
Bước 2: Mã hóa từng khối dữ liệu
Mỗi khối dữ liệu (bit) sẽ được mã hóa riêng biệt bằng thuật toán AES với khóa bit cố định trong suốt quá trình
128-Khóa AES 128-bit:
AES yêu cầu một khóa cố định 128-bit (16 byte) Đây là chìa khóa duy nhất dùng cho tất
cả các khối trong quá trình mã hóa
Quá trình mã hóa trong AES:
AES là một thuật toán mã hóa khối, và nó bao gồm một số vòng (rounds) Đối với
AES-128, sẽ có 10 vòng mã hóa
Các bước trong một vòng mã hóa của AES: Mỗi vòng mã hóa sẽ bao gồm 4 bước chính:
Trang 10Các hàng trong khối dữ liệu được dịch chuyển (shift) một số byte nhất định Cụ thể, hàng đầu tiên không thay đổi, hàng thứ hai dịch 1 byte sang trái, hàng thứ ba dịch 2 byte, hàng thứ tư dịch 3 byte
Hàng đầu không thay đổi
Hàng hai, dịch vòng trái 1-byte
Hàng ba, dịch vòng trái 2 byte
Hàng tư, dịch vòng trái 3-byte
MixColumns:
Đây là bước quan trọng trong việc tăng cường tính phức tạp của AES Bước này trộn các cột trong khối dữ liệu, giúp làm cho sự phụ thuộc giữa các byte trở nên phức tạp hơn Tuynhiên, trong vòng cuối cùng bước MixColumns không được thực hiện
Trang 11[{03}.{87}] ⊕ [{6E}] ⊕ [{46}] ⊕ [{02}.{A6}] = [{ED}]
AddRoundKey:
Ở mỗi vòng, dữ liệu sẽ được XOR với một phần của khóa (khóa vòng) Khóa vòng này được tạo ra từ khóa AES ban đầu thông qua các phép toán biến đổi
Công thức có thể được biểu diễn như sau:
State′ = State ⊕ RoundKey
Trong đó:
⊕ là một phép toán logic cơ bản được sử dụng trong nhiều thuật toán mã hóa
State là dữ liệu đầu vào (đã qua các bước trước đó)
State′ là dữ liệu sau bước AddRoundKey
Lặp lại quy trình cho 10 vòng:
Đối với AES-128, sau khi thực hiện các bước trên trong vòng đầu tiên, kết quả sẽ được đưa vào vòng tiếp theo Quá trình này tiếp tục cho đến khi hoàn thành 10 vòng
Bước 3: Kết quả mã hóa
Sau khi thực hiện 10 vòng mã hóa, bạn sẽ có được ciphertext (dữ liệu đã mã hóa), mà không thể khôi phục thành plaintext mà không có khóa chính
Bước 4: Lặp lại cho các khối dữ liệu khác
Nếu dữ liệu cần mã hóa lớn hơn một khối 128-bit, ta sẽ tiếp tục chia dữ liệu thành các khối 128-bit và mã hóa chúng theo cách tương tự
2 QUÁ TRÌNH GIẢI MÃ TRONG AES-128-ECB.
Giải mã trong AES-128-ECB ngược lại hoàn toàn so với mã hóa Các khối dữ liệu mã hóa(ciphertext) được giải mã sử dụng cùng một khóa AES 128-bit
Bước 1: Chia ciphertext thành các khối 128-bit
Dữ liệu mã hóa (ciphertext) sẽ được chia thành các khối 128-bit Nếu có padding trong dữliệu mã hóa, phần padding sẽ được loại bỏ sau khi giải mã
Bước 2: Giải mã từng khối dữ liệu
Khóa AES 128-bit:
Trang 12Giống như trong mã hóa, ta sẽ sử dụng cùng một khóa 128-bit để giải mã các khối dữ liệu.
Quá trình giải mã trong AES: AES-128 sử dụng 10 vòng giải mã, với các bước ngược lại
Lặp lại quy trình cho 10 vòng giải mã:
Quá trình này tiếp tục cho đến khi hoàn tất 10 vòng giải mã Sau vòng giải mã cuối cùng, bạn sẽ thu được plaintext (dữ liệu gốc ban đầu)
Bước 3: Loại bỏ padding (nếu có)
Nếu dữ liệu gốc có padding, bước cuối cùng là loại bỏ phần padding để khôi phục lại dữ liệu ban đầu
3 CÁC LOẠI MÃ HOÁ VÀ GIẢI MÃ TRONG AES
Chế độ CBC trong mã hoá AES (Cipher Block Chaining) là một phương pháp mã hóa dữ
liệu, trong đó mỗi khối dữ liệu sẽ được mã hóa dựa vào kết quả của khối dữ liệu trước đó
Trang 13Chế độ CFB trong mã hoá AES (Cipher Feedback) là một phương pháp mã hóa trong đó
dữ liệu được mã hóa theo kiểu "dòng" thay vì "khối" Điều này có nghĩa là thay vì mã hóamột khối dữ liệu 128 bit (hoặc 16 byte) cùng một lúc như trong CBC, hiểu đơn giản là mãhoá CFB sẽ mã hóa dữ liệu từng bit hoặc từng byte một
Chế độ OFB trong mã hoá AES (Output Feedback) là một phương pháp mã hóa trong đó
dữ liệu được mã hóa bằng cách sử dụng một chuỗi mã hóa (keystream) được tạo ra từ thuật toán mã hóa (như AES) Điều đặc biệt là chuỗi mã hóa này không phải là kết quả của dữ liệu cần mã hóa, mà là kết quả của các lần mã hóa lặp lại, và chuỗi này sẽ được XOR với dữ liệu gốc để tạo ra dữ liệu mã hóa
Trang 14CHƯƠNG 3: TRIỂN KHAI THUẬT TOÁN
1 CODE ( Visual code )
Hình 4: Kết nối với cơ sở dữ liệu
Trang 15Hình 5: Xử lý chức năng đăng ký và đăng nhập
Trang 17Hình 6: Tương tác với dữ liệu người dùng.
Trang 18Hình 7: Trang đăng nhập.
Trang 19Hình 8: Trang đăng ký
Trang 20Hình 9: Cơ sở dữ liệu.
2 DEMO GIAO DIỆN:
Hình 10: Giao diện đăng ký
Trang 21Hình 11: Sau khi đăng ký thành công.
Hình 12: Giao diện đăng nhập
Trang 22Hình 13: Sau khi đăng nhập thành công.
Hình 14: Dữ liệu đã được mã hoá trong cơ sở dữ liệu
Trang 23CHƯƠNG 4: TÀI LIỆU THAM KHẢO
Youtube:
https://www.youtube.com/watch?v=LiFcxxRRLSk
Google:
nang-cao-924lJYe8ZPM
https://viblo.asia/p/cau-truc-va-thuat-toan-advanced-encryption-standard-chuan-ma-hoa-Chatgpt: