説明

情報処理装置、情報処理方法およびプログラム

【課題】暗号化処理量、暗号文サイズを抑制するようにすることが可能な情報処理装置、情報処理方法およびプログラムを提供する。
【解決手段】本発明に係る情報処理装置に、複数の鍵処理装置間で行われる複数受信者公開鍵暗号技術に基づく暗号化通信の際に利用される巡回群を生成する群選択部と、鍵処理装置で実行される処理に用いられ、複数の鍵処理装置それぞれに固有の秘密情報を含まず当該複数の鍵処理装置それぞれで共通して用いられるパラメータを含む複数のパラメータを選択するパラメータ選択部と、暗号文の生成または復号に関する処理に使用され、所定の写像を実現する関数を選択する関数選択部と、を設けた。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【0002】
暗号方式には、共通鍵暗号方式と公開鍵暗号方式の二種類が存在する。共通鍵暗号方式は、通信のために事前の秘密共有が必要となるが、処理が速いという性質がある。他方、公開鍵暗号方式は、通信のための事前の秘密共有は不要であるが、処理が遅いという性質がある。このような性質の違いから、各暗号方式は、それぞれの状況にあった使用が望まれる。
【0003】
例えば、自社の機器に予め秘密情報を埋め込むことが可能であり、自社の機器同士のみで通信を行う状況では、共通鍵暗号方式の使用が好まれる。また、例えば、インターネット上で赤の他人と秘密情報のやり取りをする場合には、事前の秘密共有ができていない状況も想定されるため、公開鍵暗号方式の使用が好まれる。
【0004】
近年、インターネットのウェブアプリケーションの発達により、SNS、ネットショッピング、ネットオークション等のインターネットを介した個人ユーザ同士のコミュニケーションが増加している。上述のようなサービスにおいては、ユーザがプライベートな情報や価値のあるコンテンツを送信する状況も存在しうる。そのような状況では、一対一または一対多での暗号化通信が、ユーザの状況に応じて望まれる状況も考えられる。上述のようなインターネットを介した小規模な市場での一対一、一対多通信の両方に適した暗号方式として、複数受信者公開鍵暗号方式が存在する。この技術は、複数のユーザに暗号文を送信する際、単純にユーザごとの公開鍵暗号処理をするのではなく、共有できる処理をまとめて行なうことで効率化を図る方式である。
【0005】
ここで、通常、公開鍵暗号方式を用いる暗号方式では、公開鍵暗号方式のみを用いて通信を行なうことは少なく、公開鍵暗号方式を共通鍵暗号方式と組み合わせたハイブリッド暗号方式を用いることが多い。ハイブリッド暗号方式では、処理の速い共通鍵暗号方式で秘密鍵を用いて平文部を暗号化し、暗号化公開鍵暗号方式を用いて共通鍵暗号方式で用いる秘密鍵を暗号化する。このようにすることで、公開鍵暗号方式のみを用いるよりも処理の高速化が見込める。この場合、公開鍵暗号技術を用いて処理する部分を複数受信者鍵カプセル化メカニズム(Key Encapsulation Mechanism:KEM)と呼ぶこととする。また、共通鍵暗号技術を用いて処理する部分を、複数受信者データカプセル化メカニズム(Data Encapsulation Mechanism:DEM)と呼ぶこととする。
【0006】
複数受信者KEMでは、安全性はもとより、公開鍵サイズ、秘密鍵サイズ、暗号化処理、復号処理、暗号文サイズ等が重要となってくる。このような観点から複数受信者KEMとして注目できる方式の一つに、非特許文献1に記載の方式を、既存の手法を用いて複数受信者KEMにした方式を挙げることができる。この方式は、安全性や効率のバランス面から、優れた方式であるといえる。
【0007】
【非特許文献1】E.Kiltz,“Chosen−ciphertext secure key−encapsulation based on gap hashed diffie−hellman” Public Key Cryptography,volume 4450 of Lecture Notes in Computer Science,pages 282−297,Springer,2007.
【非特許文献2】G.Hanaoka and K.Kurosawa,“Efficient chosen ciphertext secure pubic key encryption under the computational diffie−hellman assumption” Cryptology ePrint Archive,Report 2008/211,2008.http://eprint.iacr.org/.
【非特許文献3】D.Cash,E.Kiltz,V.Shoup,“The Twin Diffie−Hellman Problem and Applications” EUROCRYPT,volume 4965 of Lecture Notes in Computer Science,pages 127−145,Springer,2008.
【非特許文献4】M.Barbosa and P.Farshim,“Randomness reuse:Extensions and improvements” IMA Int.Conf.,volume 4887 of Lecture Notes in Computer Science,pages 257−276,Springer, 2007.
【非特許文献5】A.J.Menezes,P.C.Oorschot,S.A.Vanstone,“Handbook of Applied Cryptography” CRC Press,2007.
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかしながら、上述のような方式において、暗号化処理量および暗号文サイズの効率は、受信者数に比例して大きくなるという問題があった。
【0009】
そこで、本発明は、このような問題に鑑みてなされたもので、暗号化処理量、暗号文サイズを抑制することが可能な、情報処理装置、情報処理方法およびプログラムを提供することにある。
【課題を解決するための手段】
【0010】
上記課題を解決するために、本発明のある観点によれば、複数の鍵処理装置間で行われる複数受信者公開鍵暗号技術に基づく暗号化通信の際に利用される巡回群を生成する群選択部と、前記暗号化通信の際に前記鍵処理装置で実行される処理に用いられ、前記複数の鍵処理装置それぞれに固有の秘密情報を含まず当該複数の鍵処理装置それぞれで共通して用いられるパラメータを含む複数のパラメータを選択するパラメータ選択部と、前記暗号化通信における暗号文の生成または復号に関する処理に使用され、所定の写像を実現する関数を選択する関数選択部と、前記群選択部により選択された巡回群と、前記パラメータ選択部により選択された複数のパラメータと、前記関数選択部により選択された関数と、を用いて、前記複数受信者公開鍵暗号技術に利用されるシステムパラメータを生成するシステムパラメータ生成部と、を備える情報処理装置が提供される。
【0011】
かかる構成によれば、群選択部は、複数の鍵処理装置間で行われる複数受信者公開鍵暗号技術に基づく暗号化通信の際に利用される巡回群を生成する。また、パラメータ選択部は、暗号化通信の際に鍵処理装置で実行される処理に用いられ、複数の鍵処理装置それぞれに固有の秘密情報を含まず当該複数の鍵処理装置それぞれで共通して用いられるパラメータを含む複数のパラメータを選択する。また、関数選択部は、暗号化通信における暗号文の生成または復号に関する処理に使用され、所定の写像を実現する関数を選択する。また、システムパラメータ生成部は、群選択部により選択された巡回群と、パラメータ選択部により選択された複数のパラメータと、関数選択部により選択された関数と、を用いて、複数受信者公開鍵暗号技術に利用されるシステムパラメータを生成する。
【0012】
前記暗号化通信の際に前記鍵処理装置で実行される処理に用いられ、前記複数の鍵処理装置それぞれに固有の秘密情報を含まず当該複数の鍵処理装置それぞれで共通して用いられるパラメータは、前記鍵処理装置において暗号文の検証処理で用いられる検証用パラメータを生成する際に利用されるパラメータであってもよい。
【0013】
前記暗号化通信の際に前記鍵処理装置で実行される処理に用いられ、前記複数の鍵処理装置それぞれに固有の秘密情報を含まず当該複数の鍵処理装置それぞれで共通して用いられるパラメータは、前記鍵処理装置において暗号文を生成する際に用いられるセッション鍵を生成する際に利用されるパラメータであってもよい。
【0014】
前記パラメータ選択部は、前記群選択部が選択した前記巡回群に属する第1のパラメータを更に選択し、前記第1のパラメータに対して所定の群演算のみを行なうことにより前記巡回群に属する第2のパラメータを生成してもよい。
【0015】
前記パラメータ選択部は、前記群選択部が選択した前記巡回群に属する第1のパラメータを更に選択し、前記第1のパラメータを所定の関数に代入することにより得られた値を、前記巡回群に属する第2のパラメータとしてもよい。
【0016】
前記関数選択部は、所定の群に属する入力値に対して所定の群演算のみを行なっても出力値を生成することが困難である値に前記入力値を変換する変換関数を少なくとも一つ選択し、前記パラメータ選択部は、前記巡回群から選択された第1のパラメータと、前記変換関数とを用いて、更にパラメータを選択してもよい。
【0017】
前記群選択部は、互いに異なる2つの群GおよびGを選択し、選択された前記群Gおよび群Gには、群Gから群Gへの写像を実現する同型写像が存在してもよい。
【0018】
前記関数選択部は、ターゲット衝突困難性を有する関数を選択することが好ましい。
【0019】
前記関数選択部は、定義域から一様分布に入力値を選択すると、出力が値域で一様分布する関数を選択することが好ましい。
【0020】
上記課題を解決するために、本発明の別の観点によれば、他の情報処理装置との間で行われる複数受信者公開鍵暗号技術に基づく暗号化通信の際に用いられるセッション鍵を生成する複数受信者鍵カプセル化メカニズム部と、前記セッション鍵を用いて前記暗号化通信において送信される暗号文を生成するデータカプセル化メカニズム部と、を備え、前記複数受信者鍵カプセル化メカニズム部は、前記暗号化通信の際に用いられる自装置に固有の公開鍵および秘密鍵を、取得したシステムパラメータに基づいて生成する鍵生成部と、前記セッション鍵および前記暗号文の検証処理に用いられる検証用パラメータを、前記システムパラメータに基づいて生成する暗号化部と、前記セッション鍵に関する暗号文を取得して前記システムパラメータに基づいて復号する復号部と、を有し、前記システムパラメータは、前記暗号化通信の際に自装置で実行される処理に用いられ、自装置および他の情報処理装置それぞれに固有の秘密情報を含まず自装置および他の情報処理装置それぞれで共通して用いられるパラメータを含み、前記暗号化部は、前記複数受信者に共通する前記セッション鍵または前記検証用パラメータを生成する情報処理装置が提供される。
【0021】
前記暗号化通信の際に自装置で実行される処理に用いられ、前記自装置および他の情報処理装置それぞれに固有の秘密情報を含まず自装置および他の情報処理装置それぞれで共通して用いられるパラメータは、前記検証用パラメータを生成する際に利用されるパラメータであってもよい。
【0022】
前記暗号化通信の際に自装置で実行される処理に用いられ、前記自装置および他の情報処理装置それぞれに固有の秘密情報を含まず自装置および他の情報処理装置それぞれで共通して用いられるパラメータは、前記セッション鍵を生成する際に利用されるパラメータであってもよい。
【0023】
上記課題を解決するために、本発明の更に別の観点によれば、複数の鍵処理装置間で行われる複数受信者公開鍵暗号技術に基づく暗号化通信の際に利用される巡回群を生成するステップと、前記暗号化通信の際に前記鍵処理装置で実行される処理に用いられ、前記複数の鍵処理装置それぞれに固有の秘密情報を含まず当該複数の鍵処理装置それぞれで共通して用いられるパラメータを含む複数のパラメータを選択するステップと、前記暗号化通信における暗号文の生成または復号に関する処理に使用され、所定の写像を実現する関数を選択するステップと、前記群選択部により選択された巡回群と、前記パラメータ選択部により選択された複数のパラメータと、前記関数選択部により選択された関数と、を用いて、前記複数受信者公開鍵暗号技術に利用されるシステムパラメータを生成するステップと、を含む情報処理方法が提供される。
【0024】
上記課題を解決するために、本発明の更に別の観点によれば、他の情報処理装置との間で行われる複数受信者公開鍵暗号技術に基づく暗号化通信の際に用いられる自装置に固有の公開鍵および秘密鍵を、取得したシステムパラメータに基づいて生成する鍵生成ステップと、前記暗号化通信の際に用いられるセッション鍵および暗号文の検証処理に用いられる検証用パラメータを、前記システムパラメータに基づいて生成する暗号化ステップと、前記セッション鍵に関する暗号文を取得して前記システムパラメータに基づいて復号する復号ステップと、を含み、前記システムパラメータは、前記暗号化通信の際に自装置で実行される処理に用いられ、自装置および他の情報処理装置それぞれに固有の秘密情報を含まず自装置および他の情報処理装置それぞれで共通して用いられるパラメータを含み、前記暗号化部は、前記複数受信者に共通する前記セッション鍵または前記検証用パラメータを生成する情報処理方法が提供される。
【0025】
上記課題を解決するために、本発明の更に別の観点によれば、コンピュータに、複数の鍵処理装置間で行われる複数受信者公開鍵暗号技術に基づく暗号化通信の際に利用される巡回群を生成する群選択機能と、前記暗号化通信の際に前記鍵処理装置で実行される処理に用いられ、前記複数の鍵処理装置それぞれに固有の秘密情報を含まず当該複数の鍵処理装置それぞれで共通して用いられるパラメータを含む複数のパラメータを選択するパラメータ選択機能と、前記暗号化通信における暗号文の生成または復号に関する処理に使用され、所定の写像を実現する関数を選択する関数選択機能と、前記群選択部により選択された巡回群と、前記パラメータ選択部により選択された複数のパラメータと、前記関数選択部により選択された関数と、を用いて、前記複数受信者公開鍵暗号技術に利用されるシステムパラメータを生成するシステムパラメータ生成機能と、を実現させるためのプログラムが提供される。
【0026】
上記課題を解決するために、本発明の更に別の観点によれば、他の情報処理装置との間で複数受信者公開鍵暗号技術に基づく暗号化通信を行うことが可能なコンピュータに、前記暗号化通信の際に自装置で実行される処理に用いられ、自装置および他の情報処理装置それぞれに固有の秘密情報を含まず自装置および他の情報処理装置それぞれで共通して用いられるパラメータを含むシステムパラメータに基づいて、前記暗号化通信の際に用いられる自装置に固有の公開鍵および秘密鍵を生成する機能と、前記暗号化通信の際に用いられるセッション鍵および暗号文の検証処理に用いられる検証用パラメータを、前記システムパラメータに基づいて生成する機能と、前記セッション鍵に関する暗号文を取得して前記システムパラメータに基づいて復号する機能と、を実現させるためのプログラムが提供される。
【発明の効果】
【0027】
本発明によれば、暗号化処理量、暗号文サイズを抑制することが可能である。
【発明を実施するための最良の形態】
【0028】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【0029】
なお、説明は、以下の順序で行うものとする。
(1)目的
(2)本発明の基盤となる技術について
(3)第1の実施形態
(3−1)情報処理装置の構成について
(3−2)本実施形態に係る情報処理方法の基盤となる暗号処理方法について
(3−3)情報処理方法について
(3−4)暗号化時の計算量と暗号文のサイズについて
(3−5)第1変形例について
(4)第2の実施形態
(4−1)情報処理装置の構成について
(4−2)本実施形態に係る情報処理方法の基盤となる暗号処理方法について
(4−3)情報処理方法について
(4−4)暗号化時の計算量と暗号文のサイズについて
(4−5)第1変形例について
(4−6)暗号化時の計算量と暗号文のサイズについて
(5)第3の実施形態
(5−1)情報処理装置の構成について
(5−2)本実施形態に係る情報処理方法の基盤となる暗号処理方法について
(5−3)情報処理方法について
(5−4)暗号化時の計算量と暗号文のサイズについて
(6)第4の実施形態
(6−1)情報処理装置の構成について
(6−2)本実施形態に係る情報処理方法の基盤となる暗号処理方法について
(6−3)情報処理方法について
(6−4)第1変形例について
(7)本発明の各実施形態に係る情報処理装置のハードウェア構成について
(8)まとめ
【0030】
<目的>
以下で説明する本発明の各実施形態に係る情報処理装置および情報処理方法は、上述の複数受信者KEMに関するものである。本発明の各実施形態に係る情報処理装置および情報処理方法について説明するに先立ち、複数受信者公開鍵暗号方式が置かれている現状について説明しながら、本発明が目的とするところについて、詳細に説明する。
【0031】
本発明で着目している複数受信者公開鍵暗号方式は、複数のユーザに暗号文を送信する際、単純にユーザごとに公開鍵暗号処理をするのではなく、共有できる処理をまとめて行なうことで効率化を図った方式である。ここで、実行される処理の効率化を図るために、公開鍵暗号技術と共通鍵暗号技術とを組み合わせたハイブリッド型技術が用いられる。
【0032】
なお、複数受信者公開鍵暗号技術と類似する技術として、public−key broadcast encryption schemeという技術が存在する。これらの技術は、想定している利用状況に違いがある。すなわち、public−key broadcast encryption schemeでは、システムの管理者に大きな負担がかかる大掛かりな大規模システムを想定している。他方、複数受信者公開鍵暗号技術では、システム構成後は管理者が不要となる、手軽な小規模システムを想定している。
【0033】
public−key broadcast encryption schemeでは、基本的にユーザがシステムに加入するたびに、管理者が鍵生成を行い、生成した鍵をユーザに渡さなければならない。そのため、システムの管理者は、システム構成中はシステムを管理する必要がある。他方、複数受信者公開鍵暗号では、一度システムを構築してしまえば、ユーザは自分一人で鍵生成を行うことが可能であり、自由にシステムに加入できる。このことから、システムの管理者は、初めにシステムを構築してしまえば、管理の必要はない。ただし、複数受信者公開鍵暗号では、受信者が増えれば増える程システムの効率が低下するため、大多数に暗号文を送信するような状況には適さない。
【0034】
そこで、本発明の各実施形態に係る情報処理装置および情報処理方法では、暗号化処理量を約半分程度に抑制し、暗号文サイズも半分程度に抑制することが可能な、情報処理装置、情報処理方法およびプログラムを提供することを目的とする。
【0035】
<本発明の基盤となる技術について>
まず、本発明に係る各実施形態について詳細なる説明をするに先立ち、図1〜図13を参照しながら、本発明の各実施形態を実現する上で基盤を成す技術的事項について述べる。なお、本発明の各実施形態は、以下に記載する基盤技術の上に改良を加えることにより、より顕著な効果を得ることができるように構成されたものである。従って、その改良に係る技術こそが本発明の各実施形態の特徴を成す部分である。つまり、本発明の各実施形態は、ここで述べる技術的事項の基礎概念を踏襲するが、その本質はむしろ改良部分に集約されており、その構成が明確に相違すると共に、その効果において基盤技術とは一線を画するものであることに注意されたい。
【0036】
[公開鍵暗号システムについて]
まず、図1〜図3を参照しながら、公開鍵暗号システムについて説明する。図1〜図3は、公開鍵暗号システムについて説明するための説明図である。
【0037】
公開鍵暗号システムを用いる各ユーザは、例えば図1に示したように、各自でシステムパラメータと呼ばれる様々なパラメータを設定し、システムパラメータの設定後に各自が使用する秘密鍵および公開鍵を生成する。システムパラメータは、公開鍵暗号システムで用いられるハッシュ(hash)関数、および、各種の演算に用いられる群や双線形写像などの、ユーザの秘密情報を含まないパラメータである。続いて、公開鍵暗号システムに参加する各ユーザは、各自が決定したシステムパラメータと、公開鍵とを公開する。
【0038】
例えば、図1に示した例では、ユーザ1は、システムパラメータIを設定し、公開鍵pkと、秘密鍵skとを生成する。秘密鍵skは、ユーザ1のみが知る鍵としてユーザ1が秘匿し、システムパラメータIと、公開鍵pkとを他のユーザに公開する。
【0039】
同様に、ユーザ2は、システムパラメータI、公開鍵pk、秘密鍵skをそれぞれ設定し、システムパラメータIおよび公開鍵pkを公開する。また、ユーザ3は、システムパラメータI、公開鍵pk、秘密鍵skをそれぞれ設定し、システムパラメータIおよび公開鍵pkを公開する。
【0040】
また、公開鍵暗号システムを用いてメッセージを送信する際、メッセージの送信者は、受信者が公開している公開鍵とシステムパラメータとを用いて、送信したいメッセージを暗号化する。例えば、図1に示したように、ユーザ1がユーザ2およびユーザ3にメッセージを送信する場合を考える。ユーザ1は、ユーザ2が公開している公開鍵pkとシステムパラメータIとを用いてメッセージmを暗号化し、ユーザ2に送信する。同様に、ユーザ1は、ユーザ3が公開している公開鍵pkとシステムパラメータIとを用いてメッセージmを暗号化し、ユーザ3に送信する。なお、図1において、Enc(pk、m、I)という表記は、メッセージmを、公開鍵pkおよびシステムパラメータIを用いて暗号化したものを表す。
【0041】
また、ユーザは、各自で公開鍵pkおよび秘密鍵skを生成できるため、新たにシステムに参加を希望するユーザは、任意のタイミングで公開鍵暗号システムに参加できる。例えば図2に示したように、ユーザ4が公開鍵暗号システムに参加を希望する場合には、ユーザ4自身がシステムパラメータIを設定し、公開鍵pkと秘密鍵skとを生成した上で、システムパラメータIと公開鍵pkとを公開する。ユーザ3がユーザ4に対してメッセージmを送信する場合には、ユーザ3は、ユーザ4が公開している公開鍵pkとシステムパラメータIとを用いてメッセージmを暗号化し、ユーザ4に送信する。
【0042】
また、公開鍵暗号システムで用いられるシステムパラメータは、ユーザの秘密情報を含まないパラメータであるため、ユーザ間で共有することが可能である。そのため、図3に示したように、公開鍵暗号システムで共通して用いられるシステムパラメータを生成する第三者をシステムパラメータ生成者として設定することができる。また、システムパラメータ生成者は、ユーザとして公開鍵暗号システムに参加することも可能である。
【0043】
[複数受信者公開鍵暗号システムについて]
次に、図4〜図7を参照しながら、複数受信者公開鍵暗号システムについて説明する。図4〜図7は、複数受信者公開鍵暗号システムについて説明するための説明図である。
【0044】
複数受信者公開鍵暗号システム(multi−recipient public−key encryption system)は、例えば図4に示したように、システムパラメータ生成者が生成したシステムパラメータIを共有して用いる暗号システムである。
【0045】
複数受信者公開鍵暗号システムを用いる各ユーザは、例えば図4に示したように、公開されているシステムパラメータIを用いて、各自が使用する秘密鍵および公開鍵を生成する。続いて、複数受信者公開鍵暗号システムに参加する各ユーザは、各自が決定した公開鍵を公開する。
【0046】
複数受信者公開鍵暗号システムでは、複数の受信者の公開鍵と共通のシステムパラメータとを用いて、送信したいメッセージを暗号化する。共通のシステムパラメータを利用することで、数人分の暗号化処理を、いっぺんに効率的に行うことが可能である。
【0047】
例えば図5に示したように、ユーザ1がユーザ2およびユーザ3のそれぞれにメッセージを送信する場合を考える。この場合、ユーザ1は、ユーザ2およびユーザ3の公開鍵pk、pkと、共通のシステムパラメータIと、を用いて、ユーザ2およびユーザ3に送信するメッセージをいっぺんに暗号化する。なお、図5において、MEnc((pk、pk)、(m、m)、I)という表記は、メッセージmおよびメッセージmを、公開鍵pk、pkおよびシステムパラメータIを用いて暗号化し、複数受信者に一度に送信したものを表す。
【0048】
また、複数受信者公開鍵暗号システムでは、m=mのように、複数の受信者に同じメッセージを送信する場合には、このような利用法に特化した、より効率的な暗号化方法を用いることが可能である。
【0049】
また、ユーザは、共通のシステムパラメータIを用いて各自で公開鍵pkおよび秘密鍵skを生成できるため、新たにシステムに参加を希望するユーザは、任意のタイミングで複数受信者公開鍵暗号システムに参加できる。例えば図6に示したように、ユーザ4が複数受信者公開鍵暗号システムに参加を希望する場合には、ユーザ4自身が公開鍵pkと秘密鍵skとを生成した上で、公開鍵pkとを公開する。ユーザ3がユーザ4に対してメッセージmを送信する場合には、ユーザ3は、ユーザ4が公開している公開鍵pkと共通のシステムパラメータIとを用いてメッセージmを暗号化し、ユーザ4に送信する。
【0050】
複数受信者公開鍵暗号システムの一例として、一対多通信を行う方式がある。この一対多通信方式の例として、複数の受信者にそれぞれ異なるメッセージを暗号化する方式と、複数の受信者に同一のメッセージを暗号化する方式とがある。
【0051】
図7に示した例は、ElGamal暗号を基にした複数受信者公開鍵暗号システムである。この方式は、各ユーザが設定した公開鍵pk=(g、y)を用いて、メッセージmを暗号化する。しかしながら、この暗号化されたメッセージは、各受信者に宛てたメッセージ全てを含むものであるため、n人にメッセージを送信すると、1人にメッセージを送信した場合に比べてn倍の処理が必要となるという問題がある。
【0052】
[ハイブリッド暗号について]
続いて、図8〜図13を参照しながら、ハイブリッド暗号について、詳細に説明する。図8〜図13は、ハイブリッド暗号について説明するための説明図である。
【0053】
まず、図8を参照しながら、公開鍵暗号システムの長所と短所について説明する。公開鍵暗号システムは、通信を行うユーザ間で事前の秘密共有が不要であるという長所がある。公開鍵暗号システムでは、図8に示したように、公開鍵pkを用いて送信したい平文を暗号文にし、受信者へと送信する。暗号文を受信した受信者は、自身の秘密鍵skを用いて、暗号文を復号する。
【0054】
しかしながら、大容量のデータを送信する場合には、処理すべきデータが大きいために、一層の処理時間が必要になるという短所がある。
【0055】
他方、共通鍵暗号システムは、通信を行うユーザ間で事前の秘密共有が必要であるという短所はあるものの、暗号化処理が早いという長所が存在する。
【0056】
そこで、公開鍵暗号システムによる処理の内部で共通鍵暗号システムによる処理を行うハイブリッド暗号とすることで、処理の効率化を図ることが可能である。すなわち、共通鍵暗号処理を用いて大容量データを暗号文とするとともに、共通鍵暗号処理に用いる鍵を、公開鍵暗号処理を用いて暗号化する。ここで、公開鍵暗号処理を用いて暗号処理を行う処理部を、鍵カプセル化メカニズム部(以下、KEMとも称する。)と呼び、共通鍵暗号処理を用いて暗号処理を行う処理部を、データカプセル化メカニズム部(以下、DEMとも称する。)と呼ぶこととする。
【0057】
ハイブリッド暗号システムを図解すると、図9のようになる。
送信者は、セッション鍵dkを用いて、送信すべき大容量データをDEMの暗号化処理部(DEM.enc)により暗号化する。また、送信者は、セッション鍵dkを、公開鍵pkを用いてKEMの暗号化処理部(KEM.enc)により暗号化する。送信者は、セッション鍵dkを暗号化したφと、データを暗号化したχとを、暗号文として送信する。
【0058】
暗号文の受信者は、暗号文に含まれるφを、秘密鍵skを用いてKEMの復号処理部(KEM.dec)により処理し、セッション鍵dkを生成する。また、暗号文に含まれるχを、生成したセッション鍵dkを用いてDEMの復号処理部(DEM.dec)により処理し、データを復号する。
【0059】
このように、公開鍵暗号システムをハイブリッド化するには、図10に示したように、装置内に、KEMとDEMとを設ける。KEMには、公開鍵pkが入力され、セッション鍵dkは、KEMのアルゴリズムの内部で生成される乱数を利用して、暗号文と一緒に生成される。また、DEMには、平文mが入力され、KEMにより生成されたセッション鍵dkを用いて暗号化される。
【0060】
なお、KEMは、ハイブリッド暗号を構成する際に、乱数であるセッション鍵を公開鍵暗号技術で暗号化する用途に特化した技術である。また、全ての公開鍵暗号はKEMとして利用可能であるが、全ての公開鍵暗号がKEMとして利用できるとは言えない。
【0061】
上述のようなハイブリッド方式を、複数受信者公開鍵暗号システムに適用することが可能である。複数受信者公開鍵システムをハイブリッド化する場合には、図11〜図13に示したように、主に三種類の方法がある。
【0062】
第1の方法は、例えば図11に示したように、複数の受信者に対してそれぞれ異なるメッセージを暗号化して送信する複数受信者公開鍵暗号を、ハイブリッド化するものである。
【0063】
この第1の方法は、通常の公開鍵暗号方式をハイブリッド化する場合に導入したKEMの換わりに、以下で説明するmmKEM(multi−recipient multi−KEM)を設ける方法である。
【0064】
図11に示したように、mmKEMには、それぞれの受信者の公開鍵pk〜pkが入力され、それぞれの受信者用のセッション鍵dk〜dkと、セッション鍵dk〜dkを暗号化したφ〜φが出力される。また、DEMは、それぞれの受信者に向けて送信されるメッセージm〜mを、対応するセッション鍵dk〜dkを用いて暗号化し、χ〜χを出力する。送信者は、暗号文として、φ〜φと、χ〜χとを、一度に複数の受信者に向けて送信する。
【0065】
第2および第3の方法は、例えば図12および図13に示したように、複数の受信者に対して共通のメッセージを暗号化して送信する複数受信者公開鍵暗号を、ハイブリッド化するものである。
【0066】
第2の方法は、例えば図12に示したように、疑似乱数生成器(Pseudo Random Number Generator:PRNG)と、mmKEMと、DEMと、を用いて、それぞれの受信者用のセッション鍵dk〜dkを暗号化する。
【0067】
より詳細には、PRNGから出力された一つのセッション鍵dkを、mmKEMから出力されたそれぞれの受信者用のセッション鍵dk〜dkを利用してDEMにより共通鍵暗号化して、χ〜χを生成する。また、それぞれの受信者に共通して送信されるメッセージmを、PRNGから出力された一つのセッション鍵dkを用いて共通鍵暗号化し、暗号化されたメッセージχを生成する。送信者は、それぞれのセッション鍵dk〜dkを暗号化したφ〜φと、共通鍵暗号化処理に用いたセッション鍵dkを暗号化したχ〜χと、暗号化されたメッセージχとを、一度に複数の受信者に向けて暗号文として送信する。
【0068】
第3の方法は、通常の公開鍵暗号方式をハイブリッド化する場合に導入したKEMの換わりに、以下で説明するmsKEM(multi−recipient single−KEM)を設ける方法である。
【0069】
図13に示したように、msKEMには、それぞれの受信者の公開鍵pk〜pkが入力され、それぞれの受信者に共通のセッション鍵dkと、セッション鍵dkをそれぞれの受信者用に暗号化したφ〜φとが出力される。また、DEMは、それぞれの受信者に向けて送信される共通のメッセージmを、セッション鍵dkを用いて暗号化し、暗号化されたメッセージχを出力する。送信者は、暗号文として、φ〜φと、χとを、一度に複数の受信者に向けて送信する。
【0070】
このように、それぞれの受信者に対して異なるメッセージを送信するか、共通のメッセージを送信するかに応じて、上述の第1〜第3の方法を適宜選択することで、複数受信者公開鍵暗号システムをハイブリッド化することが可能である。
【0071】
[ラグランジュの補間公式について]
次に、ラグランジュの補間公式について、簡単に説明する。以下で説明する本発明の各実施形態では、二次関数に関するラグランジュの補間公式が用いられる。
【0072】
一般に、任意の三点が与えられた場合に、これら三点を通る二次関数は、一意に定まる。より詳細には、(x,f(x))、(x,f(x))、(x,f(x))の三点が与えられたとき、二次関数f(x)は、以下の式1のように表せる。ここで、以下の式1で用いられるλは、以下の式2〜式4の通りである。
【0073】
【数1】

