このページの本文へ

ECCの技術概要と商用環境でのECC採用を披露

小悪魔ブログもECC?シマンテックが新暗号アルゴリズム解説

2013年06月07日 06時00分更新

文● 大谷イビサ/TECH.ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

6月6日、シマンテック SSLプロダクトマーケティング部(旧:日本ベリサイン)は、楕円曲線暗号を用いた新アルゴリズムであるECCの技術解説を行なった。また、グローバルで初となる商用環境での導入を行なったディレクターズが導入の経緯や検証結果についてあわせて説明した。

ECCの暗号強度はなぜ高い?

 シマンテックは従来のRSAに加え、新たにECCとDSAという暗号アルゴリズムをサポートすることを2月に発表している。特にECCは短い鍵長で強固なセキュリティを実現しており、同社ではRSAに比べ1万倍強固なセキュリティを誇ると説明する。シマンテックでは「マネージドPKI for SSL」にて商用提供する予定で、3つの暗号アルゴリズムを提供する初の認証局となる。今回の発表会では、シマンテック SSL製品本部 SSLプロダクトマーケティング部 上席部長 安達徹也氏がECCの技術解説を行なった。

シマンテック SSL製品本部 SSLプロダクトマーケティング部 上席部長 安達徹也氏

 ECCは「楕円曲線における離散対数問題の一方向性」を根拠とした次世代の暗号アルゴリズム。SSLのハンドシェイクにおいては、署名を実現するECDSAと鍵交換のECDHEに用いられている。

楕円曲線暗号を用いた新アルゴリズムであるECC

 ECCはなぜ暗号強度が高いのか? ECCでは楕円曲線やその他の乱数を用いた複雑な演算を用いているが、RSAと同様、理論上は暗号解読は可能だ。しかし、RSAでは解読を効率的に行なう手法がすでに発見されているが、ECCでは現状こうした手法がない(解析困難性)。そのため、短い鍵長でも相対的に解析時間がかかることになり、RSAの鍵長2048ビットよりも、ECCの鍵長256ビットのほうが暗号強度が高くなるという。

 一方で、これだけ複雑な演算をするのにECCの方がRSAより速くなるのはなぜかという疑問も生まれる。これは鍵長の短さが署名と鍵交換に与える影響が大きいようだ。

鍵長が短いことで署名や鍵交換の負担が小さくなる

同時セッションが増えるとECCが優位に

 シマンテックと筑波大学が共同で行なったテストでは、同一の安全性を求める場合、署名に用いるECDSAはECC、署名検証はRSAが高速だったという。サーバー証明書のハンドシェイクにかかる時間は、署名(サーバー側の処理)、鍵交換、署名検証(Webブラウザ側の処理)などの総和で決まる。そのため、セッションが少ない場合は、サーバー側とブラウザ側の速度差異が打ち消しあい、両社のレスポンスタイムの差がほとんどなかった。しかし、セッション数が増えると、サーバー側の処理負荷の小さいECDSAのメリットが大きくなり、両社のレスポンスタイムに差が出てくる。ブラウザ側の署名検証速度はサーバーの同時セッション数の影響を受けないからだ。

サーバーの負荷軽減に貢献

 説明会の後半ではディレクターズの代表取締役 加藤慶氏が、グローバルで初となるECC対応証明書の導入背景や検証結果について披露した。

ディレクターズの代表取締役 加藤慶氏

 渋谷に本社を構えるディレクターズは、ホスティングやサーバー証明書取得代行事業を手がけている。書籍化された「小悪魔女子大生のサーバエンジニア日記」(以下、小悪魔ブログ)や上場企業情報サイトである「Kmonos(クモノス)」を運営している会社と言った方がわかりやすいだろう。

「Kmonos(クモノス)」や「小悪魔女子大生のサーバエンジニア日記」を展開

 加藤氏によると、Kmonosは物理サーバーとApache、小悪魔ブログは仮想サーバーとNginxで運営されているが、「情報発信するのであれば、サイト運営者の身元を明らかにし、安心して使っていただきたいというポリシーがあった」(加藤氏)とのことで、全ページにSSLがかかっているのが特徴的だという。しかし、Kmonosでは配信ニュースが話題になって、ポータルサイトからのアクセスが増えたり、小悪魔ブログは記事がアップデートされた際に、CPUの使用率が高くなるという問題があった。

 ここで加藤氏が目を付けたのが、サーバーの増強や常時SSL化の停止といった施策ではなく、ECC対応のSSLサーバー証明書だ。SSLサーバー証明書を扱っているだけあり、もとよりECC対応の証明書への関心も高く、サーバーCPUの使用率やレスポンスタイムを検証したという。

 その結果、サーバーのCPU使用率はApacheで約34%減、Nginxで11%減になり、処理負荷の軽減に貢献していることがわかった。ただ、レスポンスタイムに関しては、ばらつきがあり、NgnixではECC、ApacheではRSAがおおむね優位だったという。

サーバーのレスポンスタイムの計測

サーバーCPU使用率の計測

 また、導入時の注意点としては、最新版のアプリケーションが必要という。「当社はApache 2.2を使っているが、検証では2.4を導入する必要があった」(加藤氏)。また、ApacheではECCとRSAのハイブリッド構成に対応しているが、Nginxは未対応。また、Apacheでハイブリッド構成にしても、Webブラウザ側でECCとRSAのどちらを選択するかまちまち。おおむねサーバーやブラウザのバージョン問題が課題になるようだ。

導入時の注意点

 加藤氏からバトンタッチされた安達氏は、ECCに加えデータの改ざん検知を実現するための、ハッシュアルゴリズムとしてSHA-256の導入も始めることを明らかにした。テスト用のECC対応6月10日から提供開始予定だという。

■関連サイト

カテゴリートップへ