JP2006078943A - Power arithmetic unit - Google Patents
Power arithmetic unit Download PDFInfo
- Publication number
- JP2006078943A JP2006078943A JP2004265079A JP2004265079A JP2006078943A JP 2006078943 A JP2006078943 A JP 2006078943A JP 2004265079 A JP2004265079 A JP 2004265079A JP 2004265079 A JP2004265079 A JP 2004265079A JP 2006078943 A JP2006078943 A JP 2006078943A
- Authority
- JP
- Japan
- Prior art keywords
- unit
- output
- input
- binary representation
- arithmetic
- 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.)
- Pending
Links
Images
Abstract
Description
本発明は情報セキュリテイ技術としての暗号技術に関するものであり,特に,楕円曲線,超楕円曲線上の離散対数問題を用いて実現する鍵共有,暗号及びデジタル署名技術に関するものである. The present invention relates to encryption technology as information security technology, and more particularly to key sharing, encryption, and digital signature technology realized using a discrete logarithm problem on elliptic curves and hyperelliptic curves.
秘密通信方式とは,特定の通信相手以外に通信内容を漏らすことなく通信を行なう技術である.またデジタル署名方式とは,通信相手に通信内容の正当性を証明する技術である.この応用として認証方式があり,これは通信相手(機器)に,正しいユーザあるいは機器であることを保証する技術である.これらの技術は,公開鍵暗号系とよばれる暗号方式で実現できる.公開鍵暗号は通信相手が多数の時,通信相手ごとに異なる暗号鍵を容易に管理するための方式であり,多数の通信相手と通信を行なうのに不可欠な基盤技術である.簡単に説明すると,これは暗号鍵と復号鍵が異なり,復号鍵は秘密にするが,暗号鍵を公開する方式である.この公開鍵暗号の安全性の根拠に用いられるものに有限群を利用した離散対数問題がある.離散対数問題が定義される有限群として,有限体,有限体上の楕円曲線,有限体上の超楕円曲線などがある.特に,よく利用されるのが有限体上の楕円曲線上の離散対数問題である.これはニイルコブリッツ著 ”ア コウス イン ナンバア セオリイ アンド クリプトグラヒイ”(Neal
Koblitz , " A Course in Number theory and
Cryptography", Spinger-Verlag,1987)に詳しく述べられている.
楕円曲線上の離散対数問題(ECDLP)を以下に述べる.
The secret communication method is a technology that allows communication without leaking the contents of communication to other than a specific communication partner. The digital signature method is a technology that proves the correctness of the communication contents to the communication partner. An application of this is an authentication method, which is a technology that guarantees that the communication partner (device) is the correct user or device. These technologies can be realized by an encryption method called public key cryptosystem. Public key cryptography is a method for easily managing different encryption keys for each communication partner when there are many communication partners, and is an indispensable basic technology for communicating with many communication partners. This is a method that makes the decryption key secret, but the encryption key is made public. Discrete logarithm problem using a finite group as the basis for the security of this public key cryptosystem. There is. Finite groups that define discrete logarithm problems include finite fields, elliptic curves over finite fields, and hyperelliptic curves over finite fields. In particular, the discrete logarithm problem on an elliptic curve over a finite field is often used. This is a work by Niil Kobritz, “A Cous in Numbers Theory and Cryptograhi” (Neal
Koblitz, "A Course in Number theory and
Cryptography ", Spinger-Verlag, 1987).
The discrete logarithm problem (ECDLP) on elliptic curves is described below.
ECDLP
E(Fp)を有限体 Fp 上定義された楕円曲線Eとし,Eの位数が大きな素数で割れる元Gをベースポイントとする.このとき,Eの与えられた元Yに対して,
Y=xG
となる整数xが存在するならばxを求めよ.
ECDLP
Let E (Fp) be the elliptic curve E defined on the finite field Fp, and let the base point be an element G whose E's order is divided by a large prime number.
Y = xG
Find an integer x such that x.
有限群上の離散対数問題を利用した技術に,公開鍵暗号,ディジタル署名,鍵共有などがある.ここでは簡単のために,有限群上の演算を加法で表記する.このときどの技術も,有限群の元Gと秘密のデータdとのべき演算,すなわち dG = G+ ・・・+G の演算を必要とし,さらにその安全性はdG 及び G の結果からd が容易に求められないことに帰着する.これがいわゆる離散対数問題である.一般に,離散対数問題の安全性は数学的問題であり,計算量的に多項式時間で解読するアルゴリズムが古くから研究されている.離散対数問題は,その研究の歴史にも関わらず,多項式時間のアルゴリズムが発見されていないことに高い安全性及び信頼性が置かれてきた.ところが,近年,dGを計算するICカードなどの消費電力を測ることにより,その軽微な情報を利用して,実際にdを求めるサイドチャネル攻撃が提案された.サイドチャネル攻撃は,消費電力の測定以外の特殊な機械を仮定せず,測定した消費電力を利用してアルゴリズム的に解読する攻撃であり,実質的な意味で脅威といえる.サイドチャネル攻撃は,離散対数問題に基づく方式の基本演算であるべき演算
dG の計算を IC カードで行うときに観測される消費電力を測定し,dの値を推測する攻撃である.べき演算は,加算 G+G と2倍算 2G の二つの演算の繰り返しで実現され,加算と
2 倍算の電力消費量の違いがサイドチャネル攻撃の大きな原因となる.サイドチャネル攻撃につては,以下の論文が詳しい.
J. Coron, "Resistance against differential power analysis for
elliptic curve cryptosystem", CHES'99, Lecture Notes in Computer Science,
1717(1999), Springer-Verlag, 292--302.
Technologies using the discrete logarithm problem over finite groups include public key cryptography, digital signatures, and key sharing. Here, for the sake of simplicity, operations on finite groups are expressed by addition. At this time, each technique requires a power operation between the finite group element G and the secret data d, that is, the operation dG = G + ・ ・ ・ + G, and the safety of d is easy from the result of dG and G. It comes down to what is not asked for. This is the so-called discrete logarithm problem. In general, the safety of discrete logarithm problems is a mathematical problem, and algorithms that decipher computationally in polynomial time have been studied for a long time. The discrete logarithm problem has been placed on a high level of security and reliability due to the fact that no polynomial-time algorithm has been discovered in spite of its research history. In recent years, however, side channel attacks have been proposed that actually measure d by measuring the power consumption of IC cards and other devices that calculate dG. A side channel attack is an attack that uses a measured power consumption to decipher algorithmically without assuming a special machine other than the power consumption measurement. A side channel attack is an operation that should be the basic operation of a method based on the discrete logarithm problem.
This is an attack that estimates the value of d by measuring the power consumption observed when the dG calculation is performed with an IC card. The power operation is realized by repeating two operations of addition G + G and doubling 2G.
The difference in power consumption due to doubling is a major cause of side channel attacks. The following papers are detailed on side channel attacks.
J. Coron, "Resistance against differential power analysis for
elliptic curve cryptosystem ", CHES'99, Lecture Notes in Computer Science,
1717 (1999), Springer-Verlag, 292--302.
サイドチャネル攻撃は,単純消費電力解析(SPA), 差分消費電力解析(DPA)と呼ばれる2種類の攻撃からなる.SPA は,dG の処理が鍵 d に依存して消費電力の違いを生むことを利用する攻撃で,一回の消費電力の測定により鍵を推測する.一方,DPAは,攻撃者が適応的に異なる
G の値をICカードに入力し,その処理に掛かる消費電力量を測定し,その違いにより鍵を推測する.耐 SPA アルゴリズムとしては,鍵 d に依存せずにべき演算が実現される加算連鎖を構築すればよいが,低速となる問題がある.耐
DPA アルゴリズムとしては,dG の演算の度に異なる消費電力を出力するように加算連鎖を構築するとよいが,耐SPAアルゴリズムと同様,低速になるという問題をもつ.
これら耐SPA,DPAアルゴリズムに関しては以下の論文が詳しい.
M. Joye and C. Tymen, "Protections against Differential Analysis
for Elliptic Curve Cryptosystem", CHES2001, Lecture Notes in Computer
Science, 2162(2001), Springer-Verlag, 377--390.
Side-channel attacks consist of two types of attacks called simple power analysis (SPA) and differential power analysis (DPA). SPA is an attack that uses the fact that dG processing depends on the key d to produce a difference in power consumption. The SPA estimates the key by measuring the power consumption once. On the other hand, in DPA, attackers are adaptively different
The value of G is input to the IC card, the power consumption for the processing is measured, and the key is inferred from the difference. As an anti-SPA algorithm, it is sufficient to construct an addition chain that realizes a power operation without depending on the key d, but there is a problem that it is slow. Resistance
As a DPA algorithm, it is better to construct an addition chain so that different power consumption is output each time dG is calculated, but it has the problem that it becomes slow like the anti-SPA algorithm.
The following papers are detailed on these SPA and DPA algorithms.
M. Joye and C. Tymen, "Protections against Differential Analysis
for Elliptic Curve Cryptosystem ", CHES2001, Lecture Notes in Computer
Science, 2162 (2001), Springer-Verlag, 377--390.
2003年にDPA 攻撃を改良したゼロ値攻撃が提案された.これは,攻撃者が楕円曲線の点
G の x, y の2座標のどちらかが 0 になるように入力を操作し,ゼロ値の消費電力量が区別できることを利用した攻撃である.上記の2001年の論文で提案されている耐
DPA アルゴリズムは,ゼロ値を固定するため,ゼロ値攻撃には弱い.2004年に,ゼロ値攻撃に対して強力になるアルゴリズムが提案された.この方法は,dGを計算する際に,任意の楕円曲線の元Rを用い,Y=
dG + Rを最下位ビットから計算し,その結果から Y=Y-Rを求めることで,dGを求める方法である.任意のRがdGの計算の度に加えられるため,攻撃者がdGの計算途中にゼロ値が生成されるように操作できない.この耐ゼロ値攻撃アルゴリズムについては以下の論文が詳しい.
K. Itoh, T. Izu, and M. Takenaka, "Efficient countermeasures against power analysis for
elliptic curve cryptosystems", SCIS2004, 2004 (previous version).
In 2003, a zero-value attack that improved the DPA attack was proposed. This is because the attacker has an elliptic curve point
This attack uses the fact that the input power is manipulated so that either x or y coordinate of G becomes 0, and the power consumption of zero value can be distinguished. The resistance proposed in the 2001 paper above.
Since the DPA algorithm fixes the zero value, it is vulnerable to zero value attacks. In 2004, an algorithm that was powerful against zero-value attacks was proposed. This method uses an arbitrary elliptic curve element R when calculating dG, and Y =
This is a method of calculating dG by calculating dG + R from the least significant bit and then finding Y = YR from the result. Since an arbitrary R is added each time dG is calculated, the attacker cannot operate so that a zero value is generated during the calculation of dG. The following paper is detailed on this zero-proof attack algorithm.
K. Itoh, T. Izu, and M. Takenaka, "Efficient countermeasures against power analysis for
elliptic curve cryptosystems ", SCIS2004, 2004 (previous version).
以下に,上記の耐ゼロ値攻撃アルゴリズムを従来例としてあげる.
従来例1
図8
は従来例である耐ゼロ値攻撃アルゴリズムをしめすものである.以下同図を参照しながら従来例の手順を説明する.
Step1. 楕円曲線 E(Fq),
E(Fq) の元 G と n ビットの元d を入力
有限体 FqとFq上の楕円曲線E,E(Fq)の元Gを入力する.
Below, the above zero-proof attack algorithm is given as a conventional example.
Conventional Example 1
FIG.
Shows the conventional zero-proof attack algorithm. The procedure of the conventional example is explained below with reference to the figure.
Step1. Elliptic curve E (Fq),
Input the element G of E (Fq) and the element d of n bits, the input finite fields Fq and the elliptic curve E on Fq, and the element G of E (Fq).
Step2. dの二進表記を
d = d[n-1]2^(n-1)+ ・・・+ d[1]2 + d[0] とする.
nビットのデータdを二進で表記する.このとき,各d[n-1],…,d[0]は0または1である.
Step2. D binary notation
Let d = d [n-1] 2 ^ (n-1) + ... + d [1] 2 + d [0].
This expresses n-bit data d in binary. In this case, each d [n-1], ..., d [0] is 0 or 1.
Step3. E(Fq) の元R をとる. Step3. Take the element R of E (Fq).
Step4. Y = R, Z = G, U
= Oとする.
dG+Rを最下位ビット(LSB)より計算するために初期値Y=R,
Z=G, U=Oを設定する.ここで,Oは楕円曲線の零元である.
Step4. Y = R, Z = G, U
= O.
To calculate dG + R from the least significant bit (LSB), the initial value Y = R,
Set Z = G, U = O. Where O is the zero element of the elliptic curve.
Step 5. i = 0 とする.
dG+Rを最下位ビット(LSB)より計算するためのカウンタiを0に設定する.
Set the counter i for calculating dG + R from the least significant bit (LSB) to 0.
Step 6. i ≦ n-1
まず,U = Y+Z, Z=2Z を計算し,次にd[i]の値に応じて以下の演算, Y=U
(d[i]=1のとき), Y=Y (d[i]=0のとき),
を行い,iを1だけ増やし,step 6の判定を行う.
First, U = Y + Z, Z = 2Z is calculated, then the following operation according to the value of d [i], Y = U
(when d [i] = 1), Y = Y (when d [i] = 0),
, Increase i by 1 and perform
Step 7. Y = Y-R を計算
Step 8. Y を出力する.
Step 6 で dY+R
が求められ,step 7 でその結果からRを減算した結果がYに入力されるので,出力値のYはべき演算dGの結果となる.
The result of subtracting R from the result in
上記従来例では,dG+R の計算を最下位ビット(LSB)から実現するため,必要となる中間変数の量が多くなる.特に,ICカードのような小メモリが要求される媒体では,実装に必要になる変数量は小さいことが望ましい.逆に,高速に実行したい場合,予備計算テーブルなどを利用し,実行速度の高速化を図る必要がある.しかしながら,従来例のように最下位ビットからのアルゴリズムでは,予備計算テーブルなどで高速化を図ることが困難であり,これ以上の高速化が見込めないという問題がある.
公開鍵暗号を用いた暗号方式,鍵共有方式,署名方式では,攻撃に対して,可能な限り強力に実現することが必須である.離散対数問題に基づく暗号は,その安全性を離散対数問題のベースとなる有限群E上の元をGとし,秘密のデータをdとするとき,dG とGの値からdを推測することが困難であることに帰着する.近年,ICカードなどの上でdGの実装をする際にその消費電力を測定することで,dの値を推測するサイドチャネル攻撃が大きな脅威となっている.特に,この演算は,暗号,鍵共有,署名の全てで利用されるため,その攻撃のインパクトは非常に大きい.このため,サイドチャネル攻撃に強力な実装方法は必須といえる.ICカードの上での実装において重要なのは,安全性とともに,メモリサイズ及び実行速度である.つまり,小メモリが要求される状況においては,小メモリで実現できる実装が,また高速性が要求される状況においては,高速に実現できる実装方法が必須といえる. It is indispensable to implement as strong as possible against attacks in cryptography using public key cryptography, key sharing scheme, and signature scheme. Ciphers based on the discrete logarithm problem can be estimated from the values of dG and G, where G is the element on the finite group E that is the base of the discrete logarithm problem and d is the secret data. It comes down to the difficulty. In recent years, a side-channel attack that estimates the value of d by measuring its power consumption when implementing dG on an IC card or the like has become a major threat. In particular, since this operation is used for all of encryption, key sharing, and signatures, the impact of the attack is very large. Therefore, it can be said that a powerful implementation method for side channel attacks is essential. What is important in the implementation on the IC card is the memory size and execution speed as well as safety. In other words, in a situation where small memory is required, implementation that can be realized with small memory is essential, and in a situation where high speed is required, an implementation method that can be realized at high speed is essential.
このことからも,サイドチャネル攻撃に対して強力かつ,メモリサイズ,実行速度に対してフレキシブルに実現できるべき演算アルゴリズムは必須といえる.しかし従来例にみるように,LSBからのべき演算の実装アルゴリズムでは,必要になる有限群Eの元を格納する中間変数の量が最低でも4つ必要となり,また,テーブルなどを利用した高速化ができない問題がある. From this, it can be said that a computation algorithm that is strong against side-channel attacks and should be flexible with respect to memory size and execution speed is essential. However, as seen in the conventional example, the implementation algorithm for power operations from the LSB requires at least four intermediate variables to store the necessary elements of the finite group E, and speeding up using tables, etc. There is a problem that cannot be done.
本発明は,この従来例における問題点を鑑みて行なわれたもので,サイドチャネル攻撃に強力なべき演算を,メモリサイズ及び実行速度に関してフレキシブルに実現することで,安全な有限群上の離散対数問題に基づく鍵共有,暗号,署名方式を提供することを目的とする. The present invention has been made in view of the problems in this conventional example, and by realizing flexibly an operation that should be strong against side channel attacks in terms of memory size and execution speed, a discrete logarithm on a safe finite group can be obtained. Its purpose is to provide problem-based key sharing, encryption, and signature schemes.
本発明は上述の問題点を解決するため,
請求項1では,有限群をEとし,E上の群演算を加法的に表し,Eの元をG
とし,nビットのデータdとその二進表現を
d = d[n-1]・2^(n-1)+…+d[1]・2+d[0]
(各d[i]= 0または 1)
とするとき,
これら E, Gを第一のメモリ部に格納し,dとその二進表現を第二のメモリ部に格納し,
乱数発生部により,有限群Eの任意の元Rを生成し,
第一の演算部に,上記元Rと第一のメモリ部の元Gを入力してQ=G-Rを求め,初期値設定部に第一の演算部の出力Q,上記元Rを入力し,Q,R,Y=Rを出力し,
第二の演算部に上記初期値設定部の出力であるQ, R, Y と第二のメモリ部に格納されているdの二進表現d[i]を入力し,i=n-1 から 0 まで以下の演算を順次行い,
Y = 2Y + Q ( d[i] = 1 の時),
Y = 2Y + (-R) ( d[i] = 0 の時),
i = i-1,
第三の演算部に,第二の演算部の出力であるYと上記元Rを入力してY=Y-Rを求め,
第三の演算部の出力であるYを出力部によりべき演算dGの値として出力することを特徴とする有限群Eのべき演算方法としている.
In order to solve the above problems, the present invention
In
N-bit data d and its binary representation
d = d [n-1] ・ 2 ^ (n-1) +… + d [1] ・ 2 + d [0]
(Each d [i] = 0 or 1)
When
These E and G are stored in the first memory part, d and its binary representation are stored in the second memory part,
An arbitrary element R of the finite group E is generated by the random number generator,
The element R and the element G of the first memory unit are input to the first arithmetic unit to obtain Q = GR, the output Q of the first arithmetic unit and the element R are input to the initial value setting unit, Q, R, Y = R is output,
Input Q, R, Y, which is the output of the initial value setting unit, and binary representation d [i] of d stored in the second memory unit to the second arithmetic unit, and from i = n-1 The following operations are sequentially performed until 0,
Y = 2Y + Q (when d [i] = 1),
Y = 2Y + (-R) (when d [i] = 0),
i = i-1,
Input Y, which is the output of the second calculation unit, and the above element R to the third calculation unit to obtain Y = YR,
The power of the finite group E is characterized in that Y, which is the output of the third arithmetic unit, is output as the value of the power operation dG by the output unit.
請求項2では,請求項1記載のべき演算方法を適用したべき演算装置としている.
請求項3では,請求項1記載の方法を実行するプログラムを記憶した記録媒体としている.
請求項4では,請求項1記載のべき演算方法を用いた署名,認証,秘密通信及び鍵共有方式としている.
In
請求項5では,請求項1記載のべき演算方法を,pを素数,r を正整数,qを q=p^r となる整数とし,q個の元をもつ有限体Fq上の楕円曲線E,E(Fq)上の元 G とnビットのデータdに対し,楕円曲線上のべき演算
dG の計算に利用することを特徴とするべき演算方法としている.
According to
The calculation method should be characterized by the use of dG.
請求項6では,請求項1記載のべき演算方法を,pを素数,r を正整数,qを
q=p^r となる整数とし,q個の元をもつ有限体Fq上の超楕円曲線H,H(Fq)上の元 G とnビットのデータdに対し,超楕円曲線上のべき演算 dG の計算に利用することを特徴とするべき演算方法としている.
In
Power operation on a super elliptic curve for a super elliptic curve H on a finite field Fq with q elements and q on a super elliptic curve H on H (Fq) and an n-bit data d The calculation method should be characterized by the use of dG.
請求項7では,有限群をEとし,E上の群演算を加法的に表し,Eの元をG とし,nビットのデータdとその二進表現を
d = d[n-1]・2^(n-1)+…+d[1]・2+d[0]
(各d[i]= 0または 1)
とするとき,
これら E, Gを格納する第一のメモリ部と,
これら dとその二進表現を格納する第二のメモリ部とを有し
有限群Eの任意の元Rを生成する乱数発生部と,
上記元Rと第一のメモリ部の元Gを入力としてQ=G-Rを求める第一の演算部と,
上記元Rと第一の演算部の出力Qを入力として,R, Q, Y=Rを第二の演算部の初期値として設定する初期値設定部と,
初期値設定部の出力Y,R,Qと第二のメモリ部に格納されたdの二進表現{d[i]}を入力として,i=n-1 から 0 まで,以下の演算,
Y = 2Y + Q ( d[i] = 1 の時),
Y = 2Y + (-R) ( d[i] = 0 の時),
i = i-1,
を順次ループ処理する第二の演算部と
第二の演算部の出力であるYと上記元Rを入力として,Y=Y-Rを計算する第三の演算部を有し,
第三の演算部の出力Yをべき演算dGの値として出力する出力部を有することを特徴とする有限群Eのべき演算装置としている.
In
d = d [n-1] ・ 2 ^ (n-1) +… + d [1] ・ 2 + d [0]
(Each d [i] = 0 or 1)
When
A first memory section for storing these E and G;
A random number generator having these d and a second memory unit for storing the binary representation thereof and generating an arbitrary element R of the finite group E;
A first calculation unit for obtaining Q = GR by using the element R and the element G of the first memory unit as inputs;
An initial value setting unit for setting R, Q, and Y = R as initial values of the second calculation unit, with the element R and the output Q of the first calculation unit as inputs,
Using the output Y, R, Q of the initial value setting unit and the binary representation {d [i]} of d stored in the second memory unit as input, the following operations from i = n-1 to 0:
Y = 2Y + Q (when d [i] = 1),
Y = 2Y + (-R) (when d [i] = 0),
i = i-1,
A third arithmetic unit that calculates Y = YR, using Y as the output of the second arithmetic unit and the output of the second arithmetic unit and the above element R as input.
The power unit of the finite group E is characterized by having an output unit that outputs the output Y of the third arithmetic unit as the value of the power operation dG.
請求項8では,有限群をEとし,E上の群演算を加法的に表し,Eの元をG とし, これら E, Gを第一のメモリ部に格納し,
第一の乱数発生部により,nビットのデータdを生成し,その二進表現を
d = d[n-1]・2^(n-1)+…+d[1]・2+d[0]
(各d[i]= 0または 1)
とし,
第二の乱数発生部により,有限群Eの任意の元Rを生成し,
第一の演算部に,上記元Rと第一のメモリ部の元Gを入力してQ=G-Rを求め,初期値設定部に第一の演算部の出力Q,上記元Rを入力し,Q,R,Y=Rを出力し,
第二の演算部に上記初期値設定部の出力であるQ, R, Y と上記dの二進表現d[i]を入力し,i=n-1 から 0 まで以下の演算を順次行い,
Y = 2Y + Q ( d[i] = 1 の時),
Y = 2Y + (-R) ( d[i] = 0 の時),
i = i-1,
第三の演算部に,第二の演算部の出力であるYと上記元Rを入力してY=Y-Rを求め,
第三の演算部の出力であるYを出力部によりべき演算dGの値として出力することを特徴とする有限群Eのべき演算方法としている.
In
The first random number generator generates n-bit data d, and its binary representation
d = d [n-1] ・ 2 ^ (n-1) +… + d [1] ・ 2 + d [0]
(Each d [i] = 0 or 1)
age,
An arbitrary element R of the finite group E is generated by the second random number generator,
The element R and the element G of the first memory unit are input to the first arithmetic unit to obtain Q = GR, the output Q of the first arithmetic unit and the element R are input to the initial value setting unit, Q, R, Y = R is output,
Input the output Q, R, Y of the initial value setting unit and the binary expression d [i] of d above to the second arithmetic unit, and perform the following operations sequentially from i = n-1 to 0,
Y = 2Y + Q (when d [i] = 1),
Y = 2Y + (-R) (when d [i] = 0),
i = i-1,
Input Y, which is the output of the second calculation unit, and the above element R to the third calculation unit to obtain Y = YR,
The power of the finite group E is characterized in that Y, which is the output of the third arithmetic unit, is output as the value of the power operation dG by the output unit.
請求項9では,請求項8記載のべき演算方法を適用したべき演算装置としている.
Claim 9 is an arithmetic device to which the power calculation method according to
請求項10では,請求項8記載の方法を実行するプログラムを記憶した記録媒体としている.
In
請求項11では,請求項8記載のべき演算方法を用いた署名,認証,秘密通信及び鍵共有方式としている.
In claim 11, a signature, authentication, secret communication, and key sharing method using the operation method according to
請求項12では,有限群をEとし,E上の群演算を加法的に表し,Eの元をG とし,
これら E, Gを格納する第一のメモリ部と,
nビットのデータdを生成する第一の乱数発生部と,ここでdの二進表現を
d = d[n-1]・2^(n-1)+…+d[1]・2+d[0]
(各d[i]= 0または 1)
とし,
有限群Eの任意の元Rを生成する乱数発生部と,
上記元Rと第一のメモリ部の元Gを入力としてQ=G-Rを求める第一の演算部と,
上記元Rと第一の演算部の出力Qを入力として,R, Q, Y=Rを第二の演算部の初期値として設定する初期値設定部と,
初期値設定部の出力Y,R,Qと上記dの二進表現{d[i]}を入力として,i=n-1 から 0 まで,以下の演算,
Y = 2Y + Q ( d[i] = 1 の時),
Y = 2Y + (-R) ( d[i] = 0 の時),
i = i-1,
を順次ループ処理する第二の演算部と
第二の演算部の出力であるYと上記元Rを入力として,Y=Y-Rを計算する第三の演算部を有し,
第三の演算部の出力Yをべき演算dGの値として出力する出力部を有することを特徴とする有限群Eのべき演算装置としている.
In claim 12, the finite group is E, the group operation on E is expressed additively, the element of E is G,
A first memory section for storing these E and G;
The first random number generator that generates n-bit data d and the binary representation of d
d = d [n-1] ・ 2 ^ (n-1) +… + d [1] ・ 2 + d [0]
(Each d [i] = 0 or 1)
age,
A random number generator for generating an arbitrary element R of the finite group E;
A first calculation unit for obtaining Q = GR by using the element R and the element G of the first memory unit as inputs;
An initial value setting unit for setting R, Q, and Y = R as initial values of the second calculation unit, with the element R and the output Q of the first calculation unit as inputs,
Using the output Y, R, Q of the initial value setting unit and the binary representation {d [i]} of d above as inputs, the following operations are performed from i = n-1 to 0:
Y = 2Y + Q (when d [i] = 1),
Y = 2Y + (-R) (when d [i] = 0),
i = i-1,
A third arithmetic unit that calculates Y = YR, using Y as the output of the second arithmetic unit and the output of the second arithmetic unit and the above element R as input.
The power unit of the finite group E is characterized by having an output unit that outputs the output Y of the third arithmetic unit as the value of the power operation dG.
請求項13では,有限群をEとし,E上の群演算を加法的に表し,Eを第一のメモリ部に格納し,
入力部にEの元Gを入力し,
第一の乱数発生部により,nビットのデータdを生成し,その二進表現を
d = d[n-1]・2^(n-1)+…+d[1]・2+d[0]
(各d[i]= 0または 1)
とし,
第二の乱数発生部により,有限群Eの任意の元Rを生成し,
第一の演算部に,上記元Rと上記入力の元Gを入力してQ=G-Rを求め,初期値設定部に第一の演算部の出力Q,上記元Rを入力し,Q,R,Y=Rを出力し,
第二の演算部に上記初期値設定部の出力であるQ, R, Y と上記dの二進表現d[i]を入力し,i=n-1 から 0 まで以下の演算を順次行い,
Y = 2Y + Q ( d[i] = 1 の時),
Y = 2Y + (-R) ( d[i] = 0 の時),
i = i-1,
第三の演算部に,第二の演算部の出力であるYと上記元Rを入力してY=Y-Rを求め,
第三の演算部の出力であるYを出力部によりべき演算dGの値として出力することを特徴とする有限群Eのべき演算方法としている.
In claim 13, the finite group is E, the group operation on E is expressed additively, E is stored in the first memory unit,
Enter the element G of E in the input section,
The first random number generator generates n-bit data d, and its binary representation
d = d [n-1] ・ 2 ^ (n-1) +… + d [1] ・ 2 + d [0]
(Each d [i] = 0 or 1)
age,
An arbitrary element R of the finite group E is generated by the second random number generator,
Q = GR is obtained by inputting the element R and the element G of the input to the first arithmetic unit, the output Q of the first arithmetic unit and the element R are input to the initial value setting unit, and Q, R , Y = R,
Input the output Q, R, Y of the initial value setting unit and the binary expression d [i] of d above to the second arithmetic unit, and perform the following operations sequentially from i = n-1 to 0,
Y = 2Y + Q (when d [i] = 1),
Y = 2Y + (-R) (when d [i] = 0),
i = i-1,
Input Y, which is the output of the second calculation unit, and the above element R to the third calculation unit to obtain Y = YR,
The power of the finite group E is characterized in that Y, which is the output of the third arithmetic unit, is output as the value of the power operation dG by the output unit.
請求項14では,請求項13記載のべき演算方法を適用したべき演算装置としている. Claim 14 is an arithmetic device to which the power calculation method according to claim 13 should be applied.
請求項15では,請求項13記載の方法を実行するプログラムを記憶した記録媒体としている. In Claim 15, it is set as the recording medium which memorize | stored the program which performs the method of Claim 13.
請求項16では,請求項13記載のべき演算方法を用いた署名,認証,秘密通信及び鍵共有方式としている. In claim 16, a signature, authentication, secret communication, and key sharing method using the operation method according to claim 13 is adopted.
請求項17では,有限群をEとし,E上の群演算を加法的に表し,Eを格納する第一のメモリ部と,
有限群Eの元Gを入力する入力部と,
nビットのデータdを生成する第一の乱数発生部と,ここでdの二進表現を
d = d[n-1]・2^(n-1)+…+d[1]・2+d[0]
(各d[i]= 0または 1)
とし,
有限群Eの任意の元Rを生成する乱数発生部と,
上記元Rと上記入力元Gを入力としてQ=G-Rを求める第一の演算部と,
上記元Rと第一の演算部の出力Qを入力として,R, Q, Y=Rを第二の演算部の初期値として設定する初期値設定部と,
初期値設定部の出力Y,R,Qと上記dの二進表現{d[i]}を入力として,i=n-1 から 0 まで,以下の演算,
Y = 2Y + Q ( d[i] = 1 の時),
Y = 2Y + (-R) ( d[i] = 0 の時),
i = i-1,
を順次ループ処理する第二の演算部と
第二の演算部の出力であるYと上記元Rを入力として,Y=Y-Rを計算する第三の演算部を有し,
第三の演算部の出力Yをべき演算dGの値として出力する出力部を有することを特徴とする有限群Eのべき演算装置としている.
In claim 17, a finite group is E, a group operation on E is represented additively, and a first memory unit for storing E,
An input unit for inputting an element G of a finite group E;
The first random number generator that generates n-bit data d and the binary representation of d
d = d [n-1] ・ 2 ^ (n-1) +… + d [1] ・ 2 + d [0]
(Each d [i] = 0 or 1)
age,
A random number generator for generating an arbitrary element R of the finite group E;
A first arithmetic unit for obtaining Q = GR using the element R and the input element G as inputs;
An initial value setting unit for setting R, Q, and Y = R as initial values of the second calculation unit, with the element R and the output Q of the first calculation unit as inputs,
Using the output Y, R, Q of the initial value setting unit and the binary representation {d [i]} of d above as inputs, the following operations are performed from i = n-1 to 0:
Y = 2Y + Q (when d [i] = 1),
Y = 2Y + (-R) (when d [i] = 0),
i = i-1,
A third arithmetic unit that calculates Y = YR, using Y as the output of the second arithmetic unit and the output of the second arithmetic unit and the above element R as input.
The power unit of the finite group E is characterized by having an output unit that outputs the output Y of the third arithmetic unit as the value of the power operation dG.
請求項18では,有限群をEとし,E上の群演算を加法的に表し,nビットのデータdとその二進表現を
d = d[n-1]・2^(n-1)+…+d[1]・2+d[0]
(各d[i]= 0または 1)
とするとき,
Eを第一のメモリ部に格納し,
dとその二進表現を第二のメモリ部に格納し,
入力部にEの元Gを入力し,
乱数発生部により,有限群Eの任意の元Rを生成し,
第一の演算部に,上記元Rと上記入力の元Gを入力してQ=G-Rを求め,初期値設定部に第一の演算部の出力Q,上記元Rを入力し,Q,R,Y=Rを出力し,
第二の演算部に上記初期値設定部の出力であるQ, R, Y と第二のメモリ部に格納されているdの二進表現d[i]を入力し,i=n-1 から 0 まで以下の演算を順次行い,
Y = 2Y + Q ( d[i] = 1 の時),
Y = 2Y + (-R) ( d[i] = 0 の時),
i = i-1,
第三の演算部に,第二の演算部の出力であるYと上記元Rを入力してY=Y-Rを求め,
第三の演算部の出力であるYを出力部によりべき演算dGの値として出力することを特徴とする有限群Eのべき演算方法としている.
In
d = d [n-1] ・ 2 ^ (n-1) +… + d [1] ・ 2 + d [0]
(Each d [i] = 0 or 1)
When
E is stored in the first memory part,
store d and its binary representation in the second memory part,
Enter the element G of E in the input section,
An arbitrary element R of the finite group E is generated by the random number generator,
Q = GR is obtained by inputting the element R and the element G of the input to the first arithmetic unit, the output Q of the first arithmetic unit and the element R are input to the initial value setting unit, and Q, R , Y = R,
Input Q, R, Y, which is the output of the initial value setting unit, and binary representation d [i] of d stored in the second memory unit to the second arithmetic unit, and from i = n-1 The following operations are sequentially performed until 0,
Y = 2Y + Q (when d [i] = 1),
Y = 2Y + (-R) (when d [i] = 0),
i = i-1,
Input Y, which is the output of the second calculation unit, and the above element R to the third calculation unit to obtain Y = YR,
The power of the finite group E is characterized in that Y, which is the output of the third arithmetic unit, is output as the value of the power operation dG by the output unit.
請求項19では,請求項18記載のべき演算方法を適用したべき演算装置としている.
Claim 19 is an arithmetic device to which the power calculation method according to
請求項20では,請求項18記載の方法を実行するプログラムを記憶した記録媒体としている. A twentieth aspect is a recording medium storing a program for executing the method according to the eighteenth aspect.
請求項21では,請求項18記載のべき演算方法を用いた署名,認証,秘密通信及び鍵共有方式としている.
In claim 21, a signature, authentication, secret communication, and key sharing method using the operation method according to
請求項22では,有限群をEとし,E上の群演算を加法的に表し,nビットのデータdとその二進表現を
d = d[n-1]・2^(n-1)+…+d[1]・2+d[0]
(各d[i]= 0または 1)
とするとき,
Eを格納する第一のメモリ部と,
dとその二進表現を格納する第二のメモリ部とを有し
有限群Eの元Gを入力する入力部と,
有限群Eの任意の元Rを生成する乱数発生部と,
上記元Rと上記入力元Gを入力としてQ=G-Rを求める第一の演算部と,
上記元Rと第一の演算部の出力Qを入力として,R, Q, Y=Rを第二の演算部の初期値として設定する初期値設定部と,
初期値設定部の出力Y,R,Qと第二のメモリ部に格納されたdの二進表現{d[i]}を入力として,i=n-1 から 0 まで,以下の演算,
Y = 2Y + Q ( d[i] = 1 の時),
Y = 2Y + (-R) ( d[i] = 0 の時),
i = i-1,
を順次ループ処理する第二の演算部と
第二の演算部の出力であるYと上記元Rを入力として,Y=Y-Rを計算する第三の演算部を有し,
第三の演算部の出力Yをべき演算dGの値として出力する出力部を有することを特徴とする有限群Eのべき演算装置としている.
In claim 22, the finite group is E, the group operation on E is expressed additively, and the n-bit data d and its binary representation are
d = d [n-1] ・ 2 ^ (n-1) +… + d [1] ・ 2 + d [0]
(Each d [i] = 0 or 1)
When
A first memory section for storing E;
an input unit for inputting an element G of a finite group E having d and a second memory unit for storing the binary representation;
A random number generator for generating an arbitrary element R of the finite group E;
A first arithmetic unit for obtaining Q = GR using the element R and the input element G as inputs;
An initial value setting unit for setting R, Q, and Y = R as initial values of the second calculation unit, with the element R and the output Q of the first calculation unit as inputs,
Using the output Y, R, Q of the initial value setting unit and the binary representation {d [i]} of d stored in the second memory unit as input, the following operations from i = n-1 to 0:
Y = 2Y + Q (when d [i] = 1),
Y = 2Y + (-R) (when d [i] = 0),
i = i-1,
A third arithmetic unit that calculates Y = YR, using Y as the output of the second arithmetic unit and the output of the second arithmetic unit and the above element R as input.
The power unit of the finite group E is characterized by having an output unit that outputs the output Y of the third arithmetic unit as the value of the power operation dG.
請求項23では,有限群をEとし,E上の群演算を加法的に表し,Eの元をG ,nビットのデータをd,分割数をt(<n), t とnとの最小公倍数をn’=kt とし,
d のn’ビットでの二進表現を
d=d[n’-1]・2^(n’-1)+…+d[n]・2^n+d[n-1]・2^(n-1)+…+
d[0],
(d[n’-1]=…=d[n]=0かつd[n-1],…,d[0]は0または1)
とし,上記dの二進表現を用いて,kビットのデータa[j]をj=0 からt-1 に対して,
a[j]= d[kj+(k-1)]・2^(k-1)
+・・・+ d[kj]
と表記し,
これらE,G,k,n,t,n’を第一のメモリ部に格納し,
上記データdとその二進表現{d[i](i=0,..,2^n’-1)},
kビットのデータ{a[j](j=0, ..., t-1)} を第二のメモリ部に格納し,
乱数発生部により,有限群Eの任意の元Rを生成し,
第一の演算部に,上記元Rと第一のメモリ部の元G, k を入力し,
j=1 からt-1に対してG[j] = 2^(kj)G としてEの元
G[j]を求め,
G[0] = G と表し,
上記元G[j](j=0,..,t-1)と0≦ b ≦2^t-1の整数bとそのbの二進表現b
= b[t-1]・2^(t-1) + ・・・+ b[0]を用いて(各b[i]は0 か1),
T[b] = b[t-1]・G[t-1] + ・・・+ b[0]・G[0]-Rとして,
2^t個のEの元{T[0],..,T[2^t-1]}を求め,
上記元{G[0],…,G[t-1]}と{T[0],..,T[2^t-1]}を出力し,
初期値設定部に第一の演算部の出力{G[0],…,G[t-1]}と{T[0],..,T[2^t-1]},
上記元Rを入力し,{G[0],…,G[t-1]}と{T[0],..,T[2^t-1]},Y=Rを出力し,
第二の演算部に上記初期値設定部の出力である{G[0],…,G[t-1]}, {T[0],..,T[2^t-1]},
Y と第二のメモリ部に格納されているdの二進表
現{d[i]}を入力し,
i=k-1 から
0 まで以下の演算を順次行い,
Y = 2Y +
T[d[i+k(t-1)]2^{(t-1)k}+ …+d[i+k]2^k + d[i]]
i = i-1,
第三の演算部に,第二の演算部の出力であるYと上記元Rを入力してY=Y-Rを求め,
第三の演算部の出力であるYを出力部によりべき演算dGの値として出力することを特徴とする有限群Eのべき演算方法としている.
In claim 23, the finite group is E, the group operation on E is expressed additively, the element of E is G, the data of n bits is d, the number of divisions is t (<n), and the minimum of t and n Let the common multiple be n '= kt,
Binary representation of d with n 'bits
d = d [n'-1] ・ 2 ^ (n'-1) +… + d [n] ・ 2 ^ n + d [n-1] ・ 2 ^ (n-1) +… +
d [0],
(d [n'-1] = ... = d [n] = 0 and d [n-1], ..., d [0] is 0 or 1)
And using the binary representation of d above, k-bit data a [j] for j = 0 to t-1
a [j] = d [kj + (k-1)] ・ 2 ^ (k-1)
+ ... + d [kj]
And
These E, G, k, n, t, and n ′ are stored in the first memory unit,
The above data d and its binary representation {d [i] (i = 0, .., 2 ^ n'-1)},
Store k-bit data {a [j] (j = 0, ..., t-1)} in the second memory section,
An arbitrary element R of the finite group E is generated by the random number generator,
Input the above element R and the element G, k of the first memory unit to the first arithmetic unit,
Element of E as G [j] = 2 ^ (kj) G from j = 1 to t-1
Find G [j]
G [0] = G
The above element G [j] (j = 0, .., t-1), the integer b of 0 ≦ b ≦ 2 ^ t-1, and the binary representation b of that b
= b [t-1] ・ 2 ^ (t-1) + ・ ・ ・ + b [0] (each b [i] is 0 or 1)
T [b] = b [t-1] ・ G [t-1] + ・ ・ ・ + b [0] ・ G [0] -R
The above elements {G [0], ..., G [t-1]} and {T [0], .., T [2 ^ t-1]} are output,
The output {G [0], ..., G [t-1]} and {T [0], .., T [2 ^ t-1]}
Input the above element R and output {G [0], ..., G [t-1]} and {T [0], .., T [2 ^ t-1]}, Y = R,
{G [0], ..., G [t-1]}, {T [0], .., T [2 ^ t-1]}, which are the outputs of the initial value setting unit,
Input Y and binary representation {d [i]} of d stored in the second memory part,
from i = k-1
The following operations are sequentially performed until 0,
Y = 2Y +
T [d [i + k (t-1)] 2 ^ {(t-1) k} +… + d [i + k] 2 ^ k + d [i]]
i = i-1,
Input Y, which is the output of the second calculation unit, and the above element R to the third calculation unit to obtain Y = YR,
The power of the finite group E is characterized in that Y, which is the output of the third arithmetic unit, is output as the value of the power operation dG by the output unit.
請求項24では,請求項23記載のべき演算方法を適用したべき演算装置としている. In claim 24, an arithmetic device to which the power calculation method according to claim 23 is applied is provided.
請求項25では,請求項23記載の方法を実行するプログラムを記憶した記録媒体としている. In claim 25, a recording medium storing a program for executing the method of claim 23 is provided.
請求項26では,請求項23記載のべき演算方法を用いた署名,認証,秘密通信及び鍵共有方式としている. In claim 26, a signature, authentication, secret communication, and key sharing method using the operation method according to claim 23 is adopted.
請求項27では,請求項23記載のべき演算方法を,pを素数,r を正整数,qを q=p^r となる整数とし,q個の元をもつ有限体Fq上の楕円曲線E,E(Fq)上の元 G とnビットのデータdに対し,楕円曲線上のべき演算
dG の計算に利用することを特徴とするべき演算方法としている.
In claim 27, an arithmetic method according to claim 23, wherein p is a prime number, r is a positive integer, q is an integer such that q = p ^ r, and an elliptic curve E on a finite field Fq having q elements. , The power on the elliptic curve for the element G and the n-bit data d on E (Fq)
The calculation method should be characterized by the use of dG.
請求項28では,請求項23記載のべき演算方法を,pを素数,r を正整数,qを q=p^r となる整数とし,q個の元をもつ有限体Fq上の超楕円曲線H,H(Fq)上の元 G とnビットのデータdに対し,超楕円曲線上のべき演算
dG の計算に利用することを特徴とするべき演算方法としている.
In claim 28, the power calculation method according to claim 23, wherein p is a prime number, r is a positive integer, q is an integer such that q = p ^ r, and a hyperelliptic curve on a finite field Fq having q elements. Power on a hyperelliptic curve for element G and n-bit data d on H and H (Fq)
The calculation method should be characterized by the use of dG.
請求項29では,有限群をEとし,E上の群演算を加法的に表し,Eの元 G とnビットのデータd,分割数をt(<n), t とnの最小公倍数をn’=kt とし,
d のn’ビットでの二進表現を
d=d[n’-1]・2^(n’-1)+…+d[n]・2^n+d[n-1]・2^(n-1)+…+
d[0],
(d[n’-1]=…=d[n]=0かつd[n-1],…,d[0]は0または1)
とし,上記dの二進表現を用いて,kビットのデータa[j]をj=0 からt-1 に対して,
a[j]= d[kj+(k-1)]・2^(k-1)
+・・・ +d[kj+1]・2+ d[kj]
と表記し,
これらE,G,k,n,t,n’を格納する第一のメモリ部と,
これらdとその二進表現,及びkビットのデータ{a[j]}を格納する第二のメモリ部を有し,
有限群Eの任意の元Rを生成する乱数発生部と,
上記元Rと第一のメモリ部の元G,kを入力として,
j=1 からt-1に対してG[j] = 2^(kj)G としてEの元
G[j]を求め,
G[0] = G と表し,
次に上記元G[j](j=0,..,t-1)と0≦ b ≦2^t-1の整数bとそのbの二進表現b
= b[t-1]・2^(t-1) + ・・・+ b[0](各b[i]は0 か1)を用いて,
T[b] = b[t-1]・G[t-1] + ・・・+ b[0]・G[0]-Rとして,
2^t個のEの元{T[0],..,T[2^t-1]}を求める第一の演算部と,
上記元Rと第一の演算部の出力{G[0],..,G[t-1]}と{T[0],..,T[2^t-1]}を入
力として,{G[0],..,G[t-1]},{T[0],..,T[2^t-1]},
Y=Rを第二の演算部の初期値として設定する初期値設定部と,
初期値設定部の出力{G[0],…,G[t-1]}, {T[0],..,T[2^t-1]},
Y と第二のメモリ部に格納されているdの二進表現{d[i]}を入力として,
i=k-1 から 0 まで以下の演算,
Y = 2Y +
T[d[i+k(t-1)]2^{(t-1)k}+ …+d[i+k]2^k + d[i]]
i = i-1
を順次ループ処理する第二の演算部と,
第二の演算部の出力であるYと上記元Rを入力として,Y=Y-Rを計算する第三の演算部を有し,
第三の演算部の出力Yをべき演算dGの値として出力する出力部を有することを特徴とする有限群Eのべき演算装置としている.
In claim 29, the finite group is E, and the group operation on E is expressed additively, the element G of E and n-bit data d, the number of divisions is t (<n), and the least common multiple of t and n is n Let '= kt,
Binary representation of d with n 'bits
d = d [n'-1] ・ 2 ^ (n'-1) +… + d [n] ・ 2 ^ n + d [n-1] ・ 2 ^ (n-1) +… +
d [0],
(d [n'-1] = ... = d [n] = 0 and d [n-1], ..., d [0] is 0 or 1)
And using the binary representation of d above, k-bit data a [j] for j = 0 to t-1
a [j] = d [kj + (k-1)] ・ 2 ^ (k-1)
+ ... + d [kj + 1] ・ 2+ d [kj]
And
A first memory unit for storing these E, G, k, n, t, and n ′;
A second memory unit for storing d and its binary representation and k-bit data {a [j]};
A random number generator for generating an arbitrary element R of the finite group E;
Using the above element R and elements G and k of the first memory unit as inputs,
Element of E as G [j] = 2 ^ (kj) G from j = 1 to t-1
Find G [j]
G [0] = G
Next, the above element G [j] (j = 0, .., t-1), the integer b of 0≤b≤2 ^ t-1, and the binary representation b of that b
= b [t-1] ・ 2 ^ (t-1) + ・ ・ ・ + b [0] (each b [i] is 0 or 1)
T [b] = b [t-1] ・ G [t-1] + ・ ・ ・ + b [0] ・ G [0] -R
A first computing unit for finding 2 ^ t E elements {T [0], .., T [2 ^ t-1]};
Using the element R and the output {G [0], .., G [t-1]} and {T [0], .., T [2 ^ t-1]} as inputs, {G [0], .., G [t-1]}, {T [0], .., T [2 ^ t-1]},
An initial value setting unit for setting Y = R as an initial value of the second calculation unit;
Output of initial value setting part {G [0], ..., G [t-1]}, {T [0], .., T [2 ^ t-1]},
Using Y and binary representation {d [i]} of d stored in the second memory part as input
The following operations from i = k-1 to 0:
Y = 2Y +
T [d [i + k (t-1)] 2 ^ {(t-1) k} +… + d [i + k] 2 ^ k + d [i]]
i = i-1
A second arithmetic unit that sequentially loops
It has a third calculation unit that calculates Y = YR, using Y as the output of the second calculation unit and the above element R as inputs.
The power unit of the finite group E is characterized by having an output unit that outputs the output Y of the third arithmetic unit as the value of the power operation dG.
請求項30では,有限群をEとし,E上の群演算を加法的に表し,Eの元をG,ビット数をn,分割数をt(<n),
t とnとの最小公倍数をn’=kt とし,
これらE,G,k,n,t,n’を第一のメモリ部に格納し,
第一の乱数発生部により,nビットのデータdを生成し,そのn’ビットでの二進表現を
d=d[n’-1]・2^(n’-1)+…+d[n]・2^n+d[n-1]・2^(n-1)+…+ d[0],
(d[n’-1]=…=d[n]=0かつd[n-1],…,d[0]は0または1)
とし,上記dの二進表現を用いて,kビットのデータa[j]をj=0 からt-1 に対して,
a[j]= d[kj+(k-1)]・2^(k-1)
+・・・+ d[kj]
と表記し,
第二の乱数発生部により,有限群Eの任意の元Rを生成し,
第一の演算部に,上記元Rと第一のメモリ部の元G, k を入力し,
j=1 からt-1に対してG[j] = 2^(kj)G としてEの元
G[j]を求め,
G[0] = G と表し,
上記元G[j](j=0,..,t-1)と0≦ b ≦2^t-1の整数bとそのbの二進表現b
= b[t-1]・2^(t-1) + ・・・+ b[0]を用いて(各b[i]は0 か1),
T[b] = b[t-1]・G[t-1] + ・・・+ b[0]・G[0]-Rとして,
2^t個のEの元{T[0],..,T[2^t-1]}を求め,
上記元{G[0],…,G[t-1]}と{T[0],..,T[2^t-1]}を出力し,
初期値設定部に第一の演算部の出力{G[0],…,G[t-1]}と{T[0],..,T[2^t-1]},
上記元Rを入力し,{G[0],…,G[t-1]}と{T[0],..,T[2^t-1]},Y=Rを出力し,
第二の演算部に上記初期値設定部の出力である{G[0],…,G[t-1]}, {T[0],..,T[2^t-1]},
Y と上記dの二進表現{d[i]}を入力し,
i=k-1 から 0 まで以下の演算を順次行い,
Y = 2Y +
T[d[i+k(t-1)]2^{(t-1)k}+ …+d[i+k]2^k + d[i]]
i = i-1,
第三の演算部に,第二の演算部の出力であるYと上記元Rを入力してY=Y-Rを求め,
第三の演算部の出力であるYを出力部によりべき演算dGの値として出力することを特徴とする有限群Eのべき演算方法としている.
In claim 30, the finite group is E, and the group operation on E is expressed additively, the element of E is G, the number of bits is n, the number of divisions is t (<n),
Let the least common multiple of t and n be n '= kt,
These E, G, k, n, t, and n ′ are stored in the first memory unit,
The first random number generator generates n-bit data d, and the binary representation with n 'bits
d = d [n'-1] ・ 2 ^ (n'-1) +… + d [n] ・ 2 ^ n + d [n-1] ・ 2 ^ (n-1) +… + d [0 ],
(d [n'-1] = ... = d [n] = 0 and d [n-1], ..., d [0] is 0 or 1)
And using the binary representation of d above, k-bit data a [j] for j = 0 to t-1
a [j] = d [kj + (k-1)] ・ 2 ^ (k-1)
+ ... + d [kj]
And
An arbitrary element R of the finite group E is generated by the second random number generator,
Input the above element R and the element G, k of the first memory unit to the first arithmetic unit,
Element of E as G [j] = 2 ^ (kj) G from j = 1 to t-1
Find G [j]
G [0] = G
The above element G [j] (j = 0, .., t-1), the integer b of 0 ≦ b ≦ 2 ^ t-1, and the binary representation b of that b
= b [t-1] ・ 2 ^ (t-1) + ・ ・ ・ + b [0] (each b [i] is 0 or 1)
T [b] = b [t-1] ・ G [t-1] + ・ ・ ・ + b [0] ・ G [0] -R
The above elements {G [0], ..., G [t-1]} and {T [0], .., T [2 ^ t-1]} are output,
The output {G [0], ..., G [t-1]} and {T [0], .., T [2 ^ t-1]}
Input the above element R and output {G [0], ..., G [t-1]} and {T [0], .., T [2 ^ t-1]}, Y = R,
{G [0], ..., G [t-1]}, {T [0], .., T [2 ^ t-1]}, which are the outputs of the initial value setting unit,
Enter Y and the binary representation {d [i]} of d above,
Perform the following operations sequentially from i = k-1 to 0,
Y = 2Y +
T [d [i + k (t-1)] 2 ^ {(t-1) k} +… + d [i + k] 2 ^ k + d [i]]
i = i-1,
Input Y, which is the output of the second calculation unit, and the above element R to the third calculation unit to obtain Y = YR,
The power of the finite group E is characterized in that Y, which is the output of the third arithmetic unit, is output as the value of the power operation dG by the output unit.
請求項31では,請求項30記載のべき演算方法を適用したべき演算装置としている. Claim 31 is an arithmetic device to which the power calculation method according to claim 30 should be applied.
請求項32では,請求項30記載の方法を実行するプログラムを記憶した記録媒体としている. According to a thirty-second aspect, a recording medium storing a program for executing the method according to the thirty-third aspect is provided.
請求項33では,請求項30記載のべき演算方法を用いた署名,認証,秘密通信及び鍵共有方式としている. In claim 33, a signature, authentication, secret communication and key sharing method using the operation method according to claim 30 is adopted.
請求項34では,有限群をEとし,E上の群演算を加法的に表し,Eの元をG,ビット数をn,分割数をt(<n),
t とnとの最小公倍数をn’=kt とし,
これらE,G,k,n,t,n’を格納する第一のメモリ部と,
nビットのデータdを生成する第一の乱数発生部と,ここでdのn’ビットでの二進表現を
d=d[n’-1]・2^(n’-1)+…+d[n]・2^n+d[n-1]・2^(n-1)+…+ d[0],
(d[n’-1]=…=d[n]=0かつd[n-1],…,d[0]は0または1)
とし,上記dの二進表現を用いて,kビットのデータa[j]をj=0 からt-1 に対して,
a[j]= d[kj+(k-1)]・2^(k-1)
+・・・+ d[kj]
と表記し,
有限群Eの任意の元Rを生成する乱数発生部と,
上記元Rと第一のメモリ部の元G,kを入力として,
j=1 からt-1に対してG[j] = 2^(kj)G としてEの元
G[j]を求め,
G[0] = G と表し,
次に上記元G[j](j=0,..,t-1)と0≦ b ≦2^t-1の整数bとそのbの二進表現b
= b[t-1]・2^(t-1) + ・・・+ b[0](各b[i]は0 か1)を用いて,
T[b] = b[t-1]・G[t-1] + ・・・+ b[0]・G[0]-Rとして,
2^t個のEの元{T[0],..,T[2^t-1]}を求める第一の演算部と,
上記元Rと第一の演算部の出力{G[0],..,G[t-1]}と{T[0],..,T[2^t-1]}を入
力として,{G[0],..,G[t-1]},{T[0],..,T[2^t-1]},
Y=Rを第二の演算部の初期値として設定する初期値設定部と,
初期値設定部の出力{G[0],…,G[t-1]}, {T[0],..,T[2^t-1]}, Y と上記dの二進表現{d[i]}を入力として,
i=k-1 から 0 まで以下の演算,
Y = 2Y +
T[d[i+k(t-1)]2^{(t-1)k}+ …+d[i+k]2^k + d[i]]
i = i-1
を順次ループ処理する第二の演算部と,
第二の演算部の出力であるYと上記元Rを入力として,Y=Y-Rを計算する第三の演算部を有し,
第三の演算部の出力Yをべき演算dGの値として出力する出力部を有することを特徴とする有限群Eのべき演算装置としている.
In claim 34, the finite group is E, and the group operation on E is expressed additively, the element of E is G, the number of bits is n, the number of divisions is t (<n),
Let the least common multiple of t and n be n '= kt,
A first memory unit for storing these E, G, k, n, t, and n ′;
A first random number generator that generates n bits of data d, and a binary representation of d with n 'bits
d = d [n'-1] ・ 2 ^ (n'-1) +… + d [n] ・ 2 ^ n + d [n-1] ・ 2 ^ (n-1) +… + d [0 ],
(d [n'-1] = ... = d [n] = 0 and d [n-1], ..., d [0] is 0 or 1)
And using the binary representation of d above, k-bit data a [j] for j = 0 to t-1
a [j] = d [kj + (k-1)] ・ 2 ^ (k-1)
+ ... + d [kj]
And
A random number generator for generating an arbitrary element R of the finite group E;
Using the above element R and elements G and k of the first memory unit as inputs,
Element of E as G [j] = 2 ^ (kj) G from j = 1 to t-1
Find G [j]
G [0] = G
Next, the above element G [j] (j = 0, .., t-1), the integer b of 0≤b≤2 ^ t-1, and the binary representation b of that b
= b [t-1] ・ 2 ^ (t-1) + ・ ・ ・ + b [0] (each b [i] is 0 or 1)
T [b] = b [t-1] ・ G [t-1] + ・ ・ ・ + b [0] ・ G [0] -R
A first computing unit for finding 2 ^ t E elements {T [0], .., T [2 ^ t-1]};
Using the element R and the output {G [0], .., G [t-1]} and {T [0], .., T [2 ^ t-1]} as inputs, {G [0], .., G [t-1]}, {T [0], .., T [2 ^ t-1]},
An initial value setting unit for setting Y = R as an initial value of the second calculation unit;
Output of initial value setting part {G [0], ..., G [t-1]}, {T [0], .., T [2 ^ t-1]}, Y and binary representation of d above { d [i]} as input,
The following operations from i = k-1 to 0:
Y = 2Y +
T [d [i + k (t-1)] 2 ^ {(t-1) k} +… + d [i + k] 2 ^ k + d [i]]
i = i-1
A second arithmetic unit that sequentially loops
It has a third calculation unit that calculates Y = YR, using Y as the output of the second calculation unit and the above element R as inputs.
The power unit of the finite group E is characterized by having an output unit that outputs the output Y of the third arithmetic unit as the value of the power operation dG.
請求項35では,有限群をEとし,E上の群演算を加法的に表し,ビット数をn,分割数をt(<n),
t とnとの最小公倍数をn’=kt とし,
これらE,k,n,t,n’を第一のメモリ部に格納し,
入力部にEの元Gを入力し,
第一の乱数発生部により,nビットのデータdを生成し,そのn’ビットでの二進表現を
d=d[n’-1]・2^(n’-1)+…+d[n]・2^n+d[n-1]・2^(n-1)+…+ d[0],
(d[n’-1]=…=d[n]=0かつd[n-1],…,d[0]は0または1)
とし,上記dの二進表現を用いて,kビットのデータa[j]をj=0 からt-1 に対して,
a[j]= d[kj+(k-1)]・2^(k-1)
+・・・+ d[kj]
と表記し,
第二の乱数発生部により,有限群Eの任意の元Rを生成し,
第一の演算部に,上記元Rと上記入力元Gと第一のメモリ部のk を入力し,
j=1 からt-1に対してG[j] = 2^(kj)G としてEの元
G[j]を求め,
G[0] = G と表し,
上記元G[j](j=0,..,t-1)と0≦ b ≦2^t-1の整数bとそのbの二進表現b
= b[t-1]・2^(t-1) + ・・・+ b[0]を用いて(各b[i]は0 か1),
T[b] = b[t-1]・G[t-1] + ・・・+ b[0]・G[0]-Rとして,
2^t個のEの元{T[0],..,T[2^t-1]}を求め,
上記元{G[0],…,G[t-1]}と{T[0],..,T[2^t-1]}を出力し,
初期値設定部に第一の演算部の出力{G[0],…,G[t-1]}と{T[0],..,T[2^t-1]},
上記元Rを入力し,{G[0],…,G[t-1]}と{T[0],..,T[2^t-1]},Y=Rを出力し,
第二の演算部に上記初期値設定部の出力である{G[0],…,G[t-1]}, {T[0],..,T[2^t-1]},
Y と上記dの二進表現{d[i]}を入力し,
i=k-1 から 0 まで以下の演算を順次行い,
Y = 2Y +
T[d[i+k(t-1)]2^{(t-1)k}+ …+d[i+k]2^k + d[i]]
i = i-1,
第三の演算部に,第二の演算部の出力であるYと上記元Rを入力してY=Y-Rを求め,
第三の演算部の出力であるYを出力部によりべき演算dGの値として出力することを特徴とする有限群Eのべき演算方法としている.
In claim 35, the finite group is E, the group operation on E is expressed additively, the number of bits is n, the number of divisions is t (<n),
Let the least common multiple of t and n be n '= kt,
These E, k, n, t, and n ′ are stored in the first memory unit,
Enter the element G of E in the input section,
The first random number generator generates n-bit data d, and the binary representation with n 'bits
d = d [n'-1] ・ 2 ^ (n'-1) +… + d [n] ・ 2 ^ n + d [n-1] ・ 2 ^ (n-1) +… + d [0 ],
(d [n'-1] = ... = d [n] = 0 and d [n-1], ..., d [0] is 0 or 1)
And using the binary representation of d above, k-bit data a [j] for j = 0 to t-1
a [j] = d [kj + (k-1)] ・ 2 ^ (k-1)
+ ... + d [kj]
And
An arbitrary element R of the finite group E is generated by the second random number generator,
The element R, the input element G, and k of the first memory unit are input to the first arithmetic unit,
Element of E as G [j] = 2 ^ (kj) G from j = 1 to t-1
Find G [j]
G [0] = G
The above element G [j] (j = 0, .., t-1), the integer b of 0 ≦ b ≦ 2 ^ t-1, and the binary representation b of that b
= b [t-1] ・ 2 ^ (t-1) + ・ ・ ・ + b [0] (each b [i] is 0 or 1)
T [b] = b [t-1] ・ G [t-1] + ・ ・ ・ + b [0] ・ G [0] -R
The above elements {G [0], ..., G [t-1]} and {T [0], .., T [2 ^ t-1]} are output,
The output {G [0], ..., G [t-1]} and {T [0], .., T [2 ^ t-1]}
Input the above element R and output {G [0], ..., G [t-1]} and {T [0], .., T [2 ^ t-1]}, Y = R,
{G [0], ..., G [t-1]}, {T [0], .., T [2 ^ t-1]}, which are the outputs of the initial value setting unit,
Enter Y and the binary representation {d [i]} of d above,
Perform the following operations sequentially from i = k-1 to 0,
Y = 2Y +
T [d [i + k (t-1)] 2 ^ {(t-1) k} +… + d [i + k] 2 ^ k + d [i]]
i = i-1,
Input Y, which is the output of the second calculation unit, and the above element R to the third calculation unit to obtain Y = YR,
The power of the finite group E is characterized in that Y, which is the output of the third arithmetic unit, is output as the value of the power operation dG by the output unit.
請求項36では,請求項35記載のべき演算方法を適用したべき演算装置としている. Claim 36 is an arithmetic device to which the power calculation method according to claim 35 is applied.
請求項37では,請求項35記載の方法を実行するプログラムを記憶した記録媒体としている. In a thirty-seventh aspect, a recording medium storing a program for executing the method according to the thirty-fifth aspect is provided.
請求項38では,請求項35記載のべき演算方法を用いた署名,認証,秘密通信及び鍵共有方式としている. In claim 38, a signature, authentication, secret communication, and key sharing method using the operation method according to claim 35 is adopted.
請求項39では,有限群をEとし,E上の群演算を加法的に表し,ビット数をn,分割数をt(<n),
t とnとの最小公倍数をn’=kt とし,
これらE,k,n,t,n’を入力として格納する第一のメモリ部と,
有限群Eの元Gを入力する入力部と,
nビットのデータdを生成する第一の乱数発生部と,ここでdのn’ビットでの二進表現を
d=d[n’-1]・2^(n’-1)+…+d[n]・2^n+d[n-1]・2^(n-1)+…+ d[0],
(d[n’-1]=…=d[n]=0かつd[n-1],…,d[0]は0または1)
とし,上記dの二進表現を用いて,kビットのデータa[j]をj=0 からt-1 に対して,
a[j]= d[kj+(k-1)]・2^(k-1)
+・・・+ d[kj]
と表記し,
有限群Eの任意の元Rを生成する乱数発生部と,
上記元Rと上記入力元G,第一のメモリ部のkを入力として,
j=1 からt-1に対してG[j] = 2^(kj)G としてEの元
G[j]を求め,
G[0] = G と表し,
次に上記元G[j](j=0,..,t-1)と0≦ b ≦2^t-1の整数bとそのbの二進表現b
= b[t-1]・2^(t-1) + ・・・+ b[0](各b[i]は0 か1)を用いて,
T[b] = b[t-1]・G[t-1] + ・・・+ b[0]・G[0]-Rとして,
2^t個のEの元{T[0],..,T[2^t-1]}を求める第一の演算部と,
上記元Rと第一の演算部の出力{G[0],..,G[t-1]}と{T[0],..,T[2^t-1]}を入
力として,{G[0],..,G[t-1]},{T[0],..,T[2^t-1]},
Y=Rを第二の演算部の初期値として設定する初期値設定部と,
初期値設定部の出力{G[0],…,G[t-1]}, {T[0],..,T[2^t-1]}, Y と上記dの二進表現{d[i]}を入力として,
i=k-1 から 0 まで以下の演算,
Y = 2Y +
T[d[i+k(t-1)]2^{(t-1)k}+ …+d[i+k]2^k + d[i]]
i = i-1
を順次ループ処理する第二の演算部と,
第二の演算部の出力であるYと上記元Rを入力として,Y=Y-Rを計算する第三の演算部を有し,
第三の演算部の出力Yをべき演算dGの値として出力する出力部を有することを特徴とする有限群Eのべき演算装置としている.
In claim 39, the finite group is E, the group operation on E is expressed additively, the number of bits is n, the number of divisions is t (<n),
Let the least common multiple of t and n be n '= kt,
A first memory section for storing these E, k, n, t, and n ′ as inputs;
An input unit for inputting an element G of a finite group E;
A first random number generator that generates n bits of data d, and a binary representation of d with n 'bits
d = d [n'-1] ・ 2 ^ (n'-1) +… + d [n] ・ 2 ^ n + d [n-1] ・ 2 ^ (n-1) +… + d [0 ],
(d [n'-1] = ... = d [n] = 0 and d [n-1], ..., d [0] is 0 or 1)
And using the binary representation of d above, k-bit data a [j] for j = 0 to t-1
a [j] = d [kj + (k-1)] ・ 2 ^ (k-1)
+ ... + d [kj]
And
A random number generator for generating an arbitrary element R of the finite group E;
Using the element R, the input source G, and k of the first memory unit as inputs,
Element of E as G [j] = 2 ^ (kj) G from j = 1 to t-1
Find G [j]
G [0] = G
Next, the above element G [j] (j = 0, .., t-1), the integer b of 0≤b≤2 ^ t-1, and the binary representation b of that b
= b [t-1] ・ 2 ^ (t-1) + ・ ・ ・ + b [0] (each b [i] is 0 or 1)
T [b] = b [t-1] ・ G [t-1] + ・ ・ ・ + b [0] ・ G [0] -R
A first computing unit for finding 2 ^ t E elements {T [0], .., T [2 ^ t-1]};
Using the element R and the output {G [0], .., G [t-1]} and {T [0], .., T [2 ^ t-1]} as inputs, {G [0], .., G [t-1]}, {T [0], .., T [2 ^ t-1]},
An initial value setting unit for setting Y = R as an initial value of the second calculation unit;
Output of initial value setting part {G [0], ..., G [t-1]}, {T [0], .., T [2 ^ t-1]}, Y and binary representation of d above { d [i]} as input,
The following operations from i = k-1 to 0:
Y = 2Y +
T [d [i + k (t-1)] 2 ^ {(t-1) k} +… + d [i + k] 2 ^ k + d [i]]
i = i-1
A second arithmetic unit that sequentially loops
It has a third calculation unit that calculates Y = YR, using Y as the output of the second calculation unit and the above element R as inputs.
The power unit of the finite group E is characterized by having an output unit that outputs the output Y of the third arithmetic unit as the value of the power operation dG.
請求項40では,有限群をEとし,E上の群演算を加法的に表し,nビットのデータをd,分割数をt(<n), t とnとの最小公倍数をn’=kt とし,
d のn’ビットでの二進表現を
d=d[n’-1]・2^(n’-1)+…+d[n]・2^n+d[n-1]・2^(n-1)+…+ d[0],
(d[n’-1]=…=d[n]=0かつd[n-1],…,d[0]は0または1)
とし,上記dの二進表現を用いて,kビットのデータa[j]をj=0 からt-1 に対して,
a[j]= d[kj+(k-1)]・2^(k-1)
+・・・+ d[kj]
と表記し,
これらE,k,n,t,n’を第一のメモリ部に格納し,
上記データdとその二進表現{d[i](i=0,..,2^n’-1)}, kビットのデータ{a[j](j=0, ..., t-1)} を第二のメモリ部に格納し,
入力部にEの元Gを入力し,
乱数発生部により,有限群Eの任意の元Rを生成し,
第一の演算部に,上記元Rと上記入力元Gと第一のメモリ部のk を入力し,
j=1 からt-1に対してG[j] = 2^(kj)G としてEの元
G[j]を求め,
G[0] = G と表し,
上記元G[j](j=0,..,t-1)と0≦ b ≦2^t-1の整数bとそのbの二進表現b
= b[t-1]・2^(t-1) + ・・・+ b[0]を用いて(各b[i]は0 か1),
T[b] = b[t-1]・G[t-1] + ・・・+ b[0]・G[0]-Rとして,
2^t個のEの元{T[0],..,T[2^t-1]}を求め,
上記元{G[0],…,G[t-1]}と{T[0],..,T[2^t-1]}を出力し,
初期値設定部に第一の演算部の出力{G[0],…,G[t-1]}と{T[0],..,T[2^t-1]},
上記元Rを入力し,{G[0],…,G[t-1]}と{T[0],..,T[2^t-1]},Y=Rを出力し,
第二の演算部に上記初期値設定部の出力である{G[0],…,G[t-1]}, {T[0],..,T[2^t-1]},
Y と第二のメモリ部に格納されている{d[i]}を入力し,
i=k-1 から 0 まで以下の演算を順次行い,
Y = 2Y +
T[d[i+k(t-1)]2^{(t-1)k}+ …+d[i+k]2^k + d[i]]
i = i-1,
第三の演算部に,第二の演算部の出力であるYと上記元Rを入力してY=Y-Rを求め,
第三の演算部の出力であるYを出力部によりべき演算dGの値として出力することを特徴とする有限群Eのべき演算方法としている.
In claim 40, E is a finite group, and a group operation on E is expressed additively, d is n-bit data, t (<n) is the number of divisions, and n '= kt is the least common multiple of t and n. age,
Binary representation of d with n 'bits
d = d [n'-1] ・ 2 ^ (n'-1) +… + d [n] ・ 2 ^ n + d [n-1] ・ 2 ^ (n-1) +… + d [0 ],
(d [n'-1] = ... = d [n] = 0 and d [n-1], ..., d [0] is 0 or 1)
And using the binary representation of d above, k-bit data a [j] for j = 0 to t-1
a [j] = d [kj + (k-1)] ・ 2 ^ (k-1)
+ ... + d [kj]
And
These E, k, n, t, and n ′ are stored in the first memory unit,
Data d and its binary representation {d [i] (i = 0, .., 2 ^ n'-1)}, k-bit data {a [j] (j = 0, ..., t- 1)} is stored in the second memory section,
Enter the element G of E in the input section,
An arbitrary element R of the finite group E is generated by the random number generator,
The element R, the input element G, and k of the first memory unit are input to the first arithmetic unit,
Element of E as G [j] = 2 ^ (kj) G from j = 1 to t-1
Find G [j]
G [0] = G
The above element G [j] (j = 0, .., t-1), the integer b of 0 ≦ b ≦ 2 ^ t-1, and the binary representation b of that b
= b [t-1] ・ 2 ^ (t-1) + ・ ・ ・ + b [0] (each b [i] is 0 or 1)
T [b] = b [t-1] ・ G [t-1] + ・ ・ ・ + b [0] ・ G [0] -R
The above elements {G [0], ..., G [t-1]} and {T [0], .., T [2 ^ t-1]} are output,
The output {G [0], ..., G [t-1]} and {T [0], .., T [2 ^ t-1]}
Input the above element R and output {G [0], ..., G [t-1]} and {T [0], .., T [2 ^ t-1]}, Y = R,
{G [0], ..., G [t-1]}, {T [0], .., T [2 ^ t-1]}, which are the outputs of the initial value setting unit,
Enter Y and {d [i]} stored in the second memory,
Perform the following operations sequentially from i = k-1 to 0,
Y = 2Y +
T [d [i + k (t-1)] 2 ^ {(t-1) k} +… + d [i + k] 2 ^ k + d [i]]
i = i-1,
Input Y, which is the output of the second calculation unit, and the above element R to the third calculation unit to obtain Y = YR,
The power of the finite group E is characterized in that Y, which is the output of the third arithmetic unit, is output as the value of the power operation dG by the output unit.
請求項41では,請求項40記載のべき演算方法を適用したべき演算装置としている. Claim 41 is an arithmetic device to which the power calculation method according to claim 40 should be applied.
請求項42では,請求項40記載の方法を実行するプログラムを記憶した記録媒体としている. In claim 42, a recording medium storing a program for executing the method of claim 40 is provided.
請求項43では,請求項40記載のべき演算方法を用いた署名,認証,秘密通信及び鍵共有方式としている. In claim 43, a signature, authentication, secret communication, and key sharing method using the operation method according to claim 40 is adopted.
請求項44では,有限群をEとし,E上の群演算を加法的に表し,nビットのデータd,分割数をt(<n), t とnの最小公倍数をn’=kt とし,
d のn’ビットでの二進表現を
d=d[n’-1]・2^(n’-1)+…+d[n]・2^n+d[n-1]・2^(n-1)+…+
d[0],
(d[n’-1]=…=d[n]=0かつd[n-1],…,d[0]は0または1)
とし,上記dの二進表現を用いて,kビットのデータa[j]をj=0 からt-1 に対して,
a[j]= d[kj+(k-1)]・2^(k-1)
+・・・ +d[kj+1]・2+ d[kj]
と表記し,
これらE,k,n,t,n’を入力として格納する第一のメモリ部と,
これらdとその二進表現,及びkビットのデータ{a[j]}を格納する第二のメモリ部を有し,
有限群Eの元Gを入力する入力部と,
有限群Eの任意の元Rを生成する乱数発生部と,
上記元Rと上記入力元G,第一のメモリ部のkを入力として,
j=1 からt-1に対してG[j] = 2^(kj)G としてEの元
G[j]を求め,
G[0] = G と表し,
次に上記元G[j](j=0,..,t-1)と0≦ b ≦2^t-1の整数bとそのbの二進表現b
= b[t-1]・2^(t-1) + ・・・+ b[0](各b[i]は0 か1)を用いて,
T[b] = b[t-1]・G[t-1] + ・・・+ b[0]・G[0]-Rとして,
2^t個のEの元{T[0],..,T[2^t-1]}を求める第一の演算部と,
上記元Rと第一の演算部の出力{G[0],..,G[t-1]}と{T[0],..,T[2^t-1]}を入
力として,{G[0],..,G[t-1]},{T[0],..,T[2^t-1]},
Y=Rを第二の演算部の初期値として設定する初期値設定部と,
初期値設定部の出力{G[0],…,G[t-1]}, {T[0],..,T[2^t-1]}, Y と上記dの二進表現{d[i]}を入力として,
i=k-1 から 0 まで以下の演算,
Y = 2Y +
T[d[i+k(t-1)]2^{(t-1)k}+ …+d[i+k]2^k + d[i]]
i = i-1
を順次ループ処理する第二の演算部と,
第二の演算部の出力であるYと上記元Rを入力として,Y=Y-Rを計算する第三の演算部を有し,
第三の演算部の出力Yをべき演算dGの値として出力する出力部を有することを特徴とする有限群Eのべき演算装置としている.
In claim 44, the finite group is E, the group operation on E is expressed additively, n-bit data d, the number of divisions is t (<n), the least common multiple of t and n is n '= kt,
Binary representation of d with n 'bits
d = d [n'-1] ・ 2 ^ (n'-1) +… + d [n] ・ 2 ^ n + d [n-1] ・ 2 ^ (n-1) +… +
d [0],
(d [n'-1] = ... = d [n] = 0 and d [n-1], ..., d [0] is 0 or 1)
And using the binary representation of d above, k-bit data a [j] for j = 0 to t-1
a [j] = d [kj + (k-1)] ・ 2 ^ (k-1)
+ ... + d [kj + 1] ・ 2+ d [kj]
And
A first memory section for storing these E, k, n, t, and n ′ as inputs;
A second memory unit for storing d and its binary representation and k-bit data {a [j]};
An input unit for inputting an element G of a finite group E;
A random number generator for generating an arbitrary element R of the finite group E;
Using the element R, the input source G, and k of the first memory unit as inputs,
Element of E as G [j] = 2 ^ (kj) G from j = 1 to t-1
Find G [j]
G [0] = G
Next, the above element G [j] (j = 0, .., t-1), the integer b of 0≤b≤2 ^ t-1, and the binary representation b of that b
= b [t-1] ・ 2 ^ (t-1) + ・ ・ ・ + b [0] (each b [i] is 0 or 1)
T [b] = b [t-1] ・ G [t-1] + ・ ・ ・ + b [0] ・ G [0] -R
A first computing unit for finding 2 ^ t E elements {T [0], .., T [2 ^ t-1]};
Using the element R and the output {G [0], .., G [t-1]} and {T [0], .., T [2 ^ t-1]} as inputs, {G [0], .., G [t-1]}, {T [0], .., T [2 ^ t-1]},
An initial value setting unit for setting Y = R as an initial value of the second calculation unit;
Output of initial value setting part {G [0], ..., G [t-1]}, {T [0], .., T [2 ^ t-1]}, Y and binary representation of d above { d [i]} as input,
The following operations from i = k-1 to 0:
Y = 2Y +
T [d [i + k (t-1)] 2 ^ {(t-1) k} +… + d [i + k] 2 ^ k + d [i]]
i = i-1
A second arithmetic unit that sequentially loops
It has a third calculation unit that calculates Y = YR, using Y as the output of the second calculation unit and the above element R as inputs.
The power unit of the finite group E is characterized by having an output unit that outputs the output Y of the third arithmetic unit as the value of the power operation dG.
以上に説明したように,従来例では,サイドチャネル攻撃に対して安全にべき演算dGを求めるには,必要となる最小限の中間変数の量が多くなる問題と,予備計算テーブルなどを利用し,実行速度の高速化を図ることが困難であるという問題があった. As described above, in the conventional example, in order to obtain the operation dG that should be safe against the side channel attack, the problem is that the minimum amount of necessary intermediate variables increases, and a preliminary calculation table is used. There was a problem that it was difficult to increase the execution speed.
本発明は,この従来例における問題点を鑑みて行なわれたもので,サイドチャネル攻撃に強力なべき演算を,メモリサイズ及び実行速度に関してフレキシブルに実現することで,安全な有限群上の離散対数問題に基づく鍵共有,暗号,署名方式を提供することを目的とする.これにより,より高速でよりコンパクトなソフトあるいはハード実現が可能になり,携帯端末などにおいても容易に実現可能な離散対数問題を用いた鍵共有,暗号,署名方式の提供が可能になる.安全な鍵共有,暗号,署名方式などの公開鍵暗号系を高速かつコンパクトに実現できると,性能の低い機械上のアプリケーションのセキュリティを強化することもでき,その実用的価値は大きい. The present invention has been made in view of the problems in this conventional example, and by realizing flexibly an operation that should be strong against side channel attacks in terms of memory size and execution speed, a discrete logarithm on a safe finite group can be obtained. The purpose is to provide problem-based key sharing, encryption, and signature methods. This makes it possible to realize faster and more compact software or hardware, and to provide key sharing, encryption, and signature methods using the discrete logarithm problem that can be easily implemented on mobile terminals. If public key cryptosystems such as secure key sharing, cryptography, and signature schemes can be realized at high speed and compactly, the security of applications on low-performance machines can be strengthened, and its practical value is great.
図1は,べき演算装置を示すものである.図6は,楕円曲線上のべき演算を実現する方法を時系列に示すものであり,図1の各部との対応も記載する.
以下,図1及び図6を参照しながら楕円曲線上のべき演算の方法を説明する.
Figure 1 shows the power unit. Fig. 6 shows the method of realizing power calculations on an elliptic curve in time series, and the correspondence with each part in Fig. 1 is also described.
The power calculation method on the elliptic curve is described below with reference to FIGS.
Step 1. 楕円曲線 E(Fq),
E(Fq) の元 G とビット数nを入力
有限体 FqとFq上の楕円曲線E,E(Fq)の元G,ビット数nを入力する.
Enter the element G of E (Fq) and the number of bits n. Enter the elliptic curve E on the input finite fields Fq and Fq, the element G of E (Fq), and the number of bits n.
Step 2. dとその二進表記d =
d[n-1]2^(n-1)+ ・・・+ d[1]2 + d[0]を入力
nビットのデータdを二進で表記する.このとき,各d[n-1],…,d[0]は0または1である.
d [n-1] 2 ^ (n-1) + ・ ・ ・ + d [1] 2 + d [0] is input
This expresses n-bit data d in binary. In this case, each d [n-1], ..., d [0] is 0 or 1.
Step 3. E(Fq) の元R をとる.
Step 4. Z = G-R とする.
dG+Rを最上位ビット(MSB)より計算するときに必要な元Z=G-Rを計算する.
This calculates the element Z = GR that is required when calculating dG + R from the most significant bit (MSB).
Step 5. Y = R, Z = G-R とする.
dG+Rを最上位ビット(MSB)より計算するために初期値Y=Rを設定する.
Set the initial value Y = R to calculate dG + R from the most significant bit (MSB).
Step
6から7までが第二の演算部に相当する.
Step 6. i = n-1 とする.
dG+Rを最上位ビット(MSB)より計算するためのカウンタiを0に設定する.
Step 7. i ≧ 0
d[i]の値に応じて以下の演算,
Y=2Y+Z (d[i]=1のとき),
Y=2Y-R (d[i]=0のとき),
を行い,iを1だけ減らし,step
7の判定を行う.
Step
6 to 7 correspond to the second calculation unit.
Set the counter i for calculating dG + R from the most significant bit (MSB) to 0.
Depending on the value of d [i],
Y = 2Y + Z (when d [i] = 1),
Y = 2Y-R (when d [i] = 0),
To reduce i by 1 and step
Step 8. Y = Y-R を計算
Step 9. Y を出力する.
Step 7 で dY+R
が求められ,step 8 でその結果からRを減算した結果がYに入力されるので,出力値のYはべき演算dGの結果となる.
Step 9. Output Y.
Since the result of subtracting R from the result in
上記実施例1は,請求項5に掛かる発明の一実施例である.上記実施例1は,入力の楕円曲線の元Gと秘密データdに対し,楕円べき演算dGを計算し出力する装置である.本装置では,その途中過程の消費電力が入力の度に異なり,また途中過程で楕円曲線の元が0座標,あるいは0レジスタを持つように入力Gを操作できない.このため,サイドチャネル攻撃に対して安全である.さらに,途中過程で必要になる楕円曲線の元を保持する中間変数の個数は3個であり,従来例により削減できる.
The first embodiment is an embodiment of the invention according to
実施例1では,有限群として有限体上の楕円曲線を用いた場合のべき演算装置となっているが,実施例はこれに限定されない.例えば,請求項6にあるように,有限群として,有限体上の超楕円曲線を用いることもできる.さらに実施例1では,べき演算dGのd及びGがともにメモリに格納されている請求項1の場合を扱っているが,実施例はこれに限定されない.例えば,請求項8,13,18にあるように,dが乱数として生成されGがメモリに格納される場合,dが乱数として生成されGがユーザにより入力される場合,dがメモリに格納されGがユーザにより入力される場合もできる.なお,これらの実施例は,図2,3,4にそれぞれ対応する.
In the first embodiment, the arithmetic unit is a power unit when an elliptic curve on a finite field is used as a finite group, but the embodiment is not limited to this. For example, as described in
実施例1ではべき演算装置のみを表記しているが,離散対数問題を利用した暗号,署名,鍵共有,認証などで利用するべき演算を,本方法を用いて実現し,サイドチャネル攻撃に対して安全に実現した方式も含まれる. Although only the arithmetic unit is described in the first embodiment, the arithmetic to be used for encryption, signature, key sharing, authentication, etc. using the discrete logarithm problem is realized by using this method, and the side channel attack is prevented. And safe implementations are also included.
図5は,べき演算装置を示すものである.図7は,楕円曲線上のべき演算を実現する方法を時系列に示すものであり,図5の各部との対応も記載する.
以下,図5及び図7を参照しながら楕円曲線上のべき演算の方法を説明する.
を参照しながら楕円曲線上のべき演算の方法を説明する.
Step 1. 楕円曲線E(Fq),
E(Fq)の元G,ビット数n,分割数t,n’=ktを入力
有限体 FqとFq上の楕円曲線E,E(Fq)の元Gを入力する.
Figure 5 shows the power unit. Fig. 7 shows the method of realizing power calculation on an elliptic curve in time series, and also describes the correspondence with each part in Fig. 5.
The power calculation method on the elliptic curve is described below with reference to FIGS.
This section explains how to perform power operations on elliptic curves with reference to.
Enter element G of E (Fq), bit number n, number of divisions t, n '= kt Input finite field Fq and elliptic curve E on Fq, element G of E (Fq).
Step 2. dとn’ビットの二進表記d = d[n-1]2^(n-1)+ ・・・+ d[1]2 + d[0]と{a[j]}を入力
nビットのデータdを上位に0を付加することで,n’ビットに拡張し,2進で表記する.
d = d[n’-1]2^(n’-1)+…+d[n]2^n+d[n-1]2^(n-1)+…+ d[1]2 +
d[0]
このとき,d[n’-1]=…=d[n]=0で,d[n-1],…,d[0]は0または1である.
次に,上記dの二進表現を用いて,kビットのデータa[j]を
j=0 からt-1 に対して,
a[j]=
d[kj+(k-1)]・2^(k-1) +・・・+ d[kj]
と表記する.
The n-bit data d is expanded to n 'bits by adding 0 to the upper part and expressed in binary.
d = d [n'-1] 2 ^ (n'-1) +… + d [n] 2 ^ n + d [n-1] 2 ^ (n-1) +… + d [1] 2 +
d [0]
At this time, d [n'-1] = ... = d [n] = 0 and d [n-1], ..., d [0] are 0 or 1.
Next, using the binary representation of d above, k-bit data a [j]
For j = 0 to t-1,
a [j] =
d [kj + (k-1)] ・ 2 ^ (k-1) + ・ ・ ・ + d [kj]
Is written.
Step
3.E(Fq) の元R
をとる.
Step
3. Element R of E (Fq)
Take
Step
4. G[i] = 2^ki G (i = 1,…, k-1) と予備計算テーブル{T[b]}の作成
まず,G[j] = 2^(kj)G (j= 1,…,k-1)として,
Eの元 G[j]を求め,G[0] = G と表す.
次に,0≦ b ≦2^t-1の任意のbとそのbの二進表現
b = b[t-1]2^(t-1) + ・・・+
b[0] (各b[i]は0 か1)
を用いて,
T[b] = b[t-1]G[t-1] + ・・・+
b[0]G[0]
として2^t個のEの元{T[0],..,T[2^t-1]}を求める.
Step
4. G [i] = 2 ^ ki G (i = 1, ..., k-1) and creation of preliminary calculation table {T [b]} First, G [j] = 2 ^ (kj) G (j = 1, ..., k-1)
Find the element G [j] of E and express G [0] = G.
Next, any b with 0 ≦ b ≦ 2 ^ t-1 and its binary representation
b = b [t-1] 2 ^ (t-1) + ・ ・ ・ +
b [0] (each b [i] is 0 or 1)
Using,
T [b] = b [t-1] G [t-1] + ・ ・ ・ +
b [0] G [0]
This finds 2 ^ t E elements {T [0], .., T [2 ^ t-1]}.
Step 5. Y=Rとする.
dG+R = a[t-1]G[t-1]+…+a[0]G[0]を最上位ビット(MSB)より計算するために初期値Y=Rとする.
dG + R = a [t-1] G [t-1] + ... + a [0] G [0] is set to the initial value Y = R to calculate from the most significant bit (MSB).
Step
6から7までが第二の演算部に相当する.
Step 6. i = k-1 とする.
Step
7. i ≧ 0
a[t-1][i],
…, a[0][i]を用いて,予備計算テーブルの元を索引し,
以下の演算,
Y = 2Y + T[d[i+k(t-1)]2^{(t-1)k}+
…+d[i+k]2^k + d[i]]
を行い,iを1だけ減らし,step 7
の判定を行う.
Step
6 to 7 correspond to the second calculation unit.
Step
7. i ≧ 0
a [t-1] [i],
…, A [0] [i] is used to index the elements of the preliminary calculation table,
The following operations,
Y = 2Y + T [d [i + k (t-1)] 2 ^ {(t-1) k} +
… + D [i + k] 2 ^ k + d [i]]
To reduce i by 1 and
Judgment of
Step 8. Y = Y-R を計算
Step 9. Y を出力する.
Step 7 で dY+R
が求められ,step 8 でその結果からRを減算した結果がYに入力されるので,出力値のYはべき演算Y=dGの結果となる.
Step 9. Output Y.
Since the result of subtracting R from the result in
上記実施例2は,請求項8に掛かる発明の一実施例である.上記実施例2は,入力の楕円曲線の元Gと秘密データdに対し,楕円べき演算dGを計算し出力する装置である.本装置では,その途中過程の消費電力が入力の度に異なり,また途中過程で楕円曲線の元が0座標,あるいは0レジスタを持つように入力Gを操作できない.このため,サイドチャネル攻撃に対して安全である.さらに,途中過程で必要になる楕円曲線の元を保持する中間変数をテーブルとして効率的に保持することで,高速なべき演算を提供できる.
The second embodiment is an embodiment of the invention according to
実施例2では,有限群として有限体上の楕円曲線を用いた場合のべき演算装置となっているが,実施例はこれに限定されない.例えば,請求項28にあるように,有限群として,有限体上の超楕円曲線を用いることもできる.さらに実施例2では,べき演算dGのd及びGがともにメモリに格納されている請求項1の場合を扱っているが,実施例はこれに限定されない.例えば,請求項30,35,40にあるように,dが乱数として生成されGがメモリに格納される場合,dが乱数として生成されGがユーザにより入力される場合,dがメモリに格納されGがユーザにより入力される場合もできる.また言うまでもなく,本実施例ではべき演算装置のみを表記しているが,離散対数問題を利用した暗号,署名,鍵共有,認証などで利用するべき演算を,本方法を用いて実現し,サイドチャネル攻撃に対して安全に実現した方式も含まれる.
In the second embodiment, the arithmetic unit is a power unit when an elliptic curve on a finite field is used as a finite group, but the embodiment is not limited to this. For example, as described in claim 28, a superelliptic curve on a finite field can be used as a finite group. Further, the second embodiment deals with the case of
従来例及び実施例のメモリ量,計算量の比較を図9に表す.計算量に関しては,定義体Fqが160ビットの場合と1ビット当たりの計算量を表した.D,Aは楕円曲線上の2倍算,加算に掛かる計算量,M, Sは定義体Fq上の乗算,2倍算に掛かる計算量を表す.この表により,メモリ量の制限が非常に厳しい場合,実施例1を利用すると,最小のメモリ量で安全かつ高速なべき演算が実現できる.また,高速性が要求される場合には,実施例2において分割数tを変化させることで,高速なべき演算が実現できる.実際,分割数としてt=4をとると,約50%の実行時間でべき演算が実現でき,その鍵共有,暗号,署名方式などのアプリケーションにおけるインパクトは非常に大きい.産業上で利用するには,アプリケーション及びそのアプリケーションを実現するプラットフォームにより,要求される仕様条件が異なる.本発明は,メモリ及び高速性という異なる観点の要求仕様に対して,それぞれ最適かつ安全なべき演算を提供できる.また,本発明の実現するべき演算は,鍵共有,暗号,署名方式など広範囲のアプリケーションで利用される基本技術であり,その産業上の利用可能性は非常に高い. Fig. 9 shows a comparison of the amount of memory and the amount of calculation between the conventional example and the example. Regarding the computational complexity, the computational complexity per bit was expressed when the definition field Fq was 160 bits. D and A are the calculations for the doubling and addition on the elliptic curve, and M and S are the calculations for the multiplication and doubling on the definition field Fq. According to this table, when the memory limit is very strict, using the first embodiment, it is possible to realize a safe and high-speed operation with a minimum amount of memory. In addition, when high speed is required, high-speed arithmetic can be realized by changing the division number t in the second embodiment. In fact, if t = 4 is used as the number of divisions, the power calculation can be realized in about 50% of the execution time, and its impact on applications such as key sharing, encryption, and signature method is very large. For industrial use, the required specification conditions differ depending on the application and the platform that implements the application. The present invention can provide optimal and safe operations for different specifications such as memory and high speed. In addition, operations to be realized by the present invention are basic technologies used in a wide range of applications such as key sharing, encryption, and signature systems, and their industrial applicability is very high.
Claims (44)
d = d[n-1]・2^(n-1)+…+d[1]・2+d[0]
(各d[i]= 0または 1)
とするとき,
これら E, Gを第一のメモリ部に格納し,dとその二進表現を第二のメモリ部に格納し,
乱数発生部により,有限群Eの任意の元Rを生成し,
第一の演算部に,上記元Rと第一のメモリ部の元Gを入力してQ=G-Rを求め,初期値設定部に第一の演算部の出力Q,上記元Rを入力し,Q,R,Y=Rを出力し,
第二の演算部に上記初期値設定部の出力であるQ, R, Y と第二のメモリ部に格納されているdの二進表現d[i]を入力し,i=n-1 から 0 まで以下の演算を順次行い,
Y = 2Y + Q ( d[i] = 1 の時),
Y = 2Y + (-R) ( d[i] = 0 の時),
i = i-1,
第三の演算部に,第二の演算部の出力であるYと上記元Rを入力してY=Y-Rを求め,
第三の演算部の出力であるYを出力部によりべき演算dGの値として出力することを特徴とする有限群Eのべき演算方法. Let E be a finite group, represent the group operation on E additively, G be the element of E, and n-bit data d and its binary representation
d = d [n-1] ・ 2 ^ (n-1) +… + d [1] ・ 2 + d [0]
(Each d [i] = 0 or 1)
When
These E and G are stored in the first memory part, d and its binary representation are stored in the second memory part,
An arbitrary element R of the finite group E is generated by the random number generator,
The element R and the element G of the first memory unit are input to the first arithmetic unit to obtain Q = GR, the output Q of the first arithmetic unit and the element R are input to the initial value setting unit, Q, R, Y = R is output,
Input Q, R, Y, which is the output of the initial value setting unit, and binary representation d [i] of d stored in the second memory unit to the second arithmetic unit, and from i = n-1 The following operations are sequentially performed until 0,
Y = 2Y + Q (when d [i] = 1),
Y = 2Y + (-R) (when d [i] = 0),
i = i-1,
Input Y, which is the output of the second calculation unit, and the above element R to the third calculation unit to obtain Y = YR,
A power operation method for a finite group E, wherein the output of the third operation unit Y is output as the value of the power operation dG by the output unit.
dG の計算に利用することを特徴とするべき演算方法. The arithmetic method according to claim 1, wherein p is a prime number, r is a positive integer, q is an integer such that q = p ^ r, and elliptic curves E and E (Fq) on a finite field Fq having q elements Power operation on elliptic curve for above element G and n-bit data d
An arithmetic method that should be used to calculate dG.
dG の計算に利用することを特徴とするべき演算方法. The power calculation method according to claim 1, wherein p is a prime number, r is a positive integer, q is an integer such that q = p ^ r, and hyperelliptic curves H, H (Fq on a finite field Fq having q elements ) Power operation on hyperelliptic curve for element G and n-bit data d
An arithmetic method that should be used to calculate dG.
d = d[n-1]・2^(n-1)+…+d[1]・2+d[0]
(各d[i]= 0または 1)
とするとき,
これら E, Gを格納する第一のメモリ部と,
これら dとその二進表現を格納する第二のメモリ部とを有し
有限群Eの任意の元Rを生成する乱数発生部と,
上記元Rと第一のメモリ部の元Gを入力としてQ=G-Rを求める第一の演算部と,
上記元Rと第一の演算部の出力Qを入力として,R, Q, Y=Rを第二の演算部の初期値として設定する初期値設定部と,
初期値設定部の出力Y,R,Qと第二のメモリ部に格納されたdの二進表現{d[i]}を入力として,i=n-1 から 0 まで,以下の演算,
Y = 2Y + Q ( d[i] = 1 の時),
Y = 2Y + (-R) ( d[i] = 0 の時),
i = i-1,
を順次ループ処理する第二の演算部と
第二の演算部の出力であるYと上記元Rを入力として,Y=Y-Rを計算する第三の演算部を有し,
第三の演算部の出力Yをべき演算dGの値として出力する出力部を有することを特徴とする有限群Eのべき演算装置. Let E be a finite group, represent the group operation on E additively, G be the element of E, and n-bit data d and its binary representation
d = d [n-1] ・ 2 ^ (n-1) +… + d [1] ・ 2 + d [0]
(Each d [i] = 0 or 1)
When
A first memory section for storing these E and G;
A random number generator having these d and a second memory unit for storing the binary representation thereof and generating an arbitrary element R of the finite group E;
A first calculation unit for obtaining Q = GR by using the element R and the element G of the first memory unit as inputs;
An initial value setting unit for setting R, Q, and Y = R as initial values of the second calculation unit, with the element R and the output Q of the first calculation unit as inputs,
Using the output Y, R, Q of the initial value setting unit and the binary representation {d [i]} of d stored in the second memory unit as input, the following operations from i = n-1 to 0:
Y = 2Y + Q (when d [i] = 1),
Y = 2Y + (-R) (when d [i] = 0),
i = i-1,
A third arithmetic unit that calculates Y = YR, using Y as the output of the second arithmetic unit and the output of the second arithmetic unit and the above element R as input.
A power unit for a finite group E, comprising an output unit for outputting the output Y of the third arithmetic unit as the value of a power operation dG.
第一の乱数発生部により,nビットのデータdを生成し,その二進表現を
d = d[n-1]・2^(n-1)+…+d[1]・2+d[0]
(各d[i]= 0または 1)
とし,
第二の乱数発生部により,有限群Eの任意の元Rを生成し,
第一の演算部に,上記元Rと第一のメモリ部の元Gを入力してQ=G-Rを求め,初期値設定部に第一の演算部の出力Q,上記元Rを入力し,Q,R,Y=Rを出力し,
第二の演算部に上記初期値設定部の出力であるQ, R, Y と上記dの二進表現d[i]を入力し,i=n-1 から 0 まで以下の演算を順次行い,
Y = 2Y + Q ( d[i] = 1 の時),
Y = 2Y + (-R) ( d[i] = 0 の時),
i = i-1,
第三の演算部に,第二の演算部の出力であるYと上記元Rを入力してY=Y-Rを求め,
第三の演算部の出力であるYを出力部によりべき演算dGの値として出力することを特徴とする有限群Eのべき演算方法. E is a finite group, and the group operation on E is expressed additively, the element of E is G, and these E and G are stored in the first memory part.
The first random number generator generates n-bit data d, and its binary representation
d = d [n-1] ・ 2 ^ (n-1) +… + d [1] ・ 2 + d [0]
(Each d [i] = 0 or 1)
age,
An arbitrary element R of the finite group E is generated by the second random number generator,
The element R and the element G of the first memory unit are input to the first arithmetic unit to obtain Q = GR, the output Q of the first arithmetic unit and the element R are input to the initial value setting unit, Q, R, Y = R is output,
Input the output Q, R, Y of the initial value setting unit and the binary expression d [i] of d above to the second arithmetic unit, and perform the following operations sequentially from i = n-1 to 0,
Y = 2Y + Q (when d [i] = 1),
Y = 2Y + (-R) (when d [i] = 0),
i = i-1,
Input Y, which is the output of the second calculation unit, and the above element R to the third calculation unit to obtain Y = YR,
A power operation method for a finite group E, wherein the output of the third operation unit Y is output as the value of the power operation dG by the output unit.
これら E, Gを格納する第一のメモリ部と,
nビットのデータdを生成する第一の乱数発生部と,ここでdの二進表現を
d = d[n-1]・2^(n-1)+…+d[1]・2+d[0]
(各d[i]= 0または 1)
とし,
有限群Eの任意の元Rを生成する乱数発生部と,
上記元Rと第一のメモリ部の元Gを入力としてQ=G-Rを求める第一の演算部と,
上記元Rと第一の演算部の出力Qを入力として,R, Q, Y=Rを第二の演算部の初期値として設定する初期値設定部と,
初期値設定部の出力Y,R,Qと上記dの二進表現{d[i]}を入力として,i=n-1 から 0 まで,以下の演算,
Y = 2Y + Q ( d[i] = 1 の時),
Y = 2Y + (-R) ( d[i] = 0 の時),
i = i-1,
を順次ループ処理する第二の演算部と
第二の演算部の出力であるYと上記元Rを入力として,Y=Y-Rを計算する第三の演算部を有し,
第三の演算部の出力Yをべき演算dGの値として出力する出力部を有することを特徴とする有限群Eのべき演算装置. Let E be a finite group, add group operations on E additively, and let G be an element of E
A first memory section for storing these E and G;
The first random number generator that generates n-bit data d and the binary representation of d
d = d [n-1] ・ 2 ^ (n-1) +… + d [1] ・ 2 + d [0]
(Each d [i] = 0 or 1)
age,
A random number generator for generating an arbitrary element R of the finite group E;
A first calculation unit for obtaining Q = GR by using the element R and the element G of the first memory unit as inputs;
An initial value setting unit for setting R, Q, and Y = R as initial values of the second calculation unit, with the element R and the output Q of the first calculation unit as inputs,
Using the output Y, R, Q of the initial value setting unit and the binary representation {d [i]} of d above as inputs, the following operations are performed from i = n-1 to 0:
Y = 2Y + Q (when d [i] = 1),
Y = 2Y + (-R) (when d [i] = 0),
i = i-1,
A third arithmetic unit that calculates Y = YR, using Y as the output of the second arithmetic unit and the output of the second arithmetic unit and the above element R as input.
A power unit for a finite group E, comprising an output unit for outputting the output Y of the third arithmetic unit as the value of a power operation dG.
入力部にEの元Gを入力し,
第一の乱数発生部により,nビットのデータdを生成し,その二進表現を
d = d[n-1]・2^(n-1)+…+d[1]・2+d[0]
(各d[i]= 0または 1)
とし,
第二の乱数発生部により,有限群Eの任意の元Rを生成し,
第一の演算部に,上記元Rと上記入力の元Gを入力してQ=G-Rを求め,初期値設定部に第一の演算部の出力Q,上記元Rを入力し,Q,R,Y=Rを出力し,
第二の演算部に上記初期値設定部の出力であるQ, R, Y と上記dの二進表現d[i]を入力し,i=n-1 から 0 まで以下の演算を順次行い,
Y = 2Y + Q ( d[i] = 1 の時),
Y = 2Y + (-R) ( d[i] = 0 の時),
i = i-1,
第三の演算部に,第二の演算部の出力であるYと上記元Rを入力してY=Y-Rを求め,
第三の演算部の出力であるYを出力部によりべき演算dGの値として出力することを特徴とする有限群Eのべき演算方法. Let E be a finite group, represent the group operations on E additively, store E in the first memory part,
Enter the element G of E in the input section,
The first random number generator generates n-bit data d, and its binary representation
d = d [n-1] ・ 2 ^ (n-1) +… + d [1] ・ 2 + d [0]
(Each d [i] = 0 or 1)
age,
An arbitrary element R of the finite group E is generated by the second random number generator,
Q = GR is obtained by inputting the element R and the element G of the input to the first arithmetic unit, the output Q of the first arithmetic unit and the element R are input to the initial value setting unit, and Q, R , Y = R,
Input the output Q, R, Y of the initial value setting unit and the binary expression d [i] of d above to the second arithmetic unit, and perform the following operations sequentially from i = n-1 to 0,
Y = 2Y + Q (when d [i] = 1),
Y = 2Y + (-R) (when d [i] = 0),
i = i-1,
Input Y, which is the output of the second calculation unit, and the above element R to the third calculation unit to obtain Y = YR,
A power operation method for a finite group E, wherein the output of the third operation unit Y is output as the value of the power operation dG by the output unit.
有限群Eの元Gを入力する入力部と,
nビットのデータdを生成する第一の乱数発生部と,ここでdの二進表現を
d = d[n-1]・2^(n-1)+…+d[1]・2+d[0]
(各d[i]= 0または 1)
とし,
有限群Eの任意の元Rを生成する乱数発生部と,
上記元Rと上記入力元Gを入力としてQ=G-Rを求める第一の演算部と,
上記元Rと第一の演算部の出力Qを入力として,R, Q, Y=Rを第二の演算部の初期値として設定する初期値設定部と,
初期値設定部の出力Y,R,Qと上記dの二進表現{d[i]}を入力として,i=n-1 から 0 まで,以下の演算,
Y = 2Y + Q ( d[i] = 1 の時),
Y = 2Y + (-R) ( d[i] = 0 の時),
i = i-1,
を順次ループ処理する第二の演算部と
第二の演算部の出力であるYと上記元Rを入力として,Y=Y-Rを計算する第三の演算部を有し,
第三の演算部の出力Yをべき演算dGの値として出力する出力部を有することを特徴とする有限群Eのべき演算装置. A finite group E, a group operation on E additively expressed, a first memory unit storing E,
An input unit for inputting an element G of a finite group E;
The first random number generator that generates n-bit data d and the binary representation of d
d = d [n-1] ・ 2 ^ (n-1) +… + d [1] ・ 2 + d [0]
(Each d [i] = 0 or 1)
age,
A random number generator for generating an arbitrary element R of the finite group E;
A first arithmetic unit for obtaining Q = GR using the element R and the input element G as inputs;
An initial value setting unit for setting R, Q, and Y = R as initial values of the second calculation unit, with the element R and the output Q of the first calculation unit as inputs,
Using the output Y, R, Q of the initial value setting unit and the binary representation {d [i]} of d above as inputs, the following operations are performed from i = n-1 to 0:
Y = 2Y + Q (when d [i] = 1),
Y = 2Y + (-R) (when d [i] = 0),
i = i-1,
A third arithmetic unit that calculates Y = YR, using Y as the output of the second arithmetic unit and the output of the second arithmetic unit and the above element R as input.
A power unit for a finite group E, comprising an output unit for outputting the output Y of the third arithmetic unit as the value of a power operation dG.
d = d[n-1]・2^(n-1)+…+d[1]・2+d[0]
(各d[i]= 0または 1)
とするとき,
Eを第一のメモリ部に格納し,
dとその二進表現を第二のメモリ部に格納し,
入力部にEの元Gを入力し,
乱数発生部により,有限群Eの任意の元Rを生成し,
第一の演算部に,上記元Rと上記入力の元Gを入力してQ=G-Rを求め,初期値設定部に第一の演算部の出力Q,上記元Rを入力し,Q,R,Y=Rを出力し,
第二の演算部に上記初期値設定部の出力であるQ, R, Y と第二のメモリ部に格納されているdの二進表現d[i]を入力し,i=n-1 から 0 まで以下の演算を順次行い,
Y = 2Y + Q ( d[i] = 1 の時),
Y = 2Y + (-R) ( d[i] = 0 の時),
i = i-1,
第三の演算部に,第二の演算部の出力であるYと上記元Rを入力してY=Y-Rを求め,
第三の演算部の出力であるYを出力部によりべき演算dGの値として出力することを特徴とする有限群Eのべき演算方法. Let E be a finite group, the group operation on E is represented additively, and n-bit data d and its binary representation
d = d [n-1] ・ 2 ^ (n-1) +… + d [1] ・ 2 + d [0]
(Each d [i] = 0 or 1)
When
E is stored in the first memory part,
store d and its binary representation in the second memory part,
Enter the element G of E in the input section,
An arbitrary element R of the finite group E is generated by the random number generator,
Q = GR is obtained by inputting the element R and the element G of the input to the first arithmetic unit, the output Q of the first arithmetic unit and the element R are input to the initial value setting unit, and Q, R , Y = R,
Input Q, R, Y, which is the output of the initial value setting unit, and binary representation d [i] of d stored in the second memory unit to the second arithmetic unit, and from i = n-1 The following operations are sequentially performed until 0,
Y = 2Y + Q (when d [i] = 1),
Y = 2Y + (-R) (when d [i] = 0),
i = i-1,
Input Y, which is the output of the second calculation unit, and the above element R to the third calculation unit to obtain Y = YR,
A power operation method for a finite group E, wherein the output of the third operation unit Y is output as the value of the power operation dG by the output unit.
d = d[n-1]・2^(n-1)+…+d[1]・2+d[0]
(各d[i]= 0または 1)
とするとき,
Eを格納する第一のメモリ部と,
dとその二進表現を格納する第二のメモリ部とを有し
有限群Eの元Gを入力する入力部と,
有限群Eの任意の元Rを生成する乱数発生部と,
上記元Rと上記入力元Gを入力としてQ=G-Rを求める第一の演算部と,
上記元Rと第一の演算部の出力Qを入力として,R, Q, Y=Rを第二の演算部の初期値として設定する初期値設定部と,
初期値設定部の出力Y,R,Qと第二のメモリ部に格納されたdの二進表現{d[i]}を入力として,i=n-1 から 0 まで,以下の演算,
Y = 2Y + Q ( d[i] = 1 の時),
Y = 2Y + (-R) ( d[i] = 0 の時),
i = i-1,
を順次ループ処理する第二の演算部と
第二の演算部の出力であるYと上記元Rを入力として,Y=Y-Rを計算する第三の演算部を有し,
第三の演算部の出力Yをべき演算dGの値として出力する出力部を有することを特徴とする有限群Eのべき演算装置. Let E be a finite group, the group operation on E is represented additively, and n-bit data d and its binary representation
d = d [n-1] ・ 2 ^ (n-1) +… + d [1] ・ 2 + d [0]
(Each d [i] = 0 or 1)
When
A first memory section for storing E;
an input unit for inputting an element G of a finite group E having d and a second memory unit for storing the binary representation;
A random number generator for generating an arbitrary element R of the finite group E;
A first arithmetic unit for obtaining Q = GR using the element R and the input element G as inputs;
An initial value setting unit for setting R, Q, and Y = R as initial values of the second calculation unit, with the element R and the output Q of the first calculation unit as inputs,
Using the output Y, R, Q of the initial value setting unit and the binary representation {d [i]} of d stored in the second memory unit as input, the following operations from i = n-1 to 0:
Y = 2Y + Q (when d [i] = 1),
Y = 2Y + (-R) (when d [i] = 0),
i = i-1,
A third arithmetic unit that calculates Y = YR, using Y as the output of the second arithmetic unit and the output of the second arithmetic unit and the above element R as input.
A power unit for a finite group E, comprising an output unit for outputting the output Y of the third arithmetic unit as the value of a power operation dG.
d のn’ビットでの二進表現を
d=d[n’-1]・2^(n’-1)+…+d[n]・2^n+d[n-1]・2^(n-1)+…+
d[0],
(d[n’-1]=…=d[n]=0かつd[n-1],…,d[0]は0または1)
とし,上記dの二進表現を用いて,kビットのデータa[j]をj=0 からt-1 に対して,
a[j]= d[kj+(k-1)]・2^(k-1)
+・・・+ d[kj]
と表記し,
これらE,G,k,n,t,n’を第一のメモリ部に格納し,
上記データdとその二進表現{d[i](i=0,..,2^n’-1)},
kビットのデータ{a[j](j=0, ..., t-1)} を第二のメモリ部に格納し,
乱数発生部により,有限群Eの任意の元Rを生成し,
第一の演算部に,上記元Rと第一のメモリ部の元G, k を入力し,
j=1 からt-1に対してG[j] = 2^(kj)G としてEの元
G[j]を求め,
G[0] = G と表し,
上記元G[j](j=0,..,t-1)と0≦ b ≦2^t-1の整数bとそのbの二進表現b
= b[t-1]・2^(t-1) + ・・・+ b[0]を用いて(各b[i]は0 か1),
T[b] = b[t-1]・G[t-1] + ・・・+ b[0]・G[0]-Rとして,
2^t個のEの元{T[0],..,T[2^t-1]}を求め,
上記元{G[0],…,G[t-1]}と{T[0],..,T[2^t-1]}を出力し,
初期値設定部に第一の演算部の出力{G[0],…,G[t-1]}と{T[0],..,T[2^t-1]},
上記元Rを入力し,{G[0],…,G[t-1]}と{T[0],..,T[2^t-1]},Y=Rを出力し,
第二の演算部に上記初期値設定部の出力である{G[0],…,G[t-1]},{T[0],..,T[2^t-1]}, Y と第二のメモリ部に格納されているdの二進表現{d[i]}を入力し,
i=k-1 から
0 まで以下の演算を順次行い,
Y = 2Y +
T[d[i+k(t-1)]2^{(t-1)k}+ …+d[i+k]2^k + d[i]]
i = i-1,
第三の演算部に,第二の演算部の出力であるYと上記元Rを入力してY=Y-Rを求め,
第三の演算部の出力であるYを出力部によりべき演算dGの値として出力することを特徴とする有限群Eのべき演算方法. E is a finite group, and the group operation on E is expressed additively, the element of E is G, the data of n bits is d, the number of divisions is t (<n), and the least common multiple of t and n is n '= kt,
Binary representation of d with n 'bits
d = d [n'-1] ・ 2 ^ (n'-1) +… + d [n] ・ 2 ^ n + d [n-1] ・ 2 ^ (n-1) +… +
d [0],
(d [n'-1] = ... = d [n] = 0 and d [n-1], ..., d [0] is 0 or 1)
And using the binary representation of d above, k-bit data a [j] for j = 0 to t-1
a [j] = d [kj + (k-1)] ・ 2 ^ (k-1)
+ ... + d [kj]
And
These E, G, k, n, t, and n ′ are stored in the first memory unit,
The above data d and its binary representation {d [i] (i = 0, .., 2 ^ n'-1)},
Store k-bit data {a [j] (j = 0, ..., t-1)} in the second memory section,
An arbitrary element R of the finite group E is generated by the random number generator,
Input the above element R and the element G, k of the first memory unit to the first arithmetic unit,
Element of E as G [j] = 2 ^ (kj) G from j = 1 to t-1
Find G [j]
G [0] = G
The above element G [j] (j = 0, .., t-1), the integer b of 0 ≦ b ≦ 2 ^ t-1, and the binary representation b of that b
= b [t-1] ・ 2 ^ (t-1) + ・ ・ ・ + b [0] (each b [i] is 0 or 1)
T [b] = b [t-1] ・ G [t-1] + ・ ・ ・ + b [0] ・ G [0] -R
Find 2 ^ t E elements {T [0], .., T [2 ^ t-1]}
The above elements {G [0], ..., G [t-1]} and {T [0], .., T [2 ^ t-1]} are output,
The output {G [0], ..., G [t-1]} and {T [0], .., T [2 ^ t-1]}
Input the above element R and output {G [0], ..., G [t-1]} and {T [0], .., T [2 ^ t-1]}, Y = R,
{G [0], ..., G [t-1]}, {T [0], .., T [2 ^ t-1]}, which are the outputs of the initial value setting unit, to the second arithmetic unit Input Y and binary representation {d [i]} of d stored in the second memory part,
from i = k-1
The following operations are sequentially performed until 0,
Y = 2Y +
T [d [i + k (t-1)] 2 ^ {(t-1) k} +… + d [i + k] 2 ^ k + d [i]]
i = i-1,
Input Y, which is the output of the second calculation unit, and the above element R to the third calculation unit to obtain Y = YR,
A power operation method for a finite group E, wherein the output of the third operation unit Y is output as the value of the power operation dG by the output unit.
dG の計算に利用することを特徴とするべき演算方法. An arithmetic method according to claim 23, wherein p is a prime number, r is a positive integer, q is an integer such that q = p ^ r, and elliptic curves E and E (Fq) on a finite field Fq having q elements Power operation on elliptic curve for above element G and n-bit data d
An arithmetic method that should be used to calculate dG.
dG の計算に利用することを特徴とするべき演算方法. The power calculation method according to claim 23, wherein p is a prime number, r is a positive integer, q is an integer such that q = p ^ r, and hyperelliptic curves H, H (Fq on a finite field Fq having q elements ) Power operation on hyperelliptic curve for element G and n-bit data d
An arithmetic method that should be used to calculate dG.
d のn’ビットでの二進表現を
d=d[n’-1]・2^(n’-1)+…+d[n]・2^n+d[n-1]・2^(n-1)+…+
d[0],
(d[n’-1]=…=d[n]=0かつd[n-1],…,d[0]は0または1)
とし,上記dの二進表現を用いて,kビットのデータa[j]をj=0 からt-1 に対して,
a[j]= d[kj+(k-1)]・2^(k-1)
+・・・ +d[kj+1]・2+ d[kj]
と表記し,
これらE,G,k,n,t,n’を格納する第一のメモリ部と,
これらdとその二進表現,及びkビットのデータ{a[j]}を格納する第二のメモリ部を有し,
有限群Eの任意の元Rを生成する乱数発生部と,
上記元Rと第一のメモリ部の元G,kを入力として,
j=1 からt-1に対してG[j] = 2^(kj)G としてEの元
G[j]を求め,
G[0] = G と表し,
次に上記元G[j](j=0,..,t-1)と0≦ b ≦2^t-1の整数bとそのbの二進表現b
= b[t-1]・2^(t-1) + ・・・+ b[0](各b[i]は0 か1)を用いて,
T[b] = b[t-1]・G[t-1] + ・・・+ b[0]・G[0]-Rとして,
2^t個のEの元{T[0],..,T[2^t-1]}を求める第一の演算部と,
上記元Rと第一の演算部の出力{G[0],..,G[t-1]}と{T[0],..,T[2^t-1]}を入
力として,{G[0],..,G[t-1]},{T[0],..,T[2^t-1]},
Y=Rを第二の演算部の初期値として設定する初期値設定部と,
初期値設定部の出力{G[0],…,G[t-1]}, {T[0],..,T[2^t-1]},
Y と第二のメモリ部に格納されているdの二進表現{d[i]}を入力として,
i=k-1 から 0 まで以下の演算,
Y = 2Y +
T[d[i+k(t-1)]2^{(t-1)k}+ …+d[i+k]2^k + d[i]]
i = i-1
を順次ループ処理する第二の演算部と,
第二の演算部の出力であるYと上記元Rを入力として,Y=Y-Rを計算する第三の演算部を有し,
第三の演算部の出力Yをべき演算dGの値として出力する出力部を有することを特徴とする有限群Eのべき演算装置. E is a finite group, and the group operation on E is expressed additively, the element G of E and n-bit data d, the number of divisions t (<n), the least common multiple of t and n is n '= kt,
Binary representation of d with n 'bits
d = d [n'-1] ・ 2 ^ (n'-1) +… + d [n] ・ 2 ^ n + d [n-1] ・ 2 ^ (n-1) +… +
d [0],
(d [n'-1] = ... = d [n] = 0 and d [n-1], ..., d [0] is 0 or 1)
And using the binary representation of d above, k-bit data a [j] for j = 0 to t-1
a [j] = d [kj + (k-1)] ・ 2 ^ (k-1)
+ ... + d [kj + 1] ・ 2+ d [kj]
And
A first memory unit for storing these E, G, k, n, t, and n ′;
A second memory unit for storing d and its binary representation and k-bit data {a [j]};
A random number generator for generating an arbitrary element R of the finite group E;
Using the above element R and elements G and k of the first memory unit as inputs,
Element of E as G [j] = 2 ^ (kj) G from j = 1 to t-1
Find G [j]
G [0] = G
Next, the above element G [j] (j = 0, .., t-1), the integer b of 0≤b≤2 ^ t-1, and the binary representation b of that b
= b [t-1] ・ 2 ^ (t-1) + ・ ・ ・ + b [0] (each b [i] is 0 or 1)
T [b] = b [t-1] ・ G [t-1] + ・ ・ ・ + b [0] ・ G [0] -R
A first computing unit for finding 2 ^ t E elements {T [0], .., T [2 ^ t-1]};
Using the element R and the output {G [0], .., G [t-1]} and {T [0], .., T [2 ^ t-1]} as inputs, {G [0], .., G [t-1]}, {T [0], .., T [2 ^ t-1]},
An initial value setting unit for setting Y = R as an initial value of the second calculation unit;
Output of initial value setting part {G [0], ..., G [t-1]}, {T [0], .., T [2 ^ t-1]},
Using Y and binary representation {d [i]} of d stored in the second memory part as input
The following operations from i = k-1 to 0:
Y = 2Y +
T [d [i + k (t-1)] 2 ^ {(t-1) k} +… + d [i + k] 2 ^ k + d [i]]
i = i-1
A second arithmetic unit that sequentially loops
It has a third calculation unit that calculates Y = YR, using Y as the output of the second calculation unit and the above element R as inputs.
A power unit for a finite group E, comprising an output unit for outputting the output Y of the third arithmetic unit as the value of a power operation dG.
これらE,G,k,n,t,n’を第一のメモリ部に格納し,
第一の乱数発生部により,nビットのデータdを生成し,そのn’ビットでの二進表現を
d=d[n’-1]・2^(n’-1)+…+d[n]・2^n+d[n-1]・2^(n-1)+…+ d[0],
(d[n’-1]=…=d[n]=0かつd[n-1],…,d[0]は0または1)
とし,上記dの二進表現を用いて,kビットのデータa[j]をj=0 からt-1 に対して,
a[j]= d[kj+(k-1)]・2^(k-1)
+・・・+ d[kj]
と表記し,
第二の乱数発生部により,有限群Eの任意の元Rを生成し,
第一の演算部に,上記元Rと第一のメモリ部の元G, k を入力し,
j=1 からt-1に対してG[j] = 2^(kj)G としてEの元
G[j]を求め,
G[0] = G と表し,
上記元G[j](j=0,..,t-1)と0≦ b ≦2^t-1の整数bとそのbの二進表現b
= b[t-1]・2^(t-1) + ・・・+ b[0]を用いて(各b[i]は0 か1),
T[b] = b[t-1]・G[t-1] + ・・・+ b[0]・G[0]-Rとして,
2^t個のEの元{T[0],..,T[2^t-1]}を求め,
上記元{G[0],…,G[t-1]}と{T[0],..,T[2^t-1]}を出力し,
初期値設定部に第一の演算部の出力{G[0],…,G[t-1]}と{T[0],..,T[2^t-1]},
上記元Rを入力し,{G[0],…,G[t-1]}と{T[0],..,T[2^t-1]},Y=Rを出力し,
第二の演算部に上記初期値設定部の出力である{G[0],…,G[t-1]},{T[0],..,T[2^t-1]}, Y と上記dの二進表現{d[i]}を入力し,
i=k-1 から 0 まで以下の演算を順次行い,
Y = 2Y +
T[d[i+k(t-1)]2^{(t-1)k}+ …+d[i+k]2^k + d[i]]
i = i-1,
第三の演算部に,第二の演算部の出力であるYと上記元Rを入力してY=Y-Rを求め,
第三の演算部の出力であるYを出力部によりべき演算dGの値として出力することを特徴とする有限群Eのべき演算方法. Let E be a finite group, and the group operations on E be expressed additively, where G is the element of E, n is the number of bits, t (<n) is the number of divisions, and n '= kt is the least common multiple of t and n. ,
These E, G, k, n, t, and n ′ are stored in the first memory unit,
The first random number generator generates n-bit data d, and the binary representation with n 'bits
d = d [n'-1] ・ 2 ^ (n'-1) +… + d [n] ・ 2 ^ n + d [n-1] ・ 2 ^ (n-1) +… + d [0 ],
(d [n'-1] = ... = d [n] = 0 and d [n-1], ..., d [0] is 0 or 1)
And using the binary representation of d above, k-bit data a [j] for j = 0 to t-1
a [j] = d [kj + (k-1)] ・ 2 ^ (k-1)
+ ... + d [kj]
And
An arbitrary element R of the finite group E is generated by the second random number generator,
Input the above element R and the element G, k of the first memory unit to the first arithmetic unit,
Element of E as G [j] = 2 ^ (kj) G from j = 1 to t-1
Find G [j]
G [0] = G
The above element G [j] (j = 0, .., t-1), the integer b of 0 ≦ b ≦ 2 ^ t-1, and the binary representation b of that b
= b [t-1] ・ 2 ^ (t-1) + ・ ・ ・ + b [0] (each b [i] is 0 or 1)
T [b] = b [t-1] ・ G [t-1] + ・ ・ ・ + b [0] ・ G [0] -R
Find 2 ^ t E elements {T [0], .., T [2 ^ t-1]}
The above elements {G [0], ..., G [t-1]} and {T [0], .., T [2 ^ t-1]} are output,
The output {G [0], ..., G [t-1]} and {T [0], .., T [2 ^ t-1]}
Input the above element R and output {G [0], ..., G [t-1]} and {T [0], .., T [2 ^ t-1]}, Y = R,
{G [0], ..., G [t-1]}, {T [0], .., T [2 ^ t-1]}, which are the outputs of the initial value setting unit, to the second arithmetic unit Enter Y and the binary representation {d [i]} of d above,
Perform the following operations sequentially from i = k-1 to 0,
Y = 2Y +
T [d [i + k (t-1)] 2 ^ {(t-1) k} +… + d [i + k] 2 ^ k + d [i]]
i = i-1,
Input Y, which is the output of the second calculation unit, and the above element R to the third calculation unit to obtain Y = YR,
A power operation method for a finite group E, wherein the output of the third operation unit Y is output as the value of the power operation dG by the output unit.
これらE,G,k,n,t,n’を格納する第一のメモリ部と,
nビットのデータdを生成する第一の乱数発生部と,ここでdのn’ビットでの二進表現を
d=d[n’-1]・2^(n’-1)+…+d[n]・2^n+d[n-1]・2^(n-1)+…+ d[0],
(d[n’-1]=…=d[n]=0かつd[n-1],…,d[0]は0または1)
とし,上記dの二進表現を用いて,kビットのデータa[j]をj=0 からt-1 に対して,
a[j]= d[kj+(k-1)]・2^(k-1)
+・・・+ d[kj]
と表記し,
有限群Eの任意の元Rを生成する乱数発生部と,
上記元Rと第一のメモリ部の元G,kを入力として,
j=1 からt-1に対してG[j] = 2^(kj)G としてEの元
G[j]を求め,
G[0] = G と表し,
次に上記元G[j](j=0,..,t-1)と0≦ b ≦2^t-1の整数bとそのbの二進表現b
= b[t-1]・2^(t-1) + ・・・+ b[0](各b[i]は0 か1)を用いて,
T[b] = b[t-1]・G[t-1] + ・・・+ b[0]・G[0]-Rとして,
2^t個のEの元{T[0],..,T[2^t-1]}を求める第一の演算部と,
上記元Rと第一の演算部の出力{G[0],..,G[t-1]}と{T[0],..,T[2^t-1]}を入
力として,{G[0],..,G[t-1]},{T[0],..,T[2^t-1]},
Y=Rを第二の演算部の初期値として設定する初期値設定部と,
初期値設定部の出力{G[0],…,G[t-1]}, {T[0],..,T[2^t-1]}, Y と上記dの二進表現{d[i]}を入力として,
i=k-1 から 0 まで以下の演算,
Y = 2Y +
T[d[i+k(t-1)]2^{(t-1)k}+ …+d[i+k]2^k + d[i]]
i = i-1
を順次ループ処理する第二の演算部と,
第二の演算部の出力であるYと上記元Rを入力として,Y=Y-Rを計算する第三の演算部を有し,
第三の演算部の出力Yをべき演算dGの値として出力する出力部を有することを特徴とする有限群Eのべき演算装置. Let E be a finite group, and the group operations on E be expressed additively, where G is the element of E, n is the number of bits, t (<n) is the number of divisions, and n '= kt is the least common multiple of t and n. ,
A first memory unit for storing these E, G, k, n, t, and n ′;
A first random number generator that generates n bits of data d, and a binary representation of d with n 'bits
d = d [n'-1] ・ 2 ^ (n'-1) +… + d [n] ・ 2 ^ n + d [n-1] ・ 2 ^ (n-1) +… + d [0 ],
(d [n'-1] = ... = d [n] = 0 and d [n-1], ..., d [0] is 0 or 1)
And using the binary representation of d above, k-bit data a [j] for j = 0 to t-1
a [j] = d [kj + (k-1)] ・ 2 ^ (k-1)
+ ... + d [kj]
And
A random number generator for generating an arbitrary element R of the finite group E;
Using the above element R and elements G and k of the first memory unit as inputs,
Element of E as G [j] = 2 ^ (kj) G from j = 1 to t-1
Find G [j]
G [0] = G
Next, the above element G [j] (j = 0, .., t-1), the integer b of 0≤b≤2 ^ t-1, and the binary representation b of that b
= b [t-1] ・ 2 ^ (t-1) + ・ ・ ・ + b [0] (each b [i] is 0 or 1)
T [b] = b [t-1] ・ G [t-1] + ・ ・ ・ + b [0] ・ G [0] -R
A first computing unit for finding 2 ^ t E elements {T [0], .., T [2 ^ t-1]};
Using the element R and the output {G [0], .., G [t-1]} and {T [0], .., T [2 ^ t-1]} as inputs, {G [0], .., G [t-1]}, {T [0], .., T [2 ^ t-1]},
An initial value setting unit for setting Y = R as an initial value of the second calculation unit;
Output of initial value setting part {G [0], ..., G [t-1]}, {T [0], .., T [2 ^ t-1]}, Y and binary representation of d above { d [i]} as input,
The following operations from i = k-1 to 0:
Y = 2Y +
T [d [i + k (t-1)] 2 ^ {(t-1) k} +… + d [i + k] 2 ^ k + d [i]]
i = i-1
A second arithmetic unit that sequentially loops
It has a third calculation unit that calculates Y = YR, using Y as the output of the second calculation unit and the above element R as inputs.
A power unit for a finite group E, comprising an output unit for outputting the output Y of the third arithmetic unit as the value of a power operation dG.
これらE,k,n,t,n’を第一のメモリ部に格納し,
入力部にEの元Gを入力し,
第一の乱数発生部により,nビットのデータdを生成し,そのn’ビットでの二進表現を
d=d[n’-1]・2^(n’-1)+…+d[n]・2^n+d[n-1]・2^(n-1)+…+ d[0],
(d[n’-1]=…=d[n]=0かつd[n-1],…,d[0]は0または1)
とし,上記dの二進表現を用いて,kビットのデータa[j]をj=0 からt-1 に対して,
a[j]= d[kj+(k-1)]・2^(k-1)
+・・・+ d[kj]
と表記し,
第二の乱数発生部により,有限群Eの任意の元Rを生成し,
第一の演算部に,上記元Rと上記入力元Gと第一のメモリ部のk を入力し,
j=1 からt-1に対してG[j] = 2^(kj)G としてEの元
G[j]を求め,
G[0] = G と表し,
上記元G[j](j=0,..,t-1)と0≦ b ≦2^t-1の整数bとそのbの二進表現
b = b[t-1]・2^(t-1) + ・・・+ b[0]を用いて(各b[i]は0
か1),
T[b] = b[t-1]・G[t-1] + ・・・+ b[0]・G[0]-Rとして,
2^t個のEの元{T[0],..,T[2^t-1]}を求め,
上記元{G[0],…,G[t-1]}と{T[0],..,T[2^t-1]}を出力し,
初期値設定部に第一の演算部の出力{G[0],…,G[t-1]}と{T[0],..,T[2^t-1]},
上記元Rを入力し,{G[0],…,G[t-1]}と{T[0],..,T[2^t-1]},Y=Rを出力し,
第二の演算部に上記初期値設定部の出力である{G[0],…,G[t-1]},{T[0],..,T[2^t-1]}, Y と上記dの二進表現{d[i]}を入力し,
i=k-1 から 0 まで以下の演算を順次行い,
Y = 2Y +
T[d[i+k(t-1)]2^{(t-1)k}+ …+d[i+k]2^k + d[i]]
i = i-1,
第三の演算部に,第二の演算部の出力であるYと上記元Rを入力してY=Y-Rを求め,
第三の演算部の出力であるYを出力部によりべき演算dGの値として出力することを特徴とする有限群Eのべき演算方法. Let E be a finite group, and the group operation on E is expressed additively, the number of bits is n, the number of divisions is t (<n), the least common multiple of t and n is n '= kt,
These E, k, n, t, and n ′ are stored in the first memory unit,
Enter the element G of E in the input section,
The first random number generator generates n-bit data d, and the binary representation with n 'bits
d = d [n'-1] ・ 2 ^ (n'-1) +… + d [n] ・ 2 ^ n + d [n-1] ・ 2 ^ (n-1) +… + d [0 ],
(d [n'-1] = ... = d [n] = 0 and d [n-1], ..., d [0] is 0 or 1)
And using the binary representation of d above, k-bit data a [j] for j = 0 to t-1
a [j] = d [kj + (k-1)] ・ 2 ^ (k-1)
+ ... + d [kj]
And
An arbitrary element R of the finite group E is generated by the second random number generator,
The element R, the input element G, and k of the first memory unit are input to the first arithmetic unit,
Element of E as G [j] = 2 ^ (kj) G from j = 1 to t-1
Find G [j]
G [0] = G
The above element G [j] (j = 0, .., t-1), the integer b of 0≤b≤2 ^ t-1, and the binary representation of that b
b = b [t-1] · 2 ^ (t-1) + ... + b [0] (each b [i] is 0
Or 1),
T [b] = b [t-1] ・ G [t-1] + ・ ・ ・ + b [0] ・ G [0] -R
Find 2 ^ t E elements {T [0], .., T [2 ^ t-1]}
The above elements {G [0], ..., G [t-1]} and {T [0], .., T [2 ^ t-1]} are output,
The output {G [0], ..., G [t-1]} and {T [0], .., T [2 ^ t-1]}
Input the above element R and output {G [0], ..., G [t-1]} and {T [0], .., T [2 ^ t-1]}, Y = R,
{G [0], ..., G [t-1]}, {T [0], .., T [2 ^ t-1]}, which are the outputs of the initial value setting unit, to the second arithmetic unit Enter Y and the binary representation {d [i]} of d above,
Perform the following operations sequentially from i = k-1 to 0,
Y = 2Y +
T [d [i + k (t-1)] 2 ^ {(t-1) k} +… + d [i + k] 2 ^ k + d [i]]
i = i-1,
Input Y, which is the output of the second calculation unit, and the above element R to the third calculation unit to obtain Y = YR,
A power operation method for a finite group E, wherein the output of the third operation unit Y is output as the value of the power operation dG by the output unit.
これらE,k,n,t,n’を入力として格納する第一のメモリ部と,
有限群Eの元Gを入力する入力部と,
nビットのデータdを生成する第一の乱数発生部と,ここでdのn’ビットでの二進表現を
d=d[n’-1]・2^(n’-1)+…+d[n]・2^n+d[n-1]・2^(n-1)+…+ d[0],
(d[n’-1]=…=d[n]=0かつd[n-1],…,d[0]は0または1)
とし,上記dの二進表現を用いて,kビットのデータa[j]をj=0 からt-1 に対して,
a[j]= d[kj+(k-1)]・2^(k-1)
+・・・+ d[kj]
と表記し,
有限群Eの任意の元Rを生成する乱数発生部と,
上記元Rと上記入力元G,第一のメモリ部のkを入力として,
j=1 からt-1に対してG[j] = 2^(kj)G としてEの元
G[j]を求め,
G[0] = G と表し,
次に上記元G[j](j=0,..,t-1)と0≦ b ≦2^t-1の整数bとそのbの二進表現b
= b[t-1]・2^(t-1) + ・・・+ b[0](各b[i]は0 か1)を用いて,
T[b] = b[t-1]・G[t-1] + ・・・+ b[0]・G[0]-Rとして,
2^t個のEの元{T[0],..,T[2^t-1]}を求める第一の演算部と,
上記元Rと第一の演算部の出力{G[0],..,G[t-1]}と{T[0],..,T[2^t-1]}を入
力として,{G[0],..,G[t-1]},{T[0],..,T[2^t-1]},
Y=Rを第二の演算部の初期値として設定する初期値設定部と,
初期値設定部の出力{G[0],…,G[t-1]}, {T[0],..,T[2^t-1]}, Y と上記dの二進表現{d[i]}を入力として,
i=k-1 から 0 まで以下の演算,
Y = 2Y +
T[d[i+k(t-1)]2^{(t-1)k}+ …+d[i+k]2^k + d[i]]
i = i-1
を順次ループ処理する第二の演算部と,
第二の演算部の出力であるYと上記元Rを入力として,Y=Y-Rを計算する第三の演算部を有し,
第三の演算部の出力Yをべき演算dGの値として出力する出力部を有することを特徴とする有限群Eのべき演算装置. Let E be a finite group, and the group operation on E is expressed additively, the number of bits is n, the number of divisions is t (<n), the least common multiple of t and n is n '= kt,
A first memory section for storing these E, k, n, t, and n ′ as inputs;
An input unit for inputting an element G of a finite group E;
A first random number generator that generates n bits of data d, and a binary representation of d with n 'bits
d = d [n'-1] ・ 2 ^ (n'-1) +… + d [n] ・ 2 ^ n + d [n-1] ・ 2 ^ (n-1) +… + d [0 ],
(d [n'-1] = ... = d [n] = 0 and d [n-1], ..., d [0] is 0 or 1)
And using the binary representation of d above, k-bit data a [j] for j = 0 to t-1
a [j] = d [kj + (k-1)] ・ 2 ^ (k-1)
+ ... + d [kj]
And
A random number generator for generating an arbitrary element R of the finite group E;
Using the element R, the input source G, and k of the first memory unit as inputs,
Element of E as G [j] = 2 ^ (kj) G from j = 1 to t-1
Find G [j]
G [0] = G
Next, the above element G [j] (j = 0, .., t-1), the integer b of 0≤b≤2 ^ t-1, and the binary representation b of that b
= b [t-1] ・ 2 ^ (t-1) + ・ ・ ・ + b [0] (each b [i] is 0 or 1)
T [b] = b [t-1] ・ G [t-1] + ・ ・ ・ + b [0] ・ G [0] -R
A first computing unit for finding 2 ^ t E elements {T [0], .., T [2 ^ t-1]};
Using the element R and the output {G [0], .., G [t-1]} and {T [0], .., T [2 ^ t-1]} as inputs, {G [0], .., G [t-1]}, {T [0], .., T [2 ^ t-1]},
An initial value setting unit for setting Y = R as an initial value of the second calculation unit;
Output of initial value setting part {G [0], ..., G [t-1]}, {T [0], .., T [2 ^ t-1]}, Y and binary representation of d above { d [i]} as input,
The following operations from i = k-1 to 0:
Y = 2Y +
T [d [i + k (t-1)] 2 ^ {(t-1) k} +… + d [i + k] 2 ^ k + d [i]]
i = i-1
A second arithmetic unit that sequentially loops
It has a third calculation unit that calculates Y = YR, using Y as the output of the second calculation unit and the above element R as inputs.
A power unit for a finite group E, comprising an output unit for outputting the output Y of the third arithmetic unit as the value of a power operation dG.
d のn’ビットでの二進表現を
d=d[n’-1]・2^(n’-1)+…+d[n]・2^n+d[n-1]・2^(n-1)+…+
d[0],
(d[n’-1]=…=d[n]=0かつd[n-1],…,d[0]は0または1)
とし,上記dの二進表現を用いて,kビットのデータa[j]をj=0 からt-1 に対して,
a[j]= d[kj+(k-1)]・2^(k-1)
+・・・+ d[kj]
と表記し,
これらE,k,n,t,n’を第一のメモリ部に格納し,
上記データdとその二進表現{d[i](i=0,..,2^n’-1)}, kビットのデータ{a[j](j=0, ..., t-1)} を第二のメモリ部に格納し,
入力部にEの元Gを入力し,
乱数発生部により,有限群Eの任意の元Rを生成し,
第一の演算部に,上記元Rと上記入力元Gと第一のメモリ部のk を入力し,
j=1 からt-1に対してG[j] = 2^(kj)G としてEの元
G[j]を求め,
G[0] = G と表し,
上記元G[j](j=0,..,t-1)と0≦ b ≦2^t-1の整数bとそのbの二進表現
b = b[t-1]・2^(t-1) + ・・・+ b[0]を用いて(各b[i]は0
か1),
T[b] = b[t-1]・G[t-1] + ・・・+ b[0]・G[0]-Rとして,
2^t個のEの元{T[0],..,T[2^t-1]}を求め,
上記元{G[0],…,G[t-1]}と{T[0],..,T[2^t-1]}を出力し,
初期値設定部に第一の演算部の出力{G[0],…,G[t-1]}と{T[0],..,T[2^t-1]},
上記元Rを入力し,{G[0],…,G[t-1]}と{T[0],..,T[2^t-1]},Y=Rを出力し,
第二の演算部に上記初期値設定部の出力である{G[0],…,G[t-1]},{T[0],..,T[2^t-1]}, Y と第二のメモリ部に格納されている{d[i]}を入力し,
i=k-1 から 0 まで以下の演算を順次行い,
Y = 2Y +
T[d[i+k(t-1)]2^{(t-1)k}+ …+d[i+k]2^k + d[i]]
i = i-1,
第三の演算部に,第二の演算部の出力であるYと上記元Rを入力してY=Y-Rを求め,
第三の演算部の出力であるYを出力部によりべき演算dGの値として出力することを特徴とする有限群Eのべき演算方法. E is a finite group, and the group operation on E is expressed additively. The data of n bits is d, the number of divisions is t (<n), the least common multiple of t and n is n '= kt,
Binary representation of d with n 'bits
d = d [n'-1] ・ 2 ^ (n'-1) +… + d [n] ・ 2 ^ n + d [n-1] ・ 2 ^ (n-1) +… +
d [0],
(d [n'-1] = ... = d [n] = 0 and d [n-1], ..., d [0] is 0 or 1)
And using the binary representation of d above, k-bit data a [j] for j = 0 to t-1
a [j] = d [kj + (k-1)] ・ 2 ^ (k-1)
+ ... + d [kj]
And
These E, k, n, t, and n ′ are stored in the first memory unit,
Data d and its binary representation {d [i] (i = 0, .., 2 ^ n'-1)}, k-bit data {a [j] (j = 0, ..., t- 1)} is stored in the second memory section,
Enter the element G of E in the input section,
An arbitrary element R of the finite group E is generated by the random number generator,
The element R, the input element G, and k of the first memory unit are input to the first arithmetic unit,
Element of E as G [j] = 2 ^ (kj) G from j = 1 to t-1
Find G [j]
G [0] = G
The above element G [j] (j = 0, .., t-1), the integer b of 0≤b≤2 ^ t-1, and the binary representation of that b
b = b [t-1] · 2 ^ (t-1) + ... + b [0] (each b [i] is 0
Or 1),
T [b] = b [t-1] ・ G [t-1] + ・ ・ ・ + b [0] ・ G [0] -R
Find 2 ^ t E elements {T [0], .., T [2 ^ t-1]}
The above elements {G [0], ..., G [t-1]} and {T [0], .., T [2 ^ t-1]} are output,
The output {G [0], ..., G [t-1]} and {T [0], .., T [2 ^ t-1]}
Input the above element R and output {G [0], ..., G [t-1]} and {T [0], .., T [2 ^ t-1]}, Y = R,
{G [0], ..., G [t-1]}, {T [0], .., T [2 ^ t-1]}, which are the outputs of the initial value setting unit, to the second arithmetic unit Enter Y and {d [i]} stored in the second memory,
Perform the following operations sequentially from i = k-1 to 0,
Y = 2Y +
T [d [i + k (t-1)] 2 ^ {(t-1) k} +… + d [i + k] 2 ^ k + d [i]]
i = i-1,
Input Y, which is the output of the second calculation unit, and the above element R to the third calculation unit to obtain Y = YR,
A power operation method for a finite group E, wherein the output of the third operation unit Y is output as the value of the power operation dG by the output unit.
d のn’ビットでの二進表現を
d=d[n’-1]・2^(n’-1)+…+d[n]・2^n+d[n-1]・2^(n-1)+…+
d[0],
(d[n’-1]=…=d[n]=0かつd[n-1],…,d[0]は0または1)
とし,上記dの二進表現を用いて,kビットのデータa[j]をj=0 からt-1 に対して,
a[j]= d[kj+(k-1)]・2^(k-1)
+・・・ +d[kj+1]・2+ d[kj]
と表記し,
これらE,k,n,t,n’を入力として格納する第一のメモリ部と,
これらdとその二進表現,及びkビットのデータ{a[j]}を格納する第二のメモリ部を有し,
有限群Eの元Gを入力する入力部と,
有限群Eの任意の元Rを生成する乱数発生部と,
上記元Rと上記入力元G,第一のメモリ部のkを入力として,
j=1 からt-1に対してG[j] = 2^(kj)G としてEの元
G[j]を求め,
G[0] = G と表し,
次に上記元G[j](j=0,..,t-1)と0≦ b ≦2^t-1の整数bとそのbの二進表現b
= b[t-1]・2^(t-1) + ・・・+ b[0](各b[i]は0 か1)を用いて,
T[b] = b[t-1]・G[t-1] + ・・・+ b[0]・G[0]-Rとして,
2^t個のEの元{T[0],..,T[2^t-1]}を求める第一の演算部と,
上記元Rと第一の演算部の出力{G[0],..,G[t-1]}と{T[0],..,T[2^t-1]}を入
力として,{G[0],..,G[t-1]},{T[0],..,T[2^t-1]},
Y=Rを第二の演算部の初期値として設定する初期値設定部と,
初期値設定部の出力{G[0],…,G[t-1]}, {T[0],..,T[2^t-1]}, Y と上記dの二進表現{d[i]}を入力として,
i=k-1 から 0 まで以下の演算,
Y = 2Y +
T[d[i+k(t-1)]2^{(t-1)k}+ …+d[i+k]2^k + d[i]]
i = i-1
を順次ループ処理する第二の演算部と,
第二の演算部の出力であるYと上記元Rを入力として,Y=Y-Rを計算する第三の演算部を有し,
第三の演算部の出力Yをべき演算dGの値として出力する出力部を有することを特徴とする有限群Eのべき演算装置.
Let E be a finite group, add group operations on E additively, n-bit data d, the number of divisions t (<n), the least common multiple of t and n is n '= kt,
Binary representation of d with n 'bits
d = d [n'-1] ・ 2 ^ (n'-1) +… + d [n] ・ 2 ^ n + d [n-1] ・ 2 ^ (n-1) +… +
d [0],
(d [n'-1] = ... = d [n] = 0 and d [n-1], ..., d [0] is 0 or 1)
And using the binary representation of d above, k-bit data a [j] for j = 0 to t-1
a [j] = d [kj + (k-1)] ・ 2 ^ (k-1)
+ ... + d [kj + 1] ・ 2+ d [kj]
And
A first memory section for storing these E, k, n, t, and n ′ as inputs;
A second memory unit for storing d and its binary representation and k-bit data {a [j]};
An input unit for inputting an element G of a finite group E;
A random number generator for generating an arbitrary element R of the finite group E;
Using the element R, the input source G, and k of the first memory unit as inputs,
Element of E as G [j] = 2 ^ (kj) G from j = 1 to t-1
Find G [j]
G [0] = G
Next, the above element G [j] (j = 0, .., t-1), the integer b of 0≤b≤2 ^ t-1, and the binary representation b of that b
= b [t-1] ・ 2 ^ (t-1) + ・ ・ ・ + b [0] (each b [i] is 0 or 1)
T [b] = b [t-1] ・ G [t-1] + ・ ・ ・ + b [0] ・ G [0] -R
A first computing unit for finding 2 ^ t E elements {T [0], .., T [2 ^ t-1]};
Using the element R and the output {G [0], .., G [t-1]} and {T [0], .., T [2 ^ t-1]} as inputs, {G [0], .., G [t-1]}, {T [0], .., T [2 ^ t-1]},
An initial value setting unit for setting Y = R as an initial value of the second calculation unit;
Output of initial value setting part {G [0], ..., G [t-1]}, {T [0], .., T [2 ^ t-1]}, Y and binary representation of d above { d [i]} as input,
The following operations from i = k-1 to 0:
Y = 2Y +
T [d [i + k (t-1)] 2 ^ {(t-1) k} +… + d [i + k] 2 ^ k + d [i]]
i = i-1
A second arithmetic unit that sequentially loops
It has a third calculation unit that calculates Y = YR, using Y as the output of the second calculation unit and the above element R as inputs.
A power unit for a finite group E, comprising an output unit for outputting the output Y of the third arithmetic unit as the value of a power operation dG.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004265079A JP2006078943A (en) | 2004-09-13 | 2004-09-13 | Power arithmetic unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004265079A JP2006078943A (en) | 2004-09-13 | 2004-09-13 | Power arithmetic unit |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006078943A true JP2006078943A (en) | 2006-03-23 |
Family
ID=36158429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004265079A Pending JP2006078943A (en) | 2004-09-13 | 2004-09-13 | Power arithmetic unit |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006078943A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009531725A (en) * | 2006-03-28 | 2009-09-03 | シーメンス アクチエンゲゼルシヤフト | How to request data safely |
-
2004
- 2004-09-13 JP JP2004265079A patent/JP2006078943A/en active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009531725A (en) * | 2006-03-28 | 2009-09-03 | シーメンス アクチエンゲゼルシヤフト | How to request data safely |
JP4909403B2 (en) * | 2006-03-28 | 2012-04-04 | シーメンス アクチエンゲゼルシヤフト | How to request data safely |
US8369514B2 (en) | 2006-03-28 | 2013-02-05 | Seimens Aktiengesellschaft | Method for the secure determination of data |
KR101338016B1 (en) | 2006-03-28 | 2013-12-09 | 지멘스 악티엔게젤샤프트 | Method for the secure determination of data |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4668931B2 (en) | Encryption processor with tamper resistance against power analysis attacks | |
US7961874B2 (en) | XZ-elliptic curve cryptography with secret key embedding | |
US9772821B2 (en) | Cryptography method comprising an operation of multiplication by a scalar or an exponentiation | |
US7536011B2 (en) | Tamper-proof elliptic encryption with private key | |
US7639808B2 (en) | Elliptic curve cryptosystem apparatus, elliptic curve cryptosystem method, elliptic curve cryptosystem program and computer readable recording medium storing the elliptic curve cryptosystem program | |
US7864951B2 (en) | Scalar multiplication method with inherent countermeasures | |
US7379546B2 (en) | Method for XZ-elliptic curve cryptography | |
KR100891323B1 (en) | Method and apparatus to increase complexity of power analysis based on random point representation in binary field Elliptic Curve CryptographyECC | |
JP5365624B2 (en) | Embedded device apparatus incorporating a decoding device, a program, and a recovery device having a countermeasure function against a power analysis attack | |
JP5446678B2 (en) | Elliptic curve cryptographic operation apparatus and method | |
WO2006054559A1 (en) | Encryption computing device | |
WO2012090288A1 (en) | Cryptographic processing device, method of cryptographic processing and program | |
WO2007080825A1 (en) | Encryption processing device, encryption processing method, and computer program | |
US6480606B1 (en) | Elliptic curve encryption method and system | |
JP4423900B2 (en) | Scalar multiplication calculation method, apparatus and program for elliptic curve cryptography | |
US20060282491A1 (en) | Method for countermeasuring by masking the accumulators in an electronic component while using a public key cryptographic algorithm | |
JP3878853B2 (en) | Modular power algorithm for electronic components using public key cryptography algorithms | |
KR100564599B1 (en) | Inverse calculation circuit, inverse calculation method, and storage medium encoded with computer-readable computer program code | |
JP2006078943A (en) | Power arithmetic unit | |
JP4502817B2 (en) | Elliptic curve scalar multiplication method and apparatus | |
US20070121935A1 (en) | Method for countermeasuring in an electronic component | |
Dąbrowski et al. | Generation and Implementation of Cryptographically Strong Elliptic Curves | |
Mamiya et al. | Secure elliptic curve exponentiation against RPA, ZRA, DPA, and SPA | |
Yen et al. | Improvement on Ha-Moon randomized exponentiation algorithm | |
RU2541938C1 (en) | Weber function cycle-based quantum attack-secure encryption method |