International Data Encryption Algorithm (IDEA)
IDEA(International Data Encryption Algorithm)は、1991年に
チューリッヒ工科大学のJames Masseyと来学嘉により設計された
ブロック暗号で、DES(
Data Encryption Standard)に代わるものとして開発されました。このアルゴリズムは、元々はIPES(Improved PES)という名称で知られたPES(Proposed Encryption Standard)を基にしており、その後IDEAという名称が
商標として使われるようになりました。
IDEAは特にHasler Foundationとの共同研究によって生まれ、多くの国で
特許が取得されています。しかし、非商用利用に関しては比較的自由に使用できることが許されていました。2012年1月にアメリカでの
特許が失効したことにより、IDEAは世界中で広く採用できるようになりました。
構造と動作
IDEAのブロック長は64ビットで、128ビットの鍵が使用されます。
暗号化プロセスは、8回のラウンド操作と最後にハーフラウンドという形式で構成されています。
暗号化と復号の過程は基本的には類似していますが、使用する演算が異なることからある意味「非互換」とも見なされます。具体的には、加算と乗算の合同式、ビット単位の
排他的論理和(XOR)を交互に適用することで、このアルゴリズムの安全性が保たれています。
各ラウンドでは、以下の操作が16ビット単位で行われます:
- - ビット単位の排他的論理和(⊕)
- - 加算結果を216で法とした合同(⨁)
- - 乗算結果を216+1で法とした合同(⨀)
8ラウンドの後、出力段階ではハーフラウンドを行い、得られた結果から特定のビットを入れ替え、さらに鍵との演算を適用します。
鍵スケジュール
IDEAでは、各ラウンドに6つの部分鍵を、ハーフラウンドでは4つの部分鍵が使われます。合計で52個の部分鍵が生成され、最初の8個は128ビットの元鍵から直接取得されます。続いて、鍵を25ビット左にローテートして、次の8個を取り出します。このように鍵スケジュールはいくつかの工夫によって設計されていますが、単純さが結果的に「弱い鍵」を生む要因ともなります。
セキュリティと脆弱性
IDEAは差分攻撃に対する耐性を重視して設計されており、代数的な脆弱性は報告されていません。しかし、特定の条件下では弱い鍵が存在し、特に0のビットが多い鍵は
暗号を脆弱にする恐れがあります。無作為に生成される鍵の場合、この問題はあまり発生しませんが、事前に特定の定数とXORすることで一部の弱点を回避することが可能です。
2007年時点では、全鍵を解読可能とする最高の攻撃法でも6ラウンドのIDEAでしか成功しないと言われていましたが、
暗号解読技術の進歩により、その精度や可能性は変化していく可能性があります。著名な
暗号学者
ブルース・シュナイアーが述べたように、「IDEAは当時の最良の
ブロック暗号」でありましたが、その後の技術革新に伴い、推奨されにくくなっています。
利用可能性
IDEAは、多くの国々で
特許が取得されていますが、2012年の
特許失効以降は自由に使用できるようになりました。IDEAの後継としてMediaCryptが開発したIDEA NXTも存在し、これは2005年に公式リリースされました。また、TLS(
Transport Layer Security)でもIDEAが利用されていましたが、実務上の利用が芳しくなかったため、TLS 1.2では削除されています。
このように、IDEAは設計から多くの技術的要素が詰め込まれた
暗号アルゴリズムであり、パソコンやシステムのセキュリティを支えてきました。