JP2002135242A - Public key distributing system, elgamal encryption system and elgamal signature system - Google Patents

Public key distributing system, elgamal encryption system and elgamal signature system

Info

Publication number
JP2002135242A
JP2002135242A JP2001254229A JP2001254229A JP2002135242A JP 2002135242 A JP2002135242 A JP 2002135242A JP 2001254229 A JP2001254229 A JP 2001254229A JP 2001254229 A JP2001254229 A JP 2001254229A JP 2002135242 A JP2002135242 A JP 2002135242A
Authority
JP
Japan
Prior art keywords
double vector
parameter
integer
vector
double
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2001254229A
Other languages
Japanese (ja)
Inventor
Masatake Arita
正剛 有田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2001254229A priority Critical patent/JP2002135242A/en
Publication of JP2002135242A publication Critical patent/JP2002135242A/en
Pending legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To provide equipment for calculating double vectors, obtained by arranging a plurality of couples of two elements of a finite field, instead of the finite field, and various kinds of technique belonging to a public key encryption system which has a small scale and is manufactured easily in a device. SOLUTION: A double vector adder in this invention consists of a sum-set computing device 11, a point-set computing device 12, a storage device 13, an input device 14, an output device 15 and a central processor 16, and calculates the double vector X3 as a coordinate value row of a set Q3 of points, which is an addition result in a Jacobian group of curves, determined by a parameter A, of sets Q1, Q2 of points, when double vectors X1, X2 are regarded as the coordinate value row for the sets Q1, Q2 of points on a curve determined by the parameter A.

Description

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

【0001】[0001]

【発明の属する技術の分野】本発明は、情報セキュリテ
ィ技術としての暗号技術に関し、特に、通信網の利用者
が公開鍵を用いて秘密鍵を共有する方法である公開鍵配
送法、通信網の利用者が公開鍵を用いて相互に秘密通信
を行なう方法であるエルガマル型暗号および通信網の利
用者が通信文の内容や作成者を認証する方法である電子
署名の一方式であるエルガマル型認証等の公開鍵暗号シ
ステムに関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an encryption technology as an information security technology, and more particularly, to a public key distribution method in which a user of a communication network shares a secret key using a public key, and a method of using a communication network. ElGamal-type encryption, which is a method for users to perform mutual secret communication using a public key, and Elgamal-type authentication, a method for electronic signatures, which is a method for users of communication networks to authenticate the contents and creators of messages. And the like.

【0002】[0002]

【従来の技術】公開された通信網において秘密情報をや
りとりする公開鍵暗号方式に属する種々の技術では、有
限体GF(p)上での離散対数問題が難しいことに、そ
の安全性の根拠をおいているものが多い。
2. Description of the Related Art Various technologies belonging to a public key cryptosystem for exchanging secret information in a public communication network are difficult to solve a discrete logarithm problem on a finite field GF (p). There are many things.

【0003】例えば、ディフィ(Diffie)とヘル
マン(Hellman)が1976年にダブリュ・ディ
フィ、エム・ヘルマン、ニュウ・ディレクションズ・イ
ン・クリプトグラフィ、アイイーイー・トランス・イン
フ・セオリ,IT−22,6,644−654頁(W.
Diffie,M.Hellman,New dire
ctions in cryptography,IE
EE Trans.Inf.Theory,IT−2
2,6,pp.644−654)において提案したDH
型公開鍵配送法や、エルガマル(El−Gamal)
が、ティー・イー・エルガマル、ア・パブリック・キィ
ー・クリプトシステム・アンド・ア・シグナチャー・ス
キーム・ベイスド・オン・ディスクリート・ロガリズ
ム、プロック・クリプト84、1984(T.E.El
Gamal,A Public keycryptos
ystem and a signature sch
emebased on dis−crete log
arithm,Proc.Crypto 84,198
4)において提案したエルガマル暗号およびエルガマル
署名は、有限体GF(p)上での離散対数問題が難しい
ことに安全性の根拠をおいている。
[0003] For example, Diffie and Hellman in 1976, W. Duffy, M. Hermann, New Directions in Cryptography, IEE Trans Inf Theory, IT-22, 6, 644-654 (W.
Diffie, M .; Hellman, New dir
ctions in cryptography, IE
EE Trans. Inf. Theory, IT-2
2,6, pp. DH proposed in 644-654)
Public key distribution method and El-Gamal
Tee El Gamal, A Public Key Crypt System and a Signature Scheme Based on Discrete Logarithm, Plock Crypto 84, 1984 (TE El
Gamal, A Public keycryptos
system and a signature sch
embased on dis-create log
arithm, Proc. Crypto 84,198
The ElGamal cryptosystem and the Elgamal signature proposed in 4) are based on the security that the discrete logarithm problem on the finite field GF (p) is difficult.

【0004】有限体GF(p)上での離散対数問題を説
明する。pを素数とし、0以上でpより小さい整数
{0,1,…,p−1}をpを法として演算する体系G
F(p)を考える。いま、Y=αX mod p(1≦
X≦p−1)とする。ここで、αはGF(p)のある固
定された原始根である。すなわち、αの巾乗でGF
(p)の零でない元すべて1,2,…,p−1を表すこ
とができる。このとき、Xを、GF(p)上の、αを底
とするYの対数と呼ぶ。XからYを計算するのは容易で
あり、2log2X 回の乗算で済む。逆に、YからX
を計算するのは、現在知られている最良のアルゴリズム
を用いても、非常に難しい。その計算量はpと同程度の
大きさの合成数を素因数分解する計算量とほぼ同じであ
る。YからXを計算する問題を離散対数問題と呼ぶ。
A discrete logarithm problem on a finite field GF (p) will be described. A system G in which p is a prime number and integers {0, 1,...
Consider F (p). Now, Y = α X mod p (1 ≦
X ≦ p−1). Here, α is a fixed primitive root with GF (p). That is, GF
All non-zero elements of (p) can represent 1, 2,..., P-1. At this time, X is called the logarithm of Y on GF (p) with α as the base. It is easy to calculate Y from X, requiring only 2 log 2 X multiplications. Conversely, from Y to X
Is very difficult to calculate, even with the best algorithms currently known. The amount of calculation is almost the same as the amount of calculation for the prime factorization of a composite number having the same size as p. The problem of calculating X from Y is called a discrete log problem.

【0005】DH型公開鍵配送法では、上記離散対数問
題を解くことが困難であることを利用して、つぎのよう
にして、利用者Aと利用者Bの間で、公開された通信網
を利用しながらも第3者に知られることなく秘密情報で
ある共有鍵Kを共有することができる。まず、素数pと
原始根αの値は公開情報として前もって全員に知らせて
おく。まずAは[0,p−1]間の整数XA をランダム
に選び、秘密に保持しておく。Bも[0,p−1]間の
整数XB をランダムに選び、秘密に保持しておく。そし
て、AはYA =αXAmod p(1≦YA ≦p−1)を
計算し、YA をBに送る。BはYB =αXBmod p
(1≦YB ≦p−1)を計算し、YB をAに送る。この
ようにYAとYBを交換してから、Aは共有鍵Kを次のよ
うに計算する。
[0005] The DH public key distribution method utilizes the fact that it is difficult to solve the discrete logarithm problem described above. , The shared key K, which is secret information, can be shared without being known to a third party. First, the values of the prime number p and the primitive root α are notified to all members in advance as public information. First, A randomly selects an integer XA between [0, p-1] and keeps it secret. B also randomly selects an integer XB between [0, p-1] and keeps it secret. Then, A is to calculate the Y A = α XA mod p ( 1 ≦ Y A ≦ p-1), and sends the Y A to B. B is Y B = α XB mod p
(1 ≦ Y B ≦ p−1) is calculated, and Y B is sent to A. After exchanging Y A and Y B in this way, A calculates the shared key K as follows.

【0006】 K=YB XA mod p=(αXBmod p)XA mod p =αXAXB mod p(1≦K≦p−1) Bも同様にして共有鍵Kを次のように計算する。[0006] calculating the K = Y B XA mod p = (α XB mod p) XA mod p = α XAXB mod p (1 ≦ K ≦ p-1) shared key K B are similarly as follows.

【0007】 K=YA XB mod p=(αXAmod p)XB mod p =αXAXB mod p(1≦K≦p−1) 以上の方法でAとBは鍵K=αXAXBmod pを秘密に
共有できた。
K = Y A XB mod p = (α XA mod p) XB mod p = α XAXB mod p (1 ≦ K ≦ p−1) In the above method, A and B obtain the key K = α XAXB mod p. I could share it secretly.

【0008】以後、利用者Aと利用者Bは共有鍵Kによ
って秘密通信を行なうことができる。上記の手順におい
て、公開された通信網を流れる情報はYAとYBのみであ
り、これらから秘密情報であるXAやXB を求めるには
離散対数問題を解く必要があるので、離散対数問題が困
難であるという前提においては、共有鍵Kが第3者に知
られることはない。
Thereafter, the user A and the user B can perform secret communication using the shared key K. In the above procedures, information flowing to published network is only Y A and Y B, since the seek X A and X B from these is the private information it is necessary to solve the discrete logarithm problem, discrete logarithm On the assumption that the problem is difficult, the shared key K will not be known to a third party.

【0009】また、エルガマル暗号では、離散対数問題
を解くことが困難であることを利用して、つぎのように
して、公開された通信網において秘密通信を行なうこと
ができる。素数pと原始根αの値は公開情報として前も
って全員に知らせておく。各利用者Uは整数XU を任意
に選び秘密に保持しておく。さらに、各利用者UはYU
=αXUmod p(1≦YU ≦p−1)を計算し、公開
鍵として各利用者に通知する。利用者Aが利用者Bに平
文Mを秘密通信する場合を考える。まず、利用者Aは自
分だけが知っている乱数kと利用者Bの公開鍵YB を用
いて次の2組の暗号文C1 ,C2 を作成する。
Further, in the ElGamal cryptosystem, it is possible to perform secret communication in a public communication network in the following manner, utilizing the fact that it is difficult to solve the discrete logarithm problem. The values of the prime number p and the primitive root α are disclosed to all members in advance as public information. Each user U arbitrarily selects an integer XU and keeps it secret. Furthermore, each user U is YU
= Α XU mod p (1 ≦ YU ≦ p−1), and notifies each user as a public key. Consider a case where user A secretly communicates plaintext M to user B. First, the user A creates the following two sets of ciphertexts C1 and C2 using the random number k known only to him / her and the public key YB of the user B.

【0010】C1 =αk mod p C2 =M・YB k mod p つぎに、利用者Aは利用者Bに暗号文C1 ,C2 を送
る。暗号文を受信した利用者Bは、自分だけが知ってい
る整数XB を用いて次式を計算して平文Mを得る。
C1 = α k mod p C2 = M · Y B k mod p Next, the user A sends the ciphertexts C1 and C2 to the user B. The user B, having received the ciphertext, obtains the plaintext M by calculating the following equation using the integer XB known only to him / her.

【0011】M=C1-XB・C2 mod p このように、エルガマル暗号においては、公開された通
信網を流れる情報はC1 とC2 のみであり、これらから
秘密情報であるkやMを求めるには離散対数問題を解く
必要があるので、離散対数問題が困難であるという前提
において、秘密通信が実現される。
M = C1− XB · C2 mod p As described above, in the El Gamar cryptosystem, only information C1 and C2 that flow through the open communication network are used. Since the discrete logarithm problem needs to be solved, secret communication is realized on the assumption that the discrete logarithm problem is difficult.

【0012】また、エルガマル署名では、離散対数問題
を解くことが困難であることを利用して、つぎのように
して、電子署名を実現することができる。素数pと原始
根αの値は公開情報として前もって全員に知らせてお
く。証明者Uは署名鍵として整数XUを任意に選び秘密
に保持しておく。さらに、証明者UはYU =αXUmod
p(1≦YU ≦p−1)を計算し、検証鍵として公開す
る。証明者Uの平文Mに対する署名を検証者Vが検証す
る場合を考える。まず、証明者Uは自分だけが知ってい
る乱数kと自身の署名鍵XU を用いて次の2組の署名文
R,Sを作成する。
Further, in the ElGamal signature, the fact that it is difficult to solve the discrete logarithm problem makes it possible to realize an electronic signature as follows. The values of the prime number p and the primitive root α are disclosed to all members in advance as public information. The prover U arbitrarily selects an integer XU as a signature key and keeps it secret. Further, the prover U obtains YU = α XU mod
Calculate p (1 ≦ YU ≦ p−1) and publish it as a verification key. Consider a case where the verifier V verifies the signature of the prover U on the plaintext M. First, the prover U creates the following two sets of signature statements R and S using the random number k known only to him and his signature key XU.

【0013】R=αkmod p S=(M−XU ・R)k-1 mod p つぎに、証明者Uは検証者Vに平文Mと共に署名文R,
Sを送る。署名文を受信した検証者Vは、証明者Uの検
証鍵YU を用いて次式が成立するか否かを検証する。
R = α k mod p S = (M−XU · R) k −1 mod p Next, the prover U sends the verifier V the plaintext M and the signature text R,
Send S The verifier V that has received the signature statement verifies whether or not the following equation is satisfied using the verification key YU of the prover U.

【0014】αM =YUR・RS mod p このように、エルガマル署名においては、公開された通
信網を流れる情報はM、RおよびSのみであり、これら
から秘密情報であるXU を求めるには離散対数問題を解
く必要があるので、離散対数問題が困難であるという前
提において、証明者U以外の人物が証明者Uになりすま
すことは困難であり、電子署名が実現される。
[0014] α M = YU R · R S mod p Thus, in the ElGamal signature information through the public communication network is M, is only R and S, from these determine the XU is the private information Since it is necessary to solve the discrete logarithm problem, it is difficult for a person other than the prover U to impersonate the prover U on the assumption that the discrete logarithm problem is difficult, and an electronic signature is realized.

【0015】[0015]

【本発明が解決しようとする課題】上にみたように、公
開された通信網において秘密情報をやりとりする公開鍵
暗号方式に属する種々の技術には、有限体GF(p)上
での離散対数問題が難しいことにその安全性の根拠をお
いているものが多い。ところが、近年の大型計算機の発
達や各種数学アルゴリズムの発展は、上記有限体GF
(p)上での離散対数問題を比較的少い計算量で解く方
法を種々開発しつつある。その対策として、1024ビ
ット、すなわち10進法で約300桁以上の大きな素数
pを用いることが推奨されているが、約300桁の大き
な素数pに対して有限体GF(p)上での演算を行うた
めには、有限体演算用の大規模な演算回路が必要とな
り、公開鍵暗号方式に属する種々の技術の実用化を妨げ
る要因となっている。
As described above, various techniques belonging to the public key cryptosystem for exchanging secret information in a public communication network include a discrete logarithm on a finite field GF (p). Many have found the security of the problem to be difficult. However, in recent years, the development of large computers and the development of various mathematical algorithms
Various methods for solving the discrete logarithm problem on (p) with a relatively small amount of calculation are being developed. As a countermeasure, it is recommended to use 1024 bits, that is, a large prime number p of about 300 digits or more in decimal system. However, for a large prime number p of about 300 digits, an operation on a finite field GF (p) is performed. This requires a large-scale arithmetic circuit for finite field arithmetic, which is a factor hindering the practical use of various technologies belonging to the public key cryptosystem.

【0016】本発明は、暗号システムを提供するための
演算装置として、有限体の代わりに、有限体の2つの元
の組を複数個並べて得られる2重ベクトルを演算する装
置等を提供し、さらに、より小規模で装置化の容易な公
開鍵暗号方式に属する種々の技術を提供することを目的
とする。
The present invention provides, as an arithmetic unit for providing a cryptographic system, an apparatus for operating a double vector obtained by arranging a plurality of two sets of finite fields instead of a finite field, It is another object of the present invention to provide various techniques belonging to a public key cryptosystem that is smaller and easy to implement.

【0017】[0017]

【課題を解決するための手段】すでに見たように、公開
鍵暗号方式に属する種々の技術は、有限体、より正確に
は有限体の乗法群の離散対数問題に基づいている。本発
明の原理は、公開鍵暗号方式に属する種々の技術を実現
するために、有限体の乗法群の代りに、有限体上の代数
曲線(以後、単に曲線と呼ぶ)のヤコビアン群を用いる
ことである。
As has been seen, the various techniques belonging to public key cryptography are based on the discrete logarithm problem of a finite field, or more precisely, a multiplicative group of a finite field. The principle of the present invention is to use a Jacobian group of an algebraic curve on a finite field (hereinafter simply referred to as a curve) instead of a multiplicative group of a finite field in order to realize various techniques belonging to the public key cryptosystem. It is.

【0018】曲線のヤコビアン群について説明する。任
意の曲線は、種数と呼ばれる、正の整数に値をもつ属性
をもつ。いま、対象とする曲線Cの種数をgとおくと、
曲線C上の勝手なg個の点の集合の間に以下のようにし
て加算を定義することができる。曲線C上のg個の点か
らなる2つの集合X1 ={P11,P12,…,P1g}とX
2 ={P21,P22,…,P2g}をとる。X1 ,X2 に対
して、X1 とX2 に属する全ての点を通る曲線のうち次
数が最小の曲線を曲線Bとする。曲線Bは曲線Cと、X
1 ,X2 に属する点以外にもうg個の点で交わる。その
g個の点をQ1,…,Qg とおく。さらに、g個の点Q1
,…,Qg の全てを通る曲線のうち次数が最小の曲線
を曲線Aとすると、曲線Aは、曲線Cとg個の点Q1 ,
…,Qg以外に、もうg個の点R1 ,…,Rg で交わ
る。X1 とX2 の加算結果はY={R1 ,…,Rg }な
る。このようにして加算の定義された、曲線C上の勝手
なg個の点の集合の集合は、有限体GF(p)上の曲線
Cのヤコビアン群と呼ばれ、その要素数、すなわち曲線
C上の勝手なg個の点の集合の個数は、約pg 個であ
る。より数学的に詳細で厳密な説明については、例え
ば、1986年、ジェイ・エイチ・シルバーマン著、デ
ィ・アリスメティック・オブ・エリプティック・カー
ブ、シュプリンガー・フェアラーク(J.H.Silv
erman, TheArithmetic of E
lliptic Curves,Springer−V
erlag,1986)にある。
The Jacobian group of a curve will be described. An arbitrary curve has an attribute called a genus that has a value of a positive integer. Assuming that the genus of the target curve C is g,
An addition can be defined as follows between a set of arbitrary g points on the curve C. Two sets X1 of g points on the curve C = {P11, P12,..., P1g} and X
2 = {P21, P22,..., P2g}. With respect to X1 and X2, a curve having the smallest degree among curves passing through all points belonging to X1 and X2 is defined as a curve B. Curve B consists of curve C and X
Intersect at g points other than the points belonging to 1, X2. The g points are referred to as Q1,..., Qg. Furthermore, g points Q1
,..., Qg, the curve having the minimum degree is designated as curve A. Curve A is composed of curve C and g points Q1,
,..., Rg, intersect at another g points R1,. The result of adding X1 and X2 is Y = {R1,..., Rg}. The set of arbitrary sets of g points on the curve C, for which addition is defined in this way, is called a Jacobian group of the curve C on the finite field GF (p), and the number of its elements, that is, the curve C The number of sets of the above arbitrary g points is about pg. For a more mathematically detailed and rigorous explanation, see, for example, JH Silberman, 1986, Di Arithmetic of Elliptic Curve, Springer Verlag (JH Silv).
erman, TheArithmetic of E
lliptic Curves, Springer-V
erlag, 1986).

【0019】暗号学的に十分な強度をもつ、公開鍵暗号
方式に属する種々の技術を実現するには、有限体の乗法
群を用いるにせよ、上記曲線のヤコビアン群を用いるに
せよ、十分な要素数を持つ群を使用しなければならな
い。一般に、有限体GF(p)の乗法群の要素数はp−
1個であるのに対し、有限体GF(p)上の種数gの曲
線のヤコビアン群の要素数は約pg 個である。したがっ
て、有限体の乗法群の代りに、有限体上の種数gの曲線
のヤコビアン群を用いると、暗号学的な強度を同程度の
水準におくとき、すなわち用いる群の要素数を同程度に
設定するとき、用いる有限体GF(p)のpの桁数を、
有限体の乗法群を用いる場合にくらべて、約1/g程度
に小さくすることが可能である。すなわち、本発明によ
る、公開鍵暗号方式に属する種々の技術は、暗号学的な
強度を損なうことなく、より小さな有限体を用いること
ができるので、より安価で小規模な装置によって暗号学
的に十分な強度を達成することができる。
In order to realize various techniques belonging to the public key cryptosystem having cryptographically sufficient strength, whether a multiplicative group of a finite field is used or a Jacobian group of the above curve is used, sufficient A group with the number of elements must be used. In general, the number of elements in the multiplicative group of the finite field GF (p) is p−
While the number is one, the number of elements of the Jacobian group of the curve of the genus g on the finite field GF (p) is about pg. Therefore, when the Jacobian group of a curve of the genus g on a finite field is used instead of the multiplicative group of the finite field, when the cryptographic strength is kept at the same level, that is, the number of elements of the group to be used is the same. , The number of digits of p of the finite field GF (p) to be used is
Compared to the case where a multiplicative group of a finite field is used, it can be reduced to about 1 / g. That is, the various technologies belonging to the public key cryptosystem according to the present invention can use a smaller finite field without deteriorating the cryptographic strength, so that the cryptographic method can be cryptographically performed by a cheaper and smaller device. Sufficient strength can be achieved.

【0020】[0020]

【発明の実施の形態】本発明は、有限体の乗法群の代わ
りに、有限体GF(p)上の、種数gの曲線のヤコビア
ン群をもちいる。上に見たように、有限体GF(p)上
の種数gの曲線のヤコビアン群の要素は、曲線上のg個
の点からなる点集合{Q1 ,…,Qg}であり、各点の
座標値を並べた列 ((x(Q1),y(Q1)),(x(Q2),y
(Q2)),…,(x(Qg),y(Qg)))として表現される(ただ
し、ここでx(Qi )は点Qiのx座標を表し、y(Qi
)は点Qi のy座標を表す。)。したがって、有限体
の2つの元の組を複数個並べて得られるベクトルを2重
ベクトルと呼ぶとき、ヤコビアン群の要素は2重ベクト
ルによって表され、本発明による公開鍵暗号方式に属す
る種々の技術は、有限体上の2重ベクトルの演算装置に
よって構成される。
DETAILED DESCRIPTION OF THE INVENTION The present invention uses a Jacobian group of curves of genus g on a finite field GF (p) instead of a multiplicative group of a finite field. As seen above, the elements of the Jacobian group of a curve of genus g on a finite field GF (p) are a set of points {Q1,..., Qg} consisting of g points on the curve. (X (Q1), y (Q1)), (x (Q2), y
(Q2)),..., (X (Qg), y (Qg))) (where x (Qi) represents the x coordinate of point Qi and y (Qi
) Represents the y coordinate of the point Qi. ). Therefore, when a vector obtained by arranging a plurality of two element sets of a finite field is called a double vector, the elements of the Jacobian group are represented by the double vector, and various techniques belonging to the public key cryptosystem according to the present invention include: , An arithmetic unit for a double vector on a finite field.

【0021】[2重ベクトル加算装置]本発明の2重ベ
クトル加算装置の実施の形態について説明する。
[Double Vector Addition Apparatus] An embodiment of the double vector addition apparatus of the present invention will be described.

【0022】本発明の2重ベクトル加算装置は、予め定
められた有限体の2つの元の組を複数個並べて得られる
2重ベクトル2重ベクトルX1 ,X2 をそれぞれ、パラ
メータAが定める曲線上の点の集まりQ1 ,Q2 の座標
値列と見なしたときの、当該点の集まりQ1 ,Q2 の、
パラメータAが定める曲線のヤコビアン群における加算
結果である点の集まりQ3 の座標値列である2重ベクト
ルX3 を演算し、出力するものであり、コンピュータ上
に実現することができる。
The double vector adding apparatus according to the present invention converts a double vector X 1, X 2 obtained by arranging a plurality of two original sets of a predetermined finite field onto a curve defined by a parameter A, respectively. When the set of points Q1 and Q2 is regarded as a sequence of coordinate values of the set of points Q1 and Q2,
It calculates and outputs a double vector X3, which is a coordinate value sequence of a group Q3 of points Q3 as a result of addition of a curve defined by the parameter A in the Jacobian group, and can be realized on a computer.

【0023】図1に、本発明の2重ベクトル加算装置の
実施の形態を示す。図2に、2重ベクトル加算装置の処
理の流れを示す。図3に、2重ベクトル加算装置におけ
る点集合変換装置の実施の形態を示す。図4に、点集合
変換装置の処理の流れを示す。
FIG. 1 shows an embodiment of a double vector adding apparatus according to the present invention. FIG. 2 shows a processing flow of the double vector addition device. FIG. 3 shows an embodiment of the point set conversion device in the double vector addition device. FIG. 4 shows a processing flow of the point set conversion device.

【0024】図1の2重ベクトル加算装置は、和集合計
算装置11、点集合変換装置12、メモリ13、入力装
置14、出力装置15、中央処理装置16から構成され
る。
The double vector adder shown in FIG. 1 comprises a union calculator 11, a point set converter 12, a memory 13, an input device 14, an output device 15, and a central processing unit 16.

【0025】入力手段14は、2重ベクトルX1 および
X2 と一つの曲線を定めるパラメータAを入力する。
The input means 14 inputs the double vectors X 1 and X 2 and a parameter A for defining one curve.