【0074】
すなわち、任意の三点が与えられることで、任意のxに対してf(x)を算出することが可能である。
【0075】
このラグランジュの補間公式を、本発明の各実施形態では、以下のように適用する。すなわち、素数pを位数に持つ群の生成元をgとし、二次関数f(x)=a+ax+aに対して、以下に示す内容が成立する。
【0076】
生成元gと、任意の三点(x,gf(x1))、(x,gf(x2))、(x,gf(x3))とが与えられた場合に、生成元gの冪に二次関数の係数a、a、aがそれぞれ乗った、以下の式5に示した値を算出することが可能である。
【0077】
【数2】

【0078】
[双線形群における双線形写像について]
続いて、双線形群上の双線形写像に関して説明する。G、G、Gを、それぞれ素数pを位数とする巡回群とする。双線形写像eとは、任意の生成元g∈G、g∈Gおよびa,b∈Zpに対して、以下の式6に示す双線形性と、以下の式7に示す非退化性の二つの性質を満たす写像のことをいう。なお、下記式7において、1は、Gの単位元である。
【0079】
【数3】

【0080】
なお、双線形写像は、GとGとの関係性から、大きく分けて以下の三種類に分類できる。
【0081】
・G,Gが同一の群である場合の双線形写像
・G,Gは異なる群であるが、ψ:G→Gという効率的な同型写像が存在する場合の双線形写像
・G,Gは異なる群であり、ψ:G→Gという効率的な同型写像が存在しない場合の双線形写像
【0082】
以上説明したような基盤技術を踏まえながら、以下では、本発明の各実施形態に係る情報処理装置および情報処理方法について、詳細に説明する。
【0083】
(第1の実施形態)
<情報処理装置の構成について>
以下に、図14〜図16を参照しながら、本発明の第1の実施形態に係る情報処理装置の構成について詳細に説明する。図14は、システムパラメータ生成装置として機能する本実施形態に係る情報処理装置の構成を説明するためのブロック図である。図15および図16は、鍵処理装置として機能する本実施形態に係る情報処理装置の構成を説明するためのブロック図である。
【0084】
[システムパラメータ生成装置の構成について]
まず、図14を参照しながら、システムパラメータ生成者が使用するシステムパラメータ生成装置として機能する本実施形態に係る情報処理装置10の構成について、詳細に説明する。
【0085】
本実施形態に係る情報処理装置10は、例えば、群選択部101と、関数選択部103と、パラメータ選択部105と、システムパラメータ生成部107と、システムパラメータ公開部109と、通信制御部111と、記憶部114と、を主に備える。
【0086】
群選択部101は、例えば、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等から構成されている。群選択部101は、入力されたセキュリティパラメータ1に基づいて、kビットの素数pを、乱数等を用いて無作為に選択する。次に、群選択部101は、選択した素数pを位数とする群G、G、Gを選択する。また、群選択部101は、G×G→Gとなる双線形写像eをあわせて選択する。ここで、素数pのビット数は、必要とするセキュリティレベルに応じて任意の値を設定することが可能であるが、例えば、k=160と設定することができる。
【0087】
ここで、群選択部101が選択する群は、双線形写像が実現できる群であれば、任意の群であってもよい。
【0088】
群選択部101は、選択した素数p、群G、G、G、双線形写像eを、後述するシステムパラメータ生成部107に伝送する。また、群選択部101は、選択した双線形群G、G、Gと、決定した双線形写像eとを、後述する記憶部113に記録してもよい。
【0089】
関数選択部103は、例えば、CPU、ROM、RAM等から構成されている。関数選択部103は、群選択部101が選択した群を用いて、後述する鍵処理装置が処理を実行する際に使用する各種の関数を選択する。より詳細には、関数選択部103は、関数選択部103は、例えば、G→Zという写像を実現する関数Hと、G→{0,1}という写像を実現する関数Hと、を選択する。ここで、lは、関数Hを用いた結果生成される値のビット長であり、必要とするセキュリティレベルに応じて任意の値を設定可能であるが、例えば、l=128(すなわち、128ビット)と設定することができる。
【0090】
関数選択部103が選択する二種類の関数は、上述の写像を実現するものであれば、任意の関数を選択することが可能である。また、関数Hおよび関数Hが以下の性質を満たすものであれば、安全性を証明することが可能となる。
【0091】
・関数Hが、ターゲット衝突困難性(target collision resistant)という性質を満たす関数TCRである。
・関数Hが、定義域から一様分布に入力値を選択すると、出力が値域で一様分布する関数Hである。
【0092】
関数選択部103は、選択した各種の関数を、後述するシステムパラメータ生成部107に伝送する。また、関数選択部103は、選択した各種の関数を、後述する記憶部113に記録してもよい。
【0093】
パラメータ選択部105は、例えば、CPU、ROM、RAM等から構成されている。パラメータ選択部105は、本実施形態に係る情報処理装置10がシステムパラメータを生成するために用いる様々なパラメータを、所定の方法に基づいて選択する。パラメータ選択部105は、各種パラメータを選択する際に、例えば乱数等を利用して無作為に値を決定する。パラメータ選択部105は、選択した各種パラメータを、後述するシステムパラメータ生成部107に伝送する。また、パラメータ選択部105は、選択した各種パラメータを、後述する記憶部113に記録してもよい。
【0094】
システムパラメータ生成部107は、例えば、CPU、ROM、RAM等から構成されている。システムパラメータ生成部107は、群選択部101、パラメータ選択部103および関数選択部105から伝送された各種データを利用して、複数受信者公開鍵暗号システムにおけるシステムパラメータを生成する。生成されたシステムパラメータは、HDDやセキュアモジュールを備えたメモリ等から構成される記憶部113に記録される。また、システムパラメータ生成部107は、生成したシステムパラメータを、後述するシステムパラメータ公開部109に伝送する。
【0095】
システムパラメータ公開部109は、例えば、CPU、ROM、RAM等から構成されている。システムパラメータ公開部109は、システムパラメータ生成部107が生成したシステムパラメータを、通信網3を介して鍵処理装置として機能する情報処理装置20に配布する。
【0096】
通信制御部111は、例えば、CPU、ROM、RAM、通信装置等から構成されている。通信制御部111は、システムパラメータ生成装置として機能する情報処理装置10と、鍵処理装置として機能する情報処理装置20との間で行われる通信を制御する。
【0097】
記憶部113には、群選択部101が選択した素数p、群および双線形写像と、関数選択部103が選択した各種関数と、パラメータ選択部105が選択した各種パラメータと、が記録される。また、記憶部113は、これらの各種データ以外にも、情報処理装置10が、何らかの処理を行う際に保存する必要が生じた様々なパラメータや処理の途中経過等、または、各種のデータベース等を、適宜記憶することが可能である。この記憶部113は、群選択部101、関数選択部103、パラメータ選択部105、システムパラメータ生成部107、システムパラメータ公開部109、通信制御部111等が、自由に読み書きを行うことが可能である。
【0098】
なお、情報処理装置10が接続可能な通信網3は、システムパラメータ生成装置として機能する情報処理装置10と、鍵処理装置として機能する情報処理装置20とを、双方向通信又は一方向通信可能に接続する通信回線網である。この通信網は、例えば、インターネット、電話回線網、衛星通信網、同報通信路等の公衆回線網や、WAN(Wide Area Network)、LAN(Local Area Network)、IP−VPN(Internet Protocol−Virtual Private Network)、ワイヤレスLAN等の専用回線網などで構成されており、有線/無線を問わない。
【0099】
以上、本実施形態に係る情報処理装置10の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、CPU等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
【0100】
なお、上述のような本実施形態に係る情報処理装置の各機能を実現するためのコンピュータプログラムを作製し、パーソナルコンピュータ等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
【0101】
[鍵処理装置の構成について]
次に、図15および図16を参照しながら、複数受信者公開鍵暗号システムを利用する各ユーザが使用する鍵処理装置として機能する本実施形態に係る情報処理装置20の構成について、詳細に説明する。
【0102】
本実施形態に係る情報処理装置20は、例えば、複数受信者鍵カプセル化メカニズム部(mKEM)201と、データカプセル化メカニズム部(DEM)203と、通信制御部205と、記憶部207と、を主に備える。
【0103】
mKEM201は、例えば、CPU、ROM、RAM等から構成されている。mKEM201は、メッセージの送信対象である受信者の公開鍵を用いて、公開鍵暗号処理に基づく演算を行い、送信するメッセージを暗号化するためのセッション鍵を生成する。また、mKEM201は、生成したセッション鍵を暗号化して、後述する通信制御部205を介して、送信者が使用している情報処理装置20に暗号化したセッション鍵を伝送する。また、mKEM201は、生成したセッション鍵を、後述するDEM203に伝送する。このmKEM201については、以下で改めて詳細に説明する。
【0104】
DEM203は、例えば、CPU、ROM、RAM等から構成されている。DEM203は、mKEM201から伝送されたセッション鍵を用いて、受信者に送信するメッセージを、共通鍵暗号処理に基づいて暗号化する。また、DEM203は、暗号化されたメッセージを、後述する通信制御部205を介して、他の情報処理装置(鍵処理装置)20に伝送する。なお、DEM203で行われる共通鍵暗号処理としては、例えば、送信するメッセージ等の特性や各種の条件に応じて、任意の方法を選択することが可能である。
【0105】
通信制御部205は、例えば、CPU、ROM、RAM、通信装置等から構成されている。通信制御部205は、システムパラメータ生成装置として機能する情報処理装置10との間で行われる通信を制御する。また、通信制御部205は、受信者が使用する他の情報処理装置20との間で行われる通信を制御する。
【0106】
記憶部207には、システムパラメータ生成装置として機能する情報処理装置10が生成したシステムパラメータが、記録される。また、記憶部207は、システムパラメータ以外にも、情報処理装置20が、何らかの処理を行う際に保存する必要が生じた様々なパラメータや処理の途中経過等、または、各種のデータベース等を、適宜記憶することが可能である。この記憶部207は、mKEM201、DEM203、通信制御部205等が、自由に読み書きを行うことが可能である。
【0107】
続いて、図16を参照しながら、本実施形態に係る情報処理装置20が備えるmKEM201について、詳細に説明する。
【0108】
本実施形態に係る情報処理装置20は、例えば図16に示したように、鍵生成部211と、暗号化部221と、復号部231と、を主に備える。
【0109】
鍵生成部211は、例えば、CPU、ROM、RAM等から構成されている。鍵生成部211は、システムパラメータ生成装置として機能する情報処理装置10から取得したシステムパラメータを用いて、情報処理装置20を所持するユーザが使用する公開鍵pkと秘密鍵skとを生成する。この鍵生成部211は、パラメータ生成部213と、秘密鍵生成部215と、公開鍵生成部217と、公開鍵公開部219と、を更に備える。
【0110】
パラメータ生成部213は、例えば、CPU、ROM、RAM等から構成されている。パラメータ生成部213は、mKEM201が実行する複数受信者公開鍵暗号処理に規定されている鍵生成方法に則って、鍵生成処理に必要となる各種のパラメータを生成する。各種のパラメータの生成に際して、パラメータ生成部213は、記憶部207等に格納されているシステムパラメータを参照する。パラメータ生成部213は、生成した各種のパラメータを、後述する秘密鍵生成部215と、公開鍵生成部217とに伝送する。
【0111】
秘密鍵生成部215は、例えば、CPU、ROM、RAM等から構成されている。秘密鍵生成部215は、パラメータ生成部213から伝送されたパラメータと、記憶部207等に格納されているシステムパラメータとを用い、mKEM201が実行する複数受信者公開鍵暗号処理に規定されている鍵生成方法に則って、秘密鍵skを生成する。秘密鍵生成部215は、生成した秘密鍵skを、記憶部207等に格納して秘匿する。
【0112】
公開鍵生成部217は、例えば、CPU、ROM、RAM等から構成されている。公開鍵生成部217は、パラメータ生成部213から伝送されたパラメータと、記憶部207等に格納されているシステムパラメータとを用い、mKEM201が実行する複数受信者公開鍵暗号処理に規定されている鍵生成方法に則って、公開鍵pkを生成する。公開鍵生成部217は、生成した公開鍵pkを、記憶部207等に格納するとともに、後述する公開鍵公開部219に伝送する。
【0113】
公開鍵公開部219は、例えば、CPU、ROM、RAM等から構成されている。公開鍵公開部219は、公開鍵生成部217から伝送された公開鍵pkを、通信制御部205を介して、他の情報処理装置20に公開する。
【0114】
暗号化部221は、例えば、CPU、ROM、RAM等から構成されている。暗号化部221は、システムパラメータ生成装置として機能する情報処理装置10から取得したシステムパラメータと、メッセージの受信者が所持している情報処理装置20が公開している公開鍵pkとを用いて、セッション鍵の生成および暗号化を行う。この暗号化部221は、パラメータ選択部223と、検証用パラメータ生成部225と、セッション鍵生成部227と、を更に備える。
【0115】
パラメータ選択部223は、例えば、CPU、ROM、RAM等から構成されている。パラメータ選択部223は、mKEM201が実行する複数受信者公開鍵暗号処理に規定されている暗号化方法に則って、暗号化処理に必要となる各種のパラメータを選択および生成する。各種のパラメータの選択および生成に際して、パラメータ選択部223は、記憶部207等に格納されているシステムパラメータを参照する。パラメータ選択部223は、生成した各種のパラメータを、後述する検証用パラメータ生成部225と、セッション鍵生成部227とに伝送する。
【0116】
検証用パラメータ生成部225は、例えば、CPU、ROM、RAM等から構成されている。検証用パラメータ生成部225は、mKEM201が実行する複数受信者公開鍵暗号処理に規定されている暗号化方法に則って、メッセージの受信者が復号処理において実行する検証処理に必要となる検証用パラメータを生成する。検証用パラメータ生成部225は、検証用パラメータの生成に際して、システムパラメータと、パラメータ選択部223から伝送されたパラメータとを利用し、メッセージの受信者が公開している公開鍵pkは利用しない。
【0117】
セッション鍵生成部227は、例えば、CPU、ROM、RAM等から構成されている。セッション鍵生成部227は、mKEM201が実行する複数受信者公開鍵暗号処理に規定されている暗号化方法に則って、DEM203が実行する共通鍵暗号処理に用いられるセッション鍵を生成する。また、セッション鍵生成部227は、生成したセッション鍵を、DEM203に伝送する。
【0118】
暗号化部221は、生成した検証用パラメータと、セッション鍵とを、互いに関連づけて、DEM203で生成される暗号化されたメッセージとともに、通信制御部205を介して他の情報処理装置20に伝送する。すなわち、暗号化部221は、情報処理装置20の所有者がメッセージの送信者となる場合に利用される処理部である。
【0119】
復号部231は、例えば、CPU、ROM、RAM等から構成されている。復号部231は、システムパラメータ生成装置として機能する情報処理装置10から取得したシステムパラメータと、メッセージの送信者が所持している情報処理装置20から伝送された暗号文と、自身の秘密鍵skとを用いて、セッション鍵の復号を行う。この復号部231は、パラメータ算出部233と、検証部235と、セッション鍵算出部237と、を更に備える。
【0120】
パラメータ算出部233は、例えば、CPU、ROM、RAM等から構成されている。パラメータ算出部233は、mKEM201が実行する複数受信者公開鍵暗号処理に規定されている復号方法に則って、復号処理に必要となる各種のパラメータを算出する。各種のパラメータの算出に際して、パラメータ算出部233は、記憶部207等に格納されているシステムパラメータと、メッセージの送信者から送信された情報とを参照する。また、パラメータ算出部233は、パラメータの算出に際して、自身の秘密鍵skを用いることも可能である。パラメータ算出部233は、算出した各種のパラメータを、後述する検証部235と、セッション鍵算出部237とに伝送する。
【0121】
検証部235は、例えば、CPU、ROM、RAM等から構成されている。検証部235は、mKEM201が実行する複数受信者公開鍵暗号処理に規定されている復号方法に則って、メッセージの送信者から送信された暗号文の検証処理(いわゆるvalidity check)を行う。検証部235は、検証の結果、メッセージの送信者から送信された暗号文が正当なものであると判断した場合には、その旨を後述するセッション鍵算出部237に伝送する。また、検証部235は、検証の結果、メッセージの送信者から送信された暗号文が正当なものではないと判断した場合には、エラーメッセージを出力し、復号処理を終了する。
【0122】
セッション鍵算出部237は、例えば、CPU、ROM、RAM等から構成されている。セッション鍵算出部237は、検証部235から検証に成功した旨を示す情報が伝送されると、mKEM201が実行する複数受信者公開鍵暗号処理に規定されている復号方法に則って、DEM203による復号処理に必要となるセッション鍵を算出する。セッション鍵算出部237は、セッション鍵の算出に際して、自身の秘密鍵skと、記憶部207等に格納されているシステムパラメータと、メッセージの送信者から送信された情報とを利用する。セッション鍵算出部237は、算出したセッション鍵を、DEM203に伝送する。
【0123】
以上、本実施形態に係る情報処理装置20の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、CPU等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
【0124】
なお、上述のような本実施形態に係る情報処理装置の各機能を実現するためのコンピュータプログラムを作製し、パーソナルコンピュータ等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
【0125】
<本実施形態に係る情報処理方法の基盤となる暗号処理方法について>
続いて、本実施形態に係る情報処理方法について説明するに先立ち、本実施形態に係る情報処理方法の基盤となる暗号処理方法について、図17〜20を参照しながら、詳細に説明する。図17〜図20は、本実施形態に係る情報処理方法の基盤となる暗号処理方法について説明するための流れ図である。本実施形態に係る情報処理方法の基盤となる暗号処理方法は、非特許文献1に記載の暗号処理方法を複数受信者KEMに適用した方法である。
【0126】
[システムパラメータ生成方法について]
まず、図17を参照しながら、本実施形態に係る情報処理方法の基盤となるシステムパラメータ生成方法について、詳細に説明する。このシステムパラメータ生成方法は、システムパラメータ生成者が所持する情報処理装置であるシステムパラメータ生成装置において実行される。
【0127】
まず、システムパラメータ生成装置は、入力されたセキュリティパラメータに基づいて、kビットの素数pを選択し、pを位数とする群G、Gを選択する。また、G×G→Gを実現する双線形写像eを選択する(ステップS1001)。
【0128】
次に、システムパラメータ生成装置は、G→Zという写像を実現する関数TCRと、G→{0,1}という写像を実現する関数Hと、を選択する(ステップS1002)。
【0129】
続いて、システムパラメータ生成装置は、パラメータg∈Gを選択する(ステップS1003)。
【0130】
次に、システムパラメータ生成装置は、システムパラメータIをI=(p,G,G,g,e,TCR,H)のように構成し、各鍵処理装置に公開する(ステップS1004)。
【0131】
このような手順を経ることにより、システムパラメータ生成装置は、鍵処理装置の複数受信者KEMが暗号処理を実行する際に必要となるシステムパラメータを生成することができる。
【0132】
[鍵生成方法について]
次に、図18を参照しながら、本実施形態に係る情報処理方法の基盤となる鍵生成方法について、詳細に説明する。この鍵生成方法は、複数受信者公開鍵暗号による通信を行うユーザが所持する情報処理装置である鍵処理装置において実行される。なお、この鍵生成方法は、鍵処理装置を所持するユーザが、自身の公開鍵および秘密鍵を生成する際に実行される。この鍵生成方法は、鍵処理装置がシステムパラメータ生成装置によって生成されたシステムパラメータを取得した後であれば、任意のタイミングで行うことが可能である。
【0133】
まず、鍵処理装置は、鍵処理装置に固有の秘密情報として、パラメータx∈を選択する(ステップS1011)。
【0134】
次に、鍵処理装置は、選択したパラメータxと、システムパラメータとして公開されているgとを用いて、パラメータc=gを算出する(ステップS1012)。
【0135】
続いて、鍵処理装置は、パラメータd∈Gを選択する(ステップS1013)。
【0136】
その後、鍵処理装置は、鍵処理装置を所持するユーザに固有の秘密鍵sk=(x,c,d)を生成する(ステップS1014)。また、鍵処理装置は、鍵処理装置を所持するユーザに固有の公開鍵pk=(c,d)を生成する(ステップS1015)。
【0137】
その後、鍵処理装置は、生成した公開鍵pkと秘密鍵skとをユーザに対して出力する(ステップS1016)。また、生成した公開鍵pkは、他の鍵処理装置に対して公開される。
【0138】
このような手順を経ることにより、鍵処理装置は、鍵処理装置を所持するユーザに固有の鍵である秘密鍵skおよび公開鍵pkを生成することができる。
【0139】
[暗号化方法について]
次に、図19を参照しながら、本実施形態に係る情報処理方法の基盤となる暗号化方法について、詳細に説明する。この暗号化方法は、複数受信者公開鍵暗号による通信を行うユーザが所持する情報処理装置である鍵処理装置において実行される。なお、この暗号化方法は、鍵処理装置を所持し、メッセージの送信を行うユーザが、複数受信者KEMを用いて暗号文を生成する際に実行される。
【0140】
まず、鍵処理装置は、パラメータr∈を無作為に選択する(ステップS1021)。
【0141】
次に、鍵処理装置は、選択したパラメータrと、システムパラメータとして公開されているパラメータgとを用いて、パラメータu=g∈Gを算出する(ステップS1022)。
【0142】
続いて、鍵処理装置は、算出したパラメータuと、システムパラメータとして公開されている関数TCRとを用いて、パラメータα=TCR(u)∈Zを算出する(ステップS1023)。
【0143】
次に、鍵処理装置は、メッセージの送信を行う鍵処理装置全てに対して、送信先の鍵処理装置の公開鍵pk(i=1,・・・n)を用いて、以下の検証用パラメータvを算出する(ステップS1024)。
【0144】
【数4】

