説明

暗号化システム、暗号化装置、復号装置、暗号化方法、プログラム

【課題】複数の条件で多重に暗号化を行う場合に、暗号文の長さを短くし、全体の完全性を保証するワンタイム署名が不要となる暗号化方式を提供する。
【解決手段】本発明の暗号化システムは、N回の暗号化を行う多重暗号化システムであって、少なくとも暗号化装置、復号装置を備えている。暗号化装置は、暗号化入力部、乱数生成部、暗号処理部、暗号文出力部を備える。本発明では、N個の暗号化手段を縦列に接続する。また、各暗号化手段で使用される乱数を、復号時にも確認ができる所定のルールで変換されたものとする。そして、復号時には、所定のルールで変換された乱数で暗号化されていることを確認する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は情報セキュリティ技術の応用技術に関するものであり、複数の条件で多重に暗号化を行う暗号化システム、暗号化装置、復号装置、暗号化方法、プログラムに関するものである。
【背景技術】
【0002】
暗号化を行うときに、複数の条件で暗号化したいときがある。例えば、非特許文献1のTR−PKE(Timed-Release Public-Key Encryption)は、復号可能な時刻を暗号化の際に指定できる公開鍵暗号である。復号時刻と公開鍵を用いて暗号化を行う送信者(暗号化装置)、現在時刻に対応した時報の生成を行うタイムリリースサーバ、秘密鍵とタイムリリースサーバからの時報を用いて復号を行う受信者(復号装置)の三者で構成される。図1は、このような従来の複数の条件で暗号化する暗号化方式を説明するための図である。従来の暗号化方式では、平文mを条件の数Nだけ分割し、それぞれを指定された条件の暗号化手段932−1,…,932−Nで暗号化する。そして、得られたメッセージc,…,cを連結して暗号文Cを出力する。また、一部だけを再利用するような攻撃が起きないようにするために、全体の完全性を保証するワンタイム署名を付加する。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】J. H. Cheon, N. Hopper, Y. Kim, and I. Osipkov,“Provably secure timed-release public key encryption,”ACM Trans. Inf. Syst. Secur., 11(2), pp.1-44, ACM, 2008,[平成21年12月23日検索]、インターネット<URL: http://jglobal.jst.go.jp/detail.php?JGLOBAL_ID=200902205779400428>.
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来の方式の場合、暗号文が条件の数(暗号化手段の数)だけ必要となる。したがって、暗号文の長さが長くなる。また、全体の完全性を保証するワンタイム署名を付けなければならない。したがって、演算量が多くなる。
【0005】
本発明は、複数の条件で多重に暗号化を行う場合に、従来よりも暗号文の長さを短くし、全体の完全性を保証するワンタイム署名が不要となる暗号化方式を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の暗号化方式では、N個(ただし、Nは2以上の整数)の暗号化手段を縦列に接続する。また、各暗号化手段で使用される乱数を、復号時にも確認ができる所定のルールで変換されたものとする。そして、復号時には、所定のルールで変換された乱数で暗号化されていることを確認する。
【0007】
本発明の暗号化システムは、少なくとも暗号化装置、復号装置を備えている。また、タイムリリースサーバも備えてもよい。暗号化装置、復号装置、タイムリリースサーバは、ネットワークなどで接続されている。ここで、Nは2以上の整数、nは2以上N以下の整数、Kは1以上N以下の整数、kは1以上K以下の整数とする。本発明の暗号化装置は、少なくとも暗号化入力部、乱数生成部、暗号処理部、暗号文出力部を備える。本発明の復号装置は、少なくとも復号鍵生成部、復号入力部、復号処理部、復号出力部を備える。まず、復号装置の復号鍵生成部が、K個の秘密鍵sk’,…,sk’と秘密鍵に対応するK個の公開鍵pk’,…,pk’を生成し、前記公開鍵pk’,…,pk’を公開する。
【0008】
暗号化装置では、次のように処理を行う。暗号化入力部が、平文mと、N個の公開鍵pk,…,pkを受け取る。ここで、N個の公開鍵pk,…,pkとは、K個の公開鍵pk’,…,pk’とN−K個の復号装置以外からの公開鍵pk”,…,pkN−K”であって、添え字の番号は、暗号化の順番を示している。つまり、タイムリリースサーバなどの復号装置以外からの公開鍵も用いる場合には、公開鍵pk,…,pkは、公開鍵pk’,…,pk’と公開鍵pk”,…,pkN−K”を暗号化の順番にしたがって並べなおしたものである。
【0009】
乱数生成部は、乱数rを生成する。暗号処理部は、少なくとも乱数rと公開鍵pkとを用いて平文mを暗号化してメッセージcを求め、少なくとも所定のルールでメッセージcn−1を利用して求めた乱数rと公開鍵pkとを用いてメッセージcn−1を暗号化してメッセージcを求める処理をn=2〜Nまで繰り返してメッセージcを求める。なお、所定のルールでメッセージcn−1を利用して求めた乱数rとは、例えば、r=H(cn−1)とすればよいが、このルールに限る必要はなく、少なくともメッセージcn−1を利用して乱数rを求めていればよい。また、例えば、公開鍵pkがタイムリリースサーバの公開鍵の場合には指定時刻tも用いて暗号化する。暗号文出力部はメッセージcを暗号文Cとして出力する。
【0010】
復号装置では、次のように処理を行う。復号入力部が、暗号文Cと、N−K個の公開鍵pk”,…,pkN−K”を受け取る。復号処理部は、まず、秘密鍵sk’,…,sk’と公開鍵pk”,…,pkN−K”とをあらかじめ定められたN回の暗号化の順番と対応するように並べて復号鍵dk,…,dkとし、暗号文Cをメッセージc’とする。そして、
(1)少なくとも復号鍵dkを用いてメッセージc’を復号してメッセージcn−1’を求める個別復号処理と、
(2)少なくとも所定のルールでメッセージcn−1’を利用して求めた乱数r’とn回目の暗号化に対応する公開鍵を用いてメッセージcn−1’を暗号化してメッセージc”を求める個別暗号化処理と、
(3)c’=c”であることを確認する個別検証処理と
をn=N〜2まで繰り返してメッセージc’を求め、復号鍵dkを用いてメッセージc’を復号して平文m’を求める。なお、復号鍵dkがタイムリリースサーバの公開鍵の場合には個別復号処理では、タイムリリースサーバから受け取った時報も用いて復号する。個別暗号化処理の「所定のルールでメッセージcn−1’を利用して求めた」とは、例えば、r=H(cn−1’)とすればよいが、このルールに限る必要はなく、少なくともメッセージcn−1’を利用して乱数rを求めていればよい。また、個別検証処理で、c’≠c”であると確認された場合にはエラーを出力し、処理を中止する。復号出力部は、平文m’を出力する。
【発明の効果】
【0011】
本発明の暗号化方式によれば、暗号文は各暗号化手段からの出力の連結ではなく、N番目の暗号化手段の出力である。したがって、暗号文の長さを短くできる。また、平文全体やメッセージ全体を暗号化する処理を繰り返すため、部分的な復号ができないため全体の完全性を保証するワンタイム署名は不要である。さらに、所定のルールでメッセージcn−1を利用して求めた乱数rをn番目の暗号化に使用するので、復号時にも乱数rを確認できる。また、復号時には、所定のルールで変換された乱数で暗号化されていることを確認するので、N番目までの暗号化のどこかを飛ばして処理することができない。したがって、従来の安全性を保つことができる。
【図面の簡単な説明】
【0012】
【図1】従来の複数の条件で暗号化する暗号化方式を説明するための図。
【図2】本発明の暗号化方式の考え方を説明するための図。
【図3】実施例1の暗号化システムの機能構成例を示す図。
【図4】実施例1の暗号化システムの処理フローを示す図。
【図5】実施例2と実施例2変形例1の暗号化システムの機能構成例を示す図。
【図6】実施例2と実施例2変形例1の暗号化システムの処理フローを示す図。
【図7】実施例2変形例2の暗号化システムの機能構成例を示す図。
【図8】実施例2変形例2の暗号化システムの処理フローを示す図。
【発明を実施するための形態】
【0013】
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【0014】
本発明の暗号化方式では、N個(ただし、Nは2以上の整数)の暗号化手段を縦列に接続する。また、各暗号化手段732−1,…,Nで使用される乱数r,…,rを、復号時にも確認ができる所定のルールで変換されたものとする。そして、復号時には、所定のルールで変換された乱数で暗号化されていることを確認する。図2は、本発明の暗号化方式の考え方を説明するための図である。平文mが入力されると、暗号化手段732−1が乱数rを用いて平文mを暗号化し、メッセージcを出力する。また、暗号化手段732−n(ただし、nは2以上N以下の整数)が乱数rを用いてメッセージcn−1を暗号化し、メッセージcを出力する。ただし、乱数rはメッセージcn−1を利用して所定のルールで変換されたものである。例えば、メッセージcn−1のハッシュ値(H(cn−1))を乱数rとすればよい。この処理を繰り返すことで、最終的には、暗号化手段732−Nが乱数rを用いてメッセージcN−1を暗号化し、メッセージcを出力する。そして、メッセージcがこの暗号化方式の暗号文Cとなる。
【実施例1】
【0015】
実施例1では、一般的な公開暗号方式を多重化した例を示す。図3に実施例1の暗号化システムの機能構成例を、図4に実施例1の暗号化システムの処理フローを示す。暗号化システムは、暗号化装置100、復号装置200を備えている。暗号化装置100と復号装置200は、ネットワーク900で接続されている。Nは2以上の整数、nは2以上N以下の整数、Hはハッシュ関数とする。
【0016】
暗号化装置100は、暗号化入力部110、乱数生成部120、暗号処理部130、暗号文出力部140、暗号化記録部190を備える。復号装置200は、復号鍵生成部210、復号入力部220、復号処理部230、復号出力部240、復号記録部290を備える。
【0017】
まず、復号装置200の復号鍵生成部210は、N個の秘密鍵sk,…,skと秘密鍵に対応するN個の公開鍵pk,…,pkを生成し、公開鍵pk,…,pkを公開する(S210)。また、N個の秘密鍵sk,…,skと秘密鍵に対応するN個の公開鍵pk,…,pkの生成と、公開鍵pk,…,pkの公開は、外部の装置(例えば鍵生成装置)が行ってもよい。この場合は復号装置200には復号鍵生成部210は不要である。なお、復号鍵生成部210の有無にかかわらず、秘密鍵sk,…,skと公開鍵pk,…,pkは、復号記録部290に記録される。
【0018】
暗号化装置100の暗号化入力部110は、平文mと、N個の公開鍵pk,…,pkを受け取り(S110)、暗号化記録部190に記録する。乱数生成部120は、乱数rを生成し(S120)、暗号化記録部190に記録する。暗号処理部130は、個別暗号化手段132−1,…,132−Nを具備する。暗号処理部130では、個別暗号化手段132−1が、乱数rと公開鍵pkとを用いて平文mを暗号化してメッセージcを求める(S132−1)。個別暗号化手段132−nが、乱数H(cn−1)と公開鍵pkとを用いてメッセージcn−1を暗号化してメッセージcを求める処理(S132−n)をn=2〜Nまで繰り返し、メッセージcを求める(S130)。暗号文出力部140は、メッセージcを暗号文Cとして出力する(S140)。
【0019】
復号装置200の復号入力部220は、暗号文Cを受け取り、復号記録部290に記録する(S220)。復号処理部230は、個別復号手段231−1,…,231−N、個別暗号化手段232−1,…,232−N−1、個別検証手段235を具備する。復号処理部230は、暗号文Cをメッセージc’とし、個別復号手段231−nが、秘密鍵skを用いてメッセージc’を復号してメッセージcn−1’を求める(S231−n)。個別暗号化手段232−nは、乱数H(cn−1’)と公開鍵pkとを用いて前記メッセージcn−1’を暗号化してメッセージc”を求める(S232−n)。個別検証手段235は、c’=c”であることを確認する(S235−n)。c’=c”であれば次の処理に進み、c’≠c”であればエラーを出力し、処理を中止する。復号処理部230は、個別復号手段231−n、個別暗号化手段232−n、個別検証手段235の処理をn=Nからn=2まで繰り返してメッセージc’を求める。そして、個別復号手段231−1が、秘密鍵skを用いてメッセージc’を復号して平文m’を求める(S230)。復号出力部240は、平文m’を出力する(S240)。
【0020】
本発明の暗号化方式によれば、暗号文は各暗号化手段からの出力の連結ではなく、N番目の暗号化手段の出力である。したがって、暗号文の長さを短くできる。また、平文全体やメッセージ全体を暗号化する処理を繰り返すため、部分的な復号ができないため全体の完全性を保証するワンタイム署名は不要である。さらに、所定のルールでメッセージcn−1を利用して求めた乱数H(cn−1)をn番目の暗号化に使用するので、復号時にも乱数H(cn−1’)を確認できる。また、復号時には、所定のルールで変換された乱数で暗号化されていることを確認するので、N番目までの暗号化のどこかを飛ばして処理することができない。したがって、従来の安全性を保つことができる。
【実施例2】
【0021】
実施例2では、一般的な公開暗号方式とタイムリリース暗号方式とを1段ずつ組み合わせた例を示す。この組合せでは、秘密鍵を知っている人が指定時刻に暗号文を復号できる。図5に実施例2の暗号化システムの機能構成例を、図6に実施例2の暗号化システムの処理フローを示す。本実施例の暗号化システムは、暗号化装置300’、復号装置400’、タイムリリースサーバ800を備えている。暗号化装置300’と復号装置400’とタイムリリースサーバ800は、ネットワーク900で接続されている。Nは2以上の整数、nは2以上N以下の整数、Hはハッシュ関数とする。
【0022】
暗号化装置300’は、暗号化入力部310’、乱数生成部120、暗号処理部330’、暗号文出力部140、暗号化記録部390’を備える。復号装置400’は、復号鍵生成部410’、復号入力部420’、復号処理部430’、復号出力部240、復号記録部490’を備える。タイムリリースサーバ800は、タイムリリース鍵生成部810と時報生成部820を備える。
【0023】
タイムリリースサーバ800のタイムリリース鍵生成部810は、秘密鍵skTSと秘密鍵に対応する公開鍵pkTSを生成し、公開鍵pkTSを公開する(S810)。復号装置400’の復号鍵生成部410’は、秘密鍵skと秘密鍵に対応する公開鍵pkを生成し、公開鍵pkを公開する(S410’)。また、秘密鍵skと秘密鍵に対応する公開鍵pkの生成と、公開鍵pkの公開は、外部の装置(例えば鍵生成装置)が行ってもよい。この場合は復号装置400’には復号鍵生成部410’は不要である。なお、復号鍵生成部410’の有無にかかわらず、復号記録部490’は、秘密鍵skと公開鍵pkを記録する。
【0024】
暗号化装置300’の暗号化入力部310’は、平文mと指定時刻tと、タイムリリースサーバ800の公開鍵pkTSと、復号装置の公開鍵pkを受け取り(S310’)、暗号化記録部390’に記録する。乱数生成部120は、乱数rを生成し(S120)、暗号化記録部390’に記録する。暗号処理部330’は、個別暗号化手段332’−1、332’−2を具備する。個別暗号化手段332’−1は、乱数rと公開鍵pkTSと指定時刻tを用いて平文mを暗号化してメッセージcを求める(S332’−1)。個別暗号化手段332’−2は、乱数H(c)と公開鍵pkとを用いてメッセージcを暗号化してメッセージcを求める(S332’−2)。そして、メッセージcを暗号文Cとする(S330’)。暗号文出力部140は、暗号文Cを出力する(S140)。
【0025】
復号装置400’の復号入力部420’は、暗号文Cと、タイムリリースサーバの公開鍵pkTSを受け取り(S420’)、復号記録部490’に記録する。タイムリリースサーバ800の時報生成部820は、秘密鍵skTSと公開鍵pkTSと現在の時刻から時報sを求め、定期的に時報sを出力する(S820)。復号処理部430’は、個別復号手段431’−1、431’−2、個別暗号化手段432’−2、個別検証手段435’を具備する。個別復号手段431’−2は、秘密鍵skを用いて暗号文Cを復号してメッセージc’を求める(S431’−2)。個別暗号化手段432’−2は、乱数H(c’)と公開鍵pkとを用いてメッセージc’を暗号化してメッセージc”を求める(S432’−2)。個別検証手段435’は、C=c”であることを確認する(S435’−2)。C=c”であれば次の処理に進み、C≠c”であればエラーを出力し、処理を中止する。個別復号手段431’−1は、公開鍵pkTSと前記指定時刻tに対応した時報sを用いてメッセージc’を復号して平文m’を求める(S431’−1)。復号出力部240は、平文m’を出力する(S240)。
【0026】
本発明の暗号化方式によれば、暗号文は各暗号化手段からの出力の連結ではなく、2番目の暗号化手段の出力である。したがって、暗号文の長さを短くできる。また、平文全体やメッセージ全体を暗号化する処理を繰り返すため、部分的な復号ができないため全体の完全性を保証するワンタイム署名は不要である。さらに、所定のルールでメッセージcを利用して求めた乱数H(c)を2番目の暗号化に使用するので、復号時にも乱数H(c’)を確認できる。また、復号時には、所定のルールで変換された乱数で暗号化されていることを確認するので、暗号化を飛ばして処理することができない。したがって、従来の安全性を保つことができる。
【0027】
[変形例1]
実施例2の暗号処理部330’では、タイムリリース暗号方式で暗号化した結果を公開鍵暗号方式で暗号化した。本変形例では、この順番を逆にした例を示す。図は実施例2と同じ図を用いる。すなわち、図5に実施例2変形例1の暗号化システムの機能構成例を、図6に実施例2変形例1の暗号化システムの処理フローを示す。本変形例の暗号化システムは、暗号化装置300”、復号装置400”、タイムリリースサーバ800を備えている。暗号化装置300”と復号装置400”とタイムリリースサーバ800は、ネットワーク900で接続されている。Nは2以上の整数、nは2以上N以下の整数、Hはハッシュ関数とする。
【0028】
暗号化装置300”は、暗号化入力部310’、乱数生成部120、暗号処理部330”、暗号文出力部140、暗号化記録部390’を備える。復号装置400”は、復号鍵生成部410’、復号入力部420’、復号処理部430”、復号出力部240、復号記録部490’を備える。タイムリリースサーバ800は、タイムリリース鍵生成部810と時報生成部820を備える。
【0029】
タイムリリースサーバ800のタイムリリース鍵生成部810は、秘密鍵skTSと秘密鍵に対応する公開鍵pkTSを生成し、公開鍵pkTSを公開する(S810)。復号装置400”の復号鍵生成部410’は、秘密鍵skと秘密鍵に対応する公開鍵pkを生成し、公開鍵pkを公開する(S410’)。また、秘密鍵skと秘密鍵に対応する公開鍵pkの生成と、公開鍵pkの公開は、外部の装置(例えば鍵生成装置)が行ってもよい。この場合は復号装置400”には復号鍵生成部410’は不要である。なお、復号鍵生成部410’の有無にかかわらず、復号記録部490’は、秘密鍵skと公開鍵pkを記録する。
【0030】
暗号化装置300”の暗号化入力部310’は、平文mと指定時刻tと、タイムリリースサーバ800の公開鍵pkTSと、復号装置の公開鍵pkを受け取り(S310’)、暗号化記録部390’に記録する。乱数生成部120は、乱数rを生成し(S120)、暗号化記録部390’に記録する。暗号処理部330”は、個別暗号化手段332”−1、332”−2を具備する。個別暗号化手段332”−1は、乱数rと公開鍵pkとを用いて平文mを暗号化してメッセージcを求める(S332”−1)。個別暗号化手段332”−2は、乱数H(c)と公開鍵pkTSと指定時刻tを用いてメッセージcを暗号化してメッセージcを求める(S332”−2)。そして、メッセージcを暗号文Cとする(S330”)。暗号文出力部140は、暗号文Cを出力する(S140)。
【0031】
復号装置400”の復号入力部420’は、暗号文Cと、タイムリリースサーバの公開鍵pkTSを受け取り(S420”)、復号記録部490’に記録する。タイムリリースサーバ800の時報生成部820は、秘密鍵skTSと公開鍵pkTSと現在の時刻から時報sを求め、定期的に時報sを出力する(S820)。復号処理部430”は、個別復号手段431”−1、431”−2、個別暗号化手段432”−2、個別検証手段435”を具備する。個別復号手段431”’−2は、公開鍵pkTSと前記指定時刻tに対応した時報sを用いて暗号文Cを復号してメッセージc’を求める(S431”−2)。個別暗号化手段432”−2は、乱数H(c’)と公開鍵pkTSと指定時刻tを用いてメッセージc’を暗号化してメッセージc”を求める(S432”−2)。個別検証手段435”は、C=c”であることを確認する(S435”−2)。C=c”であれば次の処理に進み、C≠c”であればエラーを出力し、処理を中止する。個別復号手段431”−1は、秘密鍵skを用いてメッセージc’を復号して平文m’を求める(S431”−1)。復号出力部240は、平文m’を出力する(S240)。
【0032】
本発明の暗号化方式によれば、暗号文は各暗号化手段からの出力の連結ではなく、2番目の暗号化手段の出力である。したがって、暗号文の長さを短くできる。また、平文全体やメッセージ全体を暗号化する処理を繰り返すため、部分的な復号ができないため全体の完全性を保証するワンタイム署名は不要である。さらに、所定のルールでメッセージcを利用して求めた乱数H(c)を2番目の暗号化に使用するので、復号時にも乱数H(c’)を確認できる。また、復号時には、所定のルールで変換された乱数で暗号化されていることを確認するので、暗号化を飛ばして処理することができない。したがって、従来の安全性を保つことができる。
【0033】
[変形例2]
本変形例では、実施例1、実施例2、実施例2変形例1から上位概念の暗号化システムを導出する。本発明の暗号化システムに共通するポイントは、
(A)N個(ただし、Nは2以上の整数)の暗号化手段を縦列に接続すること
(B)各暗号化手段で使用される乱数を、復号時にも確認ができる所定のルールで変換されたものとすること
(C)復号時には、所定のルールで変換された乱数で暗号化されていることを確認すること
である。これらのポイントを考慮した暗号化システムについて以下に説明する。
【0034】
図7に実施例2変形例2の暗号化システムの機能構成例を、図8に実施例2変形例2の暗号化システムの処理フローを示す。本発明の暗号化システムは、少なくとも暗号化装置300、復号装置400を備えている。また、タイムリリースサーバ800も備えてもよい。暗号化装置300、復号装置400、タイムリリースサーバ800は、ネットワーク900などで接続されている。ここで、Nは2以上の整数、nは2以上N以下の整数、Kは1以上N以下の整数、kは1以上K以下の整数とする。暗号化装置300は、暗号化入力部310、乱数生成部120、暗号処理部330、暗号文出力部140、暗号化記録部390を備える。復号装置400は、復号鍵生成部410、復号入力部420、復号処理部430、復号出力部240、復号記録部490を備える。
【0035】
復号装置400の復号鍵生成部410は、K個の秘密鍵sk’,…,sk’と秘密鍵に対応するK個の公開鍵pk’,…,pk’を生成し、公開鍵pk’,…,pk’を公開する(S410)。なお、K個の秘密鍵sk’,…,sk’と秘密鍵に対応するK個の公開鍵pk’,…,pk’の生成と、公開鍵pk’,…,pk’の公開は、外部の装置(例えば鍵生成装置)が行ってもよい。この場合は復号装置200には復号鍵生成部210は不要である。なお、復号鍵生成部410の有無にかかわらず、秘密鍵sk’,…,sk’と公開鍵pk’,…,pk’は、復号記録部490に記録される。ここで、タイムリリースサーバ800を用いない場合には、K=Nにする。タイムリリースサーバ800を用いる場合にはK=N−1とし、タイムリリースサーバ800のタイムリリース鍵生成部810が、秘密鍵skTSと秘密鍵に対応する公開鍵pkTSを生成し、公開鍵pkTSを公開する(S810)。なお、タイムリリースサーバ800を用いる場合には、実用上はK=N−1と考えられる。しかし、上位概念としては、より一般化してK<N−1としてもよい。例えば、タイムリリースサーバ800がN−K個の公開鍵pkTS(1),…,pkTS(N−K)を公開することや、タイムリリース暗号以外の暗号方式と組合せることも考えられる。そこで、復号装置以外の装置(例えば、タイムリリースサーバなど)が公開した公開鍵を、公開鍵pk”,…,pkN−K”とする。
【0036】
暗号化装置300では、次のように処理を行う。暗号化入力部310が、平文mと、N個の公開鍵pk,…,pkを受け取り(S310)、暗号化記録部390に記録する。ここで、N個の公開鍵pk,…,pkとは、N個の公開鍵pk’,…,pk’または、K個の公開鍵pk’,…,pk’とN−K個の公開鍵pk”,…,pkN−K”であって、添え字の番号は、暗号化の順番を示している。つまり、タイムリリースサーバなどの復号装置以外からの公開鍵も用いる場合には、公開鍵pk,…,pkは、公開鍵pk’,…,pk’と公開鍵pk”,…,pkN−K”を暗号化の順番にしたがって並べなおしたものである。なお、1つのタイムリリースサーバの公開鍵を用いる場合(K=N−1の場合)には、公開鍵pk,…,pkは、暗号化の順番にしたがって公開鍵pk”(=pkTS)を公開鍵pk’,…,pkN−1’の中に挿入したものである。
【0037】
乱数生成部120は、乱数rを生成する(S120)。暗号処理部330は、N個の個別暗号化手段332−1,…,332−Nを具備する。個別暗号化手段332−1は、乱数rと公開鍵pkとを用いて平文mを暗号化してメッセージcを求める(S332−1)。個別暗号化手段332−nは、所定のルールでメッセージcn−1を利用して求めた乱数rと公開鍵pkとを用いてメッセージcn−1を暗号化してメッセージcを求める(S332−n)。暗号処理部330は、ステップS332−nをn=2〜Nまで繰り返してメッセージcを求める(S330)。なお、所定のルールでメッセージcn−1を利用して求めた乱数rとは、例えば、r=H(cn−1)とすればよいが、このルールに限る必要はなく、少なくともメッセージcn−1を利用して乱数rを求めていればよい。また、公開鍵pkがタイムリリースサーバ800の公開鍵の場合には指定時刻tも用いて暗号化する。暗号文出力部140はメッセージcを暗号文Cとして出力する(S140)。
【0038】
復号装置400では、次のように処理を行う。復号入力部420が、暗号文Cと、N−K個の公開鍵pk”,…,pkN−K”を受け取り(S420)、復号記録部490に記録する。復号処理部430は、N個の個別復号手段431−1,…,431−N、N−1個の個別暗号化手段432−2,…,432−N、個別検証手段435を具備する。まず、秘密鍵sk’,…,sk’と公開鍵pk”,…,pkN−K”とをあらかじめ定められたN回の暗号化の順番と対応するように並べて復号鍵dk,…,dkとし、暗号文Cをメッセージc’とする。そして、
(1)個別復号手段431−nが、少なくとも復号鍵dkを用いてメッセージc’を復号してメッセージcn−1’を求める(S431−n)
(2)個別暗号化手段432−nが、少なくとも所定のルールでメッセージcn−1’を利用して求めた乱数r’とn回目の暗号化に対応する公開鍵を用いてメッセージcn−1’を暗号化してメッセージc”を求める(S432−n)
(3)個別検証手段435が、c’=c”であることを確認する(S435−n)
をn=N〜2まで繰り返してメッセージc’を求め、復号鍵dkを用いてメッセージc’を復号して平文m’を求める(S431−1)。なお、ステップS430は、S431−n(n=N,…,1)、S432−n(n=N,…,2)、S435−n(n=N,…,2)で構成される。復号鍵dkがタイムリリースサーバ800の公開鍵の場合には個別復号手段431−nの処理では、タイムリリースサーバ800から受け取った時報sも用いて復号する。個別暗号化手段432−nの処理の「所定のルールでメッセージcn−1’を利用して求めた」とは、例えば、r’=H(cn−1’)とすればよいが、このルールに限る必要はなく、少なくともメッセージcn−1’を利用して乱数r’を求めていればよい。また、個別検証処理で、c’≠c”であると確認された場合にはエラーを出力し、処理を中止する。復号出力部240は、平文m’を出力する(S240)。
【0039】
本発明の暗号化方式によれば、暗号文は各暗号化手段からの出力の連結ではなく、N番目の暗号化手段の出力である。したがって、暗号文の長さを短くできる。また、平文全体やメッセージ全体を暗号化する処理を繰り返すため、部分的な復号ができないため全体の完全性を保証するワンタイム署名は不要である。さらに、所定のルールでメッセージcn−1を利用して求めた乱数rをn番目の暗号化に使用するので、復号時にも乱数rを確認できる。また、復号時には、所定のルールで変換された乱数で暗号化されていることを確認するので、N番目までの暗号化のどこかを飛ばして処理することができない。したがって、従来の安全性を保つことができる。
【実施例3】
【0040】
実施例1、実施例2、実施例2変形例1、実施例2変形例2では、乱数rを求める所定のルールの具体例としては、H(cn−1)のみを例示していた。しかし、上述のとおり、この例に限定する必要はない。本実施例では、他の例について説明する。
【0041】
まず、実施例1を変更した場合について説明する。実施例3の暗号化システムの機能構成例は図3と同じ、処理フローは図4と同じである。異なる点は、暗号処理部130と復号処理部230である。
【0042】
暗号処理部130は、個別暗号化手段132−1,…,132−Nを具備する。暗号処理部130では、個別暗号化手段132−1が、乱数rと公開鍵pkとを用いて平文mを暗号化してメッセージcを求める(S132−1)。個別暗号化手段132−nは、乱数rを、メッセージcn−1と暗号化装置100と復号装置200とで共有する情報dan−1を用いて所定のルールに従って求める。例えば、r=H(dan−1‖cn−1)のように求めてもよいし、r=H(dan−1‖cn−1‖index)のように求めてもよい。‖はビット列を連結することを示す記号である。indexは暗号化装置100と復号装置200とであらかじめ定めた値であり、定数でもよいし、毎回変更する値でもよい。また、dan−1=pkn−1としてもよいし、なんらかの方法で共有した情報を用いてもよい。さらに、ビット列の連結の順番を変更してもよい。そして、個別暗号化手段132−nは、乱数rと公開鍵pkとを用いてメッセージcn−1を暗号化してメッセージcを求める。個別暗号化手段132−nは、暗号化してメッセージcを求める処理(S132−n)をn=2〜Nまで繰り返し、メッセージcを求める(S130)。
【0043】
復号処理部230は、個別復号手段231−1,…,231−N、個別暗号化手段232−1,…,232−N−1、個別検証手段235を具備する。復号処理部230は、暗号文Cをメッセージc’とし、個別復号手段231−nが、秘密鍵skを用いてメッセージc’を復号してメッセージcn−1’を求める(S231−n)。個別暗号化手段232−nは、乱数r’を、メッセージcn−1’と暗号化装置100と復号装置200とで共有する情報dan−1を用いて所定のルールに従って求める。所定のルールは、暗号処理部130で乱数rを求めたルールと同じである。そして、個別暗号化手段232−nは、乱数r’と公開鍵pkとを用いて前記メッセージcn−1’を暗号化してメッセージc”を求める(S232−n)。個別検証手段235は、c’=c”であることを確認する(S235−n)。c’=c”であれば次の処理に進み、c’≠c”であればエラーを出力し、処理を中止する。復号処理部230は、個別復号手段231−n、個別暗号化手段232−n、個別検証手段235の処理をn=Nからn=2まで繰り返してメッセージc’を求める。そして、個別復号手段231−1が、秘密鍵skを用いてメッセージc’を復号して平文m’を求める(S230)。
【0044】
その他の構成部とその構成部が行う処理は、実施例1と同じである。このような構成でも、実施例1と同様の効果が得られる。
【0045】
[変形例1]
本変形例では、実施例2を変更した場合について説明する。実施例3変形例1の暗号化システムの機能構成例は図5と同じ、処理フローは図6と同じである。異なる点は、暗号処理部330’と復号処理部430’である。
【0046】
暗号処理部330’は、個別暗号化手段332’−1、332’−2を具備する。個別暗号化手段332’−1は、乱数rと公開鍵pkTSと指定時刻tを用いて平文mを暗号化してメッセージcを求める(S332’−1)。個別暗号化手段332’−2は、乱数rを、メッセージcと暗号化装置300’と復号装置400’とで共有する情報daを用いて所定のルールに従って求める。例えば、r=H(da‖c)のように求めてもよいし、r=H(da‖c‖index)のように求めてもよい。‖はビット列を連結することを示す記号である。indexは暗号化装置300’と復号装置400’とであらかじめ定めた値であり、定数でもよいし、毎回変更する値でもよい。また、da=pkTSとしてもよいし、なんらかの方法で共有した情報を用いてもよい。さらに、ビット列の連結の順番を変更してもよい。そして、個別暗号化手段332’−2は、乱数rと公開鍵pkとを用いてメッセージcを暗号化してメッセージcを求める(S332’−2)。そして、メッセージcを暗号文Cとする(S330’)。
【0047】
復号処理部430’は、個別復号手段431’−1、431’−2、個別暗号化手段432’−2、個別検証手段435’を具備する。個別復号手段431’−2は、秘密鍵skを用いて暗号文Cを復号してメッセージc’を求める(S431’−2)。個別暗号化手段432’−2は、乱数r’を、メッセージc’と暗号化装置300’と復号装置400’とで共有する情報daを用いて所定のルールに従って求める。所定のルールは、暗号処理部330’で乱数rを求めたルールと同じである。そして、個別暗号化手段432’−2は、乱数r’と公開鍵pkとを用いてメッセージc’を暗号化してメッセージc”を求める(S432’−2)。個別検証手段435’は、C=c”であることを確認する(S435’−2)。C=c”であれば次の処理に進み、C≠c”であればエラーを出力し、処理を中止する。個別復号手段431’−1は、公開鍵pkTSと前記指定時刻tに対応した時報sを用いてメッセージc’を復号して平文m’を求める(S431’−1)。
【0048】
その他の構成部とその構成部が行う処理は、実施例2と同じである。このような構成でも、実施例2と同様の効果が得られる。
【0049】
[変形例2]
本変形例では、実施例2変形例1を変更した場合について説明する。実施例3変形例2の暗号化システムの機能構成例は図5と同じ、処理フローは図6と同じである。異なる点は、暗号処理部330”と復号処理部430”である。
【0050】
暗号処理部330”は、個別暗号化手段332”−1、332”−2を具備する。個別暗号化手段332”−1は、乱数rと公開鍵pkとを用いて平文mを暗号化してメッセージcを求める(S332”−1)。個別暗号化手段332”−2は、乱数rを、メッセージcと暗号化装置300’と復号装置400’とで共有する情報daを用いて所定のルールに従って求める。例えば、r=H(da‖c)のように求めてもよいし、r=H(da‖c‖index)のように求めてもよい。‖はビット列を連結することを示す記号である。indexは暗号化装置300’と復号装置400’とであらかじめ定めた値であり、定数でもよいし、毎回変更する値でもよい。また、da=pkとしてもよいし、なんらかの方法で共有した情報を用いてもよい。さらに、ビット列の連結の順番を変更してもよい。そして、個別暗号化手段332”−2は、乱数rと公開鍵pkTSと指定時刻tを用いてメッセージcを暗号化してメッセージcを求める(S332”−2)。そして、メッセージcを暗号文Cとする(S330”)。
【0051】
復号処理部430”は、個別復号手段431”−1、431”−2、個別暗号化手段432”−2、個別検証手段435”を具備する。個別復号手段431”’−2は、公開鍵pkTSと前記指定時刻tに対応した時報sを用いて暗号文Cを復号してメッセージc’を求める(S431”−2)。個別暗号化手段432”−2は、乱数r’を、メッセージc’と暗号化装置300’と復号装置400’とで共有する情報daを用いて所定のルールに従って求める。所定のルールは、暗号処理部330’で乱数rを求めたルールと同じである。そして、個別暗号化手段432”−2は、乱数r’と公開鍵pkTSと指定時刻tを用いてメッセージc’を暗号化してメッセージc”を求める(S432”−2)。個別検証手段435”は、C=c”であることを確認する(S435”−2)。C=c”であれば次の処理に進み、C≠c”であればエラーを出力し、処理を中止する。個別復号手段431”−1は、秘密鍵skを用いてメッセージc’を復号して平文m’を求める(S431”−1)。
【0052】
その他の構成部とその構成部が行う処理は、実施例2変形例1と同じである。このような構成でも、実施例2変形例1と同様の効果が得られる。
【0053】
[変形例3]
本変形例では、実施例2変形例2を変更した場合について説明する。実施例3変形例3の暗号化システムの機能構成例は図7と同じ、処理フローは図8と同じである。異なる点は、暗号処理部330と復号処理部430である。
【0054】
暗号処理部330は、N個の個別暗号化手段332−1,…,332−Nを具備する。個別暗号化手段332−1は、乱数rと公開鍵pkとを用いて平文mを暗号化してメッセージcを求める(S332−1)。個別暗号化手段332−nは、所定のルールでメッセージcn−1と暗号化装置300と復号装置400とで共有する情報dan−1を利用して乱数rを求める。そして、個別暗号化手段332−nは、乱数rと公開鍵pkとを用いてメッセージcn−1を暗号化してメッセージcを求める(S332−n)。暗号処理部330は、ステップS332−nをn=2〜Nまで繰り返してメッセージcを求める(S330)。なお、所定のルールでメッセージcn−1を利用して求めた乱数rとは、例えば、r=H(dan−1‖cn−1)のように求めてもよいし、r=H(dan−1‖cn−1‖index)のように求めてもよい。‖はビット列を連結することを示す記号である。indexは暗号化装置100と復号装置200とであらかじめ定めた値であり、定数でもよいし、毎回変更する値でもよい。また、dan−1=pkn−1としてもよいし、なんらかの方法で共有した情報を用いてもよい。さらに、ビット列の連結の順番を変更してもよい。このように、所定のルールとは上述のルールに限る必要はなく、少なくともメッセージcn−1と暗号化装置300と復号装置400とで共有する情報dan−1を利用して乱数rを求めていればよい。また、公開鍵pkがタイムリリースサーバ800の公開鍵の場合には指定時刻tも用いて暗号化する。
【0055】
復号処理部430は、N個の個別復号手段431−1,…,431−N、N−1個の個別暗号化手段432−2,…,432−N、個別検証手段435を具備する。まず、秘密鍵sk’,…,sk’と公開鍵pk”,…,pkN−K”とをあらかじめ定められたN回の暗号化の順番と対応するように並べて復号鍵dk,…,dkとし、暗号文Cをメッセージc’とする。そして、
(1)個別復号手段431−nが、少なくとも復号鍵dkを用いてメッセージc’を復号してメッセージcn−1’を求める(S431−n)
(2)個別暗号化手段432−nが、少なくとも所定のルールでメッセージcn−1’と暗号化装置300と復号装置400とで共有する情報dan−1を利用して乱数r’を求める。そして、乱数r’とn回目の暗号化に対応する公開鍵を用いてメッセージcn−1’を暗号化してメッセージc”を求める(S432−n)
(3)個別検証手段435が、c’=c”であることを確認する(S435−n)
その他の構成部とその構成部が行う処理は、実施例2変形例2と同じである。このような構成でも、実施例2変形例2と同様の効果が得られる。
【0056】
プログラム、記録媒体
上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【0057】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【0058】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0059】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
【0060】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【産業上の利用可能性】
【0061】
本発明は複数の条件で多重に暗号化を行う多重暗号方式に利用することができる。
【符号の説明】
【0062】
100、300、300’、300” 暗号化装置
110、310、310’ 暗号化入力部
120 乱数生成部
130、330、330’、330” 暗号処理部
132、332、332’、332” 個別暗号化手段
140 暗号文出力部
190、390、390’ 暗号化記録部
200、400、400’、400” 復号装置
210、410、410’ 復号鍵生成部
220、420、420’ 復号入力部
230、430、430’、430” 復号処理部
231、431、431’、431” 個別復号手段
232、432、432’、432” 個別暗号化手段
235、435、435’、435” 個別検証手段
240 復号出力部
290、490、490’ 復号記録部
732、932 暗号化手段
800 タイムリリースサーバ
810 タイムリリース鍵生成部
820 時報生成部
900 ネットワーク

