JP5132724B2 - KEY GENERATION DEVICE, KEY GENERATION METHOD, AND KEY GENERATION PROGRAM - Google Patents

KEY GENERATION DEVICE, KEY GENERATION METHOD, AND KEY GENERATION PROGRAM Download PDF

Info

Publication number
JP5132724B2
JP5132724B2 JP2010146259A JP2010146259A JP5132724B2 JP 5132724 B2 JP5132724 B2 JP 5132724B2 JP 2010146259 A JP2010146259 A JP 2010146259A JP 2010146259 A JP2010146259 A JP 2010146259A JP 5132724 B2 JP5132724 B2 JP 5132724B2
Authority
JP
Japan
Prior art keywords
variable
polynomial
generation
coordinate
generating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010146259A
Other languages
Japanese (ja)
Other versions
JP2010244070A (en
Inventor
浩一郎 秋山
泰宏 後藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2010146259A priority Critical patent/JP5132724B2/en
Publication of JP2010244070A publication Critical patent/JP2010244070A/en
Application granted granted Critical
Publication of JP5132724B2 publication Critical patent/JP5132724B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、公開鍵暗号方式を利用したデジタル署名生成装置、デジタル署名検証装置、鍵生成装置に関する。   The present invention relates to a digital signature generation apparatus, a digital signature verification apparatus, and a key generation apparatus that use a public key cryptosystem.

電子メールを始めとする多くの情報がネットワークを行き交うことにより、人々がコミュニケーションを行なうネットワーク社会において、暗号技術は情報の機密性や真正性を守る手段として広く活用されている。   Cryptographic technology is widely used as a means of protecting the confidentiality and authenticity of information in a network society in which people communicate with each other by sending and receiving a large amount of information such as electronic mail.

暗号技術は大きく共通鍵暗号技術と公開鍵暗号技術に分けることができ、共通鍵暗号はデータの攪拌アルゴリズムに基づいた暗号方式で、高速に暗号化/復号ができる一方で、予め共通の鍵を持った2者間でしか秘密通信や認証通信ができない。公開鍵暗号は数学的なアルゴリズムに基づいた暗号方式で、共通鍵暗号ほど暗号化/復号が高速でないが、事前の鍵共有を必要とせず、通信の際は送信相手が公開している公開鍵を利用して秘密通信を実現し、送信者の秘密鍵を利用してデジタル署名を施すことで(成りすましを防ぐ)認証通信が可能となるという特徴がある。   Encryption technology can be broadly divided into common key encryption technology and public key encryption technology. Common key encryption is an encryption method based on a data agitation algorithm, and can be encrypted / decrypted at high speed, while a common key is used in advance. Secret communication and authentication communication can only be performed between two parties. Public key cryptography is an encryption method based on a mathematical algorithm, and encryption / decryption is not as fast as common key cryptography, but it does not require prior key sharing, and a public key that is disclosed by the other party during communication. The secret communication is realized by using the secret key, and the digital communication is performed by using the secret key of the sender (to prevent impersonation), thereby enabling the authentication communication.

このため、共通鍵暗号に基づくデジタル署名は秘密鍵を共有できる環境にある相手間や機器間で、高速性が求められている場合か、署名生成装置か署名検証装置のどちらか一方の能力が低い場合の認証手段として用いられている。また、公開鍵暗号に基づくデジタル署名は、インターネットに開設されているネットショッピング、銀行や証券会社のオンラインサイトなど秘密鍵が共有できない環境にある場合や、秘密鍵が共有できる環境にある場合でも、署名生成装置か署名検証装置のどちらの計算能力も高い場合に用いられている。   For this reason, digital signatures based on common key cryptography have the capability of either a signature generation device or a signature verification device when high speed is required between peers or devices in an environment where a secret key can be shared. It is used as an authentication means for low cases. In addition, digital signatures based on public key cryptography can be used in environments where private keys cannot be shared, such as online shopping established on the Internet, online sites of banks and securities companies, and even in environments where private keys can be shared. It is used when both the signature generation device and the signature verification device have high computing capabilities.

代表的な公開鍵暗号には、RSA暗号と楕円曲線暗号があり、それぞれに基づくデジタル署名方式が提案されている。RSA暗号は素因数分解問題の困難性が安全性の根拠となっており、署名生成演算及び署名検証演算として冪乗剰余演算が用いられている。楕円曲線暗号は楕円曲線上の離散対数問題の困難性が安全性の根拠となっており、署名生成演算並びに署名検証演算として楕円曲線上の点演算が用いられている。これらの公開鍵暗号は特定の鍵(公開鍵)に関する解読法(署名偽造法)は提案されているものの、一般的な解読法(署名偽造法)は知られていないため、安全性に関する重大な問題は、後に述べる量子計算機による解読法を除き、現在までのところ見つかっていない。   Typical public key ciphers include RSA cipher and elliptic curve cipher, and digital signature schemes based on them are proposed. RSA cryptography is based on the difficulty of the prime factorization problem, and power-residue calculation is used as signature generation calculation and signature verification calculation. In elliptic curve cryptography, the difficulty of the discrete logarithm problem on the elliptic curve is the basis of security, and point computation on the elliptic curve is used as signature generation computation and signature verification computation. Although these public key ciphers have been proposed for cryptanalysis (signature forgery) with respect to a specific key (public key), general cryptanalysis (signature forgery) is not known. No problem has been found so far, except for the quantum computer cryptanalysis described later.

この他の公開鍵暗号に基づくデジタル署名には、体の拡大理論を利用して構成され連立方程式の求解問題に安全性の根拠をおいた多次多変数暗号に基づくSFLASHと呼ばれる方式がある。しかし、多次多変数暗号には有力な攻撃方法が知られており、その解読法を避けるために必要な鍵サイズを大きくしなくてはならず、実用性が問題視されはじめている。   Other digital signatures based on public key cryptography include a system called SFLASH based on multi-order multivariate cryptography, which is configured using a field expansion theory and provides a basis for security in solving the simultaneous equations. However, a powerful attack method is known for multi-order multi-variable cryptography, and the key size necessary to avoid the decryption method must be increased, and practicality is beginning to be regarded as a problem.

一方で、現在デジタル署名に広く利用されているRSA暗号と楕円曲線暗号であっても、量子計算機が出現すれば解読される危険に晒されている。量子計算機とは量子力学で知られているエンタングルメントという物理現象を利用して、(現在の計算機とは違った原理に基づいて)超並列計算を行わせることができる計算機であり、現在までのところ実験レベルでしか動作が確認されていない仮想の計算機であるが、実現に向けた研究開発が進められている。この量子計算機を用いて1994年にShorは素因数分解や離散対数問題を効率的に解くアルゴリズムが構成できることを示した(非特許文献1参照)。   On the other hand, even RSA cryptography and elliptic curve cryptography currently widely used for digital signatures are exposed to the risk of being decrypted if a quantum computer appears. A quantum computer is a computer that can perform massively parallel computation (based on a principle different from that of current computers) by utilizing the physical phenomenon known as quantum mechanics called entanglement. However, although it is a virtual computer whose operation has been confirmed only at the experimental level, research and development for its realization is in progress. In 1994, using this quantum computer, Shor showed that an algorithm for efficiently solving prime factorization and discrete logarithm problems can be constructed (see Non-Patent Document 1).

即ち、量子計算機が実現すれば素因数分解に基づくRSA暗号や、(楕円曲線上の)離散対数問題に基づく楕円曲線暗号は解読できることになる。   That is, if a quantum computer is realized, RSA cryptography based on prime factorization and elliptic curve cryptography based on a discrete logarithm problem (on an elliptic curve) can be deciphered.

このような状況の下、量子計算機が実現されてもなお安全な公開鍵暗号に基づくデジタル署名の研究が近年行われるようになってきた。現時点で実現可能で公開鍵暗号で量子計算機でも解読が難しいとされている方式には多次多変数暗号に基づくSFLASHと呼ばれる方式があるが、多次多変数暗号は前記の通り、現状の計算機に対して安全とするために必要となる鍵サイズが膨大となっており、実用化が危ぶまれている。   Under such circumstances, research on digital signatures based on public key cryptography that is still secure even if a quantum computer is realized has been conducted in recent years. There is a method called SFFLASH based on multi-order multi-variable cryptography as a method that can be realized at present and is difficult to decipher even with a quantum computer using public key cryptography. The key size required for security is enormous, and its practical use is in danger.

更に、公開鍵暗号は共通鍵暗号と比較して、回路規模が大きく、処理時間も掛かるため、モバイル端末などの小電力環境では実現できないか実現しても処理時間がかかるという問題があった。このため、小電力環境でも実現できる公開鍵暗号が求められている。   Furthermore, since public key cryptography has a larger circuit scale and takes longer processing time than common key cryptography, there is a problem that it cannot be realized in a low-power environment such as a mobile terminal or even if it is realized. For this reason, public key cryptography that can be realized even in a low-power environment is required.

一般に公開鍵暗号に基づくデジタル署名は(素因数分解問題や離散対数問題などの)計算困難な問題を見出し、(秘密鍵を知らずに)平文と呼ばれるメッセージにデジタル署名を生成しようとすることが当該計算困難な問題を解くことと計算量的に同等になるように構成する。しかし、逆に計算困難な問題が見つかったとしても必ずしもその問題を安全性の根拠とするようにデジタル署名を構成できる訳ではない。なぜなら、計算が困難すぎる問題に安全性の根拠をおくと鍵を生成する問題も困難になり、構成が難しくなる。一方で問題を鍵生成が可能となる程度に容易とすると、デジタル署名の偽造も容易になってしまう。   In general, a digital signature based on public key cryptography finds a difficult calculation problem (such as a prime factorization problem or a discrete logarithm problem) and tries to generate a digital signature in a message called plaintext (without knowing the secret key). It is configured so that it is computationally equivalent to solving difficult problems. However, even if a problem that is difficult to calculate is found, the digital signature cannot always be configured so that the problem is based on security. This is because the problem of generating a key becomes difficult if a security reason is placed on a problem that is too difficult to calculate, and the configuration becomes difficult. On the other hand, if the problem is made easy to the extent that key generation is possible, forgery of a digital signature becomes easy.

従って、公開鍵暗号を構成するには計算困難な問題を見つけるとともに、鍵を生成できる程には容易だが、(生成した秘密鍵を知らずに)解読できる程には容易でないという絶妙なバランスを持つ問題に作り変えるという創造性が必要であり、そこが難しいために現在まで数えるほどの公開鍵暗号に基づくデジタル署名しか提案されてこなかった。   Therefore, it is difficult to calculate public key cryptography, and it has an exquisite balance that it is easy enough to generate a key, but not easy to decrypt (without knowing the generated private key). The creativity of transforming into a problem is necessary, and because it is difficult, only digital signatures based on public key cryptography have been proposed.

P.W.Shor:“Algorithms for Quantum Computation : Discrete Log and Factoring”,Proceedings of the 35th Annual IEEE Symposium on Foundations of Computer Science,1994.P.W.Shor: “Algorithms for Quantum Computation: Discrete Log and Factoring”, Proceedings of the 35th Annual IEEE Symposium on Foundations of Computer Science, 1994.

このように、従来は、量子計算機が出現しても安全性が確保でき、現在の計算機でも安全に実現可能であるとともに、小電力環境での実現可能性がある公開鍵暗号に基づくデジタル署名システム(鍵を生成し、デジタル署名を生成し、検証を行うためのシステム)が存在しなかった。   In this way, conventionally, a digital signature system based on public key cryptography that can secure safety even if a quantum computer appears, can be safely realized with a current computer, and can be realized in a low-power environment. (A system for generating keys, generating digital signatures, and verifying) did not exist.

そこで、本発明は、安全性・信頼性の高いデジタル署名を生成することができ、しかも少ない計算量で実現可能な公開鍵暗号に基づくデジタル署名システムを提供する。   Therefore, the present invention provides a digital signature system based on public key cryptography that can generate a highly secure and reliable digital signature and can be realized with a small amount of calculation.

本発明に係るデジタル署名生成装置は、有限体Fならびに署名生成用の秘密鍵として、x座標、y座標、パラメータs、及びパラメータtで表される前記有限体F上定義された3次元多様体A(x,y,s,t)内の曲面のうち、x座標及びy座標がパラメータs及びtの関数で表されたセクションD(u(s,t),u(s,t),s,t)を記憶する記憶手段を備え、メッセージmのハッシュ値を計算し、前記ハッシュ値を前記有限体F上定義された1変数多項式h(t)に埋め込み、ハッシュ値多項式を生成し、前記記憶手段に記憶されたセクションのパラメータsに前記ハッシュ値多項式を代入することで、x座標及びy座標がパラメータtの関数で表された前記セクション上の曲線であるデジタル署名Ds(U(t),U(t),t)を生成する。 The digital signature generation apparatus according to the present invention has a three-dimensional definition defined on the finite field F q represented by an x coordinate, a y coordinate, a parameter s, and a parameter t as a finite field F q and a secret key for signature generation. Of the curved surfaces in the manifold A (x, y, s, t), the section D (u x (s, t), u y (s, storage means for storing t), s, t), calculates a hash value of the message m, embeds the hash value in a one-variable polynomial h (t) defined on the finite field F q , and a hash value polynomial And substituting the hash value polynomial into the parameter s of the section stored in the storage means, the digital signature Ds which is a curve on the section in which the x coordinate and the y coordinate are expressed as a function of the parameter t (U x (t Generates a U y (t), t) .

本発明に係るデジタル署名検証装置は、有限体Fならびに公開鍵として、x座標、y座標、パラメータs、及びパラメータtで表される前記有限体F上定義された3次元多様体A(x,y,s,t)の多項式を記憶する記憶手段を備え、メッセージmを入力するとともに、前記3次元多様体A(x,y,s,t)内の曲面のうち、x座標及びy座標がパラメータs及びtの関数で表されたセクションD(u(s,t),u(s,t),s,t)を署名生成用の秘密鍵として用いて生成された、x座標及びy座標がパラメータtの関数で表された前記セクション上の曲線である、前記メッセージmに対応したデジタル署名Ds:(U(t),U(t),t)を入力する。前記メッセージmのハッシュ値を計算し、前記ハッシュ値を、パラメータtを有する前記有限体F上定義された1変数多項式h(t)に埋め込み、ハッシュ値多項式を生成し、前記記憶手段に記憶された前記多項式のパラメータsに前記ハッシュ値多項式を代入して、前記ハッシュ値に対応した代数曲面X(x,y,t)を計算し、前記代数曲面X(x,y,t)の座標x及び座標yに、前記デジタル署名のx座標を表す関数U(t)と、y座標を表す関数Uy(t)をそれぞれ代入することにより、前記メッセージ及び前記デジタル署名の正当性を検証する。 The digital signature verification apparatus according to the present invention includes a three-dimensional manifold A (defined on the finite field F q represented by an x coordinate, a y coordinate, a parameter s, and a parameter t as a finite field F q and a public key. storage means for storing a polynomial of x, y, s, t), a message m is input, and among the curved surfaces in the three-dimensional manifold A (x, y, s, t), the x coordinate and y X generated using the section D (u x (s, t), u y (s, t), s, t) whose coordinates are expressed as a function of parameters s and t as a secret key for signature generation The digital signature Ds: (U x (t), U y (t), t) corresponding to the message m, which is a curve on the section whose coordinates and y coordinates are expressed as a function of the parameter t, is input. A hash value of the message m is calculated, and the hash value is embedded in a one-variable polynomial h (t) defined on the finite field F q having the parameter t, and a hash value polynomial is generated and stored in the storage means The algebraic surface X (x, y, t) corresponding to the hash value is calculated by substituting the hash value polynomial into the parameter s of the generated polynomial, and the coordinates of the algebraic surface X (x, y, t) are calculated. The validity of the message and the digital signature is verified by substituting the function U x (t) representing the x coordinate of the digital signature and the function U y (t) representing the y coordinate into x and the coordinate y, respectively. To do.

本発明の鍵生成装置は、有限体Fならびに署名検証用の公開鍵として用いられる、x座標、y座標、パラメータs、及びパラメータtで表される前記有限体F上定義された3次元多様体A(x,y,s,t)と、署名生成用の秘密鍵として用いられる前記3次元多様体A(x,y,s,t)内の曲面のうち、x座標及びy座標がパラメータs及びtの関数で表されたセクションを生成する鍵生成装置であって、前記有限体F上定義された、パラメータs、tに関する第1の2変数多項式λ(s,t)を生成し、前記第1の2変数多項式λ(s,t)で割り切れる、前記有限体F上定義された第2の2変数多項式λ(s,t)を生成し、前記有限体F上定義された、パラメータs,tに関する2つの2変数多項式u(s,t)、v(s,t)を、当該2つの2変数多項式の差分{u(s,t)−v(s,t)}が前記第1の2変数多項式λ(s,t)となるように生成し、前記有限体F上定義された、パラメータs,tに関する2つの2変数多項式u(s,t)、v(s,t)を、当該2つの2変数多項式の差分{u(s,t)−v(s,t)}が前記第2の2変数多項式λ(s,t)となるように生成し、2変数多項式u(s,t)をx座標、2変数関数u(s,t)をy座標とするセクションD1:(x,y,s,t)=(u(s,t),u(s,t),s,t)と、2変数多項式v(s,t)をx座標、2変数関数v(s,t)をy座標とするセクションD2:(x,y,s,t)=(v(s,t),v(s,t),s,t)を生成する。また、前記セクションD1及び前記セクションD2を含む前記3次元多様体A(x,y,s,t)の多項式を生成する。 The key generation device of the present invention is a three-dimensional defined on the finite field F q represented by an x coordinate, a y coordinate, a parameter s, and a parameter t, which are used as a finite field F q and a public key for signature verification. Of the manifold A (x, y, s, t) and the curved surface in the three-dimensional manifold A (x, y, s, t) used as a secret key for signature generation, the x coordinate and y coordinate are A key generation device for generating a section represented by a function of parameters s and t, wherein a first two-variable polynomial λ x (s, t) relating to parameters s and t defined on the finite field F q is obtained. generated, the first 2-variable polynomial λ x (s, t) is divisible by the second 2-variable polynomial λ y (s, t) that are defined on the finite field F q generates the finite field F q on defined parameters s, t for the two 2-variable polynomials u x (s, t , V x (s, t) and the difference of the two 2-variable polynomials {u x (s, t) -v x (s, t)} is the first 2-variable polynomial λ x (s, t) The two two-variable polynomials u y (s, t) and v y (s, t) related to the parameters s and t defined on the finite field F q are generated as the two two-variable polynomials. Is generated so that the difference {u y (s, t) −v y (s, t)} becomes the second two-variable polynomial λ y (s, t), and the two-variable polynomial u x (s, t) ) the x-coordinate, variable determined u y (s, sections a t) and y coordinates D1: (x, y, s , t) = (u x (s, t), u y (s, t), s, t) and a section D2 having a two-variable polynomial v x (s, t) as an x-coordinate and a two-variable function v y (s, t) as a y-coordinate: (x, y, s, t) = (v x (s, t) , V y (s, t), s, t). Further, a polynomial of the three-dimensional manifold A (x, y, s, t) including the section D1 and the section D2 is generated.

本発明の鍵生成装置は、有限体Fならびに、x座標、y座標、パラメータs、及びパラメータtで表された、署名検証用の公開鍵として用いられる前記有限体F上定義された3次元多様体A(x,y,s,t)と、前記3次元多様体A(x,y,s,t)内の曲面のうち、x座標及びy座標がパラメータs及びtの関数で表された、署名生成用の秘密鍵として用いられるセクションを生成する鍵生成装置であって、パラメータs、tに関する第1番目から第n(nは正の整数)番目までのn(nは正の整数)個の前記有限体F上定義された2変数多項式ux,i(s,t)(i:1≦i≦n)と、パラメータs、tに関する第1番目から第n番目までのn個の前記有限体F上定義された2変数多項式uy,i(s,t)(i:1≦i≦n)を生成し、第i(1≦i≦n)番目の2変数多項式ux,i(s,t)及びuy,i(s,t)をそれぞれx座標、y座標とする第i番目のセクションDi:(x,y,s,t)=(ux,i(s,t)、uy,i(s,t),s,t)(1≦i≦n)を生成することにより、第1番目から第n番目までのn個のセクションDi(1≦i≦n)を求め、第i(1≦i≦n)番目の2変数多項式ux,i(s,t)及びuy,i(s,t)を用いて、第i番目のx因子(x−ux,i(s,t))及びy因子(y−uy,i(s,t))を生成することにより、第1番目から第n番目までのx因子及びy因子を求める、第i(1≦i≦n)番目のx因子及びy因子を左辺と右辺に振り分けて、左辺に振り分けられたn個のx因子及びy因子の積と、右辺に振り分けられたn個のx因子及びy因子の積とを等号で結ぶことにより得られる等式を生成し、生成された等式を展開することにより、前記3次元多様体A(x,y,s,t)の多項式を生成する。 The key generation device of the present invention has a finite field F q and 3 defined on the finite field F q used as a public key for signature verification represented by x coordinate, y coordinate, parameter s, and parameter t. Among the dimensional manifold A (x, y, s, t) and the curved surface in the three-dimensional manifold A (x, y, s, t), the x coordinate and the y coordinate are expressed by functions of parameters s and t. A key generation device for generating a section used as a secret key for signature generation, wherein the first to nth (n is a positive integer) n (n is a positive integer) parameters s and t (Integer) two-variable polynomials u x, i (s, t) (i: 1 ≦ i ≦ n) defined on the finite field F q and the first to nth parameters s and t said n finite field F q on defined 2-variable polynomial u y, i (s, t ) (i: 1 ≦ i n) generates i-th (1 ≦ i ≦ n) th two-variable polynomials u x, i (s, t) and u y, i (s, t) and x coordinate respectively, the i to y-coordinate The second section Di: (x, y, s, t) = (u x, i (s, t), u y, i (s, t), s, t) (1 ≦ i ≦ n) is generated Thus, n sections Di (1 ≦ i ≦ n) from the first to the n-th are obtained, and the i-th (1 ≦ i ≦ n) -th two-variable polynomial u x, i (s, t) And u y, i (s, t) are used to calculate the i-th x factor (x−u x, i (s, t)) and y factor (y−u y, i (s, t)). By generating the first to nth x-factor and y-factor, the i-th (1 ≦ i ≦ n) -th x-factor and y-factor are assigned to the left side and the right side, and are assigned to the left side. N x factors And an equation obtained by connecting the product of the y factor and the product of the n x factors and the y factor distributed on the right side with an equal sign, and expanding the generated equation, A polynomial of a three-dimensional manifold A (x, y, s, t) is generated.

安全性・信頼性の高い公開鍵暗号に基づくデジタル署名を生成することができ、しかも少ない計算量で実現可能となる。   A digital signature based on public key cryptography with high security and reliability can be generated, and can be realized with a small amount of calculation.

3次元多様体のファイブレーションと、代数曲面について説明するための図。The figure for demonstrating fibration of a three-dimensional manifold and an algebraic surface. 鍵生成装置の構成例を示した図。The figure which showed the structural example of the key generation apparatus. 図2の鍵生成装置の処理動作を説明するためのフローチャート。The flowchart for demonstrating the processing operation of the key generation apparatus of FIG. デジタル署名生成装置の構成例を示した図。The figure which showed the structural example of the digital signature production | generation apparatus. 図4のデジタル署名生成装置の処理動作を説明するためのフローチャート。5 is a flowchart for explaining a processing operation of the digital signature generation apparatus in FIG. 4. デジタル署名検証装置の構成例を示した図。The figure which showed the structural example of the digital signature verification apparatus. 図6のデジタル署名検証装置の処理動作を説明するためのフローチャート。7 is a flowchart for explaining the processing operation of the digital signature verification apparatus of FIG. 鍵生成装置の他の構成例を示した図。The figure which showed the other structural example of the key generation apparatus. 図8の鍵生成装置の処理動作を説明するためのフローチャート。The flowchart for demonstrating the processing operation of the key generation apparatus of FIG. 図2の鍵生成装置の他の構成例を示した図。The figure which showed the other structural example of the key generation apparatus of FIG. 図4のデジタル署名生成装置の他の構成例を示した図。The figure which showed the other structural example of the digital signature production | generation apparatus of FIG. 図6のデジタル署名検証装置の他の構成例を示した図。The figure which showed the other structural example of the digital signature verification apparatus of FIG. 8の鍵生成装置の他の構成例を示した図。The figure which showed the other structural example of the key generation apparatus of 8. FIG.

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

まず、本実施形態の概要を説明する。   First, an outline of the present embodiment will be described.

(概要)
本実施形態では、3次元多様体は、体K上定義された連立(代数)方程式の解の集合のうち3次元の自由度を持ったものと定義される。例えば、体K上の連立方程式

Figure 0005132724
(Overview)
In the present embodiment, a three-dimensional manifold is defined as having a three-dimensional degree of freedom among a set of solutions of simultaneous (algebraic) equations defined on the field K. For example, simultaneous equations on the body K
Figure 0005132724

は変数6つに対し、それらを束縛する3つの方程式があるので3次元の自由度を持っており、3次元多様体となる。特に4変数のK上代数方程式

Figure 0005132724
Since there are three equations that bind them to six variables, it has a three-dimensional degree of freedom and becomes a three-dimensional manifold. Especially the 4-variable K superalgebraic equation
Figure 0005132724

の解の集合として定義される空間もK上の3次元多様体となる。尚、式(1)、式(2)に示した3次元多様体の定義式は、アフィン空間におけるものであって、射影空間におけるそれは(式(2)の場合)

Figure 0005132724
A space defined as a set of solutions of is also a three-dimensional manifold on K. Note that the definition formula of the three-dimensional manifold shown in the formulas (1) and (2) is in the affine space, and in the projective space (in the case of the formula (2)).
Figure 0005132724

である。本実施形態では、3次元多様体を射影空間で扱うことはないので3次元多様体の定義式を式(1)若しくは式(2)としたが、射影空間で表現しても、本実施形態はそのまま成立する。一方、代数曲面は体K上定義された連立(代数)方程式の解の集合のうち2次元の自由度を持ったものである。よって、例えば

Figure 0005132724
It is. In the present embodiment, since the three-dimensional manifold is not handled in the projective space, the definition formula of the three-dimensional manifold is the formula (1) or the formula (2). Is established as is. On the other hand, an algebraic curved surface has a two-dimensional degree of freedom in a set of solutions of simultaneous (algebraic) equations defined on the field K. So for example
Figure 0005132724

と定義される。本実施形態においては式(2)のように1つの式で書ける3次元多様体のみを扱うので、以下では式(2)を3次元多様体の定義方程式のごとく扱う。 Is defined. In the present embodiment, since only a three-dimensional manifold that can be written by one equation as in equation (2) is handled, equation (2) is treated as a three-dimensional manifold definition equation below.

体とは加減乗除が自由にできる集合であって、実数、有理数、複素数がこれにあたる。たとえば、整数や行列など0以外に除算ができない元を含む集合は該当しない。体の中には有限体と呼ばれる有限個の元から構成される体がある。例えば素数pに対し、pを法とする剰余類Z/pZは体をなす。このような体は素体と呼ばれ、Fと表す。有限体にはこの他に素数の冪乗個の元を持つ体F(q=p)があるが、本実施形態では簡単のため、主に素体Fのみを扱う。一般に素体Fのpは素体Fの標数と呼ばれる。一方、一般の有限体でも、本実施形態は自明な変形を施すことによって同様に成立する。 A field is a set that can be freely added, subtracted, divided, and divided, and real numbers, rational numbers, and complex numbers. For example, a set including elements that cannot be divided other than 0, such as integers and matrices, does not correspond. Some fields are composed of a finite number of elements called finite fields. For example, for a prime number p, a remainder class Z / pZ modulo p forms a field. Such a field is called a prime field and is denoted as F p . In addition to this, the finite field includes a field F q (q = p r ) having a power element of a prime number, but in the present embodiment, only the prime field F p is mainly handled for simplicity. Generally p of the element body F p is called the target number of the element body F p. On the other hand, even in a general finite field, the present embodiment is similarly established by performing obvious deformation.

公開鍵暗号ではメッセージをデジタルデータとして埋め込む必要から有限体上で構成することが多く、本実施形態においても同様に有限体(本実施形態では特に素体)F上定義された3次元多様体を扱う。 In public key cryptography, a message is often configured as a finite field because it is necessary to embed the message as digital data. Similarly, in this embodiment, a three-dimensional manifold defined on a finite field (particularly a prime field in this embodiment) F p is used. Handle.

3次元多様体A:f(x,y,z,u)=0内には、図1に示すように、通常、代数曲面が複数存在する。このような代数曲面は3次元多様体上の因子と呼ばれる。一般に3次元多様体の定義式が与えられた時に(非自明な)因子を求める問題は現代の数学においても未解決の難問であり、後述する多次多変数方程式によって解く方法を除けば一般的な解法は知られていない。   In the three-dimensional manifold A: f (x, y, z, u) = 0, there are usually a plurality of algebraic surfaces as shown in FIG. Such an algebraic surface is called a factor on a three-dimensional manifold. In general, the problem of finding a (non-trivial) factor when a definition formula for a three-dimensional manifold is given is an unsolved problem even in modern mathematics, and is common except for a method solved by a multi-order multivariable equation described later. There is no known solution.

特に本実施形態で扱うような有限体で定義された3次元多様体においては有理数体などの無限体(無限個の元からなる体)で定義された3次元多様体と比較しても手掛かりが少なく、より難しい問題であることが知られている。更に、前記因子を求めるために出現する多次多変数方程式は、多次多変数暗号を解く場合に出現する多次多変数方程式と比べるとそのバラエティーが広く、多次多変数暗号に対して提案されている解法は一般には成立しない。   In particular, a three-dimensional manifold defined by a finite field as used in this embodiment has a clue even when compared with a three-dimensional manifold defined by an infinite field (a field consisting of infinite elements) such as a rational number field. It is known to be a less difficult problem. Furthermore, the multi-order multivariable equation that appears to find the factors has a wider variety than the multi-order multivariable equation that appears when solving multi-order multi-variable cryptography, and is proposed for multi-order multi-variable cryptography. The solution is generally not valid.

本実施形態では、この問題を3次元多様体上の求因子問題もしくは単に求因子問題と呼び、前記3次元多様体上の求因子問題に安全性の根拠をおく公開鍵暗号を構成する。   In the present embodiment, this problem is referred to as a factor finding problem on a three-dimensional manifold or simply a factor finding problem, and a public key cryptosystem that provides a basis for security in the factor finding problem on the three-dimensional manifold is configured.

x座標、y座標、z座標及びパラメータuで表された3次元多様体Aの定義式f(x,y,z,u)=0 において、変数z、uをそれぞれパラメータs、tに変えて、
s,t(x,y):=f(x,y,s,t)
とおく。これを体K上の2変数代数関数体K(s,t)の元を係数とする多項式とみなし、gs,t(x,y)=0 が、K(s,t)上の代数曲線を定義するとき、3次元多様体Aはs,tをパラメータとするアフィン平面P上のファイブレーションを持つといい、(x,y,s,t)を(s,t)に対応させることによって得られる写像A→Pを、3次元多様体Aのアフィン平面P上のファイブレーションと呼ぶ。
In the definition formula f (x, y, z, u) = 0 of the three-dimensional manifold A represented by the x coordinate, the y coordinate, the z coordinate, and the parameter u, the variables z and u are changed to the parameters s and t, respectively. ,
g s, t (x, y): = f (x, y, s, t)
far. This is regarded as a polynomial whose coefficient is an element of a bivariate algebraic function field K (s, t) on the field K, and g s, t (x, y) = 0 is an algebraic curve on K (s, t). Is defined as having a fibrosis on the affine plane P 2 with s and t as parameters, and (x, y, s, t) is made to correspond to (s, t). The map A → P 2 obtained by is called fibration on the affine plane P 2 of the three-dimensional manifold A.

そして、アフィン平面P上の点(s,t)を1点(s,t)(s,t は体Kの元)に固定したときに得られる曲線gs0,t0(x,y)=0 を点(s,t)上のファイバーと呼び、As0,t0 と表す。 A curve g s0, t0 (x) obtained when the point (s, t) on the affine plane P 2 is fixed to one point (s 0 , t 0 ) (where s 0 , t 0 is an element of the body K). , Y) = 0 is called a fiber on the point (s 0 , t 0 ) and is denoted as A s0, t0 .

アフィン平面P上のファイブレーションを持つ3次元多様体にはセクションと呼ばれ、
(x,y,s,t)=(u(s,t),u(s,t),s,t)
と表すことのできる、s,t でパラメタライズされた3次元多様体A上の代数曲面が存在することが多い。セクションを持たないファイブレーションも存在するが、セクションを持つようなf(x,y,z,u)は容易に構成できる。
A three-dimensional manifold with fibrations on the affine plane P 2 is called a section,
(X, y, s, t) = (u x (s, t), u y (s, t), s, t)
There are many algebraic surfaces on the three-dimensional manifold A parameterized by s, t, which can be expressed as Although there are fibrations that do not have sections, f (x, y, z, u) that has sections can be easily configured.

一方、上述のように、3次元多様体Aの定義式f(x,y,z,u)=0 を2変数代数関数体K(s,t)の上で考えるのではなく、例えば1変数代数関数体K(t)の上で考えることもできる。その場合は、
(x,y,s):=f(x,y,s,t)
とおくと、tの各値に対してh(x,y,s)=0 は、1変数代数関数体K(t)上の代数曲面を定義する。このとき、Aはtをパラメータとするアフィン直線P 上のファイブレーションを持つといい、(x,y,s,t)を(t)に対応させることによって得られる写像A→P を3次元多様体Aのアフィン直線P上のファイブレーションと呼ぶ。
On the other hand, as described above, the defining expression f (x, y, z, u) = 0 of the three-dimensional manifold A is not considered on the two-variable algebraic function field K (s, t), but, for example, one variable It can also be considered on the algebraic function field K (t). In that case,
h t (x, y, s): = f (x, y, s, t)
Then, for each value of t , h t (x, y, s) = 0 defines an algebraic surface on a one-variable algebraic function field K (t). At this time, A is said to have a fibration on the affine straight line P 1 with t as a parameter, and a map A → P 1 obtained by associating (x, y, s, t) with (t) is 3 This is called fibration on the affine line P 1 of the dimensional manifold A.

そして、アフィン直線P 上の点tを1点tに固定したときに得られる曲面
t0(x,y,s)=0
を点t 上のファイバーと呼び、At0 と表す。
Then, a curved surface obtained when fixing the point t on the affine linear P 1 to point t 0
h t0 (x, y, s) = 0
Is called a fiber on point t 0 and is denoted A t0 .

アフィン直線P 上のファイブレーションを持つ3次元多様体におけるセクションとは、
(x,y,s,t)=(u(t),u(t),u(t),t)
と表すことができ、tでパラメタライズされた、3次元多様体A上の代数曲線のことである。
A section in a three-dimensional manifold with fibrations on the affine straight line P 1 is
(X, y, s, t) = (u x (t), u y (t), u s (t), t)
And an algebraic curve on the three-dimensional manifold A parameterized by t.

セクションは、3次元多様体の因子である。一般に3次元多様体のファイブレーションが与えられたとき、それに対応するファイバーは(sやtに体の元を代入することにより)直ちに求まるが、対応するセクションを求めることは極めて難しい。   A section is a factor of a three-dimensional manifold. In general, when a fibration of a three-dimensional manifold is given, the corresponding fiber is obtained immediately (by substituting the element of the field for s and t), but it is extremely difficult to find the corresponding section.

本実施形態で述べるデジタル署名は、3次元多様体上の求因子問題のうち、特に3次元多様体Aのファイブレーションが与えられたとき、セクションを求める問題に安全性の根拠をおいたデジタル署名である。   The digital signature described in the present embodiment is a digital signature based on a safety reason for the problem of finding a section among three-dimensional manifold factor finding problems, particularly when a three-dimensional manifold A fibration is given. It is.

尚、本実施形態においては、主としてアフィン平面P 上のファイブレーションを扱うので、簡単のためアフィン平面P 上のファイブレーションであることが明らかな場合は、単にファイブレーションと呼ぶ。またこの場合、ファイブレーションを持つ3次元多様体の定義式f(x,y,s,t)=0を単にファイブレーションと呼ぶことがある。 In the present embodiment, mainly because handle fibration on affine plane P 2, when it is fibration on affine plane P 2 for easy clear, simply referred to as a fibration. In this case, the definition expression f (x, y, s, t) = 0 of the three-dimensional manifold having fibration may be simply referred to as fibration.

ファイブレーションからセクションを求めるには、現代の数学においても、セクション(u(s,t),u(s,t),s,t)を

Figure 0005132724
In order to obtain a section from fibration, the section (u x (s, t), u y (s, t), s, t) is also used in modern mathematics.
Figure 0005132724

(ここでdeg(s,t)はu(s,t)において、sのみを変数としたときの次数である。)と仮定した上で、

Figure 0005132724
(Here, deg s u x (s, t) is an order when only s is a variable in u x (s, t).)
Figure 0005132724

とおき、これをA(x,y,s,t)=0に代入して、

Figure 0005132724
And substituting this into A (x, y, s, t) = 0,
Figure 0005132724

とし、この左辺を展開してsの係数を
α0,…,αrsxtx−1,β0,…,βrsyty−1の関数
i,j(α0,…,αrsxtx−1,β0,…,βrsyty−1
で表現し、連立方程式系

Figure 0005132724
And expand the left side to calculate the coefficient of s i t j
α0,..., αr sx r tx−1 , β0,..., βr sy ty−1
c i, j (α0,..., αr sx r tx-1 , β0,..., βr sy ty-1 )
Expressed as a system of simultaneous equations
Figure 0005132724

を立てて、これを解くことによって求める方法しか知られていない。 The only way to find out by solving and solving this is known.

即ち、本発明の公開鍵暗号も従来技術で述べた多次多変数暗号と同様に連立方程式の求解問題に帰着すると言える。しかし、多次多変数暗号が(現代の数学ではかなり解明されている)有限体の拡大理論に依存した非常に限られた範囲の多次多変数方程式の求解問題に帰着しているのに対し、3次元多様体暗号は数学上の未解決問題である求因子問題に依存しているため、問題の困難さのレベルは大きく異なる。   That is, it can be said that the public key cryptography of the present invention results in the solution of simultaneous equations as well as the multi-order multivariable cryptography described in the prior art. However, while multi-order multivariable cryptography has resulted in solving a very limited range of multi-order multivariable equations that depend on finite field expansion theory (which is well understood in modern mathematics) Since the three-dimensional manifold cryptography relies on a factor finding problem that is an unsolved mathematical problem, the level of difficulty of the problem varies greatly.

以下では3次元多様体上の求因子問題に基づいたデジタル署名の具体的な構成を説明する。尚、以下では全てF上定義された3次元多様体を考える。このため、全ての演算はF上で行う。 Hereinafter, a specific configuration of the digital signature based on the factor finding problem on the three-dimensional manifold will be described. In the following we consider a 3-manifolds all defined on F p. Therefore, all operations performed on F p.

(第1の実施形態)
本実施形態に係るデジタル署名で用いられる公開鍵は、
上の3次元多様体Xのファイブレーション:A(x,y,s,t)=0である。
(First embodiment)
The public key used in the digital signature according to this embodiment is
3-manifolds X of fibration on F p: A (x, y , s, t) = 0.

秘密鍵は、F上の3次元多様体Aのn個のセクション
Di:(x,y,s,t)=(ux,i(s,t),uy,i(s,t),s,t)である。
The secret key is the n sections of the three-dimensional manifold A on F p
Di: (x, y, s, t) = (ux , i (s, t), u y, i (s, t), s, t).

これらは後述する鍵生成方法で容易に求めることができる。   These can be easily obtained by a key generation method described later.

(1)署名生成処理
次に、署名生成処理の概要を述べる。署名生成処理ではまず署名生成したいメッセージ(以下では平文と呼ぶ)を整数mに変換する。変換の方法はメッセージをJISコードなどのコード体系を利用してコード化し、それを整数に読み換える方法が一般的である。
(1) Signature generation processing
Next, an outline of the signature generation process will be described. In the signature generation process, first, a message (hereinafter referred to as plain text) for which a signature is to be generated is converted into an integer m. The conversion method is generally a method in which a message is encoded using a code system such as a JIS code and is read as an integer.

次に、変換された整数mをハッシュ関数h(x)にかけてハッシュ値h(m)を計算する。ここでハッシュ値h(m)は一般に120ビットないし160ビットあるので、例えば、h(m)=h‖h‖…‖hr−1
と、複数のブロックh、h、…hr−1に分割し、これらを変数tに関する1変数多項式
h(t)=hr−1r−1+…+ht+h
の係数に埋め込む(ハッシュ値埋め込み処理)。ハッシュ値の埋め込まれた1変数多項式をハッシュ値多項式h(t)と呼ぶ。ここでh(t)をF上の多項式とするために、
各h(0≦i≦r−1)はFの元となるように取る必要がある。即ち、上記ハッシュ値は、pのビット長に基づいて、
0≦h≦p−1
となるようにハッシュ値を分割する。
Next, the hash value h (m) is calculated by applying the converted integer m to the hash function h (x). Here, since the hash value h (m) is generally 120 bits to 160 bits, for example, h (m) = h 0 ‖h 1 ‖... −1h r−1
Are divided into a plurality of blocks h 0 , h 1 ,...
h (t) = h r−1 t r−1 +... + h 1 t + h 0
Embed in the coefficient (hash value embedding process). The one-variable polynomial in which the hash value is embedded is called a hash value polynomial h (t). Here, in order to make h (t) a polynomial on F p ,
Each h i (0 ≦ i ≦ r−1) needs to be taken to be an element of F p . That is, the hash value is based on the bit length of p,
0 ≦ h i ≦ p−1
The hash value is divided so that

次に、秘密鍵であるn個のセクションDiのなかからランダムに1つ選択する。選択されたセクション
Di:(w(s,t),w(s,t),s,t)
に対して、その変数sに上記ハッシュ値多項式h(t)を代入する。即ち、
(w(h(t),t),w(h(t),t),h(t),t)
これを整理して、
:(x,y,t)=(W(t),W(t),t) …(3)
とし、これをメッセージmに対するデジタル署名Dとしてメッセージmと共に受信者に送信する。
Next, one is randomly selected from the n sections Di that are secret keys. Selected section
Di: (w x (s, t), w y (s, t), s, t)
For the variable s, the hash value polynomial h (t) is substituted. That is,
(W x (h (t), t), w y (h (t), t), h (t), t)
Organize this,
D s : (x, y, t) = (W x (t), W y (t), t) (3)
This is transmitted to the recipient together with the message m as a digital signature D s for the message m.

以上の説明からもわかるように、式(3)に示すデジタル署名Dは、秘密鍵として用いたセクションDi上の曲線である。 As can be seen from the above description, the digital signature D s shown in Equation (3) is a curve on the section Di used as a secret key.

ここで、安全性の観点からW(t)、W(t)の次数が選択したセクションによらず一定であることが望ましい。これはセクションに現れる多項式ux,i(s,t)に対して、

Figure 0005132724
Here, from the viewpoint of safety, it is desirable that the orders of W x (t) and W y (t) are constant regardless of the selected section. This is for the polynomial u x, i (s, t) appearing in the section
Figure 0005132724

とするとき、全てのiに対してux,i(s,t)がshxkx の項を含むようにすることで解決できる。なぜならば、このようにすることによって、ハッシュ値多項式h(t)をどのセクションのsに代入しても、得られる多項式Wx(t)の最大次数の項はh(t)をshxkx の項に代入した多項式から生じるためである。 Then, it can be solved by making u x, i (s, t) include a term of s hx t kx for all i. This is because the maximum degree term of the obtained polynomial Wx (t) becomes h (t) as s hx t kx , regardless of which section's s is substituted for the hash value polynomial h (t). This is because it arises from the polynomial assigned to the term.

y,i(s,t)に関しても同様の手段でW(t)の次数をiによらず一定に保つことができる。このような鍵(セクションとそれに対応する3次元多様体)を生成する方法は後に示す。 With respect to u y, i (s, t), the order of W y (t) can be kept constant regardless of i by the same means. A method for generating such a key (section and corresponding three-dimensional manifold) will be described later.

(2)署名検証処理
デジタル署名D(x,y,t)を受け取った受信者は所有する有限体F上定義された公開鍵A(x,y,s,t)を利用して次のように署名検証処理を行う。
(2) Signature verification processing
The receiver who has received the digital signature D s (x, y, t) uses the public key A (x, y, s, t) defined on the finite field F p owned by the receiver as follows. I do.

まず、前述の署名生成処理と同様に、メッセージ(以下では平文と呼ぶ)を整数mに変換する。変換の方法は署名生成処理と同じである。次に変換された整数mを上述の署名生成処理と同じハッシュ関数h(x)にかけてハッシュ値h(m)を計算する。更に前述の署名生成処理と同様に、ハッシュ値を、h(m)=h‖h‖…‖hr−1
と、複数のブロックh、h、…hr−1に分割し、これらを変数tに関する有限体F上定義された1変数多項式
h(t)=hr−1r−1+…+ht+h
の係数に埋め込み、ハッシュ値の埋め込まれたハッシュ値多項式h(t)を生成する。
First, as in the signature generation process described above, a message (hereinafter referred to as plain text) is converted to an integer m. The conversion method is the same as the signature generation process. Next, a hash value h (m) is calculated by applying the converted integer m to the same hash function h (x) as in the signature generation process described above. Further, similarly to the above-described signature generation processing, the hash value is set to h (m) = h 0 ‖h 1 ‖ ... ‖h r−1.
And a plurality of blocks h 0 , h 1 ,... H r−1 , and these are univariate polynomials defined on the finite field F p with respect to the variable t
h (t) = h r−1 t r−1 +... + h 1 t + h 0
And a hash value polynomial h (t) in which a hash value is embedded is generated.

次に、公開鍵である3次元多様体A(x,y,s,t)の変数sに、生成したハッシュ値多項式h(t)を代入して、代数曲面
X(x,y,t)=A(x,y,h(t),t)
を生成する。このX(x,y,t)もファイブレーションを持つ代数曲面である。
Next, the generated hash value polynomial h (t) is substituted into the variable s of the three-dimensional manifold A (x, y, s, t), which is a public key, and an algebraic surface
X (x, y, t) = A (x, y, h (t), t)
Is generated. This X (x, y, t) is also an algebraic surface having fibration.

次に、得られた代数曲面Xに、(受信側が受け取った)式(3)で表現されたデジタル署名を代入する。このとき値が「0」になればデジタル署名が正しく、「0」でなければデジタル署名が正しくないことを意味する。   Next, the digital signature expressed by Equation (3) (received by the receiving side) is substituted into the obtained algebraic surface X. At this time, if the value is “0”, it means that the digital signature is correct, and if it is not “0”, it means that the digital signature is not correct.

なぜならば、前述のデジタル署名生成処理においては、秘密鍵として与えられたセクションのうちランダムに選択されたセクションDiに対して、s=h(t)を代入していた。一方、これは前述のデジタル署名検証処理で行った3次元多様体A(x,y,s,t)にs=h(t)を代入して得られた代数曲面X(x,y,t)のセクションに対応している。従って、前述のデジタル署名検証処理のような代入操作を行うと、値が「0」となる。   This is because, in the above-described digital signature generation process, s = h (t) is substituted for a section Di that is randomly selected from the sections given as the secret key. On the other hand, this is an algebraic surface X (x, y, t) obtained by substituting s = h (t) for the three-dimensional manifold A (x, y, s, t) performed in the digital signature verification process described above. ) Section. Therefore, when an assignment operation such as the digital signature verification process described above is performed, the value becomes “0”.

更に、s=h(t)を代入して得られる代数曲面もそのセクションを求めることは3次元多様体と同様に難しく多次多変数方程式の求解問題に帰着することが知られている。このため、後述する安全性署名の項目でも詳しく述べるように、3次元多様体のセクションを知らない第三者がメッセージに対応した代数曲面のセクションを提示することは当該代数曲面のセクションを求める問題に帰着する。このため(計算量の観点で)不可能であるといえる。このことが本発明のデジタル署名が安全であることの根拠である。   Further, it is known that it is difficult to obtain the section of an algebraic surface obtained by substituting s = h (t), as in the case of a three-dimensional manifold, resulting in a solution of a multi-order multivariable equation. For this reason, as will be described in detail in the item of the safety signature described later, a third party who does not know the section of the three-dimensional manifold presents the section of the algebraic surface corresponding to the message. To return to. For this reason, it is impossible (in terms of computational complexity). This is the basis for the security of the digital signature of the present invention.

(3)鍵生成方法
鍵生成方法を説明する。本実施形態の鍵生成は、セクションD1、D2をランダムに選び、それに対応したファイブレーションを計算することによって行う。但し、生成された3次元多様体が2つのセクションを同時に持つようにするために以下のような工夫が必要となる。
(3) Key generation method
A key generation method will be described. The key generation of this embodiment is performed by randomly selecting sections D1 and D2 and calculating the corresponding fibrations. However, in order for the generated three-dimensional manifold to have two sections at the same time, the following device is required.

ここでは簡単のため3次元多様体のうち、次のファイブレーションを持つ3次元多様体を例にとって鍵生成方法を示す。

Figure 0005132724
Here, for the sake of simplicity, a key generation method will be described by taking a three-dimensional manifold having the following fibration among the three-dimensional manifold as an example.
Figure 0005132724

ここで、a(s,t),b(s,t)は2変数多項式である。まず、素体の標数pを決める。このときpは小さくても安全性に問題は生じない。さて、セクションD1,D2を

Figure 0005132724
Here, a (s, t) and b (s, t) are two variable polynomials. First, the characteristic p of the prime field is determined. At this time, even if p is small, there is no problem in safety. Now, section D1, D2
Figure 0005132724

とおいて、3次元多様体Aに代入し、

Figure 0005132724
Substituting into the three-dimensional manifold A,
Figure 0005132724

を得る。これらを辺々引くとb(s,t)が消え、

Figure 0005132724
Get. When these are drawn side by side, b (s, t) disappears,
Figure 0005132724

となる。a(s,t)を2変数多項式とするには、たとえば

Figure 0005132724
It becomes. To make a (s, t) a two-variable polynomial, for example
Figure 0005132724

であれば十分である。このことを利用して以下に示すアルゴリズムで鍵生成を行うことができる。 If it is enough. Using this fact, it is possible to generate a key with the following algorithm.

ここで、k(s,t)|k(s,t)は、多項式k(s,t)が、
多項式k(s,t)を割り切ることを意味している。
Here, k 1 (s, t) | k 2 (s, t) is expressed by polynomial k 1 (s, t),
This means that the polynomial k 2 (s, t) is divisible.

まず、λ(s,t)|λ(s,t)となる2つの多項式をランダムに選択する。具体的にこのような多項式の組を求めるには、例えばλ(s,t)をランダムに与えて、同じくランダムな多項式c(s,t)によってλ(s,t)=c(s,t)λ(s,t)を計算することによって、λ(s,t)を求めることで実現できる。 First, two polynomials satisfying λ x (s, t) | λ y (s, t) are selected at random. Specifically, in order to obtain such a set of polynomials, for example, λ x (s, t) is given at random, and λ y (s, t) = c (s , T) λ x (s, t) can be obtained by calculating λ y (s, t).

次に、多項式v(s,t)をランダムに選択し、

Figure 0005132724
Next, a polynomial v x (s, t) is selected at random,
Figure 0005132724

によって、u(s,t)を計算する。同様に多項式v(s,t)をランダムに選択し、

Figure 0005132724
To calculate u x (s, t). Similarly, a polynomial v y (s, t) is selected at random,
Figure 0005132724

によって、u(s,t)を計算する。このようにして計算されたu(s,t)、v(s,t)、u(s,t)、v(s,t)を利用して、

Figure 0005132724
To calculate u y (s, t). Using u x (s, t), v x (s, t), u y (s, t), and v y (s, t) calculated in this way,
Figure 0005132724

を計算することにより、多項式a(s,t)が計算できる。更にb(s,t)は、上述のa(s,t)を利用して、

Figure 0005132724
Is calculated, the polynomial a (s, t) can be calculated. Furthermore, b (s, t) uses the above-mentioned a (s, t),
Figure 0005132724

によって得られる。 Obtained by.

前述の鍵生成方法は、上記以外の3次元多様体であっても、例えば

Figure 0005132724
Even if the key generation method described above is a three-dimensional manifold other than the above, for example,
Figure 0005132724

という形の定義式を仮定すれば同様に可能であり、上述の例のみに限定されない。 Assuming a defining expression of the form is possible in the same way, and is not limited to the above example.

一方で、上述の鍵生成方式では3つ以上のセクションを持つ代数曲面を生成することができない。また、上述の安全性上望ましい条件として挙げたデジタル署名
:(x,y,t)=(W(t),W(t),t)
に表われるW(t)、W(t)の次数を、選択したセクションによらず一定にするような公開鍵を生成することが困難である。これら両方を解決する鍵生成方法として、以下のような第2の鍵生成方法が考えられる。
On the other hand, the above key generation method cannot generate an algebraic surface having three or more sections. In addition, digital signatures listed as desirable conditions for security
D s : (x, y, t) = (W x (t), W y (t), t)
It is difficult to generate a public key that makes the order of W x (t) and W y (t) appearing in the above constant regardless of the selected section. As a key generation method for solving both of these, the following second key generation method can be considered.

まず、ux,i(s,t)の最大次数の項shxkxを決め、sの最大次数がhx、tの最大次数がkxとなるように、n個の2変数多項式ux,i(s,t)を定める。また同様にしてuy,i(s,t)の最大次数の項shykyを決め、sの最大次数がhy、tの最大次数がkyとなるように、n個の2変数多項式uy,i(s,t)を定める。 First, a term s hx t kx of the maximum degree of u x, i (s, t) is determined, and n two-variable polynomials u x, x are set so that the maximum degree of s is hx and the maximum degree of t is kx . i (s, t) is determined. Similarly, the maximum degree term s hy t ky of u y, i (s, t) is determined, and n two-variable polynomials u are set so that the maximum order of s is hy and the maximum order of t is ky. Define y, i (s, t).

次に、これらの多項式から因子(x−ux,i(s,t))、(y−uy,i(s,t))を生成し、各i(1≦i≦n)について、iが同じ値の2つの因子(x−ux,i(s,t))及び(y−uy,i(s,t))を、左辺と右辺のそれぞれに振り分ける。そして、左辺に振り分けられたn個の因子の積と、右辺に振り分けられたn個の因子の積とを等号で結ぶことにより、次式(6)に示すような方程式を得る。

Figure 0005132724
Next, factors (x−u x, i (s, t)) and (y−u y, i (s, t)) are generated from these polynomials, and for each i (1 ≦ i ≦ n), Two factors (x- x, i (s, t)) and (y- y, i (s, t)) having the same value of i are distributed to the left side and the right side, respectively. Then, by connecting the product of the n factors distributed to the left side and the product of the n factors distributed to the right side with an equal sign, an equation as shown in the following equation (6) is obtained.
Figure 0005132724

式(6)は、前記条件を満たす方程式となる。ここで、例えば、
Di:(ux,i(s,t),uy,i(s,t),s,t)がセクションとなる。
Equation (6) is an equation that satisfies the above conditions. Here, for example,
Di: (u x, i (s, t), u y, i (s, t), s, t) is a section.

更に、これらのセクションは、その作り方からh(t)を代入しても、同じ次数のデジタル署名Ds:(W(t),W(t),t)が生成される。実際には式(6)のままであるとセクションがすぐ分かってしまうので、展開することによって公開鍵である3次元多様体を得る。 Furthermore, even if h (t) is substituted for these sections, digital signatures Ds: (W x (t), W y (t), t) of the same order are generated. In practice, since the section is immediately known if it remains as in equation (6), a three-dimensional manifold that is a public key is obtained by expansion.

一方で、式(6)ではxの因子が右辺に、yの因子が左辺に分かれているため因数分解によってセクションを求めることが容易となる場合がある。そこで、例えば

Figure 0005132724
On the other hand, in the equation (6), the factor of x is divided on the right side and the factor of y is divided on the left side, so that it may be easy to obtain a section by factorization. So, for example
Figure 0005132724

などのように、xの因子とyの因子をランダムに両辺に分けて公開鍵暗号である3次元多様体を生成することが望ましい。このように公開鍵と秘密鍵を生成することによって一般にn個以上のセクションを持つ安全性の高い3次元多様体を生成することができる。尚、前記安全性の観点を除けば、ux,i(s,t),uy,i(s,t)の作り方に自由度を持たせることができる。 As described above, it is desirable to generate a three-dimensional manifold which is a public key cryptography by randomly dividing the factor of x and the factor of y on both sides. By generating the public key and the secret key in this way, a highly secure three-dimensional manifold having generally n or more sections can be generated. Except for the safety viewpoint, it is possible to give a degree of freedom to the method of creating ux, i (s, t), ui , i (s, t).

(4)安全性の証明
上述のデジタル署名の安全性証明に関して説明する。デジタル署名の安全性は、メッセージ(平文)とデジタル署名のペアを作成する問題が多項式時間で解ければ3次元多様体のセクションを求める問題を多項式時間で求めることができ、逆に3次元多様体のセクションを求める問題を多項式時間で求めることができれば、メッセージ(平文)とデジタル署名のペアを作成することが多項式時間で可能なことを証明することによって証明することができる。即ち、上記の事実を理論的に証明することによって、メッセージ(平文)とデジタル署名のペアを作成可能なこと(存在的偽造可能であること)と、3次元多様体のセクションを求める問題が解けることが同値であることが示せるので、安全性の根拠としている3次元多様体のセクションを求める問題が困難であれば、デジタル署名が存在的偽造不可能であることが示されるからである。以上の方針に従った安全性証明を次に示す。
(4) Proof of safety
The above-mentioned digital signature security certification will be described. The security of digital signatures can be obtained in polynomial time if the problem of creating a pair of message (plaintext) and digital signature is solved in polynomial time. If the problem of finding a section of a field can be determined in polynomial time, it can be proved by proving that it is possible in polynomial time to create a message (plaintext) and digital signature pair. That is, by theoretically proving the above facts, it is possible to create a pair of a message (plain text) and a digital signature (can exist forgery) and solve the problem of finding a section of a three-dimensional manifold. If the problem of obtaining the section of the three-dimensional manifold that is the basis of security is difficult, it is indicated that the digital signature cannot be existently counterfeited. The safety proof according to the above policy is shown below.

ここで、2次元セクションDをD=(d(s,t),d(s,t),s,t)と書いたとき、2次元セクションの次数を、d(s,t),d(s,t)の次数の最大値、
max{deg(d(s,t)),deg(d(s,t))}とする。
Here, when the two-dimensional section D is written as D = (d x (s, t), dy (s, t), s, t), the order of the two-dimensional section is represented by d x (s, t). , D y (s, t) order maximum value,
max {deg (d x (s, t)), deg (d y (s, t))}.

[定理1]n次のセクションを持つ有限体F上定義された3次元多様体の求セクション問題が計算困難であることと、本発明のデジタル署名は存在的偽造不可能の意味で安全であることは同値である。 [Theorem 1] and that section finding problem of 3D manifold defined on the finite field F p is a difficult calculation n with the following sections, the digital signature of the present invention is secure in existentially unforgeable meaning of Being equivalent is equivalent.

[証明1]本実施形態のデジタル署名による平文と署名の具体的なペアを多項式時間内に計算できるアルゴリズムαが存在したとする。このとき、このアルゴリズムαを利用して3次元多様体の2次元セクションを求める多項式時間アルゴリズムが存在することを示す。   [Proof 1] Assume that there is an algorithm α that can calculate a specific pair of plaintext and signature by a digital signature in the present embodiment within a polynomial time. At this time, it is shown that there exists a polynomial time algorithm for obtaining a two-dimensional section of a three-dimensional manifold using this algorithm α.

まず、2次元セクションを求めたい3次元多様体をA(x,y,s,t)とする。次にA(x,y,s,t)を公開鍵とするデジタル署名方式を考え、アルゴリズムαを利用して多項式個の平文と署名のペアを生成する。ここで、平文mに対するハッシュ値多項式をh(t)とし、その署名を

Figure 0005132724
First, let A (x, y, s, t) be a three-dimensional manifold for which a two-dimensional section is desired. Next, considering a digital signature scheme using A (x, y, s, t) as a public key, a polynomial plaintext / signature pair is generated using an algorithm α. Here, the hash value polynomial for the plaintext m i and h i (t), the signature
Figure 0005132724

とする。ここで、f(s,t),g(s,t)は3次元多様体Aのセクションのx,y座標に対応するもので、高々有限個しか存在しない。従って、一定数以上の署名を集めれば、f(s,t),g(s,t)は全て異なるものではなく、その幾つかは同一となる。これらのうちどれが同じものであるかは以下の方法で判定できる。 And Here, f i (s, t) and g i (s, t) correspond to the x and y coordinates of the section of the three-dimensional manifold A, and there are at most a finite number. Therefore, if a certain number or more of signatures are collected, f i (s, t) and g i (s, t) are not all different, and some of them are the same. Which of these is the same can be determined by the following method.

3次元多様体B(x,y,s,t)(=A(x,y,t,s))を考える。このB(x,y,s,t)は3次元多様体A(x,y,s,t)のsとtを交換したものであり、セクションの次数の定義からn次のセクションを持っている。そこで、アルゴリズムαを利用して、1つの平文と署名のペアを生成する。その際、特にハッシュ値多項式h(s)が定数h(s)=hとなるものを選び、生成された署名を

Figure 0005132724
Consider a three-dimensional manifold B (x, y, s, t) (= A (x, y, t, s)). This B (x, y, s, t) is obtained by exchanging s and t of the three-dimensional manifold A (x, y, s, t), and has an n-th order section from the definition of the section order. Yes. Therefore, one plaintext / signature pair is generated using the algorithm α. At that time, in particular, the hash value polynomial h i (s) is selected such that the constant h i (s) = h 0, and the generated signature is
Figure 0005132724

とすると、

Figure 0005132724
Then,
Figure 0005132724

は、sでパラメタライズされたA(x,y,s,t)の1つの1次元サイクルを与える。ここでサイクルとは部分多様体のことを意味し、特に1次元サイクルとは1次元の部分多様体である。このサイクルDを利用して、1次元サイクル

Figure 0005132724
Gives one one-dimensional cycle of A (x, y, s, t) parameterized with s. Here, the cycle means a partial manifold, and in particular, the one-dimensional cycle is a one-dimensional partial manifold. Using this cycle D, one-dimensional cycle
Figure 0005132724

のうち、Dと同じXのセクションの上に存在するものを以下の多項式アルゴリズムで見出す。 Among them, those existing on the same X section as D are found by the following polynomial algorithm.

まず、(s,t)=(h(h),h)とおくと、D上の点(ζ(h(h),h),η(h(h),h),h(h),h)とD (i)上の点(f(h(h),h),g(h(h),h),h(h),h)が定まる。そして、Xのセクションが(s,t)を座標とする平面に同型であることに注意すると、

Figure 0005132724
First, when (s, t) = (h i (h 0 ), h 0 ) is set, a point on D (ζ (h i (h 0 ), h 0 ), η (h i (h 0 ), h 0 ), h i (h 0 ), h 0 ) and a point on D s (i) (f i (h i (h 0 ), h 0 ), g i (h i (h 0 ), h 0 ) ), H i (h 0 ), h 0 ) are determined. And note that the section of X is isomorphic to the plane with coordinates (s, t):
Figure 0005132724

であればD (i)とDは同一のセクションの上に存在する。等しくなければD (i)とDとは同一のセクションの上にはない。ここで同じセクションに含まれる1次元サイクル群を、

Figure 0005132724
Then D s (i) and D are on the same section. If not equal, D s (i) and D are not on the same section. Here, the one-dimensional cycle group included in the same section,
Figure 0005132724

とする。さて、ここで3次元多様体A(x,y,s,t)のセクション(w(s,t),w(s,t),s,t)を

Figure 0005132724
And Well, here 3D manifold A (x, y, s, t) section of (w x (s, t) , w y (s, t), s, t) a
Figure 0005132724

と書くと、式(8)の1次元セクションを代入することによって、

Figure 0005132724
By substituting the one-dimensional section of equation (8),
Figure 0005132724

を得る。この両辺をtの冪毎にその係数を比較することによって、aijの連立1次方程式が得られる。連立1次方程式は多項式時間の解法が存在するので、多項式時間で全ての
ijが求まる。同様にbijも多項式時間で求まるので、3次元多様体A(x,y,s,t)のセクションが多項式時間で求まることが示せた。
Get. A simultaneous linear equation of a ij can be obtained by comparing the coefficients of both sides for every power of t. Since simultaneous linear equations have polynomial time solutions,
a ij is obtained. Similarly, since b ij can be obtained in polynomial time, it has been shown that the section of the three-dimensional manifold A (x, y, s, t) can be obtained in polynomial time.

逆に、3次元多様体の2次元セクションを求める多項式時間アルゴリズムβが存在したとする。このとき、このアルゴリズムβを利用して、本実施形態のデジタル署名による平文と署名の具体的なペアを多項式時間内に計算できることを示す。   Conversely, it is assumed that there exists a polynomial time algorithm β for obtaining a two-dimensional section of a three-dimensional manifold. At this time, it is shown that a specific pair of plaintext and signature by the digital signature of the present embodiment can be calculated within the polynomial time by using this algorithm β.

本実施形態のデジタル署名の公開鍵である3次元多様体A(x,y,s,t)が与えられたとき、アルゴリズムβを利用して、その2次元セクション
D:(w(s,t),w(s,t),s,t)
を求める。ここで平文mを適当に決め、そのハッシュ値多項式をh(t)とした時、
s=h(t)と置くことにより、署名
:(w(h(t),t),w(h(t),t),t)
を得る。これにより平文と署名の具体的なペアを多項式時間内に計算可能である。
When a three-dimensional manifold A (x, y, s, t), which is a public key of the digital signature of the present embodiment, is given, the two-dimensional section is obtained using the algorithm β.
D: (w x (s, t), w y (s, t), s, t)
Ask for. Here, when plaintext m is appropriately determined and its hash value polynomial is h (t),
Signature by putting s = h (t)
D s : (w x (h (t), t), w y (h (t), t), t)
Get. As a result, a specific pair of plaintext and signature can be calculated in polynomial time.

以上により、定理が証明された。   This proves the theorem.

(5)バリエーション
本実施形態におけるバリエーションを述べる。第1のバリエーションはハッシュ値多項式をハッシュ値自体に置き換えるバリエーションである。本実施形態におけるデジタル署名生成処理においては、平文mからハッシュ値h(m)を計算し、ハッシュ値h(m)をハッシュ値多項式h(t)に展開して、ランダムに選択したセクションDにs=h(t)と代入していた。
(5) Variation
Variations in this embodiment will be described. The first variation is a variation in which the hash value polynomial is replaced with the hash value itself. In the digital signature generation process in the present embodiment, a hash value h (m) is calculated from the plaintext m, the hash value h (m) is expanded into a hash value polynomial h (t), and the section D i selected at random is selected. S = h (t).

しかし、ハッシュ値をハッシュ値多項式に埋め込まないような実施形態も成立する。即ち、セクションDに、ハッシュ値h(m)そのものを、s=h(m)として代入することにより、デジタル署名
:(w(h(m),t),w(h(m),t),t)
が生成できる。この場合は、デジタル署名検証処理においても同様に公開鍵である3次元多様体A(x,y,s,t)への代入をs=h(m)によって行うことにより、同様の手段で署名検証が可能となる。
However, an embodiment in which the hash value is not embedded in the hash value polynomial also holds. That is, the digital signature is obtained by substituting the hash value h (m) itself into section D i as s = h (m).
D s: (w x (h (m), t), w y (h (m), t), t)
Can be generated. In this case, also in the digital signature verification process, the signature is obtained by the same means by assigning to the three-dimensional manifold A (x, y, s, t), which is a public key, by s = h (m). Verification is possible.

実際に、このバリエーションが成り立つことは、本実施形態におけるハッシュ値多項式h(t)を定数項だけからなる多項式と考えれば理解することができる。即ち、本バリエーションは本実施形態の特別な場合と言うことができる。本バリエーションを利用することによってデジタル署名生成処理、デジタル署名検証処理における多項式演算を軽減でき、計算メモリ量や計算処理時間を削減することが可能となる。しかし、その反面でハッシュ値は最小でも120ビットであるため定義体であるFのpのサイズを120ビット程度に大きくしなければならず、多倍長演算が必要となるという弱点も持ち合わせており、
適用有効範囲は限定される。
The fact that this variation is actually realized can be understood by considering the hash value polynomial h (t) in the present embodiment as a polynomial consisting of only a constant term. That is, this variation can be said to be a special case of the present embodiment. By using this variation, it is possible to reduce polynomial operations in digital signature generation processing and digital signature verification processing, and it is possible to reduce the amount of calculation memory and calculation processing time. However, the hash value in contrary must be increased to about 120 bits the size of p of F p is a definition for also 120 bits at a minimum, also ready weakness that multiple length arithmetic is needed And
The scope of application is limited.

第2のバリエーションは、本実施形態のデジタル署名生成装置、デジタル署名検証装置においてハッシュ値多項式を代入する変数の変更に関するバリエーションである。本実施形態のデジタル署名生成装置、デジタル署名検証装置においては、ハッシュ値多項式としてh(t)という変数tによる1変数多項式を取り、秘密鍵であるセクション若しくは公開鍵である3次元多様体の変数sに代入していたが、これを以下のように変更しても本発明は安全性も含めて同様に成立する。   The second variation is a variation related to a change of a variable into which a hash value polynomial is substituted in the digital signature generation device and the digital signature verification device of the present embodiment. In the digital signature generation apparatus and digital signature verification apparatus of the present embodiment, a one-variable polynomial with a variable t called h (t) is taken as a hash value polynomial, and a variable of a section that is a secret key or a three-dimensional manifold that is a public key Although it is substituted for s, the present invention is similarly established including safety even if it is changed as follows.

即ちハッシュ値多項式として、h(s)という変数sによる1変数多項式を取り、秘密鍵であるセクション若しくは公開鍵である3次元多様体の変数tに代入する。変数s,tは共にパラメータなので本バリエーションによってその効果は変わらない。   That is, a one-variable polynomial with a variable s called h (s) is taken as a hash value polynomial and substituted into a variable t of a section that is a secret key or a three-dimensional manifold that is a public key. Since the variables s and t are both parameters, the effect is not changed by this variation.

(6)構成
次に、本実施形態のデジタル署名方式に係る鍵生成装置、デジタル署名生成装置、デジタル署名検証装置の構成例と、これらの処理動作について説明する。
(6) Configuration
Next, a configuration example of a key generation device, a digital signature generation device, and a digital signature verification device according to the digital signature method of the present embodiment and processing operations thereof will be described.

図2は、鍵生成装置の構成例を示したもので、図3は、図2の鍵生成装置の処理動作を説明するためのフローチャートである。以下、図3に示すフローチャートを参照して、図2の鍵生成装置の構成及び処理動作について説明する。尚、理解の助けとして具体的な数値や式を示すが、これはあくまでも理解を助けるための例であって、実際に使われる十分な安全性を持つデジタル署名とは(特に多項式の次数などの点で)必ずしも一致していない。   FIG. 2 shows a configuration example of the key generation apparatus, and FIG. 3 is a flowchart for explaining the processing operation of the key generation apparatus of FIG. Hereinafter, the configuration and processing operation of the key generation device of FIG. 2 will be described with reference to the flowchart shown in FIG. Although specific numerical values and formulas are shown as an aid to understanding, this is only an example to help understanding, and a digital signature with sufficient security that is actually used (especially the degree of a polynomial) Do not necessarily match).

なお、ここでは、前述した、y=x+a(s,t)x+b(s,t)というファイブレーションをもつ3次元多様体を例にとり説明する。 Here, the above-described three-dimensional manifold having a fibration of y 2 = x 3 + a (s, t) x + b (s, t) will be described as an example.

鍵生成処理開始の指令が外部装置等から制御部1に伝えら、鍵生成装置は鍵生成処理を開始する(ステップS1)。当該指令が制御部1に伝わると、制御部1は、素数生成部2に素数の生成を要請する。素数生成はランダムに素数を発生させても良いが、ここでは大きな素数を使う必要はないので、高々6ビット程度の素数からランダム若しくは(出力順を予め決めておくなどの手段で)恣意的に選択するか、当該鍵生成装置で予め定まっている素数を利用してもよい。ここでは素数p=17が生成されたとする(ステップS2)。   A command for starting the key generation process is transmitted from the external device or the like to the control unit 1, and the key generation apparatus starts the key generation process (step S1). When the command is transmitted to the control unit 1, the control unit 1 requests the prime number generation unit 2 to generate a prime number. Prime numbers may be generated randomly, but it is not necessary to use a large prime number here, so it is random from a prime number of about 6 bits at most (by means such as predetermining the output order). Alternatively, a prime number that is predetermined by the key generation device may be used. Here, it is assumed that a prime number p = 17 is generated (step S2).

制御部1は、セクション生成部5に、素数pを出力し、セクション生成部5では、セクションの生成を開始する。セクション生成部5は、まず、素数pを2変数多項式生成部3に出力し、2変数多項式生成部3は、2変数多項式λ(s,t)(=−s(t−1))を生成する(ステップS3)。2変数多項式生成部3では、予め定められた一定範囲内で次数をランダムに選択し、その次数を持つ2変数多項式の係数を有限体Fの元として0からp−1までの範囲でそれぞれ生成する。 The control unit 1 outputs the prime number p to the section generation unit 5, and the section generation unit 5 starts generating the section. First, the section generation unit 5 outputs the prime number p to the two-variable polynomial generation unit 3, and the two-variable polynomial generation unit 3 outputs the two-variable polynomial λ x (s, t) (= −s (t−1)). Generate (step S3). The two-variable polynomial generator 3 randomly selects the order within a predetermined range, and uses the coefficients of the two-variable polynomial having the order in the range from 0 to p−1 using the finite field F p as an element. Generate.

2変数多項式生成部3は、λ(s,t)を生成すると、これを制御部1へ出力する。制御部1は、λ(s,t)を得ると、上記同様に、ランダムな2変数多項式c(s,t)の生成処理を行い、c(s,t)(=s+t)を得る(ステップS4)。 After generating λ x (s, t), the two-variable polynomial generator 3 outputs this to the controller 1. When λ x (s, t) is obtained, the control unit 1 generates a random two-variable polynomial c (s, t) as described above, and obtains c (s, t) (= s + t) ( Step S4).

制御部1は、c(s,t)とλ(s,t)を2変数多項式演算部4に出力する。 The control unit 1 outputs c (s, t) and λ x (s, t) to the two-variable polynomial arithmetic unit 4.

2変数多項式演算部4では、λ(s,t)=c(s,t)λ(s,t)を計算し(ステップS5)、制御部1へλ(s,t)(=−(s+t)s(t−1))を出力する。 The two-variable polynomial arithmetic unit 4 calculates λ y (s, t) = c (s, t) λ x (s, t) (step S5), and sends the control unit 1 to λ y (s, t) (= -(S + t) s (t-1)) is output.

λ(s,t)を受け取った制御部1では、次にλ(s,t)の生成と同様の方法で2変数多項式v(s,t)(=2st)をランダムに生成し(ステップS6)、λ(s,t)(=−s(t−1))とv(s,t)(=2st)を2変数多項式演算部4へ出力する。 Upon receiving λ y (s, t), the control unit 1 then randomly generates a two-variable polynomial v x (s, t) (= 2st) by a method similar to the generation of λ x (s, t). (Step S 6), λ x (s, t) (= −s (t−1)) and v x (s, t) (= 2st) are output to the two-variable polynomial arithmetic unit 4.

2変数多項式演算部4は、u(s,t)(=λ(s,t)+v(s,t)=s(t+1))を計算し、これを制御部1へ出力する(ステップS7)。 The two-variable polynomial arithmetic unit 4 calculates u x (s, t) (= λ x (s, t) + v x (s, t) = s (t + 1)), and outputs this to the control unit 1 ( Step S7).

制御部1は、ステップS6と同様に、v(s,t)(=2st+s+st−s−st)を生成し(ステップS8)、さらに、
(=λ(s,t)+v(s,t)=s(t+1))を計算する(ステップS9)。
Control unit 1, similarly to step S6, v y (s, t ) (= 2st 2 + s + s 2 t-s 2 -st) generates (step S8), and further,
u y (= λ y (s, t) + v y (s, t) = s (t 2 +1)) is calculated (step S9).

制御部1は、u(s,t)、u(s、t)、v(s,t)、v(s,t)を3次元多様体生成部6に出力する。 The control unit 1 outputs u x (s, t), u y (s, t), v x (s, t), and v y (s, t) to the three-dimensional manifold generation unit 6.

3次元多様体生成部6は、2変数多項式演算部4を繰り返し使うことにより、式(4)に用いて、3次元多様体A(x,y,s,t):y=x+a(s,t)x+b(s,t)のパラメータs、tに関する2変数多項式a(s,t)を計算する(ステップS10)。 The three-dimensional manifold generation unit 6 uses the two-variable polynomial calculation unit 4 repeatedly to use the three-dimensional manifold A (x, y, s, t): y 2 = x 3 + a using Equation (4). A two-variable polynomial a (s, t) relating to parameters s and t of (s, t) x + b (s, t) is calculated (step S10).

この例では

Figure 0005132724
In this example
Figure 0005132724

と求まる。さらに、式(5)を用いて、a(s、t)とu(s,t)、u(s,t)、v(s,t)、v(s,t)から、2変数多項式演算部4を繰り返し使うことにより、パラメータs、tに関する2変数多項式b(s,t)を計算する(ステップS11)。 It is obtained. Furthermore, using equation (5), from a (s, t) and u x (s, t), u y (s, t), v x (s, t), v y (s, t), By repeatedly using the two-variable polynomial arithmetic unit 4, a two-variable polynomial b (s, t) relating to the parameters s and t is calculated (step S11).

この例では、

Figure 0005132724
In this example,
Figure 0005132724

を得る。 Get.

3次元多様体生成部6は、得られたa(s,t)、b(s,t)を制御部1に出力する。   The three-dimensional manifold generation unit 6 outputs the obtained a (s, t) and b (s, t) to the control unit 1.

制御部1は、3次元多様体A(x,y,s,t)を表す多項式:y=x+a(s,t)x+b(s,t)に、ステップS10及びステップS11で得られたa(s,t)とb(s,t)を代入することで、次式(9)に示すような、公開鍵である3次元多様体AのファイブレーションA(x,y,s,t)の多項式を生成する。 The control unit 1 obtains the polynomial representing the three-dimensional manifold A (x, y, s, t): y 2 = x 3 + a (s, t) x + b (s, t) in steps S10 and S11. By substituting a (s, t) and b (s, t), fibration A (x, y, s, A polynomial of t) is generated.

また、次式(10)に示すように、2変数多項式u(s,t)をx座標、2変数多項式u(s,t)をy座標とするセクションD1:(x,y,s,t)と、2変数多項式v(s,t)をx座標、2変数多項式v(s,t)をy座標とするセクションD2:(x,y,s,t)を生成する(ステップS12)。

Figure 0005132724
Further, as shown in the following equation (10), a section D1: (x, y, s) having a two-variable polynomial u x (s, t) as an x coordinate and a two-variable polynomial u y (s, t) as a y coordinate. , T) and a section D2: (x, y, s, t) having the two variable polynomial v x (s, t) as the x coordinate and the two variable polynomial v y (s, t) as the y coordinate ( Step S12).
Figure 0005132724

制御部1は、生成された公開鍵と秘密鍵を鍵出力部7に出力し、鍵出力部7は、公開鍵と秘密鍵を出力する。   The control unit 1 outputs the generated public key and secret key to the key output unit 7, and the key output unit 7 outputs the public key and the secret key.

なお、図2に示す各機能(制御部1、素数生成部2、2変数多項式3、2変数多項式演算部4、セクション生成部5、3次元多様体生成部6、鍵出力部7など)は、図10に示すように、各種プログラムなどを記憶する記憶部101、CPUなどの演算部100、出力部102、入力部103、通信部104などをバスに接続してなるコンピュータに、記憶部101に記憶されている各プログラムを実行させることにより、実現することができる。   2 (control unit 1, prime number generating unit 2, two variable polynomial 3, two variable polynomial calculating unit 4, section generating unit 5, three-dimensional manifold generating unit 6, key output unit 7, etc.) As shown in FIG. 10, a storage unit 101 that stores various programs, a calculation unit 100 such as a CPU, an output unit 102, an input unit 103, a communication unit 104, and the like are connected to a computer. This can be realized by executing each program stored in the.

図10では、記憶部101には、制御部1、素数生成部2、2変数多項式生成部3、2変数多項式演算部4、セクション生成部5、3次元多様体生成部6、鍵出力部7のそれぞれの機能を実現すための鍵生成制御プログラム、素数生成プログラム、2変数多項式生成プログラム、2変数多項式演算プログラム、セクション生成プログラム、3次元多様体生成プログラム、鍵出力プログラムが記憶されている。   In FIG. 10, the storage unit 101 includes a control unit 1, a prime number generation unit 2, a two-variable polynomial generation unit 3, a two-variable polynomial calculation unit 4, a section generation unit 5, a three-dimensional manifold generation unit 6, and a key output unit 7. A key generation control program, a prime number generation program, a two-variable polynomial generation program, a two-variable polynomial calculation program, a section generation program, a three-dimensional manifold generation program, and a key output program are stored.

図2の鍵出力部7から出力された秘密鍵や公開鍵は、例えば、通信部104を介して要求元へ送信されたり、後述するデジタル署名生成装置やデジタル署名検証装置へ渡される。   The secret key and public key output from the key output unit 7 in FIG. 2 are transmitted to the request source via the communication unit 104, or passed to a digital signature generation device and a digital signature verification device described later, for example.

図4は、デジタル署名生成装置の構成例を示したもので、図5は、図4のデジタル署名生成装置の処理動作を説明するためのフローチャートである。以下、図5に示すフローチャートを参照して、図4のデジタル署名生成装置の構成及び処理動作について説明する。   FIG. 4 shows an example of the configuration of the digital signature generation apparatus, and FIG. 5 is a flowchart for explaining the processing operation of the digital signature generation apparatus of FIG. Hereinafter, the configuration and processing operation of the digital signature generation apparatus of FIG. 4 will be described with reference to the flowchart shown in FIG.

図4のデジタル署名生成装置は、平文入力部11から平文mを取得し、秘密鍵入力部14から秘密鍵であるセクション群Di(u(s,t),u(s,y),s,t)(0≦i≦n)を取得する。 The digital signature generation apparatus of FIG. 4 acquires plaintext m from the plaintext input unit 11 and from the secret key input unit 14 a section group Di (u x (s, t), u y (s, y), s, t) (0 ≦ i ≦ n) is acquired.

ここで、秘密鍵を前述の鍵生成処理で生成された
1.素体の標数p=17
2.式(10)に示した有限体F上定義された3次元多様体Aの2つのセクションを利用する。尚、全ての演算は鍵生成処理で決定した有限体F17で行う。
Here, the secret key was generated by the above key generation process
1. Element characteristic p = 17
2. Two sections of the three-dimensional manifold A defined on the finite field F p shown in Expression (10) are used. All calculations are performed on the finite field F 17 determined by the key generation process.

まず、平文入力部11から平文mが入力されることによって、デジタル署名生成処理が開始される(ステップS101)。入力された平文mは、ハッシュ値計算部12に出力され、SHA1やMD5などのハッシュ関数を利用してハッシュ値h(m)が計算される。ここでは、簡単のため、ハッシュ値を「0x151」とするが、本来は120ビット以上である必要がある。計算されたハッシュ値は、ハッシュ値多項式生成部13に送られ、予め定められた複数のブロックに分割される。ここでは、p=17であることから4ビット毎に分割し、各ブロックをハッシュ値多項式h(t)の係数に埋め込む(ステップS103)。その結果得られるハッシュ値多項式h(t)は h(t)=t+5t+1 となる。 First, a digital signature generation process is started by inputting plaintext m from the plaintext input unit 11 (step S101). The input plaintext m is output to the hash value calculation unit 12, and a hash value h (m) is calculated using a hash function such as SHA1 or MD5. Here, for the sake of simplicity, the hash value is set to “0x151”, but it should originally be 120 bits or more. The calculated hash value is sent to the hash value polynomial generation unit 13 and divided into a plurality of predetermined blocks. Here, since p = 17, it is divided every 4 bits, and each block is embedded in the coefficient of the hash value polynomial h (t) (step S103). The resulting hash value polynomial h (t) is h (t) = t 2 + 5t + 1.

秘密鍵記憶部18には、図2や後述の図8に示した構成の鍵生成装置で生成された秘密鍵である少なくとも1つのセクションを記憶する。   The secret key storage unit 18 stores at least one section that is a secret key generated by the key generation apparatus having the configuration shown in FIG. 2 or FIG.

秘密鍵入力部14は、秘密鍵記憶部18から秘密鍵であるセクション群を読み出して、署名生成部15へ出力する(ステップS104)。秘密鍵記憶部18には、複数のセクションが記憶されていることが望ましい。ここでは、式(10)に示した2つのセクションD1、D2が秘密鍵記憶部18に記憶されており、秘密鍵入力部14は、この2つのセクションD1、D2を秘密鍵記憶部18から読み出し、署名生成部15へ出力する。これらセクション群は、署名生成部15から、セクション選択部16に出力される。セクション選択部16は、入力されたセクション群のうちから1つのセクションをランダムに選択する(ステップS105)。ここではD1が選択されたとする。選択されたセクションD1は、署名生成部15に出力される。なお、秘密鍵記憶部18に秘密鍵が1つのみ記憶されている場合には、セクション選択部16の上記処理は省略される。   The secret key input unit 14 reads out a section group that is a secret key from the secret key storage unit 18 and outputs the section group to the signature generation unit 15 (step S104). The secret key storage unit 18 preferably stores a plurality of sections. Here, the two sections D1 and D2 shown in Expression (10) are stored in the secret key storage unit 18, and the secret key input unit 14 reads the two sections D1 and D2 from the secret key storage unit 18. And output to the signature generation unit 15. These section groups are output from the signature generation unit 15 to the section selection unit 16. The section selection unit 16 randomly selects one section from the input group of sections (step S105). Here, it is assumed that D1 is selected. The selected section D1 is output to the signature generation unit 15. If only one secret key is stored in the secret key storage unit 18, the above processing of the section selection unit 16 is omitted.

選択されたセクションD1を受信した署名生成部15は、ハッシュ値多項式生成部13から、ステップS103で生成されたハッシュ値多項式h(t)を取得して、選択されたセクションD1のs座標にh(t)を代入して(s=h(t))、セクションDsを生成する(ステップS106)。   The signature generation unit 15 that has received the selected section D1 acquires the hash value polynomial h (t) generated in step S103 from the hash value polynomial generation unit 13, and sets the s coordinate of the selected section D1 to h. Substituting (t) (s = h (t)), section Ds is generated (step S106).

ここでは、次式(11)に示すようなセクションDsが生成される。

Figure 0005132724
Here, a section Ds as shown in the following equation (11) is generated.
Figure 0005132724

このセクションDsは、デジタル署名として署名出力部17から出力される(ステップS107)。   This section Ds is output from the signature output unit 17 as a digital signature (step S107).

前述の第1、第2のバリエーションは本実施形態において同様の処理で成立する。尚、第1のバリエーションを利用する場合は現状では(ハッシュ値の大きさを考慮して)pを120ビット以上とする必要がある。   The first and second variations described above are established by the same processing in this embodiment. When the first variation is used, p needs to be 120 bits or more at present (considering the size of the hash value).

なお、図4に示す各機能(平文入力部11、ハッシュ値計算部12、ハッシュ値多項式生成部13,秘密鍵入力部14、署名生成部15、セクション選択部16,署名出力部17など)は、図11に示すように、各種プログラムなどを記憶する記憶部101、CPUなどの演算部100、出力部102、入力部103、通信部104などをバスに接続してなるコンピュータに、記憶部101に記憶されている各プログラムを実行させることにより、実現することができる。   Each function shown in FIG. 4 (plaintext input unit 11, hash value calculation unit 12, hash value polynomial generation unit 13, secret key input unit 14, signature generation unit 15, section selection unit 16, signature output unit 17, etc.) As shown in FIG. 11, a storage unit 101 that stores various programs, a calculation unit 100 such as a CPU, an output unit 102, an input unit 103, a communication unit 104, and the like are connected to a computer. This can be realized by executing each program stored in the.

図11では、記憶部101には、平文入力部11、ハッシュ値計算部12、ハッシュ値多項式生成部13,秘密鍵入力部14、署名生成部15、セクション選択部16,署名出力部17のそれぞれの機能を実現すための平文入力プログラム、ハッシュ値計算プログラム、ハッシュ値多項式生成プログラム、秘密鍵入力プログラム、署名生成プログラム、セクション選択プログラム,署名出力プログラムが記憶されている。また、記憶部101は、秘密鍵を記憶する秘密鍵記憶部18としても機能する。   In FIG. 11, the storage unit 101 includes a plaintext input unit 11, a hash value calculation unit 12, a hash value polynomial generation unit 13, a secret key input unit 14, a signature generation unit 15, a section selection unit 16, and a signature output unit 17. A plaintext input program, a hash value calculation program, a hash value polynomial generation program, a secret key input program, a signature generation program, a section selection program, and a signature output program for realizing the above functions are stored. The storage unit 101 also functions as a secret key storage unit 18 that stores a secret key.

平文入力部11で入力されたメッセージmと、署名出力部17で出力されたデジタル署名は、例えば、通信部104を介して相手端末へ送信される。   The message m input by the plaintext input unit 11 and the digital signature output by the signature output unit 17 are transmitted to the counterpart terminal via the communication unit 104, for example.

図6は、デジタル署名検証装置の構成例を示したもので、図7は、図6のデジタル署名検証装置の処理動作を説明するためのフローチャートである。以下、図7に示すフローチャートを参照して、図6のデジタル署名検証装置の構成及び処理動作について説明する。   FIG. 6 shows a configuration example of the digital signature verification apparatus, and FIG. 7 is a flowchart for explaining the processing operation of the digital signature verification apparatus of FIG. The configuration and processing operation of the digital signature verification apparatus shown in FIG. 6 will be described below with reference to the flowchart shown in FIG.

図6のデジタル署名生成装置は、平文入力部21から平文mを取得し、公開鍵入力部24から公開鍵である有限体F上定義された3次元多様体A(x,y,s,t)を取得する。 Digital signature generation apparatus of FIG. 6 acquires plaintext m from the plaintext input unit 21, a public key from the public key input unit 24 finite F p on the defined 3D manifold A (x, y, s, t).

まず、平文入力部21から平文mが入力されることよって、デジタル署名検証処理が開始される(ステップS201)。   First, the digital signature verification process is started by inputting plaintext m from the plaintext input unit 21 (step S201).

入力された平文mは、ハッシュ値計算部22に出力され、署名生成装置で用いられたものと同じハッシュ関数を利用してハッシュ値が計算される(ステップS202)。ここでは、ハッシュ値は署名生成装置で出力したハッシュ値と同じ「0x151」となる。このハッシュ値は、ハッシュ値多項式生成部23に出力される。   The input plaintext m is output to the hash value calculation unit 22, and a hash value is calculated using the same hash function as that used in the signature generation device (step S202). Here, the hash value is “0x151”, which is the same as the hash value output by the signature generation apparatus. This hash value is output to the hash value polynomial generator 23.

ハッシュ値多項式生成部23では、デジタル署名検証装置と同じアルゴリズムで、ハッシュ値多項式h(t)を計算する(ステップS203)。従って、ここで得られる、ハッシュ値多項式h(t)は、h(t)=t+5t+1 となる。 The hash value polynomial generator 23 calculates a hash value polynomial h (t) using the same algorithm as that of the digital signature verification device (step S203). Therefore, the hash value polynomial h (t) obtained here is h (t) = t 2 + 5t + 1.

得られたハッシュ値多項式h(t)は、署名検証部26へ出力される。   The obtained hash value polynomial h (t) is output to the signature verification unit 26.

公開鍵記憶部29は、図2や後述の図8に示した構成の鍵生成装置で生成された公開鍵である有限体F上定義された3次元多様体A(x,y,s,t)の多項式を記憶する。 The public key storage unit 29 is a three-dimensional manifold A (x, y, s, defined on the finite field F p that is a public key generated by the key generation device having the configuration shown in FIG. 2 or FIG. Store the polynomial of t).

公開鍵入力部24は、公開鍵記憶部29から公開鍵である3次元多様体の多項式を読み出して、署名生成部15へ出力する(ステップS204)。ここでは、式(9)に示した3次元多様体、すなわち、公開鍵が署名検証部26へ入力される。署名検証部26は、入力された公開鍵を代数曲面生成部27に出力する。   The public key input unit 24 reads the polynomial of the three-dimensional manifold that is the public key from the public key storage unit 29, and outputs it to the signature generation unit 15 (step S204). Here, the three-dimensional manifold shown in Expression (9), that is, the public key is input to the signature verification unit 26. The signature verification unit 26 outputs the input public key to the algebraic surface generation unit 27.

署名検証部26は、ステップS203で生成されたハッシュ値多項式h(t)を代数曲面生成部27へ出力する。   The signature verification unit 26 outputs the hash value polynomial h (t) generated in step S203 to the algebraic surface generation unit 27.

代数曲面生成部27は、3次元多様体の変数sに、署名検証部26から出力されたハッシュ値多項式h(t)を代入して、代数曲面X(x,y,t)を生成する(ステップS205)。ここでは、次式(12)に示すような代数曲面X(x,y,t)が得られる。

Figure 0005132724
The algebraic surface generation unit 27 generates the algebraic surface X (x, y, t) by substituting the hash value polynomial h (t) output from the signature verification unit 26 for the variable s of the three-dimensional manifold ( Step S205). Here, an algebraic surface X (x, y, t) as shown in the following equation (12) is obtained.
Figure 0005132724

次に、署名入力部25に入力された式(11)に示した署名Ds:(U(t),U(t),t)を署名検証部26が読み込む(ステップS206)。この署名Dsのx座標U(t)=t+6t+6t+1、y座標U(t)=t+5t+2t+5t+1を、それぞれ、式(12)に示した代数曲面Xのx,y座標に代入して、展開・整理する(ステップS207)。前述の通り、デジタル署名Dsは代数曲面Xの因子となっているため、代入して整理すれば「0」となるはずである。従って、「0」となれば(ステップS208)、判定結果出力部28に、「署名検証成功」を出力する(ステップS209)。「0」とならなければ、デジタル署名が間違っていたことを意味するので(ステップS208)、判定結果出力部28に、「署名検証失敗」を出力する(ステップS210)。 Next, the signature verification unit 26 reads the signature Ds: (U x (t), U y (t), t) shown in Expression (11) input to the signature input unit 25 (step S206). The x-coordinate U x (t) = t 3 + 6t 2 + 6t + 1 and the y-coordinate U y (t) = t 4 + 5t 3 + 2t 2 + 5t + 1 of the signature Ds are respectively represented by x and a Substituting into the y-coordinate, developing and organizing (step S207). As described above, since the digital signature Ds is a factor of the algebraic surface X, if it is substituted and arranged, it should be “0”. Therefore, if it becomes “0” (step S208), “signature verification success” is output to the determination result output unit 28 (step S209). If it is not “0”, it means that the digital signature is wrong (step S208), and “signature verification failure” is output to the determination result output unit 28 (step S210).

判定結果出力部28は、判定結果を外部へ出力して、全ての処理を終了する。   The determination result output unit 28 outputs the determination result to the outside and ends all the processes.

ここで示した例では、正当なデジタル署名なので、ステップS207で、代数曲面Xにデジタル署名Ds代入して整理した結果は、確かに「0」となり、署名検証部26は、判定結果出力部28に「署名検証成功」を出力し、判定結果出力部28はそれを外部に出力して終了する。   In the example shown here, since it is a valid digital signature, the result obtained by substituting the digital signature Ds into the algebraic surface X in step S207 is certainly “0”, and the signature verification unit 26 determines that the determination result output unit 28 "Signature verification success" is output to the determination result output unit 28, which outputs it to the outside and ends.

第1、第2のバリエーションは本実施形態において同様の処理で成立する。   The first and second variations are established by the same processing in this embodiment.

なお、図6に示す各機能(平文入力部21、ハッシュ値計算部22、ハッシュ値多項式生成部23,公開鍵入力部24、署名入力部25、署名検証部26、代数曲面生成部27、判定結果出力部28など)は、図12に示すように、各種プログラムなどを記憶する記憶部101、CPUなどの演算部100、出力部102、入力部103、通信部104などをバスに接続してなるコンピュータに、記憶部101に記憶されている各プログラムを実行させることにより、実現することができる。   6 (plaintext input unit 21, hash value calculation unit 22, hash value polynomial generation unit 23, public key input unit 24, signature input unit 25, signature verification unit 26, algebraic surface generation unit 27, determination As shown in FIG. 12, the result output unit 28 and the like connect a storage unit 101 for storing various programs, a calculation unit 100 such as a CPU, an output unit 102, an input unit 103, a communication unit 104, and the like to a bus. This can be realized by causing the computer to execute each program stored in the storage unit 101.

図12では、記憶部101には、平文入力部21、ハッシュ値計算部22、ハッシュ値多項式生成部23,公開鍵入力部24、署名入力部25、署名検証部26、代数曲面生成部27、判定結果出力部28のそれぞれの機能を実現すための平文入力プログラム、ハッシュ値計算プログラム、ハッシュ値多項式生成プログラム、公開鍵入力プログラム、署名入力プログラム、署名検証プログラム、代数曲面生成プログラム、判定結果出力プログラムが記憶されている。また、記憶部101は、公開鍵を記憶する公開鍵記憶部29として機能する。   In FIG. 12, the storage unit 101 includes a plaintext input unit 21, a hash value calculation unit 22, a hash value polynomial generation unit 23, a public key input unit 24, a signature input unit 25, a signature verification unit 26, an algebraic curved surface generation unit 27, Plain text input program, hash value calculation program, hash value polynomial generation program, public key input program, signature input program, signature verification program, algebraic surface generation program, determination result output for realizing the respective functions of the determination result output unit 28 The program is stored. The storage unit 101 also functions as a public key storage unit 29 that stores a public key.

署名入力部25には、デジタル署名生成装置で生成されたメッセージmに対応するデジタル署名が入力される。   A digital signature corresponding to the message m generated by the digital signature generation device is input to the signature input unit 25.

次に、第2の鍵生成方法について説明する。図8は第2の鍵生成方法を用いた鍵生成装置の構成例を示したもので、図9は、図8の鍵生成装置の処理動作を説明するためのフローチャートである。以下、図9に示すフローチャートを参照して、図8の鍵生成装置の構成及び処理動作について説明する。   Next, the second key generation method will be described. FIG. 8 shows a configuration example of a key generation apparatus using the second key generation method, and FIG. 9 is a flowchart for explaining the processing operation of the key generation apparatus of FIG. Hereinafter, the configuration and processing operation of the key generation device of FIG. 8 will be described with reference to the flowchart shown in FIG.

鍵生成処理開始の指令が外部装置等から制御部1に伝えられ、鍵生成装置は鍵生成処理を開始する(ステップS301)。当該指令が制御部1に伝わると、制御部1は、素数生成部2に素数の生成を要請する。素数生成はランダムに素数を発生させても良いが、ここでは大きな素数を使う必要はないので、高々6ビット程度の素数からランダム若しくは(出力順を予め決めておくなどの手段で)恣意的に選択するか、当該鍵生成装置で予め定まっている素数を利用してもよい。ここでは素数p=17が生成されたとする(ステップS302)。   A command for starting the key generation process is transmitted from the external device or the like to the control unit 1, and the key generation apparatus starts the key generation process (step S301). When the command is transmitted to the control unit 1, the control unit 1 requests the prime number generation unit 2 to generate a prime number. Prime numbers may be generated randomly, but it is not necessary to use a large prime number here, so it is random from a prime number of about 6 bits at most (by means such as predetermining the output order). Alternatively, a prime number that is predetermined by the key generation device may be used. Here, it is assumed that a prime number p = 17 is generated (step S302).

制御部1は、セクション生成部5に、素数pを送信し、セクション生成部5では、セクションの生成を開始する。セクション生成部5では、n個のセクション
Di:(x,y,s,t)=(ux,i(s,t),uy,i(s,t),s,t)
(1≦i≦n)
のx座標ux,i(s,t)、y座標uy,i(s,t)を以下に示す方法で決定する。
The control unit 1 transmits the prime number p to the section generation unit 5, and the section generation unit 5 starts generating the section. In the section generator 5, n sections
Di: (x, y, s, t) = (ux , i (s, t), u y, i (s, t), s, t)
(1 ≦ i ≦ n)
X coordinate u x, i (s, t) and y coordinate u y, i (s, t) are determined by the following method.

まず、x座標のsに関する次元の最大値h、tに関する次元の最大値kを定める(ステップS303)。即ち、

Figure 0005132724
First, the dimension maximum value h x related to s of the x coordinate and the dimension maximum value k x related to t are determined (step S303). That is,
Figure 0005132724

ここでは、簡単のため、h=k=2とする。 Here, for simplification, it is assumed that h x = k x = 2.

次に、shxkxの項を含み、この次数の範囲内のセクションDiのx座標ux,i(s,t)の生成を2変数多項式生成部3に要求する。ここでは、n=3であるので、2変数多項式生成部3は、ux,1(s、t)、ux,2(s、t)、ux,3(s、t)を、ランダムに順次決定する(ステップS304)。すなわち、

Figure 0005132724
Next, the two-variable polynomial generator 3 is requested to generate the x-coordinates u x, i (s, t) of the section Di within the range of the order including the term of s hx t kx . Here, since n = 3, the two-variable polynomial generating unit 3 randomly selects ux, 1 (s, t), ux , 2 (s, t), ux , 3 (s, t). Are sequentially determined (step S304). That is,
Figure 0005132724

が得られる。 Is obtained.

次に、ステップS303と同様に、y座標のsに関する次元の最大値h、tに関する次元の最大値kを定める(ステップS305)。即ち、

Figure 0005132724
Next, similarly to step S303, the maximum dimension value h y for s of the y coordinate and the maximum dimension value k y for t are determined (step S305). That is,
Figure 0005132724

ここでは、簡単のためh=k=2とする。 Here, for simplification, it is assumed that h y = k y = 2.

次に、shykyの項を含み、この次数の範囲内のセクションDiのy座標uy,i(s,t)の生成を2変数多項式生成部3に要求する。ここでは、n=3であるので、2変数多項式生成部3は、uy,1(s、t)、uy,2(s、t)、uy,3(s、t)を、ランダムに順次決定する(ステップS306)。すなわち、

Figure 0005132724
Next, the two-variable polynomial generator 3 is requested to generate the y-coordinates u y, i (s, t) of the section Di within the range of the order including the term s hy t ky . Here, since n = 3, the two-variable polynomial generation unit 3 randomly converts u y, 1 (s, t), u y, 2 (s, t), u y, 3 (s, t). Are sequentially determined (step S306). That is,
Figure 0005132724

が得られる。 Is obtained.

以上で、セクションDiが生成された。   Thus, section Di is generated.

これらセクションは制御部1に出力される。制御部1では、3次元多様体生成部6に、これらセクションを出力して、3次元多様体を生成させる。   These sections are output to the control unit 1. The control unit 1 outputs these sections to the three-dimensional manifold generation unit 6 to generate a three-dimensional manifold.

3次元多様体生成部6では、入力されたux,i(s,t)、uy,i(s,t)をそれぞれ、
x因子(x−ux,i(s,t))、y因子(y−uy,i(s,t))と因子化する(ステップS307)。
In the three-dimensional manifold generation unit 6, the input ux , i (s, t) and uy , i (s, t) are respectively
Factorize with x factor (x-u x, i (s, t)) and y factor (y-u , i (s, t)) (step S307).

そして、iが同じ値の因子x(x−ux,i(s,t))及びy因子(y−uy,i(s,t))を、左辺と右辺にランダムに振り分ける。そして、左辺に振り分けられたn個の因子の積と、右辺に振り分けられたn個の因子の積とを等号で結ぶことにより、次式(13)に示すような4変数(x、y、s、t)多項式を生成する。

Figure 0005132724
Then, the factor x (x−u x, i (s, t)) and the y factor (y−u y, i (s, t)) having the same value of i are randomly distributed to the left side and the right side. Then, by connecting the product of the n factors distributed on the left side and the product of the n factors distributed on the right side with equal signs, four variables (x, y shown in the following equation (13)) are obtained. , S, t) generate a polynomial.
Figure 0005132724

3次元多様体生成部6は、制御部1を介して、(もしくは直接)4変数多項式演算部8へ、上式(13)の展開を依頼する。   The three-dimensional manifold generation unit 6 requests the 4-variable polynomial arithmetic unit 8 to develop the above expression (13) via the control unit 1 (or directly).

4変数多項式演算部8は、上式(13)を展開して、当該4変数多項式に含まれる各項を、左辺と右辺のいずれか一方にまとめて、次式(14)に示すような、3次元多様体A(x,y,s,t)を得る(ステップS308)。

Figure 0005132724
The 4-variable polynomial calculation unit 8 expands the above equation (13), collects the terms included in the 4-variable polynomial into one of the left side and the right side, and shows the following equation (14): A three-dimensional manifold A (x, y, s, t) is obtained (step S308).
Figure 0005132724

4変数多項式演算部8は、得られた3次元多様体A(x,y,s,t)を制御部1へ出力する。制御部1では3つのセクションと3次元多様体A(x,y,s,t)を鍵として鍵出力部7へ出力し、鍵出力部7では、これらの鍵を出力する。   The 4-variable polynomial arithmetic unit 8 outputs the obtained three-dimensional manifold A (x, y, s, t) to the control unit 1. The control unit 1 outputs the three sections and the three-dimensional manifold A (x, y, s, t) as keys to the key output unit 7, and the key output unit 7 outputs these keys.

なお、図8に示す各機能(制御部1、素数生成部2、2変数多項式生成部3、4変数多項式演算部8、セクション生成部5、3次元多様体生成部6、鍵出力部7など)は、図13に示すように、各種プログラムなどを記憶する記憶部101、CPUなどの演算部100、出力部102、入力部103、通信部104などをバスに接続してなるコンピュータに、記憶部101に記憶されている各プログラムを実行させることにより、実現することができる。   8 (control unit 1, prime number generating unit 2, two variable polynomial generating unit 3, four variable polynomial calculating unit 8, section generating unit 5, three-dimensional manifold generating unit 6, key output unit 7, etc. ) Is stored in a computer in which a storage unit 101 for storing various programs, an arithmetic unit 100 such as a CPU, an output unit 102, an input unit 103, a communication unit 104, and the like are connected to a bus as shown in FIG. This can be realized by executing each program stored in the unit 101.

図13では、記憶部101には、制御部1、素数生成部2、2変数多項式生成部3、4変数多項式演算部8、セクション生成部5、3次元多様体生成部6、鍵出力部7のそれぞれの機能を実現すための鍵生成制御プログラム、素数生成プログラム、2変数多項式生成プログラム、4変数多項式演算プログラム、セクション生成プログラム、3次元多様体生成プログラム、鍵出力プログラムが記憶されている。   In FIG. 13, the storage unit 101 includes a control unit 1, a prime number generation unit 2, a two variable polynomial generation unit 3, a four variable polynomial calculation unit 8, a section generation unit 5, a three-dimensional manifold generation unit 6, and a key output unit 7. A key generation control program, a prime number generation program, a two-variable polynomial generation program, a four-variable polynomial calculation program, a section generation program, a three-dimensional manifold generation program, and a key output program for realizing these functions are stored.

図8の鍵出力部7から出力された秘密鍵や公開鍵は、例えば、通信部104を介して要求元へ送信されたり、後述するデジタル署名生成装置やデジタル署名検証装置へ渡される。   The secret key and public key output from the key output unit 7 in FIG. 8 are transmitted to the request source via the communication unit 104, or passed to a digital signature generation device and a digital signature verification device described later, for example.

図8の示す鍵生成装置の2変数多項式生成部3は、安全性を高めるため、セクションのx座標やy座標に対応する2変数多項式を生成する際、変数s、tについての字数の最大値(x座標の変数sの最大次数hx、x座標の変数tの最大次数kx、y座標の変数sの最大次数hy、y座標の変数tの最大多項数ky)をそれぞれ定め、x座標については、shxkxの項を必ず含む2変数多項式を生成、y座標については、shykyの項を必ず含む2変数多項式を生成している。 When the two-variable polynomial generating unit 3 of the key generating device shown in FIG. 8 generates a two-variable polynomial corresponding to the x-coordinate and y-coordinate of the section in order to increase security, the maximum number of characters for the variables s and t (The maximum degree hx of the x coordinate variable s, the maximum order kx of the x coordinate variable t, the maximum order hy of the y coordinate variable s, and the maximum polynomial number ky of the y coordinate variable t) are defined respectively. , S hx t kx is always generated, and for the y-coordinate, a two-variable polynomial is always generated that includes s hy t ky .

しかし、この場合に限らず、次数が最大値hx以下の変数sと、次数が最大値kx以下の変数tとのうちの少なくとも1つを因子として有する複数の単項式とを含む2変数多項式ux,i(s,t)(i:1≦i≦n)や、次数が最大値hy以下の変数sと、次数が最大値ky以下の変数tとのうちの少なくとも1つを因子として有する複数の単項式とを含む2変数多項式uy,i(s,t)(i:1≦i≦n)を生成すれば、n個のセクションを持つ3次元多様体を生成することができる。 However, the present invention is not limited to this, and a two-variable polynomial u x including a variable s whose degree is equal to or less than the maximum value hx and a plurality of mononomials having at least one of a variable t whose degree is equal to or less than the maximum value kx as a factor. , I (s, t) (i: 1 ≦ i ≦ n), a plurality of variables having at least one of a variable s whose order is the maximum value hy or less and a variable t whose order is the maximum value ky or less as a factor By generating a two-variable polynomial u y, i (s, t) (i: 1 ≦ i ≦ n) including the monomial, a three-dimensional manifold having n sections can be generated.

以上説明したように、上記実施形態によれば、メッセージ送信側のデジタル署名生成装置は有限体Fならびに、x座標、y座標、パラメータs、及びパラメータtで表される前記有限体F上定義された3次元多様体A(x,y,s,t)内の曲面のうち、x座標及びy座標がパラメータs及びtの関数で表されたセクションD(u(s,t),u(s,y),s,t)を、署名生成用の秘密鍵として記憶手段に記憶する。CPU等の演算手段は、メッセージmのハッシュ値を計算し、このハッシュ値を前記有限体F上定義された1変数多項式h(t)の係数に埋め込み、ハッシュ値多項式を生成する。そして、演算手段は、記憶手段からセクションを1つ読み出して、それを署名生成用の秘密鍵として用いて、デジタル署名を生成する。すなわち、セクションのs座標に上記ハッシュ値多項式を代入することで、x座標及びy座標がパラメータtの関数で表された前記セクション上の曲線であるデジタル署名Ds(U(t),U(t),t)を生成する。このようにして生成されたデジタル署名は、上記メッセージmとともに、メッセージ送信側の送信手段により、メッセージ受信側へ送信される。 As described above, according to the above embodiment, the digital signature generation device of the message sender finite field F p and, x coordinate, y coordinate, the parameter s, and the on the finite field F p which is represented by a parameter t Of the curved surfaces in the defined three-dimensional manifold A (x, y, s, t), the section D (u x (s, t), where the x and y coordinates are expressed by functions of parameters s and t. u y (s, y), s, t) is stored in the storage means as a secret key for signature generation. Operation means such as a CPU calculates the hash value of the message m, embedding the hash value to the coefficients of the finite field F p on the defined one-variable polynomial h (t), and generates a hash value polynomial. Then, the calculation means reads one section from the storage means, and generates a digital signature using it as a secret key for signature generation. That is, by substituting the hash value polynomial into the s coordinate of the section, the digital signature Ds (U x (t), U y ) is a curve on the section in which the x coordinate and the y coordinate are expressed as a function of the parameter t. (T), t) are generated. The digital signature generated in this way is transmitted to the message receiving side together with the message m by the transmitting means on the message transmitting side.

記憶手段は、異なる複数のセクションD(ux,i(s,t),uy,i(s,t),s,t)(iは、0≦i≦nの任意の正の整数)を記憶し、デジタル署名を生成する度に、この記憶手段に記憶された複数のセクションDiのうちの任意の1つのセクションを選択して、デジタル署名を生成することにより、より安全性が高まる。 The storage means stores a plurality of different sections D i (ux , i (s, t), u y, i (s, t), s, t) (i is an arbitrary positive integer satisfying 0 ≦ i ≦ n. ) And a digital signature is generated, and by selecting any one of a plurality of sections Di stored in the storage means and generating a digital signature, security is further increased. .

また、メッセージ受信側のデジタル署名検証装置は、記憶手段に、有限体Fならびに公開鍵として、x座標、y座標、パラメータs、及びパラメータtで表される前記有限体F上定義された3次元多様体A(x,y,s,t)の多項式を記憶する。メッセージmと当該メッセージmに対応するデジタル署名Ds:(U(t),U(t),t)とが入力されると、CPU等の演算手段が、メッセージmのハッシュ値を計算し、このハッシュ値を前記有限体F上定義された1変数多項式h(t)に埋め込み、ハッシュ値多項式を生成する。そして、演算手段は、記憶手段から上記メッセージ送信側に対応する公開鍵である3次元多様体A(x,y,s,t)の多項式のs座標に、当該ハッシュ値多項式を代入して、ハッシュ値に対応した代数曲面X(x,y,t)を計算する。さらに、演算手段は、代数曲面X(x,y,t)に、上記デジタル署名を代入して、メッセージ及びデジタル署名の正当性を検証する。すなわち、代数曲面X(x,y,t)のx座標に、デジタル署名のx座標(変数tの多項式で表された)U(t)を代入し、代数曲面X(x,y,t)のy座標に、デジタル署名のy座標(変数tの多項式で表された)U(t)を代入した後、式を展開し(多項式の積を単項式の和の形で表す)、整理する。この結果(代数曲面X(x,y,t)にデジタル署名のx座標およびy座標を代入した結果)が「0」であるとき、メッセージmが改竄されていないこと、及び、メッセージmが、上記公開鍵に対応する正当なメッセージ送信者から送信されたことが検証されたことになる(署名検証成功)。 Also, the digital signature verification device on the message receiving side is defined on the finite field F p represented by the x-coordinate, y-coordinate, parameter s, and parameter t as the finite field F p and the public key in the storage means. A polynomial of a three-dimensional manifold A (x, y, s, t) is stored. When a message m and a digital signature Ds: (U x (t), U y (t), t) corresponding to the message m are input, a calculation means such as a CPU calculates a hash value of the message m. The hash value is embedded in a one-variable polynomial h (t) defined on the finite field F p to generate a hash value polynomial. Then, the calculation means substitutes the hash value polynomial from the storage means to the s coordinate of the polynomial of the three-dimensional manifold A (x, y, s, t) that is the public key corresponding to the message transmission side, An algebraic surface X (x, y, t) corresponding to the hash value is calculated. Further, the arithmetic means substitutes the digital signature for the algebraic surface X (x, y, t), and verifies the validity of the message and the digital signature. That is, the x coordinate of the digital signature (represented by the polynomial of variable t) U x (t) is substituted for the x coordinate of the algebraic surface X (x, y, t), and the algebraic surface X (x, y, t) Substituting the y-coordinate of the digital signature (represented by the polynomial of the variable t) U y (t) into the y-coordinate of (), then expanding the formula (representing the product of the polynomial in the form of a monomial sum) To do. When this result (the result of substituting the x coordinate and y coordinate of the digital signature for the algebraic surface X (x, y, t)) is “0”, the message m is not falsified, and the message m is It is verified that the message is transmitted from a legitimate message sender corresponding to the public key (signature verification success).

鍵生成装置では、CPU等の演算手段が、前記有限体F上定義された、パラメータs、tに関する第1の2変数多項式λ(s,t)と、この第1の2変数多項式λ(s,t)で割り切れる、前記有限体F上定義された第2の2変数多項式λ(s,t)を生成し、次に、前記有限体F上定義された、変数xがパラメータs,tで表される2つの2変数多項式u(s,t)、v(s,t)を、当該2つの2変数多項式の差分{u(s,t)−v(s,t)}がλ(s,t)となるように生成し、さらに、前記有限体F上定義された、変数yがパラメータs,tで表される2つの2変数多項式u(s,t)、v(s,t)を、当該2つの2変数多項式の差分{u(s,t)−v(s,t)}がλ(s,t)となるように生成する。そして、演算手段は、2変数多項式u(s,t)をx座標、2変数関数u(s,t)をy座標とするセクションD1:(x,y,s,t)=(u(s,t),u(s,t),s,t)と、2変数多項式v(s,t)をx座標、2変数関数v(s,t)をy座標とするセクションD2:(x,y,s,t)=(v(s,t),v(s,t),s,t)を生成する。これら2つのセクションD1、D2が秘密鍵である。また、この2つのセクションD1,D2を持つ3次元多様体A(x,y,s,t)を生成する。この3次元多様体Aが、公開鍵である。 In the key generation device, a calculation means such as a CPU includes a first two-variable polynomial λ x (s, t) relating to parameters s and t defined on the finite field F p and the first two-variable polynomial λ. Generate a second two-variable polynomial λ y (s, t) defined on the finite field F p that is divisible by x (s, t), and then the variable x defined on the finite field F p Are expressed by parameters s and t, and two differential variables u x (s, t) and v x (s, t) are converted into the difference {u x (s, t) −v x of the two variable variables. (S, t)} is generated to be λ x (s, t), and further, two two-variable polynomials u defined on the finite field F p are represented by the parameters y and s. y (s, t), v y (s, t) and the difference of the two 2-variable polynomials {u y (s, t) -v y (s, t)} is lambda y ( , To produce in such a way that t). The computing means then has a section D1: (x, y, s, t) = (u) in which the two-variable polynomial u x (s, t) is the x coordinate and the two variable function u y (s, t) is the y coordinate. x (s, t), u y (s, t), s, t) and the two-variable polynomial v x (s, t) are the x-coordinate and the two-variable function v y (s, t) is the y-coordinate. section D2: (x, y, s , t) = (v x (s, t), v y (s, t), s, t) to generate a. These two sections D1 and D2 are secret keys. Also, a three-dimensional manifold A (x, y, s, t) having these two sections D1 and D2 is generated. This three-dimensional manifold A is a public key.

他の鍵生成装置では、CPU等の演算手段が、パラメータs、tに関する第1番目から第n(nは正の整数)番目までのn(nは正の整数)個の前記有限体F上定義された2変数多項式ux,i(s,t)(i:1≦i≦n)と、パラメータs、tに関する第1番目から第n番目までのn個の前記有限体F上定義された2変数多項式uy,i(s,t)(i:1≦i≦n)を生成する。演算手段は、生成された第i(1≦i≦n)番目の2変数多項式ux,i(s,t)及びuy,i(s,t)をそれぞれx座標、y座標とする第i番目のセクションDi:(x,y,s,t)=(ux,i(s,t)、uy,i(s,t),s,t)(1≦i≦n)を生成することにより、第1番目から第n番目までのn個のセクションDi(1≦i≦n)を求める。このn個のセクションが秘密鍵である。さらに、演算手段は、生成された第i(1≦i≦n)番目の2変数多項式ux,i(s,t)及びuy,i(s,t)を用いて、第i番目のx因子(x−ux,i(s,t))及びy因子(y−uy,i(s,t))を生成することにより、第1番目から第n番目までのx因子及びy因子を求める。演算手段は、生成された第i(1≦i≦n)番目のx因子及びy因子を左辺と右辺に振り分けて、左辺に振り分けられたn個のx因子及びy因子の積と、右辺に振り分けられたn個のx因子及びy因子の積とを等号で結ぶことにより得られる等式を生成すると、この生成された等式を展開することにより、公開鍵である、3次元多様体A(x,y,s,t)の多項式を生成する。 In another key generation device, the arithmetic means such as a CPU has n (n is a positive integer) number of the finite fields F p from the first to the n-th (n is a positive integer) regarding the parameters s and t. On the above-defined two-variable polynomials u x, i (s, t) (i: 1 ≦ i ≦ n) and the first to nth finite fields F p with respect to the parameters s and t A defined two-variable polynomial u y, i (s, t) (i: 1 ≦ i ≦ n) is generated. The calculation means uses the generated i-th (1 ≦ i ≦ n) -th two-variable polynomials u x, i (s, t) and u y, i (s, t) as x-coordinate and y-coordinate respectively. Generate i-th section Di: (x, y, s, t) = (ux , i (s, t), u y, i (s, t), s, t) (1 ≦ i ≦ n) Thus, n sections Di (1 ≦ i ≦ n) from the first to the n-th are obtained. These n sections are secret keys. Further, the computing means uses the generated i-th (1 ≦ i ≦ n) -th two-variable polynomials u x, i (s, t) and u y, i (s, t) to generate the i-th By generating x-factor (x-u x, i (s, t)) and y-factor (y-u y, i (s, t)), the first to n-th x-factor and y Find the factor. The computing means distributes the generated i-th (1 ≦ i ≦ n) -th x factor and y factor to the left side and the right side, and the product of n number of x factors and y factor distributed to the left side and the right side When an equality obtained by connecting the product of the distributed n x factors and y factors with an equal sign is generated, by expanding the generated equality, a three-dimensional manifold that is a public key A polynomial of A (x, y, s, t) is generated.

このように、上記実施形態にかかる公開鍵暗号に基づくデジタル署名システムは、頑健(robust)で、安全性・信頼性の高いデジタル署名を生成することができ、しかも少ない計算量で実現可能である。   As described above, the digital signature system based on the public key cryptography according to the above-described embodiment can generate a robust digital signature with high security and reliability, and can be realized with a small amount of calculation. .

1…制御部、2…素数生成部、3…2変数多項式生成部、4…2変数多項式演算部、5…セクション生成部、6…3次元多様体生成部、7…鍵出力部、11…平文入力部、12…ハッシュ値計算部、13…ハッシュ値多項式生成部、14…秘密鍵入力部、15…署名生成部、16…セクション選択部、17…署名出力部、21…平文入力部、22…ハッシュ値計算部、23…ハッシュ値多項式生成部、24…公開鍵入力部、25…署名入力部、26…署名検証部、27…代数曲面生成部、28…判定結果出力部、8…4変数多項式演算部。   DESCRIPTION OF SYMBOLS 1 ... Control part, 2 ... Prime number generation part, 3 ... Two variable polynomial generation part, 4 ... Two variable polynomial calculation part, 5 ... Section generation part, 6 ... Three-dimensional manifold generation part, 7 ... Key output part, 11 ... Plain text input unit, 12 ... Hash value calculation unit, 13 ... Hash value polynomial generation unit, 14 ... Secret key input unit, 15 ... Signature generation unit, 16 ... Section selection unit, 17 ... Signature output unit, 21 ... Plain text input unit, DESCRIPTION OF SYMBOLS 22 ... Hash value calculation part, 23 ... Hash value polynomial generation part, 24 ... Public key input part, 25 ... Signature input part, 26 ... Signature verification part, 27 ... Algebraic curved surface generation part, 28 ... Judgment result output part, 8 ... 4-variable polynomial arithmetic unit.

Claims (9)

有限体Fならびに署名検証用の公開鍵として用いられる、x座標、y座標、パラメータs、及びパラメータtで表される前記有限体F上定義された3次元多様体A(x,y,s,t)と、署名生成用の秘密鍵として用いられる前記3次元多様体A(x,y,s,t)内の曲面のうち、x座標及びy座標がパラメータs及びtの関数で表されたセクションを生成する鍵生成装置であって、
前記有限体F上定義された、パラメータs、tに関する第1の2変数多項式λ(s,t)を生成する第1の生成手段と、
前記第1の2変数多項式λ(s,t)で割り切れる、前記有限体F上定義された第2の2変数多項式λ(s,t)を生成する第2の生成手段と、
前記有限体F上定義された、パラメータs,tに関する2つの2変数多項式u(s,t)、v(s,t)を、当該2つの2変数多項式の差分{u(s,t)−v(s,t)}が前記第1の2変数多項式λ(s,t)となるように生成する第3の生成手段と、
前記有限体F上定義された、パラメータs,tに関する2つの2変数多項式u(s,t)、v(s,t)を、当該2つの2変数多項式の差分{u(s,t)−v(s,t)}が前記第2の2変数多項式λ(s,t)となるように生成する第4の生成手段と、
前記第3の生成手段で生成された2変数多項式u(s,t)をx座標、前記第4の生成手段で生成された2変数関数u(s,t)をy座標とするセクションD1:(x,y,s,t)=(u(s,t),u(s,t),s,t)と、前記第3の生成手段で生成された2変数多項式v(s,t)をx座標、前記第4の生成手段で生成された2変数関数v(s,t)をy座標とするセクションD2:(x,y,s,t)=(v(s,t),v(s,t),s,t)を生成するセクション生成手段と、
前記セクションD1及び前記セクションD2を含む前記3次元多様体A(x,y,s,t)の多項式を生成する3次元多様体生成手段と、
を具備したことを特徴とする鍵生成装置。
A finite field F q and a three-dimensional manifold A (x, y, defined on the finite field F q represented by an x coordinate, a y coordinate, a parameter s, and a parameter t, which are used as a public key for signature verification. s, t) and among the curved surfaces in the three-dimensional manifold A (x, y, s, t) used as a secret key for signature generation, the x coordinate and the y coordinate are expressed by functions of parameters s and t. A key generation device for generating a generated section,
First generating means for generating a first two-variable polynomial λ x (s, t) defined on the finite field F q with respect to parameters s and t;
Second generating means for generating a second two-variable polynomial λ y (s, t) defined on the finite field F q that is divisible by the first two-variable polynomial λ x (s, t);
Two two-variable polynomials u x (s, t) and v x (s, t) defined on the finite field F q with respect to the parameters s and t are expressed by the difference {u x (s , T) −v x (s, t)} to be the first two-variable polynomial λ x (s, t),
The two two-variable polynomials u y (s, t) and v y (s, t) defined on the finite field F q with respect to the parameters s and t are expressed by the difference {u y (s , T) −v y (s, t)} to be the second two-variable polynomial λ y (s, t),
A section in which the two-variable polynomial u x (s, t) generated by the third generating means is an x coordinate and the two variable function u y (s, t) generated by the fourth generating means is a y coordinate. D1: (x, y, s, t) = (u x (s, t), u y (s, t), s, t), and the two-variable polynomial v x generated by the third generating means Section D2 where (s, t) is an x coordinate and the two variable function v y (s, t) generated by the fourth generation means is a y coordinate: (x, y, s, t) = (v x Section generating means for generating (s, t), v y (s, t), s, t);
Three-dimensional manifold generating means for generating a polynomial of the three-dimensional manifold A (x, y, s, t) including the section D1 and the section D2.
A key generation apparatus comprising:
有限体Fならびにx座標、y座標、パラメータs、及びパラメータtで表された、署名検証用の公開鍵として用いられる前記有限体F上定義された3次元多様体A(x,y,s,t)と、前記3次元多様体A(x,y,s,t)内の曲面のうち、x座標及びy座標がパラメータs及びtの関数で表された、署名生成用の秘密鍵として用いられるセクションを生成する鍵生成装置であって、
パラメータs、tに関する第1番目から第n(nは正の整数)番目までのn(nは正の整数)個の前記有限体F上定義された2変数多項式ux,i(s,t)(i:1≦i≦n)と、パラメータs、tに関する第1番目から第n番目までのn個の前記有限体F上定義された2変数多項式uy,i(s,t)(i:1≦i≦n)を生成する第1の生成手段と、
前記第1の生成手段で生成された第i(1≦i≦n)番目の2変数多項式ux,i(s,t)及びuy,i(s,t)をそれぞれx座標、y座標とする第i番目のセクションDi:(x,y,s,t)=(ux,i(s,t)、uy,i(s,t),s,t)(1≦i≦n)を生成することにより、第1番目から第n番目までのn個のセクションDi(1≦i≦n)を求める第2の生成手段と、
前記第1の生成手段で生成された第i(1≦i≦n)番目の2変数多項式ux,i(s,t)及びuy,i(s,t)を用いて、第i番目のx因子(x−ux,i(s,t))及びy因子(y−uy,i(s,t))を生成することにより、第1番目から第n番目までのx因子及びy因子を求める第3の生成手段と、
前記第3の生成手段で生成された第i(1≦i≦n)番目のx因子及びy因子を左辺と右辺に振り分けて、左辺に振り分けられたn個のx因子及びy因子の積と、右辺に振り分けられたn個のx因子及びy因子の積とを等号で結ぶことにより得られる等式を生成する第4の生成手段と、
前記第4の生成手段で生成された等式を展開することにより、前記3次元多様体A(x,y,s,t)の多項式を生成する第5の生成手段と、
を具備したことを特徴とする鍵生成装置。
A finite field F q and a three-dimensional manifold A (x, y, defined on the finite field F q used as a public key for signature verification represented by an x coordinate, a y coordinate, a parameter s, and a parameter t. s, t) and a secret key for signature generation in which the x-coordinate and y-coordinate of the curved surface in the three-dimensional manifold A (x, y, s, t) are represented by functions of parameters s and t A key generation device for generating a section used as:
Two variable polynomials ux , i (s, s, t) defined on the first to nth (n is a positive integer) number n (n is a positive integer) of the finite fields F q with respect to the parameters s, t. t) (i: 1 ≦ i ≦ n) and the two-variable polynomials u y, i (s, t) defined on the first to nth finite fields F q with respect to the parameters s and t. ) (I: 1 ≦ i ≦ n)
The i-th (1 ≦ i ≦ n) -th two-variable polynomials u x, i (s, t) and u y, i (s, t) generated by the first generation unit are respectively expressed as x-coordinate and y-coordinate. I-th section Di: (x, y, s, t) = (u x, i (s, t), u y, i (s, t), s, t) (1 ≦ i ≦ n) ) To generate n sections Di (1 ≦ i ≦ n) from the first to the nth,
Using the i-th (1 ≦ i ≦ n) -th two-variable polynomials u x, i (s, t) and u y, i (s, t) generated by the first generation means, the i-th X-factor (x-u x, i (s, t)) and y-factor (y-u , i (s, t)) of the first to n-th and a third generating means for obtaining a y factor;
The i-th (1 ≦ i ≦ n) -th x factor and y factor generated by the third generation unit is distributed to the left side and the right side, and the product of n x factors and y factor distributed to the left side A fourth generating means for generating an equation obtained by connecting the product of n x-factors and y-factors distributed to the right side with an equal sign;
Fifth generation means for generating a polynomial of the three-dimensional manifold A (x, y, s, t) by expanding the equation generated by the fourth generation means;
A key generation apparatus comprising:
前記第1の生成手段は、
前記2変数多項式ux,i(s,t)のパラメータsについての次数の最大値hxと、パラメータtについての次数の最大値kxを決定する手段と、
次数が最大値hx以下の変数sと次数が最大値kx以下の変数tとのうちの少なくとも1つを因子として有する複数の単項式と、shxkxの項とを含む第i番目の2変数多項式ux,i(s,t)(i:1≦i≦n)を生成する手段と、
前記2変数多項式uy,i(s,t)の変数sについての次数の最大値hyと、変数tについての次数の最大値kyを決定する手段と、
次数が最大値hy以下の変数sと次数が最大値ky以下の変数tとのうちの少なくとも1つを因子として有する複数の単項式と、shykyの項とを含む第i番目の前記2変数多項式uy,i(s,t)(i:1≦i≦n)を生成する手段と、
を含むことを特徴とする請求項2記載の鍵生成装置。
The first generation means includes:
Means for determining a maximum order value hx for the parameter s of the bivariate polynomial u x, i (s, t) and a maximum order value kx for the parameter t;
The i-th two variables including a plurality of mononomials having at least one of a variable s whose degree is equal to or smaller than the maximum value hx and a variable t whose degree is equal to or smaller than the maximum value kx as a factor, and a term of s hx t kx Means for generating a polynomial u x, i (s, t) (i: 1 ≦ i ≦ n);
Means for determining a maximum order value hy for the variable s of the bivariate polynomial u y, i (s, t) and a maximum order value ky for the variable t;
The i-th 2nd item including a plurality of unary expressions having at least one of a variable s whose degree is equal to or less than the maximum value hy and a variable t whose order is equal to or less than the maximum value ky, and a term of s hy t ky Means for generating a variable polynomial u y, i (s, t) (i: 1 ≦ i ≦ n);
The key generation device according to claim 2, comprising:
第1の生成手段と第2の生成手段と第3の生成手段と第4の生成手段とセクション生成手段と3次元多様体生成手段とを備え、有限体Fならびに署名検証用の公開鍵として用いられる、x座標、y座標、パラメータs、及びパラメータtで表される前記有限体F上定義された3次元多様体A(x,y,s,t)と、署名生成用の秘密鍵として用いられる前記3次元多様体A(x,y,s,t)内の曲面のうち、x座標及びy座標がパラメータs及びtの関数で表されたセクションを生成する鍵生成装置の鍵生成方法であって、
前記第1の生成手段が、前記有限体F上定義された、パラメータs、tに関する第1の2変数多項式λ(s,t)を生成する第1のステップと、
前記第2の生成手段が、前記第1の2変数多項式λ(s,t)で割り切れる、前記有限体F上定義された第2の2変数多項式λ(s,t)を生成する第2のステップと、
前記第3の生成手段が、前記有限体F上定義された、パラメータs,tに関する2つの2変数多項式u(s,t)、v(s,t)を、当該2つの2変数多項式の差分{u(s,t)−v(s,t)}が前記第1の2変数多項式λ(s,t)となるように生成する第3のステップと、
前記第4の生成手段が、前記有限体F上定義された、パラメータs,tに関する2つの2変数多項式u(s,t)、v(s,t)を、当該2つの2変数多項式の差分{u(s,t)−v(s,t)}が前記第2の2変数多項式λ(s,t)となるように生成する第4のステップと、
前記セクション生成手段が、前記第3のステップにおいて前記前記第3の生成手段により生成された2変数多項式u(s,t)をx座標、前記第4のステップにおいて前記第4の生成手段により生成された2変数関数u(s,t)をy座標とするセクションD1:(x,y,s,t)=(u(s,t),u(s,t),s,t)と、前記第3のステップにおいて前記前記第3の生成手段により生成された2変数多項式v(s,t)をx座標、前記第4のステップにおいて前記第4の生成手段により生成された2変数関数v(s,t)をy座標とするセクションD2:(x,y,s,t)=(v(s,t),v(s,t),s,t)を生成する第5のステップと、
前記3次元多様体生成手段が、前記セクションD1及び前記セクションD2を含む前記3次元多様体A(x,y,s,t)の多項式を生成する第6のステップと、
を有することを特徴とする鍵生成方法。
A first generation unit, a second generation unit, a third generation unit, a fourth generation unit, a section generation unit, and a three-dimensional manifold generation unit; and a finite field F q and a public key for signature verification The three-dimensional manifold A (x, y, s, t) defined on the finite field F q represented by the x-coordinate, y-coordinate, parameter s, and parameter t, and the secret key for signature generation Key generation of a key generation device that generates a section in which the x coordinate and the y coordinate are expressed by functions of parameters s and t among the curved surfaces in the three-dimensional manifold A (x, y, s, t) used as A method,
A first step in which the first generation means generates a first two-variable polynomial λ x (s, t) with respect to parameters s and t defined on the finite field F q ;
The second generation means generates a second two-variable polynomial λ y (s, t) defined on the finite field F q that is divisible by the first two-variable polynomial λ x (s, t). A second step;
The third generation means generates two two-variable polynomials u x (s, t) and v x (s, t) with respect to parameters s and t defined on the finite field F q as the two two variables. A third step of generating a polynomial difference {u x (s, t) −v x (s, t)} to be the first two-variable polynomial λ x (s, t);
The fourth generation means converts the two two-variable polynomials u y (s, t) and v y (s, t) related to the parameters s and t defined on the finite field F q into the two two variables. A fourth step of generating a polynomial difference {u y (s, t) −v y (s, t)} to be the second two-variable polynomial λ y (s, t);
The section generation means uses the x variable of the two-variable polynomial u x (s, t) generated by the third generation means in the third step, and the fourth generation means in the fourth step. Section D1: (x, y, s, t) = (u x (s, t), u y (s, t), s, with the generated two-variable function u y (s, t) as the y coordinate t), and the two-variable polynomial v x (s, t) generated by the third generation means in the third step is an x-coordinate, and is generated by the fourth generation means in the fourth step. two-variable function v y (s, t) section and a y-coordinate D2: (x, y, s , t) = (v x (s, t), v y (s, t), s, t) A fifth step of generating
A sixth step in which the three-dimensional manifold generating means generates a polynomial of the three-dimensional manifold A (x, y, s, t) including the section D1 and the section D2.
A key generation method characterized by comprising:
第1の生成手段と第2の生成手段と第3の生成手段と第4の生成手段と第5の生成手段とを備え、有限体Fならびにx座標、y座標、パラメータs、及びパラメータtで表された、署名検証用の公開鍵として用いられる前記有限体F上定義された3次元多様体A(x,y,s,t)と、前記3次元多様体A(x,y,s,t)内の曲面のうち、x座標及びy座標がパラメータs及びtの関数で表された、署名生成用の秘密鍵として用いられるセクションを生成する鍵生成装置の鍵生成方法であって、
前記第1の生成手段が、パラメータs、tに関する第1番目から第n(nは正の整数)番目までのn(nは正の整数)個の前記有限体F上定義された2変数多項式ux,i(s,t)(i:1≦i≦n)と、パラメータs、tに関する第1番目から第n番目までのn個の前記有限体F上定義された2変数多項式uy,i(s,t)(i:1≦i≦n)を生成する第1のステップと、
前記第2の生成手段が、前記第1のステップにおいて前記第1の生成手段により生成された第i(1≦i≦n)番目の2変数多項式ux,i(s,t)及びuy,i(s,t)をそれぞれx座標、y座標とする第i番目のセクションDi:(x,y,s,t)=(ux,i(s,t)、uy,i(s,t),s,t)(1≦i≦n)を生成することにより、第1番目から第n番目までのn個のセクションDi(1≦i≦n)を求める第2のステップと、
前記第3の生成手段が、前記第1のステップにおいて前記第1の生成手段により生成された第i(1≦i≦n)番目の2変数多項式ux,i(s,t)及びuy,i(s,t)を用いて、第i番目のx因子(x−ux,i(s,t))及びy因子(y−uy,i(s,t))を生成することにより、第1番目から第n番目までのx因子及びy因子を求める第3のステップと、
前記第4の生成手段が、前記第3のステップにおいて前記第3の生成手段により生成された第i(1≦i≦n)番目のx因子及びy因子を左辺と右辺に振り分けて、左辺に振り分けられたn個のx因子及びy因子の積と、右辺に振り分けられたn個のx因子及びy因子の積とを等号で結ぶことにより得られる等式を生成する第4のステップと、
前記第5の生成手段が、前記第4のステップにおいて前記第4の生成手段により生成された等式を展開することにより、前記3次元多様体A(x,y,s,t)の多項式を生成する第5のステップと、
を有することを特徴とする鍵生成方法。
A first generation unit, a second generation unit, a third generation unit, a fourth generation unit, and a fifth generation unit; a finite field Fq, an x coordinate, a y coordinate, a parameter s, and a parameter t. And the three-dimensional manifold A (x, y, s, t) defined on the finite field F q used as a public key for signature verification, and the three-dimensional manifold A (x, y, A key generation method of a key generation device that generates a section used as a secret key for signature generation, in which x coordinate and y coordinate are represented by functions of parameters s and t among curved surfaces in s, t). ,
The first generation means includes two variables defined on n (n is a positive integer) number of the finite field F q from the first to the n-th (n is a positive integer) regarding the parameters s and t. Polynomial u x, i (s, t) (i: 1 ≦ i ≦ n) and two variable polynomials defined on the first to nth finite fields F q with respect to parameters s and t a first step of generating u y, i (s, t) (i: 1 ≦ i ≦ n);
The second generation means is the i-th (1 ≦ i ≦ n) -th two-variable polynomial u x, i (s, t) and u y generated by the first generation means in the first step. , I (s, t) are the i-th section Di: (x, y, s, t) = (u x, i (s, t), u y, i (s , T), s, t) (1 ≦ i ≦ n) to generate n sections Di (1 ≦ i ≦ n) from the first to the nth,
The third generating means is the i-th (1 ≦ i ≦ n) -th two-variable polynomial u x, i (s, t) and u y generated by the first generating means in the first step. , I (s, t) to generate the i-th x-factor (x-u x, i (s, t)) and y-factor (y- y, i (s, t)) A third step for obtaining the first to nth x-factor and y-factor;
The fourth generation unit distributes the i-th (1 ≦ i ≦ n) -th x factor and y factor generated by the third generation unit in the third step into a left side and a right side, and A fourth step of generating an equation obtained by connecting the product of the distributed n x-factors and y-factors and the product of the n-numbered x-factors and y-factors distributed on the right side with an equal sign; ,
The fifth generation means expands the equation generated by the fourth generation means in the fourth step, thereby generating the polynomial of the three-dimensional manifold A (x, y, s, t). A fifth step of generating,
A key generation method characterized by comprising:
前記第1のステップは、
前記2変数多項式ux,i(s,t)のパラメータsについての次数の最大値hxと、パラメータtについての次数の最大値kxを決定するステップと、
次数が最大値hx以下の変数sと次数が最大値kx以下の変数tとのうちの少なくとも1つを因子として有する複数の単項式と、shxkxの項とを含む第i番目の2変数多項式ux,i(s,t)(i:1≦i≦n)を生成するステップと、
前記2変数多項式uy,i(s,t)の変数sについての次数の最大値hyと、変数tについての次数の最大値kyを決定するステップと、
次数が最大値hy以下の変数sと、次数が最大値ky以下の変数tとのうちの少なくとも1つを因子として有する複数の単項式と、shykyの項とを含む第i番目の前記2変数多項式uy,i(s,t)(i:1≦i≦n)を生成するステップと、
を含むことを特徴とする請求項5記載の鍵生成装置。
The first step includes
Determining a maximum degree hx for the parameter s of the bivariate polynomial u x, i (s, t) and a maximum order kx for the parameter t;
The i-th two variables including a plurality of mononomials having at least one of a variable s whose degree is equal to or smaller than the maximum value hx and a variable t whose degree is equal to or smaller than the maximum value kx as a factor, and a term of s hx t kx Generating a polynomial u x, i (s, t) (i: 1 ≦ i ≦ n);
Determining a maximum degree hy for the variable s of the bivariate polynomial u y, i (s, t) and a maximum degree ky for the variable t;
The i-th item including a plurality of mononomials having at least one of a variable s of which the order is the maximum value hy or less and a variable t of which the order is the maximum value ky as a factor, and a term of s hy t ky Generating a bivariate polynomial u y, i (s, t) (i: 1 ≦ i ≦ n);
The key generation device according to claim 5, comprising:
第1の生成手段と第2の生成手段と第3の生成手段と第4の生成手段とセクション生成手段と3次元多様体生成手段とを備え、有限体Fならびに署名検証用の公開鍵として用いられる、x座標、y座標、パラメータs、及びパラメータtで表される前記有限体F上定義された3次元多様体A(x,y,s,t)と、署名生成用の秘密鍵として用いられる前記3次元多様体A(x,y,s,t)内の曲面のうち、x座標及びy座標がパラメータs及びtの関数で表されたセクションを生成する鍵生成装置としてコンピュータを機能させるための鍵生成プログラムであって、
前記第1の生成手段が、前記有限体F上定義された、パラメータs、tに関する第1の2変数多項式λ(s,t)を生成する第1のステップと、
前記第2の生成手段が、前記第1の2変数多項式λ(s,t)で割り切れる、前記有限体F上定義された第2の2変数多項式λ(s,t)を生成する第2のステップと、
前記第3の生成手段が、前記有限体F上定義された、パラメータs,tに関する2つの2変数多項式u(s,t)、v(s,t)を、当該2つの2変数多項式の差分{u(s,t)−v(s,t)}が前記第1の2変数多項式λ(s,t)となるように生成する第3のステップと、
前記第4の生成手段が、前記有限体F上定義された、パラメータs,tに関する2つの2変数多項式u(s,t)、v(s,t)を、当該2つの2変数多項式の差分{u(s,t)−v(s,t)}が前記第2の2変数多項式λ(s,t)となるように生成する第4のステップと、
前記セクション生成手段が、前記第3のステップにおいて前記前記第3の生成手段により生成された2変数多項式u(s,t)をx座標、前記第4のステップにおいて前記第4の生成手段により生成された2変数関数u(s,t)をy座標とするセクションD1:(x,y,s,t)=(u(s,t),u(s,t),s,t)と、前記第3のステップにおいて前記前記第3の生成手段により生成された2変数多項式v(s,t)をx座標、前記第4のステップにおいて前記第4の生成手段により生成された2変数関数v(s,t)をy座標とするセクションD2:(x,y,s,t)=(v(s,t),v(s,t),s,t)を生成する第5のステップと、
前記3次元多様体生成手段が、前記セクションD1及び前記セクションD2を含む前記3次元多様体A(x,y,s,t)の多項式を生成する第6のステップと、
をコンピュータに実行させるための鍵生成プログラム。
A first generation unit, a second generation unit, a third generation unit, a fourth generation unit, a section generation unit, and a three-dimensional manifold generation unit; and a finite field F q and a public key for signature verification The three-dimensional manifold A (x, y, s, t) defined on the finite field F q represented by the x-coordinate, y-coordinate, parameter s, and parameter t, and the secret key for signature generation A computer as a key generation device that generates a section in which the x-coordinate and y-coordinate are expressed by functions of parameters s and t among the curved surfaces in the three-dimensional manifold A (x, y, s, t) used as A key generation program for functioning,
A first step in which the first generation means generates a first two-variable polynomial λ x (s, t) with respect to parameters s and t defined on the finite field F q ;
The second generation means generates a second two-variable polynomial λ y (s, t) defined on the finite field F q that is divisible by the first two-variable polynomial λ x (s, t). A second step;
The third generation means generates two two-variable polynomials u x (s, t) and v x (s, t) with respect to parameters s and t defined on the finite field F q as the two two variables. A third step of generating a polynomial difference {u x (s, t) −v x (s, t)} to be the first two-variable polynomial λ x (s, t);
The fourth generation means converts the two two-variable polynomials u y (s, t) and v y (s, t) related to the parameters s and t defined on the finite field F q into the two two variables. A fourth step of generating a polynomial difference {u y (s, t) −v y (s, t)} to be the second two-variable polynomial λ y (s, t);
The section generation means uses the x variable of the two-variable polynomial u x (s, t) generated by the third generation means in the third step, and the fourth generation means in the fourth step. Section D1: (x, y, s, t) = (u x (s, t), u y (s, t), s, with the generated two-variable function u y (s, t) as the y coordinate t), and the two-variable polynomial v x (s, t) generated by the third generation means in the third step is an x-coordinate, and is generated by the fourth generation means in the fourth step. two-variable function v y (s, t) section and a y-coordinate D2: (x, y, s , t) = (v x (s, t), v y (s, t), s, t) A fifth step of generating
A sixth step in which the three-dimensional manifold generating means generates a polynomial of the three-dimensional manifold A (x, y, s, t) including the section D1 and the section D2.
Key generation program for causing a computer to execute
第1の生成手段と第2の生成手段と第3の生成手段と第4の生成手段と第5の生成手段とを備え、有限体Fならびにx座標、y座標、パラメータs、及びパラメータtで表された、署名検証用の公開鍵として用いられる前記有限体F上定義された3次元多様体A(x,y,s,t)と、前記3次元多様体A(x,y,s,t)内の曲面のうち、x座標及びy座標がパラメータs及びtの関数で表された、署名生成用の秘密鍵として用いられるセクションを生成する鍵生成装置としてコンピュータを機能させるための鍵生成プログラムであって、
前記第1の生成手段が、パラメータs、tに関する第1番目から第n(nは正の整数)番目までのn(nは正の整数)個の前記有限体F上定義された2変数多項式ux,i(s,t)(i:1≦i≦n)と、パラメータs、tに関する第1番目から第n番目までのn個の前記有限体F上定義された2変数多項式uy,i(s,t)(i:1≦i≦n)を生成する第1のステップと、
前記第2の生成手段が、前記第1のステップにおいて前記第1の生成手段により生成された第i(1≦i≦n)番目の2変数多項式ux,i(s,t)及びuy,i(s,t)をそれぞれx座標、y座標とする第i番目のセクションDi:(x,y,s,t)=(ux,i(s,t)、uy,i(s,t),s,t)(1≦i≦n)を生成することにより、第1番目から第n番目までのn個のセクションDi(1≦i≦n)を求める第2のステップと、
前記第3の生成手段が、前記第1のステップにおいて前記第1の生成手段により生成された第i(1≦i≦n)番目の2変数多項式ux,i(s,t)及びuy,i(s,t)を用いて、第i番目のx因子(x−ux,i(s,t))及びy因子(y−uy,i(s,t))を生成することにより、第1番目から第n番目までのx因子及びy因子を求める第3のステップと、
前記第4の生成手段が、前記第3のステップにおいて前記第3の生成手段により生成された第i(1≦i≦n)番目のx因子及びy因子を左辺と右辺に振り分けて、左辺に振り分けられたn個のx因子及びy因子の積と、右辺に振り分けられたn個のx因子及びy因子の積とを等号で結ぶことにより得られる等式を生成する第4のステップと、
前記第5の生成手段が、前記第4のステップにおいて前記第4の生成手段により生成された等式を展開することにより、前記3次元多様体A(x,y,s,t)の多項式を生成する第5のステップと、
をコンピュータに実行させるための鍵生成プログラム。
A first generation unit, a second generation unit, a third generation unit, a fourth generation unit, and a fifth generation unit; a finite field Fq, an x coordinate, a y coordinate, a parameter s, and a parameter t. And the three-dimensional manifold A (x, y, s, t) defined on the finite field F q used as a public key for signature verification, and the three-dimensional manifold A (x, y, s, t) for causing a computer to function as a key generation device for generating a section used as a secret key for signature generation in which x and y coordinates are represented by functions of parameters s and t A key generation program,
The first generation means includes two variables defined on n (n is a positive integer) number of the finite field F q from the first to the n-th (n is a positive integer) regarding the parameters s and t. Polynomial u x, i (s, t) (i: 1 ≦ i ≦ n) and two variable polynomials defined on the first to nth finite fields F q with respect to parameters s and t a first step of generating u y, i (s, t) (i: 1 ≦ i ≦ n);
The second generation means is the i-th (1 ≦ i ≦ n) -th two-variable polynomial u x, i (s, t) and u y generated by the first generation means in the first step. , I (s, t) are the i-th section Di: (x, y, s, t) = (u x, i (s, t), u y, i (s , T), s, t) (1 ≦ i ≦ n) to generate n sections Di (1 ≦ i ≦ n) from the first to the nth,
The third generating means is the i-th (1 ≦ i ≦ n) -th two-variable polynomial u x, i (s, t) and u y generated by the first generating means in the first step. , I (s, t) to generate the i-th x-factor (x-u x, i (s, t)) and y-factor (y- y, i (s, t)) A third step for obtaining the first to nth x-factor and y-factor;
The fourth generation unit distributes the i-th (1 ≦ i ≦ n) -th x factor and y factor generated by the third generation unit in the third step into a left side and a right side, and A fourth step of generating an equation obtained by connecting the product of the distributed n x-factors and y-factors and the product of the n-numbered x-factors and y-factors distributed on the right side with an equal sign; ,
The fifth generation means expands the equation generated by the fourth generation means in the fourth step, thereby generating the polynomial of the three-dimensional manifold A (x, y, s, t). A fifth step of generating,
Key generation program for causing a computer to execute
前記第1のステップは、
前記2変数多項式ux,i(s,t)のパラメータsについての次数の最大値hxと、パラメータtについての次数の最大値kxを決定するステップと、
次数が最大値hx以下の変数sと次数が最大値kx以下の変数tとのうちの少なくとも1つを因子として有する複数の単項式と、shxkxの項とを含む第i番目の2変数多項式ux,i(s,t)(i:1≦i≦n)を生成するステップと、
前記2変数多項式uy,i(s,t)の変数sについての次数の最大値hyと、変数tについての次数の最大値kyを決定するステップと、
次数が最大値hy以下の変数sと次数が最大値ky以下の変数tとのうちの少なくとも1つを因子として有する複数の単項式と、shykyの項とを含む第i番目の前記2変数多項式uy,i(s,t)(i:1≦i≦n)を生成するステップと、
を含むことを特徴とする請求項8記載の鍵生成プログラム。
The first step includes
Determining a maximum degree hx for the parameter s of the bivariate polynomial u x, i (s, t) and a maximum order kx for the parameter t;
The i-th two variables including a plurality of mononomials having at least one of a variable s whose degree is equal to or smaller than the maximum value hx and a variable t whose degree is equal to or smaller than the maximum value kx as a factor, and a term of s hx t kx Generating a polynomial u x, i (s, t) (i: 1 ≦ i ≦ n);
Determining a maximum degree hy for the variable s of the bivariate polynomial u y, i (s, t) and a maximum degree ky for the variable t;
The i-th 2nd item including a plurality of unary expressions having at least one of a variable s whose degree is equal to or less than the maximum value hy and a variable t whose order is equal to or less than the maximum value ky, and a term of s hy t ky Generating a variable polynomial u y, i (s, t) (i: 1 ≦ i ≦ n);
The key generation program according to claim 8, comprising:
JP2010146259A 2010-06-28 2010-06-28 KEY GENERATION DEVICE, KEY GENERATION METHOD, AND KEY GENERATION PROGRAM Expired - Fee Related JP5132724B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010146259A JP5132724B2 (en) 2010-06-28 2010-06-28 KEY GENERATION DEVICE, KEY GENERATION METHOD, AND KEY GENERATION PROGRAM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010146259A JP5132724B2 (en) 2010-06-28 2010-06-28 KEY GENERATION DEVICE, KEY GENERATION METHOD, AND KEY GENERATION PROGRAM

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2005214994A Division JP4575251B2 (en) 2005-07-25 2005-07-25 Digital signature generation apparatus, digital signature verification apparatus, digital signature generation method, digital signature verification method, digital signature generation program, and digital signature verification program

Publications (2)

Publication Number Publication Date
JP2010244070A JP2010244070A (en) 2010-10-28
JP5132724B2 true JP5132724B2 (en) 2013-01-30

Family

ID=43097067

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010146259A Expired - Fee Related JP5132724B2 (en) 2010-06-28 2010-06-28 KEY GENERATION DEVICE, KEY GENERATION METHOD, AND KEY GENERATION PROGRAM

Country Status (1)

Country Link
JP (1) JP5132724B2 (en)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4575283B2 (en) * 2005-11-15 2010-11-04 株式会社東芝 ENCRYPTION DEVICE, DECRYPTION DEVICE, PROGRAM, AND METHOD

Also Published As

Publication number Publication date
JP2010244070A (en) 2010-10-28

Similar Documents

Publication Publication Date Title
JP4575251B2 (en) Digital signature generation apparatus, digital signature verification apparatus, digital signature generation method, digital signature verification method, digital signature generation program, and digital signature verification program
JP5297688B2 (en) Vector concealed inner product calculation system, vector concealed inner product calculation method, and encryption key sharing system
JP4575283B2 (en) ENCRYPTION DEVICE, DECRYPTION DEVICE, PROGRAM, AND METHOD
US7688973B2 (en) Encryption apparatus, decryption apparatus, key generation apparatus, program, and method
US5790675A (en) Cryptographic communication process
US20060251247A1 (en) Encryption apparatus, decryption apparatus, key generation apparatus, program and method therefor
US8666066B2 (en) Encoding points of an elliptic curve
JP2004501385A (en) Elliptic curve encryption method
KR100445893B1 (en) Asymmetric cryptographic communication method and related portable object
WO2014030706A1 (en) Encrypted database system, client device and server, method and program for adding encrypted data
Sarwar et al. Lightweight ECC with Fragile Zero-Watermarking for Internet of Things Security
CN101296076A (en) Digital signature scheme based on ECC
Amounas Elliptic curve digital signature algorithm using Boolean permutation based ECC
JP2012123426A (en) Method for determining elliptical curve for cryptographic method
Fei et al. A secure digital signature algorithm based on elliptic curve and chaotic mappings
JP5132724B2 (en) KEY GENERATION DEVICE, KEY GENERATION METHOD, AND KEY GENERATION PROGRAM
Ahirwal et al. Signcryption scheme that utilizes elliptic curve for both encryption and signature generation
Kumar et al. Use of Hybrid ECC to enhance Security and Privacy with Data Deduplication
JP7273742B2 (en) Encryption device, decryption device, encryption method, decryption method, encryption program and decryption program
CN114257374A (en) Verifiable security outsourcing calculation method and system for identification cryptosystem
JP2007208410A (en) Id base encryption communication system
JPH1152854A (en) Arithmetic unit device on finite field and group computing device on elliptic curve
KR20210061194A (en) Method and apparatus for public-key cryptography based on structured matrices
Mohapatra Signcryption schemes with forward secrecy based on elliptic curve cryptography
Omondi et al. Elliptic-Curve Cryptosystems

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121009

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121106

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

Free format text: PAYMENT UNTIL: 20151116

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20151116

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees