マサチューセッツ工科大学(MIT)の研究チームは、公開鍵方式の暗号処理を低消費電力かつ高速で行うことのできる専用チップを開発したと発表した。暗号処理に必要な計算を少ない消費電力で行うことができるため、電池およびメモリ容量に制約があるIoT向けデバイスにも公開鍵暗号技術を実装できるようになると期待できる。研究成果は、2018年2月11~15日にサンフランシスコで開催された国際学会ISSCC(国際固体回路会議)で報告された。

今回の専用チップでは、公開鍵暗号処理をソフトウェア上で実行した場合と比較して、消費電力を1/400程度に抑えることができる。また必要なメモリ容量は1/10程度と少なくでき、計算実行速度は約500倍高速化できるという。

  • IoTデバイス向けに低消費電力かつ高速演算が可能な公開鍵暗号処理専用チップを開発した(出所:MIT)

    IoTデバイス向けに低消費電力かつ高速演算が可能な公開鍵暗号処理専用チップを開発した(出所:MIT)

公開鍵暗号は、平文の暗号化と暗号文の復号化にそれぞれ異なる鍵を使用するタイプの暗号処理方式である。メッセージの送信者から受信者に向けて暗号文を送る場合、送信者はすべての人に対してあらかじめ公開された鍵(公開鍵)を使って平文のメッセージを暗号化してから受信者に送る。

この暗号文を平文に戻すには受信者だけが知っている復号用の鍵(秘密鍵)が必要であり、通信の途中で暗号文を第三者に傍受されたとしても、秘密鍵を知られない限りは平文のメッセージが解読されることはない。この秘密鍵は受信者だけが知っていれば良く、送信者に対してもこの秘密鍵を知らせる必要がないのが公開鍵暗号の特徴である。

暗号化と復号化に同一の鍵を用いる「共通鍵暗号方式」では、メッセージの送信者と受信者の間であらかじめ鍵の情報を共有しておく必要があるため、最初に鍵の情報を受け渡すときに第三者に通信傍受されて鍵を盗まれる危険があった。この危険性を回避できるのが公開鍵暗号の利点であるといえる。

暗号化に使う公開鍵と復号化に使う秘密鍵はセットで生成されるものであり、理論的には計算によって公開鍵から秘密鍵を割り出すことが可能である。ただし、鍵の生成に用いる数学的な手順を工夫することによって秘密鍵の割り出しにかかる時間を指数関数的に増大させることができるので、現実的な時間内には公開鍵から秘密鍵を割り出せなくすることができる。公開鍵暗号の安全性はこれによって保証される。

公開鍵と秘密鍵のセットを生成するためには、巨大な素数同士の積を素因数分解することの難しさを利用したり、楕円曲線と呼ばれる数学的問題を利用したりする。こうした複雑な数学的手順にもとづく計算が必要であるため、暗号処理をソフトウェア上で行うことはコンピュータの電力を消費する作業となる。

この作業を低消費電力で行える専用チップを開発することによって、ネットワーク接続された各種センサなど電池容量・メモリ容量に限りのあるIoTデバイスでも公開鍵暗号を利用できるようにすることが、今回の研究の狙いであるという。

鍵の生成に使用する数学的手順としては楕円曲線問題が利用されている。先行研究では、ある特定の楕円曲線を利用した暗号処理を行うことができる専用チップが報告されていたが、今回の研究では1つのチップで任意の楕円曲線を扱えるようにした。

楕円曲線暗号処理で使用されるモジュラー乗算器の桁数を通常の16ビットまたは32ビットから256ビットに増やすことによって、小さな桁数の計算を統合するための余計な回路が必要なくなり、計算の低消費電力化と高速化の効果が得られたという。

また通常、回路の省スペース化のためにモジュラー乗算と逆元演算(inversion)は同一の回路で行っているが、今回のチップでは逆元演算専用のインバータ回路を設けた。これによってチップ面積は10%増加したが、そのかわりに消費電力を半減できたとしている。