JP2010141620A - 通信装置、サーバ装置、通信方法、および通信プログラム - Google Patents
通信装置、サーバ装置、通信方法、および通信プログラム Download PDFInfo
- Publication number
- JP2010141620A JP2010141620A JP2008316308A JP2008316308A JP2010141620A JP 2010141620 A JP2010141620 A JP 2010141620A JP 2008316308 A JP2008316308 A JP 2008316308A JP 2008316308 A JP2008316308 A JP 2008316308A JP 2010141620 A JP2010141620 A JP 2010141620A
- Authority
- JP
- Japan
- Prior art keywords
- key
- encrypted
- piece
- encryption
- node
- 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.)
- Pending
Links
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
【課題】コンテンツ配信システムにおいて配信される各暗号化ピースの組み合わせを通信装置毎に一意にすることが可能になると共に、システム構築上の自由度を向上可能な通信技術を提供する。
【解決手段】他のノード50,51に割り当てられた第1暗号鍵によって暗号化されたピースである第1暗号化ピースと、他のノード50,51を識別する第1装置識別情報と、を受信するピース受信部と、割り当てられた第2暗号鍵を記憶する固有情報格納部と、第2暗号鍵を用いて第1暗号化ピースを更に暗号化した第2暗号化ピースを生成するピース暗号化部と、第2暗号化ピースと、第1装置識別情報と、自装置を識別する第2装置識別情報と、を送信するデータ送信部と、を備えた。
【選択図】 図1
【解決手段】他のノード50,51に割り当てられた第1暗号鍵によって暗号化されたピースである第1暗号化ピースと、他のノード50,51を識別する第1装置識別情報と、を受信するピース受信部と、割り当てられた第2暗号鍵を記憶する固有情報格納部と、第2暗号鍵を用いて第1暗号化ピースを更に暗号化した第2暗号化ピースを生成するピース暗号化部と、第2暗号化ピースと、第1装置識別情報と、自装置を識別する第2装置識別情報と、を送信するデータ送信部と、を備えた。
【選択図】 図1
Description
この発明は、通信装置、サーバ装置、通信方法、および通信プログラムに関する。
例えば、P2P(peer to peer)を利用してデータを配信する配信方式(P2P配信という)は、巨大なストレージと大きな通信帯域とを有するデータ配信サーバを必要とせず、コストメリットの大きい配信方式である。また、データの配信を受けるノードにおいては、複数のノードからのデータの供給が期待されるため、ダウンロードやアップロードにおける帯域幅を活かした高速なデータ取得が期待される。このようにP2Pデータ配信には大きなメリットがあるが、一方で、著作権保護などデータセキュリティの観点から安全性に不安があった。P2P配信に限らず、著作権保護などのデータセキュリティを考える上で一般的な前提として次のことを仮定する。全ての端末機器又はノードがハッキングされることはないということである。この前提を否定した場合、端末機器は秘密とすべきデータを保持したり、秘密とすべき処理を行ったりすることができなくなり、殆どのセキュリティ技術やセキュリティ確保の為の工夫が成立しない。
さて、P2P配信において、暗号化されたデータを配信し、データの配信を受けるノードが当該データ(配信データという)を復号するための復号鍵を取得するコンテンツ配信システムがある。このようなシステムのP2P配信においてデータセキュリティ上の大きな問題点は、配信データと当該配信データを復号するための復号鍵との組み合わせが単一であったり数が少なかったりすることである。この場合、あるノードがハッキングされ、復号鍵が暴露されたとする。この場合、この復号鍵は殆どの配信データを復号するために使用できることになる。この問題を解決する一つの方法は、配信データをノード毎に個別化することである。
P2P配信において配信データをノード毎に個別化する技術としては、例えば、特許文献1に示されるMarkingの方式が知られている。この方式では、配信データをピースに分割した上で、鍵の行列で暗号化を施して暗号化ピースを生成する。その結果として、行列状に暗号化された暗号化ピースからなるピース群が生成される。そしてこのようなピース群はP2Pネットワークを介して配信される。当該P2Pネットワークに接続される1つのノードは、各ピースについて行列状に暗号化された複数の暗号化ピースの中から1つの暗号化ピースを取得することになる。結果として、配信データを構成する各ピースが各々暗号化された暗号化ピースの組み合わせは、ノード毎に統計的に一意になることが期待される。
しかし、上述の特許文献1の技術においては、各暗号化ピースの組み合わせがノード毎に一意であることはあくまで統計的に期待されるだけである。各暗号化ピースの組み合わせをノード毎に一意にすることを実現するには、例えば、以下の2つの方法が考えられる。1つは、暗号化ピースの配信方法に工夫を施すという方法である。また、1つは、各暗号化ピースを復号するための復号鍵を保持する鍵サーバが復号鍵の配信を制限するという方法である。例えば、配信されたピース群を復号するために、ノードが各暗号化ピースの組み合わせを鍵サーバに申告して復号鍵を取得するシステムがある。このシステムにおいて、復号鍵の再配信によるリプレイアタックを阻止するためには、既に取得された復号鍵と重複が多い暗号化ピースの組み合わせを、鍵サーバがリジェクトするという方法がある。しかしいずれの方法であっても、暗号化ピースの配信効率を時として著しく低下させ、P2Pネットワークの利点を十分活かすことができなくなる恐れがある。また、前者の方法では、データの保護とデータの配信方法との独立性が損なわれ、そのことがシステム構築上の大きな制約となる恐れがある。また、各暗号化ピースの組み合わせを鍵サーバに申告するかしないかに関わらず、ノードが鍵サーバから復号鍵を取得するシステムにおいては、鍵サーバから送信されるデータ量は小さい方が効率的であり、望ましい。
本発明は、上記に鑑みてなされたものであって、コンテンツ配信システムにおいて配信される各暗号化ピースの組み合わせを通信装置毎に一意にすることが可能になると共に、システム構築上の自由度を向上可能な通信装置、サーバ装置、通信方法、および通信プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明の一実施形態は、データの一部であるピースを暗号化して送信する通信装置であって、他の通信装置に割り当てられた第1暗号鍵によって暗号化されたピースである第1暗号化ピースと、前記他の通信装置を識別する第1装置識別情報と、を受信する受信手段と、前記通信装置に割り当てられた第2暗号鍵を記憶する記憶手段と、前記第2暗号鍵を用いて前記第1暗号化ピースを更に暗号化した第2暗号化ピースを生成する暗号化手段と、前記第2暗号化ピースと、前記第1装置識別情報と、前記通信装置を識別する第2装置識別情報と、を送信する送信手段と、を備えることを特徴とする。
また、本発明の一実施形態は、上記装置で実行することができる方法およびプログラムである。
また、本発明の一実施形態は、暗号化されたピースである暗号化ピースを復号するための復号鍵を要求する鍵要求であって、前記暗号化ピースの配信を仲介した前記通信装置の前記装置識別情報を含む前記鍵要求を前記通信装置から受信する受信手段と、前記鍵要求に含まれる各前記装置識別情報を用いて前記復号鍵を生成する鍵生成手段と、生成された前記復号鍵を、前記鍵要求を送信した前記通信装置に送信する送信手段と、を備えることを特徴とする。
また、本発明の一実施形態は、上記装置で実行することができるプログラムである。
本発明によれば、コンテンツ配信システムにおいて配信される各暗号化ピースの組み合わせを通信装置毎に一意にすることが可能になると共に、システム構築上の自由度を向上可能な通信装置、サーバ装置、通信方法、および通信プログラムを提供することができるという効果を奏する。
以下に添付図面を参照して、この発明にかかる通信装置、サーバ装置、通信方法、および通信プログラムの最良な実施の形態を詳細に説明する。
[第1の実施の形態]
(1)構成
<コンテンツ配信システムの構成>
図1は、本実施の形態にかかるデータ配信システムの構成を示す図である。本実施の形態にかかるデータ配信システムにおいては、複数のノード50,51A〜51BがP2PネットワークNTを介して接続されている。図示しないがこの他のノードもP2PネットワークNTを介して接続され得る。また、各ノード50,51A〜51Bは鍵サーバ53と接続されている。各ノード50,51A〜51Bは、各ノードに一意に割り当てられた装置識別情報であるノードIDと、各ノードに一意に割り当てられた割当情報として公開鍵とを保持している。各ノード50,51A〜51Bに割り当てられたノードIDを各々ID#0、ID#1、ID#2とし、公開鍵を各々y0、y1、y2とする。尚、各ノード50,51A〜51Bのうちノード50は、データの配信の基点となる配信開始ノードであり、配信対象のデータ(配信データという)を保持している。配信データは、平文である場合もあるし、既に暗号化された暗号文である場合もある。例えば、当該配信データは、暗号化として何らかのDRM (Digital Right Management) Systemによって保護されたビデオデータであっても良い。鍵サーバ53は、秘密情報として、各ノード50,51A〜51Bに各々割り当てられた公開鍵にそれぞれ対応する秘密鍵x0、x1、x2を保持している。尚、以降、ノード51A〜51Bを各々区別する必要がない場合、単にノード51と記載する。
(1)構成
<コンテンツ配信システムの構成>
図1は、本実施の形態にかかるデータ配信システムの構成を示す図である。本実施の形態にかかるデータ配信システムにおいては、複数のノード50,51A〜51BがP2PネットワークNTを介して接続されている。図示しないがこの他のノードもP2PネットワークNTを介して接続され得る。また、各ノード50,51A〜51Bは鍵サーバ53と接続されている。各ノード50,51A〜51Bは、各ノードに一意に割り当てられた装置識別情報であるノードIDと、各ノードに一意に割り当てられた割当情報として公開鍵とを保持している。各ノード50,51A〜51Bに割り当てられたノードIDを各々ID#0、ID#1、ID#2とし、公開鍵を各々y0、y1、y2とする。尚、各ノード50,51A〜51Bのうちノード50は、データの配信の基点となる配信開始ノードであり、配信対象のデータ(配信データという)を保持している。配信データは、平文である場合もあるし、既に暗号化された暗号文である場合もある。例えば、当該配信データは、暗号化として何らかのDRM (Digital Right Management) Systemによって保護されたビデオデータであっても良い。鍵サーバ53は、秘密情報として、各ノード50,51A〜51Bに各々割り当てられた公開鍵にそれぞれ対応する秘密鍵x0、x1、x2を保持している。尚、以降、ノード51A〜51Bを各々区別する必要がない場合、単にノード51と記載する。
ここで、各ノード50,51と、鍵サーバ53との各装置のハードウェア構成について説明する。各装置は各々、装置全体を制御するCPU(Central Processing Unit)等の制御装置と、各種データや各種プログラムを記憶するROM(Read Only Memory)やRAM(Random Access Memory)等の記憶装置と、各種データや各種プログラムを記憶するHDD(Hard Disk Drive)やCD(Compact Disk)ドライブ装置等の外部記憶装置と、これらを接続するバスとを備えており、通常のコンピュータを利用したハードウェア構成となっている。また、各装置には各々、情報を表示する表示装置と、ユーザの指示入力を受け付けるキーボードやマウス等の入力装置と、外部装置の通信を制御する通信I/F(interface)とが有線又は無線により接続される。
なお、装置識別情報とは、データ配信システムにおける各ノードに割り当てられた情報であって、各ノードを識別できればどのような情報であっても良く、例えば、ノードID(例えば、当該装置のMAC(Media Access Control)アドレス、IPアドレス、メールアドレス)、ノードに割り当てられる公開鍵、公開鍵証明書、有料データ配信などの配信サービスにおける加入者IDである。
また、秘密情報とは、鍵サーバ53が秘密裏に記憶する情報であって、各ノードにより暗号化された暗号化ピースを復号するため情報であり、例えば、公開鍵yiに対応する秘密鍵xi、装置識別情報から秘密鍵xiを導出するアルゴリズム及び当該アルゴリズムにおけるパラメーター(例えば、入力の一部など)である。秘密情報は、鍵サーバ53のみでなく(例えばサービス事業者など)信頼できる第三者が保持していても良い。
<配信開始ノードの構成>
次に、上述したハードウェア構成において、配信開始ノードであるノード50のCPUが記憶装置や外部記憶装置に記憶された各種プログラムを実行することにより実現される各種機能について説明する。図2は、ノード50の機能的構成を例示する図である。ノード50は、固有情報格納部500と、乱数生成部501と、ピース暗号化部503と、ピース化部504と、データ送信部505と、送信要求受付部506とを有する。尚、固有情報格納部500は、例えばノード50のHDDなどの外部記憶装置に記憶領域として確保されるものである。乱数生成部501と、ピース化部504と、ピース暗号化部503と、データ送信部505と、送信要求受付部506との実体は、ノード50のCPUのプログラム実行時にRAMなどの記憶装置上に生成されるものである。尚、ノード50の外部記憶装置には、配信データが予め記憶されている。
次に、上述したハードウェア構成において、配信開始ノードであるノード50のCPUが記憶装置や外部記憶装置に記憶された各種プログラムを実行することにより実現される各種機能について説明する。図2は、ノード50の機能的構成を例示する図である。ノード50は、固有情報格納部500と、乱数生成部501と、ピース暗号化部503と、ピース化部504と、データ送信部505と、送信要求受付部506とを有する。尚、固有情報格納部500は、例えばノード50のHDDなどの外部記憶装置に記憶領域として確保されるものである。乱数生成部501と、ピース化部504と、ピース暗号化部503と、データ送信部505と、送信要求受付部506との実体は、ノード50のCPUのプログラム実行時にRAMなどの記憶装置上に生成されるものである。尚、ノード50の外部記憶装置には、配信データが予め記憶されている。
固有情報格納部500は、当該ノード50に割り当てられたノードID及び公開鍵を記憶する。ピース化部504は、配信データを複数のピースに分割する。分割する際のデータサイズは特に限定されないが、予め定められているものとする。送信要求受付部506は、ピース化部504が分割したピースを要求するピース要求を他のノード51から受信する。乱数生成部501は、送信要求受付部506がピース要求を受信した場合、その発生毎に異なり得る一時情報である乱数を生成する。一時情報とは、ノードで生成される度に異なり得る値となれば良く、乱数の他、例えば、タイムスタンプ、通信のシーケンス番号、ノードに固有のカウンタの値、Time Variant Parameterである。Time Variant Parameterについては、例えば文献ISO9798-1に記載されている。
ピース暗号化部503は、乱数生成部501が生成した乱数と固有情報格納部500に記憶されている公開鍵とを用いてピースを暗号化して、暗号化ピースを含む暗号化データ(詳細は後述)を出力する。データ送信部505は、ピース要求を送信した他のノード51に対して、固有情報格納部500に記憶されているノードIDと、ピース暗号化部503が出力した暗号化データとを送信する。
<配信開始ノード以外のノードの構成>
次に、配信開始ノード以外であるノード51のCPUが記憶装置や外部記憶装置に記憶された各種プログラムを実行することにより実現される各種機能について説明する。図3は、ノード51の機能的構成を例示する図である。ノード51は、固有情報格納部510と、乱数生成部511と、ピース暗号化部513と、データ受信部514と、データ送信部515と、送信要求受付部516と、データ格納部517と、送信要求送信部518と、鍵要求送信部519と、ピース復号部520とを有する。尚、固有情報格納部510とデータ格納部517とは、例えばノード51のHDDなどの外部記憶装置に記憶領域として確保されるものである。乱数生成部511と、ピース暗号化部513と、データ受信部514と、データ送信部515と、送信要求受付部516と、送信要求送信部518と、鍵要求送信部519と、ピース復号部520との実体は、ノード51のCPUのプログラム実行時にRAMなどの記憶装置上に生成されるものである。
次に、配信開始ノード以外であるノード51のCPUが記憶装置や外部記憶装置に記憶された各種プログラムを実行することにより実現される各種機能について説明する。図3は、ノード51の機能的構成を例示する図である。ノード51は、固有情報格納部510と、乱数生成部511と、ピース暗号化部513と、データ受信部514と、データ送信部515と、送信要求受付部516と、データ格納部517と、送信要求送信部518と、鍵要求送信部519と、ピース復号部520とを有する。尚、固有情報格納部510とデータ格納部517とは、例えばノード51のHDDなどの外部記憶装置に記憶領域として確保されるものである。乱数生成部511と、ピース暗号化部513と、データ受信部514と、データ送信部515と、送信要求受付部516と、送信要求送信部518と、鍵要求送信部519と、ピース復号部520との実体は、ノード51のCPUのプログラム実行時にRAMなどの記憶装置上に生成されるものである。
固有情報格納部510は、当該ノード51に割り当てられたノードID及び公開鍵を記憶する。送信要求受付部516の構成は上述のノード50の有する送信要求受付部506の構成と同様である。送信要求送信部518は、ピースを要求するピース要求をノード50又は他のノード51に対して送信する。データ受信部514は、送信要求送信部518がピース要求を送信した相手であるノード50又は他のノード51から、ピースが暗号化された暗号化ピースを含む暗号化データと、当該暗号化ピースの送信を仲介した少なくとも1つの他のノード50,51に割り当てられた各ノードIDを含むノードID列とを受信する。データ格納部517は、データ受信部514が受信したノードID列と暗号化データとを対応付けて記憶する。暗号化データとは、暗号化ピースと算出情報列とを含むデータを指す。なお、算出情報とは、乱数(一時情報)に応じて変更される情報であって、例えば、後述するC1,iが算出情報に相当する。
乱数生成部511は、送信対象の暗号化ピースを暗号化するとき、又は予め乱数を生成する。ピース暗号化部513は、乱数生成部511が生成した乱数と固有情報格納部510に記憶されている公開鍵とを用いて、データ格納部517に記憶されている1つの暗号化ピースを更に暗号化して、新たな暗号化ピースを生成し、新たな暗号化ピースを含む暗号化データを出力する。
データ送信部515は、送信要求受付部516が受信したピース要求を送信した他のノード51に対して、送信対象の暗号化ピースに対応付けられてデータ格納部517に記憶されたノードID列に加え固有情報格納部510に記憶されたノードIDを含む新たなノードID列と、(ピース暗号化部513において送信対象の暗号化ピースを暗号化し)ピース暗号化部513が出力した新たな暗号化ピースを含む暗号化データとを送信する。尚、データ格納部517に暗号化ピースが記憶されていない場合には、送信要求受付部516がピース要求を受信したとしても、ピース暗号化部513は暗号化ピースを含む暗号化データを出力せず、データ送信部515は暗号化ピースを含む暗号化データを送信しない。
ここで、ノード50,51から送信されるノードID列と、暗号化ピースを含む暗号化データとについて具体的に説明する。尚、ノード50から1つの暗号化ピースに対してこれと共に送信されるノードIDは1つであるが、ここでは説明の便宜上、これをノード列と記載する場合がある。暗号化ピースの配信経路としてここではノード50からノード51A、更にノード51Aからノード51Bに暗号化ピースを送信し、ノード51Bから鍵サーバ53に鍵要求を送信する場合について説明する。例えば、あるピースPについてノード51Aからのピース要求に応じて、ノード50が、乱数r0と公開鍵y0とを用いてピースPを暗号化して暗号化ピースを含む暗号化データC1,0、C2,0、Y0を出力したとする。なお、C1,i、C2,i、Yiとは、配信経路上でi番目に暗号化データの配信を仲介したノード51で計算される暗号化データを意味する。そして、i=0のときの暗号化データC1,0、C2,0、Y0は、配信開始ノードであるノード50で計算される暗号化データを意味する。
ここで、図4に示されるように、ピースPの一部(又は全部)をmと表記し、m以外の残りの部分をRと表記する。ノード50が、当該暗号化データをノードID「ID#0」と共にノード51Aに送信したとする。図5は、ノード50からノード51Aに送信される情報を模式的に示す図である。ここで、暗号化データC1,0、C2,0、Y0の計算方法について説明する。始めにパラメータを定義する。p,qを素数とし、qはp−1を割り切るとする。Zq={0,1,…,q−1}とする。Zp*={1,…,p−1}とする。gを、Zp*上の1のq乗根とする。Gqを、Zp*の部分群であり、かつ、位数がqである乗法群とする。各ノードは、p,q,gの値を知らされている。以下、特に断りの無い限り、計算はZp*上で行われるとする。ノードIDが「ID#i」であるノードに割り当てられる公開鍵yiは以下の(1)式で表される。
ここで、xiは公開鍵yiに対応する秘密鍵であるが、鍵サーバのみが各xiを保持し、各ノードは公開鍵のみを保持する。ノード50は、乱数r0と公開鍵y0を用いて、以下の(2)式〜(5)式により暗号化データC1,0、C2,0、Y0を計算する。
C1,0は乱数r0によってその値が変わる情報である。すなわち、C1,0は乱数r0に応じた値を有する。ここで、Hはハッシュ関数を表す。関数KXOR(K,R)の定義は以下である。KXORの入力は鍵KとデータRであり、RはR=R1||R2||…||Rnと表せるとする。||はデータ連結を表す。1≦i≦nについて、以下の(6)式によりRi’を計算し、出力をR1’||R2’||…||Rn’とする。尚、例えばm=Pとする場合など、Rに相当するデータが存在しない場合やRにKXOR処理を施さない場合は、上記Y0、K0の計算は行わず、暗号化データはC1,0、C2,0となる。
(3)式のC2の計算において、mをGqの元に写像することが必要となる。そのような写像Fの定義は以下の(7)式である。p=2q+1とする。
F:Zq→QRp:F(a)=a2 mod p ・・・(7)
F:Zq→QRp:F(a)=a2 mod p ・・・(7)
ここで、QRp={12 mod p, 22 mod p,・・・, q2mod p}である。mをGq(この例ではQRp)の元に写像するためにはF(m)を計算し、上式のmをF(m)に置き換えてC2を計算すれば良い。また、Fの逆写像F−1の定義は以下で(8)式である。
F-1:QRp→Zq:F-1(b)=min(b(p+1)/4, −b(p+1)/4) ・・・(8)
F-1:QRp→Zq:F-1(b)=min(b(p+1)/4, −b(p+1)/4) ・・・(8)
ここで、min(x,y)はxとyの内でより小さい方を表す。例えば、x<yの場合はmin(x,y)=xである(x=yの場合はmin(x,y)=xとする)。F(m)からmを求める場合には、F-1(F(m))を計算すれば良い。以下、上述の写像、逆写像を計算する処理の記載を省略する。尚、上述したKXOR処理を行わず、Rのままにしておいても良い。
ノード51Aは、これらのノードID「ID#0」と、暗号化データC1,0、C2,0、Y0とを対応付けてデータ格納部517に記憶することになる。
そして、当該ノード51Aが、ノード51Bからのピース要求に応じてピースPに対する暗号化ピースを含む暗号化データを送信する場合、乱数r1を生成し、これと公開鍵y1とを用いて暗号化ピースC2、Y0を以下の(9)式〜(12)式により更に暗号化して暗号化データC1,1、C2,1、Y1を計算する。
C1,1は乱数r1によってその値が変わる情報(算出情報)である。このとき、ノード51Aは、ノード51Bに対して、データ格納部517に記憶されている、ノード50に割り当てられたノードID「ID#0」に加え固有情報格納部510に記憶されている、自身に割り当てられたノードID「ID#1」と、データ格納部517に記憶されている算出情報C1,0と、上式において計算した算出情報C1,1、及び暗号化ピースC2,1、Y1とを送信する。図6は、ノード51Aからノード51Bに送信される情報を模式的に示す図である。ノード51Bは、これらのノードID列「ID#0,ID#1」、算出情報列C1,0, C1,1、及び暗号化ピースC2,1、Y1を対応付けてデータ格納部517に記憶する。
図3の説明に戻る。鍵要求送信部519は、データ格納部517に記憶された暗号化ピースを復号するための復号鍵を要求する鍵要求を鍵サーバ53に送信する。ここで鍵要求送信部519は、当該暗号化ピースに対応してデータ格納部517に記憶されているノードID列及び算出情報列を鍵要求に含めて鍵サーバ53に送信する。例えば、ノード51Bが、ノード51Aが暗号化を行った場合に出力された図6に示した暗号化ピースC2,1、Y1を復号するための復号鍵を要求する鍵要求を鍵サーバ53に送信する場合、ノード51Bの鍵要求送信部519は、ノードID列「ID#0,ID#1」と、算出情報列C1,0、C1,1とを含む鍵要求を送信する。図7は、ノード51Bから鍵サーバ53に送信される情報を模式的に示す図である。このように、ノード51は、暗号化ピースを復号するための復号鍵を鍵サーバ53に要求する際に、当該暗号化ピースの配信経路を示すものとして、配信開始ノードであるノード50を基点として当該暗号化ピースの配信を仲介する各ノード50,51の各ノードIDを含むノードID列及び当該各ノード50,51が生成した各乱数から算出される算出情報列を鍵サーバ53に送信する。
ピース復号部520は、鍵要求送信部519が送信した鍵要求に応じて鍵サーバ53から送信されたデータ(後述するD、D’)を復号鍵として受信し、当該復号鍵を用いて暗号化ピースを復号する。尚、ピース復号部520がどのようにピースPを復号するのかは後述する。図8は、鍵サーバ53からノード51Bに送信される情報を模式的に示す図である。同図に示される復号鍵によりピースPが復号される。尚、鍵サーバ53がどのように復号鍵を生成するのかは後述する。
尚、ノード51が、複数のピースのそれぞれについてどのような順番やタイミングでどのノードから取得するかは特に限定されないが、以上のようにして、ノード51は、複数のピースのそれぞれが暗号化された各暗号化ピースをピース要求によって他のノード50,51から取得する。また、ノード51は、各暗号化ピースについて鍵要求によって各復号鍵を鍵サーバ53から受信し、各暗号化ピースを復号することにより、上述の配信データを得る。
<鍵サーバの構成>
次に、鍵サーバ53のCPUが記憶装置や外部記憶装置に記憶された各種プログラムを実行することにより実現される各種機能について説明する。図9は、鍵サーバ53の機能的構成を例示する図である。鍵サーバ53は、秘密鍵格納部530と、復号鍵計算部532と、データ受信部531と、データ送信部534とを有する。尚、秘密鍵格納部530は、例えば鍵サーバ53のHDDなどの外部記憶装置に記憶領域として確保されるものである。復号鍵計算部532と、データ受信部531と、データ送信部534との実体は、鍵サーバ53のCPUのプログラム実行時にRAMなどの記憶装置上に生成されるものである。
次に、鍵サーバ53のCPUが記憶装置や外部記憶装置に記憶された各種プログラムを実行することにより実現される各種機能について説明する。図9は、鍵サーバ53の機能的構成を例示する図である。鍵サーバ53は、秘密鍵格納部530と、復号鍵計算部532と、データ受信部531と、データ送信部534とを有する。尚、秘密鍵格納部530は、例えば鍵サーバ53のHDDなどの外部記憶装置に記憶領域として確保されるものである。復号鍵計算部532と、データ受信部531と、データ送信部534との実体は、鍵サーバ53のCPUのプログラム実行時にRAMなどの記憶装置上に生成されるものである。
秘密鍵格納部530は、各ノード50,51に割り当てられた公開鍵にそれぞれ対応する秘密鍵を、各ノード50,51に割り当てられたノードIDと対応付けて記憶する。データ受信部531は、上述したノードID列及び算出情報列を含む鍵要求をノード51から受信すると共に、暗号化ピースを復号するための復号鍵を要求する。
復号鍵計算部532における処理を上述の例(ノード50からノード51Aへ、さらにノード51Aからノード51Bへ暗号化ピースが配信され、ノード51Bが鍵サーバ53へ鍵要求する例)を用いて説明する。ID#0、ID#1、C1,0、C1,1を受信した鍵サーバ53は、ノード50に割り当てられた公開鍵に対応する秘密鍵x0とノード51Aに割り当てられた公開鍵に対応する秘密鍵x1とを用いて、以下の(13)式、(14)式によりD、D’を計算する。
上述した暗号方式は、ElGamal暗号方式に基づいている。本暗号方式では、ElGamal暗号方式が有する準同型性を利用し、ピースの暗号化に用いられた、ノード50、ノード51Aの公開鍵y0、y1にそれぞれ対応する秘密鍵x0、x1を1つの復号鍵Dに集約している。これにより、暗号化ピースが経由するノード数が大きくなっても復号鍵サイズを一定に保つことが可能となる。従って、鍵サーバから送信されるデータ量を削減することが可能となる。なお、適用可能な暗号方式は、ElGamal暗号方式に限られるものではない。また、集約する復号鍵の個数も1つに限られるものではない。すなわち、各ノードの公開鍵にそれぞれ対応する秘密鍵を、予め定められた個数の復号鍵に集約可能な暗号方式であればあらゆる方式を適用しうる。
データ送信部534は、復号鍵計算部532が計算した復号鍵を、データ受信部531が受信した鍵要求を送信したノード51に対して送信する。例えば、上述の例では、ノード51Aが暗号化を行っていた場合には、鍵サーバ53は、図7に示されるノードID列及び算出情報列を含む鍵要求に応じて、図8に示されるように、D、D’をノード51Bに対して送信する。当該ピースについて行われた全ての暗号化のそれぞれを復号するための復号鍵がノード51Bに対して送信されることにより、ノード51Bは当該暗号化ピースの暗号化を完全に復号することができる。
(2)動作
<配信開始ノード:配信処理>
次に、本実施の形態にかかるデータ配信システムで行われる処理の手順について説明する。まず、配信開始ノードであるノード50が行う配信処理の手順について図10を用いて説明する。ノード50は、配信データを複数のピースに分割する(ステップS1)。そして、ノード50は、ピースを要求するピース要求を他のノード51から受信すると(ステップS2:YES)、乱数r0を生成する(ステップS3)。次いで、ノード50は、乱数r0と固有情報格納部500に記憶された公開鍵y0とを用いて、送信対象となるピースPを暗号化して、暗号化ピースを含む暗号化データを出力する(ステップS4)。尚、送信対象となるピースをどのように決定するかは特に限定されない。そして、ノード50は、ステップS2で受信されたピース要求を送信した他のノード51に対して、例えば図5に示されるように、固有情報格納部500に記憶されているノードID「ID#0」と、ステップS3で生成した乱数r0と、ステップS4で出力した暗号化データとを送信する(ステップS5)。その後ステップS2に戻り、ノード50は、新たなピース要求の受信を待機する。尚、ステップS2で受信されるピース要求は、同一のノード51であるとは限らず、当該ピース要求によって要求されるピースPは、同一のピースであるとは限らない。また、ステップS3で生成する乱数は基本的にステップS3の処理毎に異なる。
<配信開始ノード:配信処理>
次に、本実施の形態にかかるデータ配信システムで行われる処理の手順について説明する。まず、配信開始ノードであるノード50が行う配信処理の手順について図10を用いて説明する。ノード50は、配信データを複数のピースに分割する(ステップS1)。そして、ノード50は、ピースを要求するピース要求を他のノード51から受信すると(ステップS2:YES)、乱数r0を生成する(ステップS3)。次いで、ノード50は、乱数r0と固有情報格納部500に記憶された公開鍵y0とを用いて、送信対象となるピースPを暗号化して、暗号化ピースを含む暗号化データを出力する(ステップS4)。尚、送信対象となるピースをどのように決定するかは特に限定されない。そして、ノード50は、ステップS2で受信されたピース要求を送信した他のノード51に対して、例えば図5に示されるように、固有情報格納部500に記憶されているノードID「ID#0」と、ステップS3で生成した乱数r0と、ステップS4で出力した暗号化データとを送信する(ステップS5)。その後ステップS2に戻り、ノード50は、新たなピース要求の受信を待機する。尚、ステップS2で受信されるピース要求は、同一のノード51であるとは限らず、当該ピース要求によって要求されるピースPは、同一のピースであるとは限らない。また、ステップS3で生成する乱数は基本的にステップS3の処理毎に異なる。
<受信処理>
次に、ノード51がノード50又は他のノード51から暗号化ピースを受信する受信処理の手順について図11を用いて説明する。ノード51は、ピースを要求するピース要求をノード50又は他のノード51に対して送信する(ステップS10)。次いで、ノード51は、ステップS10でピース要求を送信した相手であるノード50又は他のノード51から、ノードID列と暗号化データとを受信する(ステップS11)。そして、ノード51は、ステップS11で受信したノードID列及び暗号化データを対応付けて記憶する(ステップS12)。
次に、ノード51がノード50又は他のノード51から暗号化ピースを受信する受信処理の手順について図11を用いて説明する。ノード51は、ピースを要求するピース要求をノード50又は他のノード51に対して送信する(ステップS10)。次いで、ノード51は、ステップS10でピース要求を送信した相手であるノード50又は他のノード51から、ノードID列と暗号化データとを受信する(ステップS11)。そして、ノード51は、ステップS11で受信したノードID列及び暗号化データを対応付けて記憶する(ステップS12)。
<配信開始ノード以外のノード:配信処理>
次に、配信開始ノード以外のノード51が行う配信処理の手順について図12を用いて説明する。ノード51は、ピースを要求するピース要求を他のノード51から受信すると(ステップS20:YES)、乱数を生成する(ステップS21)。次いでノード51は、ステップS21で生成した乱数と、固有情報格納部510に記憶された公開鍵とを用いて、あるピースPが暗号化された暗号化ピースであってデータ格納部517に記憶されている暗号化ピースを更に暗号化して、新たな暗号化ピースを出力する(ステップS22)。その後ノード51は、ステップS20で受信されたピース要求を送信した他のノード51に対して、送信対象である暗号化ピースに対応付けられてデータ格納部517に記憶されたノードIDに加え固有情報格納部510に記憶されたノードIDを含む新たなノードID列と、送信対象である暗号化ピースに対応付けられてデータ格納部517に記憶された算出情報に加えステップS22の暗号化の際に生成した算出情報を含む新たな算出情報列と、ステップS22で出力した新たな暗号化ピースとを送信する(ステップS23)。
次に、配信開始ノード以外のノード51が行う配信処理の手順について図12を用いて説明する。ノード51は、ピースを要求するピース要求を他のノード51から受信すると(ステップS20:YES)、乱数を生成する(ステップS21)。次いでノード51は、ステップS21で生成した乱数と、固有情報格納部510に記憶された公開鍵とを用いて、あるピースPが暗号化された暗号化ピースであってデータ格納部517に記憶されている暗号化ピースを更に暗号化して、新たな暗号化ピースを出力する(ステップS22)。その後ノード51は、ステップS20で受信されたピース要求を送信した他のノード51に対して、送信対象である暗号化ピースに対応付けられてデータ格納部517に記憶されたノードIDに加え固有情報格納部510に記憶されたノードIDを含む新たなノードID列と、送信対象である暗号化ピースに対応付けられてデータ格納部517に記憶された算出情報に加えステップS22の暗号化の際に生成した算出情報を含む新たな算出情報列と、ステップS22で出力した新たな暗号化ピースとを送信する(ステップS23)。
<復号処理>
次に、ノード51が鍵サーバ53から復号鍵を取得しこれを用いて暗号化ピースを復号する復号処理の手順について図13を用いて説明する。ノード51は、データ格納部517に記憶された暗号化ピースに対応付けられているノードID列及び算出情報列を読み出し(ステップS30)、当該暗号化ピースを復号するための復号鍵を要求すると共に、当該ノードID列及び算出情報列を含む鍵要求を鍵サーバ53に送信する(ステップS31)。次いで、ノード51は、ステップS30で送信された鍵要求に応じて鍵サーバ53から送信された復号鍵を受信し(ステップS32)、当該復号鍵を用いて暗号化ピースを復号する(ステップS33)。このようにして、各ノード51は、複数のピースのそれぞれが暗号化された各暗号化ピースについて鍵要求によって各復号鍵を鍵サーバ53から受信し、各暗号化ピースを復号することにより、上述の配信データを得ることができる。
次に、ノード51が鍵サーバ53から復号鍵を取得しこれを用いて暗号化ピースを復号する復号処理の手順について図13を用いて説明する。ノード51は、データ格納部517に記憶された暗号化ピースに対応付けられているノードID列及び算出情報列を読み出し(ステップS30)、当該暗号化ピースを復号するための復号鍵を要求すると共に、当該ノードID列及び算出情報列を含む鍵要求を鍵サーバ53に送信する(ステップS31)。次いで、ノード51は、ステップS30で送信された鍵要求に応じて鍵サーバ53から送信された復号鍵を受信し(ステップS32)、当該復号鍵を用いて暗号化ピースを復号する(ステップS33)。このようにして、各ノード51は、複数のピースのそれぞれが暗号化された各暗号化ピースについて鍵要求によって各復号鍵を鍵サーバ53から受信し、各暗号化ピースを復号することにより、上述の配信データを得ることができる。
<鍵サーバ:鍵送信処理>
次に、鍵サーバ53がノード51からの鍵要求に応じて復号鍵を送信する鍵送信処理の手順について図14を用いて説明する。鍵サーバ53は、ノードID列及び算出情報列を含む鍵要求(暗号化ピースを復号するための復号鍵の要求)をノード51から受信すると(ステップS40:YES)、受信した鍵要求に含まれるノードID列に含まれる各ノードIDに対応付けられて秘密鍵格納部530に記憶されている秘密鍵をノードID毎に読み出す(ステップS41)。そして、鍵サーバ53は、ステップS41において読み出した秘密鍵と、ステップS40において受信した算出情報を用いて復号鍵を計算する(ステップS42)。次いで、鍵サーバ53は、ステップS42で生成した復号鍵を、ステップS40で受信した鍵要求を送信したノード51に対して送信する(ステップS43)。
次に、鍵サーバ53がノード51からの鍵要求に応じて復号鍵を送信する鍵送信処理の手順について図14を用いて説明する。鍵サーバ53は、ノードID列及び算出情報列を含む鍵要求(暗号化ピースを復号するための復号鍵の要求)をノード51から受信すると(ステップS40:YES)、受信した鍵要求に含まれるノードID列に含まれる各ノードIDに対応付けられて秘密鍵格納部530に記憶されている秘密鍵をノードID毎に読み出す(ステップS41)。そして、鍵サーバ53は、ステップS41において読み出した秘密鍵と、ステップS40において受信した算出情報を用いて復号鍵を計算する(ステップS42)。次いで、鍵サーバ53は、ステップS42で生成した復号鍵を、ステップS40で受信した鍵要求を送信したノード51に対して送信する(ステップS43)。
以上のような構成によれば、あるノードが取得する暗号化ピースの組み合わせは配信経路と配信時期とに固有のものとなり、確実に一意となり得る。このような構成によれば、P2P配信において配信方法に関する特別な工夫をしなくても、各ノードが取得する各暗号化ピースの組み合わせについてノード毎の一意性を確実に高めることができ、安全性を向上させることができる。更に、データの保護とデータの配信方法との独立性を維持することが可能になり、システム構築上の自由度を向上させることが可能になる。また、上述したように、複数のノードによる暗号化で用いられた複数の公開鍵にそれぞれ対応する複数の秘密鍵を1つの復号鍵に集約して復号に用いることができるため、暗号化ピースが経由するノード数が大きくなっても復号鍵サイズを一定に保ち、鍵サーバから送信されるデータ量を削減することが可能となる。
[変形例]
なお、本発明は前記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、前記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。また、以下に例示するような種々の変形が可能である。
なお、本発明は前記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、前記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。また、以下に例示するような種々の変形が可能である。
<変形例1>
上述した実施の形態において、各ノード50で実行される各種プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また当該プログラムを、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成しても良い。この場合には、プログラムは、各ノード50において上記記録媒体から読み出して実行することにより主記憶装置(例えばRAM)上にロードされ、上記機能的構成において説明した各部が主記憶装置上に生成される。鍵サーバ53で実行される各種プログラムについても同様である。
上述した実施の形態において、各ノード50で実行される各種プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また当該プログラムを、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成しても良い。この場合には、プログラムは、各ノード50において上記記録媒体から読み出して実行することにより主記憶装置(例えばRAM)上にロードされ、上記機能的構成において説明した各部が主記憶装置上に生成される。鍵サーバ53で実行される各種プログラムについても同様である。
また、上述した実施の形態において、各ノード50の機能的構成において説明した各部のうち全部又は一部をハードウェアにより構成しても良い。鍵サーバ53の機能的構成において説明した各部のうち全部又は一部についても同様である。
<変形例2>
第1の実施の形態では、暗号化ピースが各ノードにおいてさらに暗号化される例を説明したが、これに限らず、受信した暗号化ピースをそのまま他のノードに転送しても良い。また、配信開始ノードのみが暗号化を行っても良い。以下、配信開始ノードのみが暗号化を行う例を説明する。以下、第1の実施の形態と異なる点のみを記載し、第1の実施の形態と同様の処理を行う場合はその記載を省略する。(後述のその他の変形例についても同様である。)
第1の実施の形態では、暗号化ピースが各ノードにおいてさらに暗号化される例を説明したが、これに限らず、受信した暗号化ピースをそのまま他のノードに転送しても良い。また、配信開始ノードのみが暗号化を行っても良い。以下、配信開始ノードのみが暗号化を行う例を説明する。以下、第1の実施の形態と異なる点のみを記載し、第1の実施の形態と同様の処理を行う場合はその記載を省略する。(後述のその他の変形例についても同様である。)
各ノードは、P2Pネットワークを介して、暗号化データC1、C2を配信する。ノード51Bは、以下の(20)式で表されるEを含む復号鍵要求メッセージを鍵サーバ53へ送信する。鍵サーバ53は、以下の(21)式によりDを計算し、ノード51Bへ送信する。
<変形例3>
第1の実施の形態では、鍵サーバ53は、復号鍵Dをそのまま送信する例を説明したが、Dを暗号化した上で送信しても良い。これにより、復号鍵を盗聴から守ることができる。ノード51Bは、乱数t2を生成し、ノードID列、C1,0、C1,1に加えて以下の(23)式で表されるEを含む復号鍵要求メッセージを鍵サーバ53へ送信する。
第1の実施の形態では、鍵サーバ53は、復号鍵Dをそのまま送信する例を説明したが、Dを暗号化した上で送信しても良い。これにより、復号鍵を盗聴から守ることができる。ノード51Bは、乱数t2を生成し、ノードID列、C1,0、C1,1に加えて以下の(23)式で表されるEを含む復号鍵要求メッセージを鍵サーバ53へ送信する。
尚、Deの生成方法として、共通鍵暗号方式を用いても良い。つまり、g^t2を共通鍵としてDを暗号化したものをDeとしても良い。
<変形例4>
第1の実施の形態では、暗号化を有限体の乗法群上で行う例を説明したが、これに限らず、暗号化を楕円曲線上の点から成る加法群上で行っても良い。以下、暗号化を楕円曲線上の点から成る加法群上で行う例を説明する。Gを楕円曲線上のベースポイントとする。各ノードに与えられる公開鍵yiはyi=xiGと表される。ノード50は、以下の(26)〜(29)式により暗号化処理を行う。
第1の実施の形態では、暗号化を有限体の乗法群上で行う例を説明したが、これに限らず、暗号化を楕円曲線上の点から成る加法群上で行っても良い。以下、暗号化を楕円曲線上の点から成る加法群上で行う例を説明する。Gを楕円曲線上のベースポイントとする。各ノードに与えられる公開鍵yiはyi=xiGと表される。ノード50は、以下の(26)〜(29)式により暗号化処理を行う。
<変形例5>
変形例4では、mをスカラーとして扱う例を説明したが、これに限らず、mを楕円曲線上の点Mに変換して暗号化を行っても良い。以下、mを楕円曲線上の点Mに変換して暗号化を行う例を説明する。変形例4との相違点のみを記載する。関数Plus、関数Minusを以下のように定義する。定義1、定義2のいずれを採用しても良い。
(定義1)Plus(A,B)は、点Aと点Bとの、mod p(pは素数)上の長さ2のベクトルの加算を表す。この場合、Minus(A,B)はmod p上の長さ2のベクトルの減算を表す。
(定義2)Plus(A,B)はAとBとの点加算を表す。この場合、Minus(A,B)はBの逆元−BとAとの点加算を表す。
変形例4では、mをスカラーとして扱う例を説明したが、これに限らず、mを楕円曲線上の点Mに変換して暗号化を行っても良い。以下、mを楕円曲線上の点Mに変換して暗号化を行う例を説明する。変形例4との相違点のみを記載する。関数Plus、関数Minusを以下のように定義する。定義1、定義2のいずれを採用しても良い。
(定義1)Plus(A,B)は、点Aと点Bとの、mod p(pは素数)上の長さ2のベクトルの加算を表す。この場合、Minus(A,B)はmod p上の長さ2のベクトルの減算を表す。
(定義2)Plus(A,B)はAとBとの点加算を表す。この場合、Minus(A,B)はBの逆元−BとAとの点加算を表す。
尚、mを点Mへ、又は点Mをmへ変換する方法は、例えば、「Standards for Efficient Cryptography, SEC 1: Elliptic Curve Cryptography, Version 1.0, September 20, 2000. (http://www.secg.org/download/aid-385/sec1_final.pdf)」において開示されている。
<変形例6>
変形例4では、暗号化を楕円曲線上の点から成る加法群上で行う例を説明した。これは変形例2に適用しても良い。以下、変形例2において、暗号化を楕円曲線上の点から成る加法群上で行う例を説明する。変形例4との相違点のみを記載する。
変形例4では、暗号化を楕円曲線上の点から成る加法群上で行う例を説明した。これは変形例2に適用しても良い。以下、変形例2において、暗号化を楕円曲線上の点から成る加法群上で行う例を説明する。変形例4との相違点のみを記載する。
<変形例7>
変形例4では、暗号化を楕円曲線上の点から成る加法群上で行う例を説明した。これは変形例3に適用しても良い。以下、変形例3において、暗号化を楕円曲線上の点から成る加法群上で行う例を説明する。変形例4との相違点のみを記載する。ノード51Bは、乱数t2を生成し、ノードID列、C1,0、C1,1に加えて以下の(52)式で表されるEを含む復号鍵要求メッセージを鍵サーバ53へ送信する。
変形例4では、暗号化を楕円曲線上の点から成る加法群上で行う例を説明した。これは変形例3に適用しても良い。以下、変形例3において、暗号化を楕円曲線上の点から成る加法群上で行う例を説明する。変形例4との相違点のみを記載する。ノード51Bは、乱数t2を生成し、ノードID列、C1,0、C1,1に加えて以下の(52)式で表されるEを含む復号鍵要求メッセージを鍵サーバ53へ送信する。
尚、Deの生成方法として、共通鍵暗号方式を用いても良い。つまり、t2Gを共通鍵としてDを暗号化したものをDeとしても良い。
<変形例8>
各ノードに上述したKXOR処理を行うか行わないかの選択をさせても良い。この場合、鍵サーバ53においてどのノードがKXOR処理を行ったかが識別できるように、各ノードは、上述のノードID列とは別に、KXOR処理を行ったノードのノードID列を送信するようにすれば良い。
各ノードに上述したKXOR処理を行うか行わないかの選択をさせても良い。この場合、鍵サーバ53においてどのノードがKXOR処理を行ったかが識別できるように、各ノードは、上述のノードID列とは別に、KXOR処理を行ったノードのノードID列を送信するようにすれば良い。
また、上述の関数KXORに代えて、以下に定義する関数KXOR’関数を用いても良い。KXOR’の入力は鍵KとデータRであり、RはR=R1||R2||…||Rnと表せるとする。1≦i≦nについて、Zi=s*Zi-1+t、Z0=K、および以下の(57)式によりRi’を計算し、出力をR1’||R2’||…||Rn’とする。本変形例において、「*」および「+」はそれぞれ拡大体上での乗算および加算を表す。s,tは定数であるが、s,tともにシステム固定であっても良いし、sは配信データ毎に変えても良いし、tは配信データ毎、ノード毎、又は配信データ毎かつノード毎に変えても良い。
<変形例9>
ピースPとその一部分のデータであるmとの関係について、図4に示した例のみに限らず、図15に示すようにP=mとしても良い。この場合、Yi、Kiの計算は行わない。また、図16に示すように、P=m1||m2||…||mNとしても良い。この場合、各miについて、(Yi、Kiの計算は行わずに)暗号化データをそれぞれ計算する。この場合、各ノードは必ずしも全てのmiを暗号化しなくても良い。
ピースPとその一部分のデータであるmとの関係について、図4に示した例のみに限らず、図15に示すようにP=mとしても良い。この場合、Yi、Kiの計算は行わない。また、図16に示すように、P=m1||m2||…||mNとしても良い。この場合、各miについて、(Yi、Kiの計算は行わずに)暗号化データをそれぞれ計算する。この場合、各ノードは必ずしも全てのmiを暗号化しなくても良い。
ここで、図17に示すように、P=m1||m2||…||mN||Rとする場合の、ノード51Bが鍵サーバ53から受信する復号鍵の(ノード51Bにおける)格納形式について説明する。第1の実施の形態のノード51Bは、復号鍵を格納するための復号鍵格納部を有していても良い。図18は、このように構成した本変形例のノード1851の機能的構成を例示する図である。同図に示すように、ノード1851は、復号鍵格納部18521をさらに備えている。また、この復号鍵格納部18521は、SDメモリカードやSDHCメモリカード等の着脱可能な記録媒体によって実現されていても良い。特に、SDメモリカードやSDHCメモリカード等の着脱可能な記録媒体の秘匿領域に復号鍵を格納することが望ましい。miを復号するための復号鍵をDiとし、Rを復号するための復号鍵をD’’とする。Diの計算方法は上記(13)式と同様である。D’’の計算方法は上記(14)式と同様である。
復号鍵格納部18521への復号鍵D1、D2、・・・,、DN、D’’の格納形式の一例を図19に示す。ノード51Bは、鍵サーバ53から受信した復号鍵を復号鍵格納部18521に格納する。そして、ノード51Bは、復号鍵格納部18521より復号鍵を読み出し、上記(15)式、(16)式と同様の計算を行い、暗号化ピースを復号する。
<変形例10>
第1の実施の形態におけるピース暗号化方式は、ElGamal暗号方式が応用されているとみなすことができるが、これに限らず、「R. Cramer and V. Shoup, “A Practical Public Key Cryptosystem Provably Secure against Adaptive Chosen Ciphertext Attack,” Proc. CRYPTO'98, LNCS 1462, Springer-Verlag, pp.13-25, 1998」において開示されているCramer-Shoup暗号方式をピース暗号化方式に応用しても良い。
第1の実施の形態におけるピース暗号化方式は、ElGamal暗号方式が応用されているとみなすことができるが、これに限らず、「R. Cramer and V. Shoup, “A Practical Public Key Cryptosystem Provably Secure against Adaptive Chosen Ciphertext Attack,” Proc. CRYPTO'98, LNCS 1462, Springer-Verlag, pp.13-25, 1998」において開示されているCramer-Shoup暗号方式をピース暗号化方式に応用しても良い。
始めに、Cramer-Shoup暗号方式の概要を説明する。
(鍵生成)第1の実施の形態と同様に、素数p,qを生成する。Gqのランダムな要素g1、g2を選択し、秘密鍵x1、x2、y1、y2、z(全てZqの要素)を生成する。この秘密鍵に対応する公開鍵g1、g2、c、d、hを生成する。ここで、c、d、hは以下の(58)式〜(60)式により定義される。
(鍵生成)第1の実施の形態と同様に、素数p,qを生成する。Gqのランダムな要素g1、g2を選択し、秘密鍵x1、x2、y1、y2、z(全てZqの要素)を生成する。この秘密鍵に対応する公開鍵g1、g2、c、d、hを生成する。ここで、c、d、hは以下の(58)式〜(60)式により定義される。
次に、第1の実施の形態(ノード50からノード51A、ノード51Bへと暗号化ピースが配信され、ノード51Bが鍵サーバ53へ復号鍵を要求する例)にこれを当てはめた場合について説明する。鍵サーバ53は、各ノードの公開鍵g1、g2、ci、di、hi(=g1 zi)にそれぞれ対応する秘密鍵x1,i、x2,i、y1,i、y2,i、ziを知っている。ここで、ci、di、hiは以下の(69)式〜(71)式により表される。
各ノードには公開鍵g1、g2、ci、di、hiに加え、秘密鍵x1,i、x2,i、y1,i、y2,iもそれぞれ与えられる。暗号文u1、u2、e、vの中で、上記(2)式のC1,0がu1、u2、vに、上記(3)式のC2,0がeに対応するとみなすことができる。ノード51Aの公開鍵をg1、g2、c1、d1、h1と表記する。配信開始ノード50は、乱数r0を生成し、以下の(72)式〜(78)式により暗号化を行う。
ここで、u1,i、u2,i、ai、vi、ei、Yi、Kiとは、配信経路上でi番目に暗号化データの配信を仲介したノード51で計算されるデータを意味する。そして、i=0のときのデータu1,0、u2,0、a0、v0、e0、Y0、K0は、配信開始ノードであるノード50で計算されるデータを意味する。
尚、ノード50は、暗号化データをノード51Aに送信する際、自身のノードIDをノード51Aに送信しなくても良い。ノード51Bの公開鍵をg1、g2、c2、d2、h2と表記する。ノード51Aは、受信した暗号化データと自身の秘密鍵を用いて上記(67)式の検証を行う。検査に合格したら、乱数r1を生成し、以下の(79)式〜(85)式により暗号化を行う。検査に不合格の場合、暗号化データが無効である旨のメッセージを出して終了する。
ノード51Aは、暗号化データをノード51Bに送信する際、自身のノードIDをノード51Bに送信する。ノード51Bは、復号鍵要求メッセージを鍵サーバ53に送信する際、ノード51AのノードIDと自身のノードIDとをノードID列として鍵サーバ53に送信する。ノード51Bからu1,0、u1,1及びノードID列を受信した鍵サーバ53は、以下の(86)式、(87)式により復号鍵を計算し、復号鍵D、D’をノード51Bへ送信する。
ノード51Bは、u1,0、u1,1及びノードID列に加えてu2,1、e1、v1を鍵サーバ53に送信しても良い。この場合、鍵サーバ53においても上記(67)式の検証を行う。すなわち、鍵サーバ53は、受信した暗号化データとノード51Bの秘密鍵を用いて(67)式の検証を行う。検査に合格したら、復号鍵D、D’をノード51Bへ送信する。検査に不合格の場合、暗号化データが無効である旨のメッセージを出して終了する。ノード51Bにおける復号は以下の(88)式、(89)式により行われる。
<変形例11>
第1の実施の形態におけるピース暗号化方式は、ElGamal暗号方式が応用されているとみなすことができるが、これに限らず、RSA暗号方式をピース暗号化方式に応用しても良い。
第1の実施の形態におけるピース暗号化方式は、ElGamal暗号方式が応用されているとみなすことができるが、これに限らず、RSA暗号方式をピース暗号化方式に応用しても良い。
始めに、RSA暗号方式の概要を説明する。
(鍵生成)素数p,qを生成し、N=pqを計算する。次に、(p−1)(q−1)との最大公約数が1となるeをランダムに選択する。そして、edo1(mod (p−1)(q−1))となるdを計算する。ここで、aob(mod N)とは、整数a,bの差a−bが0または正整数Nの倍数であることを表す。公開鍵は(e,N)であり、それに対応する秘密鍵はdである。
(鍵生成)素数p,qを生成し、N=pqを計算する。次に、(p−1)(q−1)との最大公約数が1となるeをランダムに選択する。そして、edo1(mod (p−1)(q−1))となるdを計算する。ここで、aob(mod N)とは、整数a,bの差a−bが0または正整数Nの倍数であることを表す。公開鍵は(e,N)であり、それに対応する秘密鍵はdである。
次に、第1の実施の形態(ノード50からノード51A、ノード51Bへと暗号化ピースが配信され、ノード51Bが鍵サーバ53へ復号鍵を要求する例)にこれを当てはめた場合について説明する。各ノードに与えられえる公開鍵を(ei,N)とする。鍵サーバ53は、各ノードに与えられえる公開鍵に対応する秘密鍵di(eidio1(mod (p−1)(q−1)))を全て保持している。また、鍵サーバ53は、p,qの値を知っている。配信開始ノード50は、公開鍵e0を用いて、以下の(92)式によりmを暗号化する。ここで、Ciとは、配信経路上でi番目に暗号化データの配信を仲介したノード51で計算される暗号化ピースを意味する。そして、i=0のときの暗号化ピースC0は、配信開始ノードであるノード50で計算される暗号化ピースを意味する。
ノード51Aは、ノードID列「ID#0,ID#1」と暗号化ピースC1とをノード51Bに送信する。ノード51Bは、ノード51Aから受信したノードID列「ID#0,ID#1」を含む復号鍵要求メッセージを鍵サーバ53へ送信する。鍵サーバ53は、以下の(94)式により復号鍵Dを計算する。
<変形例12>
第1の実施の形態においては、鍵サーバ53が各ノードの公開鍵に対応する秘密鍵xiをそれぞれ保持する例を挙げたが、これに限らず、各ノードのノードID「ID#i」から秘密鍵xiを導出するようにして、導出アルゴリズム(例えば以下の(96)式で表される関数F)のみ記憶しておいても良い。
xi=F(ID#i, Kmaster) ・・・(96)
第1の実施の形態においては、鍵サーバ53が各ノードの公開鍵に対応する秘密鍵xiをそれぞれ保持する例を挙げたが、これに限らず、各ノードのノードID「ID#i」から秘密鍵xiを導出するようにして、導出アルゴリズム(例えば以下の(96)式で表される関数F)のみ記憶しておいても良い。
xi=F(ID#i, Kmaster) ・・・(96)
関数Fとしては、例えば、以下の(97)式、(98)式、及び(99)式のいずれを用いてもよい。上記(97)式、(98)式、及び(99)式では、xに「ID#i」が代入され、yに鍵サーバ53の秘密鍵「Kmaster」が代入される。
F(x,y)=H(x || y) ・・・(99)
(97)式のEは、暗号化関数を表し、E(Key)[X]は、XがKeyで暗号化されていることを表す。(98)式のDは、復号関数を表し、D(Key)[X]は、XがKeyで復号されていることを表す。つまり、‘C=D(Key)[E(Key)[C]]’である。(99)式のHは、ハッシュ関数を表し、||は、データの連結を表す。このようにすれば、鍵サーバ53において各ノードの公開鍵に対応する秘密鍵を記憶しておく必要がなくなり、鍵サーバ53での記憶容量を節約できる。
50,51,51A,51B ノード
53 鍵サーバ
500 固有情報格納部
501 乱数生成部
503 ピース暗号化部
504 ピース化部
505 データ送信部
506 送信要求受付部
510 固有情報格納部
511 乱数生成部
513 ピース暗号化部
514 データ受信部
515 データ送信部
516 送信要求受付部
517 データ格納部
518 送信要求送信部
519 鍵要求送信部
520 ピース復号部
530 秘密鍵格納部
531 データ受信部
532 復号鍵計算部
534 データ送信部
18521 復号鍵計算部
NT P2Pネットワーク
53 鍵サーバ
500 固有情報格納部
501 乱数生成部
503 ピース暗号化部
504 ピース化部
505 データ送信部
506 送信要求受付部
510 固有情報格納部
511 乱数生成部
513 ピース暗号化部
514 データ受信部
515 データ送信部
516 送信要求受付部
517 データ格納部
518 送信要求送信部
519 鍵要求送信部
520 ピース復号部
530 秘密鍵格納部
531 データ受信部
532 復号鍵計算部
534 データ送信部
18521 復号鍵計算部
NT P2Pネットワーク
Claims (18)
- データの一部であるピースを暗号化して送信する通信装置であって、
他の通信装置に割り当てられた第1暗号鍵によって暗号化されたピースである第1暗号化ピースと、前記他の通信装置を識別する第1装置識別情報と、を受信する受信手段と、
前記通信装置に割り当てられた第2暗号鍵を記憶する記憶手段と、
前記第2暗号鍵を用いて前記第1暗号化ピースを更に暗号化した第2暗号化ピースを生成する暗号化手段と、
前記第2暗号化ピースと、前記第1装置識別情報と、前記通信装置を識別する第2装置識別情報と、を送信する送信手段と、
を備えることを特徴とする通信装置。 - 前記第1暗号化ピースは、複数の暗号鍵で暗号化されたピースを、暗号化に用いた複数の前記暗号鍵それぞれに対応する複数の秘密情報に基づいて算出される予め定められた個数の復号鍵で復号可能な暗号方式で定められた前記第1暗号鍵によって暗号化されており、
前記記憶手段は、前記暗号方式で定められた前記第2暗号鍵を記憶すること、
を特徴とする請求項1に記載の通信装置。 - 前記受信手段は、前記第1暗号化ピースと、前記第1装置識別情報と、前記第1暗号化ピースを暗号化する際に当該他の通信装置によって算出された第1算出情報とを受信し、
その生成毎に異なり得る一時情報を生成し、前記一時情報に応じた値を有する第2算出情報を算出する算出手段をさらに備え、
前記暗号化手段は、前記一時情報と前記第2暗号鍵とを用いて前記第1暗号化ピースを更に暗号化した第2暗号化ピースを生成し、
前記送信手段は、前記第2暗号化ピースと、前記第1装置識別情報と、前記第2装置識別情報と、前記第1算出情報と、前記第2算出情報とを送信すること、
を特徴とする請求項1に記載の通信装置。 - 前記受信手段は、i個(iは1以上の自然数)の前記他の通信装置に割り当てられた前記第1暗号鍵yj(0≦j≦i−1)で暗号化された前記第1暗号化ピースC2,i-1と、前記第1装置識別情報と、前記第1算出情報C1,i-1と、を受信し、
前記記憶手段は、前記暗号方式で定められた前記第2暗号鍵yiを記憶し、
前記算出手段は、前記一時情報riを生成し、前記一時情報riに応じた値を有する前記第2算出情報C1,iを以下の(1)式により算出し、
前記暗号化手段は、前記一時情報riと前記第2暗号鍵yiとを用いて前記第1暗号化ピースC2,i-1を更に暗号化した前記第2暗号化ピースC2,iを以下の(2)式により生成すること、
を特徴とする請求項3に記載の通信装置。
- 前記受信手段は、i個(iは1以上の自然数)の前記他の通信装置に割り当てられた前記第1暗号鍵yj(0≦j≦i−1)で暗号化された前記第1暗号化ピースC2,i-1と、前記第1装置識別情報と、前記第1算出情報C1,i-1と、を受信し、
前記記憶手段は、前記暗号方式で定められた前記第2暗号鍵yiを記憶し、
前記算出手段は、前記一時情報riを生成し、前記一時情報riに応じた値を有する前記第2算出情報C1,iを以下の(3)式により算出し、
前記暗号化手段は、前記一時情報riと前記第2暗号鍵yiとを用いて前記第1暗号化ピースC2,i-1を更に暗号化した前記第2暗号化ピースC2,iを以下の(4)式により生成すること、
を特徴とする請求項3に記載の通信装置。
- 前記受信手段は、i個(iは1以上の自然数)の前記他の通信装置に割り当てられた前記第1暗号鍵yj(0≦j≦i−1)で暗号化された前記第1暗号化ピースC2,i-1と、前記第1装置識別情報と、前記第1算出情報C1,i-1と、を受信し、
前記記憶手段は、前記暗号方式で定められた前記第2暗号鍵yiを記憶し、
前記算出手段は、前記一時情報riを生成し、前記一時情報riに応じた値を有する前記第2算出情報C1,iを以下の(1)式により算出し、
前記暗号化手段は、前記一時情報riと前記第2暗号鍵yiとを用いて前記第1暗号化ピースC2,i-1を更に暗号化した前記第2暗号化ピースC2,iを以下の(2)式により生成すること、
を特徴とする請求項3に記載の通信装置。
- 前記受信手段は、i個(iは1以上の自然数)の前記他の通信装置に割り当てられた前記第1暗号鍵(g1,g2,cj,dj,hj)(0≦j≦i−1)で暗号化された前記第1暗号化ピースei-1と、前記第1装置識別情報と、前記第1算出情報(u1,i-1,u2,i-1,vi-1)と、を受信し、
前記記憶手段は、前記暗号方式で定められた前記第2暗号鍵(g1,g2,ci,di,hi)を記憶し、
前記暗号化手段は、前記一時情報riと前記第2暗号鍵(g1,g2,ci,di,hi)とを用いて前記第1暗号化ピースei-1を更に暗号化した前記第2暗号化ピースeiを以下の(7)式により生成し、
前記算出手段は、前記一時情報riを生成し、前記一時情報riに応じた値を有する前記第2算出情報(u1,i,u2,i,vi)を以下の(8)式〜(11)式により算出すること、
を特徴とする請求項3に記載の通信装置。
- 前記受信手段は、前記第1暗号鍵によって一部が暗号化された前記第1暗号化ピースと、前記第1装置識別情報と、を受信し、
前記暗号化手段は、前記第2暗号鍵を用いて、前記第1暗号化ピースのうち前記第1暗号鍵によって暗号化された部分を更に暗号化した前記第2暗号化ピースを生成すること、
を特徴とする請求項1に記載の通信装置。 - 前記受信手段は、前記第1暗号鍵によって暗号化された部分以外の部分が、前記暗号方式と異なる他の暗号方式によって暗号化された前記第1暗号化ピースと、前記第1装置識別情報と、を受信し、
前記暗号化手段は、前記第2暗号鍵を用いて、前記第1暗号化ピースのうち前記第1暗号鍵によって暗号化された部分を更に暗号化し、前記第1暗号化ピースのうち前記第1暗号鍵によって暗号化された部分以外の部分を前記他の暗号方式により更に暗号化した前記第2暗号化ピースを生成すること、
を特徴とする請求項9に記載の通信装置。 - 前記送信手段は、さらに、前記第1暗号化ピースを復号するための復号鍵を要求する、前記第1装置識別情報を含む鍵要求をサーバ装置へ送信し、
前記受信手段は、さらに、前記第1暗号化ピースを復号するための復号鍵を前記サーバ装置から受信し、
受信された前記復号鍵を用いて前記第1暗号化ピースを復号する復号手段をさらに備えたこと、
を特徴とする請求項1に記載の通信装置。 - 暗号化されたピースである暗号化ピースを復号するための復号鍵を要求する鍵要求であって、前記暗号化ピースの配信を仲介した前記通信装置の前記装置識別情報を含む前記鍵要求を前記通信装置から受信する受信手段と、
前記鍵要求に含まれる各前記装置識別情報を用いて前記復号鍵を生成する鍵生成手段と、
生成された前記復号鍵を、前記鍵要求を送信した前記通信装置に送信する送信手段と、
を備えることを特徴とするサーバ装置。 - データの一部であるピースを暗号化して送信する複数の通信装置のそれぞれに割り当てられた秘密情報と、前記通信装置それぞれに割り当てられた装置識別情報とを各々対応付けて記憶する記憶手段をさらに備え、
前記鍵生成手段は、前記鍵要求に含まれる各前記装置識別情報に対応付けられて記憶されている前記秘密情報を用いて前記復号鍵を生成すること、
を特徴とする請求項12に記載のサーバ装置。 - 前記暗号化ピースは、複数の暗号鍵で暗号化されたピースを、暗号化に用いた複数の暗号鍵それぞれに対応する複数の前記秘密情報に基づいて算出される予め定められた個数の前記復号鍵で復号可能な暗号方式で定められた暗号鍵によって暗号化されており、
前記鍵生成手段は、前記鍵要求に含まれる前記装置識別情報それぞれに対応付けられて記憶されている前記秘密情報を用いて前記個数の前記復号鍵を生成すること、
を特徴とする請求項12又は13に記載のサーバ装置。 - 前記受信手段は、その生成毎に異なり得る一時情報と前記通信装置に割り当てられた暗号鍵とに基づいて算出される算出情報をさらに含む前記鍵要求を前記通信装置から受信し、
前記鍵生成手段は、前記鍵要求に含まれる各前記装置識別情報に対応付けられて記憶されている前記秘密情報を用いて生成した前記復号鍵を、前記算出情報を用いて暗号化し、
前記送信手段は、暗号化した前記復号鍵を前記鍵要求を送信した前記通信装置に送信すること、
を特徴とする請求項12又は13に記載のサーバ装置。 - データの一部であるピースを暗号化して送信する通信装置で実行される通信方法であって、
受信手段が、他の通信装置に割り当てられた第1暗号鍵によって暗号化されたピースである第1暗号化ピースと、前記他の通信装置を識別する第1装置識別情報と、を受信する受信ステップと、
暗号化手段が、記憶手段に記憶された、前記通信装置に割り当てられた第2暗号鍵を用いて前記第1暗号化ピースを更に暗号化した第2暗号化ピースを生成する暗号化ステップと、
送信手段が、前記第2暗号化ピースと、前記第1装置識別情報と、前記通信装置を識別する第2装置識別情報と、を送信する送信ステップと、
を備えることを特徴とする通信方法。 - データの一部であるピースを暗号化して送信する通信装置を、
他の通信装置に割り当てられた第1暗号鍵によって暗号化されたピースである第1暗号化ピースと、前記他の通信装置を識別する第1装置識別情報と、を受信する受信手段と、
前記通信装置に割り当てられた第2暗号鍵を記憶する記憶手段と、
前記第2暗号鍵を用いて前記第1暗号化ピースを更に暗号化した第2暗号化ピースを生成する暗号化手段と、
前記第2暗号化ピースと、前記第1装置識別情報と、前記通信装置を識別する第2装置識別情報と、を送信する送信手段と、
として機能させるための通信プログラム。 - コンピュータを、
暗号化されたピースである暗号化ピースを復号するための復号鍵を要求する鍵要求であって、前記暗号化ピースの配信を仲介した前記通信装置の前記装置識別情報を含む前記鍵要求を前記通信装置から受信する受信手段と、
前記鍵要求に含まれる各前記装置識別情報を用いて前記復号鍵を生成する鍵生成手段と、
生成された前記復号鍵を、前記鍵要求を送信した前記通信装置に送信する送信手段と、
として機能させるための通信プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008316308A JP2010141620A (ja) | 2008-12-11 | 2008-12-11 | 通信装置、サーバ装置、通信方法、および通信プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008316308A JP2010141620A (ja) | 2008-12-11 | 2008-12-11 | 通信装置、サーバ装置、通信方法、および通信プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010141620A true JP2010141620A (ja) | 2010-06-24 |
Family
ID=42351348
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008316308A Pending JP2010141620A (ja) | 2008-12-11 | 2008-12-11 | 通信装置、サーバ装置、通信方法、および通信プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010141620A (ja) |
-
2008
- 2008-12-11 JP JP2008316308A patent/JP2010141620A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8429408B2 (en) | Masking the output of random number generators in key generation protocols | |
JP5422053B2 (ja) | 暗号システム、暗号通信方法、暗号化装置、鍵生成装置、復号装置、コンテンツサーバ装置、プログラム、記憶媒体 | |
JP2010161826A (ja) | 証明書に基づく暗号化および公開鍵構造基盤 | |
US9813386B2 (en) | Cooperation service providing system and server apparatus | |
WO2013145796A1 (ja) | 再暗号文検証プログラム、再暗号化装置及び再暗号化システム | |
JP6194886B2 (ja) | 暗号化統計処理システム、復号システム、鍵生成装置、プロキシ装置、暗号化統計データ生成装置、暗号化統計処理方法、および、暗号化統計処理プログラム | |
CN111953479B (zh) | 数据处理的方法及装置 | |
JP2006109107A (ja) | 署名生成方法、署名検証方法、公開鍵配布方法、及び情報処理装置 | |
JP2023101776A (ja) | データの高度なセキュリティ、高速暗号化および、伝送のためのコンピュータ実装システムおよび方法 | |
US20200235915A1 (en) | Computer-implemented system and method for highly secure, high speed encryption and transmission of data | |
JP2010124071A (ja) | 通信装置、通信方法及びプログラム | |
WO2010067660A1 (ja) | 通信装置、通信方法及びプログラム | |
KR101533950B1 (ko) | 브로드캐스트 암호화 방법 및 시스템 | |
JP6294882B2 (ja) | 鍵保管装置、鍵保管方法、及びそのプログラム | |
JP2009302861A (ja) | 暗号文復号権限委譲システム | |
JP4758110B2 (ja) | 通信システム、暗号化装置、鍵生成装置、鍵生成方法、復元装置、通信方法、暗号化方法、暗号復元方法 | |
CA2742530C (en) | Masking the output of random number generators in key generation protocols | |
JP2023505629A (ja) | 証明書なし認証の暗号化(clae)を用いる検証可能idベース暗号化(vibe)の方法及びシステム | |
JP4485122B2 (ja) | 公開鍵暗号システム,署名システム,暗号通信システム,秘密鍵生成器,公開鍵生成器及びコンピュータプログラム | |
JP5097102B2 (ja) | 階層型idベース暗号化装置及び復号化装置、それらの方法、プログラム及び記録媒体 | |
JP4213975B2 (ja) | 個人情報保護方法、商品発注端末及び商品受注サーバ、並びに、個人情報送信プログラム及び個人情報受信プログラム | |
JP2010113181A (ja) | 鍵管理方法、鍵生成方法、暗号処理方法、復号処理方法、アクセス管理方法、通信ネットワークシステム | |
JP4612027B2 (ja) | 署名システム | |
JP2010272899A (ja) | 鍵生成システム及び鍵生成方法及びブラインドサーバ装置及びプログラム | |
JP2010141620A (ja) | 通信装置、サーバ装置、通信方法、および通信プログラム |