JP5640531B2 - Encryption key analysis method, encryption key analysis device, and encryption key analysis program - Google Patents

Encryption key analysis method, encryption key analysis device, and encryption key analysis program Download PDF

Info

Publication number
JP5640531B2
JP5640531B2 JP2010172796A JP2010172796A JP5640531B2 JP 5640531 B2 JP5640531 B2 JP 5640531B2 JP 2010172796 A JP2010172796 A JP 2010172796A JP 2010172796 A JP2010172796 A JP 2010172796A JP 5640531 B2 JP5640531 B2 JP 5640531B2
Authority
JP
Japan
Prior art keywords
value
unit
elliptic curve
power
encryption key
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.)
Active
Application number
JP2010172796A
Other languages
Japanese (ja)
Other versions
JP2012032646A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2010172796A priority Critical patent/JP5640531B2/en
Publication of JP2012032646A publication Critical patent/JP2012032646A/en
Application granted granted Critical
Publication of JP5640531B2 publication Critical patent/JP5640531B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、暗号鍵解析方法、暗号鍵解析装置および暗号鍵解析プログラムに関する。   The present invention relates to an encryption key analysis method, an encryption key analysis device, and an encryption key analysis program.

近年、ネットショッピングやネットバンキングが普及している。ネットショッピングやネットバンキングにおいて通信を行う場合には、情報漏洩などを防止するために、SSL(Secure Socket Layer)/TLS(Transport Layer Security)等の暗号技術が用いられる。暗号化方式を大別すると共通鍵暗号と公開鍵暗号に分類することができる。   In recent years, online shopping and online banking have become widespread. When performing communication in online shopping or online banking, encryption technology such as SSL (Secure Socket Layer) / TLS (Transport Layer Security) is used to prevent information leakage. Encryption methods can be broadly classified into common key encryption and public key encryption.

このうち、共通鍵暗号は、送信者と受信者とが同じ鍵を持つことにより暗号通信をおこなう方式である。すなわち、共通鍵暗号では、送信者は、あるメッセージを秘密の暗号鍵に基づいて暗号化して受信者に送る。受信者は、この暗号鍵を用いて暗号文を復号し、メッセージを入手する。   Among these, common key cryptography is a scheme in which cryptographic communication is performed when the sender and the receiver have the same key. That is, in the common key encryption, the sender encrypts a certain message based on a secret encryption key and sends it to the receiver. The receiver uses this encryption key to decrypt the ciphertext and obtain a message.

公開鍵暗号は、対になる2つの鍵を使ってデータの暗号化、復号をおこなう方式である。すなわち、送信者は受信者によって公開されている公開鍵でメッセージを暗号化して送信する。これに対して、受信者は、暗号化された暗号化されたメッセージを秘密鍵で復号する。公開鍵は、メッセージを暗号化するための鍵であり、秘密鍵は、公開鍵により暗号化された情報を復号するための鍵である。公開鍵で暗号化された情報は、対の秘密鍵でのみ復号することができる。   Public key cryptography is a method of encrypting and decrypting data using two pairs of keys. In other words, the sender encrypts the message with the public key published by the receiver and sends it. On the other hand, the recipient decrypts the encrypted message with the secret key. The public key is a key for encrypting a message, and the secret key is a key for decrypting information encrypted with the public key. Information encrypted with the public key can only be decrypted with the private key of the pair.

公開鍵暗号は、公開鍵を公開しても安全性を確保できるようにするために、数学的に難しいとされている問題に基づいて設計されている。例えば、公開鍵暗号には、RSA(Rivest Shamir Adleman)暗号、エルガマル暗号、楕円曲線暗号(Elliptic Curve Cryptosystem)がある。   Public key cryptography is designed based on a mathematically difficult problem in order to ensure safety even when a public key is disclosed. For example, public key cryptography includes RSA (Rivest Shamir Adleman) cryptography, El Gamal cryptography, and Elliptic Curve Cryptosystem.

RSA暗号は、素因数分解問題と呼ばれる数学的問題の困難性に基づいている。エルガマル暗号は、離散対数問題と呼ばれる数学的問題の困難性に基づいている。楕円曲線暗号は、楕円曲線上の離散対数問題を基に設計されている。楕円曲線上の離散対数問題を「楕円曲線離散対数問題」と称する。このように、公開鍵暗号の安全性は、数学的問題の困難性に基づいている。したがって、これらの数学的問題の安全性が、公開鍵暗号の安全性の指標となる。   RSA cryptography is based on the difficulty of a mathematical problem called the prime factorization problem. The El Gamal cipher is based on the difficulty of a mathematical problem called the discrete logarithm problem. The elliptic curve cryptosystem is designed based on the discrete logarithm problem on the elliptic curve. A discrete logarithm problem on an elliptic curve is referred to as an “elliptic curve discrete logarithm problem”. Thus, the security of public key cryptography is based on the difficulty of mathematical problems. Therefore, the security of these mathematical problems is an indicator of the security of public key cryptography.

楕円曲線暗号は、楕円曲線離散対数問題に基づく暗号である。楕円曲線離散対数問題に基づく暗号は、楕円曲線上の点および単位元となる無限遠点0の集合をなす加法群において定義される。この加法群に含まれる点の数を位数rと呼ぶ。楕円曲線上の点P1とP2に対する演算として、以下のものが定義されている。
加算:P3=P1+P2=P2+P1
2倍算:P2=2×P1=P1+P1
減算:P3=P1−P2
零点:0(無限遠点)=P1−P1
スカラ倍算:k×P=P+P+・・・+P
Elliptic curve cryptography is a cipher based on the elliptic curve discrete logarithm problem. Ciphers based on the elliptic curve discrete logarithm problem are defined in an additive group comprising a set of points on the elliptic curve and an infinite point 0 as a unit element. The number of points included in this additive group is called order r. The following are defined as operations for the points P1 and P2 on the elliptic curve.
Addition: P3 = P1 + P2 = P2 + P1
Double calculation: P2 = 2 × P1 = P1 + P1
Subtraction: P3 = P1-P2
Zero point: 0 (point at infinity) = P1-P1
Scalar multiplication: k x P = P + P + ... + P

ここで、k×PとPとからkを算出する問題を楕円曲線離散対数問題という。kは公開鍵暗号の秘密鍵に対応するものである。一般的に、位数rが十分に大きい場合には、解kを求めることは困難である。楕円曲線対数問題が困難であるという仮定のもとで、楕円曲線暗号は高い安全性を確保することができる。   Here, the problem of calculating k from k × P and P is called an elliptic curve discrete logarithm problem. k corresponds to a secret key of public key cryptography. In general, when the order r is sufficiently large, it is difficult to obtain the solution k. Under the assumption that the elliptic curve logarithm problem is difficult, the elliptic curve cryptosystem can ensure high security.

さらに近年では、ペアリングという公開鍵暗号技術が注目されている。ペアリングは楕円曲線暗号の一種である。楕円曲線上の2点に対するペアリングと呼ばれる演算を用いることで、従来の楕円曲線の機能を拡張する。この場合、楕円曲線離散対数問題の困難性に加え、いくつかの数学的問題の困難性に関する新たな仮定が必要となる。(L+1)双曲線Difie-Hellman指数問題と呼ばれる数学的問題の困難性を仮定することがある。(L+1)双曲線Difie-Hellman指数問題は、P、k×P、k×P、k×P、・・・、k×Pから、kやkL+1を求めるものである。この場合、P、k×Pからkを求める楕円曲線離散対数問題に比べ、k×P、k×P、・・・、k×Pなどの追加情報があることから、追加情報ありの楕円離散対数問題と呼ぶことがある。 In recent years, public key cryptography called pairing has attracted attention. Pairing is a kind of elliptic curve cryptography. The function of the conventional elliptic curve is expanded by using an operation called pairing for two points on the elliptic curve. In this case, in addition to the difficulty of the elliptic curve discrete logarithm problem, new assumptions regarding the difficulty of some mathematical problems are required. The difficulty of a mathematical problem called (L + 1) hyperbolic Difie-Hellman exponential problem may be assumed. The (L + 1) hyperbolic Difie-Hellman exponent problem is to obtain k and k L + 1 from P, k × P, k 2 × P, k 3 × P,..., K L × P. In this case, since there is additional information such as k 2 × P, k 3 × P,..., K L × P, compared to the elliptic curve discrete logarithm problem for obtaining k from P and k × P, there is additional information. Is sometimes called the elliptic discrete logarithm problem.

ここで、公開鍵暗号の安全性を評価するためには、その基となっている数学的問題の解析が必要となる。例えば、安全生を決定するパラメータの一つに位数rがあり、この位数rの値を大きくすれば、公開鍵暗号の安全性を高めることができるが、あまりにおおきな値にすると、暗号化、復号にかかる処理負荷も大きくなる。このため、安全性を保証しつつ、暗号化、復号にかかる処理負荷をある程度おさえることができるちょうど良い位数rの大きさを求めるべく、実際に計算機実験を行って、数学的問題の評価をおこなうことが重要となる。   Here, in order to evaluate the security of public key cryptography, it is necessary to analyze the mathematical problem that forms the basis of the security. For example, one of the parameters for determining the security student is the order r. If the value of this order r is increased, the security of the public key encryption can be improved. Also, the processing load for decoding increases. For this reason, in order to find the right magnitude r that can reduce the processing load for encryption and decryption to some extent while guaranteeing safety, actual computer experiments are conducted to evaluate mathematical problems. It is important to do it.

数学的問題の解析を行うものには、P、k×P、k×Pおよびdから、kを求める補助入力付き楕円曲線離散対数問題がある。ここで、dは(r−1)の約数である。この問題を解く方法として、例えば、Cheon解析法が知られている。Cheon解析法は、Baby-Step Giant-Step解析法(BSGS)を用いて攻撃を行う方法である。Cheon解析法では、BSGSを二重に処理することで攻撃を行う。BSGSでは2種類のテーブルを作成し、これら計算結果を比較して、秘密鍵kを求める。これにより、最小r1/4の数倍程度の計算量で暗号鍵としての秘密鍵kを解くことができる。 An analysis of a mathematical problem includes an elliptic curve discrete logarithm problem with an auxiliary input for obtaining k from P, k × P, k d × P and d. Here, d is a divisor of (r−1). As a method for solving this problem, for example, the Cheon analysis method is known. The Cheon analysis method is an attack method using the Baby-Step Giant-Step analysis method (BSGS). In the Cheon analysis method, attacks are performed by processing BSGS twice. BSGS creates two types of tables and compares the calculation results to obtain a secret key k. As a result, the secret key k as the encryption key can be solved with a calculation amount about several times the minimum r1 / 4 .

特開平11−288215号公報Japanese Patent Laid-Open No. 11-288215 特開2003−288013号公報JP 2003-288013 A

しかしながら、上記のCheon解析法では、楕円曲線離散対数問題の解を求めるための計算量が多いという問題があった。   However, the above Cheon analysis method has a problem that the amount of calculation for obtaining the solution of the elliptic curve discrete logarithm problem is large.

開示の技術は、上記に鑑みてなされたものであって、楕円曲線離散対数問題の解を求めるための計算量を削減することができる暗号鍵解析方法、暗号鍵解析装置、および、暗号鍵解析プログラムを提供することを目的とする。   The disclosed technology has been made in view of the above, and an encryption key analysis method, an encryption key analysis device, and an encryption key analysis capable of reducing the amount of calculation for obtaining a solution of an elliptic curve discrete logarithm problem The purpose is to provide a program.

本願の開示する暗号鍵解析方法は、一つの態様において、コンピュータが、楕円曲線離散対数問題の解を楕円曲線上の点に対応する生成元のべき乗で示し、前記生成元のべき乗部分を第1部分と第2部分に分割する分割ステップと、前記第1部分の値を所定の値域で変化させた場合に前記生成元をべき乗することで算出される値を第1テーブルに格納する第1演算ステップと、前記第2部分の値を所定の値域で変化させた場合に前記生成元をべき乗することで算出される値と、前記生成元のべき乗部分の一部に自己同型写像を適用した値とを組あわせた値を第2テーブルに格納する第2演算ステップと、前記第1テーブルに格納された値と前記第2テーブルに格納された値とを比較し、一致した値に基づいて前記楕円曲線離散対数問題の解を算出することで暗号鍵を解析する暗号鍵解析ステップとを実行することを要件とする。   According to an encryption key analysis method disclosed in the present application, in one aspect, a computer indicates a solution of an elliptic curve discrete logarithm problem by a power of a generator corresponding to a point on the elliptic curve, and the power of the generator is a first power part. A division step for dividing the first part into a first part and a value calculated by raising the generation source to a power when the value of the first part is changed in a predetermined range; A value calculated by raising the generator to a power when the value of the second part is changed in a predetermined range, and a value obtained by applying automorphism mapping to a part of the exponent of the generator And a second calculation step for storing the combined value in the second table, the value stored in the first table and the value stored in the second table are compared, and based on the matching value, Solve the elliptic curve discrete logarithm problem To perform an encryption key analysis step of analyzing the encryption key by out be a requirement.

本願の開示する暗号鍵解析方法の一つの態様によれば、楕円曲線離散対数問題の解を求めるための計算量を削減することができるという効果を奏する。   According to one aspect of the encryption key analysis method disclosed in the present application, it is possible to reduce the amount of calculation for obtaining the solution of the elliptic curve discrete logarithm problem.

図1Aは、TbテーブルとTgテーブルとを比較する処理を補足するための図である。FIG. 1A is a diagram for supplementing the process of comparing the Tb table and the Tg table. 図1Bは、BSGSの具体例を説明するための図である。FIG. 1B is a diagram for explaining a specific example of BSGS. 図2は、Cheon解析法の具体例を説明するための図(1)である。FIG. 2 is a diagram (1) for explaining a specific example of the Cheon analysis method. 図3は、Cheon解析法の具体例を説明するための図(2)である。FIG. 3 is a diagram (2) for explaining a specific example of the Cheon analysis method. 図4は、Cheon解析法の具体例を説明するための図(3)である。FIG. 4 is a diagram (3) for explaining a specific example of the Cheon analysis method. 図5は、従来のCheon解析法の処理手順を示すフローチャートである。FIG. 5 is a flowchart showing the processing procedure of the conventional Cheon analysis method. 図6は、本実施例1にかかる暗号鍵解読装置の構成を示す図である。FIG. 6 is a diagram of the configuration of the encryption key decrypting apparatus according to the first embodiment. 図7は、自己同型写像を適用した場合と適用していない場合との楕円曲線演算を実行すべき範囲を示す図(1)である。FIG. 7 is a diagram (1) showing a range in which the elliptic curve calculation is to be executed when the automorphic mapping is applied and when it is not applied. 図8は、自己同型写像を適用した場合と適用していない場合との楕円曲線演算を実行すべき範囲を示す図(2)である。FIG. 8 is a diagram (2) showing a range in which the elliptic curve calculation is to be executed when the automorphic mapping is applied and when it is not applied. 図9は、本実施例1にかかるTbテーブルのデータ構造の一例を示す図である。FIG. 9 is a diagram illustrating an example of the data structure of the Tb table according to the first embodiment. 図10は、本実施例1にかかるTgテーブルのデータ構造の一例を示す図である。FIG. 10 is a diagram illustrating an example of the data structure of the Tg table according to the first embodiment. 図11は、本実施例1にかかるテーブル生成部の構成を示す図である。FIG. 11 is a diagram illustrating the configuration of the table generation unit according to the first embodiment. 図12は、本実施例1にかかる処理部の処理手順を示すフローチャートである。FIG. 12 is a flowchart of the process procedure of the processing unit according to the first embodiment. 図13は、本実施例1にかかるテーブル処理部の処理手順を示すフローチャートである。FIG. 13 is a flowchart of the process procedure of the table processing unit according to the first embodiment. 図14は、本実施例2にかかる暗号解読装置の構成を示す図である。FIG. 14 is a diagram illustrating the configuration of the decryption apparatus according to the second embodiment. 図15は、本実施例2にかかるTbテーブルのデータ構造の一例を示す図である。FIG. 15 is a diagram illustrating an example of the data structure of the Tb table according to the second embodiment. 図16は、本実施例2にかかるTgテーブルのデータ構造の一例を示す図である。FIG. 16 is a diagram illustrating an example of the data structure of the Tg table according to the second embodiment. 図17は、本実施例2にかかるテーブル生成部の構成を示す図である。FIG. 17 is a diagram illustrating the configuration of the table generation unit according to the second embodiment. 図18は、本実施例2にかかる処理部の処理手順を示すフローチャートである。FIG. 18 is a flowchart of the process procedure of the processing unit according to the second embodiment. 図19は、本実施例3にかかる暗号鍵解読装置の構成を示す図である。FIG. 19 is a diagram illustrating the configuration of the encryption key decrypting apparatus according to the third embodiment. 図20は、本実施例3にかかるテーブル生成部の処理の概要を示す図である。FIG. 20 is a diagram illustrating an overview of the process of the table generation unit according to the third embodiment. 図21は、本実施例3にかかるTbテーブルのデータ構造の一例を示す図である。FIG. 21 is a diagram illustrating an example of the data structure of the Tb table according to the third embodiment. 図22は、本実施例3にかかるTgテーブルのデータ構造の一例を示す図である。FIG. 22 is a diagram illustrating an example of the data structure of the Tg table according to the third embodiment. 図23は、本実施例3にかかるテーブル生成部の構成を示す図である。FIG. 23 is a diagram illustrating the configuration of the table generation unit according to the third embodiment. 図24は、本実施例3にかかる処理部の処理手順を示すフローチャートである。FIG. 24 is a flowchart of the process procedure of the processing unit according to the third embodiment. 図25は、本実施例3にかかるテーブル生成部の処理手順を示すフローチャートである。FIG. 25 is a flowchart of the process procedure of the table generation unit according to the third embodiment. 図26は、従来のCheon解析法、実施例1〜3の楕円演算回数、テーブルのデータ量の比較結果を示す図(1)である。FIG. 26 is a diagram (1) illustrating a comparison result of the conventional Cheon analysis method, the number of elliptic operations in Examples 1 to 3, and the data amount of the table. 図27は、従来のCheon解析法、実施例1〜3の楕円演算回数、テーブルのデータ量の比較結果を示す図(2)である。FIG. 27 is a diagram (2) illustrating a comparison result of the conventional Cheon analysis method, the number of elliptic operations in Examples 1 to 3, and the data amount of the table. 図28は、テーブル作成時間とテーブル量とを示す図である。FIG. 28 is a diagram showing the table creation time and the table amount. 図29は、暗号鍵解読プログラムを実行するコンピュータを示す図である。FIG. 29 is a diagram illustrating a computer that executes an encryption key decryption program.

まず、本願の開示する暗号鍵解読装置における技術を説明するうえでの原理を図面に基づいて説明する。以下では、Baby-Step Giant-Step解析法、Cheon解析法、自己同型写像、自己同型写像のべき表現の順に説明する。   First, the principle for explaining the technique in the encryption key decryption apparatus disclosed in the present application will be described with reference to the drawings. Below, Baby-Step Giant-Step analysis method, Cheon analysis method, automorphism map, power expression of automorphism map will be described in this order.

まず、「Baby-Step Giant-Step解析法」について説明する。以下では、Baby-Step Giant-Step解析法をBSGSと表記する。BSGSは、楕円曲線離散対数問題の効率的な解法の一つである。位数rの楕円曲線パラメータを使用し、未知値x(0<x<r)を、既知のx×GとGから求める楕円曲線対数問題を解く場合には、BSGSは、2×r1/2回程度の楕円曲線演算によって楕円曲線離散対数問題を解くことができる。これに対して、BSGSを用いず、楕円曲線離散対数問題を総当たりで求めると、平均r/2回程度の演算が必要となってしまう。 First, the “Baby-Step Giant-Step analysis method” will be described. Hereinafter, the Baby-Step Giant-Step analysis method is referred to as BSGS. BSGS is one of the efficient solutions for the elliptic curve discrete logarithm problem. When solving an elliptic curve logarithm problem in which an elliptic curve parameter of order r is used and an unknown value x (0 <x <r) is obtained from known x × G and G, BSGS is 2 × r 1/2. The elliptic curve discrete logarithm problem can be solved by performing the elliptic curve calculation about twice. On the other hand, if the elliptic curve discrete logarithm problem is obtained by brute force without using BSGS, an average of about r / 2 times is required.

