JP4398904B2 - Random number sequence generation device, random number sequence generation method, arithmetic processing device, arithmetic processing method and program - Google Patents

Random number sequence generation device, random number sequence generation method, arithmetic processing device, arithmetic processing method and program Download PDF

Info

Publication number
JP4398904B2
JP4398904B2 JP2005180747A JP2005180747A JP4398904B2 JP 4398904 B2 JP4398904 B2 JP 4398904B2 JP 2005180747 A JP2005180747 A JP 2005180747A JP 2005180747 A JP2005180747 A JP 2005180747A JP 4398904 B2 JP4398904 B2 JP 4398904B2
Authority
JP
Japan
Prior art keywords
random number
bit
number sequence
generated
significant bit
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 - Fee Related
Application number
JP2005180747A
Other languages
Japanese (ja)
Other versions
JP2007004268A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2005180747A priority Critical patent/JP4398904B2/en
Publication of JP2007004268A publication Critical patent/JP2007004268A/en
Application granted granted Critical
Publication of JP4398904B2 publication Critical patent/JP4398904B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、乱数系列を生成する乱数系列生成装置及び乱数系列生成方法、べき乗剰余算やスカラー倍算などの演算を行う演算処理装置及び演算処理方法、並びにプログラムに関する。   The present invention relates to a random number sequence generation device and a random number sequence generation method for generating a random number sequence, an arithmetic processing device and an arithmetic processing method for performing operations such as exponentiation and scalar multiplication, and a program.

公開鍵暗号方式やディジタル署名方式では、べき乗剰余算やスカラー倍算といった演算を用いるものが多く存在する。べき乗剰余算とは、y=xk mod nのような演算であり、ElGamal暗号やRSA暗号などに用いられている。スカラー倍算とは、楕円曲線暗号系に用いられる演算で、楕円曲線上の、べき倍算Y=kXのことを言う。 Many public key cryptosystems and digital signature schemes use operations such as exponentiation and scalar multiplication. The power-residue calculation is an operation such as y = x k mod n and is used for ElGamal encryption, RSA encryption, and the like. Scalar multiplication is an operation used in the elliptic curve cryptosystem and means power multiplication Y = kX on the elliptic curve.

公開鍵暗号では1024ビットなどの大きなデータを扱うため、NAFなどの符号付整数を利用した冗長表現(バイナリ表現など)と、バイナリ法(Binary法(Double-and-ADD method))やwindow法などといったテクニックを組み合わせることによって、べき乗剰余算やスカラー倍算を効率的に行う様々な方法が知られている。   Since public key cryptography handles large data such as 1024 bits, redundant representation (binary representation, etc.) using signed integers such as NAF, binary method (Double-and-ADD method), window method, etc. Various methods for efficiently performing exponentiation and scalar multiplication by combining such techniques are known.

以下に、バイナリ法のアルゴリズムを示す。
[バイナリ法]
(Step0) Input k,x,n
(Step1) 整数kを、k=Σ(ki・2i)と2進数表現する(i=0〜l−1につきそれぞれkiを求める)。ここで、ki∈T,T=[0,1]とする。
(Step2) y=1
(Step3) i=l−1から0までの間、次を繰り返す。
(Step3−1) y=y2 (mod n)
(Step3−2) ki=1ならば、y=y・x (mod n)
(Step4) Output y(=xk mod n)
バイナリ法などのビットの0,1の値に依存した演算アルゴリズムでは、べき指数を2進数表現したときのハミング重みが小さいほど計算量が少なくなることが分かっている。
The binary algorithm is shown below.
[Binary method]
(Step 0) Input k, x, n
(Step 1) The integer k is expressed as a binary number as k = Σ (k i · 2 i ) (k i is obtained for each of i = 0 to l−1). Here, k i εT, T = [0, 1].
(Step 2) y = 1
(Step 3) The following is repeated from i = 1 to 1 to 0.
(Step 3-1) y = y 2 (mod n)
(Step 3-2) If k i = 1, y = y · x (mod n)
(Step 4) Output (= x k mod n)
It has been found that, in an arithmetic algorithm that depends on the values of bits 0 and 1 such as the binary method, the amount of calculation decreases as the Hamming weight when the exponent is expressed in binary notation is small.

上記のようなバイナリ表現に関しては、符号無し2進数表現(T=[0,1])は一意的に決まるが、符号付2進数表現(T=[−1,0,1])は一意的には決定しないという性質がある。なお、以下で用いる“-1”は“−1”を表すものとする。 Regarding the binary representation as described above, the unsigned binary representation (T = [0, 1]) is uniquely determined, but the signed binary representation (T = [-1, 0, 1]) is unique. Has the property of not deciding. Incidentally, used in the following "- 1" denote the "-1".

例えば、k=181のとき、T=[0,1]ならば、181=10110101である(一意的である)。これに対して、T=[−1,0,1]ならば、181=1-110-11-11-1=1-11-110101=…である(一意的でない)。 For example, when k = 181 and T = [0, 1], 181 = 10110101 (unique). In contrast, T = [- 1, 0, 1], then the 181 = 1 - 110 - 11 - 11 - 1 = 1 - 11 - 110101 = ... is (not unique).

この符号付2進数表現において、非ゼロ係数の数を最小にする方法として、NAF表現が知られている。   In this signed binary number representation, NAF representation is known as a method for minimizing the number of non-zero coefficients.

NAF表現とは、全てのi≧0に対してki×ki+1=0となるような符号付2進数表現のことを言い、任意の正整数に変換アルゴリズムを作用させることで一意的に表現することができる。NAF変換アルゴリズムの実装方法はいくつか考えられる。 The NAF expression means a signed binary expression such that k i × k i + 1 = 0 for all i ≧ 0, and is unique by applying a conversion algorithm to an arbitrary positive integer. Can be expressed in There are several possible methods for implementing the NAF conversion algorithm.

以下に、基本的なNAF変換アルゴリズムを示す。
[NAF変換アルゴリズム]
Input n
k←n
S←< >
while k>0
If k:odd u←2−(k mod 4)
else u←0
k←k−u
Prepend u to S
k←k/2
end while
Output S
例えば、正整数n=181のとき、符号付2進数表現S=10-10-10101が得られる。
The basic NAF conversion algorithm is shown below.
[NAF conversion algorithm]
Input n
k ← n
S ← <>
while k> 0
If k: odd u ← 2- (k mod 4)
else u ← 0
k ← k−u
Prepend to S
k ← k / 2
end while
Output S
For example, when the positive integer n = 181, signed binary representation S = 10 - 10 - 10101 is obtained.

さらに、バイナリ法を符号付2進数表現に拡張した符号付バイナリ法のアルゴリズムが知られている。   Furthermore, a signed binary algorithm that extends the binary method to a signed binary representation is known.

以下に、符号付バイナリ法のアルゴリズムを示す。なお、下記のx-1は、xの法nにおける逆元を表している。
[符号付バイナリ法]
(Step0) Input k,x,n
(Step1) 整数kを、k=Σ(ki・2i)と2進数表現する(i=0〜l−1につきそれぞれkiを求める)。ここで、ki∈T,T=[−1,0,1]とする。
(Step2) y=1
(Step3) i=l−1から0までの間、次を繰り返す。
(Step3−1) y=y2 (mod n)
(Step3−2) ki=1ならば、y=y・x (mod n)
(Step3−3) ki=−1ならば、y=y・x-1 (mod n)
(Step4) Output y(=xk mod n)
これらの符号付バイナリ法やNAF表現といったテクニックを用いることで、べき乗剰余算やスカラー倍算が効率よく演算できることになる。例えば、非特許文献1,2参照には、NAFを用いると非ゼロ係数の数が全体の約1/3となり(ゼロの数は約2/3)、べき乗剰余算(あるいはスカラー倍算)の計算量に関しては、NAFを用いない場合と比べて約11%効率化が図れる旨が記述されている。
The signed binary algorithm is shown below. Note that x −1 below represents the inverse element of x in modulus n.
[Signed binary method]
(Step 0) Input k, x, n
(Step 1) The integer k is expressed as a binary number as k = Σ (k i · 2 i ) (k i is obtained for each of i = 0 to l−1). Here, k i εT, T = [− 1, 0, 1].
(Step 2) y = 1
(Step 3) The following is repeated from i = 1 to 1 to 0.
(Step 3-1) y = y 2 (mod n)
(Step 3-2) If k i = 1, y = y · x (mod n)
(Step 3-3) If k i = −1, y = y · x −1 (mod n)
(Step 4) Output (= x k mod n)
By using techniques such as these signed binary methods and NAF representation, power-residue and scalar multiplication can be performed efficiently. For example, referring to Non-Patent Documents 1 and 2, when NAF is used, the number of non-zero coefficients becomes about 1/3 of the whole (the number of zeros is about 2/3), and power-residue (or scalar multiplication) Regarding the amount of calculation, it is described that the efficiency can be improved by about 11% compared to the case where NAF is not used.

他方、公開鍵暗号方式やディジタル署名方式では、標準プロトコルの中で、乱数を生成し、生成した乱数をべき指数としてべき乗剰余算を行うことが多くある。例えば、ElGamal暗号やDH鍵共有法、DSA署名などである。   On the other hand, in public key cryptosystems and digital signature systems, random numbers are often generated in a standard protocol, and power-residue calculation is performed using the generated random numbers as exponents. For example, ElGamal encryption, DH key sharing method, DSA signature, and the like.

それらの標準プロトコルにおいて、乱数とNAF表現を利用したべき乗剰余算処理部分は、次の3ステップから構成される(なお、kとdは同値の整数である)。
(Step1) 乱数kを生成する。
(Step2) kのNAF変換d=NAF(k)を行う。
(Step3) べき乗剰余算y=xd mod nを計算する。
CRYPTOGRAPHY Theory and Practice SECOND EDITION(pp.258-259), Author: Douglas Stinson, Publisher: Chapman & Hall/CRC, ISBN: 1-58488-206-9 Guide to Elliptic Curve Cryptography(pp.98-100) , Author: Darrel Hankerson, Alfred J. Menezes, Scott Vanstone, Publisher: Springer Professional Computing Series, ISBN: 0-387-95273-X
In these standard protocols, the modular exponentiation process using random numbers and NAF expression is composed of the following three steps (k and d are integers of the same value).
(Step 1) A random number k is generated.
(Step 2) k NAF conversion d = NAF (k) is performed.
(Step 3) The modular exponentiation y = x d mod n is calculated.
CRYPTOGRAPHY Theory and Practice SECOND EDITION (pp.258-259), Author: Douglas Stinson, Publisher: Chapman & Hall / CRC, ISBN: 1-58488-206-9 Guide to Elliptic Curve Cryptography (pp.98-100), Author: Darrel Hankerson, Alfred J. Menezes, Scott Vanstone, Publisher: Springer Professional Computing Series, ISBN: 0-387-95273-X

バイナリ表現への変換処理を行い、符号付2進数表現を生成することに関して、特定の値をバイナリ変換し非ゼロ係数の数を削減することには意味があるが、乱数のようなランダムな値を変換する際には、変換処理を行う必要は無く、さらに効率良く符号付2進数表現された乱数系列を生成できる可能性が考えられる。   Regarding conversion to binary representation and generation of signed binary representation, it is meaningful to binary-convert specific values to reduce the number of non-zero coefficients, but random values such as random numbers When converting, there is no need to perform conversion processing, and there is a possibility that a random number sequence expressed in signed binary numbers can be generated more efficiently.

また、NAF変換アルゴリズムでは、最下位ビット(LSB)から最上位ビット(MSB)へと1桁ごとに変換していく必要があるが、最上位ビット(MSB)から最下位ビット(LSB)へ計算していく、べき乗剰余算やスカラー倍算等の演算方法との併用をすると、変換処理の重複を招き、結果的に演算処理時間が長くなるという欠点を持っている。   In the NAF conversion algorithm, it is necessary to convert the least significant bit (LSB) to the most significant bit (MSB) for each digit, but the calculation is performed from the most significant bit (MSB) to the least significant bit (LSB). However, when used together with an arithmetic method such as exponentiation / scalar multiplication or scalar multiplication, duplication of conversion processing is caused, resulting in a disadvantage that the processing time becomes long.

本発明は、上記事情を考慮してなされたもので、より効率的に、符号付2進数表現された乱数系列を生成できる乱数系列生成装置及び乱数系列生成方法、より効率的に、符号付2進数表現された乱数系列を生成するとともに、該乱数系列をべき指数として使用して、べき乗剰余算やスカラー倍算などの演算を行うことができる演算処理装置及び演算処理方法、並びにプログラムを提供することを目的とする。   The present invention has been made in consideration of the above circumstances. A random number sequence generation apparatus and a random number sequence generation method capable of generating a random number sequence represented by a signed binary number more efficiently, and more efficiently, a signed 2 Provided are an arithmetic processing device, an arithmetic processing method, and a program capable of generating a random number sequence expressed in decimal and using the random number sequence as a power exponent to perform operations such as power-residue and scalar multiplication For the purpose.

本発明は、最上位ビットについては1をとることのみ許され、最上位ビット以外のビットについては、その上位ビットが0の場合には−1と0と1のいずれをとることも許され、その上位ビットが−1又は1の場合には0をとることのみ許される条件を満たす乱数系列を生成する乱数系列生成装置であって、−1、0又は1をとる3値の乱数を生成する3値乱数生成手段と、前記条件に基づいて、前記3値乱数生成手段により逐次生成される乱数の全部又は一部をその生成順に用いながら、生成すべき任意のビット長の乱数系列の最上位ビットから最下位ビットへ向かって順に1ビットずつ前記条件を満たすように各ビットの値を決定していくことによって、前記条件を満たす乱数系列を生成する乱数系列生成手段とを備えたことを特徴とする。
また、本発明は、最上位ビットについては1をとることのみ許され、最上位ビット以外のビットについては、その上位ビットが0の場合には−1と0と1のいずれをとることも許され、その上位ビットが−1又は1の場合には0をとることのみ許される条件を満たす乱数系列を生成する乱数系列生成部と、該乱数系列をべき指数として使用する演算を行う演算部とを備えた演算処理装置であって、前記乱数系列生成部は、−1、0又は1をとる3値の乱数を生成する3値乱数生成手段と、前記条件に基づいて、前記3値乱数生成手段により逐次生成される乱数の全部又は一部をその生成順に用いながら、生成すべき任意のビット長の乱数系列の最上位ビットから最下位ビットへ向かって順に1ビットずつ前記条件を満たすように各ビットの値を決定していくことによって、前記条件を満たす乱数系列を生成する乱数系列生成手段とを有するものであり、前記演算部は、前記乱数系列生成手段による前記乱数系列の生成と並行して、前記乱数系列生成手段により生成された前記乱数系列を、その最上位ビットから最下位ビットへ向かって1又は複数ビットずつ順に使用しながら、特定の繰り返し処理を行う手段を有するものであることを特徴とする。
The present invention is only allowed to take 1 for the most significant bit, and for bits other than the most significant bit, if the higher order bit is 0, it is allowed to take either -1 or 0 or 1. A random number sequence generation device that generates a random number sequence that satisfies a condition that only accepts 0 when the upper bit is −1 or 1, and generates a ternary random number that takes −1, 0, or 1 Ternary random number generating means, and using the whole or a part of the random numbers sequentially generated by the ternary random number generating means based on the above conditions in the order of generation, the highest order random number sequence to be generated Random number sequence generation means for generating a random number sequence satisfying the condition by determining the value of each bit so as to satisfy the condition one bit at a time from the bit toward the least significant bit. Features .
In the present invention, it is only allowed to take 1 for the most significant bit, and for bits other than the most significant bit, if the upper bit is 0, it is allowed to take either -1 or 0 or 1. A random number sequence generation unit that generates a random number sequence that satisfies a condition that only allows 0 when the higher-order bit is −1 or 1, and a calculation unit that performs an operation using the random number sequence as a power exponent. The random number sequence generation unit includes: a ternary random number generation unit that generates a ternary random number that takes -1, 0, or 1; and the ternary random number generation based on the condition Using the whole or part of the random numbers sequentially generated by the means in the order of generation, satisfying the condition one bit at a time in order from the most significant bit to the least significant bit of a random number sequence having an arbitrary bit length to be generated to each bit value A random number sequence generating unit that generates a random number sequence that satisfies the condition by determining, and the arithmetic unit, in parallel with the generation of the random number sequence by the random number sequence generating unit, The random number sequence generated by the sequence generation means includes means for performing a specific repetitive process while sequentially using one or a plurality of bits from the most significant bit toward the least significant bit. .

なお、装置に係る本発明は方法に係る発明としても成立し、方法に係る本発明は装置に係る発明としても成立する。
また、装置または方法に係る本発明は、コンピュータに当該発明に相当する手順を実行させるための(あるいはコンピュータを当該発明に相当する手段として機能させるための、あるいはコンピュータに当該発明に相当する機能を実現させるための)プログラムとしても成立し、該プログラムを記録したコンピュータ読み取り可能な記録媒体としても成立する。
The present invention relating to the apparatus is also established as an invention relating to a method, and the present invention relating to a method is also established as an invention relating to an apparatus.
Further, the present invention relating to an apparatus or a method has a function for causing a computer to execute a procedure corresponding to the invention (or for causing a computer to function as a means corresponding to the invention, or for a computer to have a function corresponding to the invention. It can also be realized as a program (for realizing the program), and can also be realized as a computer-readable recording medium on which the program is recorded.

本発明によれば、より効率的に、符号付2進数表現された乱数系列を生成することができる。また、本発明によれば、より効率的に、符号付2進数表現された乱数系列を生成するとともに、該乱数系列をべき指数として使用して、べき乗剰余算やスカラー倍算などの演算を行うことができる。   According to the present invention, it is possible to generate a random number sequence expressed in a signed binary number more efficiently. In addition, according to the present invention, a random number sequence expressed in a signed binary number is generated more efficiently, and operations such as exponentiation and scalar multiplication are performed using the random number sequence as a power exponent. be able to.

以下、図面を参照しながら本発明の実施形態について説明する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings.

(第1の実施形態)
図1に、本発明の第1の実施形態に係るNAF乱数系列生成装置の構成例を示す。
(First embodiment)
FIG. 1 shows a configuration example of a NAF random number sequence generation apparatus according to the first embodiment of the present invention.

図1に示されるように、NAF乱数系列生成装置100は、制御部101、乱数系列生成部102、記憶部103、出力部104を備えている。   As shown in FIG. 1, the NAF random number sequence generation device 100 includes a control unit 101, a random number sequence generation unit 102, a storage unit 103, and an output unit 104.

NAF乱数系列生成装置100は、例えば、ICチップなどの暗号モジュール内に組み込まれ、暗号化、復号化、鍵生成又は署名生成などの際に、任意の正整数値lを入力すると、NAFの規則に従ったlビットの乱数系列(符号付2進数表現)を生成し、出力する。   The NAF random number sequence generation device 100 is incorporated in a cryptographic module such as an IC chip, for example. When an arbitrary positive integer value l is input during encryption, decryption, key generation, or signature generation, the NAF rule 1-bit random number sequence (signed binary representation) is generated and output.

乱数生成部102は、[−1,0,1]の3値からなる乱数を生成する機能を有する。   The random number generation unit 102 has a function of generating a random number including three values [-1, 0, 1].

制御部101は、本NAF乱数系列生成装置100により生成される乱数系列がNAF規則を満たすように制御する機能を有する。   The control unit 101 has a function of controlling the random number sequence generated by the NAF random number sequence generation apparatus 100 so as to satisfy the NAF rule.

記憶部103は、少なくとも1つ前に生成された乱数ビットを記憶しておく機能を有する。なお、新たに生成されたものから順にu(uは予め定められた複数)ビットを記憶する構成や、生成された全ビット列を記憶する構成も可能である。   The storage unit 103 has a function of storing a random number bit generated at least one previous time. A configuration in which u (u is a predetermined number) bits are stored in order from a newly generated one, or a configuration in which all generated bit strings are stored is also possible.

出力部104は、記憶部103に蓄積されているNAF乱数ビットを、生成された順に(最上位ビットから最下位ビットへ向かって順に)、1ビットずつ逐次出力していく機能を有する。なお、記憶部103に蓄積されているNAF乱数ビットを、生成された順に(最上位ビットから最下位ビットへ向かって順に)、s(sは予め定められた複数)ビットずつ逐次出力していく構成や、NAF乱数系列の全ビットの生成が完了した後に、該NAF乱数系列の全ビットを出力する構成も可能である。また、出力部104が1回に出力する乱数ビット数を、設定あるいはその都度指示できるようにしてもよい。   The output unit 104 has a function of sequentially outputting the NAF random number bits accumulated in the storage unit 103 one bit at a time in the order of generation (in order from the most significant bit to the least significant bit). The NAF random number bits accumulated in the storage unit 103 are sequentially output in order of generation (in order from the most significant bit to the least significant bit) and s (s is a predetermined number) bits. A configuration is also possible in which all bits of the NAF random number sequence are output after generation of all bits of the NAF random number sequence is completed. Further, the number of random bits output by the output unit 104 at a time may be set or designated each time.

ここで、NAFの規則は、例えば、下記のような2つの規則(条件)で表現することができる。
(a)当該乱数系列において、最上位ビットは、1であることのみ許される。
(b)当該乱数系列において、非ゼロのビット同士が隣接することは、許されない(0と0が隣接すること、0と1が隣接すること、0と−1が隣接することは、いずれも許されるが、1と1が隣接すること、1と−1が隣接すること、及び−1と−1が隣接することは、いずれも許されない)。
Here, the NAF rule can be expressed by, for example, the following two rules (conditions).
(A) In the random number series, only the most significant bit is allowed to be 1.
(B) In the random number sequence, non-zero bits are not allowed to be adjacent to each other (0 and 0 are adjacent, 0 and 1 are adjacent, and 0 and −1 are adjacent) Allowed, 1 and 1 are adjacent, 1 and -1 are adjacent, and -1 and -1 are not adjacent).

また、本実施形態において乱数系列を最上位ビットから最下位ビットへ向かって順番に生成することを考慮すると、NAFの規則は、例えば、下記のように表現することもできる。
(A)当該乱数系列において、最上位ビットは、1をとることのみ許される。
(B)当該乱数系列において、最上位ビット以外のビットは、そのビットの上位ビットが0の場合には−1と0と1のいずれをとることも許され、そのビットの上位ビットが−1又は1の場合には0をとることのみ許される。
Further, in consideration of generating the random number sequence in order from the most significant bit to the least significant bit in the present embodiment, the NAF rule can also be expressed as follows, for example.
(A) In the random number sequence, the most significant bit is only allowed to take 1.
(B) In the random number sequence, bits other than the most significant bit are allowed to take −1, 0, or 1 when the upper bit of the bit is 0, and the upper bit of the bit is −1. Or in the case of 1, only 0 is allowed.

図2に、本実施形態のNAF乱数系列生成装置において実行される、NAFの規則を満たす乱数系列を、最上位ビット(MSB)から最下位ビット(LSB)へ向かって順に生成する処理手順の一例を示す。   FIG. 2 shows an example of a processing procedure that is executed in the NAF random number sequence generation device of the present embodiment to generate a random number sequence that satisfies the NAF rules in order from the most significant bit (MSB) to the least significant bit (LSB). Indicates.

ここでは、生成すべきNAF乱数系列のビット長をlとし、内部の乱数生成部102によって生成される乱数をr∈[−1,0,1]とし、生成されるNAF乱数系列をdl-1,…,d0とする。 Here, the bit length of the NAF random number sequence to be generated is l, the random number generated by the internal random number generation unit 102 is rε [-1, 0, 1], and the generated NAF random number sequence is d l− 1 ,..., D 0 .

本実施形態のNAF乱数系列生成装置にlが入力されると、制御部101において、j=lが実行される(ステップS21)。   When l is input to the NAF random number sequence generation device of the present embodiment, j = l is executed in the control unit 101 (step S21).

以降は、ループ処理となる。   Thereafter, loop processing is performed.

まず、j=j−1が実行される(ステップS22)。最初は、j=j−1=l−1となり、これによって、最上位ビット(dl-1)に焦点があてられる。 First, j = j-1 is executed (step S22). Initially, j = j−1 = l−1, which focuses on the most significant bit (d l−1 ).

次に、乱数生成部102により乱数r∈[−1,0,1]を生成する(ステップS23)。生成された乱数r∈[−1,0,1]は、制御部101により受け取られる。   Next, the random number generation unit 102 generates a random number rε [−1, 0, 1] (step S23). The generated random number rε [−1, 0, 1] is received by the control unit 101.

次に、制御部101において、乱数rがNAF規則を満たすか否か調べ(ステップS24)、満たしている場合には、ステップS25へ進み、満たしていない場合には、(該乱数rを破棄して)ステップS23へ戻る。NAF規則を満たすか否かを判定するアルゴリズムについては後述する。   Next, the control unit 101 checks whether or not the random number r satisfies the NAF rule (step S24). If satisfied, the process proceeds to step S25. If not, the random number r is discarded. And return to step S23. An algorithm for determining whether or not the NAF rule is satisfied will be described later.

NAF規則を満たしていた場合には、dj=rを実行する(ステップS25)。最上位ビット(dl-1)に焦点があてられる場合には、dl-1=rが実行される。dj=rは、記憶部103に記憶され、出力部104により出力される。 If the NAF rule is satisfied, d j = r is executed (step S25). If the most significant bit (d l-1 ) is focused, d l-1 = r is executed. d j = r is stored in the storage unit 103 and output by the output unit 104.

ここで、j=0であるか否か調べ(ステップS26)、j≠0である場合には、ステップS22へ戻り(j=j−1が実行されて、1つ下位のビットに焦点があてられる)、以降、ステップS26でj=0となるまで繰り返し同様の処理が行われる。   Here, it is checked whether or not j = 0 (step S26). If j ≠ 0, the process returns to step S22 (j = j-1 is executed to focus on the next lower bit). Thereafter, the same processing is repeated until j = 0 in step S26.

また、ステップS26でj=0である場合には、lビットのNAF乱数系列が全て決定されたことになり、この処理を終了する。   If j = 0 in step S26, all l-bit NAF random number sequences have been determined, and this process ends.

なお、上記手順例において、乱数生成部102の動作とステップS23の動作とは同期している(ステップS23の実行タイミングにおいてのみ、乱数生成部102が動作する)ものであってもよいが、必ずしも同期している必要はなく、乱数生成部102は周囲の動作とは独立に常に乱数を発生し続ける形態も可能である。   In the above procedure example, the operation of the random number generation unit 102 and the operation of step S23 may be synchronized (the random number generation unit 102 operates only at the execution timing of step S23). There is no need for synchronization, and the random number generation unit 102 may always generate random numbers independently of surrounding operations.

ここで、上記のようなNAF規則を満たすか否かを判定するアルゴリズムについて説明する。   Here, an algorithm for determining whether or not the above NAF rule is satisfied will be described.

図3に、生成された乱数rを乱数系列の当該ビットに採用した場合にNAF規則が満されるか否かについて判定する手順の一例を示す。   FIG. 3 shows an example of a procedure for determining whether or not the NAF rule is satisfied when the generated random number r is adopted as the bit of the random number series.

まず、j=l−1であるか否か(つまり、最上位ビットであるか否か)を判定する(ステップS31)。j=l−1である(最上位ビットである)場合には、ステップS32へ進み、j≠l−1である(最上位ビットでない)場合には、ステップS33へ進む。   First, it is determined whether j = 1-1 (that is, whether it is the most significant bit) (step S31). If j = 1−1 (the most significant bit), the process proceeds to step S32. If j ≠ l−1 (not the most significant bit), the process proceeds to step S33.

ステップS31でj=l−1である場合には、NAF規則によれば最上位ビットdl-1は1しか許されないので、(図2のステップS23で得られた)乱数rが1であるか否かを調べ(ステップS32)、r=1であるときは、「rがNAF規則を満たす」旨の判定結果とし、r≠1であるときは、「rがNAF規則を満たさない」旨の判定結果とする。 If j = l−1 in step S31, the random number r (obtained in step S23 of FIG. 2) is 1 because only the most significant bit d l-1 is allowed according to the NAF rule. If r = 1, it is determined that “r satisfies the NAF rule”. If r ≠ 1, “r does not satisfy the NAF rule”. The determination result is as follows.

他方、ステップS31でj≠l−1である(最上位ビットでない)場合には、1つ前(1つ上位)のビットdj+1が0であるか否かを調べ(ステップS33)、dj+1=0であるときは、NAF規則によればrが[−1,0,1]のいずれの値を取ってもdj=rとして許されるので(rの値を調べることなく)、「rはNAF規則を満たす」旨を判定結果とする。また、dj+1≠0であるときは、NAF規則によればdj=0しか許されないため、r=0であるか否かを調べ(ステップS34)、r=0であれば「rはNAF規則を満たす」旨の判定結果とし、r≠0であれば「rがNAF規則を満たさない」旨の判定結果とする。 On the other hand, if j ≠ l−1 in step S31 (not the most significant bit), it is checked whether or not the immediately preceding (one higher) bit d j + 1 is 0 (step S33). When d j + 1 = 0, any value of [−1, 0, 1] is allowed as d j = r according to the NAF rule (without checking the value of r ), “R satisfies the NAF rule” as a determination result. When d j + 1 ≠ 0, only d j = 0 is allowed according to the NAF rule, so whether r = 0 is checked (step S34). If r = 0, “r Is a determination result that “NAF rule is satisfied”, and if r ≠ 0, it is a determination result that “r does not satisfy the NAF rule”.

以上のように、本実施形態によれば、NAF規則を満たすようなNAF乱数系列を生成することが可能となる。   As described above, according to the present embodiment, it is possible to generate a NAF random number sequence that satisfies the NAF rule.

(第2の実施形態)
第1の実施形態は、NAF規則を満たす乱数が発生されるまでループを繰り返す処理があるため、全lビットのNAF乱数系列が決定するまでの時間は不確定となるものであるが、第2の実施形態は、全lビットのNAF乱数系列が決定するまでの時間をほぼ一定とするものである。
(Second Embodiment)
In the first embodiment, since there is a process of repeating the loop until a random number satisfying the NAF rule is generated, the time until an all-bit NAF random number sequence is determined is uncertain. In this embodiment, the time until the determination of all l-bit NAF random number sequences is made substantially constant.

本実施形態では、第1の実施形態と相違する点を中心に説明する。   In the present embodiment, a description will be given centering on differences from the first embodiment.

本実施形態に係るNAF乱数系列生成装置の構成例は、第1の実施形態と同様である(図1参照)。   The configuration example of the NAF random number sequence generation device according to this embodiment is the same as that of the first embodiment (see FIG. 1).

図4に、本実施形態のNAF乱数系列生成装置において実行される、NAFの規則を満たす乱数系列を、最上位ビット(MSB)から最下位ビット(LSB)へ向かって順に生成する処理手順の一例を示す。   FIG. 4 shows an example of a processing procedure that is executed in the NAF random number sequence generation device according to the present embodiment and sequentially generates a random number sequence satisfying the NAF rules from the most significant bit (MSB) to the least significant bit (LSB). Indicates.

第1の実施形態と同様、生成すべきNAF乱数系列のビット長をlとし、内部の乱数生成部102によって生成される乱数をr∈[−1,0,1]とし、生成されるNAF乱数系列をdl-1,…,d0とする。 As in the first embodiment, the NAF random number sequence to be generated is l, the random number generated by the internal random number generator 102 is rε [-1, 0, 1], and the generated NAF random number Let the series be d l−1 ,..., D 0 .

本実施形態のNAF乱数系列生成装置にlが入力されると、制御部101において、まず、j=l−1とdj=1とが実行され(ステップS41)、これによって、最上位ビットが決定される。この最上位ビットdl-1=1は、記憶部103に記憶され、出力部104により出力される。 When l is input to the NAF random number sequence generation device of the present embodiment, the control unit 101 first executes j = 1−1 and d j = 1 (step S41), whereby the most significant bit is changed. It is determined. The most significant bit d l−1 = 1 is stored in the storage unit 103 and output by the output unit 104.

以降は、ループ処理となる。   Thereafter, loop processing is performed.

まず、j=j−1が実行され(ステップS42)、これによって、1つ下位のビットに焦点があてられる。   First, j = j-1 is executed (step S42), thereby focusing on the next lower bit.

次に、記憶部103に記憶されている1つ前(上位)のビットdj+1(最初のループでは、最上位ビットdl-1)が0であるか否か調べ(ステップS43)、dj+1≠0である場合には、ステップS44へ進み、dj+1=0である場合には、ステップS45へ進む。 Next, it is checked whether or not the previous (upper) bit d j + 1 (in the first loop, the most significant bit d l−1 ) stored in the storage unit 103 is 0 (step S43), When d j + 1 ≠ 0, the process proceeds to step S44, and when d j + 1 = 0, the process proceeds to step S45.

ステップS43でdj+1≠0である(すなわち、dj+1=1 or −1である)場合には、次に来るビット値はNAF規則により必ず0となるので、dj=0を実行して(ステップS44)、ステップS47へ進む。dj=0は、記憶部103に記憶され、出力部104で出力される。 If d j + 1 ≠ 0 in step S43 (that is, d j + 1 = 1 or −1), the next bit value is always 0 according to the NAF rule, so d j = 0 is set. Execute (step S44), and proceed to step S47. d j = 0 is stored in the storage unit 103 and output from the output unit 104.

他方、ステップS43でdj+1=0である場合には、NAF規則から次に取り得るビット値として[−1,0,1]の3値が候補となるので、乱数生成部102によって乱数r∈[−1,0,1]を生成し(ステップS45)、次いで、dj=rを実行して(ステップS46)、ステップS47へ進む。dj=rは、記憶部103に記憶され、出力部104で出力される。 On the other hand, if d j + 1 = 0 in step S43, the ternary value [−1, 0, 1] is a candidate as the next possible bit value from the NAF rule. rε [−1, 0, 1] is generated (step S45), then d j = r is executed (step S46), and the process proceeds to step S47. d j = r is stored in the storage unit 103 and output from the output unit 104.

ここで、j=0であるか否か調べ(ステップS47)、j≠0である場合には、ステップS42へ戻り(j=j−1が実行されて、1つ下位のビットに焦点があてられる)、以降、ステップS47でj=0となるまで繰り返し同様の処理が行われる。   Here, it is checked whether or not j = 0 (step S47). If j ≠ 0, the process returns to step S42 (j = j-1 is executed to focus on the next lower bit). Thereafter, the same processing is repeated until j = 0 in step S47.

また、ステップS47でj=0である場合には、lビットのNAF乱数系列が全て決定されたことになり、この処理を終了する。   If j = 0 in step S47, all the 1-bit NAF random number sequences have been determined, and this process ends.

なお、上記処理手順では、生成すべきNAF乱数系列の最上位ビットについては、乱数の生成もループ処理も行わずに、1を与え、最上位ビット以外のビットについて、ループ処理を施すようにしたが、その代わりに、生成すべきNAF乱数系列の最上位ビット及びその1つ下位のビットについては、乱数の生成もループ処理も行わずに、それぞれ1及び0を与え、最上位ビット及びその1つ下位のビット以外のビットについて、ループ処理を施すような構成も可能である。   In the above processing procedure, the most significant bit of the NAF random number sequence to be generated is given 1 without performing random number generation or loop processing, and loop processing is performed for bits other than the most significant bit. Instead, for the most significant bit of the NAF random number sequence to be generated and its lowermost bit, 1 and 0 are given without performing random number generation and loop processing, respectively. A configuration in which loop processing is performed on bits other than the lower-order bits is also possible.

以上のように、本実施形態によれば、NAF規則を満たすようなNAF乱数系列を生成することが可能となる。   As described above, according to the present embodiment, it is possible to generate a NAF random number sequence that satisfies the NAF rule.

