JP4122856B2 - Probabilistic simultaneous order inspection method and order inspection program for multiple elements - Google Patents

Probabilistic simultaneous order inspection method and order inspection program for multiple elements Download PDF

Info

Publication number
JP4122856B2
JP4122856B2 JP2002176695A JP2002176695A JP4122856B2 JP 4122856 B2 JP4122856 B2 JP 4122856B2 JP 2002176695 A JP2002176695 A JP 2002176695A JP 2002176695 A JP2002176695 A JP 2002176695A JP 4122856 B2 JP4122856 B2 JP 4122856B2
Authority
JP
Japan
Prior art keywords
storage means
order
variable
group
product
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2002176695A
Other languages
Japanese (ja)
Other versions
JP2004020984A (en
Inventor
潤 古川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to 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

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】
本発明はこのような事情に鑑みて提案されたものであり、その目的は、多数の数値の位数をより少ない時間で検査する方法を提供することにある。
【0009】
【課題を解決するための手段】
本発明の第の複数の要素に対する確率的同時位数検査方法は、複数の被検査値すべての位数が基準となる位数の約数であることをコンピュータにより検査する方法において、以下のステップを含むことを特徴とする。
a)群を定義する変数、前記群の要素である複数の被検査値、基準となる位数および安全変数を入力し、入力した群を定義する変数を第1の記憶手段に、入力した複数の被検査値を第2の記憶手段に、入力した基準となる位数を第3の記憶手段に、入力した安全変数を第4の記憶手段に、それぞれ記憶するステップ
b)乱数を発生し、発生した乱数を第5の記憶手段に記憶するステップ
c)第1の記憶手段から群を定義する変数を、第2の記憶手段から複数の被検査値を、第5の記憶手段から乱数をそれぞれ取得し、乱数の値に基づいて複数の被検査値の中から検査積生成に用いる被検査値を選択し、該選択した被検査値の前記群上での積である検査積を計算して、該計算した検査積を第6の記憶手段に記憶するステップ
d)前記第1の記憶手段から群を定義する変数を、第3の記憶手段から基準となる位数を、第6の記憶手段から検査積をそれぞれ取得して、検査積の位数が基準となる位数の約数であるかどうかを判定し、判定結果を第7の記憶手段に記憶するステップ
e)第7の記憶手段から判定結果を取り出し、検査積の位数が基準となる位数の約数でない旨の判定結果であれば検査不合格の旨を出力して処理を終了し、検査積の位数が基準となる位数の約数である旨の判定結果であれば、第4の記憶手段から安全変数を取り出し、予め定められた値以上か否かを判定し、予め定められた値以上でなければ、検査合格の旨を出力して処理を終了し、予め定められた値以上であれば第4の記憶手段に記憶された安全変数を所定値だけ減じてステップbに処理を戻すステップ
【0010】
本発明の第の複数の要素に対する確率的同時位数検査方法は、複数の被検査値すべての位数が基準となる位数の約数であることをコンピュータにより検査する方法において、以下のステップを含むことを特徴とする。
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に記憶する。
Qq+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】
全ての被検査数値列gi;(i=1、2、…、n)に関して、gi q+1 mod p =giが成り立つならば、本実施例では必ず「受理」を出力する。これは明らかである。一つでもgi q+1 mod p ≠giなるgiが存在する場合、各検査積Qがgiを含む確率は1/2である。なぜなら、検査積を構成するその他の要素を同じとして、検査積Qがgiを含む場合と含まない場合の両方の場合に、共にQq+1 mod p =Qが成り立つことは有り得ない。よって、一つでもgi q+1 mod p ≠giなるgiが存在する場合、無作為に選ばれた乱数rに関して、Qq+1 mod p =Qが成り立つ確立は、1/2以下であるからである。
【0026】
本実施例において「受理」を出力した場合は、s個の乱数に関して生成された検査積Q全てが、Qq+1 mod p =Qを満たしたと言うことであるので、一つでもgi q+1 mod p≠giなるgiが存在する確率は1/2以下である。従って、安全変数sを十分に大きくとれば、gi q+1 mod p ≠giなるgiの存在を見逃す確率は無視できるほど小さくなる。
【0027】
従来の方法でn個のgiに関して、gi q+1 mod p=giを確認するには、冪乗剰余算を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]
BACKGROUND OF THE INVENTION
The present invention relates to a method for checking that the order of a plurality of data is a specific value, and more particularly to a method for determining a result at high speed by handling a plurality of data collectively.
[0002]
[Prior art]
In many public key cryptosystem applications, the order of numerical values constituting a ciphertext may be checked in order to guarantee security. The numerical order here means the order as a set of cyclic groups generated by the numerical value, and the numerical order check is a value for which the numerical order is assumed. Is to inspect. The order will be described with a simple example. Assuming that (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 so on, and is composed of six elements of 3, 2, 6, 4, 5, and 1. We say that the order of 6 as the 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, opportunities to handle a huge number of ciphertexts at once, such as cryptographic applications such as electronic voting, are increasing. For this reason, it is required to quickly complete the numerical order inspection in these applications. A specific example where the order check is required 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 cryptosystem to a counting station. In the counting, first, the sent voting ciphertext is jointly decrypted by a plurality of tabulators, and then the decrypted voting text is tabulated. After the series of aggregation operations, the “verifiable Mix-net” generates and outputs data that proves that the series of operations has been performed correctly. This data is hereinafter referred to as “certification data”. By the way, even if the counting result is not correct, the fact cannot be easily understood only from the set of the encrypted voting text and the set of the decrypted voting text. However, if you have the key for decryption, you can easily see if the results are correct. This is because all voting ciphertexts should be decrypted with this key and the two sets compared. The proof data is data that makes it possible to know whether the aggregation result is valid in this way, but the correspondence between the voting ciphertext and the decryption result is not known from the proof data, not the key itself (that is, the voting data) Data that does not break anonymity). In the electronic voting using the “verifiable Mix-net”, it is determined by using a special algorithm from the voting ciphertext, the decrypted voting text, and the certification data that there is no fraud in the vote counting. In this algorithm, especially when “Verifiable Mix-net” uses El Gamal ciphertext, the ciphertext, the decrypted voting text, and the operation of checking the order of the values constituting the proof data may be included. Many. This is because the Elgamal ciphertext can identify ciphertexts having different orders, and unless only ciphertexts having the same order are selected and used, the security of the electronic voting system decreases.
[0004]
There are the following methods for conventional order checking. First, to order of the numeric g to inspect that a divisor of q is a number g on the group this value g is defined, a g q + 1 is a q + 1 square of numerical g calculate. That is, the defined group is (Z / pZ) If * , g q + 1 mod p is calculated. If the 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 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. Especially when performing large-scale electronic voting using Mix-net, the amount of ciphertext that needs to be inspected for the number of orders is enormous, requiring a lot of time and making the system difficult to operate. .
[0006]
The present invention has been proposed in view of such circumstances, and an object thereof is to provide a method for inspecting the order of a large number of numerical values in a shorter time.
[0009]
[Means for Solving the Problems]
The probabilistic simultaneous order checking method for the plurality of elements according to the first aspect of the present invention is a method for checking by computer that the order of all of a plurality of values to be inspected is a divisor of a reference order. Including steps.
a) A variable that defines a group, a plurality of values to be inspected that are elements of the group, a reference order, and a safety variable are input, and a variable that defines the input group is input to the first storage means. Step b) generating random numbers, storing the inspected value in the second storage means, the inputted reference order in the third storage means, and the inputted safety variable in the fourth storage means, Step 5) storing the generated random number in the fifth storage means. C) Variables defining groups from the first storage means, a plurality of values to be inspected from the second storage means, and 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 a random value, and calculate a test product that is a product of the selected test values on the group A step of storing the calculated check product in a sixth storage means; d) the first storage; The variable defining the group from the stage, the reference order from the third storage means, and the check product from the sixth storage means, respectively, and the order of the check product is the divisor of the order Step e) The determination result is taken out from the seventh storage means, and the order of the check product is not a divisor of the reference order. If it is a determination result, a test failure is output and the process is terminated. If the determination result indicates that the order of the inspection product is a divisor of the reference order, the fourth storage means can safely Take out the variable, determine whether or not it is greater than or equal to a predetermined value, and if it is not greater than or equal to the predetermined value, output a test pass result and terminate the process, and if greater than or equal to the predetermined value A step of reducing the safety variable stored in the storage means 4 by a predetermined value and returning the process to step b. 10]
The probabilistic simultaneous order checking method for a plurality of elements of the second aspect of the present invention is a method for checking by computer that the order of all of a plurality of values to be inspected is a divisor of a reference order. Including steps.
a) a step of inputting a variable defining a group, a plurality of values to be inspected as elements of the group, a reference order and a safety variable; b) inputting a variable defining the input group into the first storage means; Step c) generating random numbers, storing the plurality of inspected values in the second storage means, the inputted reference order in the third storage means, and the inputted safety variable in the fourth storage means D) storing the generated random number in the fifth storage means; e) storing a variable defining the group from the first storage means; a plurality of inspected values from the second storage means; and a fifth storage means. A random number is obtained from each of the test values, a test value to be used for generating a test product is selected from a plurality of test values based on the value of the random number, and a test product that is a product of the selected test values on the group Step f) The calculated check product is stored in the sixth storage means. Step 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. Step h) for determining whether or not is a divisor of a reference order Step i) Store the determination result in the seventh storage means Step i) Take out the determination result from the seventh storage means, and determine the order of the check product If it is a determination result indicating that it is not a divisor of the order of the reference, a test failure is output and the process is terminated. Otherwise, the process is continued. Step j) A safety variable is stored from the fourth storage means. Take out, determine whether or not it is greater than or equal to a predetermined value, and if it is not greater than or equal to a predetermined value, output that the inspection has passed and end the process, otherwise continue the process step k) fourth The safety variable stored in the storage means is reduced by a predetermined value and Step to return the process to the c [0011]
[Action]
In the present invention, if there is a value in which the order is not a divisor of the given order, if the safety variable is sufficiently large, the probability is sufficiently close to 1, and so on. It 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 checking the order is sufficiently larger than the number of bits of the order, the order of the order according to the conventional method is The order can be inspected more efficiently than the inspection. For example, if the number of bits of the order is a number of 160 or more, the safety variable is about 40, and a sufficiently accurate inspection is possible. In this case, if the inspected numeric string consists of 45 or more elements, The calculation cost is reduced compared to the prior art.
[0012]
DETAILED DESCRIPTION OF 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 that stores input data, and a communication device that receives data transmitted through a communication line. The output device 200 includes a display device, a printer, a file device that stores output data, a communication device that transmits output data through a communication line, and the like. The program storage device 300 is composed of a magnetic disk or the like for storing software such as a basic program of the computer and an order checking program. The memory 400 is a storage unit for storing various types of data required in the course of the order inspection process, and includes a RAM or the like. In the case of the present embodiment, the memory 400 is provided with first to seventh storage means 401 to 407 configured by files, tables, and the like. The central processing unit 500 controls the entire computer by executing a program stored in the program storage device 300. In particular, the order checking method according to the present invention is executed by executing the order checking program stored in the program storage device 300.
[0014]
Next, with reference to FIG. 2, the flow of processing by the order checking program will be described.
[0015]
[Assumption]
Let p be an integer, φ (p) be the total number of positive integers that are relatively prime with p among positive integers less than p, and q be an integer q | φ (p), that is, an integer that is divisible by φ (p). To explain this meaning with a simple example, when p = 15, positive integers relatively prime to p among positive integers less than p are 1,2,4,7,8,11,13,14. Since there are eight in total, φ (p) = 8, and q, which is an integer divisible by 8, is 1,2,4,8. Of the plurality of values q, the order check is performed using a specific value q 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 prior art, the variable p corresponds to a variable that defines a group used by public key cryptography. The plurality of values to be inspected correspond to the vote that is encrypted and voted, the vote that has been decrypted, the element that constitutes the data that proves that the aggregation process has been performed normally, and the reference order q is It corresponds to the order determined for use in the electronic voting system. 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 uses the random number generation means to generate an n-bit random number r equal to the number n of values to be inspected, and stores it in the fifth storage means 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 receives from the first, second, and fifth storage means 401, 402, and 405 a variable p that defines a group, n inspected values g 1 , g 2 ,..., G n , n bits Random number r is obtained, and n number of values to be inspected g 1 , g 2 ,..., G n and each bit of the random number are associated one-to-one, the value of the corresponding bit of the random number r is Only test values that are predetermined values (for example, 1) are selected, and a test product Q that is a product of these test values on the group is calculated and stored in the sixth storage means 406. The calculation of the inspection product Q is explained by a simple example. When the group is (Z / 7Z) * and the two selected inspection values g 1 and g 2 are 3 and 4, the group of those inspection values The check product Q, which is the product above, is calculated as 3 * 4 mod 7 = 5.
[0019]
[Inspection product number determination processing S104]
The central processing unit 500 obtains the variable p defining the group, the reference order q, 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 formula is satisfied, the order of all the inspected values from which the inspection product Q is calculated is a divisor of the order q. Processing branches to step S107. On the other hand, when the above formula does not hold, the value to be inspected that is the basis of the calculation of the inspection product Q includes at least the value to be inspected that is not a divisor of the order q. The determination result is “not accepted”, and the process branches to the unacceptable output process S105.
[0020]
[Unaccepted output processing S105]
The central processing unit 500 extracts the determination result of “non-acceptance” from the seventh storage unit 407 and outputs it from the output device 200. Then, the order inspection process for the value to be inspected is terminated (S106).
[0021]
[Safety variable judgment processing S107]
The central processing unit 500 extracts the safety variable s from the fourth storage unit 404, determines whether it is greater than a predetermined value (1 in this example), and if greater than 1, branches to the repetitive processing S109, 1 If not, the process branches to the acceptance output process S108.
[0022]
[Accepted output processing S108]
The central processing unit 500 takes out the determination result of “acceptance” from the seventh storage unit 407 and outputs it from the output device 200. Then, the order inspection process for the value to be inspected is terminated (S106).
[0023]
[Repetition processing S109]
The central processing unit 500 decrements 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 process mentioned above is repeated. This repetition is continued until it is determined that the order of the check product Q generated in the process S103 is not a divisor of the order q, or the process S107 determines that the value of the safety variable s is not greater than 1. .
[0024]
Next, the effect of the present embodiment will be described.
[0025]
In this embodiment, “accept” is always output if g i q + 1 mod p = g i holds for all the inspected numerical sequences g i ; (i = 1, 2,..., N). This is clear. 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 Q q + 1 mod p = Q cannot be established in both cases where the check product Q includes g i and does not include the other elements constituting the check product. 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 or less Because.
[0026]
If outputs "acceptance" in the present embodiment, all test product Q generated for s random numbers is, Q q + 1 so mod p = is to say that satisfying Q, even one g i q probability the p-to Mod ≠ Tasu1 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 confirm g i q + 1 mod p = g i for n g i by the conventional method, the power-residue calculation must be performed n times. In addition, one power-residue calculation requires a multiplication remainder that is approximately 3/2 times the number of bits of q. If the number of bits in q is | q |, a total of (3/2) | q | n multiplication remainders is required.
[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 . Overall, {(1/2) n + (3/2) | q |} s multiplication remainders are required.
[0029]
Therefore, when n is sufficiently larger than | q |, that is, when many orders need to be checked, and when s <3 | q |, this embodiment is more efficient than the conventional method. In reality, in the case of the above-described electronic voting system or the like, the number of order bits | q | is often a number of 160 or more, and a safety variable s of about 40 is often sufficient. Under such conditions, the present embodiment is more effective when the numerical value string to be inspected is composed of 45 or more elements.
[0030]
【The invention's effect】
As described above, according to the present invention, it is possible to check the order of a large number of numerical values in a shorter time. The reason is that a plurality of data are handled collectively and are inspected stochastically.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating an example of a computer to which the present invention is applied.
FIG. 2 is a flowchart showing a flow of processing by an order inspection program.
[Explanation of symbols]
100 ... Input device
200 ... Output device
300 ... Program storage device
400 ... memory
401 to 407 ... 1st to 7th storage means
500 ... Central processing unit

Claims (4)

複数の被検査値すべての位数が基準となる位数の約数であることをコンピュータにより検査する方法において、
a)群を定義する変数、前記群の要素である複数の被検査値、基準となる位数および安全変数を入力し、入力した群を定義する変数を第1の記憶手段に、入力した複数の被検査値を第2の記憶手段に、入力した基準となる位数を第3の記憶手段に、入力した安全変数を第4の記憶手段に、それぞれ記憶するステップ、
b)乱数を発生し、発生した乱数を第5の記憶手段に記憶するステップ、
c)第1の記憶手段から群を定義する変数を、第2の記憶手段から複数の被検査値を、第5の記憶手段から乱数をそれぞれ取得し、乱数の値に基づいて複数の被検査値の中から検査積生成に用いる被検査値を選択し、該選択した被検査値の前記群上での積である検査積を計算して、該計算した検査積を第6の記憶手段に記憶するステップ、
d)前記第1の記憶手段から群を定義する変数を、第3の記憶手段から基準となる位数を、第6の記憶手段から検査積をそれぞれ取得して、検査積の位数が基準となる位数の約数であるかどうかを判定し、判定結果を第7の記憶手段に記憶するステップ、
e)第7の記憶手段から判定結果を取り出し、検査積の位数が基準となる位数の約数でない旨の判定結果であれば検査不合格の旨を出力して処理を終了し、検査積の位数が基準となる位数の約数である旨の判定結果であれば、第4の記憶手段から安全変数を取り出し、予め定められた値以上か否かを判定し、予め定められた値以上でなければ、検査合格の旨を出力して処理を終了し、予め定められた値以上であれば第4の記憶手段に記憶された安全変数を所定値だけ減じてステップbに処理を戻すステップ、
を含むことを特徴とする、複数の要素に対する確率的同時位数検査方法。
In the method of inspecting by a computer that the order of all the inspected values is a divisor of the reference order,
a) A variable that defines a group, a plurality of values to be inspected that are elements of the group, a reference order, and a safety variable are input, and a variable that defines the input group is input to the first storage means. Storing the value to be inspected in the second storage means, the inputted reference order in the third storage means, and the inputted safety variable in the fourth storage means,
b) generating a random number and storing the generated random number in a fifth storage means;
c) Obtain a variable defining a group from the first storage means, a plurality of values to be inspected from the second storage means, and a random number from the fifth storage means. A test value used for generating a test product is selected from the values, a test product that 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. Remembering step,
d) The variables defining the group are obtained from the first storage means, the reference order is obtained from the third storage means, and the 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 the seventh storage means;
e) The determination result is taken out from the seventh storage means, and if it is a determination result indicating that the order of the inspection product is not a divisor of the reference order, an inspection failure is output and the process is terminated. If the determination result indicates that the order of the product is a divisor of the reference order, the safety variable is extracted from the fourth storage means, and it is determined whether or not it is greater than or equal to a predetermined value. If it is not equal to or greater than the predetermined value, a test pass is output and the process is terminated. If the value is equal to or greater than a predetermined value, the safety variable stored in the fourth storage means is reduced by a predetermined value and the process proceeds to step b. Step back,
A probabilistic simultaneous order checking method for a plurality of elements.
複数の被検査値すべての位数が基準となる位数の約数であることをコンピュータにより検査する方法において、
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 the method of inspecting by a computer that the order of all the inspected values is a divisor of the reference order,
a) inputting a variable defining a group, a plurality of inspected values that are elements of the group, a reference order and a safety variable;
b) A safety that is input to the first storage means, a variable that defines the input group, a plurality of input test values to the second storage means, and an input reference order to the third storage means Storing each variable in a fourth storage means;
c) generating a random number;
d) storing the generated random number in the fifth storage means;
e) Obtain a variable defining a group from the first storage means, a plurality of values to be inspected from the second storage means, and a random number 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 the sixth storage means;
g) The variable defining the group is obtained from the first storage means, the reference order is obtained from the third storage means, and the check product is obtained from the sixth storage means. Determining whether the order is a divisor of
h) storing the determination result in the seventh storage means;
i) The determination result is taken out from the seventh storage means, and if it is a determination result that the order of the check product is not a divisor of the reference order, a test failure is output and the processing is terminated. Otherwise, continue the process,
j) The safety variable is taken out from the fourth storage means, and it is determined whether or not it is equal to or greater than a predetermined value. Steps to continue processing, except
k) reducing the safety variable stored in the fourth storage means by a predetermined value and returning the process to step c;
A probabilistic simultaneous order checking method for a plurality of elements.
複数の被検査値すべての位数が基準となる位数の約数であることを検査するプログラムであって、コンピュータに、
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 the inspected values is a divisor of the reference order,
a) A variable that defines a group, a plurality of values to be inspected that are elements of the group, a reference order, and a safety variable are input, and a variable that defines the input group is input to the first storage means. Storing the value to be inspected in the second storage means, the inputted reference order in the third storage means, and the inputted safety variable in the fourth storage means,
b) generating a random number and storing the generated random number in a fifth storage means;
c) Obtain a variable defining a group from the first storage means, a plurality of values to be inspected from the second storage means, and a random number from the fifth storage means. A test value used for generating a test product is selected from the values, a test product that 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. Remembering step,
d) The variables defining the group are obtained from the first storage means, the reference order is obtained from the third storage means, and the 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 the seventh storage means;
e) The determination result is taken out from the seventh storage means, and if it is a determination result indicating that the order of the inspection product is not a divisor of the reference order, an inspection failure is output and the process is terminated. If the determination result indicates that the order of the product is a divisor of the reference order, the safety variable is extracted from the fourth storage means, and it is determined whether or not it is greater than or equal to a predetermined value. If it is not equal to or greater than the predetermined value, a test pass is output and the process is terminated. If the value is equal to or greater than a predetermined value, the safety variable stored in the fourth storage means is reduced by a predetermined value and the process proceeds to step b. Step back,
An order checking program that executes
複数の被検査値すべての位数が基準となる位数の約数であることを検査するプログラムであって、コンピュータに、
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 the inspected values is a divisor of the reference order,
a) inputting a variable defining a group, a plurality of inspected values that are elements of the group, a reference order and a safety variable;
b) A safety that is input to the first storage means, a variable that defines the input group, a plurality of input test values to the second storage means, and an input reference order to the third storage means Storing each variable in a fourth storage means;
c) generating a random number;
d) storing the generated random number in the fifth storage means;
e) Obtain a variable defining a group from the first storage means, a plurality of values to be inspected from the second storage means, and a random number 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 the sixth storage means;
g) The variable defining the group is obtained from the first storage means, the reference order is obtained from the third storage means, and the check product is obtained from the sixth storage means. Determining whether the order is a divisor of
h) storing the determination result in the seventh storage means;
i) The determination result is taken out from the seventh storage means, and if it is a determination result that the order of the check product is not a divisor of the reference order, a test failure is output and the processing is terminated. Otherwise, continue the process,
j) The safety variable is taken out from the fourth storage means, and it is determined whether or not it is equal to or greater than a predetermined value. Steps to continue processing, except
k) reducing the safety variable stored in the fourth storage means by a predetermined value and returning the process to step c;
An order checking program that executes
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 JP2004020984A (en) 2004-01-22
JP4122856B2 true 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)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7013802B2 (en) 2004-02-19 2006-03-21 Speedline Technologies, Inc. Method and apparatus for simultaneous inspection and cleaning of a stencil
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

Also Published As

Publication number Publication date
JP2004020984A (en) 2004-01-22

Similar Documents

Publication Publication Date Title
Manuel Classification and generation of disturbance vectors for collision attacks against SHA-1
CN106941407B (en) Method and device for dynamically encrypting platform data
US20220360426A1 (en) Methods for protecting computer hardware from cyber threats
CN101925875A (en) Countermeasure method and devices for asymmetric cryptography
CN101911009B (en) Countermeasure method and devices for asymmetrical cryptography with signature diagram
US20240097883A1 (en) Systems and computer-implemented methods for generating pseudo random numbers
Raddum et al. Solving multiple right hand sides linear equations
CN110995438B (en) Non-interactive zero-knowledge proof method, system and storage medium
Junod Cryptographic secure pseudo-random bits generation: The Blum-Blum-Shub generator
CN113055189B (en) SM2 digital signature verification failure reason judgment method, device, equipment and medium
JP4122856B2 (en) Probabilistic simultaneous order inspection method and order inspection program for multiple elements
CN105912834A (en) An apparatus and method for checking the entropy of a sequence of random numbers
Luo et al. Differential fault analysis of SHA-3 under relaxed fault models
Kapalova et al. Security analysis of an encryption scheme based on nonpositional polynomial notations
CN105991289A (en) Side channel energy analysis method and device of SM3 cipher algorithm
US20060120528A1 (en) Method of constructing hyperelliptic curves suitable for cryptographic purposes and cryptographic apparatus using such a method
US20030163760A1 (en) Information processing method
Nowak On formal verification of arithmetic-based cryptographic primitives
US7257224B2 (en) Cryptographical pseudo-random number generation apparatus and program
Saffar et al. Fault tolerant non-linear techniques for scalar multiplication in ECC
Neacșu The Effectiveness of the Statistical Testing of Randomness in a Complete Cryptographic System
Metzgar RSA cryptosystem: an analysis and python simulator
Smart et al. Investigations of fully homomorphic encryption (ifhe)
Okazaki et al. Formal definition of probability on finite and discrete sample space for proving security of cryptographic systems using Mizar
Mondal et al. Improved Fault Analysis on Subterranean 2.0

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