JP6516097B2 - Arithmetic device, IC card, arithmetic method, and arithmetic processing program - Google Patents

Arithmetic device, IC card, arithmetic method, and arithmetic processing program Download PDF

Info

Publication number
JP6516097B2
JP6516097B2 JP2015118397A JP2015118397A JP6516097B2 JP 6516097 B2 JP6516097 B2 JP 6516097B2 JP 2015118397 A JP2015118397 A JP 2015118397A JP 2015118397 A JP2015118397 A JP 2015118397A JP 6516097 B2 JP6516097 B2 JP 6516097B2
Authority
JP
Japan
Prior art keywords
clock signal
command
processing
synchronization
arithmetic
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
Application number
JP2015118397A
Other languages
Japanese (ja)
Other versions
JP2017004304A (en
Inventor
山田 真生
真生 山田
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 JP2015118397A priority Critical patent/JP6516097B2/en
Publication of JP2017004304A publication Critical patent/JP2017004304A/en
Application granted granted Critical
Publication of JP6516097B2 publication Critical patent/JP6516097B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、複数のコアを備え、並列処理を行うことが可能な演算装置の技術分野に関する。   The present invention relates to the technical field of an arithmetic device that includes multiple cores and can perform parallel processing.

故障すると安全性を損なう可能性のある制御装置等では、サブコア等の監視部によってメインコアを監視し、メインコアの異常を検出して制御装置の安全な動作を保証する策が講じられてきた。その一例として、特許文献1に開示されるように、ロックステップと称される技術が普及している。ロックステップとは、複数のコアが同じ処理を並列的に実行し、実行結果を比較して各コアが正常に動作していることを判断する技術である。ロックステップが故障の検出を目的とする一方で、例えば、特許文献2に開示されるように、暗号技術を用いて対向機器を認証することにより、安全な動作を保証する技術が知られている。   For control devices that may lose safety if they fail, measures have been taken to monitor the main core by a monitoring unit such as a sub core and detect an abnormality in the main core to guarantee the safe operation of the control device. . As one example, as disclosed in Patent Document 1, a technique called lock step is in widespread use. The lock step is a technology in which a plurality of cores execute the same processing in parallel and compare the execution results to determine that each core is operating normally. For example, as disclosed in Patent Document 2, there is known a technology that guarantees safe operation by authenticating an opposite device using encryption technology while lock step aims to detect a failure. .

特開2010−128627号公報JP, 2010-128627, A 特開2013−138304号公報JP, 2013-138304, A

しかしながら、認証用デバイスとして知られているスマートカードやTPM(Trusted Platform Module)等の分野においては、サイドチャネル攻撃が知られている。サイドチャネル攻撃とは、古くから暗号演算用制御装置において存在する脅威であり、演算時に消費される電力や発生する電磁波に代表される副次的な情報(サイドチャネル情報)を利用して演算内容を推定する攻撃手法である。例えば、複数のコアを備え、並列処理を行うことが可能なICカードにおいて、当該複数のコアが同一の処理を同時に実行する場合、消費電力や電磁波が増長されてサイドチャネル攻撃の標的になりやすくなってしまうことが問題となる。   However, side channel attacks are known in fields such as smart cards and TPMs (Trusted Platform Module) known as authentication devices. Side channel attack is a threat that has existed for a long time in the controller for cryptographic computation, and the content of computation using power consumed during computation and secondary information (side channel information) represented by generated electromagnetic waves Attack method to estimate For example, in an IC card provided with a plurality of cores and capable of performing parallel processing, when the plurality of cores simultaneously execute the same processing, power consumption and electromagnetic waves are increased and are likely to be targets for side channel attacks. Becoming a problem.

そこで、本発明は、上記問題等に鑑みてなされたものであり、複数のコアが同一の処理を実行してもサイドチャネル情報が増長されず、高い耐タンパ性を実現することが可能な演算装置、ICカード、演算方法、及び演算処理プログラムを提供することを目的とする。   Therefore, the present invention has been made in view of the above problems and the like, and side channel information is not increased even if a plurality of cores execute the same processing, and it is possible to realize high tamper resistance. An object is to provide a device, an IC card, an arithmetic method, and an arithmetic processing program.

上記課題を解決するために、請求項1に記載の発明は、外部端末から受信されたコマンドに応じて同一の処理を並列して実行する第1の演算ユニット及び第2の演算ユニットを備える演算装置であって、クロック信号生成手段により生成されたクロック信号を所定時間遅延させるクロック信号遅延手段を備え、前記第1の演算ユニットは、前記クロック信号生成手段により生成されたクロック信号を入力し、当該クロック信号に同期して前記処理を行い、前記第2の演算ユニットは、前記コマンドがセキュリティ処理を要求するコマンドである場合、前記クロック信号遅延手段により所定時間遅延したクロック信号を入力し、当該クロック信号に同期して前記セキュリティ処理を行い、前記コマンドがセキュリティ処理を要求するコマンドでない場合、前記クロック信号生成手段により生成されたクロック信号を入力し、当該クロック信号に同期して前記セキュリティ処理以外の処理を行うことを特徴とする。 In order to solve the above problem, the invention according to claim 1 is an operation including a first operation unit and a second operation unit that execute the same process in parallel according to a command received from an external terminal. The apparatus includes clock signal delay means for delaying the clock signal generated by the clock signal generation means for a predetermined time, and the first operation unit receives the clock signal generated by the clock signal generation means. The processing is performed in synchronization with the clock signal, and the second arithmetic unit inputs a clock signal delayed by a predetermined time by the clock signal delay unit when the command is a command requesting security processing , There line said security processing in synchronization with a clock signal, a command which said command requests a security process There case, input the clock signal generated by said clock signal generating means, characterized in that in synchronization with the clock signal performs processing other than the security processing.

請求項2に記載の発明は、請求項1に記載の演算装置において、前記クロック信号遅延手段は、前記クロック信号を、前記所定時間として半周期遅延させることを特徴とする。   The invention according to claim 2 is characterized in that, in the arithmetic device according to claim 1, the clock signal delaying unit delays the clock signal by a half cycle as the predetermined time.

請求項に記載の発明は、外部端末から受信されたコマンドに応じて同一の処理を並列して実行する第1の演算ユニット及び第2の演算ユニットを備えるICカードであって、クロック信号生成手段により生成されたクロック信号を所定時間遅延させるクロック信号遅延手段を備え、前記第1の演算ユニットは、前記クロック信号生成手段により生成されたクロック信号を入力し、当該クロック信号に同期して前記処理を行い、前記第2の演算ユニットは、前記コマンドがセキュリティ処理を要求するコマンドである場合、前記クロック信号遅延手段により所定時間遅延したクロック信号を入力し、当該クロック信号に同期して前記セキュリティ処理を行い、前記コマンドがセキュリティ処理を要求するコマンドでない場合、前記クロック信号生成手段により生成されたクロック信号を入力し、当該クロック信号に同期して前記セキュリティ処理以外の処理を行うことを特徴とする。 The invention according to claim 3 is an IC card including a first operation unit and a second operation unit that execute the same process in parallel according to a command received from an external terminal , wherein the clock signal is generated. A clock signal delay unit for delaying the clock signal generated by the unit for a predetermined time, and the first arithmetic unit receives the clock signal generated by the clock signal generation unit, and synchronizes with the clock signal. When the processing is performed and the command is a command requiring security processing , the second arithmetic unit receives a clock signal delayed by a predetermined time by the clock signal delay unit, and synchronizes the security signal in synchronization with the clock signal. There line processing, if the command is not a command for requesting the security process, said clock signal Receives a clock signal generated by the generating means and processing the rows Ukoto other than the security processing in synchronization with the clock signal.

請求項に記載の発明は、外部端末から受信されたコマンドに応じて同一の処理を並列して実行する第1の演算ユニット及び第2の演算ユニットを備える演算装置における演算方法であって、クロック信号生成手段により生成されたクロック信号を所定時間遅延させるクロック信号遅延ステップを含み、前記第1の演算ユニットは、前記クロック信号生成手段により生成されたクロック信号を入力し、当該クロック信号に同期して前記処理を行い、前記第2の演算ユニットは、前記コマンドがセキュリティ処理を要求するコマンドである場合、前記クロック信号遅延ステップにより所定時間遅延したクロック信号を入力し、当該クロック信号に同期して前記セキュリティ処理を行い、前記コマンドがセキュリティ処理を要求するコマンドでない場合、前記クロック信号生成手段により生成されたクロック信号を入力し、当該クロック信号に同期して前記セキュリティ処理以外の処理を行うことを特徴とする。 The invention according to claim 4 is an arithmetic method in an arithmetic device provided with a first arithmetic unit and a second arithmetic unit which execute the same process in parallel according to a command received from an external terminal , The clock signal delaying step for delaying the clock signal generated by the clock signal generation means for a predetermined time is included, and the first arithmetic unit receives the clock signal generated by the clock signal generation means and is synchronized with the clock signal. And the second operation unit inputs a clock signal delayed for a predetermined time by the clock signal delay step when the command is a command requesting security processing, and synchronizes with the clock signal. There line said security processing Te, ne command said command requests the security process When the input the clock signal the clock signal generated by the generating means, in synchronism with the clock signal and wherein the processing line Ukoto other than the security processing.

請求項に記載の発明は、外部端末から受信されたコマンドに応じて同一の処理を並列して実行する第1の演算ユニット及び第2の演算ユニットを備えるコンピュータに、クロック信号生成手段により生成されたクロック信号を所定時間遅延させるクロック信号遅延ステップを実行させ、前記第1の演算ユニットは、前記クロック信号生成手段により生成されたクロック信号を入力し、当該クロック信号に同期して前記処理を行い、前記第2の演算ユニットは、前記コマンドがセキュリティ処理を要求するコマンドである場合、前記クロック信号遅延ステップにより所定時間遅延したクロック信号を入力し、当該クロック信号に同期して前記セキュリティ処理を行い、前記コマンドがセキュリティ処理を要求するコマンドでない場合、前記クロック信号生成手段により生成されたクロック信号を入力し、当該クロック信号に同期して前記セキュリティ処理以外の処理を行うことを特徴とする。 The invention according to claim 5 is a computer having a first arithmetic unit and a second arithmetic unit that executes the same process in parallel according to a command received from an external terminal , generated by clock signal generation means. Performing a clock signal delay step of delaying the clock signal for a predetermined time, and the first arithmetic unit inputs the clock signal generated by the clock signal generation unit, and performs the processing in synchronization with the clock signal. performed, the second operation unit, when the command is a command for requesting the security process receives a clock signal delayed a predetermined time by the clock signal delaying step, the security processing in synchronization with the clock signal There line, if the command is not a command for requesting the security process, the click Tsu receives a clock signal generated by the click signal generating means, in synchronism with the clock signal and said row Ukoto processing other than the security processing.

本発明によれば、複数のコアが同一の処理を実行してもサイドチャネル情報が増長されず、高い耐タンパ性を実現することができる。   According to the present invention, even when a plurality of cores execute the same processing, side channel information is not increased, and high tamper resistance can be realized.

ICチップCの概要構成例を示す図である。FIG. 6 is a diagram showing an example of a schematic configuration of an IC chip C. コア1及びコア2が同じクロック信号に同期して同一の処理を行ったときの消費電力の一例を示す図である。It is a figure which shows an example of power consumption when the core 1 and the core 2 perform the same process synchronizing with the same clock signal. コア1がクロック信号に同期して認証処理を行うと共に、コア2が当該クロック信号から半周期遅延したクロック信号に同期して同一の認証処理を行ったときの消費電力の一例を示す図である。FIG. 7 is a diagram showing an example of power consumption when core 1 performs authentication processing in synchronization with a clock signal and core 2 performs the same authentication processing in synchronization with a clock signal delayed by a half cycle from the clock signal. .

以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、ICチップに対して本発明を適用した場合の実施の形態である。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. The embodiment described below is an embodiment in the case where the present invention is applied to an IC chip.

先ず、図1を参照して、本実施形態に係るICチップの概要構成について説明する。図1は、ICチップCの概要構成例を示す図である。ICチップCは、本発明の演算装置の一例である。なお、ICチップCは、キャッシュカード、クレジットカード、電子マネーカード、社員カード等に搭載されて使用される。或いは、ICチップCは、スマートフォンや携帯電話機等の通信機器に組み込まれる。ICチップCは、通信機器の回路基板上に直接組み込んで構成するようにしてもよい。   First, with reference to FIG. 1, a schematic configuration of an IC chip according to the present embodiment will be described. FIG. 1 is a view showing a schematic configuration example of an IC chip C. As shown in FIG. The IC chip C is an example of the arithmetic device of the present invention. The IC chip C is mounted on a cash card, a credit card, an electronic money card, an employee card or the like and used. Alternatively, the IC chip C is incorporated in a communication device such as a smartphone or a mobile phone. The IC chip C may be built directly on the circuit board of the communication device.

ICチップCは、図1に示すように、コア1、コア2、クロック生成回路3、クロック切替回路4、切替制御レジスタ5、RAM(Random Access Memory)6、フラッシュメモリ7、ROM(Read Only Memory)8、及びI/O回路9を備えて構成される。コア1は、第1の演算ユニットの一例である。コア2は、第2の演算ユニットの一例である。コア1とコア2とは並列処理が可能に構成されている。コア1、コア2、切替制御レジスタ5、RAM6、フラッシュメモリ7、ROM8、及びI/O回路9は、バス10に接続されている。バス10は、アドレスバスとデータバスを備える。なお、クロック生成回路3はICチップCに備えられなくともよい。この場合、ICチップCは、外部端末に備えられたクロック生成回路からI/O回路9を介してクロック信号を入力する。   As shown in FIG. 1, the IC chip C includes a core 1, a core 2, a clock generation circuit 3, a clock switching circuit 4, a switching control register 5, a random access memory (RAM) 6, a flash memory 7, and a read only memory (ROM). And 8) and an I / O circuit 9. The core 1 is an example of a first arithmetic unit. The core 2 is an example of a second arithmetic unit. The cores 1 and 2 are configured to be capable of parallel processing. The core 1, the core 2, the switching control register 5, the RAM 6, the flash memory 7, the ROM 8, and the I / O circuit 9 are connected to the bus 10. The bus 10 comprises an address bus and a data bus. The clock generation circuit 3 may not be provided in the IC chip C. In this case, the IC chip C receives a clock signal from the clock generation circuit provided in the external terminal via the I / O circuit 9.

