楕円曲線暗号(ECC)は、公開鍵暗号の一種
楕円曲線暗号ことECC(Elliptic Curve Cryptography)は、楕円曲線の背後にある数学を利用して比較的小さな鍵で強力なセキュリティを提供するものです。
ECCは1980年代半ばに数学者のVictor MillerとNeal Koblitzによって発表されました。
数学的すぎるので深く踏み込みませんが、背後にある数学、というのは有限体上の、楕円曲線の代数的構造に基づいていて、わかりやすくいうと離散対数問題の難しさがECCの安全性の基礎となっています。
実例まとめ ビットコインでも使われている
楕円曲線暗号の具体例紹介
ECCの代表的な利用例として、電子署名があります。
具体的には楕円曲線デジタル署名アルゴリズム(ECDSA)は、楕円曲線暗号を利用したデジタル署名アルゴリズム(DSA)の一種です。
また、Web上での安全な通信を実現するSSL/TLS証明書にも採用されるようになってきています。
多くの大手Webサイトでは、SSL/TLS証明書のセキュリティを確保するために、RSAからECCに移行しています。
また、より短い鍵長でRSAに匹敵するセキュリティを提供できるため、計算資源が限られているノートパソコンやスマートフォンなどのモバイル機器やIoT(Internet of Things)機器でも有利に働きます。例えば256ビットのECCキーは、なんと3072ビットのRSAキーと同等のセキュリティとなるのです。どれほど負荷を軽く出来るかこの差だけでもわかると思います。
さらに、Bitcoinをはじめとするいくつかの暗号通貨はその基礎となるブロックチェーンにECCを使用しています。ビットコインの場合、ECCの安全性、スピード、効率性は、取引の認証に重要な役割を果たします。
【ちょっと備考】SSLとTLS
SSL(Secure Sockets Layer)とTLS(Transport Layer Security)証明書は、ウェブサイトの身元を認証し暗号化された接続を可能にするデジタル証明書です。
インターネット上のデータ転送を保護し機密情報を保護するために使用されます。
TLSはSSLの後継でセキュリティ機能が向上しています。
楕円曲線暗号とRSAの比較
楕円曲線暗号とRSAのそれぞれの特徴
楕円曲線暗号とRSA暗号はどちらも公開鍵暗号方式です。
ただ、その数学的基盤が大きく異なります。
RSA暗号は大きな合成数の素因数分解の困難性に基づいており、2つの大きな素数の積を因数分解することの計算上の困難さを暗号に利用しています。
一方で既に述べたように楕円曲線暗号は楕円曲線上の離散対数問題の困難性に基づいていて、楕円曲線上の点の加算操作における逆算の困難さを利用することに特徴があります。
この数学的基盤の違いが、両者の性能特性に大きな影響を与えています。
楕円曲線暗号のメリットはでかい
最も顕著な違いは必要な鍵長です。
同等のセキュリティレベルを達成するために、RSAでは2048ビット以上の鍵長が必要ですが、楕円曲線暗号では256ビット程度で済みます。
これは約8分の1の鍵長で同じセキュリティを実現できることを意味します。短い鍵長はメモリ使用量の削減、データ転送量の削減、計算処理の高速化につながりますからね。
特にスマートフォンやIoTデバイスなどの計算資源が限られた環境ではこの効率性は重要な利点となります。
暗号化・復号化の処理速度も楕円曲線暗号の方が一般的に高速です。
楕円曲線とRSA、どちらを選ぶ?
現在のインターネットセキュリティにおいてRSAは広く普及しており、多くのシステムで標準的に使用されています。しかし、量子コンピュータの発展によって将来的に脅威にさらされる可能性がより高いです。
楕円曲線暗号の特徴はやはり効率性の面で優れている点です。進展の進むモバイル通信やIoTなどの分野で積極的に採用されていますし、暗号化のコスパが良くRSAよりは量子コンピュータの脅威にさらされづらいといえるでしょう。
ただ一方で、やはりRSAは長い実績と広範な互換性を持つため、既存システムでは依然として重要な役割を果たしているのは事実です。
選択する際は計算資源の制約、既存システムとの互換性、将来の拡張性を総合的に考慮する必要があり、一概に楕円曲線が良いというわけではありません。
しかしそれでも暗号として単純に見た場合、楕円曲線は優れた特徴をRSAと比較しても持っていることに疑いの余地はないのではないでしょうか。

