CoderTools

TEA/XTEA/XXTEA暗号化・復号化

Tiny Encryption Algorithmファミリー - 軽量対称ブロック暗号

セキュリティに関する注意

TEA/XTEA/XXTEAは主に組み込みシステムやゲームで使用される軽量暗号です。高セキュリティアプリケーションには代わりにAESを使用してください。

すべてのTEAファミリーアルゴリズムは固定の128ビット(16バイト)鍵を使用します。
フォーマットオプション

TEAファミリーについて

TEA(Tiny Encryption Algorithm)ファミリーには、ケンブリッジ大学のRoger NeedhamとDavid Wheelerによって設計された3つの関連するブロック暗号が含まれます。TEAは1994年に、XTEAは1997年にTEAの弱点を修正するために、XXTEAは1998年に可変長ブロック暗号として導入されました。

これらのアルゴリズムはシンプルさと小さなコードフットプリントで知られ、組み込みシステム、マイクロコントローラー、コードサイズが重要なアプリケーションに最適です。ゲーム資産やセーブファイルの暗号化のためにゲーム開発で特に人気があります。

アルゴリズム比較

アルゴリズム ブロックサイズ 鍵長 ラウンド数 セキュリティ
TEA 64 bits 128 bits 64 レガシー
XTEA 64 bits 128 bits 64 良好
XXTEA 可変(≥64ビット) 128 bits 可変(6+52/n) 良好

主な特徴

  • 極めてコンパクト - わずか数行のコードで実装可能
  • 128ビット鍵がほとんどのアプリケーションに適切なセキュリティを提供
  • リソース制約のあるデバイスでの高速な暗号化/復号化
  • 知的財産の制限なし - 完全に無料で使用可能

暗号化モード(TEA/XTEAのみ)

  • CBC: 暗号ブロック連鎖 - 各ブロックは暗号化前に前の暗号文ブロックとXORされます。IVが必要です。
  • ECB: 電子符号表 - 各ブロックは独立して暗号化されます。シンプルですがほとんどの用途には推奨されません。
  • CFB: 暗号フィードバック - ブロック暗号をストリーム暗号に変換します。自己同期モード。
  • OFB: 出力フィードバック - キーストリームを独立して生成します。エラー伝播なし。
  • RAW: 生ブロック - チェーンモードなしの直接単一ブロック暗号化。IVは不要です。

セキュリティに関する考慮事項

  • TEA:既知の等価鍵脆弱性と関連鍵攻撃があります。代わりにXTEAまたはXXTEAを使用してください。
  • XTEA:改善された鍵スケジュールでTEAの弱点を修正しました。広く使用され、十分に安全です。
  • XXTEA:可変長ブロックで動作します。拡散性は優れていますが、理論的な攻撃が存在します。
  • 高セキュリティを必要とするアプリケーションには、現代の業界標準であるAESの使用を検討してください。

一般的な使用例

  • ゲーム資産の暗号化(Cocos2d-x、Unityゲームリソース保護)
  • IoTデバイス通信の暗号化
  • メモリと処理能力が限られた組み込みシステム
  • レガシーシステムの互換性とプロトコル実装

参考資料