JP2008042590A - 受信者装置及び送信者装置及び暗号通信システム及びプログラム - Google Patents
受信者装置及び送信者装置及び暗号通信システム及びプログラム Download PDFInfo
- Publication number
- JP2008042590A JP2008042590A JP2006215267A JP2006215267A JP2008042590A JP 2008042590 A JP2008042590 A JP 2008042590A JP 2006215267 A JP2006215267 A JP 2006215267A JP 2006215267 A JP2006215267 A JP 2006215267A JP 2008042590 A JP2008042590 A JP 2008042590A
- Authority
- JP
- Japan
- Prior art keywords
- information
- processing device
- input
- session key
- unit
- 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.)
- Granted
Links
Images
Abstract
【解決手段】暗号化セッション鍵受信部331は、加法群G1の要素Rを示す第四要素情報を含む暗号化セッション鍵C0を、送信者装置200から受信する。受信ペアリング値算出部333は、加法群G1の要素Rと、ユーザ秘密鍵情報が示す加法群G2の要素dIDとのペアリング値w’を算出する。セッション鍵復元部334は、第四要素情報と、ペアリング値w’を示す受信ペアリング値情報とを結合して生成したビット列情報を、ランダムオラクルとみなせる鍵導出関数Gに入力し、ハッシュ値を算出する。セッション鍵復元部334は、算出したハッシュ値に基づいて、送信者装置200が生成したセッション鍵と同一のセッション鍵Kを復元する。
【選択図】図6
Description
情報を記憶する記憶装置と、
情報を処理する処理装置と、
送信者装置が送信した情報を受信する受信装置と、
上記記憶装置を用いて、加法群G2の要素dIDを示す情報をユーザ秘密鍵情報として記憶する秘密鍵記憶部と、
上記受信装置を用いて、送信者装置が送信した暗号化セッション鍵を受信し、上記処理装置を用いて、受信した暗号化セッション鍵に含まれる加法群G1の要素Rを示す情報を第四要素情報として出力する暗号化セッション鍵受信部と、
上記処理装置を用いて、上記秘密鍵記憶部が記憶したユーザ秘密鍵情報と上記暗号化セッション鍵受信部が出力した第四要素情報とを入力し、上記処理装置を用いて、入力したユーザ秘密鍵情報と第四要素情報とに基づいて、加法群G1の要素Rと加法群G2の要素dIDとのペアリング値を算出して乗法群GTの要素w’とし、上記処理装置を用いて、算出した乗法群GTの要素w’を示す情報を受信ペアリング値情報として出力する受信ペアリング値算出部と、
上記処理装置を用いて、上記暗号化セッション鍵受信部が出力した第四要素情報と上記受信ペアリング値算出部が出力した受信ペアリング値情報とを入力し、上記処理装置を用いて、入力した第四要素情報と受信ペアリング値情報とに基づいて、ハッシュ値を算出し、上記処理装置を用いて、算出したハッシュ値に基づいて、送信者装置が生成したセッション鍵と同一のセッション鍵を復元するセッション鍵復元部と、
を有することを特徴とする。
なお、ここに示した楕円曲線の方程式は、標数が2でない場合の標準形であり、標数が2の場合の標準形は若干異なる。以下の説明は、すべての標数について適用可能であり、標数が2でない場合に限るものではない。
楕円曲線上の点A及び点Bが与えられたとき、点Aと点Bとを通る直線が、楕円曲線と交わる点をC(XC,YC)とすると、点(XC,−YC)を点Aと点Bとの和と定義する。なお、点Aと点Bとが同一の点である場合は、点A(=点B)における楕円曲線の接線が楕円曲線と交わる点を点Cとする。また、点Aと点Bとを通る直線が、点A(または点B)で楕円曲線と接する場合は、点A(または点B)を点Cとする。
楕円曲線上の点の加算は、コンピュータを用いて計算できることが知られている。
楕円曲線上の点Aのn倍が、nA=O(Oは、Y軸方向の無限遠点。)となるnのうち、最小のものを楕円曲線上の点Aの位数という。
また、楕円曲線上の点Aの位数のうち最大のものを、楕円曲線上の点がなす群の位数という。
以下の説明において「加法群」という場合、楕円曲線上の点がなす群だけでなく、一般の代数曲線に基づく加法群も含むものとする。
双線形ペアリング(Bilinear Pairing)とは、e(aP,bQ)=e(P,Q)ab(a,bは、自然数。)を満たすペアリングをいう。コンピュータを用いてペアリングの値(乗法群GTの要素)を計算できる双線形ペアリングとして、楕円曲線上の点についてのヴェイユ(Weil)ペアリング、テイト(Tate)ペアリングなどが知られている。
多くのIDベース公開鍵暗号方式は、BDH問題の困難性に基づく。
BDH問題の困難性を確保するには、加法群G1及びG2における離散対数問題の困難性と、乗法群GTにおける離散対数問題の困難性との双方を確保する必要がある。
なお、オラクルとは、特定の機能を有する入出力インターフェースのことをいう。すなわち、オラクルは、なんらかの値を入力し、入力した値に対してなんらかの処理を行い、その結果を出力する。BDH決定問題に答えるオラクル(以下、「BDH決定オラクル」という。)は、P1、aP1、bP1、P2、aP2、cP2、zを入力すると、z=e(P,Q)abcであるか否かを判定し、判定結果を(例えば「YES」「NO」として)出力する。
G−BDH問題などのギャップ問題の困難性を仮定することで、多くの暗号方式の安全性を証明することができる。
すなわち、攻撃者が、公開鍵や暗号文などの情報から秘密鍵や(暗号文を復号した)平文などの情報を得ることができると仮定すると、上記のような数学上の問題を解くことも可能となる。しかし、上記のような数学上の問題を解くことは極めて困難なので、背理法により、攻撃者が秘密鍵などの情報を得ることも極めて困難であるという結論に達する。
このように、暗号技術の安全性を、数学上の問題を解くことの困難性に基づいて証明することを、「安全性の帰着」という。
例えば、ある数学上の問題を理論上解くことができるとしても、その問題を解くアルゴリズムを現存するスーパーコンピュータに実行させて、答えを出すのに一万年かかるとすれば、その数学上の問題に帰着する暗号技術は安全であるといえる。
また、別の数学上の問題を解くアルゴリズムを現存するスーパーコンピュータに実行させて、答えを出すのに十万年かかるとすれば、その数学上の問題に帰着する暗号技術のほうが、更に安全であるといえる。
暗号を解読するために必要な計算量と、それが帰着する数学上の問題を解くために必要な計算量とが近い場合を、「帰着の効率が良い」という。
したがって、同じ数学上の問題に帰着する暗号方式であれば、帰着の効率が良い暗号方式のほうが、安全性が高いといえる。
対応する入力を知らなければ、出力から入力を求めることができないので、ランダムオラクルは、一方向性関数とも呼ばれる。
IND−ID−CCA(Indistinguishablity for ID−based KEM against adaptive chosen ciphertext attacks:IDベース暗号における適応的選択暗号文攻撃に対する暗号文識別不可能)安全性とは、攻撃者Aが、以下の攻撃シナリオに基づく攻撃をした場合における安全性をいう。
セットアップオラクルとは、IDベース公開鍵暗号の鍵生成パラメータを出力するオラクルである。
実際のIDベース公開鍵暗号方式では、秘密鍵生成装置が鍵生成パラメータを生成し、公開するので、攻撃者Aは、公開された情報から鍵生成パラメータを入手することが可能である。
鍵漏洩オラクルとは、IDを入力し、そのIDに対応するユーザ秘密鍵を出力するオラクルである。
実際のIDベース公開鍵暗号方式では、ユーザ秘密鍵は各ユーザが秘密裏に保管している。そこでは、複数の攻撃者が結託すれば、複数のIDについてのユーザ秘密鍵を入手することができる。したがって、攻撃者が任意のIDに対するユーザ秘密鍵を入手することができるという、もっとも厳しい条件での安全性を保証できれば、実際の環境での安全性はより高いものとなる。したがって、任意のIDに対するユーザ秘密鍵を入手できるという仮定での安全性を検討するものである。
復号オラクルとは、IDと、そのIDが示すユーザに対して送信される暗号文とを入力し、その暗号文を復号した平文を出力するオラクルである。
実際のIDベース公開鍵暗号方式では、暗号文がインターネットなどを流れている。したがって、攻撃者は暗号文を入手できる。暗号文を受信したユーザが復号した結果を、なんらかの手段で攻撃者が入手したとすると、攻撃者は、暗号文とそれを復号した復号結果の組を入手可能である。したがって、そのような厳しい条件での安全性を検討するものである。
なお、攻撃対象IDは、(2)でユーザ秘密鍵を入手したID以外のIDとする。
暗号化オラクルとは、攻撃対象IDを入力し、攻撃対象IDが示す受信者に対して情報を送信しようとする送信者が生成するセッション鍵と、受信者がそのセッション鍵をユーザ秘密鍵を用いて復元するための情報(以下「暗号化セッション鍵」という。)とを出力するオラクルである。ただし、暗号化オラクルは、1/2の確率で、正しく対応するセッション鍵と暗号化セッション鍵の対を出力するが、1/2の確率で、正しく対応しないセッション鍵と暗号化セッション鍵の対を出力する。
実際のIDベース公開鍵暗号方式では、送信者と受信者とがセッション鍵を共有するため、送信者が受信者に対して暗号化セッション鍵を送信する。したがって、攻撃者は暗号化セッション鍵を入手可能である。もし、攻撃者が、セッション鍵と暗号化セッション鍵とが正しく対応しているか否かを(確率的に)判定できるならば、その暗号方式は安全でないことになる。
ただし、鍵漏洩オラクルに対して、攻撃対象IDを入力してはならない。また、復号オラクルに対して、攻撃対象IDと(5)で暗号化オラクルが出力した暗号化セッション鍵との組を入力してもならない。そのような情報は、直接的な答えになってしまうからである。しかし、復号オラクルに対して、攻撃対象IDと他の暗号文との組を入力したり、他のIDと暗号化セッション鍵との組を入力したりすることは許される。
攻撃者Aがまったく暗号を解読できないとすると、攻撃者Aの判定した結果が正しい確率は1/2である。攻撃者Aが暗号を解読できる場合があれば、攻撃者Aの判定した結果が正しい確率は1/2を上回る。
そこで、攻撃者Aの判定した結果が正しい確率から1/2を減算したものを、攻撃者Aの優位性(Advantage)と呼ぶ。
ε(n)が、任意の多項式p(n)(ただし、最高次係数が正)に対して、n>n0であるすべてのnについてε(n)<1/p(n)となるn0が存在する場合に、「ε(n)は漸近的に無視できる(negligible)」という。
実施の形態1を、図1〜図23を用いて説明する。
なお、IDベース公開鍵暗号通信システム800は、暗号通信システムの一例である。
なお、ユーザ秘密鍵生成センタ100は、鍵生成装置の一例である。また、ユーザ秘密鍵生成センタ100は、秘密鍵生成装置(Private Key Generator。PKG)とも呼ばれる。
また、ユーザ秘密鍵生成センタ100は、受信者装置300のIDに基づいて、ユーザ秘密鍵情報を生成し、受信者装置300に対して秘密裡に通知する。
送信者装置200は、セッション鍵についての情報を含む暗号化セッション鍵情報を、受信者装置300に対して送信する。また、送信者装置200は、セッション鍵により暗号化した暗号文情報を、受信者装置300に対して送信する。
ユーザ秘密鍵生成センタ100及び送信者装置200及び受信者装置300は、システムユニット910、CRT(Cathode・Ray・Tube)やLCD(液晶)の表示画面を有する表示装置901、キーボード902(Key・Board:K/B)、マウス903、FDD904(Flexible・Disk・Drive)、コンパクトディスク装置905(CDD)、プリンタ装置906、スキャナ装置907などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。
システムユニット910は、コンピュータであり、ファクシミリ機932、電話器931とケーブルで接続され、また、ローカルエリアネットワーク942(LAN)、ゲートウェイ941を介してインターネット940に接続されている。
ユーザ秘密鍵生成センタ100及び送信者装置200及び受信者装置300は、プログラムを実行するCPU911(Central・Processing・Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、通信装置915、表示装置901、キーボード902、マウス903、FDD904、CDD905、プリンタ装置906、スキャナ装置907、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
通信装置915、キーボード902、スキャナ装置907、FDD904などは、入力部、入力装置の一例である。
また、通信装置915、表示装置901、プリンタ装置906などは、出力部、出力装置の一例である。
通信装置915は、送信装置の一例である。また、通信装置915は、受信装置の一例である。
磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。
ファイル群924には、以下に述べる実施の形態の説明において、「〜の判定結果」、「〜の計算結果」、「〜の処理結果」として説明する情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPUの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、以下に述べる実施の形態の説明において説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD(Digital・Versatile・Disc)等の記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
公開パラメータ生成部110は、第一要素選択部111、マスターキー選択部112、マスターキー記憶部113、第二要素算出部121、パラメータ公開部122を有する。
ユーザ秘密鍵生成部130は、識別情報取得部131、第三要素算出部132、秘密鍵算出部133、秘密鍵通知部134を有する。
加法群G1、加法群G2及び乗法群GTは、位数が同一の素数であるものとする。
加法群G1として、楕円曲線E上の点がなす群を用いる場合、楕円曲線Eには、DH問題を解くことが困難な楕円曲線を用いる。
ペアリング関数eには、例えば、テイトペアリングやヴェイユペアリングなど、双線形ペアリングを用いる。また、ペアリング関数eは、G−BDH問題を解くことが困難であるものとする。
鍵導出関数Gは、任意のビット列を入力し、入力したビット列に対応する(所定のビット長を有する)ビット列を出力する関数である。例えば、現在一般に使用されているSHA(Secure Hash Algorithm)−1などのハッシュ関数を用いて、鍵導出関数Gを構成する。のちに説明する安全性証明は、ランダムオラクルモデルという枠組みにおいて行われるものであり、鍵導出関数Gをランダムオラクルとみなして暗号方式の安全性を証明する。
変換関数Hは、任意のビット列を入力し、入力したビット列に対応する加法群G2の要素を出力する関数である。のちに説明する安全性証明では、変換関数Hもランダムオラクルとみなして暗号方式の安全性を証明する。
第一要素選択部111は、CPU911などの処理装置を用いて、選択した要素P1を示す情報を、第一要素情報として出力する。
マスターキー選択部112は、CPU911などの処理装置を用いて、選択した自然数sを示す情報を、マスターキー情報として出力する。
マスターキー記憶部113は、磁気ディスク装置920などの記憶装置を用いて、入力したマスターキー情報を記憶する。マスターキー情報が外部に漏れると、第三者がユーザ秘密鍵を生成できてしまうので、ユーザ秘密鍵生成センタ100は、マスターキー記憶部113が記憶したマスターキー情報が外部に漏れないよう、厳重に管理する。
第二要素算出部121は、CPU911などの処理装置を用いて、マスターキー記憶部113が記憶したマスターキー情報を入力する。
第二要素算出部121は、CPU911などの処理装置を用いて、入力した第一要素情報と、入力したマスターキー情報とに基づいて、加法群G1の要素Ppubを算出する。このとき、第二要素算出部121は、第一要素情報が示す加法群G1の要素P1と、マスターキー情報が示す自然数sとから、要素P1のs倍を計算し、加法群G1の要素Ppubとする。
ここで、加法群G1の要素Pのs倍とは、加法群G1の要素Pをs回加算した要素のことである。
第二要素算出部121は、CPU911などの処理装置を用いて、算出した加法群G1の要素Ppubを示す情報を、第二要素情報として出力する。
パラメータ公開部122は、CPU911などの処理装置を用いて、第二要素算出部121が出力した第二要素情報を入力する。
パラメータ公開部122は、CPU911などの処理装置を用いて、入力した第一要素情報と、入力した第二要素情報とを含む情報を、パラメータ情報として公開する。ここで、「公開する」とは、例えば、インターネットに接続したサーバ装置にパラメータ情報を記憶し、送信者装置200や受信者装置300の要求に応じてダウンロードできるようにしたり、送信者装置200や受信者装置300に対して、パラメータ情報を含む電子メールなどを送信したりすることである。
なお、パラメータ公開部122が公開するパラメータ情報には、上記のほか、加法群G1、加法群G2、乗法群GTを示す情報(例えば、楕円曲線Eの係数や位数)、ペアリング関数e:G1×G2→GT、鍵導出関数G、変換関数Hなどを示す情報が含まれる。
識別情報取得部131は、CPU911などの処理装置を用いて、取得したIDを示す情報を出力する。
受信者装置300のIDは、公開された情報であり、受信者装置300本人のものであることが明白なものであるから、識別情報取得部131は、必ずしも受信者装置300のIDを、受信者装置300自身から取得する必要はない。
第三要素算出部132は、CPU911などの処理装置を用いて、入力した受信者装置300のIDを示す情報に対応する加法群G2の要素QIDを算出する。このとき、第三要素算出部132は、パラメータ公開部122が公開した変換関数Hを用いて、受信者装置300のIDを示す情報を、加法群G2の要素QIDに変換する。
第三要素算出部132は、CPU911などの処理装置を用いて、算出した加法群G2の要素QIDを示す情報を、第三要素情報として出力する。
秘密鍵算出部133は、CPU911などの処理装置を用いて、マスターキー記憶部113が記憶したマスターキー情報を入力する。
秘密鍵算出部133は、CPU911などの処理装置を用いて、入力した第三要素情報と、入力したマスターキー情報とに基づいて、加法群G2の要素dIDを算出する。このとき、秘密鍵算出部133は、第三要素情報が示す加法群G2の要素QIDと、マスターキー情報が示す自然数sとから、要素QIDのs倍を計算し、加法群G2の要素dIDとする。
秘密鍵算出部133は、CPU911などの処理装置を用いて、算出した加法群G2の要素dIDを示す情報を、ユーザ秘密鍵情報として出力する。
秘密鍵通知部134は、CPU911などの処理装置を用いて、入力したユーザ秘密鍵情報を、受信者装置300に対して、秘密裡に通知する。
ユーザ秘密鍵情報が受信者装置300以外の第三者に漏れると、その第三者は、暗号化セッション鍵からセッション鍵を復元できてしまうので、ユーザ秘密鍵生成センタ100は、受信者装置300以外の第三者にユーザ秘密鍵情報が漏れないよう、安全な方法で受信者装置300にユーザ秘密鍵情報を通知する。
パラメータ取得部211は、CPU911などの処理装置を用いて、取得したパラメータ情報に含まれる第一要素情報と、第二要素情報とを出力する。
第一要素情報は、ユーザ秘密鍵生成センタ100が選択した加法群G1の要素P1を示す情報である。
第二要素情報は、ユーザ秘密鍵生成センタ100が算出した加法群G1の要素Ppubを示す情報である。
第一要素記憶部212は、磁気ディスク装置920などの記憶装置を用いて、入力した第一要素情報を記憶する。
第二要素記憶部213は、磁気ディスク装置920などの記憶装置を用いて、入力した第二要素情報を記憶する。
自然数選択部221は、CPU911などの処理装置を用いて、選択した自然数rを示す情報を、乱数情報として出力する。
自然数選択部221が選択する自然数rは、受信者装置300との通信に用いるセッション鍵を生成する原料になるものである。
第四要素算出部222は、CPU911などの処理装置を用いて、自然数選択部221が出力した乱数情報を入力する。
第四要素算出部222は、CPU911などの処理装置を用いて、入力した第一要素情報と、入力した乱数情報とに基づいて、加法群G1の要素Rを算出する。このとき、第四要素算出部222は、第一要素情報が示す加法群G1の要素P1と、乱数情報が示す自然数rとから、要素P1のr倍を計算し、加法群G1の要素Rとする。
第四要素算出部222は、CPU911などの処理装置を用いて、算出した加法群G1の要素Rを示す情報を、第四要素情報として出力する。
暗号化セッション鍵送信部223は、通信装置915を用いて、入力した第四要素情報を、暗号化セッション鍵C0として、受信者装置300に対して送信する。
したがって、攻撃者は、加法群G1の要素P1、Ppub(=sP1)、R(=rP1)を知ることができる。しかし、例えば、加法群G1が楕円曲線E上の点がなす群である場合、楕円曲線EはDH問題を解くことが困難な楕円曲線なので、攻撃者が、これらの情報から自然数sや自然数rを算出することは極めて困難である。
送信識別情報取得部231は、CPU911などの処理装置を用いて、取得した受信者装置300のIDを示す情報を出力する。
第五要素算出部232は、CPU911などの処理装置を用いて、入力した受信者装置300のIDを示す情報に対応する加法群G2の要素QIDを算出する。このとき、第五要素算出部232は、ユーザ秘密鍵生成センタ100が公開した変換関数Hを用いて、受信者装置300のIDを示す情報を、加法群G2の要素QIDに変換する。したがって、第五要素算出部232が算出する要素QIDは、ユーザ秘密鍵生成センタ100の第三要素算出部132が算出する要素QIDと同一である。
第五要素算出部232は、CPU911などの処理装置を用いて、算出した加法群G2の要素QIDを示す情報を、第五要素情報として出力する。
送信ペアリング値算出部233は、CPU911などの処理装置を用いて、第五要素算出部232が出力した第五要素情報を入力する。
送信ペアリング値算出部233は、CPU911などの処理装置を用いて、自然数選択部221が出力した乱数情報を入力する。
送信ペアリング値算出部233は、CPU911などの処理装置を用いて、入力した第二要素情報と、入力した第五要素情報と、入力した乱数情報とに基づいて、加法群G1の要素Ppubと、加法群G2の要素QIDとのペアリング値のr乗を算出して、乗法群GTの要素wとする。このとき、送信ペアリング値算出部233は、ユーザ秘密鍵生成センタ100が公開したペアリング関数e:G1×G2→GTを用いて、第二要素情報が示す加法群G1の要素Ppubと、第五要素情報が示す加法群G2の要素QIDと、乱数情報が示す自然数rとから、e(Ppub,QID)rを計算し、wとする。
送信ペアリング値算出部233は、CPU911などの処理装置を用いて、算出した乗法群GTの要素wを示す情報を、送信ペアリング値情報として出力する。
セッション鍵生成部234は、CPU911などの処理装置を用いて、送信ペアリング値算出部233が出力した送信ペアリング値情報を入力する。
セッション鍵生成部234は、CPU911などの処理装置を用いて、入力した第四要素情報と、入力した送信ペアリング値情報とに基づいて、ハッシュ値を算出する。このとき、セッション鍵生成部234は、ユーザ秘密鍵生成センタ100が公開した鍵導出関数Gを用いて、ハッシュ値を算出する。セッション鍵生成部234は、CPU911などの処理装置を用いて、第四要素情報と送信ペアリング値情報とを結合してビット列情報を生成し、生成したビット列情報を鍵導出関数Gの入力とする。
ここで情報Aと情報Bとの「結合」とは、情報Aを構成するビット列(ビット長a)と情報Bを構成するビット列(ビット長b)とをすべて含むビット列(ビット長a+b)を生成することである。例えば、情報Aを構成するビット列のあとに、情報Bを構成するビット列をつなげて、全体として1つのビット列を構成する。情報Aと情報Bの順序は逆でもよいし、情報Aのビットと情報Bのビットとを交互に並べてもよい。
セッション鍵生成部234は、CPU911などの処理装置を用いて、生成したセッション鍵Kを出力する。
セッション鍵生成部234が生成したセッション鍵Kは、受信者装置300との通信を暗号化するために用いるものである。
セッション鍵記憶部235は、磁気ディスク装置920などの記憶装置を用いて、入力したセッション鍵Kを記憶する。
暗号文生成部242は、CPU911などの処理装置を用いて、セッション鍵記憶部235が記憶したセッション鍵Kを入力する。
暗号文生成部242は、CPU911などの処理装置を用いて、入力した平文情報を、入力したセッション鍵Kで暗号化して、暗号文情報を生成する。
なお、暗号文生成部242が平文情報を暗号化する際に使用する暗号方式は、共通鍵暗号方式とする。例えば、暗号文生成部242は、CPU911などの処理装置を用いて、平文情報をセッション鍵Kと同じビット長のブロックに分割して平文ブロックとし、それぞれの平文ブロックとセッション鍵Kとのビットごとの排他的論理和を算出して暗号文ブロックとし、暗号文ブロックをすべて結合して暗号文情報を生成する。
暗号文生成部242は、CPU911などの処理装置を用いて、生成した暗号文情報を出力する。
暗号文送信部243は、通信装置915を用いて、入力した暗号文情報を、受信者装置300に対して送信する。
セッション鍵Kは、送信者装置200が外部に漏れないよう、厳重に保管する。したがって、攻撃者がセッション鍵Kを入手することはできない。攻撃者は、暗号化セッション鍵C0を入手することはできる。しかし、暗号化セッション鍵C0からセッション鍵Kを復元するには、ユーザ秘密鍵情報が必要なので、攻撃者が暗号化セッション鍵C0からセッション鍵Kを復元することもできない。したがって、攻撃者は暗号文を復号することができない。
秘密鍵取得部321は、磁気ディスク装置920などの記憶装置を用いて、ユーザ秘密鍵情報を記憶する。
ユーザ秘密鍵情報は、加法群G2の要素dIDを示す情報である。ユーザ秘密鍵情報は、暗号化セッション鍵C0からセッション鍵Kを復元するための情報なので、受信者装置300は、秘密鍵記憶部322が記憶したユーザ秘密鍵情報が外部に漏れないよう、厳重に保管する。
暗号化セッション鍵受信部331は、CPU911などの処理装置を用いて、受信した暗号化セッション鍵C0に含まれる第四要素情報を出力する。
第四要素情報は、加法群G1の要素Rを示す情報である。
受信ペアリング値算出部333は、CPU911などの処理装置を用いて、暗号化セッション鍵受信部331が出力した第四要素情報を入力する。
受信ペアリング値算出部333は、CPU911などの処理装置を用いて、入力したユーザ秘密鍵情報と、入力した第四要素情報とに基づいて、楕円曲線E上の点Rと、楕円曲線E上の点dIDとのペアリング値を算出して、乗法群GTの要素w’とする。このとき、受信ペアリング値算出部333は、ユーザ秘密鍵生成センタ100が公開したペアリング関数e:G1×G2→GTを用いて、第四要素情報が示す加法群G1の要素Rと、ユーザ秘密鍵情報が示す加法群G2の要素dIDとから、e(R,dID)を計算し、w’とする。
受信ペアリング値算出部333は、CPU911などの処理装置を用いて、算出した乗法群GTの要素w’を示す情報を、受信ペアリング値情報として出力する。
なぜなら、R=rP1、dID=sQIDであるから、w’=e(R,dID)=e(rP1,sQID)である。ペアリング関数e:G1×G2→GTは双線形なので、w’=e(P1,QID)rsである。
一方、Ppub=sP1であるから、w=e(Ppub,QID)r=e(sP1,QID)r=e(P1,QID)rsであり、w=w’となる。
セッション鍵復元部334は、CPU911などの処理装置を用いて、受信ペアリング値算出部333が出力した受信ペアリング値情報を入力する。
セッション鍵復元部334は、CPU911などの処理装置を用いて、入力した第四要素情報と、入力した受信ペアリング値情報とに基づいて、ハッシュ値を算出する。このとき、セッション鍵復元部334は、ユーザ秘密鍵生成センタ100が公開した鍵導出関数Gを用いて、ハッシュ値を算出する。セッション鍵生成部234は、CPU911などの処理装置を用いて、第四要素情報と受信ペアリング情報とを結合してビット列情報を生成し、生成したビット列情報を鍵導出関数Gの入力とする。
したがって、セッション鍵復元部334が鍵導出関数Gの入力として生成したビット列情報は、送信者装置200のセッション鍵生成部234が鍵導出関数Gの入力として生成したビット列情報と同一である。鍵導出関数Gは、同一の入力に対して常に同一の出力をする関数であるから、セッション鍵復元部334が算出したハッシュ値は、送信者装置200のセッション鍵生成部234が算出したハッシュ値と同一となる。
セッション鍵復元部334は、CPU911などの処理装置を用いて、復元したセッション鍵Kを出力する。
受信セッション鍵記憶部335は、磁気ディスク装置920などの記憶装置を用いて、入力したセッション鍵Kを記憶する。
暗号文受信部341は、CPU911などの処理装置を用いて、受信した暗号文情報を出力する。
暗号文復号部342は、CPU911などの処理装置を用いて、受信セッション鍵記憶部335が記憶したセッション鍵Kを入力する。
暗号文復号部342は、CPU911などの処理装置を用いて、入力した暗号文情報を、入力したセッション鍵Kで復号して、平文情報を生成する。例えば、暗号文復号部342は、CPU911などの処理装置を用いて、暗号文情報をセッション鍵Kと同じビット長のブロックに分割して暗号文ブロックとし、それぞれの暗号文ブロックとセッション鍵Kとのビットごとの排他的論理和を算出して平文ブロックとし、平文ブロックをすべて結合して平文情報を生成する。
暗号文復号部342は、CPU911などの処理装置を用いて、生成した平文情報を出力する。
パラメータ生成処理は、セットアップ(Setup)処理とも呼ばれる。
第一要素選択部111は、CPU911などの処理装置を用いて、選択した要素P1を示す情報を第一要素情報として出力する。
マスターキー選択部112は、CPU911などの処理装置を用いて、選択した自然数sを示す情報をマスターキー情報として出力する。
マスターキー記憶部113は、CPU911などの処理装置を用いて、マスターキー選択部112が出力したマスターキー情報を入力する。
マスターキー記憶部113は、磁気ディスク装置920などの記憶装置を用いて、入力したマスターキー情報を記憶する。
第二要素算出部121は、CPU911などの処理装置を用いて、入力した第一要素情報と、入力したマスターキー情報とに基づいて、要素Pのs倍を算出し、加法群G1の要素Ppubとする。
第二要素算出部121は、CPU911などの処理装置を用いて、算出した要素Ppubを示す情報を第二要素情報として出力する。
パラメータ公開部122は、CPU911などの処理装置を用いて、入力した第一要素情報と、入力した第二要素情報とを含むパラメータ情報を公開する。
秘密鍵生成処理は、エクストラクト(Extract)処理とも呼ばれる。
識別情報取得部131は、CPU911などの処理装置を用いて、取得した受信者装置300のIDを示す情報を出力する。
第三要素算出部132は、CPU911などの処理装置を用いて、入力した受信者装置300のIDを示す情報に対応する加法群G2の要素QIDを算出する。
第三要素算出部132は、CPU911などの処理装置を用いて、算出した加法群G2の要素QIDを示す情報を第三要素情報として出力する。
秘密鍵算出部133は、CPU911などの処理装置を用いて、入力した第三要素情報とマスターキー情報とに基づいて、加法群G2の要素QIDのs倍を算出し、加法群G2の要素dIDとする。
秘密鍵算出部133は、CPU911などの処理装置を用いて、算出した加法群G2の要素dIDを示す情報をユーザ秘密鍵情報として出力する。
秘密鍵通知部134は、CPU911などの処理装置を用いて、入力したユーザ秘密鍵情報を、受信者装置300に対して秘密裡に通知する。
セッション鍵生成処理は、エンカプスレイト(Encapsulate)処理とも呼ばれる。
パラメータ取得部211は、CPU911などの処理装置を用いて、取得したパラメータ情報に含まれる第一要素情報と第二要素情報とを出力する。
第一要素記憶部212は、CPU911などの処理装置を用いて、パラメータ取得部211が出力した第一要素情報を入力する。
第一要素記憶部212は、磁気ディスク装置920などの記憶装置を用いて、入力した第一要素情報を記憶する。
第二要素記憶部213は、CPU911などの処理装置を用いて、パラメータ取得部211が出力した第二要素情報を入力する。
第二要素記憶部213は、磁気ディスク装置920などの記憶装置を用いて、入力した第二要素情報を記憶する。
送信識別情報取得部231は、CPU911などの処理装置を用いて、取得した受信者装置300のIDを示す情報を出力する。
自然数選択部221は、CPU911などの処理装置を用いて、選択した自然数rを示す情報を乱数情報として出力する。
第四要素算出部222は、CPU911などの処理装置を用いて、入力した第一要素情報と、入力した乱数情報とに基づいて、加法群G1の要素P1のr倍を算出し、加法群G1の要素Rとする。
第四要素算出部222は、CPU911などの処理装置を用いて、算出した加法群G1の要素点Rを示す情報を第四要素情報として出力する。
第五要素算出部232は、CPU911などの処理装置を用いて、入力した受信者装置300のIDを示す情報に対応する加法群G2の要素QIDを算出する。
第五要素算出部232は、CPU911などの処理装置を用いて、算出した加法群G2の要素QIDを示す情報を第五要素情報として出力する。
送信ペアリング値算出部233は、CPU911などの処理装置を用いて、入力した第二要素情報と、入力した第五要素情報と、入力した乱数情報とに基づいて、加法群G1の要素Ppubと加法群G2の要素QIDとのペアリング値e(Ppub,QID)のr乗を算出し、乗法群GTの要素wとする。
送信ペアリング値算出部233は、CPU911などの処理装置を用いて、算出した乗法群GTの要素wを示す情報を、送信ペアリング値情報として出力する。
セッション鍵生成部234は、CPU911などの処理装置を用いて、入力した第四要素情報と、入力した送信ペアリング値情報とを結合してビット列情報を生成する。
セッション鍵生成部234は、CPU911などの処理装置を用いて、生成したビット列情報に対応するハッシュ値を算出し、セッション鍵Kとする。
セッション鍵生成部234は、CPU911などの処理装置を用いて、生成したセッション鍵Kを出力する。
セッション鍵記憶部235は、CPU911などの処理装置を用いて、セッション鍵生成部234が出力したセッション鍵Kを入力する。
セッション鍵記憶部235は、磁気ディスク装置920などの記憶装置を用いて、入力したセッション鍵Kを記憶する。
暗号化セッション鍵送信部223は、通信装置915を用いて、平文情報を通知したい受信者装置300に対して、入力した第四要素情報を、暗号化セッション鍵C0として送信する。
セッション鍵復元処理は、デカプスレイト(Decapsulate)処理とも呼ばれる。
秘密鍵取得部321は、CPU911などの処理装置を用いて、取得したユーザ秘密鍵情報を出力する。
秘密鍵記憶部322は、CPU911などの処理装置を用いて、秘密鍵取得部321が出力したユーザ秘密鍵情報を入力する。
秘密鍵記憶部322は、磁気ディスク装置920などの記憶装置を用いて、入力したユーザ秘密鍵情報を記憶する。
暗号化セッション鍵受信部331は、CPU911などの処理装置を用いて、受信した暗号化セッション鍵C0に含まれる第四要素情報を出力する。
受信ペアリング値算出部333は、CPU911などの処理装置を用いて、入力した第四要素情報と、入力したユーザ秘密鍵情報とに基づいて、加法群G1の要素Rと、加法群G2の要素dIDとのペアリング値e(R,dID)を算出し、乗法群GTの要素w’とする。
受信ペアリング値算出部333は、CPU911などの処理装置を用いて、算出した乗法群GTの要素w’を示す情報を受信ペアリング値情報として出力する。
第四要素情報が加法群G1の要素を示していないと判断した場合、受信ペアリング値算出部333は、CPU911などの処理装置を用いて、セッション鍵の復元に失敗したことを示す情報を出力し、セッション鍵復元処理を中断する。
セッション鍵復元部334は、CPU911などの処理装置を用いて、入力した第四要素情報と、入力した受信ペアリング値情報とを結合して、ビット列情報を生成する。
セッション鍵復元部334は、CPU911などの処理装置を用いて、生成したビット列情報に対応するハッシュ値を算出し、セッション鍵Kとする。
セッション鍵復元部334は、CPU911などの処理装置を用いて、復元したセッション鍵Kを出力する。
受信セッション鍵記憶部335は、CPU911などの処理装置を用いて、セッション鍵復元部334が出力したセッション鍵Kを入力する。
受信セッション鍵記憶部335は、磁気ディスク装置920などの記憶装置を用いて、入力したセッション鍵Kを記憶する。
攻撃者Aは、必要な回数だけ鍵漏洩オラクルを呼び出してよい。
攻撃者Aは、必要な回数だけ復号オラクルを呼び出してよい。
攻撃者Aが十分な情報を収集したと判断した場合は、A04へ進む。
攻撃者Aは、攻撃対象ID*を暗号化オラクルの入力として、暗号化オラクルを呼び出し、暗号化オラクルが出力したセッション鍵K†と暗号化セッション鍵c*とを取得する。
ただし、鍵漏洩オラクルに入力するIDは、攻撃対象ID*以外のIDとする。ユーザ秘密鍵情報があればセッション鍵を復元できるので、暗号を解読したことにはならないからである。
また、復号オラクルに入力するIDと暗号化セッション鍵cとは、攻撃対象ID*と暗号化セッション鍵c*との組み合わせ以外のものとする。復号オラクルが暗号化セッション鍵c*を復元したセッション鍵を取得したのでは、暗号を解読したことにならないからである。
ただし、攻撃対象ID*と他の暗号化セッション鍵との組み合わせや、他のIDと暗号化セッション鍵c*との組み合わせであれば、復号オラクルに入力してよいものとする。
鍵設定処理において、加法群G1の要素P1、加法群G1の位数n未満の自然数s、加法群G2の要素P2及びQをランダムに選択する。
加法群G1の要素Ppub=sP1、加法群G2の要素Qpub=sP2Q及びd=sQを算出する。
加法群G1の要素P1及びPpub、加法群G2の要素P2、Qpub及びQを公開する(パラメータ情報)。
加法群G2の要素dを秘密鍵として、通知する。
セッション鍵生成処理において、公開された加法群G1の要素P1及びPpub、加法群G2の要素P2、Qpub及びQを取得する。
加法群G1の位数n未満の自然数rをランダムに選択する。
加法群G1の要素R=rP1を算出し、暗号化セッション鍵cとして送信する。
加法群G1の要素Ppubと加法群G2の要素Qとのペアリング値e(Ppub,Q)のr乗を算出し、乗法群GTの要素wとする。
ハッシュ値G(c‖w)を算出し、セッション鍵Kとする。
セッション鍵復元処理において、公開された加法群G1の要素P1及びPpub、加法群G2の要素P2、Qpub及びQと、秘密鍵(加法群G2の要素d)とを取得する。
セッション鍵生成処理で送信された暗号化セッション鍵c(加法群G1の要素Rを示す情報)を受信する。
加法群G1の要素Rと加法群G2の要素dとのペアリング値e(R,d)を算出し、乗法群GTの要素w’とする。
ハッシュ値G(c‖w’)を算出し、セッション鍵Kとする。
したがって、セッション鍵生成処理で生成したセッション鍵と、セッション鍵復元処理で復元したセッション鍵とは同一である。
この場合のセットアップオラクルは、攻撃者Bからの要求を入力し、図13の非IDベース公開鍵暗号方式におけるパラメータ情報を出力するオラクルである。
この場合の復号オラクルは、暗号化セッション鍵cを入力し、秘密鍵dを用いて、入力した暗号化セッション鍵cから復元したセッション鍵Kを出力するオラクルである。
攻撃者Bが十分な情報を収集したと判断した場合は、B03へ進む。
この場合の暗号化オラクルは、攻撃者からの要求を入力し、図13の非IDベース公開鍵暗号方式におけるセッション鍵K†と暗号化セッション鍵c*とを出力するオラクルである。暗号化オラクルは、やはり、1/2の確率で、正しい組み合わせのセッション鍵K†と暗号化セッション鍵c*とを出力し、1/2の確率で、正しくない組み合わせのセッション鍵K†と暗号化セッション鍵c*とを出力する。
ただし、復号オラクルに入力する暗号化セッション鍵cは、暗号化セッション鍵c*以外とする。
攻撃者Bが十分な情報を収集したと判断した場合は、B05へ進む。
攻撃者Aは、セットアップオラクルなどのオラクルを呼び出し、暗号の解読を試みる。ここで、攻撃者Aがオラクルと思って呼び出すブラックボックスの中身は、実は攻撃者Bである。攻撃者Bは、自分が攻撃している非IDベース公開鍵暗号方式の解読に必要な情報を攻撃者Aから引き出すための問題を設定し、攻撃者Aに攻撃される(この実施の形態における)暗号方式をシミュレートする。
攻撃者Aが、攻撃者Bにとって望ましくない方向へ進んだ場合、攻撃者Bは、攻撃者Aから情報を得るのを断念する。それ以外の場合は、攻撃者Aが判定結果を出力し、攻撃者Bが取得する。
攻撃者Aは様々なオラクルを何回も呼び出すので、攻撃者Bは、それにしたがって、様々なオラクルのシミュレートを繰り返す。
攻撃者Bは、攻撃者Aが呼び出したオラクルの入力に基づいて、攻撃者Aの判定結果などが、攻撃者Bにとって必要な情報となり得るか否かを判断する。
攻撃者Bが攻撃者Aから必要な情報を取得し得ないと判断した場合、B16へ進む。
その後、B17へ進む。
これは、図16のB14に相当する処理である。
攻撃者Aが呼び出したオラクルが、セットアップオラクルである場合、B21へ進む。
攻撃者Bは、非IDベース公開鍵暗号方式を攻撃するために必要な情報を攻撃者Aから取得できるように、攻撃者Aが攻撃する(この実施の形態の)暗号方式のパラメータを設定する。
攻撃者Aが攻撃する暗号に使用する加法群G1、加法群G2、乗法群GT、ペアリング関数e:G1×G2→GTは、攻撃者Bが攻撃する非IDベース公開鍵暗号方式で使用するものと同一のものである。
攻撃者Aが攻撃する暗号に使用する加法群G1の要素P1及びPpubは、攻撃者BがB11で取得したパラメータ情報が示す加法群G1の要素P1及びPpubと同一である。
攻撃者Aが攻撃する暗号に使用する鍵導出関数Gは、やはり、攻撃者Bが攻撃する非IDベース公開鍵暗号方式で使用するものと同一のものである。
なお、以下の議論において、鍵導出関数G及び変換関数Hは、ランダムオラクルであるものとする。攻撃者Aは、鍵導出関数G及び変換関数Hの値が必要な場合、攻撃者Bがシミュレートしているランダムオラクルを呼び出すことにより、鍵導出関数Gや変換関数Hの値を取得する。
攻撃者Bは、非IDベース公開鍵暗号方式のランダムオラクルの出力を取得する。
攻撃者Aが攻撃する暗号方式の鍵導出関数Gは、攻撃者Bが攻撃する非IDベース公開鍵暗号方式の鍵導出関数Gと同一なので、攻撃者Bは、非IDベース公開鍵暗号方式のランダムオラクルを呼び出すことにより、ランダムオラクルGの出力を取得する。
攻撃者Bは、攻撃者Aに対してランダムオラクルHとして答えた出力をリストHlistに記憶しておく。攻撃者Bは、リストHlistに基づいて、B41で入力した情報が示すIDが新しいか古いかを判断する。
古いIDであると判断した場合、B43へ進む。
新しいIDであると判断した場合、B44へ進む。
攻撃者Bは、あらかじめ、ランダムオラクルHが呼ばれる回数の上限qH以下の自然数jをランダムに選択しておく。
ランダムオラクルHが呼ばれたのがj回目でないと判断した場合、B45へ進む。
ランダムオラクルHが呼ばれたのがj回目であると判断した場合、B46へ進む。
攻撃者Bは、B11で取得したパラメータ情報が示す加法群G2の要素P2と、選択した自然数biとから、加法群G2の要素P2のbi倍を算出し、加法群G2の要素Qi(=biP2)とする。
攻撃者Bは、ランダムオラクルHの出力として、攻撃者Aに対して、算出した加法群G2の要素Qiを示す情報を出力する。
攻撃者Bは、B41で入力した情報が示すID、算出した加法群G2の要素Qi、選択した自然数biの組(ID,Qi,bi)を示す情報をリストHlistに追加して、記憶する。
なお、組(ID,Qi,bi)は、ランダムオラクルHの入力として、一番目の値「ID」を入力した場合に、ランダムオラクルHの出力として、二番目の値「Qi」を出力したことを示す。また、三番目の値「bi」は、二番目の値「Qi」が、B11で取得したパラメータ情報が示す加法群G2の要素P2のbi倍であることを示す。
攻撃者Bは、B41で入力した情報が示すID、出力した加法群G2の要素Q、「*」の組(ID,Q,*)を示す情報をリストHlistに追加して、記憶する。
ここで、組(ID,Q,*)の三番目の値「*」のところには、本来、二番目の値である加法群G2の要素Qが、B11で取得したパラメータ情報が示す加法群G2の要素P2の何倍であるかを示す自然数(B45におけるbi)を記憶すべきである。しかし、攻撃者Bは、加法群G2の要素Qが加法群G2の要素P2の何倍であるかを知らないので、不明であることを示す印として「*」を記憶する。「*」は、B45で記憶するbiとして有り得ない数値(例えば、0)であってもよい。
これは、図17と同様に、図16のB14に相当する処理である。
攻撃者Bは、リストHlistに基づいて、B51で入力した情報が示すIDに対応する組(ID,QID,bID)を取得する。
bIDが「*」でないと判断した場合、B54へ進む。
bIDが「*」であると判断した場合、オラクルシミュレート処理を中断し、図16のB16へ進む。
攻撃者Bは、鍵漏洩オラクルの出力として、攻撃者Aに対して、算出した加法群G2の要素dID(ユーザ秘密鍵)を出力する。
その後、鍵漏洩オラクルのシミュレート処理を終了し、攻撃者Aが次のオラクルを呼び出すのを待つ。
したがって、攻撃者Bが、あるIDについて、ランダムオラクルHとして出力した加法群G2の要素QIDと、鍵漏洩オラクルとして出力した加法群G2の要素dIDとの間には、dID=sQIDという関係がある(∵QID=bIDP2、dID=bIDQpub=bIDsP2)。
すなわち、攻撃者Bは、非IDベース公開鍵暗号方式のマスターキーである自然数sを知らされていないが、攻撃者Aが攻撃する暗号のマスターキーとして、攻撃者B自身が知らない自然数sを設定していることになる。
攻撃者Bは、リストHlistに基づいて、B61で入力した情報が示すIDに対応する組(ID,QID,bID)を取得する。
bIDが「*」でないと判断した場合、B64へ進む。
bIDが「*」であると判断した場合、B65へ進む。
攻撃者Bは、B61で入力した暗号化セッション鍵cを、算出したユーザ秘密鍵dIDで復号し、復号結果とする。
その後、B66へ進む。
攻撃者Bは、非IDベース公開鍵暗号方式の復号オラクルの出力を取得し、復号結果とする。
攻撃者Bは、自然数sを知らないが、bIDが「*」でない場合には、ユーザ秘密鍵dIDを算出できるので、これを用いて、暗号化セッション鍵cを復号する。
bIDが「*」である場合、攻撃者Bは、ユーザ秘密鍵dID(=sQ)を算出できないが、この場合のユーザ秘密鍵dIDは、攻撃者Bが攻撃する非IDベース公開鍵暗号方式の秘密鍵dと同じである(図13の鍵設定処理参照)。
したがって、攻撃者Bは、非IDベース公開鍵暗号方式の復号オラクルを呼び出すことにより、暗号化セッション鍵cを復号した復号結果を取得し、攻撃者Aに対して出力することができる。
攻撃者Bは、リストHlistに基づいて、B71で入力した情報が示すID*に対応する組(ID*,QID *,bID *)を取得する。
bID *が「*」であると判断した場合、B74へ進む。
bID *が「*」でないと判断した場合、オラクルシミュレート処理を中断し、図16のB16へ進む。
その後、暗号化オラクルのシミュレート処理を終了し、攻撃者Aが次のオラクルを呼び出すのを待つ。
攻撃者Bは、これに対しても同様に、オラクルシミュレート処理を行い、オラクルとしての出力を、攻撃者Aに対して、出力する。
攻撃者Bは、取得した判定結果をそのまま出力する(図16のB15)。
攻撃者Bは、攻撃者AがランダムオラクルHや復号オラクルに入力した情報が示すIDに対応する加法群G2の要素QIDのうちの1つに、非IDベース公開鍵暗号方式のパラメータである加法群G2の要素Qを割り当てる。
攻撃者Bは、攻撃者Aが攻撃する暗号方式のマスターキーを、上述したように自然数sに設定しているので、点Qを割り当てたIDに対応するユーザ秘密鍵dIDは、sQである。
また、攻撃者Bは、点Qを割り当てたIDに対応するユーザ秘密鍵dIDを算出することができないので、そもそもオラクルシミュレート処理を続けることができない。
そこで、攻撃者Bはオラクルシミュレート処理を中断する(図18のB53で「bID=*」の場合)。
そこで、この場合も、攻撃者Bはオラクルシミュレート処理を中断する(図18のB73で「bID *≠*」の場合)。
攻撃者が実際の暗号システムを攻撃する場合について考えると、ランダムオラクルHの出力を得る関数は、パラメータ情報として公開されているので、攻撃者は、何回でもランダムオラクルHを呼び出すことができる。これに対し、鍵漏洩オラクルは、例えば、複数の攻撃者が結託して複数のユーザ秘密鍵を入手した場合に相当するものであるから、攻撃者が鍵漏洩オラクルを呼び出す回数は、ランダムオラクルHを呼び出す回数と比較して、極めて少ない。
そこで、qE≪qHであるものとする。
σは、qE’が大きければ大きいほど小さくなる。また、2qE’<qH’である場合、σは、qHが大きければ大きいほど小さくなる。
したがって、σ≧1/qH・(1−qE/qH)である。
解答者Cは、与えられたG−BDH問題のパラメータとして、加法群G1の要素P1、P1 *(=a0P1)及びP1 **(=b0P1)、加法群G2の要素P2、P2 *(=a0P2)、Q2(=c0P2)を取得する。ただし、解答者Cには、a0、b0、c0は知らされない。
解答者Cの目標は、ペアリング値e(P1,P2)a 0 b 0 c 0を出力することである。
解答者Cは、攻撃者Bの攻撃を受ける非IDベース公開鍵暗号方式のオラクルをシミュレートして、攻撃者Bから情報を収集する。
解答者Cは、ペアリング値e(P1,P2)a 0 b 0 c 0の候補となる値が見つかった場合、BDH決定オラクルを呼び出して、その候補値が正解であるか否かを判断させる。
解答者Cは、BDH決定オラクルが正解であると判断した場合に、その候補値を、解答者Cに与えられたG−BDH問題に対する解答として出力する。
あるいは、攻撃者Bと解答者Cとを含む全体(図の破線で示したブロック)を、攻撃者Aを利用してG−BDH問題に回答する解答者と考えてもよい。
解答者Cは、BDH決定オラクルを呼び出して、w=e(P1,P2)a 0 b 0 c 0であるか否かの判定結果を取得する。
BDH決定オラクルが、w=e(P1,P2)a 0 b 0 c 0であると判定した場合は、C15へ進む。
BDH決定オラクルが、w≠e(P1,P2)a 0 b 0 c 0であると判定した場合は、C13に戻る。
これは、図20のC13に相当する処理である。
攻撃者Bが呼び出したオラクルが、セットアップオラクルである場合、C21へ進む。
解答者Cは、与えられたG−BDH問題に解答するために必要な情報を攻撃者Bから取得できるように、攻撃者Bが攻撃する非IDベース公開鍵暗号方式のパラメータを設定する。
非IDベース公開鍵暗号方式のパラメータである加法群G1の要素P1は、与えられたG−BDH問題における加法群G1の要素P1である。
非IDベース公開鍵暗号方式のパラメータである加法群G1の要素Ppubは、与えられたG−BDH問題における加法群G1の要素P1 *である。
非IDベース公開鍵暗号方式のパラメータである加法群G2の要素P2は、与えられたG−BDH問題における加法群G2の要素P2である。
非IDベース公開鍵暗号方式のパラメータである加法群G2の要素Qpubは、与えられたG−BDH問題における加法群G2の要素P2 *である。
非IDベース公開鍵暗号方式のパラメータである加法群G2の要素Qは、与えられたG−BDH問題における加法群G2の要素Q2である。
すなわち、解答者Cは、与えられたG−BDH問題の6つのパラメータのうち5つを、非IDベース公開鍵暗号方式のパラメータとして、攻撃者Bに渡す。
なお、解答者Cは、C11で入力したG−BDH問題のパラメータである加法群G1の要素P1 **を示す情報を含む情報を、暗号化セッション鍵c*として出力する。
これは、図20のC13に相当する処理である。
暗号化セッション鍵cは、加法群G1の要素Rを示す情報(第四要素情報)を含む。また、ペアリング値wは、乗法群GTの要素である。
解答者Cは、リストν1を検索し、C41で入力した(c,w)について、それまでに同じ(c,w)を入力したことがあるか否かを判断する。
同じ(c,w)を入力したことがある場合、リストν1から、その入力(c,w)に対して出力したKを取得し、C50へ進む。
同じ(c,w)を入力したことがない場合、C43へ進む。
なお、P1、P1 *、P2、P2 *、Q2は、図20のC11で解答者Cが入力したG−BDH問題のパラメータである。Rは、C41で入力した暗号化セッション鍵cに含まれる情報(第四要素情報)が示す加法群G1の要素である。wは、C41で入力した情報が示すペアリング値(乗法群GTの要素)である。
ここで、解答者Cに与えられたG−BDH問題のパラメータと、解答者CがBDH決定オラクルに入力するパラメータとの違いは、P1 **がRになっている点である。したがって、R=P1 **であれば、BDH決定オラクルは、wが解答者Cが答えるべきペアリング値であるか否かを判定することになる。
また、P1 *=Ppub(=sP1)、R=rP1、P2 *=Qpub(=sP2)であるから、BDH決定オラクルは、w=e(P1,Q)srであるか否かを判定することになる(∵Q=c0P2だから、ペアリングeの双線形より、e(P1,P2)src 0=e(P1,c0P2)sr=e(P1,Q)sr)。
解答者Cは、BDH決定オラクルが出力した判定結果を取得する。
BDH決定オラクルが、w=e(P1,Q)srであると判定した場合には、C44へ進む。
BDH決定オラクルが、w≠e(P1,Q)srであると判定した場合には、C48へ進む。
c=c*であると判断した場合、C45へ進む。
c≠c*であると判断した場合、C46へ進む。
したがって、ペアリング値wは、解答者Cに対して与えられたG−BDH問題の解答となる。
解答者Cは、リストν3を検索し、C41で入力した暗号化セッション鍵cについて、それまでに復号オラクルが同じ暗号化セッション鍵cを入力したことがあるか否かを判断する。
復号オラクルが同じ暗号化セッション鍵cを入力したことがあると判断した場合、解答者Cは、復号オラクルがその入力cに対して出力したセッション鍵Kを、リストν3から取得し、C49へ進む。
復号オラクルが同じ暗号化セッション鍵cを入力したことがないと判断した場合、C48へ進む。
したがって、以前に入力したことがある(c,w)の組については、それに対応して出力したセッション鍵Kをリストν1に記憶しておき、同じセッション鍵Kを出力する。
ここで、c,wの組み合わせが正しい場合とは、暗号化セッション鍵cに含まれる情報が示す加法群G1の要素Rに基づいて算出したペアリング値e(R,d)(ただし、dは非IDベース公開鍵暗号方式の秘密鍵)がwと等しい場合のことである。
したがって、以前に復号オラクルが入力したことがある暗号化セッション鍵cについては、それに対応して復号オラクルが出力したKをリストν3に記憶しておき、BDH決定オラクルがw=e(P1,Q)srであると判定した場合、同じセッション鍵Kを出力する。
暗号化セッション鍵cは、加法群G1の要素Rを示す情報(第四要素情報)を含む。
等しい場合、解答者Cは、G−BDH問題に対する解答に失敗したものとして、処理を打ち切る。
等しくない場合、C53へ進む。
解答者Cは、リストν2を検索し、C51で入力した暗号化セッション鍵cについて、正しい組み合わせの(c,w)を、それまでにランダムオラクルが入力したことがあるか否かを判断する。
ランダムオラクルが正しい組み合わせの(c,w)を入力したことがある場合、解答者Cは、更にリストν1を検索し、正しい組み合わせの(c,w)に対して、ランダムオラクルが出力したセッション鍵Kを取得し、C57へ進む。
ランダムオラクルが正しい組み合わせの(c,w)を入力したことがない場合、C54へ進む。
解答者Cは、リストν3を検索し、C51で入力した暗号化セッション鍵cについて、それまでに復号オラクルが同じ暗号化セッション鍵cを入力したことがあるか否かを判断する。
復号オラクルが同じ暗号化セッション鍵cを入力したことがない場合、C55へ進む。
復号オラクルが同じ暗号化セッション鍵cを入力したことがある場合、解答者Cは、リストν3から、その入力cに対応して出力したセッション鍵Kを取得し、C57へ進む。
そのため、ランダムオラクルが入力した正しい組み合わせの(c,w)をリストν2に記憶しておく。それに対応してランダムオラクルが出力したセッション鍵Kはリストν1に記憶しておき、同じセッション鍵Kを出力する。
攻撃者Bがこの判断をするためには、復号オラクルによらず、独自に暗号化セッション鍵c*を復号したセッション鍵K*を、なんらかの形で入手する必要がある。
セッション鍵K*は、鍵導出関数G(ランダムオラクル)の出力であるから、セッション鍵K*を入手するためには、ランダムオラクルに正しい値を入力する必要がある。
ランダムオラクルには、暗号化セッション鍵c*と、c*に正しく対応するペアリング値w*とを入力する。
このうち、暗号化セッション鍵c*は、暗号化オラクルから与えられるものであるが、ペアリング値w*は、攻撃者Bが独自に生成する必要がある。
解答者Cは、攻撃者Bがランダムオラクルに入力するc、wを監視し、暗号化セッション鍵c*を入力した場合に、wがc*に正しく対応するもの(=w*)であるか否かを、BDH決定オラクルを使って判断する。
解答者Cは、攻撃者Bがc*に正しく対応するw*をランダムオラクルに入力した場合に、それをG−BDH問題に対する解答として出力する。
攻撃者Bがc*に正しく対応するwをランダムオラクルに入力せず、判定結果を出力した場合、解答者Cの目論見は失敗し、解答者Cは、与えられたG−BDH問題に対する解答を、攻撃者Bから取得することができない。その場合、解答者Cは、攻撃者Bの助けなしで、与えられたG−BDH問題に対する解答を見つける必要がある。
また、解答者Cが、攻撃者Bの助けなしで、正解を見つける確率をε0とする。
解答者Cが、与えられたG−BDH問題に正しく解答する確率を、G−BDH問題に対する解答者Cの優位性AdvC G−BDHと定義すると、AdvC G−BDH=Pr[F2]+ε0≧Pr[F2](∵ε0≧0)である。
したがって、事象T1が発生する確率Pr[T1]は、事象F2が発生し、かつ、攻撃者Bの判定結果が正解である確率(Pr[F2∧T1])と、事象F2が発生せず、攻撃者Bの判定結果が正解である確率(Pr[¬F2∧T1]=Pr[T2])との和である(Pr[T1]=Pr[F2∧T1]+Pr[T2])。
この事象をF1とし、F1が発生する確率をPr[F1]とする。
攻撃者Bが復号オラクルを呼び出すのは、攻撃者Aが復号オラクルを呼び出した場合のうち「bID=*」である場合(図18のB65)なので、攻撃者Aが復号オラクルを呼び出す回数の最大値をqDとすると、qD’≦qDである。したがって、Pr[F1]≦qD/nである。
したがって、事象T0が発生する確率Pr[T0]は、事象F1が発生し、かつ、攻撃者Bの判定結果が正解である確率(Pr[F1∧T0])と、事象F1が発生せず、攻撃者Bの判定結果が正解である確率(Pr[¬F1∧T0]=Pr[T1])との和である(Pr[T0]=Pr[F1∧T0]+Pr[T1])。
qE≪qHなので、AdvC G−BDH≧ε/qH−qD/n。
この実施の形態における暗号方式に対する攻撃者の優位性は、qH(AdvC G−BDH+qD/n)以下である。
攻撃者A’の構成・動作は、ランダムオラクルGに入力するのが、ペアリング値wを示す情報だけである点を除けば、上述した攻撃者Aと同様である。
攻撃者B’の構成・動作は、ランダムオラクルGのシミューレート処理において、攻撃者A’から入力するのが、ペアリング値wを示す情報だけである点と、呼び出すランダムオラクルに入力するのが、ペアリング値wを示す情報だけである点との2つの点が、攻撃者Bと異なる。
しかし、攻撃者B(攻撃者B’)は、攻撃者A(攻撃者A’)が呼び出したランダムオラクルGの入力をそのまま、ランダムオラクルの入力として呼び出し、ランダムオラクルの出力をそのまま、ランダムオラクルGの出力として攻撃者A(攻撃者A’)に返すので、攻撃者Bと攻撃者B’との間に実質的な違いはない。
解答者C’の構成・動作は、ランダムオラクルをシミュレートするオラクルシミュレート処理を除き、解答者Cと同様である。
解答者C’は、リストν1’を検索し、C41’で入力したwについて、それまでに同じwを入力したことがあるか否かを判断する。
同じwを入力したことがある場合、リストν1から、その入力wに対して出力したKを取得し、C49’へ進む。
同じwを入力したことがない場合、C43’へ進む。
なお、P1、P1 *、P1 **、P2、P2 *、Q2は、解答者C’に与えられたG−BDH問題のパラメータである。したがって、BDH決定オラクルは、wが解答者Cの答えるべきペアリング値であるか否かを判定し、判定結果を出力する。
BDH決定オラクルが、wが解答者C’の答えるべきペアリング値であると判定した場合、C44’へ進む。
BDH決定オラクルが、wが解答者C’の答えるべきペアリング値でないと判定した場合、C45’へ進む。
リストν3’は、解答者C’が、復号オラクルのシミュレート処理において、それまでに入力した暗号化セッション鍵cと、その入力cに対して出力したセッション鍵Kとの対応関係を示すものである。
ここで、Rは、暗号化セッション鍵cに含まれる情報が示す加法群G1の要素である。したがって、BDH決定オラクルは、w=e(P1,Q)srであるか否かを判定する。すなわち、cとwとが正しく対応するものであるか否かを判定する。
BDH決定オラクルは、判定結果を出力する。
BDH決定オラクルが、w=e(P1,Q)srであると判定した場合、解答者C’は、復号オラクルがその入力cに対して出力したセッション鍵Kを、リストν3’から取得し、繰り返し処理から抜けて、C48’へ進む。
BDH決定オラクルが、w≠e(P1,Q)srであると判定した場合、C45’に戻る。
なお、リストν3に含まれるすべての組(c,K)について処理した場合には、C47’へ進む。
したがって、以前に入力したことがあるwについては、それに対応して出力したセッション鍵Kをリストν1’に記憶しておき、同じセッション鍵Kを出力する。
そこで、それまでに復号オラクルに入力したことがあるcについては、それに対応して復号オラクルが出力したKを、リストν3に記憶しておく。解答者C’は、BDH決定オラクルを用いて、入力したcと正しい組み合わせになるwを、以前に復号オラクルが入力したことがあるか否かを判定し、ある場合には、復号オラクルが出力したセッション鍵Kと同一のセッション鍵Kを出力する。
したがって、解答者CがBDH決定オラクルを呼び出す回数qCは、qC≦qG(ただし、qGは、攻撃者AがランダムオラクルGを呼び出す回数の最大値)である。
解答者C’は、攻撃者B’がランダムオラクルを1回呼び出したのに対応して、BDH決定オラクルを、最大qD’回呼び出す。ここで、qD’は、攻撃者B’が復号オラクルに対して入力する暗号化セッション鍵の総数であり、リストν3に含まれる組(c,K)の最大数である。
したがって、解答者C’がBDH決定オラクルを呼び出す回数qC’は、qC’≦qG・qD(ただし、qGは、攻撃者AがランダムオラクルGを呼び出す回数の最大値。qDは、攻撃者Aが復号オラクルを呼び出す回数の最大値であり、qD’≦qD。)である。
また、攻撃者Aの優位性と攻撃者A’の優位性とは、等しい。
したがって、この点では、2つの暗号方式の安全性に差はない。
情報を記憶する磁気ディスク装置920などの記憶装置と、
情報を処理するCPU911などの処理装置と、
送信者装置200が送信した情報を受信する受信装置(通信装置915)と、
磁気ディスク装置920などの記憶装置を用いて、加法群G2の要素dIDを示す情報をユーザ秘密鍵情報として記憶する秘密鍵記憶部322と、
受信装置(通信装置915)を用いて、送信者装置200が送信した暗号化セッション鍵C0を受信し、CPU911などの処理装置を用いて、受信した暗号化セッション鍵C0に含まれる加法群G1の要素Rを示す情報を第四要素情報として出力する暗号化セッション鍵受信部331と、
CPU911などの処理装置を用いて、秘密鍵記憶部322が記憶したユーザ秘密鍵情報と暗号化セッション鍵受信部331が出力した第四要素情報とを入力し、CPU911などの処理装置を用いて、入力したユーザ秘密鍵情報と第四要素情報とに基づいて、加法群G1の要素Rと加法群G2の要素dIDとのペアリング値を算出して乗法群GTの要素w’とし、CPU911などの処理装置を用いて、算出した乗法群GTの要素w’を示す情報を受信ペアリング値情報として出力する受信ペアリング値算出部333と、
CPU911などの処理装置を用いて、暗号化セッション鍵受信部331が出力した第四要素情報と受信ペアリング値算出部333が出力した受信ペアリング値情報とを入力し、CPU911などの処理装置を用いて、入力した第四要素情報と受信ペアリング値情報とに基づいて、ハッシュ値を算出し、CPU911などの処理装置を用いて、算出したハッシュ値に基づいて、送信者装置200が生成したセッション鍵Kと同一のセッション鍵を復元するセッション鍵復元部334と、
を有することを特徴とする。
情報を記憶する磁気ディスク装置920などの記憶装置と、
情報を処理するCPU911などの処理装置と、
受信者装置300に対して情報を送信する送信装置(通信装置915)と、
磁気ディスク装置920などの記憶装置を用いて、加法群G1の要素P1を示す情報を第一要素情報として記憶する第一要素記憶部212と、
磁気ディスク装置920などの記憶装置を用いて、加法群G1の要素Ppubを示す情報を第二要素情報として記憶する第二要素記憶部213と、
CPU911などの処理装置を用いて、第一要素記憶部212が記憶した第一要素情報と自然数rを示す乱数情報とを入力し、CPU911などの処理装置を用いて、入力した第一要素情報と乱数情報とに基づいて、加法群G1の要素Rを算出し、CPU911などの処理装置を用いて、算出した加法群G1の要素Rを示す情報を第四要素情報として出力する第四要素算出部222と、
CPU911などの処理装置を用いて、受信者装置300を識別する識別情報(受信者装置300のIDを示す情報)を入力し、CPU911などの処理装置を用いて、入力した識別情報に対応する加法群G2の要素QIDを算出し、CPU911などの処理装置を用いて、算出した加法群G2の要素QIDを示す情報を第五要素情報として出力する第五要素算出部232と、
CPU911などの処理装置を用いて、第二要素記憶部213が記憶した第二要素情報と第五要素算出部232が出力した第五要素情報と上記乱数情報とを入力し、CPU911などの処理装置を用いて、入力した第二要素情報と第五要素情報とに基づいて、加法群G1の要素Ppubと加法群G2の要素QIDとのペアリング値を算出し、CPU911などの処理装置を用いて、算出したペアリング値と入力した乱数情報とに基づいて、乗法群GTの要素wを算出し、CPU911などの処理装置を用いて、算出した乗法群GTの要素wを示す情報を送信ペアリング値情報として出力する送信ペアリング値算出部233と、
CPU911などの処理装置を用いて、第四要素算出部222が出力した第四要素情報を入力し、送信装置(通信装置915)を用いて、入力した第四要素情報を含む情報を暗号化セッション鍵C0として受信者装置300に対して送信する暗号化セッション鍵送信部223と、
CPU911などの処理装置を用いて、第四要素算出部222が出力した第四要素情報と送信ペアリング値算出部233が出力した送信ペアリング値情報とを入力し、CPU911などの処理装置を用いて、入力した第四要素情報と送信ペアリング値情報とに基づいて、ハッシュ値を算出し、CPU911などの処理装置を用いて、算出したハッシュ値に基づいて、セッション鍵Kを生成するセッション鍵生成部234と、
を有することを特徴とする。
鍵生成装置(ユーザ秘密鍵生成センタ100)と、送信者装置200と、受信者装置300とを備え、
鍵生成装置(ユーザ秘密鍵生成センタ100)は、
情報を処理するCPU911などの処理装置と、
CPU911などの処理装置を用いて、加法群G1の要素P1を選択し、CPU911などの処理装置を用いて、選択した加法群G1の要素P1を示す情報を第一要素情報として出力する第一要素選択部111と、
CPU911などの処理装置を用いて、自然数sを選択し、CPU911などの処理装置を用いて、選択した自然数sを示す情報をマスターキー情報として出力するマスターキー選択部112と、
CPU911などの処理装置を用いて、第一要素選択部111が出力した第一要素情報とマスターキー選択部112が出力したマスターキー情報とを入力し、CPU911などの処理装置を用いて、入力した第一要素情報とマスターキー情報とに基づいて、加法群G1の要素Ppubを算出し、CPU911などの処理装置を用いて、算出した加法群G1の要素Ppubを示す情報を第二要素情報として出力する第二要素算出部121と、
CPU911などの処理装置を用いて、第一要素選択部111が出力した第一要素情報と第二要素算出部121が出力した第二要素情報とを入力し、CPU911などの処理装置を用いて、入力した第一要素情報と第二要素情報とを含む情報をパラメータ情報として公開するパラメータ公開部122と、
CPU911などの処理装置を用いて、受信者装置300を識別する識別情報(受信者装置300のIDを示す情報)を入力し、CPU911などの処理装置を用いて、入力した識別情報に対応する加法群G2の要素QIDを算出し、CPU911などの処理装置を用いて、算出した加法群G2の要素QIDを示す情報を第三要素情報として出力する第三要素算出部132と、
CPU911などの処理装置を用いて、第三要素算出部132が出力した第三要素情報とマスターキー選択部112が出力したマスターキー情報とを入力し、CPU911などの処理装置を用いて、入力した第三要素情報とマスターキー情報とに基づいて、加法群G2の要素dIDを算出し、CPU911などの処理装置を用いて、算出した加法群G2の要素dIDを示す情報をユーザ秘密鍵情報として出力する秘密鍵算出部133と、
CPU911などの処理装置を用いて、秘密鍵算出部133が出力したユーザ秘密鍵情報を入力し、CPU911などの処理装置を用いて、入力したユーザ秘密鍵情報を受信者装置300に対して秘密裡に通知する秘密鍵通知部134と、
を有し、
送信者装置200は、
情報を記憶する磁気ディスク装置920などの記憶装置と、
情報を処理するCPU911などの処理装置と、
受信者装置300に対して情報を送信する送信装置(通信装置915)と、
CPU911などの処理装置を用いて、鍵生成装置(ユーザ秘密鍵生成センタ100)が公開したパラメータ情報を取得し、CPU911などの処理装置を用いて、取得したパラメータ情報に含まれる第一要素情報と第二要素情報とを出力するパラメータ取得部211と、
CPU911などの処理装置を用いて、パラメータ取得部211が出力した第一要素情報を入力し、磁気ディスク装置920などの記憶装置を用いて、入力した第一要素情報を記憶する第一要素記憶部212と、
CPU911などの処理装置を用いて、パラメータ取得部211が出力した第二要素情報を入力し、磁気ディスク装置920などの記憶装置を用いて、入力した第二要素情報を記憶する第二要素記憶部213と、
CPU911などの処理装置を用いて、第一要素記憶部212が記憶した第一要素情報と自然数rを示す乱数情報とを入力し、CPU911などの処理装置を用いて、入力した第一要素情報と乱数情報とに基づいて、加法群G1の要素Rを算出し、CPU911などの処理装置を用いて、算出した加法群G1の要素Rを示す情報を第四要素情報として出力する第四要素算出部222と、
CPU911などの処理装置を用いて、受信者装置300を識別する識別情報(受信者装置300のIDを示す情報)を入力し、CPU911などの処理装置を用いて、入力した識別情報に対応する加法群G2の要素QIDを算出し、CPU911などの処理装置を用いて、算出した加法群G2の要素QIDを示す情報を第五要素情報として出力する第五要素算出部232と、
CPU911などの処理装置を用いて、第二要素記憶部213が記憶した第二要素情報と第五要素算出部232が出力した第五要素情報と上記乱数情報とを入力し、CPU911などの処理装置を用いて、入力した第二要素情報と第五要素情報とに基づいて、加法群G1の要素Ppubと加法群G2の要素QIDとのペアリング値を算出し、CPU911などの処理装置を用いて、算出したペアリング値と入力した乱数情報とに基づいて、乗法群GTの要素wを算出し、CPU911などの処理装置を用いて、算出した乗法群GTの要素wを示す情報を送信ペアリング値情報として出力する送信ペアリング値算出部233と、
CPU911などの処理装置を用いて、第四要素算出部222が出力した第四要素情報を入力し、送信装置(通信装置915)を用いて、入力した第四要素情報を含む情報を暗号化セッション鍵C0として受信者装置300に対して送信する暗号化セッション鍵送信部223と、
CPU911などの処理装置を用いて、第四要素算出部222が出力した第四要素情報と送信ペアリング値算出部233が出力した送信ペアリング値情報とを入力し、CPU911などの処理装置を用いて、入力した第四要素情報と送信ペアリング値情報とに基づいて、ハッシュ値を算出し、CPU911などの処理装置を用いて、算出したハッシュ値に基づいて、セッション鍵Kを生成するセッション鍵生成部234と、
を有し、
受信者装置300は、
情報を記憶する磁気ディスク装置920などの記憶装置と、
情報を処理するCPU911などの処理装置と、
送信者装置200が送信した情報を受信する受信装置(通信装置915)と、
CPU911などの処理装置を用いて、鍵生成装置(ユーザ秘密鍵生成センタ100)が通知したユーザ秘密鍵情報を取得し、CPU911などの処理装置を用いて、取得したユーザ秘密鍵情報を出力する秘密鍵取得部321と、
CPU911などの処理装置を用いて、秘密鍵取得部321が出力したユーザ秘密鍵情報を入力し、磁気ディスク装置920などの記憶装置を用いて、入力したユーザ秘密鍵情報を記憶する秘密鍵記憶部322と、
受信装置(通信装置915)を用いて、送信者装置200が送信した暗号化セッション鍵C0を受信し、CPU911などの処理装置を用いて、受信した暗号化セッション鍵C0に含まれる加法群G1の要素Rを示す情報を第四要素情報として出力する暗号化セッション鍵受信部331と、
CPU911などの処理装置を用いて、秘密鍵記憶部322が記憶したユーザ秘密鍵情報と暗号化セッション鍵受信部331が出力した第四要素情報とを入力し、CPU911などの処理装置を用いて、入力したユーザ秘密鍵情報と第四要素情報とに基づいて、加法群G1の要素Rと加法群G2の要素dIDとのペアリング値を算出して乗法群GTの要素w’とし、CPU911などの処理装置を用いて、算出した乗法群GTの要素w’を示す情報を受信ペアリング値情報として出力する受信ペアリング値算出部333と、
CPU911などの処理装置を用いて、暗号化セッション鍵受信部331が出力した第四要素情報と受信ペアリング値算出部333が出力した受信ペアリング値情報とを入力し、CPU911などの処理装置を用いて、入力した第四要素情報と受信ペアリング値情報とに基づいて、ハッシュ値を算出し、CPU911などの処理装置を用いて、算出したハッシュ値に基づいて、送信者装置200が生成したセッション鍵Kと同一のセッション鍵を復元するセッション鍵復元部334と、
を有することを特徴とする。
CPU911などの処理装置を用いて、加法群G1の位数nより小さい自然数rをランダムに選択し、CPU911などの処理装置を用いて、選択した自然数rを示す情報を、第四要素算出部222及び送信ペアリング値算出部233が入力する乱数情報として出力する自然数選択部221を有し、
セッション鍵生成部234が、
CPU911などの処理装置を用いて、第四要素情報と送信ペアリング値情報とを入力し、CPU911などの処理装置を用いて、入力した第四要素情報と送信ペアリング値情報とを結合してビット列情報を生成し、CPU911などの処理装置を用いて、生成したビット列情報に対応するハッシュ値を算出し、算出したハッシュ値をセッション鍵Kとすることを特徴とする。
セッション鍵復元部334が、
CPU911などの処理装置を用いて、第四要素情報と受信ペアリング値情報とを入力し、CPU911などの処理装置を用いて、入力した第四要素情報と受信ペアリング値情報とを結合してビット列情報を生成し、CPU911などの処理装置を用いて、生成したビット列情報に対応するハッシュ値を算出し、算出したハッシュ値をセッション鍵Kとすることを特徴とする。
第四要素算出部222が、
CPU911などの処理装置を用いて、第一要素情報と乱数情報とを入力し、CPU911などの処理装置を用いて、入力した第一要素情報と乱数情報とに基づいて、加法群G1の要素P1をr回加算した要素を加法群G1の要素Rとして算出し、CPU911などの処理装置を用いて、算出した加法群G1の要素Rを示す情報を第四要素情報として出力し、
送信ペアリング値算出部233が、
CPU911などの処理装置を用いて、第二要素情報と第五要素情報と乱数情報とを入力し、CPU911などの処理装置を用いて、入力した第二要素情報と第五要素情報と乱数情報とに基づいて、加法群G1の要素Ppubと加法群G2の要素QIDとのペアリング値のr乗を、乗法群GTの要素wとして算出し、CPU911などの処理装置を用いて、算出した乗法群GTの要素wを示す情報を送信ペアリング値情報として出力することを特徴とする。
鍵生成装置(ユーザ秘密鍵生成センタ100)の第二要素算出部121が、
CPU911などの処理装置を用いて、第一要素情報とマスターキー情報とを入力し、CPU911などの処理装置を用いて、入力した第一要素情報とマスターキー情報とに基づいて、加法群G1の要素P1をs回加算した要素を加法群G1の要素Ppubとして算出し、CPU911などの処理装置を用いて、算出した加法群G1の要素Ppubを示す情報を第二要素情報として出力し、
鍵生成装置(ユーザ秘密鍵生成センタ100)の秘密鍵算出部133が、
CPU911などの処理装置を用いて、第三要素情報とマスターキー情報とを入力し、CPU911などの処理装置を用いて、入力した第三要素情報とマスターキー情報とに基づいて、加法群G2の要素QIDをs回加算した要素を加法群G2の要素dIDとして算出し、CPU911などの処理装置を用いて、算出した加法群G2の要素dIDを示す情報をユーザ秘密鍵情報として出力することを特徴とする。
CPU911などの処理装置を用いて、受信者装置300に対して通知すべき情報を平文情報として入力し、CPU911などの処理装置を用いて、セッション鍵生成部234が生成したセッション鍵Kを入力し、CPU911などの処理装置を用いて、入力した平文情報を、入力したセッション鍵Kで暗号化して暗号文情報を生成し、CPU911などの処理装置を用いて、生成した暗号文情報を出力する暗号文生成部242と、
CPU911などの処理装置を用いて、暗号文生成部242が出力した暗号文情報を入力し、送信装置(通信装置915)を用いて、入力した暗号文情報を受信者装置300に対して送信する暗号文送信部243と、
を有することを特徴とする。
受信装置(通信装置915)を用いて、送信者装置200が送信した暗号文情報を受信し、CPU911などの処理装置を用いて、受信した暗号文情報を出力する暗号文受信部341と、
CPU911などの処理装置を用いて、暗号文受信部341が出力した暗号文情報を入力し、CPU911などの処理装置を用いて、セッション鍵復元部334が復元したセッション鍵Kを入力し、CPU911などの処理装置を用いて、入力した暗号文情報を、入力したセッション鍵Kで復号して、平文情報を生成し、CPU911などの処理装置を用いて、生成した平文情報を出力する暗号文復号部342と、
を有することを特徴とする。
情報を記憶する磁気ディスク装置920などの記憶装置と、情報を処理するCPU911などの処理装置と、受信者装置300に対して情報を送信する送信装置(通信装置915)とを有するコンピュータを、この実施の形態における送信者装置200として機能させることを特徴とする。
情報を記憶する磁気ディスク装置920などの記憶装置と、情報を処理するCPU911などの処理装置と、送信者装置200が送信した情報を受信する受信装置(通信装置915)とを有するコンピュータを、この実施の形態における受信者装置300として機能させることを特徴とする。
ペアリングを用いたIDベース公開鍵暗号を用いたセッション鍵共有装置において、ペアリング値をハッシュするのに用いる鍵導出関数への入力として、ペアリング値だけでなく、セッション鍵を暗号化した値も入力に加わっていることを特徴とする。
ペアリングを用いたIDベース鍵配送方式を用いたセッション鍵共有装置において、前記セッション鍵を暗号化するのに、
ID情報IDから一意的に決まるQIDを計算し、
1≦r≦nであるrをランダムに生成し、
PpubとQIDのペアリング値のr乗w=e(Ppub,QID)rを計算し、
C0=r・P1を計算し、
鍵導出関数Gを用いて、セッション鍵K=G(C0,w)を計算し、
セッション鍵Kと前記セッション鍵の暗号化C0を出力することを特徴とする。
ペアリングを用いたIDベース鍵配送方式を用いたセッション鍵共有装置において、暗号化されたセッション鍵を復号するのに、
C0∈G1であるかどうかをチェックし、
セッション鍵の暗号化C0とユーザプライベート鍵dIDのペアリング値w=e(C0,dID)を計算し、
鍵導出関数Gを用いて、セッション鍵K=G(C0,w)を計算し、
セッション鍵Kを出力することを特徴とする。
ペアリングを用いたIDベース公開鍵暗号を用いたセッション鍵共有プログラムにおいて、ペアリング値をハッシュするのに用いる鍵導出関数への入力として、ペアリング値だけでなく、セッション鍵を暗号化した値も入力に加わっていることを特徴とする。
ペアリングを用いたIDベース鍵配送方式を用いたセッション鍵共有プログラムにおいて、前記セッション鍵を暗号化するのに、
ID情報IDから一意的に決まるQIDを計算し、
1≦r≦nであるrをランダムに生成し、
PpubとQIDのペアリング値のr乗w=e(Ppub,QID)rを計算し、
C0=r・P1を計算し、
鍵導出関数Gを用いて、セッション鍵K=G(C0,w)を計算し、
セッション鍵Kと前記セッション鍵の暗号化C0を出力することを特徴とする。
ペアリングを用いたIDベース鍵配送方式を用いたセッション鍵共有プログラムにおいて、暗号化された鍵を復号するのに、
C0∈G1であるかどうかをチェックし、
セッション鍵の暗号化C0とユーザプライベート鍵dIDのペアリング値w=e(C0、dID)を計算し、
鍵導出関数Gを用いて、セッション鍵K=G(C0、w)を計算し、
セッション鍵Kを出力することを特徴とする。
ペアリングを用いたIDベース公開鍵暗号装置において、ペアリング値をハッシュするのに用いる鍵導出関数への入力として、ペアリング値だけでなく、セッション鍵を暗号化した値も入力に加わっていることを特徴とする。
ペアリングを用いたIDベース公開鍵暗号装置において、平文Mを暗号化するのに、
ID情報IDから一意的に決まるQIDを計算し、
1≦r≦nであるrをランダムに生成し、
PpubとQIDのペアリング値のr乗w=e(Ppub、QID)rを計算し、
U=r・P1を計算し、
鍵導出関数Gを用いて、K=G(U、w)を計算し、
鍵Kを用いて計算されたMの暗号化を出力することを特徴とする。
ビット毎の排他的論理和XORを用い、鍵Kを用いて計算されたMの暗号化として、XOR(M,K)を用いることを特徴とする。
ペアリングを用いたIDベース公開鍵暗号装置において、暗号文Cを復号するのに、
暗号文の成分Uとユーザプライベート鍵dIDのペアリング値w=e(U、dID)を計算し、
鍵導出関数Gを用いて、K=G(U、w)を計算し、
鍵Kを用いて計算されたCの復号を出力することを特徴とする。
ビット毎の排他的論理和XORを用い、鍵Kを用いて計算されたCの復号として、XOR(C,K)を用いることを特徴とする。
ペアリングを用いたIDベース公開鍵暗号プログラムにおいて、ペアリング値をハッシュするのに用いる鍵導出関数への入力として、ペアリング値だけでなく、セッション鍵を暗号化した値も入力に加わっていることを特徴とする。
ペアリングを用いたIDベース公開鍵暗号プログラムにおいて、平文Mを暗号化するのに、
ID情報IDから一意的に決まるQIDを計算し、
1≦r≦nであるrをランダムに生成し、
PpubとQIDのペアリング値のr乗w=e(Ppub,QID)rを計算し、
U=r・P1を計算し、
鍵導出関数Gを用いて、K=G(U,w)を計算し、
鍵Kを用いて計算されたMの暗号化を出力することを特徴とする。
ビット毎の排他的論理和XORを用い、鍵Kを用いて計算されたMの暗号化として、XOR(M,K)を用いることを特徴とする。
ペアリングを用いたIDベース公開鍵暗号プログラムにおいて、暗号文Cを復号するのに、
暗号文の成分Uとユーザプライベート鍵dIDのペアリング値w=e(U,dID)を計算し、
鍵導出関数Gを用いて、K=G(U,w)を計算し、
鍵Kを用いて計算されたCの復号を出力することを特徴とする。
ビット毎の排他的論理和XORを用い、鍵Kを用いて計算されたCの復号として、XOR(C,K)を用いることを特徴とする。
実施の形態2について、図24〜図27を用いて説明する。
この実施の形態におけるIDベース公開鍵暗号通信システム800(暗号通信システム)の全体構成、ユーザ秘密鍵生成センタ100・送信者装置200・受信者装置300のハードウェア構成は、実施の形態1で説明したものと同様なので、ここでは説明を省略する。
また、ユーザ秘密鍵生成センタ100の機能ブロックの構成は、実施の形態1で説明したものと同様なので、ここでは説明を省略する。
なお、ユーザ秘密鍵生成センタ100のパラメータ公開部122が公開するパラメータ情報には、実施の形態1で説明した情報のほか、マスク生成関数(Mask Generation Function)H2及びハッシュ関数H3を示す情報が含まれている。
マスク生成関数H2及びハッシュ関数H3は、任意のビット列を入力し、入力したビット列に対応する(所定のビット長を有する)ビット列を出力する関数である。マスク生成関数H2及びハッシュ関数H3には、ランダムオラクルとみなせる関数を用いる。
送信者装置200は、パラメータ取得部211、第一要素記憶部212、第二要素記憶部213、第四要素算出部222、暗号化セッション鍵送信部223、文字列選択部224、自然数算出部225、送信識別情報取得部231、第五要素算出部232、送信ペアリング値算出部233、セッション鍵生成部234、セッション鍵記憶部235、平文記憶部241、暗号文生成部242、暗号文送信部243を有する。
文字列選択部224は、CPU911などの処理装置を用いて、選択した文字列mを示す情報を、文字列情報として出力する。
自然数算出部225は、CPU911などの処理装置を用いて、入力した文字列情報に対応するハッシュ値を算出する。このとき、自然数算出部225は、ユーザ秘密鍵生成センタ100が公開したハッシュ関数H3を用いて、ハッシュ値を算出する。ハッシュ関数H3は、文字列情報を入力し、入力した文字列情報に対応するハッシュ値として、加法群G1の位数より小さい自然数rを出力する関数である。自然数算出部225は、入力した文字列情報を、ハッシュ関数H3の入力とする。
自然数算出部225は、CPU911などの処理装置を用いて、算出したハッシュ値(自然数r)を示す情報を、第四要素算出部222及び送信ペアリング値算出部233が入力する乱数情報として出力する。
セッション鍵生成部234は、CPU911などの処理装置を用いて、送信ペアリング値算出部233が出力した送信ペアリング値情報を入力する。
セッション鍵生成部234は、CPU911などの処理装置を用いて、文字列選択部224が出力した文字列情報を入力する。
セッション鍵生成部234は、CPU911などの処理装置を用いて、入力した第四要素情報と、入力した送信ペアリング値情報とを結合して、ビット列情報を生成する。
セッション鍵生成部234は、CPU911などの処理装置を用いて、生成したビット列情報に対応するハッシュ値を算出する。このとき、セッション鍵生成部234は、ユーザ秘密鍵生成センタ100が公開したマスク生成関数H2を用いて、ハッシュ値を算出する。マスク生成関数H2は、ビット列情報を入力し、入力したビット列情報に対応するハッシュ値として、文字列選択部224が出力した文字列情報と同じビット長の文字列情報を出力する関数である。セッション鍵生成部234は、生成したビット列情報を、マスク生成関数H2の入力とする。
セッション鍵生成部234は、CPU911などの処理装置を用いて、算出したハッシュ値を示す情報と、入力した文字列情報との排他的論理和を算出してマスク情報vとする。ここで、排他的論理和とは、ビットごとの排他的論理和のことである。
セッション鍵生成部234は、CPU911などの処理装置を用いて、算出したマスク情報vを出力する。
セッション鍵生成部234は、CPU911などの処理装置を用いて、算出したハッシュ値を、セッション鍵Kとして出力する。
暗号化セッション鍵送信部223は、CPU911などの処理装置を用いて、セッション鍵生成部234が出力したマスク情報vを入力する。
暗号化セッション鍵送信部223は、通信装置915を用いて、受信者装置300に対して、入力した第四要素情報と、入力したマスク情報vとを含む情報を、暗号化セッション鍵C0として送信する。
受信者装置300は、受信パラメータ取得部311、秘密鍵取得部321、秘密鍵記憶部322、暗号化セッション鍵受信部331、受信ペアリング値算出部333、セッション鍵復元部334、受信セッション鍵記憶部335、暗号文受信部341、暗号文復号部342を有する。
暗号化セッション鍵受信部331は、CPU911などの処理装置を用いて、受信した暗号化セッション鍵C0に含まれる第四要素情報と、マスク情報vとを出力する。
第四要素情報は、加法群G1の要素Rを示す情報である。
セッション鍵復元部334は、CPU911などの処理装置を用いて、暗号化セッション鍵受信部331が出力したマスク情報vを入力する。
セッション鍵復元部334は、CPU911などの処理装置を用いて、受信ペアリング値算出部333が出力した受信ペアリング値情報を入力する。
受信ペアリング値情報は、乗法群GTの要素w’を示す情報である。
セッション鍵復元部334は、CPU911などの処理装置を用いて、生成したビット列情報に対応するハッシュ値を算出する。このとき、セッション鍵復元部334は、ユーザ秘密鍵生成センタ100が公開したマスク生成関数H2を用いて、ハッシュ値を算出する。セッション鍵復元部334は、生成したビット列情報を、マスク生成関数H2の入力とする。
セッション鍵復元部334は、CPU911などの処理装置を用いて、算出したハッシュ値を示す情報と、入力したマスク情報vとの排他的論理和を算出して、復元文字列情報とする。
したがって、セッション鍵復元部334がマスク生成関数H2を用いて算出したハッシュ値は、送信者装置200のセッション鍵生成部234がマスク生成関数H2を用いて算出したハッシュ値と等しい。
セッション鍵復元部334は、CPU911などの処理装置を用いて、受信パラメータ取得部311が取得したパラメータ情報に含まれる第一要素情報を入力する。
セッション鍵復元部334は、CPU911などの処理装置を用いて、入力した第一要素情報が示す加法群G1の要素P1と、算出した自然数r’とから、加法群G1の要素P1のr’倍を算出し、加法群G1の要素R’とする。
セッション鍵復元部334は、入力した第四要素情報が示す加法群G1の要素Rと、算出した加法群G1の要素R’とを比較する。
セッション鍵復元部334は、加法群G1の要素Rと加法群G1の要素R’とが等しくない場合、復号に失敗したことを示す情報を出力して、処理を中断する。
セッション鍵復元部334は、CPU911などの処理装置を用いて、算出したハッシュ値を、セッション鍵Kとして出力する。
なお、実施の形態1で図9を用いて説明した工程と共通する工程については、同一の符号を付し、説明を簡略化する。
S32において、送信識別情報取得部231は、CPU911などの処理装置を用いて、受信者装置300のIDを示す情報(識別情報)を取得する。
文字列選択部224は、CPU911などの処理装置を用いて、選択した文字列mを示す文字列情報を出力する。
自然数算出部225は、CPU911などの処理装置を用いて、入力した文字列情報に対応するハッシュ値を算出し、自然数rとする。
自然数算出部225は、CPU911などの処理装置を用いて、算出した自然数rを示す情報を、乱数情報として出力する。
S35において、第五要素算出部232は、CPU911などの処理装置を用いて、受信者装置300のIDを示す情報に対応する加法群G2の要素QIDを算出する。
S36において、送信ペアリング値算出部233は、CPU911などの処理装置を用いて、第二要素記憶部213が記憶した第二要素情報が示す加法群G1の要素Ppubと、S35で第五要素算出部232が算出した加法群G2の要素QIDと、S54で自然数算出部225が出力した乱数情報が示す自然数rとに基づいて、ペアリング値e(Ppub,QID)rを算出し、乗法群GTの要素wとする。
セッション鍵生成部234は、CPU911などの処理装置を用いて、入力した第四要素情報と、入力した送信ペアリング情報とを結合して、ビット列情報を生成する。
セッション鍵生成部234は、CPU911などの処理装置を用いて、生成したビット列情報に対応するハッシュ値を算出する。
セッション鍵生成部234は、CPU911などの処理装置を用いて、算出したハッシュ値と、入力した文字列情報との排他的論理和を算出し、マスク情報vとする。
セッション鍵生成部234は、CPU911などの処理装置を用いて、算出したマスク情報vを出力する。
セッション鍵生成部234は、算出したセッション鍵Kを出力する。
暗号化セッション鍵送信部223は、通信装置915を用いて、受信者装置300に対して、入力した第四要素情報と、入力したマスク情報vとを含む情報を、暗号化セッション鍵C0として送信する。
なお、実施の形態1で図10を用いて説明した工程と共通する工程については、同一の符号を付し、説明を簡略化する。
S42において、秘密鍵取得部321は、CPU911などの処理装置を用いて、ユーザ秘密鍵生成センタ100が秘密裡に通知したユーザ秘密鍵情報を取得する。
暗号化セッション鍵受信部331は、CPU911などの処理装置を用いて、受信した暗号化セッション鍵C0に含まれる第四要素情報とマスク情報vとを出力する。
セッション鍵復元部334は、CPU911などの処理装置を用いて、入力した第四要素情報と、入力した受信ペアリング値情報とを結合して、ビット列情報を生成する。
セッション鍵復元部334は、CPU911などの処理装置を用いて、生成したビット列情報に対応するハッシュ値を算出する。
セッション鍵復元部334は、CPU911などの処理装置を用いて、算出したハッシュ値と、入力したマスク情報vとの排他的論理和を算出し、復元文字列情報とする。
セッション鍵復元部334は、CPU911などの処理装置を用いて、算出した復元文字列情報に対応するハッシュ値を算出して、自然数r’とする。
セッション鍵復元部334は、CPU911などの処理装置を用いて、入力した第一要素情報が示す加法群G1の要素P1と、算出した自然数r’とから、加法群G1の要素P1のr’倍を算出し、加法群G1の要素R’とする。
セッション鍵復元部334は、CPU911などの処理装置を用いて、入力した第四要素情報が示す加法群G1の要素Rと、算出した加法群G1の要素R’とを比較して、等しいか否かを判断する。
等しいと判断した場合、S66へ進む。
等しくないと判断した場合、セッション鍵復元処理を終了する。
セッション鍵復元部334は、CPU911などの処理装置を用いて、算出したセッション鍵Kを出力する。
マスク生成関数H2に入力するビット列情報は、加法群G1の要素Rを示す情報(第四要素情報)と、ペアリング値wを示す情報(送信ペアリング値情報)とを結合したものである。
情報を記憶する磁気ディスク装置920などの記憶装置と、
情報を処理するCPU911などの処理装置と、
受信者装置に対して情報を送信する送信装置(通信装置915)と、
磁気ディスク装置920などの記憶装置を用いて、加法群G1の要素Pを示す情報を第一要素情報として記憶する第一要素記憶部212と、
磁気ディスク装置920などの記憶装置を用いて、加法群G1の要素Ppubを示す情報を第二要素情報として記憶する第二要素記憶部213と、
CPU911などの処理装置を用いて、第一要素記憶部212が記憶した第一要素情報と自然数rを示す乱数情報とを入力し、CPU911などの処理装置を用いて、入力した第一要素情報と乱数情報とに基づいて、加法群G1の要素Rを算出し、CPU911などの処理装置を用いて、算出した加法群G1の要素Rを示す情報を第四要素情報として出力する第四要素算出部222と、
CPU911などの処理装置を用いて、受信者装置300を識別する識別情報(IDを示す情報)を入力し、CPU911などの処理装置を用いて、入力した識別情報に対応する加法群G2の要素QIDを算出し、CPU911などの処理装置を用いて、算出した加法群G2の要素QIDを示す情報を第五要素情報として出力する第五要素算出部232と、
CPU911などの処理装置を用いて、第二要素記憶部213が記憶した第二要素情報と第五要素算出部232が出力した第五要素情報と上記乱数情報とを入力し、CPU911などの処理装置を用いて、入力した第二要素情報と第五要素情報とに基づいて、加法群G1の要素Ppubと加法群G2の要素QIDとのペアリング値を算出し、CPU911などの処理装置を用いて、算出したペアリング値と入力した乱数情報とに基づいて、乗法群GTの要素wを算出し、CPU911などの処理装置を用いて、算出した乗法群GTの要素wを示す情報を送信ペアリング値情報として出力する送信ペアリング値算出部233と、
CPU911などの処理装置を用いて、第四要素算出部222が出力した第四要素情報と送信ペアリング値算出部233が出力した送信ペアリング値情報とを入力し、CPU911などの処理装置を用いて、入力した第四要素情報と送信ペアリング値情報とに基づいて、ハッシュ値を算出し、CPU911などの処理装置を用いて、算出したハッシュ値に基づいて、受信者装置300がセッション鍵Kを復元するために用いるマスク情報vを生成し、CPU911などの処理装置を用いて、生成したマスク情報vを出力するセッション鍵生成部234と、
CPU911などの処理装置を用いて、第四要素算出部222が出力した第四要素情報と、セッション鍵生成部234が出力したマスク情報vとを入力し、送信装置(通信装置915)を用いて、入力した第四要素情報とマスク情報vとを含む情報を暗号化セッション鍵C0として受信者装置300に対して送信する暗号化セッション鍵送信部と、
を有することを特徴とする。
CPU911などの処理装置を用いて、文字列mをランダムに選択し、CPU911などの処理装置を用いて、選択した文字列mを示す情報を文字列情報として出力する文字列選択部224と、
CPU911などの処理装置を用いて、文字列選択部224が出力した文字列情報を入力し、CPU911などの処理装置を用いて、入力した文字列情報に対応するハッシュ値を算出し、CPU911などの処理装置を用いて、算出したハッシュ値を示す情報を、第四要素算出部222及び上記送信ペアリング値算出部233が入力する乱数情報として出力する自然数算出部225と、
を有し、
セッション鍵生成部234が、
CPU911などの処理装置を用いて、第四要素情報と、送信ペアリング値情報と、文字列選択部224が出力した文字列情報とを入力し、CPU911などの処理装置を用いて、入力した第四要素情報と送信ペアリング値情報とを結合してビット列情報を生成し、CPU911などの処理装置を用いて、生成したビット列情報に対応するハッシュ値を算出し、CPU911などの処理装置を用いて、算出したハッシュ値を示す情報と入力した文字列情報との排他的論理和を算出してマスク情報vとし、CPU911などの処理装置を用いて、算出したマスク情報vを出力し、CPU911などの処理装置を用いて、入力した文字列情報に対応するハッシュ値を算出し、算出したハッシュ値をセッション鍵Kとし、
暗号化セッション鍵送信部223が、
CPU911などの処理装置を用いて、第四要素情報と、セッション鍵生成部234が出力したマスク情報vとを入力し、送信装置(通信装置915)を用いて、入力した第四要素情報とマスク情報vとを含む情報を暗号化セッション鍵C0として受信者装置300に対して送信することを特徴とする。
暗号化セッション鍵受信部331が、
受信装置(通信装置915)を用いて、暗号化セッション鍵C0を受信し、CPU911などの処理装置を用いて、受信した暗号化セッション鍵C0に含まれる第四要素情報とマスク情報vとを出力し、
セッション鍵復元部334が、
CPU911などの処理装置を用いて、第四要素情報と、受信ペアリング値情報と、暗号化セッション鍵受信部331が出力したマスク情報vとを入力し、CPU911などの処理装置を用いて、入力した第四要素情報と受信ペアリング値情報とを結合してビット列情報を生成し、CPU911などの処理装置を用いて、生成したビット列情報に対応するハッシュ値を算出し、CPU911などの処理装置を用いて、算出したハッシュ値を示す情報と入力したマスク情報vとの排他的論理和を算出して、復元文字列情報とし、CPU911などの処理装置を用いて、算出した復元文字列情報に対応するハッシュ値を算出し、算出したハッシュ値をセッション鍵Kとすることを特徴とする。
ペアリングを用いたIDベース公開鍵暗号を用いたセッション鍵共有装置において、ペアリング値をハッシュするのに用いるマスク生成関数への入力として、ペアリング値だけでなく、セッション鍵を暗号化した値も入力に加わっていることを特徴とする。
ペアリングを用いたIDベース鍵配送方式を用いたセッション鍵共有装置において、前記セッション鍵を暗号化するのに、
ID情報IDから一意的に決まるQIDを計算し、
データmをランダムに生成し、mのハッシュ値r=H3(m)を計算し、R=rP1とし、
PpubとQIDのペアリング値のr乗w=e(Ppub、QID)rを計算し、
マスク生成関数H2を用いてv=XOR(m,H2(R,w))を計算し、
鍵導出関数Gを用いて、セッション鍵K=G(m)を計算し、
セッション鍵Kと前記セッション鍵の暗号化C0=(R,v)を出力することを特徴とする。
ペアリングを用いたIDベース鍵配送方式を用いたセッション鍵共有装置において、暗号化された鍵C0=(R,v)を復号するのに、
Rとユーザプライベート鍵dIDのペアリング値w=e(R,dID)を計算し、
マスク生成関数H2を用いてm=XOR(v,H2(R,w))を計算し、
r=H3(m)を計算し、
R=rP1であるかどうかをチェックし、もし成立すれば、
鍵導出関数Gを用いて、セッション鍵K=G(m)を計算し、
セッション鍵Kを出力することを特徴とする。
ペアリングを用いたIDベース公開鍵暗号を用いたセッション鍵共有プログラムにおいて、ペアリング値をハッシュするのに用いるマスク生成関数への入力として、ペアリング値だけでなく、セッション鍵を暗号化した値も入力に加わっていることを特徴とする。
ペアリングを用いたIDベース鍵配送方式を用いたセッション鍵共有プログラムにおいて、前記セッション鍵を暗号化するのに、
ID情報IDから一意的に決まるQIDを計算し、
データmをランダムに生成し、mのハッシュ値r=H3(m)を計算し、R=rP1とし、
PpubとQIDのペアリング値のr乗w=e(Ppub,QID)rを計算し、
マスク生成関数H2を用いてv=XOR(m,H2(R,w))を計算し、
鍵導出関数Gを用いて、セッション鍵K=G(m)を計算し、
セッション鍵Kと前記セッション鍵の暗号化C0=(R,v)を出力することを特徴とする。
ペアリングを用いたIDベース鍵配送方式を用いたセッション鍵共有プログラムにおいて、暗号化された鍵C0=(R,v)を復号するのに、
Rとユーザプライベート鍵dIDのペアリング値w=e(R,dID)を計算し、
マスク生成関数H2を用いてm=XOR(v,H2(R,w))を計算し、
r=H3(m)を計算し、
R=rP1であるかどうかをチェックし、もし成立すれば、
鍵導出関数Gを用いて、セッション鍵K=G(m)を計算し、
セッション鍵Kを出力することを特徴とする。
ペアリングを用いたIDベース公開鍵暗号装置において、ペアリング値をハッシュするのに用いるマスク生成関数への入力として、ペアリング値だけでなく、セッション鍵を暗号化した値も入力に加わっていることを特徴とする。
ペアリングを用いたIDベース公開鍵暗号装置において、平文Mを暗号化するのに、
ID情報IDから一意的に決まるQIDを計算し、
データmをランダムに生成し、mのハッシュ値r=H3(m)を計算し、R=rP1とし、
PpubとQIDのペアリング値のr乗w=e(Ppub,QID)rを計算し、
マスク生成関数H2を用いてv=XOR(m,H2(R,w))を計算し、
鍵導出関数Gを用いて、セッション鍵K=G(m)を計算し、
鍵Kを用いて計算されたMの暗号化を出力することを特徴とする。
ビット毎の排他的論理和XOR(,)を用い、鍵Kを用いて計算されたMの暗号化として、XOR(M,K)を用いることを特徴とする。
ペアリングを用いたIDベース公開鍵暗号装置において、暗号化された鍵C0=(R,v)を復号するのに、
Rとユーザプライベート鍵dIDのペアリング値w=e(R、dID)を計算し、
マスク生成関数H2を用いてm=XOR(v,H2(R,w))を計算し、
r=H3(m)を計算し、
R=rP1であるかどうかをチェックし、もし成立すれば、
鍵導出関数Gを用いて、セッション鍵K=G(m)を計算し、
鍵Kを用いて計算された暗号文Cの復号を出力することを特徴とする。
ビット毎の排他的論理和XOR(,)を用い、鍵Kを用いて計算されたCの復号として、XOR(C,K)を用いることを特徴とする。
ペアリングを用いたIDベース公開鍵暗号プログラムにおいて、ペアリング値をハッシュするのに用いるマスク生成関数への入力として、ペアリング値だけでなく、セッション鍵を暗号化した値も入力に加わっていることを特徴とする。
ペアリングを用いたIDベース公開鍵暗号プログラムにおいて、平文Mを暗号化するのに、
ID情報IDから一意的に決まるQIDを計算し、
データmをランダムに生成し、mのハッシュ値r=H3(m)を計算し、R=rP1とし、
PpubとQIDのペアリング値のr乗w=e(Ppub,QID)rを計算し、
マスク生成関数H2を用いてv=XOR(m,H2(R,w))を計算し、
鍵導出関数Gを用いて、セッション鍵K=G(m)を計算し、
鍵Kを用いて計算されたMの暗号化を出力することを特徴とする。
ビット毎の排他的論理和XOR(,)を用い、鍵Kを用いて計算されたMの暗号化として、XOR(M,K)を用いることを特徴とする。
ペアリングを用いたIDベース公開鍵暗号プログラムにおいて、暗号化された鍵C0=(R,v)を復号するのに、
Rとユーザプライベート鍵dIDのペアリング値w=e(R,dID)を計算し、
マスク生成関数H2を用いてm=XOR(v,H2(R,w))を計算し、
r=H3(m)を計算し、
R=rP1であるかどうかをチェックし、もし成立すれば、
鍵導出関数Gを用いて、セッション鍵K=G(m)を計算し、
鍵Kを用いて計算された暗号文Cの復号を出力することを特徴とする。
ビット毎の排他的論理和XOR(,)を用い、鍵Kを用いて計算されたCの復号として、XOR(C,K)を用いることを特徴とする。
実施の形態3について、図28〜図29を用いて説明する。
この実施の形態におけるIDベース公開鍵暗号通信システム800(暗号通信システム)の全体構成、ユーザ秘密鍵生成センタ100・送信者装置200・受信者装置300のハードウェア構成は、実施の形態1で説明したものと同様なので、ここでは説明を省略する。
また、ユーザ秘密鍵生成センタ100の機能ブロックの構成は、実施の形態1で説明したものと同様なので、ここでは説明を省略する。
なお、ユーザ秘密鍵生成センタ100のパラメータ公開部122が公開するパラメータ情報には、実施の形態1で説明した情報のほか、マスク生成関数H2及びハッシュ関数H3を示す情報が含まれている。
マスク生成関数H2及びハッシュ関数H3には、ランダムオラクルとみなせる関数を用いる。
送信者装置200は、パラメータ取得部211、第一要素記憶部212、第二要素記憶部213、第四要素算出部222、暗号化セッション鍵送信部223、自然数算出部225、セッション鍵入力部226、送信識別情報取得部231、第五要素算出部232、送信ペアリング値算出部233、セッション鍵生成部234、セッション鍵記憶部235、平文記憶部241、暗号文生成部242、暗号文送信部243を有する。
セッション鍵入力部226は、CPU911などの処理装置を用いて、入力した文字列mを示す情報を、文字列情報(セッション鍵)として出力する。
セッション鍵記憶部235は、磁気ディスク装置920などの記憶装置を用いて、入力した文字列情報(セッション鍵)を、セッション鍵Kとして記憶する。
受信者装置300は、受信パラメータ取得部311、秘密鍵取得部321、秘密鍵記憶部322、暗号化セッション鍵受信部331、受信ペアリング値算出部333、セッション鍵復元部334、受信セッション鍵記憶部335、暗号文受信部341、暗号文復号部342を有する。
セッション鍵復元部334は、CPU911などの処理装置を用いて、入力した第四要素情報と、入力した受信ペアリング値情報とを結合して、ビット列情報を生成する。
セッション鍵復元部334は、CPU911などの処理装置を用いて、生成したビット列情報に対応するハッシュ値を、ユーザ秘密鍵生成センタ100が公開したマスク生成関数H2により、算出する。
セッション鍵復元部334は、CPU911などの処理装置を用いて、算出したハッシュ値と、入力したマスク情報との排他的論理和を算出して、復元文字列情報(セッション鍵)とする。
セッション鍵復元部334は、CPU911などの処理装置を用いて、算出した復元文字列情報(セッション鍵)を出力する。
受信セッション鍵記憶部335は、磁気ディスク装置920などの記憶装置を用いて、入力した復元文字列情報(セッション鍵)を、セッション鍵Kとして記憶する。
CPU911などの処理装置を用いて、文字列mを示す情報を入力し、CPU911などの処理装置を用いて、入力した文字列mを示す情報を、セッション鍵として出力するセッション鍵入力部226と、
CPU911などの処理装置を用いて、セッション鍵入力部226が出力したセッション鍵を入力し、CPU911などの処理装置を用いて、入力したセッション鍵に対応するハッシュ値を算出し、CPU911などの処理装置を用いて、算出したハッシュ値を示す情報を、第四要素算出部222及び送信ペアリング値算出部233が入力する乱数情報として出力する自然数算出部225と、
を有し、
セッション鍵生成部234が、
CPU911などの処理装置を用いて、第四要素情報と、送信ペアリング値情報と、セッション鍵入力部226が出力したセッション鍵とを入力し、CPU911などの処理装置を用いて、入力した第四要素情報と送信ペアリング値情報とを結合してビット列情報を生成し、CPU911などの処理装置を用いて、生成したビット列情報に対応するハッシュ値を算出し、CPU911などの処理装置を用いて、算出したハッシュ値を示す情報と入力した文字列情報との排他的論理和を算出してマスク情報vとし、CPU911などの処理装置を用いて、算出したマスク情報vを出力し、
暗号化セッション鍵送信部223が、
CPU911などの処理装置を用いて、第四要素情報と、セッション鍵生成部234が出力したマスク情報vとを入力し、送信装置(通信装置915)を用いて、入力した第四要素情報とマスク情報vとを含む情報を暗号化セッション鍵C0として受信者装置300に対して送信することを特徴とする。
暗号化セッション鍵受信部331が、
受信装置(通信装置915)を用いて、暗号化セッション鍵C0を受信し、CPU911などの処理装置を用いて、受信した暗号化セッション鍵C0に含まれる第四要素情報とマスク情報vとを出力し、
セッション鍵復元部334が、
CPU911などの処理装置を用いて、第四要素情報と、受信ペアリング値情報と、暗号化セッション鍵受信部331が出力したマスク情報vとを入力し、CPU911などの処理装置を用いて、入力した第四要素情報と受信ペアリング値情報とを結合してビット列情報を生成し、CPU911などの処理装置を用いて、生成したビット列情報に対応するハッシュ値を算出し、CPU911などの処理装置を用いて、算出したハッシュ値を示す情報と入力したマスク情報vとの排他的論理和を算出して、セッション鍵Kとすることを特徴とする。
実施の形態1〜実施の形態3では、特定の方式によるIDベース公開鍵暗号通信システム800について説明したが、上記の説明から明らかなように、以下の条件を満たす構成のIDベース暗号方式についても適用が可能である。
(2)セッション鍵を復元するために、鍵導出関数Gやマスク生成関数H2などのランダムオラクルとみなすことができる関数を用いる暗号方式であること。
(3)送信者装置200が受信者装置300に対して送信する情報(暗号化セッション鍵C0)に、双線形ペアリング関数の一方の入力である加法群の要素を示す情報が含まれていること。
(4)受信者装置300がセッション鍵を復元するために用いる秘密情報(ユーザ秘密鍵)に、双線形ペアリング関数の他方の入力である加法群の要素を示す情報が含まれていること。
(5)(3)で述べた双線形ペアリング関数の一方の入力である加法群の要素を示す情報と、双線形ペアリング関数の出力であるペアリング値を示す情報とを結合した情報を、(2)で述べたランダムオラクルとみなすことができる関数の入力とすること。
Claims (16)
- 情報を記憶する記憶装置と、
情報を処理する処理装置と、
送信者装置が送信した情報を受信する受信装置と、
上記記憶装置を用いて、加法群G2の要素dIDを示す情報をユーザ秘密鍵情報として記憶する秘密鍵記憶部と、
上記受信装置を用いて、送信者装置が送信した暗号化セッション鍵を受信し、上記処理装置を用いて、受信した暗号化セッション鍵に含まれる加法群G1の要素Rを示す情報を第四要素情報として出力する暗号化セッション鍵受信部と、
上記処理装置を用いて、上記秘密鍵記憶部が記憶したユーザ秘密鍵情報と上記暗号化セッション鍵受信部が出力した第四要素情報とを入力し、上記処理装置を用いて、入力したユーザ秘密鍵情報と第四要素情報とに基づいて、加法群G1の要素Rと加法群G2の要素dIDとのペアリング値を算出して乗法群GTの要素w’とし、上記処理装置を用いて、算出した乗法群GTの要素w’を示す情報を受信ペアリング値情報として出力する受信ペアリング値算出部と、
上記処理装置を用いて、上記暗号化セッション鍵受信部が出力した第四要素情報と上記受信ペアリング値算出部が出力した受信ペアリング値情報とを入力し、上記処理装置を用いて、入力した第四要素情報と受信ペアリング値情報とに基づいて、ハッシュ値を算出し、上記処理装置を用いて、算出したハッシュ値に基づいて、送信者装置が生成したセッション鍵と同一のセッション鍵を復元するセッション鍵復元部と、
を有することを特徴とする受信者装置。 - 情報を記憶する記憶装置と、
情報を処理する処理装置と、
受信者装置に対して情報を送信する送信装置と、
上記記憶装置を用いて、加法群G1の要素P1を示す情報を第一要素情報として記憶する第一要素記憶部と、
上記記憶装置を用いて、加法群G1の要素Ppubを示す情報を第二要素情報として記憶する第二要素記憶部と、
上記処理装置を用いて、上記第一要素記憶部が記憶した第一要素情報と自然数rを示す乱数情報とを入力し、上記処理装置を用いて、入力した第一要素情報と乱数情報とに基づいて、加法群G1の要素Rを算出し、上記処理装置を用いて、算出した加法群G1の要素Rを示す情報を第四要素情報として出力する第四要素算出部と、
上記処理装置を用いて、受信者装置を識別する識別情報を入力し、上記処理装置を用いて、入力した識別情報に対応する加法群G2の要素QIDを算出し、上記処理装置を用いて、算出した加法群G2の要素QIDを示す情報を第五要素情報として出力する第五要素算出部と、
上記処理装置を用いて、上記第二要素記憶部が記憶した第二要素情報と上記第五要素算出部が出力した第五要素情報と上記乱数情報とを入力し、上記処理装置を用いて、入力した第二要素情報と第五要素情報とに基づいて、加法群G1の要素Ppubと加法群G2の要素QIDとのペアリング値を算出し、上記処理装置を用いて、算出したペアリング値と入力した乱数情報とに基づいて、乗法群GTの要素wを算出し、上記処理装置を用いて、算出した乗法群GTの要素wを示す情報を送信ペアリング値情報として出力する送信ペアリング値算出部と、
上記処理装置を用いて、上記第四要素算出部が出力した第四要素情報と上記送信ペアリング値算出部が出力した送信ペアリング値情報とを入力し、上記処理装置を用いて、入力した第四要素情報と送信ペアリング値情報とに基づいて、ハッシュ値を算出し、上記処理装置を用いて、算出したハッシュ値に基づいて、セッション鍵を生成するセッション鍵生成部と、
上記処理装置を用いて、上記第四要素算出部が出力した第四要素情報を入力し、上記送信装置を用いて、入力した第四要素情報を含む情報を暗号化セッション鍵として受信者装置に対して送信する暗号化セッション鍵送信部と、
を有することを特徴とする送信者装置。 - 情報を記憶する記憶装置と、
情報を処理する処理装置と、
受信者装置に対して情報を送信する送信装置と、
上記記憶装置を用いて、加法群G1の要素P1を示す情報を第一要素情報として記憶する第一要素記憶部と、
上記記憶装置を用いて、加法群G1の要素Ppubを示す情報を第二要素情報として記憶する第二要素記憶部と、
上記処理装置を用いて、上記第一要素記憶部が記憶した第一要素情報と自然数rを示す乱数情報とを入力し、上記処理装置を用いて、入力した第一要素情報と乱数情報とに基づいて、加法群G1の要素Rを算出し、上記処理装置を用いて、算出した加法群G1の要素Rを示す情報を第四要素情報として出力する第四要素算出部と、
上記処理装置を用いて、受信者装置を識別する識別情報を入力し、上記処理装置を用いて、入力した識別情報に対応する加法群G2の要素QIDを算出し、上記処理装置を用いて、算出した加法群G2の要素QIDを示す情報を第五要素情報として出力する第五要素算出部と、
上記処理装置を用いて、上記第二要素記憶部が記憶した第二要素情報と上記第五要素算出部が出力した第五要素情報と上記乱数情報とを入力し、上記処理装置を用いて、入力した第二要素情報と第五要素情報とに基づいて、加法群G1の要素Ppubと加法群G2の要素QIDとのペアリング値を算出し、上記処理装置を用いて、算出したペアリング値と入力した乱数情報とに基づいて、乗法群GTの要素wを算出し、上記処理装置を用いて、算出した乗法群GTの要素wを示す情報を送信ペアリング値情報として出力する送信ペアリング値算出部と、
上記処理装置を用いて、上記第四要素算出部が出力した第四要素情報と上記送信ペアリング値算出部が出力した送信ペアリング値情報とを入力し、上記処理装置を用いて、入力した第四要素情報と送信ペアリング値情報とに基づいて、ハッシュ値を算出し、上記処理装置を用いて、算出したハッシュ値に基づいて、受信者装置がセッション鍵を復元するために用いるマスク情報を生成し、上記処理装置を用いて、生成したマスク情報を出力するセッション鍵生成部と、
上記処理装置を用いて、上記第四要素算出部が出力した第四要素情報と、上記セッション鍵生成部が出力したマスク情報とを入力し、上記送信装置を用いて、入力した第四要素情報とマスク情報とを含む情報を暗号化セッション鍵として受信者装置に対して送信する暗号化セッション鍵送信部と、
を有することを特徴とする送信者装置。 - 情報を処理する処理装置と、
上記処理装置を用いて、加法群G1の要素P1を選択し、上記処理装置を用いて、選択した加法群G1の要素P1を示す情報を第一要素情報として出力する第一要素選択部と、
上記処理装置を用いて、自然数sを選択し、上記処理装置を用いて、選択した自然数sを示す情報をマスターキー情報として出力するマスターキー選択部と、
上記処理装置を用いて、上記第一要素選択部が出力した第一要素情報と上記マスターキー選択部が出力したマスターキー情報とを入力し、上記処理装置を用いて、入力した第一要素情報とマスターキー情報とに基づいて、加法群G1の要素Ppubを算出し、上記処理装置を用いて、算出した加法群G1の要素Ppubを示す情報を第二要素情報として出力する第二要素算出部と、
上記処理装置を用いて、上記第一要素選択部が出力した第一要素情報と上記第二要素算出部が出力した第二要素情報とを入力し、上記処理装置を用いて、入力した第一要素情報と第二要素情報とを含む情報をパラメータ情報として公開するパラメータ公開部と、
上記処理装置を用いて、受信者装置を識別する識別情報を入力し、上記処理装置を用いて、入力した識別情報に対応する加法群G2の要素QIDを算出し、上記処理装置を用いて、算出した加法群G2の要素QIDを示す情報を第三要素情報として出力する第三要素算出部と、
上記処理装置を用いて、上記第三要素算出部が出力した第三要素情報と上記マスターキー選択部が出力したマスターキー情報とを入力し、上記処理装置を用いて、入力した第三要素情報とマスターキー情報とに基づいて、加法群G2の要素dIDを算出し、上記処理装置を用いて、算出した加法群G2の要素dIDを示す情報をユーザ秘密鍵情報として出力する秘密鍵算出部と、
上記処理装置を用いて、上記秘密鍵算出部が出力したユーザ秘密鍵情報を入力し、上記処理装置を用いて、入力したユーザ秘密鍵情報を受信者装置に対して秘密裡に通知する秘密鍵通知部と、
を有する鍵生成装置と、
情報を記憶する記憶装置と、
情報を処理する処理装置と、
受信者装置に対して情報を送信する送信装置と、
上記処理装置を用いて、上記鍵生成装置が公開したパラメータ情報を取得し、上記処理装置を用いて、取得したパラメータ情報に含まれる第一要素情報と第二要素情報とを出力するパラメータ取得部と、
上記処理装置を用いて、上記パラメータ取得部が出力した第一要素情報を入力し、上記記憶装置を用いて、入力した第一要素情報を記憶する第一要素記憶部と、
上記処理装置を用いて、上記パラメータ取得部が出力した第二要素情報を入力し、上記記憶装置を用いて、入力した第二要素情報を記憶する第二要素記憶部と、
上記処理装置を用いて、上記第一要素記憶部が記憶した第一要素情報と自然数rを示す乱数情報とを入力し、上記処理装置を用いて、入力した第一要素情報と乱数情報とに基づいて、加法群G1の要素Rを算出し、上記処理装置を用いて、算出した加法群G1の要素Rを示す情報を第四要素情報として出力する第四要素算出部と、
上記処理装置を用いて、受信者装置を識別する識別情報を入力し、上記処理装置を用いて、入力した識別情報に対応する加法群G2の要素QIDを算出し、上記処理装置を用いて、算出した加法群G2の要素QIDを示す情報を第五要素情報として出力する第五要素算出部と、
上記処理装置を用いて、上記第二要素記憶部が記憶した第二要素情報と上記第五要素算出部が出力した第五要素情報と上記乱数情報とを入力し、上記処理装置を用いて、入力した第二要素情報と第五要素情報とに基づいて、加法群G1の要素Ppubと加法群G2の要素QIDとのペアリング値を算出し、上記処理装置を用いて、算出したペアリング値と入力した乱数情報とに基づいて、乗法群GTの要素wを算出し、上記処理装置を用いて、算出した乗法群GTの要素wを示す情報を送信ペアリング値情報として出力する送信ペアリング値算出部と、
上記処理装置を用いて、上記第四要素算出部が出力した第四要素情報と上記送信ペアリング値算出部が出力した送信ペアリング値情報とを入力し、上記処理装置を用いて、入力した第四要素情報と送信ペアリング値情報とに基づいて、ハッシュ値を算出するセッション鍵生成部と、
上記処理装置を用いて、上記第四要素算出部が出力した第四要素情報を入力し、上記送信装置を用いて、入力した第四要素情報を含む情報を暗号化セッション鍵として受信者装置に対して送信する暗号化セッション鍵送信部と、
を有する送信者装置と、
情報を記憶する記憶装置と、
情報を処理する処理装置と、
送信者装置が送信した情報を受信する受信装置と、
上記処理装置を用いて、上記鍵生成装置が通知したユーザ秘密鍵情報を取得し、上記処理装置を用いて、取得したユーザ秘密鍵情報を出力する秘密鍵取得部と、
上記処理装置を用いて、上記秘密鍵取得部が出力したユーザ秘密鍵情報を入力し、上記記憶装置を用いて、入力したユーザ秘密鍵情報を記憶する秘密鍵記憶部と、
上記受信装置を用いて、送信者装置が送信した暗号化セッション鍵を受信し、上記処理装置を用いて、受信した暗号化セッション鍵に含まれる加法群G1の要素Rを示す情報を第四要素情報として出力する暗号化セッション鍵受信部と、
上記処理装置を用いて、上記秘密鍵記憶部が記憶したユーザ秘密鍵情報と上記暗号化セッション鍵受信部が出力した第四要素情報とを入力し、上記処理装置を用いて、入力したユーザ秘密鍵情報と第四要素情報とに基づいて、加法群G1の要素Rと加法群G2の要素dIDとのペアリング値を算出して乗法群GTの要素w’とし、上記処理装置を用いて、算出した乗法群GTの要素w’を示す情報を受信ペアリング値情報として出力する受信ペアリング値算出部と、
上記処理装置を用いて、上記暗号化セッション鍵受信部が出力した第四要素情報と上記受信ペアリング値算出部が出力した受信ペアリング値情報とを入力し、上記処理装置を用いて、入力した第四要素情報と受信ペアリング値情報とに基づいて、ハッシュ値を算出し、上記処理装置を用いて、算出したハッシュ値に基づいて、送信者装置が生成したセッション鍵と同一のセッション鍵を復元するセッション鍵復元部と、
を有する受信者装置と、
を備えることを特徴とする暗号通信システム。 - 上記送信者装置は、更に、
上記処理装置を用いて、加法群G1の位数より小さい自然数rをランダムに選択し、上記処理装置を用いて、選択した自然数rを示す情報を、上記第四要素算出部及び上記送信ペアリング値算出部が入力する乱数情報として出力する自然数選択部
を有し、
上記セッション鍵生成部は、
上記処理装置を用いて、第四要素情報と送信ペアリング値情報とを入力し、上記処理装置を用いて、入力した第四要素情報と送信ペアリング値情報とを結合してビット列情報を生成し、上記処理装置を用いて、生成したビット列情報に対応するハッシュ値を算出し、算出したハッシュ値をセッション鍵とする
ことを特徴とする請求項2に記載の送信者装置。 - 上記セッション鍵復元部は、
上記処理装置を用いて、第四要素情報と受信ペアリング値情報とを入力し、上記処理装置を用いて、入力した第四要素情報と受信ペアリング値情報とを結合してビット列情報を生成し、上記処理装置を用いて、生成したビット列情報に対応するハッシュ値を算出し、算出したハッシュ値をセッション鍵とする
ことを特徴とする請求項1に記載の受信者装置。 - 上記送信者装置は、更に、
上記処理装置を用いて、文字列mをランダムに選択し、上記処理装置を用いて、選択した文字列mを示す情報を文字列情報として出力する文字列選択部と、
上記処理装置を用いて、上記文字列選択部が出力した文字列情報を入力し、上記処理装置を用いて、入力した文字列情報に対応するハッシュ値を算出し、上記処理装置を用いて、算出したハッシュ値を示す情報を、上記第四要素算出部及び上記送信ペアリング値算出部が入力する乱数情報として出力する自然数算出部と、
を有し、
上記セッション鍵生成部は、
上記処理装置を用いて、第四要素情報と、送信ペアリング値情報と、上記文字列選択部が出力した文字列情報とを入力し、上記処理装置を用いて、入力した第四要素情報と送信ペアリング値情報とを結合してビット列情報を生成し、上記処理装置を用いて、生成したビット列情報に対応するハッシュ値を算出し、上記処理装置を用いて、算出したハッシュ値を示す情報と入力した文字列情報との排他的論理和を算出してマスク情報とし、上記処理装置を用いて、算出したマスク情報を出力し、上記処理装置を用いて、入力した文字列情報に対応するハッシュ値を算出し、算出したハッシュ値をセッション鍵として出力し、
上記暗号化セッション鍵送信部は、
上記処理装置を用いて、第四要素情報と、上記セッション鍵生成部が出力したマスク情報とを入力し、上記送信装置を用いて、入力した第四要素情報とマスク情報とを含む情報を暗号化セッション鍵として受信者装置に対して送信することを特徴とする請求項3に記載の送信者装置。 - 上記暗号化セッション鍵受信部は、
上記受信装置を用いて、暗号化セッション鍵を受信し、上記処理装置を用いて、受信した暗号化セッション鍵に含まれる第四要素情報とマスク情報とを出力し、
上記セッション鍵復元部は、
上記処理装置を用いて、第四要素情報と、受信ペアリング値情報と、上記暗号化セッション鍵受信部が出力したマスク情報とを入力し、上記処理装置を用いて、入力した第四要素情報と受信ペアリング値情報とを結合してビット列情報を生成し、上記処理装置を用いて、生成したビット列情報に対応するハッシュ値を算出し、上記処理装置を用いて、算出したハッシュ値を示す情報と入力したマスク情報との排他的論理和を算出して、復元文字列情報とし、上記処理装置を用いて、算出した復元文字列情報に対応するハッシュ値を算出し、算出したハッシュ値をセッション鍵とする
ことを特徴とする請求項1に記載の受信者装置。 - 上記送信者装置は、更に、
上記処理装置を用いて、文字列mを示す文字列情報を入力し、上記処理装置を用いて、入力した文字列情報を、セッション鍵として出力するセッション鍵入力部と、
上記処理装置を用いて、上記セッション鍵入力部が出力したセッション鍵を入力し、上記処理装置を用いて、入力したセッション鍵に対応するハッシュ値を算出し、上記処理装置を用いて、算出したハッシュ値を示す情報を、上記第四要素算出部及び上記送信ペアリング値算出部が入力する乱数情報として出力する自然数算出部と、
を有し、
上記セッション鍵生成部は、
上記処理装置を用いて、第四要素情報と、送信ペアリング値情報と、上記セッション鍵入力部が出力したセッション鍵とを入力し、上記処理装置を用いて、入力した第四要素情報と送信ペアリング値情報とを結合してビット列情報を生成し、上記処理装置を用いて、生成したビット列情報に対応するハッシュ値を算出し、上記処理装置を用いて、算出したハッシュ値を示す情報と入力したセッション鍵との排他的論理和を算出してマスク情報とし、上記処理装置を用いて、算出したマスク情報を出力し、
上記暗号化セッション鍵送信部は、
上記処理装置を用いて、第四要素情報と、上記セッション鍵生成部が出力したマスク情報とを入力し、上記送信装置を用いて、入力した第四要素情報とマスク情報とを含む情報を暗号化セッション鍵として受信者装置に対して送信することを特徴とする請求項3に記載の送信者装置。 - 上記暗号化セッション鍵受信部は、
上記受信装置を用いて、暗号化セッション鍵を受信し、上記処理装置を用いて、受信した暗号化セッション鍵に含まれる第四要素情報とマスク情報とを出力し、
上記セッション鍵復元部は、
上記処理装置を用いて、第四要素情報と、受信ペアリング値情報と、上記暗号化セッション鍵受信部が出力したマスク情報とを入力し、上記処理装置を用いて、入力した第四要素情報と受信ペアリング値情報とを結合してビット列情報を生成し、上記処理装置を用いて、生成したビット列情報に対応するハッシュ値を算出し、上記処理装置を用いて、算出したハッシュ値を示す情報と入力したマスク情報との排他的論理和を算出して、セッション鍵とする
ことを特徴とする請求項1に記載の受信者装置。 - 上記第四要素算出部は、
上記処理装置を用いて、第一要素情報と乱数情報とを入力し、上記処理装置を用いて、入力した第一要素情報と乱数情報とに基づいて、加法群G1の要素P1をr回加算した要素を加法群G1の要素Rとして算出し、上記処理装置を用いて、算出した加法群G1の要素Rを示す情報を第四要素情報として出力し、
上記送信ペアリング値算出部は、
上記処理装置を用いて、第二要素情報と第五要素情報と乱数情報とを入力し、上記処理装置を用いて、入力した第二要素情報と第五要素情報と乱数情報とに基づいて、加法群G1の要素Ppubと加法群G2の要素QIDとのペアリング値のr乗を、乗法群GTの要素wとして算出し、上記処理装置を用いて、算出した乗法群GTの要素wを示す情報を送信ペアリング値情報として出力する
ことを特徴とする請求項2及び請求項3のいずれかに記載の送信者装置。 - 上記第二要素算出部は、
上記処理装置を用いて、第一要素情報とマスターキー情報とを入力し、上記処理装置を用いて、入力した第一要素情報とマスターキー情報とに基づいて、加法群G1の要素P1をs回加算した要素を加法群G1の要素Ppubとして算出し、上記処理装置を用いて、算出した加法群G1の要素Ppubを示す情報を第二要素情報として出力し、
上記秘密鍵算出部は、
上記処理装置を用いて、第三要素情報とマスターキー情報とを入力し、上記処理装置を用いて、入力した第三要素情報とマスターキー情報とに基づいて、加法群G2の要素QIDをs回加算した要素を加法群G2の要素dIDとして算出し、上記処理装置を用いて、算出した加法群G2の要素dIDを示す情報をユーザ秘密鍵情報として出力する
ことを特徴とする請求項4に記載の暗号通信システム。 - 上記送信者装置は、更に、
上記処理装置を用いて、受信者装置に対して通知すべき情報を平文情報として入力し、上記処理装置を用いて、上記セッション鍵生成部が生成したセッション鍵を入力し、上記処理装置を用いて、入力した平文情報を、入力したセッション鍵で暗号化して暗号文情報を生成し、上記処理装置を用いて、生成した暗号文情報を出力する暗号文生成部と、
上記処理装置を用いて、上記暗号文生成部が出力した暗号文情報を入力し、上記送信装置を用いて、入力した暗号文情報を受信者装置に対して送信する暗号文送信部と、
を有することを特徴とする請求項2及び請求項3のいずれかに記載の送信者装置。 - 上記受信者装置は、更に、
上記受信装置を用いて、送信者装置が送信した暗号文情報を受信し、上記処理装置を用いて、受信した暗号文情報を出力する暗号文受信部と、
上記処理装置を用いて、上記暗号文受信部が出力した暗号文情報を入力し、上記処理装置を用いて、上記セッション鍵復元部が復元したセッション鍵を入力し、上記処理装置を用いて、入力した暗号文情報を、入力したセッション鍵で復号して、平文情報を生成し、上記処理装置を用いて、生成した平文情報を出力する暗号文復号部と、
を有することを特徴とする請求項1に記載の受信者装置。 - 情報を記憶する記憶装置と、情報を処理する処理装置と、受信者装置に対して情報を送信する送信装置とを有するコンピュータを、請求項2及び請求項3のいずれかに記載の送信者装置として機能させることを特徴とするプログラム。
- 情報を記憶する記憶装置と、情報を処理する処理装置と、送信者装置が送信した情報を受信する受信装置とを有するコンピュータを、請求項1に記載の受信者装置として機能させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006215267A JP4869824B2 (ja) | 2006-08-08 | 2006-08-08 | 受信者装置及び送信者装置及び暗号通信システム及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006215267A JP4869824B2 (ja) | 2006-08-08 | 2006-08-08 | 受信者装置及び送信者装置及び暗号通信システム及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008042590A true JP2008042590A (ja) | 2008-02-21 |
JP4869824B2 JP4869824B2 (ja) | 2012-02-08 |
Family
ID=39177115
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006215267A Active JP4869824B2 (ja) | 2006-08-08 | 2006-08-08 | 受信者装置及び送信者装置及び暗号通信システム及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4869824B2 (ja) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009154020A1 (ja) * | 2008-06-18 | 2009-12-23 | 日本電気株式会社 | 識別子に基づく鍵交換装置及び方法 |
JP2010016465A (ja) * | 2008-07-01 | 2010-01-21 | Mitsubishi Electric Corp | 権限検証装置及び利用者端末装置及び鍵生成装置及びアクセス制御システム及びコンピュータプログラム及び権限検証方法及び操作要求通知方法及び鍵生成方法及びアクセス制御方法 |
JP2010154193A (ja) * | 2008-12-25 | 2010-07-08 | Nippon Telegr & Teleph Corp <Ntt> | 階層型idベース暗号化装置及び復号化装置、それらの方法、プログラム及び記録媒体 |
JP2010220212A (ja) * | 2009-03-13 | 2010-09-30 | Sap Ag | 第1のユーザによって第2のユーザに送信される通信の安全化 |
JP2011160136A (ja) * | 2010-01-29 | 2011-08-18 | Kddi Corp | 鍵交換システム、鍵交換方法及び鍵交換プログラム |
JP2011228777A (ja) * | 2010-04-15 | 2011-11-10 | Mitsubishi Electric Corp | 鍵生成装置及びデータ提供装置及び端末装置及びプログラム |
JP2012070054A (ja) * | 2010-09-21 | 2012-04-05 | Nippon Telegr & Teleph Corp <Ntt> | 復号システム、汎用端末、高信頼端末、鍵生成装置、復号方法、プログラム |
JP5291795B2 (ja) * | 2009-04-24 | 2013-09-18 | 日本電信電話株式会社 | 暗号化装置、復号装置、暗号化方法、復号方法、セキュリティ方法、プログラム及び記録媒体 |
CN116680673A (zh) * | 2023-06-20 | 2023-09-01 | 深圳市彤兴电子有限公司 | 显示器的身份校验方法、装置以及计算机设备 |
-
2006
- 2006-08-08 JP JP2006215267A patent/JP4869824B2/ja active Active
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009154020A1 (ja) * | 2008-06-18 | 2009-12-23 | 日本電気株式会社 | 識別子に基づく鍵交換装置及び方法 |
JP2010016465A (ja) * | 2008-07-01 | 2010-01-21 | Mitsubishi Electric Corp | 権限検証装置及び利用者端末装置及び鍵生成装置及びアクセス制御システム及びコンピュータプログラム及び権限検証方法及び操作要求通知方法及び鍵生成方法及びアクセス制御方法 |
JP2010154193A (ja) * | 2008-12-25 | 2010-07-08 | Nippon Telegr & Teleph Corp <Ntt> | 階層型idベース暗号化装置及び復号化装置、それらの方法、プログラム及び記録媒体 |
JP2010220212A (ja) * | 2009-03-13 | 2010-09-30 | Sap Ag | 第1のユーザによって第2のユーザに送信される通信の安全化 |
JP5291795B2 (ja) * | 2009-04-24 | 2013-09-18 | 日本電信電話株式会社 | 暗号化装置、復号装置、暗号化方法、復号方法、セキュリティ方法、プログラム及び記録媒体 |
JP2011160136A (ja) * | 2010-01-29 | 2011-08-18 | Kddi Corp | 鍵交換システム、鍵交換方法及び鍵交換プログラム |
JP2011228777A (ja) * | 2010-04-15 | 2011-11-10 | Mitsubishi Electric Corp | 鍵生成装置及びデータ提供装置及び端末装置及びプログラム |
JP2012070054A (ja) * | 2010-09-21 | 2012-04-05 | Nippon Telegr & Teleph Corp <Ntt> | 復号システム、汎用端末、高信頼端末、鍵生成装置、復号方法、プログラム |
CN116680673A (zh) * | 2023-06-20 | 2023-09-01 | 深圳市彤兴电子有限公司 | 显示器的身份校验方法、装置以及计算机设备 |
CN116680673B (zh) * | 2023-06-20 | 2024-04-16 | 深圳市彤兴电子有限公司 | 显示器的身份校验方法、装置以及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
JP4869824B2 (ja) | 2012-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10785019B2 (en) | Data transmission method and apparatus | |
Liu et al. | An efficient privacy-preserving outsourced calculation toolkit with multiple keys | |
JP4859933B2 (ja) | 暗号文生成装置及び暗号通信システム及び群パラメータ生成装置 | |
JP4869824B2 (ja) | 受信者装置及び送信者装置及び暗号通信システム及びプログラム | |
US8429408B2 (en) | Masking the output of random number generators in key generation protocols | |
CN111510281B (zh) | 一种同态加密方法及装置 | |
CN104301108B (zh) | 一种从基于身份环境到无证书环境的签密方法 | |
US20120323981A1 (en) | Proxy calculation system, proxy calculation method, proxy calculation requesting apparatus, and proxy calculation program and recording medium therefor | |
CN111404952B (zh) | 变电站数据加密传输方法、装置、计算机设备和存储介质 | |
Mitra et al. | Prevention of the man-in-the-middle attack on Diffie–Hellman key exchange algorithm: A review | |
Karati et al. | Provably secure and authenticated data sharing protocol for IoT‐based crowdsensing network | |
US11411720B2 (en) | Key distribution system, terminal device, key distribution method, and program | |
WO2018043049A1 (ja) | 暗号システム、暗号方法及び暗号プログラム | |
KR101575681B1 (ko) | 속성 기반 암호화 방법 | |
US20190215148A1 (en) | Method of establishing anti-attack public key cryptogram | |
CA2742530C (en) | Masking the output of random number generators in key generation protocols | |
JP2006227411A (ja) | 通信システム、暗号化装置、鍵生成装置、鍵生成方法、復元装置、通信方法、暗号化方法、暗号復元方法 | |
JP4563037B2 (ja) | 暗号化装置および復号化装置、並びにこれらを備えた暗号システム、暗号化方法および復号化方法 | |
Ansah et al. | Relevance of elliptic curve cryptography in modern-day technology | |
JP2005176144A (ja) | 端末装置、通信システム及び通信方法 | |
Chen et al. | A novel k-out-of-n oblivious transfer protocols based on bilinear pairings | |
AlDerai et al. | A Study of Image Encryption/Decryption by Using Elliptic Curve Cryptography ECC | |
CN115442103B (zh) | 一种群体学习抗毒化攻击方法、系统、设备及存储介质 | |
CN109951287B (zh) | 基于私钥池的抗量子计算签密方法和系统 | |
Diffie et al. | 6. New Directions in |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090520 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20111115 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111116 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4869824 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141125 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |