CoderTools

Mã hóa/Giải mã TEA/XTEA/XXTEA

Họ Tiny Encryption Algorithm - Mã khối đối xứng nhẹ

Lưu ý Bảo mật

TEA/XTEA/XXTEA là các mã nhẹ được sử dụng chủ yếu trong hệ thống nhúng và game. Đối với các ứng dụng yêu cầu bảo mật cao, vui lòng sử dụng AES thay thế.

Tất cả các thuật toán họ TEA sử dụng khóa cố định 128-bit (16 byte).
Tùy chọn định dạng

Về họ TEA

Họ TEA (Tiny Encryption Algorithm) bao gồm ba mã khối liên quan được thiết kế bởi Roger Needham và David Wheeler tại Cambridge. TEA được giới thiệu năm 1994, XTEA năm 1997 để khắc phục các điểm yếu của TEA, và XXTEA năm 1998 như một mã khối có độ dài thay đổi.

Các thuật toán này được biết đến với sự đơn giản và kích thước mã nhỏ, làm cho chúng lý tưởng cho hệ thống nhúng, vi điều khiển và các ứng dụng mà kích thước mã là quan trọng. Chúng đặc biệt phổ biến trong phát triển game để mã hóa tài nguyên và file lưu trò chơi.

So sánh thuật toán

Thuật toán Kích thước khối Độ dài khóa Vòng Bảo mật
TEA 64 bits 128 bits 64
XTEA 64 bits 128 bits 64 Tốt
XXTEA Thay đổi (≥64 bit) 128 bits Thay đổi (6+52/n) Tốt

Đặc điểm chính

  • Cực kỳ nhỏ gọn - có thể triển khai trong vài dòng mã
  • Khóa 128-bit cung cấp bảo mật hợp lý cho hầu hết các ứng dụng
  • Mã hóa/giải mã nhanh trên các thiết bị có tài nguyên hạn chế
  • Không có hạn chế sở hữu trí tuệ - hoàn toàn miễn phí sử dụng

Chế độ mã hóa (chỉ TEA/XTEA)

  • CBC: Cipher Block Chaining - Mỗi khối được XOR với khối mã trước đó trước khi mã hóa. Yêu cầu IV.
  • ECB: Electronic Codebook - Mỗi khối được mã hóa độc lập. Đơn giản nhưng không khuyến nghị cho hầu hết các trường hợp.
  • CFB: Cipher Feedback - Chuyển đổi mã khối thành mã dòng. Chế độ tự đồng bộ.
  • OFB: Output Feedback - Tạo dòng khóa độc lập. Không lan truyền lỗi.
  • RAW: Khối thô - Mã hóa trực tiếp khối đơn không có chế độ chuỗi. Không yêu cầu IV.

Cân nhắc bảo mật

  • TEA: Có lỗ hổng khóa tương đương đã biết và các tấn công khóa liên quan. Sử dụng XTEA hoặc XXTEA thay thế.
  • XTEA: Đã khắc phục các điểm yếu của TEA với lịch trình khóa được cải tiến. Được sử dụng rộng rãi và khá an toàn.
  • XXTEA: Hoạt động trên các khối có độ dài thay đổi. Khuếch tán tốt hơn nhưng có một số tấn công lý thuyết.
  • Đối với các ứng dụng yêu cầu bảo mật cao, hãy xem xét sử dụng AES - tiêu chuẩn công nghiệp hiện đại.

Các trường hợp sử dụng phổ biến

  • Mã hóa tài nguyên game (Cocos2d-x, bảo vệ tài nguyên Unity)
  • Mã hóa truyền thông thiết bị IoT
  • Hệ thống nhúng với bộ nhớ và sức mạnh xử lý hạn chế
  • Tương thích hệ thống cũ và triển khai giao thức

Tham khảo