[go: up one dir, main page]

JP2020194997A - Secure element - Google Patents

Secure element Download PDF

Info

Publication number
JP2020194997A
JP2020194997A JP2019097664A JP2019097664A JP2020194997A JP 2020194997 A JP2020194997 A JP 2020194997A JP 2019097664 A JP2019097664 A JP 2019097664A JP 2019097664 A JP2019097664 A JP 2019097664A JP 2020194997 A JP2020194997 A JP 2020194997A
Authority
JP
Japan
Prior art keywords
cryptographic
coprocessor
parameter
check code
cryptographic operation
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
JP2019097664A
Other languages
Japanese (ja)
Other versions
JP7192658B2 (en
Inventor
桂子 高木
Keiko Takagi
桂子 高木
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 JP2019097664A priority Critical patent/JP7192658B2/en
Publication of JP2020194997A publication Critical patent/JP2020194997A/en
Application granted granted Critical
Publication of JP7192658B2 publication Critical patent/JP7192658B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Advance Control (AREA)

Abstract

To perform a process of inputting a cryptographic parameter to a cryptographic operation coprocessor only once when a plurality of cryptographic operations are executed without changing the cryptographic parameter in a secure element equipped with the cryptographic operation coprocessor.SOLUTION: A secure element 1 includes a cryptographic operation unit that stores a check code of a cryptographic parameter in a memory as a check code for identity verification when the cryptographic parameter is input to a cryptographic operation coprocessor 106, compares the check code of the cryptographic parameter input to the cryptographic operation coprocessor 106 with the check code for identity verification stored in the memory at this point before the cryptographic parameter is input to the cryptographic operation coprocessor 106, and does not input the cryptographic parameter to the cryptographic operation coprocessor 106 when these check codes match.SELECTED DRAWING: Figure 2

Description

本発明は,耐タンパー性を有するワンチップマイコンであるセキュアエレメントに関する。 The present invention relates to a secure element which is a one-chip microcomputer having tamper resistance.

セキュアエレメントは,耐タンパー性を有するワンチップマイコンである。セキュアエレメントには,特定のシステム(例えば,決済システム)で利用され,複数回の暗号演算(暗号化または復号)を必要とする一連のシーケンスを実行するアプリケーションが実装される。 The secure element is a one-chip microcomputer with tamper resistance. The secure element implements an application that is used in a specific system (for example, a payment system) and executes a series of sequences that require multiple cryptographic operations (encryption or decryption).

セキュアエレメントは,暗号演算の高速化を図るため,CPU(Central Processing Unit)に代わって暗号演算を行う暗号演算コプロセッサを備える。例えば,特許文献1で開示されている半導体処理装置(ICカード)は,RSAや楕円曲線暗号に係る剰余演算をCPUに代わって行う暗号演算コプロセッサを備えている。 The secure element includes a cryptographic operation coprocessor that performs cryptographic operations in place of the CPU (Central Processing Unit) in order to speed up the cryptographic operations. For example, the semiconductor processing device (IC card) disclosed in Patent Document 1 includes a cryptographic operation coprocessor that performs a remainder operation related to RSA and elliptic curve cryptography on behalf of a CPU.

数式を定義する暗号パラメータを必要とする暗号演算の場合,暗号演算コプロセッサを用いた暗号演算を行う前に,暗号演算で必要な暗号パラメータを暗号演算コプロセッサに入力することが必要になる。例えば,特許文献2で開示されている楕円積和演算計算装置は,楕円積和演算を行う際,楕円積和演算に必要な暗号パラメータP,Q,R,a,b,cなどを演算回路に設定し,T=aP+bQ+cRを演算回路に計算させる。 In the case of a cryptographic operation that requires cryptographic parameters that define mathematical expressions, it is necessary to input the cryptographic parameters required for the cryptographic operation into the cryptographic operation coprocessor before performing the cryptographic operation using the cryptographic operation coprocessor. For example, the elliptical product-sum calculation apparatus disclosed in Patent Document 2 calculates the cryptographic parameters P, Q, R, a, b, c and the like required for the elliptical product-sum calculation when performing the elliptical product-sum calculation. Is set to, and T = aP + bQ + cR is calculated by the arithmetic circuit.

暗号演算に必要な暗号パラメータのデータ長が短い場合,暗号演算を行う毎に,暗号演算に必要な暗号パラメータ全てを暗号演算コプロセッサに入力しても,アプリケーションが実行するシーケンスに必要な時間はさほど変わらない。しかし,暗号演算に必要な暗号パラメータのデータ長が長い場合,暗号演算を行う毎に,暗号演算に必要な暗号パラメータ全てを暗号演算コプロセッサに入力すると,暗号演算に必要な暗号パラメータ全てを暗号演算コプロセッサに入力するための時間が,アプリケーションが実行するシーケンスに必要な時間が長くなる一つの要因になる。 If the data length of the cryptographic parameters required for the cryptographic operation is short, the time required for the sequence executed by the application is long even if all the cryptographic parameters required for the cryptographic operation are input to the cryptographic operation coprocessor each time the cryptographic operation is performed. It doesn't change much. However, if the data length of the cryptographic parameters required for the cryptographic operation is long, if all the cryptographic parameters required for the cryptographic operation are input to the cryptographic operation coprocessor each time the cryptographic operation is performed, all the cryptographic parameters required for the cryptographic operation will be encrypted. The time required to input to the cryptographic coprocessor is one factor that increases the time required for the sequence executed by the application.

RFC5639で規定されている楕円曲線暗号で上記の問題を説明する。図4は,RFC5639で規定されている楕円曲線暗号において,楕円曲線の定義に必要な暗号パラメータを説明する図である。RFC5639で規定されている楕円曲線暗号に必要な暗号パラメータのビット数には160ビットもあるが,図6では,512ビットの暗号パラメータを図示している。 The above problem is explained by the elliptic curve cryptography defined by RFC5639. FIG. 4 is a diagram illustrating cryptographic parameters required for defining an elliptic curve in the elliptic curve cryptography defined by RFC5639. The number of bits of the cryptographic parameter required for elliptic curve cryptography defined by RFC5639 is as high as 160 bits, but FIG. 6 illustrates the 512-bit cryptographic parameter.

RFC5639で規定されている楕円曲線暗号に必要な暗号パラメータは,p(標数),A(数式1の係数),B(数式1の係数),x(ベースポイントのx座標の値),y(ベースポイントのy座標の値),q(素数位数),h(補因子)を暗号パラメータとして含む。
The cryptographic parameters required for elliptic curve cryptography defined by RFC5639 are p (characteristic), A (coefficient of formula 1), B (coefficient of formula 1), x (value of x coordinate of base point), y. (Value of y-coordinate of base point), q (prime number order), h (complementary factor) are included as cryptographic parameters.

図4で図示したように,RFC5639で規定されている512ビットの楕円曲線暗号では,h以外の6個の暗号パラメータはすべて512ビットになる。暗号パラメータを変更せずに複数回の楕円曲線暗号演算を実行する場合,6個の512ビットの暗号パラメータを暗号演算コプロセッサに入力する処理が一回で済めば,アプリケーションが実行するシーケンスに必要な時間を短縮できる。 As illustrated in FIG. 4, in the 512-bit elliptic curve cryptography defined by RFC5639, all six cryptographic parameters other than h are 512 bits. When executing multiple elliptic curve cryptographic operations without changing the cryptographic parameters, if the process of inputting six 512-bit cryptographic parameters to the cryptographic operation coprocessor is completed once, it is necessary for the sequence executed by the application. Time can be shortened.

特開2008−310950号公報Japanese Unexamined Patent Publication No. 2008-310950 特開2004−233530号公報Japanese Unexamined Patent Publication No. 2004-233530

このことを鑑みて,本発明は,数式を定義する暗号パラメータを必要とする暗号演算に係る処理を行う暗号演算コプロセッサを備えたセキュアエレメントにおいて,暗号パラメータを変更せずに複数回の暗号演算を実行する場合,暗号パラメータを暗号演算コプロセッサに入力する処理が一回で済むようにすることを目的とする。 In view of this, the present invention presents a plurality of cryptographic operations without changing the cryptographic parameters in a secure element provided with a cryptographic operation coprocessor that performs processing related to cryptographic operations that require cryptographic parameters that define mathematical expressions. The purpose of this is to ensure that the process of inputting cryptographic parameters to the cryptographic coprocessor only needs to be performed once.

上述した課題を解決する第1発明は,数式を定義する暗号パラメータを必要とする暗号演算に係る処理を行う暗号演算コプロセッサと,前記暗号演算コプロセッサを利用して前記暗号演算を行う暗号演算部を備え,前記暗号演算部は,前記暗号演算コプロセッサに前記暗号パラメータを入力すると,この前記暗号パラメータのチェックコードを同一性確認用のチェックコードとしてメモリに保存し,前記同一性確認用のチェックコードとしてメモリに保存した状態で,前記暗号パラメータを前記暗号演算コプロセッサに入力する場合,前記暗号パラメータを前記暗号演算コプロセッサに入力する前に,前記暗号演算コプロセッサに入力する前記暗号パラメータのチェックコードと,この時点でメモリに保存されている前記同一性確認用のチェックコードを比較し,これらのチェックコードが一致すると,前記暗号パラメータを前記暗号演算コプロセッサに入力しない動作を行うことを特徴とするセキュアエレメントである。 The first invention for solving the above-mentioned problems is a cryptographic operation coprocessor that performs processing related to a cryptographic operation that requires a cryptographic parameter that defines a mathematical formula, and a cryptographic operation that performs the cryptographic operation using the cryptographic operation coprocessor. When the cryptographic parameter is input to the cryptographic operation coprocessor, the cryptographic calculation unit stores the check code of the cryptographic parameter in the memory as a check code for the sameness confirmation, and performs the sameness confirmation. When the cryptographic parameter is input to the cryptographic operation coprocessor while being stored in the memory as a check code, the cryptographic parameter to be input to the cryptographic operation coprocessor before the cryptographic parameter is input to the cryptographic operation coprocessor. The check code of is compared with the check code for identity verification stored in the memory at this point, and if these check codes match, the operation of not inputting the cryptographic parameter into the cryptographic operation coprocessor is performed. It is a secure element characterized by.

本発明に係るセキュアエレメントによれば,暗号演算コプロセッサに入力する暗号パラメータと,暗号演算コプロセッサに入力されている暗号パラメータが同一の場合,暗号パラメータを暗号演算コプロセッサに入力しないようにできる。 According to the secure element according to the present invention, when the cryptographic parameter input to the cryptographic coprocessor and the cryptographic parameter input to the cryptographic coprocessor are the same, the cryptographic parameter can be prevented from being input to the cryptographic coprocessor. ..

セキュアエレメントを説明する図。The figure explaining the secure element. セキュアエレメントのアーキテクチャを説明する図。The figure explaining the architecture of the secure element. セキュアエレメントが備える暗号演算部の動作を説明する図。The figure explaining the operation of the cryptographic operation part included in the secure element. 楕円曲線暗号に必要な暗号パラメータを説明する図。The figure explaining the cryptographic parameters required for elliptic curve cryptography.

ここから,本発明に係る実施形態について記載する。本実施形態は,本発明の理解を容易にするためのものであり,本発明は,本実施形態に限定されるものではない。また,特に断りのない限り,図面は,本発明の理解を容易にするために描かれた模式的な図である。 From here, an embodiment according to the present invention will be described. The present embodiment is for facilitating the understanding of the present invention, and the present invention is not limited to the present embodiment. Unless otherwise specified, the drawings are schematic drawings drawn to facilitate understanding of the present invention.

図1は,本実施形態に係るセキュアエレメント1を説明する図である。セキュアエレメント1は耐タンパー性を有するワンチップマイコンである。図1で図示したように,セキュアエレメント1は,モバイル端末1a,SIM1b,ICカード1cなど,セキュアな取引(例えば,決済取引)を行うための媒体や装置に実装される。 FIG. 1 is a diagram illustrating a secure element 1 according to the present embodiment. The secure element 1 is a one-chip microcomputer having tamper resistance. As illustrated in FIG. 1, the secure element 1 is mounted on a medium or device for performing a secure transaction (for example, a settlement transaction) such as a mobile terminal 1a, SIM1b, or IC card 1c.

図2は,セキュアエレメント1のアーキテクチャを説明する図である。図2で図示したセキュアエレメント1のアーキテクチャには,ハードウェア10,オペレーティングシステム11およびアプリケーション12を含んでいる。 FIG. 2 is a diagram illustrating the architecture of the secure element 1. The architecture of the secure element 1 illustrated in FIG. 2 includes hardware 10, an operating system 11, and an application 12.

セキュアエレメント1のハードウェア10はワンチップマイコンになる。セキュアエレメント1のハードウェア10では,中央演算処理装置であるCPU101(Central Processing Unit),メインメモリとなるRAM102(Random Access Memory),電気的に書き換え可能な不揮発性メモリであるNVM103(Non-volatile memory),時間を計測するTimer104および上位装置と接続するためのI/O105に加え,CPU101に代わって所定の暗号演算を行う暗号演算コプロセッサ106がインターフェイス107に接続している。暗号演算コプロセッサ106に行わせる暗号演算は,数式を定義する暗号パラメータを必要とする暗号演算で,このような暗号演算としては楕円曲線暗号が有名である。 The hardware 10 of the secure element 1 becomes a one-chip microcomputer. In the hardware 10 of the secure element 1, the CPU 101 (Central Processing Unit) which is a central processing unit, the RAM 102 (Random Access Memory) which is the main memory, and the NVM 103 (Non-volatile memory) which is an electrically rewritable non-volatile memory. ), In addition to the Timer 104 that measures the time and the I / O 105 for connecting to the host device, a cryptographic operation coprocessor 106 that performs a predetermined cryptographic operation instead of the CPU 101 is connected to the interface 107. Cryptographic operation The cryptographic operation performed by the coprocessor 106 is a cryptographic operation that requires a cryptographic parameter that defines a mathematical expression, and elliptic curve cryptography is well known as such a cryptographic operation.

