JP2024000429A - Electronic information storage medium, key generating method, program, ic chip and key generation system - Google Patents
Electronic information storage medium, key generating method, program, ic chip and key generation system Download PDFInfo
- Publication number
- JP2024000429A JP2024000429A JP2022099195A JP2022099195A JP2024000429A JP 2024000429 A JP2024000429 A JP 2024000429A JP 2022099195 A JP2022099195 A JP 2022099195A JP 2022099195 A JP2022099195 A JP 2022099195A JP 2024000429 A JP2024000429 A JP 2024000429A
- Authority
- JP
- Japan
- Prior art keywords
- polynomial
- key
- random number
- storage medium
- electronic information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 19
- 230000006870 function Effects 0.000 claims description 15
- 238000004364 calculation method Methods 0.000 description 19
- 238000004891 communication Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 6
- 238000005401 electroluminescence Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Landscapes
- Storage Device Security (AREA)
Abstract
Description
本発明は、格子暗号における鍵を利用する電子情報記憶媒体、鍵生成方法、プログラム、ICチップ及び鍵生成システムの技術分野に関する。 The present invention relates to the technical field of electronic information storage media, key generation methods, programs, IC chips, and key generation systems that utilize keys in lattice cryptography.
量子コンピュータが実現すると、既存の暗号アルゴリズムは短い時間で解くことが可能となり、特にRSA(Rivest-Shamir-Adleman cryptosystem)等の公開鍵暗号方式はショア(Shor)のアルゴリズムで解析が可能であることが知られている。量子コンピュータへの対抗として、格子暗号等の耐量子コンピュータ暗号が存在する。例えば、特許文献1には、多項式環を用いて定義される格子による格子空間を所定の回転行列で回転させた回転格子空間の基底ベクトルを用いて、公開鍵暗号における公開鍵を生成する生成装置が開示されている。
Once quantum computers are realized, existing cryptographic algorithms will be able to be solved in a short time, and in particular, public key cryptosystems such as RSA (Rivest-Shamir-Adleman cryptosystem) can be analyzed using the Shor algorithm. It has been known. As a countermeasure to quantum computers, quantum-resistant computer cryptography such as lattice cryptography exists. For example,
しかし、鍵を生成する上記従来の生成装置は、回転行列にて回転させた基底ベクトルを用いるが、鍵の生成方法自体は保護されていないため、鍵を生成するデバイスによっては改ざんによって不正な鍵が生成される可能性があるという問題点があった。 However, the conventional key generation device described above uses basis vectors rotated by a rotation matrix, but the key generation method itself is not protected, so depending on the key generation device, tampering may result in an unauthorized key. There was a problem in that there was a possibility that .
そこで、本発明は、上記問題等に鑑みてなされたものであり、鍵生成におけるセキュリティを強化した電子情報記憶媒体、鍵生成方法、プログラム、ICチップ及び鍵生成システムを提供することを目的とする。 The present invention has been made in view of the above-mentioned problems, and aims to provide an electronic information storage medium, a key generation method, a program, an IC chip, and a key generation system with enhanced security in key generation. .
上記課題を解決するために、請求項1に記載の発明は、格子暗号における鍵を使用するためのセキュアエレメントであって、前記鍵のための多項式を生成するために、所定の乱数長の乱数を生成する乱数生成手段と、前記乱数により生成された前記多項式による前記鍵を取得する鍵取得手段と、を備えることを特徴とする。
In order to solve the above problem, the invention according to
請求項2に記載の発明は、請求項1に記載の電子情報記憶媒体において、前記乱数を、前記多項式を生成する制御装置に出力する乱数出力手段を更に備えたことを特徴とする。
The invention according to claim 2 is characterized in that the electronic information storage medium according to
請求項3に記載の発明は、請求項2に記載の電子情報記憶媒体において、前記多項式を生成するために、前記乱数を前記制御装置に出力するか否かの乱数出力判定情報に基づき、前記乱数出力手段が、前記乱数を前記制御装置に出力することを特徴とする。 According to a third aspect of the invention, in the electronic information storage medium according to the second aspect, in order to generate the polynomial, based on random number output determination information regarding whether or not to output the random number to the control device, A random number output means outputs the random number to the control device.
請求項4に記載の発明は、請求項1に記載の電子情報記憶媒体において、前記乱数から前記多項式を生成する多項式生成手段を更に備えたことを特徴とする。
The invention according to claim 4 is characterized in that the electronic information storage medium according to
請求項5に記載の発明は、請求項4に記載の電子情報記憶媒体において、前記多項式を、前記多項式を生成する制御装置に出力する多項式出力手段を更に備えたことを特徴とする。
The invention according to
請求項6に記載の発明は、請求項5に記載の電子情報記憶媒体において、前記多項式を、前記制御装置に出力するか否かの多項式出力判定情報に基づき、前記多項式出力手段が、前記多項式を前記制御装置に出力することを特徴とする。 According to a sixth aspect of the invention, in the electronic information storage medium according to the fifth aspect, the polynomial output means outputs the polynomial based on polynomial output determination information regarding whether or not to output the polynomial to the control device. is output to the control device.
請求項7に記載の発明は、格子暗号における鍵を使用するための電子情報記憶媒体により実行される鍵生成方法であって、前記鍵のための多項式を生成するために、所定の乱数長の乱数を生成する乱数生成ステップと、前記乱数により生成された前記多項式による前記鍵を取得する鍵取得ステップと、を含むことを特徴とする。 The invention according to claim 7 is a key generation method executed by an electronic information storage medium for using a key in a lattice cryptography, in which a polynomial of a predetermined random number length is used to generate a polynomial for the key. The method is characterized in that it includes a random number generation step of generating a random number, and a key acquisition step of acquiring the key based on the polynomial generated by the random number.
請求項8に記載の発明は、格子暗号における鍵を使用するための電子情報記憶媒体に含まれるコンピュータを、前記鍵のための多項式を生成するために、所定の乱数長の乱数を生成する乱数生成手段、および、前記乱数により生成された前記多項式による前記鍵を取得する鍵取得手段として機能させることを特徴とする。 The invention according to claim 8 provides a computer included in an electronic information storage medium for using a key in a lattice cipher, a random number that generates a random number of a predetermined random number length in order to generate a polynomial for the key. It is characterized in that it functions as a generation means and a key acquisition means for acquiring the key based on the polynomial generated using the random number.
請求項9に記載の発明は、格子暗号における鍵を使用するためのICチップであって、前記鍵のための多項式を生成するために、所定の乱数長の乱数を生成する乱数生成手段と、前記乱数により生成された前記多項式による前記鍵を取得する鍵取得手段と、を備えることを特徴とする。 The invention according to claim 9 is an IC chip for using a key in lattice cryptography, comprising: random number generation means for generating a random number of a predetermined random number length in order to generate a polynomial for the key; The method is characterized by comprising a key acquisition means for acquiring the key based on the polynomial generated by the random number.
請求項10に記載の発明は、格子暗号における鍵を使用するための電子情報記憶媒体と、前記鍵を生成するために電子情報記憶媒体を制御する制御装置と、を備えた鍵生成システムにおいて、前記電子情報記憶媒体が、前記鍵のための多項式を生成するために、所定の乱数長の乱数を生成する乱数生成手段と、前記乱数により生成された前記多項式による前記鍵を取得する鍵取得手段と、を有することを特徴とする。
The invention according to
本発明によれば、格子暗号における鍵を使用するための電子情報記憶媒体であって、鍵のための多項式を生成するために、所定の乱数長の乱数を生成し、乱数により生成された多項式による鍵を取得することにより、電子情報記憶媒体内部で、多項式の生成に必要な乱数を生成できるので、鍵生成におけるセキュリティを強化することができる。 According to the present invention, there is provided an electronic information storage medium for using a key in a lattice cryptography, which generates random numbers of a predetermined random number length in order to generate a polynomial for the key, and generates a polynomial generated from the random numbers. By obtaining the key according to the method, it is possible to generate random numbers necessary for generating the polynomial within the electronic information storage medium, and therefore security in key generation can be strengthened.
以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、格子暗号の鍵生成システムに対して本発明を適用した場合の実施の形態である。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. The embodiment described below is an embodiment in which the present invention is applied to a lattice cryptographic key generation system.
(第1実施形態)
[1.格子暗号の鍵生成システム1の概要構成および機能]
まず、図1等を参照して、本発明の第1実施形態に係る格子暗号の鍵生成システム1の概要構成について説明する。図1は、第1実施形態に係る格子暗号の鍵生成システム1の概要構成例を示す図である。
(First embodiment)
[1. General configuration and functions of lattice cryptographic key generation system 1]
First, a schematic configuration of a lattice cryptographic
図1に示すように、格子暗号の鍵生成システム1は、格子暗号用のセキュアエレメント10と、セキュアエレメント10を制御することができる制御デバイス20と、を含んで構成される。
As shown in FIG. 1, a
セキュアエレメント10は、電子情報記憶媒体またはICチップの一例で、例えば、耐タンパー性を有するICチップである。セキュアエレメント10は、セキュアエレメント10の形態には、eSE(embedded Secure Element)の形態や、SIMカード(Subscriber Identity Module Card)の形態等がある。セキュアエレメント10は、例えば、クレジットカードやキャシュカードなどのICカード、ECU(Electronic Control Unit)等の制御装置、または、スマートフォンなどのモバイルデバイスに搭載される。スマートフォンなどのモバイルデバイスの場合、セキュアエレメント10は、モバイルデバイスに着脱可能な小型ICカードに搭載されてもよいし、eUICC(Embedded Universal Integrated Circuit Card)としてモバイルデバイスから容易に取り外しや取り換えができないように組み込み基板上に搭載されてもよい。
The
制御デバイス20は、セキュアエレメント10と接続可能な、コンピュータの機能を有する機器である。例えば、制御デバイス20は、セキュアエレメント10の製造工場における発行機であってもよいし、セキュアエレメント10が搭載されたモバイルデバイスであってもよい。制御デバイス20は、ECU、POS端末(POS: Point of Sales)、セキュアエレメント10と接続可能なパーソナルコンピュータ、タブレットコンピュータ等でもよい。なお、制御デバイス20は、インターネット等のネットワークを介して接続するサーバ装置でもよい。
The
セキュアエレメント10と制御デバイス20との接続は、接触型でも、非接触型でもよい。接触型の場合は、セキュアエレメント10は、接点端子を有する。非接触型の場合は、セキュアエレメント10は、制御デバイス20と通信可能なアンテナを有し、制御デバイス20とは、近距離無線通信により接続されてもよい。近距離無線通信には、例えば、NFC(Near Field Communication)、Bluetooth(登録商標)、またはUWB(Ultra Wide Band)の技術が用いられる。
The connection between the
ここで、格子暗号の方式として、NTRU方式、LWE方式、AD方式、GGH方式等あるが、NTRU暗号のように、鍵生成に多項式を利用する格子暗号が好ましい。 Here, there are NTRU schemes, LWE schemes, AD schemes, GGH schemes, etc. as lattice encryption schemes, but lattice schemes that use polynomials for key generation, like the NTRU scheme, are preferable.
次に、セキュアエレメント10の概要構成例について説明する。図2は、セキュアエレメント10の概要構成例を示す図である。
Next, a general configuration example of the
図2に示すように、セキュアエレメント10は、通信部11、記憶部12、および制御部14等を備える。
As shown in FIG. 2, the
通信部11は、制御デバイス20との間のインターフェースを担う。通信部11は、接触型の場合、接点端子を有し、非接触型の場合、制御デバイス20との通信用のアンテナを有する。
The communication unit 11 serves as an interface with the
記憶部12は、フラッシュメモリ、または、Electrically Erasable Programmable Read-Only Memoryなどの不揮発性メモリである。記憶部12は、格子暗号における鍵の生成に必要なデータや、セキュアな通信に必要な秘密鍵等のデータを記憶する。セキュアエレメント10は、記憶部12に記憶した、格子暗号の格子暗号における鍵により、外部装置とセキュアに通信を行ったり、デジタル署名を行ったりする。
The
なお、記憶部12は、セキュアエレメント10における格子暗号を計算する能力に関する情報を記憶していてもよい。乱数出力判定情報の一例である格子暗号を計算する能力に関する情報として、制御部13の演算速度、演算精度、演算の桁数、メモリ空間の容量等の制御部13のスペック、セキュアエレメント10のメモリの容量、セキュアエレメント10のメモリの容量の残量等が挙げられる。
Note that the
制御部13は、RAM(Random Access Memory)、ROM(Read Only Memory)14、およびCPU(Central Processing Unit)等を備える。制御部13は、乱数生成機能等を有する。乱数生成機能は、ソフトウェアで実現されてもよいし、ハードウェアで実現されてよい。セキュアエレメント10は、コンピュータとして機能し、制御部13が、プログラムに従って、様々な演算や処理を行う。
The
記憶部12、または、ROM等には、オペレーティングシステム、および、アプリケーション等のプログラム(本発明のプログラムを含む)が記憶される。ここで、アプリケーションには、格子暗号における鍵の生成に必要なアプリケーションが含まれる。
The
次に、制御デバイス20の概要構成例について説明する。図3は、制御デバイス20の概要構成例を示す図である。
Next, an example of a schematic configuration of the
図3に示すように、制御デバイス20は、通信部21と、記憶部22と、表示部23と、操作部24と、システム制御部25、入出力インターフェース部26とを備えている。そして、システム制御部25と入出力インターフェース部26とは、システムバス27を介して接続されている。
As shown in FIG. 3, the
通信部21は、セキュアエレメント10との間のインターフェースを担う。通信部21は、セキュアエレメント10が接触型の場合、接点端子を有し、セキュアエレメント10が非接触型の場合、セキュアエレメント10との通信用のアンテナを有する。
The
記憶部22は、例えば、ハードディスクドライブ、ソリッドステートドライブ等により構成されている。記憶部22には、オペレーティングシステムおよびアプリケーションが記憶される。アプリケーションには、多項式生成のプログラム、格子暗号計算のプログラム等が含まれる。
The
なお、記憶部22は、セキュアエレメント10における格子暗号を計算する能力に関する情報を記憶していてもよい。
Note that the
表示部23は、例えば、液晶表示素子または有機EL(Electro Luminescence)素子等によって構成されている。操作部24は、例えば、キーボードおよびマウス等によって構成されている。
The
システム制御部25は、例えば、CPU、RAM、およびROMと、を有する。システム制御部25は、CPUが、ROMや、RAMや、記憶部22に記憶された各種プログラムを読み出して実行する。例えば、システム制御部25は、格子暗号の多項式を計算したり、格子暗号を計算したりする。なお、システム制御部25は、ROMを備えない構成でもよい。
The
入出力インターフェース部26は、通信部21および記憶部22等とシステム制御部25とのインターフェースである。
The input/
[2.格子暗号の鍵生成システム1の動作]
次に、図を参照して、格子暗号の鍵生成システム1の動作について説明する。図4は、第1実施形態の格子暗号の鍵生成の動作の一例を示すフローチャートである。図5は、格子暗号の多項式生成のサブルーチンの一例を示すフローチャートである。
[2. Operation of lattice cryptographic key generation system 1]
Next, the operation of the lattice cryptographic
(2.1 格子暗号の鍵生成の動作)
図4に示すように、格子暗号の鍵生成システム1は、セキュアエレメント10に対して必要な乱数長を設定する(ステップS1)。具体的には、制御デバイス20が、セキュリティのレベル等に応じて、格子暗号の鍵生成に必要な、所定の乱数長の情報を、セキュアエレメント10に送信する。なお、セキュアエレメント10内において、所定の乱数長は、予め決められていてもよい。また、乱数長が、事前に指定済み、または、固定長の場合、このステップは、省略されてもよい。
(2.1 Operation of key generation for lattice cryptography)
As shown in FIG. 4, the lattice cryptographic
次に、格子暗号の鍵生成システム1は、セキュアエレメント内で乱数を生成する(ステップS2)。具体的には、セキュアエレメント10の制御部13が、制御デバイス20からの乱数長の情報に基づき、所定の乱数長の乱数を複数生成する。なお、後述の格子暗号の多項式生成のサブルーチンで必要な乱数の個数分が生成される。このように、セキュアエレメント10は、鍵のための多項式を生成するために、所定の乱数長の乱数を生成する乱数生成手段の一例として機能する。
Next, the lattice cryptographic
次に、格子暗号の鍵生成システム1は、セキュアエレメント10が生成した乱数を制御デバイス20に出力する(ステップS3)。具体的には、セキュアエレメント10の制御部13が、通信部11を介して、制御デバイス20に、生成した複数の乱数を送信する。なお、乱数を出力する際に、乱数の完全性を保証するために、乱数に、巡回冗長検査等のチェックコードが付与されてもよい。
Next, the lattice cryptographic
制御デバイス20は、乱数に誤りがなければ、受信した複数の乱数を、記憶部22またはシステム制御部25のRAM等に記憶する。乱数に誤りがあれば、制御デバイス20は、セキュアエレメント10に、再度、乱数を要求する。
If there is no error in the random numbers, the
なお、格子暗号の鍵生成システム1の環境が悪ければ、セキュアエレメント10と、制御デバイス20とは、相互認証等のセキュアな通信を行ってもよい。このように、セキュアエレメント10は、乱数を、多項式を生成する制御装置に出力する乱数出力手段の一例として機能する。
Note that if the environment of the lattice cryptographic
次に、格子暗号の鍵生成システム1は、乱数を利用して多項式を生成する(ステップS4)。具体的には、制御デバイス20が、後述の格子暗号の多項式生成のサブルーチンに基づき、乱数から、多項式fおよび多項式gの各項の係数を決定する。例えば、多項式fおよび多項式gは、係数が0、1、または、-1である、N-1次以下の整数係数多項式である。
Next, the lattice cryptographic
ここで、NTRU暗号の場合、多項式fは、df個の係数が”1”であり、かつ(df-1)個の係数が”-1”であり、かつ他の係数は”0”となるように生成される。多項式gは、dg個の係数が”1”であり、かつdg個の係数が”-1”であり、かつ他の係数は”0”となるように生成される。NTRU暗号では、パラメータdf、dgを用いてランダムに多項式f、多項式gが生成される。なお、パラメータdfとdgは同じ値でもよい。 Here, in the case of the NTRU encryption, the polynomial f has df coefficients of "1", (df-1) coefficients of "-1", and other coefficients of "0". It is generated as follows. Polynomial g is generated such that dg coefficients are "1", dg coefficients are "-1", and other coefficients are "0". In the NTRU encryption, polynomials f and g are randomly generated using parameters df and dg. Note that the parameters df and dg may have the same value.
次に、格子暗号の鍵生成システム1は、多項式から格子暗号の鍵情報を生成する。具体的には、制御デバイス20が、多項式fおよび多項式gから、NTRU暗号の鍵を生成する。より具体的には、制御デバイス20が、Fp×f=1(mod p)となる多項式Fpを算出する。次に、制御デバイス20が、Fq×f=1(mod q)となる多項式Fqを用いて、h=Fq×g(mod q)から、多項式hを生成する。ここで、pおよびqは、2以上の整数で、互いに素である。また、x=y(mod q)は、多項式yの第i次の係数を、剰余が0からq-1の範囲に収まるように法qで割ったときの剰余を、多項式xの第i次の係数とする演算である(0≦i≦N-1)。また、多項式f、多項式Fp、多項式Fqが秘密鍵に対応し、多項式hが公開鍵に対応する。
Next, the lattice cipher
セキュアエレメント10内部で生成した乱数から、多項式f、多項式gを計算することで、脆弱でない鍵ペアの多項式(Fp、Fq、h)が生成可能となる。
By calculating polynomial f and polynomial g from random numbers generated inside the
次に、制御デバイス20は、生成された鍵情報を、セキュアエレメント10に送信する。セキュアエレメント10は、受信した鍵の情報を、記憶部12に記憶する。このように、セキュアエレメント10は、乱数により生成された多項式による鍵を取得する鍵取得手段の一例として機能する。
Next, the
セキュアエレメント10は、記憶部12に記憶した、格子暗号の秘密鍵、公開鍵を使用して、外部装置と、相互認証等をして、耐量子コンピュータで、セキュアに通信を行う。セキュアエレメント10は、記憶部12に記憶した、格子暗号の秘密鍵、公開鍵を使用して、デジタル署名を行う。
The
なお、制御デバイス20は、セキュアエレメント10から受信した多項式の情報を、格子暗号の演算を実行させるための他のコンピュータに送信してもよい。例えば、他のコンピュータは、格子暗号の演算に特化したコンピュータである。
Note that the
(2.2 格子暗号の多項式生成のサブルーチン)
次に、図を用いて格子暗号の多項式生成のサブルーチンについて説明する。図5は、格子暗号の多項式生成のサブルーチンの一例を示すフローチャートである。なお、格子暗号の多項式生成のサブルーチンは、多項式f、多項式gのおのおのに適用される。
(2.2 Polynomial generation subroutine for lattice cryptography)
Next, a subroutine for polynomial generation of lattice cryptography will be explained using figures. FIG. 5 is a flowchart showing an example of a subroutine for polynomial generation of lattice cryptography. Note that the polynomial generation subroutine for the lattice cipher is applied to each of the polynomials f and g.
図5に示すように、格子暗号の鍵生成システム1は、未決定の”+1”の項が残っているか否かを判定する(ステップS10)。具体的には、制御デバイス20のシステム制御部25が、記憶部22またはシステム制御部25のRAM等を参照して、多項式fまたは多項式gの係数において、未決定の”+1”の項が残っているか否かを判定する。なお、記憶部22またはシステム制御部25のRAM等に、多項式の各項の係数の決定の有無や、決定された係数の値の情報等が記憶されている。
As shown in FIG. 5, the lattice cryptographic
未決定の”+1”の項が残っている場合(ステップS10:YES)、格子暗号の鍵生成システム1は、乱数rを取得する(ステップS11)。具体的には、制御デバイス20のシステム制御部25が、セキュアエレメント10から受信した乱数のうち1つの乱数rを、記憶部22等から取得する。なお、使用された乱数は削除されてもよい。また、制御デバイス20は、セキュアエレメント10に乱数の生成を、その都度、要求して、乱数を受信してもよい。
If an undetermined "+1" term remains (step S10: YES), the lattice cryptographic
次に、格子暗号の鍵生成システム1は、k=r mod Nを計算する(ステップS12)。具体的には、制御デバイス20のシステム制御部25が、乱数rを使用して、k=r mod Nを計算する。ここで、kは、多項式のk番目の項を示す値で、0~N-1の値をとる。
Next, the lattice cryptographic
次に、格子暗号の鍵生成システム1は、kが未決定の項であるかを判定する(ステップS13)。具体的には、制御デバイス20のシステム制御部25が、記憶部22等を参照して、多項式のk番目の項が未決定の項であるかを判定する。
Next, the lattice cryptographic
kが未決定の項である場合(ステップS13:YES)、格子暗号の鍵生成システム1は、kを”+1”の項に設定する(ステップS14)。具体的には、制御デバイス20のシステム制御部25が、多項式のk番目の項を、”+1”の項に設定する。システム制御部25が、記憶部22等に、多項式のk番目の項に対して”+1”を記憶したり、係数の値が決定された旨の情報をフラグとして記憶したりする。
If k is an undetermined term (step S13: YES), the lattice cryptographic
kが未決定の項でない場合(ステップS13:NO)、制御デバイス20は、ステップS11の処理に戻る。
If k is not an undetermined term (step S13: NO), the
次に、制御デバイス20は、ステップS10の処理に戻る。
Next, the
未決定の”+1”の項が残っていない場合(ステップS10:NO)、格子暗号の鍵生成システム1は、未決定の”-1”の項が残っているか否かを判定する(ステップS15)。具体的には、制御デバイス20のシステム制御部25が、記憶部22またはシステム制御部25のRAM等を参照して、多項式の係数において、未決定の” -1”の項が残っているか否かを判定する。
If there is no undetermined "+1" term remaining (step S10: NO), the lattice cryptographic
未決定の”-1”の項が残っている場合(ステップS15:YES)、格子暗号の鍵生成システム1は、乱数rを取得する(ステップS16)。具体的には、具体的には、制御デバイス20のシステム制御部25が、セキュアエレメント10から受信した乱数のうち1つの乱数rを、記憶部22等から取得する。
If an undetermined "-1" term remains (step S15: YES), the lattice cryptographic
次に、格子暗号の鍵生成システム1は、ステップS12のように、k=r mod Nを計算する(ステップS17)。
Next, the lattice cryptographic
次に、格子暗号の鍵生成システム1は、ステップS13のように、kが未決定の項であるか否かを判定する(ステップS18)。
Next, the lattice cryptographic
kが未決定の項である場合(ステップS18:YES)、格子暗号の鍵生成システム1は、kを”-1”の項に設定(ステップS19)。具体的には、制御デバイス20のシステム制御部25が、多項式のk番目の項を、”-1”の項に設定する。システム制御部25が、記憶部22等に、多項式のk番目の項に対して”-1”を記憶したり、係数の値が決定された旨の情報をフラグとして記憶したりする。
If k is an undetermined term (step S18: YES), the lattice cryptographic
kが未決定の項でない場合(ステップS18:NO)、制御デバイス20は、ステップS16の処理に戻る。
If k is not an undetermined term (step S18: NO), the
未決定の”-1”の項が残っていない場合(ステップS15:NO)、格子暗号の鍵生成システム1は、残りの項を”0”に設定(ステップS20)。具体的には、制御デバイス20のシステム制御部25が、記憶部22等参照して、係数が未決定の項に対して、係数の値を”0”に設定する。
If there are no undetermined "-1" terms remaining (step S15: NO), the lattice cryptographic
このサブルーチンにより、多項式fおよび多項式g等の多項式の各項の係数が設定される。なお、多項式の各項の係数の決定の方法は、上記のサブルーチンに限らず、多項式の各項の係数が、ランダムに決まればよい。 This subroutine sets the coefficients of each term of polynomials such as polynomial f and polynomial g. Note that the method for determining the coefficients of each term of the polynomial is not limited to the above-described subroutine, but may be any method as long as the coefficients of each term of the polynomial are randomly determined.
以上説明したように、上記実施形態によれば、電子情報記憶媒体の一例のセキュアエレメント10は、格子暗号における鍵のための多項式を生成するために、所定の乱数長の乱数を生成し、乱数により生成された多項式による鍵を取得することにより、セキュアエレメント10内部で、多項式f、gの生成に必要な乱数を生成できるので、鍵の強度が向上し、格子暗号における鍵生成におけるセキュリティを強化することができる。
As explained above, according to the embodiment, the
乱数を、多項式を生成する制御デバイス20に出力する場合、セキュアエレメント10は多項式を内部で生成する必要がないので、セキュアエレメント10のスペックを上げる必要がなくなり、安価に実現できる。
When outputting the random number to the
(第2実施形態)
次に、第2実施形態について図6を用いて説明する。なお、前記第1実施形態と同一または対応する部分には、同一の符号を用いて異なる構成および動作のみを説明する。その他の実施形態および変形例も同様とする。
(Second embodiment)
Next, a second embodiment will be described using FIG. 6. Note that the same reference numerals are used for the same or corresponding parts as in the first embodiment, and only different configurations and operations will be described. The same applies to other embodiments and modifications.
本実施形態では、多項式が、セキュアエレメント10の内部で生成される。図6は、第2実施形態の格子暗号の鍵生成の動作を示すフローチャートである。
In this embodiment, the polynomial is generated inside the
図6に示すように、格子暗号の鍵生成システム1は、セキュアエレメント10に対して必要な乱数長を設定する(ステップS30)。具体的には、制御デバイス20が、セキュリティのレベル等に応じて、格子暗号の鍵生成に必要な、所定の乱数長の情報を、セキュアエレメント10に送信する。制御デバイス20が、格子暗号の生成に必要なパラメータN、df、dg、p、q等の値を送信する。なお、セキュアエレメント10内において、所定の乱数長や、パラメータN、df、dg、p、q等の値は、予め決められていてもよい。
As shown in FIG. 6, the lattice cryptographic
次に、格子暗号の鍵生成システム1は、セキュアエレメント内で乱数を生成する(ステップS31)。具体的には、セキュアエレメント10の制御部13が、ステップS2のように、制御デバイス20からの乱数長の情報に基づき、所定の乱数長の乱数を複数生成する。
Next, the lattice cryptographic
次に、格子暗号の鍵生成システム1は、乱数を利用して多項式を生成する(ステップS32)。具体的には、セキュアエレメント10の制御部13が、ステップS4のように、格子暗号の多項式生成のサブルーチンに基づき、乱数から、多項式fおよび多項式gの各項の係数を決定する。このように、セキュアエレメント10は、乱数から多項式を生成する多項式生成手段の一例として機能する。
Next, the lattice cryptographic
次に、格子暗号の鍵生成システム1は、格子暗号の演算をセキュアエレメント10内部で実施するか否かを判定する(ステップS33)。具体的には、セキュアエレメント10の制御部13が、記憶部12を参照して、セキュアエレメント10における格子暗号を計算する能力等に基づき、鍵生成、暗号化、復号化等の格子暗号の演算をセキュアエレメント10内部で実施するか否かを判定する。例えば、パラメータNの値が所定値より大きく、制御部13のメモリの空間の広さ等では、計算が不可能の場合、制御部13が、格子暗号の演算が内部で実行できないと判定する。また、保存してある鍵情報の量が多くて、記憶部12の容量が足りない場合、制御部13が格子暗号の演算が内部で実行できないと判定する。このように、セキュアエレメント10は、多項式を生成するために、乱数を前記制御装置に出力するか否かの乱数出力判定情報に基づき、乱数を制御装置に出力する乱数出力手段の一例として機能する。
Next, the lattice cipher
なお、セキュアエレメント10は、格子暗号の演算に要求される速度、安全性等の情報に基づき、格子暗号の演算をセキュアエレメント10内部で実施するか否かを判定してもよい。この場合、格子暗号の演算に要求される情報は、制御デバイス20から提供される。例えば、高いレベルのセキュリティが要求される場合、格子暗号の演算は、セキュアエレメント10内部で実施され、セキュアエレメント10の演算速度より、早く計算したい場合は、格子暗号の演算は、セキュアエレメント10外部で実施される。
Note that the
また、格子暗号の演算をセキュアエレメント10内部で実施するか否かの判定は、制御デバイス20から受信した判定結果でもよい。制御デバイス20が、記憶部22を参照して、セキュアエレメント10における格子暗号を計算する能力等に基づき、格子暗号の演算をセキュアエレメント10内部で実施するか否かを判定する。制御デバイス20が、判定結果をセキュアエレメント10に送信する。セキュアエレメント10が、受信した判定結果に基づき、格子暗号の演算をセキュアエレメント10内部で実施する否かを判定する。
Further, the determination as to whether or not to perform the lattice cipher calculation inside the
暗号演算をセキュアエレメント10内部で実施する場合(ステップS33:YES)、格子暗号の鍵生成システム1は、多項式をセキュアエレメントのメモリに格納する(ステップS34)。具体的には、セキュアエレメント10の制御部13が、生成した多項式の情報を記憶部12に記憶する。
If the cryptographic operation is to be performed inside the secure element 10 (step S33: YES), the lattice cryptographic
次に、セキュアエレメント10の制御部13が、記憶部12を参照して、多項式の情報から、格子暗号の鍵生成等の格子暗号の演算を行う。制御部13が、生成した鍵の情報を、記憶部12に記憶する。このように、セキュアエレメント10は、乱数により生成された多項式による鍵を取得する鍵取得手段の一例として機能する。
Next, the
暗号演算をセキュアエレメント10内部で実施しない場合(ステップS33:NO)、格子暗号の鍵生成システム1は、多項式を外部に出力する(ステップS35)。具体的には、セキュアエレメント10が、制御デバイス20に、生成した多項式f、gの情報を送信する。制御デバイス20は、受信した多項式の情報に基づき、多項式Fp、多項式Fp、多項式h等の鍵情報を生成する。制御デバイス20は、生成された鍵情報を、セキュアエレメント10に送信する。セキュアエレメント10は、受信した鍵の情報を、記憶部12に記憶する。このように、セキュアエレメント10は、多項式を、多項式を生成する制御装置に出力する多項式出力手段の一例として機能する。また、セキュアエレメント10は、制御装置に出力するか否かの多項式出力判定情報に基づき、多項式を、多項式を生成する制御装置に出力する多項式出力手段の一例として機能する。
If the cryptographic operation is not performed inside the secure element 10 (step S33: NO), the lattice cryptographic
以上説明したように、上記実施形態によれば、多項式を生成するために、乱数を制御デバイス20に出力するか否かの乱数出力判定情報に基づき、乱数を制御デバイス20に出力する場合、乱数長が所定値より長い、パラメータNが所定値より大きい等、セキュアエレメント10のスペックを超える場合でも、多項式を生成できる。
As explained above, according to the embodiment, when outputting a random number to the
セキュアエレメント10が、乱数から前多項式を生成する多項式生成手段を更に備える場合、セキュアエレメント10内部で、多項式を生成するので、セキュリティがより向上する。
When the
多項式を、多項式を生成する制御デバイス20に出力する場合、乱数長が所定値より長い、パラメータNが所定値より大きい等、セキュアエレメント10のスペックを超える場合でも、格子暗号の鍵を生成できる。
When outputting a polynomial to the
多項式を、制御デバイス20に出力するか否かの多項式出力判定情報に基づき、多項式を制御デバイス20に出力する場合、多項式出力判定情報により、適切に判定できる。
When outputting a polynomial to the
1 鍵生成システム
10 セキュアエレメント(電子情報記憶媒体、ICチップ)
20 制御デバイス(制御装置)
1
20 Control device (control device)
Claims (10)
前記鍵のための多項式を生成するために、所定の乱数長の乱数を生成する乱数生成手段と、
前記乱数により生成された前記多項式による前記鍵を取得する鍵取得手段と、
を備えることを特徴とする電子情報記憶媒体。 An electronic information storage medium for using a key in a lattice cryptography,
Random number generation means for generating random numbers of a predetermined random number length in order to generate a polynomial for the key;
key acquisition means for acquiring the key based on the polynomial generated by the random number;
An electronic information storage medium comprising:
前記乱数を、前記多項式を生成する制御装置に出力する乱数出力手段を更に備えたことを特徴とする電子情報記憶媒体。 The electronic information storage medium according to claim 1,
An electronic information storage medium further comprising random number output means for outputting the random number to a control device that generates the polynomial.
前記多項式を生成するために、前記乱数を前記制御装置に出力するか否かの乱数出力判定情報に基づき、前記乱数出力手段が、前記乱数を前記制御装置に出力することを特徴とする電子情報記憶媒体。 The electronic information storage medium according to claim 2,
Electronic information characterized in that, in order to generate the polynomial, the random number output means outputs the random number to the control device based on random number output determination information as to whether or not to output the random number to the control device. storage medium.
前記乱数から前記多項式を生成する多項式生成手段を更に備えたことを特徴とする電子情報記憶媒体。 The electronic information storage medium according to claim 1,
An electronic information storage medium further comprising polynomial generation means for generating the polynomial from the random number.
前記多項式を、前記多項式を生成する制御装置に出力する多項式出力手段を更に備えたことを特徴とする電子情報記憶媒体。 The electronic information storage medium according to claim 4,
An electronic information storage medium further comprising polynomial output means for outputting the polynomial to a control device that generates the polynomial.
前記多項式を、前記制御装置に出力するか否かの多項式出力判定情報に基づき、前記多項式出力手段が、前記多項式を前記制御装置に出力することを特徴とする電子情報記憶媒体。 The electronic information storage medium according to claim 5,
An electronic information storage medium characterized in that the polynomial output means outputs the polynomial to the control device based on polynomial output determination information regarding whether to output the polynomial to the control device.
前記鍵のための多項式を生成するために、所定の乱数長の乱数を生成する乱数生成ステップと、
前記乱数により生成された前記多項式による前記鍵を取得する鍵取得ステップと、
を含むことを特徴とする鍵生成方法。 A key generation method performed by an electronic information storage medium for using a key in a lattice cryptography, the method comprising:
a random number generation step of generating a random number of a predetermined random number length to generate a polynomial for the key;
a key obtaining step of obtaining the key based on the polynomial generated by the random number;
A key generation method characterized by comprising:
前記鍵のための多項式を生成するために、所定の乱数長の乱数を生成する乱数生成手段、および、
前記乱数により生成された前記多項式による前記鍵を取得する鍵取得手段として機能させることを特徴とするプログラム。 A computer included in an electronic information storage medium for using a key in a lattice cipher,
random number generation means for generating random numbers of a predetermined random number length in order to generate a polynomial for the key, and
A program that functions as a key acquisition means for acquiring the key based on the polynomial generated by the random number.
前記鍵のための多項式を生成するために、所定の乱数長の乱数を生成する乱数生成手段と、
前記乱数により生成された前記多項式による前記鍵を取得する鍵取得手段と、
を備えることを特徴とするICチップ。 An IC chip for using a key in lattice cryptography,
Random number generation means for generating random numbers of a predetermined random number length in order to generate a polynomial for the key;
key acquisition means for acquiring the key based on the polynomial generated by the random number;
An IC chip characterized by comprising:
前記電子情報記憶媒体が、
前記鍵のための多項式を生成するために、所定の乱数長の乱数を生成する乱数生成手段と、
前記乱数により生成された前記多項式による前記鍵を取得する鍵取得手段と、
を有することを特徴とする鍵生成システム。 A key generation system comprising an electronic information storage medium for using a key in a lattice cipher, and a control device that controls the electronic information storage medium to generate the key,
The electronic information storage medium is
Random number generation means for generating random numbers of a predetermined random number length in order to generate a polynomial for the key;
key acquisition means for acquiring the key based on the polynomial generated by the random number;
A key generation system comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022099195A JP2024000429A (en) | 2022-06-20 | 2022-06-20 | Electronic information storage medium, key generating method, program, ic chip and key generation system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022099195A JP2024000429A (en) | 2022-06-20 | 2022-06-20 | Electronic information storage medium, key generating method, program, ic chip and key generation system |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2024000429A true JP2024000429A (en) | 2024-01-05 |
Family
ID=89384581
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022099195A Pending JP2024000429A (en) | 2022-06-20 | 2022-06-20 | Electronic information storage medium, key generating method, program, ic chip and key generation system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2024000429A (en) |
-
2022
- 2022-06-20 JP JP2022099195A patent/JP2024000429A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2399087C2 (en) | Safe data storage with integrity protection | |
US9940772B2 (en) | Payment smart cards with hierarchical session key derivation providing security against differential power analysis and other attacks | |
CN101149709B (en) | Encryption processor of memory card and method for writing and reading data using the same | |
US9571289B2 (en) | Methods and systems for glitch-resistant cryptographic signing | |
CN110710155A (en) | Progressive key encryption algorithm | |
US20120210406A1 (en) | Forming credentials | |
JP2005510095A (en) | Apparatus and method for reducing information leakage | |
WO2004002054A1 (en) | Secure data transfer in mobile terminals and methods therefor | |
JP2010211515A (en) | Information storage medium, authenticating data generation method and medium authentication system | |
US20130305361A1 (en) | Protection of a prime number generation against side-channel attacks | |
CN111294203A (en) | Information transmission method | |
EP3785399B1 (en) | Method for generating on-board a cryptographic key using a physically unclonable function | |
US20090034717A1 (en) | Method of processing data protected against attacks by generating errors and associated device | |
US8769301B2 (en) | Product authentication based upon a hyperelliptic curve equation and a curve pairing function | |
US9860062B2 (en) | Communication arrangement and method for generating a cryptographic key | |
JP2024000429A (en) | Electronic information storage medium, key generating method, program, ic chip and key generation system | |
CN110677253A (en) | Anti-quantum computation RFID authentication method and system based on asymmetric key pool and ECC | |
Peeran et al. | E-governance security via public key cryptography using elliptic curve cryptography | |
US20090287939A1 (en) | Secure device, information processing terminal, server, and authentication method | |
US20210352054A1 (en) | Methods and devices for generating a symmetric session key for encrypted communication | |
US9942038B2 (en) | Modular exponentiation using randomized addition chains | |
CN101465726B (en) | Decode-proof method for cipher key as well as controller and memory device for implementing the method | |
CN110620764B (en) | Anti-quantum computation RFID authentication method and system based on asymmetric key pool and secondary surplus | |
JP2007067942A (en) | Ic card, and ic card program | |
CN110620659B (en) | Anti-quantum computation RFID authentication method and system based on symmetric key pool and secondary surplus |