コア1,2は、夫々、演算器、内部メモリ、プログラムカウンタ、及び割込みコントローラ等を備え、同一の処理を並列して実行する。演算器は、それぞれ、命令レジスタ及びデコーダを備える。内部メモリは、それぞれ、データレジスタを備える。プログラムカウンタは、次に実行されるべき命令コードが記憶されているフラッシュメモリ7またはROM8上のアドレス(番地)を保持する。割込みコントローラは、コア1とコア2とがバス10を介さずに互いに割込み指令を与えるためのものである。   The cores 1 and 2 respectively include an arithmetic unit, an internal memory, a program counter, an interrupt controller, and the like, and execute the same processing in parallel. The computing units each include an instruction register and a decoder. Each internal memory comprises a data register. The program counter holds an address on the flash memory 7 or the ROM 8 in which an instruction code to be executed next is stored. The interrupt controller is for the core 1 and the core 2 to give an interrupt command to each other without passing through the bus 10.

クロック生成回路3は、可変周波数発生回路(PLL(Phase Locked Loop))等を備える。クロック生成回路3は、クロック信号生成手段の一例である。クロック生成回路3は、例えば、外部端末からI/O回路9を介して入力されたクロックCLK、またはICチップCが備える内部発振器(図示せず)から入力されたクロックCLKから可変周波数発生回路により、コア1、コア2、切替制御レジスタ5、RAM6、フラッシュメモリ7、ROM8、及びI/O回路9用のクロック信号を生成する。例えば、クロック生成回路3は、入力されたクロックCLKに基づいて、クロック周波数が60MHzのクロック信号(システムクロック)を生成し、生成したクロック信号をコア1及びクロック切替回路4へ出力する。また、クロック生成回路3は、入力されたクロックCLKを、切替制御レジスタ5、RAM6、フラッシュメモリ7、ROM8、及びI/O回路9へ出力する。   The clock generation circuit 3 includes a variable frequency generation circuit (PLL (Phase Locked Loop)) or the like. The clock generation circuit 3 is an example of a clock signal generation unit. The clock generation circuit 3 is, for example, a variable frequency generation circuit from a clock CLK input from an external terminal through the I / O circuit 9 or a clock CLK input from an internal oscillator (not shown) provided in the IC chip C. , And generates clock signals for the core 1, core 2, switch control register 5, RAM 6, flash memory 7, ROM 8 and I / O circuit 9. For example, the clock generation circuit 3 generates a clock signal (system clock) having a clock frequency of 60 MHz based on the input clock CLK, and outputs the generated clock signal to the core 1 and the clock switching circuit 4. The clock generation circuit 3 also outputs the input clock CLK to the switching control register 5, the RAM 6, the flash memory 7, the ROM 8, and the I / O circuit 9.

クロック切替回路4は、インバータ(論理反転回路)、及びセレクタ等を備える。インバータは、クロック信号遅延手段の一例である。インバータは、クロック生成回路3から入力されたクロック信号を半周期遅延(例えば、クロック周波数が60MHzである場合、1クロック(1周期)に相当する時間(17ns)の“1/2”の時間遅延)させる。言い換えれば、インバータは、入力されたクロック信号の論理レベル(ハイレベルとローレベル)を反転させる。セレクタは、切替制御レジスタ5から出力された信号の論理レベルに応じて、クロック生成回路3から入力されたクロック信号と、インバータにより半周期遅延されたクロック信号との何れか一方のクロック信号を選択可能になっている。例えば、ハイレベルの信号が入力された場合、インバータにより半周期遅延されたクロック信号が選択される。これにより選択されたクロック信号がコア2へ出力される。図1の例では、インバータにより半周期遅延されたクロック信号が出力された例を示している。これにより、コア2へ入力されるクロック信号は、コア1へ入力されるクロック信号よりも半周期遅延(言い換えれば、クロック信号の論理レベルが反転)することになる。   The clock switching circuit 4 includes an inverter (logic inversion circuit), a selector, and the like. The inverter is an example of clock signal delay means. The inverter has a half cycle delay of the clock signal input from the clock generation circuit 3 (for example, when the clock frequency is 60 MHz, a delay of 1/2 of the time (17 ns) corresponding to one clock (one cycle) ). In other words, the inverter inverts the logic level (high level and low level) of the input clock signal. The selector selects one of the clock signal input from the clock generation circuit 3 and the clock signal delayed by a half cycle by the inverter according to the logic level of the signal output from the switching control register 5 It is possible. For example, when a high level signal is input, a clock signal delayed by a half cycle is selected by the inverter. The clock signal thus selected is output to the core 2. The example of FIG. 1 shows an example in which a clock signal delayed by a half cycle by an inverter is output. As a result, the clock signal input to the core 2 is delayed by a half cycle (in other words, the logic level of the clock signal is inverted) than the clock signal input to the core 1.

切替制御レジスタ5は、例えば8ビットのレジスタであり、特定のビット(例えば最上位ビット)の2値状態(0または1)に応じた論理レベルの信号をクロック切替回路4のセレクタへ出力する。例えば、上記特定ビットは、初期状態では“0”が保持されているが、所定の条件下で、インバータの使用状態を表す「1」へ設定変更される。   The switching control register 5 is, for example, an 8-bit register, and outputs a signal of a logic level according to the binary state (0 or 1) of a specific bit (for example, the most significant bit) to the selector of the clock switching circuit 4. For example, although the above-mentioned specific bit is initially maintained at "0", under a predetermined condition, it is changed to "1" representing the use state of the inverter.

RAM6は、ワークメモリであり、コア1及びコア2による処理結果が一時的に記憶される。フラッシュメモリ7は、不揮発性メモリであり、コア1及びコア2に実行させるOS及びアプリケーション等のプログラムを記憶する。また、フラッシュメモリ7には、セキュアな記憶領域が設けられており、この記憶領域には、暗号鍵(秘密鍵と公開鍵の組であってもよい)が記憶されている。なお、フラッシュメモリ7の代わりに、「Electrically Erasable Programmable Read-Only Memory」を適用しても構わない。また、ROM8には、フラッシュメモリ7に記憶されるプログラムの一部が記憶される。   The RAM 6 is a work memory, and temporarily stores processing results of the cores 1 and 2. The flash memory 7 is a non-volatile memory, and stores programs such as an OS and an application to be executed by the core 1 and the core 2. Further, the flash memory 7 is provided with a secure storage area, in which an encryption key (which may be a combination of a secret key and a public key) is stored. Note that instead of the flash memory 7, "Electrically Erasable Programmable Read-Only Memory" may be applied. The ROM 8 also stores part of the program stored in the flash memory 7.

I/O回路9は、外部端末とのインターフェイスを担う。接触式のICチップCの場合、I/O回路9には、例えば、C1〜C8の8個の端子が備えられている。例えば、C1端子は電源端子、C2端子はリセット端子、C3端子はクロック端子、C5端子はグランド端子、C7端子は外部端末との間で通信を行うための端子である。一方、非接触式のICチップCの場合、I/O回路9には、例えば、アンテナ、及び変復調回路が備えられている。なお、外部端末の例としては、ICカード発行機、ATM、改札機、認証用ゲート等が挙げられる。或いは、ICカード1が通信機器に組み込まれる場合、外部端末には通信機器の機能を担う制御部が該当する。   The I / O circuit 9 takes on an interface with an external terminal. In the case of the contact type IC chip C, the I / O circuit 9 is provided with, for example, eight terminals C1 to C8. For example, terminal C1 is a power supply terminal, terminal C2 is a reset terminal, terminal C3 is a clock terminal, terminal C5 is a ground terminal, and terminal C7 is a terminal for communication with an external terminal. On the other hand, in the case of the non-contact type IC chip C, the I / O circuit 9 is provided with, for example, an antenna and a modulation / demodulation circuit. In addition, as an example of an external terminal, an IC card issuing machine, an ATM, a ticket gate, an authentication gate, etc. may be mentioned. Alternatively, when the IC card 1 is incorporated into a communication device, the external terminal corresponds to a control unit that takes on the function of the communication device.

