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

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

Info

Publication number
JP2002268545A
JP2002268545A JP2001069067A JP2001069067A JP2002268545A JP 2002268545 A JP2002268545 A JP 2002268545A JP 2001069067 A JP2001069067 A JP 2001069067A JP 2001069067 A JP2001069067 A JP 2001069067A JP 2002268545 A JP2002268545 A JP 2002268545A
Authority
JP
Japan
Prior art keywords
value
ciphertext
values
plaintext
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.)
Granted
Application number
JP2001069067A
Other languages
English (en)
Other versions
JP4743364B2 (ja
Inventor
Jun Furukawa
潤 古川
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

Abstract

(57)【要約】 【課題】 与えられたコミットメントに対して、そのコ
ミットメントからコミットされた数を求めて、コミット
された数が定められた区間内にある場合は、検証者に対
してコミットされた数を隠したまま、コミットされた数
が定められた区間にあることを証明する。 【解決手段】 確率暗号文の平文である数値が指定され
た範囲内にあることを証明するための証明文を作成する
証明文作成装置において、確率暗号文を復号して、平文
の値及び、当該平文を当該確率暗号文に暗号化するため
に用いられた乱数の値を取得する復号部を備え、復号部
により取得された平文の値と乱数の値を用いて、証明文
を作成することを特徴とする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、確率暗号を用いた
ゼロ知識証明に関し、特に、暗号化された数値が定めら
れた区間内に属することを、その数値を隠したまま証明
する暗号文の平文が区間内にあることの証明システム
と、暗号化された数値が定められた区間内に属すること
を証明する証明文の作成方法、及びその証明文による暗
号化された数値が定められた区間内に属することの検証
方法に関する。
【0002】
【従来の技術】従来、特定の数値が定められた区間にあ
ることを、その値を隠したまま証明する技術について、
例えばファブリーチェ ブード(Fabrice Boudot)によ
る方式がある。これは文献「エフィシエント プルーフ
ス ザット ア コミッテッド ナンバー ライズ イン ア
ン インターバル、アドバンス イン クリプトロジー、
プロシーヂング オブ ユーロクリプト 2000、エル
エヌシーエス 1807、シュプリンガー フェアラー
グ、431ページから444ページまで、2000年
(Efficient Proofs that a Committed Number Lies in
an Interval, Advancein 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として算出する(ステップ11
01)。この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)、2
T(b-x)を隠したまま(解読困難性を保ったまま)、これ
らの値が-2Tより大きいことをそれぞれ証明する。x、
a、bが整数なので、この証明は、x-a、b-xが正であるこ
と、すなわちxが[a、b]の区間内にあることの証明とな
る。以下ではコミットされた数が-2Tより大きいこと
を、その数を秘密にしたまま(解読困難性を保ったま
ま)、検証者に対して証明する方法について述べる。
【0010】以下、この秘密の数(つまり、2T(x-1)、2
T(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を知らないことが保証されていなければなら
ない。これは、コミットメントのコミットされる数に関
する周期を証明者が知っていると、コミットされた数(v
2)が平方であることの証明は、コミットされた数の存在
する区間を制限できないからである(乗法群Z* nの位数
はコミットメントのコミットされる数に関する周期とな
る)。
【0017】上記2つの問題点の解決が重要となる例を
次に挙げる。
【0018】[例]例として、アンケート式の個人の性格
の傾向診断サービスを考える。主催者は利用者にアンケ
ートを配り、利用者はそれに回答して主催者に返送し、
主催者は傾向の有無を利用者に返答する。
【0019】ここで利用者のプライバシー保護のため、
利用者がどの項目に印をつけたか主催者に分からないよ
うにしたい。また、主催者のノウハウを隠すためや、利
用者が結果を意識してアンケートに答えることがないよ
うにするため、アンケートの各項目が診断される傾向に
正に働くのか或は負に働くのか利用者に分からないよう
にしたい。診断の詳細を知らせないために、利用者の傾
向の具体的数値は利用者に分からないようにして、利用
者の傾向がある閾値を超えたかのみを伝えたい。また、
主催者が特定の利用者に故意に偽の診断結果を伝えるこ
とを防ぐために、診断結果を主催者が偽造していないこ
とを利用者に保証したい。
【0020】主催者はアンケートの各質問項目に対応し
て、1又は0をコミットしたもの(g 1hrmod n、又はg0hr
mod n)のどちらかである要素からなる列を利用者に配
る。各コミットメントが1のコミットメントであるか0
のコミットメントであるかが対応する質問項目が診断さ
れる傾向に正に働くのか或は負に働くのかを決める。乱
数rは各コミットメント毎に異なるものを使い、利用者
にコミットメントされている数を分からなくする。利用
者は自分の当てはまると思われる質問に対応するコミッ
トメントと任意の乱数r"を選び、それらコミットメント
とhr"との積を求め主催者に返送する。この積はg
0+,・・・,+1hr'+,・・・,+r+r"mod nといった形をしており、
判断に正に働く項目の質問を利用者が選んだ数がコミッ
トされている。ここで、コミットされている数と乱数r'
+,・・・,+r+r"とを主催者が知ることができれば、従来の
技術を使うことにより主催者は適正判断の結果を、(傾
向の)具体的な数値を示すことなく利用者に証明するこ
とができる(判断に使われる項目を選んだ数がある値を
超えるかどうかで適正の有無を判断するとする)。
【0021】この場合に、主催者はこの積からは利用者
がどの項目を選んだかは分からない。
【0022】[例における問題点]上記アンケートで従来
の技術を使った場合、問題(1)により主催者は、アン
ケート結果であるコミットメントの積からコミットされ
た数及び乱数を知ることができない。また、何らかの新
しい方法でこれらの数が分かったとしても、主催者がZ
* nを定めたのならば、問題(2)により、その数が定め
られた区間にあるかどうかを証明することができない。
【0023】本発明の目的は、上記従来技術の欠点を解
決し、証明者以外が作成したコミットメントに対して
も、証明者がそのコミットメントからコミットされた数
を求めて、コミットされた数が定められた区間にある場
合は、検証者に対してコミットされた数を隠したまま、
コミットされた数が定められた区間にあることを証明す
る暗号文の平文が区間内にあることの証明システムと証
明文の作成方法、その証明文による検証方法を提供する
ことである。
【0024】すなわち、従来の技術では、証明者自身が
隠して所持している数に関してその数の属する区間を証
明するものであったが、本発明においては、証明者が
(証明文作成装置が)他より与えらたコミットメントに
対して、コミットされた数の属する区間を証明するので
ある。
【0025】
【課題を解決するための手段】上記目的を達成するため
本発明の暗号文の平文が区間内にあることの証明システ
ムは、確率暗号文の平文である数値が指定された範囲内
にあることを証明するための証明文を作成し、かつ前記
証明文に基づいて当該平文の値が当該指定された範囲内
にあることを検証する暗号文の平文が区間内にあること
の証明システムにおいて、前記平文の値、当該平文を当
該確率暗号文に暗号化するために用いられた乱数の値、
前記指定された範囲を定める上限値と下限値、及び、正
しく検証される確率を規定する安全変数の値とに基づい
て、前記確率暗号文の解読困難性を失うことなく前記平
文の値が前記指定された範囲内にあるか否かを判定する
ための前記証明文を作成する証明文作成装置と、検証対
象の前記確率暗号文、前記指定された範囲を定める上限
値と下限値、前記証明文、及び、正しく検証される確率
を規定する安全変数の値とに基づいて、前記平文の値が
前記指定された範囲内にあるか否かを、前記安全変数に
規定された以上の確率で正確に検証する検証装置を備え
ることを特徴とする。
【0026】請求項2の本発明の暗号文の平文が区間内
にあることの証明システムは、前記証明文作成装置は、
前記確率暗号文を復号して、前記平文の値及び、当該平
文を当該確率暗号文に暗号化するために用いられた前記
乱数の値を取得する復号部を備え、前記復号部により取
得された前記平文の値と前記乱数の値を用いて、前記証
明文を作成することを特徴とする。
【0027】請求項3の本発明の暗号文の平文が区間内
にあることの証明システムは、前記証明文作成装置は、
前記上限値から前記平文の値を減算した値と、前記平文
の値から前記下限値を減算した値との2種類の数値を算
出する両端値との差の算出部と、前記安全変数に基づい
て定められる拡大係数の値を、前記両端値との差の算出
部により算出された2種類の数値のそれぞれに乗じて、
それぞれの拡大値を算出する拡大部と、前記拡大値のそ
れぞれに対して、各前記拡大値以下の最大の平方数と、
各前記拡大値から対応する前記平方数の値を減算した差
の値とを算出することにより、前記拡大値のそれぞれを
前記平方数と前記差の値とに分割する分割部と、各前記
拡大値を分割して得られた各前記数値を暗号化して、暗
号文を生成する暗号化部と、各前記拡大値を分割して得
られた各前記数値に関する証明文を生成する証明文生成
部を備え、前記暗号化部により生成された前記暗号文
と、証明文生成部により生成された前記数値に関する証
明文とを、前記平文の値が指定された範囲内にあること
を証明するための前記証明文として出力することを特徴
とする。
【0028】請求項4の本発明の暗号文の平文が区間内
にあることの証明システムは、前記検証装置は、前記上
限値から前記平文の値を減算した値と、前記平文の値か
ら前記下限値を減算した値との2種類の両端値との差の
値の、それぞれの暗号文を生成する両端値との差の暗号
文生成部と、前記両端値との差の暗号文生成部により生
成された各前記暗号文のそれぞれを、前記安全変数に基
づいて定められる拡大係数を前記2種類の両端値との差
の値のそれぞれに乗じて得られる値を暗号化した、拡大
値暗号文に変換する拡大部と、各前記拡大値暗号文を、
それぞれに第1の暗号文と第2の暗号文との2つの暗号
文の積に分解する分解部と、各前記拡大値暗号文を分解
して得られたそれぞれの前記2つの暗号文を検証する検
証部と、前記検証部による健勝結果に基づいて、当該確
率暗号文の平文である数値が当該指定された範囲内にあ
るか否かを判定する判定部を備えることを特徴とする。
【0029】請求項5の本発明の暗号文の平文が区間内
にあることの証明システムは、前記証明文作成装置の前
記暗号化部は、各前記拡大値のそれぞれに対して、前記
分割部により分割された前記平方数と前記差の値との少
なくとも一方を暗号化することにより、前記暗号文を生
成することを特徴とする。
【0030】請求項6の本発明の暗号文の平文が区間内
にあることの証明システムは、前記検証装置の前記分解
部は、各前記拡大値暗号文における、前記上限値から前
記平文の値を減算した値を基に生成された側と前記平文
の値から前記下限値を減算した値を基に生成された側と
のそれぞれにおいて対応する、前記証明文において暗号
化されて備えられている前記拡大値から算出される前記
平方数と前記差の値とのいずれか一方の値の暗号文をそ
れぞれに取得して、各前記拡大値暗号文のそれぞれに、
前記証明文に備えられる対応する側の値の暗号文を前記
第1の暗号文とし、前記第1の暗号文との積が対応する
前記拡大値暗号文を成す暗号文である前記第2の暗号文
をそれぞれ算出することにより、各前記拡大値暗号文を
分解することを特徴とする。
【0031】請求項7の本発明の暗号文の平文が区間内
にあることの証明システムは、前記証明文作成装置の前
記証明文生成部は、各前記拡大値のそれぞれの前記差の
値が、前記拡大係数より小さいことを証明する証明文
と、各前記拡大値のそれぞれの前記平方数が、平方数を
成しかつ前記確率暗号文の周期の半分より小さいことを
証明する証明文とを、各前記数値に関する証明文として
生成することを特徴とする。
【0032】請求項8の本発明の暗号文の平文が区間内
にあることの証明システムは、前記検証装置の前記検証
部は、各前記数値に関する証明文に基づいて、前記第1
の暗号文及び前記第2の暗号文を検証し、前記第1の暗
号文が前記平方数の側に対応する場合には、前記第1の
暗号文の平文の値が平方数を成しかつ前記確率暗号文の
周期の半分より小さいことの検証と、前記第2の暗号文
の平文の値が前記拡大係数より小さいことの検証とを行
い、前記第1の暗号文が前記差の値の側に対応する場合
には、前記第1の暗号文の平文の値が前記拡大係数より
小さいことの検証と、前記第2の暗号文の平文の値が平
方数を成しかつ前記確率暗号文の周期の半分より小さい
ことの検証とを行い、前記検証装置の前記判定部は、前
記検証部による前記第1の暗号文及び前記第2の暗号文
の前記検証において、いずれも受理された場合に限り、
前記確率暗号文の平文である数値が前記指定された範囲
内にあると判定することを特徴とする。
【0033】請求項9の本発明の証明文作成装置は、確
率暗号文の平文である数値が、指定された範囲内にある
ことを証明するための証明文を作成する証明文作成装置
において、前記平文の値、当該平文を当該確率暗号文に
暗号化するために用いられた乱数の値、前記指定された
範囲を定める上限値と下限値、及び、正しく検証される
確率を規定する安全変数の値とに基づいて、前記証明文
を作成する手段を備えることにより、前記確率暗号文、
前記上限値、前記下限値、前記安全変数、及び、作成さ
れた前記証明文とに基づく検証において、前記確率暗号
文の解読困難性を失うことなく、前記平文の値が前記指
定された範囲内にあるか否かを前記安全変数に規定され
た以上の確率で正確に検証するための、前記証明文を作
成することを特徴とする。
【0034】請求項10の本発明の証明文作成装置は、
前記確率暗号文を復号して、前記平文の値及び、当該平
文を当該確率暗号文に暗号化するために用いられた前記
乱数の値を取得する復号部を備え、前記証明文を作成す
る手段は、前記復号部により取得された前記平文の値と
前記乱数の値を用いて、前記証明文を作成することを特
徴とする。
【0035】請求項11の本発明の証明文作成装置は、
前記証明文を作成する手段は、前記上限値から前記平文
の値を減算した値と、前記平文の値から前記下限値を減
算した値との2種類の数値を算出する両端値との差の算
出部と、前記安全変数に基づいて定められる拡大係数の
値を、前記両端値との差の算出部により算出された2種
類の数値のそれぞれに乗じて、それぞれの拡大値を算出
する拡大部と、前記拡大値のそれぞれに対して、各前記
拡大値以下の最大の平方数と、各前記拡大値から対応す
る前記平方数の値を減算した差の値とを算出することに
より、前記拡大値のそれぞれを前記平方数と前記差の値
とに分割する分割部と、各前記拡大値を分割して得られ
た各前記数値を暗号化して、暗号文を生成する暗号化部
と、各前記拡大値を分割して得られた各前記数値に関す
る証明文を生成する証明文生成部を備え、前記暗号化部
により生成された前記暗号文と、証明文生成部により生
成された前記数値に関する証明文とを、前記平文の値が
指定された範囲内にあることを証明するための前記証明
文として出力することを特徴とする。
【0036】請求項12の本発明の証明文作成装置は、
前記暗号化部は、各前記拡大値のそれぞれに対して、前
記分割部により分割された前記平方数と前記差の値との
少なくとも一方を暗号化することにより、前記暗号文を
生成することを特徴とする。
【0037】請求項13の本発明の証明文作成装置は、
前記証明文生成部は、各前記拡大値のそれぞれの前記差
の値が、前記拡大係数より小さいことを証明する証明文
と、各前記拡大値のそれぞれの前記平方数が、平方数を
成しかつ前記確率暗号文の周期の半分より小さいことを
証明する証明文とを、各前記数値に関する証明文として
生成することを特徴とする。
【0038】請求項14の本発明の検証装置は、確率暗
号文の平文である数値が指定された範囲内にあることを
証明する証明文に基づき、当該平文の値が当該指定され
た範囲内にあることを検証する検証装置において、検証
対象の前記確率暗号文、前記指定された範囲を定める上
限値と下限値、前記証明文、及び、正しく検証される確
率を規定する安全変数の値とに基づいて、前記平文の値
が前記指定された範囲内にあるか否かを、前記安全変数
に規定された以上の確率で正確に検証することを特徴と
する。
【0039】請求項15の本発明の検証装置は、前記上
限値から前記平文の値を減算した値と、前記平文の値か
ら前記下限値を減算した値との2種類の両端値との差の
値の、それぞれの暗号文を生成する両端値との差の暗号
文生成部と、前記両端値との差の暗号文生成部により生
成された各前記暗号文のそれぞれを、前記安全変数に基
づいて定められる拡大係数を前記2種類の両端値との差
の値のそれぞれに乗じて得られる値を暗号化した、拡大
値暗号文に変換する拡大部と、各前記拡大値暗号文を、
それぞれに第1の暗号文と第2の暗号文との2つの暗号
文の積に分解する分解部と、各前記拡大値暗号文を分解
して得られたそれぞれの前記2つの暗号文を検証する検
証部と、前記検証部による健勝結果に基づいて、当該確
率暗号文の平文である数値が当該指定された範囲内にあ
るか否かを判定する判定部を備えることを特徴とする。
【0040】請求項16の本発明の検証装置は、前記証
明文は、前記安全変数に基づいて定められる拡大係数を
前記2種類の両端値との差の値のそれぞれに乗じて得ら
れる値である2種類の拡大値のそれぞれにおいて、各前
記拡大値以下の最大の平方数と、各前記拡大値から対応
する前記平方数の値を減算した差の値との少なくとも一
方の値を暗号化した、分割された値の暗号文のデータを
備え、前記分解部は、各前記拡大値暗号文における、前
記上限値から前記平文の値を減算した値を基に生成され
た側と前記平文の値から前記下限値を減算した値を基に
生成された側とのそれぞれにおいて対応する、前記証明
文において暗号化されて備えられている前記拡大値から
算出される前記平方数と前記差の値とのいずれか一方の
値の暗号文をそれぞれに取得して、各前記拡大値暗号文
のそれぞれに、前記証明文に備えられる対応する側の値
の暗号文を前記第1の暗号文とし、前記第1の暗号文と
の積が対応する前記拡大値暗号文を成す暗号文である前
記第2の暗号文をそれぞれ算出することにより、各前記
拡大値暗号文を分解することを特徴とする。
【0041】請求項17の本発明の検証装置は、前記証
明文は、前記安全変数に基づいて定められる拡大係数を
前記2種類の両端値との差の値のそれぞれに乗じて得ら
れる値である2種類の拡大値のそれぞれにおける、各前
記拡大値以下の最大の平方数と各前記拡大値から対応す
る前記平方数の値を減算した差の値との分割された各値
に関して、各前記差の値が、前記拡大係数より小さいこ
とを証明する証明文と、前記平方数が、平方数を成しか
つ前記確率暗号文の周期の半分より小さいことを証明す
る証明文とを、各前記数値に関する証明文として備え、
前記検証部は、各前記数値に関する証明文に基づいて、
前記第1の暗号文及び前記第2の暗号文を検証し、前記
第1の暗号文が前記平方数の側に対応する場合には、前
記第1の暗号文の平文の値が平方数を成しかつ前記確率
暗号文の周期の半分より小さいことの検証と、前記第2
の暗号文の平文の値が前記拡大係数より小さいことの検
証とを行い、前記第1の暗号文が前記差の値の側に対応
する場合には、前記第1の暗号文の平文の値が前記拡大
係数より小さいことの検証と、前記第2の暗号文の平文
の値が平方数を成しかつ前記確率暗号文の周期の半分よ
り小さいことの検証とを行い、前記判定部は、前記検証
部による前記第1の暗号文及び前記第2の暗号文の前記
検証において、いずれも受理された場合に限り、前記確
率暗号文の平文である数値が前記指定された範囲内にあ
ると判定することを特徴とする。
【0042】請求項18の本発明の証明文作成方法は、
確率暗号文の平文である数値が、指定された範囲内にあ
ることを証明するための証明文を作成する証明文作成方
法において、前記平文の値、当該平文を当該確率暗号文
に暗号化するために用いられた乱数の値、前記指定され
た範囲を定める上限値と下限値、及び、正しく検証され
る確率を規定する安全変数の値とに基づいて、前記証明
文を作成するステップを備えることにより、前記確率暗
号文、前記上限値、前記下限値、前記安全変数、及び、
作成された前記証明文とに基づく検証において、前記確
率暗号文の解読困難性を失うことなく、前記平文の値が
前記指定された範囲内にあるか否かを前記安全変数に規
定された以上の確率で正確に検証するための、前記証明
文を作成することを特徴とする。
【0043】請求項19の本発明の証明文作成方法は、
前記確率暗号文を復号して、前記平文の値及び、当該平
文を当該確率暗号文に暗号化するために用いられた前記
乱数の値を取得する復号ステップを備え、前記証明文を
作成するステップは、前記確率暗号文を復号して取得さ
れた前記平文の値と前記乱数の値を用いて、前記証明文
を作成することを特徴とする。
【0044】請求項20の本発明の証明文作成方法は、
前記証明文を作成するステップは、前記上限値から前記
平文の値を減算した値と、前記平文の値から前記下限値
を減算した値との2種類の数値を算出する両端値との差
の算出ステップと、前記安全変数に基づいて定められる
拡大係数の値を、前記両端値との差の算出ステップによ
り算出された2種類の数値のそれぞれに乗じて、それぞ
れの拡大値を算出する拡大ステップと、前記拡大値のそ
れぞれに対して、各前記拡大値以下の最大の平方数と、
各前記拡大値から対応する前記平方数の値を減算した差
の値とを算出することにより、前記拡大値のそれぞれを
前記平方数と前記差の値とに分割する分割ステップと、
各前記拡大値を分割して得られた各前記数値を暗号化し
て暗号文を生成する暗号化ステップと、各前記拡大値を
分割して得られた各前記数値に関する証明文を生成する
証明文生成ステップを備え、前記暗号化ステップにより
生成された前記暗号文と、証明文生成ステップにより生
成された前記数値に関する証明文とを、前記平文の値が
指定された範囲内にあることを証明するための前記証明
文として出力することを特徴とする。
【0045】請求項21の本発明の証明文作成方法は、
前記暗号化ステップは、各前記拡大値のそれぞれに対し
て、前記分割ステップにより分割された前記平方数と前
記差の値との少なくとも一方を暗号化することにより、
前記暗号文を生成することを特徴とする。
【0046】請求項22の本発明の証明文作成方法は、
前記証明文生成ステップは、各前記拡大値のそれぞれの
前記差の値が、前記拡大係数より小さいことを証明する
証明文と、各前記拡大値のそれぞれの前記平方数が、平
方数を成しかつ前記確率暗号文の周期の半分より小さい
ことを証明する証明文とを、各前記数値に関する証明文
として生成することを特徴とする。
【0047】請求項23の本発明の検証方法は、確率暗
号文の平文である数値が指定された範囲内にあることを
証明する証明文に基づき、当該平文の値が当該指定され
た範囲内にあることを検証する検証方法において、検証
対象の前記確率暗号文、前記指定された範囲を定める上
限値と下限値、前記証明文、及び、正しく検証される確
率を規定する安全変数の値とに基づいて、前記平文の値
が前記指定された範囲内にあるか否かを、前記安全変数
に規定された以上の確率で正確に検証することを特徴と
する。
【0048】請求項24の本発明の検証方法は、前記上
限値から前記平文の値を減算した値と、前記平文の値か
ら前記下限値を減算した値との2種類の両端値との差の
値の、それぞれの暗号文を生成する両端値との差の暗号
文生成ステップと、生成された各前記両端値との差の値
の暗号文のそれぞれを、前記安全変数に基づいて定めら
れる拡大係数を前記2種類の両端値との差の値のそれぞ
れに乗じて得られる拡大値を暗号化した、拡大値暗号文
に変換する拡大ステップと、各前記拡大値暗号文を、そ
れぞれに第1の暗号文と第2の暗号文との2つの暗号文
の積に分解する分解ステップと、各前記拡大値暗号文を
分解して得られたそれぞれの前記2つの暗号文を検証す
る検証ステップと、前記検証ステップによる健勝結果に
基づいて、当該確率暗号文の平文である数値が当該指定
された範囲内にあるか否かを判定する判定ステップを備
えることを特徴とする。
【0049】請求項25の本発明の検証方法は、前記証
明文は、前記安全変数に基づいて定められる拡大係数を
前記2種類の両端値との差の値のそれぞれに乗じて得ら
れる値である2種類の拡大値のそれぞれにおいて、各前
記拡大値以下の最大の平方数と、各前記拡大値から対応
する前記平方数の値を減算した差の値との少なくとも一
方の値を暗号化した、分割された値の暗号文のデータを
備え、前記分解ステップは、各前記拡大値暗号文におけ
る、前記上限値から前記平文の値を減算した値を基に生
成された側と前記平文の値から前記下限値を減算した値
を基に生成された側とのそれぞれにおいて対応する、前
記証明文において暗号化されて備えられている前記拡大
値から算出される前記平方数と前記差の値とのいずれか
一方の値の暗号文をそれぞれに取得するステップと、各
前記拡大値暗号文のそれぞれに、前記証明文に備えられ
る対応する側の値の暗号文を前記第1の暗号文とし、前
記第1の暗号文との積が対応する前記拡大値暗号文を成
す暗号文である前記第2の暗号文をそれぞれ算出するこ
とにより、各前記拡大値暗号文を分解するステップを備
えることを特徴とする。
【0050】請求項26の本発明の検証方法は、前記証
明文は、前記安全変数に基づいて定められる拡大係数を
前記2種類の両端値との差の値のそれぞれに乗じて得ら
れる値である2種類の拡大値のそれぞれにおける、各前
記拡大値以下の最大の平方数と各前記拡大値から対応す
る前記平方数の値を減算した差の値との分割された各値
に関して、各前記差の値が、前記拡大係数より小さいこ
とを証明する証明文と、前記平方数が、平方数を成しか
つ前記確率暗号文の周期の半分より小さいことを証明す
る証明文とを、各前記数値に関する証明文として備え、
前記検証ステップは、各前記数値に関する証明文に基づ
いて、前記第1の暗号文及び前記第2の暗号文を検証
し、前記第1の暗号文が前記平方数の側に対応する場合
には、前記第1の暗号文の平文の値が平方数を成しかつ
前記確率暗号文の周期の半分より小さいことの検証と、
前記第2の暗号文の平文の値が前記拡大係数より小さい
ことの検証とを行い、前記第1の暗号文が前記差の値の
側に対応する場合には、前記第1の暗号文の平文の値が
前記拡大係数より小さいことの検証と、前記第2の暗号
文の平文の値が平方数を成しかつ前記確率暗号文の周期
の半分より小さいことの検証とを行い、前記判定ステッ
プは、前記第1の暗号文及び前記第2の暗号文の前記検
証においていずれも受理された場合に限り、前記確率暗
号文の平文である数値が前記指定された範囲内にあると
判定することを特徴とする。
【0051】請求項27の本発明の証明文作成プログラ
ムは、コンピュータを制御することにより、確率暗号文
の平文である数値が指定された範囲内にあることを証明
するための証明文を作成する証明文作成プログラムにお
いて、前記平文の値、当該平文を当該確率暗号文に暗号
化するために用いられた乱数の値、前記指定された範囲
を定める上限値と下限値、及び、正しく検証される確率
を規定する安全変数の値とに基づいて、前記証明文を作
成する処理を実行させることにより、前記確率暗号文、
前記上限値、前記下限値、前記安全変数、及び、作成さ
れた前記証明文とに基づく検証において、前記確率暗号
文の解読困難性を失うことなく、前記平文の値が前記指
定された範囲内にあるか否かを前記安全変数に規定され
た以上の確率で正確に検証するための、前記証明文の作
成を実行させることを特徴とする。
【0052】請求項32の本発明の検証プログラムは、
コンピュータを制御することにより、確率暗号文の平文
である数値が指定された範囲内にあることを証明する証
明文に基づき、当該平文の値が当該指定された範囲内に
あることを検証する検証プログラムにおいて、検証対象
の前記確率暗号文、前記指定された範囲を定める上限値
と下限値、前記証明文、及び、正しく検証される確率を
規定する安全変数の値とに基づいて、前記平文の値が前
記指定された範囲内にあるか否かを、前記安全変数に規
定された以上の確率で正確に検証する処理を実行させる
ことを特徴とする。
【0053】本発明においては、定められた区間にある
ことを証明したい値がコミットされている確率公開鍵暗
号文を、復号することにより証明したい値と暗号化に用
いた乱数を取得して、その証明文を作成することができ
る。暗号文の平文に関する周期が存在するために、平方
数であることの証明文のみでは平方数の存在する区間を
限定できないが、平方数の平方根が周期の半分の平方根
より小さい(平方数が周期の半分より小さい)ことの証
明文を備えることにより、平方数の存在する区間が限定
でき検証を行なうことができる。
【0054】
【発明の実施の形態】本発明の上記及び他の目的、特徴
及び利点を明確にすべく、以下添付した図面を参照しな
がら本発明の実施の形態につき詳細に説明する。
【0055】本発明において用いる確率公開鍵暗号で
は、確率暗号である公開鍵暗号系に属する暗号方法であ
って、秘密鍵を用いることにより暗号文から平文のみな
らず、暗号化のために用いた乱数をも求めることができ
るものである。
【0056】例えばこの暗号方式の例として文献「パブ
リックキー クリプトシステムズ ベイスド オン コンポ
ジット ディグリー レジデュオシティー クラス、アド
バンス イン クリプトロジー、プロシーヂング オブ ユ
ーロクリプト '99、エルエヌシーエス 1592シュ
プリンガー フェアラーグ、223ページから238ペ
ージまで、1999年(Public-Key Cryptosystems Base
d on Composite DegreeResiduosity Classes, Advance
in Cryptology, Proceeding of Eurocrypt'99,LNCS 159
2, Springer-Verlag, pp. 223-238, 1999)」による暗号
方式などもこれに含まれる。
【0057】図1は、本発明の一実施の形態による証明
文作成装置の構成を説明するためのブロック図であり、
図2と図3は、本実施の形態による証明文の作成処理を
説明するためのフローチャートである。
【0058】本実施の形態の確率公開鍵暗号文の平文の
値が区間内にあることの証明方法は、秘密鍵により平文
と暗号化に用いられた乱数との両方を求めることのでき
る確率公開鍵暗号方式による暗号文を用いる。また以
下、暗号化する平文は数値データであり、またこれを暗
号化した暗号文もまた数値データを成すものとして説明
する。
【0059】図1を参照すると、本実施の形態の証明文
作成装置は、証明文の作成に用いる各種データを入力す
るための入力部10と、入力されたデータに基づき演算
を行ない証明文を作成する演算処理部20と、作成され
た証明文33を出力する出力部30を備えている。ま
た、本実施の形態の証明文作成装置の演算処理部20
は、復号部21、両端値との差の算出部22、拡大部2
3、分割部24、暗号化部25、証明文生成部26、乱
数生成部27を備えている。
【0060】図2を参照すると、本実施の形態の証明文
の作成処理は、まず復号部21が、秘密鍵12を用いて
確率公開鍵暗号文11を復号することにより、平文の値
と暗号化に用いられた乱数の値を取得する(ステップ2
01)。
【0061】そして、この取得した平文と乱数の値を用
いて、平文の値が定められた区間内にあることを検証者
に対し証明するための証明文を作成する(ステップ20
2)。このステップ202における証明文の作成処理
は、図3のフローチャートにおいて詳細に示している。
【0062】図3を参照すると、まず、両端値との差の
算出部22が、確率公開鍵暗号文11の平文の値と、定
められた区間の両端値との差を算出する(ステップ30
1)。つまり、定められた区間の上限値から平文の値を
引いた値と、平文の値から定められた区間の下限値を引
いた値とを算出する。
【0063】次に、拡大部23が、両端値との差の算出
部22により算出された2つの値に対して、前記安全変
数14から計算された拡大係数をそれぞれ乗じることに
より拡大して、拡大値をそれぞれ生成する(ステップ3
02)。
【0064】次に、分割部24が、拡大部23により拡
大されたそれぞれの拡大値を分割する(ステップ30
3)。つまり、それぞれの拡大値に対して、それぞれの
値を超えない最大の平方数をそれぞれに求め、それぞれ
の拡大値から対応する平方数を引くことにより差の整数
をそれぞれ求める。これによりそれぞれの拡大値を、平
方数と、差の整数との和に分割する。
【0065】次に、暗号化部25が、分割部24により
分割して得られた数値を暗号化する(ステップ30
4)。この暗号化においては、2つの拡大値のそれぞれ
において少なくとも1つ以上の分割された値(平方数又
は差の整数)を暗号化する。例えば、2つの拡大値のそ
れぞれにおいて分割して得られた平方数を暗号化する方
式や、2つの拡大値のそれぞれにおいて分割して得られ
た差の値を暗号化する方式により暗号化を行なう。ま
た、この暗号化は、証明対象の確率公開鍵暗号文11と
同様の方式で行なうものであり、その暗号化に用いる乱
数は、乱数生成部27により生成された値を用いる。
【0066】次に、証明文生成部26が、この分割部2
4により分割して得られた数値の、それぞれに関する証
明文を生成する。図3のフローチャートにおいては、ま
ず各拡大値における差の整数(の絶対値)が、前記拡大
係数より小さいことの証明文を生成する(ステップ30
5)。この証明文の生成においては、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を参照すると、本実施の形態の検証の
作成処理は、まず、両端値との差の値の暗号文生成部5
1が、検証対象の確率公開鍵暗号文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=gxrnm
od 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より、その差(40
5、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の41
4において、差の値zの暗号文33−6であるe[1]を、e
[1]=gzr[1]nmod n2により計算する。ここで、R=r^{2T}m
od 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]=gXR nmod 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}modn、r[2]=R/r[1]mod
nを求め、ρ'(509)を、ρ'=τ-vr[2]mod nにより
計算する。
【0095】更に、0≦μ'≦2t+lDなる任意の乱数51
0であるμ'、0≦σ<nなる任意の乱数511である
σ、0≦σ'<nなる任意の乱数512であるσ'、を無作
為に選び、図5の513と514において、生成元50
6である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において、検証対象の確率公開鍵暗号文1
1であるeと、区間を定める変数13の最小値a、最大値
bより、上限値から確率公開鍵暗号文の平文を引いた値
の確率公開鍵暗号文803であるgb/e mod n2=gb-xrnmo
d 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】[拡大値の暗号文に変換](ステップ70
2) 図8の804において、暗号文806であるEに対し
て、Tから計算された拡大係数2Tを用いて、E^{2T}mod n
2=g^{2TX}rnmod n2を計算する。これにより拡大値であ
る2TXの暗号文が算出される。
【0103】[分解](ステップ703) 図8の808において、拡大値の暗号文であるE^{2T}mo
d 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]-cmodn2)mod 2
tであれば、暗号文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]=g
d[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 n
2、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以上2
2(t+l)2T(b-a)以下でない場合にcD≦d[3]≦2t+lDが成り
立つ可能性は、2-t以下である。2 2T+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. 【請求項1】 確率暗号文の平文である数値が指定され
    た範囲内にあることを証明するための証明文を作成し、
    かつ前記証明文に基づいて当該平文の値が当該指定され
    た範囲内にあることを検証する、暗号文の平文が区間内
    にあることの証明システムにおいて、 前記平文の値、当該平文を当該確率暗号文に暗号化する
    ために用いられた乱数の値、前記指定された範囲を定め
    る上限値と下限値、及び、正しく検証される確率を規定
    する安全変数の値とに基づいて、前記確率暗号文の解読
    困難性を失うことなく前記平文の値が前記指定された範
    囲内にあるか否かを判定するための前記証明文を作成す
    る証明文作成装置と、 検証対象の前記確率暗号文、前記指定された範囲を定め
    る上限値と下限値、前記証明文、及び、正しく検証され
    る確率を規定する安全変数の値とに基づいて、前記平文
    の値が前記指定された範囲内にあるか否かを、前記安全
    変数に規定された以上の確率で正確に検証する検証装置
    を備えることを特徴とする暗号文の平文が区間内にある
    ことの証明システム。
  2. 【請求項2】 前記証明文作成装置は、 前記確率暗号文を復号して、前記平文の値及び、当該平
    文を当該確率暗号文に暗号化するために用いられた前記
    乱数の値を取得する復号部を備え、 前記復号部により取得された前記平文の値と前記乱数の
    値を用いて、前記証明文を作成することを特徴とする請
    求項1に記載の暗号文の平文が区間内にあることの証明
    システム。
  3. 【請求項3】 前記証明文作成装置は、 前記上限値から前記平文の値を減算した値と、前記平文
    の値から前記下限値を減算した値との2種類の数値を算
    出する両端値との差の算出部と、 前記安全変数に基づいて定められる拡大係数の値を、前
    記両端値との差の算出部により算出された2種類の数値
    のそれぞれに乗じて、それぞれの拡大値を算出する拡大
    部と、 前記拡大値のそれぞれに対して、各前記拡大値以下の最
    大の平方数と、各前記拡大値から対応する前記平方数の
    値を減算した差の値とを算出することにより、前記拡大
    値のそれぞれを前記平方数と前記差の値とに分割する分
    割部と、 各前記拡大値を分割して得られた各前記数値を暗号化し
    て、暗号文を生成する暗号化部と、 各前記拡大値を分割して得られた各前記数値に関する証
    明文を生成する証明文生成部を備え、 前記暗号化部により生成された前記暗号文と、証明文生
    成部により生成された前記数値に関する証明文とを、前
    記平文の値が指定された範囲内にあることを証明するた
    めの前記証明文として出力することを特徴とすることを
    特徴とする請求項2に記載の暗号文の平文が区間内にあ
    ることの証明システム。
  4. 【請求項4】 前記検証装置は、 前記上限値から前記平文の値を減算した値と、前記平文
    の値から前記下限値を減算した値との2種類の両端値と
    の差の値の、それぞれの暗号文を生成する両端値との差
    の暗号文生成部と、 前記両端値との差の暗号文生成部により生成された各前
    記暗号文のそれぞれを、前記安全変数に基づいて定めら
    れる拡大係数を前記2種類の両端値との差の値のそれぞ
    れに乗じて得られる値を暗号化した、拡大値暗号文に変
    換する拡大部と、 各前記拡大値暗号文を、それぞれに第1の暗号文と第2
    の暗号文との2つの暗号文の積に分解する分解部と、 各前記拡大値暗号文を分解して得られたそれぞれの前記
    2つの暗号文を検証する検証部と、 前記検証部による健勝結果に基づいて、当該確率暗号文
    の平文である数値が当該指定された範囲内にあるか否か
    を判定する判定部を備えることを特徴とする請求項3に
    記載の暗号文の平文が区間内にあることの証明システ
    ム。
  5. 【請求項5】 前記証明文作成装置の前記暗号化部は、 各前記拡大値のそれぞれに対して、前記分割部により分
    割された前記平方数と前記差の値との少なくとも一方を
    暗号化することにより、前記暗号文を生成することを特
    徴とする請求項4に記載の暗号文の平文が区間内にある
    ことの証明システム。
  6. 【請求項6】 前記検証装置の前記分解部は、 各前記拡大値暗号文における、前記上限値から前記平文
    の値を減算した値を基に生成された側と前記平文の値か
    ら前記下限値を減算した値を基に生成された側とのそれ
    ぞれにおいて対応する、前記証明文において暗号化され
    て備えられている前記拡大値から算出される前記平方数
    と前記差の値とのいずれか一方の値の暗号文をそれぞれ
    に取得して、各前記拡大値暗号文のそれぞれに、前記証
    明文に備えられる対応する側の値の暗号文を前記第1の
    暗号文とし、前記第1の暗号文との積が対応する前記拡
    大値暗号文を成す暗号文である前記第2の暗号文をそれ
    ぞれ算出することにより、各前記拡大値暗号文を分解す
    ることを特徴とする請求項5に記載の暗号文の平文が区
    間内にあることの証明システム。
  7. 【請求項7】 前記証明文作成装置の前記証明文生成部
    は、 各前記拡大値のそれぞれの前記差の値が、前記拡大係数
    より小さいことを証明する証明文と、各前記拡大値のそ
    れぞれの前記平方数が、平方数を成しかつ前記確率暗号
    文の周期の半分より小さいことを証明する証明文とを、
    各前記数値に関する証明文として生成することを特徴と
    する請求項6に記載の暗号文の平文が区間内にあること
    の証明システム。
  8. 【請求項8】 前記検証装置の前記検証部は、 各前記数値に関する証明文に基づいて、前記第1の暗号
    文及び前記第2の暗号文を検証し、 前記第1の暗号文が前記平方数の側に対応する場合に
    は、前記第1の暗号文の平文の値が平方数を成しかつ前
    記確率暗号文の周期の半分より小さいことの検証と、前
    記第2の暗号文の平文の値が前記拡大係数より小さいこ
    との検証とを行い、 前記第1の暗号文が前記差の値の側に対応する場合に
    は、前記第1の暗号文の平文の値が前記拡大係数より小
    さいことの検証と、前記第2の暗号文の平文の値が平方
    数を成しかつ前記確率暗号文の周期の半分より小さいこ
    との検証とを行い、 前記検証装置の前記判定部は、 前記検証部による前記第1の暗号文及び前記第2の暗号
    文の前記検証において、いずれも受理された場合に限
    り、前記確率暗号文の平文である数値が前記指定された
    範囲内にあると判定することを特徴とする請求項7に記
    載の暗号文の平文が区間内にあることの証明システム。
  9. 【請求項9】 確率暗号文の平文である数値が、指定さ
    れた範囲内にあることを証明するための証明文を作成す
    る証明文作成装置において、 前記平文の値、当該平文を当該確率暗号文に暗号化する
    ために用いられた乱数の値、前記指定された範囲を定め
    る上限値と下限値、及び、正しく検証される確率を規定
    する安全変数の値とに基づいて、前記証明文を作成する
    手段を備えることにより、 前記確率暗号文、前記上限値、前記下限値、前記安全変
    数、及び、作成された前記証明文とに基づく検証におい
    て、前記確率暗号文の解読困難性を失うことなく、前記
    平文の値が前記指定された範囲内にあるか否かを前記安
    全変数に規定された以上の確率で正確に検証するため
    の、前記証明文を作成することを特徴とする証明文作成
    装置。
  10. 【請求項10】 前記確率暗号文を復号して、前記平文
    の値及び、当該平文を当該確率暗号文に暗号化するため
    に用いられた前記乱数の値を取得する復号部を備え、 前記証明文を作成する手段は、 前記復号部により取得された前記平文の値と前記乱数の
    値を用いて、前記証明文を作成することを特徴とする請
    求項9に記載の証明文作成装置。
  11. 【請求項11】 前記証明文を作成する手段は、 前記上限値から前記平文の値を減算した値と、前記平文
    の値から前記下限値を減算した値との2種類の数値を算
    出する両端値との差の算出部と、 前記安全変数に基づいて定められる拡大係数の値を、前
    記両端値との差の算出部により算出された2種類の数値
    のそれぞれに乗じて、それぞれの拡大値を算出する拡大
    部と、 前記拡大値のそれぞれに対して、各前記拡大値以下の最
    大の平方数と、各前記拡大値から対応する前記平方数の
    値を減算した差の値とを算出することにより、前記拡大
    値のそれぞれを前記平方数と前記差の値とに分割する分
    割部と、 各前記拡大値を分割して得られた各前記数値を暗号化し
    て、暗号文を生成する暗号化部と、 各前記拡大値を分割して得られた各前記数値に関する証
    明文を生成する証明文生成部を備え、 前記暗号化部により生成された前記暗号文と、証明文生
    成部により生成された前記数値に関する証明文とを、前
    記平文の値が指定された範囲内にあることを証明するた
    めの前記証明文として出力することを特徴とすることを
    特徴とする請求項10に記載の証明文作成装置。
  12. 【請求項12】 前記暗号化部は、 各前記拡大値のそれぞれに対して、前記分割部により分
    割された前記平方数と前記差の値との少なくとも一方を
    暗号化することにより、前記暗号文を生成することを特
    徴とする請求項1に記載の証明文作成装置。
  13. 【請求項13】 前記証明文生成部は、 各前記拡大値のそれぞれの前記差の値が、前記拡大係数
    より小さいことを証明する証明文と、各前記拡大値のそ
    れぞれの前記平方数が、平方数を成しかつ前記確率暗号
    文の周期の半分より小さいことを証明する証明文とを、
    各前記数値に関する証明文として生成することを特徴と
    する請求項11又は請求項12に記載の証明文作成装
    置。
  14. 【請求項14】 確率暗号文の平文である数値が指定さ
    れた範囲内にあることを証明する証明文に基づき、当該
    平文の値が当該指定された範囲内にあることを検証する
    検証装置において、 検証対象の前記確率暗号文、前記指定された範囲を定め
    る上限値と下限値、前記証明文、及び、正しく検証され
    る確率を規定する安全変数の値とに基づいて、前記平文
    の値が前記指定された範囲内にあるか否かを、前記安全
    変数に規定された以上の確率で正確に検証することを特
    徴とする検証装置。
  15. 【請求項15】 前記上限値から前記平文の値を減算し
    た値と、前記平文の値から前記下限値を減算した値との
    2種類の両端値との差の値の、それぞれの暗号文を生成
    する両端値との差の暗号文生成部と、 前記両端値との差の暗号文生成部により生成された各前
    記暗号文のそれぞれを、前記安全変数に基づいて定めら
    れる拡大係数を前記2種類の両端値との差の値のそれぞ
    れに乗じて得られる値を暗号化した、拡大値暗号文に変
    換する拡大部と、 各前記拡大値暗号文を、それぞれに第1の暗号文と第2
    の暗号文との2つの暗号文の積に分解する分解部と、 各前記拡大値暗号文を分解して得られたそれぞれの前記
    2つの暗号文を検証する検証部と、 前記検証部による健勝結果に基づいて、当該確率暗号文
    の平文である数値が当該指定された範囲内にあるか否か
    を判定する判定部を備えることを特徴とする請求項14
    に記載の検証装置。
  16. 【請求項16】 前記証明文は、前記安全変数に基づい
    て定められる拡大係数を前記2種類の両端値との差の値
    のそれぞれに乗じて得られる値である2種類の拡大値の
    それぞれにおいて、各前記拡大値以下の最大の平方数
    と、各前記拡大値から対応する前記平方数の値を減算し
    た差の値との少なくとも一方の値を暗号化した、分割さ
    れた値の暗号文のデータを備え、 前記分解部は、 各前記拡大値暗号文における、前記上限値から前記平文
    の値を減算した値を基に生成された側と前記平文の値か
    ら前記下限値を減算した値を基に生成された側とのそれ
    ぞれにおいて対応する、前記証明文において暗号化され
    て備えられている前記拡大値から算出される前記平方数
    と前記差の値とのいずれか一方の値の暗号文をそれぞれ
    に取得して、各前記拡大値暗号文のそれぞれに、前記証
    明文に備えられる対応する側の値の暗号文を前記第1の
    暗号文とし、前記第1の暗号文との積が対応する前記拡
    大値暗号文を成す暗号文である前記第2の暗号文をそれ
    ぞれ算出することにより、各前記拡大値暗号文を分解す
    ることを特徴とする請求項15に記載の検証装置。
  17. 【請求項17】 前記証明文は、 前記安全変数に基づいて定められる拡大係数を前記2種
    類の両端値との差の値のそれぞれに乗じて得られる値で
    ある2種類の拡大値のそれぞれにおける、各前記拡大値
    以下の最大の平方数と各前記拡大値から対応する前記平
    方数の値を減算した差の値との分割された各値に関し
    て、各前記差の値が、前記拡大係数より小さいことを証
    明する証明文と、前記平方数が、平方数を成しかつ前記
    確率暗号文の周期の半分より小さいことを証明する証明
    文とを、各前記数値に関する証明文として備え、 前記検証部は、 各前記数値に関する証明文に基づいて、前記第1の暗号
    文及び前記第2の暗号文を検証し、 前記第1の暗号文が前記平方数の側に対応する場合に
    は、前記第1の暗号文の平文の値が平方数を成しかつ前
    記確率暗号文の周期の半分より小さいことの検証と、前
    記第2の暗号文の平文の値が前記拡大係数より小さいこ
    との検証とを行い、 前記第1の暗号文が前記差の値の側に対応する場合に
    は、前記第1の暗号文の平文の値が前記拡大係数より小
    さいことの検証と、前記第2の暗号文の平文の値が平方
    数を成しかつ前記確率暗号文の周期の半分より小さいこ
    との検証とを行い、 前記判定部は、 前記検証部による前記第1の暗号文及び前記第2の暗号
    文の前記検証において、いずれも受理された場合に限
    り、前記確率暗号文の平文である数値が前記指定された
    範囲内にあると判定することを特徴とする請求項16に
    記載の検証装置。。
  18. 【請求項18】 確率暗号文の平文である数値が、指定
    された範囲内にあることを証明するための証明文を作成
    する証明文作成方法において、 前記平文の値、当該平文を当該確率暗号文に暗号化する
    ために用いられた乱数の値、前記指定された範囲を定め
    る上限値と下限値、及び、正しく検証される確率を規定
    する安全変数の値とに基づいて、前記証明文を作成する
    ステップを備えることにより、 前記確率暗号文、前記上限値、前記下限値、前記安全変
    数、及び、作成された前記証明文とに基づく検証におい
    て、前記確率暗号文の解読困難性を失うことなく、前記
    平文の値が前記指定された範囲内にあるか否かを前記安
    全変数に規定された以上の確率で正確に検証するため
    の、前記証明文を作成することを特徴とする証明文作成
    方法。
  19. 【請求項19】 前記確率暗号文を復号して、前記平文
    の値及び、当該平文を当該確率暗号文に暗号化するため
    に用いられた前記乱数の値を取得する復号ステップを備
    え、 前記証明文を作成するステップは、 前記確率暗号文を復号して取得された前記平文の値と前
    記乱数の値を用いて、前記証明文を作成することを特徴
    とする請求項18に記載の証明文作成方法。
  20. 【請求項20】 前記証明文を作成するステップは、 前記上限値から前記平文の値を減算した値と、前記平文
    の値から前記下限値を減算した値との2種類の数値を算
    出する両端値との差の算出ステップと、 前記安全変数に基づいて定められる拡大係数の値を、前
    記両端値との差の算出ステップにより算出された2種類
    の数値のそれぞれに乗じて、それぞれの拡大値を算出す
    る拡大ステップと、 前記拡大値のそれぞれに対して、各前記拡大値以下の最
    大の平方数と、各前記拡大値から対応する前記平方数の
    値を減算した差の値とを算出することにより、前記拡大
    値のそれぞれを前記平方数と前記差の値とに分割する分
    割ステップと、 各前記拡大値を分割して得られた各前記数値を暗号化し
    て暗号文を生成する暗号化ステップと、 各前記拡大値を分割して得られた各前記数値に関する証
    明文を生成する証明文生成ステップを備え、 前記暗号化ステップにより生成された前記暗号文と、証
    明文生成ステップにより生成された前記数値に関する証
    明文とを、前記平文の値が指定された範囲内にあること
    を証明するための前記証明文として出力することを特徴
    とすることを特徴とする請求項19に記載の証明文作成
    方法。
  21. 【請求項21】 前記暗号化ステップは、 各前記拡大値のそれぞれに対して、前記分割ステップに
    より分割された前記平方数と前記差の値との少なくとも
    一方を暗号化することにより、前記暗号文を生成するこ
    とを特徴とする請求項20に記載の証明文作成方法。
  22. 【請求項22】 前記証明文生成ステップは、 各前記拡大値のそれぞれの前記差の値が、前記拡大係数
    より小さいことを証明する証明文と、各前記拡大値のそ
    れぞれの前記平方数が、平方数を成しかつ前記確率暗号
    文の周期の半分より小さいことを証明する証明文とを、
    各前記数値に関する証明文として生成することを特徴と
    する請求項20又は請求項21に記載の証明文作成方
    法。
  23. 【請求項23】 確率暗号文の平文である数値が指定さ
    れた範囲内にあることを証明する証明文に基づき、当該
    平文の値が当該指定された範囲内にあることを検証する
    検証方法において、 検証対象の前記確率暗号文、前記指定された範囲を定め
    る上限値と下限値、前記証明文、及び、正しく検証され
    る確率を規定する安全変数の値とに基づいて、前記平文
    の値が前記指定された範囲内にあるか否かを、前記安全
    変数に規定された以上の確率で正確に検証することを特
    徴とする検証方法。
  24. 【請求項24】 前記上限値から前記平文の値を減算し
    た値と、前記平文の値から前記下限値を減算した値との
    2種類の両端値との差の値の、それぞれの暗号文を生成
    する両端値との差の暗号文生成ステップと、 生成された各前記両端値との差の値の暗号文のそれぞれ
    を、前記安全変数に基づいて定められる拡大係数を前記
    2種類の両端値との差の値のそれぞれに乗じて得られる
    拡大値を暗号化した、拡大値暗号文に変換する拡大ステ
    ップと、 各前記拡大値暗号文を、それぞれに第1の暗号文と第2
    の暗号文との2つの暗号文の積に分解する分解ステップ
    と、 各前記拡大値暗号文を分解して得られたそれぞれの前記
    2つの暗号文を検証する検証ステップと、 前記検証ステップによる健勝結果に基づいて、当該確率
    暗号文の平文である数値が当該指定された範囲内にある
    か否かを判定する判定ステップを備えることを特徴とす
    る請求項23に記載の検証方法。
  25. 【請求項25】 前記証明文は、 前記安全変数に基づいて定められる拡大係数を前記2種
    類の両端値との差の値のそれぞれに乗じて得られる値で
    ある2種類の拡大値のそれぞれにおいて、各前記拡大値
    以下の最大の平方数と、各前記拡大値から対応する前記
    平方数の値を減算した差の値との少なくとも一方の値を
    暗号化した、分割された値の暗号文のデータを備え、 前記分解ステップは、 各前記拡大値暗号文における、前記上限値から前記平文
    の値を減算した値を基に生成された側と前記平文の値か
    ら前記下限値を減算した値を基に生成された側とのそれ
    ぞれにおいて対応する、前記証明文において暗号化され
    て備えられている前記拡大値から算出される前記平方数
    と前記差の値とのいずれか一方の値の暗号文をそれぞれ
    に取得するステップと、 各前記拡大値暗号文のそれぞれに、前記証明文に備えら
    れる対応する側の値の暗号文を前記第1の暗号文とし、
    前記第1の暗号文との積が対応する前記拡大値暗号文を
    成す暗号文である前記第2の暗号文をそれぞれ算出する
    ことにより、各前記拡大値暗号文を分解するステップを
    備えることを特徴とする請求項24に記載の検証方法。
  26. 【請求項26】 前記証明文は、 前記安全変数に基づいて定められる拡大係数を前記2種
    類の両端値との差の値のそれぞれに乗じて得られる値で
    ある2種類の拡大値のそれぞれにおける、各前記拡大値
    以下の最大の平方数と各前記拡大値から対応する前記平
    方数の値を減算した差の値との分割された各値に関し
    て、各前記差の値が、前記拡大係数より小さいことを証
    明する証明文と、前記平方数が、平方数を成しかつ前記
    確率暗号文の周期の半分より小さいことを証明する証明
    文とを、各前記数値に関する証明文として備え、 前記検証ステップは、 各前記数値に関する証明文に基づいて、前記第1の暗号
    文及び前記第2の暗号文を検証し、 前記第1の暗号文が前記平方数の側に対応する場合に
    は、前記第1の暗号文の平文の値が平方数を成しかつ前
    記確率暗号文の周期の半分より小さいことの検証と、前
    記第2の暗号文の平文の値が前記拡大係数より小さいこ
    との検証とを行い、 前記第1の暗号文が前記差の値の側に対応する場合に
    は、前記第1の暗号文の平文の値が前記拡大係数より小
    さいことの検証と、前記第2の暗号文の平文の値が平方
    数を成しかつ前記確率暗号文の周期の半分より小さいこ
    との検証とを行い、 前記判定ステップは、 前記第1の暗号文及び前記第2の暗号文の前記検証にお
    いていずれも受理された場合に限り、前記確率暗号文の
    平文である数値が前記指定された範囲内にあると判定す
    ることを特徴とする請求項25に記載の検証方法。
  27. 【請求項27】 コンピュータを制御することにより、
    確率暗号文の平文である数値が指定された範囲内にある
    ことを証明するための証明文を作成する証明文作成プロ
    グラムにおいて、 前記平文の値、当該平文を当該確率暗号文に暗号化する
    ために用いられた乱数の値、前記指定された範囲を定め
    る上限値と下限値、及び、正しく検証される確率を規定
    する安全変数の値とに基づいて、前記証明文を作成する
    処理を実行させることにより、 前記確率暗号文、前記上限値、前記下限値、前記安全変
    数、及び、作成された前記証明文とに基づく検証におい
    て、前記確率暗号文の解読困難性を失うことなく、前記
    平文の値が前記指定された範囲内にあるか否かを前記安
    全変数に規定された以上の確率で正確に検証するため
    の、前記証明文の作成を実行させることを特徴とする証
    明文作成プログラム。
  28. 【請求項28】 前記確率暗号文を復号して、前記平文
    の値及び、当該平文を当該確率暗号文に暗号化するため
    に用いられた前記乱数の値を取得する復号処理を実行さ
    せ、 前記証明文を作成する処理においては、 前記確率暗号文を復号して取得された前記平文の値と前
    記乱数の値を用いて、前記証明文の作成を実行すること
    を特徴とする請求項27に記載の証明文作成プログラ
    ム。
  29. 【請求項29】 前記証明文を作成する処理において
    は、 前記上限値から前記平文の値を減算した値と、前記平文
    の値から前記下限値を減算した値との2種類の数値を算
    出する両端値との差の算出処理と、 前記安全変数に基づいて定められる拡大係数の値を、前
    記両端値との差の算出処理により算出された2種類の数
    値のそれぞれに乗じて、それぞれの拡大値を算出する拡
    大処理と、 前記拡大値のそれぞれに対して、各前記拡大値以下の最
    大の平方数と、各前記拡大値から対応する前記平方数の
    値を減算した差の値とを算出することにより、前記拡大
    値のそれぞれを前記平方数と前記差の値とに分割する分
    割処理と、 各前記拡大値を分割して得られた各前記数値を暗号化し
    て暗号文を生成する暗号化処理と、 各前記拡大値を分割して得られた各前記数値に関する証
    明文を生成する証明文生成処理と、 前記暗号化処理により生成された前記暗号文と、証明文
    生成処理により生成された前記数値に関する証明文と
    を、前記平文の値が指定された範囲内にあることを証明
    するための前記証明文として出力する処理を実行させる
    ことを特徴とすることを特徴とする請求項28に記載の
    証明文作成プログラム。
  30. 【請求項30】 前記暗号化処理においては、 各前記拡大値のそれぞれに対して、前記分割処理により
    分割された前記平方数と前記差の値との少なくとも一方
    を暗号化することにより、前記暗号文を生成する処理を
    実行させることを特徴とする請求項28に記載の証明文
    作成プログラム。
  31. 【請求項31】 前記証明文生成処理においては、 各前記拡大値のそれぞれの前記差の値が、前記拡大係数
    より小さいことを証明する証明文と、各前記拡大値のそ
    れぞれの前記平方数が、平方数を成しかつ前記確率暗号
    文の周期の半分より小さいことを証明する証明文とを、
    各前記数値に関する証明文として生成する処理を実行さ
    せることを特徴とする請求項29又は請求項30に記載
    の証明文作成プログラム。
  32. 【請求項32】 コンピュータを制御することにより、
    確率暗号文の平文である数値が指定された範囲内にある
    ことを証明する証明文に基づき、当該平文の値が当該指
    定された範囲内にあることを検証する検証プログラムに
    おいて、 検証対象の前記確率暗号文、前記指定された範囲を定め
    る上限値と下限値、前記証明文、及び、正しく検証され
    る確率を規定する安全変数の値とに基づいて、前記平文
    の値が前記指定された範囲内にあるか否かを、前記安全
    変数に規定された以上の確率で正確に検証する処理を実
    行させることを特徴とする検証プログラム。
  33. 【請求項33】 前記上限値から前記平文の値を減算し
    た値と、前記平文の値から前記下限値を減算した値との
    2種類の両端値との差の値の、それぞれの暗号文を生成
    する両端値との差の暗号文生成処理と、 生成された各前記両端値との差の値の暗号文のそれぞれ
    を、前記安全変数に基づいて定められる拡大係数を前記
    2種類の両端値との差の値のそれぞれに乗じて得られる
    拡大値を暗号化した、拡大値暗号文に変換する拡大処理
    と、 各前記拡大値暗号文を、それぞれに第1の暗号文と第2
    の暗号文との2つの暗号文の積に分解する分解処理と、 各前記拡大値暗号文を分解して得られたそれぞれの前記
    2つの暗号文を検証する検証処理と、 前記検証処理による健勝結果に基づいて、当該確率暗号
    文の平文である数値が当該指定された範囲内にあるか否
    かを判定する判定処理を実行させることを特徴とする請
    求項32に記載の検証プログラム。
  34. 【請求項34】 前記証明文は、 前記安全変数に基づいて定められる拡大係数を前記2種
    類の両端値との差の値のそれぞれに乗じて得られる値で
    ある2種類の拡大値のそれぞれにおいて、各前記拡大値
    以下の最大の平方数と、各前記拡大値から対応する前記
    平方数の値を減算した差の値との少なくとも一方の値を
    暗号化した、分割された値の暗号文のデータを備え、 前記分解処理においては、 各前記拡大値暗号文における、前記上限値から前記平文
    の値を減算した値を基に生成された側と前記平文の値か
    ら前記下限値を減算した値を基に生成された側とのそれ
    ぞれにおいて対応する、前記証明文において暗号化され
    て備えられている前記拡大値から算出される前記平方数
    と前記差の値とのいずれか一方の値の暗号文をそれぞれ
    に取得する処理と、 各前記拡大値暗号文のそれぞれに、前記証明文に備えら
    れる対応する側の値の暗号文を前記第1の暗号文とし、
    前記第1の暗号文との積が対応する前記拡大値暗号文を
    成す暗号文である前記第2の暗号文をそれぞれ算出する
    ことにより、各前記拡大値暗号文を分解する処理を実行
    させることを特徴とする請求項33に記載の検証プログ
    ラム。
  35. 【請求項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 true JP2002268545A (ja) 2002-09-20
JP4743364B2 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)

