(57)【要約】【課題】効率性と安全性とを両立した新たな暗号鍵システムを提供すること。【解決手段】受信者側装置１１０と送信者側装置１３０との間で、予備暗号通信として、ランダムオラクルの実関数（以下、関数Ｈ）への置き換えに関する情報（以下、情報ｒ）を共有し、メッセージ文を送信するための暗号通信では、ランダムオラクルモデル上のハイブリッド型公開鍵暗号通信方式を利用する。【選択図】図１
2009130695.tif 000002
【特許請求の範囲】
【請求項１】
送信者側装置と受信者側装置との間で暗号通信を行うための暗号通信システムであって、
前記受信者側装置の演算部が、
第一の暗号方式により、第一の暗号化鍵及び第一の復号化鍵を生成する処理と、
第二の暗号方式により、第二の暗号化鍵及び第二の復号化鍵を生成する処理と、を行い、
前記送信者側装置の演算部が、
前記第一の暗号化鍵及び前記第二の暗号化鍵を取得する処理と、
共通データを予め定められた方法により作成する処理と、
前記第一の暗号化鍵を用いて、前記共通データを暗号化して暗号化共通データを生成する処理と、
前記暗号化共通データを前記受信者側装置に送信する処理と、を行い、
前記受信者側装置の演算部が、
前記暗号化共通データを受信する処理と、
前記暗号化共通データを前記第一の復号化鍵を用いて復号し、前記共通データを抽出する処理と、を行い、
前記送信者側装置の演算部が、
前記共通データ及び前記第二の暗号化鍵を用いて、少なくとも一つ以上のメッセージ文Ｍｉ（ｉは１以上の任意の自然数）を各々暗号化して暗号化メッセージを生成する暗号化処理と、
前記暗号化メッセージを、前記受信者側装置に送信する処理と、を行い、
前記受信者側装置の演算部が、
前記暗号化メッセージを受信する処理と、
前記暗号化メッセージを、前記共通データ及び前記第二の復号化鍵を用いて、復号する復号化処理を行うこと、
を特徴とする暗号通信システム。
【請求項２】
請求項１に記載の暗号通信システムであって、
前記送信者側装置の演算部は、
前記暗号化処理として、
乱数を取得する処理と、
前記乱数及び前記共通データを特定の関数に入力することで算出される値を用いて、前記メッセージ文Ｍｉを暗号化して第一の暗号化情報を生成する処理と、
前記乱数を、第二の暗号化鍵を用いて暗号化して第二の暗号化情報を生成する処理と、
前記第一の暗号化情報及び前記第二の暗号化情報により暗号化メッセージを生成する処理と、を行うものであり、
前記受信者側装置の演算部は、
前記復号化処理として、
前記暗号化メッセージから、前記第一の暗号化情報及び前記第二の暗号化情報を取得する処理と、
前記第二の暗号化情報を、前記第二の復号化情報で復号することで前記乱数を取得する処理と、
前記乱数及び前記共通データを特定の関数に入力することで算出される値を用いて、前記第一の暗号化情報を復号する処理と、を行うものであること、
を特徴とする暗号通信システム。
【請求項３】
送信者側装置と受信者側装置との間で暗号通信を行うための暗号通信システムであって、
前記受信者側装置の演算部が、
予め定められたセキュリティ・パラメータｋを用いて、
【数１】
2009130695.tif 000057
により、第一の暗号化方式ＰＫＥ１における第一の暗号化鍵ＰＫ１と第一の復号化鍵ＳＫ１とを生成する処理と、
【数２】
2009130695.tif 000058
により、第二の暗号化方式ＰＫＥ２における第二の暗号化鍵ＰＫ２と第二の復号化鍵ＳＫ２とを生成する処理と、
生成した第一の暗号化鍵ＰＫ１、第二の暗号化鍵ＰＫ２、および、
【数３】
2009130695.tif 000059
なる擬似ランダム関数Ｈ、を公開鍵とする処理と、を行い、
前記送信者側装置の演算部が、
前記受信者側装置から前記公開鍵を取得する処理と、
【数４】
2009130695.tif 000060
により共通データｒをランダムに選ぶ処理と、
前記第一の暗号化鍵ＰＫ１を用いて、
【数５】
2009130695.tif 000061
により、前記共通データｒの暗号文φを作成する処理と、
前記暗号文φを、前記受信者側装置に送信する処理と、を行い、
前記受信者側装置の演算部が、
前記暗号文φを受信する処理と、
前記暗号文φから前記第一の復号鍵ＳＫ１を用いて、
【数６】
2009130695.tif 000062
により、前記共通データｒを復号化する処理と、を行い、
前記送信者側装置の演算部が、
少なくとも一つ以上のメッセージ文Ｍｉ（ｉは１以上の任意の自然数）の各々に対して、
【数７】
2009130695.tif 000063
により乱数σｉをランダムに選ぶ処理と、
前記第二の暗号化鍵ＰＫ２を用いて、
【数８】
2009130695.tif 000064
により、乱数σiを暗号化する処理と、
前記共有データｒを用いて、
【数９】
2009130695.tif 000065
を算出する処理と、
【数１０】
2009130695.tif 000066
により、前記メッセージ文Ｍｉを各々暗号化する処理と、
（ψｉ、χｉ）を前記メッセージ文Ｍｉの暗号文として、受信者側装置に送信する処理と、を行い、
前記受信者側装置の演算部が、
前記暗号文（ψｉ、χｉ）を受信する処理と、
前記暗号文（ψｉ、χｉ）に対して、前記第二の復号化鍵ＳＫ２を用いて、
【数１１】
2009130695.tif 000067
により、データσｉを計算する処理と、
前記共有データｒを用いて、
【数１２】
2009130695.tif 000068
を算出する処理と、
【数１３】
2009130695.tif 000069
により、前記メッセージ文Ｍｉを復号化する処理と、行うこと、
を特徴とする暗号通信システム。
【請求項４】
送信者側装置と受信者側装置との間で暗号通信を行うための暗号通信システムであって、
前記受信者側装置の演算部が、
予め定められたセキュリティ・パラメータｋを用いて、
【数１４】
2009130695.tif 000070
により、第一の暗号化方式ＰＫＥ１における第一の暗号化鍵ＰＫ１と第一の復号化鍵ＳＫ１を生成する処理と、
【数１５】
2009130695.tif 000071
により、第二の暗号化方式ＰＫＥ２における第二の暗号化鍵ＰＫ２と第二の復号化鍵ＳＫ２を生成する処理と、
生成した第一の暗号化鍵ＰＫ１、第二の暗号化鍵ＰＫ２、および、
【数１６】
2009130695.tif 000072
なる擬似ランダム関数Ｈ１、Ｈ２を公開鍵とする処理と、を行い、
前記送信者側装置の演算部が、
前記受信者側装置から前記公開鍵を取得する処理と、
【数１７】
2009130695.tif 000073
により共通データｒ１、ｒ２をランダムに選ぶ処理と、
第一の暗号化鍵ＰＫ１を用いて、
【数１８】
2009130695.tif 000074
により、ｒ１||ｒ２の暗号文φを作成する処理と、
暗号文φを、前記受信者側装置に送信する処理と、を行い、
前記受信者側装置の演算部が、
前記暗号文φを受信する処理と、
前記暗号文φから、前記第一の復号化鍵ＳＫ１を用いて、
【数１９】
2009130695.tif 000075
により、ｒ１及びｒ２を復号化する処理と、を行い、
前記送信者側装置の演算部が、
少なくとも一つ以上のメッセージ文Ｍｉ∈｛０，１｝ｍ（ｉ及びｍは、一以上の任意の自然数）に対して、
【数２０】
2009130695.tif 000076
により、乱数σｉをランダムに選ぶ処理と、
前記共有データｒ１を用いて、
【数２１】
2009130695.tif 000077
を計算する処理と、
前記第二の暗号化鍵ＰＫ２、および、Ｕｉを用いて、
【数２２】
2009130695.tif 000078
により、ψｉを作成する処理と、
前記共有データｒ２を用いて、
【数２３】
2009130695.tif 000079
により、鍵データＫｉを作成する処理と、
前記鍵データＫｉを用いて、
【数２４】
2009130695.tif 000080
により、χiを作成する処理と、
作成した（ψｉ、χｉ）を前記メッセージ文Ｍｉの暗号文として、前記受信者側装置に送信する処理と、を行い、
前記受信者側装置の演算部が、
暗号文（ψｉ、χｉ）に対して、前記第二の復号化鍵ＳＫ２を用いて、
【数２５】
2009130695.tif 000081
により、乱数σｉを計算する処理と、
前記共有データｒ１、ｒ２を用いて、
【数２６】
2009130695.tif 000082
を作成する処理と、
【数２７】
2009130695.tif 000083
により、メッセージ文Ｍｉを復号化する処理と、
【数２８】
2009130695.tif 000084
が成立することを検査し、成立すればＭｉを出力し、成立しなければエラーを特定する情報を出力する処理と、を行うこと、
を特徴とする暗号通信システム。
【請求項５】
送信者側装置と受信者側装置との間で暗号通信を行うための暗号通信システムであって、
前記受信者側装置の演算部が、
予め定められたセキュリティ・パラメータｋを用いて、
【数２９】
2009130695.tif 000085
により、暗号化方式ＰＫＥにおける暗号化鍵ＰＫ’と復号化鍵ＳＫを生成する処理と、
生成した暗号化鍵ＰＫ’、任意の自然数ｌ、任意の自然数ｍ、任意の自然数ｎ、および、
【数３０】
2009130695.tif 000086
なるハッシュ関数Ｆ、Ｇ、Ｈを公開鍵とする処理と、
前記送信者側装置の演算部が、
前記公開鍵を取得する処理と、
メッセージ文Ｍ∈｛０，１｝ｎに対して、
【数３１】
2009130695.tif 000087
により乱数σをランダムに選ぶ処理と、
前記ハッシュ関数Ｆを用いて、ハッシュ値Ｆｋ（σ）を計算する処理と、
前記暗号化鍵ＰＫ’及びハッシュ値Ｆｋ（σ）を用いて、
【数３２】
2009130695.tif 000088
を作成する処理と、
ハッシュ関数Ｈを用いて、共通鍵暗号方式ＳＫＥのデータ暗号化鍵Ｋを、
【数３３】
2009130695.tif 000089
により計算する処理と、
ハッシュ関数Ｇを用いて、
【数３４】
2009130695.tif 000090
を作成する処理と、
秘密鍵暗号化方式ＳＫＥを用いて、
【数３５】
2009130695.tif 000091
を作成する処理と、
作成した（ψ、χ）をメッセージ文Ｍの暗号文として、前記受信者側装置に送信する処理と、を行い、
前記受信者側装置の演算部が、
前記暗号文（ψ、χ）を取得する処理と、
前記暗号文（ψ、χ）に対して、前記復号化鍵ＳＫを用いて、
【数３６】
2009130695.tif 000092
により、σ∈｛０，１｝ｍを計算する処理と、
前記ハッシュ関数Ｈを用いて、データ暗号化鍵Ｋを
【数３７】
2009130695.tif 000093
により計算する処理と、
共通鍵暗号化方式ＳＫＥを用いて、
【数３８】
2009130695.tif 000094
により、Ｍ∈｛０，１｝ｎおよびτ∈｛０，１｝ｌを復号化する処理と、
前記ハッシュ関数Ｇを用いて、
【数３９】
2009130695.tif 000095
が成立することを検査し、成立する場合にはＭを出力部に出力し、成立しない場合にはエラーを特定する情報を出力部に出力する処理と、を行うこと、
を特徴とする暗号通信システム。
【請求項６】
送信者側装置と受信者側装置との間で暗号通信を行うための暗号通信システムであって、
前記受信者装置の演算部が、
予め定められたセキュリティ・パラメータｋを用いて、
【数４０】
2009130695.tif 000096
により、第一の暗号化方式ＰＫＥ１における第一の暗号化鍵ＰＫ１と第一の復号化鍵ＳＫ１を生成する処理と、
【数４１】
2009130695.tif 000097
により、第二の暗号化方式ＰＫＥ２における第二の暗号化鍵ＰＫ２と第二の復号化鍵ＳＫ２を生成する処理と、
生成した、第一の暗号化鍵ＰＫ１、第二の暗号化鍵ＰＫ２、任意の自然数ｌ、任意の自然数ｍ、任意の自然数ｎ、および、
【数４２】
2009130695.tif 000098
なる擬似ランダム関数Ｆ、Ｇ、Ｈを公開鍵とする処理と、
前記送信者側装置の演算部が、
【数４３】
2009130695.tif 000099
により、共通データｒ１、ｒ２、ｒ３をランダムに選ぶ処理と、
前記第一の暗号化鍵ＰＫ１を用いて、
【数４４】
2009130695.tif 000100
により、共通データｒ１、ｒ２、ｒ３の暗号文φを作成する処理と、
暗号文φを前記受信者側装置に送信する処理と、を行い、
前記受信者側装置の演算部が、
前記暗号文φを受信する処理と、
前記暗号文φから前記第一の復号化鍵ＳＫ１を用いて、
【数４５】
2009130695.tif 000101
により、共通データｒ１、ｒ２、ｒ３を復号化する処理と、を行い、
前記送信者側装置の演算部が、
メッセージ文Ｍｉ∈｛０，１｝ｎ（ｉ及びｎは、任意の自然数）に対して、
【数４６】
2009130695.tif 000102
により、乱数σｉをランダムに選ぶ処理と、
前記擬似ランダム関数Ｆ及び前記共有データｒ１を用いてＦｋ（ｒ１、σｉ）を計算する処理と、
前記第二の暗号化鍵ＰＫ２とＦｋ（ｒ１、σｉ）を用いて、
【数４７】
2009130695.tif 000103
により、ψiを作成する処理と、
擬似ランダム関数Ｈ及び前記共有データｒ３を用いて、秘密暗号方式ＳＫＥのデータ暗号化鍵Ｋｉを、
【数４８】
2009130695.tif 000104
により作成する処理と、
前記擬似ランダム関数Ｇ及び前記共有データｒ２を用いて、
【数４９】
2009130695.tif 000105
を作成する処理と、
前記共通鍵暗号方式ＳＫＥを用いて、
【数５０】
2009130695.tif 000106
により、χiを作成する処理と、
作成した（ψｉ、χｉ）を該メッセージ文Ｍｉの暗号文として、前記受信者側装置に送信する処理と、を行い、
前記受信者側装置の演算部が、
前記暗号文（ψｉ、χｉ）を受信する処理と、
前記暗号文（ψｉ、χｉ）に対して、前記第二の復号化鍵ＳＫ２を用いて、
【数５１】
2009130695.tif 000107
により、乱数σｉ∈｛０，１｝ｍを復号化する処理と、
前記擬似ランダム関数Ｈ及び前記共有データｒ３を用いて、
【数５２】
2009130695.tif 000108
により、データ暗号化鍵Ｋｉを作成する処理と、
前記秘密鍵暗号方式ＳＫＥを用いて、
【数５３】
2009130695.tif 000109
により、Ｍｉ∈｛０，１｝ｎおよびτｉ∈｛０，１｝ｌを復号化する処理と、
前記擬似ランダム関数Ｇ及び前記共有データｒ２を用いて、
【数５４】
2009130695.tif 000110
が成立することを検査し、成立する場合にはＭｉを出力部に出力し、成立しなければエラーを特定する情報を出力部に出力する処理と、を行うこと、
を特徴とする暗号通信システム。
【請求項７】
送信者側装置と受信者側装置との間で暗号通信を行うための暗号通信方法であって、
前記受信者側装置の演算部が、第一の暗号方式により、第一の暗号化鍵及び第一の復号化鍵を生成する過程と、
前記受信者側装置の演算部が、第二の暗号方式により、第二の暗号化鍵及び第二の復号化鍵を生成する過程と、を備え、
前記送信者側装置の演算部が、前記第一の暗号化鍵及び前記第二の暗号化鍵を取得する過程と、
前記送信者側装置の演算部が、共通データを予め定められた方法により作成する過程と、
前記送信者側装置の演算部が、前記第一の暗号化鍵を用いて、前記共通データを暗号化して暗号化共通データを生成する過程と、
前記送信者側装置の演算部が、前記暗号化共通データを前記受信者側装置に送信する過程と、を備え、
前記受信者側装置の演算部が、前記暗号化共通データを受信する過程と、
前記受信者側装置の演算部が、前記暗号化共通データを前記第一の復号化鍵を用いて復号し、前記共通データを抽出する過程と、を備え、
前記送信者側装置の演算部が、前記共通データ及び前記第二の暗号化鍵を用いて、少なくとも一つ以上のメッセージ文Ｍｉ（ｉは１以上の任意の自然数）を各々暗号化して暗号化メッセージを生成する暗号化過程と、
前記送信者側装置の演算部が、前記暗号化メッセージを、前記受信者側装置に送信する過程と、を備え、
前記受信者側装置の演算部が、前記暗号化メッセージを受信する過程と、
前記受信者側装置の演算部が、前記暗号化メッセージを、前記共通データ及び前記第二の復号化鍵を用いて、復号する復号化過程と、を備えること、
を特徴とする暗号通信方法。
【請求項８】
請求項７に記載の暗号通信方法であって、
前記暗号化過程として、
前記送信者側装置の演算部が、乱数を取得する過程と、
前記送信者側装置の演算部が、前記乱数及び前記共通データを特定の関数に入力することで算出される値を用いて、前記メッセージ文Ｍｉを暗号化して第一の暗号化情報を生成する過程と、
前記送信者側装置の演算部が、前記乱数を、第二の暗号化鍵を用いて暗号化して第二の暗号化情報を生成する過程と、
前記送信者側装置の演算部が、前記第一の暗号化情報及び前記第二の暗号化情報により暗号化メッセージを生成する過程と、を行うものであり、
前記復号化処理として、
前記受信者側装置の演算部が、前記暗号化メッセージから、前記第一の暗号化情報及び前記第二の暗号化情報を取得する過程と、
前記受信者側装置の演算部が、前記第二の暗号化情報を、前記第二の復号化情報で復号することで前記乱数を取得する過程と、
前記受信者側装置の演算部が、前記乱数及び前記共通データを特定の関数に入力することで算出される値を用いて、前記第一の暗号化情報を復号する過程と、を備えるものであること、
を特徴とする暗号通信方法。
【請求項９】
送信者側装置と受信者側装置との間で暗号通信を行う暗号通信方法であって、
前記受信者側装置の演算部が、
予め定められたセキュリティ・パラメータｋを用いて、
【数５５】
2009130695.tif 000111
により、第一の暗号化方式ＰＫＥ１における第一の暗号化鍵ＰＫ１と第一の復号化鍵ＳＫ１とを生成する過程と、
【数５６】
2009130695.tif 000112
により、第二の暗号化方式ＰＫＥ２における第二の暗号化鍵ＰＫ２と第二の復号化鍵ＳＫ２とを生成する過程と、
生成した第一の暗号化鍵ＰＫ１、第二の暗号化鍵ＰＫ２、および、
【数５７】
2009130695.tif 000113
なる擬似ランダム関数Ｈ、を公開鍵とする過程と、を備え、
前記送信者側装置の演算部が、
前記受信者側装置から前記公開鍵を取得する過程と、
【数５８】
2009130695.tif 000114
により共通データｒをランダムに選ぶ過程と、
前記第一の暗号化鍵ＰＫ１を用いて、
【数５９】
2009130695.tif 000115
により、前記共通データｒの暗号文φを作成する過程と、
前記暗号文φを、前記受信者側装置に送信する過程と、を備え、
前記受信者側装置の演算部が、
前記暗号文φを受信する過程と、
前記暗号文φから前記第一の復号鍵ＳＫ１を用いて、
【数６０】
2009130695.tif 000116
により、前記共通データｒを復号化する過程と、を備え、
前記送信者側装置の演算部が、
少なくとも一つ以上のメッセージ文Ｍｉ（ｉは１以上の任意の自然数）の各々に対して、
【数６１】
2009130695.tif 000117
により乱数σｉをランダムに選ぶ過程と、
前記第二の暗号化鍵ＰＫ２を用いて、
【数６２】
2009130695.tif 000118
により、乱数σiを暗号化する過程と、
前記共有データｒを用いて、
【数６３】
2009130695.tif 000119
を算出する過程と、
【数６４】
2009130695.tif 000120
により、前記メッセージ文Ｍｉを各々暗号化する過程と、
（ψｉ、χｉ）を前記メッセージ文Ｍｉの暗号文として、受信者側装置に送信する過程と、を行い、
前記受信者側装置の演算部が、
前記暗号文（ψｉ、χｉ）を受信する過程と、
前記暗号文（ψｉ、χｉ）に対して、前記第二の復号化鍵ＳＫ２を用いて、
【数６５】
2009130695.tif 000121
により、データσｉを計算する過程と、
前記共有データｒを用いて、
【数６６】
2009130695.tif 000122
を算出する過程と、
【数６７】
2009130695.tif 000123
により、前記メッセージ文Ｍｉを復号化する過程と、を備えること、
を特徴とする暗号通信方法。
【請求項１０】
送信者側装置と受信者側装置との間で暗号通信を行うための暗号通信方法であって、
前記受信者側装置の演算部が、
予め定められたセキュリティ・パラメータｋを用いて、
【数６８】
2009130695.tif 000124
により、第一の暗号化方式ＰＫＥ１における第一の暗号化鍵ＰＫ１と第一の復号化鍵ＳＫ１を生成する過程と、
【数６９】
2009130695.tif 000125
により、第二の暗号化方式ＰＫＥ２における第二の暗号化鍵ＰＫ２と第二の復号化鍵ＳＫ２を生成する過程と、
生成した第一の暗号化鍵ＰＫ１、第二の暗号化鍵ＰＫ２、および、
【数７０】
2009130695.tif 000126
なる擬似ランダム関数Ｈ１、Ｈ２を公開鍵とする過程と、を備え、
前記送信者側装置の演算部が、
前記受信者側装置から前記公開鍵を取得する過程と、
【数７１】
2009130695.tif 000127
により共通データｒ１、ｒ２をランダムに選ぶ過程と、
第一の暗号化鍵ＰＫ１を用いて、
【数７２】
2009130695.tif 000128
により、ｒ１||ｒ２の暗号文φを作成する過程と、
暗号文φを、前記受信者側装置に送信する過程と、を備え、
前記受信者側装置の演算部が、
前記暗号文φを受信する過程と、
前記暗号文φから、前記第一の復号化鍵ＳＫ１を用いて、
【数７３】
2009130695.tif 000129
により、ｒ１及びｒ２を復号化する過程と、を行い、
前記送信者側装置の演算部が、
少なくとも一つ以上のメッセージ文Ｍｉ∈｛０，１｝ｍ（ｉ及びｍは、一以上の任意の自然数）に対して、
【数７４】
2009130695.tif 000130
により、乱数σｉをランダムに選ぶ過程と、
前記共有データｒ１を用いて、
【数７５】
2009130695.tif 000131
を計算する過程と、
前記第二の暗号化鍵ＰＫ２、および、Ｕｉを用いて、
【数７６】
2009130695.tif 000132
により、ψｉを作成する過程と、
前記共有データｒ２を用いて、
【数７７】
2009130695.tif 000133
により、鍵データＫｉを作成する過程と、
前記鍵データＫｉを用いて、
【数７８】
2009130695.tif 000134
により、χiを作成する過程と、
作成した（ψｉ、χｉ）を前記メッセージ文Ｍｉの暗号文として、前記受信者側装置に送信する過程と、を備え、
前記受信者側装置の演算部が、
暗号文（ψｉ、χｉ）に対して、前記第二の復号化鍵ＳＫ２を用いて、
【数７９】
2009130695.tif 000135
により、乱数σｉを計算する過程と、
前記共有データｒ１、ｒ２を用いて、
【数８０】
2009130695.tif 000136
を作成する過程と、
【数８１】
2009130695.tif 000137
により、メッセージ文Ｍｉを復号化する過程と、
【数８２】
2009130695.tif 000138
が成立することを検査し、成立すればＭｉを出力し、成立しなければエラーを特定する情報を出力する過程と、を備えること、
を特徴とする暗号通信方法。
【請求項１１】
送信者側装置と受信者側装置との間で暗号通信を行うための暗号通信方法であって、
前記受信者側装置の演算部が、
予め定められたセキュリティ・パラメータｋを用いて、
【数８３】
2009130695.tif 000139
により、暗号化方式ＰＫＥにおける暗号化鍵ＰＫ’と復号化鍵ＳＫを生成する過程と、
生成した暗号化鍵ＰＫ’、任意の自然数ｌ、任意の自然数ｍ、任意の自然数ｎ、および、
【数８４】
2009130695.tif 000140
なるハッシュ関数Ｆ、Ｇ、Ｈを公開鍵とする過程と、
前記送信者側装置の演算部が、
前記公開鍵を取得する過程と、
メッセージ文Ｍ∈｛０，１｝ｎに対して、
【数８５】
2009130695.tif 000141
により乱数σをランダムに選ぶ過程と、
前記ハッシュ関数Ｆを用いて、ハッシュ値Ｆｋ（σ）を計算する過程と、
前記暗号化鍵ＰＫ’及びハッシュ値Ｆｋ（σ）を用いて、
【数８６】
2009130695.tif 000142
を作成する過程と、
ハッシュ関数Ｈを用いて、共通鍵暗号方式ＳＫＥのデータ暗号化鍵Ｋを、
【数８７】
2009130695.tif 000143
により計算する過程と、
ハッシュ関数Ｇを用いて、
【数８８】
2009130695.tif 000144
を作成する過程と、
秘密鍵暗号化方式ＳＫＥを用いて、
【数８９】
2009130695.tif 000145
を作成する過程と、
作成した（ψ、χ）をメッセージ文Ｍの暗号文として、前記受信者側装置に送信する過程と、を備え、
前記受信者側装置の演算部が、
前記暗号文（ψ、χ）を取得する過程と、
前記暗号文（ψ、χ）に対して、前記復号化鍵ＳＫを用いて、
【数９０】
2009130695.tif 000146
により、σ∈｛０，１｝ｍを計算する過程と、
前記ハッシュ関数Ｈを用いて、データ暗号化鍵Ｋを
【数９１】
2009130695.tif 000147
により計算する過程と、
共通鍵暗号化方式ＳＫＥを用いて、
【数９２】
2009130695.tif 000148
により、Ｍ∈｛０，１｝ｎおよびτ∈｛０，１｝ｌを復号化する過程と、
前記ハッシュ関数Ｇを用いて、
【数９３】
2009130695.tif 000149
が成立することを検査し、成立する場合にはＭを出力部に出力し、成立しない場合にはエラーを特定する情報を出力部に出力する過程と、を備えること、
を特徴とする暗号通信システム。
【請求項１２】
送信者側装置と受信者側装置との間で暗号通信を行うための暗号通信方法であって、
前記受信者装置の演算部が、
予め定められたセキュリティ・パラメータｋを用いて、
【数９４】
2009130695.tif 000150
により、第一の暗号化方式ＰＫＥ１における第一の暗号化鍵ＰＫ１と第一の復号化鍵ＳＫ１を生成する過程と、
【数９５】
2009130695.tif 000151
により、第二の暗号化方式ＰＫＥ２における第二の暗号化鍵ＰＫ２と第二の復号化鍵ＳＫ２を生成する過程と、
生成した、第一の暗号化鍵ＰＫ１、第二の暗号化鍵ＰＫ２、任意の自然数ｌ、任意の自然数ｍ、任意の自然数ｎ、および、
【数９６】
2009130695.tif 000152
なる擬似ランダム関数Ｆ、Ｇ、Ｈを公開鍵とする過程と、
前記送信者側装置の演算部が、
【数９７】
2009130695.tif 000153
により、共通データｒ１、ｒ２、ｒ３をランダムに選ぶ過程と、
前記第一の暗号化鍵ＰＫ１を用いて、
【数９８】
2009130695.tif 000154
により、共通データｒ１、ｒ２、ｒ３の暗号文φを作成する過程と、
暗号文φを前記受信者側装置に送信する過程と、を備え、
前記受信者側装置の演算部が、
前記暗号文φを受信する過程と、
前記暗号文φから前記第一の復号化鍵ＳＫ１を用いて、
【数９９】
2009130695.tif 000155
により、共通データｒ１、ｒ２、ｒ３を復号化する過程と、を備え、
前記送信者側装置の演算部が、
メッセージ文Ｍｉ∈｛０，１｝ｎ（ｉ及びｎは、任意の自然数）に対して、
【数１００】
2009130695.tif 000156
により、乱数σｉをランダムに選ぶ過程と、
前記擬似ランダム関数Ｆ及び前記共有データｒ１を用いてＦｋ（ｒ１、σｉ）を計算する過程と、
前記第二の暗号化鍵ＰＫ２とＦｋ（ｒ１、σｉ）を用いて、
【数１０１】
2009130695.tif 000157
により、ψiを作成する過程と、
擬似ランダム関数Ｈ及び前記共有データｒ３を用いて、秘密暗号方式ＳＫＥのデータ暗号化鍵Ｋｉを、
【数１０２】
2009130695.tif 000158
により作成する過程と、
前記擬似ランダム関数Ｇ及び前記共有データｒ２を用いて、
【数１０３】
2009130695.tif 000159
を作成する過程と、
前記共通鍵暗号方式ＳＫＥを用いて、
【数１０４】
2009130695.tif 000160
により、χiを作成する過程と、
作成した（ψｉ、χｉ）を該メッセージ文Ｍｉの暗号文として、前記受信者側装置に送信する過程と、を備え、
前記受信者側装置の演算部が、
前記暗号文（ψｉ、χｉ）を受信する過程と、
前記暗号文（ψｉ、χｉ）に対して、前記第二の復号化鍵ＳＫ２を用いて、
【数１０５】
2009130695.tif 000161
により、乱数σｉ∈｛０，１｝ｍを復号化する過程と、
前記擬似ランダム関数Ｈ及び前記共有データｒ３を用いて、
【数１０６】
2009130695.tif 000162
により、データ暗号化鍵Ｋｉを作成する過程と、
前記秘密鍵暗号方式ＳＫＥを用いて、
【数１０７】
2009130695.tif 000163
により、Ｍｉ∈｛０，１｝ｎおよびτｉ∈｛０，１｝ｌを復号化する過程と、
前記擬似ランダム関数Ｇ及び前記共有データｒ２を用いて、
【数１０８】
2009130695.tif 000164
が成立することを検査し、成立する場合にはＭｉを出力部に出力し、成立しなければエラーを特定する情報を出力部に出力する過程と、を備えること、
を特徴とする暗号通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送信者側装置と受信者側装置との間で暗号通信を行う技術に関する。
【背景技術】
【０００２】
共通鍵暗号では、データから暗号文を作成するための暗号化鍵と、暗号文からデータを復号化するための復号化鍵が同じ鍵であるため、暗号通信を行うためには、これらの鍵を何らかの方法により共有する必要がある。これに対して、公開鍵暗号では、暗号化鍵と復号化鍵は異なる鍵情報であり、かつ、暗号化鍵は公開することができるため、誰もが暗号文を作成できる点において優位である。また、多くの公開鍵暗号方式は、その安全性を計算量的困難性が予想される何らかの数論問題に帰着させることにより、安全性証明が可能である。
【０００３】
公開鍵暗号方式は、ランダムオラクルモデルか標準計算機モデル上のアルゴリズムとして与えられる。ランダムオラクルモデル上の公開鍵暗号方式としては、例えば、非特許文献１に記載されている。特に、非特許文献１では、安全性の低い暗号から安全性の高い暗号を作るための一般的方法が提供されている。標準計算機モデル上の公開鍵暗号方式としては、例えば、非特許文献２に記載されている。非特許文献２に記載の暗号方法は、標準計算機モデル上の方式としては、最高レベルの効率的を持つ。
【０００４】
また、優れた公開鍵暗号方式の多くは、ＩＳＯ（非特許文献３参照）などでも標準化されている。特に、任意の長さをもつメッセージ文を暗号化する場合は、共通鍵暗号と公開鍵暗号とを用いたハイブリッド（公開鍵）暗号が用いられる。ハイブリッド暗号の詳細については、非特許文献３に記載されている。また、ハイブリッド暗号が最高レベルの安全性をもつためには、ハイブリット暗号で使用されるＫＥＭ（Key Encapsulation Mechanism）およびＤＥＭ（Data Encapsulation Mechanism）の部分も最高レベルの安全性をもつ必要があることが非特許文献４に記載されている。
【０００５】
【非特許文献１】E.Fujisaki and T.Okamoto. Secure integration of asymmetric and symmetric encryption schemes, Crypto’99, LNCS1666, Springer-Verlag, pp.537-554（1999）
【非特許文献２】K. Kurosawa and Y. Desmedt. A new paradigm of hybrid encryption scheme, CRYPTO2004, LNCS3152, Springer-Verlag, pp.426-442（2004）
【非特許文献３】V. Shoup. ISO 18033-2: An Emerging Standard for Public-Key Encryption, http://www.shoup.net/iso/,（2006）
【非特許文献４】J. Herranz et al. KEM/DEM: Necessary and Sufficient Conditions for Secure Hybrid Encryption, Cryptology ePrint Archive: Report 2006/265, http://eprint.iacr.org/2006/265,（2006）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
公開鍵暗号方式は、ランダムオラクルモデルまたは標準計算機モデル上で与えられる。ランダムオラクルモデルでは、ランダム関数へのオラクルアクセスを前提としているため、ヒューリスティックなモデルであるが、このモデル上では暗号化および復号化処理の効率性に優れているが、安全性の面で劣ることがある。
【０００７】
また、標準計算機モデルは、実際の計算機のモデルに近いため、実世界における安全性証明を与えるものと考えられているが、ランダムオラクルモデル上の暗号方式に比べて、バリエーションが少なく、また、効率性の面でも劣ることが多い。
【０００８】
そこで、本発明は、効率性と安全性とを両立した新たな暗号鍵システムを提供すること、特に、公開鍵暗号による暗号通信システムにおいて、ランダムオラクルモデル上のハイブリッド型公開鍵暗号方式をベースとして、標準計算機モデル上で安全な公開鍵暗号方式による予備通信を利用することにより、ランダムオラクルモデル上の公開鍵暗号の安全性を標準計算機モデル上の安全性に転換させ、かつ、本データの暗号通信ではランダムオラクルモデル上のハイブリッド暗号方式と同等の効率性を実現させる技術を提供すること、を目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明では、予備暗号通信として、ランダムオラクルの実関数（以下、関数Ｈ）への置き換えに関する情報（以下、情報ｒ）を標準計算機モデル上で安全な公開鍵暗号方式を利用して送信者と受信者で共有する。本データ（暗号化して送信するデータ）を送信するための暗号通信では、ランダムオラクルモデル上のハイブリッド型公開鍵暗号通信方式を利用する。但し、ランダムオラクルは実関数Ｈにより実装されており、情報ｒを共有する送信者と受信者はＨの計算が可能である。
【００１０】
例えば、本発明は、送信者側装置と受信者側装置との間で暗号通信を行うための暗号通信システムであって、前記受信者側装置の演算部が、第一の暗号方式により、第一の暗号化鍵及び第一の復号化鍵を生成する処理と、第二の暗号方式により、第二の暗号化鍵及び第二の復号化鍵を生成する処理と、を行い、前記送信者側装置の演算部が、前記第一の暗号化鍵及び前記第二の暗号化鍵を取得する処理と、共通データを予め定められた方法により作成する処理と、前記第一の暗号化鍵を用いて、前記共通データを暗号化して暗号化共通データを生成する処理と、前記暗号化共通データを前記受信者側装置に送信する処理と、を行い、前記受信者側装置の演算部が、前記暗号化共通データを受信する処理と、前記暗号化共通データを前記第一の復号化鍵を用いて復号し、前記共通データを抽出する処理と、を行い、前記送信者側装置の演算部が、前記共通データ及び前記第二の暗号化鍵を用いて、少なくとも一つ以上のメッセージ文Ｍｉ（ｉは１以上の任意の自然数）を各々暗号化して暗号化メッセージを生成する暗号化処理と、前記暗号化メッセージを、前記受信者側装置に送信する処理と、を行い、前記受信者側装置の演算部が、前記暗号化メッセージを受信する処理と、前記暗号化メッセージを、前記共通データ及び前記第二の復号化鍵を用いて、復号する復号化処理を行うこと、を特徴とする。
【発明の効果】
【００１１】
本発明の暗号方法によれば、同一送信者と受信者間で複数回の暗号通信を行う場合、１回の予備通信をおこなうことで、従来の公開鍵暗号通信システムに比べて、安全かつ効率的な暗号通信システムを構築することが可能となる。
【発明を実施するための最良の形態】
【００１２】
図１は、本発明の実施形態における通信システム１００の概略図である。
【００１３】
図示するように、通信システム１００は、受信者側装置１１０と、送信者側装置１３０と、を備えており、これらは通信回線１５０に接続されている。
【００１４】
図２は、受信者側装置１１０の概略図である。
【００１５】
図示するように、受信者側装置１１０は、情報を入力する入力部１１１と、論理演算、べき乗算、剰余演算、ハッシュ関数演算、ランダム関数演算を含む各種演算、および、受信者側装置１１０の各部の制御を行う演算部１１２と、記憶部１２０と、通信回線１５０を介して送信者側装置１３０と通信を行う通信部１２１と、情報を出力する出力部１２２と、を備える。
【００１６】
また、演算部１１２は、暗号化鍵及び復号化鍵を生成する第一の鍵情報生成部１１３及び第二の鍵情報生成部１１４と、復号化処理を行う第一の復号化部１１５、第二の復号化部１１６及び第三の復号化部１１７と、復号化されたデータを検証する検査部１１８と、ハッシュ関数の演算を行う関数計算部１１９と、を有する。
【００１７】
図３は、送信者側装置１３０の概略図である。
【００１８】
図示するように、送信者側装置１３０は、情報を入力する入力部１３１と、論理演算、べき乗算、剰余演算、ハッシュ関数演算を含む各種演算、および、送信者側装置１３０の各部の制御を行う演算部１３２と、記憶部１３８と、通信回線１５０を介して受信者側装置１１０と通信を行う通信部１３９と、情報を出力する出力部１４０と、を備える。
【００１９】
また、演算部１３２は、乱数を生成する乱数生成部１３３と、暗号化処理を行う第一の暗号化部１３４、第二の暗号化部１３５及び第三の暗号化部１３６と、ハッシュ関数の演算を行う関数計算部１３７と、を有する。
【００２０】
上記構成の受信者側装置１１０及び送信者側装置１３０は、図４（コンピュータ５００の概略図）に示すような、ＣＰＵ５０１と、メモリ５０２と、ＨＤＤ等の外部記憶装置５０３と、ＣＤ-ＲＯＭやＤＶＤ-ＲＯＭ等の可搬性を有する記憶媒体５０９から情報を読み出す読取装置５０４と、キーボードやマウスなどの入力装置５０５と、ディスプレイなどの出力装置５０６と、通信回線１５０を介して相手装置と通信を行なうための通信装置５０７と、これらの各装置を接続するバス５０８とを備えた一般的なコンピュータ５００において、ＣＰＵ５０１がメモリ５０２上にロードされた所定のプログラムを実行することにより実現することができる。
【００２１】
例えば、記憶部１２０、１３８は、ＣＰＵ５０１がメモリ５０２又は外部記憶装置５０３を利用することにより実現可能であり、演算部１１２、１３２は、外部記憶装置５０３に記憶されている所定のプログラムをメモリ５０２にロードしてＣＰＵ５０１で実行することで実現可能であり、入力部１１１、１３１は、ＣＰＵ５０１が入力装置５０５を利用することで実現可能であり、出力部１２２、１４０は、ＣＰＵ５０１が出力装置５０６を利用することで実現可能であり、通信部１２１、１３９は、ＣＰＵ５０１が通信装置５０７を利用することで実現可能である。
【００２２】
この所定のプログラムは、読取装置５０４を介して記憶媒体５０９から、あるいは、通信装置５０７を介してネットワークから、外部記憶装置５０３にダウンロードされ、それから、メモリ５０２上にロードされてＣＰＵ５０１により実行されるようにしてもよい。また、読取装置５０４を介して記憶媒体５０９から、あるいは、通信装置５０７を介してネットワークから、メモリ５０２上に直接ロードされ、ＣＰＵ５０１により実行されるようにしてもよい。
（第一の実施形態）
本実施形態は、通信回線１５０を介して、送信者側装置１３０を用いる送信者と受信者側装置１１０を用いる受信者間で暗号通信を行う通信システムに関するものである。送信者および受信者の間では、２つの公開鍵暗号方式（公開鍵暗号方式１、２）と１つの秘密鍵暗号方式を利用しながら新しい通信システムを構築する技術について述べる。
【００２３】
この新しい通信システムでは、同一の送信者と受信者で（複数回の）暗号通信を行う場合、準備として最初に１回の予備暗号通信を行う。その後は、予備暗号通信で共有した情報を利用しながら、安全かつ効率の良い暗号通信を実現する。
【００２４】
以下、公開鍵暗号方式１をＰＫＥ１＝(ＰＫＥ１．Ｋｇ、ＰＫＥ１．Ｅｎｃ、ＰＫＥ１．Ｄｅｃ)、公開鍵暗号方式２をＰＫＥ２＝（ＰＫＥ２．Ｋｇ、ＰＫＥ２．Ｅｎｃ、ＰＫＥ２．Ｄｅｃ）、秘密鍵暗号方式をＳＫＥ＝（ＳＫＥ．Ｅｎｃ、ＳＫＥ．Ｄｅｃ）とする。
【００２５】
但し、ＰＫＥ１．Ｋｇ、ＰＫＥ１．Ｅｎｃ、ＰＫＥ１．Ｄｅｃは、それぞれＰＫＥ１における鍵生成アルゴリズム、暗号化アルゴリズム、復号化アルゴリズムを示す。また、ＰＫＥ２．Ｋｇ、ＰＫＥ２．Ｅｎｃ、ＰＫＥ２．Ｄｅｃは、それぞれＰＫＥ２における鍵生成アルゴリズム、暗号化アルゴリズム、復号化アルゴリズムを示す。さらに、ＳＫＥ．Ｅｎｃ、ＳＫＥ．Ｄｅｃは、ＳＫＥにおける暗号化アルゴリズム、復号化アルゴリズムを示す。
【００２６】
図５は、第一の実施形態における通信システム１００での処理を示すフローチャートである。
【００２７】
１．受信者側装置１１０での処理
受信者側装置１１０では、受信者側装置１１０のオペレータの指示を受けて、第一の鍵情報生成部１１３が、暗号方式ＰＫＥ１における暗号化鍵ＰＫ１及び復号化鍵ＳＫ１を、
【００２８】
【数１０９】
2009130695.tif 000003
により作成する（Ｓ６１０）。
【００２９】
さらに、第二の鍵情報生成部１１４が、暗号方式ＰＫＥ２における暗号化鍵ＰＫ２及び復号化鍵ＳＫ２を、
【００３０】
【数１１０】
2009130695.tif 000004
により作成する（Ｓ６１１）。但し、ｋはセキュリティ・パラメータであり、暗号化鍵及び復号化鍵の安全性を考慮して、予め任意の値を設定しておく。
【００３１】
また、受信者側装置１１０は、オペレータの指示を受けて、通信部１２１及び出力部１２２を用いて、(ＰＫ１、ＰＫ２、Ｈ）を公開鍵として公開し（Ｓ６１２）、（ＳＫ１、ＳＫ２）を受信者側装置１１０のオペレータの秘密鍵として記憶部１２０に保管する。
【００３２】
ここで、Ｈは、
【００３３】
【数１１１】
2009130695.tif 000005
なる擬似ランダム関数を表す。
【００３４】
セキュリティ・パラメータｋに対して、暗号方式ＰＫＥ１のメッセージ空間（暗号化鍵ＰＫＥ１におけるメッセージ文全体の集合）は集合Ｒｋを含み、暗号方式ＳＫＥの鍵空間（ＳＫＥにおける鍵全体の集合）は集合Ｙｋに含まれるものとする。そして、疑似ランダム関数Ｈｋは、集合Ｒｋに応じて、集合Ｘｋを集合Ｙｋに写像する関数である。
【００３５】
２．送信者側装置１３０での処理
送信者側装置１３０では、送信者側装置１００のオペレータの指示に応じて、演算部１３２が、通信部１３９を介して、受信者側装置１１０の公開鍵(ＰＫ１、ＰＫ２、Ｈ)を取得し、記憶部１３８に記憶する（Ｓ６１３）。
【００３６】
そして、送信者側装置１３０では、送信者側装置１００のオペレータの指示に応じて、乱数生成部１３３が、
【００３７】
【数１１２】
2009130695.tif 000006
をランダムに選び、記憶部１３８に格納する（Ｓ６１４）。
【００３８】
さらに、ステップＳ６１３で取得した公開鍵のうちのＰＫ１を用いて、第一の暗号化部１３４が、
【００３９】
【数１１３】
2009130695.tif 000007
により、データｒの暗号文φを作成する（Ｓ６１５）。
【００４０】
また、送信者側装置１３０のオペレータの指示に応じて、送信者側装置１３０の演算部１３２が、通信部１３９を用いて、暗号文φを受信者側装置１１０に送信する（Ｓ６１６）。
【００４１】
３．受信者側装置１１０での処理
受信者側装置１１０では、送信者側装置１３０からの暗号文φを受信する（Ｓ６１７）。
【００４２】
そして、受信者側装置１１０のオペレータの指示に応じて、第一の復号化部１１５が、暗号文φに対して、記憶部１２０に格納された秘密鍵ＳＫ１を用いて、
【００４３】
【数１１４】
2009130695.tif 000008
により、データｒを復号化し、記憶部１２０に格納する（Ｓ６１８）。
【００４４】
４．送信者側装置１３０での処理
送信者側装置１３０と受信者側装置１１０は複数回（ｉ＝１，２，・・・）の暗号通信を行う。
【００４５】
まず、送信者側装置１３０のオペレータは、送信者側装置１３０の入力部１３１に少なくとも一つ以上のメッセージ文Ｍｉ（ｉ＝１，２，・・・）を入力する（Ｓ６１９）。
【００４６】
そして、送信者側装置１３０は、乱数生成部１３３が、
【００４７】
【数１１５】
2009130695.tif 000009
をランダムに選ぶ（Ｓ６２０）。
【００４８】
さらに、第二の暗号化部１３５が、ステップＳ６１３で取得した公開鍵のうちのＰＫ２を用いて、
【００４９】
【数１１６】
2009130695.tif 000010
により、データσｉを暗号化する（Ｓ６２１）。
【００５０】
さらに、関数計算部１３７が、記憶部１３８に格納された共有データｒを用いて、
【００５１】
【数１１７】
2009130695.tif 000011
を計算する（Ｓ６２２）。
【００５２】
まだ、第三の暗号化部１３６が、ステップＳ６２２で計算されたＫｉを用いて、
【００５３】
【数１１８】
2009130695.tif 000012
により、メッセージ文Ｍｉを暗号化する（Ｓ６２３）。
【００５４】
そして、送信者側装置１３０の演算部１３２は、オペレータの指示に応じて、（ψｉ、χｉ）をメッセージ文Ｍｉの暗号文として、通信部１３９を用いて、受信者側装置１１０に送信する（Ｓ６２４）。
【００５５】
５．受信者側装置での処理
受信者側装置１１０では、暗号文（ψｉ、χｉ）を受信すると（Ｓ６２５）、第二の復号化部１１６が、暗号文（ψｉ、χｉ）に対して、記憶部１１０に格納されている秘密鍵ＳＫ２を用いて、
【００５６】
【数１１９】
2009130695.tif 000013
により、データσｉを計算する（Ｓ６２６）。
【００５７】
さらに、関数計算部１１９が、記憶部１２０に格納された共有データｒを用いて、
【００５８】
【数１２０】
2009130695.tif 000014
を作成する（Ｓ６２７）。
【００５９】
そして、第三の復号化部１１７が、ステップＳ６２７で算出されたＫｉを用いて、
【００６０】
【数１２１】
2009130695.tif 000015
により、メッセージ文Ｍｉを計算し、出力部１２２を用いて出力する（Ｓ６２８）。
【００６１】
本実施例の暗号方法は、標準計算機モデル上において、公開鍵暗号方式１（ＰＫＥ１）がＩＮＤ−ＣＣＡ安全であり、公開鍵暗号方式２（ＰＫＥ２）がＯＷ−ＣＰＡ安全であり、かつ、秘密鍵暗号方式（ＳＫＥ）がＩＮＤ−ＣＣＡ安全である場合、ＩＮＤ−ＣＣＡ安全であることが示される。
【００６２】
一般に、ＯＷ−ＣＰＡ安全な公開鍵暗号は、ＩＮＤ−ＣＣＡ安全である公開鍵暗号に比べて、安全性が低い反面、方式自体のバリエーションが豊富で、かつ、暗号化・復号化処理の効率性に優れる。
【００６３】
本実施形態の通信システム１００では、比較的計算コストの大きい公開鍵暗号方式１を予備通信に１回のみ利用するだけで、複数回行われる本データの暗号通信では、効率的な処理が可能な公開鍵暗号方式２が利用される。このため、全体として安全性と効率性に優れた暗号通信が可能となる。
【００６４】
本実施形態の通信システム１００では、データｒを用いてランダムオラクルの実装を行っているため、データｒが露呈しても、その後の暗号通信の安全性が崩壊するわけではない。
【００６５】
ここで、データの暗号化鍵Ｋｉは暗号通信の度に変更することが望ましい。また、本実施形態では、メッセージ文の長さを任意に設定できるため、コンテンツ配信システムなど、大容量のデータの暗号通信にも適している。
【００６６】
本実施形態における公開鍵暗号方式１は、送信者と受信者間で乱数を共有するための鍵共有方式に置き換えてもよい。
（第二の実施形態）
以下、第二の実施形態について説明する。
【００６７】
本実施形態は、第一の実施形態の変形例である。
【００６８】
第一の実施形態と同様、送信者装置１３０及び受信者側装置１１０の間では、２つの公開鍵暗号方式（公開鍵暗号方式１，２）と１つの秘密鍵暗号方式が利用でき、これらの暗号方法を利用しながら新しい通信システムを構築する技術について述べる。
【００６９】
図６は、第二の実施形態における通信システム１００での処理を示すフローチャートである。
【００７０】
１．受信者側装置１１０での処理
受信者側装置１１０は、オペレータの指示に応じて、第一の鍵情報生成部１１３が、暗号方式ＰＫＥ１における暗号化鍵ＰＫ１及び復号化鍵ＳＫ１を、
【００７１】
【数１２２】
2009130695.tif 000016
により生成する（Ｓ６３０）。
【００７２】
さらに、第二の鍵情報生成部１１４が、暗号方式ＰＫＥ２における暗号化鍵ＰＫ２及び復号化鍵ＳＫ２を、
【００７３】
【数１２３】
2009130695.tif 000017
により生成する（Ｓ６３１）。
【００７４】
但し、ｋはセキュリティ・パラメータであり、暗号化鍵及び復号化鍵の安全性を考慮して、予め任意の値を設定しておく。
【００７５】
そして、受信者側装置１１０は、演算部１１２が、通信部１２１及び出力部１２２を用いて、(ＰＫ１、ＰＫ２、Ｈ１、Ｈ２)を公開鍵として公開し（Ｓ６３２）、(ＳＫ１、ＳＫ２)を受信者の秘密鍵として記憶部１２０に保管する。
【００７６】
ここで、Ｈ１、Ｈ２は、
【００７７】
【数１２４】
2009130695.tif 000018
なる擬似ランダム関数を表す。
【００７８】
なお、セキュリティ・パラメータｋに対して、暗号方式ＰＫＥ１のメッセージ空間は集合Ｒ１，ｋ×Ｒ２，ｋ＝｛ｒ１｜｜ｒ２｜ｒｉ∈Ｒｉ，ｋ（ｉ＝１，２）｝を含み、暗号方式ＳＫＥの鍵空間は集合Ｙ２，ｋに含まれるものとする。
【００７９】
２．送信者側装置１３０での処理
送信者側装置１３０では、送信者側装置１００のオペレータの指示に応じて、演算部１３２が、通信部１３９を介して、受信者側装置１１０の公開鍵(ＰＫ１、ＰＫ２、Ｈ１、Ｈ２)を取得し、記憶部１３８に記憶する（Ｓ６３３）。
【００８０】
次に、送信者側装置１３０の乱数生成部１３３が、
【００８１】
【数１２５】
2009130695.tif 000019
をランダムに選び、記憶部１３８に格納する（Ｓ６３４）。
【００８２】
さらに、第一の暗号化部１３４が、ステップＳ６３３で取得した公開鍵のうちのＰＫ１を用いて、
【００８３】
【数１２６】
2009130695.tif 000020
により、データｒ１｜｜ｒ２の暗号文φを作成する（Ｓ６３５）。なお「｜｜」の記号は、データを結合することを示す。
【００８４】
そして、オペレータの指示に応じて、送信者側装置１３０の演算部１３２が、通信部１３９を用いて、暗号文φを受信者側装置１１０に送信する（Ｓ６３６）。
【００８５】
３．受信者側装置１１０での処理
受信者側装置１１０は、暗号文φを受信すると（Ｓ６３７）、第一の復号化部１３４が、暗号文φに対して、記憶部１３８に格納された秘密鍵ＳＫ１を用いて、
【００８６】
【数１２７】
2009130695.tif 000021
により、データｒ１、ｒ２を復号化し、記憶部１３８に格納する（Ｓ６３８）。
【００８７】
４．送信者側装置１３０での処理
送信者側端末１３０と受信者側装置１１０は複数回（ｉ＝１，２，・・・）の暗号通信を行う。
【００８８】
まず、送信者側措置１３０のオペレータは、入力部１３１に少なくとも一つ以上のメッセージ文Ｍｉ∈｛０，１｝ｍ（ｉ＝１，２，・・・）を入力する（Ｓ６３９）。ここで、ｍは、任意の自然数である。
【００８９】
そして、送信者側装置１３０は、乱数生成部１３３が、
【００９０】
【数１２８】
2009130695.tif 000022
をランダムに選ぶ（Ｓ６４０）。
【００９１】
さらに、関数計算部１３７が、記憶部１３８に格納されたｒ１を用いて、
【００９２】
【数１２９】
2009130695.tif 000023
を計算する（Ｓ６４１）。
【００９３】
そして、第二の暗号化部１３５が、Ｕｉを暗号化におけるコイントス（乱数）として用いることで、ステップＳ６３３で受信した公開鍵のうちのＰＫ２から、
【００９４】
【数１３０】
2009130695.tif 000024
により、データσｉの暗号文ψｉを作成する（Ｓ６４２）。
【００９５】
さらに、関数計算部１３７が、記憶部１３８に格納された共有データｒ２を用いて、
【００９６】
【数１３１】
2009130695.tif 000025
を計算する（Ｓ６４３）。
【００９７】
そして、第三の暗号化部１３６が、ステップＳ６４３で計算したＫｉを用いて、
【００９８】
【数１３２】
2009130695.tif 000026
により、メッセージ文Ｍｉを暗号化する（Ｓ６４４）。
【００９９】
そして、送信者側装置１３０の演算部１３２は、（ψｉ，χｉ）をメッセージ文Ｍｉの暗号文として、通信部１３９を用いて、受信者側装置１１０に送信する（Ｓ６４５）。
【０１００】
５．受信者側装置１１０での処理
受信者側装置１１０は、暗号文（ψｉ、χｉ）を受信すると（Ｓ６４６）、第二の復号化部１１６が、受信した暗号文（ψｉ、χｉ）に対して、記憶部１３８に格納された秘密鍵ＳＫ２を用いて、
【０１０１】
【数１３３】
2009130695.tif 000027
により、データσｉを計算する（Ｓ６４７）。
【０１０２】
さらに、関数計算部１１９が、記憶部１２０に格納された共有データｒ１、ｒ２を用いて、
【０１０３】
【数１３４】
2009130695.tif 000028
を作成する（Ｓ６４８）。
【０１０４】
そして、第三の復号化部１１７が、ステップＳ６４８で作成したＫｉを用いて、
【０１０５】
【数１３５】
2009130695.tif 000029
により、メッセージ文Ｍｉを計算する（Ｓ６４９）。
【０１０６】
さらに、検査部１１８が、
【０１０７】
【数１３６】
2009130695.tif 000030
が成立するか否かで検証を行い（Ｓ６５０）、一致すると判断されれば（検査にパスすれば）、Ｍｉを出力し、パスしなければエラーを表示するメッセージを出力する。
【０１０８】
本実施例の暗号方法は、非特許文献２に記載の暗号方式を公開鍵暗号方式２として利用した場合について述べたものである。本実施例の暗号方法は、標準計算機モデル上において、公開鍵暗号方式１がＩＮＤ−ＣＣＡ安全であり、公開鍵暗号方式２が一定の条件の下でＯＷ−ＣＰＡ安全であり、かつ、秘密鍵暗号方式がＩＮＤ−ＣＰＡ安全であるとき、ＩＮＤ−ＣＣＡ安全であることが示される。
【０１０９】
このように、本実施形態では、第一の実施形態に記載された技術に比べて、公開鍵暗号方式１と秘密鍵暗号方式の安全性要求を低く出来るメリットがある。
【０１１０】
また、本実施形態における公開鍵暗号方式１は、送信者と受信者間で乱数を共有するための鍵共有方式に置き換えてもよい。
（第三の実施形態）
本実施形態では、安全性の低い公開鍵暗号方法と秘密鍵暗号方法を用いて安全性の高いハイブリッド型公開鍵暗号方法を構築するための方法について述べる。
【０１１１】
第二の実施形態では、ハイブリッド型公開鍵暗号方法を公開鍵暗号方式２として利用した。この方法は、ベースとなる公開鍵暗号は確率暗号である必要があり、さらに、γ-uniformityと呼ばれる条件を満たすことが必要となる。ここでは、γ-uniformityなどの特別な条件を必要としない一般的確率暗号に適用できるハイブリッド型公開鍵暗号方式の一般的構築方法について述べる。
【０１１２】
ここで、送信者側装置１３０及び受信者側装置１１０の間では、公開鍵暗号方式と秘密鍵暗号方式がそれぞれ利用でき、これらの暗号方法を利用しながら、安全性が強化された新しい公開鍵暗号方法を構築する技術について述べる。
【０１１３】
図７は、第三の実施形態における通信システム１００での処理を示すフローチャートである。
【０１１４】
１．受信者側装置１１０での処理
受信者側装置１１０では、オペレータの指示に応じて、第一の鍵情報生成部１１３が、暗号方式ＰＫＥにおける暗号化鍵ＰＫ’及び復号化鍵ＳＫを、
【０１１５】
【数１３７】
2009130695.tif 000031
により作成する（Ｓ６６０）。
【０１１６】
但し、ｋはセキュリティ・パラメータであり、暗号化鍵ＰＫ’及び復号化鍵ＳＫの安全性を考慮して予め設定しておく。
【０１１７】
そして、受信者側装置１１０は、通信部１２１及び出力部１２２を用いて、ＰＫ＝（ＰＫ’、ｌ、ｍ、ｎ、Ｆ、Ｇ、Ｈ）を公開鍵として公開し（Ｓ６６１）、ＳＫを受信者の秘密鍵として記憶部１２０に保管する。
【０１１８】
ここで、Ｆ、Ｇ及びＨは、
【０１１９】
【数１３８】
2009130695.tif 000032
なるハッシュ関数を表す。
【０１２０】
また、ｌ、ｍ、ｎは自然数であり、ＣＯＩＮＰＫＥは公開鍵暗号ＰＫＥの暗号化の際に利用される乱数からなる空間、ＫＳＰＳＫＥは秘密鍵暗号方式ＳＫＥの鍵空間を意味する。
【０１２１】
なお、本実施形態における関数計算部１１９、１３７は、ハッシュ関数Ｆ、Ｇ及びＨのそれぞれの計算を行う機能を備えているものとする。
【０１２２】
２．送信者側装置１３０での処理
送信者側装置１３０では、送信者側装置１００のオペレータの指示に応じて、演算部１３２が、通信部１３９を介して、受信者側装置１１０の公開鍵ＰＫ（ＰＫ’、ｌ、ｍ、ｎ、Ｆ、Ｇ、Ｈ）を取得し、記憶部１３８に記憶する（Ｓ６６２）。
【０１２３】
そして、送信者側装置１３０は、オペレータより、入力部１３１を介して、メッセージ文Ｍ∈{０，１}ｎの入力を受け付ける（Ｓ６６３）。
【０１２４】
次に、送信者側装置１３０では、乱数生成部１３３が、
【０１２５】
【数１３９】
2009130695.tif 000033
をランダムに選ぶ（Ｓ６６４）。
【０１２６】
そして、関数計算部１３７が、Ｆｋ（σ）を算出し、第二の暗号化部１３５が、ステップＳ６６２で取得した公開鍵ＰＫ及びＦｋ（σ）を用いて、
【０１２７】
【数１４０】
2009130695.tif 000034
により、暗号文ψを作成する（Ｓ６６５）。
【０１２８】
但し、ＰＫＥ．Ｅｎｃ（ＰＫ、Ｍ；Ｒ）は、メッセージ文Ｍを公開鍵ＰＫおよび乱数Ｒを用いて暗号化した結果を意味する。
【０１２９】
さらに、関数計算部１３７が、データ暗号化鍵Ｋを、
【０１３０】
【数１４１】
2009130695.tif 000035
により算出する（Ｓ６６６）。
【０１３１】
さらに、関数計算部１３７が、
【０１３２】
【数１４２】
2009130695.tif 000036
を計算する（Ｓ６６７）。
【０１３３】
そして、第三の暗号化部１３６が、データ暗号化鍵Ｋを用いて、
【０１３４】
【数１４３】
2009130695.tif 000037
により、暗号文χを作成する（Ｓ６６８）。
【０１３５】
送信者側装置１３０では、演算部１３２が、（ψ、χ）をメッセージ文Ｍの暗号文として、通信部１３９を用いて、受信者側装置１１０に送信する（Ｓ６６９）。
【０１３６】
３．受信者側装置１１０での処理
受信者側装置１１０では、暗号文（ψ、χ）を受信し（Ｓ６７０）、第二の復号化部１１６が、受信した暗号文（ψ、χ）に対して、記憶部１２０に格納された秘密鍵ＳＫを用いて、
【０１３７】
【数１４４】
2009130695.tif 000038
により、σ∈｛０，１｝ｍを計算する（Ｓ６７１）。
【０１３８】
さらに、関数計算部１１９が、データ暗号化鍵Ｋを、
【０１３９】
【数１４５】
2009130695.tif 000039
により算出し（Ｓ６７２）、第三の復号化部１１７が、データ暗号化鍵Ｋを用いて、
【０１４０】
【数１４６】
2009130695.tif 000040
により、Ｍ∈｛０，１｝ｎおよびτ∈｛０，１｝ｌを計算する（Ｓ６７３）。
【０１４１】
そして、検査部１１８が、
【０１４２】
【数１４７】
2009130695.tif 000041
が成立することを検査し（Ｓ６７４）、検査にパスすれば出力部１２２に、Ｍを出力し、パスしなければエラーを表示するメッセージを出力部１２２に出力する。
【０１４３】
本実施形態に示した技術では、公開鍵暗号ＰＫＥがＯＷ−ＣＰＡ（選択平文攻撃に対して一方向）安全であり、かつ、秘密鍵暗号ＳＫＥがＩＮＤ−ＣＰＡ（選択平文攻撃に対して識別不能）安全であるとき、得られるハイブリッド型公開鍵暗号はＩＮＤ−ＣＣＡ（選択暗号文攻撃に対して識別不能）安全であることが示される。利用されるハッシュ関数は多いが、ベースとなる（確率的）公開鍵暗号に条件が付かないため、幅広く適用可能である。
（第四の実施形態）
本実施形態では、第一の実施形態において、第四の実施形態のハイブリッド型公開鍵暗号方法を公開鍵暗号２として用いた場合の暗号通信方法について述べる。
【０１４４】
第一の実施形態の場合と同様、送信者側装置１３０及び受信者側装置１１０の間では、２つの公開鍵暗号方式（公開鍵暗号方式１、２）と１つの秘密鍵暗号方式が利用でき、これらの暗号方法を利用しながら新しい暗号通信システムを構築する技術について述べる。
【０１４５】
図８は、第四の実施形態における通信システム１００での処理を示すフローチャートである。
【０１４６】
１．受信者側装置１１０での処理
受信者側装置１１０では、第一の鍵情報生成部１１３が、暗号方式ＰＫＥ１における暗号化鍵ＰＫ１及び復号化鍵ＳＫ１を、
【０１４７】
【数１４８】
2009130695.tif 000042
により作成し（Ｓ６８０）、さらに、第二の鍵情報生成部１１４が、暗号方式ＰＫＥ２における暗号化鍵ＰＫ２及び復号化鍵ＳＫ２を、
【０１４８】
【数１４９】
2009130695.tif 000043
により作成する（Ｓ６８１）。
【０１４９】
但し、ｋはセキュリティ・パラメータであり、暗号化鍵ＰＫ１、ＰＫ２及び復号化鍵ＳＫ１、ＳＫ２の安全性を考慮して、予め特定の値を設定しておく。
【０１５０】
そして、受信者側装置１１０は、通信部１２１及び出力部１２２を用いて、（ＰＫ１、ＰＫ２、ｌ、ｍ、ｎ、Ｆ、Ｇ、Ｈ）を公開鍵として公開し（Ｓ６８２）、(ＳＫ１、ＳＫ２)を受信者の秘密鍵として記憶部１２０に保管する。
【０１５１】
ここで、Ｆ、Ｇ及びＨは、
【０１５２】
【数１５０】
2009130695.tif 000044
なる擬似ランダム関数を表す。
【０１５３】
また、ｌ、ｍ、ｎは自然数であり、ＣＯＩＮＰＫＥは公開鍵暗号ＰＫＥの暗号化の際に利用される乱数からなる空間、ＫＳＰＳＫＥは秘密鍵暗号方式ＳＫＥの鍵空間を意味する。
【０１５４】
２．送信者側装置１３０での処理
送信者側装置１３０では、送信者側装置１００のオペレータの指示に応じて、演算部１３２が、通信部１３９を介して、受信者側装置１１０の公開鍵（ＰＫ１、ＰＫ２、ｌ、ｍ、ｎ、Ｆ、Ｇ、Ｈ）を取得し、記憶部１３８に記憶する（Ｓ６８３）。
【０１５５】
次に、送信者側装置１３０の乱数生成部１３３は、
【０１５６】
【数１５１】
2009130695.tif 000045
をランダムに選び、記憶部１３８に格納する（Ｓ６８４）。
【０１５７】
さらに、第一の暗号化部１３４が、ステップＳ６８３で取得した公開鍵のうちのＰＫ１を用いて、
【０１５８】
【数１５２】
2009130695.tif 000046
により、データ（ｒ１、ｒ２、ｒ３）の暗号文φを作成する（Ｓ６８５）。
【０１５９】
そして、送信者側装置１３０の演算部１３２が、通信部１３９を用いて、暗号文φを受信者側装置１１０に送信する（Ｓ６８６）。
【０１６０】
３．受信者側装置１１０での処理
受信者側装置１１０は、暗号文φを受信し（Ｓ６８７）、第一の復号化部１１５が、記憶部１２０に格納された秘密鍵ＳＫ１を用いて、
【０１６１】
【数１５３】
2009130695.tif 000047
により、データ（ｒ１、ｒ２、ｒ３）を復号化し、記憶部１２０に格納する（Ｓ６８８）。
【０１６２】
４．送信者側装置１３０での処理
送信者側装置１３０と受信者側装置１１０は、単数および複数回（ｉ＝１，２，・・・）の暗号通信を行う。以下、ｉ番目の暗号通信について述べる。
【０１６３】
送信者側装置１３０は、オペレータより、入力部１１１を介して少なくとも一つ以上のメッセージ文Ｍｉ∈{０，１}ｎの入力を受け付ける（Ｓ６８９）。
【０１６４】
次に、送信者側装置１３０の乱数生成部１３３は、
【０１６５】
【数１５４】
2009130695.tif 000048
をランダムに選ぶ（Ｓ６９０）。
【０１６６】
そして、関数計算部１３７が、記憶部１３８に格納された共有データｒ１を用いて、Ｆｋ（σ）を計算し、第二の暗号化部１３５が、ステップＳ６８３で取得した公開鍵のうちのＰＫ２とＦｋ（σ）を用いて、
【０１６７】
【数１５５】
2009130695.tif 000049
により、ψｉを作成する（Ｓ６９１）。
【０１６８】
さらに、関数計算部１３７が、記憶部１３８に格納された共有データｒ３を用いて、データ暗号化鍵Ｋｉを、
【０１６９】
【数１５６】
2009130695.tif 000050
により作成する（Ｓ６９２）。
【０１７０】
さらに、関数計算部１３８が、記憶部１３８に格納された共有データｒ２を用いて、
【０１７１】
【数１５７】
2009130695.tif 000051
を作成する（Ｓ６９３）。
【０１７２】
次に、第三の暗号化部１３６が、データ暗号化鍵Ｋｉを用いて、
【０１７３】
【数１５８】
2009130695.tif 000052
を作成する（Ｓ６９４）。
【０１７４】
そして、演算部１３２が、通信部１３９を介して、（ψｉ、χｉ）をメッセージ文Ｍｉの暗号文として、受信者側装置１１０に送信する（Ｓ６９５）。
【０１７５】
５．受信者側装置１１０での処理
受信者側装置１１０は、暗号文（ψｉ、χｉ）を受信すると（Ｓ６９６）、第二の復号化部１１６が、受信した暗号文（ψｉ、χｉ）に対して、記憶部１２０に格納された秘密鍵ＳＫ２を用いて、
【０１７６】
【数１５９】
2009130695.tif 000053
により、σｉ∈｛０，１｝ｍを計算する（Ｓ６９７）。
【０１７７】
さらに、関数計算部１１９が、記憶部１２０に格納された共有データｒ３を用いて、データ暗号化鍵Ｋｉを、
【０１７８】
【数１６０】
2009130695.tif 000054
により作成し（Ｓ６９８）、第三の復号化部１１７が、データ暗号化鍵Ｋｉを用いて、
【０１７９】
【数１６１】
2009130695.tif 000055
により、Ｍｉ∈｛０，１｝ｎおよびτｉ∈｛０，１｝ｌを計算する（Ｓ６９９）。
【０１８０】
そして、検査部１１８が、記憶部１２０に格納された共有データｒ２を用いて、
【０１８１】
【数１６２】
2009130695.tif 000056
を検査し（Ｓ７００）、検査にパスすればＭｉを出力部１２２に出力し、パスしなければエラーを表示するメッセージを出力部１２２に出力する。
【０１８２】
本実施例の暗号方法は、標準計算機モデル上において、公開鍵暗号方式１がＩＮＤ−ＣＣＡ安全であり、公開鍵暗号方式２がＯＷ−ＣＰＡ安全であり、かつ、秘密鍵暗号方式がＩＮＤ−ＣＰＡ安全であるとき、ＩＮＤ−ＣＣＡ安全であることが示される。一般に、ＯＷ−ＣＰＡ安全な公開鍵暗号は、ＩＮＤ−ＣＣＡ安全である公開鍵暗号に比べて、安全性が低い反面、方式自体のバリエーションが豊富で、かつ、暗号化・復号化処理の効率性に優れる。
【０１８３】
本実施形態の通信システムでは、比較的計算コストの大きい公開鍵暗号方式１を予備通信に１回のみ利用するだけで、複数回行われる本データの暗号通信では、効率的な処理が可能な公開鍵暗号方式２が利用される。このため、全体として安全性と効率性に優れた暗号通信が可能となる。
【０１８４】
また、本実施例の方法では、メッセージ文の長さを任意に設定できるため、大容量のデータの暗号通信にも適している。本実施例における公開鍵暗号方式１は、送信者側装置１３０と受信者側装置１１０との間で乱数を共有するための鍵共有方式に置き換えてもよい。
【図面の簡単な説明】
【０１８５】
【図１】通信システムの概略図。
【図２】受信者側装置の概略図。
【図３】送信者側装置の概略図。
【図４】コンピュータの概略図。
【図５】第一の実施形態における通信システムでの処理を示すフローチャート。
【図６】第二の実施形態における通信システムでの処理を示すフローチャート。
【図７】第三の実施形態における通信システムでの処理を示すフローチャート。
【図８】第四の実施形態における通信システムでの処理を示すフローチャート。
【符号の説明】
【０１８６】
１００  通信システム
１１０  受信者側装置
１１１  入力部
１１２  演算部
１１３  第一の鍵情報生成部
１１４  第二の鍵情報生成部
１１５  第一の復号化部
１１６  第二の復号化部
１１７  第三の復号化部
１１８  検査部
１１９  関数計算部
１２０  記憶部
１２１  通信部
１２２  出力部
１３０  送信者側装置
１３１  入力部
１３２  演算部
１３３  乱数生成部
１３４  第一の暗号化部
１３５  第二の暗号化部
１３６  第三の暗号化部
１３７  関数計算部
１３８  記憶部
１３９  通信部
１４０  出力部
【図１】
2009130695.tif 000165
【図２】
2009130695.tif 000166
【図３】
2009130695.tif 000167
【図４】
2009130695.tif 000168
【図５】
2009130695.tif 000169
【図６】
2009130695.tif 000170
【図７】
2009130695.tif 000171
【図８】
2009130695.tif 000172