JP5505173B2 - LIST GENERATION DEVICE, LIST GENERATION METHOD, AND LIST GENERATION PROGRAM - Google Patents

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

Info

Publication number
JP5505173B2
JP5505173B2 JP2010172899A JP2010172899A JP5505173B2 JP 5505173 B2 JP5505173 B2 JP 5505173B2 JP 2010172899 A JP2010172899 A JP 2010172899A JP 2010172899 A JP2010172899 A JP 2010172899A JP 5505173 B2 JP5505173 B2 JP 5505173B2
Authority
JP
Japan
Prior art keywords
point
value
list generation
list
elliptic curve
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010172899A
Other languages
Japanese (ja)
Other versions
JP2012032650A (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 JP2010172899A priority Critical patent/JP5505173B2/en
Publication of JP2012032650A publication Critical patent/JP2012032650A/en
Application granted granted Critical
Publication of JP5505173B2 publication Critical patent/JP5505173B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、リスト生成装置、リスト生成方法およびリスト生成プログラムに関する。   The present invention relates to a list generation device, a list generation method, and a list generation program.

近年、ネットショッピングやネットバンキングが普及している。ネットショッピングやネットバンキングにおいて通信を行う場合には、情報漏洩などを防止するために、共通鍵暗号などの暗号技術が利用されている。   In recent years, online shopping and online banking have become widespread. When performing communication in online shopping or online banking, encryption techniques such as common key encryption are used to prevent information leakage.

公開鍵暗号は、対になる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. In contrast, 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.

この公開鍵暗号は、公開鍵を公開しても安全性を確保できるように、数学的に難しいとされている問題に基づいて設計されている。例えば、公開鍵暗号は、離散対数問題に基づいて設計される。この離散対数問題は、p個の元からなる可換群の生成元G、α∈Zpとした場合に、G、Gαからαを求めるというものである。 This public key encryption is designed based on a mathematically difficult problem so that security can be ensured even if the public key is disclosed. For example, public key cryptography is designed based on the discrete logarithm problem. This discrete logarithm problem is that α is obtained from G and G α when a generator G of a commutative group consisting of p elements and αεZp.

また、上記離散対数問題に補助情報dを加え、G、Gα

Figure 0005505173
からαを求めるという補助情報付きの離散対数問題がある。この補助情報付きの離散対数問題を解くアルゴリズムとして、Cheonらの論文では、決定的アルゴリズムと確率的アルゴリズムとが示されている。dは、位数rから1を減算した値の約数に対応する。 Further, auxiliary information d is added to the discrete logarithm problem, and G, G α ,
Figure 0005505173
There is a discrete logarithm problem with auxiliary information to find α from In the paper of Cheon et al., A deterministic algorithm and a stochastic algorithm are shown as algorithms for solving this discrete logarithm problem with auxiliary information. d corresponds to a divisor of a value obtained by subtracting 1 from the order r.

このうち決定的アルゴリズムは、計算量が膨大であるため、この決定的アルゴリズムを用いて離散対数問題を解くことは現実的に難しい。このため、Cheonらは、「Pollard's kangaroo algorithm」を適用することで計算量を削減した確率的アルゴリズムを提案している。この確率的アルゴリズムは、上記離散対数問題に対してだけではなく、楕円曲線上の離散対数問題にも適用されている。楕円曲線上の離散対数問題を楕円曲線離散対数問題と表記する。楕円曲線離散対数問題は、楕円曲線上の3点G、G=αG、G=αGから未知数αを求める問題である。 Of these, the deterministic algorithm has an enormous amount of calculation, and it is practically difficult to solve the discrete logarithm problem using this deterministic algorithm. For this reason, Cheon et al. Have proposed a stochastic algorithm that reduces the amount of computation by applying the “Pollard's kangaroo algorithm”. This probabilistic algorithm is applied not only to the discrete logarithm problem but also to a discrete logarithm problem on an elliptic curve. A discrete logarithm problem on an elliptic curve is expressed as an elliptic curve discrete logarithm problem. The elliptic curve discrete logarithm problem is a problem of finding an unknown α from three points G, G 1 = αG, G d = α d G on the elliptic curve.

この確率的アルゴリズムでは、G、Gから検索したk1と、G、Gから検索したk2とを用いて未知数αを求める。ここで、確率的アルゴリズムが、k1、k2を求める場合には、楕円曲線上の特徴点(distinguished point)を収集したリストが利用される。確率的アルゴリズムにおいてリストを生成する場合には、ランダムウォーク関数に楕円曲線上の点を順次代入した値に基づいて、楕円曲線上の点を順次スカラ倍算することで特徴点を求める。 In the probabilistic algorithm, G, and k1 retrieved from G d, G, determine the unknowns α using and k2 retrieved from G 1. Here, when the probabilistic algorithm obtains k1 and k2, a list in which characteristic points (distinguished points) on an elliptic curve are collected is used. When a list is generated by the probabilistic algorithm, feature points are obtained by sequentially multiplying points on the elliptic curve based on values obtained by sequentially substituting the points on the elliptic curve into the random walk function.

なお、ランダムウォーク関数を利用してリストを作成するためには、膨大な繰り返し処理が必要となる。このため従来では、リストを作成する場合の初期点を多数設定することで、複数のコンピュータで並列処理を行い、リストを作成する場合の処理負荷を分散させている。   In addition, in order to create a list using a random walk function, enormous repetition processing is required. For this reason, conventionally, by setting a large number of initial points when creating a list, parallel processing is performed by a plurality of computers, and the processing load when creating a list is distributed.

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

コンピュータがリストを生成する場合には、楕円曲線上の点に対してスカラ倍算を実行する必要があり、このスカラ倍算の計算コストが非常に大きいものとなる。このため、スカラ倍算の計算コストを抑え、リストを生成する処理を高速化することが求められる。   When the computer generates the list, it is necessary to perform scalar multiplication on the points on the elliptic curve, and the calculation cost of this scalar multiplication becomes very high. For this reason, it is required to reduce the calculation cost of scalar multiplication and to speed up the process of generating a list.

開示の技術は、上記に鑑みてなされたものであって、スカラ倍算の計算コストを抑え、リストを生成する処理を高速化することができるリスト生成装置、リスト生成方法およびリスト生成プログラムを提供することを目的とする。   The disclosed technology has been made in view of the above, and provides a list generation device, a list generation method, and a list generation program capable of reducing the calculation cost of scalar multiplication and speeding up the process of generating a list The purpose is to do.

本願の開示するリスト生成装置は、楕円曲線上の所定の点をそれぞれ異なるスカラ値によってスカラ倍算した値を複数記憶する固定点テーブルと、前記楕円曲線上の点に対してランダムウォーク関数を用いることで前記楕円曲線上の点を算出し、算出した点を記憶部に記憶する疑似ランダム関数適用部と、前記記憶部に記憶された点の値を合計し、合計した値に基づいてスカラ値を生成するスカラ値生成部と、前記固定点テーブルに記憶された各値のうち、前記スカラ値に対応する値の組あわせを判定し、判定した各値を加算することで、前記楕円曲線上の点から該楕円曲線上の次の点を算出する点算出部と、前記点算出部が算出した各点を収集し、リストを生成するリスト生成部とを備えたことを要件とする。   The list generation apparatus disclosed in the present application uses a fixed point table that stores a plurality of values obtained by multiplying predetermined points on an elliptic curve by different scalar values, and a random walk function for the points on the elliptic curve. The points on the elliptic curve are calculated, a pseudo random function application unit that stores the calculated points in the storage unit, and the values of the points stored in the storage unit are summed, and a scalar value based on the total value A combination of a value corresponding to the scalar value among the values stored in the fixed point table and adding the determined values to each other on the elliptic curve. A point calculation unit that calculates the next point on the elliptic curve from the point and a list generation unit that collects each point calculated by the point calculation unit and generates a list.

本願の開示するリスト生成装置の一つの態様によれば、スカラ倍算の計算コストを抑え、リストを生成する処理を高速化することという効果を奏する。   According to one aspect of the list generation device disclosed in the present application, it is possible to reduce the calculation cost of scalar multiplication and to speed up the process of generating a list.

図1は、Cheonらの確率的アルゴリズムの処理手順を示すフローチャートである。FIG. 1 is a flowchart showing the processing procedure of the stochastic algorithm of Cheon et al. 図2は、従来の衝突検出処理の処理手順を示すフローチャートである。FIG. 2 is a flowchart showing a processing procedure of a conventional collision detection process. 図3は、従来のリスト生成処理の処理手順を示すフローチャートである。FIG. 3 is a flowchart showing a processing procedure of conventional list generation processing. 図4は、確率的アルゴリズムを並列処理する場合の処理手順を示すフローチャート(1)である。FIG. 4 is a flowchart (1) showing a processing procedure when the stochastic algorithm is processed in parallel. 図5は、確率的アルゴリズムを並列処理する場合の処理手順を示すフローチャート(2)である。FIG. 5 is a flowchart (2) showing a processing procedure when the probabilistic algorithm is processed in parallel. 図6は、従来のリスト生成装置の構成を示す図である。FIG. 6 is a diagram illustrating a configuration of a conventional list generation apparatus. 図7は、従来のリスト生成装置の処理手順を示すフローチャートである。FIG. 7 is a flowchart showing a processing procedure of the conventional list generation apparatus. 図8は、従来の固定点テーブルのデータ構造の一例を示す図である。FIG. 8 is a diagram illustrating an example of a data structure of a conventional fixed point table. 図9は、本実施例にかかるシステムの構成を示す図である。FIG. 9 is a diagram illustrating the configuration of the system according to the present embodiment. 図10は、リスト生成装置の構成を示す図である。FIG. 10 is a diagram illustrating a configuration of the list generation device. 図11は、固定点テーブルのデータ構造の一例を示す図である。FIG. 11 is a diagram illustrating an example of the data structure of the fixed point table. 図12は、各スカラ倍算計算部が算出するGi+1が同じことを説明するための図である。FIG. 12 is a diagram for explaining that G i + 1 calculated by each scalar multiplication calculation unit is the same. 図13は、本実施例にかかるリスト生成装置の処理手順を示すフローチャートである。FIG. 13 is a flowchart illustrating the processing procedure of the list generation device according to the present embodiment. 図14は、本実施例にかかるシステムの処理手順を示すフローチャート(1)である。FIG. 14 is a flowchart (1) illustrating the processing procedure of the system according to the present embodiment. 図15は、本実施例にかかるシステムの処理手順を示すフローチャート(2)である。FIG. 15: is a flowchart (2) which shows the process sequence of the system concerning a present Example. 図16は、固定点テーブルを生成する処理手順を示すフローチャートである。FIG. 16 is a flowchart showing a processing procedure for generating a fixed point table. 図17は、リスト生成プログラムを実行するコンピュータを示す図である。FIG. 17 is a diagram illustrating a computer that executes a list generation program.

まず、本願の開示する暗号鍵解読装置における技術を説明するうえで前提となる技術を図面を利用して説明する。   First, a technique that is a prerequisite for explaining the technique in the encryption key decryption apparatus disclosed in the present application will be described with reference to the drawings.

まず、補助情報付きの楕円曲線離散対数問題を解くCheonらの確率的アルゴリズムの処理手順について説明する。図1は、Cheonらの確率的アルゴリズムの処理手順を示すフローチャートである。   First, the processing procedure of the stochastic algorithm of Cheon et al. For solving the elliptic curve discrete logarithm problem with auxiliary information will be described. FIG. 1 is a flowchart showing the processing procedure of the stochastic algorithm of Cheon et al.

図1に示すように、確率的アルゴリズムでは、E、G、G、G、lenを取得する(ステップS10)。ここで、Eは、楕円曲線の各種パラメータである。G、G、Gは、楕円曲線上の点であり、G=αG、G=αGとする。lenは、リストを生成する場合に利用する閾値である。lenは、楕円曲線の点Gの位数rの4乗根程度の値が設定される。 As shown in FIG. 1, in the probabilistic algorithm, E, G, G 1 , G d , and len are acquired (step S10). Here, E is various parameters of the elliptic curve. G, G 1 , and G d are points on the elliptic curve, and G 1 = αG and G d = α d G. len is a threshold used when a list is generated. len is set to a value about the fourth root of the order r of the point G of the elliptic curve.

確率的アルゴリズムでは、Zの生成元ζを生成し(ステップS11)、sおよびs’を設定する(ステップS12)。ステップS12において、sは「(r−1)/d」により算出される。また、s’はdに対応する。 The probabilistic algorithm, to generate the origin ζ of Z r (step S11), and sets the s and s' (step S12). In step S12, s is calculated by “(r−1) / d”. S ′ corresponds to d.

確率的アルゴリズムでは、E、G、G、s、s’、ζ、lenを基にして、衝突検出処理を実行することでk1を得る(ステップS13)。また、確率的アルゴリズムでは、E、G、G、s、s’、ζ、lenを基にして、衝突検出処理を実行することでk2を得る(ステップS14)。 In the probabilistic algorithm, k1 is obtained by executing the collision detection process based on E, G, G d , s, s ′, ζ, and len (step S13). In the probabilistic algorithm, k2 is obtained by executing the collision detection process based on E, G, G 1 , s, s ′, ζ, and len (step S14).

確率的アルゴリズムでは、k1、k2を基にしてαを算出し(ステップS15)、αを出力する(ステップS16)。ステップS15において、αは、「

Figure 0005505173
」により算出される。 In the stochastic algorithm, α is calculated based on k1 and k2 (step S15), and α is output (step S16). In step S15, α is “
Figure 0005505173
] Is calculated.

