検索
連載

メールアドレスを公開鍵にする――「ペアリング」とその応用例クラウド時代の暗号化技術論(5)(2/2 ページ)

「好きな文字列を公開鍵として使いたい」「情報を暗号化したまま復号できる人を変更したい」――第5回では、暗号に対して求められるこのような利便性を達成するための技術である「IDベース暗号」「代理人再暗号化」と、その基礎となる「ペアリング」という関数について解説します。

Share
Tweet
LINE
Hatena
前のページへ |       

ペアリングを使ったID鍵共有

 ペアリングについての説明をしたところで、1999年に大岸氏らが提案したペアリングを使ったID鍵共有方式を紹介しましょう。これは以下のようなアルゴリズムからなります。

セットアップ

鍵生成局が、楕円曲線Eとハッシュ関数を用いてIDを楕円曲線上の点として表現する手順を決めておく。ユーザーXのIDをPX∈Eとする。整数sをマスター秘密鍵とする。

秘密鍵の生成

生成局は各ユーザーXに対してKX=sPXを秘密鍵として渡す。

鍵共有

Aは秘密鍵KAと、BのID PBを使い、sA=e(KA,PB)を計算する。

Bは秘密鍵KBと、AのID PAを使い、sB=e(PA,KB)を計算する。

 このとき、前節で説明したペアリングを用いると、

sA=e(sPA,PB)=e(PA,PB)s=e(PA,sPB)=sB

が成立するので、2人の間で秘密の値を共有できます。

 楕円曲線を使った鍵共有(ECDH)とIDベースの鍵共有との比較表を以下に記します。ECDH鍵共有では秘密鍵を決めてから公開鍵が決まるのに対して、ID鍵共有では公開情報(ID)から秘密鍵が決まります。

表1 ECDH鍵共有とID鍵共有の比較
マスター鍵 自分の秘密鍵 相手の公開鍵(情報) 共有鍵
ECDH鍵共有 なし a bP abP
ID鍵共有 s sPA PB e(PA,PB)s

代理人再暗号化

 IDベース暗号の次は、代理人再暗号化について紹介しましょう。例えば、顧客サポートを任されているAさんがクラウドに業務データを置いており、Aさんが休みの間はBさんやCさんが対応するとします。データを暗号化してクラウドに置く場合、従来なら秘密鍵をAさん、Bさん、Cさんの間で共有しなくてはなりません。しかし、鍵の共有は管理の面でいろいろ不安があります。

 かといって秘密鍵を個別に持つとなると、Aさんは休みの前に一度データをダウンロードして復号し、Bさん、Cさんの公開鍵を使って再度暗号化してアップロードしなくてはなりません。これは手間と時間がかかります。

 このとき、前回紹介した「準同型暗号」を使えば、原理的には暗号化したままデータを変換することが可能なのですが、前回も述べたように汎用的な準同型暗号は実現されたばかりでまだまだコストも高く、気軽に利用できないというのが実情です。

 そこで、「暗号化されたデータを復号することなく別の人が復号できるようにする」という機能に対象を絞って、効率のよい方法を探す研究がなされています。

 それが、「代理人再暗号化(PRE、Proxy Re-Encryption)」です。上述の通り、従来はAさんが暗号化した暗号文は、Aさん自身がいったん復号し、再度Bさん向けに暗号化し直す必要がありました。しかしPREを使えば、代理人(プロキシー)がBさん向けに再暗号化できるのです。


図4 代理人再暗号化

 ここで重要なのは、代理人が無制限に再暗号化できるわけではなく、Aさんが許可した対象にだけ変換できる点です。例えば、AさんがBさん向けの変換を許可するときは、代理人に再暗号化鍵rA→Bを渡します。代理人はrA→Bを使うことで、Aさんの公開鍵で暗号化された暗号文を、Bさん向けに再暗号化できるのです。それ以外の人向けには再暗号化できません。もちろん、再暗号化鍵で復号を行うこともできません。


図5 B、C向けにのみ再暗号化を許可した状態

 代理人再暗号化に関しては、2006 年にGiuseppe Ateniese氏らが、ペアリングを使った実用的な手法を提案しました。最近では第4回で紹介した格子暗号を利用するものや、ペアリングの代わりに電子署名と秘密分散を組み合わせた方式も提案されています。

 ここで、ペアリングを使ったPREのキーアイデアを少し紹介しましょう。Aさんの公開鍵は前節の表1にもあるようにaPの形をしています。Bさんの公開鍵はbPです。代理人はaPをbPの形に変換したいのですが、そのためにはaPを(b/a)倍する必要があります。ところが、Aがこの値(b/a)を計算することはできません。Bの秘密鍵bが必要だからです。そこで代わりに、再暗号化鍵をrA→B=(1/a)(bP)とします。bPはBの公開鍵なので、AはrA→Bを計算できます。ここでペアリングを用いると、代理人はaPから、

e(rA→B,aP)=e((b/a)P,aP)=e(P,P)(b/a)a=e(P,P)b=e(P, bP)

とbPを含んだ形、すなわちBさんが復号できる形に変換できます。

 他にもPREの応用例を紹介しておくと、2014年にNICTの王立華氏らが、IDベース暗号とPREを組み合わせた暗号システム「PRINCESS」を提案しています。これは機密レベルに応じてファイルの暗号化方法を変えて扱えるストレージサーバーです。

 また、2014年から中央大学研究開発機構の辻井重男氏のユニットが、クラウド環境における機密情報の保護と利用の両立を目指した「組織暗号」という暗号方式の実証実験を行っています。辻井氏らのシステムは、例えば暗号文を総合受付に送信すると、担当部門の公開鍵を用いて再暗号化し、担当部門宛てに転送するといった機能を持っています。技術的には楕円ElGamal暗号と電子署名を組み合わせることで実現しているようです。

今回のまとめ

  • 楕円曲線の2点で定まるペアリングは、暗号における重要な関数である。
  • ペアリングを用いてIDベース暗号が構成される。
  • 代理人再暗号化は、クラウド環境などのサーバー上で、情報を暗号化したまま復号先を変更できる技術である。

参考文献――より詳しく学びたい人のために:

IDベース暗号や代理人再暗号化についてより詳しく学びたい人のために、Web上で閲覧できるものや書籍として入手できる参考文献を紹介します。

IDベース暗号

代理人再暗号化

光成滋生(みつなり しげお)(サイボウズ・ラボ株式会社)

 サイボウズ・ラボ株式会社にてセキュリティとインフラ周りの研究開発に携わる。「数論アルゴリズムとその応用」研究部会(JANT)幹事。

  • 2004年放送型暗号の実装でIPA未踏スーパークリエータ認定
  • 2005年ストリーム暗号Toyocryptの解読で情報化月間推進会議議長表彰
  • 2010年ベクトル分解問題についての論文で電子情報通信学会論文賞受賞
  • 2015年 Microsoft MVPアワード Developer Securityを受賞

 近著に「応用数理ハンドブック」(朝倉書店、2013:楕円曲線暗号、ペアリング暗号の項目担当)、「クラウドを支えるこれからの暗号技術」(秀和システム、2015)がある。

Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       

Security & Trust 記事ランキング

ページトップに戻る