【特許請求の範囲】
【請求項1】
暗号化装置と復号装置で構成された暗号化システムであって、
Nは2以上の整数、nは2以上N以下の整数、Hはハッシュ関数とし、
前記暗号化装置は、
平文mと、N個の公開鍵pk,…,pkを受け取る暗号化入力部と、
乱数rを生成する乱数生成部と、
乱数rと公開鍵pkとを用いて平文mを暗号化してメッセージcを求め、乱数H(cn−1)と公開鍵pkとを用いてメッセージcn−1を暗号化してメッセージcを求める処理をn=2〜Nまで繰り返し、メッセージcを求める暗号処理部と、
前記メッセージcを暗号文Cとして出力する暗号文出力部と
を備え、
前記復号装置は、
N個の秘密鍵sk,…,skと前記秘密鍵に対応するN個の公開鍵pk,…,pkを記録する復号記録部と、
暗号文Cを受け取る復号入力部と、
暗号文Cをメッセージc’とし、
(1)秘密鍵skを用いてメッセージc’を復号してメッセージcn−1’を求める個別復号処理と、
(2)乱数H(cn−1’)と公開鍵pkとを用いて前記メッセージcn−1’を暗号化してメッセージc”を求める個別暗号化処理と、
(3)c’=c”であることを確認する個別検証処理と
をn=N〜2まで繰り返してメッセージc’を求め、秘密鍵skを用いてメッセージc’を復号して平文m’を求める復号処理部と、
前記平文m’を出力する復号出力部と
を備える
ことを特徴とする暗号化システム。
【請求項2】
暗号化装置と復号装置とタイムリリースサーバで構成された暗号化システムであって、
Hはハッシュ関数とし、
前記タイムリリースサーバは、
秘密鍵skTSと前記秘密鍵に対応する公開鍵pkTSを生成し、前記公開鍵pkTSを公開するタイムリリース鍵生成部と、
前記秘密鍵skTSと前記公開鍵pkTSと現在の時刻から時報sを求め、前記時報sを出力する時報生成部と
を備え、
前記暗号化装置は、
平文mと指定時刻tと、前記タイムリリースサーバの公開鍵pkTSと、前記復号装置の公開鍵pkを受け取る暗号化入力部と、
乱数rを生成する乱数生成部と、
乱数rと公開鍵pkTSと指定時刻tを用いて平文mを暗号化してメッセージcを求め、乱数H(c)と公開鍵pkとを用いてメッセージcを暗号化して暗号文Cを求める暗号処理部と、
前記暗号文Cを出力する暗号文出力部と
を備え、
前記復号装置は、
秘密鍵skと前記秘密鍵に対応する公開鍵pkを記録する復号記録部と、
暗号文Cと、前記タイムリリースサーバの公開鍵pkTSを受け取る復号入力部と、
秘密鍵skを用いて暗号文Cを復号してメッセージc’を求め、
乱数H(c’)と公開鍵pkとを用いてメッセージc’を暗号化してメッセージc”を求め、
C=c”であることを確認し、
公開鍵pkTSと前記指定時刻tに対応した時報sを用いてメッセージc’を復号して平文m’を求める復号処理部と、
前記平文m’を出力する復号出力部と
を備える
ことを特徴とする暗号化システム。
【請求項3】
暗号化装置と復号装置とタイムリリースサーバで構成された暗号化システムであって、
Hはハッシュ関数とし、
前記タイムリリースサーバは、
秘密鍵skTSと前記秘密鍵に対応する公開鍵pkTSを生成し、前記公開鍵pkTSを公開するタイムリリース鍵生成部と、
前記秘密鍵skTSと前記公開鍵pkTSと現在の時刻から時報sを求め、前記時報sを出力する時報生成部と
を備え、
前記暗号化装置は、
平文mと指定時刻tと、前記タイムリリースサーバの公開鍵pkTSと、前記復号装置の公開鍵pkを受け取る暗号化入力部と、
乱数rを生成する乱数生成部と、
乱数rと公開鍵pkとを用いて平文mを暗号化してメッセージcを求め、乱数H(c)と公開鍵pkTSと指定時刻tを用いてメッセージcを暗号化して暗号文Cを求める暗号処理部と、
前記暗号文Cを出力する暗号文出力部と
を備え、
前記復号装置は、
秘密鍵skと前記秘密鍵に対応する公開鍵pkを記録する復号記録部と、
暗号文Cと、前記タイムリリースサーバの公開鍵pkTSを受け取る復号入力部と、
公開鍵pkTSと前記指定時刻tに対応した時報sを用いて暗号文Cを復号してメッセージc’を求め、
乱数H(c’)と公開鍵pkTSと指定時刻tを用いてメッセージc’を暗号化してメッセージc”を求め、
C=c”であることを確認し、
秘密鍵skを用いてメッセージc’を復号して平文m’を求める復号処理部と、
前記平文m’を出力する復号出力部と
を備える
ことを特徴とする暗号化システム。
【請求項4】
Nは2以上の整数、nは2以上N以下の整数とし、
平文mと、N個の公開鍵pk,…,pkを受け取る暗号化入力部と、
乱数rを生成する乱数生成部と、
少なくとも乱数rと公開鍵pkとを用いて平文mを暗号化してメッセージcを求め、少なくとも所定のルールでメッセージcn−1を利用して求めた乱数rと公開鍵pkとを用いてメッセージcn−1を暗号化してメッセージcを求める処理をn=2〜Nまで繰り返してメッセージcを求める暗号処理部と、
前記メッセージcを暗号文Cとして出力する暗号文出力部と
を備える暗号化装置。
【請求項5】
請求項4記載の暗号化装置であって、
Hはハッシュ関数とし、
前記乱数rはH(cn−1)である
ことを特徴とする暗号化装置。
【請求項6】
平文mと指定時刻tと、タイムリリースサーバの公開鍵pkTSと、復号装置の公開鍵pkを受け取る暗号化入力部と、
乱数rを生成する乱数生成部と、
乱数rと公開鍵pkTSと指定時刻tを用いて平文mを暗号化してメッセージcを求め、所定のルールでメッセージcを利用して求めた乱数rと公開鍵pkとを用いてメッセージcを暗号化して暗号文Cを求める暗号処理部と、
前記暗号文Cを出力する暗号文出力部と
を備える暗号化装置。
【請求項7】
平文mと指定時刻tと、タイムリリースサーバの公開鍵pkTSと、復号装置の公開鍵pkを受け取る暗号化入力部と、
乱数rを生成する乱数生成部と、
乱数rと公開鍵pkとを用いて平文mを暗号化してメッセージcを求め、所定のルールでメッセージcを利用して求めた乱数rと公開鍵pkTSと指定時刻tを用いて、メッセージcを暗号化して暗号文Cを求める暗号処理部と、
前記暗号文Cを出力する暗号文出力部と
を備える暗号化装置。
【請求項8】
請求項6または7記載の暗号化装置であって、
Hはハッシュ関数とし、
前記乱数rはH(c)である
ことを特徴とする暗号化装置。
【請求項9】
Nは2以上の整数、nは2以上N以下の整数、Kは1以上N以下の整数、kは1以上K以下の整数とし、
あらかじめ定められたN回の暗号化によって生成された暗号文を復号する復号装置であって、
K個の秘密鍵sk’,…,sk’と前記秘密鍵に対応するK個の公開鍵pk’,…,pk’を記録する復号記録部と、
暗号文Cと、N−K個の公開鍵pk”,…,pkN−K”を受け取る復号入力部と、
前記秘密鍵sk’,…,sk’と前記公開鍵pk”,…,pkN−K”とを前記あらかじめ定められたN回の暗号化の順番と対応するように並べて復号鍵dk,…,dkとし、暗号文Cをメッセージc’とし、
(1)少なくとも復号鍵dkを用いてメッセージc’を復号してメッセージcn−1’を求める個別復号処理と、
(2)少なくとも所定のルールでメッセージcn−1’を利用して求めた乱数r’とn回目の暗号化に対応する公開鍵を用いて、前記メッセージcn−1’を暗号化してメッセージc”を求める個別暗号化処理と、
(3)c’=c”であることを確認する個別検証処理と
をn=N〜2まで繰り返してメッセージc’を求め、復号鍵dkを用いてメッセージc’を復号して平文m’を求める復号処理部と、
前記平文m’を出力する復号出力部と
を備える復号装置。
【請求項10】
請求項9記載の復号装置であって、
K=N、Hはハッシュ関数、dk=sk’であって、
前記乱数r’はH(cn−1’)である
ことを特徴とする復号装置。
【請求項11】
請求項9記載の復号装置であって、
N=2、K=1、Hはハッシュ関数、dk=sk’、dk=sk”であって、
前記乱数r’はH(c’)である
ことを特徴とする復号装置。
【請求項12】
請求項9記載の復号装置であって、
N=2、K=1、Hはハッシュ関数、dk=sk”、dk=sk’であって、
前記乱数r’はH(c’)である
ことを特徴とする復号装置。
【請求項13】
暗号化装置と復号装置を用いた暗号化方法であって、
Nは2以上の整数、nは2以上N以下の整数、Hはハッシュ関数とし、
前記復号装置が、
N個の秘密鍵sk,…,skと前記秘密鍵に対応するN個の公開鍵pk,…,pkを記録する復号記録ステップと、
前記暗号化装置が、
平文mと、N個の公開鍵pk,…,pkを受け取る暗号化入力ステップと、
乱数rを生成する乱数生成ステップと、
乱数rと公開鍵pkとを用いて平文mを暗号化してメッセージcを求め、乱数H(cn−1)と公開鍵pkとを用いてメッセージcn−1を暗号化してメッセージcを求める処理をn=2〜Nまで繰り返し、メッセージcを求める暗号処理ステップと、
前記メッセージcを暗号文Cとして出力する暗号文出力ステップと、
前記復号装置が、
暗号文Cを受け取る復号入力ステップと、
暗号文Cをメッセージc’とし、
(1)秘密鍵skを用いてメッセージc’を復号してメッセージcn−1’を求める個別復号処理と、
(2)乱数H(cn−1’)と公開鍵pkとを用いて前記メッセージcn−1’を暗号化してメッセージc”を求める個別暗号化処理と、
(3)c’=c”であることを確認する個別検証処理と
をn=N〜2まで繰り返してメッセージc’を求め、秘密鍵skを用いてメッセージc’を復号して平文m’を求める復号処理ステップと、
前記平文m’を出力する復号出力ステップと
を有する暗号化方法。
【請求項14】
暗号化装置と復号装置とタイムリリースサーバを用いた暗号化方法であって、
Hはハッシュ関数とし、
前記タイムリリースサーバが、
秘密鍵skTSと前記秘密鍵に対応する公開鍵pkTSを生成し、前記公開鍵pkTSを公開するタイムリリース鍵生成ステップと、
前記秘密鍵skTSと前記公開鍵pkTSと現在の時刻から時報sを求め、前記時報sを出力する時報生成ステップと、
前記復号装置が、
秘密鍵skと前記秘密鍵に対応する公開鍵pkを記録する復号記録ステップと、
前記暗号化装置が、
平文mと指定時刻tと、前記タイムリリースサーバの公開鍵pkTSと、前記復号装置の公開鍵pkを受け取る暗号化入力ステップと、
乱数rを生成する乱数生成ステップと、
乱数rと公開鍵pkTSと指定時刻tを用いて平文mを暗号化してメッセージcを求め、乱数H(c)と公開鍵pkとを用いてメッセージcを暗号化して暗号文Cを求める暗号処理ステップと、
前記暗号文Cを出力する暗号文出力ステップと、
前記復号装置が、
暗号文Cと、前記タイムリリースサーバの公開鍵pkTSを受け取る復号入力ステップと、
秘密鍵skを用いて暗号文Cを復号してメッセージc’を求め、
乱数H(c’)と公開鍵pkとを用いてメッセージc’を暗号化してメッセージc”を求め、
C=c”であることを確認し、
公開鍵pkTSと前記指定時刻tに対応した時報sを用いてメッセージc’を復号して平文m’を求める復号処理ステップと、
前記平文m’を出力する復号出力ステップと
を有する暗号化方法。
【請求項15】
暗号化装置と復号装置とタイムリリースサーバを用いた暗号化方法であって、
Hはハッシュ関数とし、
前記タイムリリースサーバが、
秘密鍵skTSと前記秘密鍵に対応する公開鍵pkTSを生成し、前記公開鍵pkTSを公開するタイムリリース鍵生成ステップと、
前記秘密鍵skTSと前記公開鍵pkTSと現在の時刻から時報sを求め、前記時報sを出力する時報生成ステップと、
前記復号装置が、
秘密鍵skと前記秘密鍵に対応する公開鍵pkを記録する復号記録ステップと、
前記暗号化装置が、
平文mと指定時刻tと、前記タイムリリースサーバの公開鍵pkTSと、前記復号装置の公開鍵pkを受け取る暗号化入力ステップと、
乱数rを生成する乱数生成ステップと、
乱数rと公開鍵pkとを用いて平文mを暗号化してメッセージcを求め、乱数H(c)と公開鍵pkTSと指定時刻tを用いてメッセージcを暗号化して暗号文Cを求める暗号処理ステップと、
前記暗号文Cを出力する暗号文出力ステップと、
前記復号装置が、
暗号文Cと、前記タイムリリースサーバの公開鍵pkTSを受け取る復号入力ステップと、
公開鍵pkTSと前記指定時刻tに対応した時報sを用いて暗号文Cを復号してメッセージc’を求め、
乱数H(c’)と公開鍵pkTSと指定時刻tを用いてメッセージc’を暗号化してメッセージc”を求め、
C=c”であることを確認し、
秘密鍵skを用いてメッセージc’を復号して平文m’を求める復号処理ステップと、
前記平文m’を出力する復号出力ステップと
を有する暗号化方法。
【請求項16】
請求項4記載の暗号化装置と、
請求項9記載の復号装置と
を備える暗号化システム。
【請求項17】
請求項16記載の暗号化システムであって、
Hはハッシュ関数とし、
前記乱数rはH(cn−1)であり、
前記乱数r’はH(cn−1’)である
ことを特徴とする暗号化システム。
【請求項18】
請求項16記載の暗号化システムであって、
da,…,daN−1は前記暗号化装置と前記復号装置とで共有する情報とし、
前記乱数rはメッセージcn−1と情報dan−1とを利用して求めた乱数であり、
前記乱数r’はメッセージcn−1’と情報dan−1とを利用して求めた乱数である
ことを特徴とする暗号化システム。
【請求項19】
請求項4記載の暗号化装置であって、
da,…,daN−1は前記暗号化装置が復号装置と共有する情報であり、
前記乱数rはメッセージcn−1と情報dan−1とを利用して求めた乱数である
ことを特徴とする暗号化装置。
【請求項20】
請求項19記載の暗号化装置であって、
Hはハッシュ関数、da=pkであって、
前記乱数rはH(pkn−1‖cn−1)である
ことを特徴とする暗号化装置。
【請求項21】
請求項9記載の復号装置であって、
da,…,daN−1は前記復号装置が暗号化装置と共有する情報であり、
前記乱数r’はメッセージcn−1’と情報dan−1とを利用して求めた乱数である
ことを特徴とする復号装置。
【請求項22】
請求項21記載の復号装置であって、
Hはハッシュ関数、da=pkであって、
前記乱数r’はH(pkn−1‖cn−1’)である
ことを特徴とする復号装置。
【請求項23】
暗号化装置と復号装置を用いた暗号化方法であって、
Nは2以上の整数、nは2以上N以下の整数、Kは1以上N以下の整数、kは1以上K以下の整数、Hはハッシュ関数とし、
前記復号装置が、
K個の秘密鍵sk,…,skと前記秘密鍵に対応するK個の公開鍵pk,…,pk’を記録する復号記録ステップと、
前記暗号化装置が、
平文mと、N個の公開鍵pk,…,pkを受け取る暗号化入力ステップと、
乱数rを生成する乱数生成ステップと、
少なくとも乱数rと公開鍵pkとを用いて平文mを暗号化してメッセージcを求め、少なくとも所定のルールでメッセージcn−1を利用して求めた乱数rと公開鍵pkとを用いてメッセージcn−1を暗号化してメッセージcを求める処理をn=2〜Nまで繰り返してメッセージcを求める暗号処理ステップと、
前記メッセージcを暗号文Cとして出力する暗号文出力ステップと、
前記復号装置が、
暗号文Cと、N−K個の公開鍵pk”,…,pkN−K”を受け取る復号入力ステップと、
前記秘密鍵sk,…,skと前記公開鍵pk”,…,pkN−K”とを前記あらかじめ定められたN回の暗号化の順番と対応するように並べて復号鍵dk,…,dkとし、暗号文Cをメッセージc’とし、
(1)少なくとも復号鍵dkを用いてメッセージc’を復号してメッセージcn−1’を求める個別復号処理と、
(2)少なくとも所定のルールでメッセージcn−1’を利用して求めた乱数r’とn回目の暗号化に対応する公開鍵を用いて、前記メッセージcn−1’を暗号化してメッセージc”を求める個別暗号化処理と、
(3)c’=c”であることを確認する個別検証処理と
をn=N〜2まで繰り返してメッセージc’を求め、復号鍵dkを用いてメッセージc’を復号して平文m’を求める復号処理ステップと、
前記平文m’を出力する復号出力ステップと
を有する暗号化方法。
【請求項24】
請求項23記載の暗号化方法であって、
Hはハッシュ関数とし、
前記乱数rはH(cn−1)であり、
前記乱数r’はH(cn−1’)である
ことを特徴とする暗号化方法。
【請求項25】
請求項23記載の暗号化方法であって、
da,…,daN−1は前記暗号化装置と前記復号装置とで共有する情報とし、
前記乱数rはメッセージcn−1と情報dan−1とを利用して求めた乱数であり、
前記乱数r’はメッセージcn−1’と情報dan−1とを利用して求めた乱数である
ことを特徴とする暗号化方法。
【請求項26】
請求項1から3もしくは16から18に記載の暗号化システム、請求項4から8もしくは19、20に記載の暗号装置、または請求項9から12もしくは21、22に記載の復号装置のいずれかとしてコンピュータを動作させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate