暗号化アルゴリズムはコンピュータの進歩、そしてハッカーと暗号学者の戦いの中で評価が変化していきます。
現在は、RSAが公開鍵暗号の基準であり、ほとんどのSSL/TLS証明書がRSAを採用しています。
楕円曲線暗号(ECC)は、1985年にそれぞれ別に研究していた暗号学者Neal KoblitzとVictor S. Millerによって提案されました。
大きな2つの素数の積からの素因数分解が困難であることを根拠としているRSAに対し、ECCは楕円曲線上の離数対数問題を安全性の根拠としています。
「楕円曲線上のある点を基準とし、一定乗数離れた位置を計算する」ことは可能であっても、その逆の、「二つの位置から元になる乗数を計算する」ことはほぼ不可能であるという仮定に立っているのがECCです。
楕円曲線暗号では、鍵サイズを大きくすると解読の困難性が劇的に増加します。
RSAと比較した場合のECCの主な優位性は以下です。
楕円曲線暗号アルゴリズムの特性から、ECC鍵は短い鍵長でも高い暗号強度があります。
短い鍵長で強度を保てるため、長い鍵長によってコンピュータに過度な負荷をかけることがなくなります。
ECC鍵は鍵長が短いため、サーバーとクライアントのハンドシェイク過程でのデータ転送量が少なくなります。
ECC証明書が要求するCPUとメモリーの能力も低いため、ネットワークパフォーマンスが向上し、大規模なサイトでは大きな効果が生まれる可能性があります。
上記のような優位性のあるECCですが、採用の前に利用環境を確認する必要があります。
最も重要な点は、ECCに未対応なサーバーやブラウザがあるということです。スマートフォンの古いOSはECC未対応です。
また、ECCは全体としては高速な処理ができますが、 ECCの署名検証では高い計算能力が要求され、一部のデバイスではRSAよりも処理が遅くなることがあります。
ECC証明書をオーダーする場合、ECCで作成したCSRをオーダー時にご提出ください。
ApacheとIISでのECC対応CSR作成方法と証明書のインストール方法は以下を参照してください。