CoderTools

Công cụ Mã hóa/Giải mã AES | CoderTools

Công cụ mã hóa và giải mã AES trực tuyến hỗ trợ nhiều chế độ như CBC, ECB, cho cả mã hóa văn bản và tệp.

Về mã hóa AES

AES (Advanced Encryption Standard) là thuật toán mã hóa đối xứng được NIST công bố năm 2001. AES là một trong những thuật toán mã hóa được sử dụng rộng rãi nhất và đã được chính phủ liên bang Hoa Kỳ áp dụng làm tiêu chuẩn mã hóa.

AES hỗ trợ độ dài khóa 128, 192 và 256 bit, cung cấp các mức độ bảo mật khác nhau. AES-256 được coi là an toàn nhất và không thể bị phá vỡ trong thời gian hợp lý ngay cả với những máy tính mạnh nhất hiện nay.

Chế độ mã hóa

  • CBC: CBC (Chuỗi khối mã hóa): Mỗi khối văn bản rõ được XOR với khối văn bản mã hóa trước đó trước khi mã hóa. Yêu cầu IV, an toàn hơn, được khuyến nghị.
  • ECB: ECB (Sách mã điện tử): Chia văn bản rõ thành các khối có kích thước cố định, mỗi khối được mã hóa độc lập. Không cần IV, nhưng kém an toàn hơn, không được khuyến nghị cho dữ liệu nhạy cảm.
  • CTR: CTR (Bộ đếm): Chuyển đổi mã hóa khối thành mã hóa luồng bằng cách tăng bộ đếm để tạo luồng khóa. Yêu cầu IV, hỗ trợ mã hóa song song, phù hợp cho các tình huống hiệu suất cao.
  • CFB: CFB (Phản hồi mã hóa): Chuyển đổi mã hóa khối thành mã hóa luồng, sử dụng khối văn bản mã hóa trước đó làm đầu vào cho khối tiếp theo. Yêu cầu IV.
  • OFB: OFB (Phản hồi đầu ra): Chuyển đổi mã hóa khối thành mã hóa luồng, phản hồi đầu ra mã hóa vào đầu vào. Yêu cầu IV.

So sánh chế độ mã hóa

Chế độ Bảo mật Tốc độ Xử lý song song Lan truyền lỗi Khuyến nghị
CBC Cao Trung bình Chỉ giải mã Giới hạn ở các khối liền kề Được sử dụng rộng rãi nhất, phù hợp cho nhu cầu mã hóa chung
ECB Thấp Nhanh Hỗ trợ đầy đủ Không lan truyền Không được khuyến nghị - Có lỗ hổng bảo mật
CTR Cao Nhanh Hỗ trợ đầy đủ Không lan truyền Phù hợp cho các tình huống hiệu suất cao, hỗ trợ streaming
CFB Cao Trung bình Chỉ giải mã Giới hạn ở các khối liền kề Phù hợp cho các tình huống mã hóa luồng
OFB Cao Trung bình Không hỗ trợ Không lan truyền Phù hợp cho các tình huống yêu cầu khả năng chịu lỗi

Khuyến nghị bảo mật

  • 1. Sử dụng khóa mạnh: Khóa nên được tạo ngẫu nhiên với độ dài tối thiểu 128 bit, khuyến nghị 256 bit.
  • 2. Bảo vệ khóa: Khóa rất quan trọng đối với bảo mật mã hóa và phải được giữ an toàn, không bao giờ truyền qua các kênh không an toàn.
  • 3. Sử dụng chế độ an toàn: Khuyến nghị chế độ CBC hoặc CTR, tránh chế độ ECB.
  • 4. Xoay khóa thường xuyên: Đối với các hệ thống dài hạn, khóa mã hóa nên được xoay định kỳ.
  • 5. Sử dụng IV duy nhất: Sử dụng IV khác nhau cho mỗi lần mã hóa, ngay cả với cùng một khóa.

So sánh bảo mật theo độ dài khóa

Độ dài khóa Byte Tổ hợp khóa có thể Ước tính thời gian tấn công vét cạn Hiệu suất Khuyến nghị sử dụng
128-bit 16 bytes 2128 ≈ 3.4×1038 Hàng tỷ năm (sử dụng công nghệ hiện tại, giả định 10^18 khóa/giây) Nhanh nhất
Cơ sở (100%)
Phù hợp cho hầu hết các ứng dụng thương mại, cung cấp bảo mật đầy đủ
192-bit 24 bytes 2192 ≈ 6.3×1057 Vượt xa tuổi của vũ trụ (về lý thuyết là không thể) Trung bình
~80% của AES-128
Hiếm khi được sử dụng, cung cấp bảo mật cao hơn 128-bit
256-bit 32 bytes 2256 ≈ 1.1×1077 Không thể về mặt thiên văn học (ngay cả với toàn bộ năng lượng trong vũ trụ) Chậm hơn
~60-70% của AES-128 (với AES-NI)
Phù hợp cho dữ liệu cực kỳ nhạy cảm, ứng dụng chính phủ/quân sự

Lưu ý bảo mật:

AES-128 đã được coi là đủ an toàn để chống lại tất cả các cuộc tấn công đã biết. Việc chọn độ dài khóa nên cân bằng giữa yêu cầu bảo mật và cân nhắc về hiệu suất. Đối với hầu hết các ứng dụng, AES-128 cung cấp bảo mật đầy đủ, trong khi AES-256 được khuyến nghị cho dữ liệu cực kỳ nhạy cảm. Sự khác biệt về hiệu suất rõ ràng hơn khi có tăng tốc phần cứng (AES-NI).

Đánh giá hiệu suất (Bật AES-NI phần cứng)

Tốc độ mã hóa (CPU hiện đại, giá trị điển hình)
AES-128
~500 MB/s
AES-192
~425 MB/s
AES-256
~350 MB/s
Tốc độ giải mã (CPU hiện đại, giá trị điển hình)
AES-128
~520 MB/s
AES-192
~447 MB/s
AES-256
~369 MB/s

Lưu ý: Hiệu suất thực tế khác nhau tùy theo phần cứng, triển khai và kích thước dữ liệu. Các giá trị hiển thị là các đánh giá điển hình trên CPU hiện đại với hỗ trợ lệnh AES-NI. Không có tăng tốc phần cứng, hiệu suất có thể chậm hơn 10-20 lần.

Trường hợp sử dụng

  • Mã hóa truyền dữ liệu: Bảo vệ dữ liệu nhạy cảm trong quá trình truyền mạng
  • Mã hóa tệp: Mã hóa các tệp nhạy cảm được lưu trữ trên đĩa
  • Mã hóa cơ sở dữ liệu: Mã hóa các trường nhạy cảm trong cơ sở dữ liệu
  • Bảo vệ mật khẩu: Mã hóa mật khẩu người dùng và thông tin xác thực
  • Mã hóa giao tiếp: Mã hóa tin nhắn tức thời và nội dung email

Tài liệu tham khảo