JP6950861B2 - Electronic information storage device, IC card, calculation decision method, and calculation decision program - Google Patents
Electronic information storage device, IC card, calculation decision method, and calculation decision program Download PDFInfo
- Publication number
- JP6950861B2 JP6950861B2 JP2017052390A JP2017052390A JP6950861B2 JP 6950861 B2 JP6950861 B2 JP 6950861B2 JP 2017052390 A JP2017052390 A JP 2017052390A JP 2017052390 A JP2017052390 A JP 2017052390A JP 6950861 B2 JP6950861 B2 JP 6950861B2
- Authority
- JP
- Japan
- Prior art keywords
- command
- cryptographic
- execution
- cryptographic operation
- spoofing
- 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.)
- Active
Links
Images
Description
本発明は、暗号演算機能を備えるセキュリティデバイスの技術に関する。 The present invention relates to a technique for a security device having a cryptographic calculation function.
ICカードを代表とするセキュリティデバイスには、暗号演算機能が備わっている。暗号演算機能は、秘密情報の暗号化や、認証や署名などに利用されるが、この時、暗号演算時の消費電力などを測定して、秘密情報や暗号鍵を取得する攻撃手法が確認されている。例えば、差分電力解析(DPA:Differential Power Analysis)手法では、既知の入力もしくは出力値に対応する消費電流、電磁放射、実行時間などを多数回測定し、統計的解析を行うことで秘密鍵情報を推定する。より多くの暗号演算時の消費電流等が測定されてしまうと、不正な暗号解析の成功確率は高くなってしまう。 Security devices such as IC cards are equipped with a cryptographic calculation function. The cryptographic calculation function is used for encryption of confidential information, authentication, signing, etc. At this time, an attack method for acquiring confidential information and encryption key by measuring the power consumption during cryptographic calculation has been confirmed. ing. For example, in the differential power analysis (DPA) method, the current consumption, electromagnetic radiation, execution time, etc. corresponding to a known input or output value are measured many times, and the secret key information is obtained by performing statistical analysis. presume. If more current consumption during cryptographic calculation is measured, the success rate of fraudulent cryptographic analysis becomes high.
このような攻撃手法への対策として、真の鍵を用いた真の暗号演算(正規演算)と、いわゆるダミー鍵(真の鍵に似せて偽装した鍵)を用いたダミー演算とをランダムな順番で実行することで、サイドチャネルリークと秘密鍵との間の相関を小さくする対策が知られている。さらに、特許文献1には、秘密鍵と同一のハミングウエイトを有する複数のダミー鍵を生成し、秘密鍵と複数のダミー鍵とを用いて暗号処理を行うことで、暗号演算とダミー演算との間でサイドチャネルリークが類似した波形を示すように暗号処理を行うことができる技術が開示されている。 As a countermeasure against such an attack method, a true cryptographic operation using a true key (regular operation) and a dummy operation using a so-called dummy key (a key disguised as a true key) are performed in a random order. It is known to reduce the correlation between the side channel leak and the private key by executing with. Further, in Patent Document 1, a plurality of dummy keys having the same humming weight as the private key are generated, and cryptographic processing is performed using the private key and the plurality of dummy keys to perform cryptographic calculation and dummy calculation. A technique is disclosed in which cryptographic processing can be performed so that side channel leaks show similar waveforms between them.
しかしながら、暗号演算は処理全体の実行時間に占める割合が大きいため、一回の暗号演算についてダミー演算が一回実行されると、実行速度の低下により利便性が損なわれる。上述したような従来の技術では、暗号演算ごとにダミー演算の要否を判断していないため、ダミー演算の必要性が低い場合においても、ダミー演算が実行されてしまい、実行速度が低下するという問題がある。 However, since the cryptographic operation occupies a large proportion of the execution time of the entire process, if the dummy operation is executed once for each cryptographic operation, the convenience is impaired due to the decrease in the execution speed. In the conventional technique as described above, since the necessity of the dummy operation is not determined for each cryptographic operation, the dummy operation is executed even when the necessity of the dummy operation is low, and the execution speed is reduced. There's a problem.
本発明は、このような問題等を鑑みてなされたものであり、不正な暗号解析を防止しつつ、暗号演算を伴う処理において実行速度の低下を抑制することが可能な電子情報記憶装置、ICカード、演算決定方法、及び演算決定プログラムを提供することを目的とする。 The present invention has been made in view of such problems and the like, and is an electronic information storage device and an IC capable of suppressing a decrease in execution speed in a process involving a cryptographic operation while preventing an illegal cryptographic analysis. It is an object of the present invention to provide a card, an arithmetic determination method, and an arithmetic determination program.
上記課題を解決するために、請求項1に記載の発明は、外部装置から受信したコマンドに応じた処理を行って当該処理の結果を示すレスポンスを当該外部装置へ送信する電子情報記憶装置であって、前記コマンドに応じた処理中に暗号演算を実行するときに、前記暗号演算に対応する偽装演算の実行条件として、前記コマンドに含まれるコマンドコードにより特定されるコマンドの種別または前記コマンドに含まれるコマンドパラメータにより指定される前記暗号演算の種別に基づいて、前記偽装演算を伴う前記暗号演算の実行と、前記偽装演算を伴わない前記暗号演算の実行とのうち何れか1つを決定する決定手段を備えることを特徴とする。 In order to solve the above problem, the invention according to claim 1 is an electronic information storage device that performs processing according to a command received from an external device and transmits a response indicating the result of the processing to the external device. When a cryptographic operation is executed during processing according to the command, the command type specified by the command code included in the command or included in the command is included as an execution condition of the spoofing operation corresponding to the cryptographic operation. A determination to determine one of the execution of the cryptographic operation with the spoofing operation and the execution of the cryptographic operation without the spoofing operation based on the type of the cryptographic operation specified by the command parameter. It is characterized by providing means.
請求項2に記載の発明は、請求項1に記載の電子情報記憶装置において、前記決定手段は、リトライ回数に制限がない前記暗号演算が実行される場合、前記偽装演算を伴う前記暗号演算の実行を決定することを特徴とする。
Invention according to
請求項3に記載の発明は、請求項1に記載の電子情報記憶装置において、前記決定手段は、ソフトウェアで実装された前記暗号演算が実行される場合、前記偽装演算を伴う前記暗号演算の実行を決定することを特徴とする。
The invention according to
請求項4に記載の発明は、外部装置から受信したコマンドに応じた処理を行って当該処理の結果を示すレスポンスを当該外部装置へ送信する電子情報記憶装置であって、前記コマンドに応じた処理中に暗号演算を実行するときに、前記暗号演算に対応する偽装演算の実行条件として、前記暗号演算の実行履歴に基づいて、前記偽装演算を伴う前記暗号演算の実行と、前記偽装演算を伴わない前記暗号演算の実行とのうち何れか1つを決定する決定手段を備えることを特徴とする。
The invention according to
請求項5に記載の発明は、請求項4に記載の電子情報記憶装置において、前記決定手段は、前記暗号演算の実行回数が閾値以上である場合、前記偽装演算を伴う前記暗号演算の実行を決定することを特徴とする。
The invention according to claim 5 is the electronic information storage device according to
請求項6に記載の発明は、請求項1乃至5の何れか一項に記載の電子情報記憶装置において、前記偽装演算は、前記暗号演算と同一の暗号アルゴリズムであり、且つ前記暗号演算で用いられる鍵と同一のハミングウエイトを有する鍵を用いることを特徴とする。
The invention according to
請求項7に記載の発明は、外部装置から受信したコマンドに応じた処理を行って当該処理の結果を示すレスポンスを当該外部装置へ送信するICカードであって、前記コマンドに応じた処理中に暗号演算を実行するときに、前記暗号演算に対応する偽装演算の実行条件として、前記コマンドに含まれるコマンドコードにより特定されるコマンドの種別または前記コマンドに含まれるコマンドパラメータにより指定される前記暗号演算の種別に基づいて、前記偽装演算を伴う前記暗号演算の実行と、前記偽装演算を伴わない前記暗号演算の実行とのうち何れか1つを決定する決定手段を備えることを特徴とする。
The invention according to
請求項8に記載の発明は、外部装置から受信したコマンドに応じた処理を行って当該処理の結果を示すレスポンスを当該外部装置へ送信する電子情報記憶装置が備えるプロセッサにより実行される演算決定方法であって、前記コマンドに応じた処理中に暗号演算を実行するときに、前記暗号演算に対応する偽装演算の実行条件として、前記コマンドに含まれるコマンドコードにより特定されるコマンドの種別または前記コマンドに含まれるコマンドパラメータにより指定される前記暗号演算の種別に基づいて、前記偽装演算を伴う前記暗号演算の実行と、前記偽装演算を伴わない前記暗号演算の実行とのうち何れか1つを決定することを特徴とする。 The invention according to claim 8 is an arithmetic determination method executed by a processor included in an electronic information storage device that performs processing according to a command received from an external device and transmits a response indicating the result of the processing to the external device. When a cryptographic operation is executed during processing according to the command, the type of command specified by the command code included in the command or the command is used as an execution condition of the spoofing operation corresponding to the cryptographic operation. Based on the type of the cryptographic operation specified by the command parameter included in, one of the execution of the cryptographic operation with the spoofing operation and the execution of the cryptographic operation without the spoofing operation is determined. It is characterized by doing.
請求項9に記載の発明は、外部装置から受信したコマンドに応じた処理を行って当該処理の結果を示すレスポンスを当該外部装置へ送信する電子情報記憶装置が備えるプロセッサに、前記コマンドに応じた処理中に暗号演算を実行するときに、前記暗号演算に対応する偽装演算の実行条件として、前記コマンドに含まれるコマンドコードにより特定されるコマンドの種別または前記コマンドに含まれるコマンドパラメータにより指定される前記暗号演算の種別に基づいて、前記偽装演算を伴う前記暗号演算の実行と、前記偽装演算を伴わない前記暗号演算の実行とのうち何れか1つを決定するように機能させることを特徴とする。請求項10に記載の発明は、外部装置から受信したコマンドに応じた処理を行って当該処理の結果を示すレスポンスを当該外部装置へ送信するICカードであって、前記コマンドに応じた処理中に暗号演算を実行するときに、前記暗号演算に対応する偽装演算の実行条件として、前記暗号演算の実行履歴に基づいて、前記偽装演算を伴う前記暗号演算の実行と、前記偽装演算を伴わない前記暗号演算の実行とのうち何れか1つを決定する決定手段を備えることを特徴とする。請求項11に記載の発明は、外部装置から受信したコマンドに応じた処理を行って当該処理の結果を示すレスポンスを当該外部装置へ送信する電子情報記憶装置が備えるプロセッサにより実行される演算決定方法であって、前記コマンドに応じた処理中に暗号演算を実行するときに、前記暗号演算に対応する偽装演算の実行条件として、前記暗号演算の実行履歴に基づいて、前記偽装演算を伴う前記暗号演算の実行と、前記偽装演算を伴わない前記暗号演算の実行とのうち何れか1つを決定することを特徴とする。請求項12に記載の発明は、外部装置から受信したコマンドに応じた処理を行って当該処理の結果を示すレスポンスを当該外部装置へ送信する電子情報記憶装置が備えるプロセッサに、前記コマンドに応じた処理中に暗号演算を実行するときに、前記暗号演算に対応する偽装演算の実行条件として、前記暗号演算の実行履歴に基づいて、前記偽装演算を伴う前記暗号演算の実行と、前記偽装演算を伴わない前記暗号演算の実行とのうち何れか1つを決定するように機能させることを特徴とする。
The invention according to claim 9 responds to the command by a processor included in an electronic information storage device that performs processing according to a command received from the external device and transmits a response indicating the result of the processing to the external device. When executing a cryptographic operation during processing, the execution condition of the spoofing operation corresponding to the cryptographic operation is specified by the command type specified by the command code included in the command or the command parameter included in the command. Based on the type of the cryptographic operation, it is characterized in that it functions to determine one of the execution of the cryptographic operation with the spoofing operation and the execution of the cryptographic operation without the spoofing operation. do. The invention according to claim 10 is an IC card that performs processing according to a command received from an external device and transmits a response indicating the result of the processing to the external device during the processing according to the command. When executing the cryptographic operation, as the execution condition of the spoofing operation corresponding to the cryptographic operation, the execution of the cryptographic operation accompanied by the spoofing operation and the execution of the cryptographic operation not accompanied by the spoofing operation are based on the execution history of the cryptographic operation. It is characterized by comprising a determination means for determining any one of execution of a cryptographic operation. The invention according to claim 11 is an arithmetic determination method executed by a processor included in an electronic information storage device that performs processing according to a command received from an external device and transmits a response indicating the result of the processing to the external device. When a cryptographic operation is executed during processing according to the command, the cryptography accompanied by the spoofing operation is based on the execution history of the cryptographic operation as an execution condition of the camouflage operation corresponding to the cryptographic operation. It is characterized in that one of the execution of the operation and the execution of the cryptographic operation without the camouflage operation is determined. The invention according to
本発明によれば、不正な暗号解析を防止しつつ、暗号演算を伴う処理において実行速度の低下を抑制することができる。 According to the present invention, it is possible to prevent a decrease in execution speed in a process involving a cryptographic operation while preventing an illegal cryptanalysis.
以下、図面を参照して本発明の実施形態について詳細に説明する。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
先ず、図1を参照して、ICカード1の概要構成及び機能について説明する。図1は、ICカード1の概要構成例を示す図である。図1に示すように、ICカード1に搭載されるICチップ1aは、CPU(Central Processing Unit)10、ROM(Read Only Memory)11、RAM(Random Access Memory)12、不揮発性メモリ13、I/O回路14、及び暗号演算部15等を備えて構成される。ICチップ1aは、本発明の電子情報記憶装置の一例である。
First, the outline configuration and functions of the IC card 1 will be described with reference to FIG. FIG. 1 is a diagram showing a schematic configuration example of the IC card 1. As shown in FIG. 1, the IC chip 1a mounted on the IC card 1 includes a CPU (Central Processing Unit) 10, a ROM (Read Only Memory) 11, a RAM (Random Access Memory) 12, a
なお、ICカード1は、キャッシュカード、クレジットカード、社員カード等として使用される。或いは、ICカード1は、スマートフォンや携帯電話機等の端末装置に組み込まれてもよい。或いは、ICチップ1aは、例えばeUICC(Embedded Universal Integrated Circuit Card)として、端末装置から容易に取り外しや取り換えができないように端末装置と一体的に搭載されてもよい。 The IC card 1 is used as a cash card, a credit card, an employee card, and the like. Alternatively, the IC card 1 may be incorporated in a terminal device such as a smartphone or a mobile phone. Alternatively, the IC chip 1a may be mounted integrally with the terminal device, for example, as an eUICC (Embedded Universal Integrated Circuit Card) so that it cannot be easily removed or replaced from the terminal device.
CPU10は、ROM11または不揮発性メモリ13に記憶された各種プログラムを実行するプロセッサ(コンピュータ)である。RAM12は、作業用メモリとして利用される。不揮発性メモリ13には、例えばフラッシュメモリが適用される。不揮発性メモリ13には、各種プログラム及びデータが記憶される。各種プログラムには、オペレーティングシステム、アプリケーションプログラム、及び本発明の演算決定プログラム等が含まれる。CPU10は、本発明の演算決定プログラムに従って、本発明の決定手段として機能する。不揮発性メモリ13に記憶される各種プログラム及びデータの一部は、ROM11に記憶されてもよい。なお、不揮発性メモリ13は、「Electrically Erasable Programmable Read-Only Memory」であってもよい。
The CPU 10 is a processor (computer) that executes various programs stored in the ROM 11 or the
また、不揮発性メモリ13に記憶されるデータは、例えば、ISO7816で規定されるMF(Master File)、DF(Dedicated File)、及びEF(Elementary File)などから構成される階層構造を有する複数のファイルに格納される。MFは、ファイル構成において最上位に位置し、MFの下位階層にはDF及びEFが位置する。DFは、例えばアプリケーションプログラムごとに設けられる。EFは、例えば、DFに格納されるアプリケーションプログラムで使用される複数のデータを格納するレコードファイルである。また、EFは、IEF(内部基礎ファイル)とWEF(作業用基礎ファイル)に分けられる。IEFには、例えば、暗号鍵が格納される。
The data stored in the
I/O回路14は、外部装置2とのインターフェイスを担う。接触式のICチップ1aの場合、I/O回路14には、例えば、ISO7816で規定されるC1〜C8の8個の端子が備えられている。例えば、C1端子は電源端子、C2端子はリセット端子、C3端子はクロック端子、C5端子はグランド端子、C7端子は外部装置2との間で通信を行うための端子である。一方、非接触式のICチップ1aの場合、I/O回路14には、例えば、アンテナ、及び変復調回路が備えられている。なお、外部装置2の例としては、ICカード発行機、ATM、改札機、認証用ゲート等が挙げられる。或いは、ICチップ1aが端末装置に組み込まれる場合、外部装置2には端末装置の機能を担う制御部が該当する。
The I / O circuit 14 serves as an interface with the
暗号演算部15は、CPU10からの演算指令に応じて、鍵レジスタ(図示せず)に保持された鍵(以下、「暗号鍵」という)及び所定の暗号アルゴリズムを用いて暗号演算を実行する。また、暗号演算部15は、CPU10からの演算指令に応じて、ダミー鍵レジスタ(図示せず)に保持されたダミー鍵及び上記暗号アルゴリズムを用いてダミー演算を実行する。ここで、ダミー鍵は、例えば、暗号演算で用いられる暗号鍵と同一のバイト長であり、かつ、同一のハミングウエイトを有する鍵である。また、ダミー演算は、例えば、暗号演算に対応する偽装演算であり、当該暗号演算と同一の暗号アルゴリズムを採用する。ダミー演算は、暗号演算の直前、暗号演算の直後、または暗号演算の途中に挿入されるが、本実施形態では、当該ダミー演算の必要性が高い処理に限定して挿入(例えば、暗号解析を防ぐ必要のある処理に限定して挿入)することにより、電力解析等による不正な暗号解析を防止しつつ、暗号演算及びダミー演算を伴う処理において実行速度の低下を抑制する。
The
また、暗号演算及びダミー演算に用いられる暗号アルゴリズムの種別(言い換えれば、暗号演算の種別)として、RSA(Rivest Shamir Adleman)、AES(Advanced Encryption Standard)、DES(Data Encryption Standard)、及び3DES等が挙げられる。暗号演算部15には、これらの複数の暗号アルゴリズムが実装される。例えば、RSA、DES、及び3DESはハードウェアで実装(電子回路により構成)、AESはソフトウェアで実装(プログラムコードにより構成)される。なお、暗号演算部15には、上記複数の暗号プログラムのうち、何れか1つの暗号アルゴリズムが実装されてもよい。
Further, as the types of cryptographic algorithms used for cryptographic operations and dummy operations (in other words, the types of cryptographic operations), RSA (Rivest Shamir Adleman), AES (Advanced Encryption Standard), DES (Data Encryption Standard), 3DES, etc. Can be mentioned. These a plurality of cryptographic algorithms are implemented in the
CPU10は、外部装置2からI/O回路14を介してコマンドを受信すると、当該コマンドに応じた処理を行って当該処理の結果を示すレスポンスをI/O回路14を介して当該外部装置2へ送信する。ここで、コマンドは、例えばISO7816-3で定義されるAPDU(Application Protocol Data Unit)により構成される。APDUは、少なくとも、CLA、INS、P1及びP2から構成される。ここで、CLAはコマンドクラス(命令クラス)を示し、INSはコマンドコード(命令コード)を示す。INSによりコマンドの種別が特定される。コマンドの種別として、“READ BINARY”,“WRITE BINARY”,“UPDATE BINARY”,“SELECT FILE”,“VERIFY”,“EXTERNAL AUTHENTICATE”,“INTERNAL AUTHENTICATE”,“COMPUTE DIGITAL SIGNATURE”等が挙げられる。また、P1及びP2はコマンドパラメータ(命令パラメータ)を示す。P1及びP2は、コマンドのオプションであり、例えばP1により、例えば暗号鍵の種別(つまり、暗号演算の種別)を指定することができる。なお、APDUは、CLA、INS、P1及びP2に加えて、Le、Lc及びDataの少なくとも何れか1つを含んで構成される場合もある。ここで、Leはレスポンスの最大長(最大サイズ)を示し、LcはDataの長さを示し、DataはICカード1で用いられる可変長のデータを示す。
When the CPU 10 receives a command from the
本実施形態では、受信されたコマンドに応じた処理中に暗号演算が行われる場合、CPU10は、当該暗号演算を実行するときに(例えば、当該暗号演算を実行する直前、または直後に)、当該暗号演算に対応するダミー演算の実行条件に基づいて、ダミー演算を伴う暗号演算の実行と、ダミー演算を伴わない暗号演算の実行とのうち何れか1つを決定する。言い換えれば、当該処理中に当該ダミー演算を挿入するか否かが判定される。ここで、ダミー演算の実行条件は、例えば演算決定プログラム上で予め規定される。ダミー演算の実行条件の例として、コマンドの種別、暗号演算の種別(つまり、当該暗号演算に用いられる暗号アルゴリズムの種別)、または、暗号演算の実行履歴(暗号演算の実行回数を含む)などが挙げられる。なお、暗号演算の実行履歴は、不揮発性メモリ13に保存される。
In the present embodiment, when a cryptographic operation is performed during processing according to a received command, the CPU 10 performs the cryptographic operation when executing the cryptographic operation (for example, immediately before or after executing the cryptographic operation). Based on the execution condition of the dummy operation corresponding to the cryptographic operation, one of the execution of the cryptographic operation with the dummy operation and the execution of the cryptographic operation without the dummy operation is determined. In other words, it is determined whether or not to insert the dummy operation during the process. Here, the execution conditions of the dummy operation are defined in advance on, for example, the operation determination program. Examples of dummy operation execution conditions include command type, cryptographic operation type (that is, the type of cryptographic algorithm used for the cryptographic operation), or cryptographic operation execution history (including the number of times the cryptographic operation is executed). Can be mentioned. The execution history of the cryptographic operation is stored in the
例えば、CPU10は、上記コマンドに含まれるINSが示すコマンドの種別に基づいて、ダミー演算を伴う暗号演算の実行と、ダミー演算を伴わない暗号演算の実行とのうち何れか1つを決定する。また、例えば、CPU10は、上記コマンドに含まれるP1が示す暗号鍵の種別(言い換えれば、暗号演算の種別)に基づいて、ダミー演算を伴う暗号演算の実行と、ダミー演算を伴わない暗号演算の実行とのうち何れか1つを決定する。なお、コマンドに応じた処理中に実行される暗号演算の種別は、ICチップ1a内で予め設定されてもよい。この場合、CPU10は、予め設定された暗号演算の種別に基づいて、ダミー演算を伴う暗号演算の実行と、ダミー演算を伴わない暗号演算の実行とのうち何れか1つを決定する。また、暗号演算の種別は、当該暗号演算により用いられる暗号鍵の長さ(鍵長)により特定されてもよい。つまり、この場合、CPU10は、暗号演算により用いられる暗号鍵の長さに基づいて、ダミー演算を伴う暗号演算の実行と、ダミー演算を伴わない暗号演算の実行とのうち何れか1つを決定することになる。 For example, the CPU 10 determines one of the execution of the cryptographic operation with the dummy operation and the execution of the cryptographic operation without the dummy operation based on the type of the command indicated by the INS included in the above command. Further, for example, the CPU 10 executes a cryptographic operation with a dummy operation and a cryptographic operation without a dummy operation based on the type of the encryption key indicated by P1 included in the above command (in other words, the type of the encryption operation). Determine one of the executions. The type of cryptographic operation executed during the processing according to the command may be preset in the IC chip 1a. In this case, the CPU 10 determines one of the execution of the cryptographic operation with the dummy operation and the execution of the cryptographic operation without the dummy operation based on the preset type of the cryptographic operation. Further, the type of the encryption operation may be specified by the length (key length) of the encryption key used in the encryption operation. That is, in this case, the CPU 10 determines one of the execution of the encryption operation with the dummy operation and the execution of the encryption operation without the dummy operation based on the length of the encryption key used in the encryption operation. Will be done.
そして、CPU10は、上記決定にしたがって、暗号演算(つまり、ダミー演算を伴う暗号演算、または、ダミー演算を伴わない暗号演算)を実行させる演算指令を暗号演算部15へ出力し、当該演算指令に応じて暗号演算部15により演算された結果を暗号演算部15から取得する。なお、ソフトウェアで実装された暗号演算が実行される場合、CPU10が暗号演算プログラムにしたがって、ダミー演算を伴う暗号演算、または、ダミー演算を伴わない暗号演算を実行してもよい。
Then, the CPU 10 outputs an operation command for executing a cryptographic operation (that is, a cryptographic operation with a dummy operation or a cryptographic operation without a dummy operation) to the
次に、ICカード1の動作について、実施例1〜実施例4に分けて説明する。 Next, the operation of the IC card 1 will be described separately in Examples 1 to 4.
(実施例1)
先ず、図2及び図3を参照して、実施例1におけるICカード1の動作について説明する。実施例1は、コマンドの種別に基づいてダミー演算を挿入するか否かを判定する例である。図2は、コマンドごとのダミー演算の要否の一例を示す図である。図3は、実施例1におけるCPU10の処理の一例を示すフローチャートである。
(Example 1)
First, the operation of the IC card 1 in the first embodiment will be described with reference to FIGS. 2 and 3. The first embodiment is an example of determining whether or not to insert a dummy operation based on the type of the command. FIG. 2 is a diagram showing an example of the necessity of dummy operation for each command. FIG. 3 is a flowchart showing an example of the processing of the CPU 10 in the first embodiment.
図2の例によれば、暗号演算が利用されるコマンドは、“WRITE BINARY”(セキュアメッセージあり)、“EXTERNAL AUTHENTICATE”及び“INTERNAL AUTHENTICATE”である。ここで、“EXTERNAL AUTHENTICATE”に応じた処理では、リトライカウンタによる回数制限がある(つまり、リトライ回数に制限がある)ため、攻撃者が繰り返し攻撃を行うことは難しく、不正な暗号解析のための大量のサンプルを得ることは難しい。従って、“EXTERNAL AUTHENTICATE”に応じた処理中にダミー演算の必要がない。また、“WRITE BINARY”(セキュアメッセージあり)に応じた処理では、シーケンスカウンタによるセッション鍵の変更があるため、攻撃者が繰り返し攻撃を行うことは難しく、不正な暗号解析のための大量のサンプルを得ることは難しい。従って、“WRITE BINARY”(セキュアメッセージあり)に応じた処理中にダミー演算の必要がない。一方、“INTERNAL AUTHENTICATE”に応じた処理では、リトライ回数に制限がないため、攻撃者が繰り返し攻撃を行うことができ、不正な暗号解析のための大量のサンプルを得ることが可能である。従って、“INTERNAL AUTHENTICATE”に応じた処理中にダミー演算の必要がある。以上より、攻撃に対する対策の必要がない(必要性が低い)処理に与えるパフォーマンスへの影響を抑えることが可能となる。図3に示す処理は、このような観点に基づく処理である。 According to the example of FIG. 2, the commands for which cryptographic operations are used are "WRITE BINARY" (with secure message), "EXTERNAL AUTHENTICATE", and "INTERNAL AUTHENTICATE". Here, in the processing according to "EXTERNAL AUTHENTICATE", since there is a limit on the number of times by the retry counter (that is, there is a limit on the number of retries), it is difficult for an attacker to repeatedly attack, and for fraudulent cryptanalysis. It is difficult to obtain a large number of samples. Therefore, there is no need for a dummy operation during processing according to "EXTERNAL AUTHENTICATE". In addition, in the process according to "WRITE BINARY" (with secure message), it is difficult for an attacker to repeatedly attack because the session key is changed by the sequence counter, and a large number of samples for malicious cryptanalysis are prepared. It's hard to get. Therefore, there is no need for dummy operation during processing according to "WRITE BINARY" (with secure message). On the other hand, in the process according to "INTERNAL AUTHENTICATE", since there is no limit to the number of retries, an attacker can repeatedly attack and obtain a large number of samples for fraudulent cryptanalysis. Therefore, it is necessary to perform a dummy operation during the processing according to "INTERNAL AUTHENTICATE". From the above, it is possible to suppress the influence on the performance on the processing that does not require (less necessary) countermeasures against attacks. The process shown in FIG. 3 is a process based on such a viewpoint.
図3に示す処理は、外部装置2からのコマンドが受信された場合に開始される。CPU10は、受信されたコマンドに応じた処理を開始する(ステップS1)。次いで、CPU10は、受信されたコマンドに応じた処理に暗号演算がある否かを判定する(ステップS2)。CPU10は、暗号演算があると判定した場合(ステップS2:YES)、ステップ3へ進む。一方、CPU10は、暗号演算がないと判定した場合(ステップS2:NO)、ステップS8へ進む。
The process shown in FIG. 3 is started when a command from the
ステップS3では、CPU10は、受信されたコマンドが“INTERNAL AUTHENTICATE”であるか否かを判定(例えば、コマンドに含まれるINSにより判定)する。CPU10は、コマンドが“INTERNAL AUTHENTICATE”であると判定した場合(ステップS3:YES)、ダミー演算を伴う暗号演算の実行を決定する(ステップS4)。つまり、CPU10は、リトライ回数に制限がない暗号演算が実行される場合、ダミー演算を伴う暗号演算の実行を決定する。次いで、CPU10は、ダミー演算を伴う暗号演算を実行させる演算指令を暗号演算部15へ出力し、当該演算指令に応じて暗号演算部15により演算された結果を暗号演算部15から取得し(ステップS5)、ステップS8へ進む。
In step S3, the CPU 10 determines whether or not the received command is "INTERNAL AUTHENTICATE" (for example, it is determined by the INS included in the command). When the CPU 10 determines that the command is "INTERNAL AUTHENTICATE" (step S3: YES), the CPU 10 determines to execute a cryptographic operation accompanied by a dummy operation (step S4). That is, when the cryptographic operation with no limit on the number of retries is executed, the CPU 10 determines the execution of the cryptographic operation accompanied by the dummy operation. Next, the CPU 10 outputs an operation command for executing a cryptographic operation accompanied by a dummy operation to the
一方、CPU10は、コマンドが“INTERNAL AUTHENTICATE”でないと判定した場合(ステップS3:NO)、ダミー演算を伴わない暗号演算の実行を決定する(ステップS6)。次いで、CPU10は、ダミー演算を伴わない暗号演算を実行させる演算指令を暗号演算部15へ出力し、当該演算指令に応じて暗号演算部15により演算された結果を暗号演算部15から取得し(ステップS7)、ステップS8へ進む。
On the other hand, when the CPU 10 determines that the command is not "INTERNAL AUTHENTICATE" (step S3: NO), the CPU 10 determines to execute the cryptographic operation without the dummy operation (step S6). Next, the CPU 10 outputs an operation command for executing a cryptographic operation without a dummy operation to the
ステップS8では、CPU10は、残りの処理を行って上記コマンドに応じた処理の結果を示すレスポンスをI/O回路14を介して当該外部装置2へ送信する。
In step S8, the CPU 10 performs the remaining processing and transmits a response indicating the result of the processing according to the command to the
このように、実施例1によれば、CPU10は、コマンドの種別に基づいて、ダミー演算を伴う暗号演算の実行と、ダミー演算を伴わない暗号演算の実行とのうち何れか1つを決定するように構成したので、不正な暗号解析を防止しつつ、暗号演算を伴う処理において実行速度の低下を抑制することができる。 As described above, according to the first embodiment, the CPU 10 determines one of the execution of the cryptographic operation with the dummy operation and the execution of the cryptographic operation without the dummy operation based on the type of the command. Therefore, it is possible to prevent a decrease in execution speed in a process involving a cryptographic operation while preventing an illegal cryptographic analysis.
(実施例2)
次に、図4及び図5を参照して、実施例2におけるICカード1の動作について説明する。実施例2は、コマンドに含まれるオプション(P1)が示す暗号鍵の種別(言い換えれば、暗号演算の種別)に基づいてダミー演算を挿入するか否かを判定する例であり、特定の暗号演算コマンド“COMPUTE CIPHER”を想定する。この暗号演算コマンドにより、P1の値を用いて、利用するIEF(暗号鍵を格納)を切り替えることができる。実施例2では、実施例1とは異なり、同一コマンドでも、オプション(セキュアメッセージを含む)に応じてダミー演算を挿入するか否かが決定される。図4は、コマンドに含まれるオプションの値ごとのダミー演算の要否の一例を示す図である。図5は、実施例2におけるCPU10の処理の一例を示すフローチャートである。
(Example 2)
Next, the operation of the IC card 1 in the second embodiment will be described with reference to FIGS. 4 and 5. The second embodiment is an example of determining whether or not to insert a dummy operation based on the type of encryption key (in other words, the type of encryption operation) indicated by the option (P1) included in the command, and is an example of determining whether or not to insert a dummy operation. Assume the command "COMPUTE CIPHER". With this encryption operation command, the IEF (encryption key stored) to be used can be switched using the value of P1. In the second embodiment, unlike the first embodiment, whether or not to insert a dummy operation is determined according to an option (including a secure message) even with the same command. FIG. 4 is a diagram showing an example of the necessity of dummy operation for each option value included in the command. FIG. 5 is a flowchart showing an example of the processing of the CPU 10 in the second embodiment.
図4の例によれば、P1=0x00、及びP1=0x02の場合は、リトライカウンタによる回数制限がある(つまり、リトライ回数に制限がある)ため、攻撃者が繰り返し攻撃を行うことは難しく、不正な暗号解析のための大量のサンプルを得ることは難しい。従って、P1=0x00、及びP1=0x02の場合は、“COMPUTE CIPHER”に応じた処理中にダミー演算の必要がない。一方、P1=0x01の場合は、リトライ回数に制限がないため、攻撃者が繰り返し攻撃を行うことができ、不正な暗号解析のための大量のサンプルを得ることが可能である。従って、P1=0x01の場合は、“COMPUTE CIPHER”に応じた処理中にダミー演算の必要がある。図5に示す処理は、このような観点に基づく処理である。 According to the example of FIG. 4, in the case of P1 = 0x00 and P1 = 0x02, it is difficult for an attacker to repeatedly attack because there is a limit on the number of times by the retry counter (that is, there is a limit on the number of retries). It is difficult to obtain a large number of samples for fraudulent cryptanalysis. Therefore, when P1 = 0x00 and P1 = 0x02, there is no need for a dummy operation during the processing according to "COMPUTE CIPHER". On the other hand, in the case of P1 = 0x01, since there is no limit to the number of retries, an attacker can repeatedly attack and obtain a large number of samples for fraudulent cryptanalysis. Therefore, when P1 = 0x01, it is necessary to perform a dummy operation during the processing according to "COMPUTE CIPHER". The process shown in FIG. 5 is a process based on such a viewpoint.
図5に示す処理は、外部装置2からのコマンドが受信された場合に開始される。CPU10は、受信されたコマンドに応じた処理を開始する(ステップS11)。次いで、CPU10は、受信されたコマンドが“COMPUTE CIPHER”であるか否かを判定する(ステップS12)。CPU10は、コマンドが“COMPUTE CIPHER”であると判定した場合(ステップS12:YES)、ステップS13へ進む。一方、CPU10は、コマンドが“COMPUTE CIPHER”でないと判定した場合(ステップS12:NO)、ステップS18へ進む。
The process shown in FIG. 5 is started when a command from the
ステップS13では、CPU10は、受信されたコマンドに含まれるオプション(P1)が“0x01”であるか否かを判定する。CPU10は、オプション(P1)が“0x01”であると判定した場合(ステップS13:YES)、ダミー演算を伴う暗号演算の実行を決定する(ステップS14)。つまり、CPU10は、リトライ回数に制限がない暗号演算が実行される場合、ダミー演算を伴う暗号演算の実行を決定する。次いで、CPU10は、ダミー演算を伴う暗号演算を実行させる演算指令を暗号演算部15へ出力し、当該演算指令に応じて暗号演算部15により演算された結果を暗号演算部15から取得し(ステップS15)、ステップS18へ進む。
In step S13, the CPU 10 determines whether or not the option (P1) included in the received command is “0x01”. When the CPU 10 determines that the option (P1) is "0x01" (step S13: YES), the CPU 10 determines to execute the cryptographic operation accompanied by the dummy operation (step S14). That is, when the cryptographic operation with no limit on the number of retries is executed, the CPU 10 determines the execution of the cryptographic operation accompanied by the dummy operation. Next, the CPU 10 outputs an operation command for executing a cryptographic operation accompanied by a dummy operation to the
一方、CPU10は、オプション(P1)が“0x01”でないと判定した場合(ステップS13:NO)、ダミー演算を伴わない暗号演算の実行を決定する(ステップS16)。次いで、CPU10は、ダミー演算を伴わない暗号演算を実行させる演算指令を暗号演算部15へ出力し、当該演算指令に応じて暗号演算部15により演算された結果を暗号演算部15から取得し(ステップS17)、ステップS18へ進む。
On the other hand, when the CPU 10 determines that the option (P1) is not "0x01" (step S13: NO), the CPU 10 determines to execute the cryptographic operation without the dummy operation (step S16). Next, the CPU 10 outputs an operation command for executing a cryptographic operation without a dummy operation to the
ステップS18では、CPU10は、残りの処理を行って上記コマンドに応じた処理の結果を示すレスポンスをI/O回路14を介して当該外部装置2へ送信する。
In step S18, the CPU 10 performs the remaining processing and transmits a response indicating the result of the processing according to the command to the
このように、実施例2によれば、CPU10は、暗号演算の種別(コマンド中のオプション)に基づいて、ダミー演算を伴う暗号演算の実行と、ダミー演算を伴わない暗号演算の実行とのうち何れか1つを決定するように構成したので、不正な暗号解析を防止しつつ、暗号演算を伴う処理において実行速度の低下を抑制することができる。 As described above, according to the second embodiment, the CPU 10 includes the execution of the cryptographic operation with the dummy operation and the execution of the cryptographic operation without the dummy operation based on the type of the cryptographic operation (option in the command). Since it is configured to determine any one of them, it is possible to prevent a decrease in execution speed in a process involving a cryptographic operation while preventing an illegal cryptographic analysis.
(実施例3)
次に、図6及び図7を参照して、実施例3におけるICカード1の動作について説明する。実施例3は、暗号アルゴリズム(暗号演算)の実装形態(実装形態は暗号アルゴリズムの種別に依存)に基づいてダミー演算を挿入するか否かを判定する例であり、ICカード1には、RSA、AES、DES、及び3DESが実装されていることを想定する。実施例3では、コマンドによらず、暗号アルゴリズムに応じてダミー演算を挿入するか否かが決定される。図6は、暗号アルゴリズムごとのダミー演算の要否の一例を示す図である。図7は、実施例3におけるCPU10の処理の一例を示すフローチャートである。
(Example 3)
Next, the operation of the IC card 1 in the third embodiment will be described with reference to FIGS. 6 and 7. The third embodiment is an example of determining whether or not to insert a dummy operation based on the implementation form of the cryptographic algorithm (cryptographic calculation) (the implementation form depends on the type of the cryptographic algorithm), and the IC card 1 has RSA. , AES, DES, and 3DES are implemented. In the third embodiment, whether or not to insert a dummy operation is determined according to the encryption algorithm regardless of the command. FIG. 6 is a diagram showing an example of the necessity of dummy calculation for each encryption algorithm. FIG. 7 is a flowchart showing an example of the processing of the CPU 10 in the third embodiment.
図6の例によれば、RSA、DES、及び3DESは、それぞれ、ハードウェアで実装されており、サイドチャネル対策が施されているため、コマンドに応じた処理中にダミー演算の必要がない。一方、AESは、ソフトウェアで実装されており、サイドチャネル対策は実施されているが、ハードウェアのものと比較すると脆弱であることがわかっているため、コマンドに応じた処理中にダミー演算の必要がある。図7に示す処理は、このような観点に基づく処理である。 According to the example of FIG. 6, RSA, DES, and 3DES are each implemented by hardware and side channel countermeasures are taken, so that dummy calculation is not required during processing according to the command. On the other hand, AES is implemented by software and side channel countermeasures are implemented, but it is known that it is vulnerable compared to the hardware one, so dummy calculation is required during processing according to the command. There is. The process shown in FIG. 7 is a process based on such a viewpoint.
図7に示す処理は、外部装置2からのコマンドが受信された場合に開始される。CPU10は、受信されたコマンドに応じた処理を開始する(ステップS21)。次いで、CPU10は、受信されたコマンドに応じた処理に暗号演算がある否かを判定する(ステップS22)。CPU10は、暗号演算があると判定した場合(ステップS22:YES)、ステップ23へ進む。一方、CPU10は、暗号演算がないと判定した場合(ステップS22:NO)、ステップS28へ進む。
The process shown in FIG. 7 is started when a command from the
ステップS23では、CPU10は、暗号演算に用いられる暗号アルゴリズムがAESであるか否かを判定する。なお、暗号アルゴリズムの種別(暗号演算の種別)は、例えば、コマンドごとに(または、イシュアごとに)ICチップ1a内で予め設定される。CPU10は、暗号アルゴリズムがAESであると判定した場合(ステップS23:YES)、ダミー演算を伴う暗号演算の実行を決定する(ステップS24)。つまり、CPU10は、ソフトウェアで実装された暗号演算が実行される場合、ダミー演算を伴う暗号演算の実行を決定する。次いで、CPU10は、ダミー演算を伴う暗号演算を実行させる演算指令を暗号演算部15へ出力し、当該演算指令に応じて暗号演算部15により演算された結果を暗号演算部15から取得し(ステップS25)、ステップS28へ進む。
In step S23, the CPU 10 determines whether or not the cryptographic algorithm used for the cryptographic operation is AES. The type of cryptographic algorithm (type of cryptographic operation) is preset in the IC chip 1a for each command (or for each issuer), for example. When the CPU 10 determines that the encryption algorithm is AES (step S23: YES), the CPU 10 determines to execute the encryption operation accompanied by the dummy operation (step S24). That is, when the cryptographic operation implemented by the software is executed, the CPU 10 determines the execution of the cryptographic operation accompanied by the dummy operation. Next, the CPU 10 outputs an operation command for executing a cryptographic operation accompanied by a dummy operation to the
一方、CPU10は、暗号アルゴリズムがAESでないと判定した場合(ステップS23:NO)、ダミー演算を伴わない暗号演算の実行を決定する(ステップS26)。次いで、CPU10は、ダミー演算を伴わない暗号演算を実行させる演算指令を暗号演算部15へ出力し、当該演算指令に応じて暗号演算部15により演算された結果を暗号演算部15から取得し(ステップS27)、ステップS28へ進む。
On the other hand, when the CPU 10 determines that the encryption algorithm is not AES (step S23: NO), the CPU 10 determines to execute the encryption operation without the dummy operation (step S26). Next, the CPU 10 outputs an operation command for executing a cryptographic operation without a dummy operation to the
ステップS28では、CPU10は、残りの処理を行って上記コマンドに応じた処理の結果を示すレスポンスをI/O回路14を介して当該外部装置2へ送信する。
In step S28, the CPU 10 performs the remaining processing and transmits a response indicating the result of the processing according to the command to the
このように、実施例3によれば、CPU10は、暗号演算の種別(実装形態)に基づいて、ダミー演算を伴う暗号演算の実行と、ダミー演算を伴わない暗号演算の実行とのうち何れか1つを決定するように構成したので、不正な暗号解析を防止しつつ、暗号演算を伴う処理において実行速度の低下を抑制することができる。 As described above, according to the third embodiment, the CPU 10 either executes a cryptographic operation with a dummy operation or executes a cryptographic operation without a dummy operation based on the type (implementation form) of the cryptographic operation. Since it is configured to determine one, it is possible to prevent a decrease in execution speed in a process involving a cryptographic operation while preventing an illegal cryptographic analysis.
(実施例4)
次に、図8及び図9を参照して、実施例4におけるICカード1の動作について説明する。実施例4は、暗号演算の実行履歴に基づいてダミー演算を挿入するか否かを判定する例であり、暗号演算が実行される度に実行回数がインクリメントされて記憶されることを想定する。図8は、実行回数の範囲ごとのダミー演算の要否の一例を示す図である。図9は、実施例4におけるCPU10の処理の一例を示すフローチャートである。
(Example 4)
Next, the operation of the IC card 1 in the fourth embodiment will be described with reference to FIGS. 8 and 9. The fourth embodiment is an example of determining whether or not to insert a dummy operation based on the execution history of the cryptographic operation, and it is assumed that the number of executions is incremented and stored each time the cryptographic operation is executed. FIG. 8 is a diagram showing an example of the necessity of dummy calculation for each range of the number of executions. FIG. 9 is a flowchart showing an example of the processing of the CPU 10 in the fourth embodiment.
図8の例によれば、暗号演算の実行回数が10000回未満の場合は、不正な暗号解析に十分なサンプルを得ることは難しいため、コマンドに応じた処理中にダミー演算の必要がない。一方、暗号演算の実行回数が10000回以上の場合は、不正な暗号解析に十分なサンプルを得ることが可能なため、コマンドに応じた処理中にダミー演算の必要がある。図9に示す処理は、このような観点に基づく処理である。 According to the example of FIG. 8, when the number of times of execution of the cryptographic operation is less than 10,000, it is difficult to obtain a sufficient sample for illegal cryptanalysis, so that the dummy operation is not necessary during the processing according to the command. On the other hand, when the number of executions of the cryptographic operation is 10,000 or more, it is possible to obtain a sufficient sample for illegal cryptanalysis, so that a dummy operation is required during the processing according to the command. The process shown in FIG. 9 is a process based on such a viewpoint.
図9に示す処理は、外部装置2からのコマンドが受信された場合に開始される。CPU10は、受信されたコマンドに応じた処理を開始する(ステップS31)。次いで、CPU10は、受信されたコマンドに応じた処理に暗号演算がある否かを判定する(ステップS32)。CPU10は、暗号演算があると判定した場合(ステップS32:YES)、ステップ33へ進む。一方、CPU10は、暗号演算がないと判定した場合(ステップS32:NO)、ステップS38へ進む。
The process shown in FIG. 9 is started when a command from the
ステップS33では、CPU10は、暗号演算の実行回数が閾値(例えば、10000)以上であるか否かを判定する。CPU10は、暗号演算の実行回数が閾値以上であると判定した場合(ステップS33:YES)、ダミー演算を伴う暗号演算の実行を決定する(ステップS34)。次いで、CPU10は、ダミー演算を伴う暗号演算を実行させる演算指令を暗号演算部15へ出力し、当該演算指令に応じて暗号演算部15により演算された結果を暗号演算部15から取得し(ステップS35)、ステップS38へ進む。
In step S33, the CPU 10 determines whether or not the number of executions of the cryptographic operation is equal to or greater than the threshold value (for example, 10000). When the CPU 10 determines that the number of executions of the cryptographic operation is equal to or greater than the threshold value (step S33: YES), the CPU 10 determines the execution of the cryptographic operation accompanied by the dummy operation (step S34). Next, the CPU 10 outputs an operation command for executing a cryptographic operation accompanied by a dummy operation to the
一方、CPU10は、暗号演算の実行回数が閾値以上でないと判定した場合(ステップS33:NO)、ダミー演算を伴わない暗号演算の実行を決定する(ステップS36)。次いで、CPU10は、ダミー演算を伴わない暗号演算を実行させる演算指令を暗号演算部15へ出力し、当該演算指令に応じて暗号演算部15により演算された結果を暗号演算部15から取得し(ステップS37)、ステップS38へ進む。
On the other hand, when the CPU 10 determines that the number of executions of the cryptographic operation is not equal to or greater than the threshold value (step S33: NO), the CPU 10 determines the execution of the cryptographic operation without the dummy operation (step S36). Next, the CPU 10 outputs an operation command for executing a cryptographic operation without a dummy operation to the
ステップS38では、CPU10は、残りの処理を行って上記コマンドに応じた処理の結果を示すレスポンスをI/O回路14を介して当該外部装置2へ送信する。
In step S38, the CPU 10 performs the remaining processing and transmits a response indicating the result of the processing according to the command to the
このように、実施例4によれば、CPU10は、暗号演算の実行履歴に基づいて、ダミー演算を伴う暗号演算の実行と、ダミー演算を伴わない暗号演算の実行とのうち何れか1つを決定するように構成したので、不正な暗号解析を防止しつつ、暗号演算を伴う処理において実行速度の低下を抑制することができる。 As described above, according to the fourth embodiment, the CPU 10 performs one of the execution of the cryptographic operation with the dummy operation and the execution of the cryptographic operation without the dummy operation based on the execution history of the cryptographic operation. Since it is configured to determine, it is possible to prevent a decrease in execution speed in a process involving a cryptographic operation while preventing an illegal cryptographic analysis.
以上説明したように、上記実施形態によれば、ICカード1は、受信されたコマンドに応じた処理中に暗号演算を実行するときに、ダミー演算の実行条件に基づいて、ダミー演算を伴う暗号演算の実行と、ダミー演算を伴わない暗号演算の実行とのうち何れか1つを決定するように構成したので、不正な暗号解析を防止しつつ、暗号演算を伴う処理において実行速度の低下を抑制することができる。また、上記実施形態によれば、挿入されるダミー演算の実行回数を増減することができるので、求められるセキュリティ性と利便性のバランスを調節することが可能となる。 As described above, according to the above embodiment, when the IC card 1 executes the encryption operation during the processing corresponding to the received command, the cipher accompanied by the dummy operation is based on the execution condition of the dummy operation. Since it is configured to determine one of the execution of the operation and the execution of the cryptographic operation without the dummy operation, the execution speed is reduced in the processing involving the cryptographic operation while preventing illegal cryptographic analysis. It can be suppressed. Further, according to the above embodiment, since the number of times of executing the inserted dummy operation can be increased or decreased, it is possible to adjust the balance between the required security and convenience.
1 ICカード
1a ICチップ
10 CPU
11 ROM
12 RAM
13 不揮発性メモリ
14 I/O回路
15 暗号演算部
1 IC card 1a IC chip 10 CPU
11 ROM
12 RAM
13 Non-volatile memory 14 I /
Claims (12)
前記コマンドに応じた処理中に暗号演算を実行するときに、前記暗号演算に対応する偽装演算の実行条件として、前記コマンドに含まれるコマンドコードにより特定されるコマンドの種別または前記コマンドに含まれるコマンドパラメータにより指定される前記暗号演算の種別に基づいて、前記偽装演算を伴う前記暗号演算の実行と、前記偽装演算を伴わない前記暗号演算の実行とのうち何れか1つを決定する決定手段を備えることを特徴とする電子情報記憶装置。 An electronic information storage device that performs processing according to a command received from an external device and sends a response indicating the result of the processing to the external device.
When executing a cryptographic operation during processing according to the command, the type of command specified by the command code included in the command or the command included in the command is used as an execution condition of the spoofing operation corresponding to the cryptographic operation. A determination means for determining one of the execution of the cryptographic operation with the spoofing operation and the execution of the cryptographic operation without the spoofing operation based on the type of the cryptographic operation specified by the parameter. An electronic information storage device characterized by being provided.
前記コマンドに応じた処理中に暗号演算を実行するときに、前記暗号演算に対応する偽装演算の実行条件として、前記暗号演算の実行履歴に基づいて、前記偽装演算を伴う前記暗号演算の実行と、前記偽装演算を伴わない前記暗号演算の実行とのうち何れか1つを決定する決定手段を備えることを特徴とする電子情報記憶装置。 An electronic information storage device that performs processing according to a command received from an external device and sends a response indicating the result of the processing to the external device.
When performing cryptographic operations in a process corresponding to the command, as an execution condition for impersonation operation corresponding to the encryption computation, on the basis of the execution history of the cryptographic computation, the execution of the cryptographic operations involving the impersonation operation An electronic information storage device comprising a determination means for determining any one of the execution of the cryptographic operation without the camouflage operation.
前記コマンドに応じた処理中に暗号演算を実行するときに、前記暗号演算に対応する偽装演算の実行条件として、前記コマンドに含まれるコマンドコードにより特定されるコマンドの種別または前記コマンドに含まれるコマンドパラメータにより指定される前記暗号演算の種別に基づいて、前記偽装演算を伴う前記暗号演算の実行と、前記偽装演算を伴わない前記暗号演算の実行とのうち何れか1つを決定する決定手段を備えることを特徴とするICカード。 An IC card that performs processing according to a command received from an external device and sends a response indicating the result of the processing to the external device.
When executing a cryptographic operation during processing according to the command, the type of command specified by the command code included in the command or the command included in the command is used as an execution condition of the spoofing operation corresponding to the cryptographic operation. A determination means for determining one of the execution of the cryptographic operation with the spoofing operation and the execution of the cryptographic operation without the spoofing operation based on the type of the cryptographic operation specified by the parameter. An IC card characterized by being provided.
前記コマンドに応じた処理中に暗号演算を実行するときに、前記暗号演算に対応する偽装演算の実行条件として、前記コマンドに含まれるコマンドコードにより特定されるコマンドの種別または前記コマンドに含まれるコマンドパラメータにより指定される前記暗号演算の種別に基づいて、前記偽装演算を伴う前記暗号演算の実行と、前記偽装演算を伴わない前記暗号演算の実行とのうち何れか1つを決定することを特徴とする演算決定方法。 It is an arithmetic determination method executed by a processor included in an electronic information storage device that performs processing according to a command received from an external device and transmits a response indicating the result of the processing to the external device.
When a cryptographic operation is executed during processing according to the command, the type of command specified by the command code included in the command or the command included in the command is used as an execution condition of the spoofing operation corresponding to the cryptographic operation. Based on the type of the cryptographic operation specified by the parameter, one of the execution of the cryptographic operation with the spoofing operation and the execution of the cryptographic operation without the spoofing operation is determined. Calculation determination method.
前記コマンドに応じた処理中に暗号演算を実行するときに、前記暗号演算に対応する偽装演算の実行条件として、前記コマンドに含まれるコマンドコードにより特定されるコマンドの種別または前記コマンドに含まれるコマンドパラメータにより指定される前記暗号演算の種別に基づいて、前記偽装演算を伴う前記暗号演算の実行と、前記偽装演算を伴わない前記暗号演算の実行とのうち何れか1つを決定するように機能させることを特徴とする演算決定プログラム。 A processor provided in an electronic information storage device that performs processing according to a command received from an external device and sends a response indicating the result of the processing to the external device.
When executing a cryptographic operation during processing according to the command, the type of command specified by the command code included in the command or the command included in the command is used as an execution condition of the spoofing operation corresponding to the cryptographic operation. A function to determine one of the execution of the cryptographic operation with the spoofing operation and the execution of the cryptographic operation without the spoofing operation based on the type of the cryptographic operation specified by the parameter. An arithmetic decision program characterized by making a command.
前記コマンドに応じた処理中に暗号演算を実行するときに、前記暗号演算に対応する偽装演算の実行条件として、前記暗号演算の実行履歴に基づいて、前記偽装演算を伴う前記暗号演算の実行と、前記偽装演算を伴わない前記暗号演算の実行とのうち何れか1つを決定する決定手段を備えることを特徴とするICカード。When executing a cryptographic operation during processing according to the command, as an execution condition of the spoofing operation corresponding to the cryptographic operation, the execution of the cryptographic operation accompanied by the spoofing operation is performed based on the execution history of the cryptographic operation. An IC card comprising a determination means for determining any one of the execution of the cryptographic operation without the camouflage operation.
前記コマンドに応じた処理中に暗号演算を実行するときに、前記暗号演算に対応する偽装演算の実行条件として、前記暗号演算の実行履歴に基づいて、前記偽装演算を伴う前記暗号演算の実行と、前記偽装演算を伴わない前記暗号演算の実行とのうち何れか1つを決定することを特徴とする演算決定方法。When executing a cryptographic operation during processing according to the command, as an execution condition of the spoofing operation corresponding to the cryptographic operation, the execution of the cryptographic operation accompanied by the spoofing operation is performed based on the execution history of the cryptographic operation. , An operation determination method comprising determining any one of the execution of the cryptographic operation without the camouflage operation.
前記コマンドに応じた処理中に暗号演算を実行するときに、前記暗号演算に対応する偽装演算の実行条件として、前記暗号演算の実行履歴に基づいて、前記偽装演算を伴う前記暗号演算の実行と、前記偽装演算を伴わない前記暗号演算の実行とのうち何れか1つを決定するように機能させることを特徴とする演算決定プログラム。When executing a cryptographic operation during processing according to the command, as an execution condition of the spoofing operation corresponding to the cryptographic operation, the execution of the cryptographic operation accompanied by the spoofing operation is performed based on the execution history of the cryptographic operation. , An arithmetic determination program characterized in that it functions to determine any one of the execution of the cryptographic operation without the camouflage operation.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017052390A JP6950861B2 (en) | 2017-03-17 | 2017-03-17 | Electronic information storage device, IC card, calculation decision method, and calculation decision program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017052390A JP6950861B2 (en) | 2017-03-17 | 2017-03-17 | Electronic information storage device, IC card, calculation decision method, and calculation decision program |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2018157367A JP2018157367A (en) | 2018-10-04 |
| JP6950861B2 true JP6950861B2 (en) | 2021-10-13 |
Family
ID=63716791
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2017052390A Active JP6950861B2 (en) | 2017-03-17 | 2017-03-17 | Electronic information storage device, IC card, calculation decision method, and calculation decision program |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP6950861B2 (en) |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4634788B2 (en) * | 2004-12-17 | 2011-02-16 | 株式会社東芝 | Cryptographic operation circuit, information processing apparatus and IC card having the cryptographic operation circuit |
| JP2013126078A (en) * | 2011-12-14 | 2013-06-24 | Renesas Electronics Corp | Encryption processing apparatus, encryption processing method, and program |
| JP2013157761A (en) * | 2012-01-30 | 2013-08-15 | Renesas Electronics Corp | Semiconductor device and arithmetic processing method |
| JP2016085520A (en) * | 2014-10-23 | 2016-05-19 | 株式会社東芝 | Portable electronic device |
-
2017
- 2017-03-17 JP JP2017052390A patent/JP6950861B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| JP2018157367A (en) | 2018-10-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12327244B2 (en) | Payment system | |
| US11847640B2 (en) | Payment system for authorizing a transaction between a user device and a terminal | |
| CN100535822C (en) | Method for detecting and reacting against possible attack to security enforcing operation performed by a cryptographic token or card | |
| US11018847B2 (en) | Device keys protection | |
| US7194633B2 (en) | Device and method with reduced information leakage | |
| TWI524275B (en) | Storage device and method of operating a storage device | |
| RU2579990C2 (en) | Protection from passive sniffing | |
| KR102519828B1 (en) | Circuit chip and its operating method | |
| JP6950861B2 (en) | Electronic information storage device, IC card, calculation decision method, and calculation decision program | |
| Malina et al. | Assessment of cryptography support and security on programmable smart cards | |
| JP7811268B2 (en) | Asynchronous code execution for improved performance and security measures to protect digital security devices | |
| JP2025024582A (en) | ELECTRONIC INFORMATION STORAGE MEDIUM, IC CHIP, SIGNATURE VERIFICATION PROCESSING METHOD, AND PROGRAM | |
| JP6800732B2 (en) | Processing system and terminal | |
| KR20100137354A (en) | Virtualized smart card system, method for providing the virtualized smart card system, and data processing device | |
| Card | FIPS 140-2 Security Policy for HiCOS Combi PKI Native Smart Card Cryptographic Module | |
| Cryptographic | FIPS 140-2 Security Policy for HiCOS PKI Native Smart Card Cryptographic Module | |
| IDPrime | FIPS 140-2 Cryptographic Module Security Policy Level 3 | |
| Cyberflex | RSA Applets on the Schlumberger Cyberflex Access 64K Platform | |
| HK1178335B (en) | Security architecture for using host memory in the design of a secure element | |
| HK1178335A1 (en) | Security architecture for using host memory in the design of a secure element |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200129 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20201209 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210126 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210322 |
|
| 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: 20210825 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210907 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6950861 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |