JPH0643808A - Arithmetic unit in finite commutative group - Google Patents
Arithmetic unit in finite commutative groupInfo
- Publication number
- JPH0643808A JPH0643808A JP4199415A JP19941592A JPH0643808A JP H0643808 A JPH0643808 A JP H0643808A JP 4199415 A JP4199415 A JP 4199415A JP 19941592 A JP19941592 A JP 19941592A JP H0643808 A JPH0643808 A JP H0643808A
- Authority
- JP
- Japan
- Prior art keywords
- random number
- unit
- finite
- equation
- finite field
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Abstract
(57)【要約】
【目的】 有限可換群において有限可換群の特定元に異
なる乱数を作用させた有限可換群の元を作成する場合の
計算量の削減を図る。
【構成】 選択図の乱数生成部1から生成された2個以
上の基となる乱数を1個以上の部分乱数に分割し、各分
割された部分乱数をシステムの公開鍵および自分または
受信者の公開鍵である有限可換群の特定元に作用させて
構成元を生成する。この生成された2個以上の前記構成
元に対して前記有限可換群の定義演算とその演算の逆元
演算の両方またはその一方の演算を行い組み合わせて前
記有限可換群の元を作成する。
(57) [Summary] [Purpose] To reduce the amount of calculation when creating an element of a finite commutative group in which a different random number is applied to the specific element of the finite commutative group. [Configuration] Two or more base random numbers generated from the random number generation unit 1 in the selection diagram are divided into one or more partial random numbers, and each divided partial random number is divided into the public key of the system and the self or the receiver. A constituent element is generated by acting on a specific element of a finite commutative group that is a public key. The definition operation of the finite commutative group and / or the inverse element operation of the operation are performed on the generated two or more constituent elements to combine them to create an element of the finite commutative group. .
Description
【0001】[0001]
【産業上の利用分野】本発明は情報セキュリテイ技術と
しての暗号系技術に関するものであり、特に、ICカー
ドのような計算能力が貧しい計算機を用いて離散対数暗
号系を実現する有限可換群における演算器に関するもの
である。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a cryptosystem technique as an information security technique, and particularly in a finite commutative group for realizing a discrete logarithmic cryptosystem by using a computer having a poor computing ability such as an IC card. The present invention relates to an arithmetic unit.
【0002】[0002]
【従来の技術】有限可換群の特定元に複数の異なる乱数
を作用させる理由についてまず述べることにする。2. Description of the Related Art The reason why a plurality of different random numbers act on a specific element of a finite commutative group will be described first.
【0003】有限体上の対数を計算する問題である離散
対数問題が大きな有限体では難しいことを安全性の根拠
にする公開鍵暗号系すなわち離散対数暗号系が数多く提
案されている。しかしその根拠となる有限体上の離散対
数問題は古くから研究され、その結果数々の解法の試み
がなされ、次第にその解法にかかる時間が短くなってい
る。したがって充分な安全性を保つためには、その離散
対数暗号系が定義される有限体の基数は512ビット程
度の数である必要がある。また有限体上だけでなく近年
楕円曲線上の離散対数暗号系も提案されていている。楕
円曲線上定義された暗号方式は、その安全性の根拠とな
る楕円曲線上の離散対数問題に現時点では決定的な解法
がない上に、有限体上の離散対数問題に有力に作用する
解法が構造上作用しない。そのため同程度の安全性なら
ば有限体上定義された暗号方式より、高速に実現できる
だろうと考えられている。基数が512ビットの数であ
る有限体上での離散対数暗号系と同等の安全性を保つた
めには、楕円曲線を定義する有限体の基数は96ビット
の数でよい。また離散対数暗号系の代表例であるエルガ
マル暗号ならびにエルガマル署名では通信文ごとに乱数
を変えて暗号文ならびに署名文を生成しなければならな
い。なお有限体上のエルガマル暗号ならびに楕円曲線に
よるエルガマル暗号に関しては、ニイル コブリッツ著
”ア コウス イン ナンバア セオリイ アンド
クリプトグラヒイ”(Neal koblitz ," A Course in Nu
mber Theory and Cryptography ",Springer-Verlag,198
7)に詳しく述べられている。また有限体上のエルガマ
ル署名ならびに離散対数問題の難しさに関しては、「現
代暗号理論」池野信一・小山謙二著(電子通信学会)に
詳しく述べられている。A large number of public key cryptosystems, ie, discrete logarithm cryptosystems, have been proposed on the grounds of security that the discrete logarithm problem, which is a problem of calculating logarithm on a finite field, is difficult in a large finite field. However, the discrete logarithm problem on the finite field, which is the basis for it, has been studied for a long time, and as a result, many attempts have been made to solve it, and the time taken for the solution has gradually become shorter. Therefore, in order to maintain sufficient security, the radix of the finite field in which the discrete logarithmic cryptosystem is defined needs to be a number of about 512 bits. In addition, not only on finite fields but also discrete logarithmic cryptosystems on elliptic curves have been proposed in recent years. The cryptosystem defined on the elliptic curve has no definitive solution to the discrete logarithm problem on the elliptic curve, which is the basis of its security, at the present time. Does not work structurally. Therefore, it is considered that if the security is the same, it can be realized faster than the encryption method defined in the finite field. In order to maintain the same level of security as a discrete logarithmic cryptosystem on a finite field whose radix is a 512-bit number, the radix of the finite field defining the elliptic curve may be a 96-bit number. In addition, in the Elgamal encryption and the Elgamal signature, which are typical examples of the discrete logarithmic cryptosystem, it is necessary to generate a ciphertext and a signature text by changing random numbers for each communication text. For the Ergamal cipher on finite fields and the Ergamal cipher on elliptic curves, see Nikol Blitz, “Acous in Namba Theory and
"Cryptgrahy" (Neal koblitz, "A Course in Nu
mber Theory and Cryptography ", Springer-Verlag, 198
7). The difficulty of Ergamal signatures on finite fields and discrete logarithm problems are described in detail in "Modern Cryptography" by Shinichi Ikeno and Kenji Koyama (IEICE).
【0004】以下有限体上のエルガマル暗号、楕円曲線
によるエルガマル暗号、そして有限体上のエルガマル署
名の手順について説明し、次いでエルガマル暗号・エル
ガマル署名において作用させる乱数を通信文ごとに変え
なければならない理由について述べる。 1)有限体上のエルガマル暗号について (1)鍵生成 システム管理者は有限体GF(q)を選ぶ。ここで、q
は素数pのr乗 prである。gを有限体GF(q)の位
数の大きな元とする。システム管理者はgとGF(q)を
この暗号方式の公開情報としてシステムユーザに公開す
る。このシステムの任意ユーザBは、任意の整数xBを
選び、GF(q)上で、The following describes the procedure of the Elgamal cipher on a finite field, the Elgamal cipher on an elliptic curve, and the Elgamal signature on a finite field, and then the reason why the random numbers to be used in the Elgamal cipher and the Elgamal signature must be changed for each message. I will describe. 1) Ergamal cipher on finite field (1) Key generation The system administrator chooses finite field GF (q). Where q
Is the r-th power p r of prime numbers p. Let g be a large element of the finite field GF (q). The system administrator discloses g and GF (q) to the system user as public information of this encryption method. An arbitrary user B of this system selects an arbitrary integer x B , and on GF (q),
【0005】[0005]
【数1】 [Equation 1]
【0006】を計算する。そこでユーザBは、xBを秘
密鍵として保持し、yBを公開鍵として全ユーザに知ら
せる。Calculate Therefore, the user B holds x B as a private key and y B as a public key to notify all users.
【0007】(2)暗号化 AからBへ平文mを秘密通信する場合を考える。Aは秘
密に整数である乱数kを選び、自分だけが知るこの乱数
kとBの公開鍵yBを用いて次の二つの暗号文C1、C2
を作成する。(2) Encryption Let us consider a case where the plaintext m is secretly communicated from A to B. A secretly chooses a random number k, which is an integer, and uses the random number k and B's public key y B known only to the following two ciphertexts C 1 and C 2
To create.
【0008】[0008]
【数2】 [Equation 2]
【0009】[0009]
【数3】 [Equation 3]
【0010】AはBにC1とC2を送る。このとき(数
2)で定まるC1を第一の暗号文、(数3)で定まるC2
を第二の暗号文と呼ぶ。A sends C 1 and C 2 to B. At this time, C 1 determined by (Equation 2) is the first ciphertext, and C 2 determined by (Equation 3) is C 2.
Is called the second ciphertext.
【0011】(3)復号化 Bは自分だけが知っている秘密鍵xBを用いて次式を計
算してMを得る。(3) Decryption B obtains M by calculating the following equation using the secret key x B known only to itself.
【0012】[0012]
【数4】 [Equation 4]
【0013】(数1)(数2)(数3)(数4)のいず
れの計算もGF(q)上で行なわれるとし、平文MはGF
(q)上の元とする。 2)楕円曲線によるエルガマル暗号について (1)鍵生成 システム管理者は有限体GF(q)上定義された楕円曲線
Eを選ぶ。ここで、qは素数pのr乗 pr である。
また、楕円曲線Eの有限体GF(q)の元で構成される群
をE(GF(q))と表わすことにする。GをE(GF(q))
上の位数の大きな元とする。システム管理者は、GとE
(GF(q))をこの暗号方式の公開情報としてシステムユ
ーザに公開する。このシステムの任意ユーザBは、任意
の整数x Bを選び、E(GF(q))上でEither of (Equation 1) (Equation 2) (Equation 3) (Equation 4)
Assuming that these calculations are also performed on GF (q), the plaintext M is GF
(q) It is assumed to be the element above. 2) Elgamal cipher with elliptic curve (1) Key generation
Select E. Here, q is the r-th power of the prime pr Is.
Also, a group composed of elements of a finite field GF (q) of the elliptic curve E
Be denoted by E (GF (q)). G for E (GF (q))
The source of the upper order is large. System administrators are G and E
(GF (q)) as the public information of this encryption method
To the user. Optional user B of this system is optional
Integer x BAnd select on E (GF (q))
【0014】[0014]
【数5】 [Equation 5]
【0015】を計算する。そこで、ユーザBはxBを秘
密鍵として保持し、YBを公開鍵として全ユーザに知ら
せる。Calculate Therefore, user B holds x B as a secret key and informs all users as Y B as a public key.
【0016】(2)暗号化 AからBへ平文Mを秘密通信する場合を考える。Aは秘
密に整数である乱数kを選び、自分だけが知っているこ
の乱数kとBの公開鍵YBを用いて次の2つの暗号文
C1,C2を作成する。(2) Encryption Consider the case where the plaintext M is secretly communicated from A to B. A secretly chooses a random number k which is an integer, and creates the following two ciphertexts C 1 and C 2 using this random number k and the public key Y B of B that only the user knows.
【0017】[0017]
【数6】 [Equation 6]
【0018】[0018]
【数7】 [Equation 7]
【0019】AはBにC1,C2を送る。このとき(数
6)で定まるC1を第一の暗号文、(数7)で定まるC2
を第二の暗号文と呼ぶ。A sends C 1 and C 2 to B. At this time, C 1 determined by (Equation 6) is the first ciphertext and C 2 determined by (Equation 7)
Is called the second ciphertext.
【0020】(3)復号化 Bは自分だけが知っているxBを用いて次式を計算して
Mを得る。(3) Decoding B obtains M by calculating the following equation using x B which only B knows.
【0021】[0021]
【数8】 [Equation 8]
【0022】(数5)(数6)(数7)(数8)のいず
れの演算もE(GF(q))上で行なわれ、平文M、
YB、Gは楕円曲線E(GF(q))上の元とする。 3)有限体上のエルガマル署名について (1)鍵生成 システム管理者は有限体GF(p)を選ぶ。ここでpは、
素数である。gをGF(p)上の原始根とする。システム
管理者は、gとGF(p)をこの暗号方式の公開情報とし
てシステムユーザに公開する。このシステムの任意のユ
ーザAは、0<xA<pなる任意の整数を選び、GF
(p)上で、All the operations of (Equation 5) (Equation 6) (Equation 7) (Equation 8) are performed on E (GF (q)), and the plaintext M,
Y B and G are elements on the elliptic curve E (GF (q)). 3) Ergamal signature on finite field (1) Key generation The system administrator selects finite field GF (p). Where p is
It is a prime number. Let g be the primitive root on GF (p). The system administrator discloses g and GF (p) to the system user as public information of this encryption method. An arbitrary user A of this system selects an arbitrary integer 0 <x A <p,
On (p),
【0023】[0023]
【数9】 [Equation 9]
【0024】を計算する。そこで、ユーザAはxAを秘
密鍵として保持し、yAを公開鍵として全ユーザに知ら
せる。Calculate Therefore, the user A holds x A as a private key and y A as a public key to notify all users.
【0025】(2)署名の生成 ユーザAからユーザBへ平文mの署名を通信する場合を
考える。ここで平文mは整数とする。Aは秘密に整数で
ある乱数kを発生させ、自分だけが知るこの乱数kを用
いて次のRを計算する。(2) Generation of Signature Consider a case where a signature of plaintext m is communicated from user A to user B. Here, the plaintext m is an integer. A secretly generates a random number k which is an integer, and uses the random number k known only to itself to calculate the next R.
【0026】[0026]
【数10】 [Equation 10]
【0027】次に、Aは自分だけが知る秘密鍵xAとR
と前記乱数kとを用いて次の式を満たすsを計算する。Next, A is a secret key x A and R which only A knows.
Using the random number k and the random number k, s that satisfies the following equation is calculated.
【0028】[0028]
【数11】 [Equation 11]
【0029】そして、AはBに平文mと署名R、sを送
る。 (3)署名の検証 BはAの公開鍵yAをもちいて、次式が成立するかどう
かを検査する。A sends B the plaintext m and the signatures R and s. (3) Verification of signature B uses the public key y A of A to check whether the following equation holds.
【0030】[0030]
【数12】 [Equation 12]
【0031】もし成立すれば、mがAから送られてきた
ことを認証する。ここで、(数11)の右辺の (p−
1) は、有限体上の元gの位数であり、(数9)(数1
0)(数12)の演算はGF(p)上でおこなわれるもの
とし、(数11)は(p−1)で割った余りが同じ整数を
同一とみなして演算を0以上p−1以下でおこなうもの
とし、平文mは整数とする。 4)エルガマル暗号ならびにエルガマル署名で作用させる
乱数を通信文ごとに変えなければならない理由 (i)エルガマル暗号の場合 有限体上の場合でも楕円曲線のよる場合でも原理は変わ
らないので、有限体上のエルガマル暗号について述べる
ことにする。If true, authenticate that m was sent from A. Here, (p-
1) is the order of the element g on the finite field, and is (Equation 9) (Equation 1
0) (Equation 12) is assumed to be performed on GF (p), and (Equation 11) assumes that integers with the same remainder divided by (p-1) are the same, and the operation is 0 or more and p-1 or less. The plaintext m is an integer. 4) Reasons why the random numbers acting on the Elgamal cipher and Elgamal signature must be changed for each message (i) In the case of the Elgamal cipher, the principle does not change whether on a finite field or on an elliptic curve. We will discuss the Elgamal cipher.
【0032】もし同一の乱数kで通信文Ma,Mbをそれ
ぞれ暗号化して2組の暗号文(C1a,C2a),(C1b,C
2b)を作成したとき、 C1a = C1b, Ma/Mb = C2a/C2b という関係が成り立ち、1組のMとC2 が分かると、他
のすべてのMはC2 から分かってしまう。If the communication texts Ma and Mb are respectively encrypted with the same random number k, two sets of ciphertexts (C 1 a, C 2 a) and (C 1 b, C
2 b), the relationship of C 1 a = C 1 b, Ma / Mb = C 2 a / C 2 b is established, and if one set of M and C 2 is known, all other M are C I understand from 2 .
【0033】(ii)エルガマル署名の場合 もし同一の乱数kで通信文ma,mbをそれぞれ署名して
2組の署名文(Ra,sa),(Rb,sb)を作成したと
き、 sa*k ≡ (ma−xA*Ra) (mod p−1) sb*k ≡ (mb−xA*Rb) (mod p−1) という関係が成り立ち、2組のRとsおよびmは公開の
値であるからこの2式からkとxAが解ける。Aの秘密
xAがわかると他のすべてのmに対する署名の偽造がで
きてしまう。(Ii) In the case of Ergamal signature If two sets of signature texts (Ra, sa) and (Rb, sb) are created by signing the communication texts ma and mb with the same random number k, sa * k ≡ (ma-x A * Ra) (mod p-1) sb * k ≡ (mb-x A * Rb) (mod p-1) holds, and two sets of R and s and m are public values. Therefore, k and x A can be solved from these two equations. Knowing A's secret x A allows forgery of signatures for all other m.
【0034】上記の乱数についての制限は、常に同じ乱
数kでなくても2つの乱数k1,k2の間に、 k2 = a*k1+b (a,b:定数) という関係があったとしても、同様な手法で暗号文の解
読ならびに署名の偽造が行なわれる。The above restriction on random numbers has a relationship that k 2 = a * k 1 + b (a, b: constant) between two random numbers k 1 and k 2 even if they are not always the same random number k. Even in this case, the same method is used to decrypt the ciphertext and forge the signature.
【0035】以上のような理由から、多くの異なる乱数
を有限可換群上の特定元に作用させた新たな有限可換群
の元を求める必要がある。For the above reasons, it is necessary to obtain a new element of the finite commutative group by applying many different random numbers to the specific element on the finite commutative group.
【0036】また以上に述べた暗号法および署名法を安
全性を高く保ちつつ実用的な時間で実現するには、従来
専用のハードウェアや高性能な計算機が必要とされてき
た。しかしながら、社会における情報セキュリティの必
要性が高まるにつれ、従来より低い計算能力しか有さな
いICカード上で公開鍵暗号ならびにディジタル署名を
実現することが望まれてきている。Further, in order to realize the above-mentioned encryption method and signature method in a practical time while keeping high security, dedicated hardware and a high-performance computer have been conventionally required. However, with the increasing need for information security in society, it has been desired to realize public key cryptography and digital signature on an IC card that has a lower calculation capacity than before.
【0037】しかし上述のように離散対数暗号系を定義
する有限体の基数は充分な安全性を保つためには大きく
ある必要があり、さらにエルガマル暗号ならびにエルガ
マル署名においては通信文もしくは署名文毎に作用させ
る乱数を変えないといけないので、離散対数暗号系をI
Cカードのような計算能力の低い計算機で処理するに
は、多大な時間を要する。したがって短時間の間に多く
の通信文にたいして暗号化したり署名を施したりするに
は、通信文書ならびに署名される文書に関係しない部分
(例えば(数2)の計算や(数3)におけるyB kを計算
する部分など)を、直接暗号化したり署名しない時間す
なわち空き時間に予備計算しておくことにより実際に通
信文書ならびに署名される文書が入力されてから暗号化
や署名生成をする時間を短縮するという考え方が必要と
なる。この種の考え方は、ドナルドデービーズ編“ユー
ロクリプト’91”(1991年)第446頁から第457頁 フジ
オカアツシ、オカモト タツアキ、ミヤグチ ショウジ
著“イーエスアイジーエヌ:アン エフィシェント デ
ジタル シグネチャ インプリメンテーション フォー
スマートカード”(A.Fujioka,T.Okamoto,S.Miyagut
i,“ESIGN:An Efficient Digital Signature Implement
ation for Smart Cards”,Advances in Cryptology-Eur
ocrypt'91,pp.446-pp.457,Springer-Verlag,1991)に見
られるものである。エルガマル暗号ならびにエルガマル
署名においては予備計算できる部分が多いけれどもその
予備計算の処理時間が大きいため、前記空き時間に処理
できる数はそう多くならない。短時間の間にできるだけ
多くの予備処理を行なうことができれば、暗号化または
署名する通信文の数が増えた場合、一部の通信文に対し
て予備計算ができていなくて実際に通信文書ならびに署
名される文書が入力されてから暗号化や署名生成を始め
ることになり、大変時間がかかるということも回避で
き、暗号化または署名する通信文の数が増えない場合で
も予備処理を行なう回数を減らすことができる。However, as described above, the radix of the finite field that defines the discrete logarithmic cryptosystem needs to be large in order to maintain sufficient security, and further, in the Elgamal encryption and the Elgamal signature, each message or signature message is required. Since it is necessary to change the random numbers to be applied, I
It takes a great deal of time to process with a computer having a low calculation ability such as a C card. Therefore, in order to encrypt or sign many communication texts in a short time, y B k in the communication document and the part not related to the signed document (for example, (Equation 2) or y B k in (Equation 3)) The time to encrypt or generate a signature after the communication document and the document to be signed is actually input is shortened by pre-calculating the time when the data is not encrypted or signed, that is, the free time. The idea of doing is necessary. Donald Davies edited "Eurocrypt '91" (1991), pages 446 to 457, Fujioka Atsushi, Okamoto Tatsuaki, Miyaguchi Shoji, "Eas-I-G: An Efficient Digital Signature Implementation for Smart". Card ”(A.Fujioka, T.Okamoto, S.Miyagut
i, “ESIGN: An Efficient Digital Signature Implement
ation for Smart Cards ”, Advances in Cryptology-Eur
ocrypt'91, pp.446-pp.457, Springer-Verlag, 1991). Although there are many parts that can be precalculated in the Elgamal encryption and the Elgamal signature, the number of items that can be processed in the idle time is not so large because the precomputation processing time is long. If it is possible to perform as much preparatory processing as possible in a short time, if the number of encrypted or signed messages increases, some messages may not be pre-calculated, and It can be avoided that encryption and signature generation will start after the document to be signed is input and it will take a lot of time, and even if the number of communication texts to be encrypted or signed does not increase, the number of times of preprocessing is performed. Can be reduced.
【0038】以上の様な理由により、ICカードのよう
な計算能力の低い計算機でも短時間の間にできるだけ多
くの予備計算処理ができる計算方法の開発が望まれてい
る。For the above reasons, it is desired to develop a calculation method capable of performing as many preliminary calculation processes as possible in a short time even on a computer having a low calculation capacity such as an IC card.
【0039】以下では、できるだけ多くの予備計算処理
ができる計算方法の従来の技術について述べる。In the following, a conventional technique of a calculation method capable of performing as many preliminary calculation processes as possible will be described.
【0040】これから述べる計算処理法は、1)有限体上
のエルガマル暗号 の場合であれば(数2)の計算なら
びに(数3)の yB k の計算、2)楕円曲線によるエルガ
マル暗号の場合であれば(数6)の計算ならびに(数
7)の k*YB の計算、3)有限体上のエルガマル署名
の場合では式(数10)の計算 という各通信文ごとに
変わる乱数が作用する計算に関しての処理方法について
述べる。The calculation processing method to be described below is as follows: 1) In the case of the Ergamal cipher on a finite field, the calculation of (Equation 2) and y B k of (Equation 3), 2) In the case of the Elgamal cipher by an elliptic curve If so, the calculation of (Equation 6) and the calculation of k * Y B of (Equation 7), 3) In the case of Ergamal signature on a finite field, the calculation of Equation (Equation 10) is a random number that changes for each message. The processing method for the calculation to be performed will be described.
【0041】また先に挙げた各計算は有限体上の話では
gまたはyB をk乗するということであり、楕円曲線上
の話ではGまたはYB をk倍するということで計算方法
としても本質的には変わらない。したがって従来例で述
べる計算法はすべて楕円曲線上で G をk倍するという
場合に限って述べることにする。なお(数2)の計算で
はGをg,k倍をk乗に、(数3)の yB k の計算では
GをyB に,k倍をk乗に、式(数7)の計算ではGを
Yに、それぞれ変更すればよい。また有限体上での g
,楕円曲線上の G はそれぞれその暗号システムおよ
び署名システムを使用する全てのユーザー共通と考えて
よい。In addition, each of the above-mentioned calculations means that g or y B is raised to the power of k in the case of a finite field, and G or Y B is multiplied by k in the case of an elliptic curve. Is essentially unchanged. Therefore, all the calculation methods described in the conventional example will be described only when G is multiplied by k on an elliptic curve. Note that in the calculation of (Equation 2), G is set to g and k times to the kth power, and in the calculation of y B k of (Equation 3), G is set to y B and k times to the kth power, and calculation of the expression (Equation 7) Then, G may be changed to Y. Also g on a finite field
, G on the elliptic curve can be considered as common to all users who use the encryption system and the signature system, respectively.
【0042】以下、(発明の詳細な説明)においては、
特に断わらない限り「乱数kはすべてnビットであ
る。」と仮定して話を進める。In the following (Detailed Description of the Invention),
Unless otherwise stated, the description will proceed assuming that “random number k is all n bits”.
【0043】[従来例1]この計算処理法は、乱数kを
2進数展開して処理するというもので、次のような処理
を行なう。なお2進数展開法に関しては,ドナルド ク
ヌース著ジ アートオブ コンピュータ プログラミン
グ 第2巻(Donald E.Knuth,“The ArtComputer Progr
amming Vol.2”,Addison-Wesley)に詳しく述べられて
いる。[Prior Art 1] In this calculation processing method, a random number k is expanded into a binary number and processed, and the following processing is performed. Regarding the binary number expansion method, Donald E.Knuth, “The ArtComputer Progr” by Donald Knuth.
amming Vol.2 ”, Addison-Wesley).
【0044】乱数k1 の2進数展開を、(an-1,… ,
a0)とする。( ai ∈ {0,1})すなわち、The binary expansion of the random number k 1 is (a n-1 , ...,
a 0 ). (A i ε {0,1}) That is,
【0045】[0045]
【数13】 [Equation 13]
【0046】が成り立つ。このとき、Holds. At this time,
【0047】[0047]
【数14】 [Equation 14]
【0048】となるから、初めに2i*G(i=0,1,…
,n-1)を計算しておき、その後ai = 1 なるiについ
てのみ、加法演算する。以下同様なことを乱数k2,
k3,… について行なう。Therefore, first, 2 i * G (i = 0,1, ...
, n−1) is calculated in advance, and thereafter, only i for a i = 1 is subjected to an additive operation. The same applies to the random number k 2 ,
Perform k 3 ,.
【0049】計算量については、2i*G(i=0,1,…
,n-1)をすべて計算するのに(n−1)回の楕円曲線上の
加法演算を行なう必要がある。Regarding the amount of calculation, 2 i * G (i = 0,1, ...
, n-1), it is necessary to perform (n-1) times of addition operations on the elliptic curve.
【0050】またai = 1 なる確率は1/2 であるか
ら、ai = 1 なるiは 1/2*nあると考えられる。よ
ってai = 1 なるiについての楕円曲線上の加法演算
回数は、(n/2−1)回である。よってk1*Gを計算する
のに、(3/2*n−2)回の楕円曲線上の加法演算が必要で
ある。Since the probability that a i = 1 is 1/2, it can be considered that i when a i = 1 is 1/2 * n. Therefore, the number of addition operations on the elliptic curve for i with a i = 1 is (n / 2−1) times. Therefore, in order to calculate k 1 * G, (3/2 * n−2) times of addition operations on the elliptic curve are required.
【0051】k1*G,k2*G,… ,kt*Gを計算す
るのに必要な楕円曲線上の加法演算の回数は、t(3/2*
n−2) 回である。The number of addition operations on the elliptic curve required to calculate k 1 * G, k 2 * G, ..., K t * G is t (3/2 *
n-2) times.
【0052】楕円曲線上での場合では、n = 96 と
してよいので、計算量はIn the case of an elliptic curve, n = 96 may be set, so that the calculation amount is
【0053】[0053]
【数15】 [Equation 15]
【0054】となる。 [従来例2]この計算処理法は、前記従来例1から容易
に改良できるものである。k1*G,k2*G,… ,kt
*Gの計算を同時に処理するというもので、次のような
処理を行なう。なお2進数展開法に関しては,ドナルド
クヌース著ジ アート オブ コンピュータ プログ
ラミング 第2巻(Donald E.Knuth,“The Art Compute
r Programming Vol.2”,Addison-Wesley)に詳しく述べ
られている。It becomes [Conventional Example 2] This calculation processing method can be easily improved from the above-mentioned Conventional Example 1. k 1 * G, k 2 * G, ..., k t
The calculation of * G is performed simultaneously, and the following processing is performed. Regarding the binary expansion method, Donald E.Knuth, “The Art Compute” by Donald Knuth.
r Programming Vol.2 ”, Addison-Wesley).
【0055】この方法は、k1*Gを計算するときは、
前記従来例1と同じであるが、k2*G,… ,kt*Gを
計算するときに、k1*Gの計算過程で生まれる2i*G
(i=0,1,… ,n-1) をテーブルに保管しておき利用す
るというものである。This method is as follows when calculating k 1 * G:
Same as the above-mentioned conventional example 1, but 2 i * G produced in the calculation process of k 1 * G when calculating k 2 * G, ..., K t * G
(i = 0,1, ..., N-1) is stored in a table and used.
【0056】したがってk2*G,… ,kt*Gの計算に
おいては、ai = 1 なるiについての楕円曲線上の加
法演算のみが必要である。Therefore, in the calculation of k 2 * G, ..., K t * G, only the addition operation on the elliptic curve for i with a i = 1 is necessary.
【0057】よって計算量は、 k1*G : (3/2*n−2) k2*G,… ,kt*G : 各 (1/2*n−2)
となるので、 k1*G,k2*G,… ,kt*Gを計算するのに必要な
楕円曲線上の加法演算の回数は、 (3/2*n−2)+(t−1)*(1/2*n−2)
回である。[0057] Therefore, the amount of calculation, k 1 * G: (3 /2 * n-2) k 2 * G, ..., k t * G: each (1/2 * n-2 )
Therefore, the number of addition operations on the elliptic curve required to calculate k 1 * G, k 2 * G, ..., K t * G is (3/2 * n−2) + (t− 1) * (1/2 * n-2)
Times.
【0058】楕円曲線上での場合では、n = 96 と
してよいので、計算量はIn the case of an elliptic curve, n = 96 may be set, so that the calculation amount is
【0059】[0059]
【数16】 [Equation 16]
【0060】となる。(従来例1)における計算量の式
(数15)と比較した場合t = 28として、(従来例
1)で必要な楕円曲線上の加法演算の回数は3976回に対
して、(従来例2)で必要な楕円曲線上の加法演算の回
数は1411回となり、計算量は約35.5%にまで削減でき
る。It becomes In comparison with the calculation amount formula (Equation 15) in (Conventional example 1), assuming that t = 28, the number of addition operations on the elliptic curve required in (Conventional example 1) is 3976, whereas (Conventional example 2). ), The number of addition operations on the elliptic curve required is 1411 and the calculation amount can be reduced to about 35.5%.
【0061】[従来例3]この方法は、k1*G,k2*
Gを1つのペアにして、k1,k2の両方を2進数展開し
たとき、ともに1となるiは一括に処理するというもの
である。次のような処理をする。なおこの方法について
は、ギリース ブラサード編“クリプト’89”(1990
年)第175頁から第185頁(A.Fiat,“Batch RSA”,Advanc
es inCryptology-CRYPTO'89,pp.175-pp.185,Springer-V
erlag,1990)に詳しく述べられている。[Prior Art Example 3] This method uses k 1 * G, k 2 *
When G is made into one pair and both k 1 and k 2 are binary-expanded, i which becomes 1 is processed collectively. Perform the following processing. This method is described in "Crypt'89" (1990) by Gillies Brasard.
Year) 175 to 185 (A.Fiat, “Batch RSA”, Advanc
es in Cryptology-CRYPTO'89, pp.175-pp.185, Springer-V
erlag, 1990).
【0062】乱数k1,k2を2進数展開したものをそれ
ぞれ(a[1]n-1,… ,a[1]0)(a[2]n-1,… ,a
[2]0)とする。Binary expansions of the random numbers k 1 and k 2 are (a [1] n-1 , ..., A [1] 0 ) (a [2] n-1 ,.
[2] 0 ).
【0063】このとき、k1,k2に対して、 Γ(1,2)[2] = { 0≦i≦n-1|(a[1]i,a[2]i) = (1,1)} Γ(1)[2] = { 0≦i≦n-1|(a[1]i,a[2]i) = (1,0)} Γ(2)[2] = { 0≦i≦n-1|(a[1]i,a[2]i) = (0,1)} と定める。At this time, for k 1 and k 2 , Γ (1,2) [2] = {0≤i≤n-1 | (a [1] i , a [2] i ) = (1 , 1)} Γ (1) [2] = {0 ≤ i ≤ n-1 | (a [1] i , a [2] i ) = (1,0)} Γ (2) [2] = { 0 ≦ i ≦ n−1 | (a [1] i , a [2] i ) = (0,1)}.
【0064】ここで Γ(1,2)[2],Γ(1)[2],Γ(2)
[2]に対してWhere Γ (1,2) [2] , Γ (1) [2] , Γ (2)
Against [2]
【0065】[0065]
【数17】 [Equation 17]
【0066】[0066]
【数18】 [Equation 18]
【0067】[0067]
【数19】 [Formula 19]
【0068】を定義する。このとき、 k1*G = U(1,2)[2]+ U(1)[2] k2*G = U(1,2)[2]+ U(2)[2] が成り立つ。Define At this time, k 1 * G = U (1,2) [2] + U (1) [2] k 2 * G = U (1,2) [2] + U (2) [2] holds.
【0069】以下、 (k3,k4),(k5,k6),… (kt-1,kt) <t≡0(mod2)> とペアにして処理する。In the following, processing is carried out in pairs with (k 3 , k 4 ), (k 5 , k 6 ), ... (K t-1 , k t ) <t≡0 (mod2)>.
【0070】よって計算量は、まず初めに2i*G(i=
0,1,… ,n-1)を計算してテーブルに保管してするの
で、この計算に必要な楕円曲線上の加法演算は(n−1)
回。Therefore, the calculation amount is 2 i * G (i =
Since 0,1, ..., n-1) is calculated and stored in the table, the addition operation on the elliptic curve necessary for this calculation is (n-1)
Times.
【0071】次に、#Γ(1,2) = #Γ(1) = #Γ
(2) = 1/4*n (ただし #A = 集合Aの元の個数) と考えられるので、U(1,2)[2],U(1)[2],U(2)
[2]を計算するのにそれぞれ(1/4*n−1)回の楕円曲線
上の加法演算が必要となる。またU(1,2)[2],U(1)
[2],U(2)[2]から、k1*G,k2*Gを生成するの
に、それぞれ1回の楕円曲線上の加法演算が必要である
から、初めの2i*G(i=0,1,… ,n-1)のテーブルを
作成するのを除いた計算回数は、 (1/4*n−1)*3+1*2 = (3/4*n−1) となる。Next, # Γ (1,2) = # Γ (1) = # Γ
(2) = 1/4 * n (where #A = number of elements of set A), so U (1,2) [2] , U (1) [2] , U (2)
Each calculation of [2] requires (1/4 * n−1) times of addition operation on the elliptic curve. Also U (1,2) [2] , U (1)
[2], U (2) from [2], k 1 * G , to generate the k 2 * G, because it is necessary addition operation on an elliptic curve once each, first of 2 i * G The number of calculations except for creating the table of (i = 0,1, ..., n-1) is (1/4 * n-1) * 3 + 1 * 2 = (3/4 * n-1) Become.
【0072】k1*G,k2*G,… ,kt*Gを計算す
るのに必要な楕円曲線上の加法演算の回数は、 (n−1)+t/2*(3/4*n−1) となる。The number of addition operations on the elliptic curve required to calculate k 1 * G, k 2 * G, ..., K t * G is (n-1) + t / 2 * (3/4 * n-1).
【0073】楕円曲線上での場合では、n = 96 と
してよいので、計算量はIn the case of an elliptic curve, n = 96 may be set, so that the calculation amount is
【0074】[0074]
【数20】 [Equation 20]
【0075】となる。(従来例3)はt≧1で(従来例
1)(従来例2)に比べて一番計算回数が少なくなる。
(従来例2)における計算量の式(数16)と比較した
場合t = 28として、(従来例2)で必要な楕円曲線
上の加法演算の回数は1411回に対して、(従来例3)で
必要な楕円曲線上の加法演算の回数は1089回となり、計
算量は約77.1%にまで削減できる。It becomes In (conventional example 3), t ≧ 1, and the number of calculations is the smallest as compared with (conventional example 1) (conventional example 2).
In comparison with the calculation amount formula (Equation 16) in (Conventional example 2), assuming that t = 28, the number of addition operations on the elliptic curve required in (Conventional example 2) is 1411 times, whereas (Conventional example 3) ), The number of addition operations on the elliptic curve required is 1089, and the calculation amount can be reduced to about 77.1%.
【0076】[従来法4]この方法は前記従来法3を一
般化したもので、k1*G,… , kL*Gを1つの組と
して処理する方法で、次のような処理である。なおこの
方法については、ギリース ブラサード編“クリプト’
89”(1990年)第175頁から第185頁(A.Fiat,“Batch R
SA”,Advances in Cryptology-CRYPTO'89,pp.175-pp.18
5,Springer-Verlag,1990)に詳しく述べられている。[Conventional method 4] This method is a generalization of the above-mentioned conventional method 3, and is a method for processing k 1 * G, ..., K L * G as one set, and is the following processing. . This method is described in "Crypt 'by Gillies Brasard".
89 "(1990), pages 175 to 185 (A. Fiat," Batch R
SA ”, Advances in Cryptology-CRYPTO'89, pp.175-pp.18
5, Springer-Verlag, 1990).
【0077】乱数kl (l = 1,2,… ,L)の2進数展開を
(a[l]n-1,… ,a[l]0)(l = 1,2,… ,L)とする。The binary expansion of the random number k l (l = 1,2, ..., L) is (a [l] n-1 , ..., a [l] 0 ) (l = 1,2, ..., L). And
【0078】次に Z(L) = { 0,1,… ,L }の
部分集合T(≠φ(空集合))に対して、 Γ(T)[L] ={ 0≦i≦n-1|a[l]i=1(l∈T),a[l]
i=0(l∈Z(L)−T)} を定義する。また T = { x1,… ,xt }に対して Γ(T)[L] = Γ(x1,… ,xt)[L] と略記することにすれば、前記従来法3で定義したΓ
(1,2)[2],Γ(1)[2],Γ(2)[2]と矛盾のない記号の定
義になる。Next, for a subset T (≠ φ (empty set)) of Z (L) = {0,1, ..., L}, Γ (T) [L] = {0≤i≤n- 1 | a [l] i = 1 (l∈T), a [l]
i = 0 (lεZ (L) −T)} is defined. Further, if T = {x 1 , ..., x t } is abbreviated as Γ (T) [L] = Γ (x 1 , ..., x t ) [L] , then the method is defined by the conventional method 3. Γ
(1,2) [2] , Γ (1) [2] , Γ (2) [2] is a symbol consistent with the definition.
【0079】また前記従来法3のときと同様に、Further, as in the case of the conventional method 3,
【0080】[0080]
【数21】 [Equation 21]
【0081】で、U(T)[L]を定義する。このとき、Then, U (T) [L] is defined. At this time,
【0082】[0082]
【数22】 [Equation 22]
【0083】が成り立つ。計算量は、次のようになる。The following holds. The amount of calculation is as follows.
【0084】まず初めに2i*G(i=0,1,… ,n-1)を
計算してテーブルに保管してするので、この計算に必要
な楕円曲線上の加法演算は(n−1)回。First, 2 i * G (i = 0, 1, ..., N-1) is calculated and stored in a table, so the addition operation on the elliptic curve necessary for this calculation is (n- 1) times.
【0085】また #Γ(T)[L] = (1/2L)*n ( T
∈ P(Z(L))−φ)である。ただし P(A) =
集合Aの部分集合の全体と考えられるから、U(T)[L]
( T ∈ P(Z(L))−φ)を計算するのにそれぞれ
((1/2L)*n−1)回の楕円曲線上の加法演算が必要で
あり、U(T)[L]の総数は、2L−1個である。Also, # Γ (T) [L] = (1/2 L ) * n (T
Ε P (Z (L)) − φ). However, P (A) =
U (T) [L] because it is considered to be the entire subset of set A
To calculate (T ∈ P (Z (L)) − φ), ((1/2 L ) * n−1) times of addition operations on the elliptic curve are required, and U (T) [L ] Is 2 L −1.
【0086】T ∋ kl なるTの総数は、そのkl以外
の乱数(L−1)個がTに入るかどうかの組合せだけあ
り、2L-1 個となる。The total number of T T ∋ k l is 2 L-1 because there is only a combination of whether or not a random number (L-1) other than k l falls within T.
【0087】よって、U(T)[L]( T ∈ P(Z(L))
−φ)をすべてを計算するのに、((1/2L)*n−1)*
(2L−1)回の楕円曲線上の加法演算が必要である。Therefore, U (T) [L] (T ∈ P (Z (L))
-(Φ) is calculated as ((1/2 L ) * n-1) *
(2 L -1) times of addition operations on the elliptic curve are required.
【0088】またU(T)[L]( T ∈ P(Z(L))−
φ)からk1*G,… , kL*Gを生成するのにそれぞ
れ、(2L-1−1)回の楕円曲線上の加法演算が必要と
なるので、初めの2i*G(i=0,1,… ,n-1)のテーブ
ルを作成するのを除いた計算回数は、 ((1/2L)*n−1)*(2L−1)+L*(2L-1−1) となる。U (T) [L] (T ∈ P (Z (L))-
k 1 * G from φ), ..., k L * G respectively to generate a so it is necessary to add operations on an elliptic curve (2 L-1 -1) times, the beginning of the 2 i * G ( i = 0,1, ..., n-1) The number of calculations except creating the table is ((1/2 L ) * n-1) * (2 L -1) + L * (2 L- 1 -1).
【0089】k1*G,k2*G,… ,kt*Gを計算す
るのに必要な楕円曲線上の加法演算の回数は、 <t≡
0(mod l)> (n−1)+t/L*{((1/2L)*n−1)*(2L−1)+
L*(2L-1−1)} となる。The number of addition operations on the elliptic curve required to calculate k 1 * G, k 2 * G, ..., K t * G is <t≡
0 (mod l)> (n-1) + t / L * {((1/2 L ) * n-1) * (2 L -1) +
L * (2 L-1 -1)}.
【0090】楕円曲線上での場合では、n = 96 と
してよいので、計算量はIn the case of an elliptic curve, n = 96, so the calculation amount is
【0091】[0091]
【数23】 [Equation 23]
【0092】となる。ここで f(L) = 1/L*{((96/2L)-1)*(2L-1)+L*(2L-1-
1)} とおくと、f(L)の値が最小のLが、計算回数が最小と
なる一括に処理する個数Lであることは明らかである。It becomes Where f (L) = 1 / L * {((96/2 L ) -1) * (2 L -1) + L * (2 L-1-
1)}, it is obvious that the L having the smallest value of f (L) is the number L to be processed collectively that minimizes the number of calculations.
【0093】各Lに対するf(L)の値を(表1)に示
す。これから分かるように、L = 4のときf(L)は最
小すなわち4個の乱数を一括に処理するのがいちばん計
算量が少なくて済む。The values of f (L) for each L are shown in (Table 1). As can be seen from the above, when L = 4, f (L) is the smallest, that is, it is the least computational complexity to process four random numbers at once.
【0094】[0094]
【表1】 [Table 1]
【0095】またこれまでの話は楕円曲線上における場
合だったので、n = 96としたが有限体上の場合n
= 512としなければならない。この場合もn = 9
6の場合と同じように処理してf(L)を定義すると、L
= 6のときf(L)は最小すなわち6個の乱数を一括に
処理するのがいちばん計算量が少なくて済む。n = 5
12の場合のf(L)の値は(表2)に示す。Further, since the story so far has been on the elliptic curve, n = 96 is set, but n on a finite field is n.
= 512. Also in this case, n = 9
If f (L) is defined by processing in the same way as in the case of 6, L
When = 6, f (L) is minimum, that is, 6 random numbers are collectively processed, which requires the least amount of calculation. n = 5
The value of f (L) in the case of 12 is shown in (Table 2).
【0096】[0096]
【表2】 [Table 2]
【0097】よって楕円曲線上の場合だと4個の乱数を
一括に処理する方法が一番計算量が少なく、k1*G,
k2*G,… ,kt*Gを計算するのに必要な楕円曲線上
の加法演算の回数は、 <t≡0(mod 4)>Therefore, in the case of an elliptic curve, the method of collectively processing four random numbers requires the least amount of calculation, and k 1 * G,
The number of addition operations on the elliptic curve required to calculate k 2 * G, ..., K t * G is <t≡0 (mod 4)>
【0098】[0098]
【数24】 [Equation 24]
【0099】となる。(従来例4)のL = 4とした方
法はt≧1で(従来例1)(従来例2)(従来例3)に
比べて一番計算回数が少なくなる。(従来例3)におけ
る計算量の式(数20)と比較した場合t = 28とし
て、(従来例3)で必要な楕円曲線上の加法演算の回数
は1089回に対して、(従来例4)のL = 4とした方法
で必要な楕円曲線上の加法演算の回数は816回となり、
計算量は約74.9%にまで削減できる。It becomes In the method of L = 4 in (Conventional example 4), t ≧ 1 and the number of calculations is the smallest as compared with (Conventional example 1) (Conventional example 2) (Conventional example 3). In comparison with the calculation amount formula (Equation 20) in (Conventional example 3), assuming that t = 28, the number of addition operations on the elliptic curve required in (Conventional example 3) is 1089, whereas ), The number of addition operations on the elliptic curve required by the method of L = 4 is 816,
The calculation amount can be reduced to about 74.9%.
【0100】また有限体上の場合だと6個の乱数を一括
に処理する方法が一番計算量が少なく、k1*G,k2*
G,… ,kt*Gを計算するのに必要な楕円曲線上の加
法演算の回数は、 <t≡0(mod 6)>In the case of a finite field, the method of processing 6 random numbers at a time requires the least amount of calculation, and k 1 * G, k 2 *
The number of addition operations on the elliptic curve required to calculate G, ..., K t * G is <t≡0 (mod 6)>
【0101】[0101]
【数25】 [Equation 25]
【0102】となる。この場合も先の楕円曲線上の場合
と同じだけの計算量削減ができる。It becomes Also in this case, the amount of calculation can be reduced by the same amount as in the case of the elliptic curve.
【0103】[0103]
【発明が解決しようとする課題】前記のどの従来例も、
ICカードのような計算能力の低い計算機で離散対数暗
号系を実現しようとすると時間が掛かるという問題に対
する計算方法であったが、まだまだ十分実用的な時間で
実現できるとは言えない。本発明はICカードのような
計算能力の低い計算機でも十分短い時間で離散対数暗号
系を実現できるようにすることを目的とする。In any of the above-mentioned conventional examples,
This is a calculation method for the problem that it takes time to realize a discrete logarithmic cryptosystem with a computer having a low calculation ability such as an IC card, but it cannot be said to be realized in a sufficiently practical time. It is an object of the present invention to realize a discrete logarithmic cryptosystem in a sufficiently short time even with a computer having a low calculation ability such as an IC card.
【0104】[0104]
【課題を解決するための手段】本発明は、前記目的を達
成するために、2個以上の乱数の少なくとも1個以上の
乱数を2個以上の部分乱数に分割する乱数分割部、前記
部分乱数を前記有限可換群の特定元に作用させた構成元
を出力する整数作用部と、前記整数作用部から出力され
た前記構成元に対して前記有限可換群の定義演算とその
逆元演算の両方またはその一方の演算を行い組み合わせ
る作用元生成装置とを備えたものである。In order to achieve the above object, the present invention provides a random number division unit for dividing at least one random number of two or more random numbers into two or more partial random numbers, and the partial random number. And an integer acting part for outputting a constituent element that acts on a specific element of the finite commutative group, and a definition operation of the finite commutative group and an inverse element operation thereof with respect to the constituent element output from the integer acting part. And an action source generation device for performing and combining both or one of the operations.
【0105】[0105]
【作用】本発明は前記手段を備えることによって、乱数
分割部は基となる2個以上の乱数の少なくとも1個以上
の乱数を2個以上の部分乱数に分割し前記部分乱数を整
数作用部に供給し、前記整数作用装置は前記部分乱数を
有限可換群の特定元に作用させて構成元を作成し作用元
生成部に供給し、前記作用元生成装置は前記構成元を前
記有限可換群の定義演算とその逆元演算の両方またはそ
の一方の演算を行い組み合わせて新たな有限可換群の元
を作成する。According to the present invention, by including the above means, the random number division unit divides at least one random number of the two or more base random numbers into two or more partial random numbers, and the partial random numbers are converted into integer action units. The integer acting device applies the partial random number to a specific element of the finite commutative group to create a constituent element and supplies the constituent element to the effector generation unit. A new finite commutative group element is created by performing both or one of the group definition operation and its inverse element operation.
【0106】さらに前記新たな有限可換群の元の個数
は、前記部分乱数の総数よりも低くすることにより、前
記新しい有限可換群の元から構成元と構成元の組み合わ
せ方を知ることはできない。Further, by making the number of elements of the new finite commutative group lower than the total number of the partial random numbers, it is possible to know how to combine constituent elements and constituent elements from the elements of the new finite commutative group. Can not.
【0107】[0107]
(第一の実施例) ・楕円曲線上のエルガマル暗号における演算器 図1は本発明の第一の実施例における楕円曲線上のエル
ガマル暗号における演算器の構成を示すものである。同
図において1は乱数生成部、2は前記1の乱数生成部か
ら供給される2個以上の乱数の少なくとも1個以上の乱
数を2個以上の部分乱数に分割する乱数分割部、3はビ
ット指定部、4は前記2の乱数分割部から出力される前
記部分乱数を楕円曲線上の特定元に作用させた構成元を
作成する第一の楕円曲線上の整数作用部、5は前記4の
第一の楕円曲線上の整数作用部から出力される2個以上
の前記構成元に対して前記楕円曲線上の加法演算または
減法演算を組み合わせて楕円曲線上の元を作成する第一
の暗号文生成部、6は組合せ指定部、7は保管部、8は
前記2の乱数分割部から出力される前記部分乱数を楕円
曲線上の特定元に作用させた構成元を作成する第二の楕
円曲線上の整数作用部、9は前記8の第二の楕円曲線上
の整数作用部から出力される2個以上の前記構成元に対
して前記楕円曲線上の加法演算または減法演算を組み合
わせて楕円曲線上の元を作成する第二の暗号文生成部、
10は楕円曲線上の加法演算部である。(First Embodiment) -Arithmetic Unit in Elgamal Cryptography on Elliptic Curve FIG. 1 shows a configuration of an arithmetic unit in Elgamar cipher on elliptic curve according to the first embodiment of the present invention. In the figure, 1 is a random number generation unit, 2 is a random number division unit that divides at least one random number of two or more random numbers supplied from the random number generation unit into two or more partial random numbers, and 3 is a bit. The designating unit, 4 is an integer acting unit on the first elliptic curve that creates a constituent element by acting the partial random number output from the random number dividing unit of 2 on the specific element on the elliptic curve, and 5 is the integer acting unit of 4 A first ciphertext that creates an element on an elliptic curve by combining two or more constituent elements output from the integer acting unit on the first elliptic curve with an addition operation or a subtraction operation on the elliptic curve A generation unit, 6 is a combination designation unit, 7 is a storage unit, and 8 is a second elliptic curve that creates a constituent element in which the partial random number output from the random number division unit 2 is applied to a specific element on an elliptic curve. Is the above integer action part, 9 is the above integer action part on the second elliptic curve? The second ciphertext generating unit for generating the original on the elliptic curve by combining the addition operation or subtraction operation on the elliptic curve with respect to two or more of said configuration source output,
Reference numeral 10 is an addition calculation unit on the elliptic curve.
【0108】以下同図を参照しながら実施例の手順を説
明する。この例は初めに4個の乱数が入力された後、7
個のエルガマル暗号の第一の暗号文あるいは第二の暗号
文の一部を出力するという例である。 (1)乱数分割 乱数生成部1から乱数k1,k2,k3,k4 が4個供給され
て、乱数分割部2に入力される。もう一方、ビット指定
部3からビット分割情報T1,T2,T3,T4 が乱数分割部
2に入力される。ここでZ0(n-1) = { 0,1,… ,n-1
}とすると、ビット分割情報T1,T2,T3,T4はZ0(n-
1)の部分集合である。乱数分割部2は、乱数ki(i=1,
2,3,4)をビット分割情報Ti(i=1,2,3,4)により次のよ
うに部分乱数ki [1],ki [2](i=1,2,3,4)に分割する。
すなわち、乱数ki(i=1,2,3,4)の2進数展開を(a
[i]n-1,… ,a[i]0)(i=1,2,3,4)とし、部分乱数ki
[1],ki [2](i=1,2,3,4)の2進数展開をそれぞれ(b
[i]n-1,… ,b[i]0),(c[i]n-1,… ,c[i]0)とす
るとき、b[i]j,c[i]j (i=1,2,3,4 j=0,1, … ,
n-1)を次の(数26)(数27)の規則により定める。The procedure of the embodiment will be described below with reference to FIG. In this example, 4 random numbers are input first, then 7
This is an example of outputting a part of the first ciphertext or the second ciphertext of each Ergamal cipher. (1) Random number division Four random numbers k 1 , k 2 , k 3 , k 4 are supplied from the random number generation unit 1 and input to the random number division unit 2. On the other hand, the bit division information T 1 , T 2 , T 3 , T 4 is input to the random number division unit 2 from the bit designation unit 3. Where Z 0 (n-1) = {0,1, ..., n-1
}, The bit division information T 1 , T 2 , T 3 , T 4 is Z 0 (n-
It is a subset of 1). The random number division unit 2 uses the random number k i (i = 1,
Partial random numbers k i [1] , k i [2] (i = 1,2,3,2) based on bit division information T i (i = 1,2,3,4) Divide into 4).
That is, the binary expansion of the random number k i (i = 1,2,3,4) is (a
[i] n-1 , ..., A [i] 0 ) (i = 1,2,3,4), and the partial random number k i
The binary expansion of [1] , k i [2] (i = 1,2,3,4) is (b
[i] n-1 , ..., b [i] 0 ), (c [i] n-1 , ..., c [i] 0 ), b [i] j , c [i] j (i = 1,2,3,4 j = 0,1, ...
n-1) is determined by the following rules of (Equation 26) and (Equation 27).
【0109】[0109]
【数26】 [Equation 26]
【0110】[0110]
【数27】 [Equation 27]
【0111】このとき ki = ki [1]+ki [2] (i=1,2,3,4) が成り立つ。 (2)エルガマル暗号の第一の暗号文の構成元の作成 乱数分割部2から出力される部分乱数ki [1],ki [2](i
=1,2,3,4)は、第一の楕円曲線上の整数作用部4に供給
される。第一の楕円曲線上の整数作用部4は次の(数2
8)のような操作で楕円曲線上の点Ki [1],Ki [2](i
=1,2,3,4)を求める。At this time, k i = k i [1] + k i [2] (i = 1,2,3,4) holds. (2) Creation of a constituent element of the first ciphertext of the Ergamal cipher Partial random numbers k i [1] , k i [2] (i
= 1,2,3,4) is supplied to the integer action part 4 on the first elliptic curve. The integer acting part 4 on the first elliptic curve is
By operations like 8), points K i [1] , K i [2] (i
= 1,2,3,4).
【0112】Gをシステムの公開鍵である楕円曲線上の
点とすると、If G is a point on the elliptic curve that is the public key of the system,
【0113】[0113]
【数28】 [Equation 28]
【0114】ここでki [j]*Gの計算は(従来例4)に
述べた方法で4個のki [j]*Gを一括に処理して計算す
ることもできる。[0114] Calculation of where k i [j] * G may be calculated by processing the batch four k i [j] * G in the manner described (fourth conventional example).
【0115】このようにして8個の楕円曲線上の点であ
る第一の暗号文の構成元が作成される。 (3)エルガマル暗号の第一の暗号文の作成 第一の楕円曲線上の整数作用部4から出力された楕円曲
線上の点Ki [1],Ki [ 2](i=1,2,3,4)は、第一の暗号
文生成部5に入力される。また組合せ指定部6から組み
合わせ指定情報Qj(j=1,2,3,4,5,6,7)が第一の暗号文
生成部5に入力される。In this way, the constituent elements of the first ciphertext, which are the points on the elliptic curve, are created. (3) Creation of the first ciphertext of the Elgamal cipher The points K i [1] and K i [ 2] (i = 1,2 ) on the elliptic curve output from the integer action unit 4 on the first elliptic curve , 3, 4) is input to the first ciphertext generation unit 5. Further, the combination designation information Q j (j = 1,2,3,4,5,6,7) is input from the combination designation unit 6 to the first ciphertext generation unit 5.
【0116】組み合わせ指定情報Qj(j=1,2,3,4,5,6,
7)は楕円曲線上の点Ki [1],Ki [2](i=1,2,3,4) の中
から2個の点を選び、その2点を楕円曲線上の加法で作
用させるか減法で作用させるか定める情報である。よっ
て第一の暗号文生成部5はQj(j=1,2,3,4,5,6,7)に基
づき、エルガマル暗号の第一の暗号文C[j]1(j=1,2,
3,4,5,6,7)を作成する。その作成方法は例えばQ1が、
K2 [1]を加法でK4 [2]を減法で作用させるという情報で
あったならば、C[1]1は次の(数29)で定まるという
ものである。Combination designation information Q j (j = 1,2,3,4,5,6,
7) chooses two points from points K i [1] and K i [2] (i = 1,2,3,4) on the elliptic curve, and adds the two points by addition on the elliptic curve. This is information that determines whether to act or to act by subtraction. Therefore, the first ciphertext generation unit 5 uses the first ciphertext C [j] 1 (j = 1, j = 1, j of the El Gamal cipher based on Q j (j = 1,2,3,4,5,6,7). 2,
Create 3,4,5,6,7). For example, Q 1 is
If it is the information that K 2 [1] is to be added and K 4 [2] is to be subtractive, then C [1] 1 is determined by the following (Equation 29).
【0117】[0117]
【数29】 [Equation 29]
【0118】このようにして、第一の暗号文生成部5は
組み合わせ指定情報Qj(j=1,2,3,4,5,6,7)に基づきエ
ルガマル暗号の第一の暗号文C[j]1(j=1,2,3,4,5,6,
7)を作成し、保管部7に保管する。 (4)エルガマル暗号の第二の暗号文の構成元の作成 乱数分割部2から出力される部分乱数前記(2)と同じki
[1],ki [2](i=1,2,3,4)は、第二の楕円曲線上の整数
作用部8に供給される。第二の楕円曲線上の整数作用部
8は次の(数30)のような操作で楕円曲線上の点Xi
[1],Xi [2](i=1,2,3,4)を求める。In this way, the first ciphertext generator 5 uses the combination designating information Q j (j = 1,2,3,4,5,6,7) to generate the first ciphertext C of the El Gamal cipher. [j] 1 (j = 1,2,3,4,5,6,
7) is created and stored in the storage unit 7. (4) Creation of a constituent element of the second ciphertext of the Ergamal cipher Partial random number output from the random number division unit 2 Same as the above (2) k i
[1] , k i [2] (i = 1,2,3,4) are supplied to the integer operating unit 8 on the second elliptic curve. The integer acting unit 8 on the second elliptic curve is operated by the following operation (Equation 30) to obtain a point X i on the elliptic curve
[1] , X i [2] (i = 1,2,3,4) is calculated.
【0119】YBをある特定の受信者Bの公開鍵である
楕円曲線上の点とすると、Let Y B be the point on the elliptic curve that is the public key of a particular recipient B, then
【0120】[0120]
【数30】 [Equation 30]
【0121】ここでki [j]*YBの計算は(従来例4)
に述べた方法で4個のki [j]*YBを一括に処理して計
算することもできる。Here, the calculation of k i [j] * Y B is (conventional example 4).
It is also possible to collectively process and calculate the four k i [j] * Y B by the method described in (1) .
【0122】このようにして8個の楕円曲線上の点であ
る第二の暗号文の構成元が作成される。 (5)エルガマル暗号の第二の暗号文の一部の作成 楕円曲線上の整数作用部8から出力された楕円曲線上の
点Xi [1],Xi [2](i=1,2,3,4)は、第二の暗号文生成
部9に入力される。また組合せ指定部6から前記(3)と
同じ組み合わせ指定情報Qj(j=1,2,3,4,5,6,7)が第二
の暗号文生成部9に入力される。 組み合わせ指定情報
Qj(j=1,2,3,4,5,6,7)は楕円曲線上の点Ki [1],Ki
[2](i=1,2,3,4) の中から2個の点を選び、その2点
を楕円曲線上の加法で作用させるか減法で作用させるか
定める情報である。第二の暗号文生成部9はQj(j=1,
2,3,4,5,6,7)に基づき、エルガマル暗号の第二の暗号文
の平文M以外の部分V[j](j=1,2,3,4,5,6,7)を作成す
る。その作成方法は例えばQ2が、X3 [2]を減法でX4
[1]を加法で作用させるという情報であったならば、V
[2]は次の(数31)で定まるというものである。In this way, the constituents of the second ciphertext, which are the points on the elliptic curve, are created. (5) Creation of a part of the second ciphertext of the Elgamal cipher The points X i [1] and X i [2] (i = 1,2 ) on the elliptic curve output from the integer action part 8 on the elliptic curve , 3, 4) is input to the second ciphertext generation unit 9. Also, the same combination designation information Q j (j = 1,2,3,4,5,6,7) as in (3) above is input from the combination designation unit 6 to the second ciphertext generation unit 9. The combination designation information Q j (j = 1,2,3,4,5,6,7) is the points K i [1] and K i on the elliptic curve.
[2] This is information that determines two points from (i = 1,2,3,4) and determines whether the two points act on the elliptic curve by addition or subtraction. The second ciphertext generator 9 uses Q j (j = 1,
2,3,4,5,6,7), the part V [j] (j = 1,2,3,4,5,6,7) other than the plaintext M of the second ciphertext of the Elgamal cipher To create. For example, Q 2 is created by subtracting X 3 [2] from X 4
If it is the information that [1] acts on the addition, V
[2] is to be determined by the following (Equation 31).
【0123】[0123]
【数31】 [Equation 31]
【0124】このようにして、第二の暗号文生成部9は
組み合わせ指定情報Qj(j=1,2,3,4,5,6,7)に基づきエ
ルガマル暗号の第二の暗号文の平文M以外の部分V[j]
(j=1,2,3,4,5,6,7)を作成し、保管部7に保管する。
ただし保管部7ではC[j]1とV[j](j=1,2,3,4,5,6,7)
を組にして保管しておく。 (6)エルガマル暗号の第二の暗号文の作成 特定の受信者Bに秘密通信する平文M[j]が楕円曲線上
の加法演算部10に入力されると保管部7から保管され
ているV[j]楕円曲線上の加法演算部10に入力され、
楕円曲線上の加法演算部10はエルガマル暗号の第二の
暗号文C[j]2を次の(数32)のように作成する。In this way, the second ciphertext generator 9 generates the second ciphertext of the El Gamal cipher based on the combination designation information Q j (j = 1,2,3,4,5,6,7). Portion other than plaintext V [j]
(j = 1,2,3,4,5,6,7) is created and stored in the storage unit 7.
However, in the storage unit 7, C [j] 1 and V [j] (j = 1,2,3,4,5,6,7)
Store as a set. (6) Creation of second ciphertext of Ergamal cipher When plaintext M [j] secretly communicated to a specific recipient B is input to the addition operation unit 10 on the elliptic curve, V stored in the storage unit 7 is stored. [j] is input to the addition operation unit 10 on the elliptic curve,
The addition calculation unit 10 on the elliptic curve creates the second ciphertext C [j] 2 of the Elgamal cipher as the following (Numerical Expression 32).
【0125】[0125]
【数32】 [Equation 32]
【0126】そしてV[j]と組として保管部7に保管さ
れているC[j]1とこのC[j]2を暗号文としてBに送信す
る。Then, C [j] 1 stored in the storage unit 7 as a set with V [j] and this C [j] 2 are transmitted to B as a ciphertext.
【0127】そして一度使われたC[j]1,V[j]は保管
部7に保管しておく必要はない。 (7)計算量について 従来例との比較から、前記(2)(3)でエルガマル暗号の第
一の暗号文C[j]1(j=1,2,3,4,5,6,7)を作成するのに
必要な計算量について述べる。第二の暗号文の一部を作
成する計算量についても同様な効果が得られる。The C [j] 1 and V [j] used once need not be stored in the storage unit 7. (7) Computational complexity From the comparison with the conventional example, the first ciphertext C [j] 1 (j = 1,2,3,4,5,6,7 of the Ergamal cipher in the above (2) and (3) ) Describes the amount of calculation required to create). A similar effect can be obtained with respect to the amount of calculation for creating a part of the second ciphertext.
【0128】(従来例2)と同様にまず初めに、2i*
G(i=0,1,… ,n-1)を計算しておきそのあとで、Ki
[j] = ki [j]*G(i=1,2,3,4 j=1,2)を計算す
る。Similar to (Conventional example 2), first, 2 i *
G (i = 0,1, ..., n-1) is calculated and then K i
[j] = k i [j] * G (i = 1,2,3,4 j = 1,2) is calculated.
【0129】2i*G(i=0,1,… ,n-1)をすべて計算
するのに(n−1)回の楕円曲線上の加法演算を行なう必
要がある。To calculate all 2 i * G (i = 0, 1, ..., N-1), it is necessary to perform (n-1) times of addition operations on the elliptic curve.
【0130】つぎに、&ki [j] = 平均(1/4)*nと考え
られるので、ただし、&r = rを2進数展開したとき
に1の立っているビット数。Ki [j] = ki [j]*Gを計
算するのにそれぞれ(1/4)*n−1回の楕円曲線上の加法
演算が必要である。Next, & k i [j] = average (1/4) * n, where & r = the number of bits in which 1 is set when r is binary-expanded. Each calculation of K i [j] = k i [j] * G requires (1/4) * n−1 addition operations on the elliptic curve.
【0131】またKi [j](i=1,2,3,4 j=1,2)からC
[s]1(s=1,2,3,4,5,6,7)を作成するのにそれぞれ1回
の楕円曲線上の加法演算あるいは減法演算が必要であ
る。ただし楕円曲線上の楕円曲線上の加法演算と減法演
算は同等の時間で処理できることから、減法演算の場合
でも加法演算と区別せずに計算回数を数える。よって合
計7回の楕円曲線上の加法演算が必要である。From K i [j] (i = 1,2,3,4 j = 1,2) to C
[s] 1 (s = 1,2,3,4,5,6,7) requires one addition operation or subtraction operation on the elliptic curve to create each. However, since the addition operation and the subtraction operation on the elliptic curve can be processed in the same time, the number of calculations is counted without being distinguished from the addition operation even in the subtraction operation. Therefore, a total of 7 addition operations on the elliptic curve are required.
【0132】したがってC[1]1,C[2]1,… ,C[t]1を
作成するのに必要な楕円曲線上の加法演算は (n−1)+t/7*{((1/4)*n−1)*8+7} となる。Therefore, the addition operation on the elliptic curve required to create C [1] 1 , C [2] 1 , ..., C [t] 1 is (n−1) + t / 7 * {((1 / 4) * n-1) * 8 + 7}.
【0133】楕円曲線上での場合では、n = 96 と
してよいので、計算量はIn the case of an elliptic curve, n = 96, so the calculation amount is
【0134】[0134]
【数33】 [Expression 33]
【0135】となる。(従来例)の中で計算量が最小な
のは、(従来例4)の4個の乱数を一括に処理する方法
で、その計算量はC[1]1,C[2]1,… ,C[t]1を作成す
る場合で、(数24)より H4(t) = (103/4)t+95 であった。It becomes: Among the (conventional example), the method with the smallest calculation amount is the method of collectively processing the four random numbers of (conventional example 4), and the calculation amount is C [1] 1 , C [2] 1 , ..., C When [t] 1 was prepared, H 4 (t) = (103/4) t + 95 was obtained from (Equation 24).
【0136】 103/4 = 25 3/4 < 191/7 = 27 2/7 であるから、本発明の計算量のほうが僅かに多くなるこ
とがわかる。Since 103/4 = 25 3/4 <191/7 = 27 2/7, it can be seen that the calculation amount of the present invention is slightly larger.
【0137】しかし前述のようにKi [j](i=1,2,3,4
j=1,2)を計算するときに(従来例4)の4個の乱数を
一括に処理する方法で行なえば、計算量は次のようにな
る。However, as described above, K i [j] (i = 1,2,3,4
When j = 1, 2) is calculated by the method of collectively processing the four random numbers (conventional example 4), the calculation amount is as follows.
【0138】K1 [1],K2 [1],K3 [1],K4 [1]を一括で
処理する場合、 #Γ(T)[4] = (1/32)*n T ∈ P(Z(4))− φ と考えられるので、各U(T)[4] (T ∈ P(Z(4))
− φ)を計算するのに、それぞれ(1/32)*n−1回の楕
円曲線上の加法演算が必要である。When collectively processing K 1 [1] , K 2 [1] , K 3 [1] , and K 4 [1] , # Γ (T) [4] = (1/32) * n T ∈ P (Z (4)) − φ, so each U (T) [4] (T ∈ P (Z (4))
Each of (1/32) * n-1 times of addition operation on the elliptic curve is required to calculate −φ).
【0139】またU(T)[4] (T ∈ P(Z(4))−
φ)からK1 [1],K2 [1],K3 [1],K4 [1]を作成するの
に各7回の楕円曲線上の加法演算が必要である。U (T) [4] (T ∈ P (Z (4))-
φ), K 1 [1] , K 2 [1] , K 3 [1] , and K 4 [1] require 7 times of addition operations on the elliptic curve.
【0140】#(P(Z(4))− φ) = 15である
から、K1 [1],K2 [1],K3 [1],K4 [1]を一括で処理し
て計算する場合必要な楕円曲線上の加法演算は ((1/32)*n−1)*15+7*4 = (15/32)*n+1
3 となる。Since # (P (Z (4)) − φ) = 15, K 1 [1] , K 2 [1] , K 3 [1] , and K 4 [1] are collectively processed. When calculating, the necessary addition operation on the elliptic curve is ((1/32) * n-1) * 15 + 7 * 4 = (15/32) * n + 1
3
【0141】同様にK1 [2],K2 [2],K3 [2],K4 [2]を
計算するのに(15/32)*n+13回の楕円曲線上の加法演
算が必要であるから、Ki [j] = ki [j]*Gを計算する
のに合計で、(15/16)*n+26回の楕円曲線上の加法演
算が必要である。Similarly, in order to calculate K 1 [2] , K 2 [2] , K 3 [2] , and K 4 [2] , (15/32) * n + 13 addition operations on the elliptic curve are required. Therefore, a total of (15/16) * n + 26 addition operations on the elliptic curve are required to calculate K i [j] = k i [j] * G.
【0142】したがってC[1]1,C[2]1,… ,C[7]1を
作成するのに必要な楕円曲線上の加法演算は ((15/16)*n+26)+7 = (15/16)*n+33 となる。Therefore, the addition operation on the elliptic curve required to create C [1] 1 , C [2] 1 , ..., C [7] 1 is ((15/16) * n + 26) + 7 = (15 / 16) * n + 33.
【0143】よってC[1]1,C[2]1,… ,C[t]1を作成
するのに必要な楕円曲線上の加法演算は (n−1)+t/7*((15/16)*n+33) となる。Therefore, the addition operation on the elliptic curve required to create C [1] 1 , C [2] 1 , ..., C [t] 1 is (n−1) + t / 7 * ((15 / 16) * n + 33).
【0144】楕円曲線上での場合は、n = 96 とし
てよいので、計算量はIn the case of an elliptic curve, n = 96, so the calculation amount is
【0145】[0145]
【数34】 [Equation 34]
【0146】となる。 123/7 = 17 4/7 < 103/4 = 25 3/4 であるから計算量はt = 28とした場合で、従来例の
最小計算法である4個の乱数を一括に処理する方法が、
816回の楕円曲線上の加法演算が必要なのに対し、本
発明と4個の乱数を一括に処理する方法を組み合わせた
方法は587回の楕円曲線上の加法演算しか必要としな
く、約71.9%にまで計算量を作減できる。[0146] Since 123/7 = 17 4/7 <103/4 = 25 3/4, the calculation amount is t = 28, and the method of collectively processing the four random numbers, which is the minimum calculation method of the conventional example, is ,
Whereas 816 times of addition operations on the elliptic curve are required, the method of combining the present invention and the method of collectively processing four random numbers requires only 587 times of addition operations on the elliptic curve, which is about 71.9%. You can reduce the calculation amount up to.
【0147】また上記の説明では従来例4との組合せに
よる計算量について述べたが、従来例3と組み合わせて
も同様の効果が得られる。Further, in the above description, the calculation amount by the combination with the conventional example 4 is described, but the same effect can be obtained by combining with the conventional example 3.
【0148】なお、この第一の実施例では4個の乱数を
2個ずつに排他的に分割して7個のエルガマル暗号の第
一の暗号文ならびに第二の暗号文の一部を作成したが、
この実施例を一般化できる。一般にL個の乱数kl(l=
1,2, … ,L)をそれぞれm(kl)個ずつに分割して、M個
以下のをエルガマル暗号の第一の暗号文ならびに第二の
暗号文の一部を作成しても同様な効果が得られる。ただ
しMは次の(数34)で与えられる。In the first embodiment, four random numbers are exclusively divided into two to create seven first and second ciphertexts of the Elgamal cipher. But,
This embodiment can be generalized. Generally, L random numbers k l (l =
1,2, ..., L) are each divided into m ( kl ) pieces, and if M or less pieces of the first ciphertext and a part of the second ciphertext of the Elgamal cipher are created, the same is true. Can be obtained. However, M is given by the following (Equation 34).
【0149】[0149]
【数35】 [Equation 35]
【0150】またこの第一の実施例では、乱数を排他的
に分割したが、その乱数よりも小さい正の整数の和に分
割してもまた負の整数が入る分割方法でも同様な効果が
得られる。Further, in the first embodiment, the random number is exclusively divided, but the same effect can be obtained by dividing the random number into a sum of positive integers smaller than the random number or a division method in which a negative integer is entered. To be
【0151】(第二の実施例) ・有限体上のエルガマル暗号における演算器 また図2は本発明の第二の実施例における有限体上のエ
ルガマル暗号における演算器の構成を示すものである。
同図において11は乱数生成部、12は前記11の乱数
生成部から供給される2個以上の乱数の少なくとも1個
以上の乱数を2個以上の部分乱数に分割する乱数分割
部、13はビット指定部、14は前記12の乱数分割部
から出力される前記部分乱数を有限体上の特定元に作用
させた構成元を作成する第一の有限体上のべき乗計算
部、15は前記14の第一の有限体上のべき乗計算部か
ら出力される2個以上の前記構成元に対して前記有限体
上の乗法演算を組み合わせて有限体上の元を作成する第
一の暗号文生成部、16は組合せ指定部、17は保管
部、18は前記12の乱数分割部から出力される前記部
分乱数を有限体上の特定元に作用させた構成元を作成す
る第二の有限体上のべき乗計算部、19は前記18の第
二の有限体上のべき乗計算部から出力される2個以上の
前記構成元に対して前記有限体上の乗法演算を組み合わ
せて有限体上の元を作成する第二の暗号文生成部、20
は有限体上の乗法計算部である。(Second Embodiment) Arithmetic Unit in Ergamal Cryptography on Finite Field Further, FIG. 2 shows a configuration of an arithmetic unit in Ergamal cipher on a finite field in the second embodiment of the present invention.
In the figure, 11 is a random number generation unit, 12 is a random number division unit that divides at least one random number of the two or more random numbers supplied from the 11 random number generation unit into two or more partial random numbers, and 13 is a bit. A designation unit, 14 is a power calculation unit on a first finite field that creates a constituent element in which the partial random number output from the 12 random number division unit is applied to a specific element on a finite field, and 15 is A first ciphertext generation unit that creates an element on a finite field by combining a multiplication operation on the finite field with two or more constituent elements output from a power calculation unit on a first finite field; Reference numeral 16 is a combination designation unit, 17 is a storage unit, and 18 is a power on a second finite field that creates a constituent element in which the partial random number output from the random number division unit 12 is applied to a specific element on the finite field. Calculation unit, 19 is a power exponentiation on the second finite field of 18 The second ciphertext generating unit for generating the original on the finite field in combination multiplication operations on the finite field with respect to two or more of said configuration source output from the section 20
Is a multiplicative calculation part over a finite field.
【0152】以下同図を参照しながら実施例の手順を説
明する。この例は初めに6個の乱数が入力された後、1
1個の乱数をシステムの公開鍵あるいは受信者の公開鍵
に作用させた値を出力するという例である。 (8)乱数分割 乱数生成部11から乱数k1,k2,k3,k4,k5,k6 が6
個供給されて、乱数分割部12に入力される。もう一
方、ビット指定部13からビット分割情報T1,T 2,T3,
T4,T5,T6 が乱数分割部12に入力される。ここでZ
0(n-1) = { 0,1,… ,n-1 }とすると、ビット分割情
報T1,T2,T3,T4はZ0(n-1)の部分集合である。乱数
分割部12は乱数ki(i=1,2,3,4,5,6)をビット分割情
報Ti(i=1,2,3,4,5,6)により次のように部分乱数ki
[1],ki [2](i=1,2,3,4,5,6)に分割する。すなわち乱
数ki(i=1,2,3,4,5,6)の2進数展開を(a[i]n-1,…
,a[i]0)(i=1,2,3,4,5,6)とし、部分乱数ki [1],k
i [2](i=1,2,3,4,5,6)の2進数展開をそれぞれ(b[i]
n-1,… ,b[i]0),(c[i]n-1,… ,c[i]0)とする
とき、b[i]j,c[i]j (i=1,2,3,4,5,6 j=0,1, …
,n-1)は次の(数36)(数37)で定める。Hereinafter, the procedure of the embodiment will be described with reference to FIG.
Reveal In this example, 6 random numbers are input first, then 1
One random number is the system public key or the recipient's public key
This is an example of outputting the value that is applied to. (8) Random number division Random number generation unit 11 generates a random number k1, k2, k3, kFour, kFive, k6 Is 6
Individually supplied and input to the random number division unit 12. One more
On the other hand, from the bit designation unit 13 to the bit division information T1, T 2, T3,
TFour, TFive, T6 Is input to the random number division unit 12. Where Z
0If (n-1) = {0,1, ..., n-1}, the bit division information is
News T1, T2, T3, TFourIs Z0It is a subset of (n-1). random number
The division unit 12 uses the random number ki(i = 1,2,3,4,5,6) is the bit division information
News TiBy (i = 1,2,3,4,5,6), the partial random number k is as follows.i
[1], ki [2]Divide into (i = 1,2,3,4,5,6). I.e. disorder
A few kiThe binary expansion of (i = 1,2,3,4,5,6) is (a [i]n-1、…
, a [i]0) (I = 1,2,3,4,5,6), and the partial random number ki [1], k
i [2]The binary expansion of (i = 1,2,3,4,5,6) is (b [i]
n-1,…, B [i]0), (C [i]n-1,…, C [i]0) And
When b [i]j, C [i]j (i = 1,2,3,4,5,6 j = 0,1, ...
, n-1) is defined by the following (Equation 36) and (Equation 37).
【0153】[0153]
【数36】 [Equation 36]
【0154】[0154]
【数37】 [Equation 37]
【0155】このとき ki = ki [1]+ki [2] (i=1,2,3,4,5,6) が成り立つ。 (9)エルガマル暗号の第一の暗号文の構成元の作成 乱数分割部12から出力される部分乱数ki [1],k
i [2](i=1,2,3,4,5,6)は、第一の有限体上のべき乗計
算部14に供給される。第一の有限体上のべき乗計算部
14は次の(数38)のような操作で有限体の値
Ki [1],Ki [2](i=1,2,3,4,5,6)を求める。At this time, k i = k i [1] + k i [2] (i = 1,2,3,4,5,6) holds. (9) Creation of constituent element of first ciphertext of Ergamal cipher Partial random number k i [1] , k output from the random number division unit 12
i [2] (i = 1,2,3,4,5,6) is supplied to the power calculation unit 14 on the first finite field. The first power calculation unit 14 on the finite field is operated by the following operation (Equation 38) and the values K i [1] , K i [2] (i = 1,2,3,4,5) of the finite field are calculated. , 6).
【0156】gをシステムの公開鍵である有限体の値と
すると、Let g be the value of the finite field that is the public key of the system,
【0157】[0157]
【数38】 [Equation 38]
【0158】ここでg^ki [j]は(従来例4)に述べた
方法で6個のg^ki [j]を一括に処理して計算すること
もできる。Here, g ^ k i [j] can be calculated by collectively processing six g ^ k i [j] by the method described in (Conventional example 4).
【0159】このようにして12個の有限体の値である
第一の暗号文の構成元が作成される。In this way, the constituent elements of the first ciphertext, which are the values of 12 finite fields, are created.
【0160】(10)エルガマル暗号の第一の暗号文の作成 第一の有限体上のべき乗計算部14から出力された有限
体の値Ki [1],Ki [2](i=1,2,3,4,5,6)は、第一の暗
号文生成部15に入力される。また組合せ指定部16か
ら組み合わせ指定情報Qj(j=1,2, … ,11)が暗号文生
成部15に入力される。(10) Creation of the first ciphertext of the Ergamal cipher The values K i [1] , K i [2] (i = 1 ) of the finite field output from the power calculation unit 14 on the first finite field , 2, 3, 4, 5, 6) is input to the first ciphertext generating unit 15. Further, the combination designation information Q j (j = 1, 2, ..., 11) is input from the combination designation unit 16 to the ciphertext generation unit 15.
【0161】組み合わせ指定情報Qj(j=1,2, … ,11)
は有限体の値Ki [1],Ki [2](i=1,2,3,4,5,6) の中か
らどの2個の値を選びかということを定める情報であ
る。第一の暗号文生成部15はQj(j=1,2, … ,11)に
基づき、エルガマル暗号の第一の暗号文C[j]1(j=1,
2, … ,11)を作成する。その作成方法は例えばQ1が、
K 2 [1]とK4 [2]の2個を選ぶという情報であったなら
ば、C[1]1は次の(数39)で定まるというものであ
る。Combination designation information Qj(j = 1,2, ..., 11)
Is the value K of a finite fieldi [1], Ki [2](i = 1,2,3,4,5,6)
It is information that determines which two values to choose from
It The first ciphertext generation unit 15 uses Qj(j = 1,2, ..., 11)
Based on the first ciphertext C [j] of the Ergamal cipher1(j = 1,
Create 2, ..., 11). How to create it, for example, Q1But,
K 2 [1]And KFour [2]If it was the information to choose two of
For example, C [1]1Is determined by the following (Equation 39)
It
【0162】[0162]
【数39】 [Formula 39]
【0163】このようにして、第一の暗号文生成部15
は組み合わせ指定情報Qj(j=1,2,… ,11)からエルガ
マル暗号の第一の暗号文C[j]1(j=1,2, … ,11)を作
成し、保管部17に保管する。 (11)エルガマル暗号の第二の暗号文の構成元の作成 乱数分割部12から出力される部分乱数前記(9)と同じ
ki [1],ki [2](i=1,2,3,4,5,6)は、第二の有限体上の
べき乗計算部18に供給される。ここでは次の(数4
0)のような操作で有限体の値Xi [1],Xi [2](i=1,
2,3,4,5,6)を求められる。In this way, the first ciphertext generation unit 15
Creates the first ciphertext C [j] 1 (j = 1,2, ..., 11) of the Elgamal cipher from the combination designation information Q j (j = 1,2, ..., 11), and stores it in the storage unit 17. store. (11) Creation of constituent element of second ciphertext of Ergamal cipher Partial random number output from random number division unit 12 k i [1] , k i [2] (i = 1, 2, 3,4,5,6) is supplied to the power calculation unit 18 on the second finite field. Here, the following (Equation 4)
0) such as X i [1] , X i [2] (i = 1,
2,3,4,5,6) is required.
【0164】yBをある特定の受信者Bの公開鍵である
楕円曲線上の点とすると、Let y B be a point on the elliptic curve that is the public key of a particular recipient B, then
【0165】[0165]
【数40】 [Formula 40]
【0166】ここでyB^ki [j]の計算は(従来例4)
に述べた方法で6個のyB^ki [j]を一括に処理して計
算することもできる。Here, the calculation of y B ^ k i [j] is (conventional example 4).
It is also possible to collectively process and calculate the six y B ^ k i [j] by the method described in (1) .
【0167】このようにして12個の有限体上の値であ
る第二の暗号文の構成元が作成される。 (12)エルガマル暗号の第二の暗号文の一部の作成 第二の有限体上のべき乗計算部18から出力された有限
体の値Xi [1],Xi [2](i=1,2,3,4,5,6)は、第二の暗
号文生成部19に入力される。また組合せ指定部16か
ら前記(10)と同じ組み合わせ指定情報Qj(j=1,2, …
,11)が第二の暗号文生成部19に入力される。 組み合
わせ指定情報Qj(j=1,2, … ,11)は有限体の値
Ki [1],Ki [2](i=1,2,3,4,5,6) の中からどの2個の
値を選びかという情報である。第二の暗号文生成部19
はQj(j=1,2, … ,11)に基づき、エルガマル暗号の第
二の暗号文の平文M以外の部分V[j](j=1,2, … ,11)
を作成する。その作成方法は例えばQ3が、X3 [2]とX4
[1]を選ぶという情報であったならば、V[3]は次の(数
41)で定まるというものである。In this way, the constituent elements of the second ciphertext, which are the values on the 12 finite fields, are created. (12) Creation of a part of the second ciphertext of the Ergamal cipher The values of the finite field X i [1] , X i [2] (i = 1 ) output from the power calculation unit 18 on the second finite field , 2, 3, 4, 5, 6) is input to the second ciphertext generating unit 19. Further, the same combination designation information Q j (j = 1, 2, ...
, 11) is input to the second ciphertext generation unit 19. The combination designation information Q j (j = 1,2, ..., 11) is selected from the values K i [1] and K i [2] (i = 1,2,3,4,5,6) of the finite field. This is information about which two values to select. Second ciphertext generator 19
Is based on Q j (j = 1,2, ..., 11), and is a portion V [j] (j = 1,2, ..., 11) of the second ciphertext of the Elgamal ciphertext other than the plaintext M.
To create. The creation method is, for example, Q 3 is X 3 [2] and X 4
If the information was to select [1] , then V [3] would be determined by the following (Equation 41).
【0168】[0168]
【数41】 [Formula 41]
【0169】このようにして、第二の暗号文生成部19
は組み合わせ指定情報Qj(j=1,2,… ,11)からエルガ
マル暗号の第二の暗号文の平文M以外の部分V[j](j=
1,2,… ,11)を作成し、保管部17に保管される。ただ
し保管部17ではC[j]1とV[j](j=1,2, … ,11)を組
にして保管しておく。 (13)エルガマル暗号の第二の暗号文の作成 特定の受信者Bに秘密通信する平文M[j]が有限体上の
乗法計算部20に入力されると保管部17から保管され
ているV[j]が入力され、有限体上の乗法計算部20は
第二の暗号文C[j]2を次の(数42)のように作成す
る。In this way, the second ciphertext generation unit 19
Combination specifying information Q j (j = 1,2, ... , 11) portions other than the plaintext M from the ElGamal second ciphertext of the encryption V [j] (j =
1, 2, ..., 11) are created and stored in the storage unit 17. However, in the storage unit 17, C [j] 1 and V [j] (j = 1, 2, ..., 11) are stored as a set. (13) Creation of second ciphertext of Ergamal cipher When plaintext M [j] secretly communicated to a specific recipient B is input to the multiplication calculation unit 20 on a finite field, V stored in the storage unit 17 is stored. [j] is input, and the multiplicative calculation unit 20 on the finite field creates the second ciphertext C [j] 2 as in the following (Equation 42).
【0170】[0170]
【数42】 [Equation 42]
【0171】そしてV[j]と組として保管部17に保管
されているC[j]1とこのC[j]2を暗号文としてBに送信
する。Then, C [j] 1 and this C [j] 2 stored in the storage unit 17 as a set with V [j] and this C [j] 2 are transmitted to B as a ciphertext.
【0172】そして一度使われたC[j]1,V[j]は保管
部17に保管しておく必要はない。 (14)計算量について 従来例との比較から、前記(9)(10)でエルガマル暗号の
第一の暗号文C[j]1(j=1,2, … ,11)を作成するのに
必要な計算量について述べる。第二の暗号文の一部を作
成する計算量についても同様な効果が得られる。The C [j] 1 and V [j] used once need not be stored in the storage unit 17. (14) Computational complexity From the comparison with the conventional example, in (9) and (10), the first ciphertext C [j] 1 (j = 1, 2, ... The amount of calculation required is described. A similar effect can be obtained with respect to the amount of calculation for creating a part of the second ciphertext.
【0173】(従来例2)と同様にまず初めに、g^2
i(i=0,1,…,n-1)を計算しておきそのあとで、Ki [j]
= g^ki [j](i=1,2, … ,11 j=1,2)を計算す
る。Similarly to (Conventional example 2), first, g ^ 2
i (i = 0,1, ..., n-1) is calculated and then K i [j]
= G ^ k i [j] (i = 1,2, ..., 11 j = 1,2) is calculated.
【0174】g^2i(i=0,1,… ,n-1)をすべて計算
するのに(n−1)回の有限体上の乗法演算を行なう必要
がある。To calculate g ^ 2 i (i = 0,1, ..., N-1), it is necessary to perform (n-1) times of multiplication operation on the finite field.
【0175】つぎに、&ki [j] = 平均(1/4)*nと考え
られるので、ただし、&r = rを2進数展開したとき
に1の立っているビット数。Ki [j] = g^ki [j]を計
算するのにそれぞれ(1/4)*n−1回の有限体上の乗法演
算が必要である。Next, & k i [j] = average (1/4) * n, where & r = the number of bits in which 1 is set when r is expanded into a binary number. Each calculation of K i [j] = g ^ k i [j] requires (1/4) * n−1 multiplication operations on the finite field.
【0176】またKi [j](i=1,2,3,4,5,6 j=1,2)か
らC[s]1(s=1,2, … ,11)を作成するのにそれぞれ1
回の有限体上の乗法演算が必要である。よって合計7回
の有限体上の乗法演算が必要である。Further, C [s] 1 (s = 1,2, ..., 11) is created from K i [j] (i = 1,2,3,4,5,6 j = 1,2). 1 for each
It requires multiplication operations over a finite field. Therefore, a total of 7 multiplication operations on the finite field are required.
【0177】したがってC[1]1,C[2]1,… ,C[t]1を
作成するのに必要な有限体上の乗法演算は (n−1)+t/7*{((1/4)*n−1)*8+7} となる。Therefore, the multiplication operation on the finite field required to create C [1] 1 , C [2] 1 , ..., C [t] 1 is (n−1) + t / 7 * {((1 / 4) * n-1) * 8 + 7}.
【0178】有限体上での話では、n = 512 とし
てよいので、計算量はIn the case of a finite field, n = 512, so the calculation amount is
【0179】[0179]
【数43】 [Equation 43]
【0180】となる。(従来例)の中で計算量が最小な
のは、(従来例4)の6個の乱数を一括に処理する方法
で、その計算量はC[1]1,C[2]1,… ,C[t]1を作成す
る場合で、(数25)より h6(t) = (209/2)t+511 であった。It becomes: Among the (conventional example), the method with the smallest calculation amount is the method of collectively processing the six random numbers of (conventional example 4), and the calculation amount is C [1] 1 , C [2] 1 , ..., C When [t] 1 was created, h 6 (t) = (209/2) t + 511 was obtained from (Equation 25).
【0181】 209/2 = 104 1/2 < 139 6/11 = 1535/11 であるから、本発明の計算量のほうが僅かに多くなるこ
とがわかる。Since 209/2 = 104 1/2 <139 6/11 = 1535/11, it can be seen that the calculation amount of the present invention is slightly larger.
【0182】しかし前述のようにKi [j](i=1,2,3,4,
5,6 j=1,2)を計算するときに(従来例4)の6個の
乱数を一括に処理する方法で行なえば、計算量は次のよ
うになる。However, as described above, K i [j] (i = 1,2,3,4,
When 5,6 j = 1,2) is calculated by the method of collectively processing the six random numbers (conventional example 4), the calculation amount is as follows.
【0183】K1 [1],K2 [1],K3 [1],K4 [1],
K5 [1],K6 [1]を一括で処理する場合、 #Γ(T)[6] = (1/128)*n T ∈ P(Z(6))− φ と考えられるので、各U(T)[6] (T ∈ P(Z(6))
− φ)を計算するのに、それぞれ(1/128)*n−1回の
有限体上の乗法演算が必要である。K 1 [1] , K 2 [1] , K 3 [1] , K 4 [1] ,
When processing K 5 [1] and K 6 [1] together, it is considered that # Γ (T) [6] = (1/128) * n T ∈ P (Z (6)) − φ Each U (T) [6] (T ∈ P (Z (6))
To calculate −φ), (1/128) * n−1 multiplication operations on the finite field are required.
【0184】またU(T)[6] (T ∈ P(Z(4))−
φ)からK1 [1],K2 [1],K3 [1],K4 [1],K5 [1],K
6 [1]を作成するのに各31回の有限体上の乗法演算が必
要である。U (T) [6] (T ∈ P (Z (4))-
φ) to K 1 [1] , K 2 [1] , K 3 [1] , K 4 [1] , K 5 [1] , K
6 Each [31 ] requires 31 multiplication operations on a finite field.
【0185】#(P(Z(6))− φ) = 63である
から、K1 [1],K2 [1],K3 [1],K4 [1],K5 [1],K6
[1]を一括で処理して計算する場合必要な有限体上の乗
法演算は ((1/128)*n−1)*63+31*6 = (63/128)*n+123 となる。Since # (P (Z (6)) − φ) = 63, K 1 [1] , K 2 [1] , K 3 [1] , K 4 [1] , K 5 [1] , K 6
When processing [1] in a batch, the multiplication operation on the finite field required is ((1/128) * n-1) * 63 + 31 * 6 = (63/128) * n + 123.
【0186】同様にK1 [2],K2 [2],K3 [2],K4 [2],
K5 [2],K6 [2]を計算するのに(63/128)*n+123回
の有限体上の乗法演算が必要であるから、Ki [j] = g
^ki [j]を計算するのに合計で、(63/64)*n+246回
の有限体上の乗法演算が必要である。Similarly, K 1 [2] , K 2 [2] , K 3 [2] , K 4 [2] ,
To calculate K 5 [2] and K 6 [2] , (63/128) * n + 123 multiplication operations on a finite field are necessary, so K i [j] = g
In total, (63/64) * n + 246 multiplication operations on the finite field are required to calculate ^ k i [j] .
【0187】したがってC[1]1,C[2]1,… ,C[11]1
を作成するのに必要な有限体上の乗法演算は ((63/64)*n+246)+11 = (63/64)*n+257 となる。Therefore, C [1] 1 , C [2] 1 , ..., C [11] 1
The multiplication operation on the finite field required to create is ((63/64) * n + 246) +11 = (63/64) * n + 257.
【0188】よってC[1]1,C[2]1,… ,C[t]1を作成
するのに必要な有限体上の乗法演算は (n−1)+t/11*((63/64)*n+257) となる。Therefore, the multiplication operation on the finite field required to create C [1] 1 , C [2] 1 , ..., C [t] 1 is (n−1) + t / 11 * ((63 / 64) * n + 257).
【0189】有限体上での話では、n = 512 とし
てよいので、計算量はIn the case of a finite field, n = 512, so the calculation amount is
【0190】[0190]
【数44】 [Equation 44]
【0191】となる。 761/11 = 69 2/11 < 209/2 = 104 1/2 であるから計算量はt = 22とした場合で、従来例の
最小計算法である6個の乱数を一括に処理する方法が、
2810回の有限体上の乗法演算が必要なのに対し、本
発明と6個の乱数を一括に処理する方法を組み合わせた
方法は2033回の有限体上の乗法演算しか必要としな
く、約72.3%にまで計算量を作減できる。It becomes Since 761/11 = 69 2/11 <209/2 = 104 1/2, the calculation amount is t = 22, and the method of collectively processing 6 random numbers, which is the minimum calculation method of the conventional example, is ,
Whereas 2810 multiplication operations on a finite field are required, the method of combining the present invention and the method of collectively processing 6 random numbers requires only 2033 multiplication operations on a finite field, which is about 72.3%. You can reduce the calculation amount up to.
【0192】また上記の説明では従来例4との組合せに
よる計算量について述べたが、従来例3と組み合わせて
も同様の効果が得られる。In the above description, the calculation amount in combination with the conventional example 4 has been described, but the same effect can be obtained by combining with the conventional example 3.
【0193】なお、この第二の実施例では6個の乱数を
2個ずつに排他的に分割して11個のエルガマル暗号の
第一の暗号文ならびに第二の暗号文の一部を作成した
が、一般化できる。一般にL個の乱数kl(l=1,2, …
,L)をそれぞれm(kl)個ずつに分割して、M個以下の
をエルガマル暗号の第一の暗号文ならびに第二の暗号文
の一部を作成しても同様な効果が得られる。ただしMは
(数45)で与えられる。In the second embodiment, six random numbers are exclusively divided into two to create eleven Elgamal cipher first ciphertexts and a part of the second ciphertexts. However, it can be generalized. Generally, L random numbers k l (l = 1,2, ...
, L) are each divided into m ( kl ) pieces, and the same effect can be obtained by creating M or less pieces of the first ciphertext and the second ciphertext of the Ergamal cipher. . However, M is given by (Equation 45).
【0194】[0194]
【数45】 [Equation 45]
【0195】またこの第二の実施例では、乱数を排他的
に分割したが、その乱数よりも小さい正の整数の和に分
割しても同様な効果が得られる。Further, in the second embodiment, the random number is exclusively divided, but the same effect can be obtained by dividing the random number into the sum of positive integers smaller than the random number.
【0196】(第三の実施例) ・有限体上のエルガマル署名における演算器 図3は本発明の第三の実施例における有限体上のエルガ
マル署名における演算器の構成を示すものである。同図
において21は乱数生成部、22は前記21の乱数生成
部から供給される2個以上の乱数の少なくとも1個以上
の乱数を2個以上の部分乱数に分割する乱数分割部、2
3はビット指定部、24は前記22の乱数分割部から出
力される前記部分乱数を有限体上の特定元に作用させた
構成元を作成する有限体上のべき乗計算部、25は前記
24の有限体上のべき乗計算部から出力される2個以上
の前記構成元に対して前記有限体上の乗法演算を組み合
わせて有限体上の元を作成する第一の署名文生成部、2
6は組合せ指定部、27は保管部、28は有限体上の乗
法計算部、29は第二の署名文生成部である。(Third Embodiment) -Operator in Ergamal Signature on Finite Field FIG. 3 shows the configuration of the operator in Ergamal signature on finite field in the third embodiment of the present invention. In the figure, reference numeral 21 denotes a random number generation unit, 22 denotes a random number division unit for dividing at least one random number of two or more random numbers supplied from the random number generation unit of 21 into two or more partial random numbers, 2
3 is a bit designating unit, 24 is a power calculation unit on a finite field that creates a constituent element in which the partial random number output from the random number dividing unit of 22 is applied to a specific element on the finite field, and 25 is a unit of the 24 A first signature statement generation unit that creates an element on a finite field by combining multiplication operations on the finite field with two or more constituent elements output from a power calculation unit on a finite field, 2
6 is a combination designation unit, 27 is a storage unit, 28 is a multiplication calculation unit on a finite field, and 29 is a second signature text generation unit.
【0197】以下同図を参照しながら実施例の手順を説
明する。この例は初めに6個の乱数が入力された後、1
1個の乱数をシステムの公開鍵に作用させた値を出力す
るという例である。 (15)乱数分割 乱数生成部21から乱数k1,k2,k3,k4,k5,k6 が6
個供給されて、乱数分割部22に入力される。もう一
方、ビット指定部23からビット分割情報T1,T 2,T3,
T4,T5,T6 が乱数分割部22に入力される。ここでZ
0(n-1) = { 0,1,… ,n-1 }とすると、ビット分割情
報T1,T2,T3,T4はZ0(n-1)の部分集合である。乱数
分割部22は、乱数ki(i=1,2,3,4,5,6)をビット分割
情報Ti(i=1,2,3,4,5,6)により次のように部分乱数k
i [1],ki [2](i=1,2,3,4,5,6)に分割する。すなわち、
乱数ki(i=1,2,3,4,5,6)の2進数展開を(a[i]n-1,
… ,a[i]0)(i=1,2,3,4,5,6)とし、部分乱数ki [1],
ki [2](i=1,2,3,4,5,6)の2進数展開をそれぞれ(b
[i]n-1,… ,b[i]0),(c[i]n-1,… ,c[i]0)とす
るとき、b[i]j,c[i]j (i=1,2,3,4,5,6 j=0,1,
… ,n-1)を次の(数46)(数47)の規則によって定
める。The procedure of the embodiment will be described below with reference to FIG.
Reveal In this example, 6 random numbers are input first, then 1
Outputs the value obtained by applying one random number to the system public key.
Is an example. (15) Random number division From the random number generation unit 21, the random number k1, k2, k3, kFour, kFive, k6 Is 6
Individually supplied and input to the random number division unit 22. One more
From the bit designation section 23, the bit division information T1, T 2, T3,
TFour, TFive, T6 Is input to the random number division unit 22. Where Z
0If (n-1) = {0,1, ..., n-1}, the bit division information is
News T1, T2, T3, TFourIs Z0It is a subset of (n-1). random number
The division unit 22 uses the random number kiBit division of (i = 1,2,3,4,5,6)
Information TiBy (i = 1,2,3,4,5,6), the partial random number k is as follows.
i [1], ki [2]Divide into (i = 1,2,3,4,5,6). That is,
Random number kiThe binary expansion of (i = 1,2,3,4,5,6) is (a [i]n-1,
…, A [i]0) (I = 1,2,3,4,5,6), and the partial random number ki [1],
ki [2]The binary expansion of (i = 1,2,3,4,5,6) is (b
[i]n-1,…, B [i]0), (C [i]n-1,…, C [i]0)
B [i]j, C [i]j (i = 1,2,3,4,5,6 j = 0,1,
..., n-1) is determined by the following rules of (Equation 46) (Equation 47).
Meru.
【0198】[0198]
【数46】 [Equation 46]
【0199】[0199]
【数47】 [Equation 47]
【0200】このとき ki = ki [1]+ki [2] (i=1,2,3,4,5,6) が成り立つ。 (16)エルガマル署名の第一の署名文の構成元の作成 乱数分割部22から出力される部分乱数ki [1],k
i [2](i=1,2,3,4,5,6)は、有限体上のべき乗計算部2
4に供給される。有限体上のべき乗計算部24は次の
(数48)のような操作で有限体の値Ki [1],Ki [2](i
=1,2,3,4,5,6)を求める。At this time, k i = k i [1] + k i [2] (i = 1,2,3,4,5,6) holds. (16) Creation of constituent element of first signature sentence of El Gamal signature Partial random number k i [1] , k output from random number division unit 22
i [2] (i = 1,2,3,4,5,6) is a power calculation unit 2 on a finite field.
4 is supplied. The exponentiation calculation unit 24 on the finite field calculates the values K i [1] and K i [2] (i
= 1,2,3,4,5,6).
【0201】gをシステムの公開鍵である有限体の値と
すると、Let g be the value of the finite field that is the public key of the system,
【0202】[0202]
【数48】 [Equation 48]
【0203】ここでg^ki [j]は(従来例4)に述べた
方法で6個のg^ki [j]を一括に処理して計算すること
もできる。Here, g ^ k i [j] can be calculated by collectively processing six g ^ k i [j] by the method described in (Conventional example 4).
【0204】このようにして12個の有限体の値である
第一の署名文の構成元が作成される。 (17)エルガマル署名の第一の署名文の作成 有限体上のべき乗計算部24から出力された有限体の値
Ki [1],Ki [2](i=1,2,3,4,5,6)は、乱数分割部22
から出力された部分乱数ki [1],ki [2](i=1,2,3,4,5,
6)とともに第一の署名文生成部25に入力される。また
組合せ指定部26から組み合わせ指定情報Qj(j=1,2,
… ,11)が第一の署名文生成部25に入力される。In this way, the constituent elements of the first signature sentence, which are the values of 12 finite fields, are created. (17) Creation of first signature sentence of Ergamal signature The values K i [1] and K i [2] (i = 1,2,3,4 ) of the finite field output from the power calculation unit 24 on the finite field , 5, 6) is a random number division unit 22
Partial random numbers k i [1] , k i [2] (i = 1,2,3,4,5,
It is input to the first signature text generation unit 25 together with 6). The specified combination from the combination specifying unit 26 information Q j (j = 1,2,
, 11) is input to the first signature text generation unit 25.
【0205】組み合わせ指定情報Qj(j=1,2, … ,11)
は有限体の値Ki [1],Ki [2](i=1,2,3,4,5,6) の中か
らどの2個の値を選びかということを定める情報であ
る。第一の署名文生成部25はQj(j=1,2, … ,11)に
基づき、部分乱数を組み合わせた疑似乱数r[j](j=1,
2, … ,11),エルガマル署名の第一の署名文R[j](j=
1,2, … ,11)を作成する。その作成方法は例えばQ
1が、K2 [1]とK4 [2]の2個を選ぶという情報であった
ならば、r[1],R[1]は次の(数49)ならびに(数5
0)で定まるというものである。Combination designation information Q j (j = 1, 2, ..., 11)
Is information that determines which two values are selected from the values K i [1] and K i [2] (i = 1,2,3,4,5,6) of the finite field. The first signature text generation unit 25, based on Q j (j = 1, 2, ..., 11), pseudo random number r [j] (j = 1, j) that combines partial random numbers.
2, ..., 11), the first signature sentence R [j] (j =
Create 1, 2,…, 11). How to create it, for example, Q
If 1 is the information to select two K 2 [1] and K 4 [2] , r [1] and R [1] are given by the following (Equation 49) and (Equation 5).
It is decided by 0).
【0206】[0206]
【数49】 [Equation 49]
【0207】[0207]
【数50】 [Equation 50]
【0208】このようにして、第一の署名文生成部25
は組み合わせ指定情報Qj(j=1,2,… ,11)に基づき、
部分乱数を組み合わせた疑似乱数r[j](j=1,2, … ,1
1),エルガマル署名の第一の署名文R[j](j=1,2, …
,11)を作成し、保管部27に保管する。 (18)エルガマル署名の第二の署名文の構成元の作成 第一の署名文生成部25から出力されるエルガマル署名
の第一の署名文R[j](j=1,2, … ,11)は、有限体上の
乗法計算部28に供給される。有限体上の乗法計算部2
8は次の(数51)のような操作で有限体の値X[j](j
=1,2, … ,11)を求める。In this way, the first signature text generator 25
Is based on the combination designation information Q j (j = 1, 2, ..., 11),
Pseudo random number r [j] (j = 1,2, ..., 1) combining partial random numbers
1), the first signature sentence R [j] (j = 1,2, ...) of the Ergamal signature
, 11) is created and stored in the storage unit 27. (18) Creation of a constituent element of the second signature text of the El Gamal signature The first signature text R [j] (j = 1,2, ..., 11) of the El Gamal signature output from the first signature text generation unit 25. ) Is supplied to the multiplicative calculation unit 28 on the finite field. Multiplicative calculation part 2 on finite field
8 is the value X [j] (j
= 1,2, ..., 11) is calculated.
【0209】xAを自分自身の公開鍵である有限体上の
値とすると、Letting x A be a value on the finite field which is the public key of itself,
【0210】[0210]
【数51】 [Equation 51]
【0211】このようにして有限体上の乗法計算部28
は12個の有限体上の値であるエルガマル署名の第二の
署名文の構成元X[j](j=1,2, … ,11)を作成し、r
[j],R[j](j=1,2, … ,11)と組にして保管部27に
保管する。 (19)エルガマル署名の第二の署名文の作成 署名したいメッセージm[j]が第二の署名文生成部29
に入力されると、保管部27から組として保管されてい
るr[j],R[j],X[j]が第二の署名文生成部29に入
力される。第二の署名文生成部29は次の(数52)を
満たすs[j]を計算する。In this way, the multiplicative calculation unit 28 on the finite field
Is the element X [j] (j = 1,2, ..., 11) of the second signature sentence of the Ergamal signature which is a value on 12 finite fields, and r
[j], R [j] (j = 1, 2, ..., 11) are paired and stored in the storage unit 27. (19) Creation of second signature text of Ergamal signature The message m [j] to be signed is the second signature text generator 29.
Then, r [j], R [j], and X [j] stored as a set from the storage unit 27 are input to the second signature text generation unit 29. The second signature text generation unit 29 calculates s [j] that satisfies the following (Equation 52).
【0212】[0212]
【数52】 [Equation 52]
【0213】このようにして求まったs[j]とm[j]なら
びにR[j]を受信者に送信する。そして一度使われたr
[j],R[j],X[j]は保管部27に保管しておく必要は
ない。 (20)計算量について 計算量については、第二の従来例とほとんど同じ計算し
かしていないので前記(14)と全く同じ内容になる。(従
来例4)で述べている6個の乱数に対する処理を同時に
行なう方法と組み合わせれば、従来例の最小計算法に対
し約72.3%にまで計算量を削減できる。The s [j] and m [j] and R [j] thus obtained are transmitted to the receiver. And once used r
It is not necessary to store [j], R [j], and X [j] in the storage unit 27. (20) Calculation amount Since the calculation amount is almost the same as that of the second conventional example, the content is exactly the same as the above (14). When combined with the method of simultaneously performing the processing for 6 random numbers described in (Conventional example 4), the amount of calculation can be reduced to about 72.3% compared to the minimum calculation method of the conventional example.
【0214】また上記の説明では従来例4との組合せに
よる計算量について述べたが、従来例3と組み合わせて
も同様の効果が得られる。In the above description, the calculation amount in combination with Conventional Example 4 has been described, but the same effect can be obtained by combining with Conventional Example 3.
【0215】なお、この第三の実施例では6個の乱数を
2個ずつに排他的に分割して11個のエルガマル署名の
第一の署名文ならびに第二の署名文の一部を作成した
が、一般化できる。一般にL個の乱数kl(l=1,2, …
,L)をそれぞれm(kl)個ずつに分割して、M個以下の
をエルガマル暗号の第一の署名文ならびに第二の署名文
の一部を作成しても同様な効果が得られる。ただしMは
(数53)で与えられる。In the third embodiment, six random numbers are exclusively divided into two, and eleven Elgamal signature first and second signature sentences are partially created. However, it can be generalized. Generally, L random numbers k l (l = 1,2, ...
, L) are each divided into m ( kl ) pieces, and the same effect can be obtained by creating M or less pieces of the first signature text and the second signature text of the ElGamal cipher. . However, M is given by (Equation 53).
【0216】[0216]
【数53】 [Equation 53]
【0217】またこの第三の実施例では、乱数を排他的
に分割したが、その乱数よりも小さい正の整数の和に分
割しても同様な効果が得られる。In the third embodiment, the random number is exclusively divided, but the same effect can be obtained by dividing the random number into the sum of positive integers smaller than the random number.
【0218】[0218]
【発明の効果】以上に説明したように本発明は、従来の
技術以上の速さで有限可換群上の特定元に乱数を作用さ
せた有限可換群の元を作成できる。従来例と組み合わせ
ることにより、従来の技術で最小の計算量である方法に
比べて計算量が約72%になる、すなわち同じ時間内で
処理できる予備処理量は従来の技術に比べ1.39倍にな
る。よって予備計算をする回数が減り、その実用的価値
は大きい。As described above, according to the present invention, it is possible to create an element of a finite commutative group by applying a random number to a specific element on the finite commutative group at a speed higher than that of the conventional technique. When combined with the conventional example, the amount of calculation is about 72% compared to the method with the smallest amount of calculation in the conventional technique, that is, the amount of preliminary processing that can be processed in the same time is 1.39 times that of the conventional technique. . Therefore, the number of preliminary calculations is reduced, and its practical value is great.
【図1】第一の実施例の楕円曲線を用いたエルガマル暗
号における演算器の構成図FIG. 1 is a configuration diagram of an arithmetic unit in an Elgamal encryption using an elliptic curve according to the first embodiment.
【図2】第二の実施例の有限体上のエルガマル暗号にお
ける演算器の構成図FIG. 2 is a configuration diagram of an arithmetic unit in the Ergamal cipher on a finite field according to the second embodiment.
【図3】第三の実施例の有限体上のエルガマル署名にお
ける演算器の構成図FIG. 3 is a configuration diagram of an arithmetic unit in an Ergamal signature on a finite field according to the third embodiment.
1,11,21 乱数生成部 2,12,22 乱数分割部 3,13,23 ビット指定部 4,8 楕円曲線上の整数作用部 5,9,15,19 暗号文生成部 6,16,26 組合せ指定部 7,17,27 保管部 10 楕円曲線上の楕円曲線上の加法演算部 14,18,24 有限体上のべき乗計算部 20,28 有限体上の乗法計算部 25,29 署名文生成部 1,11,21 Random number generation unit 2,12,22 Random number division unit 3,13,23 Bit designation unit 4,8 Integer action unit on elliptic curve 5,9,15,19 Ciphertext generation unit 6,16,26 Combination designation section 7, 17, 27 Storage section 10 Addition calculation section on elliptic curve on elliptic curve 14, 18, 24 Power calculation section on finite field 20, 28 Multiplication calculation section on finite field 25, 29 Signature sentence generation Department
Claims (4)
限可換群の特定元に異なる乱数を作用させ前記有限可換
群の別の元を作成する演算器であって、 2個以上の乱数の少なくとも1個以上の乱数を2個以上
の部分乱数に分割する乱数分割部と、 前記乱数分割部から出力される前記部分乱数を前記有限
可換群の前記特定元に作用させた構成元を作成する整数
作用部と、 前記整数作用部から出力される2個以上の前記構成元に
対して前記有限可換群の定義演算とその逆元演算の両方
またはその一方の演算を組み合わせて前記有限可換群の
元を作成する作用元生成部とを備えたことを特徴とする
有限可換群における演算器。1. An arithmetic unit for generating another element of the finite commutative group by applying a different random number to a specific element of the finite commutative group by an operation defining the finite commutative group, and comprising two or more elements. A random number division unit that divides at least one random number of the above random numbers into two or more partial random numbers, and a configuration in which the partial random number output from the random number division unit is applied to the specific element of the finite commutative group An integer acting part that creates an element, and a combination of the definition operation of the finite commutative group and the inverse element operation, or one of the operations, with respect to the two or more constituent elements output from the integer acting part. An arithmetic unit in the finite commutative group, comprising: an operator generator that creates an element of the finite commutative group.
成される有限可換群をE(G)とするとき、E(G)を定義
する演算により、前記E(G)の特定元に異なる乱数を作
用させ前記E(G)の別の元を作成する演算器であって、 2個以上の乱数の少なくとも1個以上の乱数を2個以上
の部分乱数に分割する乱数分割部と、 前記乱数分割部から出力される前記部分乱数を前記有限
可換群の前記特定元に作用させた構成元を作成する整数
作用部と、 前記整数作用部から出力される2個以上の前記構成元に
対して前記楕円曲線E上の加法演算または減法演算組み
合わせて前記E(G)の元を作成する作用元生成部とを備
えたことを特徴とする請求項1記載の有限可換群におけ
る演算器。2. When a finite commutative group composed of elements on an elliptic curve E defined on a finite field is defined as E (G), an operation for defining E (G) is used to calculate E (G) A random number division for dividing at least one random number of two or more random numbers into two or more partial random numbers, which is an arithmetic unit for generating another element of E (G) by applying different random numbers to a specific element A unit, an integer acting unit that creates a constituent element that causes the partial random number output from the random number dividing unit to act on the specific element of the finite commutative group, and two or more output units from the integer acting unit. The finite commutative element according to claim 1, further comprising: an operator generator that creates an element of the E (G) by combining an additive operation or a subtractive operation on the elliptic curve E with the constituent element. An arithmetic unit in a group.
体の特定元に異なる乱数を作用させ前記有限体の別の元
を作成する演算器であって、 2個以上の乱数の少なくとも1個以上の乱数を2個以上
の部分乱数に分割する乱数分割部と、 前記乱数分割部から出力される前記部分乱数を前記有限
体の前記特定元に作用させた構成元を作成する整数作用
部と、 前記整数作用部から出力される2個以上の前記構成元に
対して前記有限体上の乗法演算を組み合わせて前記有限
体の元を作成する作用元生成部とを備えたことを特徴と
する請求項1記載の有限可換群における演算器。3. An arithmetic unit for generating another element of the finite field by applying a different random number to a specific element of the finite field by an operation defining a finite field, and at least one of two or more random numbers. A random number division unit that divides at least one random number into two or more partial random numbers, and an integer operation unit that creates a constituent element in which the partial random number output from the random number division unit acts on the specific element of the finite field And an operator generator that creates an element of the finite field by combining a multiplication operation on the finite field with two or more constituent elements output from the integer acting unit. An arithmetic unit in the finite commutative group according to claim 1.
の総数よりも少なくする組合せ指定部を備えたことを特
徴とする請求項1か請求項2か請求項3のいずれかに記
載の有限可換群における演算器。4. A combination designating unit for reducing the number of elements of the finite commutative group to be generated to be smaller than the total number of partial random numbers, according to claim 1, 2, or 3. An arithmetic unit in the described finite commutative group.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP04199415A JP3123820B2 (en) | 1992-07-27 | 1992-07-27 | Operators in finite commutative groups |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP04199415A JP3123820B2 (en) | 1992-07-27 | 1992-07-27 | Operators in finite commutative groups |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0643808A true JPH0643808A (en) | 1994-02-18 |
JP3123820B2 JP3123820B2 (en) | 2001-01-15 |
Family
ID=16407429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP04199415A Expired - Fee Related JP3123820B2 (en) | 1992-07-27 | 1992-07-27 | Operators in finite commutative groups |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3123820B2 (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001520483A (en) * | 1997-10-14 | 2001-10-30 | サーティコム コーポレーション | Key authentication method |
JP2009042787A (en) * | 1997-06-20 | 2009-02-26 | Certicom Corp | Method for accelerating finite field operation on elliptic curve |
US8116451B2 (en) | 1998-10-14 | 2012-02-14 | Certicom Corporation | Key validation scheme |
US8229113B2 (en) | 1996-05-17 | 2012-07-24 | Certicom Corp. | Strengthened public key protocol |
JP2020509680A (en) * | 2017-02-24 | 2020-03-26 | エヌイーシー ラボラトリーズ ヨーロッパ ゲーエムベーハー | How to sign new blocks in a decentralized blockchain consensus network |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0639721U (en) * | 1990-11-13 | 1994-05-27 | 能臣 山田 | Straw container |
-
1992
- 1992-07-27 JP JP04199415A patent/JP3123820B2/en not_active Expired - Fee Related
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8229113B2 (en) | 1996-05-17 | 2012-07-24 | Certicom Corp. | Strengthened public key protocol |
US8953787B2 (en) | 1996-05-17 | 2015-02-10 | Certicom Corp. | Strengthened public key protocol |
US8983064B2 (en) | 1996-05-17 | 2015-03-17 | Certicom Corp. | Strengthened public key protocol |
JP2009042787A (en) * | 1997-06-20 | 2009-02-26 | Certicom Corp | Method for accelerating finite field operation on elliptic curve |
JP2001520483A (en) * | 1997-10-14 | 2001-10-30 | サーティコム コーポレーション | Key authentication method |
JP2010093860A (en) * | 1997-10-14 | 2010-04-22 | Certicom Corp | Key validation scheme |
JP2013042555A (en) * | 1997-10-14 | 2013-02-28 | Certicom Corp | Key validation scheme |
US8116451B2 (en) | 1998-10-14 | 2012-02-14 | Certicom Corporation | Key validation scheme |
US8594324B2 (en) | 1998-10-14 | 2013-11-26 | Certicom Corp. | Key validation scheme |
JP2020509680A (en) * | 2017-02-24 | 2020-03-26 | エヌイーシー ラボラトリーズ ヨーロッパ ゲーエムベーハー | How to sign new blocks in a decentralized blockchain consensus network |
US11212081B2 (en) | 2017-02-24 | 2021-12-28 | Nec Corporation | Method for signing a new block in a decentralized blockchain consensus network |
Also Published As
Publication number | Publication date |
---|---|
JP3123820B2 (en) | 2001-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Fiat | Batch rsa | |
Fiat | Batch RSA. | |
US8184803B2 (en) | Hash functions using elliptic curve cryptography | |
EP0503119B1 (en) | Public key cryptographic system using elliptic curves over rings | |
EP1141820B1 (en) | A method for accelerating cryptographic operations on elliptic curves | |
US5231668A (en) | Digital signature algorithm | |
AU677269B2 (en) | A cryptographic method | |
JP3560860B2 (en) | Secret sharing system, device, and storage medium | |
JP4137385B2 (en) | Encryption method using public and private keys | |
US6898284B2 (en) | Cryptographic identification and digital signature method using efficient elliptic curve | |
US7912216B2 (en) | Elliptic curve cryptosystem optimization using two phase key generation | |
US20120221858A1 (en) | Accelerated Key Agreement With Assisted Computations | |
Zheng et al. | Practical approaches to attaining security against adaptively chosen ciphertext attacks | |
US6404890B1 (en) | Generating RSA moduli including a predetermined portion | |
US6993136B2 (en) | Cryptographic key exchange method using efficient elliptic curve | |
Lim et al. | A generalized Takagi-cryptosystem with a modulus of the form prqs | |
US7062044B1 (en) | Method of elliptic curve cryptographic key agreement using coefficient splitting | |
JP3123820B2 (en) | Operators in finite commutative groups | |
EP2493112B1 (en) | Accelerated key agreement with assisted computations | |
JP3797808B2 (en) | Scalar multiplication method and apparatus | |
US20020025034A1 (en) | Cryptographic encryption method using efficient elliptic curve | |
Ramasamy et al. | Digital Signature Scheme with Message Recovery Using Knapsack-based ECC. | |
Lafourcade et al. | Linear generalized elgamal encryption scheme | |
KR20010000048A (en) | Efficient and fast multiple points scalar multiplication method over elliptic curve using m-ary method | |
JP3278790B2 (en) | Public key encryption method and public key encryption system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |