JP4743364B2 - 暗号文の平文が区間内にあることの証明システムと証明文の作成方法、その証明文による検証方法 - Google Patents

暗号文の平文が区間内にあることの証明システムと証明文の作成方法、その証明文による検証方法 Download PDF

Info

Publication number
JP4743364B2
JP4743364B2 JP2001069067A JP2001069067A JP4743364B2 JP 4743364 B2 JP4743364 B2 JP 4743364B2 JP 2001069067 A JP2001069067 A JP 2001069067A JP 2001069067 A JP2001069067 A JP 2001069067A JP 4743364 B2 JP4743364 B2 JP 4743364B2
Authority
JP
Japan
Prior art keywords
value
ciphertext
plaintext
values
proof
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2001069067A
Other languages
English (en)
Other versions
JP2002268545A (ja
Inventor
潤 古川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2001069067A priority Critical patent/JP4743364B2/ja
Publication of JP2002268545A publication Critical patent/JP2002268545A/ja
Application granted granted Critical
Publication of JP4743364B2 publication Critical patent/JP4743364B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、確率暗号を用いたゼロ知識証明に関し、特に、暗号化された数値が定められた区間内に属することを、その数値を隠したまま証明する暗号文の平文が区間内にあることの証明システムと、暗号化された数値が定められた区間内に属することを証明する証明文の作成方法、及びその証明文による暗号化された数値が定められた区間内に属することの検証方法に関する。
【0002】
【従来の技術】
従来、特定の数値が定められた区間にあることを、その値を隠したまま証明する技術について、例えばファブリーチェ ブード(Fabrice Boudot)による方式がある。これは文献「エフィシエント プルーフス ザット ア コミッテッド ナンバー ライズ イン アン インターバル、アドバンス イン クリプトロジー、プロシーヂング オブ ユーロクリプト 2000、エルエヌシーエス 1807、シュプリンガー フェアラーグ、431ページから444ページまで、2000年(Efficient Proofs that a Committed Number Lies in an Interval, Advance in Cryptology, Proceeding of Eurocrypt' 2000, LNCS1807, Springer-Verlag, pp. 431-444, 2000)」に開示されている。この方式では、与えられた値を、乱数を用いてコミットし、その値が定められた区間内にあることを、その値を隠したまま証明する。
【0003】
以下に、図面を参照してこの従来の技術の概略を説明する。図10は、この従来技術における、特定の数値が定められた区間にあることを、その特定の数値を隠したまま証明するための証明文を作成する証明文作成装置の構成を説明するためのブロック図であり、図11は、この証明文作成装置の処理を説明するためのフローチャートであり、図12は、この証明文作成装置の演算処理を詳細に説明するための図である。
【0004】
図12においては、証明文の上半分(33−1a、33−2a)を導く過程が点線により省略されているが、これは以下に説明する下半分(33−3a、33−4a)を導く過程と全く同様にして導くことができる。
【0005】
ここでの「xをコミットする」とは、一方向性関数にxが(と場合により乱数とが)入力された結果を公開することであり、この結果をコミットメントと呼ぶ。一方向性関数の性質より、xのコミットメントよりxを求めることはできず、また、同じコミットメントを与えるx以外の入力を求めることも困難となる。こうして、数値xは、一方向性関数により(と場合により乱数を用いて)暗号化されるのである。
【0006】
合成数nを、証明者、検証者のいずれも知らない(十分に大きな)2つの素数p、qの積であるとする。g、hを、乗法群Z* nの要素で、互いを底とする離散対数のどちらも証明者と検証者は知らないとする。
【0007】
証明者は、まず図12の101に示されるように、コメットされる数15a(被コミット数)である“x”と、そのコミットメントに用いる乱数16aである“r”を用いて、計算した値“gxhrmod n”をxのコミットメント33−5aとして算出する(ステップ1101)。このxの値が、指定された区間である[a、b]の区間内にあることを、xを秘密にしたまま証明するための証明文を作成する。
【0008】
そして図12の102において、被コミット数のx、指定された区間を定める定数13aである下限値a、上限値bのコミットメントから区間の両端値との差x-a(103)、b-x(104)のコミットメントを計算する(ステップ1102)。そして図12の105、106において、安全変数14aと定められた区間の大きさから求められる変数Tを用いて、この2つのコミットメントを2T乗し、2T(x-1)、2T(b-x)のコミットメントを計算する(ステップ1103)。
【0009】
そして、コミットされた各値2T(x-1)、2T(b-x)を隠したまま(解読困難性を保ったまま)、これらの値が-2Tより大きいことをそれぞれ証明する。x、a、bが整数なので、この証明は、x-a、b-xが正であること、すなわちxが[a、b]の区間内にあることの証明となる。以下ではコミットされた数が-2Tより大きいことを、その数を秘密にしたまま(解読困難性を保ったまま)、検証者に対して証明する方法について述べる。
【0010】
以下、この秘密の数(つまり、2T(x-1)、2T(b-x)の一方の値)をXとする。vをXの平方根より小さい最大の整数とし、整数zをX-v2として取る(ステップ1104)。
【0011】
ここで、v2、u、Xをコミットする。検証者は、これらのコミットメントから、コミットされた各数がv2+u=Xなる関係を満たすことが分かる。
【0012】
そして、図12の110において、uのコミットメントが、絶対値が2Tより小さい値のコミットメントであることを、uを隠したままで証明するための証明文33−4aを生成する。更に、図12の111において、v2のコミットメントが、平方数のコミットメントであることを、vを隠したままで証明するための証明文33−3aを生成する(ステップ1105)。
【0013】
正である平方数と、絶対値が2Tより小さい値の和であるXは-2Tより大きくなる。uの絶対値が2Tより小さいことの証明をuの値を隠して行なうためには、uの絶対値は2Tよりずっと小さい必要がある。そのような絶対値の小さなuと平方数との和で[a、b]の区間内にある整数全てが表せるように十分に大きなTを選ぶことによりXの値を隠す。また、これらの証明にはコミットメントを生成するために使った乱数が必要になる。
【0014】
【発明が解決しようとする課題】
しかし、従来の技術では、以下に述べるような問題点があった。
【0015】
[問題(1)]
定められた区間内にあることを証明したい数は、証明者自らコミットしたものに限られるという問題点がある(暗号文のみを与えられても証明できない)。これは、証明文の作成のために、証明にコミットした数とコミットするのに使った乱数との両方を必要とするためである。
【0016】
[問題(2)]
証明者が乗法群Z* nの位数(周期)nを知らないことが保証されていなければならない。これは、コミットメントのコミットされる数に関する周期を証明者が知っていると、コミットされた数(v2)が平方であることの証明は、コミットされた数の存在する区間を制限できないからである(乗法群Z* nの位数はコミットメントのコミットされる数に関する周期となる)。
【0017】
上記2つの問題点の解決が重要となる例を次に挙げる。
【0018】
[例]
例として、アンケート式の個人の性格の傾向診断サービスを考える。
主催者は利用者にアンケートを配り、利用者はそれに回答して主催者に返送し、主催者は傾向の有無を利用者に返答する。
【0019】
ここで利用者のプライバシー保護のため、利用者がどの項目に印をつけたか主催者に分からないようにしたい。また、主催者のノウハウを隠すためや、利用者が結果を意識してアンケートに答えることがないようにするため、アンケートの各項目が診断される傾向に正に働くのか或は負に働くのか利用者に分からないようにしたい。診断の詳細を知らせないために、利用者の傾向の具体的数値は利用者に分からないようにして、利用者の傾向がある閾値を超えたかのみを伝えたい。また、主催者が特定の利用者に故意に偽の診断結果を伝えることを防ぐために、診断結果を主催者が偽造していないことを利用者に保証したい。
【0020】
主催者はアンケートの各質問項目に対応して、1又は0をコミットしたもの(g1hrmod n、又はg0hrmod n)のどちらかである要素からなる列を利用者に配る。各コミットメントが1のコミットメントであるか0のコミットメントであるかが対応する質問項目が診断される傾向に正に働くのか或は負に働くのかを決める。乱数rは各コミットメント毎に異なるものを使い、利用者にコミットメントされている数を分からなくする。利用者は自分の当てはまると思われる質問に対応するコミットメントと任意の乱数r"を選び、それらコミットメントとhr"との積を求め主催者に返送する。この積はg0+,・・・,+1hr'+,・・・,+r+r"mod nといった形をしており、判断に正に働く項目の質問を利用者が選んだ数がコミットされている。ここで、コミットされている数と乱数r'+,・・・,+r+r"とを主催者が知ることができれば、従来の技術を使うことにより主催者は適正判断の結果を、(傾向の)具体的な数値を示すことなく利用者に証明することができる(判断に使われる項目を選んだ数がある値を超えるかどうかで適正の有無を判断するとする)。
【0021】
この場合に、主催者はこの積からは利用者がどの項目を選んだかは分からない。
【0022】
[例における問題点]
上記アンケートで従来の技術を使った場合、問題(1)により主催者は、アンケート結果であるコミットメントの積からコミットされた数及び乱数を知ることができない。また、何らかの新しい方法でこれらの数が分かったとしても、主催者がZ* nを定めたのならば、問題(2)により、その数が定められた区間にあるかどうかを証明することができない。
【0023】
本発明の目的は、上記従来技術の欠点を解決し、証明者以外が作成したコミットメントに対しても、証明者がそのコミットメントからコミットされた数を求めて、コミットされた数が定められた区間にある場合は、検証者に対してコミットされた数を隠したまま、コミットされた数が定められた区間にあることを証明する暗号文の平文が区間内にあることの証明システムと証明文の作成方法、その証明文による検証方法を提供することである。
【0024】
すなわち、従来の技術では、証明者自身が隠して所持している数に関してその数の属する区間を証明するものであったが、本発明においては、証明者が(証明文作成装置が)他より与えらたコミットメントに対して、コミットされた数の属する区間を証明するのである。
【0025】
【課題を解決するための手段】
本発明の第1の証明システムは、確率暗号文の平文である数値が指定された範囲内にあることを証明するための証明文を作成し、かつ証明文に基づいて当該平文の値が当該指定された範囲内にあることを検証する暗号文の平文が区間内にあることの証明システムにおいて、平文の値、当該平文を当該確率暗号文に暗号化するために用いられた乱数の値、指定された範囲を定める上限値と下限値、及び、正しく検証される確率を規定する安全変数の値とに基づいて、確率暗号文の解読困難性を失うことなく平文の値が指定された範囲内にあるか否かを判定するための証明文を作成する証明文作成装置と、検証対象の確率暗号文、指定された範囲を定める上限値と下限値、証明文、及び、正しく検証される確率を規定する安全変数の値とに基づいて、平文の値が指定された範囲内にあるか否かを、安全変数に規定された以上の確率で正確に検証する検証装置を備える。
【0026】
本発明の第1の証明文作成装置は、確率暗号文の平文である数値が、指定された範囲内にあることを証明するための証明文を作成する証明文作成装置において、平文の値、当該平文を当該確率暗号文に暗号化するために用いられた乱数の値、指定された範囲を定める上限値と下限値、及び、正しく検証される確率を規定する安全変数の値とに基づいて、証明文を作成する手段を備えることにより、確率暗号文、上限値、下限値、安全変数、及び、作成された証明文とに基づく検証において、確率暗号文の解読困難性を失うことなく、平文の値が指定された範囲内にあるか否かを安全変数に規定された以上の確率で正確に検証するための、証明文を作成する
【0027】
本発明の第1の検証装置は、確率暗号文の平文である数値が指定された範囲内にあることを証明する証明文に基づき、当該平文の値が当該指定された範囲内にあることを検証する検証装置において、検証対象の確率暗号文、指定された範囲を定める上限値と下限値、証明文、及び、正しく検証される確率を規定する安全変数の値とに基づいて、平文の値が指定された範囲内にあるか否かを、安全変数に規定された以上の確率で正確に検証する
【0028】
本発明の第1の証明文作成方法は、確率暗号文の平文である数値が、指定された範囲内にあることを証明するための証明文を作成する証明文作成装置による証明文作成方法であって、平文の値、当該平文を当該確率暗号文に暗号化するために用いられた乱数の値、指定された範囲を定める上限値と下限値、及び、正しく検証される確率を規定する安全変数の値とに基づいて、証明文を作成するステップを備えることにより、確率暗号文、上限値、下限値、安全変数、及び、作成された証明文とに基づく検証において、確率暗号文の解読困難性を失うことなく、平文の値が指定された範囲内にあるか否かを安全変数に規定された以上の確率で正確に検証するための、証明文を作成する
【0029】
本発明の第1の検証方法は、確率暗号文の平文である数値が指定された範囲内にあることを証明する証明文に基づき、当該平文の値が当該指定された範囲内にあることを検証する検証装置による検証方法であって、検証対象の確率暗号文、指定された範囲を定める上限値と下限値、証明文、及び、正しく検証される確率を規定する安全変数の値とに基づいて、平文の値が指定された範囲内にあるか否かを、安全変数に規定された以上の確率で正確に検証する
【0030】
本発明の第1の証明文作成プログラムは、確率暗号文の平文である数値が指定された範囲内にあることを証明するための証明文を作成する証明文作成装置として機能するコンピュータ上で動作する証明文作成プログラムであって、コンピュータに、平文の値、当該平文を当該確率暗号文に暗号化するために用いられた乱数の値、指定された範囲を定める上限値と下限値、及び、正しく検証される確率を規定する安全変数の値とに基づいて、証明文を作成する処理を実行させることにより、確率暗号文、上限値、下限値、安全変数、及び、作成された証明文とに基づく検証において、確率暗号文の解読困難性を失うことなく、平文の値が指定された範囲内にあるか否かを安全変数に規定された以上の確率で正確に検証するための、証明文の作成を実行させる
【0031】
本発明の第1の検証プログラムは、確率暗号文の平文である数値が指定された範囲内にあることを証明する証明文に基づき、当該平文の値が当該指定された範囲内にあることを検証する検証装置として機能するコンピュータ上で動作する検証プログラムであって、コンピュータに、検証対象の確率暗号文、指定された範囲を定める上限値と下限値、証明文、及び、正しく検証される確率を規定する安全変数の値とに基づいて、平文の値が指定された範囲内にあるか否かを、安全変数に規定された以上の確率で正確に検証する処理を実行させる
【0053】
本発明においては、定められた区間にあることを証明したい値がコミットされている確率公開鍵暗号文を、復号することにより証明したい値と暗号化に用いた乱数を取得して、その証明文を作成することができる。暗号文の平文に関する周期が存在するために、平方数であることの証明文のみでは平方数の存在する区間を限定できないが、平方数の平方根が周期の半分の平方根より小さい(平方数が周期の半分より小さい)ことの証明文を備えることにより、平方数の存在する区間が限定でき検証を行なうことができる。
【0054】
【発明の実施の形態】
本発明の上記及び他の目的、特徴及び利点を明確にすべく、以下添付した図面を参照しながら本発明の実施の形態につき詳細に説明する。
【0055】
本発明において用いる確率公開鍵暗号では、確率暗号である公開鍵暗号系に属する暗号方法であって、秘密鍵を用いることにより暗号文から平文のみならず、暗号化のために用いた乱数をも求めることができるものである。
【0056】
例えばこの暗号方式の例として文献「パブリックキー クリプトシステムズ ベイスド オン コンポジット ディグリー レジデュオシティー クラス、アドバンス イン クリプトロジー、プロシーヂング オブ ユーロクリプト '99、エルエヌシーエス 1592シュプリンガー フェアラーグ、223ページから238ページまで、1999年(Public-Key Cryptosystems Based on Composite Degree Residuosity Classes, Advance in Cryptology, Proceeding of Eurocrypt'99, LNCS 1592, Springer-Verlag, pp. 223-238, 1999)」による暗号方式などもこれに含まれる。
【0057】
図1は、本発明の一実施の形態による証明文作成装置の構成を説明するためのブロック図であり、図2と図3は、本実施の形態による証明文の作成処理を説明するためのフローチャートである。
【0058】
本実施の形態の確率公開鍵暗号文の平文の値が区間内にあることの証明方法は、秘密鍵により平文と暗号化に用いられた乱数との両方を求めることのできる確率公開鍵暗号方式による暗号文を用いる。また以下、暗号化する平文は数値データであり、またこれを暗号化した暗号文もまた数値データを成すものとして説明する。
【0059】
図1を参照すると、本実施の形態の証明文作成装置は、証明文の作成に用いる各種データを入力するための入力部10と、入力されたデータに基づき演算を行ない証明文を作成する演算処理部20と、作成された証明文33を出力する出力部30を備えている。また、本実施の形態の証明文作成装置の演算処理部20は、復号部21、両端値との差の算出部22、拡大部23、分割部24、暗号化部25、証明文生成部26、乱数生成部27を備えている。
【0060】
図2を参照すると、本実施の形態の証明文の作成処理は、まず復号部21が、秘密鍵12を用いて確率公開鍵暗号文11を復号することにより、平文の値と暗号化に用いられた乱数の値を取得する(ステップ201)。
【0061】
そして、この取得した平文と乱数の値を用いて、平文の値が定められた区間内にあることを検証者に対し証明するための証明文を作成する(ステップ202)。このステップ202における証明文の作成処理は、図3のフローチャートにおいて詳細に示している。
【0062】
図3を参照すると、まず、両端値との差の算出部22が、確率公開鍵暗号文11の平文の値と、定められた区間の両端値との差を算出する(ステップ301)。つまり、定められた区間の上限値から平文の値を引いた値と、平文の値から定められた区間の下限値を引いた値とを算出する。
【0063】
次に、拡大部23が、両端値との差の算出部22により算出された2つの値に対して、前記安全変数14から計算された拡大係数をそれぞれ乗じることにより拡大して、拡大値をそれぞれ生成する(ステップ302)。
【0064】
次に、分割部24が、拡大部23により拡大されたそれぞれの拡大値を分割する(ステップ303)。つまり、それぞれの拡大値に対して、それぞれの値を超えない最大の平方数をそれぞれに求め、それぞれの拡大値から対応する平方数を引くことにより差の整数をそれぞれ求める。これによりそれぞれの拡大値を、平方数と、差の整数との和に分割する。
【0065】
次に、暗号化部25が、分割部24により分割して得られた数値を暗号化する(ステップ304)。この暗号化においては、2つの拡大値のそれぞれにおいて少なくとも1つ以上の分割された値(平方数又は差の整数)を暗号化する。例えば、2つの拡大値のそれぞれにおいて分割して得られた平方数を暗号化する方式や、2つの拡大値のそれぞれにおいて分割して得られた差の値を暗号化する方式により暗号化を行なう。また、この暗号化は、証明対象の確率公開鍵暗号文11と同様の方式で行なうものであり、その暗号化に用いる乱数は、乱数生成部27により生成された値を用いる。
【0066】
次に、証明文生成部26が、この分割部24により分割して得られた数値の、それぞれに関する証明文を生成する。図3のフローチャートにおいては、まず各拡大値における差の整数(の絶対値)が、前記拡大係数より小さいことの証明文を生成する(ステップ305)。この証明文の生成においては、2つの差の整数と、前述の安全変数14と、区間を定める変数13(上限値と下限値)と、これらの値に基づいて定められる拡大係数と、暗号化部25が暗号化に用いるために乱数生成部27により生成された乱数と、証明対象の確率公開鍵暗号文11の公開鍵等のデータを用いて証明文を生成する。
【0067】
そして次に、各拡大値における前記平方数が、平方数を成すことと、かつその平方根が確率公開鍵暗号文11の平文に関する周期の半分の平方根より小さい(つまり、各平方数は周期の半分より小さい)ことの証明文を生成する(ステップ306)。この証明文の生成においては、2つの前記平方数と、前記安全変数14と、前記区間を定める変数13(上限値と下限値)と、前記拡大係数と、前記暗号化のための乱数と、前記公開鍵等のデータを用いて証明文を生成する。
【0068】
ここで、確率暗号文の平文に関する周期mは、平文xと暗号化のための乱数rとの組(x,r)と(x+π,r)とが、常に同じ確率公開鍵暗号文を与える0でない最小のmである。
【0069】
最後に、以上の各ステップにより生成された、2つある平方数の確率公開鍵暗号文(又は、2つある差の整数の確率公開鍵暗号文)と、それぞれの差の整数(の絶対値)が、前記拡大係数より小さいことの証明文と、それぞれの平方数が、平方数を成すこととかつ平方数の平方根が確率公開鍵暗号文の周期の半分の平方根より小さい(つまり、各平方数は周期の半分より小さい)ことの証明文とを、前記確率公開鍵暗号文の平文が定められた区間にあることの証明文として出力する(ステップ307)。
【0070】
図6は、本実施の形態による検証装置の構成を説明するためのブロック図であり、図7は、本実施の形態による検証装置の処理を説明するためのフローチャートである。
【0071】
図6を参照すると、本実施の形態の検証装置は、検証処理に用いる各種データを入力するための入力部40と、入力されたデータに基づき検証処理を行なう演算処理部50と、検証結果を出力する出力部60を備えている。また、本実施の形態の検証装置の演算処理部50は、両端値との差の値の暗号文生成部51、拡大部52、分解部53、検証部54、判定部55を備えている。
【0072】
図7を参照すると、本実施の形態の検証の作成処理は、まず、両端値との差の値の暗号文生成部51が、検証対象の確率公開鍵暗号文11を、各両端値との差の値の暗号文に変換する(ステップ701)。つまり、区間を定める変数13の上限値から確率公開鍵暗号文11の平文を引いた値の確率公開鍵暗号文と、確率公開鍵暗号文11の平文から下限値を引いた値の確率公開鍵暗号文とを生成する。
【0073】
次に、拡大部52が、両端値との差の値の暗号文生成部51により生成された2つの両端値との差の値の暗号文のそれぞれを、その平文の値(端値との差)に前記安全変数14から計算された拡大係数をそれぞれ乗じた拡大値の暗号文(拡大値暗号文)に変換する(ステップ702)。つまり、上限値から確率公開鍵暗号文の確率公開鍵暗号文を引いた値に、拡大係数を乗じた値の確率公開鍵暗号文である拡大値暗号文と、確率公開鍵暗号文の平文から下限値を引いた値に、拡大係数を乗じた値の確率公開鍵暗号文である拡大値暗号文とを生成する。
【0074】
次に、分解部53が、この拡大部52により生成された各拡大値暗号文を、それぞれ2つの確率公開鍵暗号文の積に分解する(ステップ703)。この積に分解された暗号文(第1と第2の暗号文)においては、その一方(第1の暗号文)に証明文33に含まれる(平文と両端値との差の取り方が)対応する側の分割された値の暗号文を用い、分解される他方の暗号文(第2の暗号文)は、先の証明文に含まれる暗号文との積が当該拡大値暗号文を成すものを算出して取る。
【0075】
次に、検証部54が、分解部53により分解されて得られた各暗号文を検証する。図7のフローチャートにおいては、まず差の値の検証を行なう(ステップ704)。分解部53により分解された各暗号文の内で、もし説明文33から取り出されて用いられた暗号文が、ステップ303において差の値として分割された値の暗号文である場合には、その暗号文をここでの検証に用い、そうでない場合には分解された他方の暗号文を用いる。ここでの差の値の検証においては、証明文33に含まれる、ステップ305において生成された差の整数(の絶対値)が前記拡大係数より小さいことの証明文を用いて、先の分解された暗号文の平文(の絶対値)が前記拡大係数より小さいことを検証する。ここで、検証結果が正しければ受理を、正しくなければ不受理を出力する。
【0076】
そして検証部54は、平方数の検証も行なう(ステップ705)。ここでの平方数の検証に用いる暗号文は、先の分解部53により分解された暗号文の内で、差の検証に用いる側でない側の暗号文である。つまり、分解部53により分解された各暗号文の内で、もし説明文33から取り出されて用いられた暗号文が、ステップ303において平方数として分割された値の暗号文である場合には、その暗号文をここでの検証に用い、そうでない場合には分解された他方の暗号文を用いる。ここでの平方数の検証においては、証明文33に含まれる、ステップ306において生成された平方数に関する証明文を用いて、先の分解された暗号文の平文が平方数であり、かつその平方根が確率公開鍵暗号文の周期の半分の平方根より小さい(つまり、その平文の値は周期の半分より小さい)ことを検証する。ここで、検証結果が正しければ受理を、正しくなければ不受理を出力する。
【0077】
最後に、判定部55が、検証部による差の値と平方数の検証に基づいて、もしその双方の検証においていずれも受理が出力された場合に限り、暗号化された数値が定められた区間内に属する旨の検証結果を出力する(ステップ706)。
【0078】
次に、本実施の形態の一実施例を図面を参照して詳細に説明する。以下の実施例では、Paillierの暗号方式を使った例に即して説明する。
【0079】
[準備]
正しく検証される確率を規定する安全変数14としてt、lを準備する。本検証方法において、平文が定められた区間にないにも関わらず、検証で平文が定められた区間にあると認められてしまう確率が2-t以下である。本証明方法において、平文が定められた区間にあるにも関わらず、証明に失敗する確率が21-l以下となる。これらの確率を考慮して安全変数t、lを選ぶ。
また、区間を定める変数13として最小値をa、最大値をbとする。
変数Tを、T=2(t+l+1)+|b-a|と定義する(ここで|b-a|とは、b-aのbit数のことである。)。後述のn=pqは、22T+1<nとなる様に選ぶ。拡大係数を、2Tと定める。
Dを、√{2T(b-a)}を超えない最大の整数とする。
【0080】
また以下、x^aとは、xのa乗(つまり、xa)を示すものとする。
p、qを2つの素数として、λをp-1とq-1の最小公倍数とする。
gは、gλmod n2とnが互いに素になるように選ばれているとする。
n=pqと、gを公開鍵とする。
平文xの乱数rによる暗号文eを、e=gxrnmod n2とする。
【0081】
本実施例の確率公開鍵暗号文の平文が区間内にあることの証明文の作成方法を、図面を参照して説明する。図4、図5は、本実施例の証明文の作成を説明するための図である。
【0082】
[平文と暗号化のための乱数を求める](ステップ201)
まず、図4の401において、証明対象の確率公開鍵暗号文11であるeが入力されたら、その平文402であるxを、x={(eλmod n2)-1}/{(gλmod n2)-1}により求め、更に、暗号化のために用いられた乱数403であるrを、秘密鍵12であるλを用いてe'=eg-xmod n、n'=n-1mod λ、r=e'n'mod nとして求め、この平文xと乱数rを出力する。
【0083】
[平文が定められた区間にあることの証明文を生成する](ステップ202)
[区間の両端値との差を算出](ステップ301)
図4の404において、平文402であるxと、区間を定める変数13の最小値a、最大値bより、その差(405、406)であるx-aとb-xを求める。
【0084】
なお以降は、2つの両端値との差x-aとb-xに対して全く同じ処理を行なうために、片方のみについて記述する。図4の証明文33の(b-xによる)上半分(33−1、33−2、33−3)を生成する過程は、証明文の(x-aによる)下半分(33−4、33−5、33−6)を生成する過程と同様であるため図中では点線で示されている。ここで、両端値との差の一方であるx-aを、Xと表す(これは、点線により示されるb-xの側においても以下同様である)。
【0085】
[拡大](ステップ302)
図4の407において、このXに、安全変数等から計算された拡大係数2Tを用いて、2TXと拡大する。
【0086】
[分割](ステップ303)
図4の409において、その自乗が2TXを超えない最大の整数vを求め、差の値z(=2TX-v2)を算出する。これにより、拡大値2TXを、平方数411であるv2と、差の値410であるzに分割する。
【0087】
[暗号化](ステップ304)
本実施例においては、分離された数値の内で、差の値zを平文として暗号化する。
【0088】
図4の412において、0≦r[1]<nなる任意の乱数413であるr[1]を無作為に選び、図4の414において、差の値zの暗号文33−6であるe[1]を、e[1]=gzr[1]nmod n2により計算する。ここで、R=r^{2T}mod n、r[2]=R/r[1]mod n、e[2]=g^{v2}r[2]nmod n2と計算すると、e[1]e[2]=gXRnmod n2が得られる。右辺は{e/ga}^{2T}mod n2又は、{gb/e}^{2T}mod n2である。
【0089】
[差の値に関する証明文の生成](ステップ305)
ここでは、暗号文e[1]の平文zの絶対値が、拡大係数2Tを超えないことを証明するための証明文を生成する。
【0090】
0≦μ≦2Tなるμ、0≦ρ<nなるρを無作為に選び、w=gμρnmod n2を計算する。更に、c=Hash(e[1]、w)mod 2tを求める。ここでHashとはハッシュ関数である。更に、d[1]=μ+zc、d[2]=ρr[1]nmod nを求める。
【0091】
もし、c2T/2+1√(b-a)≦d[1]≦2Tならば、c、d[1]、d[2]のデータの組を、平文zの絶対値の上限の証明文33−5として出力する。そうでない場合には、最初からやり直す。このやり直す確率は21-l以下となる。
【0092】
[平方数に関する証明文の生成](ステップ306)
本ステップの処理を図5を参照して説明する。ここでは、先の暗号文e[2]=gXRnmod n2の平文411を成すv2の値が、平方数であることと、その平方根502であるvが2t+lDを超えないことを証明する。
【0093】
最初に、図5の504において、0≦τ<nなる任意の乱数503であるτを選び、図5の507において、vの暗号文505であるw[0]を、w[0]=gvτnmod n2により計算する。
【0094】
次に、図5の508において、乱数r[1]、r、安全変数14から、R=r^{2T}mod n、r[2]=R/r[1]mod nを求め、ρ'(509)を、ρ'=τ-vr[2]mod nにより計算する。
【0095】
更に、0≦μ'≦2t+lDなる任意の乱数510であるμ'、0≦σ<nなる任意の乱数511であるσ、0≦σ'<nなる任意の乱数512であるσ'、を無作為に選び、図5の513と514において、生成元506であるgと暗号文w[0]をそれぞれ用いて、μ'の暗号文であるw[1]=gμ 'σnmod n2、w[2]=w[0]μ 'σ'nmod n2を計算する(ステップ412、413)。
【0096】
次に、図5の515において、ハッシュ関数Hash()を用いて、ハッシュ値c'=Hash(e[1]、w[1]、w[2])mod 2tを求める。次に、図5の516、517、518において、d[3]=μ'+vc'、d[4]=στc'mod n、d[5]=σ'ρ'c'mod n、を計算する。
【0097】
そして、図5の519において、証拠の大きさの確認を行ない、もしc'D≦d[3]≦2t+lDならば、c'、w[0]、d[3]、d[4]、d[5]を証明文33−4として出力する。その他の場合は最初からやり直す。このやり直す確率は21-l以下となる。
【0098】
[証明文の出力](ステップ307)
証明部は、Xがx-aである場合とb-xである場合についてそれぞれ、分割された値の暗号文(e[1])と、差の値の証明文(c、d[1]、d[2])と、平方数の証明文(c'、w[0]、d[3]、d[4]、d[5])とを、平文が区間内にあることの証明文33として出力する。
【0099】
本発明の確率公開鍵暗号文の平文が区間内にあることの検証方法を以下に図面を参照して説明する。図8、図9は、本実施例の検証処理を説明するための図である。
【0100】
[両端値との差の値の暗号文を生成](ステップ701)
図8の801において、検証対象の確率公開鍵暗号文11であるeと、区間を定める変数13の最小値a、最大値bより、上限値から確率公開鍵暗号文の平文を引いた値の確率公開鍵暗号文803であるgb/e mod n2=gb-xrnmod n2と、確率公開鍵暗号文の平文から下限値を引いた値の確率公開鍵暗号文802であるe/gamod n2=gx-arnmod n2とを生成する。
【0101】
以降、2つの両端値との差x-aとb-xによる2つの暗号文に対して、全く同じ処理を行なうために片方のみについて記述する。この暗号文802の平文であるx-aをXと表す(また、暗号文803の平文であるb-xをXと表す場合も同様である)。Xの暗号文806であるE=gXrnmod n2に関して、Xが0以上かつ暗号文の周期の半分以下であることを検証する。
【0102】
[拡大値の暗号文に変換](ステップ702)
図8の804において、暗号文806であるEに対して、Tから計算された拡大係数2Tを用いて、E^{2T}mod n2=g^{2TX}rnmod n2を計算する。これにより拡大値である2TXの暗号文が算出される。
【0103】
[分解](ステップ703)
図8の808において、拡大値の暗号文であるE^{2T}mod n2を、証明文33に含まれる暗号文33−6であるe[1]を用いて、e[1](810)とe[2](811)、e[2]=E^{2T}/e[1]mod n2の積に分解する。e[1]e[2]=E^{2T}である。
【0104】
[差の値の検証](ステップ704)
図8の812において、e[1]の平文(z)の絶対値が2Tより小さいことを検証する。c2T/2+1√(b-a)≦d[1]≦2Tであり、かつc=Hash(e[1]、gd[1]d[2]ne[1]-cmod n2)mod 2tであれば、暗号文e[1]の平文の絶対値が2Tより小さいことを受理する。
【0105】
[平方数の検証](ステップ705)
図8の812において、暗号文e[2]の平文(v2)が平方数であり、その平方根が2t+lDを超えないことを検証する。
【0106】
本ステップの処理を図9を参照して説明する。
図9の901において、c'D≦d[3]≦2t+lDであることを確認する。
図9の902において、w[1]を、w[1]=gd[3]d[4]nw[0]-c'mod n2と計算する。
図9の903において、w[2]を、w[2]=w[0]d[3]d[5]ne[1]-c'mod n2と計算する。
図9の904において、ハシュ値をHash(e[1]、w[1]、w[2])=Hash(e[1]、gd[3]d[4]nw[0]-c'mod n2、w[0]d[3]d[5]ne[1]-c'mod n2、)mod 2tと計算して、図9の905において、これがc'に等しいかどうかを確認し、もし等しい場合には、暗号文e[2]の平文(v2)が平方数でありその平方根が2t+lDを超えないことを受理する。
【0107】
[検証結果の出力](ステップ706)
図8の814において、検証結果をまとめて、2つの値x-aとb-xによる2つの暗号文に対する、ステップ704の差の値の検証と、ステップ705の平方数の検証とによる両方の出力がともに受理であれば受理を、片方でも不受理であれば不受理を、検証結果815として出力する。
【0108】
次に、上記説明された証明文の作成と検証の方法における、正当性について説明する。
【0109】
[正当性(1)]
本発明の確率公開鍵暗号文の平文が区間内にあることの証明方法における、差の値に関するステップ305の証明文の作成と、その証明文によるステップ704による検証の正当性について述べる。
【0110】
式gμρn=gd[1]d[2]ne[1]-cmod n2が保証されていない場合には、式c=Hash(e[1]、gd[1]d[2]ne[1]-cmod n2)mod 2tが成立する確率は2-t以下になる。式gμρn=gd[1]d[2]ne[1]-cmod n2が成り立つためには、d[1]=μ+zcが成り立たねばならない。平文xが定められた区間にある場合、zは-2T/2+1√(b-a)≦z≦2T/2+1√(b-a)となる。この時に、c2T/2+1√(b-a)≦d[1]≦2Tが成り立たない可能性は、2-l以下である。また、この時にzが、-2T/2+1√(b-a)≦z≦2T/2+1√(b-a)のいずれの値である可能性もd[1]によらずに同じである。zが、-2T≦z≦2Tにない場合に、c2T/2+1√(b-a)≦d[1]≦2Tが成り立つ可能性は、2-t以下である。
【0111】
[正当性(2)]
本発明の確率公開鍵暗号文の平文が区間内にあることの証明方法における、平方数に関するステップ306の証明文の作成と、その証明文によるステップ705による検証の正当性について述べる。
【0112】
式gμ 'σn=gd[3]d[4]nw[0]-c'mod n2と、式w[0]μ 'σ'n=w[0]d[3]d[5]ne[1]-c'mod n2とが保証されていない場合においては、式c'=Hash(e[1]、w[1]、w[2])=Hash(e[1]、gd[3]d[4]nw[0]-c'mod n2、w[0]d[3]d[5]ne[1]-c'mod n2、)mod 2tが成立する確率は2-t以下になる。式gμ 'σn=gd[3]d[4]nw[0]-c'mod n2と、式w[0]μ 'σ'n=w[0]d[3]d[5]ne[1]-c'mod n2とが成り立つためには、d[3]=μ'+vc'が成り立たねばならない。そのため、e[2]の平文はvの平方であることが保証される。平文xが定められた区間にある場合、vは-D≦v≦Dとなる。この時に、cD≦d[3]≦2t+lDが成り立たない可能性は、2-l以下である。また、この時vの-D≦v≦Dのいずれの値である可能性もd[3]によらずに同じである。すなわち、e[2]の平文が0以上2T(b-a)以下のいずれの値である可能性もd[3]によらずに同じである。
【0113】
vが、-2t+l≦v≦2t+lDにあることが保証されていない場合に、cD≦d[3]≦2t+lDが成り立つ可能性は、2-t以下である。すなわち、e[2]の平文が0以上22(t+l)2T(b-a)以下でない場合にcD≦d[3]≦2t+lDが成り立つ可能性は、2-t以下である。22T+1<nであったので、e[2]の平文はn/2より小さいことが保証される。
【0114】
[正当性(3)]
正当性(1)、(2)においてv、zの値の大きさが知られないためのv、zの大きさに対する条件が、v、zに対して保証される大きさの区間よりも小さい。しかし、xが定められた区間に属すればv、zは大きさの知られない区間に属する。また、xが定められた区間になければ、v、zはそれらに対して保証される大きさの区間から出てしまう。
【0115】
なお、本実施の形態の証明文の作成と検証は、証明文作成装置の演算処理部20や、検証装置の演算処理部50等の機能や、その他の機能をハードウェア的に実現することは勿論として、各機能を備えるコンピュータプログラムを、コンピュータ処理装置のメモリにロードされることで実現することができる。このコンピュータプログラムは、磁気ディスク、半導体メモリその他の記録媒体90、91に格納される。そして、その記録媒体からコンピュータ処理装置にロードされ、コンピュータ処理装置の動作を制御することにより、上述した各機能を実現する。
【0116】
以上好ましい実施の形態及び実施例をあげて本発明を説明したが、本発明は必ずしも上記実施の形態及び実施例に限定されるものではなく、その技術的思想の範囲内において様々に変形して実施することができる。
【0117】
【発明の効果】
以上説明したように、本発明によれば、証明者以外が作成したコミットメントに対しても、証明者がそのコミットメントからコミットされた数値を求め、コミットされた数値が定められた区間にある場合は、コミットされた数が定められた区間にあることを、コミットされた数を隠したまま証明することができる。
【図面の簡単な説明】
【図1】 本発明の一実施の形態による証明文作成装置の構成を説明するためのブロック図である。
【図2】 本発明の一実施の形態による証明文作成装置の処理を説明するためのフローチャートである。
【図3】 本発明の一実施の形態による証明文作成装置の処理を説明するためのフローチャートである。
【図4】 本発明の一実施の形態による証明文作成装置の一実施例を説明するための図である。
【図5】 本発明の一実施の形態による証明文作成装置の一実施例を説明するための図である。
【図6】 本発明の一実施の形態による検証装置の構成を説明するためのブロック図である。
【図7】 本発明の一実施の形態による検証装置の処理を説明するためのフローチャートである。
【図8】 本発明の一実施の形態による検証装置の一実施例を説明するための図である。
【図9】 本発明の一実施の形態による検証装置の一実施例を説明するための図である。
【図10】 従来の証明文作成装置の構成を説明するためのブロック図である。
【図11】 従来の証明文作成装置の処理を説明するためのフローチャートである。
【図12】 従来の証明文作成装置の処理を説明するための図である。
【符号の説明】
10 証明文作成装置の入力部
11 確率公開鍵暗号文
12 秘密鍵
13 区間を定める定数
14 安全定数
20 証明文作成装置の演算処理部
21 復号部
22 両端値との差の算出部
23 拡大部
24 分割部
25 暗号化部
26 証明文生成部
27 乱数生成部
30 証明文作成装置の出力部
31 分割された数値の暗号文
32 分割された数値に関する証明文
33 暗号化された数値が定められた区間内に属することを証明する証明文
40 検証装置の入力部
50 検証装置の演算処理部
51 両端値との差の値の暗号文生成部
52 拡大部
53 分解部
54 検証部
55 判定部
60 検証装置の出力部
61 検証結果
90、91 記録媒体

Claims (35)

  1. 確率暗号文の平文である数値が指定された範囲内にあることを証明するための証明文を作成し、かつ前記証明文に基づいて当該平文の値が当該指定された範囲内にあることを検証する、暗号文の平文が区間内にあることの証明システムにおいて、
    前記平文の値、当該平文を当該確率暗号文に暗号化するために用いられた乱数の値、前記指定された範囲を定める上限値と下限値、及び、正しく検証される確率を規定する安全変数の値とに基づいて、前記確率暗号文の解読困難性を失うことなく前記平文の値が前記指定された範囲内にあるか否かを判定するための前記証明文を作成する証明文作成装置と、
    検証対象の前記確率暗号文、前記指定された範囲を定める上限値と下限値、前記証明文、及び、正しく検証される確率を規定する安全変数の値とに基づいて、前記平文の値が前記指定された範囲内にあるか否かを、前記安全変数に規定された以上の確率で正確に検証する検証装置を備えることを特徴とする暗号文の平文が区間内にあることの証明システム。
  2. 前記証明文作成装置は、
    前記確率暗号文を復号して、前記平文の値及び、当該平文を当該確率暗号文に暗号化するために用いられた前記乱数の値を取得する復号部を備え、
    前記復号部により取得された前記平文の値と前記乱数の値を用いて、前記証明文を作成することを特徴とする請求項1に記載の暗号文の平文が区間内にあることの証明システム。
  3. 前記証明文作成装置は、
    前記上限値から前記平文の値を減算した値と、前記平文の値から前記下限値を減算した値との2種類の数値を算出する両端値との差の算出部と、
    前記安全変数に基づいて定められる拡大係数の値を、前記両端値との差の算出部により算出された2種類の数値のそれぞれに乗じて、それぞれの拡大値を算出する拡大部と、
    前記拡大値のそれぞれに対して、各前記拡大値以下の最大の平方数と、各前記拡大値から対応する前記平方数の値を減算した差の値とを算出することにより、前記拡大値のそれぞれを前記平方数と前記差の値とに分割する分割部と、
    各前記拡大値を分割して得られた各前記数値を暗号化して、暗号文を生成する暗号化部と、
    各前記拡大値を分割して得られた各前記数値に関する証明文を生成する証明文生成部を備え、
    前記暗号化部により生成された前記暗号文と、証明文生成部により生成された前記数値に関する証明文とを、前記平文の値が指定された範囲内にあることを証明するための前記証明文として出力することを特徴とすることを特徴とする請求項2に記載の暗号文の平文が区間内にあることの証明システム。
  4. 前記検証装置は、
    前記上限値から前記平文の値を減算した値と、前記平文の値から前記下限値を減算した値との2種類の両端値との差の値の、それぞれの暗号文を生成する両端値との差の暗号文生成部と、
    前記両端値との差の暗号文生成部により生成された各前記暗号文のそれぞれを、前記安全変数に基づいて定められる拡大係数を前記2種類の両端値との差の値のそれぞれに乗じて得られる値を暗号化した、拡大値暗号文に変換する拡大部と、
    各前記拡大値暗号文を、それぞれに第1の暗号文と第2の暗号文との2つの暗号文の積に分解する分解部と、
    各前記拡大値暗号文を分解して得られたそれぞれの前記2つの暗号文を検証する検証部と、
    前記検証部による健勝結果に基づいて、当該確率暗号文の平文である数値が当該指定された範囲内にあるか否かを判定する判定部を備えることを特徴とする請求項3に記載の暗号文の平文が区間内にあることの証明システム。
  5. 前記証明文作成装置の前記暗号化部は、
    各前記拡大値のそれぞれに対して、前記分割部により分割された前記平方数と前記差の値との少なくとも一方を暗号化することにより、前記暗号文を生成することを特徴とする請求項4に記載の暗号文の平文が区間内にあることの証明システム。
  6. 前記検証装置の前記分解部は、
    各前記拡大値暗号文における、前記上限値から前記平文の値を減算した値を基に生成された側と前記平文の値から前記下限値を減算した値を基に生成された側とのそれぞれにおいて対応する、前記証明文において暗号化されて備えられている前記拡大値から算出される前記平方数と前記差の値とのいずれか一方の値の暗号文をそれぞれに取得して、各前記拡大値暗号文のそれぞれに、前記証明文に備えられる対応する側の値の暗号文を前記第1の暗号文とし、前記第1の暗号文との積が対応する前記拡大値暗号文を成す暗号文である前記第2の暗号文をそれぞれ算出することにより、各前記拡大値暗号文を分解することを特徴とする請求項5に記載の暗号文の平文が区間内にあることの証明システム。
  7. 前記証明文作成装置の前記証明文生成部は、
    各前記拡大値のそれぞれの前記差の値が、前記拡大係数より小さいことを証明する証明文と、各前記拡大値のそれぞれの前記平方数が、平方数を成しかつ前記確率暗号文の周期の半分より小さいことを証明する証明文とを、各前記数値に関する証明文として生成することを特徴とする請求項6に記載の暗号文の平文が区間内にあることの証明システム。
  8. 前記検証装置の前記検証部は、
    各前記数値に関する証明文に基づいて、前記第1の暗号文及び前記第2の暗号文を検証し、
    前記第1の暗号文が前記平方数の側に対応する場合には、前記第1の暗号文の平文の値が平方数を成しかつ前記確率暗号文の周期の半分より小さいことの検証と、前記第2の暗号文の平文の値が前記拡大係数より小さいことの検証とを行い、
    前記第1の暗号文が前記差の値の側に対応する場合には、前記第1の暗号文の平文の値が前記拡大係数より小さいことの検証と、前記第2の暗号文の平文の値が平方数を成しかつ前記確率暗号文の周期の半分より小さいことの検証とを行い、
    前記検証装置の前記判定部は、
    前記検証部による前記第1の暗号文及び前記第2の暗号文の前記検証において、いずれも受理された場合に限り、前記確率暗号文の平文である数値が前記指定された範囲内にあると判定することを特徴とする請求項7に記載の暗号文の平文が区間内にあることの証明システム。
  9. 確率暗号文の平文である数値が、指定された範囲内にあることを証明するための証明文を作成する証明文作成装置において、
    前記平文の値、当該平文を当該確率暗号文に暗号化するために用いられた乱数の値、前記指定された範囲を定める上限値と下限値、及び、正しく検証される確率を規定する安全変数の値とに基づいて、前記証明文を作成する手段を備えることにより、
    前記確率暗号文、前記上限値、前記下限値、前記安全変数、及び、作成された前記証明文とに基づく検証において、前記確率暗号文の解読困難性を失うことなく、前記平文の値が前記指定された範囲内にあるか否かを前記安全変数に規定された以上の確率で正確に検証するための、前記証明文を作成することを特徴とする証明文作成装置。
  10. 前記確率暗号文を復号して、前記平文の値及び、当該平文を当該確率暗号文に暗号化するために用いられた前記乱数の値を取得する復号部を備え、
    前記証明文を作成する手段は、
    前記復号部により取得された前記平文の値と前記乱数の値を用いて、前記証明文を作成することを特徴とする請求項9に記載の証明文作成装置。
  11. 前記証明文を作成する手段は、
    前記上限値から前記平文の値を減算した値と、前記平文の値から前記下限値を減算した値との2種類の数値を算出する両端値との差の算出部と、
    前記安全変数に基づいて定められる拡大係数の値を、前記両端値との差の算出部により算出された2種類の数値のそれぞれに乗じて、それぞれの拡大値を算出する拡大部と、
    前記拡大値のそれぞれに対して、各前記拡大値以下の最大の平方数と、各前記拡大値から対応する前記平方数の値を減算した差の値とを算出することにより、前記拡大値のそれぞれを前記平方数と前記差の値とに分割する分割部と、
    各前記拡大値を分割して得られた各前記数値を暗号化して、暗号文を生成する暗号化部と、
    各前記拡大値を分割して得られた各前記数値に関する証明文を生成する証明文生成部を備え、
    前記暗号化部により生成された前記暗号文と、証明文生成部により生成された前記数値に関する証明文とを、前記平文の値が指定された範囲内にあることを証明するための前記証明文として出力することを特徴とすることを特徴とする請求項10に記載の証明文作成装置。
  12. 前記暗号化部は、
    各前記拡大値のそれぞれに対して、前記分割部により分割された前記平方数と前記差の値との少なくとも一方を暗号化することにより、前記暗号文を生成することを特徴とする請求項1に記載の証明文作成装置。
  13. 前記証明文生成部は、
    各前記拡大値のそれぞれの前記差の値が、前記拡大係数より小さいことを証明する証明文と、各前記拡大値のそれぞれの前記平方数が、平方数を成しかつ前記確率暗号文の周期の半分より小さいことを証明する証明文とを、各前記数値に関する証明文として生成することを特徴とする請求項11又は請求項12に記載の証明文作成装置。
  14. 確率暗号文の平文である数値が指定された範囲内にあることを証明する証明文に基づき、当該平文の値が当該指定された範囲内にあることを検証する検証装置において、
    検証対象の前記確率暗号文、前記指定された範囲を定める上限値と下限値、前記証明文、及び、正しく検証される確率を規定する安全変数の値とに基づいて、前記平文の値が前記指定された範囲内にあるか否かを、前記安全変数に規定された以上の確率で正確に検証することを特徴とする検証装置。
  15. 前記上限値から前記平文の値を減算した値と、前記平文の値から前記下限値を減算した値との2種類の両端値との差の値の、それぞれの暗号文を生成する両端値との差の暗号文生成部と、
    前記両端値との差の暗号文生成部により生成された各前記暗号文のそれぞれを、前記安全変数に基づいて定められる拡大係数を前記2種類の両端値との差の値のそれぞれに乗じて得られる値を暗号化した、拡大値暗号文に変換する拡大部と、
    各前記拡大値暗号文を、それぞれに第1の暗号文と第2の暗号文との2つの暗号文の積に分解する分解部と、
    各前記拡大値暗号文を分解して得られたそれぞれの前記2つの暗号文を検証する検証部と、
    前記検証部による健勝結果に基づいて、当該確率暗号文の平文である数値が当該指定された範囲内にあるか否かを判定する判定部を備えることを特徴とする請求項14に記載の検証装置。
  16. 前記証明文は、
    前記安全変数に基づいて定められる拡大係数を前記2種類の両端値との差の値のそれぞれに乗じて得られる値である2種類の拡大値のそれぞれにおいて、各前記拡大値以下の最大の平方数と、各前記拡大値から対応する前記平方数の値を減算した差の値との少なくとも一方の値を暗号化した、分割された値の暗号文のデータを備え、
    前記分解部は、
    各前記拡大値暗号文における、前記上限値から前記平文の値を減算した値を基に生成された側と前記平文の値から前記下限値を減算した値を基に生成された側とのそれぞれにおいて対応する、前記証明文において暗号化されて備えられている前記拡大値から算出される前記平方数と前記差の値とのいずれか一方の値の暗号文をそれぞれに取得して、各前記拡大値暗号文のそれぞれに、前記証明文に備えられる対応する側の値の暗号文を前記第1の暗号文とし、前記第1の暗号文との積が対応する前記拡大値暗号文を成す暗号文である前記第2の暗号文をそれぞれ算出することにより、各前記拡大値暗号文を分解することを特徴とする請求項15に記載の検証装置。
  17. 前記証明文は、
    前記安全変数に基づいて定められる拡大係数を前記2種類の両端値との差の値のそれぞれに乗じて得られる値である2種類の拡大値のそれぞれにおける、各前記拡大値以下の最大の平方数と各前記拡大値から対応する前記平方数の値を減算した差の値との分割された各値に関して、各前記差の値が、前記拡大係数より小さいことを証明する証明文と、前記平方数が、平方数を成しかつ前記確率暗号文の周期の半分より小さいことを証明する証明文とを、各前記数値に関する証明文として備え、
    前記検証部は、
    各前記数値に関する証明文に基づいて、前記第1の暗号文及び前記第2の暗号文を検証し、
    前記第1の暗号文が前記平方数の側に対応する場合には、前記第1の暗号文の平文の値が平方数を成しかつ前記確率暗号文の周期の半分より小さいことの検証と、前記第2の暗号文の平文の値が前記拡大係数より小さいことの検証とを行い、
    前記第1の暗号文が前記差の値の側に対応する場合には、前記第1の暗号文の平文の値が前記拡大係数より小さいことの検証と、前記第2の暗号文の平文の値が平方数を成しかつ前記確率暗号文の周期の半分より小さいことの検証とを行い、
    前記判定部は、
    前記検証部による前記第1の暗号文及び前記第2の暗号文の前記検証において、いずれも受理された場合に限り、前記確率暗号文の平文である数値が前記指定された範囲内にあると判定することを特徴とする請求項16に記載の検証装置。
  18. 確率暗号文の平文である数値が、指定された範囲内にあることを証明するための証明文を作成する証明文作成装置による証明文作成方法であって、
    前記平文の値、当該平文を当該確率暗号文に暗号化するために用いられた乱数の値、前記指定された範囲を定める上限値と下限値、及び、正しく検証される確率を規定する安全変数の値とに基づいて、前記証明文を作成するステップを備えることにより、
    前記確率暗号文、前記上限値、前記下限値、前記安全変数、及び、作成された前記証明文とに基づく検証において、前記確率暗号文の解読困難性を失うことなく、前記平文の値が前記指定された範囲内にあるか否かを前記安全変数に規定された以上の確率で正確に検証するための、前記証明文を作成することを特徴とする証明文作成方法。
  19. 前記確率暗号文を復号して、前記平文の値及び、当該平文を当該確率暗号文に暗号化するために用いられた前記乱数の値を取得する復号ステップを有し
    前記証明文を作成するステップ
    前記確率暗号文を復号して取得された前記平文の値と前記乱数の値を用いて、前記証明文を作成することを特徴とする請求項18に記載の証明文作成方法。
  20. 前記証明文を作成するステップ
    前記上限値から前記平文の値を減算した値と、前記平文の値から前記下限値を減算した値との2種類の数値を算出する両端値との差の算出ステップと、
    前記安全変数に基づいて定められる拡大係数の値を、前記両端値との差の算出ステップにより算出された2種類の数値のそれぞれに乗じて、それぞれの拡大値を算出する拡大ステップと、
    前記拡大値のそれぞれに対して、各前記拡大値以下の最大の平方数と、各前記拡大値から対応する前記平方数の値を減算した差の値とを算出することにより、前記拡大値のそれぞれを前記平方数と前記差の値とに分割する分割ステップと、
    各前記拡大値を分割して得られた各前記数値を暗号化して暗号文を生成する暗号化ステップと、
    各前記拡大値を分割して得られた各前記数値に関する証明文を生成する証明文生成ステップ有し
    前記暗号化ステップ生成された前記暗号文と、証明文生成ステップ生成された前記数値に関する証明文とを、前記平文の値が指定された範囲内にあることを証明するための前記証明文として出力することを特徴とすることを特徴とする請求項19に記載の証明文作成方法。
  21. 前記暗号化ステップ
    各前記拡大値のそれぞれに対して、前記分割ステップにより分割された前記平方数と前記差の値との少なくとも一方を暗号化することにより、前記暗号文を生成することを特徴とする請求項20に記載の証明文作成方法。
  22. 前記証明文生成ステップ
    各前記拡大値のそれぞれの前記差の値が、前記拡大係数より小さいことを証明する証明文と、各前記拡大値のそれぞれの前記平方数が、平方数を成しかつ前記確率暗号文の周期の半分より小さいことを証明する証明文とを、各前記数値に関する証明文として生成することを特徴とする請求項20又は請求項21に記載の証明文作成方法。
  23. 確率暗号文の平文である数値が指定された範囲内にあることを証明する証明文に基づき、当該平文の値が当該指定された範囲内にあることを検証する検証装置による検証方法であって、
    検証対象の前記確率暗号文、前記指定された範囲を定める上限値と下限値、前記証明文、及び、正しく検証される確率を規定する安全変数の値とに基づいて、前記平文の値が前記指定された範囲内にあるか否かを、前記安全変数に規定された以上の確率で正確に検証することを特徴とする検証方法。
  24. 前記上限値から前記平文の値を減算した値と、前記平文の値から前記下限値を減算した値との2種類の両端値との差の値の、それぞれの暗号文を生成する両端値との差の暗号文生成ステップと、
    生成された各前記両端値との差の値の暗号文のそれぞれを、前記安全変数に基づいて定められる拡大係数を前記2種類の両端値との差の値のそれぞれに乗じて得られる拡大値を暗号化した、拡大値暗号文に変換する拡大ステップと、
    各前記拡大値暗号文を、それぞれに第1の暗号文と第2の暗号文との2つの暗号文の積に分解する分解ステップと、
    各前記拡大値暗号文を分解して得られたそれぞれの前記2つの暗号文を検証する検証ステップと、
    前記検証ステップによる健勝結果に基づいて、当該確率暗号文の平文である数値が当該指定された範囲内にあるか否かを判定する判定ステップ有することを特徴とする請求項23に記載の検証方法。
  25. 前記証明文は、
    前記安全変数に基づいて定められる拡大係数を前記2種類の両端値との差の値のそれぞれに乗じて得られる値である2種類の拡大値のそれぞれにおいて、各前記拡大値以下の最大の平方数と、各前記拡大値から対応する前記平方数の値を減算した差の値との少なくとも一方の値を暗号化した、分割された値の暗号文のデータを備え、
    前記分解ステップ
    各前記拡大値暗号文における、前記上限値から前記平文の値を減算した値を基に生成された側と前記平文の値から前記下限値を減算した値を基に生成された側とのそれぞれにおいて対応する、前記証明文において暗号化されて備えられている前記拡大値から算出される前記平方数と前記差の値とのいずれか一方の値の暗号文をそれぞれに取得するステップと、
    各前記拡大値暗号文のそれぞれに、前記証明文に備えられる対応する側の値の暗号文を前記第1の暗号文とし、前記第1の暗号文との積が対応する前記拡大値暗号文を成す暗号文である前記第2の暗号文をそれぞれ算出することにより、各前記拡大値暗号文を分解するステップ有することを特徴とする請求項24に記載の検証方法。
  26. 前記証明文は、
    前記安全変数に基づいて定められる拡大係数を前記2種類の両端値との差の値のそれぞれに乗じて得られる値である2種類の拡大値のそれぞれにおける、各前記拡大値以下の最大の平方数と各前記拡大値から対応する前記平方数の値を減算した差の値との分割された各値に関して、各前記差の値が、前記拡大係数より小さいことを証明する証明文と、前記平方数が、平方数を成しかつ前記確率暗号文の周期の半分より小さいことを証明する証明文とを、各前記数値に関する証明文として備え、
    前記検証ステップ
    各前記数値に関する証明文に基づいて、前記第1の暗号文及び前記第2の暗号文を検証し、
    前記第1の暗号文が前記平方数の側に対応する場合には、前記第1の暗号文の平文の値が平方数を成しかつ前記確率暗号文の周期の半分より小さいことの検証と、前記第2の暗号文の平文の値が前記拡大係数より小さいことの検証とを行い、
    前記第1の暗号文が前記差の値の側に対応する場合には、前記第1の暗号文の平文の値が前記拡大係数より小さいことの検証と、前記第2の暗号文の平文の値が平方数を成しかつ前記確率暗号文の周期の半分より小さいことの検証とを行い、
    前記判定ステップ
    前記第1の暗号文及び前記第2の暗号文の前記検証においていずれも受理された場合に限り、前記確率暗号文の平文である数値が前記指定された範囲内にあると判定することを特徴とする請求項25に記載の検証方法。
  27. 率暗号文の平文である数値が指定された範囲内にあることを証明するための証明文を作成する証明文作成装置として機能するコンピュータ上で動作する証明文作成プログラムであって、
    前記コンピュータに、
    前記平文の値、当該平文を当該確率暗号文に暗号化するために用いられた乱数の値、前記指定された範囲を定める上限値と下限値、及び、正しく検証される確率を規定する安全変数の値とに基づいて、前記証明文を作成する処理を実行させることにより、
    前記確率暗号文、前記上限値、前記下限値、前記安全変数、及び、作成された前記証明文とに基づく検証において、前記確率暗号文の解読困難性を失うことなく、前記平文の値が前記指定された範囲内にあるか否かを前記安全変数に規定された以上の確率で正確に検証するための、前記証明文の作成を実行させることを特徴とする証明文作成プログラム。
  28. 前記コンピュータに、
    前記確率暗号文を復号して、前記平文の値及び、当該平文を当該確率暗号文に暗号化するために用いられた前記乱数の値を取得する復号処理を実行させ、
    前記証明文を作成する処理
    前記確率暗号文を復号して取得された前記平文の値と前記乱数の値を用いて、前記証明文の作成を実行することを特徴とする請求項27に記載の証明文作成プログラム。
  29. 前記証明文を作成する処理前記コンピュータに、
    前記上限値から前記平文の値を減算した値と、前記平文の値から前記下限値を減算した値との2種類の数値を算出する両端値との差の算出処理と、
    前記安全変数に基づいて定められる拡大係数の値を、前記両端値との差の算出処理により算出された2種類の数値のそれぞれに乗じて、それぞれの拡大値を算出する拡大処理と、
    前記拡大値のそれぞれに対して、各前記拡大値以下の最大の平方数と、各前記拡大値から対応する前記平方数の値を減算した差の値とを算出することにより、前記拡大値のそれぞれを前記平方数と前記差の値とに分割する分割処理と、
    各前記拡大値を分割して得られた各前記数値を暗号化して暗号文を生成する暗号化処理と、
    各前記拡大値を分割して得られた各前記数値に関する証明文を生成する証明文生成処理と、
    前記暗号化処理により生成された前記暗号文と、証明文生成処理により生成された前記数値に関する証明文とを、前記平文の値が指定された範囲内にあることを証明するための前記証明文として出力する処理を実行させることを特徴とすることを特徴とする請求項28に記載の証明文作成プログラム。
  30. 前記暗号化処理前記コンピュータに、
    各前記拡大値のそれぞれに対して、前記分割処理により分割された前記平方数と前記差の値との少なくとも一方を暗号化することにより、前記暗号文を生成する処理を実行させることを特徴とする請求項28に記載の証明文作成プログラム。
  31. 前記証明文生成処理前記コンピュータに、
    各前記拡大値のそれぞれの前記差の値が、前記拡大係数より小さいことを証明する証明文と、各前記拡大値のそれぞれの前記平方数が、平方数を成しかつ前記確率暗号文の周期の半分より小さいことを証明する証明文とを、各前記数値に関する証明文として生成する処理を実行させることを特徴とする請求項29又は請求項30に記載の証明文作成プログラム。
  32. 率暗号文の平文である数値が指定された範囲内にあることを証明する証明文に基づき、当該平文の値が当該指定された範囲内にあることを検証する検証装置として機能するコンピュータ上で動作する検証プログラムであって、
    前記コンピュータに、
    検証対象の前記確率暗号文、前記指定された範囲を定める上限値と下限値、前記証明文、及び、正しく検証される確率を規定する安全変数の値とに基づいて、前記平文の値が前記指定された範囲内にあるか否かを、前記安全変数に規定された以上の確率で正確に検証する処理を実行させることを特徴とする検証プログラム。
  33. 前記コンピュータに、
    前記上限値から前記平文の値を減算した値と、前記平文の値から前記下限値を減算した値との2種類の両端値との差の値の、それぞれの暗号文を生成する両端値との差の暗号文生成処理と、
    生成された各前記両端値との差の値の暗号文のそれぞれを、前記安全変数に基づいて定められる拡大係数を前記2種類の両端値との差の値のそれぞれに乗じて得られる拡大値を暗号化した、拡大値暗号文に変換する拡大処理と、
    各前記拡大値暗号文を、それぞれに第1の暗号文と第2の暗号文との2つの暗号文の積に分解する分解処理と、
    各前記拡大値暗号文を分解して得られたそれぞれの前記2つの暗号文を検証する検証処理と、
    前記検証処理による健勝結果に基づいて、当該確率暗号文の平文である数値が当該指定された範囲内にあるか否かを判定する判定処理を実行させることを特徴とする請求項32に記載の検証プログラム。
  34. 前記証明文は、
    前記安全変数に基づいて定められる拡大係数を前記2種類の両端値との差の値のそれぞれに乗じて得られる値である2種類の拡大値のそれぞれにおいて、各前記拡大値以下の最大の平方数と、各前記拡大値から対応する前記平方数の値を減算した差の値との少なくとも一方の値を暗号化した、分割された値の暗号文のデータを備え、
    前記分解処理前記コンピュータに、
    各前記拡大値暗号文における、前記上限値から前記平文の値を減算した値を基に生成された側と前記平文の値から前記下限値を減算した値を基に生成された側とのそれぞれにおいて対応する、前記証明文において暗号化されて備えられている前記拡大値から算出される前記平方数と前記差の値とのいずれか一方の値の暗号文をそれぞれに取得する処理と、
    各前記拡大値暗号文のそれぞれに、前記証明文に備えられる対応する側の値の暗号文を前記第1の暗号文とし、前記第1の暗号文との積が対応する前記拡大値暗号文を成す暗号文である前記第2の暗号文をそれぞれ算出することにより、各前記拡大値暗号文を分解する処理を実行させることを特徴とする請求項33に記載の検証プログラム。
  35. 前記証明文は、
    前記安全変数に基づいて定められる拡大係数を前記2種類の両端値との差の値のそれぞれに乗じて得られる値である2種類の拡大値のそれぞれにおける、各前記拡大値以下の最大の平方数と各前記拡大値から対応する前記平方数の値を減算した差の値との分割された各値に関して、各前記差の値が、前記拡大係数より小さいことを証明する証明文と、前記平方数が、平方数を成しかつ前記確率暗号文の周期の半分より小さいことを証明する証明文とを、各前記数値に関する証明文として備え、
    前記検証処理前記コンピュータに、
    各前記数値に関する証明文に基づいて、前記第1の暗号文及び前記第2の暗号文を検証し、前記第1の暗号文が前記平方数の側に対応する場合には、前記第1の暗号文の平文の値が平方数を成しかつ前記確率暗号文の周期の半分より小さいことの検証と、前記第2の暗号文の平文の値が前記拡大係数より小さいことを検証する処理を実行させ、
    前記第1の暗号文が前記差の値の側に対応する場合には、前記第1の暗号文の平文の値が前記拡大係数より小さいことの検証と、前記第2の暗号文の平文の値が平方数を成しかつ前記確率暗号文の周期の半分より小さいことを検証する処理を実行させ、
    前記判定処理前記コンピュータに、
    前記第1の暗号文及び前記第2の暗号文の前記検証においていずれも受理された場合に限り、前記確率暗号文の平文である数値が前記指定された範囲内にあると判定する処理を実行させることを特徴とする請求項34に記載の検証プログラム。
JP2001069067A 2001-03-12 2001-03-12 暗号文の平文が区間内にあることの証明システムと証明文の作成方法、その証明文による検証方法 Expired - Lifetime JP4743364B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001069067A JP4743364B2 (ja) 2001-03-12 2001-03-12 暗号文の平文が区間内にあることの証明システムと証明文の作成方法、その証明文による検証方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001069067A JP4743364B2 (ja) 2001-03-12 2001-03-12 暗号文の平文が区間内にあることの証明システムと証明文の作成方法、その証明文による検証方法

Publications (2)

Publication Number Publication Date
JP2002268545A JP2002268545A (ja) 2002-09-20
JP4743364B2 true JP4743364B2 (ja) 2011-08-10

Family

ID=18927153

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001069067A Expired - Lifetime JP4743364B2 (ja) 2001-03-12 2001-03-12 暗号文の平文が区間内にあることの証明システムと証明文の作成方法、その証明文による検証方法

Country Status (1)

Country Link
JP (1) JP4743364B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112632636A (zh) * 2020-12-23 2021-04-09 深圳前海微众银行股份有限公司 一种密文数据比较结果的证明与验证方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000045548A1 (fr) * 1999-01-29 2000-08-03 Hitachi, Ltd. Chiffreur a cle non protegee et procede de partage de cle

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000045548A1 (fr) * 1999-01-29 2000-08-03 Hitachi, Ltd. Chiffreur a cle non protegee et procede de partage de cle

Also Published As

Publication number Publication date
JP2002268545A (ja) 2002-09-20

Similar Documents

Publication Publication Date Title
Boneh et al. Fully key-homomorphic encryption, arithmetic circuit ABE and compact garbled circuits
Bergamo et al. Security of public-key cryptosystems based on Chebyshev polynomials
EP2485428A2 (en) Efficient, remote, private tree-based classification using cryptographic techniques
EP1843510B1 (en) Signing device, verifying device, certifying device, encrypting device, and decrypting device
EP2375628A2 (en) Signature schemes using bilinear mappings
Anggriane et al. Advanced e-voting system using Paillier homomorphic encryption algorithm
CN111159745A (zh) 一种适用于区块链的验证方法及装置
Jain et al. Implementation and analysis of homomorphic encryption schemes
US6111952A (en) Asymmetrical cryptographic communication method and portable object therefore
Ho et al. Simple-yet-efficient construction and revocation of group signatures
JP2007114494A (ja) 秘匿計算方法及び装置
JP2008176192A (ja) 暗号変換方法および装置、並びにプログラム
Akleylek et al. A novel 3-pass identification scheme and signature scheme based on multivariate quadratic polynomials
Loe et al. Applications of timed-release encryption with implicit authentication
Gentry et al. How to compress (reusable) garbled circuits
JP4650933B2 (ja) 秘密計算方法及びシステム
JP4743364B2 (ja) 暗号文の平文が区間内にあることの証明システムと証明文の作成方法、その証明文による検証方法
Peng Critical survey of existing publicly verifiable secret sharing schemes
Nagaty A public key cryptosystem and signature scheme based on numerical series
Hevia et al. Strength of two data encryption standard implementations under timing attacks
Doegar et al. On-demand digital signature schemes using Multivariate Polynomial systems
JP2005084568A (ja) セキュリティ方法、セキュリティ装置及びセキュリティプログラム
JP4103401B2 (ja) 確率公開鍵暗号文の冪乗剰余積の各指数係数が区間内にあることの証明システム及び方法並びにプログラム
Yajam et al. Deniable Encryption based on Standard RSA with OAEP
Kumaraswamy et al. A new key authentication scheme for cryptosystems based on discrete logarithms

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110128

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110329

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110413

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110426

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140520

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4743364

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

EXPY Cancellation because of completion of term