以上の構成において、コア1は、クロック生成回路3により生成されたクロック信号を入力し、当該クロック信号に同期して処理を行う。一方、コア2は、クロック生成回路3により生成されたクロック信号、またはクロック生成回路3により生成され切替制御レジスタ5のインバータにより半周期遅延したクロック信号を入力し、当該クロック信号に同期してコア1と同一の処理を行う。このような処理は、例えば外部端末からのコマンドが受信された場合に、以下の(1)〜(4)の流れで繰り返し行われる。   In the above configuration, the core 1 receives the clock signal generated by the clock generation circuit 3 and performs processing in synchronization with the clock signal. On the other hand, the core 2 receives the clock signal generated by the clock generation circuit 3 or a clock signal generated by the clock generation circuit 3 and delayed by a half cycle by the inverter of the switching control register 5, and synchronizes with the clock signal. Perform the same process as step 1. Such processing is repeatedly performed in the following flow (1) to (4), for example, when a command from an external terminal is received.

(1)プログラムカウンタが指し示すアドレスに記憶されている命令コードが、フラッシュメモリ7から命令レジスタにフェッチされる(命令読出)。 (1) The instruction code stored at the address pointed to by the program counter is fetched from the flash memory 7 into the instruction register (instruction read).

(2)フェッチされた命令コードがデコーダによって解釈(デコード)される(命令解釈)。なお、命令コードは、アプリケーションまたはOSに記述されている。例えば、複数のアプリケーションから使用される暗号用命令コードなどは、OSに記述されている。 (2) The fetched instruction code is interpreted (decoded) by the decoder (instruction interpretation). The instruction code is described in the application or the OS. For example, an instruction code for encryption used by a plurality of applications is described in the OS.

(3)解釈された命令が実行される(命令実行)。なお、命令実行により、例えば、通常の算術演算、論理演算、暗号化演算、復号演算等が行われる。 (3) The interpreted instruction is executed (instruction execution). Note that, for example, normal arithmetic operation, logical operation, encryption operation, decryption operation, and the like are performed by instruction execution.

(4)演算結果がRAM6に書き込まれる(書き込み)。書き込み後、プログラムカウンタの値が進められ、次の命令コードがフェッチされることになる。 (4) The operation result is written to the RAM 6 (writing). After writing, the value of the program counter is advanced to fetch the next instruction code.

例えば、外部端末から受信されたコマンドが、暗号化演算または復号演算等を伴う認証処理(セキュリティ処理の一例)を要求するコマンド(認証コマンド)でない場合、コア1は、切替制御レジスタ5の特定ビットの設定変更を行うことなく(初期状態を表す“0”)、コア2へ認証処理の要求を行う。この場合、コア1及びコア2へは、クロック生成回路3により生成された同一のクロック信号が入力される。こうして、コア1及びコア2は、クロック生成回路3により生成されたクロック信号を入力し、当該クロック信号に同期して同一の処理を行う。なお、例えば認証処理であることが判定される際に、アプリケーションのレベルで判定される場合もあれば(認証コマンドを受信した場合など)、OSのレベルで判定される場合もある(暗号化演算実行時など)。   For example, when the command received from the external terminal is not a command (authentication command) for requesting an authentication process (an example of a security process) including an encryption operation or a decryption operation, the core 1 is a specific bit of the switching control register 5 The core 2 is requested to perform an authentication process without changing the setting of ("0" representing the initial state). In this case, the same clock signal generated by the clock generation circuit 3 is input to the cores 1 and 2. Thus, the cores 1 and 2 receive the clock signal generated by the clock generation circuit 3 and perform the same processing in synchronization with the clock signal. For example, when it is determined that authentication processing is performed, if it is determined at the application level (for example, when an authentication command is received), it may be determined at the OS level (encryption operation) At runtime etc).

一方、外部端末から受信されたコマンドが、暗号化演算または復号演算等を伴う認証処理(セキュリティ処理の一例)を要求するコマンドである場合、コア1は、切替制御レジスタ5の特定ビットを、初期状態を表す“0”から、インバータの使用状態を表す“1”へ設定変更する。これにより、クロック切替回路4のセレクタは、切替制御レジスタ5から出力された信号の論理レベル(例えば、ハイレベル)に応じて、インバータにより半周期遅延されたクロック信号を選択するように切り替える。そして、コア1は、コア2へ認証処理の要求を行う。この場合、コア1へは、クロック生成回路3により生成されたクロック信号が入力される一方、コア2へは、当該クロック信号から半周期遅延されたクロック信号が入力される。   On the other hand, when the command received from the external terminal is a command for requesting an authentication process (an example of a security process) involving an encryption operation or a decryption operation, the core 1 initially sets a specific bit of the switching control register 5 The setting is changed from “0” representing the state to “1” representing the usage state of the inverter. Thereby, the selector of the clock switching circuit 4 switches so as to select a clock signal delayed by a half cycle by the inverter according to the logic level (for example, high level) of the signal output from the switching control register 5. Then, the core 1 requests the core 2 to perform an authentication process. In this case, while the clock signal generated by the clock generation circuit 3 is input to the core 1, a clock signal delayed by a half cycle from the clock signal is input to the core 2.

こうして、コア1は、クロック生成回路3により生成されたクロック信号を入力し、当該クロック信号に同期して処理を行う一方、コア2は、クロック生成回路3により生成され切替制御レジスタ5のインバータにより半周期遅延したクロック信号を入力し、当該クロック信号に同期してコア1と同一の処理を行う。   Thus, while the core 1 receives the clock signal generated by the clock generation circuit 3 and performs processing in synchronization with the clock signal, the core 2 is generated by the clock generation circuit 3 and the inverter of the switching control register 5 A clock signal delayed by a half cycle is input, and the same processing as that of the core 1 is performed in synchronization with the clock signal.

