International Data Encryption Algorithm

International Data Encryption Algorithm (IDEA) はチューリッヒ工科大学の James Massey と来学嘉が設計し、1991年に発表したブロック暗号。DESの代替を意図したアルゴリズムである。IDEAは PES (Proposed Encryption Standard) を若干手直しした暗号であり、元々は IPES (Improved PES) と呼ばれていた。

この暗号は Hasler Foundation（後に Ascom-Tech AG に吸収された）との研究契約の下で設計された。多数の国で特許を取得しているが、非商用利用については自由に使うことが容認されていた。"IDEA" という名称は商標でもある。アメリカにおける特許の有効期限が2012年1月をもって失効したことで、全世界で自由に使うことができるようになった。

IDEAは Pretty Good Privacy (PGP) v2.0 で使われていた。これは、v1.0で使われていたBassOmaticが安全でないと判明したために導入されたものである。IDEAはOpenPGP規格ではオプションのアルゴリズムとされている。GNU Privacy Guard (GnuPG)では、特許の失効を受けて1.4.13/2.0.20から限定的にIDEAをサポートするようになった。

 操作 
IDEAのブロック長は64ビットで、128ビットの鍵を使う。ラウンドと呼ばれる同じ操作を8回行い、最後に出力段の変換（ハーフラウンド）を行う。暗号化と復号の工程はよく似ている。代数学的にある意味で「非互換」とも言える異なる群からの操作（加算や乗算の合同式、ビット単位の排他的論理和 (XOR) など）を次々に行うことで、IDEAのセキュリティが生じている。演算をより詳細に述べると、すべて16ビット単位に以下のような操作を行う。

 ビット単位の排他的論理和（図では青い丸に十字で示している ⊕）
 加算結果を 216 を法として合同にしたもの（緑色の四角に十字 ⊞）
 乗算結果を 216+1 を法として合同にしたもの。全てゼロのワード (0x0000) は216と解釈する。（赤い丸にドット ⊙）

図にあるラウンドを8回繰り返した後、ハーフラウンドを最後に1回行う。ラウンドの出力は16ビットが4つ並んでいるが、このうち2番目と3番目を入れ替え、右から順に以下の操作を行う。
 K1との乗算結果を 216+1 を法として合同にする。
 K2との加算結果を 216 を法として合同にする。
 K3との加算結果を 216 を法として合同にする。
 K4との乗算結果を 216+1 を法として合同にする。

 鍵スケジュール 
各ラウンドでは6個の16ビット部分鍵を使い、ハーフラウンドでは4つの部分鍵を使う。8.5ラウンドの合計で52個の部分鍵を使うことになる。最初の8個の部分鍵は元の鍵から直接取り出す。すなわち、第1ラウンドのK1は元の鍵の下位16ビットで、K2はそれに隣接する16ビットというふうに128ビットの鍵から8個の鍵を取り出す。次に元の鍵を左に25ビットローテートさせて、同じように8個の鍵を取り出す。平均するとラウンドあたりのローテート回数は1より小さくなり、全体で6回ローテートすることになる。

 セキュリティ 
設計者らはIDEAを差分解読法への耐性を考慮して設計し、ある前提の下では安全であると結論付けた。線形または代数的な脆弱性は報告されていない。2007年現在、全ての鍵を解読できる最善の攻撃法でも6ラウンドのIDEAでないと破れない（本来のIDEAは8.5ラウンド）。なお、ここで「破る」と言っているのは、2128未満の操作回数で攻撃が完了することを意味し、6ラウンドのIDEAへの攻撃には264の既知平文と2126.8の操作を必要とする。

ブルース・シュナイアーは1996年にIDEAについて詳しく調査し、「私の意見では、現時点で一般に入手できる最良のブロック暗号アルゴリズムだ」と述べている (Applied Cryptography, 2nd ed.)。しかし1999年になると暗号解読技術が進歩したことと特許問題から、シュナイアーもIDEAを推奨しなくなったCrypto Guru Bruce Schneier Answers Slashdot、1999年10月29日。

 弱い鍵 
鍵スケジュールが非常に単純であるため、IDEAには弱い鍵が存在するという問題がある。0のビットが極端に多い鍵で暗号化すると暗号文が弱くなる。しかし、鍵を無作為に生成する場合、0のビットがあまりにも多くなるということはほとんどないため、実際上あまり問題にはならない。単純な回避策としては、個々の部分鍵を使う前に 0x0DAE のような16ビット定数とXORすればよい。

2002年にはもっと大きなクラスの弱い鍵が発見された。無作為に鍵を生成する場合、これも大きな問題とはならず、定数のXORによって一部は回避できるが、この論文では全ての問題がそれで回避できるかについて確信がないとしている。このため、IDEAの鍵スケジュールを根本的に再設計したほうがよいと提案している。

 入手可能性 
IDEAは、オーストリア、フランス、ドイツ、イタリア、オランダ、スペイン、スウェーデン、スイス、イギリス（欧州特許番号 0482154、2011年5月16日をもって失効）、アメリカ合衆国（、1993年5月25日発効、2012年1月7日をもって失効）、日本（特許第3225440号、2011年5月16日をもって失効）で特許化されている。これらの特許は2012年1月までにすべて失効しており、それ以降は自由に用いることができる。

MediaCryptはIDEAの後継として新たな暗号 IDEA NXT に注力している。IDEA NXT は以前は FOX と呼ばれ、2005年5月に公式リリースとなった。

なお、Transport Layer Security (TLS) においてもIDEAを利用可能であったが、実運用でほぼ使われていないことを理由として、TLS 1.2で削除されている () 。

 脚注・出典 

 参考文献 
 Hüseyin Demirci, Erkan Türe, Ali Aydin Selçuk, A New Meet in the Middle Attack on The IDEA Block Cipher, 10th Annual Workshop on Selected Areas in Cryptography, 2004.
 Xuejia Lai and James L. Massey, A Proposal for a New Block Encryption Standard, EUROCRYPT 1990, pp389–404
 Xuejia Lai and James L. Massey and S. Murphy, Markov ciphers and differential cryptanalysis, Advances in Cryptology — Eurocrypt '91, Springer-Verlag (1992), pp17–38.

 外部リンク 
 リファレンスコード
 RSA FAQ on Block Ciphers
 SCAN entry for IDEA
 IDEA in 448 bytes of 80x86
 IDEA Applet（ドイツ語）