次に、図1のステップS13およびステップS14に示した衝突検出処理の処理手順について説明する。図2は、従来の衝突検出処理の処理手順を示すフローチャートである。図2のフローチャートでは、G、G’を用いて説明する。図1の確率的アルゴリズムにおいて、E、G、G、s、s’、ζ、lenを基にして衝突検出処理を実行する場合には、Gは、Gに対応し、G’はGに対応する。これに対して、E、G、G、s、s’、ζ、lenを基にして衝突検出処理を実行する場合には、Gは、Gに対応し、G’はGに対応する。 Next, the process procedure of the collision detection process shown in step S13 and step S14 of FIG. 1 will be described. FIG. 2 is a flowchart showing a processing procedure of a conventional collision detection process. In the flowchart of FIG. 2, description will be made using G 0 and G ′ 0 . In the probabilistic algorithm of FIG. 1, when the collision detection process is executed based on E, G, G d , s, s ′, ζ, len, G 0 corresponds to G, and G ′ 0 Corresponds to Gd . On the other hand, when the collision detection process is executed based on E, G, G 1 , s, s ′, ζ, and len, G 0 corresponds to G, and G ′ 0 corresponds to G 1 . Correspond.

図2に示すように、衝突検出処理では、E、G、ζs’、lenを基にして、リスト生成処理を実行することで、list1を得る(ステップS20)。衝突検出処理では、E、G’、ζs’、lenを基にして、リスト生成処理を実行することで、list2を得る(ステップS21)。 As shown in FIG. 2, in the collision detection process, list1 is obtained by executing the list generation process based on E, G 0 , ζ s ′ , and len (step S20). In the collision detection process, list2 is obtained by executing the list generation process based on E, G ′ 0 , ζ s ′ , and len (step S21).

衝突検出処理では、list1とlist2とを比較して、衝突が発生する場合のインデックスv、uを判定する(ステップS22)。衝突検出処理では、インデックスv、uを基にして、kを算出し(ステップS23)、kを出力する(ステップS24)。ステップS23においてkは、「

Figure 0005505173
」によって算出される。 In the collision detection process, list 1 and list 2 are compared to determine indexes v and u when a collision occurs (step S22). In the collision detection process, k is calculated based on the indices v and u (step S23), and k is output (step S24). In step S23, k is “
Figure 0005505173
".

なお、上記kを算出する式において、fは疑似ランダム関数である。たとえばfは、楕円曲線上の点G=(x、y)が与えられた時に、x mod sを返す関数である。また、ランダムウォーク関数Fは、楕円曲線の点Gを他の楕円曲線上の点に写像する関数で、「

Figure 0005505173
」によって定義される。 In the above equation for calculating k, f s is a pseudo random function. For example, f s is a function that returns x mod s when a point G = (x, y) on the elliptic curve is given. The random walk function F s is a function that maps the point G of the elliptic curve to a point on another elliptic curve.
Figure 0005505173
”.

例えば、E、G、G、s、s’、ζ、lenを基にして衝突検出処理を実行する場合には、上記kを算出する式により、k1が求められる。これに対して、E、G、G、s、s’、ζ、lenを基にして衝突検出処理を実行する場合には、上記kを算出する式により、k2が求められる。 For example, when the collision detection process is executed based on E, G, G d , s, s ′, ζ, and len, k1 is obtained by the equation for calculating k. On the other hand, when the collision detection process is executed based on E, G, G 1 , s, s ′, ζ, and len, k2 is obtained by the equation for calculating k.

次に、図2のステップS20およびステップS21に示したリスト生成処理の処理手順について説明する。図3は、従来のリスト生成処理の処理手順を示すフローチャートである。図3に示すように、リスト生成処理では、iの値を初期値に設定し(ステップS30)、Gi+1の値を算出する(ステップS31)。ステップS31において、Gi+1は、「

Figure 0005505173
」によって算出される。 Next, the process procedure of the list generation process shown in step S20 and step S21 of FIG. 2 will be described. FIG. 3 is a flowchart showing a processing procedure of conventional list generation processing. As shown in FIG. 3, in the list generation process, the value of i is set to an initial value (step S30), and the value of G i + 1 is calculated (step S31). In step S31, G i + 1 is “
Figure 0005505173
".

リスト生成処理では、Gi+1の値が特徴点(distinguished point)であるか否かを判定する(ステップS32)。ステップS32において、リスト生成処理では、Gi+1の値の一部が所定の値となっている場合は、楕円曲線の点Gi+1の値が特徴点であると判定する。 In the list generation process, it is determined whether or not the value of G i + 1 is a characteristic point (distinguished point) (step S32). In step S32, in the list generation process, if a part of the value of G i + 1 is a predetermined value, it is determined that the value of the point G i + 1 of the elliptic curve is a feature point.

リスト生成処理では、Gi+1の値が特徴点ではないと判定した場合には(ステップS32,No)、ステップS34に移行する。一方、リスト生成処理では、Gi+1の値が特徴点であると判定した場合には(ステップS32,Yes)、listにGi+1の値を登録する(ステップS33)。 In the list generation process, when it is determined that the value of G i + 1 is not a feature point (No in step S32), the process proceeds to step S34. On the other hand, in the list generation process, when it is determined that the value of G i + 1 is a feature point (step S32, Yes), the value of G i + 1 is registered in the list (step S33).

リスト生成処理では、iの値に1を加算し(ステップS34)、iの値がlenよりも大きいか否かを判定する(ステップS35)。リスト生成処理では、iの値がlen以下の場合には(ステップS35,No)、ステップS31に移行する。一方、リスト生成処理では、iの値がlenよりも大きい場合には(ステップS35,Yes)、処理を終了する。   In the list generation process, 1 is added to the value of i (step S34), and it is determined whether the value of i is larger than len (step S35). In the list generation process, when the value of i is equal to or less than len (No in step S35), the process proceeds to step S31. On the other hand, in the list generation process, when the value of i is larger than len (step S35, Yes), the process ends.

ステップS33において、リスト生成処理では、インデックスiと、Gi+1の値とを対応付けて、listに登録するものとする。また、E、G、ζs’、lenを基にしてリスト生成処理を実行する場合には、上記listは、list1に対応する。この場合、listのインデックスiは、list1のインデックスvに対応する。 In step S33, in the list generation process, the index i and the value of G i + 1 are associated with each other and registered in the list. When the list generation process is executed based on E, G 0 , ζs ′, and len, the list corresponds to list1. In this case, the index i of list corresponds to the index v of list1.

また、E、G’、ζs’、lenを基にしてリスト生成処理を実行する場合には、上記listは、list2に対応する。この場合、listのインデックスiは、list2のインデックスuに対応する。 When the list generation process is executed based on E, G ′ 0 , ζs ′, and len, the list corresponds to list2. In this case, the index i of list corresponds to the index u of list2.

現在の楕円曲線離散対数問題では、安全性を確保するために、楕円曲線の点の位数rは2160が利用されている。したがって、上記確率的アルゴリズムを実行する場合には、lenは240程度の値が指定される。lenの値が240に指定されると、図3に示したリスト生成処理を、240回繰り返し実行する必要があり、計算量が膨大なものとなる。 Current elliptic curve discrete logarithm problem, in order to ensure safety, of order r of a point of the elliptic curve 2 160 is utilized. Therefore, when performing the probabilistic algorithm, len is a value of about 2 40 is designated. When the value of len is assigned to 2 40, the list generation process shown in FIG. 3, it is necessary to repeatedly run 2 40 times, the amount of calculation becomes enormous.

図1〜図3に示したアルゴリズムは、複数のコンピュータ0〜nによって並列処理することで高速化を図ることができる。例えば、複数のコンピュータ0〜nは、ネットワークを介して相互に接続されており、協働して並列処理を実行する。この並列処理では、複数のコンピュータ1〜nがそれぞれlistを生成し、コンピュータ0が各listを収集する。コンピュータ0は、各listを利用して、未知数αを算出する。   The algorithm shown in FIGS. 1 to 3 can be speeded up by parallel processing by a plurality of computers 0 to n. For example, the plurality of computers 0 to n are connected to each other via a network and cooperate to execute parallel processing. In this parallel processing, the plurality of computers 1 to n each generate a list, and the computer 0 collects each list. The computer 0 calculates an unknown α using each list.

図4および図5は、確率的アルゴリズムを並列処理する場合の処理手順を示すフローチャートである。なお、図4のステップS40〜S43の処理、図5のステップS50〜S52、S59〜S62の処理は、コンピュータ0が実行する処理とする。図4のステップS44の処理は、コンピュータ1〜n/4がそれぞれlistを生成する処理とする。図4のステップS47の処理は、コンピュータn/4〜n/2がそれぞれlistを生成する処理とする。図5のステップS53の処理は、コンピュータn/2〜3n/4がそれぞれlistを生成する処理とする。図5のステップS56の処理は、コンピュータ3n/4〜nがそれぞれlistを生成する処理とする。   FIG. 4 and FIG. 5 are flowcharts showing a processing procedure when the probabilistic algorithms are processed in parallel. The processes in steps S40 to S43 in FIG. 4 and the processes in steps S50 to S52 and S59 to S62 in FIG. 5 are processes executed by the computer 0. The process in step S44 in FIG. 4 is a process in which the computers 1 to n / 4 each generate a list. The process in step S47 in FIG. 4 is a process in which the computers n / 4 to n / 2 each generate a list. The processing in step S53 in FIG. 5 is processing in which the computers n / 2 to 3n / 4 each generate a list. The processing in step S56 in FIG. 5 is processing in which the computers 3n / 4 to n each generate a list.

図4に示すように、並列処理では、E、G、G、G、lenを取得し(ステップS40)、生成元ζを生成する(ステップS41)。また、並列処理では、sおよびs’を算出し(ステップS42)、iの値を初期値に設定する(ステップS43)。 As shown in FIG. 4, in parallel processing, E, G, G 1 , G d , and len are acquired (step S40), and a generation source ζ is generated (step S41). In parallel processing, s and s ′ are calculated (step S42), and the value of i is set to an initial value (step S43).

並列処理では、E、G、ζs’、lenを基にして、リスト生成処理を実行することで、list1を得る(ステップS44)。並列処理では、iの値に1を加算し(ステップS45)、iの値がn/4よりも大きいか否かを判定する(ステップS46)。iの値がn/4以下の場合には(ステップS46,No)、ステップS44に移行する。 In the parallel processing, list1 is obtained by executing list generation processing based on E, G i , ζ s ′ , and len (step S44). In the parallel processing, 1 is added to the value of i (step S45), and it is determined whether or not the value of i is larger than n / 4 (step S46). When the value of i is n / 4 or less (No in step S46), the process proceeds to step S44.

一方、iの値がn/4よりも大きい場合には(ステップS46,Yes)、並列処理では、E、Gid、ζs’、lenを基にして、リスト生成処理を実行することで、list2を得る(ステップS47)。並列処理では、iの値に1を加算し(ステップS48)、iの値がn/2よりも大きいか否かを判定する(ステップS49)。iの値がn/2以下の場合には(ステップS49,No)、ステップS47に移行する。 On the other hand, when the value of i is larger than n / 4 (step S46, Yes), in parallel processing, by executing list generation processing based on E, G id , ζ s ′ , and len, list2 is obtained (step S47). In the parallel processing, 1 is added to the value of i (step S48), and it is determined whether or not the value of i is larger than n / 2 (step S49). When the value of i is n / 2 or less (step S49, No), the process proceeds to step S47.

一方、iの値がn/2よりも大きい場合には(ステップS49,Yes)、並列処理では、list1とlist2とを比較して、衝突が発生する場合のインデックスv、uを判定する(ステップS50)。   On the other hand, when the value of i is larger than n / 2 (step S49, Yes), in parallel processing, list1 and list2 are compared to determine indexes v and u when a collision occurs (step S49). S50).

並列処理では、k1を算出する(ステップS51)。k1は、「

Figure 0005505173
」によって算出される。並列処理では、sおよびs’を設定する(ステップS52)。sはdに対応する。s’は「(r−1)/d」により算出される。 In parallel processing, k1 is calculated (step S51). k1 is "
Figure 0005505173
". In the parallel processing, s and s ′ are set (step S52). s corresponds to d. s ′ is calculated by “(r−1) / d”.

並列処理では、E、G、ζs’、lenを基にして、リスト生成処理を実行することで、list3を得る(ステップS53)。並列処理では、iの値に1を加算し(ステップS54)、iの値が3n/4よりも大きいか否かを判定する(ステップS55)。iの値が3n/4以下の場合には(ステップS55,No)、ステップS53に移行する。 In parallel processing, list3 is obtained by executing list generation processing based on E, G i , ζ s ′ , and len (step S53). In the parallel processing, 1 is added to the value of i (step S54), and it is determined whether or not the value of i is larger than 3n / 4 (step S55). When the value of i is 3n / 4 or less (step S55, No), the process proceeds to step S53.

一方、iの値が3n/4よりも大きい場合には(ステップS55,Yes)、並列処理では、E、G1i、ζs’、lenを基にして、リスト生成処理を実行することで、list4を得る(ステップS56)。並列処理では、iの値に1を加算し(ステップS57)、iの値がnより大きいか否かを判定する(ステップS58)。iの値がn以下の場合には(ステップS58,No)、ステップS56に移行する。 On the other hand, when the value of i is larger than 3n / 4 (step S55, Yes), in parallel processing, by executing list generation processing based on E, G 1i , ζ s ′ , len, list4 is obtained (step S56). In the parallel processing, 1 is added to the value of i (step S57), and it is determined whether or not the value of i is larger than n (step S58). When the value of i is n or less (step S58, No), the process proceeds to step S56.

一方、iの値がnよりも大きい場合には(ステップS58,Yes)、並列処理では、list3とlist4とを比較して、衝突が発生する場合のインデックスv、uを判定する(ステップS59)。   On the other hand, when the value of i is larger than n (step S58, Yes), in the parallel processing, list3 and list4 are compared to determine indexes v and u when a collision occurs (step S59). .

並列処理では、k2を算出する(ステップS60)。k2は「

Figure 0005505173
」によって算出される。並列処理では、k1およびk2を基にしてαを算出し(ステップS61)、αを出力する(ステップS62)。 In the parallel processing, k2 is calculated (step S60). k2 is "
Figure 0005505173
". In the parallel processing, α is calculated based on k1 and k2 (step S61), and α is output (step S62).

図4および図5に示した処理手順によってコンピュータ0〜nが並列処理を実行することで、リストを生成する処理負荷を分散させることができる。   When the computers 0 to n execute parallel processing according to the processing procedure shown in FIGS. 4 and 5, the processing load for generating the list can be distributed.

次に、図3に示したリスト生成処理を実行するリスト生成装置の構成について説明する。図6は、従来のリスト生成装置の構成を示す図である。図6に示すように、このリスト生成装置は、入力部11、繰り返し判定部12、記憶部13、スカラ値生成部14、スカラ倍算計算部15、特徴点判定部16、点出力部17を有する。   Next, the configuration of the list generation device that executes the list generation processing shown in FIG. 3 will be described. FIG. 6 is a diagram illustrating a configuration of a conventional list generation apparatus. As shown in FIG. 6, the list generation device includes an input unit 11, a repetition determination unit 12, a storage unit 13, a scalar value generation unit 14, a scalar multiplication calculation unit 15, a feature point determination unit 16, and a point output unit 17. Have.

入力部11は、リストを作成するためのパラメータを受け付け、受け付けたパラメータを繰り返し判定部12、スカラ値生成部14、スカラ倍算計算部15に出力する処理部である。入力部11は、キーボードなどの入力装置からパラメータを受け付けても良いし、他の装置と情報通信を行ってパラメータを取得しても良い。   The input unit 11 is a processing unit that receives parameters for creating a list and outputs the received parameters to the repetition determination unit 12, the scalar value generation unit 14, and the scalar multiplication calculation unit 15. The input unit 11 may receive parameters from an input device such as a keyboard, or may acquire parameters by performing information communication with other devices.

パラメータには、E、G、ζs’、lenが含まれる。入力部11は、パラメータのうち、E、Gをスカラ倍算計算部15に出力し、E、ζs’をスカラ値生成部14に出力する。また、入力部11は、lenを繰り返し判定部12に出力する。 The parameters include E, G 0 , ζ s ′ , and len. The input unit 11 outputs E and G 0 of the parameters to the scalar multiplication calculation unit 15 and outputs E and ζ s ′ to the scalar value generation unit 14. Further, the input unit 11 outputs len to the determination unit 12 repeatedly.

繰り返し判定部12は、GからGi+1を計算する回数をカウントする処理部である。繰り返し判定部12は、GからGi+1が計算された回数をどのようにカウントしてもよい。例えば、繰り返し判定部12は、スカラ倍算計算部15が、Gi+1の計算結果を出力する度に、計算回数をカウントする。 Repetition determining unit 12 is a processing unit for counting the number of times of calculating the G i + 1 from the G i. Repetition determining unit 12 may count how the number of G i + 1 from the G i is calculated. For example, the repetition determination unit 12 counts the number of calculations each time the scalar multiplication calculation unit 15 outputs the calculation result of G i + 1 .

繰り返し判定部12は、カウントした計算回数が、lenを超えた場合に、リスト生成処理を終了すると判定する。例えば、繰り返し判定部12は、リスト生成処理を終了すると判定した場合には、スカラ値生成部14およびスカラ倍算計算部15を制御して、処理を終了させる。   The repetition determination unit 12 determines to end the list generation process when the counted number of calculations exceeds len. For example, when it is determined that the list generation process is to be ended, the repetition determination unit 12 controls the scalar value generation unit 14 and the scalar multiplication calculation unit 15 to end the process.

記憶部13は、スカラ倍算計算部15の算出結果を記憶する記憶部である。   The storage unit 13 is a storage unit that stores the calculation result of the scalar multiplication calculation unit 15.

スカラ値生成部14は、Gから

Figure 0005505173
を算出する処理部である。図6に示すように、スカラ値生成部14は、ランダム関数部14aおよび冪乗余剰計算部14bを有する。 The scalar value generator 14 starts from G i
Figure 0005505173
Is a processing unit for calculating. As shown in FIG. 6, the scalar value generation unit 14 includes a random function unit 14a and a power surplus calculation unit 14b.

ランダム関数部14aは、Gからf(G)を算出する処理部である。例えば、fは楕円曲線上の点G=(x、y)が与えられた場合に、「x mod s」を返す関数である。ランダム関数部14aは、f(G)を冪乗余剰計算部14bに出力する。なお、ランダム関数部14aは、Gの初期値となるGを、入力部11から取得する。また、ランダム関数部14aは、初期値以外のGの値を記憶部13から取得する。 Random function unit 14a is a processing unit for calculating the f s (G i) from the G i. For example, f s is a function that returns “x mod s” when a point G = (x, y) on the elliptic curve is given. The random function unit 14a outputs f s (G i ) to the power surplus calculation unit 14b. Note that the random function unit 14 a acquires G 0 as an initial value of G i from the input unit 11. Further, the random function unit 14a acquires the value of G i other than the initial value from the storage unit 13.

冪乗余剰計算部14bは、f(G)とζs’とを取得して、

Figure 0005505173
を算出する処理部である。冪乗余剰計算部14bは、
Figure 0005505173
をスカラ倍算計算部15に出力する。 The power surplus calculation unit 14b acquires f s (G i ) and ζ s ′, and
Figure 0005505173
Is a processing unit for calculating. The power surplus calculation unit 14b
Figure 0005505173
Is output to the scalar multiplication calculation unit 15.

スカラ倍算計算部15は、G

Figure 0005505173
とを取得して、Gi+1を計算する処理部である。スカラ倍算計算部15は、Gi+1を「
Figure 0005505173
」によって計算する。スカラ倍算計算部15は、Gi+1を記憶部13に記憶する。また、スカラ倍算計算部15は、Gi+1を特徴点判定部16に出力する。 The scalar multiplication calculation unit 15 calculates G i
Figure 0005505173
And a processing unit that calculates G i + 1 . The scalar multiplication calculation unit 15 sets G i + 1 to “
Figure 0005505173
To calculate. The scalar multiplication calculation unit 15 stores G i + 1 in the storage unit 13. Further, the scalar multiplication calculation unit 15 outputs G i + 1 to the feature point determination unit 16.

特徴点判定部16は、Gi+1が特徴点であるか否かを判定する処理部である。例えば、特徴点判定部16は、Gi+1の値の一部が所定の値となっている場合に、Gi+1を特徴点であると判定する。特徴点判定部16は、特徴点と判定したGi+1を点出力部17に出力する。 The feature point determination unit 16 is a processing unit that determines whether or not G i + 1 is a feature point. For example, the feature point determination unit 16 determines that G i + 1 is a feature point when a part of the value of G i + 1 is a predetermined value. The feature point determination unit 16 outputs G i + 1 determined as the feature point to the point output unit 17.

点出力部17は、特徴点と判定されたGi+1をテーブルに登録することで、listを生成する処理部である。点出力部17は、listの情報を外部装置に出力する。 The point output unit 17 is a processing unit that generates a list by registering G i + 1 determined as a feature point in a table. The point output unit 17 outputs the list information to an external device.

次に、図6に示したリスト生成装置10の処理手順について説明する。図7は、従来のリスト生成装置の処理手順を示すフローチャートである。図7に示すように、リスト生成装置10は、iの値を初期値に設定し(ステップS70)、ランダム関数にGを入力し、入力結果f(G)を得る(ステップS71)。 Next, a processing procedure of the list generation device 10 shown in FIG. 6 will be described. FIG. 7 is a flowchart showing a processing procedure of the conventional list generation apparatus. As shown in FIG. 7, the list generation apparatus 10 sets the value of i to an initial value (step S70), inputs G i to the random function, and obtains an input result f s (G i ) (step S71). .

リスト生成装置10は、冪乗余剰計算を実行する(ステップS72)。冪乗余剰計算を実行することで、

Figure 0005505173
が得られる。リスト生成装置10は、スカラ倍算計算を実行し、Gi+1を得る(ステップS73)。 The list generation device 10 performs a power surplus calculation (step S72). By performing the power surplus calculation,
Figure 0005505173
Is obtained. The list generation device 10 executes scalar multiplication calculation to obtain G i + 1 (step S73).

リスト生成装置10は、Gi+1が特徴点であるか否かを判定する(ステップS74)。リスト生成装置10は、Gi+1が特徴点ではない場合には(ステップS74,No)、ステップS76に移行する。 The list generation device 10 determines whether or not G i + 1 is a feature point (step S74). If G i + 1 is not a feature point (No at Step S74), the list generating apparatus 10 proceeds to Step S76.

一方、リスト生成装置10は、Gi+1が特徴点の場合には(ステップS74,Yes)、Gi+1をlistに登録する(ステップS75)。リスト生成装置10は、iに1を加算し(ステップS76)、iの値がlenよりも大きいか否かを判定する(ステップS77)。リスト生成装置10は、iの値がlenよりも大きい場合には(ステップS77,Yes)、処理を終了する。一方、リスト生成装置10は、iの値がlen以下の場合には(ステップS77,No)、ステップS71に移行する。 On the other hand, if G i + 1 is a feature point (Yes in step S74), the list generating apparatus 10 registers G i + 1 in the list (step S75). The list generation device 10 adds 1 to i (step S76), and determines whether the value of i is larger than len (step S77). If the value of i is larger than len (step S77, Yes), the list generation device 10 ends the process. On the other hand, if the value of i is equal to or less than len (step S77, No), the list generation device 10 proceeds to step S71.

リスト生成装置10がlistを生成する場合に実行する各種計算のうち、図7のスカラ倍算計算が主要な計算となる。このため、スカラ倍算計算を高速化することができれば、リスト生成装置10がlistを生成する処理を高速化することができる。   Of various calculations executed when the list generation device 10 generates a list, the scalar multiplication calculation of FIG. 7 is the main calculation. For this reason, if the scalar multiplication calculation can be speeded up, the list generating apparatus 10 can speed up the process of generating the list.

スカラ倍算計算を高速化する手法として、固定点テーブル法と呼ばれる技術が存在する。この固定点テーブル法は、予め複数のスカラ倍算計算を実行して、固定点テーブルに計算結果を格納しておく。そして、固定点テーブル法は、新たにスカラ倍算計算を実行する場合には、固定点テーブルに格納された計算結果を加算することで、スカラ倍算計算を実行する。   As a technique for speeding up the scalar multiplication calculation, there is a technique called a fixed point table method. In this fixed point table method, a plurality of scalar multiplication calculations are executed in advance, and the calculation results are stored in the fixed point table. In the fixed point table method, when a scalar multiplication calculation is newly executed, the scalar multiplication calculation is executed by adding the calculation results stored in the fixed point table.

具体的に、固定点テーブル法について説明する。図8は、従来の固定点テーブルのデータ構造の一例を示す図である。図8に示すように、この固定点テーブルでは、1列目の数値を2倍、3倍した値が格納されている。例えば、1行目では、1G、2G、3Gが格納されている。2行目では、4G、8G、12Gが格納されている。3行目では、16G、32G、48Gが格納されている。4行目では、64G、128G、192Gが格納されている。5行目では、256G、512G、768Gが格納されている。固定点テーブルの各Gは、全て同じ点である。   Specifically, the fixed point table method will be described. FIG. 8 is a diagram illustrating an example of a data structure of a conventional fixed point table. As shown in FIG. 8, in this fixed point table, values obtained by doubling and multiplying the numerical values in the first column are stored. For example, 1G, 2G, and 3G are stored in the first row. In the second row, 4G, 8G, and 12G are stored. In the third row, 16G, 32G, and 48G are stored. In the fourth row, 64G, 128G, and 192G are stored. In the fifth row, 256G, 512G, and 768G are stored. Each G in the fixed point table is the same point.

例えば、固定点テーブル法が、10Gを算出する場合について説明する。この場合、固定点テーブル法では、図8の1行目2列目に格納された2Gと、2行目2列目に格納された8Gとを楕円加算することで、10Gを算出する。10とGとをスカラ倍算するよりも、2Gと8Gとを楕円加算する方が、計算コストが少ない。このため、固定点テーブル法を用いてリスト生成処理を実行することができれば、listを生成する処理を高速化することができる。   For example, a case where the fixed point table method calculates 10G will be described. In this case, in the fixed point table method, 2G stored in the first row and second column in FIG. 8 and 8G stored in the second row and second column are elliptically added to calculate 10G. Rather than multiplying 10 and G by scalar multiplication, the calculation cost is lower when 2G and 8G are elliptically added. For this reason, if the list generation process can be executed using the fixed point table method, the process of generating the list can be accelerated.

しかし、固定点テーブル法を用いる場合には、スカラ倍算を行う楕円曲線上の点Gが常に同じ値であるという制限がある。例えば、固定点テーブル法では、10Gを、2Gと8Gとの楕円加算で算出することができるが、10Gを、2Gと8Gとの楕円加算で算出することができない。 However, when the fixed point table method is used, there is a restriction that the point G on the elliptic curve for scalar multiplication always has the same value. For example, in the fixed point table method, a 10G 1, it can be calculated by elliptic curve addition of 2G 1 and 8G 1, a 10G 2, can not be calculated in elliptic curve addition of 2G 1 and 8G 1.

図6に示したスカラ倍算計算部15が、スカラ倍算計算を実行する場合には、楕円曲線上の点Gが毎回更新される。このため、従来のリスト生成装置10は、固定点テーブル法を利用して、スカラ倍算計算を高速化することができなかった。   When the scalar multiplication calculation unit 15 shown in FIG. 6 executes the scalar multiplication calculation, the point G on the elliptic curve is updated every time. For this reason, the conventional list generation apparatus 10 cannot speed up the scalar multiplication calculation using the fixed point table method.

次に、本実施例について説明する。図9は、本実施例にかかるシステムの構成を示す図である。図9に示すように、このシステムは、リスト生成装置100a〜100nと、暗号鍵解析装置200とを有する。リスト生成装置100a〜100nおよび暗号鍵解析装置200は、ネットワーク50を介して相互に接続される。   Next, this embodiment will be described. FIG. 9 is a diagram illustrating the configuration of the system according to the present embodiment. As illustrated in FIG. 9, the system includes list generation devices 100 a to 100 n and an encryption key analysis device 200. The list generation devices 100a to 100n and the encryption key analysis device 200 are connected to each other via the network 50.

リスト生成装置100a〜100nは、ランダムウォーク関数と楕円曲線上の点Gとを基にして、リスト(list)を生成する処理部である。リスト生成装置100a〜100nは、リストを暗号鍵解析装置200に送信する。   The list generation devices 100a to 100n are processing units that generate a list based on a random walk function and a point G on an elliptic curve. The list generation devices 100a to 100n transmit the list to the encryption key analysis device 200.

暗号鍵解析装置200は、リスト生成装置100a〜100nからリストを収集し、各リストを基にして、補助情報付き楕円曲線離散対数問題を解くことで、暗号鍵を解析する装置である。この暗号鍵解析装置200は、上記のコンピュータ0に対応する装置であり、図1に示した処理手順によって、補助情報付き楕円曲線離散対数問題を解くものとする。   The encryption key analysis apparatus 200 is an apparatus that analyzes an encryption key by collecting lists from the list generation apparatuses 100a to 100n and solving an elliptic curve discrete logarithm problem with auxiliary information based on each list. The encryption key analysis apparatus 200 is an apparatus corresponding to the computer 0 described above, and solves the elliptic curve discrete logarithm problem with auxiliary information by the processing procedure shown in FIG.

次に、リスト生成装置100aの構成について説明する。その他のリスト生成装置の構成は、リスト生成装置100aの構成と同様である。図10は、リスト生成装置の構成を示す図である。図10に示すように、このリスト生成装置100aは、入力部110、繰り返し判定部120、記憶部130、スカラ倍算計算部150、特徴点判定部160、点出力部170を有する。   Next, the configuration of the list generation device 100a will be described. Other configurations of the list generation device are the same as the configuration of the list generation device 100a. FIG. 10 is a diagram illustrating a configuration of the list generation device. As illustrated in FIG. 10, the list generation device 100 a includes an input unit 110, a repetition determination unit 120, a storage unit 130, a scalar multiplication calculation unit 150, a feature point determination unit 160, and a point output unit 170.

入力部110は、リストを作成するためのパラメータを受け付け、受け付けたパラメータを繰り返し判定部120、スカラ値生成部140、スカラ倍算計算部150に出力する処理部である。入力部110は、キーボードなどの入力装置からパラメータを受け付けても良いし、他の装置と情報通信を行ってパラメータを取得しても良い。   The input unit 110 is a processing unit that receives parameters for creating a list and outputs the received parameters to the repetition determination unit 120, the scalar value generation unit 140, and the scalar multiplication calculation unit 150. The input unit 110 may receive parameters from an input device such as a keyboard, or may acquire parameters by performing information communication with other devices.

パラメータには、E、G、ζs’、lenが含まれる。E、G、ζs’、lenに関する説明は、上記と同様である。入力部110は、パラメータのうち、E、Gをスカラ倍算計算部150に出力し、E、ζs’をスカラ値生成部140に出力する。また、入力部110は、lenを繰り返し判定部120に出力する。 The parameters include E, G 0 , ζ s ′ , and len. The description regarding E, G 0 , ζ s ′ , and len is the same as described above. Among the parameters, the input unit 110 outputs E and G 0 to the scalar multiplication calculation unit 150 and outputs E and ζ s ′ to the scalar value generation unit 140. Further, the input unit 110 outputs len to the determination unit 120 repeatedly.

繰り返し判定部120は、GからGi+1を計算する回数をカウントする処理部である。繰り返し判定部120は、GからGi+1が計算された回数をどのようにカウントしてもよい。例えば、繰り返し判定部120は、スカラ倍算計算部150が、Gi+1の計算結果を出力する度に、計算回数をカウントする。 Repetition determining unit 120 is a processing unit for counting the number of times of calculating the G i + 1 from the G i. Repetition determining unit 120 may count how the number of G i + 1 from the G i is calculated. For example, the repetition determination unit 120 counts the number of calculations each time the scalar multiplication calculation unit 150 outputs a calculation result of G i + 1 .

繰り返し判定部120は、カウントした計算回数が、lenを超えた場合に、リスト生成処理を終了すると判定する。例えば、繰り返し判定部120は、リスト生成処理を終了すると判定した場合には、スカラ値生成部140およびスカラ倍算計算部150を制御して、処理を終了させる。   The iterative determination unit 120 determines to end the list generation process when the counted number of calculations exceeds len. For example, when it is determined that the list generation process is to be ended, the repetition determination unit 120 controls the scalar value generation unit 140 and the scalar multiplication calculation unit 150 to end the process.

記憶部130は、スカラ倍算計算部150の計算結果を記憶する記憶部である。   The storage unit 130 is a storage unit that stores the calculation result of the scalar multiplication calculation unit 150.

スカラ値生成部140は、Gから

Figure 0005505173
を算出する処理部である。図10に示すように、スカラ値生成部140は、ランダム関数部141、加算部142、加算結果格納部143、冪乗余剰計算部144を有する。 Scalar value generator 140, the G i
Figure 0005505173
Is a processing unit for calculating. As illustrated in FIG. 10, the scalar value generation unit 140 includes a random function unit 141, an addition unit 142, an addition result storage unit 143, and a power surplus calculation unit 144.

ランダム関数部141は、Gからf(G)を算出する処理部である。例えば、fは楕円曲線上の点G=(x、y)が与えられた場合に、「x mod s」を返す関数である。ランダム関数部141は、f(G)を加算部142に出力する。なお、ランダム関数部141は、Gの初期値となるGを、入力部110から取得する。また、ランダム関数部141は、初期値以外のGの値を記憶部130から取得する。 Random function unit 141 is a processing unit for calculating the f s (G i) from the G i. For example, f s is a function that returns “x mod s” when a point G = (x, y) on the elliptic curve is given. The random function unit 141 outputs f s (G i ) to the adding unit 142. Note that the random function unit 141 acquires G 0 as an initial value of G i from the input unit 110. Further, the random function unit 141 acquires the value of G i other than the initial value from the storage unit 130.

加算部142は、f(G)の値を順次加算し、加算結果aを冪乗余剰計算部144に出力する処理部である。また、加算部142は、加算結果aを加算結果格納部143に記憶する。加算結果格納部143は、加算結果aを記憶する記憶部である。加算結果格納部143は、加算結果aの初期値aとして0を記憶する。 The adding unit 142 is a processing unit that sequentially adds the values of f s (G i ) and outputs the addition result a i to the power-residue calculating unit 144. In addition, the addition unit 142 stores the addition result a i in the addition result storage unit 143. The addition result storage unit 143 is a storage unit that stores the addition result a i . The addition result storage unit 143 stores 0 as the initial value a 0 of the addition result a i .

具体的に、加算部142は、「a=ai−1+f(G)」によりaを算出する。すなわち、加算部142は、ランダム関数部141から取得したf(G)と、加算結果格納部143に記憶されたai−1とを加算することで、aを算出する。 Specifically, the addition unit 142 calculates the a i by "a i = a i-1 + f s (G i) ." That is, the adding unit 142 calculates a i by adding f s (G i ) acquired from the random function unit 141 and a i−1 stored in the addition result storage unit 143.

冪乗余剰計算部144は、aiとζs’とを取得して、

Figure 0005505173
を算出する処理部である。冪乗余剰計算部144は、
Figure 0005505173
をスカラ倍算計算部15に出力する。 The power surplus calculation unit 144 obtains ai and ζ s ′ ,
Figure 0005505173
Is a processing unit for calculating. The power surplus calculation unit 144
Figure 0005505173
Is output to the scalar multiplication calculation unit 15.

スカラ倍算計算部150は、G

Figure 0005505173
とを取得し、固定テーブル法を利用して、Gi+1を計算する処理部である。スカラ倍算計算部150は、Gi+1を「
Figure 0005505173
」によって計算する。ここで、
Figure 0005505173
に着目すると、Gi+1のiの値が順次変化し、G、G、・・・Glenを算出する場合でも、スカラ倍算計算部150は、楕円曲線上の点Gを固定したままで、「
Figure 0005505173
」倍すればよい。つまり、スカラ倍算計算部150は、固定テーブル法を利用して、スカラ倍算を算出することが可能となる。 The scalar multiplication calculation unit 150 calculates G 0
Figure 0005505173
And using the fixed table method to calculate G i + 1 . The scalar multiplication calculation unit 150 converts G i + 1 to “
Figure 0005505173
To calculate. here,
Figure 0005505173
When the value of i in G i + 1 changes sequentially and G 2 , G 3 ,... G len are calculated, the scalar multiplication calculation unit 150 fixes the point G 0 on the elliptic curve. as it is,"
Figure 0005505173
"You can double it. That is, the scalar multiplication calculation unit 150 can calculate the scalar multiplication using the fixed table method.

スカラ倍算計算部150は、固定点テーブルを保持している。図11は、固定点テーブルのデータ構造の一例を示す図である。図11に示すように、この固定点テーブルでは、1列目の数値を2倍、3倍した値が格納されている。例えば、1行目では、1G、2G、3Gが格納されている。2行目では、4G、8G、12Gが格納されている。3行目では、16G、32G、48Gが格納されている。4行目では、64G、128G、192Gが格納されている。5行目では、256G、512G、768Gが格納されている。固定点テーブルの各Gは、全て楕円曲線上の同じ点である。 The scalar multiplication calculation unit 150 holds a fixed point table. FIG. 11 is a diagram illustrating an example of the data structure of the fixed point table. As shown in FIG. 11, in this fixed point table, a value obtained by doubling or multiplying the value in the first column is stored. For example, 1G 0 , 2G 0 , 3G 0 are stored in the first row. In the second row, 4G 0 , 8G 0 and 12G 0 are stored. In the third row, 16G 0 , 32G 0 , and 48G 0 are stored. In the fourth row, 64G 0 , 128G 0 , and 192G 0 are stored. In the fifth row, 256G 0 , 512G 0 , and 768G 0 are stored. Each G 0 of the fixed point table is the same point on all elliptic curves.

スカラ倍算計算部150は、固定点テーブルに記憶された各値を組あわせてスカラ倍算「

Figure 0005505173
」実行する。例えば、「
Figure 0005505173
」の値が「10」の場合には、スカラ倍算計算部150は、図11の1行目2列目に格納された2Gと、2行目2列目に格納された8Gとを楕円加算することで、10Gを算出する。 The scalar multiplication calculation unit 150 combines the values stored in the fixed point table to create a scalar multiplication “
Figure 0005505173
"Run. For example, "
Figure 0005505173
When the value of “10” is “10”, the scalar multiplication calculation unit 150 calculates 2G 0 stored in the first row and second column of FIG. 11 and 8G 0 stored in the second row and second column of FIG. 10G 0 is calculated by adding the ellipses.

スカラ倍算計算部150は、算出結果となるGi+1を記憶部130に記憶する。また、スカラ倍算計算部150は、Gi+1を特徴点判定部160に出力する。 The scalar multiplication calculation unit 150 stores G i + 1 as a calculation result in the storage unit 130. Further, the scalar multiplication calculation unit 150 outputs G i + 1 to the feature point determination unit 160.

ところで、スカラ倍算計算部150が算出するGi+1と、図6に示したスカラ倍算計算部15が算出するGi+1は同じものである。図12は、各スカラ倍算計算部が算出するGi+1が同じであることを説明するための図である。ここでは簡単のため、Gを算出する場合について説明する。 Meanwhile, the G i + 1 scalar multiplication calculation portion 150 calculates, G i + 1 scalar multiplication calculation portion 15 shown in FIG. 6 calculates is the same. FIG. 12 is a diagram for explaining that G i + 1 calculated by each scalar multiplication calculation unit is the same. For the sake of simplicity, it will be described for calculating the G 2.

図12の1aは、

Figure 0005505173
のiに1を代入したものである。図12の1aは、2aのように置き換えることができる。2a部分のaは、冪乗余剰計算部144が出力する算出結果である。そして、2aは、3aのように置き換えることができる。3aは、
Figure 0005505173
のiに1を代入したものである。つまり、スカラ倍算計算部150が算出するGi+1と、図6に示したスカラ倍算計算部15が算出するGi+1は同じものである。しかし、スカラ倍算計算部150は、Gが固定されているので、固定点テーブル法を利用することができる。 1a in FIG.
Figure 0005505173
1 is substituted for i. In FIG. 12, 1a can be replaced with 2a. A 1 in the 2a portion is a calculation result output by the power surplus calculation unit 144. And 2a can be replaced like 3a. 3a is
Figure 0005505173
1 is substituted for i. That is, the G i + 1 scalar multiplication calculation portion 150 calculates, G i + 1 scalar multiplication calculation portion 15 shown in FIG. 6 calculates is the same. However, the scalar multiplication calculation unit 150 can use the fixed point table method because G0 is fixed.

スカラ倍算計算部150は、固定点テーブルを入力部110から取得する。または、スカラ倍算計算部150自身が、固定点テーブルを生成してもよい。例えば、スカラ倍算計算部150は、楕円曲線上の同一の点同士を加算する処理を繰り返し実行することで、点のスカラ値を順次算出し、算出結果を固定点テーブルに格納する。例えば、加算対象となる楕円曲線上の点は、管理者などによって指定される。   The scalar multiplication calculation unit 150 acquires a fixed point table from the input unit 110. Alternatively, the scalar multiplication calculation unit 150 itself may generate a fixed point table. For example, the scalar multiplication calculation unit 150 repeatedly calculates the scalar value of the points by repeatedly executing the process of adding the same points on the elliptic curve, and stores the calculation result in the fixed point table. For example, a point on the elliptic curve to be added is designated by an administrator or the like.

図10の説明に戻る。特徴点判定部160は、Gi+1が特徴点であるか否かを判定する処理部である。例えば、特徴点判定部160は、Gi+1の値の一部が所定の値となっている場合に、Gi+1を特徴点であると判定する。特徴点判定部160は、特徴点と判定したGi+1を点出力部170に出力する。 Returning to the description of FIG. The feature point determination unit 160 is a processing unit that determines whether or not G i + 1 is a feature point. For example, the feature point determination unit 160 determines that G i + 1 is a feature point when a part of the value of G i + 1 is a predetermined value. The feature point determination unit 160 outputs G i + 1 determined as the feature point to the point output unit 170.

点出力部170は、特徴点と判定されたGi+1をテーブルに登録することで、listを生成する処理部である。点出力部170は、listの情報を暗号鍵解析装置200に送信する。 The point output unit 170 is a processing unit that generates a list by registering G i + 1 determined as a feature point in a table. The point output unit 170 transmits the list information to the encryption key analysis apparatus 200.

次に、本実施例にかかるリスト生成装置100aの処理手順について説明する。図13は、本実施例にかかるリスト生成装置の処理手順を示すフローチャートである。図13に示すように、リスト生成装置100aは、iの値を初期値に設定し(ステップS101)、ランダム関数にGを入力して、入力結果f(G)を得る(ステップS102)。 Next, a processing procedure of the list generation apparatus 100a according to the present embodiment will be described. FIG. 13 is a flowchart illustrating the processing procedure of the list generation device according to the present embodiment. As illustrated in FIG. 13, the list generation device 100a sets the value of i to an initial value (step S101), inputs G i to a random function, and obtains an input result f s (G i ) (step S102). ).

リスト生成装置100aは、加算処理を実行する(ステップS103)。ステップS103において、リスト生成装置100aは、ランダム関数部141から出力されるf(G)と、加算結果格納部143に記憶されるai−1とを加算することで、加算処理を実行する。 The list generation device 100a executes addition processing (step S103). In step S <b> 103, the list generation device 100 a executes addition processing by adding f s (G i ) output from the random function unit 141 and a i−1 stored in the addition result storage unit 143. To do.

リスト生成装置100aは、冪乗余剰計算を実行する(ステップS104)。ステップS104において、リスト生成装置100aが冪乗余剰計算を実行することで、

Figure 0005505173
が得られる。リスト生成装置100aは、固定点テーブルを利用して、スカラ倍算計算を実行し、Gi+1を得る(ステップS105)。 The list generation device 100a executes a power surplus calculation (step S104). In step S104, the list generation device 100a executes a power surplus calculation,
Figure 0005505173
Is obtained. The list generation device 100a executes scalar multiplication calculation using the fixed point table to obtain G i + 1 (step S105).

リスト生成装置100aは、Gi+1が特徴点であるか否かを判定する(ステップS106)。リスト生成装置100aは、Gi+1が特徴点ではない場合には(ステップS106,No)、ステップS108に移行する。 The list generation device 100a determines whether or not G i + 1 is a feature point (step S106). If G i + 1 is not a feature point (No at Step S106), the list generating apparatus 100a proceeds to Step S108.

一方、リスト生成装置100aは、Gi+1が特徴点の場合には(ステップS106,Yes)、Gi+1をlistに登録する(ステップS107)。リスト生成装置100aは、iに1を加算し(ステップS108)、iの値がlenよりも大きいか否かを判定する(ステップS109)。リスト生成装置100aは、iの値がlenよりも大きい場合には(ステップS109,Yes)、listを暗号鍵解析装置200に出力する(ステップS110)。一方、リスト生成装置100aは、iの値がlen以下の場合には(ステップS109,No)、ステップS102に移行する。 On the other hand, if G i + 1 is a feature point (Yes in step S106), the list generating apparatus 100a registers G i + 1 in the list (step S107). The list generation device 100a adds 1 to i (step S108), and determines whether the value of i is larger than len (step S109). When the value of i is larger than len (step S109, Yes), the list generation device 100a outputs the list to the encryption key analysis device 200 (step S110). On the other hand, when the value of i is equal to or less than len (step S109, No), the list generation device 100a proceeds to step S102.

次に、本実施例にかかるシステムの処理手順について説明する。図14および図15は、本実施例にかかるシステムの処理手順を示すフローチャートである。なお、図14のステップS200〜S203の処理、図15のステップS210〜S212、ステップS210〜S222の処理は、暗号鍵解析装置200が実行する処理とする。図14のステップS204の処理は、リスト生成装置100a〜N/4がそれぞれlistを生成する処理とする。図14のステップS207の処理は、リスト生成装置N/4〜N/2がそれぞれlistを生成する処理とする。図15のステップS213の処理は、リスト生成装置N/2〜3N/4がそれぞれlistを生成する処理とする。図15のステップS216の処理は、リスト生成装置3N/4〜100nがそれぞれlistを生成する処理とする。   Next, a processing procedure of the system according to the present embodiment will be described. 14 and 15 are flowcharts illustrating the processing procedure of the system according to the present embodiment. The processes in steps S200 to S203 in FIG. 14 and the processes in steps S210 to S212 and steps S210 to S222 in FIG. 15 are processes executed by the encryption key analysis apparatus 200. The processing in step S204 in FIG. 14 is processing in which the list generation devices 100a to N / 4 each generate a list. The processing in step S207 in FIG. 14 is processing in which the list generation devices N / 4 to N / 2 each generate a list. The processing in step S213 in FIG. 15 is processing in which the list generation devices N / 2 to 3N / 4 each generate a list. The processing in step S216 in FIG. 15 is processing in which the list generation devices 3N / 4 to 100n each generate a list.

暗号鍵解析装置200は、E、G、G、G、lenを取得し(ステップS200)、生成元ζを生成する(ステップS201)。暗号鍵解析装置200は、sおよびs’を算出する(ステップS202)。ステップS202において、暗号鍵解析装置200は、s=(r−1)/d、s’=dによって、sおよびs’を算出する。 The encryption key analysis apparatus 200 acquires E, G, G, G d , and len (step S200), and generates a generation source ζ (step S201). The encryption key analysis apparatus 200 calculates s and s ′ (step S202). In step S202, the encryption key analysis apparatus 200 calculates s and s ′ by s = (r−1) / d and s ′ = d.

iの値を初期値に設定し(ステップS203)、リスト生成装置100は、リスト生成処理を実行することで、list1を得る(ステップS204)。iの値に1を加算し(ステップS205)、iの値がN/4より大きいか否かを判定する(ステップS206)。   The value of i is set to an initial value (step S203), and the list generation apparatus 100 obtains list1 by executing list generation processing (step S204). 1 is added to the value of i (step S205), and it is determined whether or not the value of i is greater than N / 4 (step S206).

iの値がN/4以下の場合には(ステップS206,No)、ステップS204に移行する。iの値がN/4より大きい場合には(ステップS206,Yes)、各リスト生成装置100は、list1を暗号鍵解析装置200に送信する(ステップS207)。   When the value of i is N / 4 or less (No at Step S206), the process proceeds to Step S204. When the value of i is larger than N / 4 (Yes at Step S206), each list generation device 100 transmits list1 to the encryption key analysis device 200 (Step S207).

リスト生成装置100は、リスト生成処理を実行することで、list2を得る(ステップS208)。iの値に1を加算し(ステップS209)、iの値がN/2より大きいか否かを判定する。   The list generation device 100 obtains list2 by executing the list generation process (step S208). 1 is added to the value of i (step S209), and it is determined whether or not the value of i is greater than N / 2.

iの値がN/2以下の場合には(ステップS210,No)、ステップS208に移行する。一方、iの値がN/2より大きい場合には(ステップS210,Yes)、各リスト生成装置100は、list2を暗号鍵解析装置200に送信する(ステップS211)。   When the value of i is N / 2 or less (No in step S210), the process proceeds to step S208. On the other hand, if the value of i is greater than N / 2 (Yes in step S210), each list generation device 100 transmits list2 to the encryption key analysis device 200 (step S211).

図15の説明に移行する。暗号鍵解析装置200は、list1とlist2とを比較して、衝突が発生する場合のインデックスv、uを判定する(ステップS212)。暗号鍵解析装置200は、k1を算出する(ステップS213)。ステップS213において、暗号鍵解析装置200は、

Figure 0005505173
に基づいて、k1を算出するものとする。 The description shifts to the description of FIG. The encryption key analysis apparatus 200 compares list1 and list2, and determines indexes v and u when a collision occurs (step S212). The encryption key analysis apparatus 200 calculates k1 (step S213). In step S213, the encryption key analysis apparatus 200
Figure 0005505173
Assume that k1 is calculated based on the above.

暗号鍵解析装置200は、sおよびs’を算出する(ステップS214)。ステップS214において、暗号鍵解析装置200は、s=d、s’=(r−1)/dによって、sおよびs’を算出する。   The encryption key analysis apparatus 200 calculates s and s ′ (step S214). In step S214, the encryption key analysis apparatus 200 calculates s and s 'by s = d and s' = (r-1) / d.

リスト生成装置100は、リスト生成処理を実行することで、list3を得る(ステップS215)。iの値に1を加算し(ステップS216)、iの値が3N/4より大きいか否かを判定する(ステップS217)。   The list generation device 100 obtains list3 by executing list generation processing (step S215). 1 is added to the value of i (step S216), and it is determined whether or not the value of i is greater than 3N / 4 (step S217).

iの値が3N/4以下の場合には(ステップS217,No)、ステップS215に移行する。一方、iの値が3N/4より大きい場合には(ステップS217,Yes)、リスト生成装置100は、list3を暗号鍵解析装置200に送信する(ステップS218)。   If the value of i is 3N / 4 or less (step S217, No), the process proceeds to step S215. On the other hand, when the value of i is larger than 3N / 4 (step S217, Yes), the list generation device 100 transmits list3 to the encryption key analysis device 200 (step S218).

リスト生成装置100は、リスト生成処理を実行することで、list4を得る(ステップS219)。iの値に1を加算し(ステップS220)、iの値がNより大きいか否かを判定する(ステップS221)。   The list generation device 100 obtains list4 by executing the list generation processing (step S219). 1 is added to the value of i (step S220), and it is determined whether or not the value of i is greater than N (step S221).

iの値がN以下の場合には(ステップS221,No)、ステップS219に移行する。一方、iの値がNより大きい場合には(ステップS221,Yes)、list4を暗号鍵解析装置に送信する(ステップS222)。暗号鍵解析装置200は、list3とlist4とを比較して、衝突が発生する場合のインデックスv、uを判定する(ステップS223)。   When the value of i is N or less (step S221, No), the process proceeds to step S219. On the other hand, if the value of i is greater than N (step S221, Yes), list4 is transmitted to the encryption key analyzer (step S222). The encryption key analysis apparatus 200 compares list3 and list4 and determines indexes v and u when a collision occurs (step S223).

暗号鍵解析装置200は、k2を算出する(ステップS224)。ステップS224において、暗号鍵解析装置200は、

Figure 0005505173
に基づいて、k2を算出するものとする。暗号鍵解析装置200は、k1とk2とを基にしてαを算出し(ステップS225)、αを出力する(ステップS226)。ステップS225において、暗号鍵解析装置200は、
Figure 0005505173
に基づいて、αを算出するものとする。 The encryption key analysis apparatus 200 calculates k2 (step S224). In step S224, the encryption key analysis apparatus 200
Figure 0005505173
Based on the above, k2 is calculated. The encryption key analysis apparatus 200 calculates α based on k1 and k2 (step S225), and outputs α (step S226). In step S225, the encryption key analysis apparatus 200
Figure 0005505173
Based on the above, α is calculated.

図14のステップ204、S208、図15のステップ215、S219に示したリスト生成処理は、図13に示した処理手順に対応する。   The list generation processing shown in steps 204 and S208 of FIG. 14 and steps 215 and S219 of FIG. 15 corresponds to the processing procedure shown in FIG.

次に、リスト生成装置100aが、固定点テーブルを生成する場合の処理手順について説明する。図16は、固定点テーブルを生成する処理手順を示すフローチャートである。図16に示すように、リスト生成装置100aは、Gとbitとを取得し(ステップS300)、G’’にGの値を設定する(ステップS301)。ここで、bitは、固定点テーブルの行の数を決める閾値である。   Next, a processing procedure when the list generation device 100a generates a fixed point table will be described. FIG. 16 is a flowchart showing a processing procedure for generating a fixed point table. As illustrated in FIG. 16, the list generation device 100a acquires G and bit (step S300), and sets the value of G to G ″ (step S301). Here, bit is a threshold value that determines the number of rows in the fixed point table.

リスト生成装置100aは、iの値を初期値に設定し(ステップS302)、G’にG’’の値を設定する(ステップS303)。リスト生成装置100aは、jの値を初期値に設定し(ステップS304)、固定点テーブルのi行目、j列目にG’’の値を格納する(ステップS305)。   The list generation device 100a sets the value of i to an initial value (step S302), and sets the value of G ″ to G ′ (step S303). The list generation device 100a sets the value of j as an initial value (step S304), and stores the value of G ″ in the i-th row and j-th column of the fixed point table (step S305).

リスト生成装置100aは、G’’とG’とを加算した値でG’’の値を更新し(ステップS306)、jの値に1を加算する(ステップS307)。リスト生成装置100aは、jの値が3より大きいか否かを判定する(ステップS308)。   The list generation device 100a updates the value of G ″ with the value obtained by adding G ″ and G ′ (step S306), and adds 1 to the value of j (step S307). The list generation device 100a determines whether the value of j is greater than 3 (step S308).

リスト生成装置100aは、jの値が3以下の場合には(ステップS308,No)、ステップS305に移行する。一方、リスト生成装置100aは、jの値が3より大きい場合には(ステップS308,Yes)、iの値に1を加算する(ステップS309)。   If the value of j is 3 or less (No at Step S308), the list generating apparatus 100a proceeds to Step S305. On the other hand, when the value of j is greater than 3 (step S308, Yes), the list generation device 100a adds 1 to the value of i (step S309).

リスト生成装置100aは、iの値がbitより大きいか否かを判定する(ステップS310)。リスト生成装置100aは、iの値がbit以下の場合には(ステップS310,No)、ステップS303に移行する。一方、リスト生成装置100aは、iの値がbitよりも大きい場合には(ステップS310,Yes)、処理を終了する。   The list generation device 100a determines whether or not the value of i is larger than bit (step S310). If the value of i is less than or equal to bit (step S310, No), the list generation device 100a proceeds to step S303. On the other hand, if the value of i is larger than bit (Yes in step S310), the list generation device 100a ends the process.

次に、本実施例にかかるリスト生成装置100aの効果について説明する。リスト生成装置100aでは、ランダム関数部141から出力された値と、加算結果格納部143に格納された値とを加算した値を基にして生成元を冪乗し、冪乗結果と楕円曲線上の点の初期値Gとをスカラ倍算することで、GからGi+1を算出する。このような方法で、リスト生成装置100aがGi+1を算出すれば、スカラ倍算を実行する場合の楕円曲線上の点は常に初期値Gで固定される。このため、リスト生成装置100aはスカラ倍算を、固定点テーブルの各点の加算によって求めることができ、スカラ倍算にかかる計算コストを削減することができる。 Next, the effect of the list generation device 100a according to the present embodiment will be described. In the list generation device 100a, the generation source is raised based on the value obtained by adding the value output from the random function unit 141 and the value stored in the addition result storage unit 143, and the power result and the elliptic curve are calculated. and an initial value G 0 of the point by a scalar multiplication to calculate the G i + 1 from the G i. If the list generating apparatus 100a calculates G i + 1 by such a method, the point on the elliptic curve when performing scalar multiplication is always fixed at the initial value G 0 . For this reason, the list generation device 100a can obtain the scalar multiplication by adding each point of the fixed point table, and can reduce the calculation cost for the scalar multiplication.

具体的に、楕円曲線の点の位数r=2160とし、固定点テーブルの生成法におけるn進数展開の変数を216とする。この場合に、リスト生成装置100aは、従来の確率的アルゴリズムによってリストを生成する場合よりも、21倍速くリストを生成することができる。また、n進数展開の変数を4とした場合には、リスト生成装置100aは、従来の確率的アルゴリズムによってリストを生成する場合よりも、2.5倍速くリストを生成することができる。上記効果の前提として、冪乗余剰およびランダムウォーク関数の計算コストは、楕円スカラ倍算の計算コストに比べて十分小さいものとする。また、リストの長さlen=r1/4とし、楕円加算の計算コストを(4logr)/3とし、楕円スカラ倍算の計算コストを(640/3)とする。また、コンピュータを210台利用して並列処理を実行した場合には、図13〜図16に示した処理を実行することで、図4、図5に示した従来の処理と比較して、計算コストを1/1365に削減することができる。 Specifically, the position number r = 2 160 points of the elliptic curve, the variable n-ary number deployed in the production method of the fixed point table and 2 16. In this case, the list generation device 100a can generate the list 21 times faster than the case where the list is generated by the conventional stochastic algorithm. Also, when the n-ary expansion variable is set to 4, the list generation device 100a can generate the list 2.5 times faster than the case of generating the list by the conventional stochastic algorithm. As a premise of the above effect, it is assumed that the calculation cost of the power surplus and the random walk function is sufficiently smaller than the calculation cost of the elliptic scalar multiplication. Also, the length of the list len = r 1/4 , the calculation cost of ellipse addition is (4log 2 r) / 3, and the calculation cost of elliptic scalar multiplication is (640/3). Further, when performing parallel processing using 2 ten computers, by executing the processing shown in FIGS. 13 to 16, FIG. 4, as compared with the conventional process shown in FIG. 5, The calculation cost can be reduced to 1/1365.

また、リスト生成装置110aは、スカラ倍算計算部150が生成した点を全てリストに登録するのではなく、特徴点のみをリストに登録する。このため、リストのデータ量を削減することができる。   The list generation device 110a does not register all the points generated by the scalar multiplication calculation unit 150 in the list, but registers only the feature points in the list. For this reason, the data amount of the list can be reduced.

ところで、図10に示したリスト生成装置100aの構成は一例であり、リスト生成装置100aは、必ずしも図10に示した各処理部を全て有していなくてもよい。例えば、リスト生成装置100aは、固定点テーブル、疑似ランダム関数適用部、スカラ値生成部、点算出部、リスト生成部を有していればよい。   By the way, the configuration of the list generation device 100a illustrated in FIG. 10 is an example, and the list generation device 100a does not necessarily include all the processing units illustrated in FIG. For example, the list generation device 100a may include a fixed point table, a pseudo random function application unit, a scalar value generation unit, a point calculation unit, and a list generation unit.

固定点テーブルは、楕円曲線上の所定の点をそれぞれ異なるスカラ値によってスカラ倍算した値を複数記憶するものである。この固定点テーブルは、スカラ倍算計算部150が保持する固定点テーブルに対応する。疑似ランダム関数適用部は、楕円曲線上の点に対してランダムウォーク関数を用いることで前記楕円曲線上の点を算出し、算出した点を記憶部に記憶する処理部である。この疑似ランダム関数適用部は、ランダム関数部141に対応する。   The fixed point table stores a plurality of values obtained by multiplying predetermined points on the elliptic curve by different scalar values. This fixed point table corresponds to the fixed point table held by the scalar multiplication calculation unit 150. The pseudo-random function application unit is a processing unit that calculates a point on the elliptic curve by using a random walk function with respect to the point on the elliptic curve, and stores the calculated point in the storage unit. This pseudo random function application unit corresponds to the random function unit 141.

スカラ値生成部は、記憶部に記憶された点の値を合計し、合計した値に基づいてスカラ値を生成する処理部である。スカラ値生成部は、スカラ値生成部140に対応する。点算出部は、固定点テーブルに記憶された各値のうち、スカラ値に対応する値の組あわせを判定し、判定した各値を加算することで、楕円曲線上の点から該楕円曲線上の次の点を算出する処理部である。この点算出部は、スカラ倍算計算部150に対応する。リスト生成部は、点算出部が算出した各点を収集しリストを生成する処理部である。リスト生成部は、特徴点判定部160、点出力部170に対応する。   The scalar value generation unit is a processing unit that adds the values of the points stored in the storage unit and generates a scalar value based on the total value. The scalar value generation unit corresponds to the scalar value generation unit 140. The point calculation unit determines a combination of values corresponding to the scalar value among the values stored in the fixed point table, and adds the determined values to the elliptic curve from a point on the elliptic curve. Is a processing unit for calculating the next point. This point calculation unit corresponds to the scalar multiplication calculation unit 150. The list generation unit is a processing unit that collects each point calculated by the point calculation unit and generates a list. The list generation unit corresponds to the feature point determination unit 160 and the point output unit 170.

なお、上記の実施例で説明したリスト生成装置100aの各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、図17を用いて、上記の実施例で説明したリスト生成装置100aと同様の機能を有するリスト生成プログラムを実行するコンピュータの一例を説明する。図17は、リスト生成プログラムを実行するコンピュータを示す図である。   Various processes of the list generation apparatus 100a described in the above embodiment can be realized by executing a program prepared in advance on a computer system such as a personal computer or a workstation. In the following, an example of a computer that executes a list generation program having the same function as the list generation apparatus 100a described in the above embodiment will be described with reference to FIG. FIG. 17 is a diagram illustrating a computer that executes a list generation program.

同図に示すように、リスト生成装置100aとしてコンピュータ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, the computer 400 as the list generation device 100a 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. 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には、リスト生成システムデータがあらかじめ記憶されている。このリスト生成システムデータは、図10に示したリスト生成装置100aの各処理部と同様の機能を発揮するリスト生成プログラムを含む。また、リスト生成システムデータは、処理に必要な各種パラメータを含むリスト生成用データを含む。なお、このリスト生成システムデータを適宜分散させて、ネットワークを介して通信可能に接続された他のコンピュータの記憶部に記憶させておくこともできる。   The HDD 420 stores list generation system data in advance. The list generation system data includes a list generation program that exhibits the same function as each processing unit of the list generation apparatus 100a illustrated in FIG. The list generation system data includes list generation data including various parameters necessary for processing. The list generation system data may 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 list generation system data from the HDD 420 and expands it in the RAM 430, so that the list generation system data functions as a list generation system. The list generation system includes a list generation process.

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

なお、リスト生成システム及びリスト生成プロセスは、図10に示した各機能部において実行される処理に対応する。例えば、リスト生成プロセスは、繰り返し判定部120、スカラ値生成部140、スカラ倍算計算部150、特徴点判定部160、点出力部170に対応する。   Note that the list generation system and the list generation process correspond to processing executed in each functional unit shown in FIG. For example, the list generation process corresponds to the repetition determination unit 120, the scalar value generation unit 140, the scalar multiplication calculation unit 150, the feature point determination unit 160, and the point output unit 170.

なお、上記したリスト生成プログラムについては、必ずしも最初からHDD420に記憶させておく必要はない。   Note that the above-described list generation program is not necessarily 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.

また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、リスト生成装置100a〜100nと、暗号鍵解析装置200の機能を統合し、単一の装置で、リスト生成や、暗号鍵の解析を実行してもよい。   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 functions of the list generation devices 100a to 100n and the encryption key analysis device 200 may be integrated, and list generation and encryption key analysis may be executed by a single device.

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

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

(付記1)楕円曲線上の所定の点をそれぞれ異なるスカラ値によってスカラ倍算した値を複数記憶する固定点テーブルと、
前記楕円曲線上の点に対して疑似ランダム関数を用いることで前記楕円曲線上の点を算出し、算出した点を記憶部に記憶する疑似ランダム関数適用部と、
前記記憶部に記憶された点の値を合計し、合計した値に基づいてスカラ値を生成するスカラ値生成部と、
前記固定点テーブルに記憶された各値のうち、前記スカラ値に対応する値の組あわせを判定し、判定した各値を加算することで、前記楕円曲線上の点から該楕円曲線上の次の点を算出する点算出部と、
前記点算出部が算出した各点を収集し、リストを生成するリスト生成部と
を備えたことを特徴とするリスト生成装置。
(Supplementary note 1) a fixed point table for storing a plurality of values obtained by multiplying predetermined points on an elliptic curve by different scalar values;
Calculating a point on the elliptic curve by using a pseudo-random function for the point on the elliptic curve, and storing the calculated point in a storage unit;
Summing the values of the points stored in the storage unit, and generating a scalar value based on the summed value,
Among each value stored in the fixed point table, a combination of values corresponding to the scalar value is determined, and each determined value is added to the next on the elliptic curve from a point on the elliptic curve. A point calculation unit for calculating the points of
A list generation device comprising: a list generation unit that collects each point calculated by the point calculation unit and generates a list.

(付記2)楕円曲線上の同一の点同士の加算を繰り返し実行することで、点のスカラ倍算を実行し、スカラ倍算の実行結果を前記固定点テーブルに格納する固定点テーブル生成部を更に備えたことを特徴とする付記1に記載のリスト生成装置。 (Supplementary Note 2) A fixed point table generating unit that executes scalar multiplication of points by repeatedly performing addition of the same points on an elliptic curve and stores the execution result of the scalar multiplication in the fixed point table. The list generation device according to attachment 1, further comprising:

(付記3)前記リスト生成部は、前記点算出部が算出した値のうち、所定の特徴を有する点を収集することで、前記リストを生成することを特徴とする付記1または2に記載のリスト生成装置。 (Additional remark 3) The said list production | generation part produces | generates the said list | wrist by collecting the point which has a predetermined characteristic among the values calculated by the said point calculation part, The additional remark 1 or 2 characterized by the above-mentioned. List generator.

(付記4)楕円曲線上の所定の点をそれぞれ異なるスカラ値によってスカラ倍算した値を複数記憶する固定点テーブルを有するコンピュータが、
前記楕円曲線上の点に対して疑似ランダム関数を用いることで前記楕円曲線上の点を算出し、算出した点を記憶装置に記憶する疑似ランダム関数適用ステップと、
前記記憶装置に記憶された点の値を合計し、合計した値に基づいてスカラ値を生成するスカラ値生成ステップと、
前記固定点テーブルに記憶された各値のうち、前記スカラ値に対応する値の組あわせを判定し、判定した各値を加算することで、前記楕円曲線上の点から該楕円曲線上の次の点を算出する点算出ステップと、
前記点算出部が算出した各点を収集し、リストを生成するリスト生成ステップと
を含んだことを特徴とするリスト生成方法。
(Supplementary Note 4) A computer having a fixed point table that stores a plurality of values obtained by multiplying predetermined points on an elliptic curve by different scalar values,
Calculating a point on the elliptic curve by using a pseudo-random function for the point on the elliptic curve, and storing the calculated point in a storage device; and
A scalar value generation step of summing the values of the points stored in the storage device, and generating a scalar value based on the total value;
Among each value stored in the fixed point table, a combination of values corresponding to the scalar value is determined, and each determined value is added to the next on the elliptic curve from a point on the elliptic curve. A point calculating step for calculating
A list generation method comprising: a list generation step of collecting each point calculated by the point calculation unit and generating a list.

(付記5)楕円曲線上の同一の点同士の加算を繰り返し実行することで、点のスカラ倍算を実行し、スカラ倍算の実行結果を前記固定点テーブルに格納する固定点テーブル生成ステップを更に含んだことを特徴とする付記4に記載のリスト生成方法。 (Supplementary Note 5) A fixed point table generating step of performing scalar multiplication of points by repeatedly performing addition of the same points on the elliptic curve and storing the result of scalar multiplication in the fixed point table. The list generation method according to appendix 4, further comprising:

(付記6)前記リスト生成ステップは、前記点算出部が算出した値のうち、所定の特徴を有する点を収集することで、前記リストを生成することを特徴とする付記4または5に記載のリスト生成方法。 (Additional remark 6) The said list production | generation step produces | generates the said list | wrist by collecting the point which has a predetermined characteristic among the values calculated by the said point calculation part, Additional remark 4 or 5 characterized by the above-mentioned. List generation method.

(付記7)楕円曲線上の所定の点をそれぞれ異なるスカラ値によってスカラ倍算した値を複数記憶する固定点テーブルを有するコンピュータに、
前記楕円曲線上の点に対して疑似ランダム関数を用いることで前記楕円曲線上の点を算出し、算出した点を記憶装置に記憶する疑似ランダム関数適用手順と、
前記記憶装置に記憶された点の値を合計し、合計した値に基づいてスカラ値を生成するスカラ値生成手順と、
前記固定点テーブルに記憶された各値のうち、前記スカラ値に対応する値の組あわせを判定し、判定した各値を加算することで、前記楕円曲線上の点から該楕円曲線上の次の点を算出する点算出手順と、
前記点算出部が算出した各点を収集し、リストを生成するリスト生成手順と
を実行させることを特徴とするリスト生成プログラム。
(Supplementary note 7) A computer having a fixed point table for storing a plurality of values obtained by multiplying predetermined points on an elliptic curve by different scalar values,
Calculating a point on the elliptic curve by using a pseudo-random function for the point on the elliptic curve, and storing the calculated point in a storage device; and
A scalar value generation procedure for summing the values of the points stored in the storage device and generating a scalar value based on the total value;
Among each value stored in the fixed point table, a combination of values corresponding to the scalar value is determined, and each determined value is added to the next on the elliptic curve from a point on the elliptic curve. A point calculation procedure for calculating the points of
A list generation program that collects each point calculated by the point calculation unit and generates a list.

(付記8)楕円曲線上の同一の点同士の加算を繰り返し実行することで、点のスカラ倍算を実行し、スカラ倍算の実行結果を前記固定点テーブルに格納する固定点テーブル生成手順を更にコンピュータに実行させることを特徴とする付記7に記載のリスト生成プログラム。 (Supplementary note 8) A fixed point table generation procedure for executing scalar multiplication of points by repeatedly performing addition of the same points on an elliptic curve and storing the execution result of the scalar multiplication in the fixed point table. The list generation program as set forth in appendix 7, which is further executed by a computer.

(付記9)前記リスト生成手順は、前記点算出部が算出した値のうち、所定の特徴を有する点を収集することで、前記リストを生成することを特徴とする付記7または8に記載のリスト生成プログラム。 (Additional remark 9) The said list production | generation procedure produces | generates the said list | wrist by collecting the point which has a predetermined characteristic among the values calculated by the said point calculation part, The additional remark 7 or 8 characterized by the above-mentioned. List generator.

100 リスト生成装置
110 入力部
120 繰り返し判定部
130 記憶部
140 スカラ値生成部
150 スカラ倍算計算部
160 特徴点判定部
170 点出力部
DESCRIPTION OF SYMBOLS 100 List production | generation apparatus 110 Input part 120 Repetition determination part 130 Storage part 140 Scalar value generation part 150 Scalar multiplication calculation part 160 Feature point determination part 170 Point output part

Claims (5)

楕円曲線上の所定の点をそれぞれ異なるスカラ値によってスカラ倍算した値を複数記憶する固定点テーブルと、
前記楕円曲線上の点に対して疑似ランダム関数を用いることで前記楕円曲線上の点を算出し、算出した点を記憶部に記憶する疑似ランダム関数適用部と、
前記記憶部に記憶された点の値を合計し、合計した値に基づいてスカラ値を生成するスカラ値生成部と、
前記固定点テーブルに記憶された各値のうち、前記スカラ値に対応する値の組あわせを判定し、判定した各値を加算することで、前記楕円曲線上の点から該楕円曲線上の次の点を算出する点算出部と、
前記点算出部が算出した各点を収集し、リストを生成するリスト生成部と
を備えたことを特徴とするリスト生成装置。
A fixed point table for storing a plurality of values obtained by multiplying predetermined points on the elliptic curve by different scalar values;
Calculating a point on the elliptic curve by using a pseudo-random function for the point on the elliptic curve, and storing the calculated point in a storage unit;
Summing the values of the points stored in the storage unit, and generating a scalar value based on the summed value,
Among each value stored in the fixed point table, a combination of values corresponding to the scalar value is determined, and each determined value is added to the next on the elliptic curve from a point on the elliptic curve. A point calculation unit for calculating the points of
A list generation device comprising: a list generation unit that collects each point calculated by the point calculation unit and generates a list.
楕円曲線上の同一の点同士の加算を繰り返し実行することで、点のスカラ倍算を実行し、スカラ倍算の実行結果を前記固定点テーブルに格納する固定点テーブル生成部を更に備えたことを特徴とする請求項1に記載のリスト生成装置。   It further includes a fixed point table generating unit that executes scalar multiplication of points by repeatedly performing addition of the same points on the elliptic curve and stores the result of scalar multiplication in the fixed point table. The list generation device according to claim 1. 前記リスト生成部は、前記点算出部が算出した値のうち、所定の特徴を有する点を収集することで、前記リストを生成することを特徴とする請求項1または2に記載のリスト生成装置。   The list generation device according to claim 1, wherein the list generation unit generates the list by collecting points having a predetermined characteristic among the values calculated by the point calculation unit. . 楕円曲線上の所定の点をそれぞれ異なるスカラ値によってスカラ倍算した値を複数記憶する固定点テーブルを有するコンピュータが、
前記楕円曲線上の点に対して疑似ランダム関数を用いることで前記楕円曲線上の点を算出し、算出した点を記憶装置に記憶する疑似ランダム関数適用ステップと、
前記記憶装置に記憶された点の値を合計し、合計した値に基づいてスカラ値を生成するスカラ値生成ステップと、
前記固定点テーブルに記憶された各値のうち、前記スカラ値に対応する値の組あわせを判定し、判定した各値を加算することで、前記楕円曲線上の点から該楕円曲線上の次の点を算出する点算出ステップと、
前記点算出部が算出した各点を収集し、リストを生成するリスト生成ステップと
を含んだことを特徴とするリスト生成方法。
A computer having a fixed point table for storing a plurality of values obtained by multiplying predetermined points on an elliptic curve by different scalar values,
Calculating a point on the elliptic curve by using a pseudo-random function for the point on the elliptic curve, and storing the calculated point in a storage device; and
A scalar value generation step of summing the values of the points stored in the storage device, and generating a scalar value based on the total value;
Among each value stored in the fixed point table, a combination of values corresponding to the scalar value is determined, and each determined value is added to the next on the elliptic curve from a point on the elliptic curve. A point calculating step for calculating
A list generation method comprising: a list generation step of collecting each point calculated by the point calculation unit and generating a list.
楕円曲線上の所定の点をそれぞれ異なるスカラ値によってスカラ倍算した値を複数記憶する固定点テーブルを有するコンピュータに、
前記楕円曲線上の点に対して疑似ランダム関数を用いることで前記楕円曲線上の点を算出し、算出した点を記憶装置に記憶する疑似ランダム関数適用手順と、
前記記憶装置に記憶された点の値を合計し、合計した値に基づいてスカラ値を生成するスカラ値生成手順と、
前記固定点テーブルに記憶された各値のうち、前記スカラ値に対応する値の組あわせを判定し、判定した各値を加算することで、前記楕円曲線上の点から該楕円曲線上の次の点を算出する点算出手順と、
前記点算出部が算出した各点を収集し、リストを生成するリスト生成手順と
を実行させることを特徴とするリスト生成プログラム。
A computer having a fixed point table for storing a plurality of values obtained by multiplying predetermined points on an elliptic curve by different scalar values,
Calculating a point on the elliptic curve by using a pseudo-random function for the point on the elliptic curve, and storing the calculated point in a storage device; and
A scalar value generation procedure for summing the values of the points stored in the storage device and generating a scalar value based on the total value;
Among each value stored in the fixed point table, a combination of values corresponding to the scalar value is determined, and each determined value is added to the next on the elliptic curve from a point on the elliptic curve. A point calculation procedure for calculating the points of
A list generation program that collects each point calculated by the point calculation unit and generates a list.
JP2010172899A 2010-07-30 2010-07-30 LIST GENERATION DEVICE, LIST GENERATION METHOD, AND LIST GENERATION PROGRAM Expired - Fee Related JP5505173B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010172899A JP5505173B2 (en) 2010-07-30 2010-07-30 LIST GENERATION DEVICE, LIST GENERATION METHOD, AND LIST GENERATION PROGRAM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010172899A JP5505173B2 (en) 2010-07-30 2010-07-30 LIST GENERATION DEVICE, LIST GENERATION METHOD, AND LIST GENERATION PROGRAM

Publications (2)

Publication Number Publication Date
JP2012032650A JP2012032650A (en) 2012-02-16
JP5505173B2 true JP5505173B2 (en) 2014-05-28

Family

ID=45846109

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010172899A Expired - Fee Related JP5505173B2 (en) 2010-07-30 2010-07-30 LIST GENERATION DEVICE, LIST GENERATION METHOD, AND LIST GENERATION PROGRAM

Country Status (1)

Country Link
JP (1) JP5505173B2 (en)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3797808B2 (en) * 1998-10-27 2006-07-19 富士通株式会社 Scalar multiplication method and apparatus
JP4423900B2 (en) * 2003-08-05 2010-03-03 株式会社日立製作所 Scalar multiplication calculation method, apparatus and program for elliptic curve cryptography
JP4668931B2 (en) * 2005-01-24 2011-04-13 富士通株式会社 Encryption processor with tamper resistance against power analysis attacks
JP4690819B2 (en) * 2005-08-05 2011-06-01 株式会社日立製作所 Scalar multiplication calculation method and scalar multiplication calculation apparatus in elliptic curve cryptography

Also Published As

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

Similar Documents

Publication Publication Date Title
CN107683502B (en) Generating cryptographic function parameters from compact source code
Goyal et al. Lightweight security algorithm for low power IoT devices
JP6477461B2 (en) Order-preserving encryption system, apparatus, method and program
Guyeux et al. Efficient and cryptographically secure generation of chaotic pseudorandom numbers on gpu
Volos Chaotic random bit generator realized with a microcontroller
Ruttor et al. Neural cryptography with feedback
Akinyele et al. Machine-generated algorithms, proofs and software for the batch verification of digital signature schemes
Hao et al. Asymmetric cryptographic functions based on generative adversarial neural networks for Internet of Things
Abdaoui et al. Fuzzy elliptic curve cryptography for authentication in Internet of Things
CN113841149A (en) System and method for mining on a workload justification blockchain network
Faraoun A genetic strategy to design cellular automata based block ciphers
Sarkar Secure exchange of information using artificial intelligence and chaotic system guided neural synchronization
JP2009005213A (en) Batch verification device, program and batch verification method
Alawida Enhancing logistic chaotic map for improved cryptographic security in random number generation
Liu et al. A novel security key generation method for SRAM PUF based on Fourier analysis
EP3633656A1 (en) Secret tamper detection system, secret tamper detection device, method for detecting secret tamper, and program
JP2014137474A (en) Tamper detection device, tamper detection method, and program
JP5505173B2 (en) LIST GENERATION DEVICE, LIST GENERATION METHOD, AND LIST GENERATION PROGRAM
US20190097786A1 (en) System and method for generating a symmetrically balanced output
Arı et al. Generation of substitution box structures based on blum blum shub random number outputs
JP5540933B2 (en) Encryption key analysis method, encryption key analysis device, and encryption key analysis program
Mitra et al. Public key cryptography using harmony search algorithm
Acín True quantum randomness
Kang et al. On the additional chi-square tests for the IID assumption of NIST SP 800-90B
Sarkar Chaos-based mutual synchronization of three-layer tree parity machine: a session key exchange protocol over public channel

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130403

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140303

R150 Certificate of patent or registration of utility model

Ref document number: 5505173

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees