JP2007189597A - 暗号化装置および暗号化方法、並びに復号化装置および復号化方法 - Google Patents
暗号化装置および暗号化方法、並びに復号化装置および復号化方法 Download PDFInfo
- Publication number
- JP2007189597A JP2007189597A JP2006007324A JP2006007324A JP2007189597A JP 2007189597 A JP2007189597 A JP 2007189597A JP 2006007324 A JP2006007324 A JP 2006007324A JP 2006007324 A JP2006007324 A JP 2006007324A JP 2007189597 A JP2007189597 A JP 2007189597A
- Authority
- JP
- Japan
- Prior art keywords
- content
- encryption
- key
- time
- ciphertext
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Abstract
【課題】同報通信暗号システムにおいて、コンテンツの送信者に対する制限を抑止する。
【解決手段】同報通信システム1は、第1乃至3の同報通信暗号を実現するものであり、コンテンツを暗号化して送信する送信装置10、暗号化されたコンテンツを受信して復号化する受信端末装置20、送信装置10と受信端末装置20を結ぶ通信網30から構成される。なお、受信端末装置20は複数存在するものとする。第1の同報通信暗号ではSD法、およびBTEを利用する。第2の同報通信暗号ではSD法、BTE、およびFSを利用する。第3の同報通信暗号ではBGW Scheme、BTE、およびFSを利用する。本発明は、放送や記録媒体の配布によるコンテンツの同報通信に適用することができる。
【選択図】図1
【解決手段】同報通信システム1は、第1乃至3の同報通信暗号を実現するものであり、コンテンツを暗号化して送信する送信装置10、暗号化されたコンテンツを受信して復号化する受信端末装置20、送信装置10と受信端末装置20を結ぶ通信網30から構成される。なお、受信端末装置20は複数存在するものとする。第1の同報通信暗号ではSD法、およびBTEを利用する。第2の同報通信暗号ではSD法、BTE、およびFSを利用する。第3の同報通信暗号ではBGW Scheme、BTE、およびFSを利用する。本発明は、放送や記録媒体の配布によるコンテンツの同報通信に適用することができる。
【選択図】図1
Description
本発明は、暗号化装置および暗号化方法、並びに復号化装置および復号化方法に関し、特に、データを暗号化して同報通信する場合に用いて好適な暗号化装置および暗号化方法、並びに復号化装置および復号化方法に関する。
映像や楽曲などに代表されるコンテンツをテレビジョン放送やラジオ放送として送信したり、インターネットに代表されるネットワークを介して配信したり、記録媒体に記録して配布したりするサービスにおいては、コンテンツの著作権を保護するとともに、不正なユーザによってコンテンツが視聴されることを抑止するため、コンテンツをコンテンツ鍵によって暗号化し、このコンテンツ鍵をデバイス鍵によって暗号化して、暗号化されているコンテンツとデバイス鍵を送信(あるいは配信や記録)し、受信端末装置において予め保持しているデバイス鍵を用いて暗号化されているコンテンツ鍵を復号し、その結果得られるコンテンツ鍵を用いてコンテンツを復号するシステムの利用が一般的である。以下、このようなシステムを同報通信暗号システムと称する。
同報通信暗号システムにおいては、何らかの事故や不正な工作によって受信端末装置に保持されている鍵が流出してしまうと、コンテンツの視聴権限を有しているユーザによって操作される正規の受信端末装置ではない不正な受信端末装置(コンテンツの視聴権限を有してないユーザによって操作される正規の受信端末装置)がコンテンツを再生できてしまうことになる。
そこで、このような事態を抑止するため、流出したデバイス鍵では復号不可能となるように暗号化を行うことができる無効化鍵管理法(Revocation Scheme)が存在する。ただし、この無効化鍵管理法は、単純に個別の受信端末装置に対して鍵の無効化を行った場合、システムとして予め必要となる鍵の数が膨大になるという問題がある。
システムとして予め必要となるデバイス鍵の数を抑えることができる鍵管理手法としては、Subset-Cover Revocationが存在する。Subset-Cover Revocationでは、デバイス鍵を木構造を用いて管理し、木構造のリーフ(木構造の最下層)に受信端末装置を割り当て、ノードにデバイス鍵を割り当てるようになされている。Subset-Cover Revocationの具体的な実現方式としては、Subset Difference Method(SD法)が知られている(非特許文献1参照)。
D.Naor,M.Naor,and J.Lotspiech,"!Revocation and tracing schemes for stateless receivers",CRYPTO,'01,2001.
SD法は、無効化したいデバイス鍵の数が増加しても、暗号化符号列のメッセージ長を短く抑えることが可能である。しかしながら、送信側において秘密鍵を用いて暗号化している鍵管理方式の場合、コンテンツの送信は秘密鍵を知り得る信頼された機関に限定されてしまう。また、デバイス鍵が流出してしまった際にそのデバイス鍵を無効化しても、既に送信済みの暗号化されたコンテンツは、無効化されたデバイス鍵を用いて再生されてしまうという問題がある。
本発明はこのような状況に鑑みてなされたものであり、同報通信暗号システムの送信側における暗号化に公開鍵を用いることにより、コンテンツの送信者に対する制限を外すものである。
本発明の第1の側面は、2分木の各リーフに割り当てられた複数の復号化装置のうち、不正なものが復号化できないようにコンテンツを暗号化する暗号化装置(暗号化方法)において、SD法に基づき、前記不正な復号化装置が割り当てられているリーフに対応して前記2分木におけるカバーリングを決定する決定手段(ステップ)と、コンテンツ鍵を用いて前記コンテンツを暗号化する第1の暗号化手段(ステップ)と、決定されたカバーリングに対応して前記コンテンツ鍵を暗号化する第2の暗号化手段(ステップ)と、前記コンテンツの暗号化結果、および前記コンテンツ鍵の暗号化結果を含む暗号文を出力する出力手段(ステップ)とを含む暗号化装置(暗号化方法)である。
本発明の第1の側面においては、SD法に基づき、不正な復号化装置が割り当てられているリーフに対応して2分木におけるカバーリングが決定され、決定されたカバーリングに対応してコンテンツ鍵が暗号化され、コンテンツの暗号化結果、およびコンテンツ鍵の暗号化結果を含む暗号文が出力される。
本発明の第2の側面は、SD法に基づき、2分木の各リーフに割り当てられた複数の復号化装置のうち、不正なものが割り当てられているリーフに対応して前記2分木におけるカバーリングを決定する決定手段と、コンテンツ鍵を用いて前記コンテンツを暗号化する第1の暗号化手段と、決定されたカバーリングに対応して前記コンテンツ鍵を暗号化する第2の暗号化手段とを含む暗号化装置から出力された、前記コンテンツの暗号化結果、および前記コンテンツ鍵の暗号化結果を含む暗号文を復号化する復号化装置(復号化方法)において、予め保持している第1の秘密鍵に基づき、前記カバーリングに対応する第2の秘密鍵を導出する導出手段(ステップ)と、導出された前記第2の秘密鍵に基づき、前記暗号文から前記コンテンツ鍵を取得する取得手段(ステップ)と、取得された前記コンテンツ鍵に基づき、前記暗号文を復号化して前記コンテンツを得る復号化手段(ステップ)とを含む復号化装置(復号化方法である)。
本発明の第2の側面においては、予め保持している第1の秘密鍵に基づき、カバーリングに対応する第2の秘密鍵が導出され、導出された第2の秘密鍵に基づき、暗号文からコンテンツ鍵が取得され、取得されたコンテンツ鍵に基づき、暗号文が復号化されてコンテンツが得られる。
本発明の第3の側面は、2分木の各リーフに割り当てられた複数の復号化装置のうち、不正なものが復号化できないようにコンテンツを暗号化する暗号化装置(暗号化方法)において、SD法に基づき、前記不正な復号化装置が割り当てられているリーフに対応して前記2分木におけるカバーリングを決定する決定手段(ステップ)と、コンテンツ鍵を用いて前記コンテンツを暗号化する第1の暗号化手段(ステップ)と、決定されたカバーリングに対応し、時刻t2において前記コンテンツ鍵を暗号化する第2の暗号化手段(ステップ)と、前記コンテンツの暗号化結果、前記コンテンツ鍵の暗号化結果、および時刻t2を含む暗号文を出力する出力手段(ステップ)とを含む暗号化装置(暗号化方法)である。
本発明の第3の側面においては、SD法に基づき、不正な復号化装置が割り当てられているリーフに対応して2分木におけるカバーリングが決定され、コンテンツ鍵を用いてコンテンツが暗号化される。そして、決定されたカバーリングに対応し、時刻t2においてコンテンツ鍵が暗号化され、コンテンツの暗号化結果、コンテンツ鍵の暗号化結果、および時刻t2を含む暗号文が出力される。
本発明の第4の側面は、SD法に基づき、2分木の各リーフに割り当てられた複数の復号化装置のうち、不正なものが割り当てられているリーフに対応して前記2分木におけるカバーリングを決定する決定手段と、コンテンツ鍵を用いて前記コンテンツを暗号化する第1の暗号化手段と、決定されたカバーリングに対応し、時刻t2において前記コンテンツ鍵を暗号化する第2の暗号化手段とを含む暗号化装置から出力された、前記コンテンツの暗号化結果、前記コンテンツ鍵の暗号化結果、および時刻t2を含む暗号文を復号化する復号化装置において、予め保持している時刻t1(≦t2)の第1の秘密鍵に基づき、前記カバーリングに対応する時刻t2の第2の秘密鍵を導出する導出手段(ステップ)と、導出された時刻t2の前記第2の秘密鍵に基づき、前記暗号文から前記コンテンツ鍵を取得する取得手段(ステップ)と、取得された前記コンテンツ鍵に基づき、前記暗号文を復号化して前記コンテンツを得る復号化手段(ステップ)とを含む復号化装置(復号化方法)である。
前記導出手段は、予め保持している時刻t1の第1の秘密鍵に基づき、前記カバーリングに対応する時刻t1の第2の秘密鍵を生成し、生成した時刻t1の前記第2の秘密鍵を時刻t2の前記第2の秘密鍵に更新するようにすることができる。
前記導出手段は、生成した時刻t1の前記第2の秘密鍵を更新することにより、2つの前記第2の秘密鍵を取得し、一方を時刻t2の前記第2の秘密鍵とし、他方を蓄積するようにすることができる。
前記導出手段は、予め保持している時刻t1の第1の秘密鍵を時刻t2の前記第1の秘密鍵に更新し、更新した時刻t2の前記第1の秘密鍵に基づき、前記カバーリングに対応する時刻t2の第2の秘密鍵を生成するようにすることができる。
本発明の第4の側面においては、予め保持している時刻t1(≦t2)の第1の秘密鍵に基づき、カバーリングに対応する時刻t2の第2の秘密鍵が導出され、導出された時刻t2の第2の秘密鍵に基づき、暗号文からコンテンツ鍵が取得され、取得されたコンテンツ鍵に基づき、暗号文が復号化されてコンテンツが得られる。
本発明第5の側面は、BGW Schemeに基づいてコンテンツを暗号化する暗号化装置(暗号化方法)において、時刻t=t2において暗号化アルゴリズムENCBGW_FS(S、K、t)により暗号文C,Hdrを生成する生成手段(ステップ)と、生成された暗号文C,Hdrを出力する出力手段(ステップ)とを含み、前記暗号文Hdrには時刻tが含まれる暗号化装置(暗号化方法)である。
本発明第5の側面においては、時刻t=t2において暗号化アルゴリズムENCBGW_FS(S、K、t)により暗号文C,Hdrが生成され、生成された暗号文C,Hdrが出力される。
本発明の第6の側面は、時刻t=t2において暗号化アルゴリズムENCBGW_FS(S、K、t)により暗号文C,Hdrを生成する生成手段と、前記暗号文Hdrには時刻tが含まれる暗号化装置から出力された暗号文C,Hdrを復号化する復号化装置(復号化方法)において、予め保持している時刻t1(≦t2)に対応する秘密鍵に基づき、暗号文Hdrに含まれる時刻t=t2に対応する秘密鍵を導出する導出手段(ステップ)と、導出された時刻t2に対応する秘密鍵に基づき、前記暗号文Hdrからセッション鍵を取得する取得手段(ステップ)と、取得された前記セッション鍵に基づき、前記暗号文Cを復号化して前記コンテンツを得る復号化手段(ステップ)とを含む復号化装置(復号化方法)である。
前記導出手段は、予め保持している時刻t1(≦t2)に対応する秘密鍵に基づき、2つの秘密鍵を導出し、一方を暗号文Hdrに含まれる時刻t=t2に対応する秘密鍵として、他方を蓄積するようにすることができる。
本発明の第6の側面においては、予め保持している時刻t1(≦t2)に対応する秘密鍵に基づき、暗号文Hdrに含まれる時刻t=t2に対応する秘密鍵が導出され、導出された時刻t2に対応する秘密鍵に基づき、暗号文Hdrからセッション鍵が取得され、取得されたセッション鍵に基づき、暗号文Cが復号化されてコンテンツが得られる。
以上のように、本発明の第1および第2の側面によれば、同報通信暗号システムにおいて、コンテンツの送信者に対する制限を外すことが可能となる。また、システムとして予め用意する公開鍵の数を減少させることができるとともに、比較的少ない計算量で秘密鍵を導出することが可能となる。
本発明の第3および第4の側面によれば、同報通信暗号システムにおいて、コンテンツの送信者に対する制限を外すことが可能となる。また、システムとして予め用意する公開鍵の数を減少させることができるとともに、比較的少ない計算量で秘密鍵を導出することが可能となる。さらに、過去に送信された暗号文が復号化されることを抑止することが可能となる。
本発明の第5および第6の側面によれば、同報通信暗号システムにおいて、コンテンツの送信者に対する制限を外すことが可能となる。また、復号化装置の総数や不正な復号化装置の数に拘わりなく、メッセージ長を一定に保つことが可能となる。さらに、過去に送信された暗号文が復号化されることを抑止することが可能となる。
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
図1は、本発明を適用した同報通信システムの構成例を示している。この同報通信システム1は、後述する3種類の同報通信暗号を実現するものであり、コンテンツを暗号化して送信する送信装置10、暗号化されたコンテンツを受信して復号化する受信端末装置20、送信装置10と受信端末装置20を結ぶ通信網30から構成される。なお、受信端末装置20は複数存在するものとする。
送信装置10は、予め保持している公開鍵を用いてコンテンツを暗号化する暗号化部11、および、暗号化部11によって暗号化されたコンテンツを通信網30を介して受信端末装置20に送信する送信部12から構成される。
受信端末装置20は、暗号化されているコンテンツを通信網30を介して受信する受信部21、および、受信部21によって受信された暗号化されているコンテンツを予め保持している秘密鍵に基づいて復号化する復号化部22から構成される。
通信網30は、テレビジョン放送、ラジオ放送、有線放送などの放送網、インターネットに代表されるWAN(Wide Area Network)やLAN(Local Area Network)などのデータネットワークなどの他、暗号化されたデータを記録媒体に記録して配布することなどを含むものとする。
なお、送信装置10の暗号化部11と受信端末装置20の復号化部22は、それぞれハードウェアによって実現してもよいし、ソフトウェアによって実現してもよい。
ソフトウェアにより実現する場合、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば図2に示すように構成される汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
このパーソナルコンピュータ50は、CPU(Central Processing Unit)51を内蔵している。CPU51にはバス54を介して、入出力インタフェース55が接続されている。バス54には、ROM(Read Only Memory)52およびRAM(Random Access Memory)53が接続されている。
入出力インタフェース55には、キーボード、マウス等の入力デバイスよりなる入力部56、操作画面などを表示するCRT(Cathode Ray Tube)またはLCD(Liquid Crystal Display)等のディスプレイよりなる出力部57、プログラムや各種データを格納するハードディスクドライブなどよりなる記憶部58、およびモデム、LAN(Local Area Network)アダプタなどよりなり、インターネットに代表されるネットワークを介した通信処理を実行する通信部59が接続されている。また、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、もしくは半導体メモリなどの記録媒体61に対してデータを読み書きするドライブ60が接続されている。
このパーソナルコンピュータ50に暗号化部11あるいは復号化部22としての処理を実行させるプログラムは、記録媒体61に格納された状態でパーソナルコンピュータ50に供給され、ドライブ60によって読み出されて記憶部58に内蔵されるハードディスクドライブにインストールされている。記憶部58にインストールされているプログラムは、入力部56に入力されるユーザからのコマンドに対応するCPU51の指令によって、記憶部58からRAM53にロードされて実行される。
次に、同報通信システム1によって実現される3種類の同報通信暗号(以下、それぞれを第1の同報通信暗号、第2の同報通信暗号、または第3の同報通信暗号と称する)の基礎となる4種類の技術、すなわち、SD法、BTE(Binary Tree Encryption)、FS(Forward Security)、およびBGW Schemeについて説明する。
なお、第1の同報通信暗号ではSD法、およびBTEを利用する。第2の同報通信暗号ではSD法、BTE、およびFSを利用する。第3の同報通信暗号ではBGW Scheme、BTE、およびFSを利用する。以下、受信端末装置20の符号”20”を適宜省略する。
SD法
SD法は、Subset-Cover Revocationの一種である。Subset-Cover Revocationでは、暗号化されているコンテンツを復号化できないようにする処理を無効化(Revocation)と称し、複数存在する受信端末装置の全体の集合をN、無効化する受信端末装置の集合をRとした場合、送信装置10からの暗号化されているコンテンツを復号化する権限を有する受信端末装置∈N\Rは、暗号化されているコンテンツを復号化できるが、無効化された受信端末装置∈Rは、これが多数結託したとしても暗号化されているコンテンツを復号化できないようにするものである。
SD法は、Subset-Cover Revocationの一種である。Subset-Cover Revocationでは、暗号化されているコンテンツを復号化できないようにする処理を無効化(Revocation)と称し、複数存在する受信端末装置の全体の集合をN、無効化する受信端末装置の集合をRとした場合、送信装置10からの暗号化されているコンテンツを復号化する権限を有する受信端末装置∈N\Rは、暗号化されているコンテンツを復号化できるが、無効化された受信端末装置∈Rは、これが多数結託したとしても暗号化されているコンテンツを復号化できないようにするものである。
SD法は、集合Rのサイズの拡大に伴ってカバーする部分木の個数(メッセージ長)が増加するCS(Complete Subtree method)法の欠点を解決する手法であり、複数の受信端末装置20をグループ化するとき、無効化する受信端末装置をその配下の部分木に含めて完全部分木の差SDa,cを用いてカバーリングを行う。ここで、aは、外部の完全部分木のルートであり、cは、無効化する受信端末装置を含む内部の完全部分木のルートである。例えば図3に示すように、無効化する受信端末装置(図中×印で示す)の集合R={u011,u110,u111}とした場合、カバーリングはSD0,011,SD1,11となる。
SD法における、無効化された複数の受信端末装置が結託して暗号化されているコンテンツを復号化しようとする攻撃に対する安全性の要件は、受信端末装置をグループ化するカバーリングSDa,cごとに異なる鍵を割り当てることである。しかしながら、全てのカバーリングSDa,cに対して異なる鍵を割り当てるために必要な鍵数はO(nlogn)となる。
非特許文献1には、擬似乱数生成器を用い、親の鍵から子の鍵を作成できるようにすることで必要な鍵数をO(log2n)まで減少させる方法が開示されている。この手法では、擬似乱数生成器の入力値である木の各内部ノードに割り当てられたラベル(鍵を生成する元のデータ)を全て異なる値に設定すると異なる鍵を生成できる。
なお、カバーリングSa,cはCS法において分割されていた部分木を統合できるので、メッセージ長(カバーリングに必要な部分木の個数と一致する)はCS法に比較して短くなる。また、無効化する受信端末装置の総数をrとした場合、部分木の個数はその上限値が2r−1になることが知られている。
BTE
BTEは、階層型IDベース暗号(HIDE)を2分木に簡易化したものであり、ルートノードをε、親ノードをw∈{0,1}*とすると、左子ノードw0を、右子ノードをw1としてIDとみなしている。
BTEは、階層型IDベース暗号(HIDE)を2分木に簡易化したものであり、ルートノードをε、親ノードをw∈{0,1}*とすると、左子ノードw0を、右子ノードをw1としてIDとみなしている。
以下、ノードwのビット長を|w|、ノードwの左からiビット目までをw|iと記述する。ただし、「w|i」などを下付文字として使用する場合、表記の都合上、iの下付を解除して|w|iとも記述する。また、w0はノードwの最下位ビット側に0を追加した値、w1はノードwの最下位ビット側に1を追加した値とする。例えば、ノードw=1011である場合、|w|=4、w|2=10、w|3=101、w0=10110、w1=10111である。
BTEの安全性は、BDH(Bilinear Diffie-Hellman)問題の難しさに基づいている。G1,G2は位数を素数qとした巡回群であって、G1は加法群、G2は乗法群とした場合、双線形写像e:G1×G1→G2は、∀P,Q∈G1,∀a,b∈Zqについて、e(aP,bQ)=e(bP,aQ)=e(P,Q)abである。
BTEにおけるセットアップアルゴリズムGENBTE、鍵生成アルゴリズムDERBTE、暗号化アルゴリズムENCBTE、および復号化アルゴリズムDECBTEについて説明する。
セットアップアルゴリズムGENBTE
セキュリティパラメータ1λと木の高さhを入力とした場合のセットアップアルゴリズムGENBTE(1λ,h)は、以下の(1)乃至(4)の処理からなる。
(1)BDHパラメータジェネレータIG(1λ)を実行し、位数qの群G1、G2と双線形写像eを生成する。
(2)ランダムにP∈G1とα∈Zqを選択し、Q=αPとする。ここで、Zqは0以上q未満の整数の集合である。
(3)暗号的ハッシュ関数H:{0,1}*→G1を選択する。
(4)PK=(G1,G2,e,P,Q,H)を公開鍵、Sε=αH(ε)をルートの秘密鍵とする。
セキュリティパラメータ1λと木の高さhを入力とした場合のセットアップアルゴリズムGENBTE(1λ,h)は、以下の(1)乃至(4)の処理からなる。
(1)BDHパラメータジェネレータIG(1λ)を実行し、位数qの群G1、G2と双線形写像eを生成する。
(2)ランダムにP∈G1とα∈Zqを選択し、Q=αPとする。ここで、Zqは0以上q未満の整数の集合である。
(3)暗号的ハッシュ関数H:{0,1}*→G1を選択する。
(4)PK=(G1,G2,e,P,Q,H)を公開鍵、Sε=αH(ε)をルートの秘密鍵とする。
鍵生成アルゴリズムDERBTE
公開鍵PK、ノードwに対応する秘密鍵SKwを入力として、左子ノードw0、右子ノードw1にそれぞれ対応する秘密鍵SKw0、SKw1を出力する鍵生成アルゴリズムDERBTE(PK,w,SKw)は、以下の(1)および(2)の処理からなる。
(1)ランダムにρw0,ρw1∈Zqを選択し、Rw0=ρw0P、Rw1=ρw1P、Sw0=Sw+ρw0H(w0)、Sw1=Sw+ρw1H(w1)を算出する。
(2)SKw0=(Rw|1,…,Rw||w|,Rw0,Sw0)、SKw1=(Rw|1,…,Rw||w|,Rw1,Sw1)を出力する。
公開鍵PK、ノードwに対応する秘密鍵SKwを入力として、左子ノードw0、右子ノードw1にそれぞれ対応する秘密鍵SKw0、SKw1を出力する鍵生成アルゴリズムDERBTE(PK,w,SKw)は、以下の(1)および(2)の処理からなる。
(1)ランダムにρw0,ρw1∈Zqを選択し、Rw0=ρw0P、Rw1=ρw1P、Sw0=Sw+ρw0H(w0)、Sw1=Sw+ρw1H(w1)を算出する。
(2)SKw0=(Rw|1,…,Rw||w|,Rw0,Sw0)、SKw1=(Rw|1,…,Rw||w|,Rw1,Sw1)を出力する。
暗号化アルゴリズムENCBTE
公開鍵PK、ノードw、メッセージM∈G2を入力として、暗号文Cを出力する暗号化アルゴリズムENCBTE(PK,w,M)は、以下の(1)および(2)の処理からなる。
(1)乱数r∈Zqを発生する。
(2)C=(rP,rH(w|1),rH(w|2),…,rH(w||w|),M・d)=(U0,U1,…,U|w|,V)を出力する。
ここで、U0=rP、Ui=rH(w|i)(iは1以上、|w|以下の整数)、d=e(Q,H(ε))rである。
公開鍵PK、ノードw、メッセージM∈G2を入力として、暗号文Cを出力する暗号化アルゴリズムENCBTE(PK,w,M)は、以下の(1)および(2)の処理からなる。
(1)乱数r∈Zqを発生する。
(2)C=(rP,rH(w|1),rH(w|2),…,rH(w||w|),M・d)=(U0,U1,…,U|w|,V)を出力する。
ここで、U0=rP、Ui=rH(w|i)(iは1以上、|w|以下の整数)、d=e(Q,H(ε))rである。
復号化アルゴリズムDECBTE
公開鍵PK、ノードw、秘密鍵SKw=(Rw|1,…,Rw||w|,Sw)に基づいて、暗号文Cを復号化する復号化アルゴリズムDECBTE(PK,w,SKw,C)は、以下の(1)および(2)の処理からなる。
(1)SKwとCに基づいてdを算出する。
(2)V/dを算出することによりメッセージMを得る。M=V/d
公開鍵PK、ノードw、秘密鍵SKw=(Rw|1,…,Rw||w|,Sw)に基づいて、暗号文Cを復号化する復号化アルゴリズムDECBTE(PK,w,SKw,C)は、以下の(1)および(2)の処理からなる。
(1)SKwとCに基づいてdを算出する。
(2)V/dを算出することによりメッセージMを得る。M=V/d
FS
FSは、受信端末装置に保持されているデバイス鍵(秘密鍵)をそれ自身に基づいて所定の周期で更新することにより、ある時点においてデバイス鍵が流出したとしても、既に送信済みの暗号化されているコンテンツの復号化を不能とするものである。
FSは、受信端末装置に保持されているデバイス鍵(秘密鍵)をそれ自身に基づいて所定の周期で更新することにより、ある時点においてデバイス鍵が流出したとしても、既に送信済みの暗号化されているコンテンツの復号化を不能とするものである。
本発明においてFSの実現は、BTEと秘密鍵を格納するスタックを用いる手法を適用する。秘密鍵は、2分木の全てのノードに対応づける。2分木の高さをhとした場合、更新される秘密鍵の数は最大で2h+1−1である。
図4に示す時間の2分木のように、秘密鍵の更新は、時刻t=0に木のルートから開始され、前順探索(pre-order)の順序である。時刻tに対応するノードをw(t)とする。ただし、「w(t)」などを下付文字として使用する場合、表記の都合上、(t)の上付きを解除してw(t)とも記述する。当該ノードw(t)に対応する秘密鍵をSKw(t)とする。また、時刻t+1に対応するノードw(t+1)は、ノードw(t)が内部ノードである場合にはw(t+1)=w(t)0とし、ノードw(t)がリーフである場合にはw(t+1)=(w+1)|i'とする。ここで|i'は、最下位ビット側から1が出現するまで0を消去した値を示すものとする。
例えば、時刻t=5のノードw(5)=01tであり、このノードw(5)は内部ノードであるので、時刻t=6のノードw(6)=010tとなる。ノードw(6)はリーフであるので、時刻t=7のノードw(7)=010+1=011であり、最下位ビットに1が出現するので、w(7)=011tとなる。ノードw(7)はリーフであるので、時刻t=8のノードw(8)=011+1=100であり、最下位ビット側から1が出現するまで0を消去すると1である。よって、ノードw(8)=1tとなる。
秘密鍵の更新は、時刻tの秘密鍵SKw(t)が内部ノードに割り当てられている場合、その子ノードの一方に割り当てられた秘密鍵SKw(t)0を次の時刻t+1の秘密鍵として使用するようにし、他方に割り当てられた秘密鍵SKw(t)1スタックに蓄積する。そして、秘密鍵SKw(t)がリーフに割り当てられている場合、スタックに最後に蓄積した秘密鍵を取り出し、時刻t+1の秘密鍵とする。
FSにおけるセットアップアルゴリズムGENFS、鍵更新アルゴリズムKUDFS、暗号化アルゴリズムENCFS、および復号化アルゴリズムDECFSについて説明する。
セットアップアルゴリズムGENFS
セキュリティパラメータ1λ、最大更新回数Lを入力とした場合のセットアップアルゴリズムGENFS(1λ,L)では、上述したGENBTE(1λ,h)を実行することにより、公開鍵PK、ルートノードの秘密鍵SKε=Sεを得る。なお、Lは2h+1−1以下の整数である。
セキュリティパラメータ1λ、最大更新回数Lを入力とした場合のセットアップアルゴリズムGENFS(1λ,L)では、上述したGENBTE(1λ,h)を実行することにより、公開鍵PK、ルートノードの秘密鍵SKε=Sεを得る。なお、Lは2h+1−1以下の整数である。
鍵更新アルゴリズムKUDFS
時刻tの秘密鍵を更新によって得る鍵更新アルゴリズムKUDFS(PK,t,SKw(t))は、以下の(1)乃至(4)の処理からなる。
(1)時刻tのノードw(t)を計算する。
(2)ノードw(t)が2分木の内部ノードであるかリーフであるかを判定する。
(3)ノードw(t)が内部ノードである場合、上述した鍵生成アルゴリズムDERBTE(PK、w(t),SKw(t))を実行して秘密鍵SKw(t)0,SKw(t)1を生成する。そして、秘密鍵SKw(t)0を時刻t+1の秘密鍵SKw(t+1)とし、秘密鍵SKw(t)1をスタックに蓄積して、秘密鍵SKw(t)を消去する。
(4)ノードw(t)がリーフである場合、スタックに蓄積されている秘密鍵を取り出して時刻t+1の秘密鍵SKw(t+1)とする。
時刻tの秘密鍵を更新によって得る鍵更新アルゴリズムKUDFS(PK,t,SKw(t))は、以下の(1)乃至(4)の処理からなる。
(1)時刻tのノードw(t)を計算する。
(2)ノードw(t)が2分木の内部ノードであるかリーフであるかを判定する。
(3)ノードw(t)が内部ノードである場合、上述した鍵生成アルゴリズムDERBTE(PK、w(t),SKw(t))を実行して秘密鍵SKw(t)0,SKw(t)1を生成する。そして、秘密鍵SKw(t)0を時刻t+1の秘密鍵SKw(t+1)とし、秘密鍵SKw(t)1をスタックに蓄積して、秘密鍵SKw(t)を消去する。
(4)ノードw(t)がリーフである場合、スタックに蓄積されている秘密鍵を取り出して時刻t+1の秘密鍵SKw(t+1)とする。
暗号化アルゴリズムENCFS
公開鍵PK、時刻t、メッセージM∈G2を入力として、暗号文Cを出力する暗号化アルゴリズムENCFS(PK,t,M)は、以下の(1)および(2)の処理からなる。
(1)時刻tのノードw(t)を計算する。
(2)上述したENCBTE(PK,w(t),M)を実行することにより暗号文Cを得る。
公開鍵PK、時刻t、メッセージM∈G2を入力として、暗号文Cを出力する暗号化アルゴリズムENCFS(PK,t,M)は、以下の(1)および(2)の処理からなる。
(1)時刻tのノードw(t)を計算する。
(2)上述したENCBTE(PK,w(t),M)を実行することにより暗号文Cを得る。
復号化アルゴリズムDECFS
公開鍵PK、時刻t、時刻tの秘密鍵SKw(t)に基づいて、暗号文Cを復号化する復号化アルゴリズムDECFS(PK,t,SKw(t),C)は、以下の(1)および(2)の処理からなる。
(1)時刻tのノードw(t)を計算する。
(2)上述したDECBTE(PK,w(t),SKw(t),C)を実行することによりメッセージMを得る。
公開鍵PK、時刻t、時刻tの秘密鍵SKw(t)に基づいて、暗号文Cを復号化する復号化アルゴリズムDECFS(PK,t,SKw(t),C)は、以下の(1)および(2)の処理からなる。
(1)時刻tのノードw(t)を計算する。
(2)上述したDECBTE(PK,w(t),SKw(t),C)を実行することによりメッセージMを得る。
BGW Scheme
BGW Schemeは、D.Boneh,C.Gentry,and B.Waters,"Collusion Resistant Broadcast Encryption With Short Ciphertext and Private Keys",CRYPTO'05,2005.に開示されている技術であり、受信端末装置の総数nや不正な受信端末装置の数(無効化する受信端末装置の数)に拘わらず、常にメッセージ長を2、各受信端末装置がそれぞれ保持する秘密鍵の数を1個にすることが可能な公開鍵型同報通信暗号である。
BGW Schemeは、D.Boneh,C.Gentry,and B.Waters,"Collusion Resistant Broadcast Encryption With Short Ciphertext and Private Keys",CRYPTO'05,2005.に開示されている技術であり、受信端末装置の総数nや不正な受信端末装置の数(無効化する受信端末装置の数)に拘わらず、常にメッセージ長を2、各受信端末装置がそれぞれ保持する秘密鍵の数を1個にすることが可能な公開鍵型同報通信暗号である。
BGW Schemeの安全性は、BTEの安全性と同様に、BDH問題の難しさに基づいている。G1,G2は位数を素数qとした巡回群であって、それぞれは乗法群とした場合、双線形写像e:G1×G1→G2は、∀P,Q∈G1,∀a,b∈Zqについて、e(Pa,Qb)=e(Pb,Qa)=e(P、Q)abである。
BGW SchemeにおけるセットアップアルゴリズムGENBGW、暗号化アルゴリズムENCBGW、および復号化アルゴリズムDECBGWについて説明する。
セットアップアルゴリズムGENBGW
セキュリティパラメータ1λと受信端末装置の総数nを入力とした場合のセットアップアルゴリズムGENBGW(1λ,n)は、以下の(1)乃至(3)の処理からなる。
(1)BDHパラメータジェネレータIG(1λ)を実行し、位数qの乗法群G1,G2と双線形写像eを生成する。
(2)G1の生成元gとα,β∈Zqをランダムに選択し、gi,ski,vを計算する。
(3)PK=(g,g1,…,gn,gn+2,…,g2n,v)を公開鍵、skiを受信端末装置i(i=1,…,n,n+2,…,2n)の秘密鍵、α,βをシステムの秘密鍵とする。
セキュリティパラメータ1λと受信端末装置の総数nを入力とした場合のセットアップアルゴリズムGENBGW(1λ,n)は、以下の(1)乃至(3)の処理からなる。
(1)BDHパラメータジェネレータIG(1λ)を実行し、位数qの乗法群G1,G2と双線形写像eを生成する。
(2)G1の生成元gとα,β∈Zqをランダムに選択し、gi,ski,vを計算する。
(3)PK=(g,g1,…,gn,gn+2,…,g2n,v)を公開鍵、skiを受信端末装置i(i=1,…,n,n+2,…,2n)の秘密鍵、α,βをシステムの秘密鍵とする。
暗号化アルゴリズムENCBGW
正規の受信端末装置の集合S⊆{1,2,…,n}と公開鍵PKを入力とする暗号化アルゴリズムENCBGW(S,PK)は、以下の(1)乃至(3)の処理からなる。なお、正規の受信端末装置の集合S⊆{1,2,…,n}に対するセッション鍵Kを用いた暗号化関数をEKとする。
(1)乱数r∈Zqを発生し、セッション鍵K=e(gn+1,g)rを決定する。なお、e(gn+1,g)は、(gn,g1)に基づいて計算する。
(2)コンテンツMを暗号化関数EKを用いて暗号化し、暗号文C=EK(M)を得る。さらに、Hdrを計算する。
(3)暗号文CとHdrを出力する。
正規の受信端末装置の集合S⊆{1,2,…,n}と公開鍵PKを入力とする暗号化アルゴリズムENCBGW(S,PK)は、以下の(1)乃至(3)の処理からなる。なお、正規の受信端末装置の集合S⊆{1,2,…,n}に対するセッション鍵Kを用いた暗号化関数をEKとする。
(1)乱数r∈Zqを発生し、セッション鍵K=e(gn+1,g)rを決定する。なお、e(gn+1,g)は、(gn,g1)に基づいて計算する。
(2)コンテンツMを暗号化関数EKを用いて暗号化し、暗号文C=EK(M)を得る。さらに、Hdrを計算する。
(3)暗号文CとHdrを出力する。
復号化アルゴリズムDECBGW
暗号文Cを復号化する復号化アルゴリズムDECBGW(C,Hdr,S,i,ski,PK)は、以下の(1)および(2)の処理からなる。
(1)i∈Sを満たす受信端末装置iでは、保持する秘密鍵skiを用いてセッション鍵Kを算出する。
(2)EK(C)でコンテンツMを復号化する。
暗号文Cを復号化する復号化アルゴリズムDECBGW(C,Hdr,S,i,ski,PK)は、以下の(1)および(2)の処理からなる。
(1)i∈Sを満たす受信端末装置iでは、保持する秘密鍵skiを用いてセッション鍵Kを算出する。
(2)EK(C)でコンテンツMを復号化する。
次に、本発明を適用した同報通信システム1によって実現される第1乃至3の同報通信暗号について説明する。
第1の同報通信暗号では、送信側において公開鍵を用いるSD法にBTEを適用する。BTEでは、上述したように親の秘密鍵から子の秘密鍵を作成できるので、2分木の内部ノードaを基点として子の秘密鍵を生成する場合、それぞれ異なるρa,cを用いて秘密鍵SKa,cを作成すれば、各カバーリングに対してそれぞれ異なる秘密鍵を割り当てることができる。また、BTEは双線形写像を用いているので、公開鍵を用いて暗号化を行う同報通信暗号が実現できる。
第1の同報通信暗号におけるセットアップアルゴリズムGENSD、初期鍵生成アルゴリズムDER_CENTSD、鍵導出アルゴリズムDER_TERMSD、暗号化アルゴリズムENCSD、および復号化アルゴリズムDECSDについて説明する。
セットアップアルゴリズムGENSD
セキュリティパラメータ1λと木の高さhを入力とした場合のセットアップアルゴリズムGENSD(1λ,h)は、以下の(1)乃至(4)の処理からなる。
(1)BDHパラメータジェネレータIG(1λ)を実行し、位数qの群G1、G2と双線形写像eを生成する。
(2)ランダムにP∈G1とα∈Zqを選択し、Q=αPとする。ここで、Zqは0以上q未満の整数の集合である。
(3)暗号的ハッシュ関数H1:{0,1}*→G1を選択する。
(4)PK=(G1,G2,e,P,Q,H1)を公開鍵、Sε=αH1(ε)をルートの秘密鍵、Sε'=αH1(ε’)を無効化する受信端末装置がない場合におけるSD法のカバーリングに対応しない秘密鍵とする。
セキュリティパラメータ1λと木の高さhを入力とした場合のセットアップアルゴリズムGENSD(1λ,h)は、以下の(1)乃至(4)の処理からなる。
(1)BDHパラメータジェネレータIG(1λ)を実行し、位数qの群G1、G2と双線形写像eを生成する。
(2)ランダムにP∈G1とα∈Zqを選択し、Q=αPとする。ここで、Zqは0以上q未満の整数の集合である。
(3)暗号的ハッシュ関数H1:{0,1}*→G1を選択する。
(4)PK=(G1,G2,e,P,Q,H1)を公開鍵、Sε=αH1(ε)をルートの秘密鍵、Sε'=αH1(ε’)を無効化する受信端末装置がない場合におけるSD法のカバーリングに対応しない秘密鍵とする。
初期鍵生成アルゴリズムDER_CENTSD
受信端末装置に保持させる、SD法のカバーリングSDa,bに対応する秘密鍵SKa,bを生成する初期鍵生成アルゴリズムDERSD(PK,a,b)は、以下の(1)および(2)の処理からなる。
(1)ランダムにρa,b∈Zqを選択し、Ra,b=ρa,bP、Sa,b=Sε+ρa,bH1(b)を算出する。
(2)SKa,b=(Ra,b,Sa,b)を出力する。
受信端末装置に保持させる、SD法のカバーリングSDa,bに対応する秘密鍵SKa,bを生成する初期鍵生成アルゴリズムDERSD(PK,a,b)は、以下の(1)および(2)の処理からなる。
(1)ランダムにρa,b∈Zqを選択し、Ra,b=ρa,bP、Sa,b=Sε+ρa,bH1(b)を算出する。
(2)SKa,b=(Ra,b,Sa,b)を出力する。
なお、受信端末装置にはSD法と同数の秘密鍵SKa,bと秘密鍵Sε'を保持させる。例えば、ノードwに割り当てられた受信端末装置には、ルートからノードwまでのパス上のノードをa、当該パスから分岐するノードをbとした場合、秘密鍵SKa,b=(Ra,b,Sa,b)=(ρa,bP,Sε+ρa,bH(b))が保持される。
aはw|i 0≦i<logn
bはw|jの兄弟ノード 1≦j≦logn
aはw|i 0≦i<logn
bはw|jの兄弟ノード 1≦j≦logn
鍵導出アルゴリズムDER_TERMSD
受信端末装置において親の秘密鍵SKa,bから子の秘密鍵SK’a,b0、SK’a,b1を導出する鍵導出アルゴリズムDER_TERMSD(PK,a,b,SKa,b)は、以下の(1)および(2)の処理からなる。なお、SK’a,b0などの「’」は、受信端末装置において導出した秘密鍵とその鍵成分を意味するものとする。
(1)ランダムにρ’a,b0,ρ’a,b1∈Zqを選択し、R’a,b0=ρ’a,b0P、R’a,b1=ρ’a,b1P、S’a,b0=Sa,b+ρ’a,b0H1(b0)、S’a,b1=Sa,b+ρ’a,b1H1(b1)を算出する。
(2)SK’a,b0=(Ra,b,R’a,b0,S’a,b0)、SK’a,b1=(Ra,b,R’a,b1,S’a,b1)を出力する。
受信端末装置において親の秘密鍵SKa,bから子の秘密鍵SK’a,b0、SK’a,b1を導出する鍵導出アルゴリズムDER_TERMSD(PK,a,b,SKa,b)は、以下の(1)および(2)の処理からなる。なお、SK’a,b0などの「’」は、受信端末装置において導出した秘密鍵とその鍵成分を意味するものとする。
(1)ランダムにρ’a,b0,ρ’a,b1∈Zqを選択し、R’a,b0=ρ’a,b0P、R’a,b1=ρ’a,b1P、S’a,b0=Sa,b+ρ’a,b0H1(b0)、S’a,b1=Sa,b+ρ’a,b1H1(b1)を算出する。
(2)SK’a,b0=(Ra,b,R’a,b0,S’a,b0)、SK’a,b1=(Ra,b,R’a,b1,S’a,b1)を出力する。
暗号化アルゴリズムENCSD
コンテンツ鍵K∈G2を入力とし、カバーリングSDa,cに対応する暗号文Ua,Vaを出力する暗号化アルゴリズムENCSD(PK,a,c,K)は、以下の(1)乃至(5)の処理からなる。
(1)乱数ra∈Zqを発生する。
(2)ノードaからノードcまでのパス上に存在するノードaの子ノードbを検出する。
(3)Va=K・daを算出する。ここで、da=e(Q,H1(ε))raである。
(4)Ua=(raP,raH1(c||b|),raH1(c||b|+1),…,raH1(c||c|))=(Ua,0,Ua,c||b|,…,Ua,c||c|)を算出する。
(5)暗号文Ua,Vaと乱数raを出力する。
コンテンツ鍵K∈G2を入力とし、カバーリングSDa,cに対応する暗号文Ua,Vaを出力する暗号化アルゴリズムENCSD(PK,a,c,K)は、以下の(1)乃至(5)の処理からなる。
(1)乱数ra∈Zqを発生する。
(2)ノードaからノードcまでのパス上に存在するノードaの子ノードbを検出する。
(3)Va=K・daを算出する。ここで、da=e(Q,H1(ε))raである。
(4)Ua=(raP,raH1(c||b|),raH1(c||b|+1),…,raH1(c||c|))=(Ua,0,Ua,c||b|,…,Ua,c||c|)を算出する。
(5)暗号文Ua,Vaと乱数raを出力する。
復号化アルゴリズムDECSD
受信端末装置において秘密鍵SKa,bに基づいて、暗号文Ua,Vaを復号化する復号化アルゴリズムDECSD(PK,a,b,c,SKa,b,Ua,Va)は、以下の(1)および(2)の処理からなる。
(1)受信端末装置が保持している秘密鍵SKa,bを用い、上述した鍵導出アルゴリズムDER_TERMSD(PK,a,b,SKa,b)をノードbからノードcに到るまで繰り返し実行することにより、秘密鍵SK’a,c=(Ra,c||b|,R’a,c||b|+1,…,R’a,c||c|,S’a,c)を得る。
(2)次式に基づいてdaを算出する。
ここで、Dは次式のとおりである。
(3)Va/daを算出することによりコンテンツ鍵Kを得る。K=Va/da
(4)コンテンツ鍵Kを用いて暗号文EK(M)を復号化し、コンテンツMを得る。
受信端末装置において秘密鍵SKa,bに基づいて、暗号文Ua,Vaを復号化する復号化アルゴリズムDECSD(PK,a,b,c,SKa,b,Ua,Va)は、以下の(1)および(2)の処理からなる。
(1)受信端末装置が保持している秘密鍵SKa,bを用い、上述した鍵導出アルゴリズムDER_TERMSD(PK,a,b,SKa,b)をノードbからノードcに到るまで繰り返し実行することにより、秘密鍵SK’a,c=(Ra,c||b|,R’a,c||b|+1,…,R’a,c||c|,S’a,c)を得る。
(2)次式に基づいてdaを算出する。
ここで、Dは次式のとおりである。
(3)Va/daを算出することによりコンテンツ鍵Kを得る。K=Va/da
(4)コンテンツ鍵Kを用いて暗号文EK(M)を復号化し、コンテンツMを得る。
次に、例えば図5に示すように、8台の受信端末装置(リーフ000に割り当てられた受信端末装置をu000と記述する。他も同様とする)のうち、u001,u100,u101の3台を無効化するようにコンテンツを送信し、u010においてコンテンツを再生する場合を例にして、第1の同報通信暗号を具体的に説明する。
なお、u010には、秘密鍵Sε'と初期鍵生成アルゴリズムDER_CENTSDを用いて生成された秘密鍵SKε,1,SKε,00,SKε,011,SK0,00,SK0,011,SK01,011が予め保持されているものとする。
図6は、第1の同報通信暗号における送信装置10の処理(第1の暗号化処理)を説明するフローチャートである。
ステップS1において、暗号化部11は、無効化する受信端末装置のノードに基づいてSD法におけるカバーリングSDa,cを決定する。図5の例の場合、2個のカバーリングSD0,001,SD1,10が決定される。
ステップS2において、暗号化部11は、コンテンツ鍵Kを選択し、選択したコンテンツ鍵Kを用いてコンテンツMを暗号化し、EK(M)を得る。
ステップS3において、暗号化部11は、ステップS1で決定したカバーリングSDa,cにそれぞれ対応して暗号化アルゴリズムENCSDを実行する。図5の例の場合、暗号化アルゴリズムENCSD(PK,0,001,K),ENCSD(PK,1,10,K)を実行する。そして、暗号化アルゴリズムENCSD(PK,0,001,K)の結果として、U0=(r0P,r0H1(00),r0H1(001)),V0=K・d0を得る。また、暗号化アルゴリズムENCSD(PK,1,10,K)の結果として、U1=(r1P,r1H1(10)),V1=K・d1を得る。ここで、d0=e(Q,H1(ε))r0,d1=e(Q,H1(ε))r1である。
ステップS4において、暗号化部11は、ステップS2およびS3の処理結果に、カバーリングSDa,cの個数だけ検索情報iを付加して暗号文CSDを生成し、送信部12に出力する。図5の例の場合、検索情報i0,i1を付加して暗号文CSD=<i0,i1;U0,U1;V0,V1;EK(M)>を生成し、送信部12に出力する。なお、検索情報i0,i1は、受信端末装置において暗号文CSDの中から暗号化鍵U0,U1;V0,V1を検索するためのものである。送信部12は、暗号文CSDを通信網30を介して送信する。以上で、第1の暗号化処理は終了される。
図7は、第1の同報通信暗号における受信端末装置u010の処理(第1の復号化処理)を説明するフローチャートである。
ステップS11において、受信部21は、送信装置10から送信された暗号文CSDを取得して復号化部22に出力する。ステップS12において、復号化部22は、暗号文CSDに含まれる検索情報i0,i1に基づいて暗号化鍵U0,U1;V0,V1を検索し、予め保持している秘密鍵SK0,00を入力として鍵導出アルゴリズムDER_TERMSD(PK,0,00,SK0,00)を実行し、秘密鍵SK’0,000,SK’0,001を生成する。このうち、秘密鍵SK’0,001が目的の機密鍵である。
ステップS13において、復号化部22は、秘密鍵SK’0,001=(R0,00,R’0,001,S’0,001)を用い、次式のようにd0を計算する。ただし、d0を算出する過程で発生させるρ’0,001は、送信装置10で発生されたρ0,001と異なることに注意が必要である。さらに、復号化部22は、V0/d0を計算することによってコンテンツ鍵Kを取得する。
ステップS14において、復号化部22は、ステップS13で生成したコンテンツ鍵Kを用い、EK(M)を復号化してコンテンツMを取得する。以上で、受信端末装置u010による第1の復号化処理は終了される。
なお、例えば、受信端末装置u0O0は、予め秘密鍵SK0,001を保持しているので、ステップS12の処理を省略することができる。
次に、第2の同報通信暗号について説明する。第2の同報通信暗号は、上述した第1の同報通信暗号にFSを適用した。すなわち、第2の同報通信暗号では、SD法における親の秘密鍵から子の秘密鍵を生成する2分木と、各秘密鍵を所定の時間周期で更新させる2分木の2つの2分木が用いられる。
第2の同報通信暗号におけるセットアップアルゴリズムGENSD_FS、鍵生成アルゴリズムDER_CENTSD_FS、鍵更新アルゴリズムKUP_TERMSD_FS、暗号化アルゴリズムENCSD_FS、および復号化アルゴリズムDECSD_FSについて説明する。
セットアップアルゴリズムGENSD_FS
セキュリティパラメータ1λと木の高さhを入力とした場合のセットアップアルゴリズムGENSD_FS(1λ,h)は、以下の(1)乃至(3)の処理からなる。
(1)セットアップアルゴリズムGENSD(1λ,h)を実行することにより公開鍵PKを得る。
(2)暗号的ハッシュ関数H2:{0,1}*→G1を選択する。
(3)PKにH2を追加し、PK=(G1,G2,e,P,Q,H1,H2)を公開鍵とする。
セキュリティパラメータ1λと木の高さhを入力とした場合のセットアップアルゴリズムGENSD_FS(1λ,h)は、以下の(1)乃至(3)の処理からなる。
(1)セットアップアルゴリズムGENSD(1λ,h)を実行することにより公開鍵PKを得る。
(2)暗号的ハッシュ関数H2:{0,1}*→G1を選択する。
(3)PKにH2を追加し、PK=(G1,G2,e,P,Q,H1,H2)を公開鍵とする。
鍵生成アルゴリズムDER_CENTSD_FS
受信端末装置に保持させる、SD法のカバーリングSDa,bに対応する時刻t=0の秘密鍵SKa,b,w(0)を生成する鍵生成アルゴリズムDERSD_FS(PK,a,b,t)は、以下の(1)および(2)の処理からなる。
(1)初期鍵生成アルゴリズムDER_CENTSDを実行してSKa,b=(Ra,b,Sa,b)を得る。
(2)SKa,bを秘密鍵SKa,b,w(0)として出力する。
受信端末装置に保持させる、SD法のカバーリングSDa,bに対応する時刻t=0の秘密鍵SKa,b,w(0)を生成する鍵生成アルゴリズムDERSD_FS(PK,a,b,t)は、以下の(1)および(2)の処理からなる。
(1)初期鍵生成アルゴリズムDER_CENTSDを実行してSKa,b=(Ra,b,Sa,b)を得る。
(2)SKa,bを秘密鍵SKa,b,w(0)として出力する。
鍵更新アルゴリズムKUP_TERMSD_FS
受信端末装置において、保持している時刻tの秘密鍵SKa,b,w(t)を時刻t+1の秘密鍵SKa,b,w(t+1)に更新する鍵更新アルゴリズムKUP_TERMSD_FS(PK,t,SKa,b,w(t))は、以下の(1)乃至(5)の処理からなる。
(1)時刻tに対応するノードw(t)を算出する。
(2)ノードw(t)が2分木の内部ノードであるか、リーフであるかを判定する。
(3)ノードw(t)が2分木の内部ノードである場合、ランダムにσ’w(t)0,σ’w(t)1∈Zqを選択し、R’w(t)0=σ’w(t)0P、R’w(t)1=σ’w(t)1P、S’a,b,w(t)0=Sa,b,w(t)+σ’w(t)0H2(w(t)0)、S’a,b,w(t)1=Sa,b,w(t)+σ’w(t)1H2(w(t)1)を算出する。
さらに、秘密鍵SK’a,b,w(t)0
=(Ra,b,R’w|1,…,R’w||w(t)|,R’w(t)0,S’a,b,w(t)0)
秘密鍵SK’a,b,w(t)1
=(Ra,b,R’w|1,…,R’w||w(t)|,R’w(t)1,S’a,b,w(t)1)
を生成して秘密鍵SK’a,b,w(t)0を時刻t+1の秘密鍵SK’a,b,w(t+1)として使用し、秘密鍵SK’a,b,w(t)1をスタックに蓄積する。
(4)ノードw(t)が2分木のリーフである場合、スタックに蓄積されている秘密鍵を取り出して時刻t+1の秘密鍵秘密鍵SK’a,b,w(t+1)として使用する。
(5)時刻tの秘密鍵SKa,b,w(t)を消去する。
受信端末装置において、保持している時刻tの秘密鍵SKa,b,w(t)を時刻t+1の秘密鍵SKa,b,w(t+1)に更新する鍵更新アルゴリズムKUP_TERMSD_FS(PK,t,SKa,b,w(t))は、以下の(1)乃至(5)の処理からなる。
(1)時刻tに対応するノードw(t)を算出する。
(2)ノードw(t)が2分木の内部ノードであるか、リーフであるかを判定する。
(3)ノードw(t)が2分木の内部ノードである場合、ランダムにσ’w(t)0,σ’w(t)1∈Zqを選択し、R’w(t)0=σ’w(t)0P、R’w(t)1=σ’w(t)1P、S’a,b,w(t)0=Sa,b,w(t)+σ’w(t)0H2(w(t)0)、S’a,b,w(t)1=Sa,b,w(t)+σ’w(t)1H2(w(t)1)を算出する。
さらに、秘密鍵SK’a,b,w(t)0
=(Ra,b,R’w|1,…,R’w||w(t)|,R’w(t)0,S’a,b,w(t)0)
秘密鍵SK’a,b,w(t)1
=(Ra,b,R’w|1,…,R’w||w(t)|,R’w(t)1,S’a,b,w(t)1)
を生成して秘密鍵SK’a,b,w(t)0を時刻t+1の秘密鍵SK’a,b,w(t+1)として使用し、秘密鍵SK’a,b,w(t)1をスタックに蓄積する。
(4)ノードw(t)が2分木のリーフである場合、スタックに蓄積されている秘密鍵を取り出して時刻t+1の秘密鍵秘密鍵SK’a,b,w(t+1)として使用する。
(5)時刻tの秘密鍵SKa,b,w(t)を消去する。
暗号化アルゴリズムENCSD_FS
暗号化アルゴリズムENCSD_FSは、カバーリングSDa,bごとに異なる時刻tを設定して実行することができる。受信端末装置が時刻t1の秘密鍵SK’a,b,w(t1)を保持している場合、暗号化アルゴリズムENCSD_FSの実行タイミングは時刻t2とする(t2≧t1)。ただし、「t1」,「t2」などを上付文字や下付文字として使用する場合、表記の都合上、数字の下付を解除して、t1,t2,t1,t2とも記述する。コンテンツ鍵K∈G2を入力とし、カバーリングSDa,c、時刻t=t2に対応する暗号文Ua,Vaを出力する暗号化アルゴリズムENCSD_FS(PK,a,c,t,K)は、以下の(1)乃至(4)の処理からなる。
(1)時刻t2のノードw(t2)を計算する。
(2)ENCSD(PK,a,c,K)を実行し、暗号文Ua,Vaと乱数raを得る。
(3)(raH2(w(t2)|1),…,raH2(w(t2)||w(t2)|))=(Ua,w(t2)|1,…,Ua,w(t2)|w(t2),t2)をUaに追加する。
(4)暗号文Ua,Vaを出力する。
暗号化アルゴリズムENCSD_FSは、カバーリングSDa,bごとに異なる時刻tを設定して実行することができる。受信端末装置が時刻t1の秘密鍵SK’a,b,w(t1)を保持している場合、暗号化アルゴリズムENCSD_FSの実行タイミングは時刻t2とする(t2≧t1)。ただし、「t1」,「t2」などを上付文字や下付文字として使用する場合、表記の都合上、数字の下付を解除して、t1,t2,t1,t2とも記述する。コンテンツ鍵K∈G2を入力とし、カバーリングSDa,c、時刻t=t2に対応する暗号文Ua,Vaを出力する暗号化アルゴリズムENCSD_FS(PK,a,c,t,K)は、以下の(1)乃至(4)の処理からなる。
(1)時刻t2のノードw(t2)を計算する。
(2)ENCSD(PK,a,c,K)を実行し、暗号文Ua,Vaと乱数raを得る。
(3)(raH2(w(t2)|1),…,raH2(w(t2)||w(t2)|))=(Ua,w(t2)|1,…,Ua,w(t2)|w(t2),t2)をUaに追加する。
(4)暗号文Ua,Vaを出力する。
復号化アルゴリズムDECSD_FS
受信端末装置において、保持する時刻t1の秘密鍵SK’a,b,w(t1)に基づいて、暗号文Ua,Vaを復号化する復号化アルゴリズムDECSD_FS(PK,a,b,c,SKa,b,w(t),Ua,Va)は、以下の(1)乃至(4)の処理からなる。
(1)鍵更新アルゴリズムKUP_TERMSD_FS(PK,t,SK’a,b,w(t1))を時刻t2まで適用して秘密鍵SK’a,b,w(t2)を得る。次式に基づいてdaを算出する。
ここで、D1、D2は次式のとおりである。
(2)受信端末装置が保持している秘密鍵SK’a,b,w(t2)を用い、鍵導出アルゴリズムDER_TERMSD(PK,a,b,SK’a,b,w(t2))をノードbからノードcに到るまで繰り返し実行することにより、秘密鍵SK’a,c,w(t2)を得る。
(3)Va/daを算出することによりコンテンツ鍵Kを得る。K=Va/da
(4)コンテンツ鍵Kを用いて暗号文EK(M)を復号化し、コンテンツMを得る。
受信端末装置において、保持する時刻t1の秘密鍵SK’a,b,w(t1)に基づいて、暗号文Ua,Vaを復号化する復号化アルゴリズムDECSD_FS(PK,a,b,c,SKa,b,w(t),Ua,Va)は、以下の(1)乃至(4)の処理からなる。
(1)鍵更新アルゴリズムKUP_TERMSD_FS(PK,t,SK’a,b,w(t1))を時刻t2まで適用して秘密鍵SK’a,b,w(t2)を得る。次式に基づいてdaを算出する。
ここで、D1、D2は次式のとおりである。
(2)受信端末装置が保持している秘密鍵SK’a,b,w(t2)を用い、鍵導出アルゴリズムDER_TERMSD(PK,a,b,SK’a,b,w(t2))をノードbからノードcに到るまで繰り返し実行することにより、秘密鍵SK’a,c,w(t2)を得る。
(3)Va/daを算出することによりコンテンツ鍵Kを得る。K=Va/da
(4)コンテンツ鍵Kを用いて暗号文EK(M)を復号化し、コンテンツMを得る。
なお、スタックに蓄積する秘密鍵は、受信端末装置に初期に格納された秘密鍵を入力として鍵更新アルゴリズムKUP_TERMSD_FSを実行した結果得られる秘密鍵であり、鍵導出アルゴリズムDER_TERMSDの実行結果を入力として鍵更新アルゴリズムKUP_TERMSD_FSを実行して得る秘密鍵ではないことに注意する。
次に、上述した図5に示された場合を例にして、第2の同報通信暗号を具体的に説明する。
なお、u010には、時刻t1に対応する秘密鍵Sε',w(t1)と初期鍵生成アルゴリズムDER_CENTSD_FSを用いて生成された秘密鍵SKε,1,w(t1),SKε,00,w(t1),SKε,011,w(t1),SK0,00,w(t1),SK0,011,w(t1),SK01,011,w(t1)が予め保持されているものとする。
図8は、第2の同報通信暗号における送信装置10の処理(第2の暗号化処理)を説明するフローチャートである。
ステップS21において、暗号化部11は、無効化する受信端末装置のノードに基づいてSD法におけるカバーリングSDa,cを決定する。図5の例の場合、2個のカバーリングSD0,001,SD1,10が決定される。
ステップS22において、暗号化部11は、コンテンツ鍵Kを選択し、選択したコンテンツ鍵Kを用いてコンテンツMを暗号化し、EK(M)を得る。
ステップS23において、暗号化部11は、ステップS21で決定したカバーリングSDa,cにそれぞれ対応し、暗号化アルゴリズムENCSD_FSを実行し、暗号文を得る。図5の例の場合、暗号化アルゴリズムENCSD_FS(PK,0,001,t2,K),ENCSD_FS(PK,1,10,t2,K)を実行し、暗号文U0,V0と暗号文U1,V1を得る。
ステップS24において、暗号化部11は、ステップS22およびS23の処理結果に、カバーリングSDa,cの個数に対応する検索情報iを付加して暗号文CSDを生成し、送信部12に出力する。図5の例の場合、検索情報i0,i1を付加して暗号文CSD=<i0,i1;U0,U1;V0,V1;EK(M)>を生成し、送信部12に出力する。送信部12は、暗号文CSDを通信網30を介して送信する。以上で、第2の暗号化処理は終了される。
図9は、第2の同報通信暗号における受信端末装置u010の処理(第2の復号化処理)を説明するフローチャートである。
ステップS31において、受信部21は、送信装置10から送信された暗号文CSDを取得して復号化部22に出力する。ステップS32において、復号化部22は、暗号文CSDに含まれる検索情報i0,i1に基づいて暗号化鍵U0,U1;V0,V1を検索する。そして、予め保持している時刻t1の秘密鍵SK0,00,w(t)を入力として鍵更新アルゴリズムKUP_TERMSD_FS(PK,t,SK’0,00,w(t1))を時刻t2まで適用し、秘密鍵SK’0,00,w(t2)を生成する。さらに生成した秘密鍵SK’0,00,w(t2)を入力として、鍵導出アルゴリズムDER_TERMSD(PK,0,00,SK0,00,w(t2))を実行し、秘密鍵SK’0,000,w(t2),SK’0,001,w(t2)を生成する。
ステップS33において、復号化部22は、秘密鍵SK’0,001,w(t2)を用いてd0を計算し、V0/d0を計算することによってコンテンツ鍵Kを取得する。
ステップS34において、復号化部22は、ステップS33で生成したコンテンツ鍵Kを用い、EK(M)を復号化してコンテンツMを取得する。以上で、受信端末装置u010による第2の復号化処理は終了される。
なお、時刻t2=t1である場合、ステップS32において実行した鍵更新アルゴリズムKUP_TERMSD_FSを省略することができる。
次に、第3の同報通信暗号について説明する。第3の同報通信暗号は、上述したBGW SchemeにFSを適用した。
第3の同報通信暗号におけるセットアップアルゴリズムGENBGW_FS、鍵更新アルゴリズムKUP_TERMBGW_FS、暗号化アルゴリズムENCBGW_FS、および復号化アルゴリズムDECBGW_FSについて説明する。
セットアップアルゴリズムGENBGW_FS
セキュリティパラメータ1λと受信端末装置の総数nを入力とした場合のセットアップアルゴリズムGENBGW_FS(1λ,n)は、以下の(1)乃至(3)の処理からなる。
(1)BDHパラメータジェネレータIG(1λ)を実行し、位数qの乗法群G1,G2と双線形写像eを生成する。
(2)G1の生成元gとα,β∈Zqをランダムに選択し、gi,ski,w(0),vを計算する。
(3)PK=(g,g1,…,gn,gn+2,…,g2n,v)を公開鍵、ski,w(0)を受信端末装置i(i=1,…,n,n+2,…,2n)の時刻t=0における秘密鍵、α,βをシステムの秘密鍵とする。
セキュリティパラメータ1λと受信端末装置の総数nを入力とした場合のセットアップアルゴリズムGENBGW_FS(1λ,n)は、以下の(1)乃至(3)の処理からなる。
(1)BDHパラメータジェネレータIG(1λ)を実行し、位数qの乗法群G1,G2と双線形写像eを生成する。
(2)G1の生成元gとα,β∈Zqをランダムに選択し、gi,ski,w(0),vを計算する。
(3)PK=(g,g1,…,gn,gn+2,…,g2n,v)を公開鍵、ski,w(0)を受信端末装置i(i=1,…,n,n+2,…,2n)の時刻t=0における秘密鍵、α,βをシステムの秘密鍵とする。
鍵更新アルゴリズムKUP_TERMBGW_FS
受信端末装置において、保持している時刻tの秘密鍵SKi,w(t)を時刻t+1の秘密鍵SKi,w(t+1)に更新する鍵更新アルゴリズムKUP_TERMBGW_FS(PK,t,SKi,w(t))は、以下の(1)乃至(5)の処理からなる。
(1)時刻tに対応するノードw(t)を算出する。
(2)ノードw(t)が2分木の内部ノードであるか、リーフであるかを判定する。
(3)ノードw(t)が2分木の内部ノードである場合、ランダムにσ’w(t)0,σ’w(t)1∈Zqを選択し、次式に基づいてR’i,w(t)0,R’i,w(t)1,ski,w(t)0,ski,w(t)1を算出する。
さらに、秘密鍵SK’i,w(t)0
=(R’i,w|1,…,R’i,w||w(t)|,R’i,w(t)0,ski,w(t)0)
秘密鍵SK’i,w(t)1
=(R’i,w|1,…,R’i,w||w(t)|,R’i,w(t)1,ski,w(t)1)
を生成して、秘密鍵SK’i,w(t)0を時刻t+1の秘密鍵SK’i,w(t+1)として使用し、秘密鍵SK’i,w(t)1をスタックに蓄積する。
(4)ノードw(t)が2分木のリーフである場合、スタックに蓄積されている秘密鍵を取り出して時刻t+1の秘密鍵秘密鍵SK’i,w(t+1)として使用する。
(5)時刻tの秘密鍵SKi,w(t)を消去する。
受信端末装置において、保持している時刻tの秘密鍵SKi,w(t)を時刻t+1の秘密鍵SKi,w(t+1)に更新する鍵更新アルゴリズムKUP_TERMBGW_FS(PK,t,SKi,w(t))は、以下の(1)乃至(5)の処理からなる。
(1)時刻tに対応するノードw(t)を算出する。
(2)ノードw(t)が2分木の内部ノードであるか、リーフであるかを判定する。
(3)ノードw(t)が2分木の内部ノードである場合、ランダムにσ’w(t)0,σ’w(t)1∈Zqを選択し、次式に基づいてR’i,w(t)0,R’i,w(t)1,ski,w(t)0,ski,w(t)1を算出する。
さらに、秘密鍵SK’i,w(t)0
=(R’i,w|1,…,R’i,w||w(t)|,R’i,w(t)0,ski,w(t)0)
秘密鍵SK’i,w(t)1
=(R’i,w|1,…,R’i,w||w(t)|,R’i,w(t)1,ski,w(t)1)
を生成して、秘密鍵SK’i,w(t)0を時刻t+1の秘密鍵SK’i,w(t+1)として使用し、秘密鍵SK’i,w(t)1をスタックに蓄積する。
(4)ノードw(t)が2分木のリーフである場合、スタックに蓄積されている秘密鍵を取り出して時刻t+1の秘密鍵秘密鍵SK’i,w(t+1)として使用する。
(5)時刻tの秘密鍵SKi,w(t)を消去する。
暗号化アルゴリズムENCBGW_FS
正規の受信端末装置の集合S⊆{1,2,…,n}と公開鍵PK、時刻t2を入力とする暗号化アルゴリズムENCBGW_FS(S,PK,t)は、以下の(1)乃至(6)の処理からなる。なお、正規の受信端末装置の集合S⊆{1,2,…,n}に対するセッション鍵Kを用いた暗号化関数をEKとする。
(1)時刻t2に対応するノードw(t2)を算出する。
(2)乱数r∈Zqを発生し、セッション鍵K=e(gn+1,g)rを決定する。なお、e(gn+1,g)は、(gn,g1)に基づいて計算する。
(3)コンテンツMを暗号化関数EKを用いて暗号化し、暗号文C=EK(M)を得る。さらに、Hdrを計算する。
(4)(H(w(t2)|1)r,…,H(w(t2)||w(t2)|)r)
=(Uw(t2)|1,…,Uw(t2)||w(t2)|)をHdrに追加する。
(5)tをHdrに追加する。
(6)暗号文CとHdrを出力する。
正規の受信端末装置の集合S⊆{1,2,…,n}と公開鍵PK、時刻t2を入力とする暗号化アルゴリズムENCBGW_FS(S,PK,t)は、以下の(1)乃至(6)の処理からなる。なお、正規の受信端末装置の集合S⊆{1,2,…,n}に対するセッション鍵Kを用いた暗号化関数をEKとする。
(1)時刻t2に対応するノードw(t2)を算出する。
(2)乱数r∈Zqを発生し、セッション鍵K=e(gn+1,g)rを決定する。なお、e(gn+1,g)は、(gn,g1)に基づいて計算する。
(3)コンテンツMを暗号化関数EKを用いて暗号化し、暗号文C=EK(M)を得る。さらに、Hdrを計算する。
(4)(H(w(t2)|1)r,…,H(w(t2)||w(t2)|)r)
=(Uw(t2)|1,…,Uw(t2)||w(t2)|)をHdrに追加する。
(5)tをHdrに追加する。
(6)暗号文CとHdrを出力する。
復号化アルゴリズムDECBGW_FS
受信端末装置において、保持している時刻t1の秘密鍵SKi,w(t1)を用いて、暗号文Cを復号化する復号化アルゴリズムDECBGW_FS(C,Hdr,S,i,SKi,w(t1),PK)は、以下の(1)乃至(3)の処理からなる。
(1)i∈Sを満たす受信端末装置iの受信端末装置では、保持する秘密鍵SKi,w(t1)をHdrに含まれている時刻t=t2まで、鍵更新アルゴリズムKUP_TERMBGW_FSを適用して更新し、秘密鍵SKi,w(t2)を得る。
(2)秘密鍵SKi,w(t2)を用いてセッション鍵Kを算出する。
(3)EK(C)でコンテンツMを復号化する。
受信端末装置において、保持している時刻t1の秘密鍵SKi,w(t1)を用いて、暗号文Cを復号化する復号化アルゴリズムDECBGW_FS(C,Hdr,S,i,SKi,w(t1),PK)は、以下の(1)乃至(3)の処理からなる。
(1)i∈Sを満たす受信端末装置iの受信端末装置では、保持する秘密鍵SKi,w(t1)をHdrに含まれている時刻t=t2まで、鍵更新アルゴリズムKUP_TERMBGW_FSを適用して更新し、秘密鍵SKi,w(t2)を得る。
(2)秘密鍵SKi,w(t2)を用いてセッション鍵Kを算出する。
(3)EK(C)でコンテンツMを復号化する。
次に、受信端末装置の集合を{1,2,3}、正規受信端末装置の集合S={1,2}、時刻の2分木の高さh=3、時刻t=1の場合を例にして、第3の同報通信暗号を具体的に説明する。
図10は、第3の同報通信暗号における送信装置10の処理(第3の暗号化処理)を説明するフローチャートである。
ステップS42において、送信部12は、暗号文C,Hdrを通信網30を介して送信する。以上で、第3の暗号化処理は終了される。
図11は、第3の同報通信暗号における正規の受信端末装置1による処理(第3の復号化処理)を説明するフローチャートである。
ステップS51において、受信部21は、送信装置10から送信された暗号文C,Hdrを取得して復号化部22に出力する。ステップS52において、復号化部22は、予め保持している秘密鍵SK1,εに復号化アルゴリズムDECBGW_FS(C,Hdr,S,i,SK1,ε,PK)を適用して、セッション鍵Kを取得する。
具体的には、Hdrから時刻情報t=1を読み出し、ノードw(1)=0を計算する。そして、秘密鍵SK1,εを入力として鍵更新アルゴリズムKUP_TERMBGW_FS(PK,1,SK1,ε)を実行する。εは2分木の内部ノードであるので、ランダムにσ’1,0,σ’1,1∈Zqを選択し、次式に基づいてR’1,0,R’1,1,sk1,0,sk1,1を算出する。
さらに、秘密鍵SK’1,0=(R’1,0,sk1,0),SK’1,1=(R’1,1,sk1,1)を生成し、秘密鍵SK’1,0,SK’1,1のうち、一方の秘密鍵SK’1,0を時刻t=1の秘密鍵として使用する。他方の秘密鍵SK’1,1はスタックに蓄積される。そして、時刻t=1の秘密鍵SK’1,0を用いてセッション鍵Kが算出される。
さらに、秘密鍵SK’1,0=(R’1,0,sk1,0),SK’1,1=(R’1,1,sk1,1)を生成し、秘密鍵SK’1,0,SK’1,1のうち、一方の秘密鍵SK’1,0を時刻t=1の秘密鍵として使用する。他方の秘密鍵SK’1,1はスタックに蓄積される。そして、時刻t=1の秘密鍵SK’1,0を用いてセッション鍵Kが算出される。
このようにして得られるセッション鍵Kが得られた後、ステップS53において、復号化部22は、EK(C)でコンテンツMを復号化する。以上で、正規の受信端末装置1による第3の復号化処理は終了される。
なお、正規の受信端末装置2による第3の復号化処理も同様に実行され、処理結果としてコンテンツMを得ることができる。反対に、正規ではない不正な受信端末装置3においてはコンテンツMを得ることができない。この不正な受信端末装置3に対する安全性について説明する。
分子の第1項より、e(g3,(vg3g2)r)=e(gr,vg6g5)となるので、セッション鍵に相当するe(gr,g4)が得られないことがわかる。したがって、コンテンツMを得ることができない。
このように、1行目の第1項に用いる公開鍵(いまの場合、g1)を自己のID以外のものに変更してしまうと、4行目の分子の第2項を消すことができない。すなわち、セッション鍵を得ることができない。よって、第3の同報通信暗号の不正な受信端末装置3に対する安全性が証明された。
次に、第3の同報通信暗号がFS(Forward Security)を満たしていることを説明する。例えば、正規の受信端末装置1の時刻t=1における秘密鍵SK’1,0が漏洩したと仮定し、この秘密鍵SK’1,0に基づいて時刻t=0の暗号文C,Hdrが復号化できないことを示す。
まず、秘密鍵SK’1,0から時刻t=0の秘密鍵SK’1,εを算出することができないことを示す。漏洩した秘密鍵SK’1,0=(R’1,0,sk1,0)=(gρ'1,0,sk1,ε・H(0)ρ'1,0)である。したがって、秘密鍵SK’1,0からρ’1,0を求めることができない。よってSK’1,0からSK’1,εを算出することができない。
次に、秘密鍵SK’1,0を用いて時刻t=0の暗号文C,Hdrからセッション鍵Kが得られないことを示す。ここで、C,K,Hdr,C0,C1は以下のとおりである。
このとき、復号化アルゴリズムDECBGW_FS(C,Hdr,S,i,SK’1,0,PK)を実行して得られるKは、
となる。
このとき、復号化アルゴリズムDECBGW_FS(C,Hdr,S,i,SK’1,0,PK)を実行して得られるKは、
となる。
この式より、分子にe(R’1,0,H(0)r)を乗算することができれば、これが分母と相殺されて、セッション鍵に相当するe(gr,g4)を得られることになる。しかしながら、漏洩した秘密鍵SK’1,0からR’1,0=gρ'1,0は導出できるものの、H(0)rを導出することはできない。なぜならば、rはコンテンツの送信側のみが知りえる値であるからである。したがって、秘密鍵SK’1,0を用いて時刻t=0の暗号文C,Hdrからセッション鍵Kを得ることができない。よって、秘密鍵SK’1,0に基づいて時刻t=0の暗号文C,Hdrが復号化できないことが証明された。
次に、上述した第1乃至3の同報通信暗号の性能を比較する。
図12は、第1乃至3の同報通信暗号それぞれのメッセージ長、鍵導出に要する計算量、復号化時に使用される公開鍵数の絶対的な評価とFS機能の有無を示している。第1の同報通信暗号については、その長所として、鍵導出に要する計算量の少なさ、および公開鍵の少なさが挙げられる。第2の同報通信暗号については、その長所として、鍵導出に要する計算量の少なさ、公開鍵の少なさ、およびFS機能を有することを挙げられる。第3の同報通信暗号については、その長所として、正規の受信端末装置の数や不正な受信端末装置の数に拘わらずメッセージ長が短いこと、およびFS機能を有することを挙げられる。
図13は、第1乃至3の同報通信暗号それぞれの受信端末装置に保持させるデバイス鍵(秘密鍵)数、同報通信される暗号文に含まれるメッセージ長、受信端末装置での鍵導出時の計算量、および暗号化時と復号化時に使用される公開鍵数の評価値を示している。また図13には、SD法に階層型IDベース暗号を適用した同報通信暗号(Y.Dois, and N.Fazio,"Public Key Broadcast Encryption for Stateless Receivers",proceeding of ACM FRM '02,2002参照。以下、DF02と記述する)、およびBGW Schemeに対応するそれぞれの評価値も追記した。
なお、評価値は想定される最悪値を示しており、鍵数は、鍵の成分の数も考慮した値である。例えば、第1の同報通信暗号におけるデバイス鍵数は、SKa,b=(Ra,b,Sa,b)であるので、SD法におけるデバイス鍵数の2倍とした。
図13より、第1の同報通信暗号は、公開鍵数について、DF02やBGW Schemeよりも有利であることがわかる。反対に、デバイス鍵数とメッセージ長については、DF02およびBGW Schemeよりも不利である。しかしながら、デバイス鍵数はSDF02のわずか2倍に過ぎない。
第2および第3の同報通信暗号は、従来考えられていなかったFS機能を持っているので、DF02やBGW Schemeと単純に比較することができないが、第2の同報通信暗号では、FS機能を有するが故に鍵更新の影響でデバイス鍵数が増えているものの、その他の項目については第1の同報通信暗号と同様の性能を維持している。
第3の同報通信暗号は、第2の同報通信暗号と同様、FS機能を有するが故にメッセージ長が若干長くなっているものの、その他の項目についてはBGW Schemeと同様の性能を維持している。
以上説明した第1乃至3の同報通信暗号の評価をまとめると以下のとおりである。すなわち、第1の同報通信暗号は、デバイス鍵数、およびメッセージ長を大幅に増やすことなく、公開鍵を用いた同報通信暗号を実現しており、受信端末装置において目的の秘密鍵を得るまでに要する計算量がBGW Schemeよりも大幅に少ない。ここで、無効化する受信端末装置の数rを考慮して比較すると、rが少ない場合、第1の同報通信暗号の方がBGW Schemeよりも有利であると言える。このことからさらに、FS機能を考慮した場合、rが多い場合、第3の同報通信暗号が有利であり、rが少ない場合、第2の同報通信暗号が有利であると言える。
ところで、本明細書において、プログラムに基づいて実行されるステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、プログラムは、1台のコンピュータにより処理されるものであってもよいし、複数のコンピュータによって分散処理されるものであってもよい。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであってもよい。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
1 同報通信システム, 10 送信装置, 11 暗号化部, 12 送信部, 20 受信端末装置, 21 受信部, 22 復号化部, 30 通信網, 51 CPU
Claims (16)
- 2分木の各リーフに割り当てられた複数の復号化装置のうち、不正なものが復号化できないようにコンテンツを暗号化する暗号化装置において、
SD(Subset Difference)法に基づき、前記不正な復号化装置が割り当てられているリーフに対応して前記2分木におけるカバーリングを決定する決定手段と、
コンテンツ鍵を用いて前記コンテンツを暗号化する第1の暗号化手段と、
決定されたカバーリングに対応して前記コンテンツ鍵を暗号化する第2の暗号化手段と、
前記コンテンツの暗号化結果、および前記コンテンツ鍵の暗号化結果を含む暗号文を出力する出力手段と
を含む暗号化装置。 - 2分木の各リーフに割り当てられた複数の復号化装置のうち、不正なものが復号化できないようにコンテンツを暗号化する暗号化装置の暗号化方法において、
SD法に基づき、前記不正な復号化装置が割り当てられているリーフに対応して前記2分木におけるカバーリングを決定する決定ステップと、
コンテンツ鍵を用いて前記コンテンツを暗号化する第1の暗号化ステップと、
決定されたカバーリングに対応して前記コンテンツ鍵を暗号化する第2の暗号化ステップと、
前記コンテンツの暗号化結果、および前記コンテンツ鍵の暗号化結果を含む暗号文を出力する出力ステップと
を含む暗号化方法。 - SD法に基づき、2分木の各リーフに割り当てられた複数の復号化装置のうち、不正なものが割り当てられているリーフに対応して前記2分木におけるカバーリングを決定する決定手段と、
コンテンツ鍵を用いて前記コンテンツを暗号化する第1の暗号化手段と、
決定されたカバーリングに対応して前記コンテンツ鍵を暗号化する第2の暗号化手段と
を含む暗号化装置から出力された、前記コンテンツの暗号化結果、および前記コンテンツ鍵の暗号化結果を含む暗号文を復号化する復号化装置において、
予め保持している第1の秘密鍵に基づき、前記カバーリングに対応する第2の秘密鍵を導出する導出手段と、
導出された前記第2の秘密鍵に基づき、前記暗号文から前記コンテンツ鍵を取得する取得手段と、
取得された前記コンテンツ鍵に基づき、前記暗号文を復号化して前記コンテンツを得る復号化手段と
を含む復号化装置。 - SD法に基づき、2分木の各リーフに割り当てられた複数の復号化装置のうち、不正なものが割り当てられているリーフに対応して前記2分木におけるカバーリングを決定する決定手段と、
コンテンツ鍵を用いて前記コンテンツを暗号化する第1の暗号化手段と、
決定されたカバーリングに対応して前記コンテンツ鍵を暗号化する第2の暗号化手段と
を含む暗号化装置から出力された、前記コンテンツの暗号化結果、および前記コンテンツ鍵の暗号化結果を含む暗号文を復号化する復号化装置の復号化方法において、
予め保持している第1の秘密鍵に基づき、前記カバーリングに対応する第2の秘密鍵を導出する導出ステップと、
導出された前記第2の秘密鍵に基づき、前記暗号文から前記コンテンツ鍵を取得する取得ステップと、
取得された前記コンテンツ鍵に基づき、前記暗号文を復号化して前記コンテンツを得る復号化ステップと
を含む復号化方法。 - 2分木の各リーフに割り当てられた複数の復号化装置のうち、不正なものが復号化できないようにコンテンツを暗号化する暗号化装置において、
SD法に基づき、前記不正な復号化装置が割り当てられているリーフに対応して前記2分木におけるカバーリングを決定する決定手段と、
コンテンツ鍵を用いて前記コンテンツを暗号化する第1の暗号化手段と、
決定されたカバーリングに対応し、時刻t2において前記コンテンツ鍵を暗号化する第2の暗号化手段と、
前記コンテンツの暗号化結果、前記コンテンツ鍵の暗号化結果、および時刻t2を含む暗号文を出力する出力手段と
を含む暗号化装置。 - 2分木の各リーフに割り当てられた複数の復号化装置のうち、不正なものが復号化できないようにコンテンツを暗号化する暗号化装置の暗号化方法において、
SD法に基づき、前記不正な復号化装置が割り当てられているリーフに対応して前記2分木におけるカバーリングを決定する決定ステップと、
コンテンツ鍵を用いて前記コンテンツを暗号化する第1の暗号化ステップと、
決定されたカバーリングに対応し、時刻t2において前記コンテンツ鍵を暗号化する第2の暗号化ステップと、
前記コンテンツの暗号化結果、前記コンテンツ鍵の暗号化結果、および時刻t2を含む暗号文を出力する出力ステップと
を含む暗号化方法。 - SD法に基づき、2分木の各リーフに割り当てられた複数の復号化装置のうち、不正なものが割り当てられているリーフに対応して前記2分木におけるカバーリングを決定する決定手段と、
コンテンツ鍵を用いて前記コンテンツを暗号化する第1の暗号化手段と、
決定されたカバーリングに対応し、時刻t2において前記コンテンツ鍵を暗号化する第2の暗号化手段と
を含む暗号化装置から出力された、前記コンテンツの暗号化結果、前記コンテンツ鍵の暗号化結果、および時刻t2を含む暗号文を復号化する復号化装置において、
予め保持している時刻t1(≦t2)の第1の秘密鍵に基づき、前記カバーリングに対応する時刻t2の第2の秘密鍵を導出する導出手段と、
導出された時刻t2の前記第2の秘密鍵に基づき、前記暗号文から前記コンテンツ鍵を取得する取得手段と、
取得された前記コンテンツ鍵に基づき、前記暗号文を復号化して前記コンテンツを得る復号化手段と
を含む復号化装置。 - 前記導出手段は、予め保持している時刻t1の第1の秘密鍵に基づき、前記カバーリングに対応する時刻t1の第2の秘密鍵を生成し、生成した時刻t1の前記第2の秘密鍵を時刻t2の前記第2の秘密鍵に更新する
請求項7に記載の復号化装置。 - 前記導出手段は、生成した時刻t1の前記第2の秘密鍵を更新することにより、2つの前記第2の秘密鍵を取得し、一方を時刻t2の前記第2の秘密鍵とし、他方を蓄積する
請求項8に記載の復号化装置。 - 前記導出手段は、予め保持している時刻t1の第1の秘密鍵を時刻t2の前記第1の秘密鍵に更新し、更新した時刻t2の前記第1の秘密鍵に基づき、前記カバーリングに対応する時刻t2の第2の秘密鍵を生成する
請求項7に記載の復号化装置。 - SD法に基づき、2分木の各リーフに割り当てられた複数の復号化装置のうち、不正なものが割り当てられているリーフに対応して前記2分木におけるカバーリングを決定する決定手段と、
コンテンツ鍵を用いて前記コンテンツを暗号化する第1の暗号化手段と、
決定されたカバーリングに対応し、時刻t2において前記コンテンツ鍵を暗号化する第2の暗号化手段と
を含む暗号化装置から出力された、前記コンテンツの暗号化結果、前記コンテンツ鍵の暗号化結果、および時刻t2を含む暗号文を復号化する復号化装置の復号化方法において、
予め保持している時刻t1(≦t2)の第1の秘密鍵に基づき、前記カバーリングに対応する時刻t2の第2の秘密鍵を導出する導出ステップと、
導出された時刻t2の前記第2の秘密鍵に基づき、前記暗号文から前記コンテンツ鍵を取得する取得ステップと、
取得された前記コンテンツ鍵に基づき、前記暗号文を復号化して前記コンテンツを得る復号化ステップと
を含む復号化方法。 - BGW Schemeに基づいてコンテンツを暗号化する暗号化装置において、
時刻t=t2において暗号化アルゴリズムENCBGW_FS(S、K、t)により暗号文C,Hdrを生成する生成手段と、
生成された暗号文C,Hdrを出力する出力手段とを含み、
前記暗号文Hdrには時刻tが含まれる
暗号化装置。 - BGW Schemeに基づいてコンテンツを暗号化する暗号化装置の暗号化方法において、
時刻t=t2において暗号化アルゴリズムENCBGW_FS(S、K、t)により暗号文C,Hdrを生成する生成ステップと、
生成された暗号文C,Hdrを出力する出力ステップとを含み、
前記暗号文Hdrには時刻tが含まれる
暗号化方法。 - 時刻t=t2において暗号化アルゴリズムENCBGW_FS(S、K、t)により暗号文C,Hdrを生成する生成手段と、
前記暗号文Hdrには時刻tが含まれる暗号化装置から出力された暗号文C,Hdrを復号化する復号化装置において、
予め保持している時刻t1(≦t2)に対応する秘密鍵に基づき、暗号文Hdrに含まれる時刻t=t2に対応する秘密鍵を導出する導出手段と、
導出された時刻t2に対応する秘密鍵に基づき、前記暗号文Hdrからセッション鍵を取得する取得手段と、
取得された前記セッション鍵に基づき、前記暗号文Cを復号化して前記コンテンツを得る復号化手段と
を含む復号化装置。 - 前記導出手段は、予め保持している時刻t1(≦t2)に対応する秘密鍵に基づき、2つの秘密鍵を導出し、一方を暗号文Hdrに含まれる時刻t=t2に対応する秘密鍵として、他方を蓄積する
請求項14に記載の復号化装置。 - 時刻t=t2において暗号化アルゴリズムENCBGW_FS(S、K、t)により暗号文C,Hdrを生成する生成手段と、
前記暗号文Hdrには時刻tが含まれる暗号化装置から出力された暗号文C,Hdrを復号化する復号化装置の復号化方法において、
予め保持している時刻t1(≦t2)に対応する秘密鍵に基づき、暗号文Hdrに含まれる時刻t=t2に対応する秘密鍵を導出する導出ステップと、
導出された時刻t2に対応する秘密鍵に基づき、前記暗号文Hdrからセッション鍵を取得する取得ステップと、
取得された前記セッション鍵に基づき、前記暗号文Cを復号化して前記コンテンツを得る復号化ステップと
を含む復号化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006007324A JP2007189597A (ja) | 2006-01-16 | 2006-01-16 | 暗号化装置および暗号化方法、並びに復号化装置および復号化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006007324A JP2007189597A (ja) | 2006-01-16 | 2006-01-16 | 暗号化装置および暗号化方法、並びに復号化装置および復号化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007189597A true JP2007189597A (ja) | 2007-07-26 |
Family
ID=38344449
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006007324A Withdrawn JP2007189597A (ja) | 2006-01-16 | 2006-01-16 | 暗号化装置および暗号化方法、並びに復号化装置および復号化方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007189597A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009105853A (ja) * | 2007-10-25 | 2009-05-14 | Kddi Corp | 任意の木構造に対応したsd法およびプログラム |
JP2009201090A (ja) * | 2007-12-11 | 2009-09-03 | Sony Corp | 鍵生成装置、暗号化装置、受信装置、鍵生成方法、暗号化方法、鍵処理方法およびプログラム |
JP2010161523A (ja) * | 2009-01-07 | 2010-07-22 | Nippon Telegr & Teleph Corp <Ntt> | 鍵生成装置、暗号化装置、復号化装置、暗号化システム、鍵生成方法、暗号化方法、復号化方法、プログラム、および記録媒体 |
CN113807530A (zh) * | 2020-09-24 | 2021-12-17 | 京东科技控股股份有限公司 | 信息处理***、方法和装置 |
-
2006
- 2006-01-16 JP JP2006007324A patent/JP2007189597A/ja not_active Withdrawn
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009105853A (ja) * | 2007-10-25 | 2009-05-14 | Kddi Corp | 任意の木構造に対応したsd法およびプログラム |
JP2009201090A (ja) * | 2007-12-11 | 2009-09-03 | Sony Corp | 鍵生成装置、暗号化装置、受信装置、鍵生成方法、暗号化方法、鍵処理方法およびプログラム |
JP2010161523A (ja) * | 2009-01-07 | 2010-07-22 | Nippon Telegr & Teleph Corp <Ntt> | 鍵生成装置、暗号化装置、復号化装置、暗号化システム、鍵生成方法、暗号化方法、復号化方法、プログラム、および記録媒体 |
CN113807530A (zh) * | 2020-09-24 | 2021-12-17 | 京东科技控股股份有限公司 | 信息处理***、方法和装置 |
CN113807530B (zh) * | 2020-09-24 | 2024-02-06 | 京东科技控股股份有限公司 | 信息处理***、方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6017501B2 (ja) | 暗号システム | |
JP6363032B2 (ja) | 鍵付替え方向制御システムおよび鍵付替え方向制御方法 | |
JP2003289296A (ja) | 鍵生成方法、コンテンツ提供方法、暗号化コンテンツ復号方法、不正ユーザ特定方法、コンテンツ提供側システム、ユーザ側システム、追跡システム、暗号化装置、復号装置、及びプログラム | |
JP2005286959A (ja) | 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム | |
JP2006086568A (ja) | 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム | |
JP5492007B2 (ja) | コンテンツサーバ、コンテンツ受信装置、属性鍵発行サーバ、ユーザ鍵発行サーバ、アクセス制御システム、コンテンツ配信プログラムおよびコンテンツ受信プログラム | |
JP2007036364A (ja) | タイム装置、暗号化装置、復号化装置、暗号化/復号化システム | |
WO2007142170A1 (ja) | 不正者失効システム、暗号化装置、暗号化方法およびプログラム | |
KR20090127716A (ko) | 브로드캐스트 암호화에서 디바이스 키를 추적하는 방법 | |
JP5289476B2 (ja) | 通信装置および鍵算出装置 | |
JP2007189597A (ja) | 暗号化装置および暗号化方法、並びに復号化装置および復号化方法 | |
JP2009302861A (ja) | 暗号文復号権限委譲システム | |
JP5512559B2 (ja) | 暗号化装置、復号装置、暗号化システム、暗号化方法、プログラム | |
JP4561074B2 (ja) | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム | |
WO2019235102A1 (ja) | 変換鍵生成装置、暗号文変換装置、復号装置、暗号文変換システム、変換鍵生成方法、暗号文変換方法、復号方法、及びプログラム | |
JP4452105B2 (ja) | 復号情報生成装置及びそのプログラム、配信用コンテンツ生成装置及びそのプログラム、並びに、コンテンツ復号装置及びそのプログラム | |
JP4598437B2 (ja) | 復号情報生成装置及びそのプログラム、配信用コンテンツ生成装置及びそのプログラム、並びに、コンテンツ復号装置及びそのプログラム | |
CN112954388A (zh) | 一种数据文件的获取方法、装置、终端设备和存储介质 | |
JP2007171412A (ja) | 鍵生成装置、暗号化装置、復号化装置、乗法型ナップザック暗号システム、乗法型ナップザック暗号復号方法およびプログラム | |
JP4635459B2 (ja) | 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム | |
JP2014017763A (ja) | 暗号更新システム、暗号更新要求装置、暗号更新装置、復号装置、暗号更新方法、および、コンピュータ・プログラム | |
JP2007020025A (ja) | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム | |
JP2005191805A (ja) | 暗号文配信方法、情報処理装置、および情報処理方法、並びにコンピュータ・プログラム | |
KR102651443B1 (ko) | 분산 해독 키 기반의 연합 학습 방법 | |
JP4576824B2 (ja) | 情報処理装置および情報処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20090407 |