【0145】
続いて、鍵処理装置は、メッセージの送信を行う鍵処理装置全てに対して、送信先の鍵処理装置の公開鍵pk(i=1,・・・n)を用いて、以下のセッション鍵dkを算出する(ステップS1025)。
【0146】
【数5】

【0147】
次に、鍵処理装置は、φ=(u,v,v,・・・,v)とし、(φ,dk,dk,・・・,dk)を出力する(ステップS1026)。なお、図19において、ベクトルvは、全ての受信者に対するvを一括して表記したものを意味する。また、図19において、ベクトルdkは、全ての受信者に対するdkを一括して表記したものを意味する。
【0148】
このような手順を経ることにより、鍵処理装置は、鍵処理装置のDEMにおいて実行される共通鍵暗号処理に用いられるセッション鍵dkを生成することができる。
【0149】
[復号方法について]
次に、図20を参照しながら、本実施形態に係る情報処理方法の基盤となる復号方法について、詳細に説明する。この復号方法は、暗号文を受信した情報処理装置である鍵処理装置において実行される。
【0150】
復号処理に先立ち、鍵処理装置は、暗号文の中に含まれるφ=(u,v,v,・・・,v)の中から、自身に関係する部分(u,v)を抽出する。この抽出処理は、記載されているvの順番とユーザとの対応関係とを関連付けるラベルを用いたり、送信者がそれぞれの受信者に必要な情報だけが届くように設定したりすることで実現可能である。
【0151】
まず、鍵処理装置は、暗号文に含まれるパラメータuと、システムパラメータとして公開されている関数TCRとを用いて、パラメータα=TCR(u)∈Zを算出する(ステップS1031)。
【0152】
次に、鍵処理装置は、自身の秘密鍵skと、システムパラメータと、算出したパラメータαと、暗号文に含まれるu,vとを用いて、暗号文の検証処理を行う。より詳細には、鍵処理装置は、以下の式1003における等号が成立するか否かに基づいて、暗号文の検証処理を行う(ステップS1032)。
【0153】
【数6】

【0154】
鍵処理装置は、上記式1003の等号が成立しない場合には、受信した暗号文が不当なものであると判断し、エラーメッセージを出力して(ステップS1033)復号処理を終了する。
【0155】
また、上記式1003の等号が成立した場合には、鍵処理装置は、受信した暗号文が正当なものであると判断し、自身の秘密鍵skと、暗号文に含まれるパラメータuと、システムパラメータとを用いて、自身に対応するセッション鍵dk=H(u)∈{0,1}を算出する(ステップS1034)。続いて、鍵処理装置は、算出したセッション鍵dkを、自装置のDEMへと出力する(ステップS1035)。
【0156】
このような手順を経ることにより、鍵処理装置は、鍵処理装置のDEMにおける復号処理に用いられるセッション鍵dkを算出することができる。
【0157】
[基盤技術である暗号処理方法の問題点]
上述のような本実施形態に係る情報処理方法の基盤技術となる暗号処理方法では、以下のような問題点がある。すなわち、基盤技術では、暗号化方法において、それぞれの受信者の公開鍵を用いて検証用パラメータv,v,・・・,vを計算し、暗号文φに挿入している。暗号文の受信者は、復号方法において、式1003における等号が成立するか否かを検証することにより、不当な暗号文を排除することが可能となっている。しかしながら、この検証方法を実現するために、受信者数をnとしたときn回のmulti−scalar multiplicationの処理が暗号化の際に必要となる。さらに、生成される暗号文においても、n+1個の要素が必要となる。これらの値が大きいという点が、基盤技術における問題点である。
【0158】
<情報処理方法について>
本実施形態に係る情報処理方法では、上記問題を解決するために、検証処理を行なうために必要な要素をシステムパラメータに加えることにより、情報処理方法全体における効率化を実現している。これにより、基盤技術の暗号化方法において、受信者ごとに公開鍵を用いたパラメータ生成処理が必要であったものを、全ユーザ共通の要素を用いる処理一回のみで、全ユーザに共通する検証用パラメータを生成することが可能となる。
【0159】
以下、本実施形態に係る情報処理方法について、図21〜図24を参照しながら、詳細に説明する。図21〜図24は、本実施形態に係る情報処理方法について説明するための流れ図である。
【0160】
[システムパラメータ生成方法について]
まず、図21を参照しながら、本実施形態に係るシステムパラメータ生成方法について、詳細に説明する。このシステムパラメータ生成方法は、システムパラメータ生成装置として機能する本実施形態に係る情報処理装置10において実行される。
【0161】
まず、情報処理装置10の群選択部101は、入力されたセキュリティパラメータに基づいて、kビットの素数pを選択し、pを位数とする群G、G、Gを選択する。また、G×G→Gを実現する双線形写像eを選択する(ステップS101)。
【0162】
次に、情報処理装置10の関数選択部103は、G→Zという写像を実現する関数TCRと、G→{0,1}という写像を実現する関数Hと、を選択する(ステップS102)。
【0163】
続いて、情報処理装置10のパラメータ選択部105は、以下の式101および式102に示すパラメータを選択する(ステップS103)。
【0164】
【数7】

【0165】
次に、情報処理装置10のシステムパラメータ生成部107は、システムパラメータIを以下の式103のように構成し、各鍵処理装置に公開する(ステップS104)。
【0166】
【数8】

