楕円曲線を使うと、第2回で紹介したElGamal暗号に対応する「楕円ElGamal暗号」を作れます。
ここで、
Dec(Enc(M))=Dec(rP,M+rKA)=(M+rKA)-a(rP)=M+r(aP)-arP=M
なので、Mを暗号化して復号するとちゃんと元のMに戻ります。
この公開鍵暗号はさまざまな暗号技術の中核を担います。ビットコインなどで使われている楕円曲線を使った電子書名ECDSAも、この式の応用です。
楕円曲線暗号は、前回紹介したRSA暗号やElGamal暗号と比べて鍵長(鍵の大きさ)がずっと小さくてよいのが特徴です。
RSA暗号 | 1024 | 1219 | 2048 | 2832 | 11393 |
---|---|---|---|---|---|
楕円曲線暗号 | 138 | 152 | 206 | 245 | 497 |
共通鍵暗号 | 72 | 80 | 108 | 128 | 256 |
表1 同じ安全性のRSA暗号、楕円曲線暗号、共通鍵暗号の鍵長の比較(富士通/富士通研究所「楕円曲線暗号とRSA暗号の安全性比較」を参考に作成) |
最近では、RSA暗号は2048ビット以上のものが推奨されています。楕円曲線を使うと同程度の安全性はその10分の1程度で済みます(評価方法によって数値は多少変わります)。今後安全性要求が高くなると、必要なビット長の差はますます大きくなり、楕円曲線暗号の重要度は増すでしょう。
今回のまとめ:
サイボウズ・ラボ株式会社
サイボウズ・ラボ株式会社にてセキュリティとインフラ周りの研究開発に携わる。「数論アルゴリズムとその応用」研究部会(JANT)幹事。
近著に「応用数理ハンドブック」(朝倉書店、2013:楕円曲線暗号、ペアリング暗号の項目担当)、「クラウドを支えるこれからの暗号技術」(秀和システム、2015)がある。
Copyright © ITmedia, Inc. All Rights Reserved.