セキュアエレメント1のオペレーティングシステム11は,ハードウェア10を利用した機能を提供するソフトウェアである。アプリケーション12は,複数回の暗号演算を必要とする一連のシーケンスを実行するソフトウェアで,オペレーティングシステム11上で動作するソフトウェアである。 The operating system 11 of the secure element 1 is software that provides a function using the hardware 10. The application 12 is software that executes a series of sequences that require a plurality of cryptographic operations, and is software that runs on the operating system 11.

セキュアエレメント1のオペレーティングシステム11は,ハードウェア10を利用する様々な機能をアプリケーション12に提供する。セキュアエレメント1は,この機能の一つとして,暗号演算コプロセッサ106に暗号演算を行わせる暗号演算部110と,暗号演算部110を利用するための複数種のAPI111(Application Programming Interface)を有している。暗号演算部110は,CPU101を動作させるコンピュータプログラムで実現される機能で,オペレーティングシステム11がアプリケーション12に提供するライブラリに暗号演算部110を含ませることができる。 The operating system 11 of the secure element 1 provides the application 12 with various functions that utilize the hardware 10. As one of these functions, the secure element 1 has a cryptographic calculation unit 110 that causes the cryptographic operation coprocessor 106 to perform a cryptographic operation, and a plurality of types of API 111 (Application Programming Interface) for using the cryptographic operation unit 110. ing. The cryptographic calculation unit 110 is a function realized by a computer program that operates the CPU 101, and the cryptographic calculation unit 110 can be included in the library provided by the operating system 11 to the application 12.

暗号演算部110を利用するためのAPI111の詳細仕様は任意である。ここでは,暗号パラメータを設定するAPI111,暗号鍵を設定するAPI111,演算対象データを設定するAPI111および暗号演算を実行させるAPI111が,暗号演算部110を利用するためのAPI111に含まれる。暗号パラメータを設定するAPI111は,暗号パラメータの種類ごとに用意されるのが一般的である。例えば,RFC5639で規定されている楕円曲線暗号の場合,p,A,B,x,y,qおよびhごとに,暗号パラメータを設定するAPI111が用意される。 The detailed specifications of the API 111 for using the cryptographic calculation unit 110 are arbitrary. Here, the API 111 for setting the encryption parameter, the API 111 for setting the encryption key, the API 111 for setting the calculation target data, and the API 111 for executing the encryption operation are included in the API 111 for using the encryption calculation unit 110. The API 111 for setting the encryption parameter is generally prepared for each type of encryption parameter. For example, in the case of elliptic curve cryptography defined by RFC5639, API111 for setting cryptographic parameters is prepared for each of p, A, B, x, y, q and h.

オペレーティングシステム11の暗号演算部110は,アプリケーションが実行するシーケンスに必要な時間の短縮を目的として,暗号パラメータを変更せずに複数回の暗号演算を実行する場合,暗号パラメータを暗号演算コプロセッサ106に入力する処理が一回で済むように構成されている。 When the cryptographic operation unit 110 of the operating system 11 executes a plurality of cryptographic operations without changing the cryptographic parameters for the purpose of shortening the time required for the sequence executed by the application, the cryptographic operation coprocessor 106 sets the cryptographic parameters. It is configured so that the process of inputting to is only required once.

暗号演算部110は,暗号パラメータの同一性確認に,暗号パラメータの特徴を示すデータであるチェックコードを利用する。本実施形態において,暗号パラメータの同一性確認とは,アプリケーション12から引き渡され,暗号演算コプロセッサ106に入力する暗号パラメータと,暗号演算部110に設定されている暗号パラメータが同一であるか確認することを意味する。暗号パラメータの特徴を示すチェックコードとしては,例えば,多項式により演算されるCRC(Cyclic Redundancy Check)などの誤り検出符号や,SHA2(Secure Hash Algorithm)などのハッシュ関数から演算されるハッシュ値を用いることができる。 The cryptographic calculation unit 110 uses a check code, which is data indicating the characteristics of the cryptographic parameters, to confirm the identity of the cryptographic parameters. In the present embodiment, the identification of the cryptographic parameters is to confirm whether the cryptographic parameters delivered from the application 12 and input to the cryptographic calculation coprocessor 106 and the cryptographic parameters set in the cryptographic calculation unit 110 are the same. It means that. As the check code indicating the characteristics of the cryptographic parameters, for example, an error detection code such as CRC (Cyclic Redundancy Check) calculated by a polynomial or a hash value calculated from a hash function such as SHA2 (Secure Hash Algorithm) is used. Can be done.

暗号パラメータの同一性確認を実行できるように,暗号演算部110は,暗号演算コプロセッサ106に暗号パラメータを入力すると,この暗号パラメータのチェックコードを同一性確認用のチェックコードとしてメモリに保存する。同一性確認用のチェックコードはRAM102に格納するのが一般的であるが,同一性確認用のチェックコードはNVM103に格納することもできる。 When the cryptographic parameter is input to the cryptographic operation coprocessor 106, the cryptographic calculation unit 110 saves the check code of the cryptographic parameter as a check code for the sameness check in the memory so that the identity check of the cryptographic parameter can be executed. The check code for identity confirmation is generally stored in the RAM 102, but the check code for the identity confirmation can also be stored in the NVM 103.

暗号演算部110は,同一性確認用のチェックコードとしてメモリに保存した状態で,アプリケーション12から引き渡された暗号パラメータを暗号演算コプロセッサ106に入力する場合,暗号パラメータを暗号演算部110に入力する前に,アプリケーション12から引き渡された暗号パラメータのチェックコードと,この時点でメモリに保存されている同一性確認用のチェックコードと比較する。これらのチェックコードが一致すると,暗号演算部110は,アプリケーション12から引き渡された暗号パラメータは暗号演算コプロセッサ106に入力されていると判断し,暗号パラメータを暗号演算コプロセッサ106に入力しない。 When the cryptographic calculation unit 110 inputs the cryptographic parameters handed over from the application 12 to the cryptographic calculation coprocessor 106 in a state of being saved in the memory as a check code for identity confirmation, the cryptographic calculation unit 110 inputs the cryptographic parameters to the cryptographic calculation unit 110. Previously, the check code of the cryptographic parameter passed from the application 12 is compared with the check code for identity confirmation stored in the memory at this point. When these check codes match, the cryptographic operation unit 110 determines that the cryptographic parameter handed over from the application 12 has been input to the cryptographic operation coprocessor 106, and does not input the cryptographic parameter to the cryptographic operation coprocessor 106.

図3は,セキュアエレメント1が備える暗号演算部110の動作を説明する図である。暗号演算部110は,アプリケーション12がAPI111の一つを呼び出すと起動し,アプリケーション12が呼び出したAPI111の種類により処理を多岐分岐する(S1)。 FIG. 3 is a diagram illustrating the operation of the cryptographic calculation unit 110 included in the secure element 1. The cryptographic calculation unit 110 is activated when the application 12 calls one of the API 111s, and branches various processes depending on the type of the API 111 called by the application 12 (S1).

アプリケーション12が呼び出したAPI111が,暗号パラメータを設定するAPI111の場合,暗号演算部110は,暗号パラメータの設定に係る処理(S2)を実行する。暗号パラメータを設定するAPI111の引数には,暗号パラメータの種類と暗号パラメータそのものが含まれる。 When the API 111 called by the application 12 is the API 111 for setting the cryptographic parameters, the cryptographic calculation unit 110 executes the process (S2) related to the setting of the cryptographic parameters. The argument of API111 that sets the cryptographic parameter includes the type of cryptographic parameter and the cryptographic parameter itself.

暗号パラメータの設定に係る処理(S2)において,暗号演算部110は,まず,API111を利用してアプリケーション12から引き渡された暗号パラメータのチェックコードを演算する(S20)。例えば,チェックコードにハッシュ値を用いる場合,暗号演算部110は,暗号パラメータをSHA2などのハッシュ関数に代入することで,暗号パラメータのチェックコードを演算する。 In the process related to the setting of the encryption parameter (S2), the encryption calculation unit 110 first calculates the check code of the encryption parameter handed over from the application 12 using the API 111 (S20). For example, when a hash value is used as the check code, the cryptographic calculation unit 110 calculates the check code of the cryptographic parameter by substituting the cryptographic parameter into a hash function such as SHA2.

次に,暗号演算部110は,アプリケーション12から引き渡された暗号パラメータの種類に対応する同一性確認用のチェックコードをメモリから取得し(S21),同一性確認用のチェックコードの有無により処理を分岐する(S22)。 Next, the cryptographic calculation unit 110 acquires a check code for identity confirmation corresponding to the type of the cryptographic parameter handed over from the application 12 from the memory (S21), and performs processing depending on the presence or absence of the check code for identity confirmation. Branch (S22).

同一性確認用のチェックコードがメモリに無い場合,暗号演算部110は,暗号パラメータは暗号演算コプロセッサ106に入力されていないため,暗号パラメータを暗号演算コプロセッサ106に入力するステップ(S24)に進む。 If the check code for verifying the identity is not in the memory, the cryptographic calculation unit 110 goes to the step (S24) of inputting the cryptographic parameters into the cryptographic operation coprocessor 106 because the cryptographic parameters have not been input to the cryptographic operation coprocessor 106. move on.

同一性確認用のチェックコードがメモリに有る場合,暗号演算部110は,アプリケーション12から引き渡された暗号パラメータから演算したチェックコードと同一性確認用のチェックコードを比較する(S23)。 When the check code for identity confirmation is stored in the memory, the cryptographic calculation unit 110 compares the check code calculated from the cryptographic parameters handed over from the application 12 with the check code for identity confirmation (S23).

アプリケーション12から引き渡された暗号パラメータから演算したチェックコードと同一性確認用のチェックコードが一致することは,この時点で,アプリケーション12から引き渡された暗号パラメータがすでに暗号演算部110に入力されていることを意味する。よって,暗号演算部110は,暗号パラメータの入力に係る時間を省くため,アプリケーション12から引き渡された暗号パラメータを暗号演算コプロセッサ106に入力することなく,暗号パラメータの設定に係る処理(S2)を終了する。 If the check code calculated from the cryptographic parameters handed over from the application 12 matches the check code for identity confirmation, the cryptographic parameters handed over from the application 12 have already been input to the cryptographic calculation unit 110 at this point. Means that. Therefore, in order to save time related to the input of the cryptographic parameters, the cryptographic calculation unit 110 performs the process (S2) related to the setting of the cryptographic parameters without inputting the cryptographic parameters handed over from the application 12 to the cryptographic calculation coprocessor 106. finish.

アプリケーション12から引き渡された暗号パラメータから演算したチェックコードと同一性確認用のチェックコードが一致しないことは,この時点で,アプリケーション12から引き渡された暗号パラメータとこの時点で暗号演算部110に入力している暗号パラメータが異なることを意味する。よって,暗号演算部110は,暗号演算コプロセッサ106に入力した暗号パラメータを更新するため,アプリケーション12から引き渡された暗号パラメータを暗号演算コプロセッサ106に入力する(S24)。次に,暗号演算部110は,同一性確認用のチェックコードを更新するため,アプリケーション12から引き渡された暗号パラメータの種類に関連付けてメモリに保存されている同一性確認用のチェックコードを,アプリケーション12から引き渡された暗号パラメータから演算したチェックコードに書き換える処理を実行し(S25),暗号パラメータの設定に係る処理(S2)を終了する。 If the check code calculated from the cryptographic parameters handed over from the application 12 and the check code for identity confirmation do not match, the cryptographic parameters handed over from the application 12 and the cryptographic calculation unit 110 at this point are input. It means that the cryptographic parameters are different. Therefore, the cryptographic calculation unit 110 inputs the cryptographic parameters handed over from the application 12 to the cryptographic calculation coprocessor 106 in order to update the cryptographic parameters input to the cryptographic calculation coprocessor 106 (S24). Next, in order to update the check code for identity confirmation, the cryptographic calculation unit 110 applies the check code for identity confirmation stored in the memory in association with the type of the cryptographic parameter handed over from the application 12. The process of rewriting the check code calculated from the encryption parameter handed over from 12 is executed (S25), and the process related to the setting of the encryption parameter (S2) is completed.

例えば,暗号演算部110が対応している暗号演算が,RFC5639で規定されている楕円曲線暗号の場合,少なくともp,A,B,x,y,qに,暗号パラメータの設定に係る処理(S2)が繰り返し実行されることになる。なお,hは1バイトの値になるため,暗号パラメータの同一性確認を省いてもよい。 For example, when the cryptographic operation supported by the cryptographic operation unit 110 is elliptic curve cryptography defined by RFC5639, at least p, A, B, x, y, q are processed related to the setting of cryptographic parameters (S2). ) Will be executed repeatedly. Since h is a 1-byte value, it may be omitted to check the identity of the cryptographic parameters.

アプリケーション12が呼び出したAPI111が,暗号パラメータを設定するAPI111以外の場合について説明しておく。 The case where the API 111 called by the application 12 is other than the API 111 for setting the encryption parameter will be described.

アプリケーション12が呼び出したAPI111が,暗号鍵を設定するAPI111の場合,暗号演算部110は,暗号鍵の設定に係る処理(S3)を実行する。暗号鍵を設定するAPI111の引数には暗号鍵が含まれ,暗号演算部110は,この暗号鍵を暗号演算コプロセッサ106に入力して,暗号鍵の設定に係る処理(S3)を終了する。 When the API 111 called by the application 12 is the API 111 that sets the encryption key, the encryption calculation unit 110 executes the process (S3) related to the setting of the encryption key. The argument of the API 111 for setting the encryption key includes the encryption key, and the encryption calculation unit 110 inputs the encryption key to the encryption operation coprocessor 106 to end the process (S3) related to the setting of the encryption key.

アプリケーション12が呼び出したAPI111が,演算対象データを設定するAPI111の場合,暗号演算部110は,演算対象データの設定に係る処理(S4)を実行する。演算対象データを設定するAPI111の引数には演算対象データが含まれ,暗号演算部110は,この演算対象データを暗号演算コプロセッサ106に入力して,演算対象データの設定に係る処理(S4)を終了する。 When the API 111 called by the application 12 is the API 111 that sets the calculation target data, the cryptographic calculation unit 110 executes the process (S4) related to the setting of the calculation target data. The argument of the API 111 for setting the calculation target data includes the calculation target data, and the cryptographic calculation unit 110 inputs the calculation target data to the cryptographic calculation coprocessor 106, and processes related to the setting of the calculation target data (S4). To finish.

アプリケーション12が呼び出したAPI111が,暗号演算を実行するAPI111の場合,暗号演算部110は,暗号演算の実行に係る処理(S5)を実行する。暗号演算を実行するAPI111の引数には暗号演算の種類(暗号化または復号)が含まれ,暗号演算部110は,この暗号演算の種類を暗号演算コプロセッサ106に入力して,暗号演算コプロセッサ106に暗号演算を実行させて,暗号演算の実行に係る処理(S5)は終了する。 When the API 111 called by the application 12 is the API 111 that executes the cryptographic operation, the cryptographic operation unit 110 executes the process (S5) related to the execution of the cryptographic operation. The argument of the API 111 that executes the cryptographic operation includes the type of the cryptographic operation (encryption or decryption), and the cryptographic operation unit 110 inputs the type of the cryptographic operation to the cryptographic operation coprocessor 106, and the cryptographic operation coprocessor The 106 is made to execute the cryptographic operation, and the process (S5) related to the execution of the cryptographic operation is completed.

1 セキュアエレメント
10 ハードウェア
106 暗号演算コプロセッサ
11 オペレーティングシステム
110 暗号演算部
111 API
12 アプリケーション

1 Secure Element 10 Hardware 106 Cryptographic Coprocessor 11 Operating System 110 Cryptographic Unit 111 API
12 applications

Claims (1)

数式を定義する暗号パラメータを必要とする暗号演算に係る処理を行う暗号演算コプロセッサと,前記暗号演算コプロセッサを利用して前記暗号演算を行う暗号演算部を備え,前記暗号演算部は,前記暗号演算コプロセッサに前記暗号パラメータを入力すると,この前記暗号パラメータのチェックコードを同一性確認用のチェックコードとしてメモリに保存し,前記同一性確認用のチェックコードとしてメモリに保存した状態で,前記暗号パラメータを前記暗号演算コプロセッサに入力する場合,前記暗号パラメータを前記暗号演算コプロセッサに入力する前に,前記暗号演算コプロセッサに入力する前記暗号パラメータのチェックコードと,この時点でメモリに保存されている前記同一性確認用のチェックコードを比較し,これらのチェックコードが一致すると,前記暗号パラメータを前記暗号演算コプロセッサに入力しない動作を行うことを特徴とするセキュアエレメント。
It includes a cryptographic operation coprocessor that performs processing related to a cryptographic operation that requires a cryptographic parameter that defines a mathematical formula, and a cryptographic operation unit that performs the cryptographic operation using the cryptographic operation coprocessor. When the cryptographic parameter is input to the cryptographic operation coprocessor, the check code of the cryptographic parameter is saved in the memory as a check code for identity confirmation, and the check code for the sameness check is saved in the memory. When the cryptographic parameters are input to the cryptographic operation coprocessor, the check code of the cryptographic parameters to be input to the cryptographic operation coprocessor and the check code of the cryptographic parameters to be input to the cryptographic operation coprocessor before inputting the cryptographic parameters to the cryptographic operation coprocessor are stored in the memory at this point. A secure element characterized in that the check codes for confirming the sameness are compared, and when these check codes match, the operation is performed without inputting the cryptographic parameters to the cryptographic operation coprocessor.
JP2019097664A 2019-05-24 2019-05-24 secure element Active JP7192658B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019097664A JP7192658B2 (en) 2019-05-24 2019-05-24 secure element

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019097664A JP7192658B2 (en) 2019-05-24 2019-05-24 secure element

Publications (2)

Publication Number Publication Date
JP2020194997A true JP2020194997A (en) 2020-12-03
JP7192658B2 JP7192658B2 (en) 2022-12-20

Family

ID=73547658

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019097664A Active JP7192658B2 (en) 2019-05-24 2019-05-24 secure element

Country Status (1)

Country Link
JP (1) JP7192658B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023122884A (en) * 2022-02-24 2023-09-05 大日本印刷株式会社 Electronic information storage medium, key data setting method, and program

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007334660A (en) * 2006-06-15 2007-12-27 Renesas Technology Corp Microcomputer chip for ic card, microcomputer for ic card, and ic card
JP2008252299A (en) * 2007-03-29 2008-10-16 Hitachi Ltd Cryptographic processing system and cryptographic processing method
JP2017072897A (en) * 2015-10-05 2017-04-13 株式会社日立製作所 Authentication system and authentication method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007334660A (en) * 2006-06-15 2007-12-27 Renesas Technology Corp Microcomputer chip for ic card, microcomputer for ic card, and ic card
JP2008252299A (en) * 2007-03-29 2008-10-16 Hitachi Ltd Cryptographic processing system and cryptographic processing method
JP2017072897A (en) * 2015-10-05 2017-04-13 株式会社日立製作所 Authentication system and authentication method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023122884A (en) * 2022-02-24 2023-09-05 大日本印刷株式会社 Electronic information storage medium, key data setting method, and program
JP7439847B2 (en) 2022-02-24 2024-02-28 大日本印刷株式会社 Electronic information storage medium, key data setting method, and program

Also Published As

Publication number Publication date
JP7192658B2 (en) 2022-12-20

Similar Documents

Publication Publication Date Title
CN111984962B (en) Firmware security verification method and device
US7095858B2 (en) System and method for securely upgrading firmware
EP1679573B1 (en) Updating memory contents of a processing device
CN104424428B (en) For monitoring the electronic circuit and method of data processing
US20110185165A1 (en) Information processing device, information processing method, information processing program, and integrated circuit
US11270003B2 (en) Semiconductor device including secure patchable ROM and patch method thereof
US20210248088A1 (en) Cryptography module and method for operating same
CN111262697A (en) Chip wafer test control method and device and chip
CN112446782B (en) Method for downloading initial key, computer equipment and storage medium
JP7192658B2 (en) secure element
CN114143197B (en) OTA (over the air) upgrading method, device and equipment for Internet of things equipment and readable storage medium
JP2024540573A (en) Method for detecting anomalies indicative of manipulation during secure boot operations of a software-controlled device
US12346438B2 (en) Method for securely processing digital information in a secure element
US10628609B2 (en) Method and apparatus for performing signature verification by offloading values to a server
EP3195175B1 (en) System and method for protecting a device against attacks on processing flow using a code pointer complement
EP4202743A1 (en) A provisioning control apparatus and method for provisioning electronic components or devices
JP2025024582A (en) ELECTRONIC INFORMATION STORAGE MEDIUM, IC CHIP, SIGNATURE VERIFICATION PROCESSING METHOD, AND PROGRAM
CN115344832A (en) Secure device update by passing encryption and data together
JP2023016643A (en) electronic controller
JPH11259289A (en) IC card, IC card connection device, IC card system and IC card control method
CN118475930A (en) Information processing apparatus and information processing method
JP2004185348A (en) Program correction method and its implementation IC card

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220325

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221121

R150 Certificate of patent or registration of utility model

Ref document number: 7192658

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150