JP2002196671A - Calculating device for executing cryptographic protocol - Google Patents

Calculating device for executing cryptographic protocol

Info

Publication number
JP2002196671A
JP2002196671A JP2001318835A JP2001318835A JP2002196671A JP 2002196671 A JP2002196671 A JP 2002196671A JP 2001318835 A JP2001318835 A JP 2001318835A JP 2001318835 A JP2001318835 A JP 2001318835A JP 2002196671 A JP2002196671 A JP 2002196671A
Authority
JP
Japan
Prior art keywords
numbers
computing device
series
large number
reciprocal
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.)
Withdrawn
Application number
JP2001318835A
Other languages
Japanese (ja)
Inventor
Erik Knudsen
クヌドセン エリック
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.)
Idemia France SAS
Original Assignee
Oberthur Card Systems SA France
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 Oberthur Card Systems SA France filed Critical Oberthur Card Systems SA France
Publication of JP2002196671A publication Critical patent/JP2002196671A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/721Modular inversion, reciprocal or quotient calculation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)
  • Error Detection And Correction (AREA)
  • Communication Control (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a calculating device for deciding the inverse of an integer modulo of a large number. SOLUTION: The device is provided with means (12, M, SE1) for providing a series of binary numbers which are prime numbers of the large number, means (Ga, 14) for dividing the number into two groups at random, and means (Mu, 16, 18) for executing the products of the numbers of each group.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、大きな数のモジュ
ーロ(modulo)の整数(integer)の逆数
(inverse)の決定を含む暗号プロトコルの少な
くとも一部分の実行のための計算装置に関する。本発明
はより特別には、この種類の逆数を素早く決定するため
の手段に関する。
FIELD OF THE INVENTION The present invention relates to a computing device for the execution of at least a part of a cryptographic protocol including the determination of the inverse of a large number of modulo integers. The invention more particularly relates to means for quickly determining this type of reciprocal.

【0002】[0002]

【従来の技術】暗号プロトコルには、例えばデジタル署
名アルゴリズム(DSA)及び楕円曲線DSA(ECD
SA)として知られるものは、反復的に大きな数のモジ
ューロのランダムな整数の逆数を計算しなければならな
いものがある。その様なプロトコルのより詳細に関して
は、IEEE発行物P1363/D13及び特別にはそ
れのセクション6.2.7及び7.27を参照された
い。前述の大きな数は本説明の残りにおいてNで表示さ
れる。
2. Description of the Related Art Cryptographic protocols include, for example, digital signature algorithm (DSA) and elliptic curve DSA (ECD).
Some, known as SA), have to repeatedly calculate the reciprocal of a large number of modulo random integers. For more details on such protocols, see IEEE Publication P1363 / D13 and specifically Sections 6.2.7 and 7.27 thereof. Such large numbers are denoted by N in the rest of the description.

【0003】2つの数の積が、該大きな数のモジューロ
の1に全く等しい場合には、2つの数はお互いの逆数
(inverse)である。例えば、数3及び5は、1
4のモジューロのお互いに逆数である。これは、3x5
=15≡1モジューロ14による。
[0003] If the product of two numbers is exactly equal to the large number modulo one, then the two numbers are inverses of each other. For example, equations 3 and 5 are 1
The modulo of 4 is the reciprocal of each other. This is 3x5
= 15≡1 according to modulo 14.

【0004】この計算を実行する1つの従来技術法は、
下記等式に基づいている。 y=x-1=xφ(N)-1[modulo]N ここでφ(N)は、Nより小さいNの素数の整数である。
これはオイラーの「ファイ(totient)」関数で
ある。Nが素数であるならば、次の簡略化が有効であ
る。 φ(N)=N−1 従って、結局 y=x-1=xN-2 二進法において、この計算は、n=log2Nとして、
nxnビットの3n/2の乗算、言い換えれば、実際に
は160の乗算のオーダー、を必要とする。
One prior art method of performing this calculation is:
Based on the following equation: y = x -1 = x φ (N) -1 [modulo] N Here, φ (N) is an integer of a prime number of N smaller than N.
This is Euler's "totient" function. If N is a prime number, the following simplification is valid. φ (N) = N−1 Thus, in the end, in y = x −1 = x N−2 binary, this calculation is given as n = log 2 N
This requires 3n / 2 multiplications of nxn bits, in other words, on the order of 160 multiplications in practice.

【0005】[0005]

【発明が解決しようとする課題】本発明は、例えばラン
ダムな数に基づいた特定の計算により、お互いにNのモ
ジューロの逆数である2つの数が同時に生成されるより
速い計算方法を提示する。
SUMMARY OF THE INVENTION The present invention proposes a faster calculation method in which two numbers, which are mutually inverse modulos of N, are simultaneously generated by a specific calculation, for example based on a random number.

【0006】[0006]

【課題を解決するための手段】より正確には、本発明
は、大きな数(N)のモジューロの整数の逆数の決定を
含む暗号プロトコルの少なくとも一部分の実行に適用さ
れる計算装置を提供しており、該大きな数より小さくそ
れの素数である、一連の二進数(S0,Sk)を提供する
ための方法であって、その一連のものからの数(S0
は該大きな数(N)のモジューロの別のものの積の逆数
である手段と、該一連の数の全てをランダムに二つのグ
ループに分割するための手段と、各グループの数の積を
実行するための手段であって、その様な積の結果がお互
いの逆数である2つの所定の数を形成する手段と、を具
備することにより特徴づけられる。
More precisely, the present invention provides a computing device adapted to implement at least a portion of a cryptographic protocol that involves determining a reciprocal of a large number (N) of modulo integers. A method for providing a series of binary numbers (S 0 , S k ) that is less than the large number and a prime number thereof, the number from the series (S 0 )
Implements the means being the reciprocal of the product of another of the large number (N) of modulos, the means for randomly dividing all of the series of numbers into two groups, and the product of the numbers of each group. Means for forming two predetermined numbers, the result of such a product being the reciprocal of each other.

【0007】2つの数が共通の約数(divisor)
を有さない場合に、その2つの数はお互いに素数であ
る。
[0007] Two numbers are a common divisor
, The two numbers are prime to each other.

【0008】計算装置の好適な実施の形態は、ランダム
な数(e)を形成するための手段と、各計算の始めに1
に初期化される所定の数(x,y)の2つを表わすため
の手段と、該ランダムな二進数のビットを一つずつ選択
し更に該一連のものから対応する数を選択するための手
段と、更に該ビットが0に等しい場合に、所定の二つの
数の一方の現在の値を該対応する数に乗算するための手
段、あるいは該ビットが1に等しい場合に、所定の二つ
の数の他方の現在の値を該対応する数に乗算するための
手段であって、該乗算の結果が所定の2つの数の一方又
は他方の新しい現在値をそれぞれ形成し、上記のオペレ
ーションが全ての前記の選択に関して実行され、2つの
数を表すための該手段に含まれる最終的な現在値が、お
互いの逆数である所定の2つの数を形成する手段と、を
具備する。
[0008] A preferred embodiment of the computing device comprises means for forming a random number (e) and one at the beginning of each computation.
Means for representing two of a predetermined number (x, y) which are initialized to the bits of the random binary number one by one and further selecting a corresponding number from the series. Means for further multiplying the corresponding value of one of the predetermined two numbers by the corresponding value if the bit is equal to zero, or two predetermined numbers if the bit is equal to one. Means for multiplying the current value of the other of the numbers by the corresponding number, the result of the multiplication respectively forming a new current value of one or the other of the two predetermined numbers, and Means for performing said selection of said two numbers, said means for representing two numbers comprising means for forming two predetermined numbers which are reciprocals of one another.

【0009】1つの実施の形態において、該一連の二進
数を提供するための手段は、その一連のものを構成する
数を記憶するための手段を具備する。これらの数は、お
互いにNのモジューロの逆数である一対の数が計算され
るその度に、再度実施される必要のない準備的な段階に
おいて事前計算される。
In one embodiment, the means for providing the series of binary numbers comprises means for storing the numbers that make up the series. These numbers are pre-calculated in a preliminary step, which does not need to be performed again, each time a pair of numbers, which are the reciprocals of N modulo each other, is calculated.

【0010】該一連のものを提供するための手段の別の
実施の形態は、リアルタイムで該一連のものの少なくと
も幾つかの数を生成するための手段を具備する。
[0010] Another embodiment of the means for providing the series comprises means for generating at least some numbers of the series in real time.

【0011】もしそのセットの数のほとんどが、即時実
行関数(fast execution functi
on)を使用して計算され得る場合には、数がメモリー
から読まれる引用された第1の実施の形態に比較して、
時間が節約される。
[0011] If most of the number of the sets is a fast execution function,
on), if the number can be calculated using the cited first embodiment, where the number is read from memory,
Time is saved.

【0012】事前計算手段は、該大きな数Nの素数であ
るセット(一式)の数を決定するための手段を具備して
おり、該セットの数は該一連の数を形成しており、更に
事前計算手段は、該大きな数Nのモジューロの該セット
の数の積の逆数を決定するための手段を具備しており、
該逆数は該一連のものから特定の数を形成し、更にそれ
を完成する。
The precomputing means comprises means for determining the number of sets (sets) which are prime numbers of said large number N, said number of sets forming said series. The pre-computing means comprises means for determining the reciprocal of the product of the number of the set of modulo of the large number N;
The reciprocal forms a particular number from the series and completes it further.

【0013】もし一連の全ての数が記憶されなければな
らないと、事前計算手段は1回使用されて、全ての結果
が記憶される。他方では、もしセットの幾つかの数が即
時計算により求められるならば、事前計算手段は、即時
実行関数の使用に基づいて、その都度再計算可能なセッ
トから数を選択するように使用される。適切な即時実行
関数を「発見」可能にすることは、該一連のものからの
数の選択である。その関数が決定され更に「実行され
る」と、一方において該セットの別の数を計算するため
の出発点を形成する、数を該セットから記憶して、更に
他方において該セット(モジューロN)の数の積の該逆
数を記憶することが、一般的に十分である。基本的に計
算により、該一連の数を求めることが必要である、全て
の要素はその後適用可能である。
If all the numbers in the series have to be stored, the precomputing means is used once and all the results are stored. On the other hand, if some numbers of the set are determined by an instantaneous calculation, the pre-computation means are used to select a number from the respective recomputable set based on the use of an immediate execution function. . Making it possible to "find" a suitable immediate execution function is a choice of numbers from the series. When the function is determined and "executed", on the one hand forms a starting point for calculating another number of the set, storing the number from the set and on the other hand the set (modulo N) It is generally sufficient to store the reciprocal of the product of the numbers Essentially by calculation, it is necessary to determine the series, all elements are then applicable.

【0014】例えば計算装置は、一方において該セット
の最小の数を、他方において該大きな数Nのモジューロ
の該セットの数の積の逆数を含む記憶手段を具備可能で
あり、更に該生成手段は、即時実行関数を連続的に適用
して、該最小の数から開始して、該セットを構成する数
の列を求めるための手段を具備可能であり、該一連のも
のは該数及び該逆数により形成される。
For example, the computing device can comprise storage means containing on the one hand the minimum number of the set and on the other hand the reciprocal of the product of the number of the large number N of modulo sets, and the generating means further comprises: , Successively applying an immediate execution function, starting from the smallest number and determining the sequence of numbers making up the set, the series comprising the number and the reciprocal. Formed by

【0015】好適な例において該即時実行関数は、前の
数に1を加算することにより各数を求める。このタイプ
の即時実行関数は、もし数Nが素数である場合には、特
に使用可能である。もしそうでない場合には、全ての連
続的な数が該大きな数Nより小さく且つそれの素数であ
る、数の範囲を発見することがしばしば可能である。
In a preferred example, the immediate execution function determines each number by adding one to the previous number. This type of immediate execution function is especially usable if the number N is a prime number. If not, it is often possible to find a range of numbers where all consecutive numbers are smaller than the large number N and are prime numbers thereof.

【0016】本発明による計算装置の種々の実施の形態
の以下の説明及び添付図面を参照することにより、本発
明はより以上に理解され、更に本発明の別の利点がより
明確に明白になる。本発明の説明は単に例としてのみの
意味で提示されている。
BRIEF DESCRIPTION OF THE DRAWINGS The invention will be better understood and further advantages of the invention will appear more clearly on reading the following description of various embodiments of a computing device according to the invention and with reference to the accompanying drawings, in which: FIG. . The description of the present invention has been presented only by way of example.

【0017】[0017]

【発明の実施の形態】上記で規定された計算装置の機能
は、以下の証明により正当化される。S0を、全てが該
大きな数Nより小さく数Nの素数である、S1からSk
でのk個の整数のセットの積のNのモジューロの逆数と
する手順と、前記整数の
DESCRIPTION OF THE PREFERRED EMBODIMENTS The functions of a computing device defined above are justified by the following proof. Making S 0 the reciprocal of the modulo N of the product of a set of k integers from S 1 to S k , all of which are prime numbers of the number N less than the large number N;

【数1】 とする手順と。S0もまたNの素数であることが示され
る。
(Equation 1) And the procedure. It is shown that S 0 is also a prime number of N.

【数2】 であることが容易に確認できる。(Equation 2) Can be easily confirmed.

【0018】結局、もしk+1個の数Siのこの積集合
(product)が2つのグループの数にランダムに
分けられる場合、及びもし2つのグループからの数のそ
れぞれの積Π1及びΠ2が得られた場合に、積Π1及びΠ2
から形成された2つの数xとyはお互いにNのモジュー
ロの逆数である。
Eventually, if this product of k + 1 numbers S i is randomly divided into two group numbers, and if the respective products Π 1 and Π 2 of the numbers from the two groups are If obtained, the products Π 1 and Π 2
The two numbers x and y formed from are the reciprocals of N modulo each other.

【0019】言い換えれば本発明の基本的な原則は、数
k及び大きな数Nを選択する手順に導いており、例え
ば、そしてその後、事前計算段階において、一方で、全
てNより小さくNの素数であるk個の数S1・・・Sk
セットを決定する手順、及び他方で、Nのモジューロの
数S1・・・Skの積の逆数を形成する追加的な数S0
決定する手順に導く。この事前計算を実行すると、一連
のk+1の二進数が適用可能である。お互いにNのモジ
ューロの逆数である2つの数x,yを決定する暗号計算
の実行において、これらの数は、例えば必要な時にはい
つでも使用できるように、記憶可能である。
In other words, the basic principle of the invention leads to a procedure for selecting a number k and a large number N, for example, and then in a pre-computation stage, on the other hand, with all prime numbers N smaller than N determination procedure, and on the other hand, an additional number S 0 forming the reciprocal of the product of the number S 1 · · · S k modulo of N to determine a set of one k-number S 1 · · · S k Guide you through the steps. Having performed this pre-computation, a series of k + 1 binary numbers is applicable. In performing cryptographic calculations to determine two numbers x, y, which are N modulo inverses of each other, these numbers can be stored, for example, so that they can be used whenever needed.

【0020】適切な計算方法は、図1のフローチャート
に従い進行可能である。手順E1は初期化段階であり、
2つの値xとyが1に初期化される(それは乗算の中立
的な要素である)。
A suitable calculation method can proceed according to the flowchart of FIG. Procedure E1 is an initialization stage,
The two values x and y are initialized to 1 (which is a neutral element of the multiplication).

【0021】また、k+1ビットの二進数eは、ランダ
ムに選択されて、各々が0又は1の値を有するk+1ビ
ット(e1・・・ek)から形成される。手順E2は計数
iを0に初期化する。手順E3は、係数iがkより大き
いかどうかを確認するテストである。正のテスト結果は
計算の終了を示す。負のテスト結果は手順E5へ導く。
手順E4は数Siを「求める」。もしSiが記憶される
と、このオペレーションは単にメモリーの数の1つを読
み出すことからなる。しかし上記で指摘したように、数
iのほとんどをリアルタイムで計算することが可能で
ある(特定の事前計算の対象であるS0を除いて)。結
局、手順E3では、メモリーの数値を読むことが出来る
か又は「即時実行」関数を使用してそれを再計算出来る
かの何れかである。手順E5は、ランダムに選択された
数eのi番ビットの値を決定する。もしビットが1に等
しい場合には、次の手順は手順E6になる。もしビット
が0に等しい場合には、次の手順はE7になる。手順E
6は、前の値yに数Siを乗算しており、その結果新し
い値yを得る。次の手順は手順E8である。手順E7
は、前の値xに数Siを乗算しており、その結果新しい
値xを得る。次の手順は手順E8である。手順E8は、
1ユニットによりiを増加させ、手順E3に戻り係数i
がkより大きいかどうかを確認する。
The k + 1-bit binary number e is randomly selected and formed from k + 1 bits (e 1 ... E k ) each having a value of 0 or 1. Procedure E2 initializes the count i to zero. The procedure E3 is a test for checking whether or not the coefficient i is larger than k. A positive test result indicates the end of the calculation. A negative test result leads to procedure E5.
Step E4 is "seek" the number S i. If S i is stored, this operation simply consists of reading one of the numbers in memory. However, as noted above, it is possible to calculate most of the numbers S i in real time (except for S 0 , which is the subject of certain pre-computations). Eventually, in step E3, either the value in memory can be read or it can be recalculated using the "immediate execution" function. The procedure E5 determines the value of the i-th bit of the number e selected at random. If the bit is equal to 1, the next procedure is procedure E6. If the bit is equal to 0, the next procedure is E7. Procedure E
6 multiplies the previous value y by the number S i , resulting in a new value y. The next procedure is procedure E8. Procedure E7
Multiplies the previous value x by the number S i , resulting in a new value x. The next procedure is procedure E8. Step E8 is
Increment i by one unit, return to procedure E3,
Is greater than k.

【0022】もしテストE4の結果が正であれば、2つ
の値xとyは、お互いにNのモジューロの逆数である所
定の2つの数を表す。
If the result of test E4 is positive, the two values x and y represent two predetermined numbers which are mutually the inverse of N modulo.

【0023】図2は、図1のフローチャートにより説明
されるアルゴリズムを実行するための手段を示すブロッ
ク線図である。ブロック12は、事前計算手段を示し、
ブロック13は固有計算手段(calculation
means proper)を示す。
FIG. 2 is a block diagram showing the means for executing the algorithm described by the flowchart of FIG. Block 12 shows the pre-computing means,
Block 13 is a unique calculation means (calculation).
Means property is shown.

【0024】事前計算手段は、該大きな数Nの素数であ
る数のためのジェネレータGpを具備する。これらの数
は、wビットの文字(ワード)の形を有する。ジェネレ
ータGpは、Nの素数の列(succession)を
生成するので、これらの数S 1・・・Si・・・Skは、
計算手段13の一部分であるメモリーMに記憶される。
The pre-calculation means calculates the large number N as a prime number.
It comprises a generator Gp for a number. These numbers
Has the form of a w-bit character (word). Genere
The data Gp represents a sequence of N prime numbers (succession).
Generate these numbers S 1... Si... SkIs
It is stored in a memory M which is a part of the calculating means 13.

【0025】これと平行して、数S1−Skは、数S0
計算する回路Invに送られる。数S0は、数S1からS
kまでの積の逆数である。この計算が完了すると、値S0
はメモリーMに記憶される。数S0−Skの値がメモリー
Mに記憶されるので、この地点において事前計算手段
は、計算手段13から切り離し可能である。計算装置
は、k+1ビットのランダム数を生成するためのランダ
ム数ジェネレータGaを具備しており、ランダム数ジェ
ネレータGaは、k+1ビットのランダム数eを入れる
ためのレジスタ14に接続する。計算工程の始めにおい
てジェネレータGaは、ランダム数をレジスタ14内に
記入する。
In parallel, the numbers S 1 -S k are sent to a circuit Inv for calculating the number S 0 . The number S 0 is calculated from the numbers S 1 to S
It is the reciprocal of the product up to k . When this calculation is completed, the value S 0
Are stored in the memory M. Since the value of the number S 0 -S k is stored in the memory M, the pre-calculation means can be separated from the calculation means 13 at this point. The computing device comprises a random number generator Ga for generating a k + 1-bit random number, which is connected to a register 14 for storing a k + 1-bit random number e. At the beginning of the calculation process, the generator Ga writes a random number in the register 14.

【0026】メモリーMは、その出力が乗算器Muの入
力の1つに接続する、セレクタSE1に接続する。セレ
クタSE2は、乗算器Muの別の入力に接続するその出
力を有する。乗算器の出力は、2つのレジスタ16,1
8のそれぞれの入力に接続する2つの出力を有するルー
タAIの入力に接続しており、該2つのレジスタ16,
18には、一連のS0−Skからの数の積の結果生成され
る2つの変数xとyが記入される。レジスタxとyの二
つの出力は、セレクタSE2の2つの入力にループして
いる。レジスタ14をビットごとに読みとることによ
り、セレクタSE2とルータAIの両者の設定を制御す
る。
The memory M is connected to a selector SE1 whose output is connected to one of the inputs of the multiplier Mu. Selector SE2 has its output connected to another input of multiplier Mu. The output of the multiplier is two registers 16, 1
8 connected to the input of a router AI having two outputs connected to respective inputs of the two registers 16,
At 18 are entered two variables x and y which are the result of the product of numbers from the series S 0 -S k . The two outputs of registers x and y are looped to the two inputs of selector SE2. By reading the register 14 bit by bit, the setting of both the selector SE2 and the router AI is controlled.

