TEA/XTEA/XXTEA暗号化・復号化
Tiny Encryption Algorithmファミリー - 軽量対称ブロック暗号
セキュリティに関する注意
TEA/XTEA/XXTEAは主に組み込みシステムやゲームで使用される軽量暗号です。高セキュリティアプリケーションには代わりにAESを使用してください。
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デバイス通信の暗号化
- メモリと処理能力が限られた組み込みシステム
- レガシーシステムの互換性とプロトコル実装