JP2017126024A - Encryption device, encryption method and encryption program - Google Patents

Encryption device, encryption method and encryption program Download PDF

Info

Publication number
JP2017126024A
JP2017126024A JP2016006317A JP2016006317A JP2017126024A JP 2017126024 A JP2017126024 A JP 2017126024A JP 2016006317 A JP2016006317 A JP 2016006317A JP 2016006317 A JP2016006317 A JP 2016006317A JP 2017126024 A JP2017126024 A JP 2017126024A
Authority
JP
Japan
Prior art keywords
coordinate
curve
vertex
destination
output value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016006317A
Other languages
Japanese (ja)
Other versions
JP6614979B2 (en
Inventor
克幸 高島
Katsuyuki Takashima
克幸 高島
剛 ▲高▼木
剛 ▲高▼木
Takeshi Takagi
ひかり 立花
Hikari Tachibana
ひかり 立花
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.)
Kyushu University NUC
Mitsubishi Electric Corp
Original Assignee
Kyushu University NUC
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kyushu University NUC, Mitsubishi Electric Corp filed Critical Kyushu University NUC
Priority to JP2016006317A priority Critical patent/JP6614979B2/en
Publication of JP2017126024A publication Critical patent/JP2017126024A/en
Application granted granted Critical
Publication of JP6614979B2 publication Critical patent/JP6614979B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide an encryption device that improves calculation efficiency of encryption using isogenies of L≥3.SOLUTION: An encryption device 10 outputs an output value without backtracking in a graph having an identical category of a supersingular elliptic curve as an apex set and L-isogenies of L≥3 between the elliptic curves as a set of a side. In this instance, the encryption device 10 is configured to calculate an X-coordinate βof a backtracking point using an expression expressing the X-coordinate βof the backtracking point with respect to a vertex Eof a movement destination by the X-coordinate of a vertex Eof a movement source; resolve a cubic equation to calculate an x-coordinate αof the vertex Eof the movement destination; calculate curve information on the elliptic curve serving as the vertex Eof the movement destination; and calculate the output value using the calculated curve information.SELECTED DRAWING: Figure 1

Description

この発明は、耐量子計算機暗号に関する。   The present invention relates to an anti-quantum computer encryption.

耐量子計算機暗号の1つとして、楕円曲線上の同種写像を利用した暗号がJaoらにより提案された(非特許文献1〜3)。同種写像には、パラメータLがあり、これまでYoshidaらによって、L=2の場合の高速化手法が提案されていた(非特許文献4)。   As one of anti-quantum computer ciphers, Jao et al. Proposed a cipher that uses the same kind of mapping on an elliptic curve (Non-Patent Documents 1 to 3). The homogeneous map has a parameter L, and Yoshida et al. Have proposed a speed-up method in the case of L = 2 (Non-Patent Document 4).

L.De Feo, D. Jao and J. Plut, “Towards quantum−resistant cryptosystems from supersingular elliptic curve isogenies”, J. Math. Cryptology, 8(1), pp.1-29, 2014L. De Feo, D.D. Jao and J.H. Plut, “Towards quantum-resistant cryptosystems from the superficial elliptic curves”, J. Am. Math. Cryptology, 8 (1), pp. 1-29, 2014 D.Jao and R.Venkatesan, “Use of isogenies for design of cryptosystems”, US Patent, 7499544, March 3, 2009D. Jao and R.J. Venkatesan, “Use of genesis for design of cryptosystems”, US Patent, 7499544, March 3, 2009. D.Jao, P.L. Montgomery, R.Venkatesan and V.Boyko, “Systems and methods for generation and validation of isogeny−based signatures”, US Patent, 7617397, November 10, 2009D. Jao, P.A. L. Montgomery, R.A. Venkatesan and V. Boyko, “Systems and methods for generation and validation of isogeny-based signatures”, US Patent, 76173397, November 10, 2009. R. Yoshida and K. Takashima, “Computing a sequence of 2−isogenies on supersingular elliptic curves”, IEICE Transactions on Fundamentals, 96−A(1): pp.158−165, 2013R. Yoshida and K.K. Takashima, “Computing a sequence of 2-isogenes on supersonic elliptic curves”, IEICE Transactions on Fundamentals, 96-A (1): pp. 158-165, 2013 D.X.Charles, E.Z. Goren and K.E. Lauter, “Cryptographic hash functions from expander graphs”, J. Cryptology, vol.22, No.1 pp.93−113.D. X. Charles, E.M. Z. Goren and K. E. Lauter, “Cryptographic hash functions from expander graphs”, J. Am. Cryptology, vol. 22, no. 1 pp. 93-113. J. Velu,“Isogenies entre courbes elliptiques”,C.R. Acad. Sc. Paris, Series A, vol. 273, pp.238−241,1971.J. et al. Velu, “Isogenies entre courses ellipiques”, C.I. R. Acad. Sc. Paris, Series A, vol. 273, pp. 238-241, 1971.

Jaoらの暗号では、L=3の場合の演算も使っているが、この演算は遅かった。
この発明は、L≧3の場合における同種写像の計算効率を向上させ、L≧3の同種写像を利用した暗号の計算効率を向上させることを目的とする。
In the encryption of Jao et al., The calculation for L = 3 is also used, but this calculation was slow.
An object of the present invention is to improve the calculation efficiency of a homogeneous map in the case of L ≧ 3 and improve the calculation efficiency of a cipher using the homogeneous map of L ≧ 3.

この発明に係る暗号装置は、
超特異楕円曲線の同型類を頂点集合とし、前記楕円曲線間のL≧3であるL−同種写像を辺の集合とするグラフにおいて、後戻りすることなく頂点間を移動させて出力値を計算する暗号装置であり、
移動元の頂点Eのx座標α を入力として、移動先の頂点Ei+1に対する後戻り点のx座標β i+1を移動元の頂点Eのx座標で表した式を利用して前記後戻り点のx座標β i+1を計算した上で、3次方程式を解いて移動先の頂点Ei+1のx座標α i+1を計算することにより、前記移動先の頂点Ei+1である楕円曲線の曲線情報を計算する曲線計算部と、
前記曲線計算部によって計算された前記曲線情報を用いて前記出力値を計算する出力値計算部と
を備える。
The encryption device according to the present invention provides:
In a graph in which the isomorphism of a super singular elliptic curve is a vertex set, and the L-homogeneous mapping with L ≧ 3 between the elliptic curves is a set of edges, the output value is calculated by moving between the vertices without going back. An encryption device,
As inputs the x coordinate alpha x i of the source vertex E i, wherein by utilization of the x coordinate beta x i + 1 of the backtracking point for the destination vertex E i + 1 in the x-coordinate of the source vertex E i Formula after having calculated the x coordinate beta x i + 1 of the backtracking point, the destination by solving a cubic equation vertex E i + 1 by calculating the x-coordinate alpha x i + 1, the elliptic curve said a destination vertex E i + 1 A curve calculation unit for calculating curve information;
An output value calculation unit that calculates the output value using the curve information calculated by the curve calculation unit.

この発明では、後戻り点のx座標β i+1を移動元の頂点Eのx座標で表した式を利用して後戻り点のx座標β i+1を計算した上で、3次方程式を解く。これにより、後戻り点のx座標β i+1を少ない計算量で計算でき、同種写像の計算効率を向上させることができる。 In the present invention, the x-coordinate β x i + 1 of the rearward return point is calculated using an expression in which the x-coordinate β x i + 1 of the rearward return point is represented by the x coordinate of the vertex E i as the movement source, and then the cubic equation is solved. As a result, the x-coordinate β x i + 1 of the backward return point can be calculated with a small amount of calculation, and the calculation efficiency of the homogeneous mapping can be improved.

実施の形態1に係る暗号装置10の構成図。1 is a configuration diagram of a cryptographic device 10 according to a first embodiment. 実施の形態1に係るグラフG及びウォークの説明図。Explanatory drawing of the graph G and walk which concern on Embodiment 1. FIG. 実施の形態1に係る3−同種写像列計算処理のフローチャート。3 is a flowchart of 3-kind mapping sequence calculation processing according to the first embodiment. 実施の形態1に係るIsogSeqアルゴリズムを示す図。FIG. 3 is a diagram showing an IsogSeq algorithm according to the first embodiment. 実施の形態1に係る3−同種写像計算処理のフローチャート。3 is a flowchart of 3-kind mapping calculation processing according to the first embodiment. 実施の形態1に係るIsogアルゴリズムを示す図。FIG. 3 is a diagram showing an Isog algorithm according to the first embodiment. 変形例に係る暗号装置10の構成図。The block diagram of the encryption apparatus 10 which concerns on a modification.

実施の形態1.
***前提***
実施の形態1における暗号には、情報を第三者から秘匿する狭義の暗号だけでなく、情報の送信元のなりすまし、情報の改ざんの防止に用いられる署名も含む。また、実施の形態1における暗号には、狭義の暗号及び署名といった処理で用いられるハッシュ値を計算することも含む。
実施の形態1では、暗号の処理の具体例として、ハッシュ値を計算する処理を説明する。しかし、実施の形態1で説明した処理を応用して、非特許文献1〜3といった文献に記載された鍵共有、狭義の暗号、署名を実現することも可能である。
Embodiment 1 FIG.
*** Assumptions ***
The cipher in Embodiment 1 includes not only a narrowly-defined cipher that conceals information from a third party, but also includes a signature that is used to prevent information from being spoofed and information being tampered with. In addition, the encryption in the first embodiment includes calculating a hash value used in processes such as encryption and signature in a narrow sense.
In the first embodiment, a process for calculating a hash value will be described as a specific example of the encryption process. However, by applying the processing described in the first embodiment, it is possible to realize key sharing, narrowly defined encryption, and signature described in documents such as Non-Patent Documents 1 to 3.

***構成の説明***
図1を参照して、実施の形態1に係る暗号装置10の構成を説明する。
暗号装置10は、暗号処理を実行するコンピュータである。
暗号装置10は、プロセッサ11と、記憶装置12と、インタフェース13とを備える。プロセッサ11は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
*** Explanation of configuration ***
With reference to FIG. 1, the structure of the encryption apparatus 10 which concerns on Embodiment 1 is demonstrated.
The encryption device 10 is a computer that executes encryption processing.
The encryption device 10 includes a processor 11, a storage device 12, and an interface 13. The processor 11 is connected to other hardware via a signal line, and controls these other hardware.

プロセッサ11は、プロセッシングを行うIC(Integrated Circuit)である。プロセッサ11は、具体的には、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。   The processor 11 is an IC (Integrated Circuit) that performs processing. Specifically, the processor 11 is a CPU (Central Processing Unit), a DSP (Digital Signal Processor), or a GPU (Graphics Processing Unit).

記憶装置12は、メモリ121と、ストレージ122とを備える。メモリ121は、具体的には、RAM(Random Access Memory)である。ストレージ122は、具体的には、HDD(Hard Disk Drive)である。また、ストレージ122は、SD(Secure Digital)メモリカード、CF(CompactFlash)、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVDといった可搬記憶媒体であってもよい。   The storage device 12 includes a memory 121 and a storage 122. Specifically, the memory 121 is a RAM (Random Access Memory). Specifically, the storage 122 is an HDD (Hard Disk Drive). Further, the storage 122 may be a portable storage medium such as an SD (Secure Digital) memory card, a CF (CompactFlash), a NAND flash, a flexible disk, an optical disk, a compact disk, a Blu-ray (registered trademark) disk, or a DVD.

インタフェース13は、暗号装置10の外部からデータの入力を受け付け、外部へデータを出力するためのインタフェースである。インタフェース13は、具体的には、キーボードといった入力装置と、ディスプレイといった出力装置とを接続するUSB(Universal Serial Bus)、PS/2、HDIM(High−Definition Multimedia Interface)といったコネクタである。また、インタフェース13は、具体的には、外部からネットワークを介して送信されたデータを送受信するNIC(Network Interface Card)であってもよい。   The interface 13 is an interface for receiving data input from the outside of the encryption device 10 and outputting the data to the outside. Specifically, the interface 13 is a connector such as USB (Universal Serial Bus), PS / 2, or HDIM (High-Definition Multimedia Interface) that connects an input device such as a keyboard and an output device such as a display. Specifically, the interface 13 may be a NIC (Network Interface Card) that transmits and receives data transmitted from the outside via a network.

暗号装置10は、機能構成要素として、受付部21と、曲線計算部22と、出力値計算部23とを備える。受付部21と、曲線計算部22と、出力値計算部23との各部の機能はソフトウェアにより実現される。
記憶装置12のストレージ122には、暗号装置10の各部の機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ11によりメモリ121に読み込まれ、プロセッサ11によって実行される。これにより、暗号装置10の各部の機能が実現される。
The encryption device 10 includes a reception unit 21, a curve calculation unit 22, and an output value calculation unit 23 as functional components. The functions of the reception unit 21, the curve calculation unit 22, and the output value calculation unit 23 are realized by software.
The storage 122 of the storage device 12 stores programs that realize the functions of the respective units of the encryption device 10. This program is read into the memory 121 by the processor 11 and executed by the processor 11. Thereby, the function of each part of the encryption device 10 is realized.

プロセッサ11によって実現される各部の機能の処理の結果を示す情報とデータと信号値と変数値は、メモリ121、又は、プロセッサ11内のレジスタ又はキャッシュメモリに記憶される。以下の説明では、プロセッサ11によって実現される各部の機能の処理の結果を示す情報とデータと信号値と変数値は、メモリ121に記憶されるものとして説明する。   Information, data, signal values, and variable values indicating the results of processing of the functions of the respective units realized by the processor 11 are stored in the memory 121, or a register or cache memory in the processor 11. In the following description, it is assumed that information, data, signal values, and variable values indicating the processing results of the functions of the respective units realized by the processor 11 are stored in the memory 121.

プロセッサ11によって実現される各機能を実現するプログラムは、記憶装置12に記憶されているとした。しかし、このプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVDといった可搬記憶媒体に記憶されてもよい。   It is assumed that a program for realizing each function realized by the processor 11 is stored in the storage device 12. However, this program may be stored in a portable storage medium such as a magnetic disk, a flexible disk, an optical disk, a compact disk, a Blu-ray (registered trademark) disk, or a DVD.

図1では、プロセッサ11は、1つだけ示されていた。しかし、プロセッサ11は、複数であってもよく、複数のプロセッサ11が、各機能を実現するプログラムを連携して実行してもよい。   In FIG. 1, only one processor 11 is shown. However, a plurality of processors 11 may be provided, and a plurality of processors 11 may execute programs that realize each function in cooperation with each other.

***動作の説明***
図2から図6を参照して、実施の形態1に係る暗号装置10の動作を説明する。
実施の形態1に係る暗号装置10の動作は、実施の形態1に係る暗号方法に相当する。また、実施の形態1に係る暗号装置10の動作は、実施の形態1に係る暗号プログラムの処理に相当する。
ここでは、(1)Pizerグラフとハッシュ関数と、(2)楕円曲線上の同種写像とを説明した上で、(3)暗号装置10の動作を説明する。
*** Explanation of operation ***
With reference to FIGS. 2 to 6, the operation of the cryptographic apparatus 10 according to the first embodiment will be described.
The operation of the cryptographic apparatus 10 according to the first embodiment corresponds to the cryptographic method according to the first embodiment. The operation of the cryptographic apparatus 10 according to the first embodiment corresponds to the processing of the cryptographic program according to the first embodiment.
Here, after describing (1) the Pizer graph and the hash function, and (2) the same kind of mapping on the elliptic curve, (3) the operation of the encryption device 10 will be described.

**(1)Pizerグラフとハッシュ関数**
ここでは、(1−1)エクスパンダーグラフと、(1−2)Pizerグラフと、(1−3)後戻りしないウォークと、(1−4)ハッシュ関数の安全性とについて説明する。
** (1) Pizer graph and hash function **
Here, (1-1) an expander graph, (1-2) a Pizer graph, (1-3) a walk that does not return, and (1-4) the security of a hash function will be described.

