JP2004020984A - Method for probabilistic simultaneous order inspection of a plurality of elements and program for order inspecting - Google Patents

Method for probabilistic simultaneous order inspection of a plurality of elements and program for order inspecting Download PDF

Info

Publication number
JP2004020984A
JP2004020984A JP2002176695A JP2002176695A JP2004020984A JP 2004020984 A JP2004020984 A JP 2004020984A JP 2002176695 A JP2002176695 A JP 2002176695A JP 2002176695 A JP2002176695 A JP 2002176695A JP 2004020984 A JP2004020984 A JP 2004020984A
Authority
JP
Japan
Prior art keywords
storage means
order
group
values
test
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
JP2002176695A
Other languages
Japanese (ja)
Other versions
JP4122856B2 (en
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 JP2002176695A priority Critical patent/JP4122856B2/en
Publication of JP2004020984A publication Critical patent/JP2004020984A/en
Application granted granted Critical
Publication of JP4122856B2 publication Critical patent/JP4122856B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To inspect whether the orders of all of inspected values as elements of a multiplication group are divisors of specified orders at a high speed. <P>SOLUTION: A variable (p) defining a group, an array g<SB>i</SB>(i=1, 2, ..., n) of a plurality of values to be inspected, a reference order (q), and a safe variable (s) are inputted (S101) and loops of steps S102 to S109 is executed. In each loop, a random number (r) is generated (S102), an inspection product Q as the product of inspected values, selected at random from the array g<SB>i</SB>of inspected values according to the random number, in the group is calculated (S103), and it is judged whether the order of the inspection product Q is a divisor of the order (q) (S104). When the order of the inspection product Q is not a divisor of the order (q), inspection failure is outputted and the process is ended. When the order of the inspection product Q is a divisor of the order (1) and the loop is repeated as many times as the safe variable (s), inspection success is outputted and the process is ended. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は複数のデータの位数が特定の値であることを検査する方法に関し、特に複数のデータを一括して扱うことにより高速に結果を判定する方法に関する。
【0002】
【従来の技術】
多くの公開鍵暗号系のアプリケーションでは、安全性を保証するために、暗号文を構成する数値の位数を検査することがある。ここで言う数値の位数とは、その数値が生成する巡回群の集合としての位数のことであり、数値の位数の検査とは、その数値の位数が想定されている値であるかを検査することである。位数について簡単な例を挙げて説明する。今、乗法群(Z/pZ)としてp=7である(Z/7Z)を、数値として3を想定すると、数値3が生成する巡回群の集合は、3 mod 7=3、3 mod 7=2、3 mod 7=6、3 mod 7=4、3 mod 7=5、3 mod 7=1、3 mod 7=3、3 mod 7=2、3 mod 7=6、310 mod 7=4、311 mod 7=5、…、であり、3,2,6,4,5,1の6個の要素からなる。これを、数値3が乗法群(Z/7Z)上で生成する巡回群の集合としての位数は6であると言う。
【0003】
ところで、近年電子投票等の暗号アプリケーション等、膨大な数の暗号文を一度に扱う機会が増えている。このため、これらのアプリケーションで数値の位数の検査を迅速に完了することが求められている。位数検査が必要となる具体的な例としては、「検証可能な Mix−net 」と呼ばれる暗号プロトコルを用いた電子投票システムがあげられる。ここで投票行為は、公開鍵暗号システムを用いて暗号化した投票文を集計所に送付することにより行われる。集計では、まず送付された投票暗号文を複数の集計者により共同して復号し、次に復号された投票文を集計する。一連の集計操作の終了後、「検証可能な Mix−net 」では、一連の操作が正しく行われたかを証明するデータを、集計者が協力して生成し出力する。このデータのことを以後「証明データ」と呼ぶことにする。ところで、もし集計結果が正しくなかったとしても、暗号投票文の集合と復号した投票文の集合のみからはその事実は簡単には分らない。しかし復号のための鍵を持っているならば、集計結果が正しいかどうかはたちどころに分る。なぜならこの鍵で全ての投票暗号文を復号して二つの集合を比較すれば良いからである。証明データとはこのように集計結果が正当であるかを知ることを可能にするデータであるが、鍵そのものでなく、証明データからは投票暗号文と復号結果の対応は分らない(つまり、投票の匿名性を破らない)データである。「検証可能な Mix−net 」を用いた電子投票では、投票の集計において不正がなされていないことを、投票暗号文と復号された投票文と証明データから特殊なアルゴリズムを用いて判断する。このアルゴリズムの中に、特に「検証可能な Mix−net 」がエルガマル暗号文を利用する場合、暗号文と復号された投票文と証明データを構成する値の位数を調べる操作が含まれることが多い。なぜなら、エルガマル暗号文では位数の異なる暗号文を識別できるため、同じ位数の暗号文だけを選んで使わないと、電子投票システムの安全性が低下するからである。
【0004】
さて、従来の位数検査の方法には、以下のようなものがある。先ず、数値gの位 数がqの約数であることを検査するためには、数値gをこの数値gが定義された群上で、数値gのq+1乗である gq+1を計算する。つまり、定義された群を(Z/pZ)  とすると、gq+1 mod p を計算する。そして、この計算結果がgに等しければ、数値gの位数はqの約数であったと判定する。特に、qが素数の場合は、その位数は1あるいはqである。
【0005】
【発明が解決しようとする課題】
しかし前記従来の技術におけるgq+1の計算には、多大な計算コストがかかる場合が多いため、多数の数値の位数の検査を行うには膨大な時間がかかるという問題がある。特にMix−netにより大規模な電子投票を行う場合などには、位数を検査する必要のある暗号文が膨大なため、多大な時間が必要になり、システムの運用が困難になる場合がある。
【0006】
本発明はこのような事情に鑑みて提案されたものであり、その目的は、多数の数値の位数をより少ない時間で検査する方法を提供することにある。
【0007】
【課題を解決するための手段】
本発明の第1の複数の要素に対する確率的同時位数検査方法は、与えられた群上で複数の被検査値が与えられたとき、これらの値すべての位数がすべて与えられた値の約数であることを確認する方法であって、群を定義する変数と、前記群の要素である複数の被検査値と、位数と、安全変数とが入力される入力処理と、前記複数の被検査値の中に一つでも位数が前記与えられた位数の約数でないものを含む場合には、0と有意に異なる確率でこれを検出する検査処理と、前記複数の被検査値の中に一つでも位数が前記与えられた位数の約数でないものが含まれることが検出されるに至るか、あるいは前記安全変数により指定される回数実行されるに至るまで、前記検査処理を繰り返し実行する繰り返し処理と、前記繰り返し処理において、前記複数の被検査値の中に一つでも位数が前記与えられた位数の約数でないものが含まれることが検出された場合には「不受理」を、検出されない場合には「受理」を出力する出力処理とを含むことを特徴とする。
【0008】
本発明の第2の複数の要素に対する確率的同時位数検査方法は、第1の複数の要素に対する確率的同時位数検査方法において、前記検査処理が、乱数生成器により乱数を生成する乱数生成処理と、前記乱数を用いて、前記複数の被検査値の各値について選択または非選択を決定し、選択された値すべての前記群上での積である検査積を計算する検査積生成処理と、前記検査積の位数が前記与えられた位数の約数でなければ、前記複数の被検査値の中に一つでも位数が前記与えられた位数の約数でないものが含まれると判断する検査積位数判断処理と、を含むことを特徴とする。
【0009】
本発明の第3の複数の要素に対する確率的同時位数検査方法は、複数の被検査値すべての位数が基準となる位数の約数であることをコンピュータにより検査する方法において、以下のステップを含むことを特徴とする。
a)群を定義する変数、前記群の要素である複数の被検査値、基準となる位数および安全変数を入力し、入力した群を定義する変数を第1の記憶手段に、入力した複数の被検査値を第2の記憶手段に、入力した基準となる位数を第3の記憶手段に、入力した安全変数を第4の記憶手段に、それぞれ記憶するステップ
b)乱数を発生し、発生した乱数を第5の記憶手段に記憶するステップ
c)第1の記憶手段から群を定義する変数を、第2の記憶手段から複数の被検査値を、第5の記憶手段から乱数をそれぞれ取得し、乱数の値に基づいて複数の被検査値の中から検査積生成に用いる被検査値を選択し、該選択した被検査値の前記群上での積である検査積を計算して、該計算した検査積を第6の記憶手段に記憶するステップ
d)前記第1の記憶手段から群を定義する変数を、第3の記憶手段から基準となる位数を、第6の記憶手段から検査積をそれぞれ取得して、検査積の位数が基準となる位数の約数であるかどうかを判定し、判定結果を第7の記憶手段に記憶するステップ
e)第7の記憶手段から判定結果を取り出し、検査積の位数が基準となる位数の約数でない旨の判定結果であれば検査不合格の旨を出力して処理を終了し、検査積の位数が基準となる位数の約数である旨の判定結果であれば、第4の記憶手段から安全変数を取り出し、予め定められた値以上か否かを判定し、予め定められた値以上でなければ、検査合格の旨を出力して処理を終了し、予め定められた値以上であれば第4の記憶手段に記憶された安全変数を所定値だけ減じてステップbに処理を戻すステップ
【0010】
本発明の第4の複数の要素に対する確率的同時位数検査方法は、複数の被検査値すべての位数が基準となる位数の約数であることをコンピュータにより検査する方法において、以下のステップを含むことを特徴とする。
a)群を定義する変数、前記群の要素である複数の被検査値、基準となる位数および安全変数を入力するステップ
b)入力した群を定義する変数を第1の記憶手段に、入力した複数の被検査値を第2の記憶手段に、入力した基準となる位数を第3の記憶手段に、入力した安全変数を第4の記憶手段に、それぞれ記憶するステップ
c)乱数を発生するステップ
d)発生した乱数を第5の記憶手段に記憶するステップ
e)第1の記憶手段から群を定義する変数を、第2の記憶手段から複数の被検査値を、第5の記憶手段から乱数をそれぞれ取得し、乱数の値に基づいて複数の被検査値の中から検査積生成に用いる被検査値を選択し、該選択した被検査値の前記群上での積である検査積を計算するステップ
f)計算した検査積を第6の記憶手段に記憶するステップ
g)前記第1の記憶手段から群を定義する変数を、第3の記憶手段から基準となる位数を、第6の記憶手段から検査積をそれぞれ取得して、検査積の位数が基準となる位数の約数であるかどうかを判定するステップ
h)判定結果を第7の記憶手段に記憶するステップ
i)第7の記憶手段から判定結果を取り出し、検査積の位数が基準となる位数の約数でない旨の判定結果であれば、検査不合格の旨を出力して処理を終了し、それ以外は処理を継続するステップ
j)第4の記憶手段から安全変数を取り出し、予め定められた値以上か否かを判定し、予め定められた値以上でなければ、検査合格の旨を出力して処理を終了し、それ以外は処理を継続するステップ
k)第4の記憶手段に記憶された安全変数を所定値だけ減じ、ステップcに処理を戻すステップ
【0011】
【作用】
本発明にあっては、被検査値の中にその位数が与えられた位数の約数でないものがある場合には、安全変数を十分大きくとれば十分に1に近い確率で、そのようであることを確認できる。また、前記安全変数が位数のbit数よりも十分に小さく、かつ、位数を検査する検査値の数が位数のbit数よりも十分に大きい場合には、従来の方式による位数の検査よりも効率良く位数を検査することができる。例えば、位数のbit数が160以上の数であれば、安全変数は40ほどで十分な精度の検査が可能であり、この場合、被検査数値列が45個以上の要素からなる場合には、計算コストが従来技術に比べて低減される。
【0012】
【発明の実施の形態】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【0013】
図1を参照すると、本発明を適用したコンピュータの一例は、入力装置100、出力装置200、プログラム記憶装置300、メモリ400、及びそれらに接続された中央処理装置500で構成される。入力装置100は、キーボード等の手動入力装置、入力データを記憶するファイル装置、通信回線を通じて送られてくるデータを受信する通信装置などで構成される。出力装置200は、表示装置、プリンタ、出力データを記憶するファイル装置、通信回線を通じて出力データを送信する通信装置などで構成される。プログラム記憶装置300は、当該コンピュータの基本プログラムや位数検査プログラムなどのソフトウェアを記憶するための磁気ディスク等で構成される。メモリ400は、位数検査処理の過程で必要となる各種のデータを記憶するための記憶部で、RAM等で構成される。本実施の形態の場合、メモリ400には、ファイルやテーブル等で構成される第1乃至第7の記憶手段401〜407が設けられている。中央処理装置500は、プログラム記憶装置300に記憶されたプログラムを実行することにより、本コンピュータの全体を制御する。特に、プログラム記憶装置300に記憶された位数検査プログラムを実行することにより、本発明にかかる位数検査方法を実行する。
【0014】
次に図2を参照して、位数検査プログラムによる処理の流れを説明する。
【0015】
[前提]
pを整数、φ(p)を、p未満の正整数のうちpと互いに素な正整数の総数、qを、q|φ(p)なる整数、つまりφ(p)が割り切れる整数とする。この意味を簡単な例を挙げて説明すると、p=15の場合、p未満の正整数のうちpと互いに素な正整数は、1,2,4,7,8,11,13,14の合計8個であるから、φ(p)=8であり、8が割り切れる整数であるqは1,2,4,8である。なお、この複数の値のqのうち、特定の値のqを基準となる位数として位数検査が行われる。
【0016】
[入力処理S101]
中央処理装置500は、入力装置100から、乗法群(Z/pZ)を定義する変数p、この群の要素であるn個の被検査値g,g,…,g、基準となる位数qおよび安全変数sを入力し、第1の記憶手段401、第2の記憶手段402、第3の記憶手段403および第4の記憶手段404に記憶する。例えば本発明を従来技術の項で説明した「検証可能な Mix−net 」と呼ばれる暗号プロトコルを用いた電子投票システムに適用する場合、変数pは公開鍵暗号が用いる群を定義する変数に相当し、複数の被検査値は暗号化されて投票された票、復号が終了した票、集計処理が正常に行われたことを証明するデータを構成する要素に相当し、基準となる位数qは当該電子投票システムで用いることが定められた位数に相当する。また、安全変数sは検査に要求される精度に応じて事前に定められる。
【0017】
[乱数生成処理S102]
中央処理装置500は、乱数発生手段を用いて、被検査値の個数nと等しいnビットの乱数rを生成し、第5の記憶手段405に記憶する。ここで、乱数rの各ビットの値は1または0である。
【0018】
[検査積生成処理S103]
中央処理装置500は、第1、第2、第5の記憶手段401、402、405から、群を定義する変数p、n個の被検査値g,g,…,g、nビットの乱数rをそれぞれ取得し、n個の被検査値g,g,…,gと乱数の各ビットとを1対1に対応付けた場合に、乱数rの対応するビットの値が予め定められた値(例えば1)である被検査値だけを選び出し、それらの被検査値の前記群上での積である検査積Qを計算し、第6の記憶手段406に記憶する。検査積Qの計算を簡単な例で説明すると、群を(Z/7Z)、選ばれた2つの被検査値g,gを3,4とすると、それらの被検査値の前記群上での積である検査積Qは、3*4 mod 7 =5 と計算する。
【0019】
[検査積位数判定処理S104]
中央処理装置500は、第1、第3、第6の記憶手段401、403、406から、群を定義する変数p、基準となる位数q、検査積Qをそれぞれ取得して、検査積Qの位数が基準となる位数qの約数であるかどうかを、以下の式が成立するかどうかを計算することによって判定し、その判定結果を第7の記憶手段407に記憶する。
q+1 mod p =Q
上記の式が成立するときは、当該検査積Qの計算の元となった全ての被検査値の位数が位数qの約数であるため、判定結果を「受理」とし、安全変数判断処理S107へ分岐する。反対に、上記の式が成立しないときは、当該検査積Qの計算の元となった被検査値の中に少なくとも位数が位数qの約数でない被検査値が含まれているため、判定結果を「不受理」とし、不受理出力処理S105へ分岐する。
【0020】
[不受理出力処理S105]
中央処理装置500は、「不受理」の判定結果を第7の記憶手段407から取り出し、出力装置200から出力する。そして、当該被検査値に対する位数検査処理を終了する(S106)。
【0021】
[安全変数判断処理S107]
中央処理装置500は、第4の記憶手段404から安全変数sを取り出し、予め定められた値(本例では1)より大きいかどうかを判定し、1より大きければ繰り返し処理S109へ分岐し、1より大きくなければ、受理出力処理S108へ分岐する。
【0022】
[受理出力処理S108]
中央処理装置500は、「受理」の判定結果を第7の記憶手段407から取り出し、出力装置200から出力する。そして、当該被検査値に対する位数検査処理を終了する(S106)。
【0023】
[繰り返し処理S109]
中央処理装置500は、第4の記憶手段404に記憶されている安全変数sを所定値(本例では1)だけ減じ、乱数生成処理S102に分岐する。これにより、上述した処理が繰り返される。この繰り返しは、処理S103で生成された検査積Qの位数が位数qの約数でないと判定されるか、処理S107で安全変数sの値が1より大きくないと判定されるまで続けられる。
【0024】
次に、本実施例の効果を説明する。
【0025】
全ての被検査数値列g;(i=1、2、…、n)に関して、g q+1 mod p =gが成り立つならば、本実施例では必ず「受理」を出力する。これは明らかである。一つでもg q+1 mod p ≠gなるgが存在する場合、各検査積Qがgを含む確率は1/2である。なぜなら、検査積を構成するその他の要素を同じとして、検査積Qがgを含む場合と含まない場合の両方の場合に、共にQq+1 mod p =Qが成り立つことは有り得ない。よって、一つでもg q+1 mod p ≠gなるgが存在する場合、無作為に選ばれた乱数rに関して、Qq+1 mod p =Qが成り立つ確立は、1/2以下であるからである。
【0026】
本実施例において「受理」を出力した場合は、s個の乱数に関して生成された検査積Q全てが、Qq+1 mod p =Qを満たしたと言うことであるので、一つでもg q+1 mod p≠gなるgが存在する確率は1/2以下である。従って、安全変数sを十分に大きくとれば、g q+1 mod p ≠gなるgの存在を見逃す確率は無視できるほど小さくなる。
【0027】
従来の方法でn個のgに関して、g q+1 mod p=gを確認するには、冪乗剰余算をn回行わなければならなかった。そして、一回の冪乗剰余算にはおよそqのビット数の3/2倍の乗算剰余が必要である。qのビット数を|q|とすると、全体で(3/2)|q|n回の乗算剰余が必要である。
【0028】
一方本実施例では、検査積Qを生成するにはn/2回の乗算剰余が必要で、Qq+1 を計算するには(3/2)|q|回の乗算剰余が必要なので、全体として、{(1/2)n + (3/2)|q|}s回の乗算剰余が必要になる。
【0029】
従って、nが|q|より十分大きい場合、すなわち多くの位数検査を行う必要がある場合で、かつs<3|q|であれば本実施例は従来の方法よりも効率が良い。現実的に、前述した電子投票システム等の場合、位数のbit数|q|は160以上の数が選ばれる場合が多く、安全変数sは40ほどで十分な場合が多い。このような条件では、被検査数値列が45個以上の要素からなる場合では、本実施例の方が効果的である。
【0030】
【発明の効果】
以上説明したように本発明によれば、多数の数値の位数をより少ない時間で検査することが可能である。その理由は、複数のデータを一括して扱い且つ確率的に検査しているからである。
【図面の簡単な説明】
【図1】本発明を適用したコンピュータの一例を示すブロック図である。
【図2】位数検査プログラムによる処理の流れを示すフローチャートである。
【符号の説明】
100…入力装置
200…出力装置
300…プログラム記憶装置
400…メモリ
401〜407…第1〜第7の記憶手段
500…中央処理装置
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a method of checking that the order of a plurality of data has a specific value, and particularly to a method of determining a result at a high speed by treating a plurality of data collectively.
[0002]
[Prior art]
In many applications of the public key cryptosystem, the order of numerical values constituting a ciphertext may be checked in order to guarantee security. Here, the order of the numerical value is the order as a set of cyclic groups generated by the numerical value, and the inspection of the order of the numerical value is the value at which the order of the numerical value is assumed. Is to test. The order will be described with a simple example. Now, assuming (Z / 7Z) * with p = 7 as the multiplicative group (Z / pZ) * and 3 as the numerical value, the set of cyclic groups generated by the numerical value 3 is 3 1 mod 7 = 3,3 2 mod 7 = 2,3 3 mod 7 = 6,3 4 mod 7 = 4,3 5 mod 7 = 5,3 6 mod 7 = 1,3 7 mod 7 = 3,3 8 mod 7 = 2,3 9 mod 7 = 6, 3 10 mod 7 = 4, 3 11 mod 7 = 5,..., and is composed of 6, 2, 3, 4, 5, and 1 elements. It is said that the order as a set of cyclic groups generated by the numerical value 3 on the multiplicative group (Z / 7Z) * is 6.
[0003]
By the way, in recent years, an opportunity to handle a huge number of ciphertexts at a time, such as a cryptographic application such as electronic voting, has increased. For this reason, it is required that these applications complete the inspection of the numerical order quickly. A specific example that requires a rank check is an electronic voting system using a cryptographic protocol called “Verifiable Mix-net”. Here, the voting action is performed by sending a voting sentence encrypted using a public key encryption system to a tallying station. In the tallying, first, the sent voting cipher text is jointly decrypted by a plurality of tallyers, and then the decrypted voting texts are tallyed. After the end of the series of tallying operations, in the “Verifiable Mix-net”, the tallyer cooperates to generate and output data proving that the series of operations has been performed correctly. This data is hereinafter referred to as “certification data”. By the way, even if the tally result is incorrect, the fact is not easily understood from only the set of encrypted voting sentences and the set of decrypted voting sentences. However, if you have the key to decrypt it, it is easy to see if the results are correct. This is because all voting ciphertexts can be decrypted with this key and the two sets can be compared. The proof data is data that makes it possible to know whether the tally result is valid, but the correspondence between the voting cipher text and the decryption result is not known from the proof data, not the key itself (that is, voting data). Data). In the electronic voting using the “verifiable Mix-net”, it is determined from the voting cipher text, the decrypted voting text, and the proof data using a special algorithm that no tampering has been performed in counting the voting. This algorithm may include an operation for examining the order of the values constituting the ciphertext, the decrypted voting sentence, and the proof data, particularly when the “verifiable Mix-net” uses the ElGamal ciphertext. Many. This is because the ElGamal ciphertext can identify ciphertexts having different orders, and if only ciphertexts having the same order are not selected and used, the security of the electronic voting system is reduced.
[0004]
By the way, there are the following methods for the conventional order inspection. First, order of the numerical values g in order to check that it is a divisor of q is a number g on the group this value g is defined to calculate the g q + 1 is a q + 1 square of numerical g. In other words, the defined group is (Z / pZ)   Assuming * , g q + 1 mod p is calculated. If this calculation result is equal to g, it is determined that the order of the numerical value g is a divisor of q. In particular, when q is a prime number, its order is 1 or q.
[0005]
[Problems to be solved by the invention]
However, since the calculation of g q + 1 in the above-described conventional technique often requires a large calculation cost, there is a problem that it takes an enormous amount of time to check the order of a large number of numerical values. In particular, when a large-scale electronic voting is performed by using the Mix-net, for example, the number of ciphertexts whose order needs to be checked is enormous, so that a large amount of time is required and the operation of the system may be difficult. .
[0006]
The present invention has been proposed in view of such circumstances, and an object of the present invention is to provide a method for inspecting the order of a large number of numerical values in a shorter time.
[0007]
[Means for Solving the Problems]
The first probabilistic simultaneous order inspection method for a plurality of elements according to the present invention is such that when a plurality of inspected values are given on a given group, all the orders of these values are all the given values. A method for confirming that the number is a divisor, wherein a variable defining a group, a plurality of inspected values that are elements of the group, a rank, and an input process in which a safety variable is input; In the case where at least one of the inspected values includes a value whose order is not a divisor of the given order, an inspection process of detecting this with a probability significantly different from 0; Until it is detected that at least one order is not a divisor of the given order, or until the value is executed the number of times specified by the safety variable, In the repetitive processing for repeatedly executing the inspection processing, If it is detected that at least one order is not a divisor of the given order among a plurality of values to be inspected, “Rejected” is detected. And an output process of outputting
[0008]
According to a second aspect of the present invention, there is provided a stochastic simultaneous order inspection method for a plurality of elements, wherein the inspection processing generates a random number by a random number generator. Processing, using the random numbers, determining whether to select or deselect each of the plurality of values to be inspected, and calculating an inspection product that is a product of all the selected values on the group, If the order of the test product is not a divisor of the given order, at least one of the plurality of inspected values includes one whose order is not a divisor of the given order. And a check stacking number judging process for judging that the number is to be determined.
[0009]
The third method of probabilistic simultaneous order inspection for a plurality of elements according to the present invention is a method for inspecting by computer that all orders of a plurality of inspected values are divisors of a reference order. It is characterized by including a step.
a) A variable defining a group, a plurality of test values which are elements of the group, a standard order and a safety variable are input, and the variables defining the input group are input to a first storage means. B) storing the inspected value in the second storage means, storing the input reference order in the third storage means, and storing the input safety variable in the fourth storage means. Step c) storing the generated random numbers in the fifth storage means. The variables defining the group from the first storage means, the plurality of test values from the second storage means, and the random numbers from the fifth storage means. Obtain and select a test value to be used for test product generation from a plurality of test values based on the value of the random number, and calculate a test product which is a product of the selected test value on the group. And d) storing the calculated check product in a sixth storage means. A variable defining the group from the column, a reference order from the third storage means, and a check product from the sixth storage means are respectively obtained, and the order of the test product is a divisor of the reference order. E) storing the determination result in the seventh storage means; e) retrieving the determination result from the seventh storage means; If the judgment result indicates that the test is not successful, the process is terminated, and if the judgment result indicates that the order of the inspection product is a divisor of the reference order, the safety is stored in the fourth storage means. The variable is taken out, and it is determined whether or not the value is equal to or more than a predetermined value. If the value is not equal to or more than the predetermined value, the result of the inspection is output and the process is terminated. Step 4 of reducing the safety variable stored in the storage means of Step 4 by a predetermined value and returning to Step b. 10]
A fourth method of probabilistic simultaneous order inspection for a plurality of elements according to the present invention is a method for inspecting with a computer that all orders of a plurality of inspected values are divisors of a reference order. It is characterized by including a step.
a) inputting a variable defining a group, a plurality of test values, reference orders and safety variables which are elements of the group; b) inputting a variable defining an input group to a first storage means; C) storing the plurality of tested values in the second storage means, storing the input reference order in the third storage means, and storing the input safety variables in the fourth storage means, respectively. D) storing the generated random numbers in a fifth storage means, e) storing a variable defining a group from the first storage means, a plurality of test values from the second storage means, and a fifth storage means. From the plurality of inspected values based on the value of the random number, select an inspected value to be used for generating an inspected product, and determine an inspected product that is a product of the selected inspected value on the group. F) storing the calculated check product in the sixth storage means. G) obtaining a variable defining a group from the first storage means, a reference order from the third storage means, and a check product from the sixth storage means, respectively. H) determining whether or not is a divisor of the reference order; i) storing the determination result in the seventh storage means; i) extracting the determination result from the seventh storage means; If the judgment result is that the order is not a divisor of the reference order, a message indicating that the test has failed is output and the process is terminated. Otherwise, the process is continued. Step j) The safety variable is stored in the fourth storage means. Take out and determine whether or not the value is equal to or greater than a predetermined value. If the value is not equal to or greater than the predetermined value, output that the inspection is successful and terminate the process. Otherwise, continue the process. The safety variable stored in the storage means is reduced by a predetermined value, and the Step to return the process to the c [0011]
[Action]
In the present invention, if the order is not a divisor of the given order in the inspected values, the probability is sufficiently close to 1 if the safety variable is made sufficiently large. Can be confirmed. Further, when the safety variable is sufficiently smaller than the number of bits of the order and the number of test values for inspecting the order is sufficiently larger than the number of bits of the order, The order can be inspected more efficiently than the inspection. For example, if the number of bits of the order is 160 or more, it is possible to perform a sufficiently accurate inspection with about 40 safety variables. In this case, if the numerical value sequence to be inspected is composed of 45 or more elements, And the computational cost is reduced compared to the prior art.
[0012]
BEST MODE FOR CARRYING OUT THE INVENTION
Next, embodiments of the present invention will be described in detail with reference to the drawings.
[0013]
Referring to FIG. 1, an example of a computer to which the present invention is applied includes an input device 100, an output device 200, a program storage device 300, a memory 400, and a central processing unit 500 connected thereto. The input device 100 includes a manual input device such as a keyboard, a file device for storing input data, a communication device for receiving data transmitted via a communication line, and the like. The output device 200 includes a display device, a printer, a file device for storing output data, a communication device for transmitting output data via a communication line, and the like. The program storage device 300 is configured by a magnetic disk or the like for storing software such as a basic program of the computer and an order inspection program. The memory 400 is a storage unit for storing various data required in the order inspection process, and is configured by a RAM or the like. In the case of the present embodiment, the memory 400 is provided with first to seventh storage units 401 to 407 each including a file, a table, and the like. The central processing unit 500 executes the program stored in the program storage device 300 to control the entire computer. In particular, the order inspection method according to the present invention is executed by executing the order inspection program stored in the program storage device 300.
[0014]
Next, the flow of processing by the order inspection program will be described with reference to FIG.
[0015]
[Premise]
Let p be an integer, let φ (p) be the total number of positive integers relatively prime to p among positive integers less than p, and let q be an integer q | φ (p), that is, an integer divisible by φ (p). To explain this meaning with a simple example, when p = 15, among the positive integers smaller than p, positive integers relatively prime to p are 1, 2, 4, 7, 8, 11, 13, and 14 Since there are a total of eight, φ (p) = 8, and q, which is an integer divisible by 8, is 1, 2, 4, and 8. The order test is performed using q of a specific value among the qs of the plurality of values as a reference order.
[0016]
[Input processing S101]
The central processing unit 500 from the input device 100, multiplicative group (Z / pZ) * define variables p, n pieces of inspection values g 1 is an element of the group, g 2, ..., g n, the reference and The order q and the safety variable s are input and stored in the first storage unit 401, the second storage unit 402, the third storage unit 403, and the fourth storage unit 404. For example, when the present invention is applied to an electronic voting system using a cryptographic protocol called “Verifiable Mix-net” described in the section of the related art, a variable p corresponds to a variable defining a group used by public key cryptography. , The plurality of inspected values correspond to the encrypted voted vote, the decrypted vote, and the elements constituting the data proving that the tallying process was performed normally, and the reference order q is This corresponds to the order determined to be used in the electronic voting system. Further, the safety variable s is determined in advance according to the accuracy required for the inspection.
[0017]
[Random number generation processing S102]
The central processing unit 500 generates an n-bit random number r equal to the number n of the values to be inspected by using the random number generating unit, and stores the generated random number r in the fifth storage unit 405. Here, the value of each bit of the random number r is 1 or 0.
[0018]
[Check product generation processing S103]
The central processing unit 500 stores the variable p defining the group, n inspected values g 1 , g 2 ,..., G n , n bits from the first, second, and fifth storage means 401, 402, and 405. Are obtained, and when the n inspected values g 1 , g 2 ,..., G n and each bit of the random number are associated with each other on a one-to-one basis, the value of the corresponding bit of the random number r is Only inspection values that are predetermined values (for example, 1) are selected, and an inspection product Q that is a product of the inspection values on the group is calculated and stored in the sixth storage unit 406. To explain the calculation of the check product Q by a simple example, if the group is (Z / 7Z) * and the two selected test values g 1 and g 2 are 3 and 4, the group of the test values will be described. The check product Q, which is the product above, is calculated as 3 * 4 mod 7 = 5.
[0019]
[Test Stack Number Determination Process S104]
The central processing unit 500 acquires the variable p defining the group, the order q serving as a reference, and the check product Q from the first, third, and sixth storage means 401, 403, and 406, respectively. Is determined by calculating whether or not the following expression is satisfied, and the determination result is stored in the seventh storage means 407.
Q q + 1 mod p = Q
When the above equation is satisfied, the order of all the inspected values from which the check product Q is calculated is a divisor of the order q. The process branches to step S107. On the other hand, when the above formula is not satisfied, the test value from which the check product Q is calculated includes a test value whose order is at least a divisor of the order q. The determination result is “not accepted”, and the process branches to unaccepted output processing S105.
[0020]
[Rejected output processing S105]
The central processing unit 500 takes out the result of the determination of “not accepted” from the seventh storage unit 407 and outputs it from the output unit 200. Then, the order inspection processing for the inspected value ends (S106).
[0021]
[Safety variable determination processing S107]
The central processing unit 500 fetches the safety variable s from the fourth storage unit 404, determines whether or not the value is greater than a predetermined value (1 in this example). If not greater, the flow branches to acceptance output processing S108.
[0022]
[Reception output processing S108]
The central processing unit 500 retrieves the result of the determination of “acceptance” from the seventh storage unit 407 and outputs it from the output device 200. Then, the order inspection processing for the inspected value ends (S106).
[0023]
[Repeat processing S109]
The central processing unit 500 reduces the safety variable s stored in the fourth storage unit 404 by a predetermined value (1 in this example), and branches to the random number generation processing S102. Thereby, the above-described processing is repeated. This repetition is continued until it is determined that the order of the check product Q generated in step S103 is not a divisor of the order q, or until it is determined in step S107 that the value of the safety variable s is not greater than 1. .
[0024]
Next, effects of the present embodiment will be described.
[0025]
All inspected numerical sequence g i; (i = 1,2, ..., n) with respect to, if g i q + 1 mod p = g i is satisfied, always outputs "acceptance" in the present embodiment. This is obvious. If one in even g i q + 1 mod p ≠ g i becomes g i is present, the probability that the test product Q comprises a g i is 1/2. This is because it is impossible that Q q + 1 mod p = Q is satisfied both when the check product Q includes g i and when it does not include g i , assuming that the other elements constituting the check product are the same. Therefore, if g i q + 1 mod p ≠ g i becomes g i even one is present, with respect to the random number r which is chosen at random, the probability that Q q + 1 mod p = Q is satisfied, 1/2 because of less is there.
[0026]
When “accept” is output in this embodiment, it means that all the check products Q generated for the s random numbers satisfy Q q + 1 mod p = Q, and therefore at least one g i q + 1 mod p ≠ probability that g i becomes g i is present is less than or equal to 1/2 s. Thus, taking a sufficiently large safety variables s, the probability of missing the presence of g i q + 1 mod p ≠ g i becomes g i becomes negligibly small.
[0027]
In order to check g i q + 1 mod p = g i for n g i in the conventional method, modular exponentiation had to be performed n times. One modular exponentiation operation requires a modular multiplication of about 3/2 times the number of bits of q. Assuming that the number of bits of q is | q |, (3/2) | q | n multiplication remainders are required in total.
[0028]
On the other hand, in this embodiment, n / 2 multiplication remainders are required to generate the check product Q, and (3/2) | q | multiplication remainders are required to calculate Q q + 1. , {(1/2) n + (3/2) | q |} s multiplication remainders are required.
[0029]
Therefore, when n is sufficiently larger than | q |, that is, when many order tests need to be performed, and s <3 | q |, the present embodiment is more efficient than the conventional method. In reality, in the case of the electronic voting system described above, the number of order bits | q | is often 160 or more, and the safety variable s of about 40 is often sufficient. Under such conditions, the present embodiment is more effective when the numerical value sequence to be inspected includes 45 or more elements.
[0030]
【The invention's effect】
As described above, according to the present invention, it is possible to inspect the order of a large number of numerical values in a shorter time. The reason is that a plurality of data are treated collectively and inspected stochastically.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating an example of a computer to which the present invention has been applied.
FIG. 2 is a flowchart illustrating a flow of a process performed by an order inspection program.
[Explanation of symbols]
100 input device 200 output device 300 program storage device 400 memories 401 to 407 first to seventh storage means 500 central processing unit

Claims (6)

与えられた群上で複数の被検査値が与えられたとき、これらの値すべての位数がすべて与えられた値の約数であることを確認する方法であって、
群を定義する変数と、前記群の要素である複数の被検査値と、位数と、安全変数とが入力される、入力処理と、
前記複数の被検査値の中に一つでも位数が前記与えられた位数の約数でないものを含む場合には、0と有意に異なる確率でこれを検出する、検査処理と、
前記複数の被検査値の中に一つでも位数が前記与えられた位数の約数でないものが含まれることが検出されるに至るか、あるいは前記安全変数により指定される回数実行されるに至るまで、前記検査処理を繰り返し実行する繰り返し処理と、
前記繰り返し処理において、前記複数の被検査値の中に一つでも位数が前記与えられた位数の約数でないものが含まれることが検出された場合には「不受理」を、検出されない場合には「受理」を出力する出力処理と、
を含むことを特徴とする、複数の要素に対する確率的同時位数検査方法。
A method of verifying that when a plurality of test values are given on a given group, the order of all of these values is all a divisor of the given value,
Variables defining a group, a plurality of test values that are elements of the group, an order, and a safety variable are input, input processing,
In the case where at least one order is not a divisor of the given order in the plurality of inspected values, an inspection process of detecting this with a probability significantly different from 0,
It is detected that at least one of the plurality of values to be inspected includes a value which is not a divisor of the given order, or the number of times specified by the safety variable is executed. Up to, a repetitive process of repeatedly executing the inspection process,
In the iterative process, if it is detected that at least one of the plurality of values to be inspected includes an order that is not a divisor of the given order, a “rejection” is not detected. Output processing to output "acceptance" in the case,
A stochastic simultaneous order inspection method for a plurality of elements, comprising:
前記検査処理が、
乱数生成器により乱数を生成する乱数生成処理と、
前記乱数を用いて、前記複数の被検査値の各値について選択または非選択を決定し、選択された値すべての前記群上での積である検査積を計算する、検査積生成処理と、
前記検査積の位数が前記与えられた位数の約数でなければ、前記複数の被検査値の中に一つでも位数が前記与えられた位数の約数でないものが含まれると判断する、検査積位数判断処理と、
を含むことを特徴とする請求項1記載の複数の要素に対する確率的同時位数検査方法。
The inspection processing is
Random number generation processing for generating random numbers by a random number generator;
Using the random number, determine the selection or non-selection for each of the plurality of values to be inspected, calculate the inspection product which is the product of all the selected values on the group, inspection product generation processing,
If the order of the test product is not a divisor of the given order, and if any of the plurality of inspected values includes one whose order is not a divisor of the given order, Inspection stack number judgment processing to judge,
2. The method of claim 1, further comprising the step of:
複数の被検査値すべての位数が基準となる位数の約数であることをコンピュータにより検査する方法において、
a)群を定義する変数、前記群の要素である複数の被検査値、基準となる位数および安全変数を入力し、入力した群を定義する変数を第1の記憶手段に、入力した複数の被検査値を第2の記憶手段に、入力した基準となる位数を第3の記憶手段に、入力した安全変数を第4の記憶手段に、それぞれ記憶するステップ、
b)乱数を発生し、発生した乱数を第5の記憶手段に記憶するステップ、
c)第1の記憶手段から群を定義する変数を、第2の記憶手段から複数の被検査値を、第5の記憶手段から乱数をそれぞれ取得し、乱数の値に基づいて複数の被検査値の中から検査積生成に用いる被検査値を選択し、該選択した被検査値の前記群上での積である検査積を計算して、該計算した検査積を第6の記憶手段に記憶するステップ、
d)前記第1の記憶手段から群を定義する変数を、第3の記憶手段から基準となる位数を、第6の記憶手段から検査積をそれぞれ取得して、検査積の位数が基準となる位数の約数であるかどうかを判定し、判定結果を第7の記憶手段に記憶するステップ、
e)第7の記憶手段から判定結果を取り出し、検査積の位数が基準となる位数の約数でない旨の判定結果であれば検査不合格の旨を出力して処理を終了し、検査積の位数が基準となる位数の約数である旨の判定結果であれば、第4の記憶手段から安全変数を取り出し、予め定められた値以上か否かを判定し、予め定められた値以上でなければ、検査合格の旨を出力して処理を終了し、予め定められた値以上であれば第4の記憶手段に記憶された安全変数を所定値だけ減じてステップbに処理を戻すステップ、
を含むことを特徴とする、複数の要素に対する確率的同時位数検査方法。
In a method of checking by computer that all orders of a plurality of inspected values are divisors of a reference order,
a) A variable defining a group, a plurality of test values which are elements of the group, a standard order and a safety variable are input, and the variables defining the input group are input to a first storage means. Storing the inspected value in the second storage means, the input reference order in the third storage means, and the input safety variable in the fourth storage means.
b) generating a random number and storing the generated random number in a fifth storage unit;
c) A variable defining a group is obtained from the first storage means, a plurality of test values are obtained from the second storage means, and a random number is obtained from the fifth storage means, respectively. A test value to be used for test product generation is selected from the values, a test product which is a product of the selected test value on the group is calculated, and the calculated test product is stored in the sixth storage means. Memorizing step,
d) A variable defining a group is obtained from the first storage means, a reference order is obtained from the third storage means, and a check product is obtained from the sixth storage means. Determining whether the order is a divisor of the order, and storing the determination result in a seventh storage means;
e) The judgment result is taken out from the seventh storage means, and if the judgment result indicates that the order of the inspection product is not a divisor of the reference order, the result of the inspection is rejected and the processing is terminated. If the result of the determination is that the product order is a divisor of the reference order, the safety variable is retrieved from the fourth storage means, and it is determined whether or not the safety variable is equal to or greater than a predetermined value. If the value is not equal to or more than the predetermined value, the inspection is passed and the process is terminated, and if the value is equal to or greater than the predetermined value, the safety variable stored in the fourth storage means is reduced by a predetermined value and the process proceeds to step b. The step of returning,
A stochastic simultaneous order inspection method for a plurality of elements, comprising:
複数の被検査値すべての位数が基準となる位数の約数であることをコンピュータにより検査する方法において、
a)群を定義する変数、前記群の要素である複数の被検査値、基準となる位数および安全変数を入力するステップ、
b)入力した群を定義する変数を第1の記憶手段に、入力した複数の被検査値を第2の記憶手段に、入力した基準となる位数を第3の記憶手段に、入力した安全変数を第4の記憶手段に、それぞれ記憶するステップ、
c)乱数を発生するステップ、
d)発生した乱数を第5の記憶手段に記憶するステップ、
e)第1の記憶手段から群を定義する変数を、第2の記憶手段から複数の被検査値を、第5の記憶手段から乱数をそれぞれ取得し、乱数の値に基づいて複数の被検査値の中から検査積生成に用いる被検査値を選択し、該選択した被検査値の前記群上での積である検査積を計算するステップ、
f)計算した検査積を第6の記憶手段に記憶するステップ、
g)前記第1の記憶手段から群を定義する変数を、第3の記憶手段から基準となる位数を、第6の記憶手段から検査積をそれぞれ取得して、検査積の位数が基準となる位数の約数であるかどうかを判定するステップ、
h)判定結果を第7の記憶手段に記憶するステップ、
i)第7の記憶手段から判定結果を取り出し、検査積の位数が基準となる位数の約数でない旨の判定結果であれば、検査不合格の旨を出力して処理を終了し、それ以外は処理を継続するステップ、
j)第4の記憶手段から安全変数を取り出し、予め定められた値以上か否かを判定し、予め定められた値以上でなければ、検査合格の旨を出力して処理を終了し、それ以外は処理を継続するステップ、
k)第4の記憶手段に記憶された安全変数を所定値だけ減じ、ステップcに処理を戻すステップ、
を含むことを特徴とする、複数の要素に対する確率的同時位数検査方法。
In a method of checking by computer that all orders of a plurality of inspected values are divisors of a reference order,
a) inputting a variable defining a group, a plurality of test values which are elements of the group, a reference order and a safety variable;
b) The variables defining the input group are stored in the first storage means, the plurality of test values which are input are stored in the second storage means, and the input reference order is stored in the third storage means. Storing each of the variables in the fourth storage means;
c) generating a random number;
d) storing the generated random number in fifth storage means;
e) A variable defining a group is obtained from the first storage means, a plurality of test values are obtained from the second storage means, and a random number is obtained from the fifth storage means. Selecting a test value to be used for test product generation from the values, and calculating a test product that is a product of the selected test value on the group;
f) storing the calculated check product in a sixth storage means;
g) A variable defining a group is obtained from the first storage means, a reference order is obtained from the third storage means, and a check product is obtained from the sixth storage means. Determining whether the order is a divisor of
h) storing the determination result in a seventh storage means;
i) Retrieving the determination result from the seventh storage means, and if the determination result indicates that the order of the test product is not a divisor of the reference order, outputs a test failure and ends the processing; Otherwise, continue processing,
j) The safety variable is taken out from the fourth storage means, and it is determined whether or not the safety variable is equal to or more than a predetermined value. Steps to continue processing except for
k) reducing the safety variable stored in the fourth storage means by a predetermined value and returning to step c;
A stochastic simultaneous order inspection method for a plurality of elements, comprising:
複数の被検査値すべての位数が基準となる位数の約数であることを検査するプログラムであって、コンピュータに、
a)群を定義する変数、前記群の要素である複数の被検査値、基準となる位数および安全変数を入力し、入力した群を定義する変数を第1の記憶手段に、入力した複数の被検査値を第2の記憶手段に、入力した基準となる位数を第3の記憶手段に、入力した安全変数を第4の記憶手段に、それぞれ記憶するステップ、
b)乱数を発生し、発生した乱数を第5の記憶手段に記憶するステップ、
c)第1の記憶手段から群を定義する変数を、第2の記憶手段から複数の被検査値を、第5の記憶手段から乱数をそれぞれ取得し、乱数の値に基づいて複数の被検査値の中から検査積生成に用いる被検査値を選択し、該選択した被検査値の前記群上での積である検査積を計算して、該計算した検査積を第6の記憶手段に記憶するステップ、
d)前記第1の記憶手段から群を定義する変数を、第3の記憶手段から基準となる位数を、第6の記憶手段から検査積をそれぞれ取得して、検査積の位数が基準となる位数の約数であるかどうかを判定し、判定結果を第7の記憶手段に記憶するステップ、
e)第7の記憶手段から判定結果を取り出し、検査積の位数が基準となる位数の約数でない旨の判定結果であれば検査不合格の旨を出力して処理を終了し、検査積の位数が基準となる位数の約数である旨の判定結果であれば、第4の記憶手段から安全変数を取り出し、予め定められた値以上か否かを判定し、予め定められた値以上でなければ、検査合格の旨を出力して処理を終了し、予め定められた値以上であれば第4の記憶手段に記憶された安全変数を所定値だけ減じてステップbに処理を戻すステップ、
を実行させる位数検査プログラム。
A program for inspecting that the order of all of a plurality of inspected values is a divisor of a reference order.
a) A variable defining a group, a plurality of test values which are elements of the group, a standard order and a safety variable are input, and the variables defining the input group are input to a first storage means. Storing the inspected value in the second storage means, the input reference order in the third storage means, and the input safety variable in the fourth storage means.
b) generating a random number and storing the generated random number in a fifth storage unit;
c) A variable defining a group is obtained from the first storage means, a plurality of test values are obtained from the second storage means, and a random number is obtained from the fifth storage means, respectively. A test value to be used for test product generation is selected from the values, a test product which is a product of the selected test value on the group is calculated, and the calculated test product is stored in the sixth storage means. Memorizing step,
d) A variable defining a group is obtained from the first storage means, a reference order is obtained from the third storage means, and a check product is obtained from the sixth storage means. Determining whether the order is a divisor of the order, and storing the determination result in a seventh storage means;
e) The judgment result is taken out from the seventh storage means, and if the judgment result indicates that the order of the inspection product is not a divisor of the reference order, the result of the inspection is rejected and the processing is terminated. If the result of the determination is that the product order is a divisor of the reference order, the safety variable is retrieved from the fourth storage means, and it is determined whether or not the safety variable is equal to or greater than a predetermined value. If the value is not equal to or more than the predetermined value, the inspection is passed and the process is terminated, and if the value is equal to or greater than the predetermined value, the safety variable stored in the fourth storage means is reduced by a predetermined value and the process proceeds to step b. The step of returning,
Order check program to run.
複数の被検査値すべての位数が基準となる位数の約数であることを検査するプログラムであって、コンピュータに、
a)群を定義する変数、前記群の要素である複数の被検査値、基準となる位数および安全変数を入力するステップ、
b)入力した群を定義する変数を第1の記憶手段に、入力した複数の被検査値を第2の記憶手段に、入力した基準となる位数を第3の記憶手段に、入力した安全変数を第4の記憶手段に、それぞれ記憶するステップ、
c)乱数を発生するステップ、
d)発生した乱数を第5の記憶手段に記憶するステップ、
e)第1の記憶手段から群を定義する変数を、第2の記憶手段から複数の被検査値を、第5の記憶手段から乱数をそれぞれ取得し、乱数の値に基づいて複数の被検査値の中から検査積生成に用いる被検査値を選択し、該選択した被検査値の前記群上での積である検査積を計算するステップ、
f)計算した検査積を第6の記憶手段に記憶するステップ、
g)前記第1の記憶手段から群を定義する変数を、第3の記憶手段から基準となる位数を、第6の記憶手段から検査積をそれぞれ取得して、検査積の位数が基準となる位数の約数であるかどうかを判定するステップ、
h)判定結果を第7の記憶手段に記憶するステップ、
i)第7の記憶手段から判定結果を取り出し、検査積の位数が基準となる位数の約数でない旨の判定結果であれば、検査不合格の旨を出力して処理を終了し、それ以外は処理を継続するステップ、
j)第4の記憶手段から安全変数を取り出し、予め定められた値以上か否かを判定し、予め定められた値以上でなければ、検査合格の旨を出力して処理を終了し、それ以外は処理を継続するステップ、
k)第4の記憶手段に記憶された安全変数を所定値だけ減じ、ステップcに処理を戻すステップ、
を実行させる位数検査プログラム。
A program for inspecting that the order of all of a plurality of inspected values is a divisor of a reference order.
a) inputting a variable defining a group, a plurality of test values which are elements of the group, a reference order and a safety variable;
b) The variables defining the input group are stored in the first storage means, the plurality of test values which are input are stored in the second storage means, and the input reference order is stored in the third storage means. Storing each of the variables in the fourth storage means;
c) generating a random number;
d) storing the generated random number in fifth storage means;
e) A variable defining a group is obtained from the first storage means, a plurality of test values are obtained from the second storage means, and a random number is obtained from the fifth storage means. Selecting a test value to be used for test product generation from the values, and calculating a test product that is a product of the selected test value on the group;
f) storing the calculated check product in a sixth storage means;
g) A variable defining a group is obtained from the first storage means, a reference order is obtained from the third storage means, and a check product is obtained from the sixth storage means. Determining whether the order is a divisor of
h) storing the determination result in a seventh storage means;
i) Retrieving the determination result from the seventh storage means, and if the determination result indicates that the order of the test product is not a divisor of the reference order, outputs a test failure and ends the processing; Otherwise, continue processing,
j) The safety variable is taken out from the fourth storage means, and it is determined whether or not the safety variable is equal to or more than a predetermined value. Steps to continue processing except for
k) reducing the safety variable stored in the fourth storage means by a predetermined value and returning to step c;
Order check program to run.
JP2002176695A 2002-06-18 2002-06-18 Probabilistic simultaneous order inspection method and order inspection program for multiple elements Expired - Lifetime JP4122856B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002176695A JP4122856B2 (en) 2002-06-18 2002-06-18 Probabilistic simultaneous order inspection method and order inspection program for multiple elements

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002176695A JP4122856B2 (en) 2002-06-18 2002-06-18 Probabilistic simultaneous order inspection method and order inspection program for multiple elements