図2は、コア1及びコア2が同じクロック信号に同期して同一の処理を行ったときの消費電力の一例を示す図である。図2の場合、命令実行時に消費電力が最も高くなっており、コア1の命令実行とコア2の命令実行とが同じタイミングであることから、合計消費電力が2倍に増長されている。一方、図3は、コア1がクロック信号に同期して認証処理を行うと共に、コア2が当該クロック信号から半周期遅延したクロック信号に同期して同一の認証処理を行ったときの消費電力の一例を示す図である。図3の場合、コア1の命令実行とコア2の命令実行とが半周期ずれていることから、図2の場合に比べ、合計消費電力が平坦化されている。   FIG. 2 is a diagram showing an example of power consumption when the core 1 and the core 2 perform the same processing in synchronization with the same clock signal. In the case of FIG. 2, the power consumption is the highest at the time of instruction execution, and since the instruction execution of the core 1 and the instruction execution of the core 2 are at the same timing, the total power consumption is doubled. On the other hand, in FIG. 3, the core 1 performs authentication processing in synchronization with a clock signal, and the core 2 performs the same authentication processing in synchronization with a clock signal delayed by a half cycle from the clock signal. It is a figure which shows an example. In the case of FIG. 3, since the instruction execution of the core 1 and the instruction execution of the core 2 are shifted by a half cycle, the total power consumption is flattened as compared with the case of FIG.

以上説明したように、上記実施形態によれば、ICチップCは、クロック生成回路3により生成されたクロック信号を半周期遅延させるインバータを備え、コア1は、クロック生成回路3により生成されたクロック信号を入力し、当該クロック信号に同期して処理を行い、コア2は、クロック生成回路3により半周期遅延したクロック信号を入力し、当該クロック信号に同期してコア1と同一の処理を行うように構成したので、コア1及びコア2が同一の処理を実行してもサイドチャネル情報が増長されず、高い耐タンパ性を実現することができる。また、コア2は、認証処理等のセキュリティ処理以外の処理を行う場合、コア1と同じクロック信号を入力し、当該クロック信号に同期して当該処理を行うように構成したので、クロック信号の遅延による処理時間の遅延を最低限に抑えることができる。   As described above, according to the above embodiment, the IC chip C includes an inverter that delays the clock signal generated by the clock generation circuit 3 by a half cycle, and the core 1 generates the clock generated by the clock generation circuit 3 A signal is input and processing is performed in synchronization with the clock signal. The core 2 receives a clock signal delayed by a half cycle by the clock generation circuit 3 and performs the same processing as the core 1 in synchronization with the clock signal. With such a configuration, even if the cores 1 and 2 execute the same processing, the side channel information is not increased, and high tamper resistance can be realized. When the core 2 performs processing other than security processing such as authentication processing, the same clock signal as that of the core 1 is input, and the processing is performed in synchronization with the clock signal, so the delay of the clock signal is delayed. It is possible to minimize the processing time delay due to

なお、上記実施形態においては、クロック信号遅延手段としてインバータを適用した場合を説明したが、クロック信号の立ち上がりエッジと立ち下がりエッジとを検出するクロック検知回路を用いてクロック信号を半周期遅延させるように構成してもよい。この場合、ICチップCには、クロック切替回路4に代えてクロック検知回路が備えられ、当該クロック検知回路は、コア1とコア2のそれぞれに接続される。ここで、コア1とコア2の共通のクロック検知回路が備えられてもよいし、コア1とコア2と別々のクロック検知回路が備えられてもよい。そして、コア1に接続されるクロック検知回路はクロック信号の立ち上がりエッジを検出してクロックの開始位置とし、コア2に接続されるクロック検知回路はクロック信号の立ち下がりエッジを検出してクロックの開始位置とする。これにより、コア2は、コア1に入力されるクロック信号に対して半周期遅延したクロック信号を入力し、当該クロック信号に同期して前記処理を行うことができる。また、上記実施形態においては、クロック信号遅延手段としてインバータを例にとり、入力されたクロック信号を半周期(0.5周期)遅延(所定時間遅延の一例)させるように構成した。この場合、処理速度と、本発明の効果(サイドチャネル情報が増長されない)との兼ね合いから好適であるが、半周期遅延させることに代えて、クロック信号遅延手段は、入力されたクロック信号を1.5周期または2周期(或いは0.5周期、1.5周期、及び2周期以外の時間)遅延させるように構成してもよく、この構成であっても本発明の効果を発揮することができる。また、上記実施形態においては、2つのコアを備えたICチップを例にとって説明したが、3つ以上のコアを備えるマルチコアプロセッサに対しても本発明は適用可能である。   In the above embodiment, although the case where the inverter is applied as the clock signal delay means has been described, the clock signal is delayed by a half cycle using a clock detection circuit that detects the rising edge and the falling edge of the clock signal. You may configure it. In this case, the IC chip C is provided with a clock detection circuit instead of the clock switching circuit 4, and the clock detection circuit is connected to each of the core 1 and the core 2. Here, a common clock detection circuit of the core 1 and the core 2 may be provided, or clock detection circuits separate from the core 1 and the core 2 may be provided. The clock detection circuit connected to the core 1 detects the rising edge of the clock signal and sets it as the start position of the clock, and the clock detection circuit connected to the core 2 detects the falling edge of the clock signal and starts the clock Position. Thus, the core 2 can input a clock signal delayed by a half cycle with respect to the clock signal input to the core 1 and perform the processing in synchronization with the clock signal. In the above embodiment, an inverter is taken as an example of the clock signal delay means, and the input clock signal is delayed by a half cycle (0.5 cycle) (an example of a predetermined time delay). In this case, although it is preferable from the balance between the processing speed and the effect of the present invention (side channel information is not increased), the clock signal delaying means changes the input clock signal by 1 instead of delaying by a half cycle. . 5 cycles or 2 cycles (or 0.5 cycles, 1.5 cycles, and times other than 2 cycles) may be configured to be delayed, and even with this configuration, the effects of the present invention can be exhibited. it can. Further, in the above embodiment, an IC chip having two cores has been described as an example, but the present invention is also applicable to a multi-core processor having three or more cores.

