ECCとRSA
ECCの歴史
ECC暗号(楕円曲線暗号: Elliptic Curve Cryptography)方式は、1985年に暗号学者のニール・コブリッツ氏(Neal Koblitz)とビクター・ミラー氏(Victor S. Miller)がほぼ同時に考案し、2004年以降、普及し始めた。
ECC証明書は、ECCの署名アルゴリズム(楕円曲線デジタル署名アルゴリズム:ECDSA: Elliptic Curve Digital Signature Algorithm)を使用することを除き、従来のRSA 証明書と同じように扱うことができる。
ECCのメリット
ECC 証明書は、RSA証明書と同レベルのセキュリティを小さいサイズで実現できる。例えば、ECC P-256 (256bit) とRSA 3072bitが同じセキュリティレベルに相当する。
ECCは、RSAよりも暗号化/復号化が容易であるという利点もある。
特に、CPUの能力に制限のあるモバイルユーザーにとっても有用である。
ECC 証明書では鍵サイズが小さいため、SSL/TLSハンドシェイク中にサーバーからクライアントへ送信されるデータ容量が少なく済む。
ECC証明書は、署名スピードが速いという特徴があり、Webサーバーに求められるCPUとメモリが少なく済む。また、ファイル転送量が少なく済むため、ネットワークパフォーマンスが向上し、トラフィックの多い大規模サイトで大きな違いが生じる可能性がある。
RSAとECCの鍵サイズ
セキュリティレベル(ビット) | RSA/DSAキーサイズ(ビット) | ECCキーサイズ(ビット) | 有効 |
80 | 1024 | 160-223 (160が相当) | 2010年まで |
112 | 2048 | 224-255 (224が相当) | 2030年まで |
128 | 3072 | 256-383 (256が相当) | 2031年以降 |
192 | 7680 | 384-511 (384が相当) | |
256 | 15360 | 512+ (521が相当) |
ECCのデメリット
ECCのいくつかのバージョンにバックドアが含まれていた。
ECCに関連したCerticomに関連する特許の問題があった。
ECCはRSAに比べ署名検証が遅い。
RSAの歴史
RSA暗号方式は、桁数が大きい合成数の素因数分解問題が困難であることを安全性の根拠とした公開鍵暗号であり、1977年に米国、マサチューセッツ工科大学のロナルド・リベスト(Ronald L. Rivest)、アディ・シャミア(Adi Shamir)、レオナルド・エーデルマン(Leonard M. Adleman)の3名により発明されたので、アルファベットの頭文字を取って「RSA」と名付けられた。1983年9月20日にマサチューセッツ工科大学が特許を取得し、RSA Security社にライセンスが付与された。他社が暗号化製品を販売する場合、ライセンス料を支払う必要があったが特許の有効期限である2000年9月20日の直前、9月6日にRSA Security社は暗号化アルゴリズムを公開し、アルゴリズムを使用して実行されたすべての開発作業に対する特許権を放棄した。この当時、この暗号化アルゴリズムは、Netscape Communicator と Microsoft Internet Explorer の両方で使用されていた。
RSAのメリット
RSAは、大きな整数を因数分解することの難しさに基づいている。
素数を識別するために大きな整数を因数分解することはプロセッサ集約的であり、今まで防御として非常に効果的であった。
しかし、それにはオーバーヘッドがともなう。
例えば、遅い鍵生成、コンピューターリソースの最大消費などがあげられる。
高速で、単純な暗号化。RSA暗号化はシンプルな原則に基づいている。
RSAは拡張性に欠ける場合があるが、社内組織など特定の状況では、より高速になる場合がある。
RSAでは、信頼性とセキュリティは整数因数分解の難易度レベルに委ねられている。
RSAのデメリット
鍵の生成に時間がかかる。
署名と復号に時間がかかり、安全な実装がやや難しい。
RSA vs ECC 比較表
RSA | ECC |
確立された公開鍵暗号方式。 | RSAと比較して新しい公開鍵暗号方式。 |
素因数分解の原理を応用している。 | 楕円曲線の数学的表現に基づく。 |
RSA2048までの利用は2030年までなので 利用が先細りしていく可能性がある。 | ウェブサーバーでの CPU、メモリ使用率が削減できるため 利用が拡大する可能性がある。 |
RSAは、大きな鍵長を必要としている。 | ECCはRSAに比べ、短い鍵長で済む。 |
参照
ECC vs RSA: Comparing SSL/TLS Algorithms – Cheap SSL Security