べき指数として乱数系列を使用するようなべき乗剰余算やスカラー倍算等の演算を行うにあたって、従来は、乱数系列の生成が全て完了した後に、該乱数系列に対してNAF変換を施し、その後に、該NAF変換した乱数系列を用いた、べき乗剰余算を行う、という手順を踏む必要があったが、第1,2の実施形態によれば、図5(a)のように、NAF乱数系列生成装置において、直接、NAF乱数系列を生成し、これを、べき乗剰余算やスカラー倍算等の演算を行う演算装置に与えることができるので、処理の高速化を図ることができる。また、図5(a)のように、NAF乱数系列を全て生成してから、べき乗剰余算やスカラー倍算等の演算を行う代わりに、図5(b)のように、NAF乱数系列生成装置において、NAF乱数系列を、最上位ビット(MSB)から最下位ビット(LSB)へ向かって順に生成し、生成した乱数ビットをべき乗剰余算やスカラー倍算等の演算を行う演算装置に与えるとともに、これに並行して、演算装置において、べき乗剰余算やスカラー倍算等の演算を行うことができるようになるので、この場合には、さらに、処理の高速化を図ることができる。   In performing operations such as exponentiation and scalar multiplication that use a random number sequence as a power exponent, conventionally, after all the generation of the random number sequence is completed, NAF conversion is performed on the random number sequence, and then However, according to the first and second embodiments, as shown in FIG. 5 (a), the NAF random number sequence must be taken. Since the generation device can directly generate a NAF random number sequence and supply it to an arithmetic device that performs operations such as exponentiation and scalar multiplication, the processing speed can be increased. In addition, instead of performing operations such as exponentiation and scalar multiplication after generating all NAF random number sequences as shown in FIG. 5A, a NAF random number sequence generating device as shown in FIG. 5B. The NAF random number sequence is generated in order from the most significant bit (MSB) to the least significant bit (LSB), and the generated random number bit is given to an arithmetic unit that performs operations such as exponentiation and scalar multiplication, In parallel with this, the arithmetic unit can perform operations such as exponentiation and scalar multiplication. In this case, the processing can be further speeded up.

ところで、第1の実施形態又は第2の実施形態のNAF乱数系列生成装置と、数値系列の最上位ビット(MSB)から最下位ビット(LSB)へ向かって順に1ビット又は所定の複数ビットを使用して所定の演算を行う装置と組み合わせて、演算処理装置を構成することも可能である。   By the way, the NAF random number sequence generation device of the first embodiment or the second embodiment, and one bit or a predetermined plurality of bits are used in order from the most significant bit (MSB) to the least significant bit (LSB) of the numerical sequence. Thus, an arithmetic processing device can be configured in combination with a device that performs a predetermined calculation.

以下、第3及び第4の実施形態では、この所定の演算を行う装置として、べき乗剰余算装置を用いる場合を例にとって説明し、第5の実施形態では、スカラー倍算装置を用いる場合を例にとって説明する。   Hereinafter, in the third and fourth embodiments, a case where a power-residue calculating device is used as an example of a device that performs the predetermined calculation will be described, and in the fifth embodiment, a case where a scalar multiplication device is used is described as an example. I will explain to you.

(第3の実施形態)
図6に、第3の実施形態の演算処理装置200の構成例を示す。
(Third embodiment)
FIG. 6 illustrates a configuration example of the arithmetic processing device 200 according to the third embodiment.

本実施形態の演算処理装置200は、第1の実施形態のNAF乱数系列生成装置に相当するNAF乱数系列生成部120に、所定の演算を行う演算部として、べき乗剰余算を行う、べき乗剰余算部105を追加した構成になっている。なお、べき乗剰余算部105は、既存のもので構わない。   The arithmetic processing unit 200 according to the present embodiment performs exponentiation remainder calculation as a calculation unit that performs a predetermined calculation on the NAF random number sequence generation unit 120 corresponding to the NAF random number sequence generation device according to the first embodiment. The unit 105 is added. The power-residue calculating unit 105 may be an existing one.

本実施形態では、第1の実施形態と相違する点を中心に説明する。   In the present embodiment, a description will be given centering on differences from the first embodiment.

図7に、本実施形態の演算処理装置において実行される、NAF乱数系列生成及びべき乗剰余算の処理手順の一例を示す。   FIG. 7 shows an example of a processing procedure of NAF random number sequence generation and power-residue calculation executed in the arithmetic processing apparatus of the present embodiment.

第1の実施形態と同様、生成すべきNAF乱数系列のビット長をlとし、内部の乱数生成部102によって生成される乱数をr∈[−1,0,1]とし、生成されるNAF乱数系列をdl-1,…,d0とする。また、本実施形態では、生成されるNAF乱数系列dl-1,…,d0の10進数値をべき乗剰余算におけるべき指数dとし、べき乗される値をxとし、剰余演算の法をnとする。 As in the first embodiment, the NAF random number sequence to be generated is l, the random number generated by the internal random number generator 102 is rε [-1, 0, 1], and the generated NAF random number Let the series be d l−1 ,..., D 0 . In the present embodiment, the decimal value of the generated NAF random number sequence d l−1 ,..., D 0 is the exponent d in the power-residue calculation, the value to be raised is x, and the method of the remainder calculation is n And

この手順例は、べき指数となるNAF乱数系列のビット長lと、べき乗される値xと、法n(n:prime)とを入力したとき、べき乗剰余算結果y=xd mod nが出力となるものであるが、その際、第1の実施形態と同様に、NAFの規則を満たす乱数系列を、最上位ビット(MSB)から最下位ビット(LSB)へ向かって順に生成しながら、併せて、符号付バイナリ法を実行するものである。 In this procedure example, when a bit length l of a NAF random number sequence that becomes a power exponent, a power value x, and a modulus n (n: prime) are input, a power-residue result y = x d mod n is output. In this case, as in the first embodiment, a random number sequence satisfying the NAF rule is generated in order from the most significant bit (MSB) to the least significant bit (LSB). The signed binary method is executed.

本実施形態の演算処理装置にl、x、nが入力されると、制御部101において、j=lが実行され、べき乗剰余算部105において、y=1が実行される(ステップS51)。   When l, x, and n are input to the arithmetic processing unit of this embodiment, j = 1 is executed in the control unit 101, and y = 1 is executed in the power-residue calculating unit 105 (step S51).

以降は、ループ処理となる。   Thereafter, loop processing is performed.

まず、j=j−1が実行される(ステップS52)。最初は、j=j−1=l−1となり、これによって、最上位ビット(dl-1)に焦点があてられる。 First, j = j-1 is executed (step S52). Initially, j = j−1 = l−1, which focuses on the most significant bit (d l−1 ).

次に、乱数生成部102により乱数r∈[−1,0,1]を生成する(ステップS53)。   Next, the random number generation unit 102 generates a random number rε [−1, 0, 1] (step S53).

次に、制御部101において、乱数rがNAF規則を満たすか否か調べ(ステップS54)、満たしている場合には、ステップS55へ進み、満たしていない場合には、(該乱数rを破棄して)ステップS53へ戻る。   Next, the control unit 101 checks whether or not the random number r satisfies the NAF rule (step S54). If satisfied, the process proceeds to step S55. If not, the control unit 101 discards the random number r. And return to step S53.

NAF規則を満たしていた場合には、dj=rを実行する(ステップS55)。最上位ビット(dl-1)に焦点があてられている場合には、dl-1=rが実行される。dj=rは、べき乗剰余算部105へ与えられる。 If the NAF rule is satisfied, d j = r is executed (step S55). If the most significant bit (d l-1 ) is focused, d l-1 = r is executed. d j = r is given to the power-residue calculating unit 105.

べき乗剰余算部105では、まず、y=y2 mod nの二乗剰余演算を行う(ステップS56)。 The power-residue calculating unit 105 first performs a square remainder calculation of y = y 2 mod n (step S56).

次に、先に決定されたNAF乱数系列の当該ビットdj(最初のループでは、最上位ビットdl-1)が1であるか否か調べ(ステップS57)、dj=1である場合には、ステップS58へ進み、dj=1でない場合には、ステップS59へ進む。ステップS57でdj=1でないケースで、当該ビットdjが−1であるか否か調べ(ステップS59)、dj=−1である場合には、ステップS60へ進む。 Next, it is checked whether or not the bit d j (the most significant bit d l-1 in the first loop) of the previously determined NAF random number sequence is 1 (step S57), and d j = 1. The process proceeds to step S58, and if d j = 1 is not satisfied, the process proceeds to step S59. In the case where d j = 1 is not satisfied in step S57, it is checked whether or not the bit d j is −1 (step S59). If d j = −1, the process proceeds to step S60.

上記の分岐でdj=1である場合には、y=y・x mod nの乗算剰余を行い(ステップS58)、ステップS61へ進む。dj=−1である場合には、y=y・x-1 mod nの乗算剰余を行い(ステップS60)、ステップS61へ進む。ここで、x-1は法nでのxの逆元を表している。dj=1でなく且つdj=−1でない場合(すなわち、dj=0である場合)には、何もせずに、ステップS61へ進む。 If d j = 1 in the above branch, a multiplication remainder of y = y · x mod n is performed (step S58), and the process proceeds to step S61. When d j = −1, a multiplication remainder of y = y · x −1 mod n is performed (step S60), and the process proceeds to step S61. Here, x −1 represents the inverse element of x in modulus n. If d j = 1 is not satisfied and d j = −1 is not satisfied (that is, d j = 0), the process proceeds to step S61 without doing anything.

さて、ステップS57,S59によりdjの値に応じて3分岐した処理がステップS61に集束する。 Well, 3 branched treated in accordance with the value of d j in step S57, S59 is focused to step S61.

そして、制御部101において、j=0であるか否か調べ(ステップS61)、j≠0である場合には、ステップS52へ戻り(j=j−1が実行されて、1つ下位のビットに焦点があてられる)、以降、ステップS61でj=0となるまで繰り返し同様の処理が行われる。   Then, the control unit 101 checks whether j = 0 (step S61). If j ≠ 0, the process returns to step S52 (j = j-1 is executed and one lower bit is executed. Thereafter, the same processing is repeated until j = 0 in step S61.

また、ステップS61でj=0である場合には、求めるべき出力y(=xd mod n)が得られたことになり、この処理を終了する。 If j = 0 in step S61, the output y (= x d mod n) to be obtained has been obtained, and this process ends.

以上のように、本実施形態によれば、べき指数としてNAF乱数系列を用いたべき乗剰余演算の出力y=xd mod nを得ることができる。また、図5(b)のように、処理の高速化を図ることができる。 As described above, according to the present embodiment, it is possible to obtain an output y = x d mod n of a power-residue operation using a NAF random number sequence as a power exponent. Further, as shown in FIG. 5B, the processing speed can be increased.

(第4の実施形態)
第4の実施形態に係る演算処理装置の構成例は、第3の実施形態と同様である(図6参照)。ただし、第3の実施形態は、第1の実施形態のNAF乱数系列生成装置に相当するNAF乱数系列生成部120に、所定の演算を行う演算部として、べき乗剰余算を行う、べき乗剰余算部105を追加したものであるが、第4の実施形態は、第2の実施形態のNAF乱数系列生成装置に相当するNAF乱数系列生成部120に、所定の演算を行う演算部として、べき乗剰余算を行う、べき乗剰余算部105を追加したものである(本実施形態においても、べき乗剰余算部105は、既存のもので構わない)。
(Fourth embodiment)
The configuration example of the arithmetic processing apparatus according to the fourth embodiment is the same as that of the third embodiment (see FIG. 6). However, in the third embodiment, a power-residue calculation unit that performs power-residue calculation as a calculation unit that performs a predetermined calculation on the NAF random number sequence generation unit 120 corresponding to the NAF random number sequence generation device of the first embodiment. In the fourth embodiment, the exponentiation remainder calculation is performed as a calculation unit that performs a predetermined calculation on the NAF random number sequence generation unit 120 corresponding to the NAF random number sequence generation device of the second embodiment. The power-residue calculating unit 105 is added (in this embodiment, the power-residue calculating unit 105 may be an existing one).

本実施形態では、第2,3の実施形態と相違する点を中心に説明する。   In the present embodiment, a description will be given focusing on differences from the second and third embodiments.

図8に、本実施形態の演算処理装置において実行される、NAF乱数系列生成及びべき乗剰余算の処理手順の一例を示す。   FIG. 8 shows an example of the processing procedure of NAF random number sequence generation and power-residue calculation executed in the arithmetic processing apparatus of the present embodiment.

第2の実施形態と同様、生成すべきNAF乱数系列のビット長をlとし、内部の乱数生成部102によって生成される乱数をr∈[−1,0,1]とし、生成されるNAF乱数系列をdl-1,…,d0とする。また、第3の実施形態と同様、生成されるNAF乱数系列dl-1,…,d0の10進数値をべき乗剰余算におけるべき指数dとし、べき乗される値をxとし、剰余演算の法をnとする。 As in the second embodiment, the NAF random number sequence to be generated is l, the random number generated by the internal random number generator 102 is rε [-1, 0, 1], and the generated NAF random number Let the series be d l−1 ,..., D 0 . Similarly to the third embodiment, the decimal value of the generated NAF random number sequence d l−1 ,..., D 0 is the exponent d in the power-residue calculation, the power value is x, and the remainder calculation Let n be the modulus.

この手順例は、第3の実施形態と同様、べき指数となるNAF乱数系列のビット長lと、べき乗される値xと、法nとを入力したとき、べき乗剰余算結果y=xd mod nが出力となるものであるが、その際、第2の実施形態と同様に、NAFの規則を満たす乱数系列を、最上位ビット(MSB)から最下位ビット(LSB)へ向かって順に生成しながら、併せて、符号付バイナリ法を実行するものである。 This example procedure is similar to the third embodiment. When a bit length l of a NAF random number sequence that becomes a power exponent, a power value x, and a modulus n are input, a power-residue result y = x d mod In this case, as in the second embodiment, a random number sequence satisfying the NAF rule is generated in order from the most significant bit (MSB) to the least significant bit (LSB). At the same time, the signed binary method is executed.

本実施形態の演算処理装置にl、x、nが入力されると、制御部101において、j=l−1とdj=1とが実行され(ステップS71)、これによって、最上位ビットdl-1が1に決定される。 When l, x, and n are input to the arithmetic processing unit of the present embodiment, j = 1-1 and d j = 1 are executed in the control unit 101 (step S71), whereby the most significant bit d l-1 is determined to be 1.

また、最上位ビットdl-1が1であるので、べき乗剰余算部105において、y=(12・x)mod n=x mod nを実行する(ステップS71)。 Further, since the most significant bit d l−1 is 1, the power-residue calculating unit 105 executes y = (1 2 · x) mod n = x mod n (step S71).

以降は、ループ処理となる。   Thereafter, loop processing is performed.

まず、制御部101において、j=j−1が実行され(ステップS72)、これによって、1つ下位のビットに焦点があてられる。   First, j = j−1 is executed in the control unit 101 (step S72), thereby focusing on the next lower bit.

次に、記憶部103に記憶されている1つ前(上位)のビットdj+1(最初のループでは、最上位ビットdl-1)が0であるか否か調べ(ステップS73)、dj+1≠0である場合には、ステップS74へ進み、dj+1=0である場合には、ステップS75へ進む。 Next, it is checked whether or not the previous (upper) bit d j + 1 (in the first loop, the most significant bit d l-1 ) stored in the storage unit 103 is 0 (step S73), When d j + 1 ≠ 0, the process proceeds to step S74, and when d j + 1 = 0, the process proceeds to step S75.

ステップS73でdj+1≠0である(すなわち、dj+1=1 or −1である)場合には、次に来るビット値はNAF規則により必ず0となるので、dj=0を実行する(ステップS74)。続いて、べき乗剰余算部105において、二乗剰余演算y=y2 mod nを実行して(ステップS78)、ステップS83へ進む。 If d j + 1 ≠ 0 in step S73 (that is, d j + 1 = 1 or −1), the next bit value is always 0 according to the NAF rule, so d j = 0 is set. Execute (Step S74). Subsequently, the power-residue calculating unit 105 executes a square-residue calculation y = y 2 mod n (step S78), and proceeds to step S83.

他方、ステップS73でdj+1=0である場合には、NAF規則から次に取り得るビット値として[−1,0,1]の3値が候補となるので、乱数生成部102によって乱数r∈[−1,0,1]を生成し(ステップS75)、制御部101において、dj=rを実行し(ステップS76)、これによって、djの値が決定される。次いで、べき乗剰余算部105において、y=y2 mod nの二乗剰余演算を実行して(ステップS77)、ステップS79へ進む。 On the other hand, if d j + 1 = 0 in step S73, since the three possible values of [−1, 0, 1] from the NAF rule are candidates, the random number generator 102 generates a random number. rε [−1, 0, 1] is generated (step S75), and the control unit 101 executes d j = r (step S76), thereby determining the value of d j . Next, the power-residue calculating unit 105 executes a square-residue calculation of y = y 2 mod n (step S77), and proceeds to step S79.

次に、べき乗剰余算部105において、先に決定されたNAF乱数系列の当該dj(最初のループでは、最上位ビットの1つ下位のビットdl-2)が1であるか否か調べ(ステップS79)、dj=1である場合には、ステップS81へ進み、dj=1でない場合には、ステップS80へ進む。ステップS79でdj=1でないケースで、先に決定されたNAF乱数系列の最上位ビットdjが−1であるか否か調べ(ステップS80)、dj=−1である場合には、ステップS82へ進む。 Then, the modular exponentiation operation unit 105 (in the first loop, the lower bits d l-2 one of the most significant bit) the d j of NAF random number sequence previously determined is checked whether 1 (Step S79) If d j = 1, the process proceeds to step S81. If d j = 1 is not satisfied, the process proceeds to step S80. In the case where d j = 1 is not satisfied in step S79, it is checked whether or not the most significant bit d j of the previously determined NAF random number sequence is −1 (step S80). If d j = −1, Proceed to step S82.

上記の分岐でdj=1である場合には、y=y・x mod nの乗算剰余を行い(ステップS81)、ステップS83へ進む。dj=−1である場合には、y=y・x-1 mod nの乗算剰余を行い(ステップS82)、ステップS83へ進む。ここで、x-1は法nでのxの逆元を表している。dj=1でなく且つdj=−1でない場合(すなわち、dl-1=0である場合)には、何もせずに、ステップS83へ進む。 If d j = 1 in the above branch, a multiplication remainder of y = y · x mod n is performed (step S81), and the process proceeds to step S83. If d j = −1, a multiplication remainder of y = y · x −1 mod n is performed (step S82), and the process proceeds to step S83. Here, x −1 represents the inverse element of x in modulus n. If d j = 1 and d j = −1 are not satisfied (that is, d l−1 = 0), the process proceeds to step S83 without doing anything.

さて、ステップS73,S79,S80によりdj+1やdjの値に応じて分岐した処理がステップS83に集束する。 Now, the processes branched according to the values of d j + 1 and d j in steps S73, S79, and S80 converge to step S83.

そして、制御部101において、j=0であるか否か調べ(ステップS83)、j≠0である場合には、ステップS72へ戻り(j=j−1が実行されて、1つ下位のビットに焦点があてられる)、以降、ステップS83でj=0となるまで繰り返し同様の処理が行われる。   Then, the control unit 101 checks whether j = 0 (step S83). If j ≠ 0, the process returns to step S72 (j = j-1 is executed and one lower bit is executed. Thereafter, the same processing is repeated until j = 0 in step S83.

また、ステップS83でj=0である場合には、求めるべき出力y(=xd mod n)が得られたことになり、この処理を終了する。 If j = 0 in step S83, the output y (= x d mod n) to be obtained has been obtained, and this process ends.

なお、上記処理手順では、生成すべきNAF乱数系列の最上位ビットについては、乱数の生成もループ処理も行わずに、1を与え、また、これに対応して、y=x mod nを実行し、最上位ビット以外のビットについて、ループ処理を施すようにしたが、その代わりに、生成すべきNAF乱数系列の最上位ビット及びその1つ下位のビットについては、乱数の生成もループ処理も行わずに、それぞれ1及び0を与え、最上位ビットの1に対応して、y=x mod nを実行し、最上位ビット及びその1つ下位のビット以外のビットについて、ループ処理を施すような構成も可能である。   In the above processing procedure, the most significant bit of the NAF random number sequence to be generated is given 1 without performing random number generation or loop processing, and correspondingly, y = x mod n is executed. However, the loop processing is applied to the bits other than the most significant bit. Instead, the generation of the random number and the loop processing are performed for the most significant bit of the NAF random number sequence to be generated and the next lower bit. Instead, 1 and 0 are given, respectively, and y = x mod n is executed corresponding to the most significant bit 1 so that the loop processing is performed on the bits other than the most significant bit and the bit lower than the most significant bit. A simple configuration is also possible.

以上のように、本実施形態によれば、べき指数としてNAF乱数系列を用いたべき乗剰余演算の出力y=xd mod nを得ることができる。また、図5(b)のように、処理の高速化を図ることができる。 As described above, according to the present embodiment, it is possible to obtain an output y = x d mod n of a power-residue operation using a NAF random number sequence as a power exponent. Further, as shown in FIG. 5B, the processing speed can be increased.

なお、これまで説明した実施形態では、バイナリ法を用いた例を示したが、window法などの方法を用いても同様に実施可能である。window法などでは、NAF乱数系列生成装置100(NAF乱数系列生成部120)からの出力を所望のビット長ずつ処理を行うことで同様に適用することが可能である。   In the embodiments described so far, an example using the binary method has been described, but the present invention can be similarly implemented using a method such as the window method. In the window method or the like, the output from the NAF random number sequence generation device 100 (NAF random number sequence generation unit 120) can be similarly applied by processing each desired bit length.

(第5の実施形態)
第3,4の実施形態では、べき乗剰余算を例にとって説明したが、楕円曲線暗号系に用いられる楕円曲線上の点のスカラー倍算で置き換えることも可能である。
(Fifth embodiment)
In the third and fourth embodiments, the power-residue calculation has been described as an example, but it is also possible to replace it by scalar multiplication of points on the elliptic curve used in the elliptic curve cryptosystem.

第5の実施形態では、第3,4の実施形態のべき乗剰余算をスカラー倍算に置き換えた例について説明する。   In the fifth embodiment, an example in which the modular exponentiation in the third and fourth embodiments is replaced with scalar multiplication will be described.

ここで、スカラー倍算について簡単に説明する。   Here, the scalar multiplication will be briefly described.

スカラー倍算とは、楕円曲線上の点Pのd倍を導出する処理をいい、d倍された点PをdPと表す。このdをスカラー値と呼ぶ。   Scalar multiplication refers to a process of deriving d times the point P on the elliptic curve, and the point P multiplied by d is represented as dP. This d is called a scalar value.

符号付2進数表現を用いた場合のスカラー倍算アルゴリズムは以下のようになる。
(Step0) Input:d,P
(Step1) 整数dを、d=Σ(di・2i)と2進数表現する(i=0〜l−1につきそれぞれkiを求める)。ここで、ki∈T,T∈[−1,0,1]とする。
(Step2) Q←P
(Step3) i=l−2から0までの間、次を繰り返す。
(Step3−1) Q←2Q
(Step3−2) di=1ならば、Q←Q+P
(Step3−3) di=−1ならば、Q←Q−P
(Step4) Output Q(=dP)
図9に、本実施形態の演算処理装置300の構成例を示す。
A scalar multiplication algorithm using a signed binary number representation is as follows.
(Step 0) Input: d, P
(Step 1) The integer d is expressed as a binary number as d = Σ (d i · 2 i ) (k i is obtained for each of i = 0 to l−1). Here, it is assumed that k i εT, Tε [−1, 0, 1].
(Step 2) Q ← P
(Step 3) The following is repeated from i = 1−2 to 0.
(Step 3-1) Q ← 2Q
(Step 3-2) If d i = 1, Q ← Q + P
(Step 3-3) If d i = −1, Q ← Q−P
(Step 4) Output Q (= dP)
FIG. 9 shows a configuration example of the arithmetic processing device 300 of this embodiment.

本実施形態では、演算処理装置300は、第1の実施形態のNAF乱数系列生成装置に相当するNAF乱数系列生成部120に、所定の演算を行う演算部106を追加した構成になっている。本実施形態では、演算部106は、スカラー倍算を行うスカラー倍算部である(スカラー倍算部は、既存のもので構わない)。   In the present embodiment, the arithmetic processing device 300 has a configuration in which a calculation unit 106 that performs a predetermined calculation is added to the NAF random number sequence generation unit 120 corresponding to the NAF random number sequence generation device of the first embodiment. In the present embodiment, the calculation unit 106 is a scalar multiplication unit that performs scalar multiplication (the scalar multiplication unit may be an existing one).

本実施形態では、第1,3の実施形態と相違する点を中心に説明する。   In the present embodiment, a description will be given focusing on differences from the first and third embodiments.

図10に、本実施形態の演算処理装置において実行される、NAF乱数系列生成及びスカラー倍算の処理手順の一例を示す。   FIG. 10 shows an example of the processing procedure of NAF random number sequence generation and scalar multiplication executed in the arithmetic processing apparatus of this embodiment.

これまでの実施形態と同様、生成すべきNAF乱数系列のビット長をlとし、内部の乱数生成部102によって生成される乱数をr∈[−1,0,1]とし、生成されるNAF乱数系列をdl-1,…,d0とする。 As in the previous embodiments, the bit length of the NAF random number sequence to be generated is l, the random number generated by the internal random number generator 102 is r∈ [-1, 0, 1], and the generated NAF random number Let the series be d l−1 ,..., D 0 .

この手順例は、スカラー値となるNAF乱数系列のビット長lと、スカラー倍される点Pとを入力したとき、スカラー倍算結果Q=dPが出力となるものであるが、その際、第1,3の実施形態と同様に、NAFの規則を満たす乱数系列を、最上位ビット(MSB)から最下位ビット(LSB)へ向かって順に生成しながら、併せて、スカラー倍算を実行するものである。   In this procedure example, when a bit length l of a NAF random number sequence that becomes a scalar value and a point P to be scalar-multiplied are input, a scalar multiplication result Q = dP is output. As in the first and third embodiments, a random number sequence satisfying the NAF rule is generated in order from the most significant bit (MSB) to the least significant bit (LSB), and at the same time, scalar multiplication is executed. It is.

本実施形態の演算処理装置にl、Pが入力されると、制御部101において、j=lが実行され、スカラー倍算部106において、Q←Οが実行される(ステップS91)。ここで、Οは無限遠点を表し、有限体上の楕円曲線の単位元である(例、P+(-P)=Ο、P+Ο=-P)。   When l and P are input to the arithmetic processing apparatus of this embodiment, j = 1 is executed in the control unit 101, and Q ← Ο is executed in the scalar multiplication unit 106 (step S91). Here, Ο represents an infinite point and is a unit element of an elliptic curve on a finite field (eg, P + (− P) = Ο, P + Ο = −P).

以降は、ループ処理となる。   Thereafter, loop processing is performed.

まず、j=j−1が実行される(ステップS92)。最初は、j=j−1=l−1となり、これによって、最上位ビット(dl-1)に焦点があてられる。 First, j = j-1 is executed (step S92). Initially, j = j−1 = l−1, which focuses on the most significant bit (d l−1 ).

次に、乱数生成部102により乱数r∈[−1,0,1]を生成する(ステップS93)。   Next, the random number generation unit 102 generates a random number rε [−1, 0, 1] (step S93).

次に、制御部101において、乱数rがNAF規則を満たすか否か調べ(ステップS94)、満たしている場合には、ステップS95へ進み、満たしていない場合には、(該乱数rを破棄して)ステップS93へ戻る。   Next, the control unit 101 checks whether or not the random number r satisfies the NAF rule (step S94). If satisfied, the process proceeds to step S95. If not, the control unit 101 discards the random number r. And return to step S93.

NAF規則を満たしていた場合には、dj=rを実行する(ステップS95)。最上位ビット(dl-1)に焦点があてられている場合には、dl-1=rが実行される。dj=rは、スカラー倍算部106へ与えられる。 If the NAF rule is satisfied, d j = r is executed (step S95). If the most significant bit (d l-1 ) is focused, d l-1 = r is executed. d j = r is given to the scalar multiplication unit 106.

スカラー倍算部106では、まず、Q←2Qの点2倍算を行う(ステップS96)。   The scalar multiplication unit 106 first performs point doubling of Q ← 2Q (step S96).

次に、先に決定されたNAF乱数系列の当該ビットdj(最初のループでは、最上位ビットdl-1)が1であるか否か調べ(ステップS97)、dj=1である場合には、ステップS98へ進み、dj=1でない場合には、ステップS99へ進む。ステップS97でdj=1でないケースで、先に決定されたNAF乱数系列の最上位ビットdjが−1であるか否か調べ(ステップS99)、dj=−1である場合には、ステップS100へ進む。 Next, it is checked whether or not the bit d j (the most significant bit d l−1 in the first loop) of the previously determined NAF random number sequence is 1 (step S97), and d j = 1. In step S98, if d j = 1 is not satisfied, step S99 follows. In the case where d j = 1 in step S97, it is checked whether or not the most significant bit d j of the previously determined NAF random number sequence is −1 (step S99). If d j = −1, Proceed to step S100.

上記の分岐でdj=1である場合には、Q←Q+Pの点加算を行い(ステップS98)、ステップS101へ進む。dj=−1である場合には、Q←Q−Pの点減算を行い(ステップS100)、ステップS101へ進む。ここで、−PはPの逆元を表している。dj=1でなく且つdj=−1でない場合(すなわち、dj=0である場合)には、何もせずに、ステップS101へ進む。 If d j = 1 in the above branch, point addition of Q ← Q + P is performed (step S98), and the process proceeds to step S101. If d j = −1, the point subtraction of Q ← Q−P is performed (step S100), and the process proceeds to step S101. Here, -P represents the inverse element of P. When d j = 1 is not satisfied and d j = −1 is not satisfied (that is, when d j = 0), the process proceeds to step S101 without doing anything.

さて、ステップS97,S99によりdjの値に応じて3分岐した処理がステップS101に集束する。 Well, 3 branched treated in accordance with the value of d j in step S97, S99 is focused to step S101.

そして、制御部101において、j=0であるか否か調べ(ステップS101)、j≠0である場合には、ステップS92へ戻り(j=j−1が実行されて、1つ下位のビットに焦点があてられる)、以降、ステップS101でj=0となるまで繰り返し同様の処理が行われる。   Then, the control unit 101 checks whether j = 0 (step S101). If j ≠ 0, the control unit 101 returns to step S92 (j = j-1 is executed and one lower bit is executed. Thereafter, the same processing is repeated until j = 0 in step S101.

また、ステップS101でj=0である場合には、求めるべき出力Q(=dP)が得られたことになり、この処理を終了する。   If j = 0 in step S101, the output Q (= dP) to be obtained has been obtained, and this process ends.

以上のように、本実施形態によれば、べき指数としてNAF乱数系列を用いたスカラー倍算の出力Q=dPを得ることができる。また、図5(b)のように、処理の高速化を図ることができる。   As described above, according to the present embodiment, it is possible to obtain a scalar multiplication output Q = dP using a NAF random number sequence as a power exponent. Further, as shown in FIG. 5B, the processing speed can be increased.

ここでは、スカラー倍算部106において最上位ビットから処理を行う方法を示したが、最上位ビットが必ず1であることを利用して、上に示したスカラー倍算アルゴリズムのように、初めにQ←Pとし、最上位ビットの次のビットから処理を行う方法も考えられる。   Here, the method of performing processing from the most significant bit in the scalar multiplication unit 106 has been shown. However, by utilizing the fact that the most significant bit is always 1, as in the scalar multiplication algorithm shown above, first, A method of performing processing from the bit next to the most significant bit with Q ← P is also conceivable.

なお、本実施形態では、第1の実施形態のNAF乱数系列生成装置(に相当するNAF乱数系列生成部120)に、所定の演算を行う演算部としてスカラー倍算を行うスカラー倍算部を組み合わせた演算処理装置を例にとって説明したが、第4の実施形態と同様に、第2の実施形態のNAF乱数系列生成装置(に相当するNAF乱数系列生成部120)に、スカラー倍算部を組み合わせた演算処理装置も実施可能である。   In the present embodiment, the NAF random number sequence generation device (corresponding to the NAF random number sequence generation unit 120) of the first embodiment is combined with a scalar multiplication unit that performs scalar multiplication as a calculation unit that performs a predetermined calculation. As in the fourth embodiment, a scalar multiplication unit is combined with the NAF random number sequence generation device (corresponding to the NAF random number sequence generation unit 120) according to the second embodiment. An arithmetic processing unit can also be implemented.

また、第1或いは第2の実施形態のNAF乱数系列生成装置に、所定の演算を行う演算部として、スカラー倍算及びべき乗剰余算部以外の演算を行う装置(その演算の過程において、NAF乱数系列生成装置により生成された乱数系列を、最上位ビット(MSB)から最下位ビット(LSB)へ向かって順に1ビット又は所定の複数ビットを使用するもの)を組み合わせた演算処理装置も実施可能である。   In addition, in the NAF random number sequence generation device of the first or second embodiment, a device that performs a calculation other than the scalar multiplication and power-residue calculation unit as a calculation unit that performs a predetermined calculation (in the process of the calculation, a NAF random number It is also possible to implement an arithmetic processing device that combines a random number sequence generated by a sequence generation device with one bit or a predetermined plurality of bits in order from the most significant bit (MSB) to the least significant bit (LSB). is there.

(バリエーション)
ところで、これまでの説明において、本実施形態のNAF乱数系列生成装置100において、乱数生成部102で生成される[−1,0,1]の3値の発生確率をある一定の比率に変更することで、生成されるNAF乱数系列の特性を変更するができるようになる。
(variation)
By the way, in the description so far, in the NAF random number sequence generation device 100 of this embodiment, the occurrence probability of the ternary value [-1, 0, 1] generated by the random number generation unit 102 is changed to a certain ratio. This makes it possible to change the characteristics of the generated NAF random number sequence.

例えば、図4のステップS45等において、1つ前(上位)のビット値が0であった場合に、次に取り得るビット値として[−1,0,1]の3値が候補となるが、乱数生成部102の出力である3値の乱数r∈[−1,0,1]の発生確率をそれぞれ1/4,1/2,1/4などとする方法が考えられる。0の発生確率が高いと、生成されるNAF乱数系列の非ゼロ係数の数が減少する傾向が見られると予想される。   For example, when the previous (upper) bit value is 0 in step S45 in FIG. 4 and the like, the next possible bit value is [-1, 0, 1], which is a ternary value. A method is conceivable in which the generation probabilities of the ternary random number rε [−1, 0, 1], which is the output of the random number generation unit 102, are set to 1/4, 1/2, 1/4, and the like, respectively. If the occurrence probability of 0 is high, it is expected that the number of non-zero coefficients of the generated NAF random number sequence tends to decrease.

図2のステップS23や図4のステップS45等において、乱数生成部102からの出力の発生確率を任意の比率に変更する方法としては種々のバリエーションが考えられるが、例えば、乱数生成部102から出力される2ビット系列が00あるいは11ならば0、01ならば1、10ならば−1と決定することで、3値の乱数r∈[−1,0,1]の発生確率をそれぞれ1/4,1/2,1/4とすることで実現可能である。   In Step S23 of FIG. 2 and Step S45 of FIG. 4 and the like, various variations can be considered as a method of changing the generation probability of the output from the random number generation unit 102 to an arbitrary ratio. For example, output from the random number generation unit 102 If the two-bit sequence to be generated is 00 or 11, it is determined to be 0, if it is 01, 1 if it is 10, and -1 if it is 1, the occurrence probability of the ternary random number rε [−1, 0, 1] will be This can be realized by setting the ratio to 4, 1/2, 1/4.

なお、以上の各機能は、ソフトウェアとして記述し適当な機構をもったコンピュータに処理させても実現可能である。
また、本実施形態は、コンピュータに所定の手順を実行させるための、あるいはコンピュータを所定の手段として機能させるための、あるいはコンピュータに所定の機能を実現させるためのプログラムとして実施することもできる。加えて該プログラムを記録したコンピュータ読取り可能な記録媒体として実施することもできる。
Each of the above functions can be realized even if it is described as software and processed by a computer having an appropriate mechanism.
The present embodiment can also be implemented as a program for causing a computer to execute a predetermined procedure, causing a computer to function as a predetermined means, or causing a computer to realize a predetermined function. In addition, the present invention can be implemented as a computer-readable recording medium on which the program is recorded.

なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。   Note that the present invention is not limited to the above-described embodiment as it is, and can be embodied by modifying the constituent elements without departing from the scope of the invention in the implementation stage. In addition, various inventions can be formed by appropriately combining a plurality of constituent elements disclosed in the embodiment. For example, some components may be deleted from all the components shown in the embodiment. Furthermore, constituent elements over different embodiments may be appropriately combined.

本発明の第1及び第2の実施形態に係るNAF乱数系列生成装置の構成例を示す図The figure which shows the structural example of the NAF random number sequence generation apparatus which concerns on the 1st and 2nd embodiment of this invention. 本発明の第1の実施形態に係るNAF乱数系列生成装置の処理手順の一例を示すフローチャートThe flowchart which shows an example of the process sequence of the NAF random number sequence generation apparatus which concerns on the 1st Embodiment of this invention. NAF規則を満たすか否かについて判定する処理手順の一例を示すフローチャートA flowchart showing an example of a processing procedure for determining whether or not the NAF rule is satisfied 本発明の第2の実施形態に係るNAF乱数系列生成装置の処理手順の一例を示すフローチャートThe flowchart which shows an example of the process sequence of the NAF random number sequence generation apparatus which concerns on the 2nd Embodiment of this invention. NAF乱数系列生成及びこれに続いて又はこれと並行して行われる演算について説明するための図The figure for demonstrating NAF random number series generation | occurrence | production and the calculation performed following or in parallel with this 本発明の第3及び第4の実施形態に係る演算処理装置の構成例を示す図The figure which shows the structural example of the arithmetic processing apparatus which concerns on the 3rd and 4th embodiment of this invention. 本発明の第3の実施形態に係る演算処理装置の処理手順の一例を示すフローチャートThe flowchart which shows an example of the process sequence of the arithmetic processing unit which concerns on the 3rd Embodiment of this invention. 本発明の第4の実施形態に係る演算処理装置の処理手順の一例を示すフローチャートThe flowchart which shows an example of the process sequence of the arithmetic processing unit which concerns on the 4th Embodiment of this invention. 本発明の第5の実施形態に係る演算処理装置の構成例を示す図The figure which shows the structural example of the arithmetic processing apparatus which concerns on the 5th Embodiment of this invention. 本発明の第5の実施形態に係る演算処理装置の処理手順の一例を示すフローチャートThe flowchart which shows an example of the process sequence of the arithmetic processing unit which concerns on the 5th Embodiment of this invention.

符号の説明Explanation of symbols

100…NAF乱数系列生成装置、102…乱数生成部、101…制御部、103…記憶部、104…出力部、105…演算部、106…スカラー倍算部、120…NAF乱数系列生成部、200,300…演算処理装置   DESCRIPTION OF SYMBOLS 100 ... NAF random number sequence generation apparatus, 102 ... Random number generation part, 101 ... Control part, 103 ... Memory | storage part, 104 ... Output part, 105 ... Operation part, 106 ... Scalar multiplication part, 120 ... NAF random number series generation part, 200 , 300 ... arithmetic processing unit

Claims (12)

最上位ビットについては1をとることのみ許され、最上位ビット以外のビットについては、その上位ビットが0の場合には−1と0と1のいずれをとることも許され、その上位ビットが−1又は1の場合には0をとることのみ許される条件を満たす乱数系列を生成する乱数系列生成装置であって、
−1、0又は1をとる3値の乱数を生成する3値乱数生成手段と、
前記条件に基づいて、前記3値乱数生成手段により逐次生成される乱数の全部又は一部をその生成順に用いながら、生成すべき任意のビット長の乱数系列の最上位ビットから最下位ビットへ向かって順に1ビットずつ前記条件を満たすように各ビットの値を決定していくことによって、前記条件を満たす乱数系列を生成する乱数系列生成手段とを備えたことを特徴とする乱数系列生成装置。
For the most significant bit, only 1 is allowed. For bits other than the most significant bit, if the upper bit is 0, it is allowed to take either -1, 0, or 1, and the upper bit is A random number sequence generation device that generates a random number sequence satisfying a condition that only allows 0 in the case of -1 or 1;
Ternary random number generating means for generating a ternary random number taking -1, 0 or 1;
Based on the above conditions, all or part of the random numbers sequentially generated by the ternary random number generation means are used in the order of generation, and from the most significant bit to the least significant bit of a random number sequence having an arbitrary bit length to be generated. And a random number sequence generating means for generating a random number sequence that satisfies the condition by determining the value of each bit so that the condition is satisfied bit by bit in order. .
前記乱数系列生成手段は、
前記3値乱数生成手段により生成された乱数を、それまでに生成した前記乱数系列のその時点における最下位ビットとして連結したならば、これによって得られた乱数系列が前記条件を満たすものになるか否かを調べ、満たすものになる場合に、該乱数を、該それまでに生成した前記乱数系列のその時点における最下位ビットとして連結する処理を、繰り返し行うことによって、前記任意のビット長の乱数系列を生成することを特徴とする請求項1に記載の乱数系列生成装置。
The random number sequence generation means includes:
If the random number generated by the ternary random number generation means is concatenated as the least significant bit of the random number sequence generated so far, does the random number sequence obtained thereby satisfy the condition? The random number having the arbitrary bit length is obtained by repeatedly performing the process of concatenating the random number as the least significant bit at the time of the random number sequence generated so far. The random number sequence generation device according to claim 1, wherein the sequence is generated.
前記乱数系列生成手段は、
生成すべき前記任意のビット長の乱数系列の最上位ビットについて、前記3値乱数生成手段により生成される乱数を用いることなく、1を与え、生成すべき前記任意のビット長の乱数系列の最上位ビット以外の各ビットについて、最上位ビットの1つ下位のビットから最下位ビットへ向かって順に、当該ビットの上位ビットが−1又は1である場合には、前記3値乱数生成手段により生成される乱数を用いることなく、当該ビットとして0を与え、当該ビットの上位ビットが0である場合には、前記3値乱数生成手段により生成された乱数を、当該ビットの値として用いることによって、前記任意のビット長の乱数系列を生成することを特徴とする請求項1に記載の乱数系列生成装置。
The random number sequence generation means includes:
The most significant bit of the random number sequence having the arbitrary bit length to be generated is given 1 without using the random number generated by the ternary random number generating means, and the most significant bit of the random number sequence having the arbitrary bit length to be generated For each bit other than the upper bit, when the upper bit of the bit is −1 or 1 in order from the bit lower than the highest bit to the lowest bit, the ternary random number generation unit generates the bit. Without using a random number to be used, when 0 is given as the bit, and when the upper bit of the bit is 0, the random number generated by the ternary random number generation means is used as the value of the bit, The random number sequence generation apparatus according to claim 1, wherein the random number sequence having an arbitrary bit length is generated.
前記乱数系列生成手段は、
生成すべき前記任意のビット長の乱数系列の最上位ビットについて、前記3値乱数生成手段により生成される乱数を用いることなく、1を与え、生成すべき前記任意のビット長の乱数系列の最上位ビットの1つ下位のビットについて、前記3値乱数生成手段により生成される乱数を用いることなく、0を与え、生成すべき前記任意のビット長の乱数系列の最上位ビット及び最上位ビットの1つ下位のビット以外の各ビットについて、最上位ビットの1つ下位のビットから最下位ビットへ向かって順に、当該ビットの上位ビットが−1又は1である場合には、前記3値乱数生成手段により生成される乱数を用いることなく、当該ビットとして0を与え、当該ビットの上位ビットが0である場合には、前記3値乱数生成手段により生成された乱数を、当該ビットの値として用いることによって、前記任意のビット長の乱数系列を生成することを特徴とする請求項1に記載の乱数系列生成装置。
The random number sequence generation means includes:
The most significant bit of the random number sequence having the arbitrary bit length to be generated is given 1 without using the random number generated by the ternary random number generating means, and the most significant bit of the random number sequence having the arbitrary bit length to be generated For the lower bit of the upper bit, 0 is given without using the random number generated by the ternary random number generation means, and the most significant bit and the most significant bit of the random number sequence of the arbitrary bit length to be generated For each bit other than the one lower-order bit, when the higher-order bit of the bit is −1 or 1 in order from the lower-most bit to the lowest-order bit, the ternary random number generation is performed. The random number generated by the ternary random number generation means when 0 is given as the bit without using the random number generated by the means and the upper bit of the bit is 0 By using as the value of the bit, the random number sequence generating device of claim 1, wherein generating a random number sequence of the arbitrary bit length.
前記3値乱数生成手段が前記乱数を生成するにあたっての−1の発生確率と0の発生確率と1の発生確率との比率を特定の比率とすることを特徴とする請求項1ないし4のいずれか1項に記載の乱数系列生成装置。   5. The ratio of the occurrence probability of −1, the probability of occurrence of 0, and the probability of occurrence of 1 when the ternary random number generation means generates the random number is set as a specific ratio. The random number sequence generation device according to claim 1. 前記乱数系列生成手段により生成された前記乱数系列を、最上位ビットから最下位ビットへ向かって順に、1ビット又は複数ビットずつ逐次出力する主力手段を更に備えたことを特徴とする請求項1ないし5のいずれか1項に記載の乱数系列生成装置。   2. The main means for sequentially outputting the random number sequence generated by the random number sequence generation means one bit or a plurality of bits sequentially from the most significant bit to the least significant bit. 6. The random number sequence generation device according to any one of 5 above. 最上位ビットについては1をとることのみ許され、最上位ビット以外のビットについては、その上位ビットが0の場合には−1と0と1のいずれをとることも許され、その上位ビットが−1又は1の場合には0をとることのみ許される条件を満たす乱数系列を生成する乱数系列生成装置における乱数系列生成方法であって、
前記乱数系列生成装置が備える3値乱数生成手段が、−1、0又は1をとる3値の乱数を生成する3値乱数生成ステップと、
前記乱数系列生成装置が備える乱数系列生成手段が、前記条件に基づいて、前記3値乱数生成ステップにおいて前記3値乱数生成手段により逐次生成される乱数の全部又は一部をその生成順に用いながら、生成すべき任意のビット長の乱数系列の最上位ビットから最下位ビットへ向かって順に1ビットずつ前記条件を満たすように各ビットの値を決定していくことによって、前記条件を満たす乱数系列を生成する乱数系列生成ステップとを有することを特徴とする乱数系列生成方法。
For the most significant bit, only 1 is allowed. For bits other than the most significant bit, if the upper bit is 0, it is allowed to take either -1, 0, or 1, and the upper bit is A random number sequence generation method in a random number sequence generation apparatus for generating a random number sequence that satisfies a condition that only allows 0 in the case of -1 or 1;
A ternary random number generation step in which the ternary random number generation means included in the random number sequence generation device generates a ternary random number taking -1 , 0 or 1;
The random number sequence generating device comprises random number sequence generating means, based on said conditions, using all or part of the random number more sequentially generated in the ternary number generating means to the generation order in the ternary random number generation steps However, by determining the value of each bit so as to satisfy the condition one bit at a time in order from the most significant bit to the least significant bit of the random number sequence having an arbitrary bit length to be generated, the condition is satisfied. A random number sequence generation method comprising: a random number sequence generation step of generating a random number sequence.
最上位ビットについては1をとることのみ許され、最上位ビット以外のビットについては、その上位ビットが0の場合には−1と0と1のいずれをとることも許され、その上位ビットが−1又は1の場合には0をとることのみ許される条件を満たす乱数系列を生成する乱数系列生成装置としてコンピュータを機能させるためのプログラムであって、
1、0又は1をとる3値の乱数を生成する3値乱数生成手段
記条件に基づいて、前記3値乱数生成手段により逐次生成される乱数の全部又は一部をその生成順に用いながら、生成すべき任意のビット長の乱数系列の最上位ビットから最下位ビットへ向かって順に1ビットずつ前記条件を満たすように各ビットの値を決定していくことによって、前記条件を満たす乱数系列を生成する乱数系列生成手段としてコンピュータを機能させることを特徴とするプログラム。
For the most significant bit, only 1 is allowed. For bits other than the most significant bit, if the upper bit is 0, it is allowed to take either -1, 0, or 1, and the upper bit is in the case of -1 or 1 a program for causing a computer to function as a random number sequence generating device for generating satisfies random number sequence it is only allowed to take 0,
- a ternary random number generating means for generating a ternary random taking 1,0 or 1,
Based on the previous SL conditions, while sequentially using all or part of the generated random numbers to the generated order, least significant bit from the most significant bits of any bit length random number sequence to be generated by the previous SL ternary number generating means A program that causes a computer to function as random number sequence generation means for generating a random number sequence that satisfies the above condition by determining the value of each bit so as to satisfy the above condition one bit at a time.
最上位ビットについては1をとることのみ許され、最上位ビット以外のビットについては、その上位ビットが0の場合には−1と0と1のいずれをとることも許され、その上位ビットが−1又は1の場合には0をとることのみ許される条件を満たす乱数系列を生成する乱数系列生成部と、該乱数系列をべき指数として使用する演算を行う演算部とを備えた演算処理装置であって、
前記乱数系列生成部は、
−1、0又は1をとる3値の乱数を生成する3値乱数生成手段と、
前記条件に基づいて、前記3値乱数生成手段により逐次生成される乱数の全部又は一部をその生成順に用いながら、生成すべき任意のビット長の乱数系列の最上位ビットから最下位ビットへ向かって順に1ビットずつ前記条件を満たすように各ビットの値を決定していくことによって、前記条件を満たす乱数系列を生成する乱数系列生成手段とを有するものであり、
前記演算部は、前記乱数系列生成手段による前記乱数系列の生成と並行して、前記乱数系列生成手段により生成された前記乱数系列を、その最上位ビットから最下位ビットへ向かって1又は複数ビットずつ順に使用しながら、特定の繰り返し処理を行う手段を有するものであることを特徴とする演算処理装置。
For the most significant bit, only 1 is allowed. For bits other than the most significant bit, if the upper bit is 0, it is allowed to take either -1, 0, or 1, and the upper bit is Arithmetic processing device comprising: a random number sequence generation unit that generates a random number sequence that satisfies conditions that are only allowed to take 0 in the case of -1 or 1; and an operation unit that performs an operation using the random number sequence as a power exponent Because
The random number sequence generation unit includes:
Ternary random number generating means for generating a ternary random number taking -1, 0 or 1;
Based on the above conditions, all or part of the random numbers sequentially generated by the ternary random number generation means are used in the order of generation, and from the most significant bit to the least significant bit of a random number sequence having an arbitrary bit length to be generated. Random number sequence generation means for generating a random number sequence satisfying the above condition by determining the value of each bit so as to satisfy the above condition one bit at a time .
The arithmetic unit, in parallel with the generation of the random number sequence by the random number sequence generation unit, the random number sequence generated by the random number sequence generation unit, one or more bits from the most significant bit toward the least significant bit An arithmetic processing apparatus comprising means for performing a specific repetitive process while sequentially using each one.
前記演算は、べき乗剰余算又は楕円曲線暗号のスカラー倍算であることを特徴とする請求項9に記載の演算処理装置。   The arithmetic processing apparatus according to claim 9, wherein the calculation is a power-residue calculation or a scalar multiplication of elliptic curve cryptography. 最上位ビットについては1をとることのみ許され、最上位ビット以外のビットについては、その上位ビットが0の場合には−1と0と1のいずれをとることも許され、その上位ビットが−1又は1の場合には0をとることのみ許される条件を満たす乱数系列を生成する乱数系列生成部と、該乱数系列をべき指数として使用する演算を行う演算部とを備えた演算処理装置における演算処理方法であって、
前記乱数系列生成部が備える3値乱数生成手段が、−1、0又は1をとる3値の乱数を生成する3値乱数生成ステップと、
前記乱数系列生成部が備える乱数系列生成手段が、前記条件に基づいて、前記3値乱数生成ステップにおいて前記3値乱数生成手段により逐次生成される乱数の全部又は一部をその生成順に用いながら、生成すべき任意のビット長の乱数系列の最上位ビットから最下位ビットへ向かって順に1ビットずつ前記条件を満たすように各ビットの値を決定していくことによって、前記条件を満たす乱数系列を生成する乱数系列生成ステップと、
前記演算部が、前記乱数系列生成ステップにおける前記乱数系列生成手段による前記乱数系列の生成と並行して、前記乱数系列生成ステップにおいて前記乱数系列生成手段により生成された前記乱数系列を、その最上位ビットから最下位ビットへ向かって1又は複数ビットずつ順に使用しながら、特定の繰り返し処理を行うステップとを有することを特徴とする演算処理方法。
For the most significant bit, only 1 is allowed. For bits other than the most significant bit, if the upper bit is 0, it is allowed to take either -1, 0, or 1, and the upper bit is Starring with the random number sequence generating unit in the case of -1 or 1 that generates a satisfying random number sequence is only allowed to take 0, a row intends calculating unit a calculation to use as an index to the random number sequence An arithmetic processing method in an arithmetic processing device,
A ternary random number generation step in which the ternary random number generation means included in the random number sequence generation unit generates a ternary random number taking -1 , 0, or 1;
The random number sequence generating unit comprises a random number sequence generating means, based on said conditions, using all or part of the random number more sequentially generated in the ternary number generating means to the generation order in the ternary random number generation steps However, by determining the value of each bit so as to satisfy the condition one bit at a time in order from the most significant bit to the least significant bit of the random number sequence having an arbitrary bit length to be generated, the condition is satisfied. A random number sequence generation step for generating a random number sequence;
The calculation unit, the random number sequence generating step in parallel with the said random number sequence according to the random number sequence generating unit generates the flop, the random number sequence generation step wherein a random number sequence further generated in the random number sequence generating means in the flop And a step of performing a specific repetitive process while sequentially using one or a plurality of bits from the most significant bit toward the least significant bit.
最上位ビットについては1をとることのみ許され、最上位ビット以外のビットについては、その上位ビットが0の場合には−1と0と1のいずれをとることも許され、その上位ビットが−1又は1の場合には0をとることのみ許される条件を満たす乱数系列を生成し、生成した該乱数系列をべき指数として使用する演算を行う演算処理装置としてコンピュータを機能させるためのプログラムであって、
1、0又は1をとる3値の乱数を生成する3値乱数生成手段
記条件に基づいて、前記3値乱数生成手段により逐次生成される乱数の全部又は一部をその生成順に用いながら、生成すべき任意のビット長の乱数系列の最上位ビットから最下位ビットへ向かって順に1ビットずつ前記条件を満たすように各ビットの値を決定していくことによって、前記条件を満たす乱数系列を生成する乱数系列生成手段
記乱数系列生成手段による前記乱数系列の生成と並行して、前記乱数系列生成手段により生成された前記乱数系列を、その最上位ビットから最下位ビットへ向かって1又は複数ビットずつ順に使用しながら、特定の繰り返し処理を行う演算手段としてコンピュータを機能させることを特徴とするプログラム。
For the most significant bit, only 1 is allowed. For bits other than the most significant bit, if the upper bit is 0, it is allowed to take either -1, 0, or 1, and the upper bit is in the case of -1 or 1 generates an satisfies random number sequence is only allowed to take 0, generated for causing a computer to function operations to be used as index to the random number sequence as a row cormorants arithmetic processor a of the program,
- a ternary random number generating means for generating a ternary random taking 1,0 or 1,
Based on the previous SL conditions, while sequentially using all or part of the generated random numbers to the generated order, least significant bit from the most significant bits of any bit length random number sequence to be generated by the previous SL ternary number generating means a random number sequence generation means by it is determined where the value of each bit so as to satisfy the condition bit by bit sequentially to generate the satisfying random sequence toward,
In parallel with the generation of the previous SL-random number sequence generating means according to said random number sequence, using the previous SL random number sequence generation the random number sequence generated by the means, in order from the most significant bit by one or more bits toward the least significant bit On the other hand, a program that causes a computer to function as arithmetic means for performing a specific repetitive process.
JP2005180747A 2005-06-21 2005-06-21 Random number sequence generation device, random number sequence generation method, arithmetic processing device, arithmetic processing method and program Expired - Fee Related JP4398904B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005180747A JP4398904B2 (en) 2005-06-21 2005-06-21 Random number sequence generation device, random number sequence generation method, arithmetic processing device, arithmetic processing method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005180747A JP4398904B2 (en) 2005-06-21 2005-06-21 Random number sequence generation device, random number sequence generation method, arithmetic processing device, arithmetic processing method and program

Publications (2)

Publication Number Publication Date
JP2007004268A JP2007004268A (en) 2007-01-11
JP4398904B2 true JP4398904B2 (en) 2010-01-13

Family

ID=37689861

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005180747A Expired - Fee Related JP4398904B2 (en) 2005-06-21 2005-06-21 Random number sequence generation device, random number sequence generation method, arithmetic processing device, arithmetic processing method and program

Country Status (1)

Country Link
JP (1) JP4398904B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101443575B1 (en) 2013-04-29 2014-09-23 한국전자통신연구원 Apparatus and method for converting random binary sequence to random integer
KR101804499B1 (en) 2016-03-23 2018-01-10 서울대학교산학협력단 Method and apparatus for converting binary number to random number or random number to binary number

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013047727A (en) * 2011-08-29 2013-03-07 Sony Corp Information processing device, information processing method, program, and recording medium
RU2542903C1 (en) * 2014-06-10 2015-02-27 Федеральное государственное казенное военное образовательное учреждение высшего профессионального образования "ВОЕННАЯ АКАДЕМИЯ СВЯЗИ имени Маршала Советского Союза С.М. Буденного" Министерства обороны Российской Федерации Random sequence generator

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101443575B1 (en) 2013-04-29 2014-09-23 한국전자통신연구원 Apparatus and method for converting random binary sequence to random integer
US9042545B2 (en) 2013-04-29 2015-05-26 Electronics And Telecommunications Research Institute Apparatus and method for converting random binary sequence into random integer
KR101804499B1 (en) 2016-03-23 2018-01-10 서울대학교산학협력단 Method and apparatus for converting binary number to random number or random number to binary number

Also Published As

Publication number Publication date
JP2007004268A (en) 2007-01-11

Similar Documents

Publication Publication Date Title
US7904498B2 (en) Modular multiplication processing apparatus
WO2015164996A1 (en) Elliptic domain curve operational method and elliptic domain curve operational unit
US7486789B2 (en) Device and method for calculation on elliptic curve
JP7031682B2 (en) Secret calculator, system, method, program
WO2001018772A1 (en) Elliptic curve generating method and device, elliptic encryption system and recording medium
JP4398904B2 (en) Random number sequence generation device, random number sequence generation method, arithmetic processing device, arithmetic processing method and program
US6480606B1 (en) Elliptic curve encryption method and system
JP4180024B2 (en) Multiplication remainder calculator and information processing apparatus
CN112887096B (en) Prime order elliptic curve generation method and system for signature and key exchange
CN116527274B (en) Elliptic curve signature verification method and system based on multi-scalar multiplication rapid calculation
JP4177526B2 (en) Multiplication residue calculation method and multiplication residue circuit
JP2004258141A (en) Arithmetic unit for multiple length arithmetic of montgomery multiplication residues
JP2004227344A (en) Multiplier and code circuit
JP5175983B2 (en) Arithmetic unit
JP2006023647A (en) Multiplication residues calculating device and information processing device
Azarderakhsh et al. Common subexpression algorithms for space-complexity reduction of Gaussian normal basis multiplication
JP2007187908A (en) Modular exponentiation calculation device and method having tolerance to side-channel attack
Ruan et al. Left-to-right optimal signed-binary representation of a pair of integers
TWI784406B (en) Modular operation circuit adopting iterative calculations
JP7146722B2 (en) SAFETY EVALUATION DEVICE, SAFETY EVALUATION METHOD AND SAFETY EVALUATION PROGRAM
CN115967493A (en) Hash pre-image zero-knowledge proof circuit generation method and device based on SM3 cryptographic key
JP2004166274A (en) Method and apparatus for basis conversion in finite field
JP4541485B2 (en) Exponentiation arithmetic unit, exponentiation remainder arithmetic unit, elliptic power multiple arithmetic unit, arrangement of those methods, and recording medium
CN110752931A (en) SM2 elliptic curve public key cryptosystem optimization method
JP5403982B2 (en) COMPUTER DEVICE, METHOD, AND PROGRAM

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061024

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090303

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090427

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090714

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090902

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

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

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

Free format text: PAYMENT UNTIL: 20121030

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131030

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees