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 PDF

Info

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
Application number
JP2022099195A
Other languages
Japanese (ja)
Inventor
正剛 福永
Masatake Fukunaga
隆史 工藤
Takashi Kudo
悠太 嘉瀬
Yuta Kase
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.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2022099195A priority Critical patent/JP2024000429A/en
Publication of JP2024000429A publication Critical patent/JP2024000429A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide an electronic information storage medium, a key generating method, a program, an IC chip, and a key generation system with enhanced security in a key generation process.
SOLUTION: An electronic information storage medium 10 for using a key in a lattice cipher includes the steps of: generating a random number of a predetermined random number length to generate a polynomial for a key (S1, S2); and obtaining the key using the polynomial generated by the random number.
SELECTED DRAWING: Figure 4
COPYRIGHT: (C)2024,JPO&INPIT

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, Patent Document 1 describes a generation device that generates a public key in public key cryptography using basis vectors of a rotated lattice space obtained by rotating a lattice space defined using a polynomial ring by a predetermined rotation matrix. is disclosed.

特開2019-32377号公報JP 2019-32377 Publication

しかし、鍵を生成する上記従来の生成装置は、回転行列にて回転させた基底ベクトルを用いるが、鍵の生成方法自体は保護されていないため、鍵を生成するデバイスによっては改ざんによって不正な鍵が生成される可能性があるという問題点があった。 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 claim 1 provides a secure element for using a key in lattice cryptography, in which a random number of a predetermined random number length is used to generate a polynomial for the key. The present invention is characterized by comprising: a random number generation means for generating a random number, and a key acquisition means for acquiring the key based on the polynomial generated from the random number.

請求項2に記載の発明は、請求項1に記載の電子情報記憶媒体において、前記乱数を、前記多項式を生成する制御装置に出力する乱数出力手段を更に備えたことを特徴とする。 The invention according to claim 2 is characterized in that the electronic information storage medium according to claim 1 further includes random number output means for outputting the random number to a control device that generates the polynomial.

請求項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 claim 1 further includes polynomial generation means for generating the polynomial from the random number.

請求項5に記載の発明は、請求項4に記載の電子情報記憶媒体において、前記多項式を、前記多項式を生成する制御装置に出力する多項式出力手段を更に備えたことを特徴とする。 The invention according to claim 5 is characterized in that the electronic information storage medium according to claim 4 further includes polynomial output means for outputting the polynomial to a control device that generates the polynomial.

請求項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 claim 10 provides 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 includes a random number generation unit that generates a random number of a predetermined random number length in order to generate a polynomial for the key, and a key acquisition unit that acquires the key using the polynomial generated from the random number. It is characterized by having the following.

本発明によれば、格子暗号における鍵を使用するための電子情報記憶媒体であって、鍵のための多項式を生成するために、所定の乱数長の乱数を生成し、乱数により生成された多項式による鍵を取得することにより、電子情報記憶媒体内部で、多項式の生成に必要な乱数を生成できるので、鍵生成におけるセキュリティを強化することができる。 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.

第1実施形態に係る格子暗号の鍵生成システムの概要構成例を示す図である。1 is a diagram illustrating a schematic configuration example of a key generation system for lattice cryptography according to a first embodiment; FIG. 図1のセキュアエレメントの概要構成例を示す図である。2 is a diagram illustrating an example of a schematic configuration of a secure element in FIG. 1. FIG. 図1の制御デバイスの概要構成例を示す図である。2 is a diagram illustrating an example of a schematic configuration of a control device in FIG. 1. FIG. 第1実施形態の格子暗号の鍵生成の動作の一例を示すフローチャートである。7 is a flowchart illustrating an example of key generation operations for the lattice cipher according to the first embodiment. 格子暗号の多項式生成のサブルーチンの一例を示すフローチャートである。3 is a flowchart illustrating an example of a subroutine for polynomial generation of a lattice cipher. 第2実施形態の格子暗号の鍵生成の動作を示すフローチャートである。7 is a flowchart showing the key generation operation of the lattice cipher according to the second embodiment.

以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、格子暗号の鍵生成システムに対して本発明を適用した場合の実施の形態である。 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 key generation system 1 according to a first embodiment of the present invention will be described with reference to FIG. 1 and the like. FIG. 1 is a diagram showing a schematic configuration example of a lattice cryptographic key generation system 1 according to the first embodiment.

図1に示すように、格子暗号の鍵生成システム1は、格子暗号用のセキュアエレメント10と、セキュアエレメント10を制御することができる制御デバイス20と、を含んで構成される。 As shown in FIG. 1, a key generation system 1 for lattice encryption includes a secure element 10 for lattice encryption and a control device 20 that can control the secure element 10.

セキュアエレメント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 secure element 10 is an example of an electronic information storage medium or an IC chip, and is, for example, a tamper-resistant IC chip. The form of the secure element 10 includes an eSE (embedded secure element) form, a SIM card (subscriber identity module card) form, and the like. The secure element 10 is installed, for example, in an IC card such as a credit card or cash card, a control device such as an ECU (Electronic Control Unit), or a mobile device such as a smartphone. In the case of a mobile device such as a smartphone, the secure element 10 may be mounted on a small IC card that is removable from the mobile device, or may be installed as an eUICC (Embedded Universal Integrated Circuit Card) so that it cannot be easily removed or replaced from the mobile device. It may also be mounted on a built-in board.

制御デバイス20は、セキュアエレメント10と接続可能な、コンピュータの機能を有する機器である。例えば、制御デバイス20は、セキュアエレメント10の製造工場における発行機であってもよいし、セキュアエレメント10が搭載されたモバイルデバイスであってもよい。制御デバイス20は、ECU、POS端末(POS: Point of Sales)、セキュアエレメント10と接続可能なパーソナルコンピュータ、タブレットコンピュータ等でもよい。なお、制御デバイス20は、インターネット等のネットワークを介して接続するサーバ装置でもよい。 The control device 20 is a device that can be connected to the secure element 10 and has computer functions. For example, the control device 20 may be an issuing machine at a manufacturing factory of the secure element 10, or may be a mobile device equipped with the secure element 10. The control device 20 may be an ECU, a POS terminal (POS: Point of Sales), a personal computer connectable to the secure element 10, a tablet computer, or the like. Note that the control device 20 may be a server device connected via a network such as the Internet.

セキュアエレメント10と制御デバイス20との接続は、接触型でも、非接触型でもよい。接触型の場合は、セキュアエレメント10は、接点端子を有する。非接触型の場合は、セキュアエレメント10は、制御デバイス20と通信可能なアンテナを有し、制御デバイス20とは、近距離無線通信により接続されてもよい。近距離無線通信には、例えば、NFC(Near Field Communication)、Bluetooth(登録商標)、またはUWB(Ultra Wide Band)の技術が用いられる。 The connection between the secure element 10 and the control device 20 may be a contact type or a non-contact type. In the case of a contact type, the secure element 10 has a contact terminal. In the case of a non-contact type, the secure element 10 has an antenna capable of communicating with the control device 20, and may be connected to the control device 20 by short-range wireless communication. For example, NFC (Near Field Communication), Bluetooth (registered trademark), or UWB (Ultra Wide Band) technology is used for near field communication.

ここで、格子暗号の方式として、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 secure element 10 will be explained. FIG. 2 is a diagram showing an example of a schematic configuration of the secure element 10. As shown in FIG.

図2に示すように、セキュアエレメント10は、通信部11、記憶部12、および制御部14等を備える。 As shown in FIG. 2, the secure element 10 includes a communication section 11, a storage section 12, a control section 14, and the like.

通信部11は、制御デバイス20との間のインターフェースを担う。通信部11は、接触型の場合、接点端子を有し、非接触型の場合、制御デバイス20との通信用のアンテナを有する。 The communication unit 11 serves as an interface with the control device 20. The communication unit 11 has a contact terminal in the case of a contact type, and has an antenna for communication with the control device 20 in the case of a non-contact type.

記憶部12は、フラッシュメモリ、または、Electrically Erasable Programmable Read-Only Memoryなどの不揮発性メモリである。記憶部12は、格子暗号における鍵の生成に必要なデータや、セキュアな通信に必要な秘密鍵等のデータを記憶する。セキュアエレメント10は、記憶部12に記憶した、格子暗号の格子暗号における鍵により、外部装置とセキュアに通信を行ったり、デジタル署名を行ったりする。 The storage unit 12 is a nonvolatile memory such as a flash memory or an electrically erasable programmable read-only memory. The storage unit 12 stores data necessary for generating keys in lattice cryptography and data such as secret keys necessary for secure communication. The secure element 10 securely communicates with an external device and performs a digital signature using a key in the lattice cipher stored in the storage unit 12.

なお、記憶部12は、セキュアエレメント10における格子暗号を計算する能力に関する情報を記憶していてもよい。乱数出力判定情報の一例である格子暗号を計算する能力に関する情報として、制御部13の演算速度、演算精度、演算の桁数、メモリ空間の容量等の制御部13のスペック、セキュアエレメント10のメモリの容量、セキュアエレメント10のメモリの容量の残量等が挙げられる。 Note that the storage unit 12 may store information regarding the ability of the secure element 10 to calculate a lattice cipher. Information regarding the ability to calculate a lattice cipher, which is an example of random number output determination information, includes specifications of the control unit 13 such as calculation speed, calculation accuracy, number of digits of calculation, memory space capacity, etc. of the control unit 13, and memory of the secure element 10. , the remaining capacity of the memory of the secure element 10, etc.

制御部13は、RAM(Random Access Memory)、ROM(Read Only Memory)14、およびCPU(Central Processing Unit)等を備える。制御部13は、乱数生成機能等を有する。乱数生成機能は、ソフトウェアで実現されてもよいし、ハードウェアで実現されてよい。セキュアエレメント10は、コンピュータとして機能し、制御部13が、プログラムに従って、様々な演算や処理を行う。 The control unit 13 includes a RAM (Random Access Memory), a ROM (Read Only Memory) 14, a CPU (Central Processing Unit), and the like. The control unit 13 has a random number generation function and the like. The random number generation function may be realized by software or hardware. The secure element 10 functions as a computer, and the control unit 13 performs various calculations and processes according to programs.

記憶部12、または、ROM等には、オペレーティングシステム、および、アプリケーション等のプログラム(本発明のプログラムを含む)が記憶される。ここで、アプリケーションには、格子暗号における鍵の生成に必要なアプリケーションが含まれる。 The storage unit 12, ROM, etc. stores an operating system and programs such as applications (including the program of the present invention). Here, the application includes an application necessary for generating a key in lattice cryptography.

次に、制御デバイス20の概要構成例について説明する。図3は、制御デバイス20の概要構成例を示す図である。 Next, an example of a schematic configuration of the control device 20 will be described. FIG. 3 is a diagram showing an example of a schematic configuration of the control device 20. As shown in FIG.

図3に示すように、制御デバイス20は、通信部21と、記憶部22と、表示部23と、操作部24と、システム制御部25、入出力インターフェース部26とを備えている。そして、システム制御部25と入出力インターフェース部26とは、システムバス27を介して接続されている。 As shown in FIG. 3, the control device 20 includes a communication section 21, a storage section 22, a display section 23, an operation section 24, a system control section 25, and an input/output interface section 26. The system control section 25 and the input/output interface section 26 are connected via a system bus 27.

通信部21は、セキュアエレメント10との間のインターフェースを担う。通信部21は、セキュアエレメント10が接触型の場合、接点端子を有し、セキュアエレメント10が非接触型の場合、セキュアエレメント10との通信用のアンテナを有する。 The communication unit 21 serves as an interface with the secure element 10. The communication unit 21 has a contact terminal when the secure element 10 is a contact type, and has an antenna for communication with the secure element 10 when the secure element 10 is a non-contact type.

記憶部22は、例えば、ハードディスクドライブ、ソリッドステートドライブ等により構成されている。記憶部22には、オペレーティングシステムおよびアプリケーションが記憶される。アプリケーションには、多項式生成のプログラム、格子暗号計算のプログラム等が含まれる。 The storage unit 22 is configured by, for example, a hard disk drive, a solid state drive, or the like. The storage unit 22 stores an operating system and applications. Applications include polynomial generation programs, lattice cryptographic calculation programs, and the like.

なお、記憶部22は、セキュアエレメント10における格子暗号を計算する能力に関する情報を記憶していてもよい。 Note that the storage unit 22 may store information regarding the ability of the secure element 10 to calculate a lattice cipher.

表示部23は、例えば、液晶表示素子または有機EL(Electro Luminescence)素子等によって構成されている。操作部24は、例えば、キーボードおよびマウス等によって構成されている。 The display section 23 is configured by, for example, a liquid crystal display element or an organic EL (Electro Luminescence) element. The operation unit 24 includes, for example, a keyboard and a mouse.

システム制御部25は、例えば、CPU、RAM、およびROMと、を有する。システム制御部25は、CPUが、ROMや、RAMや、記憶部22に記憶された各種プログラムを読み出して実行する。例えば、システム制御部25は、格子暗号の多項式を計算したり、格子暗号を計算したりする。なお、システム制御部25は、ROMを備えない構成でもよい。 The system control unit 25 includes, for example, a CPU, a RAM, and a ROM. In the system control unit 25, the CPU reads and executes various programs stored in the ROM, RAM, and storage unit 22. For example, the system control unit 25 calculates a polynomial for a lattice cipher or a lattice cipher. Note that the system control unit 25 may have a configuration that does not include a ROM.

入出力インターフェース部26は、通信部21および記憶部22等とシステム制御部25とのインターフェースである。 The input/output interface section 26 is an interface between the communication section 21, the storage section 22, etc., and the system control section 25.

[2.格子暗号の鍵生成システム1の動作]
次に、図を参照して、格子暗号の鍵生成システム1の動作について説明する。図4は、第1実施形態の格子暗号の鍵生成の動作の一例を示すフローチャートである。図5は、格子暗号の多項式生成のサブルーチンの一例を示すフローチャートである。
[2. Operation of lattice cryptographic key generation system 1]
Next, the operation of the lattice cryptographic key generation system 1 will be described with reference to the drawings. FIG. 4 is a flowchart illustrating an example of key generation operations for the lattice cipher according to the first embodiment. FIG. 5 is a flowchart showing an example of a subroutine for polynomial generation of lattice cryptography.

(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 key generation system 1 sets a necessary random number length for the secure element 10 (step S1). Specifically, the control device 20 transmits information on a predetermined random number length necessary for key generation of the lattice cipher to the secure element 10, depending on the security level and the like. Note that within the secure element 10, the predetermined random number length may be determined in advance. Furthermore, if the random number length has been specified in advance or is a fixed length, this step may be omitted.

次に、格子暗号の鍵生成システム1は、セキュアエレメント内で乱数を生成する(ステップS2)。具体的には、セキュアエレメント10の制御部13が、制御デバイス20からの乱数長の情報に基づき、所定の乱数長の乱数を複数生成する。なお、後述の格子暗号の多項式生成のサブルーチンで必要な乱数の個数分が生成される。このように、セキュアエレメント10は、鍵のための多項式を生成するために、所定の乱数長の乱数を生成する乱数生成手段の一例として機能する。 Next, the lattice cryptographic key generation system 1 generates random numbers within the secure element (step S2). Specifically, the control unit 13 of the secure element 10 generates a plurality of random numbers with a predetermined random number length based on the random number length information from the control device 20. Note that the required number of random numbers are generated in a polynomial generation subroutine for the lattice cipher, which will be described later. In this way, the secure element 10 functions as an example of a random number generation means that generates random numbers of a predetermined random number length in order to generate a polynomial for a key.

次に、格子暗号の鍵生成システム1は、セキュアエレメント10が生成した乱数を制御デバイス20に出力する(ステップS3)。具体的には、セキュアエレメント10の制御部13が、通信部11を介して、制御デバイス20に、生成した複数の乱数を送信する。なお、乱数を出力する際に、乱数の完全性を保証するために、乱数に、巡回冗長検査等のチェックコードが付与されてもよい。 Next, the lattice cryptographic key generation system 1 outputs the random number generated by the secure element 10 to the control device 20 (step S3). Specifically, the control unit 13 of the secure element 10 transmits the generated random numbers to the control device 20 via the communication unit 11. Note that when outputting random numbers, a check code such as a cyclic redundancy check may be added to the random numbers in order to guarantee the integrity of the random numbers.

制御デバイス20は、乱数に誤りがなければ、受信した複数の乱数を、記憶部22またはシステム制御部25のRAM等に記憶する。乱数に誤りがあれば、制御デバイス20は、セキュアエレメント10に、再度、乱数を要求する。 If there is no error in the random numbers, the control device 20 stores the received random numbers in the storage unit 22 or the RAM of the system control unit 25 or the like. If there is an error in the random number, the control device 20 requests the secure element 10 for the random number again.

なお、格子暗号の鍵生成システム1の環境が悪ければ、セキュアエレメント10と、制御デバイス20とは、相互認証等のセキュアな通信を行ってもよい。このように、セキュアエレメント10は、乱数を、多項式を生成する制御装置に出力する乱数出力手段の一例として機能する。 Note that if the environment of the lattice cryptographic key generation system 1 is bad, the secure element 10 and the control device 20 may perform secure communication such as mutual authentication. In this way, the secure element 10 functions as an example of a random number output means that outputs random numbers to a control device that generates a polynomial.

次に、格子暗号の鍵生成システム1は、乱数を利用して多項式を生成する(ステップS4)。具体的には、制御デバイス20が、後述の格子暗号の多項式生成のサブルーチンに基づき、乱数から、多項式fおよび多項式gの各項の係数を決定する。例えば、多項式fおよび多項式gは、係数が0、1、または、-1である、N-1次以下の整数係数多項式である。 Next, the lattice cryptographic key generation system 1 generates a polynomial using random numbers (step S4). Specifically, the control device 20 determines the coefficients of each term of the polynomial f and the polynomial g from random numbers based on a subroutine for polynomial generation of lattice cryptography, which will be described later. For example, the polynomial f and the polynomial g are integer coefficient polynomials of degree N-1 or lower, with coefficients of 0, 1, or -1.

ここで、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 key generation system 1 generates lattice cipher key information from the polynomial. Specifically, the control device 20 generates an NTRU encryption key from the polynomial f and the polynomial g. More specifically, the control device 20 calculates a polynomial Fp such that Fp×f=1 (mod p). Next, the control device 20 generates a polynomial h from h=Fq×g (mod q) using a polynomial Fq such that Fq×f=1 (mod q). Here, p and q are integers of 2 or more and are relatively prime. Also, x = y (mod q) is the remainder when the i-th coefficient of the polynomial y is divided by the modulus q so that the remainder falls within the range of 0 to q-1. (0≦i≦N-1). Further, polynomial f, polynomial Fp, and polynomial Fq correspond to a private key, and polynomial h corresponds to a public key.

セキュアエレメント10内部で生成した乱数から、多項式f、多項式gを計算することで、脆弱でない鍵ペアの多項式(Fp、Fq、h)が生成可能となる。 By calculating polynomial f and polynomial g from random numbers generated inside the secure element 10, it is possible to generate a polynomial (Fp, Fq, h) of a key pair that is not vulnerable.

次に、制御デバイス20は、生成された鍵情報を、セキュアエレメント10に送信する。セキュアエレメント10は、受信した鍵の情報を、記憶部12に記憶する。このように、セキュアエレメント10は、乱数により生成された多項式による鍵を取得する鍵取得手段の一例として機能する。 Next, the control device 20 transmits the generated key information to the secure element 10. The secure element 10 stores the received key information in the storage unit 12. In this way, the secure element 10 functions as an example of a key acquisition unit that acquires a key using a polynomial generated using random numbers.

セキュアエレメント10は、記憶部12に記憶した、格子暗号の秘密鍵、公開鍵を使用して、外部装置と、相互認証等をして、耐量子コンピュータで、セキュアに通信を行う。セキュアエレメント10は、記憶部12に記憶した、格子暗号の秘密鍵、公開鍵を使用して、デジタル署名を行う。 The secure element 10 uses the private key and public key of the lattice encryption stored in the storage unit 12 to perform mutual authentication and the like with an external device, and performs secure communication with the quantum-resistant computer. The secure element 10 uses the private key and public key of the lattice cipher stored in the storage unit 12 to perform a digital signature.

なお、制御デバイス20は、セキュアエレメント10から受信した多項式の情報を、格子暗号の演算を実行させるための他のコンピュータに送信してもよい。例えば、他のコンピュータは、格子暗号の演算に特化したコンピュータである。 Note that the control device 20 may transmit the polynomial information received from the secure element 10 to another computer for executing the lattice cryptographic operation. For example, the other computer is a computer that specializes in lattice cryptographic operations.

(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 key generation system 1 determines whether an undetermined "+1" term remains (step S10). Specifically, the system control unit 25 of the control device 20 refers to the storage unit 22 or the RAM of the system control unit 25, and determines whether an undetermined “+1” term remains in the coefficients of the polynomial f or the polynomial g. Determine whether or not the Note that the storage unit 22 or the RAM of the system control unit 25 stores information such as whether or not the coefficients of each term of the polynomial are determined and the values of the determined coefficients.

未決定の”+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 key generation system 1 obtains a random number r (step S11). Specifically, the system control unit 25 of the control device 20 acquires one random number r from among the random numbers received from the secure element 10 from the storage unit 22 or the like. Note that the used random numbers may be deleted. Further, the control device 20 may request the secure element 10 to generate a random number each time, and may receive the random number.

次に、格子暗号の鍵生成システム1は、k=r mod Nを計算する(ステップS12)。具体的には、制御デバイス20のシステム制御部25が、乱数rを使用して、k=r mod Nを計算する。ここで、kは、多項式のk番目の項を示す値で、0~N-1の値をとる。 Next, the lattice cryptographic key generation system 1 calculates k=r mod N (step S12). Specifically, the system control unit 25 of the control device 20 uses the random number r to calculate k=r mod N. Here, k is a value indicating the kth term of the polynomial, and takes a value from 0 to N-1.

次に、格子暗号の鍵生成システム1は、kが未決定の項であるかを判定する(ステップS13)。具体的には、制御デバイス20のシステム制御部25が、記憶部22等を参照して、多項式のk番目の項が未決定の項であるかを判定する。 Next, the lattice cryptographic key generation system 1 determines whether k is an undetermined term (step S13). Specifically, the system control unit 25 of the control device 20 refers to the storage unit 22 and the like to determine whether the k-th term of the polynomial is an undetermined term.

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 key generation system 1 sets k to be a "+1" term (step S14). Specifically, the system control unit 25 of the control device 20 sets the k-th term of the polynomial to the "+1" term. The system control unit 25 stores “+1” for the k-th term of the polynomial in the storage unit 22 or the like, or stores information indicating that the value of the coefficient has been determined as a flag.

kが未決定の項でない場合(ステップS13:NO)、制御デバイス20は、ステップS11の処理に戻る。 If k is not an undetermined term (step S13: NO), the control device 20 returns to the process of step S11.

次に、制御デバイス20は、ステップS10の処理に戻る。 Next, the control device 20 returns to the process of step S10.

未決定の”+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 key generation system 1 determines whether or not an undetermined "-1" term remains (step S15). ). Specifically, the system control unit 25 of the control device 20 refers to the storage unit 22 or the RAM of the system control unit 25, and determines whether there is an undetermined “-1” term in the coefficients of the polynomial. Determine whether

未決定の”-1”の項が残っている場合(ステップS15:YES)、格子暗号の鍵生成システム1は、乱数rを取得する(ステップS16)。具体的には、具体的には、制御デバイス20のシステム制御部25が、セキュアエレメント10から受信した乱数のうち1つの乱数rを、記憶部22等から取得する。 If an undetermined "-1" term remains (step S15: YES), the lattice cryptographic key generation system 1 obtains a random number r (step S16). Specifically, the system control unit 25 of the control device 20 acquires one random number r from among the random numbers received from the secure element 10 from the storage unit 22 or the like.

次に、格子暗号の鍵生成システム1は、ステップS12のように、k=r mod Nを計算する(ステップS17)。 Next, the lattice cryptographic key generation system 1 calculates k=r mod N as in step S12 (step S17).

次に、格子暗号の鍵生成システム1は、ステップS13のように、kが未決定の項であるか否かを判定する(ステップS18)。 Next, the lattice cryptographic key generation system 1 determines whether k is an undetermined term, as in step S13 (step S18).

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 key generation system 1 sets k to a term of "-1" (step S19). Specifically, the system control unit 25 of the control device 20 sets the k-th term of the polynomial to the "-1" term. The system control unit 25 stores "-1" for the k-th term of the polynomial in the storage unit 22 or the like, or stores information indicating that the value of the coefficient has been determined as a flag.

kが未決定の項でない場合(ステップS18:NO)、制御デバイス20は、ステップS16の処理に戻る。 If k is not an undetermined term (step S18: NO), the control device 20 returns to the process of step S16.

未決定の”-1”の項が残っていない場合(ステップS15:NO)、格子暗号の鍵生成システム1は、残りの項を”0”に設定(ステップS20)。具体的には、制御デバイス20のシステム制御部25が、記憶部22等参照して、係数が未決定の項に対して、係数の値を”0”に設定する。 If there are no undetermined "-1" terms remaining (step S15: NO), the lattice cryptographic key generation system 1 sets the remaining terms to "0" (step S20). Specifically, the system control unit 25 of the control device 20 refers to the storage unit 22, etc., and sets the value of the coefficient to “0” for the term whose coefficient has not been determined.

このサブルーチンにより、多項式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 secure element 10, which is an example of an electronic information storage medium, generates random numbers of a predetermined random number length in order to generate a polynomial for a key in a lattice cryptography, and By obtaining the key based on the polynomial generated by can do.

乱数を、多項式を生成する制御デバイス20に出力する場合、セキュアエレメント10は多項式を内部で生成する必要がないので、セキュアエレメント10のスペックを上げる必要がなくなり、安価に実現できる。 When outputting the random number to the control device 20 that generates a polynomial, the secure element 10 does not need to generate the polynomial internally, so there is no need to increase the specifications of the secure element 10, and it can be realized at low cost.

(第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 secure element 10. FIG. 6 is a flowchart showing the key generation operation of the lattice cipher according to the second embodiment.

図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 key generation system 1 sets a necessary random number length for the secure element 10 (step S30). Specifically, the control device 20 transmits information on a predetermined random number length necessary for key generation of the lattice cipher to the secure element 10, depending on the security level and the like. The control device 20 transmits values of parameters N, df, dg, p, q, etc. necessary for generating the lattice cipher. Note that within the secure element 10, the predetermined random number length and the values of parameters N, df, dg, p, q, etc. may be determined in advance.

次に、格子暗号の鍵生成システム1は、セキュアエレメント内で乱数を生成する(ステップS31)。具体的には、セキュアエレメント10の制御部13が、ステップS2のように、制御デバイス20からの乱数長の情報に基づき、所定の乱数長の乱数を複数生成する。 Next, the lattice cryptographic key generation system 1 generates random numbers within the secure element (step S31). Specifically, the control unit 13 of the secure element 10 generates a plurality of random numbers with a predetermined random number length based on the random number length information from the control device 20, as in step S2.

次に、格子暗号の鍵生成システム1は、乱数を利用して多項式を生成する(ステップS32)。具体的には、セキュアエレメント10の制御部13が、ステップS4のように、格子暗号の多項式生成のサブルーチンに基づき、乱数から、多項式fおよび多項式gの各項の係数を決定する。このように、セキュアエレメント10は、乱数から多項式を生成する多項式生成手段の一例として機能する。 Next, the lattice cryptographic key generation system 1 generates a polynomial using random numbers (step S32). Specifically, the control unit 13 of the secure element 10 determines the coefficients of each term of the polynomial f and the polynomial g from random numbers based on the polynomial generation subroutine of the lattice cipher, as in step S4. In this way, the secure element 10 functions as an example of a polynomial generating means that generates a polynomial from random numbers.

次に、格子暗号の鍵生成システム1は、格子暗号の演算をセキュアエレメント10内部で実施するか否かを判定する(ステップS33)。具体的には、セキュアエレメント10の制御部13が、記憶部12を参照して、セキュアエレメント10における格子暗号を計算する能力等に基づき、鍵生成、暗号化、復号化等の格子暗号の演算をセキュアエレメント10内部で実施するか否かを判定する。例えば、パラメータNの値が所定値より大きく、制御部13のメモリの空間の広さ等では、計算が不可能の場合、制御部13が、格子暗号の演算が内部で実行できないと判定する。また、保存してある鍵情報の量が多くて、記憶部12の容量が足りない場合、制御部13が格子暗号の演算が内部で実行できないと判定する。このように、セキュアエレメント10は、多項式を生成するために、乱数を前記制御装置に出力するか否かの乱数出力判定情報に基づき、乱数を制御装置に出力する乱数出力手段の一例として機能する。 Next, the lattice cipher key generation system 1 determines whether the lattice cipher calculation is to be performed inside the secure element 10 (step S33). Specifically, the control unit 13 of the secure element 10 refers to the storage unit 12 and performs lattice cipher operations such as key generation, encryption, and decryption based on the ability of the secure element 10 to calculate lattice ciphers. It is determined whether or not to be executed inside the secure element 10. For example, if the value of the parameter N is larger than a predetermined value and calculation is impossible due to the size of the memory space of the control unit 13, the control unit 13 determines that the lattice cryptographic operation cannot be executed internally. Further, if the amount of stored key information is large and the capacity of the storage unit 12 is insufficient, the control unit 13 determines that the lattice cipher calculation cannot be executed internally. In this way, the secure element 10 functions as an example of a random number output means that outputs a random number to the control device based on the random number output determination information as to whether or not to output the random number to the control device in order to generate a polynomial. .

なお、セキュアエレメント10は、格子暗号の演算に要求される速度、安全性等の情報に基づき、格子暗号の演算をセキュアエレメント10内部で実施するか否かを判定してもよい。この場合、格子暗号の演算に要求される情報は、制御デバイス20から提供される。例えば、高いレベルのセキュリティが要求される場合、格子暗号の演算は、セキュアエレメント10内部で実施され、セキュアエレメント10の演算速度より、早く計算したい場合は、格子暗号の演算は、セキュアエレメント10外部で実施される。 Note that the secure element 10 may determine whether or not to perform the lattice cipher calculation within the secure element 10 based on information such as the speed and security required for the lattice cipher calculation. In this case, the information required for the calculation of the lattice code is provided by the control device 20. For example, if a high level of security is required, the lattice cipher calculation is performed inside the secure element 10, and if the calculation is desired to be faster than the calculation speed of the secure element 10, the lattice cipher calculation is performed outside the secure element 10. It will be carried out in

また、格子暗号の演算をセキュアエレメント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 secure element 10 may be based on the determination result received from the control device 20. The control device 20 refers to the storage unit 22 and determines whether or not to perform the lattice cipher calculation inside the secure element 10 based on the ability of the secure element 10 to calculate the lattice cipher. The control device 20 transmits the determination result to the secure element 10. The secure element 10 determines whether or not to perform the lattice cipher calculation within the secure element 10 based on the received determination result.

暗号演算をセキュアエレメント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 key generation system 1 stores the polynomial in the memory of the secure element (step S34). Specifically, the control unit 13 of the secure element 10 stores information on the generated polynomial in the storage unit 12.

次に、セキュアエレメント10の制御部13が、記憶部12を参照して、多項式の情報から、格子暗号の鍵生成等の格子暗号の演算を行う。制御部13が、生成した鍵の情報を、記憶部12に記憶する。このように、セキュアエレメント10は、乱数により生成された多項式による鍵を取得する鍵取得手段の一例として機能する。 Next, the control unit 13 of the secure element 10 refers to the storage unit 12 and performs lattice cipher calculations such as lattice cipher key generation from the polynomial information. The control unit 13 stores the generated key information in the storage unit 12. In this way, the secure element 10 functions as an example of a key acquisition unit that acquires a key using a polynomial generated using random numbers.

暗号演算をセキュアエレメント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 key generation system 1 outputs the polynomial to the outside (step S35). Specifically, the secure element 10 transmits information on the generated polynomials f and g to the control device 20. The control device 20 generates key information such as polynomial Fp, polynomial Fp, polynomial h, etc. based on the received polynomial information. Control device 20 transmits the generated key information to secure element 10. The secure element 10 stores the received key information in the storage unit 12. In this way, the secure element 10 functions as an example of a polynomial output means that outputs a polynomial to a control device that generates the polynomial. Furthermore, the secure element 10 functions as an example of a polynomial output unit that outputs a polynomial to a control device that generates the polynomial based on polynomial output determination information on whether to output the polynomial to the control device.

以上説明したように、上記実施形態によれば、多項式を生成するために、乱数を制御デバイス20に出力するか否かの乱数出力判定情報に基づき、乱数を制御デバイス20に出力する場合、乱数長が所定値より長い、パラメータNが所定値より大きい等、セキュアエレメント10のスペックを超える場合でも、多項式を生成できる。 As explained above, according to the embodiment, when outputting a random number to the control device 20 based on the random number output determination information on whether or not to output the random number to the control device 20 in order to generate a polynomial, the random number A polynomial can be generated even when the specification of the secure element 10 is exceeded, such as when the length is longer than a predetermined value or when the parameter N is larger than a predetermined value.

セキュアエレメント10が、乱数から前多項式を生成する多項式生成手段を更に備える場合、セキュアエレメント10内部で、多項式を生成するので、セキュリティがより向上する。 When the secure element 10 further includes a polynomial generating means for generating a pre-polynomial from a random number, the polynomial is generated inside the secure element 10, so that security is further improved.

多項式を、多項式を生成する制御デバイス20に出力する場合、乱数長が所定値より長い、パラメータNが所定値より大きい等、セキュアエレメント10のスペックを超える場合でも、格子暗号の鍵を生成できる。 When outputting a polynomial to the control device 20 that generates the polynomial, a key for lattice encryption can be generated even when the specifications of the secure element 10 are exceeded, such as when the random number length is longer than a predetermined value or when the parameter N is larger than a predetermined value.

多項式を、制御デバイス20に出力するか否かの多項式出力判定情報に基づき、多項式を制御デバイス20に出力する場合、多項式出力判定情報により、適切に判定できる。 When outputting a polynomial to the control device 20 based on the polynomial output determination information as to whether or not to output the polynomial to the control device 20, the polynomial output determination information can appropriately determine whether or not to output the polynomial to the control device 20.

1 鍵生成システム
10 セキュアエレメント(電子情報記憶媒体、ICチップ)
20 制御デバイス(制御装置)
1 Key generation system 10 Secure element (electronic information storage medium, IC chip)
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:
請求項1に記載の電子情報記憶媒体において、
前記乱数を、前記多項式を生成する制御装置に出力する乱数出力手段を更に備えたことを特徴とする電子情報記憶媒体。
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.
請求項2に記載の電子情報記憶媒体において、
前記多項式を生成するために、前記乱数を前記制御装置に出力するか否かの乱数出力判定情報に基づき、前記乱数出力手段が、前記乱数を前記制御装置に出力することを特徴とする電子情報記憶媒体。
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.
請求項1に記載の電子情報記憶媒体において、
前記乱数から前記多項式を生成する多項式生成手段を更に備えたことを特徴とする電子情報記憶媒体。
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.
請求項4に記載の電子情報記憶媒体において、
前記多項式を、前記多項式を生成する制御装置に出力する多項式出力手段を更に備えたことを特徴とする電子情報記憶媒体。
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.
請求項5に記載の電子情報記憶媒体において、
前記多項式を、前記制御装置に出力するか否かの多項式出力判定情報に基づき、前記多項式出力手段が、前記多項式を前記制御装置に出力することを特徴とする電子情報記憶媒体。
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チップであって、
前記鍵のための多項式を生成するために、所定の乱数長の乱数を生成する乱数生成手段と、
前記乱数により生成された前記多項式による前記鍵を取得する鍵取得手段と、
を備えることを特徴とする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:
JP2022099195A 2022-06-20 2022-06-20 Electronic information storage medium, key generating method, program, ic chip and key generation system Pending JP2024000429A (en)

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)

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