*(1−1)エクスパンダーグラフ*
G=(V,ε)を頂点集合Vと辺集合εとをもつグラフとする。#U≧#V/2を満たす任意の部分集合U⊂Vに対し、Uの境界集合Γ(U)が#Γ(U)≧c#Uをみたすとき、グラフGは拡張率c>0のエクスパンダーグラフと言われる。ここで、Γ(U):={v∈V|∃u∈U,{u,v}∈ε}である。また、#Uは、Uの個数である。同様に、#V及び#Γは、それぞれVの個数及びΓの個数である。
任意のエクスパンダーグラフは、完全グラフである。エクスパンダーグラフ上のランダムウォークは、急撹拌性を持つ。O(log#V)ステップのランダムウォークをした後の終点の分布は、グラフ上の一様分布に近似する。
* (1-1) Expander graph *
Let G = (V, ε) be a graph having a vertex set V and an edge set ε. For any subset U 集合 V satisfying # U ≧ # V / 2, when the boundary set Γ (U) of U satisfies # Γ (U) ≧ c # U, the graph G has an expansion rate c> 0 It is said to be an expander graph. Here, Γ (U): = {vεV | ∃uεU, {u, v} εε}. #U is the number of U's. Similarly, #V and # Γ are the number of V and the number of Γ, respectively.
Any expander graph is a complete graph. The random walk on the expander graph has a stirrability. The distribution of end points after a random walk of O (log # V) steps approximates a uniform distribution on the graph.

*(1−2)Pizerグラフ*
PizerグラフG=(V,ε)は、体Fp2上の超特異楕円曲線の同型類を頂点集合Vに持つ。p2は、pのことであり、pは素数位数である。各頂点は、j−不変量又は代表元Eで表される。また、辺集合εは、頂点間のL−同種写像の集合である。このグラフは、各頂点がL+1個の辺を持つ。頂点を楕円曲線Eで表すとき、頂点である楕円曲線Eから出る辺は、頂点である楕円曲線EのL+1個のL等分点と対応している。頂点である楕円曲線Eから出るL+1個の各辺の端点について、頂点である楕円曲線Eと異なる点は位数Lの部分群C⊂E[L]を用いてE/Cで表される。
グラフGは、急撹拌性を持つことが知られている。特に、これはエクスパンダーグラフの特別な種類であるラマヌジャングラフと呼ばれる。詳細は、非特許文献5等に記載されている。
* (1-2) Pizer graph *
The Pizer graph G = (V, ε) has an isomorphic class of super singular elliptic curves on the field F p2 in the vertex set V. p2 is that of p 2, p is a prime number. Each vertex is represented by j-invariant or representative E. The edge set ε is a set of L-homogeneous mappings between vertices. In this graph, each vertex has L + 1 edges. When the vertex is represented by an elliptic curve E, the side that emerges from the elliptic curve E that is the vertex corresponds to L + 1 L equally divided points of the elliptic curve E that is the vertex. For the end points of each of the L + 1 sides that emerge from the elliptic curve E that is the vertex, a point that is different from the elliptic curve E that is the vertex is represented by E / C using a subgroup C⊂E [L] of order L.
The graph G is known to have a rapid stirring property. In particular, this is called the Ramanujan graph, a special kind of expander graph. Details are described in Non-Patent Document 5 and the like.

*(1−3)後戻りしないウォーク*
ハッシュ関数への入力値は、グラフGを後戻りせずにウォークする道順として使用される。そして、そのウォークの終点がハッシュ関数の出力値とされる。グラフGは(L+1)−正則グラフなので、各頂点に接続している辺の数はL+1である。したがって、始点を除いた各点では、次に進む頂点の候補が後戻りとなる頂点を除いたL個存在する。
* (1-3) Walk that does not return *
The input value to the hash function is used as a route to walk without going backward in the graph G. The end point of the walk is set as the output value of the hash function. Since the graph G is (L + 1) -regular graph, the number of edges connected to each vertex is L + 1. Therefore, at each point excluding the start point, there are L candidates for the next vertex, excluding the vertex that is to be returned.

*(1−4)ハッシュ関数の安全性*
エクスパンダーグラフを用いたハッシュ関数には、Cayleyグラフを用いる場合とPizerグラフを用いる場合との2種類がある。Cayleyグラフを用いたハッシュ関数には、Zemorハッシュ関数とLPSハッシュ関数と等があるが、そのほとんどはすでに攻撃法が見つかっており安全ではない。しかし、Pizerグラフを用いたハッシュ関数には、まだ攻撃法が見つかっていない。
ハッシュ関数の安全性は、衝突困難性と原像計算困難性という2つの性質によって保障される。衝突困難性とは、同じハッシュ値をもつ2つの異なる入力を探すことが困難なことである。原像計算困難性とは与えられたハッシュ値を持つような入力を探すことが困難なことである。
* (1-4) Security of hash function *
There are two types of hash functions using an expander graph: a case where a Caley graph is used and a case where a Pizer graph is used. The hash function using the Cayley graph includes a Zemor hash function and an LPS hash function, but most of them have already found attack methods and are not secure. However, no attack method has yet been found for the hash function using the Pizer graph.
The security of the hash function is ensured by two properties: collision difficulty and original image calculation difficulty. Collision difficulty is that it is difficult to find two different inputs with the same hash value. Original image calculation difficulty means that it is difficult to find an input having a given hash value.

Pizerグラフにおけるハッシュ関数の安全性は次の3つの問題の困難性により保障される。
問題1.体Fp2上の超特異楕円曲線E1,E2と、その間の次数Lの異なる同種写像f1:E1→E2,f2:E1→E2を構成する。
問題2.体Fp2上の超特異楕円曲線Eが与えられたとき、次数L2nの自己準同型写像f:E→E(fはL倍写像でない)を構成する。
問題3.体Fp2上の超特異楕円曲線E1,E2が与えられたとき、次数Lの同種写像f:E1→E2を構成する。
ハッシュ関数の衝突を計算できれば問題1,問題2は解かれる。また、ハッシュ関数の原像計算ができれば問題3は解かれる。
同種写像問題は、楕円曲線間の同種写像問題、超特異楕円曲線間の同種写像問題に分類される。現在知られている最も効率的な攻撃の計算量は、古典計算機を用いた場合は、それぞれO(√p)、O(√p)であり、量子計算機を用いた場合は、それぞれL[1/2,(√3)/2]、O(√p)である。
The security of the hash function in the Pizer graph is guaranteed by the difficulty of the following three problems.
Problem 1. The body F p2 on supersingular elliptic curve E1, E2, different isogenies of intervening orders L n f1: E1 → E2, f2: configuring the E1 → E2.
Problem 2. When a super singular elliptic curve E on the field F p2 is given, a self-homogeneous map f: E → E (f is not an Ln- fold map) of order L 2n is formed.
Problem 3. When Supersingular on the body F p2 elliptic curve E1, E2 is given, isogenies f of order L n: configuring the E1 → E2.
If the hash function collision can be calculated, Problem 1 and Problem 2 are solved. Further, if the original image of the hash function can be calculated, the problem 3 can be solved.
The homogeneous mapping problem is classified into a homogeneous mapping problem between elliptic curves and a homogeneous mapping problem between hypersingular elliptic curves. The computational complexity of the most efficient attack currently known is O ( 4 √p) and O (√p), respectively, when using a classical computer, and L p when using a quantum computer, respectively. [1/2, (√3) / 2 ] is, O (4 √p).

**(2)楕円曲線上の同種写像**
ここでは、(2−1)楕円曲線と、(2−2)Veluの公式とについて説明する。
** (2) Homogeneous map on elliptic curve **
Here, (2-1) elliptic curve and (2-2) Velu formula will be described.

*(2−1)楕円曲線*
pを3より大きい素数とする。体Fp2上の楕円曲線Eは、Weierstrass標準形としてy=x+Ax+B,A,B∈Fp2,4A+27B≠0で与えられる。楕円曲線Eのj−不変量j(E)は、数11で計算される。

Figure 2017126024
j−不変量j(E)=j∈F (j≠0,1728)となる楕円曲線Eは、数12となる
Figure 2017126024
* (2-1) Elliptic curve *
Let p be a prime number greater than 3. The elliptic curve E on the field F p2 is given as Weierstrass standard form with y 2 = x 3 + Ax + B, A, BεF p2 , 4A 3 + 27B 2 ≠ 0. The j-invariant j (E) of the elliptic curve E is calculated by Equation 11.
Figure 2017126024
An elliptic curve E in which j-invariant j (E) = j∈F p (j ≠ 0, 1728) is expressed by Expression 12.
Figure 2017126024

2つの楕円曲線が同じj−不変量をもつことは、それらが同型であることの必要十分条件である。楕円曲線EのF 有理点群をE(F )={(x,y)∈F |y=x+Ax+B}∪{O}とする。ここで、Oは、楕円曲線Eの無限遠点を表す。整数nに対し、楕円曲線Eのn等分点の集合はE[n]={P∈E(F )|[n]P=O}である。F 上の2つの楕円曲線E1,E2に対し、準同型φ:E1→E2はOE1をOE2へ移す代数曲線の射である。非零な準同型は同種写像と呼ばれ、核の濃度がLとなるseparableな同種写像はL−同種写像と呼ばれる。E(F )上に位数pの点が存在しないようなF 上の楕円曲線を超特異であるという。超特異楕円曲線のj−不変量は常にFp2に含まれる。 It is a necessary and sufficient condition that two elliptic curves have the same j-invariant that they are isomorphic. Of the elliptic curve E F - p rational point group of E (F - p) = - | a {(x, y) ∈F p 2 y 2 = x 3 + Ax + B} ∪ {O E}. Here, O E represents a point at infinity of the elliptic curve E. For an integer n, the set of n equal points of the elliptic curve E is E [n] = {PεE (F p ) | [n] P = O E }. For the two elliptic curves E1 and E2 on F - p , the homomorphism φ: E1 → E2 is an algebraic curve that moves O E1 to O E2 . A non-zero homomorphism is called a homomorphism, and a separable homomorphism with a nuclear concentration of L is called an L-homogeneity map. An elliptic curve on F - p where no point of order p exists on E (F - p ) is said to be super singular. The j-invariant of the hypersingular elliptic curve is always included in F p2 .

*(2−2)Veluの公式*
2−同種写像と3−同種写像とのVeluの公式(非特許文献6)を用いた計算について説明する。Veluの公式とは、楕円曲線EとC=kerφが与えられたとき、同種写像φ:E→E’とE’との定義式を明示的に計算する公式である。この公式は任意の次数Lについて成立する。
ここでは、Lが2又は3のときを説明する。Cを楕円曲線E上の位数2又は3の部分群とする。このとき、C=kerφとなる同種写像φ:E→E’が一意に存在する。E’=E/Cと表す。
* (2-2) Velu's formula *
A calculation using the Velu formula (Non-Patent Document 6) of 2-homogeneous mapping and 3-homogeneous mapping will be described. The Velu formula is a formula that explicitly calculates the definition of the homogeneous map φ: E → E ′ and E ′ when an elliptic curve E and C = ker φ are given. This formula holds for any order L.
Here, the case where L is 2 or 3 will be described. Let C be a subgroup of order 2 or 3 on the elliptic curve E. At this time, a homogeneous map φ: E → E ′ where C = kerφ exists uniquely. E ′ = E / C.

L=2の場合、C=<(α,0)>⊂E[2]を楕円曲線E上の位数2の部分群とすると、楕円曲線E/Cは数13で与えられる。

Figure 2017126024
さらに、同種写像φ:E→E/Cは、数14で与えられる。ここで、φ(O)=OE/C,φ((α,0))=OE/Cである。
Figure 2017126024
In the case of L = 2, if C = <(α, 0)> ⊂E [2] is a subgroup of order 2 on the elliptic curve E, the elliptic curve E / C is given by Equation 13.
Figure 2017126024
Further, the homogeneous map φ: E → E / C is given by Equation 14. Here, φ (O E ) = O E / C and φ ((α, 0)) = O E / C.
Figure 2017126024

L=3の場合、C=<(α,α)>⊂E[3]を楕円曲線E上の位数3の部分群とすると、楕円曲線E/Cは数15で与えられる。

Figure 2017126024
さらに、同種写像φ:E∋(x,y)→(X,Y)∈E/Cは、数16で与えられる。ここで、φ(O)=OE/C,φ((α,α))=OE/Cである。
Figure 2017126024
In the case of L = 3, if C = <(α x , α y )> ⊂E [3] is a subgroup of order 3 on the elliptic curve E, the elliptic curve E / C is given by Equation 15.
Figure 2017126024
Further, the homogeneous map φ: E∋ (x, y) → (X, Y) εE / C is given by the following equation (16). Here, φ (O E ) = O E / C and φ ((α x , α y )) = O E / C.
Figure 2017126024

L=2,3の両方において、楕円曲線Eが超特異であればE/CもまたFp2上定義される。また、明らかに超特異楕円曲線Eに対し同種写像φもFp2上で定義される。 In both L = 2 and 3, E / C is also defined on F p2 if the elliptic curve E is super singular. Obviously, the homogeneous map φ is also defined on F p2 for the hypersingular elliptic curve E.

**(3)暗号装置10の動作**
暗号装置10は、ハッシュ関数への入力値を、グラフGを後戻りせずにウォークする道順として使用し、そのウォークの終点をハッシュ関数の出力値とする。実施の形態1では、L=3の場合について説明する。つまり、実施の形態1では、グラフGにおいて、頂点である楕円曲線Eから出る辺が、頂点である楕円曲線Eの4個の3等分点と対応している場合について説明する。
なお、以下の説明で、グラフGとは、(1−2)で説明した、体Fp2上の超特異楕円曲線の同型類を頂点集合Vとし、頂点間のL−同種写像を辺集合εとしたPizerのラマヌジャングラフである。
** (3) Operation of the cryptographic device **
The cryptographic device 10 uses the input value to the hash function as a route to walk without going backward in the graph G, and uses the end point of the walk as the output value of the hash function. In the first embodiment, a case where L = 3 will be described. That is, in the first embodiment, a case will be described where, in the graph G, an edge that emerges from the elliptic curve E that is a vertex corresponds to four bisectors of the elliptic curve E that is a vertex.
In the following description, the graph G refers to the hypermorphic elliptic curve isomorphism on the field F p2 described in (1-2) as the vertex set V, and the L-homogeneous mapping between the vertices as the edge set ε. It is a Ramanujan graph of Pizer.

ここでは、(3−1)入力値に従いグラフGをウォークする際に使用するセレクター関数を定義し、(3−2)3等分点に関する記法と、(3−3)3等分点について成り立つ性質とを説明する。そして、(3−1)から(3−3)を踏まえた上で、(3−4)3−同種写像列の計算法を説明する。
実施の形態1に係る暗号装置10は、3−同種写像列を計算することにより、入力値に対応するハッシュ値を計算する。
Here, (3-1) the selector function used when walking the graph G according to the input value is defined, and (3-3) the notation regarding the bisector and (3-3) the bisector are established. Explain the nature. Then, based on (3-1) to (3-3), a calculation method of (3-4) 3-same mapping sequence will be described.
The cryptographic apparatus 10 according to the first embodiment calculates a hash value corresponding to the input value by calculating a 3-homogeneous mapping sequence.

*(3−1)セレクター関数*
上述した通り、グラフGは(L+1)−正則グラフなので、各頂点に接続している辺の数はL+1である。そのため、図2に示すように、L=3の場合、グラフGは4−正則グラフなので、各頂点に接続している辺の数は4本である。したがって、始点Eを除いた各点E(i=1,...,n−1)では、次に進む頂点の候補が後戻りとなる後戻り点を除いた3個存在する。
暗号装置10は、i=1,...,n−1の各整数についての頂点Eから次に進む候補となる3つの頂点と接続された3つの辺に対して、値b∈{0,1,2}を割り当てる。そして、暗号装置10は、次に進む候補となる3つの頂点λ,λ,λ∈Fp2と、値b∈{0,1,2}に対して、Fp2の順序を用いて、数17のようにセレクター関数select(3)を定義し、ウォークデータω=b...bn−1∈{0,1,2}及びセレクター関数select(3)により次に進む移動先の頂点Ei+1を決定する。ここで、Fp2の順序としては、Fp2=F[τ]=Fτ+F=〜(Fとなる生成元τを固定し、(Fでの自然な辞書式順列を用いる。

Figure 2017126024
* (3-1) Selector function *
As described above, since the graph G is (L + 1) -regular graph, the number of sides connected to each vertex is L + 1. Therefore, as shown in FIG. 2, when L = 3, the graph G is a 4-regular graph, so the number of sides connected to each vertex is four. Therefore, at each point E i (i = 1,..., N−1) excluding the start point E 0 , there are three excluding the back-turning point where the next vertex candidate is back-turned.
The encryption device 10 has i = 1,. . . , N−1, the value bε {0, 1, 2} is assigned to the three sides connected to the three vertices that are candidates to proceed from the vertex E i for each integer. Then, the cryptographic apparatus 10 uses the order of F p2 for the three vertices λ 0 , λ 1 , λ 2 ∈ F p2 and the value b ∈ {0, 1, 2} that are candidates to proceed next. , The selector function select (3) is defined as in Equation 17, and the walk data ω = b 0 b 1 . . . b n−1 ε {0, 1, 2} n and selector function select (3) determine the next vertex E i + 1 to move to. Here, the order of the F p2, F p2 = F p [τ] 2 = F p τ + F p = ~ (F p) to secure the origin tau as a 2, natural dictionary in (F p) 2 Use a formula permutation.
Figure 2017126024

始点Eでは、3等分点を任意に選ぶことができる。そのため、暗号装置10は、数18に示すセレクター関数select (3)を用いて、始点Eのx座標α と、始点Eの後戻り点のx座標β とを決定する。なお、ψ(x)=3x+6A+12Bx−A =0の4つの根をλ,λ,λ,λ∈Fp2(λ≦λ≦λ≦λ)とする。

Figure 2017126024
At the start point E 0 , a trisection point can be arbitrarily selected. Therefore, the encryption device 10 determines the x coordinate α x 0 of the start point E 0 and the x coordinate β x 0 of the return point of the start point E 0 using the selector function select 0 (3) shown in Equation 18. Note that four roots of ψ 3 (x) = 3x 4 + 6A 0 x 2 + 12B 0 x−A 0 2 = 0 are represented by λ 0 , λ 1 , λ 2 , λ 3 ∈ F p20 ≦ λ 1 ≦ λ 2 ≦ λ 3 ).
Figure 2017126024

*(3−2)3等分点に関する記法*
ウォークデータω=b...bn−1∈{0,1,2}に対応して、頂点E上の4つの3等分点の表記を次のように固定する。
(α ,α )は、i番目の同種写像φに関係のある点である。(β ,β )は、i番目の後戻り点である。(γ ,γ )及び(δ ,δ )は、残りの2点である。
* (3-2) Notation concerning the trisection point *
Walk data ω = b 0 b 1 . . . b n−1 ε {0, 1, 2} Corresponding to n , the notation of four trisection points on the vertex E i is fixed as follows.
x i , α y i ) is a point related to the i-th homogeneous map φ i . (Β x i , β y i ) is the i-th backtracking point. (Γ x i , γ y i ) and (δ x i , δ y i ) are the remaining two points.

*(3−3)3等分点について成り立つ性質*
(性質1)
(α ,α ),(β ,β ),(γ ,γ ),(δ ,δ )を楕円曲線Eの3等分点とし、φ:E→E/CをC=<(α ,α )>としたときの3−同種写像とする。このとき、φ(β ,β ),φ(γ ,γ ),φ(δ ,δ )は、Ei+1の後戻り点である。
* (3-3) Properties that hold for the trisection point *
(Property 1)
Letx i , α y i ), (β x i , β y i ), (γ x i , γ y i ), (δ x i , δ y i ) be the bisector of the elliptic curve E i , Φ i : E 3 → Similar mapping when E i → E i / C is C = <(α x i , α y i )>. At this time, φ ix i , β y i ), φ ix i , γ y i ), and φ ix i , δ y i ) are backtracking points of E i + 1 .

(性質2)
i+1上の後戻り点のx座標β i+1は、β i+1=−3α により与えられる。
(Property 2)
The x coordinate β x i + 1 of the return point on E i + 1 is given by β x i + 1 = −3α x i .

*(3−4)3−同種写像列計算処理*
図3及び図4を参照して、3−同種写像列計算処理を説明する。
図4に示すIsogSeqアルゴリズムによって3−同種写像列が計算される。
* (3-4) 3-Homogeneous map sequence calculation process *
With reference to FIGS. 3 and 4, the 3-homogeneous mapping sequence calculation process will be described.
A 3-homogeneous mapping sequence is calculated by the IsogSeq algorithm shown in FIG.

ステップS1の入力値受付処理(図4のInput参照)では、受付部21は、入力値及び始点Eのj不変量jを受け付ける。受付部21は、受け付けられた入力値を、ウォークデータω=b...bn−1(b∈{0,1,2},i=0,...,n−1)に変換する。
具体的には、受付部21は、インタフェース13を介して、外部から入力値を受け付ける。具体例としては、ユーザにより入力装置が操作されて入力された入力値を、受付部21がインタフェース13を介して受け付ける、あるいは、通信装置を介して送信された入力値を受付部21がインタフェース13を介して受け付ける。また、受付部21は、初期の楕円曲線Eのj不変量jをメモリ121から読み出す。なお、始点Eのj不変量jは、入力値とともに外部から受け付けられるとしてもよい。
そして、受付部21は、入力値を3進数で表すことにより、入力値をウォークデータωに変換する。受付部21は、3進数で表された入力値の桁数をnとして、3進数で表された入力値の上位の桁から、その桁の値を値b,値b,...,値bn−1と順に割り当てる。受付部21は、入力値が基準値以上の値になるように、入力値を表すビット列に固定のビット列を追加した上で、3進数に変換してもよい。
In the input value reception process (see Input in FIG. 4) in step S1, the reception unit 21 receives the input value and the j invariant j 0 of the start point E 0 . The receiving unit 21 converts the received input value into the walk data ω = b 0 b 1 . . . b n−1 (b i ε {0, 1, 2}, i = 0,..., n−1).
Specifically, the accepting unit 21 accepts an input value from the outside via the interface 13. As a specific example, the receiving unit 21 receives an input value input by operating the input device by the user via the interface 13 or the receiving unit 21 receives the input value transmitted via the communication device. Accept through. In addition, the reception unit 21 reads the j invariant j 0 of the initial elliptic curve E 0 from the memory 121. Note that the j invariant j 0 at the start point E 0 may be received from the outside together with the input value.
And the reception part 21 converts an input value into the walk data (omega) by expressing an input value with a ternary number. The accepting unit 21 sets the number of digits of the input value represented in ternary number to n, and converts the value of the digit from the upper digits of the input value represented in ternary number to value b 0 , value b 1 ,. . . , Value b n−1 in this order. The receiving unit 21 may add a fixed bit string to the bit string representing the input value and convert it to a ternary number so that the input value becomes equal to or greater than the reference value.

