説明

通信システム、暗号化装置、鍵生成装置、鍵生成方法、復元装置、通信方法、暗号化方法、暗号復元方法

【課題】安全かつ効率的なしきい値暗号方式を実現する。
【解決手段】g∈Z*N2であるgに対して乱数rをgrとして隠し、乱数rの少なくとも一部を用いて平文mを暗号化する場合に、合成数を法とするもとで、暗号化のために部分的な事前計算を行って暗号文を生成する。平文mの復元の際には、乱数rの少なくとも一部を部分復号情報を用いて復元し、復元した乱数rの少なくとも一部を用いて平文mを求める。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は通信システム、暗号化装置、鍵生成装置、鍵生成方法、復元装置、通信方法、暗号化方法、暗号復元方法に関し、特に公開鍵暗号方式やしきい値暗号方式を採用した通信システム、暗号化装置、鍵生成装置、鍵生成方法、復元装置、通信方法、暗号化方法、暗号復元方法に関する。
【背景技術】
【0002】
従来、安全な通信を行うために、公開鍵暗号方式が用いられている。公開鍵暗号方式では、公開鍵に対する復号鍵を安全に保管しておくことが大きな課題の一つになっている。この課題に対する解決方法の一つとして、種々のしきい値暗号方式が開発されている。しきい値暗号方式とは、公開鍵暗号方式における復号鍵を複数の分散鍵に分散し、分散鍵を持つ複数の装置が協力しなければ、平文を復元できないようにした方式である。
【0003】
公開鍵暗号を用いるにあたって復号鍵を如何に安全に保管しておくかということは大きな課題の一つであり、その解決方法の一つとして種々のしきい値暗号の方式が開発されてきた。ここで、しきい値暗号とは公開鍵暗号における復号のための復号鍵をいくつかの分散鍵と呼ばれるものに分散し、分散鍵をもつ複数のセンタが協力しなければ復号ができない方式である。このようなしきい値暗号の方式としては、例えば、素因数分解型の暗号方式を用いる方法(例えば、非特許文献1、非特許文献2、非特許文献3)や、離散対数型の暗号方式を用いる方法(例えば、非特許文献4)などが知られている。
【0004】
【非特許文献1】Pierre-Alain Fouque and David Pointcheval, Threshold Cryptosystems Secure against Chosen-Ciphertext Attacks. ASIACRYPT 2001, pp.351-368(2001)
【非特許文献2】石原武、青野博、本郷節之、四方順司、しきい値型Paillier 暗号の改良、信学技報ISEC2004-12(2004-05)、電子情報通信学会
【非特許文献3】V.Shoup and R.Gennaro, Securing Threshold Cryptosystems against Chosen Ciphertext Attack, Journal of Cryptology, vol.15,no.2, pp.75-96(2002)
【非特許文献4】J.Katz and M.Yung, “Threshold Cryptosystems Based on Factoring”, ASIACRYPT2002, Lecture Notes in Computer Science, 2501, pp.192-205, Springer-Verlag, 2002
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかし、上記非特許文献1に記載の技術は選択暗号文攻撃に対して安全性が示せるものの、暗号化の際にべき乗演算を数多く行う必要があり、暗号化の前に事前計算できないべき乗演算が存在していた(問題点1)。
また上記非特許文献2に記載の技術は暗号化のための計算量は少ないものの、安全性が選択平文攻撃のもとでのみ示され、選択暗号文攻撃のもとでの安全性が示されないという問題があった(問題点2)。また安全性の根拠をe乗根判定問題という、強い仮定の元ではじめて安全性が示せていた(問題点2’)。
【0006】
また上記非特許文献3に記載の技術は素因数分解に基づく方式に比べて大きな素数を準備する必要がある。素数定理より大きい素数は数が少ないために、大きい素数を準備するということは目的の素数が見つけにくく、使える素数も少ないという問題がある(問題点3)。
さらに、非特許文献4に示される素因数分解型のしきい値暗号方式では、法Nのもとでの計算により暗号化及び復号を行い、選択平文攻撃に対する安全性を確保できるものの、1ビットしか暗号化できなかった。そのため、暗号化及び復号の効率が非常に悪く、実用的ではなかった(問題点4)。
【0007】
特に、問題点1及び問題点4については、携帯性を重視する移動通信端末は高速のCPUを搭載することが困難なため上記従来技術のしきい値暗号方式は、その暗号化の際の計算が非効率なため実用向きではない。
本発明の第1の目的は、上述した問題点1,2’,3,4を解決するため、複数ビットの平文を暗号化でき、決定問題に仮定を置く、素因数分解型で、かつ、事前計算により計算能力の低い移動通信端末などにおいても実用可能な、しきい値暗号化方式又は公開鍵暗号方式を採用した、通信システム、暗号化装置、鍵生成装置、鍵生成方法、復元装置、通信方法、暗号化方法、暗号復元方法を提供することである。
【0008】
本発明の第2の目的は、上述した問題点1,2,3,4を解決するため、複数ビットの平文を暗号化でき、素因数分解型で、かつ、事前計算により計算能力の低い移動通信端末などにおいても実用可能な、しきい値暗号化方式又は公開鍵暗号方式を採用した、通信システム、暗号化装置、鍵生成装置、鍵生成方法、復元装置、通信方法、暗号化方法、暗号復元方法を提供することである。
【課題を解決するための手段】
【0009】
本発明の請求項1による通信システムは、合成数を法とするもとで合成数とは素なgに対して乱数rをgrとして隠し、乱数rの少なくとも一部を用いて平文mを暗号化する場合に、合成数を法とするもとで、暗号化のために部分的な事前計算を行う暗号化装置と、
合成数を法として計算できるgrで定義されるuから乱数rの少なくとも一部を取出す際に必要となる秘密情報である鍵を元に分散鍵を生成する鍵生成装置と、
暗号文と分散鍵とを用いて部分復号情報を生成する部分復号装置(例えば、図1〜図3中の復号サーバ501〜50nに対応)と、
復号の際に乱数rの少なくとも一部を前記部分復号情報を用いて復元し、復元した乱数rの少なくとも一部を用いて平文mを求める復元装置と、
を含むことを特徴とする。このように構成すれば、安全かつ効率的なしきい値暗号方式を採用した通信システムを実現できる。
【0010】
本発明の請求項2による暗号化装置は、合成数を法とするもとで合成数とは素なgに対して乱数rをgrとして隠し、乱数rの少なくとも一部を用いて平文mを暗号化する場合に、合成数を法とするもとで、暗号化のために部分的な事前計算を行う暗号文生成手段と、前記暗号文生成手段によって生成した暗号文を暗号文管理サーバに送信する暗号文送信手段とを含むことを特徴とする。このように構成すれば、安全かつ効率的なしきい値暗号方式を採用した通信システムにおける暗号化装置を実現できる。
【0011】
本発明の請求項3による鍵生成装置は、合成数を法として計算できるgrで定義されるuから乱数rの少なくとも一部を取出す際に必要となる秘密情報である鍵を元に分散鍵を生成する分散鍵生成手段と、前記分散鍵生成手段によって生成された分散鍵を部分復号装置に送信する分散鍵送信手段とを含むことを特徴とする。このように構成すれば、安全かつ効率的なしきい値暗号方式を採用した通信システムにおける鍵生成装置を実現できる。
【0012】
本発明の請求項4による鍵生成装置は、請求項3において、grで定義されるuと暗号文との関係を検証するための暗号文検証用データを、作成するために必要な公開情報を作成する公開情報作成手段を更に含むことを特徴とする。このように構成すれば、安全性をより高めたしきい値暗号方式を採用した通信システムにおける鍵生成装置を実現できる。
本発明の請求項5による鍵生成方法は、合成数を法として計算できるgrで定義されるuから乱数rの少なくとも一部を取出す際に必要となる秘密情報である鍵を元に分散鍵を生成する分散鍵生成ステップを含むことを特徴とする。このように構成すれば、安全かつ効率的なしきい値暗号方式を採用した鍵生成方法を実現できる。
【0013】
本発明の請求項6による鍵生成方法は、合成数を法として計算できるgrで定義されるuから乱数rの少なくとも一部を取出す際に必要となる秘密情報である鍵を元に分散鍵を生成する分散鍵生成ステップと、grで定義されるuと暗号文との関係を検証するための暗号文検証用データを、作成するために必要な公開情報を作成する公開情報作成ステップとを含むことを特徴とする。このように構成すれば、安全性をより高めたしきい値暗号方式を採用した鍵生成方法を実現できる。
【0014】
本発明の請求項7による復元装置は、復号の際に乱数rの少なくとも一部を部分復号情報を用いて復元し、復元した乱数rの少なくとも一部を用いて平文mを求めることを特徴とする。このように構成すれば、安全かつ効率的なしきい値暗号方式を採用した通信システムにおける復元装置を実現できる。
【0015】
本発明の請求項8による通信方法は、合成数を法とするもとで合成数とは素なgに対して乱数rをgrとして隠し、乱数rの少なくとも一部を用いて平文mを暗号化する場合に、合成数を法とするもとで、暗号化のために部分的な事前計算を行うステップと、
合成数を法として計算できるgrで定義されるuから乱数rの少なくとも一部を取出す際に必要となる秘密情報である鍵を元に分散鍵を生成するステップと、
暗号文と前記分散鍵記憶手段に記憶されている分散鍵とを用いて部分復号情報を生成するステップと、
復号の際に乱数rの少なくとも一部を前記部分復号情報を用いて復元し、復元した乱数rの少なくとも一部を用いて平文mを求めることを特徴とするステップと、
を含むことを特徴とする。このように構成すれば、安全かつ効率的なしきい値暗号方式を採用した通信方法を実現できる。
【0016】
本発明の請求項9による通信システムは、合成数を法として計算できるgrで定義されるuから乱数rの少なくとも一部を取出す際に必要となる秘密鍵を生成する秘密鍵生成装置と、
合成数を法とするもとで合成数とは素なgに対して乱数rをgrとして隠し、乱数rの少なくとも一部を用いて平文mを暗号化する場合に、合成数を法とするもとで、暗号化のために部分的な事前計算を行う暗号化装置と、
復号の際に乱数rの少なくとも一部を、前記秘密鍵生成装置によって生成された秘密鍵を用いて復元し、復元した乱数rの少なくとも一部を用いて平文mを求める復元装置と、
を含むことを特徴とする。このように構成すれば、安全かつ効率的な公開鍵暗号方式を採用した通信システムを実現できる。
【0017】
本発明の請求項10による鍵生成装置は、合成数を法として計算できるgrで定義されるuから乱数rの少なくとも一部を取出す際に必要となる秘密鍵を生成する秘密鍵生成手段と、前記秘密鍵生成手段によって生成された秘密鍵を復元装置に送信する秘密鍵送信手段とを含むことを特徴とする。このように構成すれば、安全かつ効率的な公開鍵暗号方式を採用した通信システムにおける鍵生成装置を実現できる。
【0018】
本発明の請求項11による鍵生成装置は、請求項10において、grで定義されるuと暗号文との関係を検証するための暗号文検証用データを、作成するために必要な公開情報を作成する公開情報作成手段を更に含むことを特徴とする。このように構成すれば、安全性をより高めた公開鍵暗号方式を採用した通信システムにおける鍵生成装置を実現できる。
【0019】
本発明の請求項12による鍵生成方法は、合成数を法として計算できるgrで定義されるuから乱数rの少なくとも一部を取出す際に必要となる秘密鍵を生成する秘密鍵生成ステップを含むことを特徴とする。このように構成すれば、安全かつ効率的な公開鍵暗号方式を採用した鍵生成方法を実現できる。
本発明の請求項13による鍵生成方法は、合成数を法として計算できるgrで定義されるuから乱数rの少なくとも一部を取出す際に必要となる秘密鍵を生成する秘密鍵生成ステップと、grで定義されるuと暗号文との関係を検証するための暗号文検証用データを、作成するために必要な公開情報を作成する公開情報作成ステップとを含むことを特徴とする。このように構成すれば、安全性をより高めた公開鍵値暗号方式を採用した鍵生成方法を実現できる。
【0020】
本発明の請求項14による通信方法は、合成数を法として計算できるgrで定義されるuから乱数rの少なくとも一部を取出す際に必要となる秘密鍵を生成する鍵生成ステップと、
合成数を法とするもとで合成数とは素なgに対して乱数rをgrとして隠し、乱数rの少なくとも一部を用いて平文mを暗号化する場合に、合成数を法とするもとで、暗号化のために部分的な事前計算を行うステップと、
復号の際に乱数rの少なくとも一部を、前記秘密鍵生成手段によって生成された秘密鍵を用いて復元し、復元した乱数rの少なくとも一部を用いて平文mを求める復元ステップと、
を含むことを特徴とする。このように構成すれば、安全かつ効率的な公開鍵暗号方式を採用した通信方法を実現できる。
【0021】
本発明の請求項15による暗号化装置は、合成数を法とするもとで合成数とは素なgに対して乱数rをgrとして隠し、乱数rの少なくとも一部を用いて平文mを一度だけ暗号化し(従来特にしきい値暗号では検証データだけではなく一つの平文に対して二度暗号化してはじめて選択暗号文攻撃に対して安全であった)、更に暗号文検証用データを付加して、合成数を法とするもとで、暗号化のために部分的な事前計算を行う暗号文生成手段と、前記暗号文生成手段によって生成した暗号文を暗号文管理サーバに送信する暗号文送信手段とを含むことを特徴とする。このように構成すれば、安全かつ効率的な公開鍵暗号方式を採用した通信システムにおける暗号化装置を実現できる。
【0022】
本発明の請求項16による通信システムは、
合成数を法とするもとで合成数とは素なgに対して乱数rをgrとして隠し、乱数rの少なくとも一部を用いて平文mを一度だけ暗号化し(従来特にしきい値暗号では検証データだけではなく一つの平文に対して二度暗号化してはじめて選択暗号文攻撃に対して安全であった)、更に暗号文検証用データを付加して、合成数を法とするもとで、暗号化のために部分的な事前計算を行う暗号文生成手段と、
合成数を法として計算できるgrで定義されるuから乱数rの少なくとも一部を取出す際に必要となる秘密情報である鍵を元に分散鍵を生成する鍵生成手段と、
暗号文と分散鍵とを用いて部分復号情報を生成する部分復号手段(例えば、図1〜図3中の復号サーバ501〜50nに対応)と、
前記検証用データを用いて暗号文について検証を行う検証手段と、
復号の際に乱数rの少なくとも一部を前記部分復号情報を用いて復元し、復元した乱数rの少なくとも一部を用いて平文mを求めることを特徴とする復元手段と、
を含むことを特徴とする。このように構成すれば、安全かつ効率的なしきい値暗号方式を採用した通信システムを実現できる。
【0023】
本発明の請求項17による通信方法は、
合成数を法とするもとで合成数とは素なgに対して乱数rをgrとして隠し、乱数rの少なくとも一部を用いて平文mを一度だけ暗号化し(従来特にしきい値暗号では検証データだけではなく一つの平文に対して二度暗号化してはじめて選択暗号文攻撃に対して安全であった)、更に暗号文検証用データを付加して、合成数を法とするもとで、暗号化のために部分的な事前計算を行う暗号文生成ステップと、
合成数を法として計算できるgrで定義されるuから乱数rの少なくとも一部を取出す際に必要となる秘密情報である鍵を元に分散鍵を生成する鍵生成ステップと、
暗号文と分散鍵とを用いて部分復号情報を生成する部分復号ステップと、
前記検証用データを用いて暗号文について検証を行う検証ステップと、
復号の際に乱数rの少なくとも一部を前記部分復号情報を用いて復元し、復元した乱数rの少なくとも一部を用いて平文mを求める復元ステップと、
を含むことを特徴とする。このように構成すれば、安全かつ効率的なしきい値暗号方式を採用した通信方法を実現できる。
【0024】
本発明の請求項18による通信システムは、
合成数を法とするもとで合成数とは素なgに対して乱数rをgrとして隠し、乱数rの少なくとも一部を用いて平文mを一度だけ暗号化し(従来特にしきい値暗号では検証データだけではなく一つの平文に対して二度暗号化してはじめて選択暗号文攻撃に対して安全であった)、更に暗号文検証用データを付加して、合成数を法とするもとで、暗号化のために部分的な事前計算を行う暗号化手段と、
合成数を法として計算できるgrで定義されるuから乱数rの少なくとも一部を取出す際に必要となる秘密鍵を生成する秘密鍵生成手段と、
前記検証用データを用いて暗号文について検証を行う検証手段と、
復号の際に乱数rの少なくとも一部を、前記秘密鍵生成手段によって生成された秘密鍵を用いて復元し、復元した乱数rの少なくとも一部を用いて平文mを求める復元手段と、
を含むことを特徴とする。このように構成すれば、安全かつ効率的な公開鍵暗号方式を採用した通信システムを実現できる。
【0025】
本発明の請求項19による通信方法は、
合成数を法とするもとで合成数とは素なgに対して乱数rをgrとして隠し、乱数rの少なくとも一部を用いて平文mを一度だけ暗号化し(従来特にしきい値暗号では検証データだけではなく一つの平文に対して二度暗号化してはじめて選択暗号文攻撃に対して安全であった)、更に暗号文検証用データを付加して、合成数を法とするもとで、暗号化のために部分的な事前計算を行う暗号化ステップと、
合成数を法として計算できるgrで定義されるuから乱数rの少なくとも一部を取出す際に必要となる秘密鍵を生成する秘密鍵生成ステップと、
前記検証用データを用いて暗号文について検証を行う検証ステップと、
復号の際に乱数rの少なくとも一部を、前記秘密鍵生成手段によって生成された秘密鍵を用いて復元し、復元した乱数rの少なくとも一部を用いて平文mを求める復元ステップと、
を含むことを特徴とする。このように構成すれば、安全かつ効率的な公開鍵暗号方式を採用した通信方法を実現できる。
【0026】
本発明の請求項20による暗号化方法は、合成数を法とするもとで合成数とは素なgに対して乱数rをgrとして隠し、乱数rの少なくとも一部を用いて平文mを暗号化することを特徴とする。このように構成すれば、平文mとは無関係に決められる乱数rをあらかじめ決めてgrをあらかじめ計算しておくことが可能となり、効率的なしきい値暗号方式を採用した通信システムにおける暗号化方式を実現でき、また乱数rの少なくとも一部の情報を正確に求める必要性から安全性の根拠を決定問題に置くことが可能となり安全なしきい値暗号方式を採用した通信システムにおける暗号化方法を実現できる。
【0027】
本発明の請求項21による暗号化方法は、合成数を法とするもとで合成数とは素なgに対して乱数rをgrとして隠し、乱数rの少なくとも一部を用いて平文mを一度だけ暗号化し、更に暗号文検証用データを付加することを特徴とする。このように構成すれば、平文mとは無関係に決められる乱数rをあらかじめ決めてgrをあらかじめ計算しておくことが可能となり、さらに検証用データも大部分を事前に計算することにより効率的なしきい値暗号方式を採用した通信システムにおける暗号化方式を実現でき、また暗号文の検証用データによって選択暗号文攻撃に対する耐性が付加され、安全なしきい値暗号方式を採用した通信システムにおける暗号化方法を実現できる。
【0028】
本発明の請求項22による暗号復元方法は、復号の際に乱数rの少なくとも一部を、しきい値暗号化方式において使用する部分復号情報を用いて復元し、復元した乱数rの少なくとも一部を用いて平文mを求めることを特徴とする。このように構成すれば、乱数rの少なくとも一部の情報を正確に求める必要性から安全性の根拠を決定問題に置くことが可能となり安全なしきい値暗号方式を採用した通信システムにおける暗号復元方法を実現できる。
【0029】
本発明の請求項23による暗号復元方法は、復号の前に暗号文検証用データをもとに暗号文が正しく作られたものであるか確認し、その後確認が取れた場合には復号の際に乱数rの少なくとも一部を、公開鍵暗号化方式において使用する秘密鍵を用いて復元し、復元した乱数rの少なくとも一部を用いて平文mを求めることを特徴とする。このように構成すれば、暗号文の検証用データによって選択暗号文攻撃に対する耐性が付加され、安全なしきい値暗号方式を採用した通信システムにおける暗号復元方法を実現できる。
【0030】
本発明の請求項24による復元装置は、復号の際に乱数rの少なくとも一部を、公開鍵暗号化方式において使用する秘密鍵を用いて復元し、復元した乱数rの少なくとも一部を用いて平文mを求めることを特徴とする。このように構成すれば、乱数rの少なくとも一部の情報を正確に求める必要性から安全性の根拠を決定問題に置くことが可能となり安全な公開鍵暗号方式を採用した通信システムにおける復元装置を実現できる。
【発明の効果】
【0031】
本発明によれば、計算能力が低い端末においても事前計算を行うことにより暗号化できるので、効率的なしきい値暗号方式又は公開鍵暗号方式を採用した通信システムを実現できるという効果がある。
また、本発明によれば、選択暗号文攻撃に対する耐性を付加するか、又は決定問題が難しいという妥当な仮定に基づくようにしたため、安全なしきい値暗号方式又は公開鍵暗号方式を採用した通信システムを実現できるという効果がある。
【発明を実施するための最良の形態】
【0032】
以下、本発明の実施の形態を、図面を参照して説明する。なお、以下の説明において参照する各図では、他の図と同等部分は同一符号によって示されている。また、以下の説明において用いられている英文字やギリシャ文字は、各実施形態において同一に意義を有している。
本発明では、合成数NをN=pqと定義し、p,qを相異なる奇素数とし、共にΛ/2ビットとする。また、ZN2は、0以上N2未満の整数の集合、Z*N2は、ZN2の要素のうちN2と互いに素な整数の集合、QN2は法N2のもとで平方余剰である整数でありかつN2と互いに素な値の集合、とする。
【0033】
さらに、本発明では、以下の仮定1及び仮定2を前提とする。
(仮定1)
(Partial Discrete Logarithm Assumption)
N(=pq),g∈Z*N2,gr(gのr乗)(r∈ZN2)(N2はN2を意味する)
が与えられた際に、rと法をNとして合同なr’(当然rと完全に等しくてもよい)を求めることはほとんどできない。なお、「ほとんどできない」とは、この問題が何題か出題された場合、正解率が0に限りなく近いいう意味である。
ここで、gの位数を0でないNの倍数とする。
【0034】
(仮定2)
(Decisional Small Diffie−Hellman Assumption)
N(=pq),M(=p22),g∈Z*N2,g2∈Z*M2,gr(gのr乗)(r∈ZN2)(N2はN2を意味し、M2はM2を意味する)
が与えられた際に、さらに以下に定義するZ0もしくはZ1を与えた際に、その予想が当たる確率は1/2とほとんど同じである(1/2との差が限りなく0に近い)。
0=g2rmodM2,Z1=R(∈Z*M2)(M2はM2を意味する)
ここで、gの位数を0でないNの倍数、g2の位数を0でないN2の倍数とする。ただし、N>N2とするが、その差は無視できるほどしか差が無いとする。
【0035】
(第1実施形態)
〔通信システム〕
図1に示すように、通信システム100は、暗号化端末10と、復元端末20と、鍵生成サーバ30と、暗号文管理サーバ40と、複数の復号サーバ501〜50nと、ネットワーク60とを備える。暗号化端末10と、復元端末20と、鍵生成サーバ30と、暗号文管理サーバ40と、複数の復号サーバ501〜50nは、ネットワーク60を介して、情報を送受信する。
【0036】
鍵生成サーバ30は、μビットの平文mの暗号化に用いる公開情報(g,N,θ,H1)と、暗号文Cの復号に用いる秘密情報Lβとその分散鍵sを生成する鍵生成装置である。鍵生成サーバ30は、鍵生成部31と、鍵データベース32と、送信部33とを備える。鍵生成部31は、公開情報(g,N,θ,H1)と、それに対する秘密情報Lβと、秘密情報Lβを複数に分散した分散鍵sとを生成する。鍵生成部31は、n個の分散鍵sを生成する。さらに部分復号情報が正しいことを検証するためのn個の検証鍵vkとその生成元vを生成する。各検証鍵を区別するときには、i番目の検証鍵を「vki」と表す。よって、各分散鍵を区別するときには、i番目の分散鍵を「si」と表す。このように検証鍵vkと分散鍵sには、1〜nまでの番号が付与される。なお、復号サーバの数である「n」と、(t,n)しきい値暗号方式において復号のために必要な部分復号情報の数を表す「t」は、公開されている情報である。これら「n」及び「t」は、復元端末20に送信される。
【0037】
鍵データベース32は、公開情報(g,N,θ,H1)を記憶する。送信部33は、鍵生成部31が生成した公開情報(g,N,θ,H1)を暗号化端末10、復元端末20、暗号文管理サーバ40に送信する。また、検証鍵vk1〜vknを少なくとも復元端末20に送信する。また、送信部33は、分散鍵s1〜snを、復号サーバ501〜50nに送信する。このような鍵生成サーバ30は、コンピュータを、鍵生成部31と、鍵データベース32と、送信部33として機能させるためのプログラムを、コンピュータが実行することにより実現できる。
【0038】
暗号化端末10は、平文mを暗号化して暗号文Cを生成する暗号化装置である。暗号化端末10は、受信部11と、暗号文生成部12と、送信部13と、入力部14と、記憶部15とを備えている。
受信部11は、鍵生成サーバ30から公開情報(g,N,θ,H1)を受信する。記憶部15は、暗号文生成部12が事前に計算するH1(rmodN)とu=grmodN2とを記憶する。受信部11は、平文mを受信し、暗号文生成部12に入力してもよい。
【0039】
入力部14は、外部から入力される平文mを取得し、暗号文生成部12に入力する。暗号文生成部12は、事前計算され記憶部15に記憶されているH1(rmodN)及びu=grmodN2を用いて平文mを暗号化する。暗号文生成部12は、暗号文Cを生成する際に、合成数を法とするもとで合成数とは素なgに対して乱数rをgrとして隠し、乱数rの少なくとも一部を用いて平文mを暗号化する。暗号文生成部12は、入力部14や受信部11から平文mを取得する。なお、r∈UN2(N2はN2を意味する)である。ここで、「X∈UG」は、集合Gから一様な確率で要素Xを選択することを表す。
【0040】
暗号文生成部12は、以下に示す式(1)及び式(2)を計算することにより、平文mを暗号化して暗号文C(c,u)を生成することが好ましい。
c=H1(rmodN)*m …(1)
u=grmodN2 …(2)
ハッシュ関数H1は、ZN→{0,1}μである。なお、上記の「*」は排他的論理和を示している。以後の説明においても同様である。
【0041】
送信部13は、暗号文生成部12が生成した暗号文Cを、暗号文管理サーバ40に送信する。記憶部15は、後述するように暗号化する際に部分的に事前計算した結果を、一旦記憶する。このような暗号化端末10は、コンピュータを、受信部11と、暗号文生成部12と、送信部13と、入力部14と、記憶部15として機能させるためのプログラムを、コンピュータが実行することにより実現できる。
【0042】
暗号文管理サーバ40は、暗号文Cを暗号化端末10から受信し、暗号文Cを各装置に提供する暗号文管理装置である。暗号文管理サーバ40は、受信部41と、暗号文管理部42と、暗号文データベース43と、送信部44とを備える。受信部41は、暗号化端末10から暗号文Cを受信する。又、受信部41は、復元端末20や復号サーバ501〜50nから、暗号文Cの要求を受信する。更に、受信部41は、鍵生成サーバ30から公開情報(g,N,θ,H1)を受信する。
【0043】
暗号文データベース43は、暗号文Cを記憶する。送信部44は、暗号文Cを復元端末20、復号サーバ501〜50nに送信する。このような暗号文管理サーバ40は、コンピュータを、受信部41と、暗号文管理部42と、暗号文データベース43と、送信部44として機能させるためのプログラムを、コンピュータが実行することにより実現できる。
【0044】
復号サーバ501〜50nは、部分復号情報σを生成する。部分復号情報σは、暗号文Cから平文mを復元する際に用いる情報であり、復元端末20が平文mの復元をするために必要な情報である。部分復号情報σは、暗号文Cと分散鍵sとを用いた計算を行うことにより、即ち、暗号文Cを分散鍵sを用いて部分的に復号することにより得られる情報である。複数の復号サーバ501〜50nがそれぞれ異なる分散鍵sを用いて部分復号情報σを生成することにより、複数の部分復号情報σが生成される。分散鍵siを用いて生成された部分復号情報は、「σi」と表す。よって、複数の部分復号情報σとして、分散鍵s1〜snを用いて部分復号情報σ1〜σnが生成される。このように部分復号情報σには、1〜nまでの番号が付与される。又、復号サーバ501〜50nにも、1〜nまでの番号が付与される。なお、Δ=n!=n・(n−1)・(n−2)…2・1と定義する。
【0045】
復号サーバ501〜50nはそれぞれ、受信部511〜51nと、部分復号情報生成部521〜52nと、送信部531〜53nとを備える。受信部511〜51nは、鍵生成サーバ30から公開情報(g,N,θ,H1)と分散鍵sとを受信する。又、受信部511〜51nは、復元端末20から部分復号情報σの要求(以下「復号要求」という)を受信する。更に、受信部511〜51nは、暗号文管理サーバ40から暗号文Cを受信する。
【0046】
部分復号情報生成部521〜52nのうち、暗号文Cを復号することに同意した部分復号情報生成部は、σi≡u2ΔSimodN2を復元端末20に送信する。σi≡u2ΔSimodN2を受信した復元端末20は、上記に同意した部分復号情報生成部から送られてきた情報が正しいものかどうか確認する。この確認においては、σi2とvkiがそれぞれu4Δ、vΔを底として同じ対数を持つかどうかを確認する。復元端末20は、σiが正しいシェアであることを確認できなかった場合はinvalid symbolを出して処理を終了し、確認できた場合は以下の計算を行う。
【0047】
【数1】

ただし、
【0048】
【数2】

である。そして、rmodN並びに式(1)及び式(2)により、平文mが得られる。式(3)、式(4)において、「S」は、復元端末20からの復号要求を受け入れた復号サーバ501〜50nの番号の集合を表す。
【0049】
上記のような復号サーバ501〜50nは、コンピュータを、受信部511〜51nと、部分復号情報生成部521〜52nと、送信部531〜53nとして機能させるためのプログラムを、コンピュータが実行することにより実現できる。
復元端末20は、暗号文Cから平文mを復元する復元装置である。復元端末20は、受信部21と、平文復元部22と、送信部23と、出力部24とを備える。
受信部21は、複数の部分復号情報σを、複数の復号サーバ501〜50nから受信する。又、受信部21は、暗号文Cを暗号文管理サーバ40から受信する。更に、受信部21は、鍵生成サーバ30から公開情報(g,N,θ,H1)と検証鍵vk1〜vknを受信する。
【0050】
平文復元部22は、複数の部分復号情報σを用いて暗号文Cから平文mを復元する。平文復元部22は、復元した平文mを出力部24に出力する。送信部23は、暗号文Cの要求や、復号要求を送信する。このような復元端末20は、コンピュータを、受信部21と、平文復元部22と、送信部23と、出力部24として機能させるためのプログラムを、コンピュータが実行することにより実現できる。
【0051】
次に、図1、図2を用いて、平文mの暗号化から復元において通信システム100が行う処理を詳細に説明する。通信システム100では、(t,n)しきい値暗号方式により復号を行う。(t,n)しきい値暗号方式とは、n個の分散鍵s1〜snを用いて生成されるn個の部分復号情報σ1〜σnのうち、t個の部分復号情報を用いれば、平文mが復元できるしきい値暗号方式である。よって、「t」は、(t,n)しきい値暗号方式において必要な部分復号情報σの数を表す。
【0052】
通信システム100が、合成数を法とするもとで合成数とは素なgに対して乱数rをgrとして隠し、乱数rの少なくとも一部を用いて平文mを暗号化する暗号方式を用いる場合を説明する。鍵生成サーバ30の鍵生成部31は、まず、2つの大きなΛ/2ビットの強い素数p,qを選択し、その積を計算して、合成数N=pqを生成する。強い素数p,qとは、p=2p’+1においてp’が素数であり、q=2q’+1においてq’が素数であることをいう。
【0053】
ここで、L=p’q’を計算して秘密にしておく。また、a∈ZN,b∈Z*Nをもとにg=(1+aN)bNmodN2を定め、gを公開する。さらに、値β∈Z*Nをランダムに選択し、θ=aLβmodNを計算する。θを公開し、暗号化の際用いるハッシュ関数H1:ZN→{0,1}μも公開する。
次に、鍵生成部31は、公開情報(g,N,θ,H1)に対応する秘密情報Lβを生成する。秘密情報Lβは、
【0054】
【数3】

を満たす。更に、鍵生成部31は、秘密情報Lβを複数に分散して複数の分散鍵s、即ち、n個の分散鍵s1〜snを生成する。分散鍵s1〜snは、相互に異なる秘密情報である。
【0055】
本実施形態では、分散鍵s1〜snの個数nは、復号サーバ501〜50nの数と等しい。しかし、一つの復号サーバが複数の分散鍵を用いてもよい。よって、分散鍵sの個数と復号サーバの数は、必ずしも一致するとは限らない。分散鍵s1〜snの個数と復号サーバ501〜50nの数が一致する本実施形態では、復号サーバ50iが、分散鍵siを用いる。例えば、鍵生成部31は、Shamirにより提案された方法等を用いて、秘密情報Lβを複数に分散できる。
【0056】
具体的には、鍵生成部31は、aiU{0,1,・・・,LN−1}、(i=1,2,・・・,t−1)を乱数として選択し、さらに、a0=Lβとして定義して分散鍵siを生成する。又、「ZX」とは、0以上X未満の整数の集合(ZX=Z/XZ)を表す。この場合、鍵生成部31は、以下に示す式(6)を計算することにより、複数の分散鍵s1〜snを生成する。鍵生成部31は、式(6)を用いて、si=f(i)modLNを計算することにより分散鍵siを生成する。
【0057】
【数4】