【0167】
このような手順を経ることにより、システムパラメータ生成装置として機能する情報処理装置10は、鍵処理装置として機能する情報処理装置20のmKEM201が暗号処理を実行する際に必要となるシステムパラメータを生成することができる。
【0168】
なお、上述の群GおよびGについて、GとGとは同じ群であっても、異なる群であってもよい。GおよびGが同じ群である場合には、g=gとして、以下で説明する処理が実行される。
【0169】
[鍵生成方法について]
次に、図22を参照しながら、本実施形態に係る鍵生成方法について、詳細に説明する。この鍵生成方法は、複数受信者公開鍵暗号による通信を行うユーザが所持し、鍵処理装置として機能する情報処理装置20の鍵生成部211において実行される。なお、この鍵生成方法は、情報処理装置20を所持するユーザが、自身の公開鍵および秘密鍵を生成する際に実行される。この鍵生成方法は、情報処理装置20がシステムパラメータを取得した後であれば、任意のタイミングで行うことが可能である。
【0170】
まず、パラメータ生成部213は、情報処理装置20に固有の秘密情報として、パラメータx∈を選択する(ステップS111)。
【0171】
次に、パラメータ生成部213は、選択したパラメータxと、システムパラメータとして公開されているgとを用いて、パラメータc=gを算出する(ステップS112)。
【0172】
続いて、秘密鍵生成部215は、選択したパラメータxを、情報処理装置20を所持するユーザに固有の秘密鍵skとして設定する(ステップS113)。また、公開鍵生成部217は、算出したパラメータcを、情報処理装置20を所持するユーザに固有の公開鍵pkとして設定する(ステップS114)。
【0173】
その後、鍵生成部211は、生成した公開鍵pkと秘密鍵skとをユーザに対して出力する(ステップS115)。また、公開鍵公開部219は、生成した公開鍵pkを、他の情報処理装置20に対して公開する。
【0174】
このような手順を経ることにより、情報処理装置20の鍵生成部211は、情報処理装置を所持するユーザに固有の鍵である秘密鍵skおよび公開鍵pkを生成することができる。
【0175】
[暗号化方法について]
次に、図23を参照しながら、本実施形態に係る暗号化方法について、詳細に説明する。この暗号化方法は、複数受信者公開鍵暗号による通信を行うユーザが所持し、鍵処理装置として機能する情報処理装置20の暗号化部221において実行される。なお、この暗号化方法は、情報処理装置20を所持し、メッセージの送信を行うユーザが、複数受信者KEMを用いて暗号文を生成する際に実行される。
【0176】
まず、パラメータ選択部223は、パラメータr∈を無作為に選択する(ステップS121)。
【0177】
次に、パラメータ選択部223は、選択したパラメータrと、システムパラメータとして公開されているパラメータgとを用いて、パラメータu=g∈Gを算出する(ステップS122)。
【0178】
続いて、パラメータ選択部223は、算出したパラメータuと、システムパラメータとして公開されている関数TCRとを用いて、パラメータα=TCR(u)∈Zを算出する(ステップS123)。
【0179】
次に、検証用パラメータ生成部225は、メッセージの送信を行う全ての情報処理装置20に共通する検証用パラメータを、以下の式111に基づいて生成する(ステップS124)。この検証用パラメータは、以下の式111から明らかなように、システムパラメータと、パラメータ選択部223によって選択されたパラメータとを用いて、生成することが可能である。
【0180】
【数9】

【0181】
続いて、セッション鍵生成部227は、メッセージの送信を行う情報処理装置20全てに対して、送信先の情報処理装置20の公開鍵pk(i=1,・・・n)を用いて、以下のセッション鍵dkを算出する(ステップS125)。
【0182】
【数10】

【0183】
次に、暗号化部221は、以下の式113に示すセッション鍵を出力する(ステップS126)。
【0184】
【数11】

【0185】
このような手順を経ることにより、情報処理装置20は、DEM203において実行される共通鍵暗号処理に用いられるセッション鍵dkを生成することができる。
【0186】
上述のように、基盤技術における暗号化方法では、受信者の公開鍵pkを用いて各受信者に対して検証用パラメータvを算出していたが、本実施形態に係る暗号化方法では、システムパラメータとして公開されている値を用いて検証用パラメータを生成する。これにより、本実施形態に係る暗号化方法では、演算回数の削減を図ることが可能となる。
【0187】
[復号方法について]
次に、図24を参照しながら、本実施形態に係る復号方法について、詳細に説明する。この復号方法は、暗号文を受信した情報処理装置20の復号部231において実行される。
【0188】
まず、パラメータ算出部233は、暗号文に含まれるパラメータuと、システムパラメータとして公開されている関数TCRとを用いて、パラメータα=TCR(u)∈Zを算出する(ステップS131)。
【0189】
次に、検証部235は、システムパラメータと、算出したパラメータαと、暗号文に含まれるパラメータとを用いて、暗号文の検証処理を行う。より詳細には、検証部235は、以下の式121における等号が成立するか否かに基づいて、暗号文の検証処理を行う(ステップS132)。
【0190】
【数12】

【0191】
検証部235は、上記式121の等号が成立しない場合には、受信した暗号文が不当なものであると判断し、エラーメッセージを出力して(ステップS133)復号処理を終了する。
【0192】
また、上記式121の等号が成立した場合には、検証部235は、受信した暗号文が正当なものであると判断し、暗号文が正当なものである旨を示す情報を、セッション鍵算出部237に伝送する。セッション鍵算出部237は、自身の秘密鍵skと、暗号文に含まれるパラメータuと、システムパラメータとを用いて、自身に対応するセッション鍵dk=H(u)∈{0,1}を算出する(ステップS134)。続いて、セッション鍵算出部237は、算出したセッション鍵dkを、自装置のDEM203へと出力する(ステップS135)。
【0193】
このような手順を経ることにより、情報処理装置20の復号部231は、DEM203における復号処理に用いられるセッション鍵dkを算出することができる。
【0194】
上述のように、基盤技術における復号方法では、受信者の公開鍵pkを用いて検証用パラメータを用いた検証処理を行っていたが、本実施形態に係る復号方法では、システムパラメータとして公開されている値を用いて検証処理を実施する。
【0195】
<暗号化時の計算量と暗号文のサイズについて>
以下では、本実施形態に係る情報処理方法の暗号化時における計算量と暗号文のサイズについて、基盤技術における暗号処理方法と比較しながら説明する。
【0196】
[暗号化時の計算量について]
まず、受信者数をnとしたときの、基盤技術における暗号化方法での計算量と、本実施形態に係る暗号化方法での計算量を比較する。両方法ともに、single−scalar multiplication、および、multi−scalar multiplicationの計算量が支配的となるため、それぞれの演算数の比較を行った。暗号化時の計算量を比較した結果を、以下の表1に示す。
【0197】
なお、single−scalar multiplicationとは、gのように、一つの群要素に対してscalar倍算をすることを意味する。また、multi−scalar multiplicationとは、gr1・gr2のように、二つの群要素に対して異なる値のscalar倍算をすることを意味する。
【0198】
【表1】

【0199】
表1より、基盤技術における暗号化方法では、(n+1)回のsingle−scalar multiplicationと、n回のmulti−scalar multiplicationが必要であることがわかる。また、本実施形態に係る暗号化方法では、(n+1)回のsingle−scalar multiplicationと、1回のmulti−scalar multiplicationが必要であることがわかる。すなわち、本実施形態に係る暗号化方法では、(n−1)回のmulti−scalar multiplicationを削減できたことが分かる。
【0200】
非特許文献5に記載のように、一般的にmulti−scalar multiplicationは、single−scalar multiplicationの1.5倍の処理が必要であると考えられている。このことを考慮すると、基盤技術における暗号化方法では(2.5n+1)回分のsingle−scalar multiplicationの計算量が必要である。他方、本実施形態に係る暗号化方式では、(n+2.5)回分のsingle−scalar multiplicationの計算量で処理が完了することが分かる。
【0201】
[暗号文のサイズについて]
次に、受信者数をnとしたときの、基盤技術における暗号文サイズと、本実施形態に係る情報処理方法における暗号文サイズとを比較する。両方法とも、同じ群を用いていると考え、暗号文に含まれる要素数で比較を行った。得られた結果を、以下の表2に示す。
【0202】
【表2】

【0203】
表2より、基盤技術では、GとGの要素を合わせてn+1個の要素が存在するのに対し、本実施形態では、受信者数に依存せずに、要素数は2個となる。この結果から明らかなように、本実施形態に係る情報処理方法では、暗号文のサイズを、受信者数に依存せずに、一定のサイズにすることができる。
【0204】
<第1変形例について>
本実施形態に係るシステムパラメータ生成方法において、ψ:G→Gとなる効率的な同型写像が存在するように、情報処理装置10の群選択部101が群G,Gを選択する場合を考える。この場合、情報処理装置20の復号部231(より詳細には、検証部235)で実行される双線形写像の値を算出する以外の演算を、全て群G上で行なうことが可能となり、暗号文も、G上の要素のみで表すことが可能となる。さらに、群G,Gの選択方法として、G上の演算よりもG上での演算の方が軽く、また要素の表現サイズに関しても、GよりもGの方が小さく表現可能となる場合も考えられる。
【0205】
このような場合、本実施形態にかかる計算量と暗号文サイズの削減が実現可能となる。上述のような変形例を実現するためには、本発明の第1の実施形態に係るシステムパラメータ生成方法、暗号化方法および復号方法を、以下のように変形する。
【0206】
[システムパラメータ生成方法について]
まず、図25を参照しながら、本変形例に係るシステムパラメータ生成方法について、詳細に説明する。図25は、本変形例に係るシステムパラメータ生成方法を説明するための流れ図である。
【0207】
まず、情報処理装置10の群選択部101は、入力されたセキュリティパラメータに基づいて、kビットの素数pを選択し、ψ:G→Gとなる効率的な同型写像が存在するように、pを位数とする群G、G、Gを選択する。また、G×G→Gを実現する双線形写像eを選択する(ステップS141)。
【0208】
次に、情報処理装置10の関数選択部103は、G→Zという写像を実現する関数TCRと、G→{0,1}という写像を実現する関数Hと、を選択する(ステップS102)。
【0209】
続いて、情報処理装置10のパラメータ選択部105は、以下の式131に示すパラメータを選択する(ステップS142)。
【0210】
【数13】

【0211】
次に、情報処理装置10のシステムパラメータ生成部107は、システムパラメータIを以下の式132のように構成し、各鍵処理装置に公開する(ステップS143)。
【0212】
【数14】

【0213】
[暗号化方法について]
次に、図26を参照しながら、本変形例に係る暗号化方法について、詳細に説明する。図26は、本変形例に係る暗号化方法を説明するための流れ図である。
【0214】
まず、パラメータ選択部223は、パラメータr∈を無作為に選択する(ステップS121)。
【0215】
次に、パラメータ選択部223は、選択したパラメータrと、システムパラメータとして公開されているパラメータgとを用いて、パラメータu=g∈Gを算出する(ステップS122)。
【0216】
続いて、パラメータ選択部223は、算出したパラメータuと、システムパラメータとして公開されている関数TCRとを用いて、パラメータα=TCR(u)∈Zを算出する(ステップS123)。
【0217】
次に、検証用パラメータ生成部225は、メッセージの送信を行う全ての情報処理装置20に共通する検証用パラメータを、以下の式133に基づいて生成する(ステップS144)。この検証用パラメータは、以下の式133から明らかなように、システムパラメータと、パラメータ選択部223によって選択されたパラメータとを用いて、群G上での演算を用いて生成することが可能である。
【0218】
【数15】

【0219】
続いて、セッション鍵生成部227は、メッセージの送信を行う情報処理装置20全てに対して、送信先の情報処理装置20の公開鍵pk(i=1,・・・n)を用いて、以下のセッション鍵dkを算出する(ステップS125)。
【0220】
【数16】

【0221】
次に、暗号化部221は、以下の式113に示すセッション鍵を出力する(ステップS126)。
【0222】
【数17】

【0223】
[復号方法について]
次に、図27を参照しながら、本変形例に係る復号方法について、詳細に説明する。図27は、本変形例に係る復号方法を説明するための流れ図である。
【0224】
まず、パラメータ算出部233は、暗号文に含まれるパラメータuと、システムパラメータとして公開されている関数TCRとを用いて、パラメータα=TCR(u)∈Zを算出する(ステップS131)。
【0225】
次に、検証部235は、システムパラメータと、算出したパラメータαと、暗号文に含まれるパラメータとを用いて、暗号文の検証処理を行う。より詳細には、検証部235は、以下の式134における等号が成立するか否かに基づいて、暗号文の検証処理を行う(ステップS145)。
【0226】
【数18】

【0227】
上記式134から明らかなように、同型写像ψを用いて群G上の要素を群G上に写像することで、双線形写像eの演算を行なうことができる。
【0228】
検証部235は、上記式134の等号が成立しない場合には、受信した暗号文が不当なものであると判断し、エラーメッセージを出力して(ステップS133)復号処理を終了する。
【0229】
また、上記式134の等号が成立した場合には、検証部235は、受信した暗号文が正当なものであると判断し、暗号文が正当なものである旨を示す情報を、セッション鍵算出部237に伝送する。セッション鍵算出部237は、自身の秘密鍵skと、暗号文に含まれるパラメータuと、システムパラメータとを用いて、自身に対応するセッション鍵dk=H(u)∈{0,1}を算出する(ステップS134)。続いて、セッション鍵算出部237は、算出したセッション鍵dkを、自装置のDEM203へと出力する(ステップS135)。
【0230】
以上説明したように、本発明の第1の実施形態に係る情報処理装置および情報処理方法では、鍵処理装置として機能する情報処理装置20におけるmKEM201として、図11に示したmmKEMを導入することで、複数受信者公開鍵暗号システムを実現している。
【0231】
(第2の実施形態)
続いて、図28〜図37を参照しながら、本発明の第2の実施形態に係る情報処理装置および情報処理方法について、詳細に説明する。
【0232】
<情報処理装置の構成について>
まず、本実施形態に係る情報処理装置の構成について、説明する。本実施形態に係る情報処理装置は、システムパラメータ生成装置として機能する情報処理装置10と、鍵処理装置として機能する情報処理装置20とが存在する。
【0233】
ここで、本実施形態におけるシステムパラメータ生成装置として機能する情報処理装置10は、図14に示した本発明の第1の実施形態に係る情報処理装置10の構成を有し、各処理部で実行される処理内容のみが異なるものである。そのため、本実施形態に係る情報処理装置10が備える各処理部の機能については、以下で本実施形態に係る情報処理方法を説明しながら説明するものとする。
【0234】
同様に、本実施形態における鍵処理装置として機能する情報処理装置20は、図15および図16に示した本発明の第1の実施形態に係る情報処理装置20の構成を有し、各処理部で実行される処理内容のみが異なるものである。そのため、本実施形態に係る情報処理装置20が備える各処理部の機能については、以下で本実施形態に係る情報処理方法を説明しながら説明するものとする。
【0235】
<本実施形態に係る情報処理方法の基盤となる暗号処理方法について>
続いて、本実施形態に係る情報処理方法について説明するに先立ち、本実施形態に係る情報処理方法の基盤となる暗号処理方法について、図28〜31を参照しながら、詳細に説明する。図28〜図31は、本実施形態に係る情報処理方法の基盤となる暗号処理方法について説明するための流れ図である。本実施形態に係る情報処理方法の基盤となる暗号処理方法は、非特許文献2に記載の暗号処理方法である。
【0236】
[システムパラメータ生成方法について]
まず、図28を参照しながら、本実施形態に係る情報処理方法の基盤となるシステムパラメータ生成方法について、詳細に説明する。このシステムパラメータ生成方法は、システムパラメータ生成者が所持する情報処理装置であるシステムパラメータ生成装置において実行される。
【0237】
まず、システムパラメータ生成装置は、入力されたセキュリティパラメータに基づいて、kビットの素数pを選択し、pを位数とする群Gを選択する(ステップS2001)。
【0238】
次に、システムパラメータ生成装置は、G→Zという写像を実現する関数TCRと、G→{0,1}という写像を実現する関数Hと、を選択する(ステップS2002)。
【0239】
続いて、システムパラメータ生成装置は、パラメータg∈Gを選択する(ステップS2003)。
【0240】
次に、システムパラメータ生成装置は、システムパラメータIをI=(p,G,g,TCR,H)のように構成し、各鍵処理装置に公開する(ステップS2004)。
【0241】
このような手順を経ることにより、システムパラメータ生成装置は、鍵処理装置の複数受信者KEMが暗号処理を実行する際に必要となるシステムパラメータを生成することができる。
【0242】
[鍵生成方法について]
次に、図29を参照しながら、本実施形態に係る情報処理方法の基盤となる鍵生成方法について、詳細に説明する。この鍵生成方法は、複数受信者公開鍵暗号による通信を行うユーザが所持する情報処理装置である鍵処理装置において実行される。なお、この鍵生成方法は、鍵処理装置を所持するユーザが、自身の公開鍵および秘密鍵を生成する際に実行される。この鍵生成方法は、鍵処理装置がシステムパラメータ生成装置によって生成されたシステムパラメータを取得した後であれば、任意のタイミングで行うことが可能である。
【0243】
まず、鍵処理装置は、鍵処理装置に固有の秘密情報として、パラメータa,a,aを選択する(ステップS2011)。本実施形態において、このような3種類のパラメータを選択することは、選択したパラメータを係数に持つf(x)=a+ax+aという二次関数を定義したことと同様の意味を有する。
【0244】
次に、鍵処理装置は、選択したパラメータa,a,aと、システムパラメータであるgとを用い、先に説明したラグランジュの補間公式を利用して、以下の式2001〜式2003に示すパラメータy,y,yを算出する(ステップS2012)。
【0245】
【数19】

【0246】
その後、鍵処理装置は、鍵処理装置を所持するユーザに固有の秘密鍵sk=(a,a,a)を生成する(ステップS2013)。また、鍵処理装置は、鍵処理装置を所持するユーザに固有の公開鍵pk=(y,y,y)を生成する(ステップS2014)。
【0247】
その後、鍵処理装置は、生成した公開鍵pkと秘密鍵skとをユーザに対して出力する(ステップS2015)。また、生成した公開鍵pkは、他の鍵処理装置に対して公開される。
【0248】
このような手順を経ることにより、鍵処理装置は、鍵処理装置を所持するユーザに固有の鍵である秘密鍵skおよび公開鍵pkを生成することができる。
【0249】
[暗号化方法について]
次に、図30を参照しながら、本実施形態に係る情報処理方法の基盤となる暗号化方法について、詳細に説明する。この暗号化方法は、複数受信者公開鍵暗号による通信を行うユーザが所持する情報処理装置である鍵処理装置において実行される。なお、この暗号化方法は、鍵処理装置を所持し、メッセージの送信を行うユーザが、複数受信者KEMを用いて暗号文を生成する際に実行される。
【0250】
まず、鍵処理装置は、パラメータr∈を無作為に選択する(ステップS2021)。
【0251】
次に、鍵処理装置は、選択したパラメータrと、システムパラメータとして公開されているパラメータgとを用いて、パラメータu=g∈Gを算出する(ステップS2022)。
【0252】
続いて、鍵処理装置は、算出したパラメータuと、システムパラメータとして公開されている関数TCRとを用いて、パラメータα=TCR(u)∈Zを算出する(ステップS2023)。
【0253】
次に、鍵処理装置は、メッセージの送信を行う鍵処理装置全てに対して、送信先の鍵処理装置の公開鍵pk(i=1,・・・n)を用い、ラグランジュの補間公式を利用して、以下の検証用パラメータvを算出する(ステップS2024)。
【0254】
【数20】

【0255】
続いて、鍵処理装置は、メッセージの送信を行う鍵処理装置全てに対して、送信先の鍵処理装置の公開鍵pk(i=1,・・・n)を用いて、以下のセッション鍵dkを算出する(ステップS2025)。
【0256】
【数21】

【0257】
次に、鍵処理装置は、φ=(u,v,v,・・・,v)とし、(φ,dk,dk,・・・,dk)を出力する(ステップS2026)。
【0258】
このような手順を経ることにより、鍵処理装置は、鍵処理装置のDEMにおいて実行される共通鍵暗号処理に用いられるセッション鍵dkを生成することができる。
【0259】
[復号方法について]
次に、図31を参照しながら、本実施形態に係る情報処理方法の基盤となる復号方法について、詳細に説明する。この復号方法は、暗号文を受信した情報処理装置である鍵処理装置において実行される。
【0260】
復号処理に先立ち、鍵処理装置は、暗号文の中に含まれるφ=(u,v,v,・・・,v)の中から、自身に関係する部分(u,v)を抽出する。この抽出処理は、記載されているvの順番とユーザとの対応関係とを関連付けるラベルを用いたり、送信者がそれぞれの受信者に必要な情報だけが届くように設定したりすることで実現可能である。
【0261】
まず、鍵処理装置は、暗号文に含まれるパラメータuと、システムパラメータとして公開されている関数TCRとを用いて、パラメータα=TCR(u)∈Zを算出する(ステップS2031)。
【0262】
次に、鍵処理装置は、自身の秘密鍵sk(すなわち、二次関数f(x))と、システムパラメータと、算出したパラメータαと、暗号文に含まれるu,vとを用いて、暗号文の検証処理を行う。より詳細には、鍵処理装置は、以下の式2006における等号が成立するか否かに基づいて、暗号文の検証処理を行う(ステップS2032)。
【0263】
【数22】

【0264】
鍵処理装置は、上記式2006の等号が成立しない場合には、受信した暗号文が不当なものであると判断し、エラーメッセージを出力して(ステップS2033)復号処理を終了する。
【0265】
また、上記式2006の等号が成立した場合には、鍵処理装置は、受信した暗号文が正当なものであると判断し、自身の秘密鍵skと、暗号文に含まれるパラメータuと、システムパラメータとを用いて、自身に対応するセッション鍵dkを、以下の式2007を用いて算出する(ステップS2034)。続いて、鍵処理装置は、算出したセッション鍵dkを、自装置のDEMへと出力する(ステップS2035)。
【0266】
【数23】

【0267】
このような手順を経ることにより、鍵処理装置は、鍵処理装置のDEMにおける復号処理に用いられるセッション鍵dkを算出することができる。
【0268】
[基盤技術である暗号処理方法の問題点]
上述のような本実施形態に係る情報処理方法の基盤技術となる暗号処理方法では、以下のような問題点がある。すなわち、基盤技術では、暗号化方法において、それぞれの受信者の公開鍵を用いて検証用パラメータv,v,・・・,vを計算し、暗号文φに挿入している。暗号文の受信者は、復号方法において、式2006における等号が成立するか否かを検証することにより、不当な暗号文を排除することが可能となっている。しかしながら、この検証方法を実現するために、受信者数をnとしたときn回のmulti−scalar multiplicationの処理が暗号化の際に必要となる。さらに、生成される暗号文においても、n+1個の要素が必要となる。これらの値が大きいという点が、基盤技術における問題点である。
【0269】
<情報処理方法について>
本実施形態に係る情報処理方法では、上記問題を解決するために、以下の点に着目した。すなわち、基盤技術における暗号化処理では、受信者に固有の二次関数f(x)を用いて、各受信者用にパラメータの算出を行なっていた。そこで、受信者に固有の二次関数中に何らかの共有情報を存在させることで、暗号化方法を効率よく実行可能である点に想到した。以下に示す本実施形態に係る情報処理方法では、受信者に固有の二次関数のうち、二次関数のy切片にあたるパラメータを共通化してシステムパラメータに加えることにより、情報処理方法全体における効率化を実現している。
【0270】
以下、本実施形態に係る情報処理方法について、図32〜図35を参照しながら、詳細に説明する。図32〜図35は、本実施形態に係る情報処理方法について説明するための流れ図である。
【0271】
[システムパラメータ生成方法について]
まず、図32を参照しながら、本実施形態に係るシステムパラメータ生成方法について、詳細に説明する。このシステムパラメータ生成方法は、システムパラメータ生成装置として機能する本実施形態に係る情報処理装置10において実行される。
【0272】
まず、情報処理装置10の群選択部101は、入力されたセキュリティパラメータに基づいて、kビットの素数pを選択し、pを位数とする群Gを選択する(ステップS201)。
【0273】
次に、情報処理装置10の関数選択部103は、G→Zという写像を実現する関数TCRと、G→{0,1}という写像を実現する関数Hと、を選択する(ステップS202)。
【0274】
続いて、情報処理装置10のパラメータ選択部105は、パラメータg,yGを選択する(ステップS203)。
【0275】
次に、情報処理装置10のシステムパラメータ生成部107は、システムパラメータIをI=(p,G,g,y,TCR,H)のように構成し、各鍵処理装置に公開する(ステップS204)。
【0276】
このような手順を経ることにより、システムパラメータ生成装置として機能する情報処理装置10は、鍵処理装置として機能する情報処理装置20のmKEM201が暗号処理を実行する際に必要となるシステムパラメータを生成することができる。
【0277】
[鍵生成方法について]
次に、図33を参照しながら、本実施形態に係る鍵生成方法について、詳細に説明する。この鍵生成方法は、複数受信者公開鍵暗号による通信を行うユーザが所持し、鍵処理装置として機能する情報処理装置20の鍵生成部211において実行される。なお、この鍵生成方法は、情報処理装置20を所持するユーザが、自身の公開鍵および秘密鍵を生成する際に実行される。この鍵生成方法は、情報処理装置20がシステムパラメータを取得した後であれば、任意のタイミングで行うことが可能である。
【0278】
まず、パラメータ生成部213は、情報処理装置20に固有の秘密情報として、パラメータs,t,F,Fを選択し、(f(0),f(s),f(t))=(log,F,F)と定義する(ステップS211)。本実施形態において、このような4種類のパラメータを選択し、f(0),f(s),f(t)を定義するということは、f(x)=a+ax+aという二次関数を定義したことと同様の意味を有する。
【0279】
次に、パラメータ生成部213は、選択したパラメータf(0),f(s),f(t)と、システムパラメータであるgとを用い、ラグランジュの補間公式を利用して、以下の式201〜式202に示すパラメータy,yを算出する(ステップS212)。
【0280】
【数24】

【0281】
その後、秘密鍵生成部215は、情報処理装置20を所持するユーザに固有の秘密鍵sk=(s,t,F,F)を生成する(ステップS213)。また、公開鍵生成部217は、情報処理装置20を所持するユーザに固有の公開鍵pk=(y,y)を生成する(ステップS214)。
【0282】
その後、鍵生成部211は、生成した公開鍵pkと秘密鍵skとをユーザに対して出力する(ステップS215)。また、公開鍵公開部219は、生成した公開鍵pkを、他の情報処理装置20に対して公開する。
【0283】
このような手順を経ることにより、情報処理装置20の鍵生成部211は、情報処理装置を所持するユーザに固有の鍵である秘密鍵skおよび公開鍵pkを生成することができる。
【0284】
[暗号化方法について]
次に、図34を参照しながら、本実施形態に係る暗号化方法について、詳細に説明する。この暗号化方法は、複数受信者公開鍵暗号による通信を行うユーザが所持し、鍵処理装置として機能する情報処理装置20の暗号化部221において実行される。なお、この暗号化方法は、情報処理装置20を所持し、メッセージの送信を行うユーザが、複数受信者KEMを用いて暗号文を生成する際に実行される。
【0285】
まず、パラメータ選択部223は、パラメータr∈を無作為に選択する(ステップS221)。
【0286】
次に、パラメータ選択部223は、選択したパラメータrと、システムパラメータとして公開されているパラメータgとを用いて、パラメータu=g∈Gを算出する(ステップS222)。
【0287】
続いて、パラメータ選択部223は、算出したパラメータuと、システムパラメータとして公開されている関数TCRとを用いて、パラメータα=TCR(u)∈Zを算出する(ステップS223)。
【0288】
次に、検証用パラメータ生成部225は、メッセージの送信を行う情報処理装置20全てに対して、ラグランジュの補間公式を利用して、検証用パラメータvを、以下の式203に基づいて算出する(ステップS224)。以下の式203から明らかなように、検証用パラメータviは、送信先の情報処理装置20の公開鍵pk(i=1,・・・n)と、システムパラメータと、パラメータ選択部223によって選択されたパラメータと、を用いて、算出可能である。
【0289】
【数25】

【0290】
続いて、セッション鍵算出部237は、メッセージの送信を行う全ての情報処理装置20に対して、システムパラメータを用いて、以下のセッション鍵dkを算出する(ステップS225)。
【0291】
【数26】

【0292】
次に、暗号化部221は、φ=(u,v,v,・・・,v)とし、(φ,dk)を出力する(ステップS226)。
【0293】
このような手順を経ることにより、情報処理装置20は、DEM203において実行される共通鍵暗号処理に用いられるセッション鍵dkを生成することができる。
【0294】
上述のように、基盤技術における暗号化方法では、受信者の公開鍵pkを用いて各受信者に対してセッション鍵dkを算出していたが、本実施形態に係る暗号化方法では、システムパラメータとして公開されている値を用いてセッション鍵dkを生成する。これにより、本実施形態に係る暗号化方法では、演算回数の削減を図ることが可能となる。
【0295】
[復号方法について]
次に、図35を参照しながら、本実施形態に係る復号方法について、詳細に説明する。この復号方法は、暗号文を受信した情報処理装置20の復号部231において実行される。
【0296】
復号処理に先立ち、復号部231は、暗号文の中に含まれるφ=(u,v,v,・・・,v)の中から、自身に関係する部分(u,v)を抽出する。この抽出処理は、記載されているvの順番とユーザとの対応関係とを関連付けるラベルを用いたり、送信者がそれぞれの受信者に必要な情報だけが届くように設定したりすることで実現可能である。
【0297】
まず、パラメータ算出部233は、暗号文に含まれるパラメータuと、システムパラメータとして公開されている関数TCRとを用いて、パラメータα=TCR(u)∈Zを算出する(ステップS231)。
【0298】
次に、セッション鍵算出部237は、自身の秘密鍵skと、算出したパラメータαと、暗号文に含まれるu,vとを用いて、以下の式205に基づいて、パラメータf’(α),f’(s),f’(t)を定義する(ステップS232)。
【0299】
【数27】

【0300】
上記式205に示したようなパラメータの定義を行なうことは、二次関数f’(x)を定義していることを表している。ここで、F、Fは、自身で設定した秘密鍵である。ここで、暗号化方法において適式に検証用パラメータvが算出されていれば、式205により定義される二次関数f’(x)は、鍵生成方法において定義された二次関数f(x)と等しくなる。
【0301】
続いて、セッション鍵算出部237は、式205と、ラグランジュの補間公式とを用いて、パラメータf’(0)の値を算出し、以下の式206に基づいて、セッション鍵dkを算出する(ステップS233)。続いて、セッション鍵算出部237は、算出したセッション鍵dkを、自装置のDEM203へと出力する(ステップS234)。
【0302】
【数28】

【0303】
このような手順を経ることにより、情報処理装置20の復号部231は、DEM203における復号処理に用いられるセッション鍵dkを算出することができる。
【0304】
<暗号化時の計算量と暗号文のサイズについて>
以下では、本実施形態に係る情報処理方法の暗号化時における計算量と暗号文のサイズについて、基盤技術における暗号処理方法と比較しながら説明する。
【0305】
[暗号化時の計算量について]
まず、受信者数をnとしたときの、基盤技術における暗号化方法での計算量と、本実施形態に係る暗号化方法での計算量を比較する。両方法ともに、single−scalar multiplication、および、multi−scalar multiplicationの計算量が支配的となるため、それぞれの演算数の比較を行った。暗号化時の計算量を比較した結果を、以下の表3に示す。
【0306】
【表3】

【0307】
表3より、基盤技術における暗号化方法では、(n+1)回のsingle−scalar multiplicationと、n回のmulti−scalar multiplicationが必要であることがわかる。また、本実施形態に係る暗号化方法では、2回のsingle−scalar multiplicationと、n回のmulti−scalar multiplicationが必要であることがわかる。
【0308】
非特許文献5に記載のように、一般的にmulti−scalar multiplicationは、single−scalar multiplicationの1.5倍の処理が必要であると考えられている。このことを考慮すると、基盤技術における暗号化方法では(2.5n+1)回分のsingle−scalar multiplicationの計算量が必要である。他方、本実施形態に係る暗号化方式では、(1.5n+2)回分のsingle−scalar multiplicationの計算量で処理が完了することが分かる。
【0309】
[暗号文のサイズについて]
次に、受信者数をnとしたときの、基盤技術における暗号文サイズと、本実施形態に係る情報処理方法における暗号文サイズとを比較する。両方法とも、暗号文に含まれる要素数およびmKEM中に含まれるDEMにより生成される暗号文の数で比較を行った。得られた結果を、以下の表4に示す。
【0310】
【表4】

【0311】
表4より、基盤技術および本実施形態では、群の要素数はn+1個と変わらないものの、mKEM中に含まれるDEMにより生成される暗号文の数をなくすことが可能となる。この結果から明らかなように、本実施形態に係る情報処理方法では、暗号文のサイズを、削減することができる。
【0312】
以上説明したように、本実施形態に係る情報処理装置および情報処理方法では、鍵処理装置として機能する情報処理装置20におけるmKEM201として、図13に示したmsKEMを導入することで、複数受信者公開鍵暗号システムを実現している。
【0313】
<第1変形例について>
本発明の第2の実施形態に係る情報処理装置および情報処理方法では、システムパラメータとして設定されたパラメータyを用いて、受信者に共通のセッション鍵dkを算出する場合について説明した。ここで、パラメータyを用いて、受信者に共通のセッション鍵dkではなく、受信者に共通の検証用パラメータを算出することも可能である。すなわち、本発明の第2の実施形態に係る情報処理装置20では、mKEM201としてmsKEMを導入した場合について説明したが、mKEM201としてmmKEMを導入することも可能である。以下では、第1変形例として、第2の実施形態に係る情報処理装置20にmmKEMを導入した場合について、詳細に説明する。
【0314】
上述のような変形例を実現するためには、本発明の第2の実施形態に係る暗号化方法および復号方法を、以下のように変形する。
【0315】
[暗号化方法について]
まず、図36を参照しながら、本変形例に係る暗号化方法について、詳細に説明する。図36は、本変形例に係る暗号化方法を説明するための流れ図である。
【0316】
まず、パラメータ選択部223は、パラメータr∈を無作為に選択する(ステップS221)。
【0317】
次に、パラメータ選択部223は、選択したパラメータrと、システムパラメータとして公開されているパラメータgとを用いて、パラメータu=g∈Gを算出する(ステップS222)。
【0318】
続いて、パラメータ選択部223は、算出したパラメータuと、システムパラメータとして公開されている関数TCRとを用いて、パラメータα=TCR(u)∈Zを算出する(ステップS223)。
【0319】
次に、検証用パラメータ生成部225は、メッセージの送信を行う全ての情報処理装置20に対して、システムパラメータを用いて、検証用パラメータvを以下の式211に基づいて算出する(ステップS241)。
【0320】
【数29】

【0321】
続いて、鍵処理装置は、メッセージの送信を行う全ての情報処理装置20に対して、ラグランジュの補間公式を利用して、以下の式212で表されるセッション鍵dkを算出する(ステップS242)。
【0322】
【数30】

【0323】
次に、暗号化部221は、φ=(u,v)とし、(φ,dk,dk,・・・,dk)を出力する(ステップS243)。
【0324】
[復号方法について]
次に、図37を参照しながら、本変形例に係る復号方法について、詳細に説明する。図37は、本変形例に係る復号方法を説明するための流れ図である。
【0325】
まず、パラメータ算出部233は、暗号文に含まれるパラメータuと、システムパラメータとして公開されている関数TCRとを用いて、パラメータα=TCR(u)∈Zを算出する(ステップS231)。
【0326】
次に、セッション鍵算出部237は、自身の秘密鍵skと、暗号文に含まれるu,vと、システムパラメータとを用いて、以下の式213に基づいて、パラメータf’(0),f’(s),f’(t)を定義する(ステップS244)。
【0327】
【数31】

【0328】
上記式213に示したようなパラメータの定義を行なうことは、二次関数f’(x)を定義していることを表している。ここで、式213により定義される二次関数f’(x)は、鍵生成方法において定義された二次関数f(x)と等しくなる。
【0329】
続いて、セッション鍵算出部237は、式213と、ラグランジュの補間公式とを用いて、パラメータf’(α)の値を算出し、以下の式214に基づいて、セッション鍵dkを算出する(ステップS233)。続いて、セッション鍵算出部237は、算出したセッション鍵dkを、自装置のDEM203へと出力する(ステップS234)。
【0330】
【数32】

【0331】
<暗号化時の計算量と暗号文のサイズについて>
以下では、本変形例に係る情報処理方法の暗号化時における計算量と暗号文のサイズについて、基盤技術における暗号処理方法と比較しながら説明する。
【0332】
[暗号化時の計算量について]
まず、受信者数をnとしたときの、基盤技術における暗号化方法での計算量と、本変形例に係る暗号化方法での計算量を比較する。両方法ともに、single−scalar multiplication、および、multi−scalar multiplicationの計算量が支配的となるため、それぞれの演算数の比較を行った。暗号化時の計算量を比較した結果を、以下の表5に示す。
【0333】
【表5】

【0334】
表5より、基盤技術における暗号化方法では、(n+1)回のsingle−scalar multiplicationと、n回のmulti−scalar multiplicationが必要であることがわかる。また、本変形例に係る暗号化方法では、2回のsingle−scalar multiplicationと、n回のmulti−scalar multiplicationが必要であることがわかる。
【0335】
非特許文献5に記載のように、一般的にmulti−scalar multiplicationは、single−scalar multiplicationの1.5倍の処理が必要であると考えられている。このことを考慮すると、基盤技術における暗号化方法では(2.5n+1)回分のsingle−scalar multiplicationの計算量が必要である。他方、本変形例に係る暗号化方式では、(1.5n+2)回分のsingle−scalar multiplicationの計算量で処理が完了することが分かる。
【0336】
[暗号文のサイズについて]
次に、受信者数をnとしたときの、基盤技術における暗号文サイズと、本変形例に係る情報処理方法における暗号文サイズとを比較する。両方法とも、暗号文に含まれる要素数で比較を行った。得られた結果を、以下の表6に示す。
【0337】
【表6】

【0338】
表6より、基盤技術では、群の要素数はn+1個であるのに対し、本変形例では、群の要素数は、受信者数nに依存せず、2個となる。この結果から明らかなように、本実施形態に係る情報処理方法では、暗号文のサイズを、受信者数nに依存しないように削減することができる。
【0339】
(第3の実施形態)
続いて、図38〜図45を参照しながら、本発明の第3の実施形態に係る情報処理装置および情報処理方法について、詳細に説明する。
【0340】
<情報処理装置の構成について>
まず、本実施形態に係る情報処理装置の構成について、説明する。本実施形態に係る情報処理装置は、システムパラメータ生成装置として機能する情報処理装置10と、鍵処理装置として機能する情報処理装置20とが存在する。
【0341】
ここで、本実施形態におけるシステムパラメータ生成装置として機能する情報処理装置10は、図14に示した本発明の第1の実施形態に係る情報処理装置10の構成を有し、各処理部で実行される処理内容のみが異なるものである。そのため、本実施形態に係る情報処理装置10が備える各処理部の機能については、以下で本実施形態に係る情報処理方法を説明しながら説明するものとする。
【0342】
同様に、本実施形態における鍵処理装置として機能する情報処理装置20は、図15および図16に示した本発明の第1の実施形態に係る情報処理装置20の構成を有し、各処理部で実行される処理内容のみが異なるものである。そのため、本実施形態に係る情報処理装置20が備える各処理部の機能については、以下で本実施形態に係る情報処理方法を説明しながら説明するものとする。
【0343】
<本実施形態に係る情報処理方法の基盤となる暗号処理方法について>
続いて、本実施形態に係る情報処理方法について説明するに先立ち、本実施形態に係る情報処理方法の基盤となる暗号処理方法について、図38〜41を参照しながら、詳細に説明する。図38〜図41は、本実施形態に係る情報処理方法の基盤となる暗号処理方法について説明するための流れ図である。本実施形態に係る情報処理方法の基盤となる暗号処理方法は、非特許文献3に記載の暗号処理方法である。
【0344】
[システムパラメータ生成方法について]
まず、図38を参照しながら、本実施形態に係る情報処理方法の基盤となるシステムパラメータ生成方法について、詳細に説明する。このシステムパラメータ生成方法は、システムパラメータ生成者が所持する情報処理装置であるシステムパラメータ生成装置において実行される。
【0345】
まず、システムパラメータ生成装置は、入力されたセキュリティパラメータに基づいて、kビットの素数pを選択し、pを位数とする群Gを選択する(ステップS3001)。
【0346】
次に、システムパラメータ生成装置は、G→Zという写像を実現する関数TCRと、G→{0,1}という写像を実現する関数Hと、を選択する(ステップS3002)。
【0347】
続いて、システムパラメータ生成装置は、パラメータg∈Gを選択する(ステップS3003)。
【0348】
次に、システムパラメータ生成装置は、システムパラメータIをI=(p,G,g,TCR,H)のように構成し、各鍵処理装置に公開する(ステップS3004)。
【0349】
このような手順を経ることにより、システムパラメータ生成装置は、鍵処理装置の複数受信者KEMが暗号処理を実行する際に必要となるシステムパラメータを生成することができる。
【0350】
[鍵生成方法について]
次に、図39を参照しながら、本実施形態に係る情報処理方法の基盤となる鍵生成方法について、詳細に説明する。この鍵生成方法は、複数受信者公開鍵暗号による通信を行うユーザが所持する情報処理装置である鍵処理装置において実行される。なお、この鍵生成方法は、鍵処理装置を所持するユーザが、自身の公開鍵および秘密鍵を生成する際に実行される。この鍵生成方法は、鍵処理装置がシステムパラメータ生成装置によって生成されたシステムパラメータを取得した後であれば、任意のタイミングで行うことが可能である。
【0351】
まず、鍵処理装置は、鍵処理装置に固有の秘密情報として、パラメータx,x,y,yを選択する(ステップS3011)。
【0352】
次に、鍵処理装置は、選択したパラメータx,x,y,yと、システムパラメータであるgとを用い、以下の式3001〜式3004に示すパラメータc,c,d,dを算出する(ステップS3012)。
【0353】
【数33】

【0354】
その後、鍵処理装置は、鍵処理装置を所持するユーザに固有の秘密鍵sk=(x,x,y,y)を生成する(ステップS3013)。また、鍵処理装置は、鍵処理装置を所持するユーザに固有の公開鍵pk=(c,c,d,d)を生成する(ステップS3014)。
【0355】
その後、鍵処理装置は、生成した公開鍵pkと秘密鍵skとをユーザに対して出力する(ステップS3015)。また、生成した公開鍵pkは、他の鍵処理装置に対して公開される。
【0356】
このような手順を経ることにより、鍵処理装置は、鍵処理装置を所持するユーザに固有の鍵である秘密鍵skおよび公開鍵pkを生成することができる。
【0357】
[暗号化方法について]
次に、図40を参照しながら、本実施形態に係る情報処理方法の基盤となる暗号化方法について、詳細に説明する。この暗号化方法は、複数受信者公開鍵暗号による通信を行うユーザが所持する情報処理装置である鍵処理装置において実行される。なお、この暗号化方法は、鍵処理装置を所持し、メッセージの送信を行うユーザが、複数受信者KEMを用いて暗号文を生成する際に実行される。
【0358】
まず、鍵処理装置は、パラメータr∈を無作為に選択する(ステップS3021)。
【0359】
次に、鍵処理装置は、選択したパラメータrと、システムパラメータとして公開されているパラメータgとを用いて、パラメータu=g∈Gを算出する(ステップS3022)。
【0360】
続いて、鍵処理装置は、算出したパラメータuと、システムパラメータとして公開されている関数TCRとを用いて、パラメータα=TCR(u)∈Zを算出する(ステップS3023)。
【0361】
次に、鍵処理装置は、メッセージの送信を行う鍵処理装置全てに対して、送信先の鍵処理装置の公開鍵pk(i=1,・・・n)を用い、式3005および式3006に示した2種類の検証用パラメータv1,i,2,iを算出する(ステップS3024)。
【0362】
【数34】

【0363】
続いて、鍵処理装置は、メッセージの送信を行う鍵処理装置全てに対して、送信先の鍵処理装置の公開鍵pk(i=1,・・・n)を用いて、以下のセッション鍵dkを算出する(ステップS3025)。
【0364】
【数35】

【0365】
次に、鍵処理装置は、φ=(u,v1,1,v1,2,・・・,v1,n,2,1,v2,2,・・・,v2,n)とし、(φ,dk,dk,・・・,dk)を出力する(ステップS3026)。
【0366】
このような手順を経ることにより、鍵処理装置は、鍵処理装置のDEMにおいて実行される共通鍵暗号処理に用いられるセッション鍵dkを生成することができる。
【0367】
[復号方法について]
次に、図41を参照しながら、本実施形態に係る情報処理方法の基盤となる復号方法について、詳細に説明する。この復号方法は、暗号文を受信した情報処理装置である鍵処理装置において実行される。
【0368】
復号処理に先立ち、鍵処理装置は、暗号文の中に含まれるφ=(u,v1,1,v1,2,・・・,v1,n,2,1,v2,2,・・・,v2,n)の中から、自身に関係する部分(u,v1,i,v2,i)を抽出する。この抽出処理は、記載されているv1,i,v2,iの順番とユーザとの対応関係とを関連付けるラベルを用いたり、送信者がそれぞれの受信者に必要な情報だけが届くように設定したりすることで実現可能である。
【0369】
まず、鍵処理装置は、暗号文に含まれるパラメータuと、システムパラメータとして公開されている関数TCRとを用いて、パラメータα=TCR(u)∈Zを算出する(ステップS3031)。
【0370】
次に、鍵処理装置は、自身の秘密鍵skと、システムパラメータと、算出したパラメータαと、暗号文に含まれるu,v1,i,v2,iとを用いて、暗号文の検証処理を行う。より詳細には、鍵処理装置は、以下の式3008および式3009における等号が両方とも成立するか否かに基づいて、暗号文の検証処理を行う(ステップS3032)。
【0371】
【数36】

【0372】
鍵処理装置は、上記式3008および式3009の等号が両方とも成立しない場合には、受信した暗号文が不当なものであると判断し、エラーメッセージを出力して(ステップS3033)復号処理を終了する。
【0373】
また、上記式3008および式3009の等号が両方とも成立した場合には、鍵処理装置は、受信した暗号文が正当なものであると判断し、自身の秘密鍵skと、暗号文に含まれるパラメータuと、システムパラメータとを用いて、自身に対応するセッション鍵dkを、以下の式3010を用いて算出する(ステップS3034)。続いて、鍵処理装置は、算出したセッション鍵dkを、自装置のDEMへと出力する(ステップS3035)。
【0374】
【数37】

【0375】
このような手順を経ることにより、鍵処理装置は、鍵処理装置のDEMにおける復号処理に用いられるセッション鍵dkを算出することができる。
【0376】
[基盤技術である暗号処理方法の問題点]
上述のような本実施形態に係る情報処理方法の基盤技術となる暗号処理方法では、以下のような問題点がある。すなわち、基盤技術では、暗号化方法において、それぞれの受信者の公開鍵を用いて検証用パラメータv1,1,v1,2,・・・,v1,n,2,1,v2,2,・・・,v2,nを計算し、暗号文φに挿入している。暗号文の受信者は、復号方法において、式2006における等号が成立するか否かを検証することにより、不当な暗号文を排除することが可能となっている。しかしながら、この検証方法を実現するために、受信者数をnとしたとき2n回のmulti−scalar multiplicationの処理が暗号化の際に必要となる。さらに、生成される暗号文においても、2n+1個の要素が必要となる。これらの値が大きいという点が、基盤技術における問題点である。
【0377】
<情報処理方法について>
本実施形態に係る情報処理方法では、上記問題を解決するために、セッション鍵の算出に用いられるパラメータの一つを共通化してシステムパラメータに加えることにより、情報処理方法全体における効率化を実現している。
【0378】
以下、本実施形態に係る情報処理方法について、図42〜図45を参照しながら、詳細に説明する。図42〜図45は、本実施形態に係る情報処理方法について説明するための流れ図である。
【0379】
[システムパラメータ生成方法について]
まず、図42を参照しながら、本実施形態に係るシステムパラメータ生成方法について、詳細に説明する。このシステムパラメータ生成方法は、システムパラメータ生成装置として機能する本実施形態に係る情報処理装置10において実行される。
【0380】
まず、情報処理装置10の群選択部101は、入力されたセキュリティパラメータに基づいて、kビットの素数pを選択し、pを位数とする群Gを選択する(ステップS301)。
【0381】
次に、情報処理装置10の関数選択部103は、G→Zという写像を実現する関数TCRと、G→{0,1}という写像を実現する関数Hと、を選択する(ステップS302)。
【0382】
続いて、情報処理装置10のパラメータ選択部105は、パラメータg,cGを選択する(ステップS303)。
【0383】
次に、情報処理装置10のシステムパラメータ生成部107は、システムパラメータIをI=(p,G,g,c,TCR,H)のように構成し、各鍵処理装置に公開する(ステップS304)。
【0384】
このような手順を経ることにより、システムパラメータ生成装置として機能する情報処理装置10は、鍵処理装置として機能する情報処理装置20のmKEM201が暗号処理を実行する際に必要となるシステムパラメータを生成することができる。
【0385】
[鍵生成方法について]
次に、図43を参照しながら、本実施形態に係る鍵生成方法について、詳細に説明する。この鍵生成方法は、複数受信者公開鍵暗号による通信を行うユーザが所持し、鍵処理装置として機能する情報処理装置20の鍵生成部211において実行される。なお、この鍵生成方法は、情報処理装置20を所持するユーザが、自身の公開鍵および秘密鍵を生成する際に実行される。この鍵生成方法は、情報処理装置20がシステムパラメータを取得した後であれば、任意のタイミングで行うことが可能である。
【0386】
まず、パラメータ生成部213は、情報処理装置20に固有の秘密情報として、パラメータs,t∈を選択する(ステップS311)。
【0387】
次に、パラメータ生成部213は、選択したパラメータs,tと、システムパラメータであるg,cとを用い、以下の式301に示すパラメータcを算出する(ステップS312)。
【0388】
【数38】

【0389】
続いて、パラメータ生成部213は、情報処理装置20に固有の秘密情報として、以下の式302に示す3種類のパラメータを選択する(ステップS313)。
【0390】
【数39】

【0391】
次に、パラメータ生成部213は、生成したパラメータと、システムパラメータとを用いて、以下の式303および式304に示すパラメータd,dを生成する(ステップS314)。
【0392】
【数40】

【0393】
その後、秘密鍵生成部215は、情報処理装置20を所持するユーザに固有の秘密鍵skを、以下の式305に基づいて生成する(ステップS315)。
【0394】
【数41】

【0395】
また、公開鍵生成部217は、情報処理装置20を所持するユーザに固有の公開鍵pk=(c,d,d)を生成する(ステップS316)。
【0396】
その後、鍵生成部211は、生成した公開鍵pkと秘密鍵skとをユーザに対して出力する(ステップS317)。また、公開鍵公開部219は、生成した公開鍵pkを、他の情報処理装置20に対して公開する。
【0397】
このような手順を経ることにより、情報処理装置20の鍵生成部211は、情報処理装置を所持するユーザに固有の鍵である秘密鍵skおよび公開鍵pkを生成することができる。
【0398】
[暗号化方法について]
次に、図44を参照しながら、本実施形態に係る暗号化方法について、詳細に説明する。この暗号化方法は、複数受信者公開鍵暗号による通信を行うユーザが所持し、鍵処理装置として機能する情報処理装置20の暗号化部221において実行される。なお、この暗号化方法は、情報処理装置20を所持し、メッセージの送信を行うユーザが、複数受信者KEMを用いて暗号文を生成する際に実行される。
【0399】
まず、パラメータ選択部223は、パラメータr∈を無作為に選択する(ステップS321)。
【0400】
次に、パラメータ選択部223は、選択したパラメータrと、システムパラメータとして公開されているパラメータgとを用いて、パラメータu=g∈Gを算出する(ステップS322)。
【0401】
続いて、パラメータ選択部223は、算出したパラメータuと、システムパラメータとして公開されている関数TCRとを用いて、パラメータα=TCR(u)∈Zを算出する(ステップS323)。
【0402】
次に、検証用パラメータ生成部225は、メッセージの送信を行う情報処理装置20全てに対して、式306および式307に示した2種類の検証用パラメータv1,i,2,iを算出する(ステップS324)。以下の式306および式307から明らかなように、検証用パラメータv1,i,2,iは、送信先の情報処理装置20の公開鍵pk(i=1,・・・n)と、システムパラメータと、選択したパラメータと用いて、算出可能である。
【0403】
【数42】

【0404】
続いて、セッション鍵算出部237は、メッセージの送信を行う情報処理装置20全てに対して、システムパラメータと選択したパラメータrとを用いて、以下のセッション鍵dkを算出する(ステップS325)。
【0405】
【数43】

【0406】
次に、暗号化部221は、φ=(u,v1,1,v1,2,・・・,v1,n,2,1,v2,2,・・・,v2,n)とし、(φ,dk)を出力する(ステップS326)。
【0407】
このような手順を経ることにより、情報処理装置20は、DEM203において実行される共通鍵暗号処理に用いられるセッション鍵dkを生成することができる。
【0408】
上述のように、基盤技術における暗号化方法では、受信者の公開鍵pkを用いて各受信者に対してセッション鍵dkを算出していたが、本実施形態に係る暗号化方法では、システムパラメータとして公開されている値を用いてセッション鍵dkを生成する。これにより、本実施形態に係る暗号化方法では、演算回数の削減を図ることが可能となる。
【0409】
[復号方法について]
次に、図45を参照しながら、本実施形態に係る復号方法について、詳細に説明する。この復号方法は、暗号文を受信した情報処理装置20の復号部231において実行される。
【0410】
復号処理に先立ち、復号部231は、暗号文の中に含まれるφ=(u,v1,1,v1,2,・・・,v1,n,2,1,v2,2,・・・,v2,n)の中から、自身に関係する部分(u,v1,i,v2,i)を抽出する。この抽出処理は、記載されているv1,i,v2,iの順番とユーザとの対応関係とを関連付けるラベルを用いたり、送信者がそれぞれの受信者に必要な情報だけが届くように設定したりすることで実現可能である。
【0411】
まず、パラメータ算出部233は、暗号文に含まれるパラメータuと、システムパラメータとして公開されている関数TCRとを用いて、パラメータα=TCR(u)∈Zを算出する(ステップS331)。
【0412】
次に、パラメータ算出部233は、自身の秘密鍵skと、システムパラメータと、算出したパラメータαと、暗号文に含まれるu,v1,i,v2,iとを用いて、以下の式309および式310に示した2種類のパラメータを算出する(ステップS332)。
【0413】
【数44】

【0414】
続いて、検証部235は、自身の秘密鍵skと、算出した2種類のパラメータと、暗号文に含まれるuとを用いて、暗号文の検証処理を行う。より詳細には、検証部235は、以下の式311における等号が成立するか否かに基づいて、暗号文の検証処理を行う(ステップS333)。
【0415】
【数45】

【0416】
検証部235は、上記式311の等号が成立しない場合には、受信した暗号文が不当なものであると判断し、エラーメッセージを出力して(ステップS334)復号処理を終了する。
【0417】
また、上記式311の等号が成立した場合には、検証部235は、受信した暗号文が正当なものであると判断し、暗号文が正当なものである旨を示す情報を、セッション鍵算出部237に伝送する。セッション鍵算出部237は、システムパラメータと、式309に基づいて算出したパラメータとを用いて、セッション鍵dkを、以下の式312を用いて算出する(ステップS335)。続いて、セッション鍵算出部237は、算出したセッション鍵dkを、自装置のDEM203へと出力する(ステップS336)。
【0418】
【数46】

【0419】
このような手順を経ることにより、情報処理装置20の復号部231は、DEM203における復号処理に用いられるセッション鍵dkを算出することができる。
【0420】
<暗号化時の計算量と暗号文のサイズについて>
以下では、本実施形態に係る情報処理方法の暗号化時における計算量と暗号文のサイズについて、基盤技術における暗号処理方法と比較しながら説明する。
【0421】
[暗号化時の計算量について]
まず、受信者数をnとしたときの、基盤技術における暗号化方法での計算量と、本実施形態に係る暗号化方法での計算量を比較する。両方法ともに、single−scalar multiplication、および、multi−scalar multiplicationの計算量が支配的となるため、それぞれの演算数の比較を行った。暗号化時の計算量を比較した結果を、以下の表7に示す。
【0422】
【表7】

【0423】
表7より、基盤技術における暗号化方法では、(n+1)回のsingle−scalar multiplicationと、2n回のmulti−scalar multiplicationが必要であることがわかる。また、本実施形態に係る暗号化方法では、n+3回のsingle−scalar multiplicationと、n回のmulti−scalar multiplicationが必要であることがわかる。
【0424】
非特許文献5に記載のように、一般的にmulti−scalar multiplicationは、single−scalar multiplicationの1.5倍の処理が必要であると考えられている。このことを考慮すると、基盤技術における暗号化方法では(4n+1)回分のsingle−scalar multiplicationの計算量が必要である。他方、本実施形態に係る暗号化方式では、(1.5n+3)回分のsingle−scalar multiplicationの計算量で処理が完了することが分かる。
【0425】
[暗号文のサイズについて]
次に、受信者数をnとしたときの、基盤技術における暗号文サイズと、本実施形態に係る情報処理方法における暗号文サイズとを比較する。両方法とも、暗号文に含まれる要素数およびmKEM中に含まれるDEMにより生成される暗号文の数で比較を行った。得られた結果を、以下の表8に示す。
【0426】
【表8】