ステップS2の初期処理(図4の(1)参照)では、曲線計算部22は、ステップS1で受け付けられた始点Eのj不変量jを入力として、始点Eである楕円曲線y=x+Ax+Bにおける曲線情報A及びBを、数12に基づき計算する。曲線情報A及びBを計算するということは、楕円曲線Eを計算するということに相当する。
また、曲線計算部22は、計算された曲線情報A及びBと、ステップS1で入力値から変換されたウォークデータωに含まれる値bとを入力として、数18に示すセレクター関数select (3)により、始点Eのx座標α と、始点Eの後戻り点のx座標β とを決定する。
曲線計算部22は、計算されたA及びBと、始点Eのx座標α と、始点Eの後戻り点のx座標β とをメモリ121に書き込む。
In the initial processing of step S2 (see (1) in FIG. 4), the curve calculation unit 22 is input with j-invariant j 0 of the starting point E 0 received in step S1, the elliptic curve y 2 is the starting point E 0 The curve information A 0 and B 0 at = x 3 + A 0 x + B 0 is calculated based on Equation 12. The calculation of the curve information A 0 and B 0 corresponds to the calculation of the elliptic curve E 0 .
Further, the curve calculation unit 22 receives the calculated curve information A 0 and B 0 and the value b 0 included in the walk data ω converted from the input value in step S1, and receives the selector function select shown in Expression 18. the 0 (3), to determine the x-coordinate alpha x 0 of the starting point E 0, and x-coordinate beta x 0 of backtracking points of the starting point E 0.
Curve calculation unit 22, the calculated A 0 and B 0, and x-coordinate alpha x 0 of the starting point E 0, writes the x coordinate beta x 0 of backtracking points of the starting point E 0 in the memory 121.

ステップS3の3−同種写像計算処理(図4の(2)〜(4)参照)では、曲線計算部22は、i=0,...,n−2の整数iについて昇順に、移動先の頂点Ei+1である楕円曲線y=x+Ai+1x+Bi+1における曲線情報Ai+1及びBi+1を計算するとともに、移動先の頂点Ei+1のx座標α i+1を決定する。 In the 3-homogeneous mapping calculation process of step S3 (see (2) to (4) in FIG. 4), the curve calculation unit 22 sets i = 0,. . . , Of n-2 in ascending order the integers i, with calculating a curve information A i + 1 and B i + 1 in the elliptic curve y 2 = x 3 + A i + 1 x + B i + 1 which is the destination of the vertex E i + 1, the destination vertex E i + 1 of Determine the x-coordinate α x i + 1 .

図5及び図6を参照して、ステップS3の3−同種写像計算処理について説明する。
ステップS3では、i=0,...,n−2の整数iについて昇順に、A及びBと、移動元の頂点Eのx座標α と、値bi+1とを入力として、図6に示すIsogアルゴリズムが呼び出され、Ai+1及びBi+1と、移動先の頂点Ei+1のx座標α i+1とが計算される。
With reference to FIGS. 5 and 6, the 3-homogeneous mapping calculation process in step S3 will be described.
In step S3, i = 0,. . . , N-2, in an ascending order with respect to the integer i, the Isog algorithm shown in FIG. 6 is called by inputting A i and B i , the x coordinate α x i of the source vertex E i , and the value b i + 1 . A i + 1 and B i + 1 and the x coordinate α x i + 1 of the destination vertex E i + 1 are calculated.

ステップS31の曲線計算処理(図6の(1)参照)では、曲線計算部22は、移動元の頂点Eである楕円曲線の曲線情報A及びBと、移動元の頂点Eのx座標α とから、数15に基づき、移動先の頂点Ei+1である楕円曲線の曲線情報Ai+1及びBi+1を計算する。
具体的には、曲線計算部22は、曲線情報A及びBと、移動元の頂点Eのx座標α とをメモリ121から読み出す。そして、曲線計算部22は、読み出された曲線情報A及びBと、移動元の頂点Eのx座標α とを入力として、数15から得られる数19により、曲線情報Ai+1及びBi+1を計算する。曲線計算部22は、計算された曲線情報Ai+1及びBi+1をメモリ121に書き込む。

Figure 2017126024
In curve calculation processing in step S31 (see (1) in FIG. 6), the curve calculation unit 22, and the curve information A i and B i of the elliptic curve, which is the source vertex E i, of the source vertex E i Based on the x coordinate α x i , the curve information A i + 1 and B i + 1 of the elliptic curve which is the vertex E i + 1 of the movement destination is calculated based on the equation ( 15).
Specifically, the curve calculation unit 22 reads the curve information A i and B i and the x coordinate α x i of the movement source vertex E i from the memory 121. Then, the curve calculation unit 22 receives the read curve information A i and B i and the x coordinate α x i of the vertex E i of the movement source, and obtains the curve information A by the equation 19 obtained from the equation 15. i + 1 and B i + 1 are calculated. The curve calculation unit 22 writes the calculated curve information A i + 1 and B i + 1 in the memory 121.
Figure 2017126024

ステップS32の3次方程式計算処理(図6の(2)参照)では、曲線計算部22は、移動先の頂点Ei+1のx座標α i+1の候補となる3次方程式の解λ,λ,λを計算する。 In the cubic equation calculation process in step S32 (see (2) in FIG. 6), the curve calculation unit 22 solves the cubic equations λ 1 and λ that are candidates for the x coordinate α x i + 1 of the destination vertex E i + 1. 2 and λ 3 are calculated.