【0058】
鍵生成部31は、生成した複数の分散鍵s1〜snを、送信部33に入力する。
更に、鍵生成部31は、部分復号情報σが正しく暗号文Cを部分的に復号したものか否かを判定する際に用いる複数の検証鍵vkを生成する。鍵生成部31は、分散鍵s1〜snと同数のn個の検証鍵vk1〜vknを生成する。鍵生成部31は、以下に示す式(7)を計算することにより検証鍵vk1〜vknを生成する。
【0059】
【数5】

【0060】
式(7)において、νはQN2(N2はN2を意味する)の部分群の生成元である。「QX」は、法Xのもとで平方余剰かつXと互いに素な整数の集合を表す。そのため、「QX」は、Z*Xから要素を一つ取得し、2乗した値の集合となる。鍵生成部31は、生成した複数の検証鍵vk1〜vknと、QN2(N2はN2を意味する)の部分群の生成元νの合計n+1個の値を、送信部33に入力する。
【0061】
送信部33は、図2に示すように、素数p,qを秘密にしたまま復元端末20に対応する公開情報(g,N,θ,H1)だけを、暗号化端末10、暗号文管理サーバ40、復元端末20に送信する。暗号化端末10の受信部11は、鍵生成サーバ30から公開情報(g,N,θ,H1)を受信し、暗号文生成部12に入力する。暗号文管理サーバ40の受信部41は、鍵生成サーバ30から公開情報(g,N,θ,H1)を受信し、暗号文管理部42に入力する。
【0062】
更に、送信部33は、公開情報(g,N,θ,H1)と複数の分散鍵s1〜snとを対応付けて、複数の復号サーバ501〜50nに送信する。このとき、送信部33は、複数の分散鍵s1,・・・,si,・・・,snをそれぞれ、復号サーバ501,・・・,50i,・・・,50nに送信する。復号サーバ501〜50nの受信部511〜51nは、鍵生成サーバ30から、公開情報(g,N,θ,H1)と分散鍵s1〜snを受信し、部分復号情報生成部521〜52nに入力する。送信部33は、このようにして、複数の分散鍵sを復号装置に送信する鍵送信部として機能する。
【0063】
このように、送信部33が、uからrの少なくとも一部を取出す際必要となる秘密情報Lβを分散した分散鍵s1〜snを、複数の復号サーバ501〜50nに分散して提供する。更に、鍵生成サーバ30自身も秘密情報Lβは、鍵データベース32に格納しない。これにより、秘密情報Lβは一箇所に管理されず、複数の復号サーバ501〜50nによって分散管理される。
【0064】
又、送信部33は、公開情報(g,N,θ,H1)と検証鍵vk1〜vknと、QN2(N2はN2を意味する)の部分群の生成元νとを対応付けて、復元端末20に送信する。復元端末20の受信部21は、鍵生成サーバ30から、公開情報(g,N,θ,H1)、検証鍵vk1〜vkn、QN2(N2はN2を意味する)の部分群の生成元νを受信し、平文復元部22に入力する。
【0065】
暗号化端末10の暗号文生成部12は、鍵生成サーバ30から受信した公開情報(g,N,θ,H1)を用いて暗号化する。具体的には、暗号文生成部12は、値gに対して乱数rをgrmodN2として隠し、rの少なくとも一部の情報を用いて平文mをもとに暗号文Cを生成する。例えば、暗号文生成部12は、上記式(1)及び上記式(2)を計算することにより、平文mを暗号化し、暗号文Cを生成する。平文mは、暗号化端末10が暗号化して秘密にしたい情報である。本実施形態における平文mは、複数の分散鍵s1〜snを用いない限り、暗号文Cから平文mを復号できないようにすることにより、暗号化端末10が分散管理したい情報である。
【0066】
暗号文生成部12は、乱数rを、ZN2から選択する。暗号文生成部12は、生成した暗号文Cを送信部13に入力する。送信部13は、図2に示すように、暗号文Cと暗号化に用いた公開鍵を暗号文管理サーバ40に送信する。
暗号文管理サーバ40の受信部41は、図2に示すように、暗号化端末10から暗号文Cを受信する。受信部41は、受信した暗号文Cを暗号文管理部42に入力する。暗号文管理部42は、暗号文Cを、鍵生成サーバ30から受信した公開情報(g,N,θ,H1)に対応付けて、暗号文データベース43に格納する。
【0067】
その後、復元端末20の平文復元部22が、公開情報(g,N,θ,H1)をもとに作成した暗号文Cの要求と、公開情報(g,N,θ,H1)と秘密情報をもとに作成した部分復号情報σを要求する復号要求を生成し、送信部23に入力する。送信部23は、暗号文Cの要求を暗号文管理サーバ40に送信する。暗号文管理サーバ40の受信部41は、復元端末20から暗号文Cの要求を受信し、暗号文管理部42に入力する。暗号文管理部42は、暗号文Cの要求において指定されている公開情報(g,N,θ,H1)に対応する暗号文Cを、暗号文データベース43から取得し、公開情報(g,N,θ,H1)と対応付けて送信部44に入力する。送信部44は、図2に示すように公開情報(g,N,θ,H1)と対応付けられた暗号文Cを復元端末20に送信する。このように公開情報(g,N,θ,H1)は、暗号文Cを識別するための識別データとして用いることができる。
【0068】
又、送信部23は、復号要求を複数の復号サーバ501〜50nに送信する。このとき、送信部23は、復号要求を全ての復号サーバ501〜50nにブロードキャストにより送信してもよく、(t,n)しきい値暗号方式において必要な部分復号情報の数tだけ復号サーバを選択し、送信してもよい。
復号サーバ501〜50nの受信部511〜51nは、復号要求を受信し、部分復号情報生成部521〜52nに入力する。部分復号情報生成部521〜52nは、復号要求を受け入れた場合、復号要求において指定されている公開情報(g,N,θ,H1)を指定した暗号文Cの要求を生成し、送信部531〜53nに入力する。送信部531〜53nは、暗号文Cの要求を暗号文管理サーバ40に送信する。尚、部分復号情報生成部521〜52nは、復号要求を拒否してもよい。
【0069】
暗号文管理サーバ40の受信部41は、復号サーバ501〜50nから暗号文Cの要求を受信し、暗号文管理部42に入力する。暗号文管理部42は、指定された公開情報(g,N,θ,H1)に対応する暗号文Cを暗号文データベース43から取得し、公開情報(g,N,θ,H1)と対応付けて送信部44に入力する。送信部44は、図2に示すように公開情報(g,N,θ,H1)と対応付けられた暗号文Cを復号サーバ501〜50nに送信する。
【0070】
復号サーバ501〜50nの受信部511〜51nは、暗号文Cを受信し、部分復号情報生成部521〜52nに入力する。部分復号情報生成部521〜52nはそれぞれ、受信した暗号文Cと分散鍵s1〜snを用いて、σi≡u2ΔSimodN2を計算することにより、暗号文Cを部分的に復号して部分復号情報σ1〜σnを生成する。部分復号情報生成部521〜52nは、復号要求において指定されている公開情報(g,N,θ,H1)に対応する分散鍵s1〜snを用いる。
【0071】
例えば、復号サーバ50iの場合、暗号文Cと分散鍵siを用いて、
σi=u2ΔSimodN2
を計算することにより、部分復号情報σiを生成する。
部分復号情報生成部52は、生成した部分復号情報σ1〜σnを送信部531〜53nに入力する。送信部531〜53nはそれぞれ、図2に示すように、部分復号情報σ1〜σnを復元端末20に送信する。尚、全ての復号サーバ501〜50nが、部分復号情報σ1〜σnの生成、送信を行う必要はなく、少なくとも(t,n)しきい値暗号方式において必要なt個の部分復号情報σを生成し、復元端末20に送信すればよい。
【0072】
復元端末20の受信部21は、複数の復号サーバ501〜50nから複数の部分復号情報σ1〜σnを受信する。受信部21は、受信した複数の部分復号情報σ1〜σnを平文復元部22に入力する。このようにして、受信部21は、複数の復号装置から複数の部分復号情報σを受信する復号情報受信部として機能する。尚、受信部21は、全ての復号サーバ501〜50nから全ての部分復号情報σ1〜σnを受信する必要はなく、少なくとも(t,n)しきい値暗号方式において必要なt個の部分復号情報σを受信する。
【0073】
平文復元部22は、複数の部分復号情報σ1〜σnを用いて、暗号文Cの一部であるuから平文mを復元する。平文復元部22は、まず、部分復号情報σが正しく復号されたものか否かを判定する。平文復元部22は、暗号文Cの一部であるuの4Δ乗「u4Δ」を底とした部分復号情報の2乗「σ2」の対数と、QN2(N2はN2を意味する)の部分群の生成元のΔ乗「νΔ」を底とした検証鍵vkの対数が等しいか否かを判定する。平文復元部22は、対数が等しい場合には、部分復号情報σが正しく復号されたものであると判定し、対数が異なる場合には、部分復号情報σは正しく復号されていないと判定する。
【0074】
平文復元部22は、複数の部分復号情報σ1〜σnについて、それぞれ検証鍵vk1〜vknを用いて判定を行う。対数が等しいか否かの判定には、一般的な方法、例えば、文献「FPS00:P.−A. Fouque,G.Poupard and J.Stern,“Sharing Decryption in the Context of Voting or Lotteries”, Financial Cryptography 2000 Lecture Notes in Computer Science,pp.90−104,2000」に記載されている方法を用いることができる。
【0075】
平文復元部22は、正しく復号されていると判定した部分復号情報σ1〜σnを用いて、まず、平文mの暗号化に用いた乱数rの情報の一部を計算する。尚、平文復元部22は、全ての復号サーバ501〜50nからの全ての部分復号情報σ1〜σnを用いる必要はなく、(t,n)しきい値暗号方式において必要なt個の部分復号情報σを選択し、用いる。
平文復元部22は、まず、上述した式(3)を計算する。平文復元部22は、文献「SHo00:victor Shoup, “Practical Threshold Signatures”,EUROCRYPT,Lecture Notes in Computer Science, pp.207-220,2000」と同様に、式(4)に示す条件で式(3)を計算する。
【0076】
式(3)、式(4)において、「S」は、復元端末20からの復号要求を受け入れた復号サーバ501〜50nの番号の集合を表す。つまり、例えば、番号1、2、5が付与された復号サーバが復号要求を受け入れた場合には、S={1,2,5}と記述される。但し、集合Sに含まれる番号の数は、(t,n)しきい値暗号方式において部分復号情報σが必要な数tに限定される。又、式(3)、式(4)における「λ」は補間係数である。「λ」は、式(4)において、f(0)=a0を計算するために用いられ、式(8)に示す関係を持つ。
【0077】
【数6】