Publications (2)

Publication Number Publication Date
JP2004020984A true JP2004020984A (en) 2004-01-22
JP4122856B2 JP4122856B2 (en) 2008-07-23

Family

ID=31174929

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002176695A Expired - Lifetime JP4122856B2 (en) 2002-06-18 2002-06-18 Probabilistic simultaneous order inspection method and order inspection program for multiple elements

Country Status (1)

Country Link
JP (1) JP4122856B2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7171898B2 (en) 2004-02-19 2007-02-06 Speedline Technologies, Inc. Method and apparatus for performing operations within a stencil printer
US9370924B1 (en) 2015-03-25 2016-06-21 Illinois Tool Works Inc. Dual action stencil wiper assembly for stencil printer
US9370925B1 (en) 2015-03-25 2016-06-21 Illinois Tool Works Inc. Stencil printer having stencil shuttle assembly
US9370923B1 (en) 2015-04-07 2016-06-21 Illinois Tool Works Inc. Lift tool assembly for stencil printer
US10703089B2 (en) 2015-04-07 2020-07-07 Illinois Tool Works Inc. Edge lock assembly for a stencil printer

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7171898B2 (en) 2004-02-19 2007-02-06 Speedline Technologies, Inc. Method and apparatus for performing operations within a stencil printer
US9370924B1 (en) 2015-03-25 2016-06-21 Illinois Tool Works Inc. Dual action stencil wiper assembly for stencil printer
US9370925B1 (en) 2015-03-25 2016-06-21 Illinois Tool Works Inc. Stencil printer having stencil shuttle assembly
US9370923B1 (en) 2015-04-07 2016-06-21 Illinois Tool Works Inc. Lift tool assembly for stencil printer
US9868278B2 (en) 2015-04-07 2018-01-16 Illinois Tool Works Inc. Lift tool assembly for stencil printer
US10703089B2 (en) 2015-04-07 2020-07-07 Illinois Tool Works Inc. Edge lock assembly for a stencil printer

Also Published As

Publication number Publication date
JP4122856B2 (en) 2008-07-23

Similar Documents

Publication Publication Date Title
Vazirani et al. Certifiable quantum dice: or, true random number generation secure against quantum adversaries
Tauman Kalai et al. Delegation for bounded space
KR20170139067A (en) Generation of cryptographic function parameters from compact source code
US20220360426A1 (en) Methods for protecting computer hardware from cyber threats
Buchmann et al. Creating cryptographic challenges using multi-party computation: The LWE challenge
KR20100113130A (en) Countermeasure method and devices for asymmetric cryptography
US20180034636A1 (en) Method and system for creating public randomness
CN110493201A (en) A kind of processing method of data, device and system
Marquardt et al. Pseudorandom number generators based on random covers for finite groups
JP5526284B2 (en) Proxy calculation system, method, request apparatus, and program
CN113055189B (en) SM2 digital signature verification failure reason judgment method, device, equipment and medium
CN105912834A (en) An apparatus and method for checking the entropy of a sequence of random numbers
JP2004020984A (en) Method for probabilistic simultaneous order inspection of a plurality of elements and program for order inspecting
CN105991289A (en) Side channel energy analysis method and device of SM3 cipher algorithm
CN112532374A (en) Method for detecting SILC authentication encryption algorithm to resist differential fault attack
CN110995438A (en) Non-interactive zero-knowledge proof method, system and storage medium
Raddum et al. MRHS solver based on linear algebra and exhaustive search
Palekha et al. Cross-platforming web-application of electronic on-line voting system on the elections of any level
Gopalakrishnan A study of Correlation-immune, resilient and related cryptographic functions
Bojanova et al. Randomness classes in bugs framework (bf): True-random number bugs (trn) and pseudo-random number bugs (prn)
Chapman Using Graphic Based Systems to Improve Cryptographic Algorithms
Seck et al. A Side-Channel Attack Against Classic McEliece When Loading the Goppa Polynomial
Smart et al. Investigations of fully homomorphic encryption (ifhe)
Metzgar RSA cryptosystem: an analysis and python simulator
Rosén Experimental Evaluation of Kleptographic Backdoors in LWE-based KEMs

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050422

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080312

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: 20080408

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: 20080421

R150 Certificate of patent or registration of utility model

Ref document number: 4122856

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110516

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110516

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120516

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120516

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130516

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20140516

Year of fee payment: 6

EXPY Cancellation because of completion of term