1,2 コア
3 クロック生成回路
4 クロック切替回路
5 切替制御レジスタ
6 RAM
7 フラッシュメモリ
8 ROM
9 I/O回路
10 バス
C ICチップ
1, 2 Core 3 clock generation circuit 4 clock switching circuit 5 switching control register 6 RAM
7 Flash memory 8 ROM
9 I / O circuit 10 bus C IC chip

Claims (5)

外部端末から受信されたコマンドに応じて同一の処理を並列して実行する第1の演算ユニット及び第2の演算ユニットを備える演算装置であって、
クロック信号生成手段により生成されたクロック信号を所定時間遅延させるクロック信号遅延手段を備え、
前記第1の演算ユニットは、前記クロック信号生成手段により生成されたクロック信号を入力し、当該クロック信号に同期して前記処理を行い、
前記第2の演算ユニットは、前記コマンドがセキュリティ処理を要求するコマンドである場合、前記クロック信号遅延手段により所定時間遅延したクロック信号を入力し、当該クロック信号に同期して前記セキュリティ処理を行い、前記コマンドがセキュリティ処理を要求するコマンドでない場合、前記クロック信号生成手段により生成されたクロック信号を入力し、当該クロック信号に同期して前記セキュリティ処理以外の処理を行うことを特徴とする演算装置。
An arithmetic apparatus comprising a first arithmetic unit and a second arithmetic unit that execute the same process in parallel according to a command received from an external terminal ,
Clock signal delaying means for delaying the clock signal generated by the clock signal generating means for a predetermined time;
The first operation unit receives the clock signal generated by the clock signal generation unit, and performs the processing in synchronization with the clock signal.
The second arithmetic unit, when the command is a command for requesting the security process receives a clock signal delayed a predetermined time by said clock signal delay means, line physician the security processing in synchronization with the clock signal An arithmetic device characterized in that if the command is not a command requiring security processing, a clock signal generated by the clock signal generation means is input and processing other than the security processing is performed in synchronization with the clock signal; .
前記クロック信号遅延手段は、前記クロック信号を、前記所定時間として半周期遅延させることを特徴とする請求項1に記載の演算装置。   The arithmetic device according to claim 1, wherein the clock signal delay unit delays the clock signal by a half cycle as the predetermined time. 外部端末から受信されたコマンドに応じて同一の処理を並列して実行する第1の演算ユニット及び第2の演算ユニットを備えるICカードであって、
クロック信号生成手段により生成されたクロック信号を所定時間延させるクロック信号遅延手段を備え、
前記第1の演算ユニットは、前記クロック信号生成手段により生成されたクロック信号を入力し、当該クロック信号に同期して前記処理を行い、
前記第2の演算ユニットは、前記コマンドがセキュリティ処理を要求するコマンドである場合、前記クロック信号遅延手段により所定時間遅延したクロック信号を入力し、当該クロック信号に同期して前記セキュリティ処理を行い、前記コマンドがセキュリティ処理を要求するコマンドでない場合、前記クロック信号生成手段により生成されたクロック信号を入力し、当該クロック信号に同期して前記セキュリティ処理以外の処理を行うことを特徴とするICカード。
An IC card comprising a first arithmetic unit and a second arithmetic unit that execute the same process in parallel according to a command received from an external terminal ,
The clock signal generated by the clock signal generating means comprises a clock signal delay means for a predetermined time late cast,
The first operation unit receives the clock signal generated by the clock signal generation unit, and performs the processing in synchronization with the clock signal.
The second arithmetic unit, when the command is a command for requesting the security process receives a clock signal delayed a predetermined time by said clock signal delay means, line physician the security processing in synchronization with the clock signal If the command is not a command for requesting the security process, IC to said clock signal generating means receives a clock signal generated by, said line Ukoto processing other than the security processing in synchronization with the clock signal card.
外部端末から受信されたコマンドに応じて同一の処理を並列して実行する第1の演算ユニット及び第2の演算ユニットを備える演算装置における演算方法であって、
クロック信号生成手段により生成されたクロック信号を所定時間遅延させるクロック信号遅延ステップを含み、
前記第1の演算ユニットは、前記クロック信号生成手段により生成されたクロック信号を入力し、当該クロック信号に同期して前記処理を行い、
前記第2の演算ユニットは、前記コマンドがセキュリティ処理を要求するコマンドである場合、前記クロック信号遅延ステップにより所定時間遅延したクロック信号を入力し、当該クロック信号に同期して前記セキュリティ処理を行い、前記コマンドがセキュリティ処理を要求するコマンドでない場合、前記クロック信号生成手段により生成されたクロック信号を入力し、当該クロック信号に同期して前記セキュリティ処理以外の処理を行うことを特徴とする演算方法。
An arithmetic method in an arithmetic device provided with a first arithmetic unit and a second arithmetic unit that executes the same process in parallel according to a command received from an external terminal ,
Including a clock signal delay step of delaying the clock signal generated by the clock signal generation means for a predetermined time period;
The first operation unit receives the clock signal generated by the clock signal generation unit, and performs the processing in synchronization with the clock signal.
The second arithmetic unit, when the command is a command for requesting the security process by the clock signal delaying step receives a clock signal delayed a predetermined time, the row physician the security processing in synchronization with the clock signal If the command is not a command for requesting the security process, calculation the inputs a clock signal the clock signal generated by the generation means and row Ukoto processing other than the security processing in synchronization with the clock signal Method.
外部端末から受信されたコマンドに応じて同一の処理を並列して実行する第1の演算ユニット及び第2の演算ユニットを備えるコンピュータに、
クロック信号生成手段により生成されたクロック信号を所定時間遅延させるクロック信号遅延ステップを実行させ、
前記第1の演算ユニットは、前記クロック信号生成手段により生成されたクロック信号を入力し、当該クロック信号に同期して前記処理を行い、
前記第2の演算ユニットは、前記コマンドがセキュリティ処理を要求するコマンドである場合、前記クロック信号遅延ステップにより所定時間遅延したクロック信号を入力し、当該クロック信号に同期して前記セキュリティ処理を行い、前記コマンドがセキュリティ処理を要求するコマンドでない場合、前記クロック信号生成手段により生成されたクロック信号を入力し、当該クロック信号に同期して前記セキュリティ処理以外の処理を行うことを特徴とする演算処理プログラム。
A computer comprising a first arithmetic unit and a second arithmetic unit that execute the same process in parallel according to a command received from an external terminal ,
Performing a clock signal delay step of delaying the clock signal generated by the clock signal generation means for a predetermined time;
The first operation unit receives the clock signal generated by the clock signal generation unit, and performs the processing in synchronization with the clock signal.
The second arithmetic unit, when the command is a command for requesting the security process by the clock signal delaying step receives a clock signal delayed a predetermined time, the row physician the security processing in synchronization with the clock signal If the command is not a command for requesting the security process, calculation the inputs a clock signal the clock signal generated by the generation means and row Ukoto processing other than the security processing in synchronization with the clock signal Processing program.
JP2015118397A 2015-06-11 2015-06-11 Arithmetic device, IC card, arithmetic method, and arithmetic processing program Active JP6516097B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015118397A JP6516097B2 (en) 2015-06-11 2015-06-11 Arithmetic device, IC card, arithmetic method, and arithmetic processing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015118397A JP6516097B2 (en) 2015-06-11 2015-06-11 Arithmetic device, IC card, arithmetic method, and arithmetic processing program