【0078】
又、「ΠjS/[i](i−j)」は、集合Sに含まれる番号のうちiを除く全ての番号に関してiから引き算した値を考え、それら全ての積を示す。同様に、「ΠjS/[i](−j)」は、集合Sに含まれる番号のうちiを除く全ての数字に関して、符号の正負を逆にした値の積を示す。
次に、平文復元部22は、計算した乱数rの少なくとも一部を用いて、暗号文Cから平文mを復元する。具体的には、平文復元部22は、合成数を法とするもとで合成数とは素なgに対して乱数rをgrとして隠し、乱数rの少なくとも一部を用いて平文mを暗号化する際に用いた式、例えば、上記式(3)に基づいてrmodを算出し、算出したrmodと受信した暗号文Cとを式(1)に代入して、平文mを復元する。以上のようにして、復元端末20は、復号サーバ501〜50nから受信した複数の部分復号情報σ1〜σnに基づいて、秘密の情報である平文mを復元できる。
【0079】
尚、平文復元部22は、部分復号情報σが正しく復号されていないと判定した場合には、その部分復号情報σを送信した復号サーバに対する部分復号情報の拒否通知を生成し、送信部23に入力する。送信部23は、拒否通知を復号サーバに送信し、処理を終了する。もしくは、平文復元部22は、他の有効な部分復号情報をもとに秘密情報を復元する。
【0080】
〔安全性強化のための変形例〕
ところで、上記の通信システムにおいて、鍵生成部31による鍵生成、暗号化端末10による暗号化、復元端末20による復号において、上記とは異なる、以下の処理を行うことにより、選択暗号文攻撃に対する安全性を持たせることができる。
(1)鍵生成部31による鍵生成においては、以下の事項が異なる。
鍵生成部31は、公開情報(g,g2,N,M,θ,H1,H2)を生成する。まず、4つの大きなΛ/2ビットの強い素数p,p2,q,q2を用い、合成数N=pq,M=p22を作成し、p,p2,q,q2は秘密にしたままN,Mを公開情報として公開する。ここで、L=p’q’,L2=p2’q2’も計算して秘密にしておく。なお、N>Mとする。なお、N<Mの場合も同様に行える。
【0081】
また、a∈ZN,b∈Z*Nをもとにg=(1+aN)bNmodMを、a2∈ZM,b2∈Z*Mをもとにg2=(1+a2M)b2MmodM2を、それぞれ定め、g,g2を公開する。さらに、値β, β2∈Z*Nをランダムに選択し、θ=aLβmodN, θ2=a22β2modMを計算しておく。また、暗号化の際に用いるハッシュ関数H1:ZN→{0,1}μとH2:{0,1}μ×ZN2×ZN2×ZM2×ZM2→{0,1}Bも公開する。ここで復号サーバ501〜50nへ渡す分散鍵はそれぞれ一つとするほかに、それぞれ二つ渡す方法も考えられる。この場合には、鍵生成部31は、Shamirにより提案された方法等を用いて、秘密情報L2β2も複数に分散する。
【0082】
具体的には、鍵生成部31は、biU{0,1,・・・,L2M−1}、(i=1,2,・・・,t−1)を乱数として選択し、さらに、b0=L2β2として定義して分散鍵tiを生成する。この場合、鍵生成部31は、以下に示す式(6)’を計算することにより、複数の分散鍵t1〜tnを生成する。鍵生成部31は、式(6)’を用いて、ti=f2(i)modL2Mを計算することにより分散鍵tiを生成する。
【0083】
【数7】

【0084】
鍵生成部31は、生成した複数の分散鍵t1〜tnも、送信部33に入力する。
更に、鍵生成部31は、部分復号情報σ’≡u’2ΔtimodM2が正しく暗号文Cを部分的に復号したものか否かを判定する際に用いる複数の検証鍵wkを生成する。鍵生成部31は、分散鍵t1〜tnと同数のn個の検証鍵wk1〜wknを生成する。鍵生成部31は、以下に示す式(7)’を計算することにより検証鍵wk1〜wknを生成する。
【0085】
【数8】

【0086】
式(7)’において、ν2はQM2(M2はM2を意味する)の部分群の生成元である。
(2)暗号化端末10による暗号化においては、以下の事項が異なる。
式(1)及び式(2)の代わりに、次の式(9)を用いる。ただし、s∈ZN4(N4はN4を意味する)とする。
【0087】
【数9】

【0088】
(3)復号においては、以下の事項が異なる。
暗号文を復号する前に、復元端末20、暗号文管理サーバ40、復号サーバ501〜50nの少なくとも1箇所において暗号文の検証を行う。この場合、少なくとも復元端末20において、暗号文の検証を行うことが望ましい。
ここで復号サーバ501〜50nへ渡す分散鍵をそれぞれ二つ渡す方法の場合にはuに関して行う部分復号と結合をu’についても同様に行い、復元結果がともにrかどうかの確認をする。もしも同じにならない場合は不正な暗号文として認識する。
ただし各復号サーバが通信して納得した上であればuかu’どちらか一方だけ復号してrを求めても構わない。
以上のように、復号を行う前に、少なくとも復元端末20が暗号文の検証を行うことにより、選択暗号文攻撃に対する安全性を持たせることができる。
【0089】
〔通信方法〕
次に、通信システム100を用いて行う通信方法の手順を説明する。まず、鍵生成サーバ30が、公開情報(g,N,θ,H1)、複数の分散鍵s1〜sn、複数の検証鍵vk1〜vknを生成する(S101)。鍵生成サーバ30は、公開情報(g,N,θ,H1)を復元端末20、復号サーバ501〜50n、暗号文管理サーバ40、暗号化端末10に送信する(S102〜S105)。鍵生成サーバ30は、複数の分散鍵s1〜snを復号サーバ501〜50nに送信する(S106)。鍵生成サーバ30は、少なくとも復元端末2,0にvk1〜vkn,vを送信する(S107)。
【0090】
暗号化端末10は、例えば、式(2)を用い、合成数を法とするもとで合成数とは素なgに対して乱数rをgrとして隠し、式(1)を用い、乱数rの少なくとも一部を用いて平文mを暗号化し、暗号文Cを生成する(S108)。暗号化端末10は、生成した暗号文Cを暗号文管理サーバ40に送信する(S109)。暗号文管理サーバ40は、受信した暗号文Cを暗号文データベース43に格納する(S110)。
【0091】
復元端末20は、暗号文Cを暗号文管理サーバ40に要求する(S111)。暗号文管理サーバ40は、復元端末20の要求に応じて、暗号文データベース43が記憶する暗号文Cを復元端末20に送信する(S112)。
復元端末20は、復号サーバ501〜50nに復号要求を送信する(S113)。復号サーバ501〜50nは暗号文Cを暗号文管理サーバ40に要求する(S114)。
【0092】
暗号文管理サーバ40は、復号サーバ501〜50nの要求に応じて、暗号文データベース43が記憶する暗号文Cを復号サーバ501〜50nに送信する(S115)。
復号サーバ501〜50nはそれぞれ、暗号文Cと分散鍵s1〜snとを用いて、σi≡u2ΔSimodN2を計算することにより、部分復号情報σ1〜σnを生成する(S116)。 復号サーバ501〜50nはそれぞれ、生成した部分復号情報σ1〜σnを復元端末20に送信する(S117)。
【0093】
復元端末20は、受信した部分復号情報σ1〜σnが正しく復号されたものか否かを、検証鍵vk1〜vknを用いて判定する(S118)。復元端末20は、部分復号情報σ1〜σnが正しく復号されたものと判定した場合には、部分復号情報σ1〜σnを用いて乱数rの少なくとも一部の情報を計算する。そして、復元端末20は、受信した暗号文Cと、計算した乱数rの少なくとも一部の情報を、合成数を法とするもとで合成数とは素なgに対して乱数rをgrとして隠し、乱数rの少なくとも一部を用いて平文mを暗号化する際に用いた式に代入することにより、平文mを復元する(S119)。このようにして、暗号化端末10と、複数の復号サーバ501〜50nとの間で、秘密の情報である平文mを管理できる。尚、ステップ(S103)、(S115)に代えて、復元端末20から復号サーバ501〜50nに公開情報(g,N,θ,H1)や暗号文Cを送信するようにしてもよい。
【0094】
なお、上述した安全性強化のための変形例の場合には、上記のステップS110、ステップS116、ステップS118のうち少なくとも1つのステップにおいて、暗号文の検証を行うことになる。この場合、少なくとも、復号サーバ501〜50nが行うステップS116において、暗号文の検証を行うことが望ましい。このように、復号を行う前に、少なくとも復元端末において、暗号文の検証を行うことにより、選択暗号文攻撃に対する安全性を持たせることができる。
【0095】
〔効果〕
本実施形態の通信システム100、暗号化端末10、復元端末20、鍵生成サーバ30、暗号文管理サーバ40、複数の復号サーバ501〜50n及び通信方法によれば、合成数を法とするもとで合成数とは素なgに対して乱数rをgrとして隠し、乱数rの少なくとも一部を用いて平文mを暗号化する方式をしきい値暗号方式に適用できる。そのため、安全性を確保するためには計算量が多くなってしまったり、1ビットしか暗号化できない従来のしきい値暗号方式に対して、通信システム100では、複数ビットの平文mを、grを計算し、H1(rmodN)によって暗号化し、安全性を確保できる。
【0096】
上記の暗号化処理において、u=grmodN2、H1(rmodN)の部分を事前に計算し、暗号化する際はc=H1(rmodN)*mのみ計算すれば良いので、暗号化する際の計算量を少なくできることが分かる。つまり、通信システム100によれば、部分的に事前計算するので、処理効率の良いしきい値暗号方式を実現することができる。
【0097】
特に、暗号化端末10や復元端末20が、携帯性を重視する移動通信端末のように高速のCPUを搭載することが困難な装置の場合においても、計算量が少ない本発明のしきい値暗号方式であれば利用可能である。さらに安全性強化のための変形例においては、素因数分解型のしきい値暗号ではよくあるように分散鍵を一つの復号サーバに二つ持たせるといったことが必要なく、変形例においては分散鍵の個数が減っているため記憶容量が少ない場合においても本発明のしきい値暗号方式であれば適用可能である。このように、本発明のしきい値暗号方式は、計算能力が低い暗号化装置や復号装置、復元装置、あるいは、安全性を高めた場合であっても記憶容量が低い暗号化装置や復号装置、復元装置においても、利用可能であり、暗号化と復号を効率的に行うことができる。
【0098】
なお、上述した、安全性強化のための変形例を採用した場合、暗号文の検証を行うためのデータについてもほぼ事前計算できるので、安全性を強化してもやはり処理効率の良いしきい値暗号方式を実現することができる。
また、例えば、H1(rmodN)*mとしてmを暗号化することにより、ハッシュ関数の性質からmを求めるためには、rmodNを一意に決定する必要性がある。このため、本実施形態を採用すれば、決定問題に根拠をおくかもしくは選択暗号文攻撃に対しても安全性を確保でき、安全性を付与したしきい値暗号方式を実現することができる。
【0099】
ところで、本実施形態の通信システム100は、種々の変更が可能である。例えば、暗号化端末10、復号サーバ501〜50nの一部、又は、復元端末20が、鍵生成サーバ30の機能の一部又は全部を備え、鍵生成装置として機能してもよい。この他、暗号化端末10、復元端末20、鍵生成サーバ30、暗号文管理サーバ40、復号サーバ501〜50nのそれぞれの全部又は一部の機能のうち、少なくとも2つの機能を有する装置を通信システム100に備えてもよい。なお、通信システム100は、暗号文管理サーバ40、暗号化端末10を複数備えてもよい。
【0100】
又、上記実施の形態では、暗号文Cを識別するための識別データとして公開情報(g,N,θ,H1)を用いているが、公開情報以外のデータを識別データとして用いることができる。又、鍵生成サーバ30は、公開情報(g,N,θ,H1)の暗号文管理サーバ40への送信を省略してもよい。尚、この場合には、暗号文管理サーバ40は、暗号文Cの要求と暗号文Cとを対応付けるための識別データとして、公開情報(g,N,θ,H1)以外のものを暗号文Cに付与し、その識別データを復元端末20へ与え、その識別データに対応付けて暗号文Cを暗号文データベース43に格納する。
【0101】
あるいは、鍵生成サーバ30は、公開情報(g,N,θ,H1)を、暗号化端末10、復元端末20、暗号文管理サーバ40、復号サーバ501〜50nに送信せずに、これらの装置が自由に閲覧して取得できるようにしてもよい。又、暗号化端末10、復元端末20、暗号文管理サーバ40、復号サーバ501〜50n等が、予め公開情報(g,N,θ,H1)や分散鍵s1〜sn、検証鍵vk1〜vkn等を保持することにより、鍵生成サーバ30を省略してもよい。
又、復号サーバ501〜50nが完全に信用できる場合には検証鍵を用いなくてもよい。その場合には、復元端末20は、部分復号情報σが正しいか否かの判定を行わないため、より高速に処理を行え、効率を向上できる。
【0102】
(第2実施形態)
〔通信システム〕
図4に示すように、公開鍵通信システム200は、暗号化端末10と、復元端末20と、鍵生成サーバ30と、暗号文管理サーバ40と、ネットワーク60とを備える。暗号化端末10と、復元端末20と、鍵生成サーバ30と、暗号文管理サーバ40は、ネットワーク60を介して、情報を送受信する。
鍵生成サーバ30は、μビットの平文mの暗号化に用いる公開情報(g,N,H1)と、暗号文Cの復号に用いる秘密鍵を生成する鍵生成装置である。鍵生成サーバ30は、鍵生成部31と、鍵データベース32と、送信部33とを備える。鍵生成部31は、公開情報(g,N,H1)と、それに対する秘密鍵とを生成する。
【0103】
鍵データベース32は、公開情報(g,N,H1)を記憶する。送信部33は、鍵生成部31が生成した公開情報(g,N,H1)を暗号化端末10、復元端末20、暗号文管理サーバ40に送信する。また、送信部33は、秘密鍵2Lを復元端末20に送信する。このような鍵生成サーバ30は、コンピュータを、鍵生成部31と、鍵データベース32と、送信部33として機能させるためのプログラムを、コンピュータが実行することにより実現できる。
【0104】
暗号化端末10は、平文mを暗号化して暗号文Cを生成する暗号化装置である。暗号化端末10は、受信部11と、暗号文生成部12と、送信部13と、入力部14と、記憶部15とを備えている。
受信部11は、鍵生成サーバ30から公開情報(g,N,H1)を受信する。記憶部15は、暗号文生成部12が事前に計算するH1(rmodN)とu=grmodN2とを記憶する。受信部11は、平文mを受信し、暗号文生成部12に入力してもよい。
【0105】
入力部14は、外部から入力される平文mを取得し、暗号文生成部12に入力する。暗号文生成部12は、事前計算され記憶部15に記憶されているH1(rmodN)及びu=grmodN2を用いて平文mを暗号化する。暗号文生成部12は、暗号文Cを生成する際に、合成数を法とするもとで合成数とは素なgに対して乱数rをgrとして隠し、乱数rの少なくとも一部を用いて平文mを暗号化する。暗号文生成部12は、入力部14や受信部11から平文mを取得する。暗号文生成部12は、上述した式(1)及び式(2)を計算することにより、平文mを暗号化して暗号文C(c,u)を生成することが好ましい。
c=H1(rmodN)*m …(1)
u=grmodN2 …(2)
ハッシュ関数H1は、ZN→{0,1}μである。なお、上記の「*」は排他的論理和を示している。
【0106】
送信部13は、暗号文生成部12が生成した暗号文Cを、暗号文管理サーバ40に送信する。記憶部15は、後述するように暗号化する際に部分的に事前計算した結果を、一旦記憶する。このような暗号化端末10は、コンピュータを、受信部11と、暗号文生成部12と、送信部13と、入力部14と、記憶部15として機能させるためのプログラムを、コンピュータが実行することにより実現できる。
【0107】
暗号文管理サーバ40は、暗号文Cを暗号化端末10から受信し、暗号文Cを各装置に提供する暗号文管理装置である。暗号文管理サーバ40は、受信部41と、暗号文管理部42と、暗号文データベース43と、送信部44とを備える。受信部41は、暗号化端末10から暗号文Cを受信する。又、受信部41は、復元端末20から、暗号文Cの要求を受信する。更に、受信部41は、鍵生成サーバ30から公開情報(g,N,H1)を受信する。
【0108】
暗号文データベース43は、暗号文Cを記憶する。送信部44は、暗号文Cを復元端末20に送信する。このような暗号文管理サーバ40は、コンピュータを、受信部41と、暗号文管理部42と、暗号文データベース43と、送信部44として機能させるためのプログラムを、コンピュータが実行することにより実現できる。
復元端末20では以下の式を用いて復号化処理を行う。
2LmodN2=(1+2raLN)
である。そして、rmodN並びに式(1)及び式(2)により、平文mが得られる。
【0109】
復元端末20は、暗号文Cから平文mを復元する復元装置である。復元端末20は、受信部21と、平文復元部22と、送信部23と、出力部24とを備える。
受信部21は、秘密鍵2Lを、鍵生成サーバ30から受信する。又、受信部21は、暗号文Cを暗号文管理サーバ40から受信する。更に、受信部21は、鍵生成サーバ30から公開情報(g,N,H1)を受信する。
【0110】
平文復元部22は、秘密鍵2Lを用いて暗号文Cから平文mを復元する。平文復元部22は、復元した平文mを出力部24に出力する。送信部23は、暗号文Cの要求や、復号要求を送信する。このような復元端末20は、コンピュータを、受信部21と、平文復元部22と、送信部23と、出力部24として機能させるためのプログラムを、コンピュータが実行することにより実現できる。
【0111】
次に、図4、図5を用いて、平文mの暗号化から復元において公開鍵通信システム200が行う処理を詳細に説明する。公開鍵通信システム200では、公開鍵暗号方式により復号を行う。
公開鍵通信システム200が、合成数を法とするもとで合成数とは素なgに対して乱数rをgrとして隠し、乱数rの少なくとも一部を用いて平文mを暗号化する暗号方式を用いる場合を説明する。本例においては、鍵生成サーバ30の鍵生成部31は、まず、2つの大きなΛ/2ビットの強い素数p,qを選択し、公開情報(g,N,H1)を作成する。また、素数p及び素数qを記憶しておき、秘密鍵2Lを生成する。また、鍵生成サーバ30の鍵生成部31は、合成数N=pqを生成する。強い素数p,qとは、p=2p’+1においてp’が素数であり、q=2q’+1においてq’が素数であることをいう。
【0112】
鍵生成部31は、素数p’、素数q’よりL=p’q’を構成し、公開情報(g,N,H1)に対応する秘密鍵2Lを生成する。
鍵生成部31は、生成した複数の秘密鍵2Lを、送信部33に入力する。
送信部33は、図5に示すように、素数p,qを秘密にしたまま復元端末20に対応する公開情報(g,N,H1)だけを、暗号化端末10、暗号文管理サーバ40、復元端末20に送信する。暗号化端末10の受信部11は、鍵生成サーバ30から公開情報(g,N,H1)を受信し、暗号文生成部12に入力する。暗号文管理サーバ40の受信部41は、鍵生成サーバ30から公開情報(g,N,H1)を受信し、暗号文管理部42に入力する。
【0113】
更に、送信部33は、秘密鍵2Lを復元端末20に送信する。
暗号化端末10の暗号文生成部12は、鍵生成サーバ30から受信した公開情報(g,N,H1)を用いて暗号化する。具体的には、暗号文生成部12は、値gに対して乱数rをgrmodN2として隠し、rの少なくとも一部の情報を用いて平文mをもとに暗号文Cを生成する。例えば、暗号文生成部12は、上記式(1)及び上記式(2)を計算することにより、平文mを暗号化し、暗号文Cを生成する。平文mは、暗号化端末10が暗号化して秘密にしたい情報である。本実施形態における平文mは、秘密鍵2Lを用いない限り、暗号文Cから平文mを復号できないようにすることにより、暗号化端末10が暗号化したい情報である。
【0114】
暗号文生成部12は、乱数rを、ZN2から選択する。暗号文生成部12は、生成した暗号文Cを送信部13に入力する。送信部13は、図5に示すように、暗号文Cを暗号文管理サーバ40に送信する。
暗号文管理サーバ40の受信部41は、図5に示すように、暗号化端末10から暗号文Cを受信する。受信部41は、受信した暗号文Cを暗号文管理部42に入力する。暗号文管理部42は、暗号文Cを、鍵生成サーバ30から受信した公開情報(g,N,H1)に対応付けて、暗号文データベース43に格納する。
【0115】
その後、復元端末20の平文復元部22が、公開情報(g,N,H1)をもとに作成した暗号文Cの要求を生成し、送信部23に入力する。送信部23は、暗号文Cの要求を暗号文管理サーバ40に送信する。暗号文管理サーバ40の受信部41は復元端末20から暗号文Cの要求を受信部41において受信し、暗号文管理部42は、暗号文Cの要求において指定されている公開情報(g,N,H1)に対応する暗号文Cを、暗号文データベース43から取得し、公開情報(g,N,H1)と対応付けて送信部44に入力する。送信部44は、図2に示すように公開情報(g,N,H1)と対応付けられた暗号文Cを復元端末20に送信する。このように公開情報(g,N,H1)は、暗号文Cを識別するための識別データとして用いることができる。
【0116】
送信部33は、秘密鍵2Lを送信する。鍵生成サーバ30の送信部33から送信された秘密鍵2Lは、復元端末20の受信部21が受信する。
復元端末20の受信部21は、受信した秘密鍵2Lを平文復元部22に入力する。このようにして、受信部21は、鍵生成サーバ30から秘密鍵2Lを受信する復号情報受信部として機能する。
平文復元部22は、秘密鍵2Lを用いて、暗号文Cの一部であるuから平文mを復元する。この場合、平文復元部22は、
2L=(1+2raLN)modN2
からrmodNを求め、
c=H1(rmodN)*m
より、平文mを得る。
【0117】
〔安全性強化のための変形例〕
ところで、上記の通信システムにおいて、鍵生成部31による鍵生成、暗号化端末10による暗号化、復元端末20による復号において、上記とは異なる、以下の処理を行うことにより、選択暗号文攻撃に対する安全性を持たせることができる。
(1)鍵生成部31による鍵生成においては、以下の事項が異なる。
鍵生成部31は、公開情報(g,g2,N,M,H1,H2)を生成する。まず、4つの大きなΛ/2ビットの強い素数p,p2,q,q2を用い、合成数N=pq,M=p22を作成し、p,p2,q,q2は秘密にしたままN,Mを公開情報として公開する。ここで、L=p’q’,L2=p2’q2’も計算して秘密にしておく。なお、N>Mとする。
【0118】
また、a∈ZN,b∈Z*Nをもとにg=(1+aN)bNmodMを、a2∈ZM,b2∈Z*Mをもとにg2=(1+a2M)b2MmodM2を、それぞれ定め、g,g2を公開する。また、暗号化の際に用いるハッシュ関数H1:ZN→{0,1}μとH2:{0,1}μ×ZN2×ZN2×ZM2×ZM2→{0,1}Bも公開する。ここで復元端末20の持つ秘密鍵は一つとするほかに、二つにする方法も考えられる。この場合には、復元端末20では以下の式も用いて復号化処理を行う。
u’2L2modM2=(1+2ra22M)
(2)暗号化端末10による暗号化においては、以下の事項が異なる。
式(1)及び式(2)の代わりに、上述した式(9)を用いる。
【0119】
【数10】

【0120】
(3)復号においては、以下の事項が異なる。
暗号文を復号する前に、復元端末20、暗号文管理サーバ40の少なくとも1箇所において暗号文の検証を行う。この場合、少なくとも復元端末20において、暗号文の検証を行うことが望ましい。
ここで復元端末20のもつ秘密鍵を二つ持つ方法の場合にはuに関して行う部分復号をu’についても同様に行い、復元結果がともにrかどうかの確認をする。もしも同じにならない場合は不正な暗号文として認識する。鍵が二つある場合でも計算時間の短縮のため、uもしくはu’一方に対してのみ復元しても構わない。
以上のように、復号を行う前に、少なくとも復元端末20が暗号文の検証を行うことにより、選択暗号文攻撃に対する安全性を持たせることができる。
【0121】
〔通信方法〕
次に、公開鍵通信システム200を用いて行う通信方法の手順を説明する。まず、鍵生成サーバ30が、公開情報(g,N,H1)、秘密鍵2Lを生成する(S201)。鍵生成サーバ30は、公開情報(g,N,H1)を復元端末20、暗号文管理サーバ40、暗号化端末10に送信する(S202、S204、S205)。鍵生成サーバ30は、復元端末20に秘密鍵を送信する(S207)。
【0122】
暗号化端末10は、例えば、式(1)及び式(2)を用い、合成数を法とするもとで合成数とは素なgに対して乱数rをgrとして隠し、乱数rの少なくとも一部を用いて平文mを暗号化し、暗号文Cを生成する(S208)。暗号化端末10は、生成した暗号文Cを暗号文管理サーバ40に送信する(S209)。暗号文管理サーバ40は、受信した暗号文Cを暗号文データベース43に格納する(S210)。
【0123】
復元端末20は、暗号文Cを暗号文管理サーバ40に要求する(S211)。暗号文管理サーバ40は、復元端末20の要求に応じて、暗号文データベース43が記憶する暗号文Cを復元端末20に送信する(S212)。
復元端末20は、秘密鍵2Lを用いて乱数r mod Nを計算する。そして、復元端末20は、受信した暗号文Cと、計算した乱数rmod Nを、合成数を法とするもとで合成数とは素なgに対して乱数rをgrとして隠し、乱数rの少なくとも一部を用いて平文mを暗号化する際に用いた式に代入することにより、平文mを復元する(S219)。
【0124】
なお、上述した安全性強化のための変形例の場合には、上記のステップS210において、又は、ステップS219の処理前において、暗号文の検証を行うことになる。この場合、少なくとも、復元端末20が行うステップS219の処理前において、暗号文の検証を行うことが望ましい。このように、復号を行う前に、少なくとも復元端末において、暗号文の検証を行うことにより、選択暗号文攻撃に対する安全性を持たせることができる。
【0125】
〔効果〕
本実施形態の公開鍵通信システム200、暗号化端末10、復元端末20、鍵生成サーバ30、暗号文管理サーバ40及び通信方法によれば、合成数を法とするもとで合成数とは素なgに対して乱数rをgrとして隠し、乱数rの少なくとも一部を用いて平文mを暗号化する方式をしきい値暗号方式に適用できる。そのため、安全性を確保するためには計算量が多くなってしまったり、1ビットしか暗号化できない従来のしきい値暗号方式に対して、公開鍵通信システム200では、合成数を法とするもとで合成数とは素なgに対して乱数rをgrとして隠し、乱数rの少なくとも一部を用いて複数ビットの平文mを暗号化しているので安全性を確保できる。
【0126】
上記の暗号化処理において、u=grmodN2、H1(rmodN)の部分を事前に計算し、暗号化する際はc=H1(rmodN)*mのみ計算すれば良いので、暗号化する際の計算量を少なくできることが分かる。つまり、公開鍵通信システム200によれば、部分的に事前計算するので、処理効率の良い公開鍵暗号方式を実現することができる。なお、上述した、安全性強化のための変形例を採用した場合、暗号文の検証を行うためのデータについてもほぼ事前計算できるので、安全性を強化してもやはり処理効率の良い公開鍵暗号方式を実現することができる。
【0127】
また、例えば、H1(rmodN)*mとしてmを暗号化することにより、ハッシュ関数の性質からmを求めるためには、rmodNを一意に決定する必要性がある。このため、本実施形態を採用すれば、決定問題に根拠をおくかもしくは選択暗号文攻撃に対しても安全性を確保でき、安全性を付与した公開鍵値暗号方式を実現することができる。
特に、暗号化端末10が、携帯性を重視する移動通信端末のように高速のCPUを搭載することが困難な装置の場合においても、計算量が少ない本発明のしきい値暗号方式であれば利用可能である。このように、本発明の公開鍵暗号方式は、計算能力が低い暗号化装置においても、利用可能であり、暗号化を効率的に行うことができる。
【0128】
ところで、本実施形態の公開鍵通信システム200は、種々の変更が可能である。例えば、復元端末20又は暗号文管理サーバ40が、鍵生成サーバ30の機能の一部又は全部を備え、鍵生成装置として機能してもよい。この場合、復元端末20が鍵生成サーバ30の機能の全部を備えていることが望ましい。この他、暗号化端末10、復元端末20、鍵生成サーバ30、暗号文管理サーバ40のそれぞれの全部又は一部の機能のうち、少なくとも2つの機能を有する装置を公開鍵通信システム200に備えてもよい。なお、公開鍵通信システム200は、暗号化端末10、暗号文管理サーバ40を複数備えてもよい。
【0129】
又、上記実施の形態では、暗号文Cを識別するための識別データとして公開情報(g,N,H1)を用いているが、公開情報以外のデータを識別データとして用いることができる。又、鍵生成サーバ30は、公開情報(g,N,H1)の暗号文管理サーバ40への送信を省略してもよい。尚、この場合には、暗号文管理サーバ40は、暗号文Cの要求と暗号文Cとを対応付けるための識別データとして、公開情報(g,N,H1)以外のものを暗号文Cに付与し、その識別データを復元端末20へ与え、その識別データに対応付けて暗号文Cを暗号文データベース43に格納する。
あるいは、鍵生成サーバ30は、公開情報(g,N,H1)を、暗号化端末10、復元端末20、暗号文管理サーバ40に送信せずに、これらの装置が自由に閲覧して取得できるようにしてもよい。
【0130】
(まとめ)
上述した第1実施形態及び第2実施形態は、ともに事前計算を行うことにより暗号化を高速に行えるという特徴を持ち、素因数分解型の方式のため素数生成時の問題も少ない。
さらに、第1実施形態では安全性が選択平文攻撃のもとでのみ示されるが決定問題という比較的弱い仮定の下で安全性を示せる利点もある。第2実施形態では選択暗号文攻撃のもとでの安全性が示されるという利点がある。
【産業上の利用可能性】
【0131】
本発明は、安全かつ効率的なしきい値暗号方式及び公開鍵暗号方式を採用した通信システムの構築に利用できる。
【図面の簡単な説明】
【0132】
【図1】本発明の第1実施形態に係る通信システムの構成を示す図である。
【図2】本発明の第1実施形態に係る情報の流れを示す図である。
【図3】本発明の第1実施形態に係る通信方法の手順を示すフロー図である。
【図4】本発明の第2実施形態に係る通信システムの構成を示す図である。
【図5】本発明の第2実施形態に係る情報の流れを示す図である。
【図6】本発明の第2実施形態に係る通信方法の手順を示すフロー図である。
【符号の説明】
【0133】
10 暗号化端末
11 受信部
12 暗号文生成部
13 送信部
14 入力部
15 記憶部
20 復元端末
21 受信部
22 平文復元部
23 送信部
24 出力部
30 鍵生成サーバ
31 鍵生成部
32 鍵データベース
33 送信部
40 暗号文管理サーバ
41 受信部
42 暗号文管理部
43 暗号文データベース
44 送信部
50i 復号サーバ
60 ネットワーク
100 通信システム
200 公開鍵通信システム
51i 受信部
52i 部分復号情報生成部
53i 送信部

【特許請求の範囲】
【請求項1】
合成数を法とするもとで合成数とは素なgに対して乱数rをgrとして隠し、乱数rの少なくとも一部を用いて平文mを暗号化する場合に、合成数を法とするもとで、暗号化のために部分的な事前計算を行う暗号化装置と、
合成数を法として計算できるgrで定義されるuから乱数rの少なくとも一部を取出す際に必要となる秘密情報である鍵を元に分散鍵を生成する鍵生成装置と、
暗号文と分散鍵とを用いて部分復号情報を生成する部分復号装置と、
復号の際に乱数rの少なくとも一部を前記部分復号情報を用いて復元し、復元した乱数rの少なくとも一部を用いて平文mを求める復元装置と、
を含むことを特徴とする通信システム。
【請求項2】
合成数を法とするもとで合成数とは素なgに対して乱数rをgrとして隠し、乱数rの少なくとも一部を用いて平文mを暗号化する場合に、合成数を法とするもとで、暗号化のために部分的な事前計算を行う暗号文生成手段と、前記暗号文生成手段によって生成した暗号文を暗号文管理サーバに送信する暗号文送信手段とを含むことを特徴とする暗号化装置。
【請求項3】
合成数を法として計算できるgrで定義されるuから乱数rの少なくとも一部を取出す際に必要となる秘密情報である鍵を元に分散鍵を生成する分散鍵生成手段と、前記分散鍵生成手段によって生成された分散鍵を部分復号装置に送信する分散鍵送信手段とを含むことを特徴とする鍵生成装置。
【請求項4】
rで定義されるuと暗号文との関係を検証するための暗号文検証用データを、作成するために必要な公開情報を作成する公開情報作成手段を更に含むことを特徴とする請求項3記載の鍵生成装置。
【請求項5】
合成数を法として計算できるgrで定義されるuから乱数rの少なくとも一部を取出す際に必要となる秘密情報である鍵を元に分散鍵を生成する分散鍵生成ステップを含むことを特徴とする鍵生成方法。
【請求項6】
合成数を法として計算できるgrで定義されるuから乱数rの少なくとも一部を取出す際に必要となる秘密情報である鍵を元に分散鍵を生成する分散鍵生成ステップと、grで定義されるuと暗号文との関係を検証するための暗号文検証用データを、作成するために必要な公開情報を作成する公開情報作成ステップとを含むことを特徴とする鍵生成方法。
【請求項7】
復号の際に乱数rの少なくとも一部を部分復号情報を用いて復元し、復元した乱数rの少なくとも一部を用いて平文mを求めることを特徴とする復元装置。
【請求項8】
合成数を法とするもとで合成数とは素なgに対して乱数rをgrとして隠し、乱数rの少なくとも一部を用いて平文mを暗号化する場合に、合成数を法とするもとで、暗号化のために部分的な事前計算を行うステップと、
合成数を法として計算できるgrで定義されるuから乱数rの少なくとも一部を取出す際に必要となる秘密情報である鍵を元に分散鍵を生成するステップと、
暗号文と前記分散鍵記憶手段に記憶されている分散鍵とを用いて部分復号情報を生成するステップと、
復号の際に乱数rの少なくとも一部を前記部分復号情報を用いて復元し、復元した乱数rの少なくとも一部を用いて平文mを求めることを特徴とするステップと、
を含むことを特徴とする通信方法。
【請求項9】
合成数を法として計算できるgrで定義されるuから乱数rの少なくとも一部を取出す際に必要となる秘密鍵を生成する秘密鍵生成装置と、
合成数を法とするもとで合成数とは素なgに対して乱数rをgrとして隠し、乱数rの少なくとも一部を用いて平文mを暗号化する場合に、合成数を法とするもとで、暗号化のために部分的な事前計算を行う暗号化装置と、
復号の際に乱数rの少なくとも一部を、前記秘密鍵生成装置によって生成された秘密鍵を用いて復元し、復元した乱数rの少なくとも一部を用いて平文mを求める復元装置と、
を含むことを特徴とする通信システム。
【請求項10】
合成数を法として計算できるgrで定義されるuから乱数rの少なくとも一部を取出す際に必要となる秘密鍵を生成する秘密鍵生成手段と、前記秘密鍵生成手段によって生成された秘密鍵を復元装置に送信する秘密鍵送信手段とを含むことを特徴とする鍵生成装置。
【請求項11】
rで定義されるuと暗号文との関係を検証するための暗号文検証用データを、作成するために必要な公開情報を作成する公開情報作成手段を更に含むことを特徴とする請求項10記載の鍵生成装置。
【請求項12】
合成数を法として計算できるgrで定義されるuから乱数rの少なくとも一部を取出す際に必要となる秘密鍵を生成する秘密鍵生成ステップを含むことを特徴とする鍵生成方法。
【請求項13】
合成数を法として計算できるgrで定義されるuから乱数rの少なくとも一部を取出す際に必要となる秘密鍵を生成する秘密鍵生成ステップと、grで定義されるuと暗号文との関係を検証するための暗号文検証用データを、作成するために必要な公開情報を作成する公開情報作成ステップとを含むことを特徴とする鍵生成方法。
【請求項14】
合成数を法として計算できるgrで定義されるuから乱数rの少なくとも一部を取出す際に必要となる秘密鍵を生成する鍵生成ステップと、
合成数を法とするもとで合成数とは素なgに対して乱数rをgrとして隠し、乱数rの少なくとも一部を用いて平文mを暗号化する場合に、合成数を法とするもとで、暗号化のために部分的な事前計算を行うステップと、
復号の際に乱数rの少なくとも一部を、前記秘密鍵生成手段によって生成された秘密鍵を用いて復元し、復元した乱数rの少なくとも一部を用いて平文mを求める復元ステップと、
を含むことを特徴とする通信方法。
【請求項15】
合成数を法とするもとで合成数とは素なgに対して乱数rをgrとして隠し、乱数rの少なくとも一部を用いて平文mを一度だけ暗号化し、更に暗号文検証用データを付加して、合成数を法とするもとで、暗号化のために部分的な事前計算を行う暗号文生成手段と、前記暗号文生成手段によって生成した暗号文を暗号文管理サーバに送信する暗号文送信手段とを含むことを特徴とする暗号化装置。
【請求項16】
合成数を法とするもとで合成数とは素なgに対して乱数rをgrとして隠し、乱数rの少なくとも一部を用いて平文mを一度だけ暗号化し、更に暗号文検証用データを付加して、合成数を法とするもとで、暗号化のために部分的な事前計算を行う暗号文生成手段と、
合成数を法として計算できるgrで定義されるuから乱数rの少なくとも一部を取出す際に必要となる秘密情報である鍵を元に分散鍵を生成する鍵生成手段と、
暗号文と分散鍵とを用いて部分復号情報を生成する部分復号手段と、
前記検証用データを用いて暗号文について検証を行う検証手段と、
復号の際に乱数rの少なくとも一部を前記部分復号情報を用いて復元し、復元した乱数rの少なくとも一部を用いて平文mを求めることを特徴とする復元手段と、
を含むことを特徴とする通信システム。
【請求項17】
合成数を法とするもとで合成数とは素なgに対して乱数rをgrとして隠し、乱数rの少なくとも一部を用いて平文mを一度だけ暗号化し、更に暗号文検証用データを付加して、合成数を法とするもとで、暗号化のために部分的な事前計算を行う暗号文生成ステップと、
合成数を法として計算できるgrで定義されるuから乱数rの少なくとも一部を取出す際に必要となる秘密情報である鍵を元に分散鍵を生成する鍵生成ステップと、
暗号文と分散鍵とを用いて部分復号情報を生成する部分復号ステップと、
前記検証用データを用いて暗号文について検証を行う検証ステップと、
復号の際に乱数rの少なくとも一部を前記部分復号情報を用いて復元し、復元した乱数rの少なくとも一部を用いて平文mを求める復元ステップと、
を含むことを特徴とする通信方法。
【請求項18】
合成数を法とするもとで合成数とは素なgに対して乱数rをgrとして隠し、乱数rの少なくとも一部を用いて平文mを一度だけ暗号化し、更に暗号文検証用データを付加して、合成数を法とするもとで、暗号化のために部分的な事前計算を行う暗号化手段と、
合成数を法として計算できるgrで定義されるuから乱数rの少なくとも一部を取出す際に必要となる秘密鍵を生成する秘密鍵生成手段と、
前記検証用データを用いて暗号文について検証を行う検証手段と、
復号の際に乱数rの少なくとも一部を、前記秘密鍵生成手段によって生成された秘密鍵を用いて復元し、復元した乱数rの少なくとも一部を用いて平文mを求める復元手段と、
を含むことを特徴とする通信システム。
【請求項19】
合成数を法とするもとで合成数とは素なgに対して乱数rをgrとして隠し、乱数rの少なくとも一部を用いて平文mを一度だけ暗号化し、更に暗号文検証用データを付加して、合成数を法とするもとで、暗号化のために部分的な事前計算を行う暗号化ステップと、
合成数を法として計算できるgrで定義されるuから乱数rの少なくとも一部を取出す際に必要となる秘密鍵を生成する秘密鍵生成ステップと、
前記検証用データを用いて暗号文について検証を行う検証ステップと、
復号の際に乱数rの少なくとも一部を、前記秘密鍵生成手段によって生成された秘密鍵を用いて復元し、復元した乱数rの少なくとも一部を用いて平文mを求める復元ステップと、
を含むことを特徴とする通信方法。
【請求項20】
合成数を法とするもとで合成数とは素なgに対して乱数rをgrとして隠し、乱数rの少なくとも一部を用いて平文mを暗号化することを特徴とする暗号化方法。
【請求項21】
合成数を法とするもとで合成数とは素なgに対して乱数rをgrとして隠し、乱数rの少なくとも一部を用いて平文mを一度だけ暗号化し、更に暗号文検証用データを付加することを特徴とする暗号化方法。
【請求項22】
復号の際に乱数rの少なくとも一部を、しきい値暗号化方式において使用する部分復号情報を用いて復元し、復元した乱数rの少なくとも一部を用いて平文mを求めることを特徴とする暗号復元方法。
【請求項23】
復号の前に暗号文検証用データをもとに暗号文が正しく作られたものであるか確認し、その後確認が取れた場合には復号の際に乱数rの少なくとも一部を、公開鍵暗号化方式において使用する秘密鍵を用いて復元し、復元した乱数rの少なくとも一部を用いて平文mを求めることを特徴とする暗号復元方法。
【請求項24】
復号の際に乱数rの少なくとも一部を、公開鍵暗号化方式において使用する秘密鍵を用いて復元し、復元した乱数rの少なくとも一部を用いて平文mを求めることを特徴とする復元装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2006−227411(P2006−227411A)
【公開日】平成18年8月31日(2006.8.31)
【国際特許分類】
【出願番号】特願2005−42646(P2005−42646)
【出願日】平成17年2月18日(2005.2.18)
【新規性喪失の例外の表示】特許法第30条第1項適用申請有り 社団法人電子情報通信学会,電子情報通信学会技術研究報告,信学技報 Vol.104,No.421,2004年11月1日発行
【出願人】(392026693)株式会社エヌ・ティ・ティ・ドコモ (5,876)
【出願人】(504182255)国立大学法人横浜国立大学 (429)
【Fターム(参考)】