Mã hóa AES là gì? Cách hoạt động và mức độ bảo mật
Quay lại Trang chủ Blog
Trên trang này
AES hiện diện trong nhiều công nghệ bảo mật quen thuộc, từ Wi-Fi, HTTPS và VPN cho tới mã hóa ổ đĩa và lưu trữ đám mây. Vậy mã hóa AES là gì và vì sao chuẩn này được tin dùng đến vậy? VNPT Cloud sẽ làm rõ định nghĩa, phân loại, cách hoạt động, ưu điểm, ứng dụng thực tế của AES, để quản trị viên hệ thống và doanh nghiệp chọn đúng mức mã hóa cho dữ liệu của mình.
Mã hóa AES là gì?
Mã hóa AES (Advanced Encryption Standard) là thuật toán mã hóa nhanh, hiệu quả và an toàn, được Viện Tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ (NIST) chứng nhận. Đây là mật mã khóa đối xứng, dùng chung một khóa cho cả việc mã hóa lẫn giải mã dữ liệu, nên xử lý tương đối nhanh và rất phù hợp để mã hóa khối lượng lớn dữ liệu ở trạng thái lưu trữ.
Nhờ độ mạnh và tính tin cậy, AES trở thành một trong những dạng mã hóa phổ biến nhất trong bảo mật mạng không dây, mã hóa dữ liệu và ổ đĩa, hệ thống thanh toán trực tuyến, lưu trữ đám mây, quản lý mật khẩu cùng các ứng dụng chính phủ và quân sự. Chính phủ Hoa Kỳ sử dụng AES để bảo vệ thông tin mật, và điều này góp phần khiến chuẩn mã hóa AES trở nên phổ biến.
AES là thuật toán mã hóa khối đối xứng được NIST chuẩn hóa trong FIPS 197
Các loại mã hóa AES
AES được phân loại theo hai tiêu chí: độ dài khóa gồm ba mức 128, 192 và 256 bit, và chế độ hoạt động quy định cách áp dụng thuật toán lên dữ liệu dài hơn một khối.
Phân loại theo độ dài khóa
AES cung cấp ba độ dài khóa, mỗi mức tương ứng với một mức bảo mật và tình huống sử dụng khác nhau trên cùng kích thước khối 128 bit.
AES-128: Dùng khóa 128 bit, nổi bật ở sự cân bằng giữa tốc độ và bảo mật. Phù hợp cho nhu cầu bảo vệ dữ liệu phổ thông như chia sẻ tệp an toàn và các ứng dụng đòi hỏi tốc độ cao.
AES-192: Dùng khóa 192 bit, mức bảo mật cao hơn AES-128. Tuy chậm hơn đôi chút, AES-192 thường được dùng trong các ngành cần mã hóa mạnh hơn nhưng không muốn gánh chi phí tính toán của AES-256, chẳng hạn truyền thông trong khu vực chính phủ hoặc lĩnh vực chịu quản lý chặt.
AES-256: Phiên bản an toàn nhất, dùng khóa 256 bit và gần như miễn nhiễm với tấn công vét cạn bằng công nghệ hiện tại. Đây là lựa chọn cho các ứng dụng đòi hỏi bảo mật tối đa như giao dịch tài chính, lưu trữ đám mây và sao lưu dữ liệu.
Các loại mã hóa AES phân loại theo độ dài khóa
Phân loại theo chế độ hoạt động
Do thuật toán gốc chỉ xử lý từng khối riêng lẻ, NIST chuẩn hóa các chế độ hoạt động trong bộ tài liệu SP 800-38 để quy định cách áp dụng AES lên thông điệp dài hơn một khối.
Nhóm chế độ bảo mật (SP 800-38A): Gồm ECB (Electronic Codebook), CBC (Cipher Block Chaining), CFB (Cipher Feedback), OFB (Output Feedback) và CTR (Counter). Trừ ECB và CTR, mỗi chế độ còn lại đều cần một vector khởi tạo (IV) có độ dài bằng kích thước khối; ECB không dùng IV, còn CTR dùng chuỗi các khối đếm không lặp lại.
Chế độ mã hóa có xác thực (SP 800-38D): GCM (Galois/Counter Mode) và biến thể GMAC dùng để tạo mã xác thực thông điệp.
Chế độ cho thiết bị lưu trữ (SP 800-38E): XTS-AES, dành riêng cho việc bảo mật dữ liệu trên thiết bị lưu trữ.
Cơ chế hoạt động của thuật toán mã hóa khối AES trong chế độ ECB (Electronic Codebook)
Tại sao AES-256 lại được ưa chuộng hơn AES-192 hoặc AES-128?
AES-256 được ưa chuộng hơn không phải vì AES-192 và AES-128 kém an toàn mà vì khóa dài hơn tạo ra một khoảng dự phòng an toàn cho tương lai.
Xét riêng khả năng bị bẻ khóa, AES-128 đã là bất khả xâm phạm. Với công nghệ hiện tại và trong tương lai gần, việc dò hết mọi tổ hợp khóa của AES-128 mất nhiều thời gian hơn cả tuổi của vũ trụ. Nhà mật mã học nổi tiếng Bruce Schneier thậm chí từng lập luận rằng AES-128 có thể còn mạnh hơn AES-256 nhờ có lịch trình khóa (thuật toán tính ra toàn bộ khóa vòng từ khóa bí mật ban đầu) tốt hơn.
Dù vậy, AES-256 vẫn trở thành tiêu chuẩn vàng trên thực tế cho mã hóa khóa đối xứng. Lý do là kích thước khóa lớn hơn báo hiệu một biên độ an toàn dôi ra, giúp dữ liệu đã mã hóa vẫn an toàn kể cả khi có ai đó tìm ra cách làm suy yếu đáng kể thuật toán. Dù cách nhìn nhận này vẫn còn gây tranh luận nhưng lập luận ủng hộ AES-256 ngày càng thuyết phục hơn khi nhu cầu kháng lượng tử trở nên cấp thiết.
Benchmark hiệu năng khi triển khai AES-128, AES-192, AES-256 trên phần cứng FPGA Virtex-5 XC5VLX50
Các tính năng chính của mã hóa AES
Mã hóa AES nổi bật ở độ tin cậy và hiệu quả, với sáu đặc điểm kỹ thuật khiến chuẩn này trở thành lựa chọn ưu tiên để bảo vệ dữ liệu nhạy cảm.
Các tính năng cốt lõi:
Mã hóa khóa đối xứng: AES dùng chung một khóa cho cả mã hóa và giải mã, giúp quá trình đơn giản và nhanh hơn, đặc biệt hữu ích khi xử lý khối lượng dữ liệu lớn.
Nhiều kích thước khóa: AES hỗ trợ khóa 128, 192 và 256 bit, cho phép chọn độ dài khóa theo mức cân bằng mong muốn giữa tốc độ và bảo mật.
Cấu trúc mã hóa khối: AES xử lý dữ liệu theo từng khối 128 bit. Với dữ liệu dài hơn một khối, cách các khối được xử lý và liên kết với nhau phụ thuộc vào chế độ hoạt động như CBC, CTR hoặc GCM.
Mạng thay thế và hoán vị: Thuật toán gồm các vòng thay thế và hoán vị, biến bản rõ thành bản mã theo cách phức tạp, trộn dữ liệu triệt để nên rất khó bị truy cập trái phép.
Hiệu năng cao: AES được tối ưu cho cả phần cứng lẫn phần mềm, đảm bảo tốc độ mã hóa và giải mã nhanh mà không ảnh hưởng đáng kể tới hiệu năng hệ thống.
Kháng các dạng tấn công đã biết: AES được thiết kế để chống lại các tấn công mật mã đã biết như vét cạn, phân tích vi sai và phân tích tuyến tính.
Các tính năng chính của mã hóa AES
AES hoạt động như thế nào?
AES là thuật toán mã hóa khối đối xứng, xử lý dữ liệu theo từng khối cố định 128 bit (tương đương 16 byte) cho cả quá trình mã hóa và giải mã. Thuật toán này biến bản rõ thành bản mã thông qua một chuỗi các phép thay thế, hoán vị và biến đổi dựa trên khóa. AES có hiệu suất cao, độ bảo mật tốt và được thiết kế để triển khai được trên cả phần cứng lẫn phần mềm.
Dưới đây là giải thích chi tiết cách AES vận hành.
Độ dài khóa và số vòng mã hóa
AES hỗ trợ ba tùy chọn độ dài khóa, khóa càng dài thì dữ liệu càng phải đi qua nhiều vòng biến đổi:
AES-128: khóa 128 bit (16 byte), 10 vòng.
AES-192: khóa 192 bit (24 byte), 12 vòng.
AES-256: khóa 256 bit (32 byte), 14 vòng.
Mỗi vòng của AES bao gồm nhiều bước biến đổi khác nhau nhằm tăng mức độ bảo mật cho dữ liệu.
AES có ba tùy chọn độ dài khóa: 128 bit, 192 bit và 256 bit
Quá trình mã hóa
Quá trình mã hóa của AES gồm nhiều bước để chuyển bản rõ thành bản mã:
1. Mở rộng khóa (Key Expansion): Khóa mã hóa ban đầu được mở rộng thành một chuỗi các khóa vòng (round key), mỗi vòng mã hóa dùng một khóa riêng. Cách làm này đảm bảo mỗi vòng đều sử dụng một khóa duy nhất được sinh ra từ khóa gốc.
2. AddRoundKey ban đầu: Bản rõ được trộn với khóa vòng đầu tiên bằng phép XOR. Đây là lần đầu tiên dữ liệu và khóa gặp nhau.
3. Các vòng biến đổi: Sau bước trộn đầu tiên, dữ liệu bước vào các vòng biến đổi. Mỗi vòng (trừ vòng cuối) đều thực hiện lần lượt bốn thao tác:
SubBytes (thay thế): Từng byte trong khối được thay thế bằng một giá trị khác dựa trên hộp thay thế S-box, tức một bảng tra cứu phi tuyến đã được định nghĩa sẵn. Bước này tạo ra tính rối (confusion), khiến mối quan hệ giữa bản rõ và bản mã trở nên phi tuyến.
ShiftRows (hoán vị): Các hàng trong khối dữ liệu dạng ma trận 4×4 được dịch trái với độ lệch khác nhau. Hàng 0 giữ nguyên, hàng 1 dịch trái 1 byte, hàng 2 dịch trái 2 byte và hàng 3 dịch trái 3 byte. Nhờ vậy, các byte bị đẩy khỏi vị trí ban đầu, làm tăng độ phức tạp của dữ liệu.
MixColumns (trộn cột): Từng cột của ma trận được biến đổi bằng một phép toán dựa trên số học trường Galois. Bước này trộn dữ liệu trong mỗi cột, lan tỏa ảnh hưởng của từng byte ra khắp khối.
AddRoundKey: Khóa vòng được XOR với khối dữ liệu hiện tại, đưa khóa hòa vào quá trình mã hóa.
Riêng vòng cuối cùng bỏ qua MixColumns, chỉ thực hiện SubBytes, ShiftRows và AddRoundKey. Kết quả thu được sau vòng này chính là bản mã hoàn chỉnh.
Quá trình mã hoá AES chia dữ liệu thành các khối 128 bit và xử lý qua nhiều vòng lặp
Quá trình giải mã
AES giải mã bằng cách đảo ngược quá trình mã hóa với cùng một khóa, áp dụng các phép toán nghịch đảo theo thứ tự ngược lại:
Inverse SubBytes: đảo ngược bước thay thế byte.
Inverse ShiftRows: đảo ngược bước dịch hàng.
Inverse MixColumns: đảo ngược bước trộn cột.
AddRoundKey: thực hiện cùng phép XOR như khi mã hóa.
Quá trình giải mã được thiết kế để đạt hiệu suất tương đương quá trình mã hóa, đảm bảo tính đối xứng của thuật toán.
Sự khác nhau giữa quá trình mã hoá và giải mã AES
Các chế độ hoạt động
Vì AES chỉ xử lý các khối cố định 128 bit nên khi cần mã hóa dữ liệu lớn hơn một khối, thuật toán phải được kết hợp với một chế độ hoạt động. Những chế độ phổ biến gồm:
ECB (Electronic Codebook): Mã hóa từng khối một cách độc lập. Điểm yếu là các mẫu lặp trong bản rõ vẫn lộ ra ở bản mã.
CBC (Cipher Block Chaining): Mỗi khối bản rõ được XOR với khối bản mã trước đó rồi mới mã hóa. Chế độ này cần một vector khởi tạo (IV) cho khối đầu tiên.
GCM (Galois/Counter Mode): Vừa mã hóa vừa xác thực thông điệp, giúp tăng thêm mức bảo mật. Đây là chế độ được dùng rộng rãi trong các giao thức bảo mật như TLS.
CTR (Counter Mode): Biến AES thành mã dòng bằng cách mã hóa một giá trị bộ đếm.
CBC (Cipher Block Chaining)
Ưu điểm của mã hóa nâng cao AES
AES là một trong những phương pháp mã hóa đáng tin cậy nhất hiện nay nhờ bốn ưu điểm nổi bật về độ an toàn, hiệu quả triển khai, khả năng xử lý dữ liệu lớn và mức độ phổ biến trên toàn cầu.
Các ưu điểm cụ thể:
Bảo mật mạnh mẽ: AES được xem là một trong những chuẩn mã hóa mạnh nhất, kháng tốt nhiều dạng tấn công, đặc biệt là tấn công vét cạn. Độ dài khóa lớn như AES-256 mang lại mức bảo mật còn cao hơn.
Hiệu quả trên cả phần cứng và phần mềm: AES triển khai hiệu quả trong cả hai môi trường, hiệu năng được tối ưu để mã hóa nhanh mà không đánh đổi độ an toàn, phù hợp với ứng dụng vừa cần tốc độ vừa cần mã hóa mạnh.
Xử lý được khối lượng dữ liệu lớn: Khác một số chuẩn cũ, AES mã hóa được lượng dữ liệu lớn với tác động tối thiểu tới hiệu năng, rất hợp với lưu trữ đám mây, dịch vụ streaming và cơ sở dữ liệu quy mô lớn.
Thích ứng với nhiều ngành và thiết bị: AES đã trở thành chuẩn toàn cầu, được dùng trong tài chính, y tế, chính phủ và công nghệ, mang lại mức bảo mật ổn định trên nhiều loại thiết bị và hệ thống khác nhau.
Ưu điểm của mã hóa nâng cao AES
Ứng dụng của AES
AES được ứng dụng rộng rãi trong các bài toán cần lưu trữ và truyền dữ liệu an toàn, trải dài từ mạng không dây, cơ sở dữ liệu, truyền thông cho tới lưu trữ và VPN.
Các trường hợp ứng dụng phổ biến:
Bảo mật không dây: AES được dùng để bảo vệ mạng không dây như Wifi, đảm bảo tính bảo mật dữ liệu và ngăn truy cập trái phép.
Mã hóa cơ sở dữ liệu: AES mã hóa dữ liệu nhạy cảm lưu trong cơ sở dữ liệu, giúp bảo vệ thông tin cá nhân và hồ sơ tài chính khi xảy ra rò rỉ dữ liệu.
Truyền thông an toàn: AES được dùng rộng rãi trong các giao thức truyền thông Internet, email, tin nhắn tức thời và cuộc gọi thoại hoặc video.
Lưu trữ dữ liệu: AES mã hóa dữ liệu nhạy cảm nằm trên ổ cứng, USB và các phương tiện lưu trữ khác, bảo vệ dữ liệu khi thiết bị bị mất hoặc bị đánh cắp.
Mạng riêng ảo (VPN): AES thường được dùng trong các giao thức VPN để bảo mật kết nối giữa thiết bị người dùng và máy chủ từ xa, ngăn kẻ nghe lén giải mã dữ liệu.
Mã hóa tệp và ổ đĩa: AES mã hóa tệp và thư mục trên máy tính, thiết bị lưu trữ ngoài và kho lưu trữ đám mây, bảo vệ dữ liệu cả khi lưu trữ lẫn khi truyền đi.
Các trường hợp ứng dụng của AES
Tóm lại, nắm rõ mã hóa AES là gì giúp doanh nghiệp chọn đúng độ dài khóa và chế độ hoạt động cho từng lớp dữ liệu, từ ổ đĩa, cơ sở dữ liệu cho tới kênh truyền. Liên hệ VNPT Cloud qua hotline 083.828.1080 để được chuyên gia tư vấn 1:1 giải pháp bảo mật dữ liệu và lưu trữ đám mây phù hợp với hệ thống của bạn.
#Cyber Security
#Cyber Security
Sovereign Cloud không chỉ là đặt máy chủ trong nước. Với bối cảnh pháp lý dữ liệu mới tại Việt Nam, đây đang trở thành bài toán hạ tầng quan trọng cho doanh nghiệp Việt và doanh nghiệp nước ngoài hoạt động tại Việt Nam