図●NECが開発した軽量・高速共通鍵暗号「TWINE」の特徴と想定用途例(配布資料から引用)
図●NECが開発した軽量・高速共通鍵暗号「TWINE」の特徴と想定用途例(配布資料から引用)
ビッグデータなどで必要となる「センサー機器からのデータ収集」を安全に実現するために利用できる
[画像のクリックで拡大表示]

 NECは2012年8月21日、ビッグデータ関連の通信などで使われる、センサー機器との間でやりとりするデータの安全性を確保するのに適した高速・軽量な共通鍵暗号アルゴリズム「TWINE」(トゥワイン)を開発したことを発表した()。センサー機器のようなリソースが非常に限られたハードウエアに実装しやすい暗号アルゴリズムでありながら、純粋なソフトウエア処理でも処理速度が低下しない点などが特徴となっている。

 DES(Data Encryption Standard)をはじめ、多くの共通鍵暗号(ブロック暗号)アルゴリズムで使われている典型的な繰り返し処理構造(元のデータである平文ブロックをかき混ぜる役割を果たす)である「一般化Feistel(フェイステル)構造」を改良することで、軽量性や高速性、安全性を高めた。

 NECによれば、(1)非線形テーブル(S-box)やXOR(排他的論理和)、ワード転置など暗号化/復号の中核となるすべての処理を「4ビット単位」で実行すること、(2)ワード転置を最適化したこと、(3)既存の軽量暗号で使われているビット転置を排除したこと---の3点が軽量性と高速性を実現できたポイントだという。

 軽量性に関しては、ASIC(Application Specific Integrated Circuit、特定用途向け集積回路)を用いて実装した場合、AES(Advanced Encryption Standard)暗号(鍵長128ビット)と比較して約1/6の回路規模となる「約1800ゲート」で実現可能だとしている。また、汎用小型マイコンで動作するソフトウエアとして実装する場合、「ROM(プログラム)容量728バイト、RAM(実行メモリー)容量335バイト」と“世界最小規模”(同社)の計算リソースで動作可能なことをうたっている。

 高速性については、小規模デバイス向けの代表的な他の暗号アルゴリズムと比較して、ASICを使った暗号処理専用デバイスとしてハードウエア実装した場合で同程度、小型マイコンによるソフトウエア処理では約4.5倍の処理速度を達成できたとしている。小型マイコンではなくサーバーで使用されるCPU(動作周波数2.8GHz)で動作させた場合、3.76Gビット/秒のスループットを得ることができたといい、これは同条件でC言語を使って実装したAESを使う場合の2.5倍ほどだという。

 NECでは今後、TWINEについて、センサーシステムなどに関連するプロダクト事業やビッグデータ活用ソリューション事業などへの適用に向けて研究開発を進めるとしている。