【0027】より正確には、レジスタ14のビット、e
0・・・ei・・・ekは、それぞれの反復法(iter
ation)で精査されて、もし関連するビットei
1に等しい場合には、セレクタSE2はレジスタ16の
出力を乗算器Muの入力に接続し、ルータAIは乗算器
Muの出力をレジスタ16の入力に接続する。同様にも
しeiが0に等しい場合には、セレクタSE2はレジス
タ18の出力を乗算器Muの入力に接続し、ルータAI
は乗算器Muの出力をレジスタ18の入力に接続する。
More precisely, the bits of register 14, e
0 ··· e i ··· e k, each iteration (iter
If the associated bit e i is equal to one, selector SE2 connects the output of register 16 to the input of multiplier Mu and router AI connects the output of multiplier Mu to the input of register Mu. Connect to input. Similarly, if e i is equal to 0, selector SE2 connects the output of register 18 to the input of multiplier Mu, and the router AI
Connects the output of the multiplier Mu to the input of the register 18.

【0028】これと平行して、各反復法において、セレ
クタSE1は、数S0−Skを乗算器Muの別の入力に連
続して一つずつ送る。
In parallel with this, in each iteration, the selector SE1 sends the numbers S 0 -S k one after the other to another input of the multiplier Mu.

【0029】結局各反復法において、レジスタ16又は
18の内容は(eiの値に依存して)、数Siにより乗算
されて、その結果は同じレジスタに記入されて、前の値
に上書きされる。全ての数S0−Skが処理されると、レ
ジスタ16と18は、お互いにNのモジューロの逆数で
ある2つの数を含む。
Eventually, at each iteration, the contents of register 16 or 18 (depending on the value of e i ) are multiplied by the number S i , and the result is placed in the same register, overwriting the previous value. Is done. When all the numbers S 0 -S k have been processed, registers 16 and 18 contain two numbers that are N modulo inverses of each other.

【0030】図3は、数Siを求める方法において基本
的に図2の実施の形態とは異なる実施の形態を示す。全
体的に、事前計算手段12は、図1の実施の形態のもの
と同一であり、即ちそれらは該大きな数Nの素数である
数を生成するためのジェネレータ、及び数S1−Skから
数S0を生成するための回路Invを基本的に具備す
る。
FIG. 3 shows an embodiment basically different from the embodiment of FIG. 2 in the method for obtaining the number S i . Overall, the pre-computing means 12 is identical to that of the embodiment of FIG. 1, ie they are generators for generating numbers that are prime numbers of the large number N, and from the numbers S 1 -S k It basically comprises a circuit Inv for generating the number S 0 .

【0031】しかしこの例において、数Nは選ばれた素
数である。結局連続した数Siの任意の列は、Nの素数
である一連の数である。従って、前に求めた数Siに1
を加算することにより数の1つを簡単に求める、即時実
行関数を形成することが可能である。 Si+1=Si+1
However, in this example, the number N is a chosen prime number. After all, any sequence of consecutive numbers S i is a series of numbers that are prime numbers of N. Therefore, the previously obtained number S i is 1
, It is possible to form an immediate execution function that simply finds one of the numbers. S i + 1 = S i +1

【0032】この場合において該セットの最小数S1
任意の選択された数である。従って、事前計算手段12
により決定された数Siのセットが、計算手段13によ
る使用のために送られて記憶される必要はない。該セッ
トの最小数S1と回路Invにより計算された数S0を記
憶することで単に十分である。
In this case, the minimum number S 1 of the set is any selected number. Therefore, the pre-calculation means 12
Set of numbers S i determined by the need not to be stored is sent for use by computing means 13. It is simply sufficient to store the minimum number S 1 of the set and the number S 0 calculated by the circuit Inv.

【0033】これらの2つの数が計算手段13の2つの
レジスタ20,21に記憶されたとすると、即時実行関
数を適用するための手段22を計算手段に加えることは
十分であり、ここで前記関数は、Si+1=Si+1 であ
る。
Assuming that these two numbers are stored in the two registers 20 and 21 of the calculating means 13, it is sufficient to add means 22 for applying an immediate execution function to the calculating means. Is S i + 1 = S i +1.

【0034】これらの条件の下でセレクタSE1は、手
段22の出力及び2つのレジスタ20と21の出力に接
続される。言い換えれば、一連の数S0・・・Skにおい
て数S0とS1だけがレジスタに記憶され、他の全て、S
2からSkは、手段22によりリアルタイムで計算され
る。数Siのより大きな部分を上記で示された種類の即
時計算により求めることは、メモリー内の各数を読み込
むことが必要とされた前の実施の形態に比較して時間が
節約されることが分かる。
Under these conditions, the selector SE1 is connected to the output of the means 22 and to the outputs of the two registers 20 and 21. In other words, in a series of numbers S 0 ... S k , only the numbers S 0 and S 1 are stored in the register, and all others S
2 to S k are calculated by means 22 in real time. Determining a larger part of the number S i by an immediate calculation of the kind indicated above saves time as compared to the previous embodiment where reading each number in memory was required. I understand.

【0035】セレクタSE1に接続する手段から離れ
て、計算手段13の残りは、図2の実施の形態と同一で
あり、この理由から再度詳細には説明されない。その機
能もまた、セレクタSE1が計算の各反復において連続
する数Siを乗算器Muの対応する入力に「事前設定す
ること」が可能である前提で、同一である。
Apart from the means connecting to the selector SE1, the rest of the calculating means 13 is identical to the embodiment of FIG. 2, and for this reason will not be described again in detail. Its function The selector SE1 is in the corresponding assumption it is possible "to preset" input of the multiplier Mu a number S i consecutive in each iteration of the calculation is the same.

【0036】図3の実施の形態はまた、数Nが素数では
ない場合でさえも満足するものであり得ることが理解さ
れるべきである。この場合において、数Nの全て素数で
あるk個の連続的整数の列(succession)を
決定することが一般的に可能である。
It should be understood that the embodiment of FIG. 3 may also be satisfactory even when the number N is not a prime number. In this case, it is generally possible to determine a succession of k consecutive integers, all prime numbers of the number N.

【0037】この条件は、もしNの最小素数因子(ta
ctor)(pで表示された)が、S1+(k−1)よ
り大きい場合には、特に適合する。
This condition is satisfied if the minimum prime factor of N (ta
ctor) (displayed in p) is, S 1 + (k-1 ) is greater than the particularly adapted.

【0038】この場合、pは素数であるので、数列
1,S1+1,・・・S1+k−1は、pの素数、従っ
てNの素数、であるk個の連続する整数から形成され
る。この場合に、既に記述したように、即時実行関数を
適用するための手段20が使用可能であり、即ちその関
数は以下である。 Si+1=Si+1
In this case, since p is a prime number, the sequence S 1 , S 1 +1... S 1 + k−1 is formed from k consecutive integers, which are prime numbers of p, and thus of N. Is done. In this case, as already described, a means 20 for applying an immediate execution function is available, ie the function is: S i + 1 = S i +1

【0039】もし上記条件が満たされない場合には、言
い換えればもしp≦S1+(k−1)であれば、pが素
数であり、その都度1がSiに加算されるので、S1はp
の素数であるように選択される。テストが、求められた
数がpの素数であるかを決定するために実施されて、p
の素数である数だけが保有される。この場合に一連の連
続的な数の代わりに、全てがNの素数である連続的な数
の多くのグループが求められる。即時実行関数の定義
を、S2からSkまでの数のセットをリアルタイムで、必
要な時はいつでも再計算可能であるように従って修正す
ることが適当である。
[0039] If when the above conditions are not met, if if p ≦ S 1 + In other words (k-1), p is a prime number, because each time one is added to the S i, S 1 Is p
Is chosen to be a prime number. A test is performed to determine if the determined number is a prime number of p and p
Only the numbers that are primes of are retained. In this case, instead of a series of consecutive numbers, many groups of consecutive numbers, all of which are prime numbers of N, are determined. The definition of immediate execution function, the number of sets from S 2 to S k in real time, it is appropriate to modify at any time according to a possible recalculation when necessary.

【0040】より一般的には、ジェネレータGpにより
作られた(delivered)Nの素数の適切な選択
から即時実行関数を形成可能であるときは常に、図3を
参照して説明された種類の実施の形態が使用可能であ
る。
More generally, whenever an immediate execution function can be formed from an appropriate choice of prime numbers of N derived by generator Gp, an implementation of the type described with reference to FIG. Can be used.

【0041】該大きな数Nより小さく全てそれの素数で
ある、より小さな数から該一連の数を選択することが好
都合であることが更に理解されるべきである。関連する
大きさ(magnitude)のオーダーのアイディア
を与えるために、該大きな数Nは、163ビットの二進
数であることが可能であり、数wは32ビットの二進数
であることが可能であり、更にkは160に等しいこと
が可能である。
It should further be appreciated that it is advantageous to select the series from smaller numbers, all smaller than the large number N, all of which are prime numbers. The large number N can be a 163-bit binary number and the number w can be a 32-bit binary number to give an idea of the order of magnitude associated. , And k can be equal to 160.

【図面の簡単な説明】[Brief description of the drawings]

【図1】図1は、大きな数Nのお互いのモジューロの逆
数である、2つの数を求めるための種々の計算手順を示
すフローチャートである。
FIG. 1 is a flowchart illustrating various calculation procedures for determining two numbers, which are the reciprocals of a large number N of each other modulo.

【図2】図2は、本発明に従う計算装置の第1の実施の
形態のブロック線図である。
FIG. 2 is a block diagram of a first embodiment of a computing device according to the present invention.

【図3】図3は、本発明に従う計算装置の別の実施の形
態のブロック線図である。
FIG. 3 is a block diagram of another embodiment of the computing device according to the present invention.

【符号の説明】[Explanation of symbols]

12…事前計算手段 13…固有計算手段 14…レジスタ 16…レジスタ 18…レジスタ Gp…ジェネレータ Inv…回路 Ga…ランダム数ジェネレータ M…メモリー SE1…セレクタ SE2…セレクタ Mu…乗算器 AI…ルータ 12 Pre-calculation means 13 Specific calculation means 14 Register 16 Register 18 Register Gp Generator Inv Circuit Ga Random number generator M Memory SE1 Selector SE2 Selector Mu Multiplier AI Router

Claims (13)

【特許請求の範囲】[Claims] 【請求項1】 大きな数(N)のモジューロの整数の逆
数の決定を含む暗号プロトコルの少なくとも一部分の実
行に適用される計算装置において、この計算装置が、 該大きな数より小さくそれの素数である、一連の二進数
(S0,Sk)を提供するための手段(12,M、SE
1)であって、その一連のものからの数(S0)は該大
きな数(N)のモジューロの別のものの積の逆数である
手段と、 該一連の数の全てをランダムに二つのグループに分割す
るための手段(Ga,14)と、 各グループの数の積を実行するための手段(Mu,1
6,18)であって、その様な積の結果がお互いの逆数
である2つの所定の数を形成する手段と、 を具備することを特徴とする計算装置。
1. A computing device adapted to execute at least a part of a cryptographic protocol comprising determining a reciprocal of a large number (N) of modulo integers, the computing device being a prime number less than the large number. , Means for providing a series of binary numbers (S 0 , S k ) (12, M, SE
1) wherein the number (S 0 ) from the series is the reciprocal of the product of another of the modulo of the large number (N); (Ga, 14) and means (Mu, 1) for executing the product of the numbers of the groups.
6, 18), wherein means for forming two predetermined numbers whose result of such a product is the reciprocal of each other.
【請求項2】 ランダムな数(e)を生成するための手
段(Ga,14)と、 各計算の始めに1に初期化される所定の数(x,y)の
2つを表わすための手段(16,18)と、 該ランダムな二進数のビットを一つずつ選択し更に該一
連のものから対応する数を選択するための手段(SE
1,SE2)と、更に該ビットが0に等しい場合に、所
定の二つの数の一方の現在の値を該対応する数に乗算す
るための手段(Mu)、あるいは該ビットが1に等しい
場合に、所定の二つの数の他方の現在の値を該対応する
数に乗算するための手段(Mu)であって、該乗算の結
果が所定の2つの数の一方又は他方の新しい現在値をそ
れぞれ形成し、上記のオペレーションが全ての前記の選
択に関して実行され、2つの数を表す該手段に含まれる
最終的な現在値が、お互いの逆数である所定の2つの数
を形成する手段(Mu)と、を具備することを特徴とす
る請求項1に記載の計算装置。
2. Means (Ga, 14) for generating a random number (e) and two for representing a predetermined number (x, y) initialized to 1 at the beginning of each calculation. Means (16, 18) and means (SE) for selecting the bits of the random binary number one by one and further selecting the corresponding number from the series.
1, SE2) and means (Mu) for multiplying the corresponding value by the current value of one of the predetermined two numbers if the bit is equal to 0, or if the bit is equal to 1 Means (Mu) for multiplying said corresponding number by the current value of the other of the two predetermined numbers, wherein the result of said multiplication is the new current value of one or the other of the predetermined two numbers Means (Mu), each forming and the above operation being performed on all said selections, wherein the final current value contained in said means representing two numbers forms a predetermined two numbers which are reciprocals of each other. 2. The computing device according to claim 1, further comprising:
【請求項3】 計算装置が、該一連の数を事前計算する
ための事前計算手段(12)を、それらを記憶するため
に、具備するか又は関連することを特徴とする請求項1
又は2に記載の計算装置。
3. The computing device according to claim 1, wherein the computing device comprises or is associated with pre-calculating means for pre-calculating the series of numbers for storing them.
Or the computing device according to 2.
【請求項4】 該事前計算手段は、該大きな数(N)の
素数であるセットの数を決定するための手段(Gp)を
具備しており、該セットは該一連の数を形成しており、
更に事前計算手段は、該大きな数(N)のモジューロの
該セットの数の積の逆数を決定するための手段を具備し
ており、該逆数は該一連のものから数を形成することを
特徴とする請求項3に記載の計算装置。
4. The pre-computing means comprises means (Gp) for determining a number of sets that are prime numbers of said large number (N), said sets forming said series of numbers. Yes,
Further, the pre-computing means comprises means for determining a reciprocal of a product of said set of modulo of said large number (N), said reciprocal forming a number from said series. The computing device according to claim 3, wherein:
【請求項5】 該一連のものを形成するための該手段
は、それの数を記憶するための手段(M)を具備するこ
とを特徴とする請求項1から4のいずれか一項に記載の
計算装置。
5. A method according to claim 1, wherein said means for forming said series comprises means (M) for storing a number thereof. Computing device.
【請求項6】 該一連のものを形成するための該手段
は、該一連の数の幾つかのものをリアルタイムで生成す
るための手段を具備することを特徴とする請求項1から
4のいずれか一項に記載の計算装置。
6. A method according to claim 1, wherein said means for forming said series comprises means for generating in real time some of said series. The computing device according to claim 1.
【請求項7】 計算装置は、一方において該セットの最
小の数を、他方において該大きな数(N)のモジューロ
の該セットの数の積の逆数を含む記憶手段(20,2
1)を具備しており、更に該生成手段は、即時実行関数
を連続的に適用して、該最小の数から開始して、該セッ
トを構成する数の列を求めるための手段(22)を具備
しており、 該一連のものは該数及び該逆数により形成される、 ことを特徴とする請求項6に記載の計算装置。
7. The computing means comprises a storage means (20,2) containing, on the one hand, the minimum number of said set and, on the other hand, the reciprocal of the product of said large number (N) of modulo sets.
(22) further comprising: (22) the generating means for continuously applying an immediate execution function to obtain a sequence of numbers constituting the set, starting from the minimum number. The computing device according to claim 6, wherein the sequence is formed by the number and the reciprocal.
【請求項8】 該即時実行関数は、前の数に1を加算す
ることにより各数を求めることを特徴とする請求項7に
記載の計算装置。
8. The computing device according to claim 7, wherein the immediate execution function obtains each number by adding 1 to a previous number.
【請求項9】 該大きな数(N)が、選択された素数で
あり、該記憶手段に含まれる該セットの該最小の数が任
意の選択された数であることを特徴とする請求項8に記
載の計算装置。
9. The system according to claim 8, wherein said large number (N) is a selected prime number, and said minimum number of said set contained in said storage means is any selected number. A computing device according to claim 1.
【請求項10】 該大きな数(N)が任意の選択された
数であり、該セットの該最小の数が、全てが該大きな数
の素数である連続的な整数の範囲内で選択された連続的
な数の前記のセットの最小の数であることを特徴とする
請求項8に記載の計算装置。
10. The large number (N) is any selected number and the minimum number of the set is selected within a range of consecutive integers that are all prime numbers of the large number. 9. The computing device according to claim 8, wherein the minimum number of said set of consecutive numbers.
【請求項11】 該一連の数は、該大きな数(N)の素
数である最小の数から選択されることを特徴とする請求
項1から10のいずれか一項に記載の計算装置。
11. The computing device according to claim 1, wherein the series of numbers is selected from the smallest number that is a prime number of the large number (N).
【請求項12】 暗号装置が、DSA暗号プロトコルを
実施するためで且つ請求項1から11にいずれか一項に
記載の計算装置を具備するのための手段を具備すること
を特徴とする暗号装置。
12. A cryptographic device comprising means for implementing the DSA cryptographic protocol and comprising a computing device according to any one of claims 1 to 11. .
【請求項13】 暗号装置が、ECDSA暗号プロトコ
ルを実施するためで且つ請求項1から11にいずれか一
項に記載の計算装置を具備するのための手段を具備する
ことを特徴とする暗号装置。
13. A cryptographic device comprising means for implementing the ECDSA cryptographic protocol and comprising a computing device according to any one of claims 1 to 11. .
JP2001318835A 2000-10-19 2001-10-17 Calculating device for executing cryptographic protocol Withdrawn JP2002196671A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0013373 2000-10-19
FR0013373A FR2815734B1 (en) 2000-10-19 2000-10-19 UNIT OF CALCULATION FOR THE EXECUTION OF A CRYPTOGRAPHIC PROTOCOL