具体的には、曲線計算部22は、A及びBと、移動元の頂点Eのx座標α とをメモリ121から読み出す。
そして、まず、曲線計算部22は、読み出されたx座標α を入力として、(3−3)3等分点について成り立つ性質で説明した性質1,2に従い、移動先の頂点Ei+1上の後戻り点のx座標β i+1を、β i+1=−3α により計算する。
次に、曲線計算部22は、3次方程式x+ux+vx+w=0を解いて、(β i+1,β i+1)以外の3等分点のx座標を計算する。ここで、u=β i+1であり、v=2Ai+1+(β i+1であり、ω=4Bi+1+2Ai+1β i+1+(β i+1である。
この際、曲線計算部22は、カルダノの公式を用いて3次方程式を解く。つまり、x+x+1=0の解を、ωとする。そして、数20に示すt,t,tに対して数20に示すu,vとすると、求める解は、数21になる。

Figure 2017126024
Figure 2017126024
これに対して、曲線計算部22は、数15と、β i+1=−3α とを代入する。そして、曲線計算部22は、ζを1の3乗根とした場合に、3次方程式の2つの3乗根u,vがv=−ζ/uとなることを利用して、3次方程式を解く。数22に示すζ,ζ,ζに対して数22に示すu,vとすると、解λ,λ,λは数23になる。
Figure 2017126024
Figure 2017126024
Specifically, the curve calculation unit 22 reads A i and B i and the x coordinate α x i of the vertex E i of the movement source from the memory 121.
First, the curve calculation unit 22 uses the read x-coordinate α x i as an input, and follows (3-3) the properties 1 and 2 described in the properties that hold for the bisector, and the destination vertex E i + 1. The x coordinate β x i + 1 of the upper return point is calculated by β x i + 1 = −3α x i .
Next, the curve calculation unit 22 solves the cubic equation x 3 + ux 2 + vx + w = 0, and calculates the x coordinate of the trisection point other than (β x i + 1 , β y i + 1 ). Here, u = β x i + 1 , v = 2A i + 1 + (β x i + 1 ) 2 , and ω = 4B i + 1 + 2A i + 1 β x i + 1 + (β x i + 1 ) 3 .
At this time, the curve calculation unit 22 solves the cubic equation using the Cardano formula. That is, the solution of x 2 + x + 1 = 0 is set to ω 0 . Then, if t 1 , t 2 , and t 3 shown in Equation 20 are u and v shown in Equation 20, the solution to be obtained is Equation 21.
Figure 2017126024
Figure 2017126024
On the other hand, the curve calculation unit 22 substitutes Equation 15 and β x i + 1 = −3α x i . Then, the curve calculation unit 22 uses the fact that two cube roots u and v of the cubic equation become v = −ζ / u when ζ is a cube root of 1. Solve. Assuming that u and v shown in Equation 22 with respect to ζ 1 , ζ 2 and ζ 3 shown in Equation 22, the solutions λ 0 , λ 1 and λ 2 become Equation 23.
Figure 2017126024
Figure 2017126024

ステップS33の座標決定処理(図6の(3)参照)では、曲線計算部22は、計算された解λ,λ,λと、ステップS1で入力値から変換されたウォークデータωに含まれる値bi+1とを入力として、数17に示すセレクター関数select(3)により、移動先の頂点Ei+1のx座標α i+1を決定する。曲線計算部22は、決定されたx座標α i+1をメモリ121に書き込む。 In the coordinate determination process in step S33 (see (3) in FIG. 6), the curve calculation unit 22 converts the calculated solutions λ 0 , λ 1 and λ 2 into the walk data ω converted from the input values in step S1. as inputs and the value b i + 1 contained by selector function select indicated in Formula 17 (3), to determine the x-coordinate alpha x i + 1 of the destination vertex E i + 1. The curve calculation unit 22 writes the determined x coordinate α x i + 1 in the memory 121.

ステップS4の終了処理(図4の(5)参照)では、曲線計算部22は、ステップS3で決定された頂点En−1のx座標α n−1から、移動先の頂点Eである楕円曲線y=x+Ax+Bにおける曲線情報A及びBを、数15に基づき計算する。
具体的には、曲線計算部22は、曲線情報An−1及びBn−1と、移動元の頂点En−1のx座標α n−1とをメモリ121から読み出す。そして、曲線計算部22は、読み出された曲線情報An−1及びBn−1と、移動元の頂点En−1のx座標α n−1とを入力として、数15から得られる数24により、曲線情報A及びBを計算する。曲線計算部22は、計算された曲線情報A及びBをメモリ121に書き込む。

Figure 2017126024
In end processing In step S4 (see (5) in FIG. 4), the curve calculation unit 22, the x-coordinate alpha x n-1 of the vertices E n-1 determined in step S3, in the destination vertex E n Curve information A n and B n in a certain elliptic curve y 2 = x 3 + A n x + B n is calculated based on Equation 15.
Specifically, the curve calculation unit 22 reads the curve information A n−1 and B n−1 and the x coordinate α x n−1 of the movement source vertex E n−1 from the memory 121. Then, the curve calculation unit 22 receives the read curve information A n−1 and B n−1 and the x coordinate α x n−1 of the movement source vertex E n−1 as input, and is obtained from Equation 15. The curve information A n and B n is calculated by the equation 24 given below. The curve calculation unit 22 writes the calculated curve information An and B n in the memory 121.
Figure 2017126024

ステップS5の出力値計算処理(図4のOutput参照)では、出力値計算部23は、ステップS4で計算された曲線情報A及びBをメモリ121から読み出す。そして、出力値計算部23は、頂点Eである楕円曲線のj不変量jを数11に基づき計算する。出力値計算部23は、計算されたj不変量jを、ステップS1で受け付けられた入力値に対するハッシュ値として出力する。 In the output value calculation process in step S5 (see Output in FIG. 4), the output value calculation unit 23 reads the curve information An and Bn calculated in step S4 from the memory 121. Then, the output value calculation section 23 calculates based on the j-invariant j n of the elliptic curve is a vertex E n to the number 11. The output value calculation unit 23 outputs the calculated j invariant j n as a hash value for the input value accepted in step S1.

***実施の形態1の効果***
以上のように、実施の形態1に係る暗号装置10は、3−同種写像列を計算することにより、入力値に対するハッシュ値を計算した。3−同種写像列を計算する際、暗号装置10は、移動先の頂点Ei+1に対する後戻り点のx座標β i+1が、移動元の頂点Eのx座標α のみを変数として表したβ i+1=−3α を用いて、後戻り点のx座標β i+1を計算した。これにより、後戻り点のx座標β i+1の計算量を少なくできる。その結果、同種写像の計算効率を向上させることができる。
*** Effects of Embodiment 1 ***
As described above, the cryptographic apparatus 10 according to Embodiment 1 calculates a hash value for an input value by calculating a 3-kind mapping sequence. 3-When calculating the homogenous mapping sequence, the cryptographic apparatus 10 represents the x coordinate β x i + 1 of the backward return point with respect to the destination vertex E i + 1 as a variable only with the x coordinate α x i of the source vertex E i Using β x i + 1 = −3α x i , the x-coordinate β x i + 1 of the return point was calculated. As a result, the amount of calculation of the x coordinate β x i + 1 of the backward return point can be reduced. As a result, the calculation efficiency of the homogeneous map can be improved.

また、実施の形態1に係る暗号装置10は、3−同種写像列を計算する際、一般の多項式解法アルゴリズムではなく、カルダノの公式を用いて3次方程式を解いた。これにより、3次方程式の計算量を少なくできる。その結果、同種写像の計算効率を向上させることができる。   Also, the cryptographic apparatus 10 according to Embodiment 1 solved the cubic equation using the Cardano formula instead of the general polynomial solution algorithm when calculating the 3-homogeneous mapping sequence. Thereby, the calculation amount of the cubic equation can be reduced. As a result, the calculation efficiency of the homogeneous map can be improved.

また、実施の形態1に係る暗号装置10は、3−同種写像列を計算する際、ζを1の3乗根とした場合に、3次方程式の2つの3乗根u,vがv=−ζ/uとなることを利用して、3次方程式を解いた。これにより、3乗根の計算を1回減らすことができ、3次方程式の計算量を少なくできる。その結果、同種写像の計算効率を向上させることができる。   In addition, when the cryptographic apparatus 10 according to Embodiment 1 calculates a 3-homogeneous mapping sequence and ζ is a cube root of 1, the two cube roots u and v of the cubic equation are v = The cubic equation was solved by using -ζ / u. Thereby, the calculation of the cube root can be reduced once, and the calculation amount of the cubic equation can be reduced. As a result, the calculation efficiency of the homogeneous map can be improved.

***他の構成***
実施の形態1では、暗号処理の具体例として、ハッシュ値を計算する処理を説明した。そのため、出力値計算部23は、出力値として、ハッシュ値を計算した。
しかし、実施の形態1で説明した処理を応用して、非特許文献1〜3といった文献に記載された鍵共有、狭義の暗号、署名を実現することも可能である。鍵共有及び狭義の暗号を実現する場合、出力値計算部23は、出力値として、暗号文を計算する。また、署名を実現する場合、出力値計算部23は、出力値として、電子署名を計算する。
つまり、出力値計算部23は、出力値として、ハッシュ値と、暗号文と、署名との少なくともいずれかを計算する。
*** Other configurations ***
In the first embodiment, the process of calculating a hash value has been described as a specific example of the encryption process. Therefore, the output value calculation unit 23 calculates a hash value as the output value.
However, by applying the processing described in the first embodiment, it is possible to realize key sharing, narrowly defined encryption, and signature described in documents such as Non-Patent Documents 1 to 3. When realizing key sharing and encryption in a narrow sense, the output value calculation unit 23 calculates a ciphertext as an output value. Further, when realizing a signature, the output value calculation unit 23 calculates an electronic signature as an output value.
That is, the output value calculation unit 23 calculates at least one of a hash value, a ciphertext, and a signature as an output value.

また、実施の形態1では、L=3の場合について説明した。しかし、L>3の場合についても、同様に、移動先の頂点Ei+1に対する後戻り点のx座標β i+1を移動元の頂点Eのx座標で表した式を利用して後戻り点のx座標β i+1を計算することにより、後戻り点のx座標β i+1の計算量を少なくできる。その結果、同種写像の計算効率を向上させることができる。 In the first embodiment, the case of L = 3 has been described. However, in the case of L> 3, similarly, the x of the backward return point is expressed by using the expression of the x coordinate β x i + 1 of the backward return point for the destination vertex E i + 1 with the x coordinate of the origin vertex E i. by calculating the coordinates beta x i + 1, it can be reduced calculation amount of x-coordinate beta x i + 1 of the turning back point. As a result, the calculation efficiency of the homogeneous map can be improved.

実施の形態1では、暗号装置10の各部の機能がソフトウェアで実現された。しかし、変形例として、暗号装置10の各部の機能はハードウェアで実現されてもよい。この変形例について、実施の形態1と異なる点を説明する。   In the first embodiment, the function of each unit of the cryptographic device 10 is realized by software. However, as a modification, the function of each unit of the encryption device 10 may be realized by hardware. This modification will be described with respect to differences from the first embodiment.

図7を参照して、変形例に係る暗号装置10の構成を説明する。
各部の機能がハードウェアで実現される場合、暗号装置10は、プロセッサ11と記憶装置12とに代えて、処理回路14を備える。処理回路14は、暗号装置10の各部の機能及び記憶装置12の機能を実現する専用の電子回路である。
With reference to FIG. 7, the structure of the encryption apparatus 10 which concerns on a modification is demonstrated.
When the function of each unit is realized by hardware, the encryption device 10 includes a processing circuit 14 instead of the processor 11 and the storage device 12. The processing circuit 14 is a dedicated electronic circuit that realizes the functions of the respective units of the encryption device 10 and the functions of the storage device 12.

処理回路14は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field−Programmable Gate Array)が想定される。
各部の機能を1つの処理回路14で実現してもよいし、各部の機能を複数の処理回路14に分散させて実現してもよい。
The processing circuit 14 is assumed to be a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, a logic IC, a GA (Gate Array), an ASIC (Application Specific Integrated Circuit), or an FPGA (Field-Programmable Gate Array). Is done.
The function of each part may be realized by one processing circuit 14, or the function of each part may be distributed to a plurality of processing circuits 14.

また、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。つまり、暗号装置10の各部のうち、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。   Also, some functions may be realized by hardware, and other functions may be realized by software. That is, some of the functions of the cryptographic device 10 may be realized by hardware, and other functions may be realized by software.

プロセッサ11と記憶装置12と処理回路14とを、総称して「プロセッシングサーキットリー」という。つまり、各部の機能は、プロセッシングサーキットリーにより実現される。   The processor 11, the storage device 12, and the processing circuit 14 are collectively referred to as “processing circuitry”. That is, the function of each part is realized by a processing circuit.

10 暗号装置、11 プロセッサ、12 記憶装置、121 メモリ、122 ストレージ、13 インタフェース、14 処理回路、21 受付部、22 曲線計算部、23 出力値計算部。   DESCRIPTION OF SYMBOLS 10 Encryption apparatus, 11 Processor, 12 Storage apparatus, 121 Memory, 122 Storage, 13 interface, 14 Processing circuit, 21 Reception part, 22 Curve calculation part, 23 Output value calculation part

Claims (12)

楕円曲線の同型類を頂点集合とし、前記楕円曲線間のL≧3であるL−同種写像を辺集合とするグラフにおいて、後戻りすることなく頂点間を移動させて出力値を計算する暗号装置であり、
移動元の頂点Eのx座標α を入力として、移動先の頂点Ei+1に対する後戻り点のx座標β i+1を移動元の頂点Eのx座標で表した式を利用して前記後戻り点のx座標β i+1を計算した上で、3次方程式を解いて移動先の頂点Ei+1のx座標α i+1を計算することにより、前記移動先の頂点Ei+1である楕円曲線の曲線情報を計算する曲線計算部と、
前記曲線計算部によって計算された前記曲線情報を用いて前記出力値を計算する出力値計算部と
を備える暗号装置。
An encryption device that calculates an output value by moving between vertices without going back in a graph having an elliptic curve isomorphism as a vertex set and an L-homogeneous mapping with L ≧ 3 between the elliptic curves as an edge set. Yes,
As inputs the x coordinate alpha x i of the source vertex E i, wherein by utilization of the x coordinate beta x i + 1 of the backtracking point for the destination vertex E i + 1 in the x-coordinate of the source vertex E i Formula after having calculated the x coordinate beta x i + 1 of the backtracking point, the destination by solving a cubic equation vertex E i + 1 by calculating the x-coordinate alpha x i + 1, the elliptic curve said a destination vertex E i + 1 A curve calculation unit for calculating curve information;
An encryption apparatus comprising: an output value calculation unit that calculates the output value using the curve information calculated by the curve calculation unit.
前記グラフは、楕円曲線間の3−同種写像を辺集合とし、
前記曲線計算部は、前記x座標β i+1が前記x座標α の−3倍であることを利用して後戻り点のx座標β i+1を計算する
請求項1に記載の暗号装置。
The graph uses a 3-homogeneous mapping between elliptic curves as an edge set,
2. The encryption apparatus according to claim 1, wherein the curve calculation unit calculates an x coordinate β x i + 1 of a backward return point by using the x coordinate β x i + 1 being −3 times the x coordinate α x i .
前記曲線計算部は、カルダノの公式を用いて前記3次方程式を解く
請求項2に記載の暗号装置。
The encryption apparatus according to claim 2, wherein the curve calculation unit solves the cubic equation using a Cardano formula.
前記曲線計算部は、ζを1の3乗根とした場合に、3次方程式の2つの3乗根u,vがv=−ζ/uとなることを利用して前記3次方程式を解く
請求項3に記載の暗号装置。
The curve calculation unit solves the cubic equation by using the fact that two cube roots u and v of the cubic equation are v = −ζ / u when ζ is a cube root of 1. The encryption device according to claim 3.
前記曲線計算部は、前記移動元の頂点Eである楕円曲線y=x+Ax+BのA及びBと、前記移動元の頂点Eのx座標α とを入力として、前記3次方程式を数1に示すように解いて、解λ,λ,λを計算し、前記解λ,λ,λから1つの解を選択して、選択された前記解を前記移動先の頂点Ei+1のx座標α i+1として決定する
請求項4に記載の暗号装置。
Figure 2017126024
The curve calculation unit inputs the A i and B i of the elliptic curve y 2 = x 3 + A i x + B i wherein a movement source vertex E i, the x-coordinate alpha x i of the moving source vertex E i as a solving the cubic equation as shown in equation 1, solutions lambda 0, lambda 1, and calculates the lambda 2, the solutions lambda 0, lambda 1, select one solution from lambda 2, is selected The encryption apparatus according to claim 4, wherein the solution is determined as an x coordinate α x i + 1 of the vertex E i + 1 of the movement destination.
Figure 2017126024
前記曲線計算部は、前記移動元の頂点Eである楕円曲線y=x+Ax+BのA及びBと、前記x座標α とを入力として、前記移動先の頂点Ei+1である楕円曲線y=x+Ai+1x+Bi+1における曲線情報Ai+1及びBi+1を数2に示すように計算する
請求項5に記載の暗号装置。
Figure 2017126024
The curve calculation unit includes a A i and B i of the elliptic curve y 2 = x 3 + A i x + B i wherein a movement source vertex E i, as inputs and the x-coordinate alpha x i, the vertices of the destination E i + + 1 in which the elliptic curve y 2 = x 3 a i + 1 x + B i + 1 curve information in a i + 1 and B i + 1 encryption device according to claim 5, calculated as shown in Expression 2 below.
Figure 2017126024
前記曲線計算部は、始点Eである楕円曲線y=x+Ax+Bにおける曲線情報A及びBと、始点Eのx座標α と、ウォークデータω=b...bn−1とを入力として、k=0,...,n−2の整数kについて昇順に、前記移動先の頂点Ek+1である楕円曲線y=x+Ak+1x+Bk+1における曲線情報Ak+1及びBk+1を計算するとともに、前記移動先の頂点Ek+1のx座標α k+1を決定し、決定された前記x座標α n−1から前記移動先の頂点Eである楕円曲線y=x+Ax+Bにおける前記曲線情報A及びBを計算し、
前記出力値計算部は、前記曲線計算部によって計算された前記曲線情報A及びBから、前記移動先の頂点Eである楕円曲線のj不変量jを前記出力値として計算する
請求項6に記載の暗号装置。
The curve calculation unit, an elliptic curve y 2 = x 3 + A 0 x + B curve information A 0 and B 0 in 0 is the starting point E 0, and x-coordinate alpha x 0 of the starting point E 0, walk data omega = b 0 b 1 . . . b n−1 and k = 0,. . . , The ascending order for integer k n-2, with calculating the curve information A k + 1 and B k + 1 in the elliptic curve y 2 = x 3 + A k + 1 x + B k + 1 are the vertices E k + 1 of the destination, the destination vertex E k + 1 of determining the x-coordinate alpha x k + 1, the curve information a n in determined the x coordinate alpha from x n-1 are the vertices E n of the destination elliptic curve y 2 = x 3 + a n x + B n and Bn is calculated,
The output value calculating unit, wherein said from the curve information calculated by the curve computing unit A n and B n, calculates the j-invariant j n of the elliptic curve are the vertices E n of the destination as the output value Item 7. The encryption device according to Item 6.
前記出力値計算部は、前記j不変量jを前記ウォークデータωに対するハッシュ値として計算する
請求項7に記載の暗号装置。
The cryptographic apparatus according to claim 7, wherein the output value calculation unit calculates the j invariant j n as a hash value for the walk data ω.
前記グラフは、複数の整数LについてのL−同種写像を辺集合とし、
前記曲線計算部は、3−同種写像の辺の移動を計算する場合に、前記x座標β i+1が前記x座標α の−3倍であることを利用して、3次方程式を解く
請求項1に記載の暗号装置。
In the graph, an L-homogeneous mapping of a plurality of integers L is an edge set,
The curve calculation unit solves the cubic equation by using the fact that the x coordinate β x i + 1 is −3 times the x coordinate α x i when calculating the side movement of the 3-homogeneous map. The encryption device according to claim 1.
前記出力値計算部は、前記出力値として、ハッシュ値と、暗号文と、署名との少なくともいずれかを計算する
請求項1から9までのいずれか1項に記載の暗号装置。
The encryption apparatus according to claim 1, wherein the output value calculation unit calculates at least one of a hash value, a ciphertext, and a signature as the output value.
楕円曲線の同型類を頂点集合とし、前記楕円曲線間のL≧3であるL−同種写像を辺集合とするグラフにおいて、後戻りすることなく頂点間を移動させて出力値を計算する暗号方法であり、
プロセッサが、移動元の頂点Eのx座標α を入力として、移動先の頂点Ei+1に対する後戻り点のx座標β i+1を移動元の頂点Eのx座標で表した式を利用して前記後戻り点のx座標β i+1を計算した上で、3次方程式を解いて移動先の頂点Ei+1のx座標α i+1を計算することにより、前記移動先の頂点Ei+1である楕円曲線の曲線情報を計算し、
プロセッサが、計算された前記曲線情報を用いて前記出力値を計算する暗号方法。
An encryption method for calculating an output value by moving between vertices without going backwards in a graph in which an isomorphic class of elliptic curves is a vertex set and an L-homogeneous mapping with L ≧ 3 between the elliptic curves is an edge set. Yes,
Processor as inputs the x coordinate alpha x i of the source vertex E i, utilizing the x coordinate beta x i + 1 of the backtracking point for the destination vertex E i + 1 in the x-coordinate of the source vertex E i Formula to in terms of calculating the x-coordinate beta x i + 1 of the backtracking point, by calculating the x-coordinate alpha x i + 1 of the destination by solving a cubic equation vertex E i + 1, is a vertex E i + 1 of the destination Calculate the curve information of the elliptic curve,
A cryptographic method in which a processor calculates the output value using the calculated curve information.
楕円曲線の同型類を頂点集合とし、前記楕円曲線間のL≧3であるL−同種写像を辺集合とするグラフにおいて、後戻りすることなく頂点間を移動させて出力値を計算する暗号プログラムであり、
移動元の頂点Eのx座標α を入力として、移動先の頂点Ei+1に対する後戻り点のx座標β i+1を移動元の頂点Eのx座標で表した式を利用して前記後戻り点のx座標β i+1を計算した上で、3次方程式を解いて移動先の頂点Ei+1のx座標α i+1を計算することにより、前記移動先の頂点Ei+1である楕円曲線の曲線情報を計算する曲線計算処理と、
前記曲線計算処理によって計算された前記曲線情報を用いて前記出力値を計算する出力値計算処理と
をコンピュータに実行させる暗号プログラム。
An encryption program that calculates an output value by moving between vertices without going backwards in a graph having an elliptic curve isomorphism as a vertex set and an L-homogeneous mapping with L ≧ 3 between the elliptic curves as an edge set. Yes,
As inputs the x coordinate alpha x i of the source vertex E i, wherein by utilization of the x coordinate beta x i + 1 of the backtracking point for the destination vertex E i + 1 in the x-coordinate of the source vertex E i Formula after having calculated the x coordinate beta x i + 1 of the backtracking point, the destination by solving a cubic equation vertex E i + 1 by calculating the x-coordinate alpha x i + 1, the elliptic curve said a destination vertex E i + 1 A curve calculation process for calculating curve information;
An encryption program for causing a computer to execute an output value calculation process for calculating the output value using the curve information calculated by the curve calculation process.
JP2016006317A 2016-01-15 2016-01-15 Encryption apparatus, encryption method, and encryption program Active JP6614979B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016006317A JP6614979B2 (en) 2016-01-15 2016-01-15 Encryption apparatus, encryption method, and encryption program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016006317A JP6614979B2 (en) 2016-01-15 2016-01-15 Encryption apparatus, encryption method, and encryption program

Publications (2)

Publication Number Publication Date
JP2017126024A true JP2017126024A (en) 2017-07-20
JP6614979B2 JP6614979B2 (en) 2019-12-04

Family

ID=59365590

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016006317A Active JP6614979B2 (en) 2016-01-15 2016-01-15 Encryption apparatus, encryption method, and encryption program

Country Status (1)

Country Link
JP (1) JP6614979B2 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07200544A (en) * 1993-12-29 1995-08-04 Sharp Corp Root calculating device for equation of higher degree
JP2003208096A (en) * 2001-10-25 2003-07-25 Matsushita Electric Ind Co Ltd Elliptic curve converting device, method for converting elliptic curve, elliptic curve utilization device, and elliptic curve generation device
JP2004226706A (en) * 2003-01-23 2004-08-12 Mitsubishi Electric Corp Elliptic cipher safety strength evaluation method, elliptic cipher safety strength evaluation device and program, and computer readable recording medium with the program recorded thereon
JP2005141200A (en) * 2003-11-03 2005-06-02 Microsoft Corp Use of isogeny for design of cryptosystem
JP2009514036A (en) * 2005-11-01 2009-04-02 マイクロソフト コーポレーション Hash function construction from expander graph

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07200544A (en) * 1993-12-29 1995-08-04 Sharp Corp Root calculating device for equation of higher degree
JP2003208096A (en) * 2001-10-25 2003-07-25 Matsushita Electric Ind Co Ltd Elliptic curve converting device, method for converting elliptic curve, elliptic curve utilization device, and elliptic curve generation device
JP2004226706A (en) * 2003-01-23 2004-08-12 Mitsubishi Electric Corp Elliptic cipher safety strength evaluation method, elliptic cipher safety strength evaluation device and program, and computer readable recording medium with the program recorded thereon
JP2005141200A (en) * 2003-11-03 2005-06-02 Microsoft Corp Use of isogeny for design of cryptosystem
JP2009514036A (en) * 2005-11-01 2009-04-02 マイクロソフト コーポレーション Hash function construction from expander graph

Also Published As

Publication number Publication date
JP6614979B2 (en) 2019-12-04

Similar Documents

Publication Publication Date Title
Cervantes-Vázquez et al. Stronger and faster side-channel protections for CSIDH
Bernstein et al. Kummer strikes back: new DH speed records
CN112148437B (en) Calculation task acceleration processing method, device and equipment for federal learning
EP3096309A1 (en) Secure computation method, secure computation system, sorting device, and program
EP3930252A1 (en) Countermeasures for side-channel attacks on protected sign and key exchange operations
Brumnik et al. Techniques for performance improvement of integer multiplication in cryptographic applications
Courtois et al. Speed optimizations in Bitcoin key recovery attacks
Zheng et al. Exploiting the floating-point computing power of GPUs for RSA
Dong et al. Utilizing the Double‐Precision Floating‐Point Computing Power of GPUs for RSA Acceleration
Dong et al. sDPF-RSA: Utilizing floating-point computing power of GPUs for massive digital signature computations
CN101971138A (en) An apparatus and a method for calculating a multiple of a point on an elliptic curve
US9025766B2 (en) Efficient hardware architecture for a S1 S-box in a ZUC cipher
US10333697B2 (en) Nondecreasing sequence determining device, method and program
JP6614979B2 (en) Encryption apparatus, encryption method, and encryption program
Lin et al. Efficient parallel RSA decryption algorithm for manycore GPUs with CUDA
Shao et al. Estimates of the exit probability for two correlated Brownian motions
JP4692022B2 (en) Scalar multiplication apparatus and program for elliptic curve cryptography
JP5858938B2 (en) Calculation apparatus, calculation system, calculation method
CN112861189A (en) Signature generation method, signature verification device, signature verification equipment and medium
Raman Parallel processing of chaos-based image encryption algorithms
CN114868175A (en) Final power calculation device, pairing operation device, encryption processing device, final power calculation method, and final power calculation program
Judge et al. A Hardware‐Accelerated ECDLP with High‐Performance Modular Multiplication
JP4502817B2 (en) Elliptic curve scalar multiplication method and apparatus
JP2015135452A (en) Pairing computation device, multi-pairing computation device and program
Zaman et al. Implementation aspects of supersingular isogeny-based cryptographic hash function

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180830

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20180830

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190716

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190820

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190918

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191105

R150 Certificate of patent or registration of utility model

Ref document number: 6614979

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250