Publications (2)

Publication Number Publication Date
JP2017004304A JP2017004304A (en) 2017-01-05
JP6516097B2 true JP6516097B2 (en) 2019-05-22

Family

ID=57754331

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015118397A Active JP6516097B2 (en) 2015-06-11 2015-06-11 Arithmetic device, IC card, arithmetic method, and arithmetic processing program

Country Status (1)

Country Link
JP (1) JP6516097B2 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2399426A (en) * 2003-03-12 2004-09-15 Sharp Kk Fault detection in data processing apparatus
KR20070083772A (en) * 2004-10-25 2007-08-24 로베르트 보쉬 게엠베하 Method and device for synchronising in a multi-processor system
JP2010160712A (en) * 2009-01-09 2010-07-22 Renesas Technology Corp Semiconductor data processing device and data processing system

Also Published As

Publication number Publication date
JP2017004304A (en) 2017-01-05

Similar Documents

Publication Publication Date Title
Moore et al. Improving smart card security using self-timed circuits
AU725888B2 (en) Improved integrated circuit and process for using an integrated circuit of this type
JP6053786B2 (en) Firmware-based Trusted Platform Module (TPM) for ARM® Trust Zone implementation
CN108885663B (en) Adaptive system and program for making processor resistant to transient fault attack
TWI621963B (en) System and method for protection from side-channel attacks by varying clock delays
KR100909364B1 (en) Memory controller and method of blocking system clock exposure
US7372290B2 (en) System and method for using dummy cycles to mask operations in a secure microcontroller
US11308217B2 (en) Randomized execution countermeasures against fault injection attacks during boot of an embedded device
Mahmoud et al. Electrical-level attacks on CPUs, FPGAs, and GPUs: Survey and implications in the heterogeneous era
CN108075877A (en) A kind of security system and terminal chip
WO2015145487A1 (en) Clock phase control circuit
JP2005513604A (en) A system that improves the fault tolerance and security of computing systems
JP3827050B2 (en) IC card and semiconductor integrated circuit device
CN112149190A (en) Hot start attack mitigation for non-volatile memory modules
Tsiokanos et al. DTA-PUF: Dynamic timing-aware physical unclonable function for resource-constrained devices
Mahmoud et al. DFAulted: Analyzing and exploiting CPU software faults caused by FPGA-driven undervolting attacks
EP1465038A1 (en) Memory security device for flexible software environment
US8412996B2 (en) Method and device for checking the integrity of a logic signal, in particular a clock signal
US9536086B2 (en) Circuit arrangement, a method for forming a circuit arrangement, and method for integrity checking
JP6516097B2 (en) Arithmetic device, IC card, arithmetic method, and arithmetic processing program
CN110032897B (en) Multi-core processor and time constraint-based fault attack method thereof
JP6814305B2 (en) Terminal chip integrated with security elements
US7747935B2 (en) Method and device for securing the reading of a memory
EP1728152B1 (en) Pipeline circuit
Noubir et al. Towards malicious exploitation of energy management mechanisms

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180426

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181211

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190208

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190402

R150 Certificate of patent or registration of utility model

Ref document number: 6516097

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150