Cited By (2)

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

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

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN7011000327, Fabrice Boudot, "Efficient Proofs that a Committed Number Lies in an Interval", EUROCRYPT2000, 2000, p.437−450 *
JPN7011000329, 古川 潤, "効率の良い全体検証可能なシャッフル", 2001年暗号と情報セキュリティシンポジウム, 200101, p.885−890 *

Cited By (2)

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

Also Published As

Publication number Publication date
JP4743364B2 (ja) 2011-08-10

Similar Documents

Publication Publication Date Title
JP5293745B2 (ja) データ参照システム、データベース提示分散システム、及びデータ参照方法
US9509492B2 (en) Authentication device, output device, verification device and input device
EP2278750A1 (en) Method for secure evaluation of a function applied to encrypted signals
Anggriane et al. Advanced e-voting system using Paillier homomorphic encryption algorithm
US20050005136A1 (en) Security method and apparatus using biometric data
US5790675A (en) Cryptographic communication process
CN112733163B (zh) 基于离散对数相等性证明的可监管零知识证明方法及装置
EP2792098B1 (en) Group encryption methods and devices
JPWO2006077701A1 (ja) 署名装置、検証装置、証明装置、暗号化装置、及び復号化装置
CN114095181B (zh) 一种基于国密算法的门限环签名方法及系统
Wei et al. Remove key escrow from the BF and Gentry identity-based encryption with non-interactive key generation
CN109088721B (zh) 一种可委托揭序加密方法
JP5434925B2 (ja) 多者分散乗算装置、多者分散乗算システム及び方法
Juniawan RSA implementation for data transmission security in BEM chairman E-voting Android based application
CN110798313A (zh) 基于秘密动态共享的包含秘密的数的协同生成方法及系统
Jamaludin et al. Hybrid Cryptosystem Analysis by Using The Combination of Vigenere Cipher and RSA for Text Security
JP4650933B2 (ja) 秘密計算方法及びシステム
CN101321059B (zh) 一种用于编码和译码数字消息的方法和系统
JP7276423B2 (ja) 暗号システム、鍵生成装置、鍵生成方法、鍵生成プログラム、および準同型演算装置
JPH0738558A (ja) 暗号化装置、及びそれを用いた通信システム及びその方法
JP4743364B2 (ja) 暗号文の平文が区間内にあることの証明システムと証明文の作成方法、その証明文による検証方法
Nagaty A public key cryptosystem and signature scheme based on numerical series
Doegar et al. On-demand digital signature schemes using Multivariate Polynomial systems
WO2005018138A1 (en) Generation and validation of diffie-hellman digital signatures
JP2002023626A (ja) 公開鍵暗号方法および公開鍵暗号を用いた通信システム

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