【0026】メモリ13は、入力されたX1 を記憶する
X1 記憶ファイルと、入力されたX2 を記憶するX2 記
憶ファイルと、入力されたAを記憶するA記憶ファイル
と、演算されたT1 を記憶するT1 記憶ファイルと、演
算されたT2 を記憶するT2記憶ファイルと有する。
The memory 13 stores an X1 storage file for storing the input X1, an X2 storage file for storing the input X2, an A storage file for storing the input A, and a calculated T1. It has a T1 storage file and a T2 storage file for storing the calculated T2.

【0027】和集合計算装置11は、X1 記憶ファイル
からX1 を、X2 記憶ファイルからX2 を、A記憶ファ
イルからAを取得し、2重ベクトルX1 、X2 をそれぞ
れ、パラメータAが定める曲線上の点の集まりの座標値
列と見なすとき、上記2つの点の集まりの和集合の座標
値列である2重ベクトルT1 を演算する。
The union calculator 11 obtains X1 from the X1 storage file, X2 from the X2 storage file, and A from the A storage file, and obtains the double vectors X1 and X2 on the curve defined by the parameter A, respectively. , A double vector T1 which is a coordinate value sequence of the union of the two sets of points is calculated.

【0028】点集合変換装置12は、T1 記憶ファイル
からT1 を、A記憶ファイルからAを取得し、2重ベク
トルT1 を、パラメータAが定める曲線上の点の集まり
の座標値列と見なすとき、上記点の集まりの、パラメー
タAが定める曲線のヤコビアン群における逆元を表す点
の集まりの座標値列である2重ベクトルT2 を演算す
る。さらに点集合変換装置12は、T2 記憶ファイルか
らT2 を、A記憶ファイルからAを取得し、2重ベクト
ルT2 を、パラメータAが定める曲線上の点の集まりの
座標値列と見なすとき、上記点の集まりの、パラメータ
Aが定める曲線のヤコビアン群における逆元を表す点の
集まりの座標値列である2重ベクトルX3を演算する。
The point set converter 12 obtains T1 from the T1 storage file and A from the A storage file, and regards the double vector T1 as a sequence of coordinate values of a set of points on the curve defined by the parameter A. A double vector T2, which is a coordinate value sequence of a set of points representing the inverse of the set of points in the Jacobian group of the curve defined by the parameter A, is calculated. Further, the point set converter 12 obtains T2 from the T2 storage file and A from the A storage file, and regards the double vector T2 as a coordinate value sequence of a set of points on the curve defined by the parameter A. Is calculated as a double vector X3, which is a coordinate value sequence of a set of points representing the inverse of the Jacobian group of the curve defined by the parameter A in the set of.

【0029】出力手段15は、演算されたX3 を出力す
る。
The output means 15 outputs the calculated X3.

【0030】中央処理装置16は、和集合計算装置1
1、点集合変換装置12、メモリ13、入力手段14、
出力手段15を制御する。
The central processing unit 16 includes the union calculator 1
1, point set conversion device 12, memory 13, input means 14,
The output unit 15 is controlled.

【0031】図3に示す点集合変換装置は、共通曲線演
算装置21と、交点集合演算装置22と、差集合演算装
置23と、メモリ24と、入力装置25と、出力装置2
6と、中央処理装置27とから構成される。入力装置2
5は、2重ベクトルT1 と一つの曲線を定めるパラメー
タAを入力する。
The point set conversion device shown in FIG. 3 includes a common curve operation device 21, an intersection set operation device 22, a difference set operation device 23, a memory 24, an input device 25, and an output device 2.
6 and a central processing unit 27. Input device 2
5 inputs a double vector T1 and a parameter A defining one curve.

【0032】メモリ24は、入力されたT1 を記憶する
T1 記憶ファイルと、入力されたAを記憶するA記憶フ
ァイルと、演算されたBを記憶するB記憶ファイルと、
演算されたS1 を記憶するS1 記憶ファイルとを有す
る。
The memory 24 has a T1 storage file for storing the input T1, an A storage file for storing the input A, a B storage file for storing the calculated B,
And an S1 storage file for storing the calculated S1.

【0033】共通曲線演算装置21は、T1 記憶ファイ
ルからT1 を、A記憶手段からAを取得し、2重ベクト
ルT1 を、パラメータAが定める曲線上の点の集まりの
座標値列と見なすとき、上記点の集まりに含まれる全て
の点を通る曲線のパラメータBを演算する。
When the common curve calculation device 21 obtains T1 from the T1 storage file and A from the A storage means, and regards the double vector T1 as a coordinate value sequence of a set of points on the curve defined by the parameter A, The parameter B of the curve passing through all the points included in the set of points is calculated.

【0034】交点集合演算装置22は、B記憶ファイル
からBを、A記憶ファイルからAを取得し、パラメータ
Aの定める曲線とパラメータBの定める曲線との全ての
交点の座標値列である2重ベクトルS1 を演算する。
The intersection set operation unit 22 acquires B from the B storage file and A from the A storage file, and obtains a double coordinate sequence of all intersections of the curve defined by the parameter A and the curve defined by the parameter B. The vector S1 is calculated.

【0035】差集合演算装置23は、T1 記憶ファイル
からT1 を、S1 記憶ファイルからS1 を取得し、2重
ベクトルT1 およびS1 をそれぞれ、パラメータAが定
める曲線上の点の集まりの座標値列と見なすとき、2重
ベクトルS1 の表す点の集まりから2重ベクトルT1 の
表す点の集まりに属する点を全て取り除いた点の集まり
の座標値列である2重ベクトルT2 を演算する。
The difference set arithmetic unit 23 obtains T1 from the T1 storage file and S1 from the S1 storage file, and stores the double vectors T1 and S1 as a coordinate value sequence of a set of points on the curve defined by the parameter A. When it is considered, a double vector T2 which is a coordinate value sequence of a set of points obtained by removing all points belonging to the set of points represented by the double vector T1 from the set of points represented by the double vector S1 is calculated.

【0036】出力装置26は、演算されたT2 を出力す
る。
The output device 26 outputs the calculated T2.

【0037】中央処理装置27は、共通曲線演算装置2
1と、交点集合演算装置22と、差集合演算装置23
と、メモリ24と、入力装置25と、出力装置26とを
制御する。
The central processing unit 27 includes the common curve calculation unit 2
1, intersection set operation device 22, difference set operation device 23
, The memory 24, the input device 25, and the output device 26.

【0038】なお、ここで、中央処理装置27、入力装
置25、出力装置26、メモリ24は、図1の中央処理
装置16、入力装置14、出力装置15、メモリ13を
用いることができる。また、入力装置から入力されたT
1 、Aを用いずに図1のメモリに記憶されているT1 、
Aを用いることもできる。
Here, as the central processing unit 27, the input unit 25, the output unit 26, and the memory 24, the central processing unit 16, the input unit 14, the output unit 15, and the memory 13 of FIG. 1 can be used. In addition, T input from the input device
1, T1 stored in the memory of FIG.
A can also be used.

【0039】次に図1および図3の2重ベクトル加算装
置の動作を、有限体GF(17)上の曲線y3 =x4 +
1を用いた場合を例として説明する。
Next, the operation of the double vector adder shown in FIGS. 1 and 3 will be described by referring to a curve y3 = x4 + on a finite field GF (17).
The case where 1 is used will be described as an example.

【0040】図1の2重ベクトル加算装置において、位
数17の有限体GF(17)上の2つの2重ベクトルX
1 =((0,1),(1,8),(2,0)),X2 =
((3,10),(4,8),(5,10))とGF
(17)上の曲線y3 = F(x)=x4 +1を定める
パラメータA=(3,4,−1,0,0,0,0,0,
0,0,0,1,−1)とが入力装置から入力されたと
する。ここで、パラメータAのデータフォーマットは図
5の通りとする。
In the double vector adder of FIG. 1, two double vectors X on a finite field GF (17) of order 17
1 = ((0, 1), (1, 8), (2, 0)), X2 =
((3,10), (4,8), (5,10)) and GF
(17) Parameter A = (3,4, −1,0,0,0,0,0, A) that determines the above curve y3 = F (x) = x4 + 1
0, 0, 0, 1, -1) are input from the input device. Here, the data format of the parameter A is as shown in FIG.

【0041】まず、中央処理装置は、入力された2重ベ
クトルX1 ,X2 およびパラメータAをメモリ13に一
時的に記憶する。つぎに、中央処理装置16は、X1 記
憶ファイル、X2 記憶ファイルから、それぞれ2重ベク
トルX1 ,X2 を取得し、和集合計算装置11に入力す
る。和集合計算装置11は2重ベクトルX1 、X2 をそ
れぞれ点の集まりの座標値列とみなし、それらの和集合
を計算する。すなわち、2重ベクトルX1 を点(0,
1),点(1,8),および点(2,0)の3点からな
る集合と見做し、2重ベクトルX2 を点(3,10),
点(4,8),および点(5,10)の3点からなる集
合と見做した上で、その和集合を計算すると、{(0,
1),(1,8),(2,0),(3,10),(4,
8),(5,10)}が得られるので、対応する2重ベ
クトルT1 =((0,1),(1,8),(2,0),
(3,10),(4,8),(5,10))を出力す
る。
First, the central processing unit temporarily stores the input double vectors X 1, X 2 and parameter A in the memory 13. Next, the central processing unit 16 acquires the double vectors X1 and X2 from the X1 storage file and the X2 storage file, respectively, and inputs them to the union calculation unit 11. The union calculation unit 11 regards the double vectors X1 and X2 as a sequence of coordinate values of a set of points, and calculates the union thereof. That is, the double vector X1 is added to the point (0,
1), a point (1, 8), and a point (2, 0), and a double vector X2 is regarded as a point (3, 10),
Considering a set consisting of three points, points (4, 8) and (5, 10), and calculating the union of the set, {(0,
1), (1,8), (2,0), (3,10), (4,
8), (5,10)}, the corresponding double vector T1 = ((0,1), (1,8), (2,0),
(3, 10), (4, 8), (5, 10)) are output.

【0042】次に、中央処理装置16は、和集合計算装
置11の出力である前記2重ベクトルT1 をメモリ13
に一時的に記憶する。
Next, the central processing unit 16 stores the double vector T 1 output from the union calculation unit 11 in the memory 13.
To temporarily memorize.

【0043】次に、中央処理装置は、T1 記憶ファイル
から2重ベクトルT1 を、A記憶ファイルからパラメー
タAを取得し、それらを点集合変換装置12に入力す
る。点集合変換装置12は、以下に示す演算処理によっ
て、前記2重ベクトルT1 をパラメータAが定める曲線
上の点の集まりの座標値列と見なしたとき、対応する点
集合の、パラメータAが定める曲線のヤコビアン群にお
ける逆元に相当する点集合の座標値列である2重ベクト
ルT2 を出力する。
Next, the central processing unit acquires the double vector T 1 from the T 1 storage file and the parameter A from the A storage file, and inputs them to the point set conversion device 12. When the double vector T1 is regarded as a sequence of coordinate values of a set of points on the curve defined by the parameter A, the point set conversion device 12 determines the parameter A of the corresponding point set by the following arithmetic processing. A double vector T2, which is a coordinate value sequence of a point set corresponding to the inverse element in the Jacobian group of the curve, is output.

【0044】点集合変換装置12の行なう演算処理を図
3を参照しながら説明する。
The operation performed by the point set converter 12 will be described with reference to FIG.

【0045】まず、図3において、2重ベクトルT1 と
パラメータAが入力装置より入力される。つぎに、中央
処理装置27は、入力された2重ベクトルT1 とパラメ
ータAをメモリ24に一時的に記憶する。和集合計算装
置11による演算の結果がメモリ13に記憶されている
場合、これを読み出しても良い。
First, in FIG. 3, a double vector T1 and a parameter A are input from an input device. Next, the central processing unit 27 temporarily stores the input double vector T1 and parameter A in the memory 24. When the result of the operation by the union calculation device 11 is stored in the memory 13, it may be read.

【0046】つぎに、中央処理装置27は、T1 記憶フ
ァイルからT1 を、A記憶ファイルからAを取得し、共
通曲線演算装置21に入力する。共通曲線演算装置21
は、以下に示す演算処理によって、2重ベクトルT1 の
表す点集合に含まれる全ての点を重複度を含めて通る曲
線を定めるパラメータBを、図5に示すデータフォーマ
ットで出力する。
Next, the central processing unit 27 obtains T1 from the T1 storage file and A from the A storage file, and inputs them to the common curve calculation unit 21. Common curve calculation device 21
Outputs a parameter B defining a curve passing through all the points included in the point set represented by the double vector T1 including the degree of redundancy in the data format shown in FIG. 5 by the following arithmetic processing.

【0047】共通曲線演算装置21の行なう演算処理の
流れを図6を参照しながら説明する。図6のステップ6
1において、共通曲線演算装置21は、まず、入力され
たパラメータA=(3,4,−1,0,0,0,0,
0,0,0,0,1,−1)からyの次数3とxの次数
4を読み出し、iを0以上の任意の整数、jを0以上2
以下の任意の整数とするとき、不定元xとyからなる単
項式xi yj に対して、その重みを3i+4jと設定す
る。
The flow of the calculation process performed by the common curve calculation device 21 will be described with reference to FIG. Step 6 in FIG.
In FIG. 1, the common curve calculation device 21 first receives the input parameter A = (3, 4, −1, 0, 0, 0, 0,
0, 0, 0, 0, 1, -1), the degree 3 of y and the degree 4 of x are read out, i is an arbitrary integer of 0 or more, and j is 0 or more 2
When the following arbitrary integer is set, the weight is set to 3i + 4j for the monomial expression xi yj composed of the indefinite elements x and y.

【0048】次に、共通曲線演算装置21は、図6のス
テップ62において、入力された前記2重ベクトルT1
の表す点集合{(0,1),(1,8),(2,0),
(3,10),(4,8),(5,10)}の要素数を
計算し、要素数6を得て、前記単項式xij (i≧
0,0≦j≦2)からその重みが小さい方から6+1=
7個まで選択し、{1,x,y,x2 ,xy,y2 ,x
3 }を得て、選択した単項式{1,x,y,x2 ,x
y,y2 ,x3 }の未定係数{a,b,c,d,e,
f,g}による線形結合a+bx+cy+dx2 +ex
y+fy2 +gx3 を構成する。
Next, in step 62 of FIG. 6, the common curve calculation device 21 inputs the double vector T1
点 (0,1), (1,8), (2,0),
The number of elements of (3,10), (4,8), (5,10)} is calculated to obtain the number of elements 6, and the monomial x i y j (i ≧
0,0 ≦ j ≦ 2), and 6 + 1 =
Select up to seven, {1, x, y, x 2, xy, y 2, x
3 }, and the selected monomials {1, x, y, x 2 , x
y, y 2 , x 3 } undetermined coefficients {a, b, c, d, e,
linear combination a + bx + cy + dx 2 + ex
Construct y + fy 2 + gx 3 .

【0049】次に、共通曲線演算装置21は、図6のス
テップ63において、該線形結合a+bx+cy+dx
2 +exy+fy2 +gx3に、前記2重ベクトルT1
の表す点集合{(0,1),(1,8),(2,0),
(3,10),(4,8),(5,10)}に含まれる
各点の座標を代入して、連立一次方程式 a+c+f=0 a+b+8c+d+8e+13f+g=0 a+2b+4d+8g=0 a+3b+10c+ 9d+13e+15f+10g=
0 a+4b+ 8c+16d+15e+13f+13g=
0 a+5b+10c+ 8d+16e+15f+ 6g=
0 を得る。
Next, in step 63 of FIG. 6, the common curve calculator 21 calculates the linear combination a + bx + cy + dx
2 + exy + fy 2 + gx 3 and the double vector T1
点 (0,1), (1,8), (2,0),
The coordinates of each point included in (3,10), (4,8), (5,10)} are substituted, and the simultaneous linear equations a + c + f = 0 a + b + 8c + d + 8e + 13f + g = 0 a + 2b + 4d + 8g = 0 a + 3b + 10c + 9d + 13e + 15f + 10g =
0 a + 4b + 8c + 16d + 15e + 13f + 13g =
0a + 5b + 10c + 8d + 16e + 15f + 6g =
Get 0.

【0050】次に、共通曲線演算装置21は、図6のス
テップ64において、上記連立一次方程式を解くことに
より、前記未定係数をa=8,b=4,c=14,d=
4,e=16,f=12,g=13と決定する。
Next, at step 64 in FIG. 6, the common curve calculation device 21 solves the above-mentioned simultaneous linear equations to obtain the undetermined coefficients as a = 8, b = 4, c = 14, d =
4, e = 16, f = 12, g = 13.

【0051】最後に、共通曲線演算装置21は、図6の
ステップ65において、上記決定された係数(8,4,
14,4,16,12,13)にy,xの次数の情報
(2,3)を前置きしてパラメータB=(2,3,8,
4,14,4,16,12,13)を構成し、出力す
る。共通曲線演算装置21の行なう演算処理の流れの説
明を終える。
Finally, the common curve computing device 21 in step 65 of FIG. 6 determines the coefficients (8, 4,
14,4,16,12,13), the information (2,3) of the order of y and x is prefixed, and the parameter B = (2,3,8,
4, 14, 4, 16, 12, 13) are output. The description of the flow of the calculation process performed by the common curve calculation device 21 is finished.

【0052】つぎに、図3において、中央処理装置27
は、共通曲線演算装置21の出力であるパラメータBを
メモリ24に一時的に記憶する。つぎに、中央処理装置
27は、B記憶ファイルからパラメータBを、A記憶フ
ァイルからパラメータAを取得し、それらを交点集合演
算装置22に入力する。
Next, referring to FIG.
Temporarily stores the parameter B output from the common curve calculation device 21 in the memory 24. Next, the central processing unit 27 acquires the parameter B from the B storage file and the parameter A from the A storage file, and inputs them to the intersection set operation device 22.

【0053】交点集合演算装置22は、以下に示す演算
処理によって、パラメータAが表す曲線とパラメータB
が表す曲線との全ての交点からなる点集合の座標値列で
ある2重ベクトルT2 を出力する。
The intersection set operation unit 22 calculates the curve represented by the parameter A and the parameter B
Outputs a double vector T2, which is a coordinate value sequence of a point set consisting of all intersections with the curve represented by.

【0054】交点集合演算装置22の行なう演算処理の
流れを図7を参照しながら説明する。図7のステップ7
1において、交点集合演算装置22は、入力されたパラ
メータA=(3,4,−1,0,0,0,0,0,0,
0,0,1,−1)から曲線の定義方程式f(x,y)
=y3 −x4 −1=0を構成し、入力されたパラメータ
B=(2,3,8,4,14,4,16,12,13)
から曲線の定義方程式g(x,y)=8+4x+14y
+4x2 +16xy+12y2 +13x3 =0を構成
し、f(x,y)とg(x,y)のyに関する終結式を
行列式
The flow of the arithmetic processing performed by the intersection set arithmetic unit 22 will be described with reference to FIG. Step 7 in FIG.
1, the intersection set operation device 22 determines that the input parameter A = (3,4, −1, 0, 0, 0, 0, 0, 0,
0, 0, 1, -1) to define equation f (x, y) of the curve
= Y 3 −x 4 −1 = 0, and the input parameter B = (2, 3, 8, 4, 14, 4, 16, 12, 13)
From the equation g (x, y) = 8 + 4x + 14y
+ 4x 2 + 16xy + 12y 2 + 13x 3 = 0, and the final expression for y of f (x, y) and g (x, y) is determinant

【0055】[0055]

【数1】 (Equation 1)

【0056】を展開することによって計算し、多項式s
(x)=16x+2x2 +13x3+13x4 +10x5
+2x6 +8x8 +4x9 を得る(終結式の詳細につ
いては、例えば、ファン・デル・ヴェルデン,代数幾何
学入門,シュプリンガー・フェアラーク東京、にあ
る。)。
By expanding the polynomial s
(X) = 16x + 2x 2 + 13x 3 + 13x 4 + 10x 5
+ 2x 6 + 8x 8 + 4x 9 obtain (For more information resultant of, for example, van der Velden, algebraic geometry Introduction, Springer-Verlag Tokyo, located in.).

【0057】次に、交点集合演算装置22は、図7のス
テップ72において、s(x)=0の解x1 =0,x2
=13,x3 =5,x4 =4,x5 =3,x6 =2,x
7 =1,x8 =α1 ,x9 =α2 を全て求める。ただ
し、α1 ,α 2 は2次の既約式16+13x+x2
解である。
Next, the intersection set operation unit 22 determines in step 72 of FIG. 7 that the solution x1 = 0, x2 of s (x) = 0
= 13, x3 = 5, x4 = 4, x5 = 3, x6 = 2, x
7 = 1, x8 = α1, x9 = α2. However, [alpha] 1, alpha 2 is the solution of the irreducible equation 16 + 13x + x 2 secondary.

【0058】次に、交点集合演算装置22は、図7のス
テップ73において、得られた各解xi に対し、f(x
i ,y)とg(xi ,y)の最大公約式ti (y)を計
算し、方程式ti (y)=0の解y=yi,1 ,… ,y
i,miを全て求める。
Next, the intersection set operation device 22 calculates f (x
i, y) and g (xi, y) are calculated by the greatest common formula ti (y), and the solution of equation ti (y) = 0 y = yi, 1 , ..., y
Find all i and mi .

【0059】すなわち、i=1のとき、x1 =0なの
で、f(0,y)とg(0,y)の最大公約式を計算
し、16+yを得て、16+y=0の解としてy1,1
=1を得る。i=2のとき、x2 =13なので、f(1
3,y)とg(13,y)の最大公約式を計算し、9+
yを得て、9+y=0の解としてy2,1 =8を得る。i
=3のとき、x3 =5 なので、f(5,y)とg
(5,y)の最大公約式を計算し、7+yを得て、7+
y=0の解としてy3,1 =10を得る。i=4のとき、
x4 =4なので、f(4,y)とg(4,y)の最大公
約式を計算し、9+yを得て、9+y=0の解としてy
4,1=8を得る。i=5のとき、x5 =3なので、f
(3,y)とg(3,y)の最大公約式を計算し、7+
yを得て、7+y=0の解としてy5,1 =10を得る。
i=6のとき、x6 =2なので、f(2,y)とg
(2,y)の最大公約式を計算し、yを得て、y=0の
解としてy6,1=0を得る。i=7のとき、x7 =1な
ので、f(1,y)とg(1,y)の最大公約式を計算
し、9+yを得て、9+y=0の解としてy7,1 =8を
得る。i=8のとき、x8 =α1 なので、f(α1 ,
y)とg(α1 ,y)の最大公約式を計算し、8+8α
1 +yを得て、8+8α1 +y=0の解としてy8,1 =
9+9α1 を得る。i=9のとき、x9 =α2 なので、
f(α2 ,y)とg(α2 ,y)の最大公約式を計算
し、8+8α2 +yを得て、8+8α2 +y=0の解と
してy9,1 =9+9α2 を得る。
That is, when i = 1, since x1 = 0, the greatest common equation of f (0, y) and g (0, y) is calculated to obtain 16 + y, and y1, 1
= 1. When i = 2, x2 = 13, so that f (1
3,3) and g (13, y) are calculated as 9+
y is obtained, and y2,1 = 8 is obtained as a solution of 9 + y = 0. i
= 3, x3 = 5, so f (5, y) and g
Calculate the greatest common formula of (5, y), obtain 7 + y, and calculate 7+
As a solution of y = 0, y3,1 = 10 is obtained. When i = 4,
Since x4 = 4, the greatest common denominator of f (4, y) and g (4, y) is calculated, 9 + y is obtained, and y is obtained as a solution of 9 + y = 0.
4,1 = 8 is obtained. When i = 5, since x5 = 3, f
Calculate the greatest common formula of (3, y) and g (3, y), and calculate 7+
y is obtained, and y5,1 = 10 is obtained as a solution of 7 + y = 0.
When i = 6, x6 = 2, so that f (2, y) and g
The greatest common formula of (2, y) is calculated, y is obtained, and y6,1 = 0 is obtained as a solution of y = 0. When i = 7, since x7 = 1, the maximum common formula of f (1, y) and g (1, y) is calculated, 9 + y is obtained, and y7,1 = 8 is obtained as the solution of 9 + y = 0. . When i = 8, since x8 = α1, f (α1,
y) and g (α1, y) are calculated as 8 + 8α
1 + y, and as a solution of 8 + 8α1 + y = 0, y8,1 =
9 + 9α1 is obtained. When i = 9, x9 = α2, so
The greatest common formula of f (α2, y) and g (α2, y) is calculated to obtain 8 + 8α2 + y, and y9,1 = 9 + 9α2 as a solution of 8 + 8α2 + y = 0.

【0060】最後に、交点集合演算装置22は、図7の
ステップ74において、点集合{(xi ,yi , j )
|1≦i≦n,1≦j≦mi }の座標値列である2重ベ
クトルS1 =((0,1),(13,8),(5,1
0),(4,8),(3,10),(2,0),(1,
8),(α1 ,9+9α1 ),(α2 ,9+9α2 ))
を出力する。交点集合演算装置22の行なう演算処理の
説明を終える。
Finally, the intersection set computing device 22 determines in step 74 of FIG. 7 that the point set {(xi, yi, j)
| 1 ≦ i ≦ n, 1 ≦ j ≦ mi} a double vector S1 = ((0,1), (13,8), (5,1)
0), (4,8), (3,10), (2,0), (1,
8), (α1, 9 + 9α1), (α2, 9 + 9α2))
Is output. The description of the calculation processing performed by the intersection set calculation device 22 is finished.

【0061】つぎに、図3において、中央処理装置27
は、交点集合演算装置22の出力である2重ベクトルS
1 をメモリ24に一時的に記憶する。つぎに、中央処理
装置27は、T1 記憶ファイルから2重ベクトルT1
を、S1 記憶ファイルから2重ベクトルS1 を取得し、
それらを差集合演算装置23に入力する。
Next, referring to FIG.
Is a double vector S output from the intersection set operation device 22.
1 is temporarily stored in the memory 24. Next, the central processing unit 27 extracts the double vector T1 from the T1 storage file.
To obtain the double vector S1 from the S1 storage file,
These are input to the difference set operation device 23.

【0062】差集合演算装置23は、2重ベクトルS1
の表す点集合{(0,1),(13,8),(5,1
0),(4,8),(3,10),(2,0),(1,
8),(α1 ,9+9α1 ),(α2 ,9+9α2 )}
と2重ベクトルT1 の表す点集合{(0,1),(1,
8),(2,0),(3,10),(4,8),(5,
10)}との差集合{(13,8),(α1 ,9+9α
1 ),(α2 ,9+9α2 )}を計算し、その座標値列
である2重ベクトルT2 =((13,8),(α1 ,9
+9α1 ),(α2 ,9+9α2 ))を出力する。
The difference set operation unit 23 calculates the double vector S 1
点 (0,1), (13,8), (5,1
0), (4,8), (3,10), (2,0), (1,
8), (α1, 9 + 9α1), (α2, 9 + 9α2)}
And the point set {(0,1), (1,
8), (2,0), (3,10), (4,8), (5,
10) Difference set from {} (13, 8), (α1, 9 + 9α)
1), (α2, 9 + 9α2)}, and a double vector T2 = ((13, 8), (α1, 9)
+ 9α1), (α2, 9 + 9α2)).

【0063】最後に、中央処理装置27は、2重ベクト
ルT2 を出力装置へ出力する。点集合変換装置12の行
なう演算処理の説明を終える。
Finally, the central processing unit 27 outputs the double vector T2 to the output device. The description of the arithmetic processing performed by the point set conversion device 12 is finished.

【0064】次に、図1において、中央処理装置は、点
集合変換装置12の出力である前記2重ベクトルT2 を
メモリ24に一時的に記憶する。次に、中央処理装置
は、T2 記憶ファイルから2重ベクトルT2 を、A記憶
ファイルからパラメータAを取得し、それらを再び点集
合変換装置12に入力する。点集合変換装置12は、先
に見たのと全く同様の演算処理によって、前記2重ベク
トルT2 をパラメータAが定める曲線上の点の集まりの
座標値列と見なしたとき、対応する点集合の、パラメー
タAが定める曲線のヤコビアン群における逆元に相当す
る点集合の座標値列である2重ベクトルX3 =((1,
8),(β1 ,14+8β1 ),(β2 ,14+8β2
))を出力する。ただし、β1 ,β 2 は2次の既約式
14+10x+x2 の解である。
Next, in FIG. 1, the central processing unit temporarily stores the double vector T 2 output from the point set conversion unit 12 in the memory 24. Next, the central processing unit acquires the double vector T2 from the T2 storage file and the parameter A from the A storage file, and inputs them to the point set converter 12 again. When the double vector T2 is regarded as a sequence of coordinate values of a set of points on the curve defined by the parameter A, the point set conversion device 12 performs the same operation as described above. , A double vector X3 = ((1,1,2), which is a coordinate value sequence of a point set corresponding to the inverse element in the Jacobian group of the curve defined by the parameter A
8), (β1,14 + 8β1), (β2,14 + 8β2
)) Is output. Here, β1 and β2 are solutions of the second-order irreducible equation 14 + 10x + x2.

【0065】最後に、中央処理装置は、2重ベクトルX
3 を出力装置へ出力する。以上で、本発明の2重ベクト
ル加算装置の実施の形態の説明を終える。
Finally, the central processing unit determines that the double vector X
Output 3 to the output device. This concludes the description of the embodiment of the double vector addition device of the present invention.

【0066】[2重ベクトル2倍装置]本発明の2重ベ
クトル2倍装置の実施の形態について説明する。
[Double Vector Doubler] An embodiment of the double vector doubler of the present invention will be described.

【0067】本発明の2重ベクトル2倍装置は、予め定
められた有限体上の2重ベクトルXを、パラメータAが
定める曲線上の点の集まりQの座標値列と見なしたとき
の、当該点の集まりQの、パラメータAが定める曲線の
ヤコビアン群における2倍である点の集まりRの座標値
列である2重ベクトルYを演算し、出力するものであり
コンピュータ上に実現することができる。
The double vector doubling apparatus according to the present invention provides a double vector X on a predetermined finite field as a coordinate value sequence of a set Q of points on a curve defined by a parameter A. It calculates and outputs a double vector Y, which is a coordinate value sequence of a set R of points which is twice as large as the set of points Q in the Jacobian group of the curve defined by the parameter A, and can be realized on a computer. it can.

【0068】図8に、本発明の2重ベクトル2倍装置の
実施の形態を示す。図9に、本発明の2重ベクトル2倍
装置の処理の流れを示す。
FIG. 8 shows an embodiment of the double vector doubling device of the present invention. FIG. 9 shows a processing flow of the double vector doubling device of the present invention.

【0069】本発明の2重ベクトル2倍装置は、2重ベ
クトル加算装置31と、メモリ32と、入力装置33
と、出力装置34と、中央処理装置35とから構成され
る。
The double vector doubling device of the present invention comprises a double vector adding device 31, a memory 32, and an input device 33.
, An output device 34, and a central processing unit 35.

【0070】2重ベクトル加算装置31は、上述の2重
ベクトル加算装置である。メモリ32は、2重ベクトル
Xを記憶するX記憶ファイルと、2重ベクトルX'を記
憶するX'記憶ファイルを有する。
The double vector adding device 31 is the above-described double vector adding device. The memory 32 has an X storage file that stores the double vector X and an X ′ storage file that stores the double vector X ′.

【0071】なお、入力装置33、出力装置34、中央
処理装置35、メモリ32は、2重ベクトル加算装置の
中央処理装置16、入力装置14、出力装置15、メモ
リ13を用いることができる。
The input device 33, the output device 34, the central processing unit 35, and the memory 32 can use the central processing unit 16, the input device 14, the output device 15, and the memory 13 of the double vector adding device.

【0072】図8を参照しながら、本発明の2重ベクト
ル2倍装置の動作を例を通して説明する。図8の2重ベ
クトル2倍装置において、位数17の有限体GF(1
7)上の2重ベクトルX=((0,1),(1,8),
(2,0))とGF(17)上の曲線y3 =F(x)=
4 +1を定めるパラメータA=(3,4,−1,0,
0,0,0,0,0,0,0,1,−1)とが入力装置
から入力されたとする。パラメータAのデータフォーマ
ットは図5の通りとする。
The operation of the double vector doubling device of the present invention will be described with reference to FIG. In the double vector doubling device of FIG. 8, a finite field GF (1
7) Double vector X = ((0,1), (1,8),
(2,0)) and the curve y 3 = F (x) = on GF (17)
parameter A = (3, 4 defining the x 4 +1, -1,0,
0, 0, 0, 0, 0, 0, 0, 1, -1) are input from the input device. The data format of the parameter A is as shown in FIG.

【0073】まず、中央処理装置35は、上記2重ベク
トルXとその複製である2重ベクトルX'=Xと上記パ
ラメータAとをメモリ32に一時的に記憶する。
First, the central processing unit 35 temporarily stores the double vector X, the duplicate vector X '= X, which is a duplicate thereof, and the parameter A in the memory 32.

【0074】つぎに、中央処理装置35は、X記憶ファ
イルから2重ベクトルXを、X'記憶ファイルから2重
ベクトルX'を、A記憶ファイルからパラメータAを取
得し、それらを2重ベクトル加算装置31に入力し、2
重ベクトルX2 =((7,11),(11,γ 1 ),
(11,γ 2 ))を得る。ここで、γ1 とγ2 は既約
な2次式x2 +11x+2の解である。最後に、中央処
理装置は、上記2重ベクトルX2 を出力装置へ出力す
る。
Next, the central processing unit 35 acquires the double vector X from the X storage file, the double vector X 'from the X' storage file, the parameter A from the A storage file, and adds them to the double vector. Input to the device 31,
Double vector X2 = ((7,11), (11, γ1),
(11, γ 2)). Here, γ1 and γ2 are solutions of the irreducible quadratic equation x2 + 11x + 2. Finally, the central processing unit outputs the double vector X2 to an output device.

【0075】[2重ベクトル整数倍装置]本発明の2重
ベクトル整数倍装置の発明の実施の形態について説明す
る。
[Double Vector Integer Multiplying Apparatus] An embodiment of the double vector integer multiplying apparatus of the present invention will be described.

【0076】本発明の2重ベクトル整数倍装置は、予め
定められた有限体の2つの元の組を複数個並べて得られ
る2重ベクトルXを、パラメータAが定める曲線上の点
の集まりQの座標値列と見なしたときの、当該点の集ま
りQの、パラメータAが定める曲線のヤコビアン群にお
けるn倍である点の集まりRの座標値列である2重ベク
トルZを演算し、出力するものでありコンピュータ上に
実現することができる。
The double vector integer multiple device of the present invention converts a double vector X obtained by arranging a plurality of two original sets of a predetermined finite field into a set Q of points on a curve defined by a parameter A. Calculates and outputs a double vector Z which is a coordinate value sequence of a set R of points which is n times the Jacobian group of the curve defined by the parameter A of the set Q of the points when regarded as a coordinate value sequence. And can be implemented on a computer.

【0077】図10に、本発明の2重ベクトル整数倍装
置の実施の形態を示す。図11に、本発明の2重ベクト
ル整数倍装置の処理の流れを示す。
FIG. 10 shows an embodiment of the double vector integer multiple device of the present invention. FIG. 11 shows a processing flow of the double vector integer multiple device of the present invention.

【0078】本発明の2重ベクトル整数倍装置は、2重
ベクトル加算装置41と、2重ベクトル2倍装置42
と、メモリ43と、入力装置44と、出力装置45と、
中央処理装置46とから構成される。
The double vector integer multiplying device of the present invention comprises a double vector adding device 41 and a double vector doubling device 42.
, A memory 43, an input device 44, an output device 45,
And a central processing unit 46.

【0079】2重ベクトル加算装置41は、上述の2重
ベクトル加算装置である。2重ベクトル2倍装置42は
上述の2重ベクトル2倍装置である。メモリ43は、整
数nを記憶するn記憶ファイルと、2重ベクトルXを記
憶するX記憶ファイルと、2重ベクトルYを記憶するY
記憶ファイルと、2重ベクトルZを記憶するZ記憶ファ
イルと、整数rを記憶するr記憶ファイルとを有する。
The double vector adding device 41 is the above-described double vector adding device. The double vector doubling device 42 is the above-described double vector doubling device. The memory 43 has an n storage file storing an integer n, an X storage file storing a double vector X, and a Y storage storing a double vector Y.
It has a storage file, a Z storage file that stores the double vector Z, and an r storage file that stores an integer r.

【0080】なお、入力装置44、出力装置45、中央
処理装置46、メモリ43は、2重ベクトル加算装置の
中央処理装置16、入力装置14、出力装置15、メモ
リ13を用いることができる。
The input device 44, the output device 45, the central processing unit 46, and the memory 43 can use the central processing unit 16, the input device 14, the output device 15, and the memory 13 of the double vector adding device.

【0081】次に、本発明の2重ベクトル整数倍装置の
動作について図10、11を用いて説明する。
Next, the operation of the double vector integer multiple device of the present invention will be described with reference to FIGS.

【0082】まず、入力装置において整数nと2重ベク
トルXと一つの曲線を定めるパラメータAを入力する。
入力された整数nをメモリ43のn記憶ファイルに記憶
し、入力された2重ベクトルXをメモリ43のX記憶フ
ァイルに記憶し、入力されたパラメータAをメモリ43
のA記憶ファイルに記憶に記憶する(ステップ110
1)。
First, an input device inputs an integer n, a double vector X, and a parameter A for defining one curve.
The input integer n is stored in the n storage file of the memory 43, the input double vector X is stored in the X storage file of the memory 43, and the input parameter A is stored in the memory 43.
(Step 110)
1).

【0083】次に、メモリ43のZ記憶ファイルの初期
値として空の2重ベクトルZを記憶し、入力された2重
ベクトルXのコピーである2重ベクトルYをメモリ43
のY記憶ファイルに記憶する(ステップ1102)。
Next, an empty double vector Z is stored as an initial value of a Z storage file in the memory 43, and a double vector Y which is a copy of the input double vector X is stored in the memory 43.
(Step 1102).

【0084】次に中央処理装置46は、n記憶ファイル
から整数nを取得し、nを2で割った余りrを求め、こ
れを新たなrとしr記憶ファイルを更新する。同様にn
記憶ファイルから整数nを取得し、nを2で割った商を
求め、これを新たなnとしn記憶ファイルを更新する
(ステップ1103)。
Next, the central processing unit 46 obtains an integer n from the n storage files, obtains a remainder r obtained by dividing n by 2, updates the r storage file as a new r. Similarly n
An integer n is obtained from the storage file, a quotient obtained by dividing n by 2 is obtained, and this is set as a new n, and the n storage file is updated (step 1103).

【0085】次に、中央処理装置は、r記憶ファイルか
らrを取得し、rが1か否かを判断する(ステップ11
04)。
Next, the central processing unit acquires r from the r storage file and determines whether or not r is 1 (step 11).
04).

【0086】ステップ1104の結果、rが1ならば、
中央処理装置は、Y記憶ファイルから2重ベクトルY
を、Z記憶ファイルからから2重ベクトルZを、A記憶
ファイルからパラメータAを取得し、2重ベクトル加算
装置41に2重ベクトルY、Z及びパラメータAを入力
し、YとZの和を求め、これを新たな2重ベクトルZと
してZ記憶ファイルを更新する(ステップ1105)。
As a result of step 1104, if r is 1,
The central processing unit calculates the double vector Y from the Y storage file.
, A double vector Z from the Z storage file, a parameter A from the A storage file, and input the double vectors Y, Z and the parameter A to the double vector adder 41 to obtain the sum of Y and Z. Is updated as a new double vector Z (step 1105).

【0087】ステップ1104の結果、rが1でないな
らば、中央処理装置46は、n記憶ファイルからnを取
得し、nが0より大きいか判断する(ステップ110
6)。
If the result of step 1104 is that r is not 1, central processing unit 46 acquires n from the n storage files and determines whether n is greater than 0 (step 110).
6).

【0088】ステップ1106の結果、nが0より大き
いならば、中央処理装置46は、Y記憶ファイルから2
重ベクトルYを、A記憶ファイルからパラメータAを取
得し、2重ベクトル2倍装置42に2重ベクトルYとパ
ラメータAを入力し、2重ベクトルYの2倍を求め、こ
れを新たな2重ベクトルYとしY記憶ファイルを更新
し、ステップ1103にもどる(ステップ1108)。
If the result of step 1106 is that n is greater than 0, central processing unit 46 returns 2 from the Y storage file.
The double vector Y is obtained by obtaining the parameter A from the A storage file, inputting the double vector Y and the parameter A to the double vector doubling device 42, obtaining twice the double vector Y, The Y storage file is updated as the vector Y, and the process returns to step 1103 (step 1108).

【0089】ステップ1106の結果、nが0に等しい
ならば、中央処理装置46は、Z記憶ファイルから2重
ベクトルZを取得し出力し処理を終了する(ステップ1
107)。
As a result of step 1106, if n is equal to 0, central processing unit 46 obtains and outputs double vector Z from the Z storage file, and ends the processing (step 1).
107).

【0090】図10、11を参照しながら、本発明の2
重ベクトル整数倍装置の実施例を説明する。
Referring to FIG. 10 and FIG.
An embodiment of the double vector integer multiple device will be described.

【0091】図10の2重ベクトル整数倍装置におい
て、位数17の有限体GF(17)上の2重ベクトルX
={(0,1),(1,8),(2,0)}とGF(1
7)上の曲線y3 =F(x)=x4 +1を定めるパラメ
ータA=(3,4,−1,0,0,0,0,0,0,
0,0,1,−1)と整数n=5とが入力装置より入力
されたとする。パラメータAのデータフォーマットは図
5の通りとする。
In the double vector integer multiple device shown in FIG. 10, the double vector X on the finite field GF (17) of order 17 is used.
= {(0,1), (1,8), (2,0)} and GF (1
7) on the curve y 3 = F (x) = parameter A = (3, 4 defining the x 4 +1, -1,0,0,0,0,0,0,
0, 0, 1, -1) and an integer n = 5 are input from the input device. The data format of the parameter A is as shown in FIG.

【0092】まず、中央処理装置46は、2重ベクトル
Xと、Xのコピーである2重ベクトルYと、空の2重ベ
クトルZと、パラメータAと整数nをメモリ43に一時
的に記憶する(ステップ1101、1102)。
First, the central processing unit 46 temporarily stores the double vector X, the double vector Y which is a copy of X, the empty double vector Z, the parameter A and the integer n in the memory 43. (Steps 1101 and 1102).

【0093】つぎに、中央処理装置46は、n記憶ファ
イルよりnを取得し、n=5を2で割った余りr=1を
求め、r記憶ファイルに一時的に記憶する。さらに中央
処理装置46は、n記憶ファイルより整数nを取得し、
n=5を2で割った商2を求め、新たにn記憶ファイル
に一時的に記憶する(ステップ1103)。
Next, the central processing unit 46 obtains n from the n storage file, obtains a remainder r = 1 obtained by dividing n = 5 by 2, and temporarily stores the remainder in the r storage file. Further, the central processing unit 46 obtains an integer n from the n storage files,
A quotient 2 obtained by dividing n = 5 by 2 is obtained and temporarily stored in a new n storage file (step 1103).

【0094】つぎに、中央処理装置46は、r記憶ファ
イルより整数rを取得し、rが1であるので(ステップ
1104)、Y記憶ファイルから2重ベクトルYを、Z
記憶ファイルから2重ベクトルZを、A記憶ファイルか
らパラメータAを取得し、2重ベクトル加算装置41に
2重ベクトルY、ZとパラメータAを入力し、出力され
た2重ベクトル{(0,1),(1,8),(2,
0)}を新たにZ記憶ファイルに一時的に記憶する(ス
テップ1105)。
Next, the central processing unit 46 obtains the integer r from the r storage file, and since r is 1 (step 1104), the central processing unit 46 converts the double vector Y from the Y storage file into Z
The double vector Z is obtained from the storage file, the parameter A is obtained from the storage file A, the double vectors Y and Z and the parameter A are input to the double vector addition device 41, and the output double vector {(0,1) is output. ), (1,8), (2,
0)} is temporarily stored in a new Z storage file (step 1105).

【0095】つぎに、中央処理装置46は、n記憶ファ
イルから整数nを取得し、nの値2が0より大きいので
(ステップ1106)、Y記憶ファイルから2重ベクト
ルYを、A記憶ファイルからパラメータAを取得し、2
重ベクトル2倍装置42に2重ベクトルYとパラメータ
Aを入力し、出力された2重ベクトル((7,11),
(11,α 1 ),(11,α 2 ))を新たにY記憶フ
ァイルに一時的に記憶する(ステップ1108)。ここ
で、α1 とα2 は既約な2次式x2 +11x+2の解で
ある。
Next, the central processing unit 46 acquires the integer n from the n storage file, and since the value 2 of n is greater than 0 (step 1106), the double vector Y from the Y storage file is obtained from the A storage file. Get the parameter A, 2
The double vector Y and the parameter A are input to the double vector doubling device 42, and the output double vector ((7, 11),
(11, α 1), (11, α 2)) are newly stored temporarily in the Y storage file (step 1108). Here, α1 and α2 are the solutions of the irreducible quadratic equation x 2 + 11x + 2.

【0096】つぎに、中央処理装置46は、n記憶ファ
イルより整数nを取得し、n=2を2で割った余りr=
0を求め、r記憶ファイルに一時的に記憶する。さらに
中央処理装置46は、n記憶ファイルより整数nを取得
し、n=2を2で割った商1を求め、新たにn記憶ファ
イルに一時的に記憶する(ステップ1103)。
Next, the central processing unit 46 obtains an integer n from the n storage files, and divides n = 2 by 2 to obtain a remainder r =
0 is obtained and temporarily stored in the r storage file. Further, the central processing unit 46 obtains the integer n from the n storage files, obtains a quotient 1 obtained by dividing n = 2 by 2, and temporarily stores the quotient 1 in the new n storage files (step 1103).

【0097】つぎに、中央処理装置46は、r記憶ファ
イルより整数rを取得し、rが1でないことを確認する
(ステップ1106)。
Next, the central processing unit 46 acquires the integer r from the r storage file and confirms that r is not 1 (step 1106).

【0098】つぎに、中央処理装置46は、n記憶ファ
イルから整数nを取得し、nの値1が0より大きいので
(ステップ1106)、Y記憶ファイルから2重ベクト
ルYを、A記憶ファイルからパラメータAを取得し、2
重ベクトル2倍装置42に2重ベクトルYとパラメータ
Aを入力し、出力された2重ベクトル((β1 ,16+
3β1 +7β12),(β2 ,16+3β2 +7β22),
(β3 ,16+3β3+7β32))を新たにY記憶ファ
イルに一時的に記憶する(ステップ1108)。ここ
で、β1 ,β 2 ,β 3 は既約な3次式x3 +14x2
+6x+8の解である。
Next, the central processing unit 46 acquires the integer n from the n storage file, and since the value 1 of n is greater than 0 (step 1106), the central processing unit 46 obtains the double vector Y from the Y storage file and the double vector Y from the A storage file. Get the parameter A, 2
The double vector Y and the parameter A are input to the double vector doubling device 42, and the output double vector ((β1,16 +
3β1 + 7β1 2), (β2 , 16 + 3β2 + 7β2 2),
(Β3, 16 + 3β3 + 7β3 2)) newly temporarily stored in the Y memory file (step 1108). Here, β1, β 2, β 3 are approximately cubic equation already x 3 + 14x 2
+ 6x + 8.

【0099】つぎに、中央処理装置46は、n記憶ファ
イルより整数nを取得し、nの値が1でなので、n=1
を2で割った余りr=1を求め、新たにr記憶ファイル
に一時的に記憶する。さらに、中央処理装置46は、n
記憶ファイルより整数nを取得し、n=1を2で割った
商0を求め、新たにn記憶ファイルに一時的に記憶する
(ステップ1103)。
Next, the central processing unit 46 acquires the integer n from the n storage files, and since the value of n is 1, n = 1
Is divided by 2 to obtain a remainder r = 1, which is temporarily stored in a new r storage file. Further, the central processing unit 46 includes n
An integer n is obtained from the storage file, a quotient 0 obtained by dividing n = 1 by 2 is obtained, and temporarily stored in a new n storage file (step 1103).

【0100】つぎに、中央処理装置46は、r記憶ファ
イルより整数rを取得し、rが1であるので(ステップ
1104)、Y記憶ファイルから2重ベクトルYを、Z
記憶ファイルから2重ベクトルZを、A記憶ファイルか
らパラメータAを取得し、2重ベクトル加算装置41に
2重ベクトルY、ZとパラメータAを入力し、出力され
た2重ベクトル((γ1 ,13+2γ1 +5γ12),
(γ2 ,13+2γ2 +5γ22),(γ3 ,13+2γ
3 +5γ32))を新たにZ記憶ファイルに一時的に記憶
する(ステップ1105)。ここで、γ1 ,γ 2 ,γ
3 は既約な3次式x3 +8x2 +7x+9の解である。
Next, the central processing unit 46 obtains an integer r from the r storage file, and since r is 1 (step 1104), the central processing unit 46 converts the double vector Y from the Y storage file into Z
The double vector Z is obtained from the storage file, the parameter A is obtained from the storage file A, the double vectors Y and Z and the parameter A are input to the double vector adder 41, and the output double vector ((γ1, 13 + 2γ1) + 5γ1 2 ),
(Γ2, 13 + 2γ2 + 5γ2 2), (γ3, 13 + 2γ
3 + 5γ3 2 )) is temporarily stored in a new Z storage file (step 1105). Here, γ1, γ2, γ
3 is the solution of about a cubic equation already x 3 + 8x 2 + 7x + 9.

【0101】つぎに、中央処理装置46は、n記憶ファ
イルより整数nを取得し、nの値が0なので(ステップ
1106)、Z記憶ファイルから2重ベクトルZを取得
し、出力装置に出力する(ステップ1108)。
Next, the central processing unit 46 obtains the integer n from the n storage file, and since the value of n is 0 (step 1106), obtains the double vector Z from the Z storage file and outputs it to the output device. (Step 1108).

【0102】[公開鍵配送システム]本発明の公開鍵配
送システムの実施の形態について説明する。図12に、
本発明の2重ベクトル整数倍装置を用いた公開鍵配送シ
ステムの実施の形態を示す。図13に図12の公開鍵配
送システムのセンターの実施形態を示す。図14に図1
2の公開鍵配送システムの利用者端末の実施形態を示
す。さらに図15に本発明の2重ベクトル整数倍装置を
用いた公開鍵配送システムの手順の内容を示す。図12
〜15を参照しながら、本発明の公開鍵配送システムの
動作を説明する。
[Public Key Distribution System] An embodiment of the public key distribution system of the present invention will be described. In FIG.
1 shows an embodiment of a public key distribution system using a double vector integer multiple device of the present invention. FIG. 13 shows an embodiment of the center of the public key distribution system of FIG. FIG.
2 shows an embodiment of a user terminal of the second public key distribution system. FIG. 15 shows the contents of the procedure of the public key distribution system using the double vector integer multiple device of the present invention. FIG.
The operation of the public key distribution system of the present invention will be described with reference to FIGS.

【0103】本発明の公開鍵配送システムは、図12に
示すようにセンターと複数の利用者端末から構成され図
15に示す手順が実行される。
The public key distribution system of the present invention comprises a center and a plurality of user terminals as shown in FIG. 12, and executes the procedure shown in FIG.

【0104】本発明の公開鍵配送システムでは、まず、
センターにより、一つの曲線を定めるパラメータAおよ
び2重ベクトルQを前もって全員に知らせておく(ステ
ップ151)。
In the public key distribution system of the present invention, first,
The center notifies the parameter A and the double vector Q defining one curve to all members in advance (step 151).

【0105】そして、利用者端末Uは、整数nU をラン
ダムに選び秘密に保持する。同様に利用者端末Vも、整
数nV をランダムに選び秘密に保持する。さらに利用者
端末Uは、自身の秘密情報である整数nU と公開情報で
ある2重ベクトルQおよびパラメータAを2重ベクトル
整数倍装置に入力し、出力された2重ベクトルQU =n
U ・Qを利用者端末Vに送る。利用者端末Vも、同様に
自身の秘密情報である整数nV と公開情報である2重ベ
クトルQおよびパラメータAを2重ベクトル整数倍装置
に入力し、出力された2重ベクトルQV =nV ・Qを利
用者端末Uに送る(ステップ152)。
Then, the user terminal U randomly selects an integer nU and keeps it secret. Similarly, the user terminal V randomly selects an integer nV and keeps it secret. Further, the user terminal U inputs an integer nU of its own secret information and a double vector Q and a parameter A of public information to a double vector integer multiplying device, and outputs the output double vector QU = n.
U · Q is sent to the user terminal V. Similarly, the user terminal V also inputs its own secret information integer nV and public information double vector Q and parameter A to the double vector integer multiplying device, and outputs the output double vector QV = nV.Q Is sent to the user terminal U (step 152).

【0106】その後、利用者端末Uは、利用者端末Vよ
り送られた2重ベクトルQV と自身の秘密情報である整
数nU と公開情報であるパラメータAを2重ベクトル整
数倍装置に入力し、出力された2重ベクトルK=nU ・
QV =nU ・nV ・Qを共有鍵Kとする。利用者端末V
も、同様に利用者利用者Uより送られた2重ベクトルQ
U と自身の秘密情報である整数nV と公開情報であるパ
ラメータAを2重ベクトル整数倍装置に入力し、出力さ
れた2重ベクトルK=nV ・QU =nV ・nU・Qを共
有鍵Kとする(ステップ153)。
Thereafter, the user terminal U inputs the double vector QV sent from the user terminal V, the integer nU which is secret information of itself and the parameter A which is public information to the double vector integer multiplying device, The output double vector K = nU.
Let QV = nU.nV.Q be the shared key K. User terminal V
Is also the double vector Q sent from the user U.
U, an integer nV that is secret information of itself, and a parameter A that is public information are input to a double vector integer multiplication device, and the output double vector K = nV · QU = nV · nU · Q is used as a shared key K. (Step 153).

【0107】最後に利用者端末Uと利用者端末Vは共有
鍵Kを用いて秘密通信を行う(ステップ154)。
Finally, the user terminal U and the user terminal V perform secret communication using the shared key K (step 154).

【0108】次に、本発明の公開鍵配送システムのセン
ター及び利用者端末の実施の形態について説明する。
Next, an embodiment of the center and the user terminal of the public key distribution system of the present invention will be described.

【0109】センターは、図13に示すように2重ベク
トル・パラメータ要求受信手段と2重ベクトル・パラメ
ータ公開手段から構成される。2重ベクトル・パラメー
タ要求受信手段により利用者端末から2重ベクトルQ、
パラメータAの要求が受け付けられると2重ベクトル・
パラメータ公開手段により2重ベクトルQとパラメータ
Aを要求のあった利用者端末に公開する。
The center is composed of a double vector parameter request receiving means and a double vector parameter disclosure means as shown in FIG. The user receives double vector Q,
When the request for parameter A is accepted, the double vector
The parameter publishing means publishes the double vector Q and the parameter A to the requesting user terminal.

【0110】利用者端末Uの実施の形態を図14に示
す。利用者端末Uは、2重ベクトル・パラメータ要求送
信手段と、2重ベクトル・パラメータ受信手段と、整数
発生手段と、2重ベクトル整数倍装置と、QU 出力手段
と、QV 受信手段と、秘密鍵記憶手段と、秘密通信手段
とから構成される。
FIG. 14 shows an embodiment of the user terminal U. The user terminal U includes a double vector parameter request transmitting unit, a double vector parameter receiving unit, an integer generating unit, a double vector integer multiple unit, a QU output unit, a QV receiving unit, a secret key, It comprises storage means and secret communication means.

【0111】2重ベクトル・パラメータ要求送信手段
は、センターに公開された2重ベクトルQとパラメータ
Aを要求する。
The double vector / parameter request transmitting means requests the double vector Q and the parameter A which are disclosed to the center.

【0112】2重ベクトル・パラメータ受信手段は、2
重ベクトル・パラメータ要求送信手段の要求によりセン
ターから公開された2重ベクトルQとパラメータAを受
信し、保持し、2重ベクトル整数倍装置に出力する。
The double vector / parameter receiving means includes:
The double vector Q and the parameter A published from the center by the request of the double vector parameter request transmitting means are received, held, and output to the double vector integer multiple device.

【0113】整数発生手段は、整数nU をランダムに選
び秘密に保持し、2重ベクトル整数倍装置にnU を出力
する。
The integer generating means randomly selects an integer nU and keeps it secret, and outputs nU to the double vector integer multiplying device.

【0114】2重ベクトル整数倍装置は、2重ベクトル
・パラメータ受信手段からセンターにより公開された2
重ベクトルQとパラメータAを入力し、整数発生手段か
ら整数nU を入力し、QをnU 倍することにより、2重
ベクトルQU を計算し出力する。
The double vector integer multiplying device is provided by the center from the double vector parameter receiving means.
A double vector QU is calculated and output by inputting a double vector Q and a parameter A, inputting an integer nU from an integer generating means, and multiplying Q by nU.

【0115】QU 出力手段は、2重ベクトル整数倍装置
で計算された2重ベクトルQU を利用者端末Vに送信す
る。QV 受信手段76は、利用者端末Vから送信された
2重ベクトルQV を受信し、2重ベクトル整数倍装置に
出力する。
The QU output means transmits the double vector QU calculated by the double vector integer multiple device to the user terminal V. The QV receiving means 76 receives the double vector QV transmitted from the user terminal V, and outputs it to the double vector integer multiple device.

【0116】2重ベクトル整数倍装置では、利用者端末
Vから送信された2重ベクトルQVと整数発生手段に記
憶されている秘密情報である整数nU と2重ベクトル・
パラメータ受信手段に保持されているパラメータAを入
力し、QV をnU 倍することにより2重ベクトルKを作
成し、これを秘密鍵記憶手段に出力する。
In the double vector integer multiplying device, the double vector QV transmitted from the user terminal V, the integer nU which is secret information stored in the integer generating means, and the double vector
The parameter A held in the parameter receiving means is input, and QV is multiplied by nU to create a double vector K, which is output to the secret key storage means.

【0117】秘密鍵記憶手段では、2重ベクトル整数倍
装置により計算された2重ベクトルKを秘密鍵として記
憶する。
The secret key storage means stores the double vector K calculated by the double vector integer multiple device as a secret key.

【0118】秘密通信手段では、秘密鍵記憶手段に記憶
された2重ベクトルKを秘密鍵として利用者端末Vと秘
密通信を行う。
The secret communication means performs secret communication with the user terminal V using the double vector K stored in the secret key storage means as a secret key.

【0119】次に本発明の公開鍵配送システムの実施例
について説明する。
Next, an embodiment of the public key distribution system of the present invention will be described.

【0120】まず、センターにおいて、GF(17)上
の曲線を定めるパラメータA=(3,4,−1,0,
0,0,0,0,0,0,0,1,−1)およびGF
(17)上の2重ベクトルQ=((0,1),(1,
8),(2,0))を公開する(ステップ151)。パ
ラメータAが定める曲線は、種数として3をもつので、
本実施例は、従来のDH型鍵配送法では173 =491
3の大きさの素数を用いる場合と同程度の安全性をも
つ。
First, at the center, a parameter A = (3, 4, −1, 0,
0,0,0,0,0,0,0,1, -1) and GF
(17) Double vector Q = ((0, 1), (1,
8), (2, 0)) are made public (step 151). Since the curve defined by parameter A has a genus of 3,
In this embodiment, in the conventional DH key distribution method, 17 3 = 491
It is as secure as using a prime number of size three.

【0121】つぎに、利用者端末において2重ベクトル
を計算し、配送する(ステップ152)。すなわち、利
用者端末U,Vは、センターに対して2重ベクトル・パ
ラメータ要求送信手段71により2重ベクトル・パラメ
ータ要求を行い、2重ベクトル・パラメータ受信手段に
より公開された2重ベクトルQとパラメータAを得る。
利用者端末Uは、整数発生手段73により整数nU =3
をランダムに選び秘密に保持し、同様に利用者端末V
も、整数nV =5をランダムに選び秘密に保持し、利用
者端末Uは、自身の秘密情報nU と公開情報である2重
ベクトルQおよびパラメータAを2重ベクトル整数倍装
置74に入力し、出力された2重ベクトルQU =
((0,1),(α1 ,12+3α1 ),(α2 ,12
+3α2 ))をQU 出力手段75により利用者端末Vに
送る。ここで、α1 ,α 2 は既約な2次式x2 +6x
+6の解である。同様に、利用者端末Vも、自身の秘密
情報nV と公開情報である2重ベクトルQおよびパラメ
ータAを2重ベクトル整数倍装置に入力し、出力された
2重ベクトルQV =((γ1 ,13+2γ1 +5γ
12),(γ2 ,13+2γ2 +5γ22),(γ3 ,13
+2γ3 +5γ32))を利用者端末Uに送る。ここで、
γ1 ,γ 2 ,γ 3 は既約な3次式x3 +8x2 +7x
+9の解である。
Next, a double vector is calculated and delivered at the user terminal (step 152). That is, the user terminals U and V make a double vector parameter request to the center by the double vector parameter request transmission unit 71, and make the double vector Q and the parameter publicized by the double vector parameter reception unit. Get A.
The user terminal U uses the integer generating means 73 to set the integer nU = 3.
Is randomly selected and kept secret, and the user terminal V
In addition, the user terminal U randomly selects an integer nV = 5 and holds it secretly, and the user terminal U inputs its own secret information nU and the double vector Q and the parameter A, which are public information, to the double vector integer multiplying unit 74, The output double vector QU =
((0, 1), (α1, 12 + 3α1), (α2, 12
+ 3α2)) is sent to the user terminal V by the QU output means 75. Here, α1 and α2 are irreducible quadratic expressions x 2 + 6x
+6 solution. Similarly, the user terminal V also inputs its own secret information nV and public information, that is, the double vector Q and the parameter A, to the double vector integer multiple device, and outputs the output double vector QV = ((γ1, 13 + 2γ1). + 5γ
1 2), (γ2, 13 + 2γ2 + 5γ2 2), (γ3, 13
+ 2γ3 + 5γ3 2)) a letter to the user terminal U. here,
γ1, γ 2, γ 3 are approximately cubic equation already x 3 + 8x 2 + 7x
+9 solution.

【0122】つぎに、共有鍵を生成する(ステップ15
3)。すなわち、利用者端末Uは、利用者端末Vより送
られた2重ベクトルQV をQV 受信手段により受信し、
この2重ベクトルQV と、整数発生手段に保持されてい
る自身の秘密情報である整数nU と、2重ベクトル・パ
ラメータ受信手段に保持されている公開情報であるパラ
メータAを2重ベクトル整数倍装置74に入力し、出力
された2重ベクトルK=((11,11),(10,1
1),(2,0))を共有鍵Kとし、秘密鍵記憶手段に
記憶する。同様に、利用者端末Vも、利用者端末Uより
送られた2重ベクトルQU と自身の秘密情報である整数
nV と公開情報であるパラメータAを2重ベクトル整数
倍装置に入力し、出力された2重ベクトルK=((1
1,11),(10,11),(2,0))を共有鍵K
とする。
Next, a shared key is generated (step 15).
3). That is, the user terminal U receives the double vector QV sent from the user terminal V by the QV receiving means,
The double vector QV, the integer nU of its own secret information held in the integer generating means, and the parameter A, which is public information held in the double vector parameter receiving means, are multiplied by a double vector integer multiplier. 74, and the output double vector K = ((11, 11), (10, 1)
1), (2, 0)) as the shared key K and store it in the secret key storage means. Similarly, the user terminal V also inputs the double vector QU sent from the user terminal U, the integer nV that is secret information of itself, and the parameter A that is public information to the double vector integer multiplication device, and outputs it. Double vector K = ((1
(1, 11), (10, 11), (2, 0)) with the shared key K
And

【0123】最後に、利用者端末Uと利用者端末Vは共
有鍵Kを用いて秘密通信手段78によって秘密通信を行
なう。
Lastly, the user terminal U and the user terminal V perform secret communication by the secret communication means 78 using the shared key K.

【0124】公開情報であるQとAは、例えば、図12
にあるように、信頼できる第3者センターが管理すると
いう形態がある。
The public information Q and A are, for example, as shown in FIG.
, There is a form in which the information is managed by a reliable third party center.

【0125】[エルガマル型暗号システム]本発明のエ
ルガマル型暗号システムの実施の形態について説明す
る。図16に、本発明の2重ベクトル整数倍装置を用い
たエルガマル型暗号システムの実施の形態を示す。図1
7に図16のエルガマル型暗号システムのセンターの実
施の形態を示す。図18に図16のエルガマル型暗号シ
ステムの利用者端末の実施の形態を示す。さらに図19
に、本発明の2重ベクトル整数倍装置を用いたエルガマ
ル型暗号システムの手順の内容を示す。図16〜19を
参照しながら、本発明のエルガマル型暗号システムの動
作を説明する。
[Ergamal Cryptographic System] An embodiment of the ElGamal cryptographic system of the present invention will be described. FIG. 16 shows an embodiment of an ElGamal-type encryption system using the double vector integer multiple device of the present invention. FIG.
FIG. 7 shows an embodiment of the center of the El Gamal cryptosystem shown in FIG. FIG. 18 shows an embodiment of a user terminal of the ElGamal-type encryption system shown in FIG. Further, FIG.
FIG. 4 shows the contents of the procedure of the ElGamal cryptosystem using the double vector integer multiple device of the present invention. The operation of the El Gamar type cryptosystem according to the present invention will be described with reference to FIGS.

【0126】本発明のエルガマル型暗号システムは、図
16に示すようにセンターと複数の利用者端末(送信者
端末,受信者端末)から構成され図19に示す手順が実
行される。
The ElGamal cryptosystem of the present invention comprises a center and a plurality of user terminals (sender terminal and receiver terminal) as shown in FIG. 16, and executes the procedure shown in FIG.

【0127】本発明のエルガマル型暗号システムでは、
まず、センターにより、一つの曲線を定めるパラメータ
Aおよび2重ベクトルQを前もって全利用者端末に知ら
せておく(ステップ191)。
In the El Gamar type encryption system of the present invention,
First, the center notifies the parameters A and the double vector Q defining one curve to all user terminals in advance (step 191).

【0128】そして、各利用者端末Uは、整数nU を任
意に選び秘密に保持する(ステップ192)。また各利
用者端末Uは、自身の秘密情報である整数nU と公開情
報である2重ベクトルQおよびパラメータAを2重ベク
トル整数倍装置に入力し、2重ベクトルQU =nU ・Q
を計算し(ステップ193)、これを公開鍵として各利
用者に通知する(ステップ194)。
Each user terminal U arbitrarily selects an integer nU and keeps it secret (step 192). Further, each user terminal U inputs an integer nU, which is its own secret information, a double vector Q, which is public information, and a parameter A to a double vector integer multiplying device, and a double vector QU = nU.Q
Is calculated (step 193), and this is notified to each user as a public key (step 194).

【0129】送信を行なう利用者端末Uは、任意に選択
した整数nU と送信先の利用者端末Vの公開鍵QV をも
とに、2重ベクトル整数倍装置を用いて取り決めにした
がって送信文を暗号化する(ステップ195)。
The transmitting user terminal U uses the double vector integer multiplying device based on the arbitrarily selected integer nU and the public key QV of the transmitting destination user terminal V to transmit the transmitted message according to the rules. Encrypt (step 195).

【0130】暗号文を受信した利用者端末Vは、秘密に
保持している整数nV をもとに、2重ベクトル整数倍装
置を用いて取り決めにしたがって受信文を復号する(ス
テップ136)。
The user terminal V that has received the ciphertext decrypts the received text according to the agreement using the double vector integer multiplication device based on the secretly held integer nV (step 136).

【0131】次に、本発明のエルガマル暗号システムの
センター及び利用者端末の実施の形態について説明す
る。
Next, an embodiment of the center and the user terminal of the El Gamal cryptosystem of the present invention will be described.

【0132】センターは、図17に示すように2重ベク
トル・パラメータ・公開鍵要求受信手段、2重ベクトル
・パラメータ・公開鍵公開手段、公開鍵受信手段とから
構成される。公開鍵受信手段は、各利用者端末から公開
された公開鍵を受信する。2重ベクトル・パラメータ・
公開鍵要求受信手段により利用者端末から2重ベクトル
Q、パラメータA、公開鍵QU の要求が受け付けられる
と2重ベクトル・パラメータ・公開鍵公開手段により保
持している2重ベクトルQ、パラメータA、公開鍵QU
を要求のあった利用者端末に公開する。
As shown in FIG. 17, the center comprises a double vector / parameter / public key request receiving means, a double vector / parameter / public key public means, and a public key receiving means. The public key receiving means receives a public key published from each user terminal. Double vector parameter
When the request for the double vector Q, parameter A, and public key QU is received from the user terminal by the public key request receiving means, the double vector Q, parameter A, Public key QU
Is disclosed to the user terminal that requested it.

【0133】利用者端末の実施の形態を図18に示す。
利用者端末は、2重ベクトル・パラメータ・公開鍵要求
送信手段と、2重ベクトル・パラメータ・公開鍵受信手
段と、整数発生手段と、2重ベクトル整数倍装置と、公
開鍵送信手段と、乱数発生装置と、暗号文C1 送信手段
と、暗号文C2 送信手段と、復号手段、暗号文C1 受信
手段、暗号文C2 受信手段とから構成される。
FIG. 18 shows an embodiment of the user terminal.
The user terminal includes a double vector / parameter / public key request transmitting unit, a double vector / parameter / public key receiving unit, an integer generating unit, a double vector integer multiple unit, a public key transmitting unit, It comprises a generator, ciphertext C1 transmitting means, ciphertext C2 transmitting means, decrypting means, ciphertext C1 receiving means, and ciphertext C2 receiving means.

【0134】2重ベクトル・パラメータ・公開鍵要求送
信手段は、センターに公開された2重ベクトルQ、パラ
メータA、他の利用者端末の公開鍵QV を要求する。
The double vector / parameter / public key request transmitting means requests the double vector Q, the parameter A and the public key QV of another user terminal which are made public to the center.

【0135】2重ベクトル・パラメータ・公開鍵受信手
段は、2重ベクトル・パラメータ・公開鍵要求送信手段
の要求によりセンターから公開された2重ベクトルQ、
パラメータA、公開鍵QV を受信し、保持し、2重ベク
トル整数倍装置に出力する。
The double vector / parameter / public key receiving means receives the double vector Q, publicized from the center by the request of the double vector / parameter / public key request transmitting means.
The parameter A and the public key QV are received, held, and output to the double vector integer multiple device.

【0136】整数発生手段は、整数nU をランダムに選
び秘密に保持し、2重ベクトル整数倍装置にnU を出力
する。
The integer generating means randomly selects the integer nU and keeps it secret, and outputs nU to the double vector integer multiplying device.

【0137】2重ベクトル整数倍装置は、2重ベクトル
・パラメータ・公開鍵受信手段からセンターにより公開
された2重ベクトルQとパラメータAを入力し、整数発
生手段から整数nU を入力し、2重ベクトルQをnU 倍
した2重ベクトルQU を計算し公開鍵送信手段に出力す
る。
The double vector integer multiplying device inputs the double vector Q and parameter A published by the center from the double vector / parameter / public key receiving means, inputs the integer nU from the integer generating means, A double vector QU obtained by multiplying the vector Q by nU is calculated and output to the public key transmitting means.

【0138】公開鍵送信手段は、QU を公開鍵として公
開するためにセンターへ送付する。
The public key transmitting means transmits the QU to the center in order to make it public as a public key.

【0139】乱数発生装置は、乱数RU を発生し秘密に
保持し、2重ベクトル整数倍装置に乱数RU を出力す
る。
The random number generation device generates a random number RU, keeps it secret, and outputs the random number RU to the double vector integer multiple device.

【0140】2重ベクトル整数倍装置では、2重ベクト
ル・パラメータ・公開鍵受信手段に保持されている2重
ベクトルQとパラメータAと乱数発生手段に記憶されて
いる秘密情報である整数RU とを入力し、2重ベクトル
QをRU 倍した2重ベクトルC1 を作成し、これを暗号
文とし、暗号文C1 記憶手段に記憶する。さらに2重ベ
クトル整数倍装置では、2重ベクトル・パラメータ・公
開鍵受信手段に保持されている他の利用者端末の公開鍵
QV とパラメータAと乱数発生手段に保持されているR
U とを入力し、2重ベクトルQV をRU 倍した2重ベク
トルT1 を計算し暗号文C2 送信手段に出力する。
In the double vector integer multiplying device, the double vector Q and the parameter A held in the double vector / parameter / public key receiving means and the integer RU which is the secret information stored in the random number generating means are converted. Input, a double vector C1 is generated by multiplying the double vector Q by RU, and this is used as a ciphertext and stored in the ciphertext C1 storage means. Further, in the double vector integer multiple device, the public key QV of another user terminal held in the double vector / parameter / public key receiving means, the parameter A, and the R held in the random number generating means.
U is input, a double vector T1 obtained by multiplying the double vector QV by RU is calculated and output to the ciphertext C2 transmitting means.

【0141】暗号文C2 送信手段は、2重ベクトルT1
に含まれる各組の第1成分の総和t1 を計算し、これに
通信文Mを加えて暗号文C2 を作成する。
The ciphertext C2 transmitting means uses the double vector T1
Is calculated, and the message M is added to the sum t1 of the first components of each set to generate a ciphertext C2.

【0142】その後、暗号文C1 送信手段と暗号文C2
送信手段により暗号文の組(C1 ,C2 )を他の利用者
端末に送信する。
Thereafter, the ciphertext C1 transmitting means and the ciphertext C2
The transmitting means transmits the ciphertext set (C1, C2) to another user terminal.

【0143】受信側の利用者端末側では、暗号文C1 受
信手段、暗号文C2 受信手段により送信者の利用者端末
からの暗号文の組(C1 ,C2 )を受信し保持する。
On the receiving user terminal side, the ciphertext pair (C1, C2) from the user terminal of the sender is received and held by the ciphertext C1 receiving means and the ciphertext C2 receiving means.

【0144】2重ベクトル整数倍装置は、暗号文C1 受
信手段に保持されている送信側の利用者端末から送信さ
れた暗号文C1 と、整数発生手段に保持されている自己
の秘密情報である整数nv と2重ベクトル・パラメータ
・公開鍵受信手段に保持されているパラメータAを入力
し、2重ベクトルC1 をnv 倍した2重ベクトルT2を
計算し復号手段に出力する。
The double vector integer multiplying device is the ciphertext C1 transmitted from the transmitting user terminal held in the ciphertext C1 receiving means, and its own secret information held in the integer generating means. The integer nv and the parameter A held in the double vector / parameter / public key receiving means are input, a double vector T2 obtained by multiplying the double vector C1 by nv is calculated and output to the decrypting means.

【0145】復号手段では、暗号文C2 受信手段に保持
されている送信側の利用者端末から送信された暗号文C
2 と、2重ベクトル整数倍装置で計算された2重ベクト
ルT2 を入力し、2重ベクトルT2 に含まれる各組の第
1成分の総和t2 を計算し、暗号文C2 からt2 を引く
ことにより通信文Mを復号する。
In the decrypting means, the ciphertext C2 transmitted from the transmitting user terminal held in the ciphertext C2 receiving means is transmitted.
2 and the double vector T2 calculated by the double vector integer multiplying device are input, the sum t2 of the first components of each set included in the double vector T2 is calculated, and t2 is subtracted from the ciphertext C2. The message M is decrypted.

【0146】次に本発明のエルガマル型暗号システムの
実施例について説明する。
Next, an embodiment of the ElGamal-type encryption system according to the present invention will be described.

【0147】まず、センターにおいて、GF(17)上
の曲線を定めるパラメータA=(3,4,−1,0,
0,0,0,0,0,0,0,1,−1)およびGF
(17)上の2重ベクトルQ=((0,1),(1,
8),(2,0))を公開する(ステップ191)。パ
ラメータAが定める曲線は、種数として3をもつので、
本実施例は、従来のエルガマル暗号では173 =491
3程度の大きさの素数を用いる場合と同程度の安全性を
もつ。
First, at the center, a parameter A = (3,4, -1,0,0) defining a curve on GF (17)
0,0,0,0,0,0,0,1, -1) and GF
(17) Double vector Q = ((0, 1), (1,
8), (2, 0)) are made public (step 191). Since the curve defined by parameter A has a genus of 3,
In this embodiment, 17 3 = 491 in the conventional El Gamal cipher.
It has the same level of security as using a prime number of about three in size.

【0148】つぎに、各利用者端末において秘密鍵とす
る整数を選択する(ステップ192)。すなわち、例え
ば、利用者端末Uは整数発生手段により整数nU =3を
ランダムに選び秘密に保持し、利用者端末Vも、整数n
V =5をランダムに選び秘密に保持する。
Next, each user terminal selects an integer as a secret key (step 192). That is, for example, the user terminal U randomly selects the integer nU = 3 by the integer generating means and keeps it secret, and the user terminal V also uses the integer n
V = 5 is randomly selected and kept secret.

【0149】つぎに、各利用者端末において公開鍵を計
算する(ステップ193)。すなわち、例えば利用者端
末Uでは、センターに対して2重ベクトル・パラメータ
・公開鍵要求送信手段により2重ベクトルQとパラメー
タAを要求し、2重ベクトル・パラメータ・公開鍵受信
手段により、公開された2重ベクトルQとパラメータA
を得る。そして、自身の秘密情報である整数nU と公開
情報である2重ベクトルQおよびパラメータAを2重ベ
クトル整数倍装置に入力し、出力された2重ベクトルQ
U =((0,1),(α1 ,12+3α1 ),(α2 ,
12+3α2 ))を公開鍵とする。ここで、α1 ,α 2
は既約な2次式x2 +6x+6の根である。同様に、
利用者端末Vも、自身の秘密情報である整数nV と公開
情報である2重ベクトルQおよびパラメータAを請求項
3の2重ベクトル整数倍装置に入力し、出力された2重
ベクトルQV =((γ1 ,13+2γ1 +5γ12),
(γ2 ,13+2γ2 +5γ22),(γ3 ,13+2γ
3 +5γ32))を公開鍵とする。ここで、γ1 ,γ 2
,γ 3 は既約な3次式x3 +8x2 +7x+9の根で
ある。
Next, a public key is calculated at each user terminal (step 193). That is, for example, in the user terminal U, the double vector / parameter / public key request transmission unit requests the center for the double vector Q and the parameter A, and the user terminal U discloses the double vector / parameter / public key reception unit. Double vector Q and parameter A
Get. Then, an integer nU of its own secret information and a double vector Q and a parameter A of public information are input to the double vector integer multiplying device, and the output double vector Q is output.
U = ((0, 1), (α1, 12 + 3α1), (α2,
12 + 3α2)) is the public key. Here, α1, α2
Is the root of the irreducible quadratic equation x 2 + 6x + 6. Similarly,
The user terminal V also inputs its own secret information, the integer nV, and its public information, the double vector Q and the parameter A, to the double vector integer multiplying device of claim 3, and outputs the output double vector QV = ( (γ1, 13 + 2γ1 + 5γ1 2),
(Γ2, 13 + 2γ2 + 5γ2 2), (γ3, 13 + 2γ
3 + 5γ3 2 )) is the public key. Here, γ1, γ2
, Γ 3 are the roots of the irreducible cubic expression x 3 + 8x 2 + 7x + 9.

【0150】つぎに、各利用者端末において各自の公開
鍵を公開する(ステップ194)。例えば、利用者端末
Uと利用者端末Vは、それぞれ公開鍵QU と公開鍵QV
を公開鍵送信手段からセンターに送信することにより公
開する。
Next, each user terminal publishes its own public key (step 194). For example, the user terminal U and the user terminal V have a public key QU and a public key QV, respectively.
Is transmitted from the public key transmitting means to the center.

【0151】つぎに、送信者は通信文を暗号化し、受信
者に送る(ステップ195)。例えば、利用者端末Uが
利用者端末Vに通信文M=11を暗号化して送るには、
以下のように行なう。
Next, the sender encrypts the message and sends it to the receiver (step 195). For example, in order for the user terminal U to encrypt and send the message M = 11 to the user terminal V,
Perform as follows.

【0152】まず、利用者端末Uは、乱数発生手段によ
り乱数RU =8を生成し保持する。次に、利用者端末U
は、乱数発生手段に保持されている自分だけが知ってい
る乱数RU と2重ベクトル・パラメータ・公開鍵受信手
段に保持されている2重ベクトルQおよびパラメータA
を2重ベクトル整数倍装置に入力し、出力された2重ベ
クトルC1 =((3,10),(ε1 ,9+3ε1 ),
(ε2 ,9+3ε2 ))を暗号文C1 とし暗号文C1 送
信手段に記憶する。ここで、ε1 ,ε 2 は既約な2次
式x2 +7x+2の根である。
First, the user terminal U generates and holds a random number RU = 8 by the random number generating means. Next, the user terminal U
Is the random number RU known only to the user held in the random number generating means, the double vector Q, the parameter A and the double vector Q held in the public key receiving means.
Is input to the double vector integer multiple device, and the output double vector C1 = ((3,10), (ε1,9 + 3ε1),
(Ε2, 9 + 3ε2)) is stored as ciphertext C1 in the ciphertext C1 transmitting means. Here, ε1 and ε2 are the roots of the irreducible quadratic equation x 2 + 7x + 2.

【0153】さらに、利用者端末Uは、2重ベクトル・
パラメータ・公開鍵要求送信手段により利用者端末Vの
公開鍵をセンターに要求し、2重ベクトル・パラメータ
・公開鍵受信手段により公開鍵QV を得る。そして、乱
数発生手段に保持されている自身の秘密情報であるRU
と2重ベクトル・パラメータ・公開鍵受信手段に保持さ
れている公開情報である利用者端末Vの公開鍵QV およ
びパラメータAを2重ベクトル整数倍装置に入力し、2
重ベクトルT1 を計算する。
Further, the user terminal U has a double vector
The public key of the user terminal V is requested from the center by the parameter / public key request transmitting means, and the public key QV is obtained by the double vector / parameter / public key receiving means. Then, RU, which is the secret information of the self held in the random number generation means,
And the public key QV of the user terminal V and the parameter A, which are the public information held in the double vector / parameter / public key receiving means, are input to the double vector integer multiple device.
The weight vector T1 is calculated.

【0154】暗号文C2 送信手段では、2重ベクトル整
数倍装置により計算された2重ベクトルT1 =((δ1
,4+3δ1 +14δ12),(δ2 ,4+3δ2 +1
4δ22),(δ3 ,4+3δ3 +14δ32))(ここ
で、δ1 ,δ 2 ,δ 3 は、既約な3次式x3 +7x2
+7の根である。)に含まれる各組の第1成分の総和t
1=δ1 +δ2 +δ3 =10を計算し、これに通信文M
を加えて暗号文C2 =M+t1 =11+10=4(m
od 17)を得る。
In the ciphertext C2 transmitting means, the double vector T1 = ((δ1
, 4 + 3δ1 + 14δ1 2) , (δ2, 4 + 3δ2 +1
4δ2 2), (δ3, 4 + 3δ3 + 14δ3 2)) ( wherein, .delta.1, [delta] 2, [delta] 3 is irreducible cubic equation x 3 + 7x 2
+7 root. )), The sum t of the first components of each set
1 = δ1 + δ2 + δ3 = 10, and the message M
And the ciphertext C2 = M + t1 = 11 + 10 = 4 (m
od 17).

【0155】そして暗号文の組(C1 ,C2 )を利用者
端末Vに送信する。
Then, the ciphertext pair (C1, C2) is transmitted to the user terminal V.

【0156】最後に、受信者は通信文を復号する(ステ
ップ196)。すなわち、利用者端末Vは、暗号文C1
受信手段,暗号文C2 受信手段により、利用者端末Uか
ら送信された暗号文C1 ,C2 を受信し保持する。そし
て、暗号文C1 受信手段に保持された暗号文C1 と整数
発生手段に保持されている自身の秘密情報である秘密鍵
nV と2重ベクトル・パラメータ・公開鍵受信手段に保
持されている公開情報であるパラメータAとを2重ベク
トル整数倍装置に入力し、2重ベクトルT2 を計算す
る。
Finally, the receiver decrypts the message (step 196). That is, the user terminal V uses the ciphertext C1
Receiving means, ciphertext C2 Receiving means receives and holds the ciphertexts C1, C2 transmitted from the user terminal U. Then, the ciphertext C1 held in the ciphertext C1 receiving means, the secret key nV as its own secret information held in the integer generating means, and the public information held in the double vector / parameter / public key receiving means. Is input to the double vector integer multiple device, and the double vector T2 is calculated.

【0157】復号手段では、2重ベクトル整数倍装置に
より計算された2重ベクトルT2 =((δ1 ,4+3δ
1 +14δ12),(δ2 ,4+3δ2 +14δ22),
(δ3,4+3δ3 +14δ32))(ここで、δ1 ,δ
2 ,δ 3 は、既約な3次式x 3 +7x2 +7の根であ
る。)に含まれる各組の第1成分の総和t2 =δ1 +δ
2 +δ3 =10を計算し、受信した暗号文C2 からt2
を引くことで、通信文M=C2 −t2 =4−10=11
(mod 17)を復号する。
In the decoding means, a double vector integer multiple unit is used.
Double vector T2 = ((δ1, 4 + 3δ)
1 + 14δ1Two), (Δ2, 4 + 3δ2 + 14δ2)Two),
(Δ3,4 + 3δ3 + 14δ3Two)) (Where δ1, δ
2 and δ 3 are irreducible cubic expressions x Three + 7xTwo At the root of +7
You. )), The sum t2 of the first components of each set included in the set t2 = δ1 + δ
2 + δ3 = 10, and t2 is calculated from the received ciphertext C2.
, The message M = C2 -t2 = 4-10 = 11
(Mod 17) is decoded.

【0158】公開情報であるQ,A,QU ,QV は、例
えば、図16にあるように、信頼できる第3者センター
が管理するという形態がある。
The public information Q, A, QU and QV may be managed by a reliable third party center as shown in FIG. 16, for example.

【0159】[エルガマル型署名システム]本発明のエル
ガマル型署名システムについて説明する。図20に、本
発明の2重ベクトル整数倍装置を用いたエルガマル型署
名システムの実施の形態を示す。図21に図20のエル
ガマル型署名システムのセンターの実施の形態を示す。
図22に図20のエルガマル型署名システムの証明者端
末の実施の形態を示す。図23に図20のエルガマル型
署名システムの検証者端末の実施の形態を示す。図24
に、本発明の2重ベクトル整数倍装置を用いたエルガマ
ル型署名の手順の内容を示す。図20〜24を参照しな
がら、本発明のエルガマル型署名システムの動作を説明
する。
[Elgamal Signature System] The Elgammal signature system of the present invention will be described. FIG. 20 shows an embodiment of an ElGamal signature system using the double vector integer multiple device of the present invention. FIG. 21 shows an embodiment of the center of the ElGamal signature system of FIG.
FIG. 22 shows an embodiment of the prover terminal of the ElGamal signature system of FIG. FIG. 23 shows an embodiment of a verifier terminal of the ElGamal type signature system of FIG. FIG.
The contents of the procedure of the ElGamal signature using the double vector integer multiple device of the present invention are shown below. The operation of the ElGamal signature system of the present invention will be described with reference to FIGS.

【0160】本発明のエルガマル型署名システムは、図
20に示すようにセンターと証明者端末と検証者端末か
ら構成され図24に示す手順が実行される。
The ElGamal type signature system of the present invention comprises a center, a prover terminal and a verifier terminal as shown in FIG. 20, and executes the procedure shown in FIG.

【0161】本発明のエルガマル型署名システムでは、
まず、センターにより、一つの曲線を定めるパラメータ
Aおよび2重ベクトルQを前もって全利用者に知らせて
おく(ステップ241)。
In the El Gamar type signature system of the present invention,
First, the center notifies the parameter A and the double vector Q defining one curve to all users in advance (step 241).

【0162】そして証明者端末Uは、署名鍵として整数
nU を任意に選び秘密に保持する(ステップ242)。
さらに証明者端末Uは、自身の秘密情報である署名鍵n
U と公開情報である2重ベクトルQおよびパラメータA
を2重ベクトル整数倍装置に入力し、出力された2重ベ
クトルQU =nU ・Qを検証鍵として公開する(ステッ
プ243)。
Then, the prover terminal U arbitrarily selects an integer nU as a signature key and keeps it secret (step 242).
Further, the prover terminal U has a signature key n which is its own secret information.
U and double vector Q and parameter A which are public information
Is input to the double vector integer multiple device, and the output double vector QU = nU · Q is made public as a verification key (step 243).

【0163】その後、証明者端末Uは、通信文mに対し
て、任意に選択した整数と署名鍵nU をもとに、2重ベ
クトル整数倍装置を用いて取り決めにしたがって署名文
を生成し、通信文mとともに検証者端末Vに送る(ステ
ップ244,245)。
After that, the prover terminal U generates a signature sentence for the message m based on the arbitrarily selected integer and the signature key nU by using a double vector integer multiplying device according to the agreement. The message is sent to the verifier terminal V together with the message m (steps 244 and 245).

【0164】検証者端末Vは、署名文および証明者端末
Uの検証鍵QU をもとに、2重ベクトル整数倍装置を用
いて取り決めにしたがって通信文mを検証する(ステッ
プ246)。
The verifier terminal V verifies the communication message m based on the signature and the verification key QU of the prover terminal U by using a double vector integer multiple according to the agreement (step 246).

【0165】次に、本発明のエルガマル型署名システム
のセンター及び署名者端末、検証者端末の実施の形態に
ついて説明する。
Next, an embodiment of a center, a signer terminal, and a verifier terminal of the El Gamal signature system of the present invention will be described.

【0166】センターは、図21に示すように2重ベク
トル・パラメータ・検証鍵要求受信手段、2重ベクトル
・パラメータ・検証鍵公開手段、検証鍵受信手段とから
構成される。検証鍵受信手段は、検証者端末から公開さ
れた公開鍵を受信する。2重ベクトル・パラメータ・検
証鍵要求受信手段により証明者端末若しくは検証者端末
から2重ベクトルQ、パラメータA、検証鍵QU の要求
が受け付けられると2重ベクトル・パラメータ・検証鍵
公開手段により保持している2重ベクトルQ、パラメー
タA、検証鍵QU を要求のあった端末に公開する。
As shown in FIG. 21, the center comprises a double vector / parameter / verification key request receiving unit, a double vector / parameter / verification key public unit, and a verification key receiving unit. The verification key receiving means receives the public key published from the verifier terminal. When the request for the double vector Q, the parameter A, and the verification key QU is received from the prover terminal or the verifier terminal by the double vector / parameter / verification key request receiving unit, the request is held by the double vector / parameter / verification key public unit. The disclosed double vector Q, parameter A, and verification key QU are disclosed to the requesting terminal.

【0167】証明者端末の実施の形態を図22に示す。
証明者端末は、2重ベクトル・パラメータ要求送信手段
と、2重ベクトル・パラメータ受信手段と、整数発生手
段と、2重ベクトル整数倍装置と、検証鍵送信手段と、
乱数発生装置と、署名文R送信手段と、署名文S送信手
段と、通信文M送信手段とから構成される。
FIG. 22 shows an embodiment of the prover terminal.
The prover terminal includes a double vector parameter request transmitting unit, a double vector parameter receiving unit, an integer generating unit, a double vector integer multiple unit, a verification key transmitting unit,
It comprises a random number generation device, a signature text R transmission means, a signature text S transmission means, and a communication text M transmission means.

【0168】2重ベクトル・パラメータ要求送信手段
は、センターに公開された2重ベクトルQ、パラメータ
Aを要求する。
The double vector / parameter request transmitting means requests the double vector Q and the parameter A which are disclosed to the center.

【0169】2重ベクトル・パラメータ受信手段は、2
重ベクトル・パラメータ要求送信手段の要求によりセン
ターから公開された2重ベクトルQ、パラメータAを受
信し、保持し、2重ベクトル整数倍装置に出力する。
The double vector / parameter receiving means includes:
The double vector / parameter A received from the center upon receipt of the request from the double vector / parameter request transmitting means is received, held, and output to the double vector integer multiple unit.

【0170】整数発生手段は、整数nU をランダムに選
びこれを署名鍵として秘密に保持し、2重ベクトル整数
倍装置に署名鍵nU を出力する。
The integer generating means randomly selects an integer nU and keeps it secretly as a signature key, and outputs the signature key nU to the double vector integer multiple device.

【0171】2重ベクトル整数倍装置は、2重ベクトル
・パラメータ受信手段からセンターにより公開された2
重ベクトルQとパラメータAを入力し、整数発生手段か
ら署名鍵nU を入力し、2重ベクトルQをnU 倍した2
重ベクトルQU を計算し検証鍵送信手段に出力する。
The double vector integer multiplying device is provided by the center by the double vector parameter receiving means.
The double vector Q and the parameter A are input, the signature key nU is input from the integer generation means, and the double vector Q is multiplied by nU to obtain 2
The duplicate vector QU is calculated and output to the verification key transmitting means.

【0172】検証鍵送信手段は、QU を検証鍵として公
開するためにセンターへ送付する。
The verification key transmitting means transmits the QU to the center for disclosure as a verification key.

【0173】乱数発生装置は、乱数kを発生し秘密に保
持し、2重ベクトル整数倍装置に乱数kを出力する。
The random number generation device generates a random number k, keeps it secret, and outputs the random number k to the double vector integer multiple device.

【0174】2重ベクトル整数倍装置では、2重ベクト
ル・パラメータ受信手段に保持されている2重ベクトル
QとパラメータAと乱数発生手段に記憶されている秘密
情報である整数kとを入力し、2重ベクトルQをk倍し
た2重ベクトルRを作成し、これを署名文とし、署名文
R送信手段、署名文S送信手段に出力しそれぞれに記憶
する。署名鍵S送信手段では、2重ベクトル整数倍装置
からk・Q=Rを、乱数発生装置から乱数kを、整数発
生手段からnU を入力し、通信文M送信手段から通信文
Mを入力し、S=(M−nU ・x(R))k-1 mod
O(Q)を計算し、計算結果であるSを2つ目の署名
文とする。ここで、x(R)は2重ベクトルRに含まれ
る各組の第1成分の総和であり、O(Q)は2重ベクト
ルQの位数である。
The double vector integer multiplying device inputs the double vector Q and the parameter A held in the double vector / parameter receiving means and the integer k which is secret information stored in the random number generating means, A double vector R obtained by multiplying the double vector Q by k is created, and this is used as a signature sentence, which is output to the signature sentence R transmitting means and the signature sentence S transmitting means and stored therein. In the signature key S transmitting means, k · Q = R from the double vector integer multiplying device, the random number k from the random number generating device, nU from the integer generating means, and the message M from the message M transmitting means. , S = (M−nU · x (R)) k −1 mod
O (Q) is calculated, and S, which is the calculation result, is used as the second signature sentence. Here, x (R) is the sum of the first components of each set included in the double vector R, and O (Q) is the order of the double vector Q.

【0175】通信文M送信手段は、通信文Mを保持し、
署名文S送信手段に出力する。
The message M transmitting means holds the message M,
Output to the signature sentence S transmitting means.

【0176】最後に、署名文R送信手段、署名文S送信
手段、通信文M送信手段からそれぞれ、署名文R、S及
び通信文Mを検証者端末に送信される。
Finally, the signature texts R, S and the communication text M are transmitted to the verifier terminal from the signature text R transmission means, the signature text S transmission means, and the communication text M transmission means, respectively.

【0177】検証者端末の実施の形態を図23に示す。
検証者端末は、2重ベクトル・パラメータ・検証鍵要求
送信手段と、2重ベクトル・パラメータ・検証鍵受信手
段と、2重ベクトル整数倍装置と、2重ベクトル加算装
置と、署名文R受信手段と、署名文S受信手段と、通信
文M受信手段と、T1 記憶手段と、T2 記憶手段と、T
3 記憶手段と、T4 記憶手段と、検証手段とから構成さ
れる。
FIG. 23 shows an embodiment of the verifier terminal.
The verifier terminal includes a double vector / parameter / verification key request transmitting unit, a double vector / parameter / verification key receiving unit, a double vector integer multiple unit, a double vector adding unit, and a signature text R receiving unit. Signature message S receiving means, message M receiving means, T1 storage means, T2 storage means,
It comprises three storage means, T4 storage means, and verification means.

【0178】2重ベクトル・パラメータ・検証鍵要求送
信手段は、センターに公開された2重ベクトルQ、パラ
メータA、検証鍵を要求する。
The double vector / parameter / verification key request transmitting means requests the double vector Q, parameter A, and verification key which are made public to the center.

【0179】2重ベクトル・パラメータ・検証鍵受信手
段は、2重ベクトル・パラメータ・検証鍵要求送信手段
の要求によりセンターから公開された2重ベクトルQ、
パラメータA、検証鍵QU を受信し、保持し、2重ベク
トル整数倍装置に出力する。
The double vector / parameter / verification key receiving unit receives the double vector Q,
The parameter A and the verification key QU are received, held, and output to the double vector integer multiple device.

【0180】2重ベクトル整数倍装置は、2重ベクトル
・パラメータ・検証鍵受信手段からセンターにより公開
された2重ベクトルQとパラメータAを入力し、通信文
M受信手段から通信文Mを入力し、M・Qを計算し、計
算結果である2重ベクトルT1 をT1 記憶手段に出力し
記憶する。
The double vector integer multiple device inputs the double vector Q and the parameter A published by the center from the double vector / parameter / verification key receiving means, and inputs the message M from the message M receiving means. , M · Q, and outputs the double vector T1 as a calculation result to the T1 storage means for storage.

【0181】また、2重ベクトル整数倍装置は、署名文
R受信手段から、受信した2重ベクトルRに含まれる各
組の第1成分の総和x(R)を入力し、2重ベクトル・
パラメータ・検証鍵受信手段からセンターにより公開さ
れた検証鍵QU とパラメータAを入力し、x(R)・Q
U を計算し、計算結果である2重ベクトルT2 をT2記
憶手段に出力し記憶する。
Further, the double vector integer multiple device inputs the sum x (R) of the first components of each set included in the received double vector R from the signature statement R receiving means, and
Input the verification key QU and parameter A published by the center from the parameter / verification key receiving means, and enter x (R) · Q
U is calculated, and the double vector T2, which is the calculation result, is output to the T2 storage means and stored.

【0182】また、2重ベクトル整数倍装置は、署名文
R受信手段から、受信した2重ベクトルRを、署名文S
受信手段から受信した署名文Sを、2重ベクトル・パラ
メータ・検証鍵受信手段からセンターにより公開された
パラメータAを入力し、S・Rを計算し、計算結果であ
る2重ベクトルT3 をT3 記憶手段に出力し記憶する。
The double vector integer multiple device converts the received double vector R from the signature statement R
The signature sentence S received from the receiving means is input to the parameter A published by the center from the double vector / parameter / verification key receiving means, SR is calculated, and the calculated double vector T3 is stored in T3. Output to means and store.

【0183】2重ベクトル加算装置は、T2 記憶装置及
びT3 記憶装置から2重ベクトルT2 ,T3 を入力し、
2重ベクトル・パラメータ・検証鍵受信手段からパラメ
ータAを入力し、T2 +T3 を計算し、計算結果である
2重ベクトルT4 をT4 記憶手段に出力し記憶する。
The double vector addition device inputs the double vectors T2 and T3 from the T2 storage device and the T3 storage device,
The parameter A is input from the double vector / parameter / verification key receiving means, T2 + T3 is calculated, and the calculated double vector T4 is output to the T4 storage means for storage.

【0184】検証手段は、T1 記憶手段に記憶されてい
る2重ベクトルT1 とT4 記憶手段に記憶されている2
重ベクトルT4 が一致しているかどうかを確認し、平文
Mは証明者Uが作成したか否かを認証する。
The verification means comprises a double vector T1 stored in the T1 storage means and a double vector T1 stored in the T4 storage means.
It is checked whether the overlap vectors T4 match, and the plaintext M authenticates whether the prover U has created it.

【0185】次に本発明のエルガマル型署名システムの
実施例について説明する。
Next, an embodiment of the ElGamal signature system according to the present invention will be described.

【0186】まず、センターにおいてGF(17)上の
曲線を定めるパラメータA=(3,4,−1,0,0,
0,0,0,0,0,0,1,−1)およびGF(1
7)上の2重ベクトルQ=((0,1),(1,8),
(2,0))を公開する(ステップ241)。パラメー
タAが定める曲線は、種数として3をもつので、本実施
例は、従来のエルガマル署名では173 =4913程度
の大きさの素数を用いる場合と同程度の安全性をもつ。
First, a parameter A = (3,4, -1,0,0,0) which defines a curve on GF (17) at the center.
0,0,0,0,0,0,1, -1) and GF (1
7) Double vector Q = ((0,1), (1,8),
(2, 0)) is made public (step 241). Since the curve defined by the parameter A has a genus of 3, the present embodiment has the same level of security as the conventional ElGamal signature using a prime number of about 173 = 4913.

【0187】つぎに、証明者は署名鍵とする整数を選択
する(ステップ242)。例えば、証明者端末Uは署名
鍵として整数発生手段により整数nU =3をランダムに
選びこれを署名鍵として秘密に保持する。
Next, the prover selects an integer as a signature key (step 242). For example, the prover terminal U randomly selects an integer nU = 3 as a signature key by means of an integer generating means and secretly stores the integer nU = 3 as a signature key.

【0188】つぎに、証明者は検証鍵を計算し、公開す
る(ステップ243)。例えば、証明者端末Uは、セン
ターに対して2重ベクトル・パラメータ要求送信手段に
より2重ベクトル、パラメータの要求を行い、2重ベク
トル・パラメータ受信手段により公開された2重ベクト
ルQとパラメータAを得る。証明者端末Uは、整数発生
手段から自身の秘密情報であるnU を、2重ベクトル・
パラメータ受信手段から公開情報である2重ベクトルQ
およびパラメータAを2重ベクトル整数倍装置に入力
し、出力された2重ベクトルQU =((0,1),(α
1 ,12+3α1),(α2 ,12+3α2 ))を検証
鍵とし、検証鍵送信手段に記憶する。ここで、α1 ,α
2 は既約な2次式x2 +6x+6の根である。検証鍵
送信手段から検証鍵QU をセンターへ送信し、公開す
る。
Next, the prover calculates a verification key and makes it public (step 243). For example, the prover terminal U requests the center for a double vector and a parameter by a double vector / parameter request transmitting unit, and transmits the double vector Q and the parameter A disclosed by the double vector / parameter receiving unit to the center. obtain. The prover terminal U sends nU, which is its own secret information, from the integer generating means to a double vector
Double vector Q that is public information from parameter receiving means
And the parameter A are input to the double vector integer multiplication apparatus, and the output double vector QU = ((0, 1), (α
1, 12 + 3α1) and (α2, 12 + 3α2)) are used as verification keys and stored in the verification key transmitting means. Where α1, α
2 is the root of the irreducible quadratic expression x 2 + 6x + 6. The verification key transmitting means transmits the verification key QU to the center and makes it public.

【0189】つぎに、証明者端末Uは通信文Mに対して
2組の署名文R,Sからなる署名を生成する(ステップ
244)。例えば、証明者端末Uが通信文M=11の署
名文R,Sを生成するには、以下のように行なう。
Next, the prover terminal U generates a signature including two sets of signature texts R and S for the communication text M (step 244). For example, when the prover terminal U generates the signature texts R and S with the communication text M = 11, the following is performed.

【0190】まず、証明者端末Uは、乱数発生手段によ
り乱数k=7を生成する。次に、証明者端末Uは、乱数
発生手段から自身の秘密情報であるkを、2重ベクトル
・パラメータ受信手段から公開情報である2重ベクトル
QおよびパラメータAを2重ベクトル整数倍装置に入力
し、k・Qを計算し、計算結果である2重ベクトルR=
((3,7),(ε1 ,9+3ε1 ),(ε2 ,9+3
ε2 ))を署名文Rとし、署名文R送信手段と署名文S
送信手段に出力する。ここで、ε1 ,ε 2 は既約な2
次式x2 +7x+2の根である。
First, the prover terminal U generates a random number k = 7 by the random number generating means. Next, the prover terminal U inputs k, which is secret information of itself, from the random number generation means, and the double vector Q and parameter A, which are public information, from the double vector / parameter receiving means to the double vector integer multiplying device. Then, k · Q is calculated, and a double vector R =
((3,7), (ε1, 9 + 3ε1), (ε2, 9 + 3
ε2)) is a signature text R, and the signature text R transmitting means and the signature text S
Output to transmitting means. Here, ε1 and ε2 are irreducible 2
It is the root of the following equation x 2 + 7x + 2.

【0191】さらに、証明者端末Uは、署名文S送信手
段において、2重ベクトル整数倍装置からkQ=Rを、
乱数発生装置から乱数kを、整数発生手段からnU を入
力し、通信文M送信手段から通信文Mを入力し、S=
(M−nU ・x(R))k-1mod O(Q)を計算
し、計算結果であるSを2つ目の署名文とする。ここ
で、x(R)は2重ベクトルRに含まれる各組の第1成
分の総和であり、O(Q)は2重ベクトルQの位数であ
る。本実施例の場合、x(R)=1+ε1 +ε2 =1+
(−9)=9(mod 17)であり、O(Q)=30
6なので、S=(11−3×9)7-1 mod 306
=−16×175 mod 306=260(mod
306)となる。
Further, the prover terminal U sends kQ = R from the double vector integer multiple device to the signature sentence S transmitting means,
A random number k is input from the random number generator, nU is input from the integer generating means, a message M is input from the message M transmitting means, and S =
(M−nU · x (R)) k −1 mod O (Q) is calculated, and S, which is the calculation result, is used as the second signature sentence. Here, x (R) is the sum of the first components of each set included in the double vector R, and O (Q) is the order of the double vector Q. In this embodiment, x (R) = 1 + ε1 + ε2 = 1 +
(−9) = 9 (mod 17) and O (Q) = 30
6, S = (11−3 × 9) 7 −1 mod 306
= −16 × 175 mod 306 = 260 (mod
306).

【0192】つぎに、証明者端末Uは、署名文R送信手
段、署名文S送信手段、通信文M送信手段から署名文
R,Sと通信文Mとを検証者端末Vに送信する(ステッ
プ245)。
Next, the prover terminal U transmits the signature texts R, S and the communication text M to the verifier terminal V from the signature text R transmission means, the signature text S transmission means, and the communication text M transmission means (step). 245).

【0193】最後に、検証者端末Vは等式M・Q=x
(R)・QU +S・Rが成立するかどうか検証する(ス
テップ246)。
Finally, the verifier terminal V is calculated by the equation M · Q = x
It is verified whether (R) .QU + SR is satisfied (step 246).

【0194】すなわち、検証者端末Vは、2重ベクト
ル。パラメータ・検証鍵要求送信手段により2重ベクト
ルQとパラメータAをセンターに要求し、2重ベクトル
・パラメータ・検証鍵受信手段により2重ベクトルQと
パラメータAを得る。通信文M受信手段により受信した
通信文Mと、2重ベクトル・パラメータ・検証鍵受信手
段から公開情報である2重ベクトルQおよびパラメータ
Aを2重ベクトル整数倍装置に入力し、M・Qを計算
し、計算結果である2重ベクトルT1 =((η1 ,13
+15η1 +13η12),(η2 ,13+15η2 +1
3η22),(η3 ,13+15η3 +13η32))を得
て、T1 記憶手段に記憶する。ここで、η1,η 2 ,η
3 は既約な3次式x3 +8x+1の根である。
That is, the verifier terminal V is a double vector. The parameter / verification key request transmission unit requests the center for the double vector Q and the parameter A, and the double vector / parameter / verification key reception unit obtains the double vector Q and the parameter A. The message M received by the message M receiving means and the double vector Q and the parameter A which are public information from the double vector / parameter / verification key receiving means are input to the double vector integer multiple device, and M · Q is inputted. Is calculated, and the double vector T1 = ((η1, 13
+ 15η1 + 13η1 2), ( η2, 13 + 15η2 +1
3η2 2 ) and (η3, 13 + 15η3 + 13η3 2 )) are obtained and stored in the T1 storage means. Here, η1, η2, η
3 is the root of the irreducible cubic expression x 3 + 8x + 1.

【0195】さらに、検証者端末Vは、2重ベクトル。
パラメータ・検証鍵要求送信手段により証明者端末Uの
検証鍵をセンターに要求し、2重ベクトル・パラメータ
・検証鍵受信手段により検証鍵QU を得る。そして署名
文R受信手段から受信した2重ベクトルRに含まれる各
組の第1成分の総和x(R)=9と、2重ベクトル・パ
ラメータ・検証鍵受信手段から公開情報である証明者U
の検証鍵QU およびパラメータAを2重ベクトル整数倍
装置に入力し、x(R)・QU を計算し、計算結果であ
る2重ベクトルT2 =((2,0),(θ1 ,4+16
θ1 ),(θ2,4+16θ2 ),(θ3 ,4+16θ3
))を得て(ここで、θ1 ,θ 2 ,θ 3 は既約な2
次式x2 +7x+2の解)T2 記憶手段に記憶する。
The verifier terminal V is a double vector.
The verification key of the prover terminal U is requested to the center by the parameter / verification key request transmitting means, and the verification key QU is obtained by the double vector / parameter / verification key receiving means. The sum x (R) of the first components of each set included in the double vector R received from the signature sentence R receiving means x (R) = 9, and the prover U which is public information from the double vector / parameter / verification key receiving means.
Is input to the double vector integer multiplying device, and x (R) .multidot.QU is calculated. The calculated double vector T2 = ((2,0), (.theta.1,4 + 16)
θ1), (θ2, 4 + 16θ2), (θ3, 4 + 16θ3)
)) (Where θ1, θ2, and θ3 are irreducible 2
Stores the following formula x 2 + solutions of 7x + 2) T2 storage means.

【0196】さらに、署名文S受信手段および署名文R
受信手段からそれぞれ受信した署名文Sおよび署名文R
と、2重ベクトル・パラメータ・検証鍵受信手段から公
開情報であるパラメータAを2重ベクトル整数倍装置に
入力し、S・Rを計算し、計算結果である2重ベクトル
T3 =((ι1 ,12+6ι1 +15ι12),(ι2,
12+6ι2 +15ι22),(ι3 ,12+6ι3 +1
5ι32))を得て(ここで、ι1 ,ι 2 ,ι 3 は既約
な3次式x3 +10x2 +15x+12の解)T3 記憶
手段に記憶する。
Further, the signature statement S receiving means and the signature statement R
Signature text S and signature text R respectively received from the receiving means
And the parameter A, which is public information, from the double vector / parameter / verification key receiving means is input to the double vector integer multiple unit, and SR is calculated, and the double vector T3 = ((ι1, 12 + 6ι1 + 15ι1 2 ), (ι2,
12 + 6ι2 + 15ι22 2 ), (ι3,12 + 6ι3 + 1
5ι3 2)) obtained (here, ι1, ι 2, ι 3 is the solution of about a cubic equation already x 3 + 10x 2 + 15x + 12) is stored in the T3 storage means.

【0197】さらに、T2 記憶手段およびT3 記憶手段
からそれぞれ2重ベクトルT2 および2重ベクトルT3
と、2重ベクトル・パラメータ・検証鍵受信手段から公
開情報であるパラメータAを2重ベクトル加算装置に入
力し、T1 +T2 を計算し、計算結果である2重ベクト
ルT4 =((η1 ,13+15η1 +13η12),(η
2 ,13+15η2 +13η22),(η3 ,13+15
η3 +13η32))を得て、T4 記憶手段に記憶する。
Further, the double vector T2 and the double vector T3 are stored in the T2 storage means and the T3 storage means, respectively.
And the parameter A, which is public information, from the double vector / parameter / verification key receiving means is input to the double vector adding device, and T1 + T2 is calculated. The calculated double vector T4 = ((η1, 13 + 15η1 + 13η1) 2 ), (η
2, 13 + 15η2 + 13η22 2 ), (η3,13 + 15
η3 + 13η3 2 )) is obtained and stored in the T4 storage means.

【0198】検証者端末Vは、T1 記憶手段およびT4
記憶手段からそれぞれ2重ベクトルT1 と2重ベクトル
T4 を検証手段に入力し、2重ベクトルT1 と2重ベク
トルT4 が一致していることを確認し、通信文Mは証明
者端末Uが作成したと認証する。
The verifier terminal V has T1 storage means and T4
The double vector T1 and the double vector T4 are input from the storage unit to the verification unit, and it is confirmed that the double vector T1 and the double vector T4 match, and the message M is created by the prover terminal U. And authenticate.

【0199】公開情報であるQ,A,QU は、例えば、
図20にあるように、信頼できる第3者センターが管理
するという形態がある。
The public information Q, A, and QU are, for example,
As shown in FIG. 20, there is a form in which the information is managed by a reliable third party center.

【0200】以上、2重ベクトル加算装置、2重ベクト
ル整数倍装置、2重ベクトル整数倍装置を用いた公開鍵
暗号システム、エルガマル型暗号システム、エルガマル
型署名システムの実施の形態について説明してきたが、
最後に、本発明の2重ベクトル加算装置、2重ベクトル
整数倍装置、2重ベクトル整数倍装置を用いた公開鍵暗
号システム、エルガマル型暗号システム、エルガマル型
署名システムを実現するプログラムを記録した記録媒体
の実施の形態について説明する。
The embodiments of the public key cryptosystem, the Elgamal type cryptosystem, and the Elgamal type signature system using the double vector addition device, the double vector integer multiplication device, and the double vector integer multiplication device have been described above. ,
Lastly, a recording which records a program for realizing a public key cryptosystem, an ElGamal cryptosystem, and an ElGamal signature system using the double vector addition device, the double vector integer multiplication device, and the double vector integer multiplication device of the present invention. An embodiment of a medium will be described.

【0201】本発明の2重ベクトル加算装置、2重ベク
トル整数倍装置、2重ベクトル整数倍装置を用いた公開
鍵暗号システム、エルガマル型暗号システム、エルガマ
ル型署名システムを実現するためのプログラムを記録し
た記録媒体は、上述の装置もしくはシステムの機能をコ
ンピュータが読みとり実行可能なプログラム言語によっ
てプログラムし、当該プログラムをCD−ROMやFD
等の記録媒体に記録することによって実現することがで
きる。
A program for realizing a public key cryptosystem, an ElGamal cryptosystem, and an ElGamal signature system using the double vector adder, the double vector integer multiplier, and the double vector integer multiplier of the present invention is recorded. The recorded recording medium is programmed by a computer-readable program language to execute the functions of the above-described device or system, and the program is stored in a CD-ROM or FD.
It can be realized by recording on a recording medium such as.

【0202】また上記記録媒体はサーバ装置などに備え
られるハードディスクなどの記憶手段でも良く、更に該
記憶手段にこのコンピュータプログラムを記録しておき
ネットワークを介してこのコンピュータプログラムを読
み込むことによって、本発明の記録媒体を実現すること
も可能である。
The recording medium may be storage means such as a hard disk provided in a server device or the like. Further, the computer program is recorded in the storage means, and the computer program is read via a network. It is also possible to realize a recording medium.

【0203】[0203]

【発明の効果】以上説明した通り、本発明により2重ベ
クトルの演算が可能となり、さらに、従来の、公開され
た通信網において秘密情報をやりとりする公開鍵暗号方
式に属する種々の技術では、約300桁もの大きな素数
pを用いる必要があったが、本発明の2重ベクトル演算
装置を用いた公開鍵配送法等によると、より小さな素数
を用いることができ(例えば種数が3の曲線を用いる場
合は約100桁)、より小規模な装置で暗号学的に十分
な強度をもつ公開鍵暗号方式に属する種々の技術を実現
できる効果がある。
As described above, according to the present invention, the operation of a double vector can be performed, and further, in various techniques belonging to the public key cryptosystem for exchanging secret information in a public communication network, about Although it was necessary to use a large prime number p as large as 300 digits, according to the public key distribution method using the double vector operation device of the present invention, a smaller prime number can be used (for example, a curve having a genus of 3 can be used). (Approximately 100 digits when used), which is advantageous in that various techniques belonging to a public key cryptosystem having cryptographically sufficient strength can be realized with a smaller device.

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

【図1】本発明の2重ベクトル加算装置の実施の形態を
示す図である。
FIG. 1 is a diagram showing an embodiment of a double vector adding apparatus according to the present invention.

【図2】本発明の2重ベクトル加算装置の実施の形態を
示す図である。
FIG. 2 is a diagram showing an embodiment of a double vector adding apparatus according to the present invention.

【図3】本発明の2重ベクトル加算装置の点集合変換装
置の実施の形態を示す図である。
FIG. 3 is a diagram showing an embodiment of a point set conversion device of the double vector addition device of the present invention.

【図4】本発明の2重ベクトル加算装置の点集合変換装
置の実施の形態を示す図である。
FIG. 4 is a diagram showing an embodiment of a point set conversion device of the double vector addition device of the present invention.

【図5】曲線を表すパラメータのデータフォーマットを
示す図である。
FIG. 5 is a diagram showing a data format of a parameter representing a curve.

【図6】共通曲線演算装置の行なう演算処理を示す流れ
図である。
FIG. 6 is a flowchart showing a calculation process performed by the common curve calculation device.

【図7】交点集合演算装置の行なう演算処理を示す流れ
図である。
FIG. 7 is a flowchart showing an operation process performed by the intersection set operation device.

【図8】本発明の2重ベクトル2倍装置の実施の形態を
示す図である。
FIG. 8 is a diagram showing an embodiment of a double vector doubling device of the present invention.

【図9】本発明の2重ベクトル2倍装置の実施の形態を
示す図である。
FIG. 9 is a diagram showing an embodiment of a double vector doubling device of the present invention.

【図10】本発明の2重ベクトル整数倍装置の実施の形
態を示す図である。
FIG. 10 is a diagram showing an embodiment of a double vector integer multiple device of the present invention.

【図11】本発明の2重ベクトル整数倍装置の処理の流
れを示す図である。
FIG. 11 is a diagram showing a processing flow of the double vector integer multiple device of the present invention.

【図12】本発明の公開鍵配送システムの実施の形態を
示す図である。
FIG. 12 is a diagram showing an embodiment of a public key distribution system of the present invention.

【図13】本発明の公開鍵配送システムのセンターの実
施の形態を示す図である。
FIG. 13 is a diagram showing an embodiment of a center of the public key distribution system of the present invention.

【図14】本発明の公開鍵配送システムの利用者端末の
実施の形態を示す図である。
FIG. 14 is a diagram showing an embodiment of a user terminal of the public key distribution system of the present invention.

【図15】本発明の公開鍵配送システムの処理の流れを
示す図である。
FIG. 15 is a diagram showing a processing flow of the public key distribution system of the present invention.

【図16】本発明のエルガマル型暗号システムの実施の
形態を示す図である。
FIG. 16 is a diagram showing an embodiment of an El Gamar type encryption system of the present invention.

【図17】本発明のエルガマル型暗号システムのセンタ
ーの実施の形態を示す図である。
FIG. 17 is a diagram showing an embodiment of the center of the El Gamal cryptosystem of the present invention.

【図18】本発明のエルガマル型暗号システムの利用者
端末の実施の形態を示す図である。
FIG. 18 is a diagram showing an embodiment of a user terminal of the ElGamal cryptosystem of the present invention.

【図19】本発明のエルガマル型暗号システムの処理の
流れを示す図である。
FIG. 19 is a diagram showing a flow of processing of the El Gamal cryptosystem of the present invention.

【図20】本発明のエルガマル型署名システムの実施の
形態を示す図である。
FIG. 20 is a diagram showing an embodiment of an ElGamal signature system of the present invention.

【図21】本発明のエルガマル型署名システムのセンタ
ーの実施の形態を示す図である。
FIG. 21 is a diagram showing an embodiment of the center of the El Gamal signature system of the present invention.

【図22】本発明のエルガマル型署名システムの証明者
端末の実施の形態を示す図である。
FIG. 22 is a diagram showing an embodiment of a prover terminal of the El Gamal signature system of the present invention.

【図23】本発明のエルガマル型署名システムの検証者
端末の実施の形態を示す図である。
FIG. 23 is a diagram showing an embodiment of a verifier terminal of the El Gamar type signature system of the present invention.

【図24】本発明のエルガマル型署名システムの処理の
流れを示す図である。
FIG. 24 is a diagram showing a processing flow of the El Gamar type signature system of the present invention.

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

11 和集合計算装置 12 点集合変換装置 13 メモリ 14 入力装置 15 出力装置 16 中央処理装置 21 共通曲線演算装置 22 交点集合演算装置 23 差集合演算装置 24 メモリ 25 入力装置 26 出力装置 31 2重ベクトル加算装置 32 メモリ 33 入力装置 34 出力装置 35 中央処理装置 41 2重ベクトル加算装置 42 2重ベクトル2倍装置 43 メモリ 44 入力装置 45 出力装置 46 中央処理装置 DESCRIPTION OF SYMBOLS 11 Union set calculation device 12 Point set conversion device 13 Memory 14 Input device 15 Output device 16 Central processing unit 21 Common curve calculation device 22 Intersection set calculation device 23 Difference set calculation device 24 Memory 25 Input device 26 Output device 31 Double vector addition Device 32 Memory 33 Input device 34 Output device 35 Central processing unit 41 Double vector addition device 42 Double vector doubling device 43 Memory 44 Input device 45 Output device 46 Central processing device

Claims (9)

【特許請求の範囲】[Claims] 【請求項1】一つの曲線を定めるパラメータAおよび予
め定められた有限体の2つの元の組を複数個並べて得ら
れる2重ベクトルQを前もって全員に知らせておき、 利用者端末Uは、整数nuをランダムに選び秘密に保持
し、利用者端末Vは、整数nv をランダムに選び秘密に
保持し、 利用者端末Uは、自身の秘密情報である前記整数nU と
公開情報である前記2重ベクトルQおよびパラメータA
を用いて前記2重ベクトルQをnU 倍した2重ベクトル
QU (QU =nU ・Q)を利用者端末Vに送信し、 利用者端末Vは、自身の秘密情報である前記整数nV と
公開情報である前記2重ベクトルQおよびパラメータA
を用いて前記2重ベクトルQをnV 倍し、2重ベクトル
QV =nV ・Qを利用者端末Uに送信し、 利用者端末Uは、利用者端末Vより送られた前記2重ベ
クトルQV と自身の秘密情報である前記整数nU と公開
情報である前記パラメータAを用いてQV をnU 倍した
2重ベクトルK(K=nU ・QV =nU ・nV ・Q)を
共有鍵Kとし、 利用者端末Vは、利用者端末Uより送られた前記2重ベ
クトルQU と自身の秘密情報である前記整数nV と公開
情報である前記パラメータAを用いてQU をnU 倍した
2重ベクトルK(K=nV ・QU =nV ・nU ・Q)を
共有鍵Kとすることを特徴とする公開鍵配送システム。
1. A parameter A for defining one curve and a double vector Q obtained by arranging a plurality of two original sets of a predetermined finite field are notified to all members in advance. nu is randomly selected and held secretly, the user terminal V randomly selects an integer nv and held secretly, and the user terminal U has the integer nU which is secret information of itself and the double which is public information. Vector Q and parameter A
And transmits the double vector QU (QU = nU · Q) obtained by multiplying the double vector Q by nU to the user terminal V. The user terminal V transmits the integer nV and the public information The double vector Q and the parameter A
, The double vector Q is multiplied by nV, and the double vector QV = nV · Q is transmitted to the user terminal U. The user terminal U receives the double vector QV sent from the user terminal V and The shared key K is a double vector K (K = nU · QV = nU · nV · Q) obtained by multiplying QV by nU using the integer nU as the secret information and the parameter A as the public information. The terminal V uses the double vector QU sent from the user terminal U, the integer nV, which is its own secret information, and the parameter A, which is public information, to multiply QU by nU to obtain a double vector K (K = A public key distribution system, wherein nV.QU = nV.nU.Q) is used as a shared key K.
【請求項2】センターと複数の利用者端末からなる公開
鍵配送システムにおいて、 前記センターが、 一つの曲線を定めるパラメータAおよび予め定められた
有限体の2つの元の組を複数個並べて得られる2重ベク
トルQの要求を受け付ける2重ベクトル・パラメータ要
求受信手段と、 2重ベクトルQとパラメータAを要求のあった利用者端
末に公開する2重ベクトル・パラメータ公開手段とから
構成され、 前記利用者端末が、 2重ベクトル・パラメータ要求送信手段と、2重ベクト
ル・パラメータ受信手段と、整数発生手段と、2重ベク
トル整数倍装置と、QU 出力手段と、QV 受信手段と、
秘密鍵記憶手段と、秘密通信手段とから構成され、 前記2重ベクトル・パラメータ要求送信手段は、センタ
ーに公開された2重ベクトルQとパラメータAを要求
し、 前記2重ベクトル・パラメータ受信手段は、前記2重ベ
クトル・パラメータ要求送信手段の要求によりセンター
から公開された前記2重ベクトルQと前記パラメータA
を受信し、保持し、前記2重ベクトル整数倍装置に出力
し、 前記整数発生手段は、整数nU をランダムに選び秘密に
保持し、2重ベクトル整数倍装置に当該整数nU を出力
し、 前記2重ベクトル整数倍装置は、前記2重ベクトル・パ
ラメータ受信手段からセンターにより公開された前記2
重ベクトルQと前記パラメータAを入力し、前記整数発
生手段から前記整数nU を入力し、前記2重ベクトルQ
をnU 倍することにより、2重ベクトルQU を計算し出
力し、 前記QU 出力手段は、前記2重ベクトル整数倍装置で計
算された前記2重ベクトルQU を他の利用者端末に送信
し、 前記QV 受信手段は、他の利用者端末から送信された2
重ベクトルQV を受信し、2重ベクトル整数倍装置に出
力し、 前記2重ベクトル整数倍装置は、前記他の利用者端末か
ら送信された前記2重ベクトルQV と前記整数発生手段
に記憶されている秘密情報である前記整数nUと前記2
重ベクトル・パラメータ受信手段に保持されている前記
パラメータAを入力し、前記2重ベクトルQV をnU 倍
することにより2重ベクトルKを作成し、秘密鍵記憶手
段に出力し、 前記秘密鍵記憶手段は、前記2重ベクトル整数倍装置に
より計算された2重ベクトルKを秘密鍵として記憶す
る、 ことを特徴とする公開鍵配送システム。
2. A public key distribution system comprising a center and a plurality of user terminals, wherein the center is obtained by arranging a plurality of two sets of a parameter A defining one curve and a predetermined finite field. A double vector / parameter request receiving means for receiving a request for the double vector Q; and a double vector / parameter disclosure means for publishing the double vector Q and the parameter A to the user terminal which has made the request. A second terminal, a double vector parameter request transmitting unit, a double vector parameter receiving unit, an integer generating unit, a double vector integer multiple unit, a QU output unit, a QV receiving unit,
The double vector / parameter request transmitting means requests a double vector Q and a parameter A disclosed to a center; and the double vector / parameter receiving means comprises a secret key storing means and a secret communication means. , The double vector Q and the parameter A disclosed by the center at the request of the double vector parameter request transmitting means.
Receiving, holding, and outputting the integer nU to the double vector integer multiplying device. The integer generating means randomly selects an integer nU and holds it secretly, and outputs the integer nU to the double vector integer multiplying device. The double vector integer multiplying device is configured to transmit the double vector parameter disclosed by the center from the double vector parameter receiving means.
The double vector Q and the parameter A are input, the integer nU is input from the integer generating means, and the double vector Q is input.
Is multiplied by nU to calculate and output a double vector QU. The QU output means transmits the double vector QU calculated by the double vector integer multiple device to another user terminal, The QV receiving means transmits the 2
Receiving the double vector QV and outputting it to a double vector integer multiple unit, wherein the double vector integer multiple unit is stored in the double vector QV transmitted from the other user terminal and the integer generating means. The integer nU that is secret information
The parameter A held in the double vector parameter receiving means is input, a double vector K is created by multiplying the double vector QV by nU, and output to the secret key storage means. Storing the double vector K calculated by the double vector integer multiple device as a secret key.
【請求項3】センターと複数の利用者端末からなる公開
鍵配送システムを実現するためのプログラムを記録した
コンピュータが読みとり可能な記録媒体において、 前記センターを構成するコンピュータを、 一つの曲線を定めるパラメータAおよび予め定められた
有限体の2つの元の組を複数個並べて得られる2重ベク
トルQの要求を受け付ける2重ベクトル・パラメータ要
求受信手段と、 2重ベクトルQとパラメータAを要求のあった利用者端
末に公開する2重ベクトル・パラメータ公開手段として
機能させるためのプログラムと、 前記利用者端末を構成するコンピュータを、 2重ベクトル・パラメータ要求送信手段と、2重ベクト
ル・パラメータ受信手段と、整数発生手段と、2重ベク
トル整数倍装置と、QU 出力手段と、QV 受信手段と、
秘密鍵記憶手段と、秘密通信手段として機能させるため
のプログラムであって、 前記2重ベクトル・パラメータ要求送信手段は、センタ
ーに公開された2重ベクトルQとパラメータAを要求
し、 前記2重ベクトル・パラメータ受信手段は、前記2重ベ
クトル・パラメータ要求送信手段の要求によりセンター
から公開された前記2重ベクトルQと前記パラメータA
を受信し、保持し、前記2重ベクトル整数倍装置に出力
し、 前記整数発生手段は、整数nU をランダムに選び秘密に
保持し、2重ベクトル整数倍装置に当該整数nU を出力
し、 前記2重ベクトル整数倍装置は、前記2重ベクトル・パ
ラメータ受信手段からセンターにより公開された前記2
重ベクトルQと前記パラメータAを入力し、前記整数発
生手段から前記整数nU を入力し、前記2重ベクトルQ
をnU 倍することにより、2重ベクトルQU を計算し出
力し、 前記QU 出力手段は、前記2重ベクトル整数倍装置で計
算された前記2重ベクトルQU を他の利用者端末に送信
し、 前記QV 受信手段は、他の利用者端末から送信された2
重ベクトルQV を受信し、2重ベクトル整数倍装置に出
力し、 前記2重ベクトル整数倍装置は、前記他の利用者端末か
ら送信された前記2重ベクトルQV と前記整数発生手段
に記憶されている秘密情報である前記整数nUと前記2
重ベクトル・パラメータ受信手段に保持されている前記
パラメータAを入力し、前記2重ベクトルQV をnU 倍
することにより2重ベクトルKを作成し、秘密鍵記憶手
段に出力し、 前記秘密鍵記憶手段は、前記2重ベクトル整数倍装置に
より計算された2重ベクトルKを秘密鍵として記憶す
る、プログラムを記録したことを特徴とする公開鍵配送
システムを実現するためのプログラムを記録したコンピ
ュータが読みとり可能な記録媒体。
3. A computer-readable recording medium storing a program for realizing a public key distribution system comprising a center and a plurality of user terminals, comprising: a computer forming the center; a parameter defining one curve; A double vector / parameter request receiving means for receiving a request for a double vector Q obtained by arranging a plurality of two original sets of A and a predetermined finite field, and requesting a double vector Q and a parameter A A program for functioning as a double vector parameter publishing unit to be disclosed to the user terminal; and a computer constituting the user terminal, a double vector parameter request transmitting unit, a double vector parameter receiving unit, Integer generating means, double vector integer multiplying device, QU output means, QV receiving means ,
Secret key storage means and a program for functioning as secret communication means, wherein said double vector parameter request transmission means requests a double vector Q and a parameter A disclosed to a center; The parameter receiving means comprises the double vector Q and the parameter A, which are made public by the center at the request of the double vector parameter request transmitting means.
Receiving, holding, and outputting the integer nU to the double vector integer multiplying device. The integer generating means randomly selects an integer nU and holds it secretly, and outputs the integer nU to the double vector integer multiplying device. The double vector integer multiplying device is configured to transmit the double vector parameter disclosed by the center from the double vector parameter receiving means.
The double vector Q and the parameter A are input, the integer nU is input from the integer generating means, and the double vector Q is input.
Is multiplied by nU to calculate and output a double vector QU. The QU output means transmits the double vector QU calculated by the double vector integer multiple device to another user terminal, The QV receiving means transmits the 2
Receiving the double vector QV and outputting it to a double vector integer multiple unit, wherein the double vector integer multiple unit is stored in the double vector QV transmitted from the other user terminal and the integer generating means. The integer nU that is secret information
The parameter A held in the double vector parameter receiving means is input, a double vector K is created by multiplying the double vector QV by nU, and output to the secret key storage means. Storing a double vector K calculated by the double vector integer multiplication device as a secret key, wherein the computer is readable by a computer storing a program for realizing a public key distribution system. Recording medium.
【請求項4】一つの曲線を定めるパラメータAおよび予
め定められた有限体の2つの元の組を複数個並べて得ら
れる2重ベクトルQを前もって全利用者に知らせてお
き、 各利用者端末Uは、整数nU を任意に選び秘密に保持
し、 各利用者端末Uは、自身の秘密情報である整数nU と公
開情報である2重ベクトルQおよびパラメータAを用い
て、2重ベクトルQをnU 倍した2重ベクトルQU (Q
U =nU ・Q)を公開鍵として各利用者に通知し、 送信を行なう利用者端末Uは、任意に選択した前記整数
nU と送信先の利用者端末Vの公開鍵QV を用いて送信
文を暗号化し、 前記暗号化された送信文を受信した利用者端末Vは、自
信が秘密に保持している整数nV を用いて受信文を復号
することを特徴とするエルガマル型暗号システム。
4. A method for informing all users in advance of a parameter A for defining one curve and a double vector Q obtained by arranging a plurality of two sets of two elements of a predetermined finite field. Arbitrarily selects an integer nU and keeps it secret. Each user terminal U converts the double vector Q into nU using an integer nU of its own secret information, a double vector Q of public information, and a parameter A. Double vector QUA (Q
U = nU.Q) as a public key to each user, and the transmitting user terminal U transmits a message using the arbitrarily selected integer nU and the public key QV of the destination user terminal V. Wherein the user terminal V that has received the encrypted transmission text decrypts the reception text using an integer nV that the user terminal V secretly holds.
【請求項5】センターと複数の利用者端末からなるエル
ガマル型暗号システムにおいて、 前記センターは、 各利用者端末から公開された公開鍵を受信する公開鍵受
信手段と、 利用者端末から一つの曲線を定めるパラメータA、予め
定められた有限体の2つの元の組を複数個並べて得られ
る2重ベクトルQ及び公開鍵の要求を受け付ける2重ベ
クトル・パラメータ・公開鍵要求受信手段と、 前記2重ベクトル・パラメータ・公開鍵要求受信手段に
より利用者端末から2重ベクトルQ、パラメータA、公
開鍵QU の要求が受け付けられると2重ベクトルQ、パ
ラメータA、公開鍵QU を要求のあった利用者端末に公
開する2重ベクトル・パラメータ・公開鍵公開手段とを
備え、 前記利用者端末は、2重ベクトル・パラメータ・公開鍵
要求送信手段と、2重ベクトル・パラメータ・公開鍵受
信手段と、整数発生手段と、2重ベクトル整数倍装置
と、公開鍵送信手段と、乱数発生装置と、暗号文C1 送
信手段と、暗号文C2 送信手段と、復号手段、暗号文C
1 受信手段、暗号文C2 受信手段とを含んで構成され、 送信側の利用者端末では、 前記2重ベクトル・パラメータ・公開鍵要求送信手段
は、前記センターに公開された2重ベクトルQ、パラメ
ータA、他の利用者端末の公開鍵QV を要求し、 前記2重ベクトル・パラメータ・公開鍵受信手段は、前
記2重ベクトル・パラメータ・公開鍵要求送信手段の要
求により前記センターから公開された2重ベクトルQ、
パラメータA、公開鍵QV を受信し、保持し、前記2重
ベクトル整数倍装置に出力し、 前記整数発生手段は、整数nU をランダムに選び秘密に
保持し、2重ベクトル整数倍装置に当該整数nU を出力
し、 前記2重ベクトル整数倍装置は、前記2重ベクトル・パ
ラメータ・公開鍵受信手段から前記センターにより公開
された2重ベクトルQとパラメータAを入力し、前記整
数発生手段から整数nU を入力し、2重ベクトルQをn
U 倍した2重ベクトルQU を計算し公開鍵送信手段に出
力し、 前記公開鍵送信手段は、2重ベクトルQU を公開鍵とし
て公開するためにセンターへ送付し、 前記乱数発生装置は、乱数RU を発生し秘密に保持し、
前記2重ベクトル整数倍装置に当該乱数RU を出力し、 前記2重ベクトル整数倍装置では、前記2重ベクトル・
パラメータ・公開鍵受信手段に保持されている2重ベク
トルQとパラメータAと前記乱数発生手段に記憶されて
いる秘密情報である整数RU とを入力し、2重ベクトル
QをRU 倍した2重ベクトルC1 を作成し、これを暗号
文とし、暗号文C1 記憶手段に記憶し、記2重ベクトル
・パラメータ・公開鍵受信手段に保持されている他の利
用者端末の公開鍵QV とパラメータAと前記乱数発生手
段に保持されている乱数RU とを入力し、2重ベクトル
QV をRU 倍した2重ベクトルT1 を計算し暗号文C2
送信手段に出力し、 前記暗号文C2 送信手段は、2重ベクトルT1 に含まれ
る各組の第1成分の総和t1 を計算し、これに通信文M
を加えて暗号文C2 を作成し、 前記暗号文C1 送信手段と前記暗号文C2 送信手段によ
り暗号文の組(C1 ,C2 )を他の利用者端末に送信
し、 受信側の利用者端末側では、 前記暗号文C1 受信手段、前記暗号文C2 受信手段によ
り送信者の利用者端末からの暗号文の組(C1 ,C2 )
を受信し保持し、 前記2重ベクトル整数倍装置は、前記暗号文C1 受信手
段に保持されている送信側の利用者端末から送信された
暗号文C1 と、前記整数発生手段に保持されている自己
の秘密情報である整数nv と前記2重ベクトル・パラメ
ータ・公開鍵受信手段に保持されているパラメータAを
入力し、2重ベクトルC1 をnv 倍した2重ベクトルT
2 を計算し復号手段に出力し、 前記復号手段では、前記暗号文C2 受信手段に保持され
ている送信側の利用者端末から送信された暗号文C2
と、前記2重ベクトル整数倍装置で計算された2重ベク
トルT2 を入力し、2重ベクトルT2 に含まれる各組の
第1成分の総和t2 を計算し、暗号文C2 からt2 を引
くことにより通信文Mを復号する、ことを特徴とするエ
ルガマル型暗号装置。
5. An ElGamal cryptosystem comprising a center and a plurality of user terminals, wherein the center comprises: a public key receiving means for receiving a public key published from each user terminal; A, a double vector / parameter / public key request receiving means for receiving a request for a public key and a double vector Q obtained by arranging a plurality of two original sets of a predetermined finite field; When the request for the double vector Q, parameter A, and public key QU is received from the user terminal by the vector / parameter / public key request receiving means, the user terminal that has requested the double vector Q, parameter A, and public key KU A public vector requesting means for publishing the double vector / parameter / public key request to the user terminal. A double vector / parameter / public key receiving means, an integer generating means, a double vector integer multiple device, a public key transmitting means, a random number generating apparatus, a ciphertext C1 transmitting means, and a ciphertext C2 transmitting means. And decryption means, ciphertext C
1 receiving means, ciphertext C2 receiving means, and at the user terminal on the transmitting side, said double vector / parameter / public key request transmitting means comprises: a double vector Q A: The public key QV of another user terminal is requested, and the double vector / parameter / public key receiving means requests the public key QV from the center upon request of the double vector / parameter / public key request transmitting means. Weight vector Q,
The parameter A and the public key QV are received and held, and output to the double vector integer multiplying device. The integer generating means randomly selects and holds the integer nU secretly, and stores the integer nU in the double vector integer multiplying device. The double vector integer multiplying device inputs the double vector Q and the parameter A published by the center from the double vector / parameter / public key receiving means, and outputs the integer nU from the integer generating means. And input the double vector Q to n
U calculates a double vector QU and outputs it to the public key transmitting means. The public key transmitting means sends the double vector QU to the center to publish it as a public key. And keep it secret
The random number RU is output to the double vector integer multiplying device, and the double vector integer multiplying device outputs the random number RU.
A double vector obtained by inputting the double vector Q held in the parameter / public key receiving means, the parameter A, and the integer RU as secret information stored in the random number generating means, and multiplying the double vector Q by RU. A public key QV of another user terminal and a parameter A, which are prepared in the ciphertext C1 storage means, are stored in the ciphertext C1 storage means, and are stored in the double vector / parameter / public key receiving means. The random number RU held in the random number generating means is inputted, a double vector T1 is obtained by multiplying the double vector QV by RU, and a ciphertext C2 is obtained.
The ciphertext C2 is output to the transmitting means, and the transmitting means calculates the sum t1 of the first components of each set included in the double vector T1, and calculates
To generate a ciphertext C2 by using the ciphertext C1 transmitting means and the ciphertext C2 transmitting means to transmit a ciphertext set (C1, C2) to another user terminal. The ciphertext set (C1, C2) from the user terminal of the sender is transmitted by the ciphertext C1 receiving means and the ciphertext C2 receiving means.
The double vector integer multiplying device is stored in the integer generating means and the ciphertext C1 transmitted from the transmitting user terminal held in the ciphertext C1 receiving means. An integer nv as its own secret information and the parameter A held in the double vector / parameter / public key receiving means are inputted, and a double vector T obtained by multiplying the double vector C1 by nv.
2 and outputs it to the decryption means. In the decryption means, the ciphertext C2 transmitted from the transmitting-side user terminal held in the ciphertext C2 receiving means is calculated.
And the double vector T2 calculated by the double vector integer multiplication device is input, the sum t2 of the first components of each set included in the double vector T2 is calculated, and t2 is subtracted from the ciphertext C2. An ElGamal-type encryption device for decrypting a communication message M.
【請求項6】センターと複数の利用者端末からなるエル
ガマル型暗号システムを実現するためのプログラムを記
録したコンピュータが読みとり可能な記録媒体におい
て、 前記センターを構成するコンピュータを、 各利用者端末から公開された公開鍵を受信する公開鍵受
信手段と、 利用者端末から一つの曲線を定めるパラメータA、予め
定められた有限体の2つの元の組を複数個並べて得られ
る2重ベクトルQ及び公開鍵の要求を受け付ける2重ベ
クトル・パラメータ・公開鍵要求受信手段と、 前記2重ベクトル・パラメータ・公開鍵要求受信手段に
より利用者端末から2重ベクトルQ、パラメータA、公
開鍵QU の要求が受け付けられると2重ベクトルQ、パ
ラメータA、公開鍵QU を要求のあった利用者端末に公
開する2重ベクトル・パラメータ・公開鍵公開手段とし
て機能させるためのプログラムと、 前記利用者端末を構成するコンピュータを、 2重ベクトル・パラメータ・公開鍵要求送信手段と、2
重ベクトル・パラメータ・公開鍵受信手段と、整数発生
手段と、2重ベクトル整数倍装置と、公開鍵送信手段
と、乱数発生装置と、暗号文C1 送信手段と、暗号文C
2 送信手段と、復号手段、暗号文C1 受信手段、暗号文
C2 受信手段として機能させるためのプログラムであっ
て、 送信側の利用者端末では、 前記2重ベクトル・パラメータ・公開鍵要求送信手段
は、前記センターに公開された2重ベクトルQ、パラメ
ータA、他の利用者端末の公開鍵QV を要求し、 前記2重ベクトル・パラメータ・公開鍵受信手段は、前
記2重ベクトル・パラメータ・公開鍵要求送信手段の要
求により前記センターから公開された2重ベクトルQ、
パラメータA、公開鍵QV を受信し、保持し、前記2重
ベクトル整数倍装置に出力し、 前記整数発生手段は、整数nU をランダムに選び秘密に
保持し、2重ベクトル整数倍装置に当該整数nU を出力
し、 前記2重ベクトル整数倍装置は、前記2重ベクトル・パ
ラメータ・公開鍵受信手段から前記センターにより公開
された2重ベクトルQとパラメータAを入力し、前記整
数発生手段から整数nU を入力し、2重ベクトルQをn
U 倍した2重ベクトルQU を計算し公開鍵送信手段に出
力し、 前記公開鍵送信手段は、2重ベクトルQU を公開鍵とし
て公開するためにセンターへ送付し、 前記乱数発生装置は、乱数RU を発生し秘密に保持し、
前記2重ベクトル整数倍装置に当該乱数RU を出力し、 前記2重ベクトル整数倍装置では、前記2重ベクトル・
パラメータ・公開鍵受信手段に保持されている2重ベク
トルQとパラメータAと前記乱数発生手段に記憶されて
いる秘密情報である整数RU とを入力し、2重ベクトル
QをRU 倍した2重ベクトルC1 を作成し、これを暗号
文とし、暗号文C1 記憶手段に記憶し、前記2重ベクト
ル・パラメータ・公開鍵受信手段に保持されている他の
利用者端末の公開鍵QV とパラメータAと前記乱数発生
手段に保持されている乱数RU とを入力し、2重ベクト
ルQV をRU 倍した2重ベクトルT1 を計算し暗号文C
2送信手段に出力し、 前記暗号文C2 送信手段は、2重ベクトルT1 に含まれ
る各組の第1成分の総和t1 を計算し、これに通信文M
を加えて暗号文C2 を作成し、 前記暗号文C1 送信手段と前記暗号文C2 送信手段によ
り暗号文の組(C1 ,C2 )を他の利用者端末に送信
し、 受信側の利用者端末側では、 前記暗号文C1 受信手段、前記暗号文C2 受信手段によ
り送信者の利用者端末からの暗号文の組(C1 ,C2 )
を受信し保持し、 前記2重ベクトル整数倍装置は、前記暗号文C1 受信手
段に保持されている送信側の利用者端末から送信された
暗号文C1 と、前記整数発生手段に保持されている自己
の秘密情報である整数nv と前記2重ベクトル・パラメ
ータ・公開鍵受信手段に保持されているパラメータAを
入力し、2重ベクトルC1 をnv 倍した2重ベクトルT
2 を計算し復号手段に出力し、 前記復号手段では、前記暗号文C2 受信手段に保持され
ている送信側の利用者端末から送信された暗号文C2
と、前記2重ベクトル整数倍装置で計算された2重ベク
トルT2 を入力し、2重ベクトルT2 に含まれる各組の
第1成分の総和t2 を計算し、暗号文C2 からt2 を引
くことにより通信文Mを復号する、プログラムを記録し
たことを特徴とするエルガマル型暗号システムを実現す
るためのプログラムを記録したコンピュータが読みとり
可能な記録媒体。
6. A computer-readable recording medium storing a program for realizing an ElGamal-type encryption system comprising a center and a plurality of user terminals, wherein the computer constituting the center is disclosed from each user terminal. Public key receiving means for receiving the generated public key, a parameter A defining one curve from the user terminal, a double vector Q obtained by arranging a plurality of two original sets of a predetermined finite field, and a public key And a request for a double vector Q, a parameter A, and a public key QU are received from the user terminal by the double vector, parameter, and public key request receiving means. And the double vector Q, the parameter A, and the public key QUA to the user terminal that has made the request. And program for functioning as a meter public key announcement means, a computer constituting the user terminal, and the double vector parameter public key request transmitting means, 2
Double vector / parameter / public key receiving means, integer generating means, double vector integer multiple device, public key transmitting means, random number generating apparatus, ciphertext C1 transmitting means, ciphertext C
(2) a program for causing a transmitting means, a decrypting means, a ciphertext C1 receiving means, and a ciphertext C2 receiving means to function, wherein the transmitting-side user terminal comprises: Requesting a double vector Q, a parameter A, and a public key QV of another user terminal, which have been disclosed to the center, and the double vector / parameter / public key receiving means includes the double vector / parameter / public key A double vector Q released from the center at the request of the request transmitting means,
The parameter A and the public key QV are received and held, and output to the double vector integer multiplying device. The integer generating means randomly selects and holds the integer nU secretly, and stores the integer nU in the double vector integer multiplying device. The double vector integer multiplying device inputs the double vector Q and the parameter A published by the center from the double vector / parameter / public key receiving means, and outputs the integer nU from the integer generating means. And input the double vector Q to n
U calculates a double vector QU and outputs it to the public key transmitting means. The public key transmitting means sends the double vector QU to the center to publish it as a public key. And keep it secret
The random number RU is output to the double vector integer multiplying device, and the double vector integer multiplying device outputs the random number RU.
A double vector obtained by inputting the double vector Q held in the parameter / public key receiving means, the parameter A, and the integer RU as secret information stored in the random number generating means, and multiplying the double vector Q by RU. C1 is created, this is used as a ciphertext, stored in the ciphertext C1 storage means, and the public key QV and the parameter A of the other user terminal held in the double vector / parameter / public key receiving means. The random number RU held in the random number generating means is input, and a double vector T1 obtained by multiplying the double vector QV by RU is calculated, and the ciphertext C
2 to the transmitting means, and the ciphertext C2 transmitting means calculates the total sum t1 of the first components of each set included in the double vector T1, and
To generate a ciphertext C2 by using the ciphertext C1 transmitting means and the ciphertext C2 transmitting means to transmit a ciphertext set (C1, C2) to another user terminal. The ciphertext set (C1, C2) from the user terminal of the sender is transmitted by the ciphertext C1 receiving means and the ciphertext C2 receiving means.
The double vector integer multiplying device is stored in the integer generating means and the ciphertext C1 transmitted from the transmitting user terminal held in the ciphertext C1 receiving means. An integer nv as its own secret information and the parameter A held in the double vector / parameter / public key receiving means are inputted, and a double vector T obtained by multiplying the double vector C1 by nv.
2 and outputs it to the decryption means. In the decryption means, the ciphertext C2 transmitted from the transmitting-side user terminal held in the ciphertext C2 receiving means is calculated.
And the double vector T2 calculated by the double vector integer multiplication device is input, the sum t2 of the first components of each set included in the double vector T2 is calculated, and t2 is subtracted from the ciphertext C2. A computer-readable recording medium storing a program for realizing an ElGamal-type encryption system, wherein the program is recorded for decrypting a communication message M.
【請求項7】一つの曲線を定めるパラメータAおよび予
め定められた有限体の2つの元の組を複数個並べて得ら
れる2重ベクトルQを前もって利用者に知らせておき、 証明者端末Uは、署名鍵として整数nU を任意に選び秘
密に保持しておき、 証明者端末Uは、自身の秘密情報である署名鍵nU と公
開情報である2重ベクトルQおよびパラメータAを用い
て2重ベクトルQをnU 倍した2重ベクトルQU =nU
・Qを検証鍵として公開し、 証明者端末Uは、通信文mに対して、任意に選択した整
数と署名鍵nU をもとに署名文を生成し、通信文mとと
もに検証者端末Vに送り、 検証者端末Vは、署名文および証明者端末Uの検証鍵Q
U をもとに通信文mを検証することを特徴とするエルガ
マル型署名システム。
7. A user is informed in advance of a parameter A for defining one curve and a double vector Q obtained by arranging a plurality of two element sets of a predetermined finite field. The prover terminal U arbitrarily selects an integer nU as a signature key and keeps it secret. The prover terminal U uses the signature key nU, which is its own secret information, the double vector Q, which is public information, and the parameter A to generate a double vector Q Vector KU = nU obtained by multiplying nU by nU
Publish the Q as a verification key, and the prover terminal U generates a signature sentence for the message m based on the arbitrarily selected integer and the signature key nU, and sends it to the verifier terminal V together with the message m. The verifier terminal V sends the signature statement and the verification key Q of the prover terminal U.
An El Gamal signature system that verifies a message m based on U.
【請求項8】センターと複数の証明者端末と検証者端末
からなるエルガマル型署名システムにおいて、 前記センターは、 署名者端末から公開された検証鍵を受信する検証鍵受信
手段と、 前記証明者端末若しくは前記検証者端末から予め定めら
れた有限体の2つの元の組を複数個並べて得られる2重
ベクトルQ、一つの曲線を定めるパラメータA、検証鍵
QU の要求を受け付ける2重ベクトル・パラメータ・検
証鍵要求受信手段と、 前記2重ベクトル・パラメータ・検証鍵要求受信手段に
より証明者端末若しくは検証者端末から2重ベクトル
Q、パラメータA、署名鍵QU の要求を受け付けると2
重ベクトルQ、パラメータA、検証鍵QU を要求のあっ
た端末に公開する2重ベクトル・パラメータ・検証鍵公
開手段とを含んで構成され、 前記証明者端末は、 2重ベクトル・パラメータ要求送信手段と、2重ベクト
ル・パラメータ受信手段と、整数発生手段と、2重ベク
トル整数倍装置と、検証鍵送信手段と、乱数発生装置
と、署名文R送信手段と、署名文S送信手段と、通信文
M送信手段とを含んで構成され、 前記2重ベクトル・パラメータ要求送信手段は、前記セ
ンターに公開された2重ベクトルQ、パラメータAを要
求し、 前記2重ベクトル・パラメータ受信手段は、前記2重ベ
クトル・パラメータ要求送信手段の要求により前記セン
ターから公開された2重ベクトルQ、パラメータAを受
信し、保持し、2重ベクトル整数倍装置に出力し、 前記整数発生手段は、整数nU をランダムに選びこれを
署名鍵として秘密に保持し、2重ベクトル整数倍装置に
署名鍵nU を出力し、 前記2重ベクトル整数倍装置は、前記2重ベクトル・パ
ラメータ受信手段から前記センターにより公開された2
重ベクトルQとパラメータAを入力し、前記整数発生手
段から前記署名鍵nU を入力し、2重ベクトルQをnU
倍した2重ベクトルQU を計算し検証鍵送信手段に出力
し、 前記検証鍵送信手段は、2重ベクトルQU を検証鍵とし
て公開するためにセンターへ送付し、 前記乱数発生装置は、乱数kを発生し秘密に保持し、前
記2重ベクトル整数倍装置に当該乱数kを出力し、 前記2重ベクトル整数倍装置では、前記2重ベクトル・
パラメータ受信手段に保持されている2重ベクトルQと
パラメータAと前記乱数発生手段に記憶されている秘密
情報である乱数kとを入力し、2重ベクトルQをk倍し
た2重ベクトルRを作成し、これを署名文Rとし、前記
署名文R送信手段、前記署名文S送信手段に出力しそれ
ぞれに記憶し、 前記通信文M送信手段は、通信文Mを保持し、前記署名
文S送信手段に出力し、 署名文S送信手段は、前記2重ベクトル整数倍装置から
k・Q=Rを、前記乱数発生装置から乱数kを、前記整
数発生手段からnU を入力し、前記通信文M送信手段か
ら通信文Mを入力し、S=(M−nU ・x(R))k-1
mod O(Q)(x(R)は2重ベクトルRに含ま
れる各組の第1成分の総和であり、O(Q)は2重ベク
トルQの位数)を計算し、計算結果であるSを署名文S
とし、 前記署名文R送信手段、前記署名文S送信手段、前記通
信文M送信手段からそれぞれ、署名文R、S及び通信文
Mを検証者端末に送信し、 前記検証者端末は、 2重ベクトル・パラメータ・検証鍵要求送信手段と、2
重ベクトル・パラメータ・検証鍵受信手段と、2重ベク
トル整数倍装置と、2重ベクトル加算装置と、署名文R
受信手段と、署名文S受信手段と、通信文M受信手段
と、T1 記憶手段と、T2 記憶手段と、T3 記憶手段
と、T4 記憶手段と、検証手段とを含んで構成され、 前記2重ベクトル・パラメータ・検証鍵要求送信手段
は、前記センターに公開された2重ベクトルQ、パラメ
ータA、検証鍵を要求し、 前記2重ベクトル・パラメータ・検証鍵受信手段は、前
記2重ベクトル・パラメータ・検証鍵要求送信手段の要
求によりセンターから公開された2重ベクトルQ、パラ
メータA、検証鍵QU を受信し、保持し、2重ベクトル
整数倍装置に出力し、 前記2重ベクトル整数倍装置は、前記2重ベクトル・パ
ラメータ・検証鍵受信手段からセンターにより公開され
た2重ベクトルQとパラメータAを入力し、前記通信文
M受信手段から通信文Mを入力し、2重ベクトルQをM
倍し、M・Qを計算し、計算結果である2重ベクトルT
1 をT1 記憶手段に出力し記憶し、 前記2重ベクトル整数倍装置は、前記署名文R受信手段
から、受信した2重ベクトルRに含まれる各組の第1成
分の総和x(R)を入力し、前記2重ベクトル・パラメ
ータ・検証鍵受信手段から前記センターにより公開され
た検証鍵QU とパラメータAを入力し、x(R)・QU
を計算し、計算結果である2重ベクトルT2 をT2 記憶
手段に出力し記憶し、 前記2重ベクトル整数倍装置は、前記署名文R受信手段
から受信した2重ベクトルRを、前記署名文S受信手段
から受信した署名文Sを、前記2重ベクトル・パラメー
タ・検証鍵受信手段から前記センターにより公開された
パラメータAを入力し、2重ベクトルRをS倍すること
により、S・Rを計算し、計算結果である2重ベクトル
T3 をT3 記憶手段に出力し記憶し、 前記2重ベクトル加算装置は、前記T2 記憶装置及びT
3 記憶装置から2重ベクトルT2 ,T3 を入力し、前記
2重ベクトル・パラメータ・検証鍵受信手段からパラメ
ータAを入力し、T2 +T3 を計算し、計算結果である
2重ベクトルT4 をT4 記憶手段に出力し記憶し、 前記検証手段は、前記T1 記憶手段に記憶されている2
重ベクトルT1 とT4記憶手段に記憶されている2重ベ
クトルT4 が一致しているかどうかを確認し、通信文M
が証明者端末Uが作成したか否かを認証することを特徴
とするエルガマル型署名システム。
8. An ElGamal type signature system comprising a center, a plurality of prover terminals, and a verifier terminal, wherein the center comprises: a verification key receiving means for receiving a verification key published from the signer terminal; Alternatively, a double vector Q obtained by arranging a plurality of two sets of a predetermined finite field from the verifier terminal, a parameter A defining one curve, and a double vector parameter for receiving a request for a verification key QU. When a request for a double vector Q, a parameter A, and a signature key QU is received from the prover terminal or the verifier terminal by the verification key request receiving means and the double vector / parameter / verification key request receiving means,
A double vector / parameter / verification key publishing means for publishing the duplicate vector Q, the parameter A, and the verification key QU to the requesting terminal. Communication between a double vector parameter receiving unit, an integer generating unit, a double vector integer multiple unit, a verification key transmitting unit, a random number generating unit, a signature sentence R transmitting unit, a signature sentence S transmitting unit, The double vector / parameter request transmitting means requests a double vector Q and a parameter A published to the center, and the double vector / parameter receiving means comprises: Receives and holds the double vector Q and the parameter A released from the center at the request of the double vector parameter request transmitting means, and performs double vector integer multiplication. The integer generating means randomly selects an integer nU and keeps it secretly as a signature key, and outputs a signature key nU to a double vector integer multiplying device. 2 published by the center from the double vector parameter receiving means
A double vector Q and a parameter A are input, and the signature key nU is input from the integer generating means.
The calculated double vector QU is calculated and output to the verification key transmitting means. The verification key transmitting means sends the double vector QU to the center to publish it as a verification key. The random number k is generated and kept secret, and the random number k is output to the double vector integer multiplying device.
A double vector Q, a parameter A, and a random number k, which is secret information stored in the random number generation unit, are stored in the parameter receiving unit, and a double vector R is generated by multiplying the double vector Q by k. The sentence R is sent to the signature sentence R transmitting means and the signature sentence S transmitting means and stored therein. The message M transmitting means holds the message M and transmits the signature sentence S. The signature sentence S transmitting means inputs k · Q = R from the double vector integer multiplying device, the random number k from the random number generating device, and nU from the integer generating means, and outputs the communication message M A message M is input from the transmitting means, and S = (M-nU.x (R)) k-1
mod O (Q) (x (R) is the sum of the first components of each set included in the double vector R, and O (Q) is the order of the double vector Q), and is the calculation result. S is the signature sentence S
The signature text R transmission means, the signature text S transmission means, and the communication text M transmission means respectively transmit the signature texts R, S and the communication text M to the verifier terminal. Vector / parameter / verification key request transmission means, 2
Double vector / parameter / verification key receiving means, double vector integer multiple device, double vector adding device, signature text R
Receiving means, signature sentence S receiving means, message M receiving means, T1 storage means, T2 storage means, T3 storage means, T4 storage means, and verification means; The vector / parameter / verification key request transmitting unit requests a double vector Q, a parameter A, and a verification key published to the center, and the double vector / parameter / verification key receiving unit transmits the double vector / parameter Receiving the double vector Q, the parameter A, and the verification key QU released from the center in response to the request of the verification key request transmitting means, holding and outputting the same to the double vector integer multiplying device; Inputting the double vector Q and parameter A published by the center from the double vector / parameter / verification key receiving means, inputting the message M from the message M receiving means, Double vector Q is M
Multiply, calculate M · Q, and calculate a double vector T
1 is output to the T1 storage means and stored therein. The double vector integer multiple unit outputs the sum x (R) of the first components of each set included in the received double vector R from the signature sentence R receiving means. The verification key QU and the parameter A published by the center are input from the double vector / parameter / verification key receiving means, and x (R) · QU
And outputs the double vector T2, which is the calculation result, to the T2 storage means and stores the double vector T2 in the T2 storage means. The double vector integer multiple unit converts the double vector R received from the signature text R receiving means into the signature text S S / R is calculated by inputting the parameter A published by the center from the double vector / parameter / verification key receiving unit to the signature sentence S received from the receiving unit and multiplying the double vector R by S times. Then, the double vector T3, which is the calculation result, is output to and stored in the T3 storage means, and the double vector addition device includes the T2 storage device and the T2 storage device.
3 The double vectors T2 and T3 are input from the storage device, the parameter A is input from the double vector / parameter / verification key receiving means, T2 + T3 is calculated, and the calculated double vector T4 is stored in the T4 storage means. The verification means outputs the data stored in the T1 storage means.
It is determined whether or not the double vector T1 matches the double vector T4 stored in the T4 storage means.
Authenticates whether the prover terminal U has created the signature or not.
【請求項9】センターと複数の証明者端末と検証者端末
からなるエルガマル型署名システムを実現するためのプ
ログラムを記録したコンピュータが読みとり可能な記録
媒体において、 前記センターを構成するコンピュータを、 署名者端末から公開された検証鍵を受信する検証鍵受信
手段と、 前記証明者端末若しくは前記検証者端末から予め定めら
れた有限体の2つの元の組を複数個並べて得られる2重
ベクトルQ、一つの曲線を定めるパラメータA、検証鍵
QU の要求を受け付ける2重ベクトル・パラメータ・検
証鍵要求受信手段と、 前記2重ベクトル・パラメータ・検証鍵要求受信手段に
より証明者端末若しくは検証者端末から2重ベクトル
Q、パラメータA、署名鍵QU の要求を受け付けると2
重ベクトルQ、パラメータA、検証鍵QU を要求のあっ
た端末に公開する2重ベクトル・パラメータ・検証鍵公
開手段として機能させるプログラムと、 前記証明者端末を構成するコンピュータを、 2重ベクトル・パラメータ要求送信手段と、2重ベクト
ル・パラメータ受信手段と、整数発生手段と、2重ベク
トル整数倍装置と、検証鍵送信手段と、乱数発生装置
と、署名文R送信手段と、署名文S送信手段と、通信文
M送信手段として機能させるプログラムであって、 前記2重ベクトル・パラメータ要求送信手段は、前記セ
ンターに公開された2重ベクトルQ、パラメータAを要
求し、 前記2重ベクトル・パラメータ受信手段は、前記2重ベ
クトル・パラメータ要求送信手段の要求により前記セン
ターから公開された2重ベクトルQ、パラメータAを受
信し、保持し、2重ベクトル整数倍装置に出力し、 前記整数発生手段は、整数nU をランダムに選びこれを
署名鍵として秘密に保持し、2重ベクトル整数倍装置に
署名鍵nU を出力し、 前記2重ベクトル整数倍装置は、前記2重ベクトル・パ
ラメータ受信手段から前記センターにより公開された2
重ベクトルQとパラメータAを入力し、前記整数発生手
段から前記署名鍵nU を入力し、2重ベクトルQをnU
倍した2重ベクトルQU を計算し検証鍵送信手段に出力
し、 前記検証鍵送信手段は、2重ベクトルQU を検証鍵とし
て公開するためにセンターへ送付し、 前記乱数発生装置は、乱数kを発生し秘密に保持し、前
記2重ベクトル整数倍装置に当該乱数kを出力し、 前記2重ベクトル整数倍装置では、前記2重ベクトル・
パラメータ受信手段に保持されている2重ベクトルQと
パラメータAと前記乱数発生手段に記憶されている秘密
情報である乱数kとを入力し、2重ベクトルQをk倍し
た2重ベクトルRを作成し、これを署名文Rとし、前記
署名文R送信手段、前記署名文S送信手段に出力しそれ
ぞれに記憶し、 前記通信文M送信手段は、通信文Mを保持し、前記署名
文S送信手段に出力し、 署名文S送信手段は、前記2重ベクトル整数倍装置から
k・Q=Rを、前記乱数発生装置から乱数kを、前記整
数発生手段からnU を入力し、前記通信文M送信手段か
ら通信文Mを入力し、S=(M−nU ・x(R))k-1
mod O(Q)(x(R)は2重ベクトルRに含ま
れる各組の第1成分の総和であり、O(Q)は2重ベク
トルQの位数)を計算し、計算結果であるSを署名文S
とし、 前記署名文R送信手段、前記署名文S送信手段、前記通
信文M送信手段からそれぞれ、署名文R、S及び通信文
Mを検証者端末に送信する、プログラムと、 前記検証者端末を構成するコンピュータを、 2重ベクトル・パラメータ・検証鍵要求送信手段と、2
重ベクトル・パラメータ・検証鍵受信手段と、2重ベク
トル整数倍装置と、2重ベクトル加算装置と、署名文R
受信手段と、署名文S受信手段と、通信文M受信手段
と、T1 記憶手段と、T2 記憶手段と、T3 記憶手段
と、T4 記憶手段と、検証手段として機能させるプログ
ラムであって、 前記2重ベクトル・パラメータ・検証鍵要求送信手段
は、前記センターに公開された2重ベクトルQ、パラメ
ータA、検証鍵を要求し、 前記2重ベクトル・パラメータ・検証鍵受信手段は、前
記2重ベクトル・パラメータ・検証鍵要求送信手段の要
求によりセンターから公開された2重ベクトルQ、パラ
メータA、検証鍵QU を受信し、保持し、2重ベクトル
整数倍装置に出力し、 前記2重ベクトル整数倍装置は、前記2重ベクトル・パ
ラメータ・検証鍵受信手段からセンターにより公開され
た2重ベクトルQとパラメータAを入力し、前記通信文
M受信手段から通信文Mを入力し、2重ベクトルQをM
倍し、M・Qを計算し、計算結果である2重ベクトルT
1 をT1 記憶手段に出力し記憶し、 前記2重ベクトル整数倍装置は、前記署名文R受信手段
から、受信した2重ベクトルRに含まれる各組の第1成
分の総和x(R)を入力し、前記2重ベクトル・パラメ
ータ・検証鍵受信手段から前記センターにより公開され
た検証鍵QU とパラメータAを入力し、x(R)・QU
を計算し、計算結果である2重ベクトルT2 をT2 記憶
手段に出力し記憶し、 前記2重ベクトル整数倍装置は、前記署名文R受信手段
から受信した2重ベクトルRを、前記署名文S受信手段
から受信した署名文Sを、前記2重ベクトル・パラメー
タ・検証鍵受信手段から前記センターにより公開された
パラメータAを入力し、2重ベクトルRをS倍すること
により、S・Rを計算し、計算結果である2重ベクトル
T3 をT3 記憶手段に出力し記憶し、 前記2重ベクトル加算装置は、前記T2 記憶装置及びT
3 記憶装置から2重ベクトルT2 ,T3 を入力し、前記
2重ベクトル・パラメータ・検証鍵受信手段からパラメ
ータAを入力し、T2 +T3 を計算し、計算結果である
2重ベクトルT4 をT4 記憶手段に出力し記憶し、 前記検証手段は、前記T1 記憶手段に記憶されている2
重ベクトルT1 とT4記憶手段に記憶されている2重ベ
クトルT4 が一致しているかどうかを確認し、通信文M
が証明者端末Uが作成したか否かを認証するプログラム
とを記録したことを特徴とするエルガマル型署名システ
ムを実現するためのプログラムを記録したコンピュータ
が読みとり可能な記録媒体。
9. A computer-readable recording medium on which a program for realizing an ElGamal-type signature system comprising a center, a plurality of prover terminals, and a verifier terminal is read. A verification key receiving means for receiving a verification key published from a terminal; and a double vector Q, one obtained by arranging a plurality of two sets of a predetermined finite field from the prover terminal or the verifier terminal. A parameter A for defining two curves, a double vector / parameter / verification key request receiving means for receiving a request for a verification key QU, and a double vector / parameter / verification key request receiving means for receiving a request from a prover terminal or a verifier terminal. When the request for the vector Q, the parameter A, and the signature key QU is accepted, 2
A program which functions as a double vector / parameter / verification key disclosing means for exposing the duplicate vector Q, the parameter A, and the verification key QU to the requesting terminal; and a computer constituting the prover terminal, comprising: Request transmitting means, double vector parameter receiving means, integer generating means, double vector integer multiple device, verification key transmitting means, random number generating apparatus, signature text R transmitting means, signature text S transmitting means And a program functioning as a message M transmitting means, wherein the double vector parameter request transmitting means requests a double vector Q and a parameter A published to the center, and receives the double vector parameter The means includes a double vector Q, a parameter released by the center upon request of the double vector parameter request transmitting means. Receiving and holding the data A, and outputting the received data to a double vector integer multiplying device. The integer generating means randomly selects an integer nU and secretly stores it as a signature key, and signs the double vector integer multiplying device. And outputs the key nU. The double vector integer multiplying device outputs the double vector parameter received by the center from the double vector parameter receiving means.
A double vector Q and a parameter A are input, and the signature key nU is input from the integer generating means.
The calculated double vector QU is calculated and output to the verification key transmitting means. The verification key transmitting means sends the double vector QU to the center to publish it as a verification key. The random number k is generated and kept secret, and the random number k is output to the double vector integer multiplying device.
A double vector Q, a parameter A, and a random number k, which is secret information stored in the random number generation unit, are stored in the parameter receiving unit, and a double vector R is generated by multiplying the double vector Q by k. The sentence R is sent to the signature sentence R transmitting means and the signature sentence S transmitting means and stored therein. The message M transmitting means holds the message M and transmits the signature sentence S. The signature sentence S transmitting means inputs k · Q = R from the double vector integer multiplying device, the random number k from the random number generating device, and nU from the integer generating means, and outputs the communication message M A message M is input from the transmitting means, and S = (M-nU.x (R)) k-1
mod O (Q) (x (R) is the sum of the first components of each set included in the double vector R, and O (Q) is the order of the double vector Q), and is the calculation result. S is the signature sentence S
The signature statement R transmitting means, the signature statement S transmitting means, and the message M transmitting means respectively transmit the signature statements R, S and the message M to the verifier terminal. A computer comprising a double vector / parameter / verification key request transmitting means;
Double vector / parameter / verification key receiving means, double vector integer multiple device, double vector adding device, signature text R
A program for functioning as a receiving unit, a signature sentence S receiving unit, a communication sentence M receiving unit, a T1 storage unit, a T2 storage unit, a T3 storage unit, a T4 storage unit, and a verification unit; The double vector / parameter / verification key request transmitting unit requests the double vector Q, the parameter A, and the verification key disclosed to the center, and the double vector / parameter / verification key receiving unit transmits the double vector / The double vector Q, the parameter A, and the verification key QU, which have been released from the center in response to a request from the parameter / verification key request transmitting means, are received, held, and output to a double vector integer multiplying device. Receives the double vector Q and the parameter A published by the center from the double vector / parameter / verification key receiving means, and receives the message from the message M receiving means. Input a message M and convert the double vector Q to M
Multiply, calculate M · Q, and calculate a double vector T
1 is output to the T1 storage means and stored therein. The double vector integer multiple unit outputs the sum x (R) of the first components of each set included in the received double vector R from the signature sentence R receiving means. The verification key QU and the parameter A published by the center are input from the double vector / parameter / verification key receiving means, and x (R) · QU
And outputs the double vector T2, which is the calculation result, to the T2 storage means and stores the double vector T2 in the T2 storage means. The double vector integer multiple unit converts the double vector R received from the signature text R receiving means into the signature text S S / R is calculated by inputting the parameter A published by the center from the double vector / parameter / verification key receiving unit to the signature sentence S received from the receiving unit and multiplying the double vector R by S times. Then, the double vector T3, which is the calculation result, is output to and stored in the T3 storage means, and the double vector addition device includes the T2 storage device and the T2 storage device.
3 The double vectors T2 and T3 are input from the storage device, the parameter A is input from the double vector / parameter / verification key receiving means, T2 + T3 is calculated, and the calculated double vector T4 is stored in the T4 storage means. The verification means outputs the data stored in the T1 storage means.
It is determined whether or not the double vector T1 matches the double vector T4 stored in the T4 storage means.
And a computer-readable recording medium storing a program for realizing an ElGamal-type signature system, wherein the program verifies whether or not the certificate has been created by the prover terminal U.
JP2001254229A 2001-08-24 2001-08-24 Public key distributing system, elgamal encryption system and elgamal signature system Pending JP2002135242A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001254229A JP2002135242A (en) 2001-08-24 2001-08-24 Public key distributing system, elgamal encryption system and elgamal signature system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001254229A JP2002135242A (en) 2001-08-24 2001-08-24 Public key distributing system, elgamal encryption system and elgamal signature system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP23252897A Division JP3292107B2 (en) 1997-08-28 1997-08-28 Double vector adder, double vector doubler and double vector integer multiplier

Publications (1)

Publication Number Publication Date
JP2002135242A true JP2002135242A (en) 2002-05-10

Family

ID=19082420

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001254229A Pending JP2002135242A (en) 2001-08-24 2001-08-24 Public key distributing system, elgamal encryption system and elgamal signature system

Country Status (1)

Country Link
JP (1) JP2002135242A (en)

Similar Documents

Publication Publication Date Title
JP6959994B2 (en) Application generation of encryption key for data deduplication
JP3292107B2 (en) Double vector adder, double vector doubler and double vector integer multiplier
EP0503119B1 (en) Public key cryptographic system using elliptic curves over rings
JP3862500B2 (en) High-speed elliptic curve encryption method and apparatus by direct embedding method
JP4546231B2 (en) ID-based signature and encryption system and method
JPH11502321A (en) Multipurpose fast encryption secure sequence generator based on zeta directional function
JP2009272995A (en) Privacy-preserving scalar product calculation system, privacy-preserving scalar product calculation method, and cryptographic key sharing system
JP2000500886A (en) Accelerated public key cryptography by precomputing randomly generated pairs
US20220006615A1 (en) Computer-implemented system and method for distributing shares of digitally signed data
JP2021523620A (en) Methods and systems for communicating secrets
Singh et al. Secured user's authentication and private data storage-access scheme in cloud computing using Elliptic curve cryptography
Meshram et al. A subtree‐based transformation model for cryptosystem using chaotic maps under cloud computing environment for fuzzy user data sharing
WO2006126668A1 (en) Pseudo-random function calculating device and method, and number limited anonymous authentication system and method
CN102301643B (en) Methods and system for managing dynamic cryptographic credentials in data processing system
JPH11317734A (en) Data ciphering and deciphering method and network system using the method
JP2002026892A (en) Key sharing method, private key generating method, common key generating method, encryption communication method, private key generator, common key generator, encryption communication system and recording medium
US11616994B2 (en) Embedding information in elliptic curve base point
Rawat et al. Computation and communication efficient Chinese remainder theorem based multi-party key generation using modified RSA
JP2002135242A (en) Public key distributing system, elgamal encryption system and elgamal signature system
Nagaty A public key cryptosystem and signature scheme based on numerical series
KR100326226B1 (en) Method of Generating Matix Group Public Key
JP3706398B2 (en) Signature, authentication and secret communication method using elliptic curve
JP2007208410A (en) Id base encryption communication system
JP5529691B2 (en) Key exchange system, key exchange method, and key exchange program
JP3634097B2 (en) Cryptographic communication system

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040727

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20041130