平成10年7月27日
新しい共通鍵暗号アルゴリズムを開発
−安全、高速な国産初の商用128ビットブロック暗号アルゴリズム−
NTTでは、新しい共通鍵暗号(*1)アルゴリズム「E2」を開発しました。「E2」は、国産の商用暗号としては初めて128ビットのブロック長(*2)を採用したブロック暗号方式(*3)の暗号アルゴリズムであり、安全かつ高速な処理を実現しています。
今回の開発にあたり、NTTでは「差分解読法」や「線形解読法」(*4)といった強力な暗号解読法に対して、十分な安全性を有していることを確認し、また鍵長(*5)は128ビット・192ビット・256ビットに対応、さらに様々なプラットフォーム上で利用できるなど、「E2」は、次世代の暗号技術の条件を満たしています。
なお、NTTは本技術の仕様を、NIST(National Institute of Standards and Technology、米国商務省標準技術局)が公募している次期米国標準暗号「AES」(*6)に応募しています。
<開発の背景>
共通鍵暗号として、現在もっとも広く利用されている米国標準暗号「DES」(*7)は、今から20年以上前に開発された暗号で、米国や日本の金融機関を中心に幅広い分野で活用されています。このDES暗号は、開発された当時のコンピュータの性能と一人が利用できるコンピュータの台数から計算して解読が事実上不可能であるとされていました。
しかし現在では、コンピュータの性能向上やネットワークの普及などにより、個人の情報処理能力は非常に大きくなっています。また、差分解読法、線形解読法といった強力な暗号解読手法に関する研究も大きく進歩しており、20年前のコンピュータ事情に合わせて設計されたDES暗号の安全性が疑問視されるようになってきました。このため、情報の安全なやりとりを実現する新しい暗号化技術に対するニーズが世界的に高まっています。
NTTでは、こうした背景のもと、安全で暗号化処理が高速な次世代の暗号技術の開発に取り組んできました。
<技術のポイント>
(1)差分解読法や線形解読法に対する安全性を確認
現在、差分解読法や線形解読法といった強力な暗号解読法に関する研究が進み、これらの解読法に対する安全性が暗号を評価する際の基準の一つとされています。
今回の開発では、差分解読法や線形解読法に対する安全性評価指標(*8)に基づき、入力されたデータを変換する部分にあたるラウンド関数1つの安全性から暗号全体の安全性を評価しました。この結果、「E2」では差分解読法や線形解読法による解読が事実上できないことを確認しています。
(2)高速な暗号化処理
DES暗号をはじめとする多くのブロック暗号では、ラウンド関数で入力されたデータを変換し、この変換を一定回数繰り返すことで暗号化を行っています(図1)。一般に、繰り返し処理の回数を増すと安全性は高くなりますが、暗号化の速度は低下します。例えば、DES暗号のラウンド関数内では、Sボックスと呼ばれるデータ置換部を用いてデータを別の値に置き換えた後、転置と呼ばれる部分でデータのビット位置を入れ替えます(図2)。
これに対して「E2」のラウンド関数は、Sボックスで一度置き換えられたデータを変換層で変換し、さらにもう一度Sボックスを用いてデータを置換することで、差分解読法や線形解読法などに対するラウンド関数自体の安全性をより高め(図3)、繰り返し処理の回数を削減することに成功しました。この結果、高い安全性と高速な暗号化処理の両立を実現しています。
(3)様々なプラットフォーム上での実装柔軟性
「E2」は暗号化処理を、コンピュータ処理の基本単位である8ビットで構成可能なように設計しています。このため、ソフトウェア実装はもちろん、スマートカードなど、様々なハードウェアへの実装を柔軟に行うことができます。
(4)国産初の128ビットブロック暗号、鍵長も128・192・256ビットに対応
「暗号解読法の一つである「全数探索法」(*9)に対するブロック暗号の安全性はブロック長と鍵長に依存しており、ブロック長と鍵長が長くなればそれだけ全数探索法に対する暗号の安全性は高くなります。現在の主流であるDES暗号のブロック長は64ビット、鍵長は実質56ビットですが、次世代のブロック暗号では安全性を確保するために、ブロック長と鍵長を長くすることが必須であるといわれています。
今回開発した「E2」は、ブロック長が128ビット、鍵長は128ビット・192ビット・256ビットに対応できる設計となっています。これは国産の商用暗号アルゴリズムとしては初めての試みであり、次期米国標準暗号AESの仕様にも合致しています。
<今後の展開>
NTTでは今後、本技術をNTTの暗号通信サービスの一つとして提供していく予定です。またNTTは、今回開発した「E2」をNISTが募集している次期米国標準暗号AESに応募しています。今後は国内における暗号通信サービスの提供と並行し、AES策定にともなう専門家の検証結果、コメントを反映しつつ、暗号化ソフトウェアや専用LSIの開発なども進めていく予定です。
なお、「E2」の詳細は、7月30日の電子情報通信学会情報セキュリティ研究会(東北大学)、および8月20日〜22日の第1回AES会議(米国)で発表する予定です。
<用語解説>
*1 共通鍵暗号データの暗号化と復号化に同じ秘密鍵を用いる暗号方式。高速な暗号処理ができるため大量のデータを扱う通信メッセージやファイルの暗号化に多く使われている。
*2 ブロック長暗号化を行うデータのまとまりの長さ。DES暗号のブロック長は64ビットであるが、NISTでは安全性を高めるために次期米国標準暗号はブロック長を128ビットと規定している。
*3 ブロック暗号方式共通鍵暗号の一方式。共通鍵暗号はブロック暗号とストリーム暗号の2種類に分類される。ブロック暗号はデータを一定のまとまった長さごとに暗号化する方式。これに対し、ストリーム暗号はデータを1ビットずつ暗号化する方式。
*4 差分解読法、線形解読法現在知られている強力な暗号解読法。大量の平文と暗号文の組み合わせを使って暗号を解読する方法。全数探索法に比べ、より少ない計算量で暗号を解読できることがある。
*5 鍵長利用できる鍵パターンの数を定めるもので、例えばDESでは、鍵長が実質56ビットなので2の56乗個の異なる鍵が利用できる。鍵長を長くすることによって、全数探索法に対する安全性を高めることができる。
*6 AESDES暗号に代わる共通鍵暗号として、NISTが2000年頃の制定を目指している次世代の米国標準暗号。制定にあたり、NISTは全世界に向け公募を行ない、6月15日に応募を締め切った。今後、数回開催されるAES会議を経て、会議内容、学会のコメントなどを考慮して選定作業を行う方針を明らかにしている。
*7 DESデータ暗号化規格(Data Encryption Standard)。1977年に米国商務省標準局(NBS、現NIST)が定めた共通鍵暗号の規格。現在も銀行間のデータの暗号化に用いられている。
*8 安全性評価指標差分解読法や線形解読法に対する安全性を定量的に評価する尺度で、1段あたりの解読法に対する安全性評価値から暗号全体の安全性を評価する。この評価値によって、差分解読法や線形解読法が対象とした暗号に対する有効な解読法になりうるのかどうかを見積もることができる。
*9 全数探索法暗号解読法のひとつ。考えられる鍵をすべて試すことにより確実に正しい鍵を見つけだす解読法。鍵長が長いほど鍵の種類が増え、全数探索法による解読は難しくなる。
NTT NEWS RELEASE