【0427】
表8より、基盤技術および本実施形態では、群の要素数は2n+1個と変わらないものの、mKEM中に含まれるDEMにより生成される暗号文の数をなくすことが可能となる。この結果から明らかなように、本実施形態に係る情報処理方法では、暗号文のサイズを、削減することができる。
【0428】
以上説明したように、本実施形態に係る情報処理装置および情報処理方法では、鍵処理装置として機能する情報処理装置20におけるmKEM201として、図13に示したmsKEMを導入することで、複数受信者公開鍵暗号システムを実現している。
【0429】
(第4の実施形態)
続いて、図46〜図56を参照しながら、本発明の第4の実施形態に係る情報処理装置および情報処理方法について、詳細に説明する。
【0430】
まず、図46を参照しながら、本実施形態に係る情報処理装置および情報処理方法が着目している点について、簡単に説明する。
【0431】
本発明の各実施形態で着目している複数受信者公開鍵暗号システムでは、システムパラメータが生成した共通のシステムパラメータに基づいて、各ユーザが秘密鍵および公開鍵を生成する。また、各ユーザ間で送信される暗号文は、共通のシステムパラメータと、暗号文の受信者の公開鍵と、に基づいて、生成される。
【0432】
ここで、図46に示したように、悪意のあるシステムパラメータ生成者が、ユーザ間で送信される暗号文の内容を盗み見るために、システムパラメータ中に生成者しか知りえない秘密情報を埋め込んで、各ユーザにシステムパラメータを公開した場合を考える。
【0433】
システムに参加している各ユーザは、秘密情報が埋め込まれたシステムパラメータを用いて各自の秘密鍵および公開鍵を生成し、この公開鍵に基づいて暗号文の送信が行なわれる。この場合に、悪意のあるシステムパラメータ生成者は、システムパラメータに埋め込んだ秘密情報に基づいて、暗号文の内容を取得できる可能性がある。
【0434】
例えば、システムパラメータとして2種類以上の群の要素が必要な方式において、本来独立して選択するべき群の要素それぞれを独立して選択せずに、これらの要素間に何らかの関連付けを行なって、一つの要素から他の要素を生成するような場合が考えられる。
【0435】
そこで、以下に示す本実施形態に係る情報処理装置および情報処理方法では、このようなシステムパラメータへの秘密情報の埋め込みができないように、方式の改良を行なった。
【0436】
<情報処理装置の構成について>
まず、本実施形態に係る情報処理装置の構成について、説明する。本実施形態に係る情報処理装置は、システムパラメータ生成装置として機能する情報処理装置10と、鍵処理装置として機能する情報処理装置20とが存在する。
【0437】
ここで、本実施形態におけるシステムパラメータ生成装置として機能する情報処理装置10は、図14に示した本発明の第1の実施形態に係る情報処理装置10の構成を有し、各処理部で実行される処理内容のみが異なるものである。そのため、本実施形態に係る情報処理装置10が備える各処理部の機能については、以下で本実施形態に係る情報処理方法を説明しながら説明するものとする。
【0438】
同様に、本実施形態における鍵処理装置として機能する情報処理装置20は、図15および図16に示した本発明の第1の実施形態に係る情報処理装置20の構成を有し、各処理部で実行される処理内容のみが異なるものである。そのため、本実施形態に係る情報処理装置20が備える各処理部の機能については、以下で本実施形態に係る情報処理方法を説明しながら説明するものとする。
【0439】
<本実施形態に係る情報処理方法の基盤となる暗号処理方法について>
続いて、本実施形態に係る情報処理方法について説明するに先立ち、本実施形態に係る情報処理方法の基盤となる暗号処理方法について、図47〜50を参照しながら、詳細に説明する。図47〜図50は、本実施形態に係る情報処理方法の基盤となる暗号処理方法について説明するための流れ図である。本実施形態に係る情報処理方法の基盤となる暗号処理方法は、非特許文献4に記載の暗号処理方法である。
【0440】
[システムパラメータ生成方法について]
まず、図47を参照しながら、本実施形態に係る情報処理方法の基盤となるシステムパラメータ生成方法について、詳細に説明する。このシステムパラメータ生成方法は、システムパラメータ生成者が所持する情報処理装置であるシステムパラメータ生成装置において実行される。
【0441】
まず、システムパラメータ生成装置は、入力されたセキュリティパラメータに基づいて、kビットの素数pを選択し、pを位数とする群Gを選択する(ステップS4001)。
【0442】
次に、システムパラメータ生成装置は、G→Zという写像を実現する関数TCRと、G→{0,1}という写像を実現する関数Hと、を選択する(ステップS4002)。
【0443】
続いて、システムパラメータ生成装置は、パラメータg,gGを選択する(ステップS4003)。
【0444】
次に、システムパラメータ生成装置は、システムパラメータIをI=(p,G,g,g,TCR,H)のように構成し、各鍵処理装置に公開する(ステップS4004)。
【0445】
このような手順を経ることにより、システムパラメータ生成装置は、鍵処理装置が暗号処理を実行する際に必要となるシステムパラメータを生成することができる。
【0446】
[鍵生成方法について]
次に、図48を参照しながら、本実施形態に係る情報処理方法の基盤となる鍵生成方法について、詳細に説明する。この鍵生成方法は、複数受信者公開鍵暗号による通信を行うユーザが所持する情報処理装置である鍵処理装置において実行される。なお、この鍵生成方法は、鍵処理装置を所持するユーザが、自身の公開鍵および秘密鍵を生成する際に実行される。この鍵生成方法は、鍵処理装置がシステムパラメータ生成装置によって生成されたシステムパラメータを取得した後であれば、任意のタイミングで行うことが可能である。
【0447】
まず、鍵処理装置は、鍵処理装置に固有の秘密情報として、パラメータx,x,y,y,z∈を選択する(ステップS4011)。
【0448】
次に、鍵処理装置は、選択したパラメータx,x,y,y,zと、システムパラメータであるg,gとを用い、以下の式4001〜式4003に示すパラメータc,d,hを算出する(ステップS4012)。
【0449】
【数47】

【0450】
その後、鍵処理装置は、鍵処理装置を所持するユーザに固有の秘密鍵sk=(x,x,y,y,z)を生成する(ステップS4013)。また、鍵処理装置は、鍵処理装置を所持するユーザに固有の公開鍵pk=(c,d,h)を生成する(ステップS4014)。
【0451】
その後、鍵処理装置は、生成した公開鍵pkと秘密鍵skとをユーザに対して出力する(ステップS4015)。また、生成した公開鍵pkは、他の鍵処理装置に対して公開される。
【0452】
このような手順を経ることにより、鍵処理装置は、鍵処理装置を所持するユーザに固有の鍵である秘密鍵skおよび公開鍵pkを生成することができる。
【0453】
[暗号化方法について]
次に、図49を参照しながら、本実施形態に係る情報処理方法の基盤となる暗号化方法について、詳細に説明する。この暗号化方法は、複数受信者公開鍵暗号による通信を行うユーザが所持する情報処理装置である鍵処理装置において実行される。なお、この暗号化方法は、鍵処理装置を所持しメッセージの送信を行うユーザが、暗号文を生成する際に実行される。
【0454】
まず、鍵処理装置は、パラメータr∈を無作為に選択する(ステップS4021)。
【0455】
次に、鍵処理装置は、選択したパラメータrと、システムパラメータとして公開されているパラメータgとを用いて、パラメータu=g∈Gを算出する(ステップS4022)。
【0456】
続いて、鍵処理装置は、送信したいメッセージに対応するデータmと、システムパラメータとして公開されているパラメータgと、選択したパラメータrとを用いて、暗号文χ=mgを生成する(ステップS4023)。
【0457】
次に、鍵処理装置は、メッセージの送信を行う鍵処理装置全てに対して、送信先の鍵処理装置の公開鍵pk(i=1,・・・n)と選択したパラメータrとを用いて、パラメータu2,i=hを算出する(ステップS4024)。
【0458】
続いて、鍵処理装置は、算出したパラメータu,u2,iと、暗号文χと、公開されている関数TCRとを用いて、メッセージの送信を行う鍵処理装置全てに対して、パラメータα=TCR(u,u2,i,χ)を算出する(ステップS4025)。
【0459】
次に、鍵処理装置は、メッセージの送信を行う鍵処理装置全てに対して、送信先の鍵処理装置の公開鍵pk(i=1,・・・n)を用い、式4004に示した検証用パラメータvを算出する(ステップS4026)。
【0460】
【数48】

【0461】
続いて、鍵処理装置は、各鍵処理装置に対して送信するデータとして、(u,u2,1,u2,2,・・・,u2,n,,v,・・・,v,χ)を出力する(ステップS4027)。
【0462】
このような手順を経ることにより、鍵処理装置は、他の鍵処理装置に対して送信するメッセージmを暗号化することができる。
【0463】
[復号方法について]
次に、図50を参照しながら、本実施形態に係る情報処理方法の基盤となる復号方法について、詳細に説明する。この復号方法は、暗号文を受信した情報処理装置である鍵処理装置において実行される。
【0464】
復号処理に先立ち、鍵処理装置は、暗号文の中に含まれる(u2,1,u2,2,・・・,u2,n,,v,・・・,v)の中から、自身に関係する部分(u2,i,v)を抽出する。この抽出処理は、記載されているu2,i,vの順番とユーザとの対応関係とを関連付けるラベルを用いたり、送信者がそれぞれの受信者に必要な情報だけが届くように設定したりすることで実現可能である。
【0465】
まず、鍵処理装置は、暗号文に含まれるパラメータu,u2,i,χと、システムパラメータとして公開されている関数TCRとを用いて、パラメータα=TCR(u,u2,i,χ)を算出する(ステップS4031)。
【0466】
次に、鍵処理装置は、自身の秘密鍵skと、暗号文に含まれるu2,iとを用いて、式4005で表されるパラメータu’を算出する(ステップS4032)。
【0467】
【数49】

【0468】
続いて、鍵処理装置は、自身の秘密鍵skと、暗号文に含まれるu,vと、算出したパラメータα,u’とを用いて、暗号文の検証処理を行う。より詳細には、鍵処理装置は、以下の式4006における等号が成立するか否かに基づいて、暗号文の検証処理を行う(ステップS4033)。
【0469】
【数50】

【0470】
鍵処理装置は、上記式4006の等号が成立しない場合には、受信した暗号文が不当なものであると判断し、エラーメッセージを出力して(ステップS4034)復号処理を終了する。
【0471】
また、上記式4006の等号が成立した場合には、鍵処理装置は、受信した暗号文が正当なものであると判断し、式4007を用いて新たにu’を算出する(ステップS4035)。続いて、鍵処理装置は、暗号文を復号して、平文mを出力する(ステップS4036)。
【0472】
【数51】

【0473】
このような手順を経ることにより、鍵処理装置は、暗号文を復号して、平文mを出力することができる。
【0474】
[基盤技術である暗号処理方法の問題点]
ここで、上述のような基盤技術において、悪意あるシステムパラメータ生成者が、システムパラメータgをgとは独立に選択せずに、g=gというシステムパラメータ生成者しか知りえない関係性を用いて、gからgを算出した場合を考える。ここで、gを算出する際に用いられたパラメータwが、システムパラメータ生成者しか知りえない秘密情報に相当する。
【0475】
パラメータgとパラメータgとが、パラメータwを用いて秘密裏に関連付けられていると、復号処理における式4007が、以下の式4008のように変形できる。そのため、悪意あるシステムパラメータ生成者は、暗号文中に含まれるパラメータと、秘密情報wとを用いて、本来通信を行っているユーザ同士のみしか知りえないメッセージの内容を、盗み見ることが可能となってしまう。
【0476】
【数52】

【0477】
<第2の実施形態に係るシステムパラメータ生成方法について>
また、本発明の第2の実施形態に係るシステムパラメータ生成方法においても、パラメータyを選択する際に、先に選択したパラメータgと、システムパラメータ生成者しか知りえない秘密情報wとを用いて、y=gと設定することが可能である。パラメータgおよびパラメータyが上述のような関係性を有している場合、復号方法の式206は、以下の式4009のように変形できる。そのため、悪意あるシステムパラメータ生成者は、暗号文中に含まれるパラメータと、秘密情報wとを用いて、本来通信を行っているユーザ同士のみしか知りえないメッセージの内容を、盗み見ることが可能となってしまう。
【0478】
【数53】

【0479】
<情報処理方法について>
そこで、本実施形態に係る情報処理方法では、上記問題を解決するために、群の中から選ぶ要素を順に選択するように設定し、選択した要素を、以下で説明するような関数Tに入力して、関数Tの出力を次の要素の候補として採用するようにした。これにより、出力されるパラメータと、入力したパラメータとに関係する群構造を把握することが困難となる。また、このような関数をシステムパラメータとしてあわせて公開することにより、システムに参加する各ユーザは、適式にパラメータが選択されているかを検証可能なようにした。
【0480】
[本実施形態に係る基盤技術の問題点を解決可能な方法について]
まず、非特許文献4に記載の方法における問題点を解決することが可能な本実施形態に係る情報処理方法(より詳細には、システムパラメータ生成方法)について、図51を参照しながら詳細に説明する。
【0481】
まず、情報処理装置10の群選択部101は、入力されたセキュリティパラメータに基づいて、kビットの素数pを選択し、pを位数とする群Gを選択する(ステップS401)。
【0482】
次に、情報処理装置10の関数選択部103は、G→Zという写像を実現する関数TCRと、G→{0,1}という写像を実現する関数Hと、を選択する(ステップS402)。
【0483】
続いて、情報処理装置10のパラメータ選択部105は、パラメータgGを選択する(ステップS403)。
【0484】
次に、情報処理装置10の関数選択部103は、関数Tを選択し、パラメータ選択部105は、パラメータg=T(g)と設定する(ステップS404)。
【0485】
続いて、情報処理装置10のシステムパラメータ生成部107は、システムパラメータIをI=(p,G,g,g,TCR,H,T)のように構成し、各鍵処理装置に公開する(ステップS405)。
【0486】
ここで、パラメータgを算出する際に用いられる関数Tとして、例えば以下のような関数を用いることが可能である。
【0487】
用いられる関数Tは、例えば、その関数に入力された要素と、関数から出力された要素とを得たとしても、入力された要素から群演算のみを利用して出力された要素を構成することが困難となるような性質を有している。
【0488】
ここで、p,qをp=2q+1が成り立つ素数とする。このとき、Zの中に位数がqの部分群Gが存在する。この部分群を、群選択部101が選択した群Gと定める。ここで、素数pを例えば1024−bitであると想定する。
【0489】
このとき、例えば図52に示したように、一つ目のシステムパラメータgが選ばれた後、パラメータgの上位数bitを擬似乱数生成器(PRNG)に入力し、出力された1024−bitをもう一つの要素gの候補とする。パラメータgの候補がpを越えておらず、かつ、Zでq乗した値が1となるときは、パラメータgの候補をそのままパラメータgとする。また、上述の条件を満たさない場合には、パラメータgの選択からやり直すこととする。
【0490】
上述のような処理を行う関数Tを用いることにより、パラメータgとパラメータgとの間にある群構造の関係を推測することが困難となる。
【0491】
また、上述のような関数Tは、楕円曲線上の有理点の部分集合として構成される素数位数の群に対しても、設定することが可能である。このような素数位数の群に対して、任意の素体からその群に写像するmap to pointという関数が知られている。この関数を用いることで、システムパラメータの要素同士の間にある群構造の関係を分からなくすることが可能である。
【0492】
例えば、素数p,q(|p|=160,p=2mod3,p=sq+1)に対して、楕円曲線:y=x+1 over Fpを考える。システムパラメータの一つ目の要素をgとしたとき、関数Tを、例えば図53に示したような処理を実現する処理部と設定することができる。すなわち、パラメータgの上位数ビットを擬似乱数生成器にseedとして入力し、出力された例えば160−bitをZの要素yとする。次に、x=(y−1)1/3∈Zとする。次にQ=(x,y)を楕円曲線上の点とし、sスカラー倍した点をgとし、二つ目のシステムパラメータとして出力する。
【0493】
このような関数Tを1種類のみ使用して、g=T(g)、g=T(g)・・・のように、関数の出力を次のパラメータを算出する際の入力として順に使用することで、複数のパラメータを選択することが可能である。また、このような関数Tを複数種類使用して、パラメータgをある関数Tを用いて算出したら、パラメータgをある関数Tを用いて算出する・・・のようにして、複数のパラメータを選択してもよい。
【0494】
また、上述のような関数Tの代わりに、既存のハッシュ関数を用いることも可能である。
【0495】
[本実施形態に係る基盤技術の問題点を解決可能な方法について]
続いて、本発明の第2の実施形態に記載の方法を改良した情報処理方法(より詳細には、システムパラメータ生成方法)について、図54を参照しながら詳細に説明する。
【0496】
まず、情報処理装置10の群選択部101は、入力されたセキュリティパラメータに基づいて、kビットの素数pを選択し、pを位数とする群Gを選択する(ステップS411)。
【0497】
次に、情報処理装置10の関数選択部103は、G→Zという写像を実現する関数TCRと、G→{0,1}という写像を実現する関数Hと、を選択する(ステップS412)。
【0498】
続いて、情報処理装置10のパラメータ選択部105は、パラメータg∈Gを選択する(ステップS413)。
【0499】
次に、情報処理装置10の関数選択部103は、関数Tを選択し、パラメータ選択部105は、パラメータy=T(g)と設定する(ステップS414)。
【0500】
続いて、情報処理装置10のシステムパラメータ生成部107は、システムパラメータIをI=(p,G,g,y,TCR,H,T)のように構成し、各鍵処理装置に公開する(ステップS415)。
【0501】
以上説明したように、システムパラメータの要素を決定する際に、上述のような関数Tを用いることにより、悪意あるシステムパラメータ生成者が、ユーザ間で伝送された暗号文の内容を盗み見ることを防止することが可能となる。
【0502】
<第1変形例について>
上述の説明では、悪意あるシステムパラメータ生成者が、ユーザ間で伝送されている暗号文の内容を盗み見る場合について説明した。ここで、例えば、暗号システムの設計者や会社の上司など、ある特別の権力を有する者のみがユーザ間で伝送されている全ての暗号文の内容を復号できるようにシステムパラメータを設定すると、便利である場合が多い。そこで、本実施形態の第1変形例では、システムパラメータ生成者が、全ての暗号文の内容を復号できるような方式(いわゆるkey escrow方式)について、図55および図56を参照しながら詳細に説明する。
【0503】
[本実施形態に係る基盤技術を改良した情報処理方法について]
まず、本実施形態に係る基盤技術を改良した情報処理方法について、図55を参照しながら詳細に説明する。本方法は、システムパラメータとして選択されるパラメータgとパラメータgとの間に特別な関係性を持たせることにより、システムパラメータ生成者が、全ての暗号文を復号可能なようにした方法である。
【0504】
まず、情報処理装置10の群選択部101は、入力されたセキュリティパラメータに基づいて、kビットの素数pを選択し、pを位数とする群Gを選択する(ステップS421)。
【0505】
次に、情報処理装置10の関数選択部103は、G→Zという写像を実現する関数TCRと、G→{0,1}という写像を実現する関数Hと、を選択する(ステップS422)。
【0506】
続いて、情報処理装置10のパラメータ選択部105は、パラメータgGを選択する(ステップS403)。
【0507】
次に、情報処理装置10のパラメータ選択部105は、パラメータwを選択して、パラメータg=gと設定する(ステップS424)。
【0508】
続いて、情報処理装置10のシステムパラメータ生成部107は、システムパラメータIをI=(p,G,g,g,TCR,H)のように構成し、各鍵処理装置に公開する(ステップS425)。
【0509】
パラメータgとパラメータgとが、パラメータwを用いて関連付けられていることで、上述のように、復号処理における式4007が式4008のように変形できる。そのため、特別な権限を有するシステムパラメータ生成者は、暗号文中に含まれるパラメータと、パラメータwとを用いて、全ての暗号文を復号することが可能となる。
【0510】
[本発明の第2の実施形態に係る方法を改良した情報処理方法について]
次に、本発明の第2の実施形態に係る方法を改良した情報処理方法について、図56を参照しながら詳細に説明する。本方法は、システムパラメータとして選択されるパラメータgとパラメータyとの間に特別な関係性を持たせることにより、システムパラメータ生成者が、全ての暗号文を復号可能なようにした方法である。
【0511】
まず、情報処理装置10の群選択部101は、入力されたセキュリティパラメータに基づいて、kビットの素数pを選択し、pを位数とする群Gを選択する(ステップS431)。
【0512】
次に、情報処理装置10の関数選択部103は、G→Zという写像を実現する関数TCRと、G→{0,1}という写像を実現する関数Hと、を選択する(ステップS432)。
【0513】
続いて、情報処理装置10のパラメータ選択部105は、パラメータg∈Gを選択する(ステップS433)。
【0514】
次に、情報処理装置10のパラメータ選択部105は、パラメータwを選択して、パラメータy=gと設定する(ステップS434)。
【0515】
続いて、情報処理装置10のシステムパラメータ生成部107は、システムパラメータIをI=(p,G,g,y,TCR,H)のように構成し、各鍵処理装置に公開する(ステップS435)。
【0516】
パラメータgおよびパラメータyがパラメータwを用いて関連付けられていることで、上述のように、復号方法における式206は式4009のように変形できる。そのため、特別な権限を有するシステムパラメータ生成者は、暗号文中に含まれるパラメータと、パラメータwとを用いて、全ての暗号文を復号することが可能となる。
【0517】
また、全ての暗号文を復号可能なように所定の関係性が導入されたシステムパラメータと、全ての暗号文を復号できないように所定の関数Tを導入したシステムパラメータとを双方公開することも可能である。このように2種類のシステムパラメータを公開することで、メッセージの送信者は、key escrow方式を利用するかしないかを選択することが可能となる。
【0518】
<ハードウェア構成について>
次に、図57を参照しながら、本発明の各実施形態に係る情報処理装置10のハードウェア構成について、詳細に説明する。図57は、本発明の各実施形態に係る情報処理装置10のハードウェア構成を説明するためのブロック図である。
【0519】
情報処理装置10は、主に、CPU901と、ROM903と、RAM905と、を備える。また、情報処理装置10は、更に、ホストバス907と、ブリッジ909と、外部バス911と、インターフェース913と、入力装置915と、出力装置917と、ストレージ装置919と、ドライブ921と、接続ポート923と、通信装置925とを備える。
【0520】
CPU901は、演算処理装置および制御装置として機能し、ROM903、RAM905、ストレージ装置919、またはリムーバブル記録媒体927に記録された各種プログラムに従って、情報処理装置10内の動作全般またはその一部を制御する。ROM903は、CPU901が使用するプログラムや演算パラメータ等を記憶する。RAM905は、CPU901の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一次記憶する。これらはCPUバス等の内部バスにより構成されるホストバス907により相互に接続されている。
【0521】
ホストバス907は、ブリッジ909を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス911に接続されている。
【0522】
入力装置915は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチおよびレバーなどユーザが操作する操作手段である。また、入力装置915は、例えば、赤外線やその他の電波を利用したリモートコントロール手段(いわゆる、リモコン)であってもよいし、情報処理装置10の操作に対応した携帯電話やPDA等の外部接続機器929であってもよい。さらに、入力装置915は、例えば、上記の操作手段を用いてユーザにより入力された情報に基づいて入力信号を生成し、CPU901に出力する入力制御回路などから構成されている。情報処理装置10のユーザは、この入力装置915を操作することにより、情報処理装置10に対して各種のデータを入力したり処理動作を指示したりすることができる。
【0523】
出力装置917は、取得した情報をユーザに対して視覚的または聴覚的に通知することが可能な装置で構成される。このような装置として、CRTディスプレイ装置、液晶ディスプレイ装置、プラズマディスプレイ装置、ELディスプレイ装置およびランプなどの表示装置や、スピーカおよびヘッドホンなどの音声出力装置や、プリンタ装置、携帯電話、ファクシミリなどがある。出力装置917は、例えば、情報処理装置10が行った各種処理により得られた結果を出力する。具体的には、表示装置は、情報処理装置10が行った各種処理により得られた結果を、テキストまたはイメージで表示する。他方、音声出力装置は、再生された音声データや音響データ等からなるオーディオ信号をアナログ信号に変換して出力する。
【0524】
ストレージ装置919は、情報処理装置10の記憶部の一例として構成されたデータ格納用の装置である。ストレージ装置919は、例えば、HDD(Hard Disk Drive)等の磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または光磁気記憶デバイス等により構成される。このストレージ装置919は、CPU901が実行するプログラムや各種データ、および外部から取得した各種のデータなどを格納する。
【0525】
ドライブ921は、記録媒体用リーダライタであり、情報処理装置10に内蔵、あるいは外付けされる。ドライブ921は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体927に記録されている情報を読み出して、RAM905に出力する。また、ドライブ921は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体927に記録を書き込むことも可能である。リムーバブル記録媒体927は、例えば、DVDメディア、HD−DVDメディア、Blu−rayメディア等である。また、リムーバブル記録媒体927は、コンパクトフラッシュ(登録商標)(CompactFlash:CF)、メモリースティック、または、SDメモリカード(Secure Digital memory card)等であってもよい。また、リムーバブル記録媒体927は、例えば、非接触型ICチップを搭載したICカード(Integrated Circuit card)または電子機器等であってもよい。
【0526】
接続ポート923は、機器を情報処理装置10に直接接続するためのポートである。接続ポート923の一例として、USB(Universal Serial Bus)ポート、i.Link等のIEEE1394ポート、SCSI(Small Computer System Interface)ポート等がある。接続ポート923の別の例として、RS−232Cポート、光オーディオ端子、HDMI(High−Definition Multimedia Interface)ポート等がある。この接続ポート923に外部接続機器929を接続することで、情報処理装置10は、外部接続機器929から直接各種のデータを取得したり、外部接続機器929に各種のデータを提供したりする。
【0527】
通信装置925は、例えば、通信網931に接続するための通信デバイス等で構成された通信インターフェースである。通信装置925は、例えば、有線または無線LAN(Local Area Network)、Bluetooth、またはWUSB(Wireless USB)用の通信カード等である。また、通信装置925は、光通信用のルータ、ADSL(Asymmetric Digital Subscriber Line)用のルータ、または、各種通信用のモデム等であってもよい。この通信装置925は、例えば、インターネットや他の通信機器との間で、例えばTCP/IP等の所定のプロトコルに則して信号等を送受信することができる。また、通信装置925に接続される通信網931は、有線または無線によって接続されたネットワーク等により構成され、例えば、インターネット、家庭内LAN、赤外線通信、ラジオ波通信または衛星通信等であってもよい。
【0528】
以上、本発明の各実施形態に係る情報処理装置10の機能を実現可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。
【0529】
また、本発明の各実施形態に係る情報処理装置20のハードウェア構成は、本発明の各実施形態に係る情報処理装置10のハードウェア構成と同様の構成を有しているため、詳細な説明は省略する。
【0530】
<まとめ>
以上説明したように、本発明の各実施形態に係る情報処理装置および情報処理方法では、各ユーザが共通して使用するシステムパラメータの中に、暗号化処理および復号処理で用いられ、ユーザ固有の秘密情報を含まないパラメータを追加する。これにより、暗号化処理に要する計算量を削減することが可能となり、さらに、暗号文サイズを削減することが可能となる。
【0531】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明はかかる例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【図面の簡単な説明】
【0532】
【図1】公開鍵暗号システムについて説明するための説明図である。
【図2】公開鍵暗号システムについて説明するための説明図である。
【図3】公開鍵暗号システムについて説明するための説明図である。
【図4】複数受信者公開鍵暗号システムについて説明するための説明図である。
【図5】複数受信者公開鍵暗号システムについて説明するための説明図である。
【図6】複数受信者公開鍵暗号システムについて説明するための説明図である。
【図7】複数受信者公開鍵暗号システムについて説明するための説明図である。
【図8】ハイブリッド暗号について説明するための説明図である。
【図9】ハイブリッド暗号について説明するための説明図である。
【図10】ハイブリッド暗号について説明するための説明図である。
【図11】ハイブリッド暗号について説明するための説明図である。
【図12】ハイブリッド暗号について説明するための説明図である。
【図13】ハイブリッド暗号について説明するための説明図である。
【図14】本発明の第1の実施形態に係る情報処理装置の構成を説明するためのブロック図である。
【図15】本発明の第1の実施形態に係る情報処理装置の構成を説明するためのブロック図である。
【図16】同実施形態に係る情報処理装置の構成を説明するためのブロック図である。
【図17】同実施形態に係る情報処理方法の基盤となる暗号処理方法について説明するための流れ図である。
【図18】同実施形態に係る情報処理方法の基盤となる暗号処理方法について説明するための流れ図である。
【図19】同実施形態に係る情報処理方法の基盤となる暗号処理方法について説明するための流れ図である。
【図20】同実施形態に係る情報処理方法の基盤となる暗号処理方法について説明するための流れ図である。
【図21】同実施形態に係る情報処理方法について説明するための流れ図である。
【図22】同実施形態に係る情報処理方法について説明するための流れ図である。
【図23】同実施形態に係る情報処理方法について説明するための流れ図である。
【図24】同実施形態に係る情報処理方法について説明するための流れ図である。
【図25】同実施形態に係る情報処理方法の第1変形例について説明するための流れ図である。
【図26】同実施形態に係る情報処理方法の第1変形例について説明するための流れ図である。
【図27】同実施形態に係る情報処理方法の第1変形例について説明するための流れ図である。
【図28】本発明の第2の実施形態に係る情報処理方法の基盤となる暗号処理方法について説明するための流れ図である。
【図29】同実施形態に係る情報処理方法の基盤となる暗号処理方法について説明するための流れ図である。
【図30】同実施形態に係る情報処理方法の基盤となる暗号処理方法について説明するための流れ図である。
【図31】同実施形態に係る情報処理方法の基盤となる暗号処理方法について説明するための流れ図である。
【図32】同実施形態に係る情報処理方法について説明するための流れ図である。
【図33】同実施形態に係る情報処理方法について説明するための流れ図である。
【図34】同実施形態に係る情報処理方法について説明するための流れ図である。
【図35】同実施形態に係る情報処理方法について説明するための流れ図である。
【図36】同実施形態に係る情報処理方法の第1変形例について説明するための流れ図である。
【図37】同実施形態に係る情報処理方法の第1変形例について説明するための流れ図である。
【図38】本発明の第3の実施形態に係る情報処理方法の基盤となる暗号処理方法について説明するための流れ図である。
【図39】同実施形態に係る情報処理方法の基盤となる暗号処理方法について説明するための流れ図である。
【図40】同実施形態に係る情報処理方法の基盤となる暗号処理方法について説明するための流れ図である。
【図41】同実施形態に係る情報処理方法の基盤となる暗号処理方法について説明するための流れ図である。
【図42】同実施形態に係る情報処理方法について説明するための流れ図である。
【図43】同実施形態に係る情報処理方法について説明するための流れ図である。
【図44】同実施形態に係る情報処理方法について説明するための流れ図である。
【図45】同実施形態に係る情報処理方法について説明するための流れ図である。
【図46】本発明の第4の実施形態に係る情報処理方法が着目している点について説明するための説明図である。
【図47】同実施形態に係る情報処理方法の基盤となる暗号処理方法について説明するための流れ図である。
【図48】同実施形態に係る情報処理方法の基盤となる暗号処理方法について説明するための流れ図である。
【図49】同実施形態に係る情報処理方法の基盤となる暗号処理方法について説明するための流れ図である。
【図50】同実施形態に係る情報処理方法の基盤となる暗号処理方法について説明するための流れ図である。
【図51】同実施形態に係る情報処理方法について説明するための流れ図である。
【図52】同実施形態に係る情報処理方法について説明するための説明図である。
【図53】同実施形態に係る情報処理方法について説明するための説明図である。
【図54】同実施形態に係る情報処理方法について説明するための説明図である。
【図55】同実施形態に係る情報処理方法の第1変形例について説明するための流れ図である。
【図56】同実施形態に係る情報処理方法の第1変形例について説明するための流れ図である。
【図57】本発明の各実施形態に係る情報処理装置のハードウェア構成を説明するためのブロック図である。
【符号の説明】
【0533】
3 通信網
10 情報処理装置(システムパラメータ生成装置)
20 情報処理装置(鍵処理装置)
101 群選択部
103 関数選択部
105 パラメータ選択部
107 システムパラメータ生成部
109 システムパラメータ公開部
111 通信制御部
113 記憶部
201 mKEM
203 DEM
205 通信制御部
207 記憶部
211 鍵生成部
213 パラメータ生成部
215 秘密鍵生成部
217 公開鍵生成部
219 公開鍵公開部
221 暗号化部
223 パラメータ選択部
225 検証用パラメータ生成部
227 セッション鍵生成部
231 復号部
233 パラメータ算出部
235 検証部
237 セッション鍵算出部

【特許請求の範囲】
【請求項1】
複数の鍵処理装置間で行われる複数受信者公開鍵暗号技術に基づく暗号化通信の際に利用される巡回群を生成する群選択部と、
前記暗号化通信の際に前記鍵処理装置で実行される処理に用いられ、前記複数の鍵処理装置それぞれに固有の秘密情報を含まず当該複数の鍵処理装置それぞれで共通して用いられるパラメータを含む複数のパラメータを選択するパラメータ選択部と、
前記暗号化通信における暗号文の生成または復号に関する処理に使用され、所定の写像を実現する関数を選択する関数選択部と、
前記群選択部により選択された巡回群と、前記パラメータ選択部により選択された複数のパラメータと、前記関数選択部により選択された関数と、を用いて、前記複数受信者公開鍵暗号技術に利用されるシステムパラメータを生成するシステムパラメータ生成部と、
を備える、情報処理装置。
【請求項2】
前記暗号化通信の際に前記鍵処理装置で実行される処理に用いられ、前記複数の鍵処理装置それぞれに固有の秘密情報を含まず当該複数の鍵処理装置それぞれで共通して用いられるパラメータは、前記鍵処理装置において暗号文の検証処理で用いられる検証用パラメータを生成する際に利用されるパラメータである、請求項1に記載の情報処理装置。
【請求項3】
前記暗号化通信の際に前記鍵処理装置で実行される処理に用いられ、前記複数の鍵処理装置それぞれに固有の秘密情報を含まず当該複数の鍵処理装置それぞれで共通して用いられるパラメータは、前記鍵処理装置において暗号文を生成する際に用いられるセッション鍵を生成する際に利用されるパラメータである、請求項1に記載の情報処理装置。
【請求項4】
前記パラメータ選択部は、
前記群選択部が選択した前記巡回群に属する第1のパラメータを更に選択し、
前記第1のパラメータに対して所定の群演算のみを行なうことにより前記巡回群に属する第2のパラメータを生成する、請求項1に記載の情報処理装置。
【請求項5】
前記パラメータ選択部は、
前記群選択部が選択した前記巡回群に属する第1のパラメータを更に選択し、
前記第1のパラメータを所定の関数に代入することにより得られた値を、前記巡回群に属する第2のパラメータとする、請求項1に記載の情報処理装置。
【請求項6】
前記関数選択部は、所定の群に属する入力値に対して所定の群演算のみを行なっても出力値を生成することが困難である値に前記入力値を変換する変換関数を少なくとも一つ選択し、
前記パラメータ選択部は、前記巡回群から選択された第1のパラメータと、前記変換関数とを用いて、更にパラメータを選択する、請求項5に記載の情報処理装置。
【請求項7】
前記群選択部は、互いに異なる2つの群GおよびGを選択し、
選択された前記群Gおよび群Gには、群Gから群Gへの写像を実現する同型写像が存在する、請求項1に記載の情報処理装置。
【請求項8】
前記関数選択部は、ターゲット衝突困難性を有する関数を選択する、請求項1に記載の情報処理装置。
【請求項9】
前記関数選択部は、定義域から一様分布に入力値を選択すると、出力が値域で一様分布する関数を選択する、請求項8に記載の情報処理装置。
【請求項10】
他の情報処理装置との間で行われる複数受信者公開鍵暗号技術に基づく暗号化通信の際に用いられるセッション鍵を生成する複数受信者鍵カプセル化メカニズム部と、
前記セッション鍵を用いて前記暗号化通信において送信される暗号文を生成するデータカプセル化メカニズム部と、
を備え、
前記複数受信者鍵カプセル化メカニズム部は、
前記暗号化通信の際に用いられる自装置に固有の公開鍵および秘密鍵を、取得したシステムパラメータに基づいて生成する鍵生成部と、
前記セッション鍵および前記暗号文の検証処理に用いられる検証用パラメータを、前記システムパラメータに基づいて生成する暗号化部と、
前記セッション鍵に関する暗号文を取得して前記システムパラメータに基づいて復号する復号部と、
を有し、
前記システムパラメータは、前記暗号化通信の際に自装置で実行される処理に用いられ、自装置および他の情報処理装置それぞれに固有の秘密情報を含まず自装置および他の情報処理装置それぞれで共通して用いられるパラメータを含み、
前記暗号化部は、前記複数受信者に共通する前記セッション鍵または前記検証用パラメータを生成する、情報処理装置。
【請求項11】
前記暗号化通信の際に自装置で実行される処理に用いられ、前記自装置および他の情報処理装置それぞれに固有の秘密情報を含まず自装置および他の情報処理装置それぞれで共通して用いられるパラメータは、前記検証用パラメータを生成する際に利用されるパラメータである、請求項10に記載の情報処理装置。
【請求項12】
前記暗号化通信の際に自装置で実行される処理に用いられ、前記自装置および他の情報処理装置それぞれに固有の秘密情報を含まず自装置および他の情報処理装置それぞれで共通して用いられるパラメータは、前記セッション鍵を生成する際に利用されるパラメータである、請求項10に記載の情報処理装置。
【請求項13】
複数の鍵処理装置間で行われる複数受信者公開鍵暗号技術に基づく暗号化通信の際に利用される巡回群を生成するステップと、
前記暗号化通信の際に前記鍵処理装置で実行される処理に用いられ、前記複数の鍵処理装置それぞれに固有の秘密情報を含まず当該複数の鍵処理装置それぞれで共通して用いられるパラメータを含む複数のパラメータを選択するステップと、
前記暗号化通信における暗号文の生成または復号に関する処理に使用され、所定の写像を実現する関数を選択するステップと、
前記群選択部により選択された巡回群と、前記パラメータ選択部により選択された複数のパラメータと、前記関数選択部により選択された関数と、を用いて、前記複数受信者公開鍵暗号技術に利用されるシステムパラメータを生成するステップと、
を含む、情報処理方法。
【請求項14】
他の情報処理装置との間で行われる複数受信者公開鍵暗号技術に基づく暗号化通信の際に用いられる自装置に固有の公開鍵および秘密鍵を、取得したシステムパラメータに基づいて生成する鍵生成ステップと、
前記暗号化通信の際に用いられるセッション鍵および暗号文の検証処理に用いられる検証用パラメータを、前記システムパラメータに基づいて生成する暗号化ステップと、
前記セッション鍵に関する暗号文を取得して前記システムパラメータに基づいて復号する復号ステップと、
を含み、
前記システムパラメータは、前記暗号化通信の際に自装置で実行される処理に用いられ、自装置および他の情報処理装置それぞれに固有の秘密情報を含まず自装置および他の情報処理装置それぞれで共通して用いられるパラメータを含み、
前記暗号化部は、前記複数受信者に共通する前記セッション鍵または前記検証用パラメータを生成する、情報処理方法。
【請求項15】
コンピュータに、
複数の鍵処理装置間で行われる複数受信者公開鍵暗号技術に基づく暗号化通信の際に利用される巡回群を生成する群選択機能と、
前記暗号化通信の際に前記鍵処理装置で実行される処理に用いられ、前記複数の鍵処理装置それぞれに固有の秘密情報を含まず当該複数の鍵処理装置それぞれで共通して用いられるパラメータを含む複数のパラメータを選択するパラメータ選択機能と、
前記暗号化通信における暗号文の生成または復号に関する処理に使用され、所定の写像を実現する関数を選択する関数選択機能と、
前記群選択部により選択された巡回群と、前記パラメータ選択部により選択された複数のパラメータと、前記関数選択部により選択された関数と、を用いて、前記複数受信者公開鍵暗号技術に利用されるシステムパラメータを生成するシステムパラメータ生成機能と、
を実現させるためのプログラム。
【請求項16】
他の情報処理装置との間で複数受信者公開鍵暗号技術に基づく暗号化通信を行うことが可能なコンピュータに、
前記暗号化通信の際に自装置で実行される処理に用いられ、自装置および他の情報処理装置それぞれに固有の秘密情報を含まず自装置および他の情報処理装置それぞれで共通して用いられるパラメータを含むシステムパラメータに基づいて、前記暗号化通信の際に用いられる自装置に固有の公開鍵および秘密鍵を生成する機能と、
前記暗号化通信の際に用いられるセッション鍵および暗号文の検証処理に用いられる検証用パラメータを、前記システムパラメータに基づいて生成する機能と、
前記セッション鍵に関する暗号文を取得して前記システムパラメータに基づいて復号する機能と、
を実現させるためのプログラム。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate

【図37】
image rotate

【図38】
image rotate

【図39】
image rotate

【図40】
image rotate

【図41】
image rotate

【図42】
image rotate

【図43】
image rotate

【図44】
image rotate

【図45】
image rotate

【図46】
image rotate

【図47】
image rotate

【図48】
image rotate

【図49】
image rotate

【図50】
image rotate

【図51】
image rotate

【図52】
image rotate

【図53】
image rotate

【図54】
image rotate

【図55】
image rotate

【図56】
image rotate

【図57】
image rotate


【公開番号】特開2010−141618(P2010−141618A)
【公開日】平成22年6月24日(2010.6.24)
【国際特許分類】
【出願番号】特願2008−316289(P2008−316289)
【出願日】平成20年12月11日(2008.12.11)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】