Publications (1)

Publication Number Publication Date
JP2002196671A true JP2002196671A (en) 2002-07-12

Family

ID=8855495

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001318835A Withdrawn JP2002196671A (en) 2000-10-19 2001-10-17 Calculating device for executing cryptographic protocol

Country Status (9)

Country Link
US (1) US7457408B2 (en)
EP (1) EP1199628B1 (en)
JP (1) JP2002196671A (en)
AT (1) ATE325381T1 (en)
CA (1) CA2359198C (en)
DE (1) DE60119254T2 (en)
ES (1) ES2260181T3 (en)
FR (1) FR2815734B1 (en)
HK (1) HK1047170B (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090006176A (en) * 2006-04-06 2009-01-14 엔엑스피 비 브이 Secure decryption method
FR2946207A1 (en) * 2009-05-28 2010-12-03 Proton World Internat Nv PROTECTION OF FIRST NUMBER GENERATION FOR RSA ALGORITHM

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5414772A (en) * 1993-06-23 1995-05-09 Gemplus Development System for improving the digital signature algorithm
DE69828150T2 (en) * 1998-03-30 2005-12-15 Rainbow Technologies Inc., Irvine Computationally efficient modular multiplication method and device
AU2001289157A1 (en) * 2000-08-29 2002-03-13 Ntru Cryptosystems, Inc. Speed enhanced cryptographic method and apparatus
DE10220262A1 (en) * 2002-05-06 2003-11-27 Giesecke & Devrient Gmbh Calculation of the modular inverse of a value
JP4351987B2 (en) * 2004-11-19 2009-10-28 株式会社東芝 Montgomery conversion device, arithmetic device, IC card, encryption device, decryption device, and program

Also Published As

Publication number Publication date
EP1199628A1 (en) 2002-04-24
DE60119254T2 (en) 2007-02-15
ES2260181T3 (en) 2006-11-01
US20020061104A1 (en) 2002-05-23
CA2359198C (en) 2007-12-04
HK1047170B (en) 2006-08-04
FR2815734A1 (en) 2002-04-26
HK1047170A1 (en) 2003-02-07
FR2815734B1 (en) 2006-07-28
DE60119254D1 (en) 2006-06-08
ATE325381T1 (en) 2006-06-15
EP1199628B1 (en) 2006-05-03
US7457408B2 (en) 2008-11-25
CA2359198A1 (en) 2002-04-19

Similar Documents

Publication Publication Date Title
JP5116770B2 (en) Module reduction using folding
TWI386818B (en) Cryptographically secure modular polynomial reduction method and computational hardware for executing the same
JP5073669B2 (en) Simultaneous scalar multiplication method
EP0933695A2 (en) IC card equipped with elliptic curve encryption processing facility
US6611597B1 (en) Method and device for constructing elliptic curves
JP4137385B2 (en) Encryption method using public and private keys
US7372960B2 (en) Method and apparatus for performing finite field calculations
EP3115887B1 (en) Method, device and non-transitory computer-readable medium for cryptographic computation
EP3276880A1 (en) Efficient ecdsa signature and verification
US20100061547A1 (en) Method of and apparatus for the reduction of a polynomial in a binary finite field, in particular in the context of a cryptographic application
CN109818944B (en) Cloud data outsourcing and integrity verification method and device supporting preprocessing
US20170026178A1 (en) Computational method, computational device andcomputer software product for montgomery domain
JP2002196671A (en) Calculating device for executing cryptographic protocol
Knežević et al. Speeding up bipartite modular multiplication
JP2000321979A (en) Polynomial arithmetic device, device for calculating order of elliptic curve, device for generating elliptic curve, and cryptographic system for elliptic curve
JP3779479B2 (en) IC card
JP2002304122A (en) Device for discriminating element on partial group of rational point group on curve, program thereof, and recording medium thereof
CN117254909B (en) Computing method, system and storage medium for rapidly generating high-probability primitive root
JP2007503036A (en) Method for performing modular multiplication and method for performing Euclidean multiplication using 2N-bit numbers
JP3136709B2 (en) Exponentiation unit
CN116034339A (en) Method for generating pseudo random number, random number generator, and computer readable medium
Mangır Large sparse matrix-vector multiplication over finite fields
JP2003043915A (en) Arithmetic unit, calculation method and calculation program
WO2023080892A1 (en) Method and architecture for computing extension field arithmetic in a cryptosystem
JP2004233530A (en) Method and device for calculating elliptic product-sum operation, program and recording medium

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20050104