BSGSでは、未知数xを「r1/2の値を切り上げた値」の進数で、上位値xと下位値xに分割し、Baby-Stepを実行してTbテーブルを作成し、Giant-Stepを実行してTgテーブルを作成する。Baby-Stepでは、順次iの値を変化させながら「(x−i)×G」を順次算出し、Tbテーブルに計算結果を順次格納する。一方、Giant-Stepでは、順次jの値を変化させながら「j×G」を順次算出し、Tgテーブルに計算結果を順次格納する。なお、i、jには、進数に応じて所定の値が乗算される。 In BSGS, the unknown number x is divided into an upper value x H and a lower value x L in a decimal number obtained by rounding up the value of r 1/2 , Baby-Step is executed to create a Tb table, and Giant- Execute Step to create a Tg table. In Baby-Step, “(x L −i) × G” is sequentially calculated while sequentially changing the value of i, and the calculation results are sequentially stored in the Tb table. On the other hand, in Giant-Step, “j × G” is sequentially calculated while sequentially changing the value of j, and the calculation results are sequentially stored in the Tg table. Note that i and j are multiplied by a predetermined value in accordance with a decimal number.

図1Aは、TbテーブルとTgテーブルとを比較する処理を補足するための図である。図1Aの1aは、未知数xの上位部分であり、1bは、未知数xの下位部分である。TbテーブルとTgテーブルとを比較することは、図1Aの2a部分に対応する値と、2b部分に対応する値とを比較することである。   FIG. 1A is a diagram for supplementing the process of comparing the Tb table and the Tg table. In FIG. 1A, 1a is an upper part of the unknown x, and 1b is a lower part of the unknown x. Comparing the Tb table and the Tg table is comparing the value corresponding to the 2a portion in FIG. 1A and the value corresponding to the 2b portion.

図1Bは、BSGSの具体例を説明するための図である。ここでは一例として、位数r=97とし、GおよびxGの値が与えられるものとする。なお、未知数x=96とする。Baby-Stepにおいて、BSGSは、iの値を順次変化させ、「xG−iG」を順次計算することで、Tbテーブル10aを生成する。図1に示す例では、iの値を0〜9とする。Giant-Stepにおいて、BSGSは、jの値を順次変化させ、「j×10G」を順次計算することで、Tgテーブル10bを生成する。図1に示す例では、jの値を0〜9とする。 FIG. 1B is a diagram for explaining a specific example of BSGS. Here, as an example, it is assumed that the order r = 97 and the values of G and xG are given. Note that the unknown number x = 96. In Baby-Step, BSGS sequentially changes the value of i and sequentially calculates “x L G-iG” to generate the Tb table 10a. In the example shown in FIG. 1, the value of i is 0-9. In Giant-Step, the BSGS sequentially changes the value of j and sequentially calculates “j × 10G” to generate the Tg table 10b. In the example shown in FIG. 1, the value of j is 0-9.

BSGSでは、Tbテーブル10aの各値とTgテーブル10bの各値とを比較し、各値が一致する場合のiおよびjの値を判定する。未知数xとi、jとの関係は、「x=i+10j」となるため、各値が一致する場合のiおよびjの値を判定することができれば、未知数xを算出することができる。図1に示す例では、Tbテーブル10aのiが「6」となる場合の値「90」と、Tgテーブル10bのjが「9」となる場合の値「90」が一致する。このため、未知数xは、「x=6+9×10=96」となる。BSGSでは、このようにして未知数xを算出する。このときの楕円曲線演算は20回となる。この回数は、上述した「2×r1/2」の値とほぼ同じである。 In BSGS, each value of the Tb table 10a is compared with each value of the Tg table 10b, and the values of i and j when the values match are determined. Since the relationship between the unknown number x and i, j is “x = i + 10j”, the unknown number x can be calculated if the values of i and j when the values match can be determined. In the example shown in FIG. 1, the value “90” when i in the Tb table 10 a is “6” and the value “90” when j in the Tg table 10 b are “9” match. Therefore, the unknown number x is “x = 6 + 9 × 10 = 96”. In BSGS, the unknown number x is calculated in this way. The elliptic curve calculation at this time is 20 times. This number of times is almost the same as the value of “2 × r 1/2 ” described above.

ここで、楕円曲線離散対数問題を総当たりで求める場合について説明する。楕円曲線離散対数問題を総当たりで求める場合には、平均r/2回程度の楕円曲線演算が行われる。GとxGの値が与えられた場合に、iの値を順次変化させ「i×G」を順次計算し、計算結果とxGの値とを比較して未知数xを求める。例えば、未知数x=96の場合には、iの値が96になった場合に、「i×G」の値とxGとの値が一致するため、未知数x=96として求めることができる。この場合には、楕円曲線演算を96回行う必要がある。   Here, a case where the elliptic curve discrete logarithm problem is obtained by brute force will be described. When the elliptic curve discrete logarithm problem is determined by brute force, an elliptic curve calculation is performed on average r / 2 times. When the values of G and xG are given, the value of i is sequentially changed to calculate “i × G” sequentially, and the calculation result is compared with the value of xG to obtain the unknown x. For example, in the case of the unknown number x = 96, when the value of i reaches 96, the value of “i × G” matches the value of xG, so that the unknown number x = 96 can be obtained. In this case, it is necessary to perform the elliptic curve calculation 96 times.

位数rの場合、BSGSでは平均2×r1/2回程度の楕円曲線演算によって楕円曲線離散対数問題を解くことができるが、総当たり法では、平均r/2回程度の楕円曲線演算が必要となる。以上のことから、BSGSは、総当たり法と比較して、楕円曲線問題を解く場合の楕円曲線演算の回数が少なくなる。 In the case of order r, BSGS can solve the elliptic curve discrete logarithm problem by an elliptic curve calculation with an average of about 2 × r 1/2 times, but the round robin method has an elliptic curve calculation with an average of r / 2 times. Necessary. From the above, BSGS reduces the number of elliptic curve operations when solving an elliptic curve problem compared to the round robin method.

次に、「Cheon解析法」について説明する。Cheon解析法は、追加情報ありの楕円離散対数問題に対して、BSGSを適用して解を算出する方法である。上記BSGSでは、GとxGとから未知数xを求めたが、Cheon解析では、G、xG、xG、dを利用して、未知数xを求める。dはr−1の約数に対応するものである。Cheon解析法では、BSGSを二重に行うことで、計算量を削減する。仮に、dの値が、r1/2の値とほぼ同じ値となる場合には、楕円曲線演算の回数がほぼr1/4となることが知られている。 Next, the “Cheon analysis method” will be described. The Cheon analysis method is a method of calculating a solution by applying BSGS to an elliptic discrete logarithm problem with additional information. In the BSGS, the unknown number x is obtained from G and xG, but in the Cheon analysis, the unknown number x is obtained using G, xG, x d G, d. d corresponds to a divisor of r-1. The Cheon analysis method reduces the amount of calculation by performing BSGS twice. If the value of d is substantially the same as the value of r 1/2 , it is known that the number of elliptic curve calculations is approximately r ¼ .

以下において、Cheon解析法の具体例について説明する。図2〜図4は、Cheon解析法の具体例を説明するための図である。   Hereinafter, specific examples of the Cheon analysis method will be described. 2 to 4 are diagrams for explaining specific examples of the Cheon analysis method.

Cheon解析法では、点Gに対する位数rの生成元ζを求め、x=ζとなるyを見つける。ここで、yの値域は、0〜r−1となる。図2の左側の各数値は、図1Aに示した各数値と同様である。図2の右側において、yは、yを(r−1)/dで除算した商に対応し、yは、yを(r−1)/dで除算した余りに対応する。 In the Cheon analysis method, the generator ζ of the order r with respect to the point G is obtained, and y where x = ζ y is found. Here, the value range of y is 0 to r-1. Each numerical value on the left side of FIG. 2 is the same as each numerical value shown in FIG. 1A. On the right side of FIG. 2, y H corresponds to the quotient obtained by dividing y by (r−1) / d, and y L corresponds to the remainder obtained by dividing y by (r−1) / d.

図2に示すように、部分2aに対応する値と部分2bに対応する値とを比較することは、部分3aに対応する値と部分3bに対応する値とを比較することと同じである。なお、部分2aに対応する値は「(x−i)×G」であり、部分2bに対応する値は「j×G」である。部分3aに対応する値は「

Figure 0005640531
」であり、部分3bに対応する値は「ζ×G」である。つまり、Cheon解析法では、ζの指数部分において、BSGSと同様の処理を実行することで、yを求める。 As shown in FIG. 2, comparing the value corresponding to the part 2a with the value corresponding to the part 2b is the same as comparing the value corresponding to the part 3a and the value corresponding to the part 3b. The value corresponding to the portion 2a is “(x L −i) × G”, and the value corresponding to the portion 2b is “j × G”. The value corresponding to the part 3a is “
Figure 0005640531
The value corresponding to the portion 3b is “ζ j × G”. That is, in the Cheon analysis method, y is obtained by executing the same process as BSGS in the exponent part of ζ.

なお、Cheon解析法では、はじめからx=ζとなるyを求めるのではなく、yをyとyに分割し、yとyとをそれぞれ求める。 In the Cheon analysis, instead of obtaining a y consisting beginning with x = zeta y, by dividing the y into y H and y L, obtaining a y H and y L, respectively.

まず、yを求める場合について説明する。xG=ζ Gとなるzを求めることと、yを求めることは、数学的に同じ意味を持つ。だたし、ζ=ζとする。zを求めるために、BSGSを適用することで、計算量0(r1/4)でzを求めることができる。 First, a description will be given of a case of obtaining a y L. Finding z such that x d G = ζ d z G and finding y L have the same mathematical meaning. However, ζ d = ζ d . By applying BSGS to obtain z, z can be obtained with a calculation amount of 0 (r 1/4 ).

図3の右側に示すように、Cheon解析法では、zを上位zとzに分割する。そして、Cheon解析法では、Baby-Stepにおいて、iの値を変化させながら「

Figure 0005640531
」を順次算出し、Tbテーブルに計算結果を順次格納する。また、Giant-Stepにおいて、jの値を変化させながら「ζ ×G」を順次算出し、Tgテーブルに計算結果を順次格納する。Cheon解析法では、Tbテーブルの各値とTgテーブルの各値とを比較し、各値が一致する場合のiおよびjの値を判定する。iとjとの値が分かれば、zを求めることができる。 As shown on the right side of FIG. 3, the Cheon analysis, it divides the z to the upper z H and z L. And in Cheon analysis method, while changing the value of i in Baby-Step,
Figure 0005640531
Are sequentially calculated, and the calculation results are sequentially stored in the Tb table. In Giant-Step, “ζ d j × G” is sequentially calculated while changing the value of j, and the calculation results are sequentially stored in the Tg table. In the Cheon analysis method, each value in the Tb table is compared with each value in the Tg table, and the values of i and j are determined when the values match. If the values of i and j are known, z can be obtained.

続いて、Cheon解析法では、yを求めた後に、残りのyを求める。Cheon解析法では、

Figure 0005640531
となるwの値を見つける。wの値は、yに対応するものである。wの値域は0〜dとなる。 Subsequently, in Cheon analysis, after obtaining the y L, we obtain the remaining y H. In Cheon analysis,
Figure 0005640531
Find the value of w such that The value of w, which corresponds to the y H. The range of w is 0 to d.

図4の右側に示すように、wを上位wとwに分割する。そして、Cheon解析法では、Baby-Stepにおいて、iの値を変化させながら「

Figure 0005640531
」を順次算出し、Tbテーブルに計算結果を順次格納する。また、jの値を変化させながら「ζ ×G」を順次算出し、Tgテーブルに計算結果を順次格納する。Cheon解析法では、Tbテーブルの各値とTgテーブルの各値とを比較し、各値が一致する場合のiおよびjの値を判定する。iとjとの値が分かれば、wを求めることができる。 As shown on the right side of FIG. 4, it divides the w to the upper w H and w L. And in Cheon analysis method, while changing the value of i in Baby-Step,
Figure 0005640531
Are sequentially calculated, and the calculation results are sequentially stored in the Tb table. Further, “ζ d j × G” is sequentially calculated while changing the value of j, and the calculation results are sequentially stored in the Tg table. In the Cheon analysis method, each value in the Tb table is compared with each value in the Tg table, and the values of i and j are determined when the values match. If the values of i and j are known, w can be obtained.

上記のように、図2〜図4の処理を実行することで、yに対応するzと、yに対応するwが求まるので、yの値が特定される。上記のCheon解析法では、最小0(r1/4)の計算量で、追加情報ありの楕円離散対数問題を解析することができる。 As described above, by executing the processing in FIGS. 2-4, and z corresponding to y L, since w is obtained corresponding to y H, the value of y is identified. In the above Cheon analysis method, an elliptic discrete logarithm problem with additional information can be analyzed with a minimum calculation amount of 0 (r1 / 4 ).

次に、従来のCheon解析法の処理手順について説明する。図5は、従来のCheon解析法の処理手順を示すフローチャートである。図5に示すように、Cheon解析法では、未知数x=ζとし、yをyとyに分割する(ステップS10)。 Next, the processing procedure of the conventional Cheon analysis method will be described. FIG. 5 is a flowchart showing the processing procedure of the conventional Cheon analysis method. As shown in FIG. 5, in the Cheon analysis method, an unknown number x = ζ y is set, and y is divided into y H and y L (step S10).

Cheon解析法では、y部分に対してBaby-Stepを実行し、ζ −u1×xGとなるTbテーブルを作成する(ステップS11)。ただし、u1の値域を0≦u1<d1とする。ここで、d1は、((r−1)/d)1/2の値を切り上げたものに対応する。 In the Cheon analysis method, Baby-Step is executed on the y L portion to create a Tb table that is ζ d −u1 × x d G (step S11). However, the range of u1 is 0 ≦ u1 <d1. Here, d1 corresponds to the rounded up value of ((r−1) / d) 1/2 .

Cheon解析法では、y部分に対してGiant-Stepを実行し、ζ v1・d1×GとなるTgテーブルを作成する(ステップS12)。ただし、v1の値域を0≦v1<d1とする。 In the Cheon analysis method, Giant-Step is executed on the y L portion to create a Tg table that is ζ d v1 · d1 × G (step S12). However, the value range of v1 is 0 ≦ v1 <d1.

Cheon解析法では、TbテーブルとTgテーブルとを比較し、ζ −u1×xG=ζ v1・d1×Gとなるu1、v1の組を算出する(ステップS13)。Cheon解析法では、u1とv1とを加算することでzを算出する(ステップS14)。このzは、yに対応するものである。 In the Cheon analysis method, the Tb table and the Tg table are compared, and a set of u1 and v1 that satisfies ζ d −u 1 × x d G = ζ d v1 · d1 × G is calculated (step S13). In the Cheon analysis method, z is calculated by adding u1 and v1 (step S14). This z is the one corresponding to the y L.

続いて、Cheon解析法では、上位部分に対してBaby−Stepを実行し、ζ−u2(r−1)/r×xG{0≦u2<d1’’}となるTbテーブル141を作成する(ステップS15)。また、Cheon解析法では、上位部分に対してGiant−Stepを実行し、ζk1ζr2・d2・(r−1)/r×G{0≦v2<d’’}となるTgを計算し、全ての点からなるTgテーブルを作成する(ステップS16)。 Subsequently, in the Cheon analysis method, Baby-Step is executed on the upper part to create a Tb table 141 that satisfies ζ −u2 (r−1) / r × xG {0 ≦ u2 <d1 ″} ( Step S15). In the Cheon analysis method, Giant-Step is executed for the upper part to calculate Tg that satisfies ζ k1 ζ r2 · d2 · (r−1) / r × G {0 ≦ v2 <d ″}. A Tg table composed of all points is created (step S16).

Cheon解析法では、TbテーブルとTgテーブルとを比較し、ζ−u2(r−1)/r×xG=、ζk1ζr2・d2・(r−1)/r×Gとなる(u2、v2)の組を算出する(ステップS17)。Cheon解析法では、、w=y=u2+v2d’’により、yの上位部分wを算出する(ステップS18)。このwは、yに対応するものである。そして、Cheon解析法では、zとw(r−1)/dとを加算することで、yを算出する(ステップS19)。このyは、x=ζと、未知数xに対応するものである。以上、Cheon解析法の具体例について説明した。このようにして、Cheon解析法では、未知数xを算出する。 In the Cheon analysis method, the Tb table and the Tg table are compared, and ζ −u2 (r−1) / r × xG =, and ζ k1 ζ r2 · d2 · (r−1) / r × G (u2, A set of v2) is calculated (step S17). In the Cheon analysis method, the upper part w of y is calculated from w = y H = u2 + v2d ″ (step S18). This w are those corresponding to the y H. In the Cheon analysis method, y is calculated by adding z and w (r-1) / d (step S19). This y corresponds to x = ζ y and the unknown number x. The specific example of the Cheon analysis method has been described above. In this way, the unknown number x is calculated in the Cheon analysis method.

次に、「自己同型写像」について説明する。一部の楕円曲線では、楕円曲線上の点PのFrobenius写像Φ(P)が高速に計算できる。例えば、有限体(3127)の楕円曲線では、点P=(x、y)のFrobenius写像Φ(P)=(x、y)も同一の楕円曲線上の点となる。このFrobenius写像Φ(P)は、各座標を3乗するだけであり、他の楕円曲線演算に比べて高速に計算できる。なお、点PにFrobenius写像Φ(P)をi回適用して得られる点であるΦ(i)(P)は以下のように記述される。すなわち、Φ(i)(P)=Φ(Φ(・・・Φ(P)))となる。 Next, “automorphism mapping” will be described. In some elliptic curves, the Frobenius map Φ (P) of the point P on the elliptic curve can be calculated at high speed. For example, in the elliptic curve of the finite field (3 127 ), the Frobenius map Φ (P) = (x 3 , y 3 ) of the point P = (x, y) is also a point on the same elliptic curve. This Frobenius map Φ (P) only requires the cube of each coordinate, and can be calculated faster than other elliptic curve calculations. Note that Φ (i) (P), which is a point obtained by applying Frobenius map Φ (P) i times to the point P, is described as follows. That is, Φ (i) (P) = Φ (Φ (... Φ (P))).

また、一部の楕円曲線ではマイナス写像についても高速に計算できる。マイナス写像は、点Pを点−Pに対応させる写像である。例えば、有限体GF(3127)における楕円曲線では、点P=(x,y)のマイナス写像−P=(x,−y)も同一の楕円曲線上の点となる。以下では、Frobenius写像およびマイナス写像をまとめて自己同型写像と呼ぶ。 In addition, for some elliptic curves, a negative mapping can be calculated at high speed. The minus map is a map that associates the point P with the point -P. For example, in the elliptic curve in the finite field GF (3 127 ), the negative mapping −P = (x, −y) of the point P = (x, y) is also a point on the same elliptic curve. Below, the Frobenius map and the minus map are collectively called automorphism maps.

次に、「自己同型写像のべき表現」について説明する。有限体GF(q)における楕円曲線の場合、任意の点にFrobenius写像をm回適用すると元の点に戻る。つまり、Φ(m)(P)=Pとなる。また、任意の点のマイナス写像を2回適用すると元の点に戻る。つまり、(−1)×P=Pとなる。 Next, the “expression of the automorphism map” will be described. In the case of an elliptic curve in the finite field GF (q m ), when the Frobenius map is applied to an arbitrary point m times, the original point is restored. That is, Φ (m) (P) = P. In addition, when a negative mapping of an arbitrary point is applied twice, the original point is restored. That is, (−1) 2 × P = P.

上記自己同型写像を生成元ζのべき乗として表すと、自己同型写像は、(−1)(i)Φ(j)P=ζ(i・m+2・c・j)(r―1)/2m×Pと表現することができる。ここで、cは楕円曲線と生成元の値によって一意に決まる定数である。iおよびjの値は、i=0〜1、j=0〜m−1である。 When the automorphism map is expressed as the power of the generator ζ, the automorphism map is (−1) (i) Φ (j) P = ζ (i · m + 2 · c · j) (r−1) / 2m × P can be expressed. Here, c is a constant uniquely determined by the elliptic curve and the value of the generation source. The values of i and j are i = 0 to 1 and j = 0 to m-1.

特に、有限体GF(3127)楕円曲線上の点でマイナス点とFrobenius写像も同じ楕円曲線上の点となるような点Pに関し、生成元ζ=3、m=127、c=110の場合には、自己同型写像は、(−1)(i)Φ(j)P=ζ(127・i+220・j)(r―1)/254×Pと表現することができる。 In particular, regarding the point P on the finite field GF (3 127 ) elliptic curve where the minus point and the Frobenius map are also on the same elliptic curve, the generation source ζ = 3, m = 127, c = 110 Can be expressed as (−1) (i) Φ (j) P = ζ (127 · i + 220 · j) (r−1) / 254 × P.

以上、本願の開示する暗号鍵解読装置における技術を説明する上での原理を説明した。以下に、本願の開示する暗号鍵解読装置の実施例を図面に基づいて詳細に説明する。なお、この実施例により発明が限定されるものではない。   The principle for explaining the technology in the encryption key decryption apparatus disclosed in the present application has been described above. Hereinafter, embodiments of an encryption key decryption apparatus disclosed in the present application will be described in detail with reference to the drawings. The invention is not limited to the embodiment.

本実施例1にかかる暗号鍵解読装置について説明する。図6は、本実施例1にかかる暗号鍵解読装置の構成を示す図である。この暗号鍵解読装置100は、楕円曲線離散対数問題を解くことで、公開鍵暗号の秘密鍵を算出する装置である。図6に示すように、この暗号鍵解読装置100は、入力部110、出力部120、処理部130、記憶部140を有する。   The encryption key decryption apparatus according to the first embodiment will be described. FIG. 6 is a diagram of the configuration of the encryption key decrypting apparatus according to the first embodiment. The encryption key decryption device 100 is a device that calculates a secret key for public key cryptography by solving an elliptic curve discrete logarithm problem. As illustrated in FIG. 6, the encryption key decryption apparatus 100 includes an input unit 110, an output unit 120, a processing unit 130, and a storage unit 140.

入力部110は、外部から情報を入力する。例えば、入力部110は、ユーザからの指示を受け付けて、受け付けた指示を処理部130に入力する。また、入力部110は、楕円曲線離散対数問題を解読する場合に利用する各種のパラメータを受け付け、受け付けたパラメータを処理部130に入力する。出力部120は、楕円離散対数問題の解読結果を出力する。   The input unit 110 inputs information from the outside. For example, the input unit 110 receives an instruction from the user and inputs the received instruction to the processing unit 130. In addition, the input unit 110 receives various parameters used when deciphering the elliptic curve discrete logarithm problem, and inputs the received parameters to the processing unit 130. The output unit 120 outputs a decoding result of the elliptic discrete logarithm problem.

処理部130は、パラメータ取得部131、テーブル生成部132、テーブル比較部133、未知数算出部134、制御部135を有する。   The processing unit 130 includes a parameter acquisition unit 131, a table generation unit 132, a table comparison unit 133, an unknown number calculation unit 134, and a control unit 135.

パラメータ取得部131は、入力部110からパラメータを取得し、取得したパラメータをテーブル生成部132に出力する処理部である。なお、パラメータ取得部131は、パラメータを記憶部140に記憶させておき、ユーザからの指示を受け付けた場合に、記憶部140に記憶されたパラメータを取得してもよい。   The parameter acquisition unit 131 is a processing unit that acquires parameters from the input unit 110 and outputs the acquired parameters to the table generation unit 132. The parameter acquisition unit 131 may store the parameter in the storage unit 140 and acquire the parameter stored in the storage unit 140 when an instruction from the user is received.

ここで、パラメータの一例について説明する。パラメータには、G、ζ、m、d’’が含まれる。このうち、Gは、楕円曲線上の点である。ζは、位数rの生成元である。mは、拡大次数である。d’’は、テーブルの作成範囲を指定するものである。具体的に、自己同型写像を利用してyを求める場合には、G=G、ζ=ζ、d’’は、「((r−1)/d/2m)1/2の値を切り上げた値」となる。また、自己同型写像を利用してyを求める場合には、G=G、ζ=ζ(r−1)/d、d’’は、「(d/2m)1/2の値を切り上げた値」となる。自己同型写像を利用する場合、yを求める場合とyを求める場合のどちらかでのみ使用されることが多い。そのため、以降では、特に記述がない場合にはyの生成の場合について説明する。 Here, an example of the parameters will be described. The parameters include G * , ζ * , m, d ″. Among these, G * is a point on the elliptic curve. ζ * is a generator of the order r. m is the expansion order. d ″ designates the creation range of the table. Specifically, when obtaining y H using an automorphism, G * = G d , ζ * = ζ d , d ″ is “((r−1) / d / 2m) 1 / It becomes a value of 2 rounded up ". When y H is obtained using an automorphism, G * = G, ζ * = ζ (r−1) / d , d ″ is a value of “(d / 2m) 1/2 . Is the value rounded up. When using a self-isomorphism, it is often used only in either case of obtaining the case and y H to obtain the y L. Therefore, in the following, especially when there is no description will be described for the case of the production of y L.

テーブル生成部132は、Cheon解析法の要領で、Baby-StepおよびGiant-Stepを実行し、TbテーブルおよびTgテーブルを生成する処理部である。特に、テーブル生成部132は、Giant-Stepを実行してTgテーブルを作成する場合に、楕円曲線演算の一部に、自己同型写像を適用することで、計算量の削減を図る。   The table generation unit 132 is a processing unit that executes Baby-Step and Giant-Step in the manner of the Cheon analysis method, and generates a Tb table and a Tg table. In particular, when the table generation unit 132 executes Giant-Step to create a Tg table, the table generation unit 132 applies the automorphism mapping to a part of the elliptic curve calculation, thereby reducing the amount of calculation.

自己同型写像をCheon解析法に適用するためには、自己同型写像を生成元ζの指数乗倍で表現する必要がある。自己同型写像を生成元ζの指数乗倍で表すと、(−1)(i)Φ(j)×P=ζ (i・m+2・c・j)d’’Pとなる。dは、r−1の約数であり、このdは、約数2とmを含めないように選択された値とする。自己同型写像を適用することで、楕円曲線演算を実行すべき範囲を削減することができる。このように選択すると、yLを求めるのに自己同型写像を使用することになる。 In order to apply the automorphism map to the Cheon analysis method, it is necessary to express the automorphism map by the exponent multiplication of the generator ζ. When the automorphism map is expressed by exponent multiplication of the generation source ζ, (−1) (i) Φ (j) × P = ζ d (i · m + 2 · c · j) d ″ P. d is a divisor of r−1, and d is a value selected so as not to include the divisors 2 and m. By applying the automorphism map, the range in which the elliptic curve calculation should be performed can be reduced. This selection would use an automorphism to determine yL.

ここで、自己同型写像を適用した場合と適用していない場合との楕円曲線演算を実行すべき範囲について説明する。図7および図8は、自己同型写像を適用した場合と適用していない場合との楕円曲線演算を実行すべき範囲を示す図である。図7の上段は、自己同型写像を適用しない従来のCheon解析法に対応する。図7の下段は、自己同型写像を適用する今回のアイデアに対応する。   Here, the range in which the elliptic curve calculation is performed when the automorphic mapping is applied and when it is not applied will be described. FIG. 7 and FIG. 8 are diagrams showing ranges where the elliptic curve calculation should be executed when the automorphic mapping is applied and when it is not applied. The upper part of FIG. 7 corresponds to a conventional Cheon analysis method that does not apply automorphism mapping. The lower part of FIG. 7 corresponds to the present idea of applying the automorphism mapping.

図7では、探索範囲を上位dと下位(r−1)/dに分割する場合を示している。例えば、図7の上段に示すように、(r−1)/dの範囲を探索する場合には、(r−1)/dの範囲に対して楕円曲線演算を実行し、zを算出する必要があった。zを算出する場合には、図3で説明したように、zをzとzに分割し、Baby-StepおよびGiant-Stepを実行して、TbテーブルとTgテーブルとを比較することで、zを算出する。 FIG. 7 shows a case where the search range is divided into upper d and lower (r−1) / d. For example, as shown in the upper part of FIG. 7, when searching the range of (r−1) / d, elliptic curve calculation is performed on the range of (r−1) / d to calculate z. There was a need. When calculating z, as explained in FIG. 3, z is divided into z H and z L , Baby-Step and Giant-Step are executed, and the Tb table and the Tg table are compared. , Z is calculated.

これに対して、自己同型写像を適用すると、(r−1)/dの範囲に対して楕円曲線演算を実行する必要がない。図7の下段に示すように、楕円曲線演算を実行する範囲は、(r−1)/d/2mでよくなり、残りの範囲は、自己同型写像「(−1)Φ」を用いて求めればよい。 On the other hand, when the automorphism mapping is applied, it is not necessary to perform the elliptic curve calculation on the range of (r−1) / d. As shown in the lower part of FIG. 7, the range for executing the elliptic curve calculation may be (r−1) / d / 2m, and the remaining range uses the automorphism map “(−1) i Φ j ”. Find it.

図8に示すように、Baby-Stepを実行する範囲は20bとなり、Giang-Stepを実行する範囲は20aとなる。Baby-Stepを実行する範囲20bには、自己同型写像を適用する範囲が含まれないので、Cheon解析法と同様にして、Tbテーブルを作成する。これに対して、Giant-Stepを実行する範囲20bには、自己同型写像を適用する範囲が含まれる。このため、Giant-Stepを実行する場合には、楕円曲線演算の一部に自己同型写像を適用してTgテーブルを作成する。   As shown in FIG. 8, the range for executing Baby-Step is 20b, and the range for executing Giang-Step is 20a. Since the range 20b for executing Baby-Step does not include the range to which automorphism mapping is applied, a Tb table is created in the same manner as in the Cheon analysis method. On the other hand, the range 20b in which Giant-Step is executed includes a range to which automorphism mapping is applied. For this reason, when Giant-Step is executed, a Tg table is created by applying an automorphism to a part of the elliptic curve calculation.

テーブル生成部132が、Baby-Stepを実行する場合の処理について説明する。テーブル生成部132は、u1の値を変化させながら、「ζ −u1×xG」を順次算出することで、Tbテーブルを作成する。なお、u1の値域を「0≦u1<d1’’」とする。 Processing when the table generation unit 132 executes Baby-Step will be described. The table generation unit 132 creates a Tb table by sequentially calculating “ζ d −u 1 × x d G” while changing the value of u 1. Note that the range of u1 is “0 ≦ u1 <d1 ″”.

図9は、本実施例1にかかるTbテーブルのデータ構造の一例を示す図である。図9に示すように、このTbテーブル141は、kの値と、kの値に応じたζ −k×xGの点とを対応付けて記憶する。Tbテーブル141のkは、u1に対応する値である。 FIG. 9 is a diagram illustrating an example of the data structure of the Tb table according to the first embodiment. As illustrated in FIG. 9, the Tb table 141 stores a value of k and a point of ζ d −k × x d G corresponding to the value of k in association with each other. K in the Tb table 141 is a value corresponding to u1.

テーブル生成部132が、Giang-Stepを実行する場合の処理について説明する。テーブル生成部132は、v1、i、jの値を順次変化させながら、「(−1)(i)Φ(j)(ζ v1・d1×G)」を順次算出することで、Tgテーブル142を作成する。なお、v1の値域を「0≦v1<d1’’」とする。iの値域を「0、1」とする。jの値域を「0≦j<m−1」とする。 Processing when the table generation unit 132 executes Giang-Step will be described. The table generation unit 132 sequentially calculates “(−1) (i) Φ (j)d v1 · d1 × G)” while sequentially changing the values of v1, i, and j. 142 is created. The value range of v1 is “0 ≦ v1 <d1 ″”. The range of i is “0, 1”. The range of j is “0 ≦ j <m−1”.

図10は、本実施例1にかかるTgテーブルのデータ構造の一例を示す図である。図10に示すように、このTgテーブル142は、k、i、jの値と、k、i、jの値に応じた(−1)(i)Φ(j)(ζ k・d1×G)の点とを対応付けて記憶する。Tgテーブルのkは、v1に対応する値である。 FIG. 10 is a diagram illustrating an example of the data structure of the Tg table according to the first embodiment. As shown in FIG. 10, the Tg table 142 includes (−1) (i) Φ (j)d k · d1 × × corresponding to the values of k, i, j and the values of k, i, j. G) is stored in association with the point. K in the Tg table is a value corresponding to v1.

ここで、テーブル生成部132の構成について説明する。図11は、本実施例1にかかるテーブル生成部の構成を示す図である。図11に示すように、テーブル生成部132は、テーブル生成制御部150、スカラ倍算部151、自己同型写像計算部152を有する。   Here, the configuration of the table generation unit 132 will be described. FIG. 11 is a diagram illustrating the configuration of the table generation unit according to the first embodiment. As illustrated in FIG. 11, the table generation unit 132 includes a table generation control unit 150, a scalar multiplication unit 151, and an automorphic mapping calculation unit 152.

テーブル生成制御部150は、スカラ倍算部151および自己同型写像計算部152を利用して、「ζ −u1×xG」、「(−1)(i)Φ(j)(ζ v1・d1×G)」に対応する値を算出し、Tbテーブル141およびTgテーブル142を作成する処理部である。 The table generation control unit 150 uses the scalar multiplication unit 151 and the automorphism mapping calculation unit 152 to create “ζ d −u 1 × x d G”, “(−1) (i) Φ (j)d v1 · d1 × G) ”is calculated, and the Tb table 141 and the Tg table 142 are created.

テーブル生成制御部150は、パラメータd1’’、ζ、G、m、Tを取得する。テーブル生成制御部150は、Tに応じて、Tbテーブル141またはTgテーブル142を生成すると判定する。Tは、Tbテーブル141を作成するのか、Tgテーブル142を作成するのかを識別する情報である。テーブル生成制御部150は、制御部135からTを取得する。 The table generation control unit 150 acquires parameters d1 ″, ζ * , G * , m, and T * . The table generation control unit 150 determines to generate the Tb table 141 or the Tg table 142 according to T * . T * is information for identifying whether the Tb table 141 is created or the Tg table 142 is created. The table generation control unit 150 acquires T * from the control unit 135.

テーブル生成制御部150が、Tbテーブル141を生成する場合について説明する。テーブル生成制御部150は、スカラ倍算部151に、ζ、G、kを順次入力し、スカラ倍算部151から(ζを順次取得する。Tbテーブル141を生成する場合のkは、上記u1に対応する。テーブル生成制御部150は、kと(ζとを対応付けて、Tbテーブル141に登録する。 A case where the table generation control unit 150 generates the Tb table 141 will be described. The table generation control unit 150 sequentially inputs ζ * , G * , and k to the scalar multiplication unit 151 and sequentially acquires (ζ * ) k G * from the scalar multiplication unit 151. K when generating the Tb table 141 corresponds to u1. The table generation control unit 150 registers k and (ζ * ) k G * in association with each other in the Tb table 141.

テーブル生成制御部150が、Tgテーブル142を生成する場合について説明する。テーブル生成制御部150は、ζ、G、kをスカラ倍算部151に順次入力し、スカラ倍算部151から(ζを順次取得する。Tgテーブル142を生成する場合のkは、上記v1に対応する。テーブル生成制御部150は、(ζを取得した後に、i、j、(ζを自己同型写像計算部152に順次入力し、自己同型写像計算部152から(−1)(i)Φ(j)((ζ×G)を取得する。テーブル生成制御部150は、iとjとkと(−1)(i)Φ(j)((ζ×G)とを対応付けて、Tgテーブル142に登録する。 A case where the table generation control unit 150 generates the Tg table 142 will be described. The table generation control unit 150 sequentially inputs ζ * , G * , k to the scalar multiplication unit 151 and sequentially acquires (ζ * ) k G * from the scalar multiplication unit 151. K when generating the Tg table 142 corresponds to the above v1. After obtaining (ζ * ) k G * , the table generation control unit 150 sequentially inputs i, j, (ζ * ) k G * to the automorphic map calculation unit 152, and from the automorphism map calculation unit 152 ( -1) (i) Φ (j) ((ζ * ) k × G * ) is acquired. The table generation control unit 150 associates i, j, k, and (−1) (i) Φ (j) ((ζ * ) k × G * ) with each other and registers them in the Tg table 142.

スカラ倍算部151は、テーブル生成制御部150から、ζ、G、kを受け付け、(ζを算出する処理部である。スカラ倍算部151は、(ζをテーブル生成制御部150に出力する。 The scalar multiplication unit 151 is a processing unit that receives ζ * , G * , k from the table generation control unit 150 and calculates (ζ * ) k G * . The scalar multiplication unit 151 outputs (ζ * ) k G * to the table generation control unit 150.

自己同型写像計算部152は、テーブル生成制御部150から、i、j、(ζを受け付け、(−1)(i)Φ(j)((ζ×G)を算出する処理部である。自己同型写像計算部152は、(−1)(i)Φ(j)((ζ×G)をテーブル生成制御部150に出力する。 The automorphic map calculation unit 152 receives i, j, (ζ * ) k G * from the table generation control unit 150, and (−1) (i) Φ (j) ((ζ * ) k × G * ). Is a processing unit for calculating. The automorphic mapping calculation unit 152 outputs (−1) (i) Φ (j) ((ζ * ) k × G * ) to the table generation control unit 150.

ところで、テーブル生成部132は、上記の処理を、未知数yの下位部分と、上位部分に対してそれぞれ実行するものとする。未知数yの下位部分は、図3に示した(r−1)/dの範囲に対応する。また、未知数yの上位部分は、図4に示したdの範囲に対応する。下位部を求める場合には、楕円曲線演算の一部に自己同型写像を適用することで、計算量を削減する。上位部を求める場合には、自己同型写像演算を用いない従来と同様の計算を行う。   By the way, the table generation part 132 shall perform said process with respect to the low-order part of the unknown y, and a high-order part, respectively. The lower part of the unknown y corresponds to the range (r−1) / d shown in FIG. Further, the upper part of the unknown y corresponds to the range of d shown in FIG. When obtaining the lower part, the amount of calculation is reduced by applying an automorphic mapping to a part of the elliptic curve calculation. When obtaining the upper part, the same calculation as before without using the automorphic mapping operation is performed.

図6の説明にもどる。テーブル比較部133は、Tbテーブル141とTgテーブル142とを比較して、
ζ −u1×xG=(−1)(i)Φ(j)(ζ v1・d1×G)
となる(u1、v1、i、j)の組を求める処理部である。テーブル比較部133は、求めた(u1、v1、i、j)の組を未知数算出部134に出力する。
Returning to the description of FIG. The table comparison unit 133 compares the Tb table 141 and the Tg table 142, and
ζ d −u 1 × x d G = (− 1) (i) Φ (j)d v1 · d1 × G)
(U1, v1, i, j) is a processing unit for obtaining a set. The table comparison unit 133 outputs the obtained set (u1, v1, i, j) to the unknown number calculation unit 134.

Tbテーブル141、Tgテーブル142は、未知数yの下位部分、上位部分に対応してそれぞれ作成される。このため、テーブル比較部133は、部分毎に、(u1、v1、i、j)の組を未知数算出部134に出力する。   The Tb table 141 and the Tg table 142 are created corresponding to the lower part and the upper part of the unknown y, respectively. For this reason, the table comparison unit 133 outputs a set of (u1, v1, i, j) to the unknown number calculation unit 134 for each part.

未知数演算部134は、テーブル比較部133から、(u1、v1、i、j)の組を取得し、秘密鍵を算出する。ここでは、未知数yの下位部分をz、秘密鍵の上位部分をwとする。   The unknown number calculation unit 134 acquires a set of (u1, v1, i, j) from the table comparison unit 133, and calculates a secret key. Here, the lower part of the unknown y is z, and the upper part of the secret key is w.

未知数演算部134は、下位部分から求められた組(u1、v1、i、j)を基にして、未知数yの下位部分をz=u1+v1・d1’’+(i・m+2・c・j)d’’により算出する。この場合には、xG=ζ Gとなるので、x=ζ となるzが求まる。 Based on the set (u1, v1, i, j) obtained from the lower part, the unknown number calculation unit 134 converts the lower part of the unknown y to z = u1 + v1 · d1 ″ + (i · m + 2 · c · j). Calculated by d ″. In this case, since the x d G = ζ d z G , a x d = ζ d z z is obtained.

未知数演算部134は、上位部分から求められた組(u2、v2)を基にして、未知数yの上位部分をw=u2+v2・d1’’により算出する。ここで、d’’=d2(従来値)とする。   The unknown number calculation unit 134 calculates the upper part of the unknown y by w = u2 + v2 · d1 ″ based on the set (u2, v2) obtained from the upper part. Here, d ″ = d2 (conventional value).

未知数演算部134は、zとwを求めた後に、y=z+w(r−1)/dにより求める。秘密鍵xとyとの間には、x=ζの関係がある。未知数演算部134は、秘密鍵xとyとの関係から、秘密鍵xを求め、求めた秘密鍵xの情報を出力部120に出力する。 The unknown number calculation unit 134 obtains z and w, and then obtains y = z + w (r−1) / d. There is a relationship of x = ζ y between the secret keys x and y. The unknown number calculation unit 134 obtains the secret key x from the relationship between the secret keys x and y, and outputs information on the obtained secret key x to the output unit 120.

制御部135は、パラメータ取得部131、テーブル生成部132、テーブル比較部133、未知数算出部134の各部に対して、上記で説明したような動作を行うように制御する処理部である。例えば、制御部135は、Tをテーブル生成部132に入力して、Tbテーブル141またはTgテーブル142を作成させる。そして、Tbテーブル141、Tgテーブル142が作成された後に、制御部135は、テーブル比較部133に指示を出し、Tbテーブル141とTgテーブル142とを比較させる。 The control unit 135 is a processing unit that controls the parameter acquisition unit 131, the table generation unit 132, the table comparison unit 133, and the unknown number calculation unit 134 to perform the operations described above. For example, the control unit 135 inputs T * to the table generation unit 132 and creates the Tb table 141 or the Tg table 142. After the Tb table 141 and the Tg table 142 are created, the control unit 135 instructs the table comparison unit 133 to compare the Tb table 141 with the Tg table 142.

記憶部140は、Tbテーブル141およびTgテーブル142を記憶する記憶部である。Tbテーブル141のデータ構造は、図9のものとなる。Tgテーブル142のデータ構造は、図10のものとなる。   The storage unit 140 is a storage unit that stores the Tb table 141 and the Tg table 142. The data structure of the Tb table 141 is as shown in FIG. The data structure of the Tg table 142 is as shown in FIG.

次に、本実施例1にかかる処理部130の処理手順について説明する。図12は、本実施例1にかかる処理部の処理手順を示すフローチャートである。例えば、図12に示す処理は、入力部110から、楕円曲線離散対数問題を解く旨の指示を受け付けた場合に実行される。図12に示すように処理部130は、秘密鍵x=ζとし、yを上位部分と下位部分に分割する(ステップS101)。 Next, a processing procedure of the processing unit 130 according to the first embodiment will be described. FIG. 12 is a flowchart of the process procedure of the processing unit according to the first embodiment. For example, the process illustrated in FIG. 12 is executed when an instruction to solve the elliptic curve discrete logarithm problem is received from the input unit 110. As illustrated in FIG. 12, the processing unit 130 sets the secret key x = ζ y and divides y into an upper part and a lower part (step S101).

処理部130は、下位部分に対してBaby-Stepを実行し、ζ −u1×xG{0≦u1<d1’’}となるTbテーブル141を作成する(ステップS102)。処理部130は、下位部分に対してGiant-Stepを実行し、ζ v1・d1×G{0≦v1<d1’’}と、各点の自己同型写像(−1)(i)Φ(j)(ζ v1・d1×G)を算出し、全ての点からなるTgテーブル142を作成する(ステップS103)。 The processing unit 130 executes Baby-Step on the lower part, and creates the Tb table 141 that satisfies ζ d −u1 × x d G {0 ≦ u1 <d1 ″} (step S102). The processing unit 130 executes Giant-Step on the lower part, and ζ d v1 · d1 × G {0 ≦ v1 <d1 ″}, and an automorphism map of each point (−1) (i) Φ ( j)d v1 · d1 × G) is calculated, and a Tg table 142 composed of all points is created (step S103).

処理部130は、Tbテーブル141とTgテーブル142とを比較し、ζ −u1×xG=(−1)(i)Φ(j)(ζ v1・d1×G)となる(u1、v1、i、j)の組を算出する(ステップS104)。処理部130は、z=u1+v1・d1’’+(i・m+2・c・j)d’’により、yの下位部分zを算出する(ステップS105)。 The processing unit 130 compares the Tb table 141 and the Tg table 142 to obtain ζ d −u 1 × x d G = (− 1) (i) Φ (j)d v1 · d1 × G) (u1 , V1, i, j) is calculated (step S104). The processing unit 130 calculates the lower part z of y by z = u1 + v1 · d1 ″ + (i · m + 2 · c · j) d ″ (step S105).

処理部130は、上位部分に対してBaby−Stepを実行し、ζ−u2(r−1)/r×xG{0≦u2<d1’’}となるTbテーブル141を作成する(ステップS106)。処理部130は、上位部分に対してGiant−Stepを実行し、ζk1ζr2・d2・(r−1)/r×G{0≦v2<d’’}となるTgを計算し、全ての点からなるTgテーブルを作成する(ステップS107)。 The processing unit 130 executes Baby-Step on the upper part, and creates the Tb table 141 that satisfies ζ −u2 (r−1) / r × xG {0 ≦ u2 <d1 ″} (step S106). . The processing unit 130 executes Giant-Step on the upper part, calculates Tg such that ζ k1 ζ r2 · d2 · (r−1) / r × G {0 ≦ v2 <d ″}, A Tg table consisting of the points is created (step S107).

処理部130は、TbテーブルとTgテーブルとを比較し、ζ−u2(r−1)/r×xG=、ζk1ζr2・d2・(r−1)/r×Gとなる(u2、v2)の組を算出する(ステップS108)。処理部130は、w=y=u2+v2d’’により、yの上位部分wを算出する(ステップS109)。なお、d’’は、d1/2の値を切り上げたものである。 The processing unit 130 compares the Tb table and the Tg table, and becomes ζ −u2 (r−1) / r × xG =, ζ k1 ζ r2 · d2 · (r−1) / r × G (u2, A set of v2) is calculated (step S108). The processing unit 130 calculates the upper part w of y by w = y H = u2 + v2d ″ (step S109). D ″ is obtained by rounding up the value of d 1/2 .

処理部130は、y=z+w(r−1)/dにより、yの値を算出する(ステップS110)。処理部130は、x=ζの関係からxを求め(ステップS111)、秘密鍵xを出力する(ステップS112)。 The processing unit 130 calculates the value of y by y = z + w (r−1) / d (step S110). The processing unit 130 obtains x from the relationship x = ζ y (step S111), and outputs the secret key x (step S112).

次に、本実施例1にかかるテーブル生成部132がTbテーブル141およびTgテーブル142を生成する処理手順について説明する。図13は、本実施例1にかかるテーブル生成部の処理手順を示すフローチャートである。   Next, a process procedure in which the table generation unit 132 according to the first embodiment generates the Tb table 141 and the Tg table 142 will be described. FIG. 13 is a flowchart of the process procedure of the table generation unit according to the first embodiment.

図13に示すように、テーブル生成部132は、パラメータd1’’、ζ、G、m、Tを取得し(ステップS201)、kを初期値に設定する(ステップS202)。テーブル生成部132は、スカラ倍計算(ζを実行し(ステップS203)、{k、(ζ}を記憶部140に出力する(ステップS204)。 As shown in FIG. 13, the table generating unit 132 acquires parameters d1 ″, ζ * , G * , m, and T * (step S201), and sets k to an initial value (step S202). The table generation unit 132 executes scalar multiplication (ζ * ) k G * (step S203), and outputs {k, (ζ * ) k G * } to the storage unit 140 (step S204).

テーブル生成部132は、i=0〜1、j=0〜m−1に対して、自己同型写像計算(−1)(i)Φ(j)((ζ×G)を実行する(ステップS205)。テーブル生成部132は、{k、i、j、(−1)(i)Φ(j)(ζ×G}を記憶部140に出力する(ステップS206)。 The table generation unit 132 performs automorphism mapping calculation (−1) (i) Φ (j) ((ζ * ) k × G * ) for i = 0 to 1, j = 0 to m−1. (Step S205). The table generation unit 132 outputs {k, i, j, (−1) (i) Φ (j)* ) k × G * } to the storage unit 140 (step S206).

テーブル生成部132は、k=k+1を算出し(ステップS207)、kの値がd’’−1の値よりも大きいか否かを判定する(ステップS208)。テーブル生成部132は、kの値がd’’−1の値以下の場合には(ステップS208,No)、ステップS203に移行する。一方、テーブル生成部132は、kの値がd’’−1の値より大きい場合には(ステップS208,Yes)、処理を終了する。   The table generating unit 132 calculates k = k + 1 (step S207), and determines whether the value of k is larger than the value of d ″ −1 (step S208). If the value of k is equal to or less than the value of d ″ −1 (No at Step S208), the table generating unit 132 proceeds to Step S203. On the other hand, when the value of k is larger than the value of d ″ −1 (step S208, Yes), the table generating unit 132 ends the process.

次に、本実施例1にかかる暗号解読装置100の効果について説明する。本実施例1にかかる暗号解読装置100は、Giant-Stepを実行して、Tbテーブル141を生成する場合に、楕円曲線演算の一部に、自己同型写像を適用することで、楕円曲線演算を実行すべき範囲を削減することができる。下位部分の計算量を、従来のCheon解析法と比較して、1/(2m)1/2に削減することができる。例えば、有限体GF(3m)上の楕円曲線の場合には、m=127であるため、従来のCheon解析法と比較して、下位部分の計算量が(1/16)1/2=1/4程度となる。 Next, effects of the decryption apparatus 100 according to the first embodiment will be described. When the decryption apparatus 100 according to the first embodiment executes Giant-Step to generate the Tb table 141, the decryption apparatus 100 performs the elliptic curve calculation by applying the automorphism mapping to a part of the elliptic curve calculation. The range to be executed can be reduced. Compared with the conventional Cheon analysis method, the calculation amount of the lower part can be reduced to 1 / (2 m) 1/2 . For example, in the case of an elliptic curve on a finite field GF (3 m), since m = 127, the calculation amount of the lower part is (1/16) 1/2 = 1 as compared with the conventional Cheon analysis method. / 4 or so.

ところで、図6に示した暗号鍵解読装置100の構成は一例であり、暗号鍵解読装置100は、必ずしも図6に示した各処理部を全て有していなくてもよい。例えば、暗号鍵解読装置100は、分割部と、第1演算部と、第2演算部と、暗号鍵解析部とを有していればよい。   By the way, the configuration of the encryption key decryption apparatus 100 shown in FIG. 6 is an example, and the encryption key decryption apparatus 100 does not necessarily have all the processing units shown in FIG. For example, the encryption key decryption apparatus 100 only needs to have a dividing unit, a first calculation unit, a second calculation unit, and an encryption key analysis unit.

このうち分割部は、楕円曲線離散対数問題の解を楕円曲線上の点に対応する生成元のべき乗で示し、前記生成元のべき乗部分を第1部分と第2部分に分割する処理部である。第1演算部は、第1部分の値を所定の値域で変化させた場合に生成元をべき乗することで算出される値を第1テーブルに格納する処理部である。第2演算部は、第2部分の値を所定の値域で変化させた場合に前記生成元をべき乗することで算出される値と、前記生成元のべき乗部分の一部に自己同型写像を適用した値とを組あわせた値を第2テーブルに格納する処理部である。分割部、第1演算部、第2演算部は、テーブル生成部132に対応する。   Of these, the dividing unit is a processing unit that indicates a solution of the elliptic curve discrete logarithm problem by a power of a generator corresponding to a point on the elliptic curve, and divides the power part of the generator into a first part and a second part. . The first calculation unit is a processing unit that stores, in the first table, a value calculated by raising the generation source to a power when the value of the first part is changed in a predetermined range. The second calculation unit applies an automorphism mapping to a value calculated by raising the power of the generator when the value of the second part is changed in a predetermined range, and a part of the power of the generator And a processing unit that stores a value that is a combination of the calculated value and the second table in the second table. The dividing unit, the first calculation unit, and the second calculation unit correspond to the table generation unit 132.

暗号鍵解析部は、第1テーブルに格納された値と第2テーブルに格納された値とを比較し、一致した値に基づいて前記楕円曲線離散対数問題の解を算出することで暗号鍵を解析する処理部である。この暗号鍵解析部は、テーブル比較部133、未知数算出部134に対応する。   The encryption key analysis unit compares the value stored in the first table with the value stored in the second table, and calculates the encryption key by calculating a solution of the elliptic curve discrete logarithm problem based on the matched value. A processing unit to analyze. This encryption key analysis unit corresponds to the table comparison unit 133 and the unknown number calculation unit 134.

ところで、上記の実施例1では、従来のCheon解析法と比較して、計算量を大幅に削減できるものの、Tgテーブル242のデータ量が従来のものと比較して約8倍に増えてしまう。以下の実施例2では、データ量が増加させず、計算量を削減することを可能にする暗号鍵解読装置について説明する。   By the way, in the first embodiment, although the calculation amount can be greatly reduced as compared with the conventional Cheon analysis method, the data amount of the Tg table 242 increases about eight times as compared with the conventional one. In the second embodiment described below, an encryption key decryption device that can reduce the calculation amount without increasing the data amount will be described.

図14は、本実施例2にかかる暗号鍵解読装置の構成を示す図である。図14に示すように、この暗号鍵解読装置200は、入力部210、出力部220、処理部230、記憶部240を有する。   FIG. 14 is a diagram illustrating the configuration of the encryption key decrypting apparatus according to the second embodiment. As illustrated in FIG. 14, the encryption key decryption apparatus 200 includes an input unit 210, an output unit 220, a processing unit 230, and a storage unit 240.

このうち、入力部210、出力部220に関する説明は、図1に示した入力部110、出力部120に関する説明と同様である。   Among these, the description regarding the input unit 210 and the output unit 220 is the same as the description regarding the input unit 110 and the output unit 120 illustrated in FIG. 1.

処理部230は、パラメータ取得部231、テーブル生成部232、テーブル比較部233、未知数算出部234、制御部235を有する。   The processing unit 230 includes a parameter acquisition unit 231, a table generation unit 232, a table comparison unit 233, an unknown number calculation unit 234, and a control unit 235.

パラメータ取得部231は、入力部210からパラメータを取得し、取得したパラメータをテーブル生成部232に出力する処理部である。パラメータは、実施例1と同様にして、G、ζ、m、d’’が含まれる。なお、パラメータ取得部231は、パラメータを記憶部240に記憶させておき、ユーザからの指示を受け付けた場合に、記憶部240に記憶されたパラメータを取得してもよい。 The parameter acquisition unit 231 is a processing unit that acquires parameters from the input unit 210 and outputs the acquired parameters to the table generation unit 232. The parameters include G * , ζ * , m, and d ″ as in the first embodiment. The parameter acquisition unit 231 may store the parameters in the storage unit 240 and acquire the parameters stored in the storage unit 240 when receiving an instruction from the user.

テーブル生成部232は、Cheon解析法の要領で、Baby-StepおよびGiant-Stepを実行し、Tbテーブル241およびTgテーブル242を生成する処理部である。特に、テーブル生成部232は、Giant-Stepを実行してTbテーブル241を作成する場合に、楕円曲線演算の一部に、自己同型写像を適用することで、計算量の削減を図る。   The table generation unit 232 is a processing unit that executes Baby-Step and Giant-Step and generates the Tb table 241 and the Tg table 242 in the manner of the Cheon analysis method. In particular, when the table generation unit 232 executes Giant-Step to create the Tb table 241, the table generation unit 232 applies the automorphism mapping to a part of the elliptic curve calculation, thereby reducing the amount of calculation.

ところで、実施例1のテーブル生成部132は、Baby-Stepを実行して、u1の値を「0〜d1’’」まで変化させながら、「ζ −u1×xG」を順次算出していた。また、Giant-Stepを実行して、v1の値を「0〜d1’’」まで変化させながら、「ζ v1・d1×G」を順次算出していた。つまり、実施例1では、u1の値域と、v1の値域は「0〜d1’’」で共通であった。 By the way, the table generation unit 132 according to the first embodiment executes Baby-Step, and sequentially calculates “ζ d −u1 × x d G” while changing the value of u1 from “0 to d1 ″”. It was. Also, by executing the Giant-Step and changing the value of v1 from “0 to d1 ″”, “ζ d v1 · d1 × G” was sequentially calculated. That is, in the first embodiment, the value range of u1 and the value range of v1 are “0 to d1 ″” in common.

これに対して、テーブル生成部232は、u1の値域と、v1の値域とを不均一に設定する。具体的には、テーブル生成部232は、Baby-Stepを実行して、u1の値を「0〜d1」まで変化させながら、「ζ −u1×xG」を順次算出する。ここで、d1=((r−1)/d)1/2である。また、テーブル生成部232は、Giant-Stepを実行して、v1の値を「0〜d1」まで変化させながら、「ζ v1・d1×G」を順次算出する。ここで、d1=((r−1)/d/2m)/d1)である。 On the other hand, the table generation unit 232 sets the value range of u1 and the value range of v1 non-uniformly. Specifically, the table generation unit 232 executes Baby-Step and sequentially calculates “ζ d −u1 × x d G” while changing the value of u1 from “0 to d1 b ”. Here, d1 b = ((r−1) / d) 1/2 . Further, the table generation unit 232 executes Giant-Step to sequentially calculate “ζ d v1 · d1 × G” while changing the value of v1 to “0 to d1 g ”. Here, d1 g = ((r−1) / d / 2m) / d1 b ).

Baby-Stepを実行する場合のu1の値域0〜d1は、従来のCheon解析法の値域と同じであり、アルゴリズムも共通することから、Tbテーブル241の計算量およびデータ量は、従来のものと同じになる。これに対して、Giant-Stepを実行する場合のv1の値域は、0〜d1であり、d1=d1/2mの関係があるため、従来のものと比較して、計算量を約1/2に削減することができる。また、Tgテーブル242のデータ量は従来のCheon解析法と同じになる。つまり、本実施例2のテーブル生成部232は、従来のCheon解析法と比較した場合には、データ量を増加させることなく、計算量を1/2に削減することができる。 Since the range 0 to d1 b of u1 when executing Baby-Step is the same as the range of the conventional Cheon analysis method and the algorithm is also common, the calculation amount and the data amount of the Tb table 241 are the conventional ones. Will be the same. In contrast, the range of the v1 when running Giant-Step is 0~D1 g, since there is a relation of d1 g = d1 / 2m, compared with the conventional, the calculation amount of about 1 / 2. The data amount of the Tg table 242 is the same as that of the conventional Cheon analysis method. That is, the table generation unit 232 according to the second embodiment can reduce the calculation amount to ½ without increasing the data amount when compared with the conventional Cheon analysis method.

テーブル生成部が、Baby-Stepを実行する場合の処理について説明する。テーブル生成部232は、u1の値を変化させながら、「ζ −u1×xG」を順次算出することで、Tbテーブル241を作成する。なお、u1の値域は上記のように「0≦u1<d1」とする。 Processing when the table generation unit executes Baby-Step will be described. The table generation unit 232 generates the Tb table 241 by sequentially calculating “ζ d −u 1 × x d G” while changing the value of u 1. Note that the value range of u1 is “0 ≦ u1 <d1 b ” as described above.

図15は、本実施例2にかかるTbテーブルのデータ構造の一例を示す図である。図15に示すように、このTbテーブル241は、kの値と、kの値に応じたζ −k×xGの点とを対応付けて記憶する。Tbテーブル241のkは、u1に対応する値である。 FIG. 15 is a diagram illustrating an example of the data structure of the Tb table according to the second embodiment. As illustrated in FIG. 15, the Tb table 241 stores a value of k in association with a point of ζ d −k × x d G corresponding to the value of k. K in the Tb table 241 is a value corresponding to u1.

テーブル生成部232が、Giang-Stepを実行する場合の処理について説明する。テーブル生成部232は、v1、i、jの値を順次変化させながら、「

Figure 0005640531
」を順次算出することで、Tgテーブル242を作成する。なお、v1の値域を「0≦v1<d1」とする。iの値域を「0、1」とする。jの値域を「0≦j<m−1」とする。 Processing when the table generation unit 232 executes Giang-Step will be described. The table generation unit 232 changes the values of v1, i, j sequentially,
Figure 0005640531
”Are sequentially calculated to create the Tg table 242. Note that the value range of v1 is “0 ≦ v1 <d1 g ”. The range of i is “0, 1”. The range of j is “0 ≦ j <m−1”.

図16は、本実施例2にかかるTgテーブルのデータ構造の一例を示す図である。図16に示すように、このTgテーブル242は、k、i、jの値と、k、i、jの値に応じた「

Figure 0005640531
」の点とを対応付けて記憶する。Tgテーブル242でのkは、v1に対応する値である。 FIG. 16 is a diagram illustrating an example of the data structure of the Tg table according to the second embodiment. As shown in FIG. 16, the Tg table 242 includes “k”, “i”, “j” values, and “k”, “i”, “j” values.
Figure 0005640531
Are stored in association with each other. K in the Tg table 242 is a value corresponding to v1.

ここで、テーブル生成部232の構成について説明する。図17は、本実施例2にかかるテーブル生成部の構成を示す図である。図17に示すように、テーブル生成部232は、テーブル生成制御部250、スカラ倍算部251、自己同型写像計算部252を有する。   Here, the configuration of the table generation unit 232 will be described. FIG. 17 is a diagram illustrating the configuration of the table generation unit according to the second embodiment. As illustrated in FIG. 17, the table generation unit 232 includes a table generation control unit 250, a scalar multiplication unit 251, and an automorphic mapping calculation unit 252.

テーブル生成制御部250は、パラメータd1’’、ζ、G、m、Tを取得する。テーブル生成制御部250は、Tに応じて、Tbテーブル241またはTgテーブル242を生成すると判定する。Tは、Tbテーブル241を作成するのか、Tgテーブル242を作成するのかを識別する情報である。テーブル生成制御部250は、制御部235からTを取得する。 The table generation control unit 250 acquires parameters d1 ″, ζ * , G * , m, and T * . The table generation control unit 250 determines to generate the Tb table 241 or the Tg table 242 according to T * . T * is information for identifying whether the Tb table 241 is created or the Tg table 242 is created. The table generation control unit 250 acquires T * from the control unit 235.

テーブル生成制御部250が、Tbテーブル241を生成する場合について説明する。テーブル生成制御部250は、スカラ倍算部251に、ζ、G、kを順次入力し、スカラ倍算部251から(ζを順次取得する。Tbテーブル241を生成する場合のkは、上記u1に対応する。テーブル生成制御部250は、kと(ζとを対応付けて、Tbテーブル241に登録する。 A case where the table generation control unit 250 generates the Tb table 241 will be described. The table generation control unit 250 sequentially inputs ζ * , G * , and k to the scalar multiplication unit 251 and sequentially acquires (ζ * ) k G * from the scalar multiplication unit 251. K in the case of generating the Tb table 241 corresponds to the above u1. The table generation control unit 250 associates k with (ζ * ) k G * and registers them in the Tb table 241.

テーブル生成制御部250が、Tgテーブル242を生成する場合について説明する。テーブル生成制御部250は、ζ、G、kをスカラ倍算部251に順次入力し、スカラ倍算部251から(ζを順次取得する。Tgテーブル242を生成する場合のkは、上記v1・d1に対応する。テーブル生成制御部250は、(ζを取得した後に、i、j、(ζを自己同型写像計算部252に順次入力し、自己同型写像計算部252から(−1)(i)Φ(j)((ζ×G)を取得する。テーブル生成制御部250は、iとjとkと(−1)(i)Φ(j)((ζ×G)とを対応付けて、Tgテーブル242に登録する。 A case where the table generation control unit 250 generates the Tg table 242 will be described. The table generation control unit 250 sequentially inputs ζ * , G * , and k to the scalar multiplication unit 251 and sequentially acquires (ζ * ) k G * from the scalar multiplication unit 251. K in the case of generating the Tg table 242 corresponds to the above v1 · d1 b . After acquiring (ζ * ) k G * , the table generation control unit 250 sequentially inputs i, j, (ζ * ) k G * to the automorphic mapping calculation unit 252, and from the automorphic mapping calculation unit 252 ( -1) (i) Φ (j) ((ζ * ) k × G * ) is acquired. The table generation control unit 250 associates i, j, k, and (−1) (i) Φ (j) ((ζ * ) k × G * ) with each other and registers them in the Tg table 242.

スカラ倍算部251は、テーブル生成制御部250から、ζ、G、kを受け付け、(ζを算出する処理部である。スカラ倍算部251は、(ζをテーブル生成制御部250に出力する。 The scalar multiplication unit 251 is a processing unit that receives ζ * , G * , k from the table generation control unit 250 and calculates (ζ * ) k G * . The scalar multiplication unit 251 outputs (ζ * ) k G * to the table generation control unit 250.

自己同型写像計算部252は、テーブル生成制御部250から、i、j、(ζを受け付け、(−1)(i)Φ(j)((ζ×G)を算出する処理部である。自己同型写像計算部252は、(−1)(i)Φ(j)((ζ×G)をテーブル生成制御部250に出力する。 The automorphic map calculation unit 252 receives i, j, (ζ * ) k G * from the table generation control unit 250, and (−1) (i) Φ (j) ((ζ * ) k × G * ). Is a processing unit for calculating. The automorphic mapping calculation unit 252 outputs (−1) (i) Φ (j) ((ζ * ) k × G * ) to the table generation control unit 250.

ところで、テーブル生成部232は、上記の処理を、未知数yの下位部分と、上位部分に対してそれぞれ実行するものとする。未知数yの下位部分は、図3に示した(r−1)/dの範囲に対応する。また、未知数yの上位部分は、図4に示したdの範囲に対応する。いずれの場合も、Giant-Stepを実行する場合に、楕円曲線演算の一部に自己同型写像を適用することで、計算量を削減する。   By the way, the table generation part 232 shall perform said process with respect to the low-order part of the unknown y, and a high-order part, respectively. The lower part of the unknown y corresponds to the range (r−1) / d shown in FIG. Further, the upper part of the unknown y corresponds to the range of d shown in FIG. In either case, when Giant-Step is executed, the calculation amount is reduced by applying the automorphism mapping to a part of the elliptic curve calculation.

図14の説明に戻る。テーブル比較部233は、Tbテーブル241とTgテーブル242とを比較して、

Figure 0005640531
となる(u1、v1、i、j)の組を求める処理部である。テーブル比較部233は、求めた(u1、v1、i、j)の組を未知数算出部234に出力する。 Returning to the description of FIG. The table comparison unit 233 compares the Tb table 241 and the Tg table 242, and
Figure 0005640531
(U1, v1, i, j) is a processing unit for obtaining a set. The table comparison unit 233 outputs the obtained (u1, v1, i, j) set to the unknown number calculation unit 234.

Tbテーブル241、Tgテーブル242は、未知数yの下位部分、上位部分に対応してそれぞれ作成される。このため、テーブル比較部233は、部分毎に、(u1、v1、i、j)の組を未知数算出部234に出力する。   The Tb table 241 and the Tg table 242 are created corresponding to the lower part and the upper part of the unknown y, respectively. For this reason, the table comparison unit 233 outputs a set of (u1, v1, i, j) to the unknown number calculation unit 234 for each part.

未知数演算部234は、テーブル比較部233から、(u1、v1、i、j)の組を取得し、秘密鍵を算出する。ここでは、未知数yの下位部分をz、秘密鍵の上位部分をwとする。   The unknown number calculation unit 234 acquires a set of (u1, v1, i, j) from the table comparison unit 233, and calculates a secret key. Here, the lower part of the unknown y is z, and the upper part of the secret key is w.

未知数演算部234は、下位部分から求められた組(u1、v1、i、j)を基にして、未知数yの下位部分をz=u1+v1・d1+(i・m+2・c・j)d’’により算出する。この場合には、xG=ζ Gとなるので、x=ζ となるzが求まる。 Based on the set (u1, v1, i, j) obtained from the lower part, the unknown number calculation unit 234 converts the lower part of the unknown y to z = u1 + v1 · d1 b + (i · m + 2 · c · j) d. Calculate with ''. In this case, since the x d G = ζ d z G , a x d = ζ d z z is obtained.

未知数演算部234は、上位部分から求められた組(u2、v2)を基にして、未知数yの上位部分をw=u2+v2・d’’により算出する。   The unknown number calculation unit 234 calculates the upper part of the unknown y by w = u2 + v2 · d ″ based on the set (u2, v2) obtained from the upper part.

未知数演算部234は、zとwを求めた後に、未知数yをy=z+w(r−1)/dにより求める。秘密鍵xとyとの間には、x=ζの関係がある。未知数演算部234は、秘密鍵xとyとの関係から、秘密鍵xを求め、求めた秘密鍵xの情報を出力部220に出力する。 The unknown number calculation unit 234 obtains the unknown number y by y = z + w (r−1) / d after obtaining z and w. There is a relationship of x = ζ y between the secret keys x and y. The unknown number calculation unit 234 obtains the secret key x from the relationship between the secret keys x and y, and outputs information on the obtained secret key x to the output unit 220.

制御部235は、パラメータ取得部231、テーブル生成部232、テーブル比較部233、未知数算出部234の各部に対して、上記で説明したような動作を行うように制御する処理部である。例えば、制御部235は、Tをテーブル生成部232に入力して、Tbテーブル241またはTgテーブル242を作成させる。そして、Tbテーブル241、Tbテーブル242が作成された後に、制御部235は、テーブル比較部233に指示を出し、Tbテーブル241とTgテーブル242とを比較させる。 The control unit 235 is a processing unit that controls the parameter acquisition unit 231, the table generation unit 232, the table comparison unit 233, and the unknown quantity calculation unit 234 to perform the operations described above. For example, the control unit 235 inputs T * to the table generation unit 232 to create the Tb table 241 or the Tg table 242. After the Tb table 241 and the Tb table 242 are created, the control unit 235 instructs the table comparison unit 233 to compare the Tb table 241 and the Tg table 242.

記憶部240は、Tbテーブル241およびTgテーブル242を記憶する記憶部である。Tbテーブル241のデータ構造は、図15のものとなる。Tgテーブル242のデータ構造は、図16のものとなる。   The storage unit 240 is a storage unit that stores the Tb table 241 and the Tg table 242. The data structure of the Tb table 241 is as shown in FIG. The data structure of the Tg table 242 is as shown in FIG.

次に、本実施例2にかかる処理部230の処理手順について説明する。図18は、本実施例2にかかる処理部の処理手順を示すフローチャートである。図18に示す処理は、入力部210から、楕円曲線離散対数問題を解く旨の指示を受け付けた場合に実行される。   Next, a processing procedure of the processing unit 230 according to the second embodiment will be described. FIG. 18 is a flowchart of the process procedure of the processing unit according to the second embodiment. The process shown in FIG. 18 is executed when an instruction to solve the elliptic curve discrete logarithm problem is received from the input unit 210.

図18に示すように処理部230は、秘密鍵x=ζとし、yを上位部分と下位部分に分割する(ステップS301)。処理部230は、下位部分に対してBaby-Stepを実行し、ζ −u1×xG{0≦u1<d1}となるTbテーブル241を作成する(ステップS302)。処理部230は、下位部分に対してGiant-Stepを実行し、「

Figure 0005640531
」{0≦v1<d1}と、各点の自己同型写像「
Figure 0005640531
」を算出し、全ての点からなるTgテーブル142を作成する(ステップS303)。 As illustrated in FIG. 18, the processing unit 230 sets the secret key x = ζ y and divides y into an upper part and a lower part (step S301). The processing unit 230 executes Baby-Step on the lower part and creates a Tb table 241 that satisfies ζ d −u1 × x d G {0 ≦ u1 <d1 b } (step S302). The processing unit 230 executes Giant-Step on the lower part, and “
Figure 0005640531
{0 ≦ v1 <d1 b } and the automorphism map of each point “
Figure 0005640531
Is calculated and a Tg table 142 composed of all points is created (step S303).

処理部230は、Tbテーブル241とTgテーブル242とを比較し、「

Figure 0005640531
」となる(u1、v1、i、j)の組を算出する(ステップS304)。処理部230は、z=u1+v1・d1+(i・m+2・c・j)d’’により、yの下位部分zを算出する(ステップS305)。 The processing unit 230 compares the Tb table 241 and the Tg table 242, and determines “
Figure 0005640531
(U1, v1, i, j) is calculated (step S304). The processing unit 230 calculates the lower part z of y by z = u1 + v1 · d1 b + (i · m + 2 · c · j) d ″ (step S305).

処理部230は、上位部分に対してBaby−Stepを実行し、ζ−u2(r−1)/r×xG{0≦u2<d1’’}となるTbテーブル141を作成する(ステップS306)。処理部230は、上位部分に対してGiant−Stepを実行し、ζk1ζr2・d2・(r−1)/r×G{0≦v2<d’’}となるTgを計算し、全ての点からなるTgテーブルを作成する(ステップS307)。 The processing unit 230 executes Baby-Step on the upper part, and creates the Tb table 141 that satisfies ζ −u2 (r−1) / r × xG {0 ≦ u2 <d1 ″} (step S306). . The processing unit 230 executes Giant-Step on the upper part, calculates Tg such that ζ k1 ζ r2 · d2 · (r−1) / r × G {0 ≦ v2 <d ″}, A Tg table consisting of the points is created (step S307).

処理部230は、TbテーブルとTgテーブルとを比較し、ζ−u2(r−1)/r×xG=、ζk1ζr2・d2・(r−1)/r×Gとなる(u2、v2)の組を算出する(ステップS308)。処理部230は、w=y=u2+v2d’’により、yの上位部分wを算出する(ステップS309)。 The processing unit 230 compares the Tb table with the Tg table, and becomes ζ −u2 (r−1) / r × xG =, ζ k1 ζ r2 · d2 · (r−1) / r × G (u2, A set of v2) is calculated (step S308). The processing unit 230 calculates the upper part w of y by w = y H = u2 + v2d ″ (step S309).

処理部230は、y=z+w(r−1)/dにより、yの値を算出する(ステップS310)。処理部230は、x=ζの関係からxを求め(ステップS311)、秘密鍵xを出力する(ステップS312)。 The processing unit 230 calculates the value of y by y = z + w (r−1) / d (step S310). The processing unit 230 obtains x from the relationship x = ζ y (step S311), and outputs the secret key x (step S312).

次に、本実施例2にかかる暗号解読装置200の効果について説明する。本実施例2にかかる暗号解読装置200は、Giant-Stepを実行して、Tbテーブル241を生成する場合に、楕円曲線演算の一部に、自己同型写像を適用する。更に、暗号解読装置200は、Baby-Stepを実行する場合のu1の値域と、Giant-Stepを実行する場合のv1の値域とを不均一に設定する。楕円曲線演算に自己同型写像を適応すると、自己同型写像「(−1)(i)Φ(j)」と、「

Figure 0005640531
」との全ての組み合わせをTgテーブル242に格納する必要がある。このため、
Figure 0005640531
のv1の値域を制限してやれば、「
Figure 0005640531
」の演算結果の数が減るので、結果として、自己同型写像「(−1)(i)Φ(j)」と、「
Figure 0005640531
」との全ての組み合わせ数が減り、Tgテーブル242のデータ量を削減することができる。したがって、本実施例2にかかる暗号解読装置200によれば、従来のCheon解析法と比較して、テーブル量を増加させることなく、計算量を削減することができる。 Next, effects of the decryption apparatus 200 according to the second embodiment will be described. When the decryption apparatus 200 according to the second embodiment executes Giant-Step to generate the Tb table 241, the decryption apparatus 200 applies the automorphism mapping to a part of the elliptic curve calculation. Furthermore, the decryption apparatus 200 sets the value range of u1 when executing Baby-Step and the value range of v1 when executing Giant-Step to be non-uniform. When the automorphism map is applied to the elliptic curve calculation, the automorphism map “(−1) (i) Φ (j) ” and “
Figure 0005640531
All combinations with “” must be stored in the Tg table 242. For this reason,
Figure 0005640531
If the range of v1 is limited,
Figure 0005640531
As a result, the automorphism map “(−1) (i) Φ (j) ” and “
Figure 0005640531
”And the data amount of the Tg table 242 can be reduced. Therefore, according to the cryptanalysis apparatus 200 according to the second embodiment, the amount of calculation can be reduced without increasing the table amount, as compared with the conventional Cheon analysis method.

実施例3にかかる暗号鍵解読装置について説明する。上記実施例1、2では、Giant-Step側に自己同型写像を適用していたが、本実施例3では、Baby-Step側およびGiant-Step側に自己同型写像を適用することで、計算量およびテーブル量を削減する。   An encryption key decrypting apparatus according to a third embodiment will be described. In the first and second embodiments, the automorphism map is applied to the Giant-Step side. However, in the third embodiment, by applying the automorphism map to the Baby-Step side and the Giant-Step side, the calculation amount is increased. And reduce table volume.

図19は、本実施例3にかかる暗号鍵解読装置の構成を示す図である。図19に示すように、この暗号鍵解読装置300は、入力部310、出力部320、処理部330、記憶部340を有する。   FIG. 19 is a diagram illustrating the configuration of the encryption key decrypting apparatus according to the third embodiment. As illustrated in FIG. 19, the encryption key decryption apparatus 300 includes an input unit 310, an output unit 320, a processing unit 330, and a storage unit 340.

このうち、入力部310、出力部320に関する説明は、図1に示した入力部110、出力部120に関する説明と同様である。   Among these, the description regarding the input part 310 and the output part 320 is the same as the description regarding the input part 110 and the output part 120 shown in FIG.

処理部330は、パラメータ取得部331、テーブル生成部332、テーブル比較部333、未知数算出部334、制御部335を有する。   The processing unit 330 includes a parameter acquisition unit 331, a table generation unit 332, a table comparison unit 333, an unknown number calculation unit 334, and a control unit 335.

パラメータ取得部331は、入力部310からパラメータを取得し、取得したパラメータをテーブル生成部332に出力する処理部である。パラメータは、実施例1と同様にして、G、ζ、m、d’’が含まれる。なお、パラメータ取得部331は、パラメータを記憶部340に記憶させておき、ユーザからの指示を受け付けた場合に、記憶部340に記憶されたパラメータを取得してもよい。 The parameter acquisition unit 331 is a processing unit that acquires parameters from the input unit 310 and outputs the acquired parameters to the table generation unit 332. The parameters include G * , ζ * , m, and d ″ as in the first embodiment. The parameter acquisition unit 331 may store the parameters in the storage unit 340 and acquire the parameters stored in the storage unit 340 when receiving an instruction from the user.

テーブル生成部332は、Cheon解析法の要領で、Baby-StepおよびGiant-Stepを実行し、Tbテーブル341およびTgテーブル342を生成する処理部である。特に、テーブル生成部332は、Baby-StepおよびGiant-Step場合に、楕円曲線演算の一部に、自己同型写像を適用することで、計算量の削減を図る。   The table generation unit 332 is a processing unit that executes Baby-Step and Giant-Step in the manner of the Cheon analysis method, and generates a Tb table 341 and a Tg table 342. In particular, the table generation unit 332 reduces the amount of calculation by applying an automorphic mapping to a part of the elliptic curve calculation in the case of Baby-Step and Giant-Step.

図20は、本実施例3にかかるテーブル生成部の処理の概要を示す図である。図20では、検索範囲を上位dと下位(r−1)/dに分割する場合を示している。テーブル生成部332が(r−1)/dの範囲に対してBaby-Stepを実行する場合には、範囲30aに対して、楕円曲線演算を実行し、範囲40bに対して自己同型写像を実行する。ここで、範囲40bは、自己同型写像「(−1)(i)Φ(j」」の上位部分に対応する。テーブル生成部332は、自己同型写像の結果と楕円曲線演算の結果とを組あわせた値を、Tbテーブル341に格納する。 FIG. 20 is a diagram illustrating an overview of the process of the table generation unit according to the third embodiment. FIG. 20 shows a case where the search range is divided into upper d and lower (r−1) / d. When the table generation unit 332 executes Baby-Step for the range of (r−1) / d, the elliptic curve calculation is executed for the range 30a and the automorphism mapping is executed for the range 40b. To do. Here, the range 40b corresponds to the upper part of the automorphism map “(−1) (i) Φ (j” ) . ”The table generation unit 332 combines the result of the automorphism map and the result of the elliptic curve calculation. The combined value is stored in the Tb table 341.

テーブル生成部332が(r−1)/dの範囲に対してGiant-Stepを実行する場合には、範囲30bに対して、楕円曲線演算を実行し、範囲40aに対して自己同型写像を実行する。ここで、範囲40bは、自己同型写像「(−1)Φ」の下位部分に対応する。テーブル生成部332は、自己同型写像の結果と楕円曲線演算の結果とを組あわせた値を、Tgテーブル342に格納する。 When the table generation unit 332 executes Giant-Step for the range of (r−1) / d, the elliptic curve calculation is executed for the range 30b and the automorphism mapping is executed for the range 40a. To do. Here, the range 40b corresponds to the lower part of the automorphism map “(−1) i Φ j ”. The table generation unit 332 stores a value obtained by combining the automorphic mapping result and the elliptic curve calculation result in the Tg table 342.

テーブル生成部332が、Baby-Stepを実行する場合の処理について説明する。テーブル生成部332は、u1、ib、jbの値を順次変化させながら、「(−1)(ib)Φ(jb)(ζ u1×G)」を順次計算し、Tbテーブル341を作成する。ただし、i、jの選択条件を、「−(2m)1/2<(i・m+j・c・2)mod 2m≦0」とする。すなわち、テーブル生成部332は、上記選択条件をみたすi、jの組に対応する「(−1)(ib)Φ(jb)(ζ u1×G)」の値のみを算出する。なお、u1の値域を「0≦u1<d1’’」とする。 Processing when the table generation unit 332 executes Baby-Step will be described. The table generation unit 332 sequentially calculates “(−1) (ib) Φ (jb)d u1 × G)” while sequentially changing the values of u1, ib, and jb, and creates the Tb table 341. . However, the selection condition of i and j is “− (2m) 1/2 <(i · m + j · c · 2) mod 2m ≦ 0”. That is, the table generation unit 332 calculates only the value of “(−1) (ib) Φ (jb)d u1 × G)” corresponding to the combination of i and j that satisfies the selection condition. Note that the range of u1 is “0 ≦ u1 <d1 ″”.

図21は、本実施例3にかかるTbテーブルのデータ構造の一例を示す図である。図21に示すように、このTbテーブル341は、k、i、jの値と、k、i、jの値に応じた(−1)(i)Φ(j)(ζ −kG)の点とを対応付けて記憶する。Tbテーブル341のkは、u1に対応する値である。i、jはそれぞれ、ib、jbに対応する。 FIG. 21 is a diagram illustrating an example of the data structure of the Tb table according to the third embodiment. As shown in FIG. 21, the Tb table 341 includes (−1) (i) Φ (j)d −k x d ) corresponding to the values of k, i, j and the values of k, i, j. G) is stored in association with the point. K in the Tb table 341 is a value corresponding to u1. i and j correspond to ib and jb, respectively.

テーブル生成部332が、Giant-Stepを実行する場合の処理について説明する。テーブル生成部332は、v1、ig、jgの値を順次変化させながら、「(−1)(ig)Φ(jg)(ζ v1・d’’×G)」を順次計算し、Tbテーブル342を作成する。ただし、i、jの選択条件を「(m・ig+2c・jg) mod 2m=0」とする。すなわち、テーブル生成部332は、上記選択条件を満たすi、jの組に対応する「(−1)(ig)Φ(jg)(ζ v1・d’’×G)」の値のみを算出する。なお、v1の値域を「0≦v1<d1’’」とする。 Processing when the table generation unit 332 executes Giant-Step will be described. The table generation unit 332 sequentially calculates “(−1) (ig) Φ (jg)d v1 · d ″ × G)” while sequentially changing the values of v1, ig, and jg, and the Tb table. 342 is created. However, the selection condition of i and j is “(m · ig + 2c · jg) mod 2m = 0”. That is, the table generation unit 332 calculates only the value of “(−1) (ig) Φ (jg)d v1 · d ″ × G)” corresponding to the combination of i and j that satisfies the above selection conditions. To do. The value range of v1 is “0 ≦ v1 <d1 ″”.

図22は、本実施例3にかかるTgテーブルのデータ構造の一例を示す図である。図22に示すように、このTgテーブル342は、k、i、jの値と、k、i、jの値に応じた(−1)(i)Φ(j)(ζ −k・d1G)の点とを対応付けて記憶する。Tgテーブル342のkは、v1に対応する値である。i、jはそれぞれ、ig、jgに対応する。 FIG. 22 is a diagram illustrating an example of the data structure of the Tg table according to the third embodiment. As shown in FIG. 22, the Tg table 342 includes (−1) (i) Φ (j)d −k · d1 ) corresponding to the values of k, i, j and the values of k, i, j. G) is stored in association with the point. K in the Tg table 342 is a value corresponding to v1. i and j correspond to ig and jg, respectively.

ここで、テーブル生成部332の構成について説明する。図23は、本実施例3にかかるテーブル生成部の構成を示す図である。図23に示すように、テーブル生成部232は、テーブル生成制御部350、スカラ倍算351、自己同型写像計算部352、自己同型写像選択部353を有する。   Here, the configuration of the table generation unit 332 will be described. FIG. 23 is a diagram illustrating the configuration of the table generation unit according to the third embodiment. As illustrated in FIG. 23, the table generation unit 232 includes a table generation control unit 350, a scalar multiplication 351, an automorphism mapping calculation unit 352, and an automorphism mapping selection unit 353.

テーブル生成制御部350は、パラメータd1’’、ζ、G、m、T、i,jの選択条件を取得する。このうち、i,jの選択条件は、「−(2m)1/2<(i・m+j・c・2)mod 2m≦0」および「(m・ig+2c・jg) mod 2m=0」である。 The table generation control unit 350 acquires selection conditions for the parameters d1 ″, ζ * , G * , m, T * , i, j. Among these, the selection conditions for i and j are “− (2m) 1/2 <(i · m + j · c · 2) mod 2m ≦ 0” and “(m · ig + 2c · jg) mod 2m = 0”. .

テーブル生成制御部350は、Tに応じて、Tbテーブル341またはTgテーブル342を生成すると判定する。Tは、Tbテーブル341を作成するのか、Tgテーブル342を作成するのかを識別する情報である。テーブル生成制御部350は、制御部235からTを取得する。 The table generation control unit 350 determines to generate the Tb table 341 or the Tg table 342 according to T * . T * is information for identifying whether the Tb table 341 is created or the Tg table 342 is created. The table generation control unit 350 acquires T * from the control unit 235.

テーブル生成制御部350が、Tbテーブル341を生成する場合について説明する。テーブル生成制御部350は、スカラ倍算351に、ζ、G、kを順次入力し、スカラ倍算部351から(ζを順次取得する。Tbテーブル341を生成する場合のkは、上記u1に対応する。 A case where the table generation control unit 350 generates the Tb table 341 will be described. Table generation control unit 350, the scalar multiplication 351, zeta *, G *, sequentially inputs the k, (* zeta) from the scalar multiplication unit 351 k G * sequentially acquires. K in the case of generating the Tb table 341 corresponds to the above u1.

テーブル生成制御部350は、(ζを取得した後に、i、j、(ζを自己同型写像計算部352に順次入力し、自己同型写像計算部352から(−1)(i)Φ(j)((ζ×G)を取得する。テーブル生成制御部350は、iとjとkと(−1)(i)Φ(j)((ζ×G)とを対応付けて、Tbテーブル341に登録する。 After obtaining (ζ * ) k G * , the table generation control unit 350 sequentially inputs i, j, (ζ * ) k G * to the automorphic mapping calculation unit 352, and from the automorphic mapping calculation unit 352 ( -1) (i) Φ (j) ((ζ * ) k × G * ) is acquired. The table generation control unit 350 associates i, j, k, and (−1) (i) Φ (j) ((ζ * ) k × G * ) with each other and registers them in the Tb table 341.

なお、テーブル生成制御部350は、i、jの選択条件と、i、jの組とを自己同型写像選択部353に入力し、i、jの組が、i、jの選択条件を満たしている場合に、かかるi、jの組と(ζを自己同型写像計算部352に入力する。Tbテーブル341を生成する場合の、i、jの選択条件は、「−(2m)1/2<(i・m+j・c・2)mod 2m≦0」である。 The table generation control unit 350 inputs the selection conditions of i and j and the combination of i and j to the automorphism mapping selection unit 353, and the combination of i and j satisfies the selection conditions of i and j. If there is, the set of i and j and (ζ * ) k G * are input to the automorphism mapping calculation unit 352. When the Tb table 341 is generated, the selection conditions for i and j are “− (2m) 1/2 <(i · m + j · c · 2) mod 2m ≦ 0”.

テーブル生成制御部350が、Tgテーブル342を生成する場合について説明する。テーブル生成部350は、スカラ倍算部351に、ζ、G、kを順次入力し、スカラ倍算部251から(ζを順次取得する。Tgテーブル342を生成する場合のkは、上記v1に対応する。 A case where the table generation control unit 350 generates the Tg table 342 will be described. Table generating unit 350, the scalar multiplication unit 351, zeta *, G *, sequentially inputs the k, (* zeta) from the scalar multiplication unit 251 k G * sequentially acquires. K in the case of generating the Tg table 342 corresponds to the above v1.

テーブル生成制御部350は、(ζを取得した後に、i、j、(ζを自己同型写像計算部352に順次入力し、自己同型写像計算部352から(−1)(i)Φ(j)((ζ×G)を取得する。テーブル生成制御部350は、iとjとkと(−1)(i)Φ(j)((ζ×G)とを対応付けて、Tgテーブル342に登録する。 After obtaining (ζ * ) k G * , the table generation control unit 350 sequentially inputs i, j, (ζ * ) k G * to the automorphic mapping calculation unit 352, and from the automorphic mapping calculation unit 352 ( -1) (i) Φ (j) ((ζ * ) k × G * ) is acquired. The table generation control unit 350 associates i, j, k, and (−1) (i) Φ (j) ((ζ * ) k × G * ) with each other and registers them in the Tg table 342.

なお、テーブル生成制御部350は、i、jの選択条件と、i、jの組とを自己同型写像選択部353に入力し、i、jの組が、i、jの選択条件を満たしている場合に、かかるi、jの組と(ζを自己同型写像計算部352に入力する。Tgテーブル341を生成する場合の、i、jの選択条件は、「(m・ig+2c・jg) mod 2m=0」である。 The table generation control unit 350 inputs the selection conditions of i and j and the combination of i and j to the automorphism mapping selection unit 353, and the combination of i and j satisfies the selection conditions of i and j. If there is, the set of i and j and (ζ * ) k G * are input to the automorphism mapping calculation unit 352. When the Tg table 341 is generated, the selection conditions for i and j are “(m · ig + 2c · jg) mod 2m = 0”.

ところで、テーブル生成部332は、上記の処理を、未知数yの下位部分と、上位部分に対してそれぞれ実行するものとする。図3に示した(r−1)/dの範囲に対応する。また、未知数yの上位部分は、図4に示したdの範囲に対応する。いずれの場合も、Baby-StepおよびGiant-Stepを実行する場合に、楕円曲線演算の一部に自己同型写像を適用することで、計算量を削減する。   By the way, it is assumed that the table generation unit 332 executes the above-described processing for the lower part and the upper part of the unknown number y. This corresponds to the range of (r−1) / d shown in FIG. Further, the upper part of the unknown y corresponds to the range of d shown in FIG. In either case, when Baby-Step and Giant-Step are executed, the amount of calculation is reduced by applying an automorphic mapping to a part of the elliptic curve calculation.

図19の説明に戻る。テーブル比較部333は、Tbテーブル341とTgテーブル342とを比較して、
(−1)(ib)Φ(jb)(ζ u1×G)=(−1)(ig)Φ(jg)(ζ v1・d’’×G)
となる(u1、v1、ib、jb、ig、jg)の組を求める処理部である。テーブル比較部333は、求めた(u1、v1、ib、jb、ig、jg)の組を未知数算出部334に出力する。
Returning to the description of FIG. The table comparison unit 333 compares the Tb table 341 and the Tg table 342, and
(-1) (ib) Φ (jb)d u1 × G) = (− 1) (ig) Φ (jg)d v1 · d ″ × G)
(U1, v1, ib, jb, ig, jg). The table comparison unit 333 outputs the obtained set (u1, v1, ib, jb, ig, jg) to the unknown number calculation unit 334.

未知数演算部334は、テーブル比較部333から、(u1、v1、ib、jb、ig、jg)の組を取得し、秘密鍵を算出する。ここでは、未知数yの下位部分をz、秘密鍵の上位部分をwとする。   The unknown number calculation unit 334 obtains a set of (u1, v1, ib, jb, ig, jg) from the table comparison unit 333, and calculates a secret key. Here, the lower part of the unknown y is z, and the upper part of the secret key is w.

未知数演算部334は、下位部分から求められた組(u1、v1、ib、jb、ig、jg)を基にして、未知数yの下位部分zを求める。zは、z=u1+(ib・m+2・c・jb)+v1・d1’’+(ig・m+2・c・jg)・d’’により求められる。この場合には、xG=ζ Gとなるので、x=ζ となるzが求まる。 The unknown number calculation unit 334 obtains the lower part z of the unknown y based on the set (u1, v1, ib, jb, ig, jg) obtained from the lower part. z is obtained by z = u1 + (ib · m + 2 · c · jb) + v1 · d1 ″ + (ig · m + 2 · c · jg) · d ″. In this case, since the x d G = ζ d z G , a x d = ζ d z z is obtained.

未知数演算部334は、上位部分から求められた組(u2、v2)を基にして、未知数yの上位部分をw=u2+v2・d’’により算出する。   The unknown number calculation unit 334 calculates the upper part of the unknown y by w = u2 + v2 · d ″ based on the set (u2, v2) obtained from the upper part.

未知数演算部334は、zとwを求めた後に、y=z+w(r−1)/dにより求める。秘密鍵xとyとの間には、x=ζの関係がある。未知数演算部334は、秘密鍵xとyとの関係から、秘密鍵xを求め、求めた秘密鍵xの情報を出力部320に出力する。 The unknown number calculation unit 334 obtains z and w and then obtains y = z + w (r−1) / d. There is a relationship of x = ζ y between the secret keys x and y. The unknown number calculation unit 334 obtains the secret key x from the relationship between the secret keys x and y, and outputs information on the obtained secret key x to the output unit 320.

制御部335は、パラメータ取得部331、テーブル生成部332、テーブル比較部333、未知数算出部334の各部に対して、上記で説明したような動作を行うように制御する処理部である。例えば、制御部335は、Tをテーブル生成部332に入力して、Tbテーブル341またはTgテーブル342を作成させる。そして、Tbテーブル341、Tbテーブル342が作成された後に、制御部335は、テーブル比較部333に指示を出し、Tbテーブル341とTgテーブル342とを比較させる。 The control unit 335 is a processing unit that controls the parameter acquisition unit 331, the table generation unit 332, the table comparison unit 333, and the unknown number calculation unit 334 so as to perform the operations described above. For example, the control unit 335 inputs T * to the table generation unit 332 and creates the Tb table 341 or the Tg table 342. After the Tb table 341 and the Tb table 342 are created, the control unit 335 instructs the table comparison unit 333 to compare the Tb table 341 and the Tg table 342.

記憶部340は、Tbテーブル341およびTgテーブル342を記憶する記憶部である。Tbテーブル341のデータ構造は、図21に示すものとなる。Tgテーブル342のデータ構造は、図22に示すものとなる。   The storage unit 340 is a storage unit that stores the Tb table 341 and the Tg table 342. The data structure of the Tb table 341 is as shown in FIG. The data structure of the Tg table 342 is as shown in FIG.

次に、本実施例3にかかる処理部330の処理手順について説明する。図24は、本実施例3にかかる処理部の処理手順を示すフローチャートである。例えば、図24に示す処理は、入力部310から、楕円曲線離散対数問題を解く旨の指示を受け付けた場合に実行される。図24に示すように処理部330は、秘密鍵x=ζとし、yを上位部分と下位部分に分割する(ステップS401)。 Next, a processing procedure of the processing unit 330 according to the third embodiment will be described. FIG. 24 is a flowchart of the process procedure of the processing unit according to the third embodiment. For example, the process shown in FIG. 24 is executed when an instruction to solve the elliptic curve discrete logarithm problem is received from the input unit 310. As shown in FIG. 24, the processing unit 330 sets the secret key x = ζ y and divides y into an upper part and a lower part (step S401).

処理部330は、下位部分に対してBaby-Stepを実行し、ζ −u1×xG{0≦u1<d1’’}と、各点の自己同型写像(−1)(ib)Φ(jb)(ζ −u1×xG)を算出し、全ての点からなるTbテーブル341を作成する(ステップS402)。 The processing unit 330 executes Baby-Step on the lower part, and ζ d −u 1 × x d G {0 ≦ u 1 <d 1 ″} and the automorphism mapping of each point (−1) (ib) Φ ( Jb )d −u1 × x d G) is calculated, and a Tb table 341 composed of all points is created (step S402).

処理部330は、計算した点のうち、ib、jbの組が、「−(2m)1/2<(ib・m+2・c・jb)mod 2m≦0」を満たす点だけTbテーブル341に格納する(ステップS403)。 The processing unit 330 stores, in the Tb table 341, only the points where the set of ib and jb satisfies “− (2m) 1/2 <(ib · m + 2 · c · jb) mod 2m ≦ 0” among the calculated points. (Step S403).

処理部330は、下位部分に対してGiant-Stepを実行し、ζ v1・d1’’×G{0≦v1<d1’’}と、各点の自己同型写像(−1)(ig)Φ(jg)(ζ v1・d1’’×G)を算出し、全ての点からなるTgテーブル342を作成する(ステップS404)。 The processing unit 330 performs a Giant-Step on the lower part, and ζ d v1 · d1 ″ × G {0 ≦ v1 <d1 ″}, and an automorphism map of each point (−1) (ig) Φ (jg)d v1 · d1 ″ × G) is calculated, and a Tg table 342 composed of all points is created (step S404).

処理部330は、計算した点のうち、ig、jgの組が、(m・ig+2c・jg) mod 2m=0」となる点だけTgテーブル342に格納する(ステップS405)。   The processing unit 330 stores, in the Tg table 342, only the points where the set of ig and jg is (m · ig + 2c · jg) mod 2m = 0 ”among the calculated points (step S405).

処理部330は、Tbテーブル341とTgテーブル342とを比較し、(−1)(ib)Φ(jb)(ζ −u1×xG)=(−1)(ig)Φ(jg)(ζ v1・d1’’×G)となる(u1、v1、ib、jb、ig、jg)の組を算出する(ステップS406)。処理部330は、z=u1+(ib・m+2・c・jb)+v1・d1’’+(ig・m+2・c・jg)・d’’により、zを算出する(ステップS407)。 The processing unit 330 compares the Tb table 341 and the Tg table 342, and (-1) (ib) Φ (jb)d −u1 × x d G) = (− 1) (ig) Φ (jg) A set of (u1, v1, ib, jb, ig, jg) that is (ζ d v1 · d1 ″ × G) is calculated (step S406). The processing unit 330 calculates z by z = u1 + (ib · m + 2 · c · jb) + v1 · d1 ″ + (ig · m + 2 · c · jg) · d ″ (step S407).

処理部330は、上位部分に対してBaby-Stepを実行し、上位部分に対してBaby−Stepを実行し、ζ−u2(r−1)/r×xG{0≦u2<d1’’}となるTbテーブル141を作成する(ステップS408)。 The processing unit 330 executes Baby-Step on the upper part and executes Baby-Step on the upper part, and ζ −u2 (r−1) / r × xG {0 ≦ u2 <d1 ″}. A Tb table 141 is created (step S408).

処理部330は、上位部分に対してGiant−Stepを実行し、ζk1ζr2・d2・(r−1)/r×G{0≦v2<d’’}となるTgを計算し、全ての点からなるTgテーブルを作成する(ステップS409)。 The processing unit 330 performs a Giant-Step on the upper part, calculates Tg such that ζ k1 ζ r2 · d2 · (r−1) / r × G {0 ≦ v2 <d ″}, A Tg table consisting of these points is created (step S409).

処理部330は、TbテーブルとTgテーブルとを比較し、ζ−u2(r−1)/r×xG=、ζk1ζr2・d2・(r−1)/r×Gとなる(u2、v2)の組を算出する(ステップS410)。処理部330は、w=y=u2+v2d’’により、yの上位部分wを算出する(ステップS411)。 The processing unit 330 compares the Tb table with the Tg table, and becomes ζ −u2 (r−1) / r × xG =, ζ k1 ζ r2 · d2 · (r−1) / r × G (u2, A set of v2) is calculated (step S410). The processing unit 330 calculates the upper part w of y by w = y H = u2 + v2d ″ (step S411).

処理部330は、y=z+w(r−1)/dにより、yの値を算出する(ステップS412)。処理部330は、x=ζの関係からxを求め(ステップS413)、秘密鍵xを出力する(ステップS414)。 The processing unit 330 calculates the value of y by y = z + w (r−1) / d (step S412). The processing unit 330 obtains x from the relationship x = ζ y (step S413) and outputs the secret key x (step S414).

次に、本実施例3にかかるテーブル生成部332がTbテーブル341およびTgテーブル342を生成する処理手順について説明する。図25は、本実施例3にかかるテーブル生成部の処理手順を示すフローチャートである。   Next, a process procedure in which the table generation unit 332 according to the third embodiment generates the Tb table 341 and the Tg table 342 will be described. FIG. 25 is a flowchart of the process procedure of the table generation unit according to the third embodiment.

図25に示すように、テーブル生成部332は、パラメータd1’’、ζ、G、m、T、(i、j)の条件を取得し(ステップS501)、kを初期値に設定する(ステップS502)。テーブル生成部332は、スカラ倍計算(ζを実行する(ステップS503)。 As shown in FIG. 25, the table generation unit 332 acquires the conditions of parameters d1 ″, ζ * , G * , m, T * , (i, j) (step S501), and sets k to an initial value. (Step S502). The table generation unit 332 executes scalar multiplication (ζ * ) k G * (step S503).

テーブル生成部332は、(i、j)の条件を満たすi=0〜1、j=0〜m−1に対して、自己同型写像計算(−1)(i)Φ(j)((ζ)を実行する(ステップS504)。テーブル生成部332は、{i、j、k、(−1)(i)Φ(j)((ζ)}を記憶部340に出力する(ステップS505)。 The table generation unit 332 calculates automorphism mapping (−1) (i) Φ (j) ((ζ) for i = 0 to 1 and j = 0 to m−1 that satisfy the condition (i, j). * ) K G * ) is executed (step S504). The table generation unit 332 outputs {i, j, k, (−1) (i) Φ (j) ((ζ * ) k G * )} to the storage unit 340 (step S505).

テーブル生成部332は、k=k+1を算出し(ステップS506)、kの値がd’’−1の値よりも大きいか否かを判定する(ステップS507)。テーブル生成部332は、kの値がd’’−1の値以下の場合には(ステップS507,No)、ステップS503に移行する。一方、テーブル生成部332は、kの値がd’’−1の値より大きい場合には(ステップS507,Yes)、処理を終了する。   The table generation unit 332 calculates k = k + 1 (step S506), and determines whether the value of k is larger than the value of d ″ −1 (step S507). When the value of k is equal to or less than the value of d ″ −1 (No at Step S507), the table generating unit 332 proceeds to Step S503. On the other hand, when the value of k is larger than the value of d ″ −1 (step S507, Yes), the table generation unit 332 ends the process.

次に、本実施例3にかかる暗号解読装置300の効果について説明する。本実施例3にかかる暗号解読装置300は、Baby-StepおよびGiant-Stepを実行する場合に、楕円曲線演算の一部に、自己同型写像を適用することで、楕円曲線演算を実行すべき範囲を削減することができる。この結果、楕円曲線離散対数問題を解くための計算量を、従来のCheon解析法と比較して、1/(2m)1/2に削減することができる。例えば、有限体GF(3m)上の楕円曲線の場合には、m=127であるため、従来のCheon解析法と比較して、計算量が1/16となる。 Next, effects of the decryption apparatus 300 according to the third embodiment will be described. When executing the Baby-Step and the Giant-Step, the cryptanalysis apparatus 300 according to the third embodiment applies the automorphism mapping to a part of the elliptic curve calculation, thereby performing the elliptic curve calculation. Can be reduced. As a result, the amount of calculation for solving the elliptic curve discrete logarithm problem can be reduced to 1 / (2 m) 1/2 as compared with the conventional Cheon analysis method. For example, in the case of an elliptic curve on a finite field GF (3 m), since m = 127, the amount of calculation is 1/16 compared to the conventional Cheon analysis method.

また、本実施例3にかかる暗号装置300は、i、jの選択条件を満たさない、i=0〜1、j=0〜m−1の組あわせに対応する自己同型写像の計算結果を、Tbテーブル341、Tgテーブル342に記憶しない。この結果、Tbテーブル341、Tgテーブル342のデータ量を、従来のCheon解析法と同量のデータ量に抑えることができる。   Also, the cryptographic apparatus 300 according to the third embodiment obtains the calculation result of the automorphism mapping corresponding to the combination of i = 0 to 1 and j = 0 to m−1 that does not satisfy the selection conditions of i and j. Not stored in the Tb table 341 and the Tg table 342. As a result, the data amounts of the Tb table 341 and the Tg table 342 can be suppressed to the same amount as that of the conventional Cheon analysis method.

次に、従来のCheon解析法、実施例1〜3の楕円演算回数、テーブルのデータ量の比較結果を示す。図26および図27は、従来のCheon解析法、実施例1〜3の楕円演算回数、テーブルのデータ量の比較結果を示す図である。   Next, comparison results of the conventional Cheon analysis method, the number of elliptic operations in Examples 1 to 3 and the data amount of the table are shown. FIG. 26 and FIG. 27 are diagrams showing a comparison result of the conventional Cheon analysis method, the number of elliptic operations in Examples 1 to 3, and the data amount of the table.

図26に示すように、従来のCheon解析法の楕円演算回数を1とすると、実施例1の楕円演算回数は1/(2m)1/2となり、実施例2の楕円演算回数は1/2となり、実施例3の楕円演算回数は1/(2m)1/2となる。また、従来のCheon解析法のテーブル量を1とすると、実施例1のテーブル量は1/(2m)1/2となり、実施例2のテーブル量は1、実施例3のテーブル量は1となる。 As shown in FIG. 26, assuming that the number of elliptic operations in the conventional Cheon analysis method is 1, the number of elliptic operations in the first embodiment is 1 / (2m) 1/2 and the number of elliptic operations in the second embodiment is 1/2. Thus, the number of elliptic operations in the third embodiment is 1 / (2m) 1/2 . If the table amount of the conventional Cheon analysis method is 1, the table amount of the first embodiment is 1 / (2m) 1/2 , the table amount of the second embodiment is 1, and the table amount of the third embodiment is 1. Become.

有限体GF(3127)上の楕円曲線の場合の、従来のCheon解析法、実施例1〜3の楕円演算回数、テーブルのデータ量の比較結果を示す。図27に示すように、従来のCheon解析法の楕円演算回数を1とすると、実施例1の楕円演算回数は約1/16となり、実施例2の楕円演算回数は約1/2となり、実施例3の楕円演算回数は約1/16となる。また、従来のCheon解析法のテーブル量を1とすると、実施例1のテーブル量は約8倍となり、実施例2、3のテーブル量はほぼ同じとなる。 A comparison result of the conventional Cheon analysis method, the number of elliptic operations in Examples 1 to 3, and the data amount of the table in the case of an elliptic curve on the finite field GF (3 127 ) is shown. As shown in FIG. 27, when the number of elliptic operations in the conventional Cheon analysis method is 1, the number of elliptic operations in the first embodiment is about 1/16, and the number of elliptic operations in the second embodiment is about 1/2. The number of elliptic operations in Example 3 is about 1/16. If the table amount of the conventional Cheon analysis method is 1, the table amount of the first embodiment is about eight times, and the table amounts of the second and third embodiments are almost the same.

理論値では、楕円演算回数で評価したが、実際のテーブル作成は自己同型写像の計算も処理時間がかかる。そこで、ここでは一例として、有限体GF(3127)上の楕円曲線で従来のCheon解析法、実施例3のテーブル作成時間の実験結果について説明する。図28は、テーブル作成時間とテーブル量とを示す図である。 The theoretical value was evaluated by the number of elliptic operations, but the actual table creation also takes time to calculate the automorphism map. Therefore, here, as an example, the conventional Cheon analysis method using an elliptic curve on the finite field GF (3 127 ) and the experimental results of the table creation time of Example 3 will be described. FIG. 28 is a diagram showing the table creation time and the table amount.

図28に示すように、従来のCheon解析法では、テーブル作成時間が7時間、テーブル量が15.78MByteとなる。これに対して、実施例3では、テーブル作成時間が44分、テーブル量が15.85MByteとなる。したがって、実施例3は、従来のCheon解析法と比較して、1/9.5倍の時間でテーブルを作成することができ、テーブル量は1.004倍でほとんど変わらないことが分かる。   As shown in FIG. 28, in the conventional Cheon analysis method, the table creation time is 7 hours and the table amount is 15.78 MByte. On the other hand, in the third embodiment, the table creation time is 44 minutes and the table amount is 15.85 MByte. Therefore, it can be seen that Example 3 can create a table in 1 / 9.5 times as long as the conventional Cheon analysis method, and the table amount is almost the same at 1.004 times.

また、上記の各実施例で説明した暗号鍵解読装置100、200、300の各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、図29を用いて、上記の実施例で説明した暗号鍵解読装置100、200、300と同様の機能を有する暗号鍵解読プログラムを実行するコンピュータの一例を説明する。図29は、暗号鍵解読プログラムを実行するコンピュータを示す図である。   The various processes of the encryption key decryption apparatuses 100, 200, and 300 described in the above embodiments can also be realized by executing a program prepared in advance on a computer system such as a personal computer or a workstation. . Therefore, an example of a computer that executes an encryption key decryption program having the same function as the encryption key decryption apparatuses 100, 200, and 300 described in the above embodiment will be described below with reference to FIG. FIG. 29 is a diagram illustrating a computer that executes an encryption key decryption program.

同図に示すように、暗号鍵解読装置100、200としてコンピュータ400は、入出力制御部410、HDD(Hard Disk Drive)420、RAM(Random Access Memory)430およびCPU(Central Processing Unit)440を有する。各装置410〜440は、バス450で接続して構成される。   As shown in the figure, a computer 400 includes an input / output control unit 410, an HDD (Hard Disk Drive) 420, a RAM (Random Access Memory) 430, and a CPU (Central Processing Unit) 440 as the encryption key decryption devices 100 and 200. . Each device 410 to 440 is configured by being connected by a bus 450.

ここで、入出力制御部410は、各種情報の入出力を制御する。HDD420は、CPU440による各種処理の実行に必要な情報を記憶する。RAM430は、各種情報を一時的に記憶する。CPU440は、各種演算処理を実行する。   Here, the input / output control unit 410 controls input / output of various types of information. The HDD 420 stores information necessary for the CPU 440 to execute various processes. The RAM 430 temporarily stores various information. The CPU 440 executes various arithmetic processes.

そして、HDD420には、暗号鍵解読システムデータがあらかじめ記憶されている。この暗号鍵解読システムデータは、図6、図14、図19に示した暗号鍵解読装置100、200、300の各処理部と同様の機能を発揮する暗号鍵解読プログラムを含む。また、暗号鍵解読システムデータは、処理に必要な各種パラメータを含む暗号鍵解読用データを含む。なお、この暗号鍵解読システムデータを適宜分散させて、ネットワークを介して通信可能に接続された他のコンピュータの記憶部に記憶させておくこともできる。   The HDD 420 stores encryption key decryption system data in advance. The encryption key decryption system data includes an encryption key decryption program that exhibits the same function as each processing unit of the encryption key decryption apparatuses 100, 200, and 300 shown in FIGS. The encryption key decryption system data includes encryption key decryption data including various parameters necessary for processing. The encryption key decryption system data can be appropriately distributed and stored in a storage unit of another computer that is communicably connected via a network.

そして、CPU440が、この暗号鍵解読システムデータをHDD420から読み出してRAM430に展開することにより、暗号鍵解読システムデータは暗号鍵解読システムとして機能するようになる。この暗号鍵解読システムには暗号鍵解読プロセスが含まれる。   Then, the CPU 440 reads out this encryption key decryption system data from the HDD 420 and expands it in the RAM 430, so that the encryption key decryption system data functions as an encryption key decryption system. The encryption key decryption system includes an encryption key decryption process.

すなわち、暗号鍵解読システムやそれに搭載された暗号鍵解読プロセスは、暗号鍵解読用データをHDD420から読み出して、RAM430において自身に割り当てられた領域に展開し、この展開したデータ等に基づいて各種処理を実行する。   That is, the encryption key decryption system and the encryption key decryption process installed therein read out the encryption key decryption data from the HDD 420, expand it in the area allocated to itself in the RAM 430, and perform various processes based on the expanded data. Execute.

なお、暗号鍵解読システム及び暗号鍵解読プロセスは、図6、図14、図19に示した各機能部において実行される処理に対応する。例えば、暗号鍵解読プロセスは、パラメータ取得部131、テーブル生成部132、テーブル比較部133、未知数算出部134に対応する。   Note that the encryption key decryption system and the encryption key decryption process correspond to the processing executed in each functional unit shown in FIGS. 6, 14, and 19. For example, the encryption key decryption process corresponds to the parameter acquisition unit 131, the table generation unit 132, the table comparison unit 133, and the unknown number calculation unit 134.

なお、上記した暗号鍵解読プログラムについては、必ずしも最初からHDD420に記憶させておく必要はない。   Note that the above-described encryption key decryption program does not necessarily need to be stored in the HDD 420 from the beginning.

例えば、コンピュータ400に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ400がこれらから各プログラムを読み出して実行するようにしてもよい。   For example, each program is stored in a “portable physical medium” such as a flexible disk (FD), a CD-ROM, a DVD disk, a magneto-optical disk, and an IC card inserted into the computer 400. Then, the computer 400 may read and execute each program from these.

さらには、公衆回線、インターネット、LAN、WANなどを介してコンピュータ400に接続される「他のコンピュータ(またはサーバ)」などに各プログラムを記憶させておく。そして、コンピュータ400がこれらから各プログラムを読み出して実行するようにしてもよい。   Further, each program is stored in “another computer (or server)” connected to the computer 400 via a public line, the Internet, a LAN, a WAN, or the like. Then, the computer 400 may read and execute each program from these.

また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図6に示すテーブル生成部132とテーブル比較部133とが統合されてもよい。また、テーブル比較部133と未知数算出部134とが統合されてもよい。   Further, each component of each illustrated apparatus is functionally conceptual, and does not necessarily need to be physically configured as illustrated. In other words, the specific state of distribution / integration of each device is not limited to the one shown in the figure, and all or a part thereof may be functionally or physically distributed or arbitrarily distributed in arbitrary units according to various loads or usage conditions. Can be integrated and configured. For example, the table generation unit 132 and the table comparison unit 133 illustrated in FIG. 6 may be integrated. Further, the table comparison unit 133 and the unknown number calculation unit 134 may be integrated.

なお、図6、図14、図19に示した処理部130、230、330は、例えば、ASIC(Application Specific Integrated Circuit)や、FPGA(Field Programmable Gate Array)などの集積装置に対応する。または、各処理部130、230、330は、CPUやMPU(Micro Processing Unit)等の電子回路に対応する。また、図6、図14、図19に示した記憶部140、240、340は、例えば、RAM、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。   The processing units 130, 230, and 330 shown in FIGS. 6, 14, and 19 correspond to integrated devices such as an ASIC (Application Specific Integrated Circuit) and an FPGA (Field Programmable Gate Array). Alternatively, each processing unit 130, 230, 330 corresponds to an electronic circuit such as a CPU or MPU (Micro Processing Unit). The storage units 140, 240, and 340 shown in FIGS. 6, 14, and 19 are, for example, semiconductor memory elements such as RAM, ROM (Read Only Memory), and flash memory (Flash Memory), or hard disks, optical disks, and the like. Corresponds to the storage device.

以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。   The following supplementary notes are further disclosed with respect to the embodiments including the above examples.

(付記1)コンピュータが、
楕円曲線離散対数問題の解を楕円曲線上の点に対応する生成元のべき乗で示し、前記生成元のべき乗部分を第1部分と第2部分に分割する分割ステップと、
前記第1部分の値を所定の値域で変化させた場合に前記生成元をべき乗することで算出される値を第1テーブルに格納する第1演算ステップと、
前記第2部分の値を所定の値域で変化させた場合に前記生成元をべき乗することで算出される値と、前記生成元のべき乗部分の一部に自己同型写像を適用した値とを組あわせた値を第2テーブルに格納する第2演算ステップと、
前記第1テーブルに格納された値と前記第2テーブルに格納された値とを比較し、一致した値に基づいて前記楕円曲線離散対数問題の解を算出することで暗号鍵を解析する暗号鍵解析ステップと
を実行することを特徴とする暗号鍵解析方法。
(Supplementary note 1)
A splitting step for indicating a solution of the elliptic curve discrete logarithm problem by a power of a generator corresponding to a point on the elliptic curve, and dividing the power part of the generator into a first part and a second part;
A first calculation step of storing, in a first table, a value calculated by raising the generation source when the value of the first part is changed in a predetermined range;
A value calculated by raising the power of the generator when the value of the second part is changed in a predetermined range and a value obtained by applying automorphism mapping to a part of the power of the generator are combined. A second calculation step of storing the combined values in the second table;
A cryptographic key for analyzing a cryptographic key by comparing a value stored in the first table with a value stored in the second table and calculating a solution of the elliptic curve discrete logarithm problem based on the matched value An encryption key analysis method comprising: performing an analysis step.

(付記2)前記第2演算ステップは、前記第1演算ステップが変化させる所定の値域とは異なる値域によって、前記第1部分の値を変化させた場合に、前記生成元をべき乗することで算出される値と、前記生成元のべき乗部分の一部に自己同型写像を適用した値とを組あわせた値を第2テーブルに格納することを特徴とする付記1に記載の暗号鍵解析方法。 (Supplementary Note 2) The second calculation step is calculated by raising the generator to a power when the value of the first part is changed by a value range different from the predetermined value range to be changed by the first calculation step. The encryption key analysis method according to claim 1, wherein a value obtained by combining a value obtained by applying an automorphism map to a part of the power-source part of the generation source is stored in the second table.

(付記3)前記第1演算ステップは、前記生成元のべき乗部分の一部に自己同型写像を適用した値のうち所定の条件を満たす値と、前記第2部分の値を所定の値域で変化させた場合に前記生成元をべき乗することで算出される値とを組あわせた値を前記第1テーブルに格納し、前記第2演算ステップは、前記生成元のべき乗部分の一部に自己同型写像を適用した値のうち所定の条件を満たす値と、前記第1部分の値を所定の値域で変化させた場合に前記生成元をべき乗することで算出される値とを組あわせた値を前記第2テーブルに格納することを特徴とする付記1または2に記載の暗号鍵解析方法。 (Supplementary note 3) The first calculation step changes a value satisfying a predetermined condition among values obtained by applying automorphism mapping to a part of the power-source part of the generation source, and a value of the second part within a predetermined range. In this case, a value combined with a value calculated by raising the power of the generator is stored in the first table, and the second calculation step includes an automorphism in a part of the power of the generator. A value obtained by combining a value satisfying a predetermined condition among values to which mapping is applied and a value calculated by raising the generation source when the value of the first portion is changed in a predetermined range. The encryption key analysis method according to appendix 1 or 2, wherein the encryption key is stored in the second table.

(付記4)前記分割ステップは、前記生成元のべき乗部分を上位部と下位部にわけ、前記上位部および下位部分をそれぞれ、第1部分と第2部分に分割し、前記第2演算ステップは、前記上位部の第2部分または前記下位部の第2部分の内どちらか一方に、自己同型写像を適用することを特徴とする付記1、2または3に記載の暗号鍵解析方法。 (Supplementary Note 4) The dividing step divides the power-source part of the generation source into an upper part and a lower part, and divides the upper part and the lower part into a first part and a second part, respectively, and the second calculation step includes 4. The encryption key analysis method according to appendix 1, 2, or 3, wherein an automorphism mapping is applied to either the second part of the upper part or the second part of the lower part.

(付記5)楕円曲線離散対数問題の解を楕円曲線上の点に対応する生成元のべき乗で示し、前記生成元のべき乗部分を第1部分と第2部分に分割する分割部と、
前記第1部分の値を所定の値域で変化させた場合に前記生成元をべき乗することで算出される値を第1テーブルに格納する第1演算部と、
前記第2部分の値を所定の値域で変化させた場合に前記生成元をべき乗することで算出される値と、前記生成元のべき乗部分の一部に自己同型写像を適用した値とを組あわせた値を第2テーブルに格納する第2演算部と、
前記第1テーブルに格納された値と前記第2テーブルに格納された値とを比較し、一致した値に基づいて前記楕円曲線離散対数問題の解を算出することで暗号鍵を解析する暗号鍵解析部と
を備えたことを特徴とする暗号鍵解析装置。
(Supplementary Note 5) A dividing unit that indicates a solution of the elliptic curve discrete logarithm problem as a power of a generator corresponding to a point on the elliptic curve, and divides the power part of the generator into a first part and a second part;
A first calculation unit that stores, in a first table, a value calculated by raising the generation source when the value of the first part is changed in a predetermined range;
A value calculated by raising the power of the generator when the value of the second part is changed in a predetermined range and a value obtained by applying automorphism mapping to a part of the power of the generator are combined. A second computing unit for storing the combined values in the second table;
A cryptographic key for analyzing a cryptographic key by comparing a value stored in the first table with a value stored in the second table and calculating a solution of the elliptic curve discrete logarithm problem based on the matched value An encryption key analysis apparatus comprising: an analysis unit.

(付記6)前記第2演算部は、前記第1演算部が変化させる所定の値域とは異なる値域によって、前記第1部分の値を変化させた場合に、前記生成元をべき乗することで算出される値と、前記生成元のべき乗部分の一部に自己同型写像を適用した値とを組あわせた値を第2テーブルに格納することを特徴とする付記5に記載の暗号鍵解析装置。 (Additional remark 6) When the value of the said 1st part is changed by the value range different from the predetermined value range which the said 1st calculating part changes, the said 2nd calculating part is calculated by raising the said origin to a power 6. The encryption key analyzing apparatus according to claim 5, wherein a value obtained by combining a value obtained by applying an automorphic mapping to a part of the power-source part of the generation source is stored in the second table.

(付記7)前記第1演算部は、前記生成元のべき乗部分の一部に自己同型写像を適用した値のうち所定の条件を満たす値と、前記第2部分の値を所定の値域で変化させた場合に前記生成元をべき乗することで算出される値とを組あわせた値を前記第1テーブルに格納し、前記第2演算部は、前記生成元のべき乗部分の一部に自己同型写像を適用した値のうち所定の条件を満たす値と、前記第1部分の値を所定の値域で変化させた場合に前記生成元をべき乗することで算出される値とを組あわせた値を前記第3テーブルに格納することを特徴とする付記5または6に記載の暗号鍵解析装置。 (Supplementary note 7) The first calculation unit changes a value satisfying a predetermined condition among values obtained by applying automorphism mapping to a part of the power-source part of the generation source and a value of the second part within a predetermined range. A value combined with a value calculated by raising the power of the generator is stored in the first table, and the second arithmetic unit is automorphic to a part of the power of the generator A value obtained by combining a value satisfying a predetermined condition among values to which mapping is applied and a value calculated by raising the generation source when the value of the first portion is changed in a predetermined range. The encryption key analysis apparatus according to appendix 5 or 6, wherein the encryption key analysis apparatus is stored in the third table.

(付記8)前記分割部は、前記生成元のべき乗部分を上位部と下位部にわけ、前記上位部および下位部分をそれぞれ、第1部分と第2部分に分割し、前記第2演算部は、前記上位部の第2部分または前記下位部の第2部分の内どちらか一方に、自己同型写像を適用することを特徴とする付記5、6または7に記載の暗号鍵解析装置。 (Supplementary Note 8) The dividing unit divides the power-source part of the generation source into an upper part and a lower part, and divides the upper part and the lower part into a first part and a second part, respectively. The encryption key analysis apparatus according to appendix 5, 6 or 7, wherein an automorphism mapping is applied to either the second part of the upper part or the second part of the lower part.

(付記9)コンピュータに
楕円曲線離散対数問題の解を楕円曲線上の点に対応する生成元のべき乗で示し、前記生成元のべき乗部分を第1部分と第2部分に分割する分割手順と、
前記第1部分の値を所定の値域で変化させた場合に前記生成元をべき乗することで算出される値を第1テーブルに格納する第1演算手順と、
前記第2部分の値を所定の値域で変化させた場合に前記生成元をべき乗することで算出される値と、前記生成元のべき乗部分の一部に自己同型写像を適用した値とを組あわせた値を第2テーブルに格納する第2演算手順と、
前記第1テーブルに格納された値と前記第2テーブルに格納された値とを比較し、一致した値に基づいて前記楕円曲線離散対数問題の解を算出することで暗号鍵を解析する暗号鍵解析手順と
を実行させることを特徴とする暗号鍵解析プログラム。
(Supplementary note 9) A dividing procedure for indicating to the computer the solution of the elliptic curve discrete logarithm problem as a power of a generator corresponding to a point on the elliptic curve, and dividing the power part of the generator into a first part and a second part;
A first calculation procedure for storing, in a first table, a value calculated by raising the generation source when the value of the first portion is changed in a predetermined range;
A value calculated by raising the power of the generator when the value of the second part is changed in a predetermined range and a value obtained by applying automorphism mapping to a part of the power of the generator are combined. A second calculation procedure for storing the combined values in the second table;
A cryptographic key for analyzing a cryptographic key by comparing a value stored in the first table with a value stored in the second table and calculating a solution of the elliptic curve discrete logarithm problem based on the matched value An encryption key analysis program characterized by causing an analysis procedure to be executed.

(付記10)前記第2演算手順は、前記第1演算ステップが変化させる所定の値域とは異なる値域によって、前記第1部分の値を変化させた場合に、前記生成元をべき乗することで算出される値と、前記生成元のべき乗部分の一部に自己同型写像を適用した値とを組あわせた値を第2テーブルに格納することを特徴とする付記9に記載の暗号鍵解析プログラム。 (Supplementary Note 10) The second calculation procedure is calculated by raising the generator to a power when the value of the first part is changed by a value range different from the predetermined value range to be changed by the first calculation step. The encryption key analysis program according to appendix 9, wherein a value obtained by combining a value obtained by applying an automorphism map to a part of the power-source part of the generation source is stored in the second table.

(付記11)前記第1演算手順は、前記生成元のべき乗部分の一部に自己同型写像を適用した値のうち所定の条件を満たす値と、前記第2部分の値を所定の値域で変化させた場合に前記生成元をべき乗することで算出される値とを組あわせた値を前記第1テーブルに格納し、前記第2演算手順は、前記生成元のべき乗部分の一部に自己同型写像を適用した値のうち所定の条件を満たす値と、前記第1部分の値を所定の値域で変化させた場合に前記生成元をべき乗することで算出される値とを組あわせた値を前記第2テーブルに格納することを特徴とする付記9または10に記載の暗号鍵解析プログラム。 (Additional remark 11) The said 1st calculation procedure changes the value of the said 2nd part with the value which satisfy | fills a predetermined condition among the values which applied the automorphism map to a part of the power-source part of the said production | generation, and a predetermined range In this case, a value combined with a value calculated by raising the power of the generator is stored in the first table, and the second calculation procedure includes an automorphism in a part of the power of the generator. A value obtained by combining a value satisfying a predetermined condition among values to which mapping is applied and a value calculated by raising the generation source when the value of the first portion is changed in a predetermined range. The encryption key analysis program according to appendix 9 or 10, wherein the encryption key analysis program is stored in the second table.

(付記12)前記分割手順は、前記生成元のべき乗部分を上位部と下位部にわけ、前記上位部および下位部分をそれぞれ、第1部分と第2部分に分割し、前記第2演算手順は、前記上位部の第2部分または前記下位部の第2部分の内どちらか一方に、自己同型写像を適用することを特徴とする付記9、10または11に記載の暗号鍵解析プログラム。 (Supplementary Note 12) In the dividing procedure, the power-source part of the generation source is divided into an upper part and a lower part, and the upper part and the lower part are respectively divided into a first part and a second part, and the second calculation procedure is The encryption key analysis program according to appendix 9, 10 or 11, wherein an automorphism mapping is applied to either the second part of the upper part or the second part of the lower part.

131 パラメータ取得部
132 テーブル生成部
133 テーブル比較部
134 未知数算出部
135 制御部
131 Parameter acquisition unit 132 Table generation unit 133 Table comparison unit 134 Unknown number calculation unit 135 Control unit

Claims (5)

コンピュータが、
楕円曲線離散対数問題の解を楕円曲線上の点に対応する生成元のべき乗で示し、前記生成元のべき乗部分を第1部分と第2部分に分割する分割ステップと、
所定の値域で変化する前記第1部分の値と、前記第1部分の値によって前記生成元をべき乗することで算出される値とを対応付けて第1テーブルに格納する第1演算ステップと、
前記第1部分の値が変化する領域とは異なる領域で変化する前記第2部分の値と、前記第2部分の値に対応する自己同型写像の値とを対応付けて第2テーブルに格納する第2演算ステップと、
前記第1テーブルに格納された生成元をべき乗することで算出される値と前記第2テーブルに格納された自己同型写像の値とを比較し、一致した値に対応付けられた前記第1部分の値と前記第2部分の値とを基にして、前記楕円曲線離散対数問題の解を算出することで暗号鍵を解析する暗号鍵解析ステップと
を実行することを特徴とする暗号鍵解析方法。
Computer
A splitting step for indicating a solution of the elliptic curve discrete logarithm problem by a power of a generator corresponding to a point on the elliptic curve, and dividing the power part of the generator into a first part and a second part;
A first calculation step of associating and storing in the first table a value of the first part that changes in a predetermined value range and a value calculated by raising the generation source to a power by the value of the first part ;
The value of the second part that changes in an area different from the area where the value of the first part changes and the value of the automorphism map corresponding to the value of the second part are stored in the second table in association with each other . A second calculation step;
The value calculated by raising the generator stored in the first table to a power and the value of the automorphism stored in the second table are compared, and the first part associated with the matched value And a cryptographic key analysis step of analyzing the cryptographic key by calculating a solution of the elliptic curve discrete logarithm problem based on the value of the second part and the value of the second part .
前記第1演算ステップは、前記生成元のべき乗部分の一部に自己同型写像を適用した値のうち所定の条件を満たす値と、前記第1部分の値を所定の値域で変化させた場合に前記生成元をべき乗することで算出される値とを組あわせた値を前記第1テーブルに格納し、前記第2演算ステップは、前記生成元のべき乗部分の一部に自己同型写像を適用した値のうち所定の条件を満たす値と、前記第2部分の値を所定の値域で変化させた場合に前記生成元をべき乗することで算出される値とを組あわせた値を前記第2テーブルに格納することを特徴とする請求項に記載の暗号鍵解析方法。 The first calculation step is performed when a value satisfying a predetermined condition among values obtained by applying automorphism mapping to a part of the power-source part of the generation source and a value of the first part are changed in a predetermined range. A value combined with a value calculated by raising the power of the generator is stored in the first table, and the second calculation step applies an automorphism mapping to a part of the power of the generator Among the values, a value obtained by combining a value satisfying a predetermined condition and a value calculated by raising the generation source when the value of the second portion is changed in a predetermined value range is the second table. The encryption key analysis method according to claim 1 , wherein the encryption key analysis method stores the encryption key. 前記分割ステップは、前記生成元のべき乗部分を上位部と下位部にわけ、前記上位部および下位部をそれぞれ、第1部分と第2部分に分割し、前記第2演算ステップは、前記上位部の第2部分または前記下位部の第2部分の内どちらか一方に、自己同型写像を適用することを特徴とする請求項1または2に記載の暗号鍵解析方法。 The dividing step divides the power-source part of the generation source into an upper part and a lower part, and divides the upper part and the lower part into a first part and a second part, respectively, and the second computing step includes the upper part the second portion or to one of either the second portion of the lower portion, encryption key analysis method according to claim 1 or 2, characterized by applying the automorphism mapping. 楕円曲線離散対数問題の解を楕円曲線上の点に対応する生成元のべき乗で示し、前記生成元のべき乗部分を第1部分と第2部分に分割する分割部と、
所定の値域で変化する前記第1部分の値と、前記第1部分の値によって前記生成元をべき乗することで算出される値とを対応付けて第1テーブルに格納する第1演算部と、
前記第1部分の値が変化する領域とは異なる領域で変化する前記第2部分の値と、前記第2部分の値に対応する自己同型写像の値とを対応付けて第2テーブルに格納する第2演算部と、
前記第1テーブルに格納された生成元をべき乗することで算出される値と前記第2テーブルに格納された自己同型写像の値とを比較し、一致した値に対応付けられた前記第1部分の値と前記第2部分の値とを基にして、前記楕円曲線離散対数問題の解を算出することで暗号鍵を解析する暗号鍵解析部と
を備えたことを特徴とする暗号鍵解析装置。
A dividing unit that indicates a solution of the elliptic curve discrete logarithm problem as a power of a generator corresponding to a point on the elliptic curve, and divides the power part of the generator into a first part and a second part;
A first calculation unit that associates and stores in the first table a value of the first part that changes in a predetermined range and a value calculated by raising the power of the generation source by the value of the first part ;
The value of the second part that changes in an area different from the area where the value of the first part changes and the value of the automorphism map corresponding to the value of the second part are stored in the second table in association with each other . A second computing unit;
The value calculated by raising the generator stored in the first table to a power and the value of the automorphism stored in the second table are compared, and the first part associated with the matched value And an encryption key analysis unit for analyzing the encryption key by calculating a solution of the elliptic curve discrete logarithm problem based on the value of the second part and the value of the second part .
コンピュータに
楕円曲線離散対数問題の解を楕円曲線上の点に対応する生成元のべき乗で示し、前記生成元のべき乗部分を第1部分と第2部分に分割する分割手順と、
所定の値域で変化する前記第1部分の値と、前記第1部分の値によって前記生成元をべき乗することで算出される値とを対応付けて第1テーブルに格納する第1演算手順と、
前記第1部分の値が変化する領域とは異なる領域で変化する前記第2部分の値と、前記第2部分の値に対応する自己同型写像の値とを対応付けて第2テーブルに格納する第2演算手順と、
前記第1テーブルに格納された生成元をべき乗することで算出される値と前記第2テーブルに格納された自己同型写像の値とを比較し、一致した値に対応付けられた前記第1部分の値と前記第2部分の値とを基にして、前記楕円曲線離散対数問題の解を算出することで暗号鍵を解析する暗号鍵解析手順と
を実行させることを特徴とする暗号鍵解析プログラム。
A dividing procedure for indicating to the computer a solution of the elliptic curve discrete logarithm problem by a power of a generator corresponding to a point on the elliptic curve, and dividing the power part of the generator into a first part and a second part;
A first calculation procedure for associating and storing in the first table a value of the first part that changes in a predetermined range and a value calculated by raising the power of the generator by the value of the first part ;
The value of the second part that changes in an area different from the area where the value of the first part changes and the value of the automorphism map corresponding to the value of the second part are stored in the second table in association with each other . A second calculation procedure;
The value calculated by raising the generator stored in the first table to a power and the value of the automorphism stored in the second table are compared, and the first part associated with the matched value And a cryptographic key analysis procedure for analyzing the cryptographic key by calculating a solution of the elliptic curve discrete logarithm problem based on the value of the second part and the value of the second part .
JP2010172796A 2010-07-30 2010-07-30 Encryption key analysis method, encryption key analysis device, and encryption key analysis program Active JP5640531B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010172796A JP5640531B2 (en) 2010-07-30 2010-07-30 Encryption key analysis method, encryption key analysis device, and encryption key analysis program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010172796A JP5640531B2 (en) 2010-07-30 2010-07-30 Encryption key analysis method, encryption key analysis device, and encryption key analysis program

Publications (2)

Publication Number Publication Date
JP2012032646A JP2012032646A (en) 2012-02-16
JP5640531B2 true JP5640531B2 (en) 2014-12-17

Family

ID=45846107

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010172796A Active JP5640531B2 (en) 2010-07-30 2010-07-30 Encryption key analysis method, encryption key analysis device, and encryption key analysis program

Country Status (1)

Country Link
JP (1) JP5640531B2 (en)

Also Published As

Publication number Publication date
JP2012032646A (en) 2012-02-16

Similar Documents

Publication Publication Date Title
Liu et al. Efficient and privacy-preserving outsourced calculation of rational numbers
JP6083234B2 (en) Cryptographic processing device
JP6697506B2 (en) System and method for fast public key encryption with an associated private key portion
KR102251697B1 (en) Encryption apparatus, method for encryption and computer-readable recording medium
CN109039640B (en) Encryption and decryption hardware system and method based on RSA cryptographic algorithm
JP4137385B2 (en) Encryption method using public and private keys
CN107004084B (en) Multiplicative mask for cryptographic operations
US9680647B2 (en) Method of using a token in cryptography
JP5648177B2 (en) Protection of prime generation against side channel attacks
JP2010277085A (en) Protection of prime number generation in rsa algorithm
US8548161B2 (en) Crytographically transforming data text
JPWO2016088453A1 (en) Encryption device, decryption device, encryption processing system, encryption method, decryption method, encryption program, and decryption program
CN114866221A (en) Improved addition homomorphic encryption method supporting floating point operation
US11418334B2 (en) Protecting modular inversion operation from external monitoring attacks
TWI686722B (en) Exponent splitting for cryptographic operations
Wu et al. On the improvement of wiener attack on rsa with small private exponent
US10333699B1 (en) Generating a pseudorandom number based on a portion of shares used in a cryptographic operation
JP5540933B2 (en) Encryption key analysis method, encryption key analysis device, and encryption key analysis program
JP5679344B2 (en) Signature key obfuscation system, signature key obfuscation method, encryption signature system using obfuscated signature key, encryption signature method and program using obfuscated signature key
JP5640531B2 (en) Encryption key analysis method, encryption key analysis device, and encryption key analysis program
Kayode et al. Efficient RSA cryptosystem decryption based on Chinese remainder theorem and strong prime
JP4836208B2 (en) Encryption / decryption program, encryption / decryption device, and multiplication device for expansion field
JP2017223822A (en) Cipher text processing system, cipher text processing server, and cipher text processing method
US11343070B2 (en) System and method for performing a fully homomorphic encryption on a plain text
Munjal et al. Analysing RSA and PAILLIER homomorphic Property for security in Cloud

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130403

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140225

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140415

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: 20140930

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141013

R150 Certificate of patent or registration of utility model

Ref document number: 5640531

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150