JP2010021624A - Information processing apparatus - Google Patents
Information processing apparatus Download PDFInfo
- Publication number
- JP2010021624A JP2010021624A JP2008177879A JP2008177879A JP2010021624A JP 2010021624 A JP2010021624 A JP 2010021624A JP 2008177879 A JP2008177879 A JP 2008177879A JP 2008177879 A JP2008177879 A JP 2008177879A JP 2010021624 A JP2010021624 A JP 2010021624A
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- processing apparatus
- random number
- information processing
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
Description
本発明は、情報処理装置に関し、特に携帯電話端末機器のように、データの処理だけでなく、外部との通信やデータの保護のために暗号処理を行う必要のある情報処理装置に適用して有効な技術に関する。 The present invention relates to an information processing apparatus, and particularly to an information processing apparatus such as a mobile phone terminal device that needs to perform not only data processing but also encryption processing for communication with the outside and protection of data. It relates to effective technology.
本発明者が検討した技術として、情報処理装置においては、たとえば以下の技術が考えられる。 As a technique examined by the present inventor, for example, the following technique can be considered in the information processing apparatus.
暗号演算を高速に実行する必要性や、メモリの読み出し等の簡単な攻撃からの保護を目的として、たとえば暗号演算処理専用ハードウェアがシステムLSI内部に搭載されてきた。携帯電話端末機器などに搭載されるシステムLSIでは、電子決済などのセキュリティ保護が必要な処理を行うようになってきており、今後一層堅牢なシステムが求められている。 For example, dedicated hardware for cryptographic operation processing has been installed in the system LSI for the purpose of performing cryptographic operations at high speed and protecting against simple attacks such as memory reading. System LSIs mounted on cellular phone terminal devices and the like have come to perform processing that requires security protection such as electronic payment, and a more robust system will be required in the future.
また、暗号演算処理に関しては,非特許文献1で示されるような電力解析や、非特許文献2で示されるようなタイミング解析などの攻撃手法が知られている。これらの非特許文献1及び2には、従来の半導体装置が、暗号演算処理回路が半導体装置の内部に固定して配置されていることが記載されている。そして、特許文献1において、その物理的配置が特定されると、暗号演算の消費電力や処理時間が一意に決まり、鍵の特定に対する脆弱性を有している旨が記載されている。
As for cryptographic operation processing, attack techniques such as power analysis as shown in
ICカードなどの暗号演算処理を行う半導体装置においては、この脆弱性に対する1つの解決策として、たとえば特許文献1に開示された技術がある。特許文献1には、再構成可能回路と乱数発生器を設け、同一の処理を行う複数の論理構成情報を用意し、乱数発生器で生成された乱数にしたがって論理構成情報を選択して再構成し、暗号演算処理を実行する技術が開示されている。同一の暗号演算処理を行う場合であっても消費電力波形や処理時間が異なるため、被処理データや鍵の特定が困難になる。この技術は、専用ハードウェアではなく、再構成可能回路を用い、処理する論理回路の構成をランダムに選択することから、実際に処理を行う回路を一意に特定することを困難にしている。
ところで、前記のような情報処理装置の技術について、本発明者が検討した結果、以下のようなことが明らかとなった。 By the way, as a result of the study of the information processing apparatus as described above by the present inventor, the following has been clarified.
たとえば、前記特許文献1のようにICカードなどで提案されている、複数の論理構成情報を乱数発生器から発生させた乱数によって選択して、再構成可能回路に論理回路を構成し、暗号処理を実行する前記方法を、一般のシステムLSIに適用する場合、次の課題が存在する。
For example, a plurality of logical configuration information proposed by an IC card or the like as in
システムLSIには、外部メモリに置かれたプログラムを実行可能であるものや、あるいは内部に複数のCPUを有するものもある。このような複雑なシステムにおいては、たとえば設計者の意図に反して、攻撃者によって、内部メモリに格納された論理構成情報を読み出し、回路構成を解析することが可能な場合がある。 Some system LSIs can execute a program placed in an external memory, or some have a plurality of CPUs inside. In such a complex system, for example, contrary to the intention of the designer, an attacker may be able to read the logical configuration information stored in the internal memory and analyze the circuit configuration.
また、ROMに用意した複数の論理構成情報のうち、どれが選択されたかを特定できる場合がある。たとえば、CPUが一旦アクセスしたメモリ領域がキャッシュにコピーされる場合、それ以外のメモリ領域とでメモリアクセス時間に差異があることを利用した攻撃方法が非特許文献3において指摘されている。 Moreover, it may be possible to specify which one of a plurality of pieces of logical configuration information prepared in the ROM has been selected. For example, Non-Patent Document 3 points out an attack method that utilizes the fact that when a memory area once accessed by a CPU is copied to a cache, there is a difference in memory access time with other memory areas.
この手法によれば、複数の構成情報をメモリに格納し、ランダムに選択して再構成可能回路に構成した場合でも、どの構成情報が選択されたかがソフトウェアによって観測され、実際に再構成可能回路に構成される論理回路の配置が明らかになってしまう恐れがある。 According to this method, even when a plurality of pieces of configuration information are stored in a memory and randomly selected and configured as a reconfigurable circuit, which configuration information is selected is observed by the software, and the reconfigurable circuit is actually selected. There is a risk that the arrangement of the configured logic circuit will become clear.
その場合、実際にどの論理回路がどのような配置で構成されて、データ処理が実行されたかが特定されてしまう。特定の回路で処理を行ったことが攻撃者に知られた場合には、既知の消費電力解析やタイミング解析によって被処理データの解読が可能になる可能性がある。 In that case, it is specified which logic circuit is actually configured in what arrangement and data processing is executed. When an attacker knows that processing has been performed by a specific circuit, there is a possibility that data to be processed can be decoded by known power consumption analysis or timing analysis.
たとえば、AES暗号方式において、共通鍵からラウンドキーを生成するとき、共通鍵をバイトごとに分けていくつかのステップで処理する。特に、S−BOXとよばれるステップでは、鍵データのガロア体における逆元を求めた後、逆元にアファイン変換を行う。このときに、逆元演算の消費電力波形と鍵データとの間に相関があることが知られている。 For example, in the AES encryption method, when generating a round key from a common key, the common key is divided into bytes and processed in several steps. In particular, in a step called S-BOX, after obtaining the inverse element in the Galois field of the key data, affine transformation is performed on the inverse element. At this time, it is known that there is a correlation between the power consumption waveform of the inverse operation and the key data.
したがって、このようなシステムLSIにおいては、構成情報が読み出されてしまった場合にも、実際に処理が実行された回路の特定が困難であるような方法が必要である。 Therefore, in such a system LSI, there is a need for a method that makes it difficult to identify a circuit that has actually performed processing even when configuration information has been read.
そこで、本発明の1つの目的は、暗号演算処理を含む情報処理装置において、暗号の不正な解読を防止することができる技術を提供することにある。 Accordingly, an object of the present invention is to provide a technique capable of preventing an illegal decryption of a cipher in an information processing apparatus including a cryptographic operation process.
本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。 The above and other objects and novel features of the present invention will be apparent from the description of this specification and the accompanying drawings.
本願において開示される実施例のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。 Of the embodiments disclosed in the present application, the outline of typical ones will be briefly described as follows.
すなわち、複数のプロセッシングエレメントの接続関係を切り替えることにより構成される、第1論理回路、第2論理回路及びスイッチ回路を有する再構成可能回路と、乱数発生器とを有し、スイッチ回路は、乱数発生器で生成された乱数に基づいて第1論理回路と第2論理回路のどちらに演算を行わせるかを切り替えることを特徴とする。 That is, a reconfigurable circuit having a first logic circuit, a second logic circuit, and a switch circuit, and a random number generator, which are configured by switching connection relations of a plurality of processing elements, and the switch circuit is a random number Switching between the first logic circuit and the second logic circuit is performed based on the random number generated by the generator.
代表的な実施例によれば、消費電力解析およびタイミング解析などによる不正な解読を防止することができる。 According to the representative embodiment, it is possible to prevent unauthorized decoding by power consumption analysis and timing analysis.
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部材には原則として同一の符号を付し、その繰り返しの説明は省略する。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. Note that components having the same function are denoted by the same reference symbols throughout the drawings for describing the embodiment, and the repetitive description thereof will be omitted.
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下の実施の形態において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。 In the following embodiment, when it is necessary for the sake of convenience, the description will be divided into a plurality of sections or embodiments. However, unless otherwise specified, they are not irrelevant, and one is the other. Some or all of the modifications, details, supplementary explanations, and the like are related. Further, in the following embodiments, when referring to the number of elements (including the number, numerical value, quantity, range, etc.), especially when clearly indicated and when clearly limited to a specific number in principle, etc. Except, it is not limited to the specific number, and may be more or less than the specific number.
図1は、本発明の一実施の形態による情報処理装置において、携帯電話端末システムの構成例を示すブロック図である。 FIG. 1 is a block diagram showing a configuration example of a mobile phone terminal system in an information processing apparatus according to an embodiment of the present invention.
図1に示すように、本実施の形態による携帯電話端末システムは、無線通信のための信号処理を実行するベースバンドLSI(Base Band LSI)102と、RFアンプ(RF)103と、アンテナ104と、データ処理を行うアプリケーションLSI 101と、データが保存される外部メモリ(Memory)105と、これらを接続するシステムバス114などから構成されている。
As shown in FIG. 1, the mobile phone terminal system according to the present embodiment includes a baseband LSI (Base Band LSI) 102 that executes signal processing for wireless communication, an RF amplifier (RF) 103, an
アプリケーションLSI101は、CPU106と、RAM111と、ROM112と、LSI外部と接続するためのインターフェース(I/F)113と、再構成可能回路(RECONF)107と、再構成可能回路107の制御を行うコントローラ(CTR)108と、再構成可能回路107とCPU106の両方からアクセス可能なレジスタ(REG)109と、割込みコントローラ(INT)110などから成る。
The application LSI 101 includes a
携帯電話端末システムが通信を行う際には、アプリケーションLSI101から出力されたデータをベースバンドLSI102でデジタル信号からアナログ信号に変換し、RFアンプ103で増幅した後、アンテナ104からデータを発信する。
When the mobile phone terminal system performs communication, data output from the
たとえば、電子決済データを携帯電話端末からサーバに送信する際には、事前に交換された共通鍵を用いて、共通鍵暗号方式であるAES(Advanced Encryption Standard)によりデータを暗号化してから送信を行う。 For example, when transmitting electronic payment data from a mobile phone terminal to a server, the data is encrypted after being encrypted using AES (Advanced Encryption Standard), which is a common key encryption method, using a common key exchanged in advance. Do.
本実施の形態の携帯電話端末システムにおいて、電子決済データをAES暗号化するために、アプリケーションLSI101内のCPU106は再構成可能回路107を用いる。
In the mobile phone terminal system of this embodiment, the
図2は、再構成可能回路107の構成例を示すブロック図である。
FIG. 2 is a block diagram illustrating a configuration example of the
図2に示すように、再構成可能回路107は、たとえば、2次元状に縦m行・横n列に配列されたプロセッシングエレメント(PE)301〜309と、四方の隣接するPEどうし、PEとレジスタ109を接続する配線から成る。なお、m,nは自然数であり、図2では、複数のPEを一部省略してPE301〜309のみを示している。
As shown in FIG. 2, the
図3は、プロセッシングエレメント(PE)301〜309の各構成例を示すブロック図である。 FIG. 3 is a block diagram illustrating each configuration example of the processing elements (PE) 301 to 309.
図3に示すように、プロセッシングエレメント(PE)301〜309のそれぞれは、隣り合う上下左右のPEと接続される32ビット幅の配線の入出力N,S,W,Eと、ALU403と、フリップフロップ404と、データパスを切り替えるマルチプレクサ(MUX)401,402,405と、デマルチプレクサ(DMUX)406から成る。マルチプレクサ401,402の入力、デマルチプレクサ406の出力N,E,W,SはそれぞれPEの入出力N,E,W,Sに接続されている。マルチプレクサ401,402,405とデマルチプレクサ406の制御信号を切り替えることにより、PE内のデータフローおよび隣接するPEとの接続関係を制御することができる。ALU403の機能と、データパスを切り替えるマルチプレクサ401,402,405とデマルチプレクサ406は、図1および図2に示したコントローラ108によって制御されている。これにより各PE間、PEとレジスタ109間のデータパス、PE内の機能を制御することができる。
As shown in FIG. 3, each of the processing elements (PE) 301 to 309 includes input / output N, S, W, E of 32-bit width wiring connected to adjacent upper, lower, left, and right PEs, an
構成情報とは、各PE間、PEとレジスタ109間のデータパス、PE内の機能を決めるパラメータである。CPU106は、この構成情報に基づいて、コントローラ108の制御レジスタを設定することにより、再構成可能回路107の回路を再構成することができる。
The configuration information is a parameter that determines the data path between the PEs, the data path between the PEs and the
次に、CPU106が再構成可能回路107を制御して、暗号演算処理を実行するフローを説明する。図4は、CPU106による暗号演算処理フローを示すフローチャートである。
Next, a flow in which the
図4に示されるように、ステップS501でCPU106が暗号演算処理の実行を開始すると、ROM112から1つの構成情報を読み出す(ステップS502)。そして、読み出した構成情報に基づいて、再構成可能回路107の制御を行うコントローラ108に設定を行い、回路を再構成する(ステップS503)。さらにCPU106はRAM111に記憶されているデータを再構成可能回路107のレジスタ109にコピーし(ステップS504)、再構成可能回路107に処理開始を指示する(ステップS505)。たとえば、コントローラ108に演算処理イネーブルビットを用意し、CPU106からこのビットに“1”を書き込むことで、処理を実行するようにできる。
As shown in FIG. 4, when the
再構成可能回路107は、CPU106からの処理開始指示により、レジスタ109からデータを読み込み(ステップS510)、既に暗号演算処理を行うように再構成された回路で、レジスタ109から読み込んだデータを暗号演算処理し(ステップS511)、暗号演算処理を行ったデータをレジスタ109に書き戻し(ステップS512)、CPU106に割り込み要求を送信する(ステップS513)。
The
CPU106は、割り込み要求を受信する(ステップS506)と、レジスタ109から処理の完了したデータをRAM111にコピーし(ステップS507)、一連の処理のフローを終了する(ステップS508)。
When the
以下、実際に暗号演算処理を行う論理回路の構成と処理の一例を説明する。図5は、再構成可能回路107で再構成された回路構成例を示すブロック図である。図5に示す再構成可能回路107aは、再構成可能回路107に、乱数発生器201と、スイッチとしてのマルチプレクサ(MUX)202およびデマルチプレクサ(DMUX)203と、スイッチによって選択される等価な複数の論理回路204〜207を構成した例を示す。
An example of the configuration and processing of a logic circuit that actually performs cryptographic operation processing will be described below. FIG. 5 is a block diagram illustrating a circuit configuration example reconfigured by the
暗号演算処理は複雑なものもあり、再構成可能回路の回路規模によってはアルゴリズム全体を1度に実行できない場合も少なくない。この場合には、アルゴリズムを分割し、部分ごとに処理を実行し、処理が完了するたびに、再構成可能回路をCPUから前記の通りに再構成することで、全体の処理を実行することができる。1つの構成情報は、たとえば図5に示されるように、乱数発生器(RND)201と、4つの等価な論理回路(LOG1〜4)204〜207と、乱数発生器201から発生された乱数により論理回路204〜207を選択するマルチプレクサ(MUX)202とデマルチプレクサ(DMUX)203からなるスイッチとを再構成可能回路107aに構成するためのパラメータである。
The cryptographic operation processing is complicated, and depending on the circuit scale of the reconfigurable circuit, there are many cases where the entire algorithm cannot be executed at once. In this case, the entire process can be executed by dividing the algorithm, executing the process for each part, and reconfiguring the reconfigurable circuit from the CPU as described above each time the process is completed. it can. For example, as shown in FIG. 5, one piece of configuration information includes a random number generator (RND) 201, four equivalent logic circuits (
ただし、データの入力に対してデータを出力する論理回路AとBが等価な回路であるとは、回路Aの出力と回路Bの出力が想定される範囲の各入力に対して演算結果が等しいことである。すなわち、等価とは、ある値に対する演算結果が同じであることをいう。たとえば、等価な2つの回路は演算結果が等しければよく、演算結果が確定するタイミングは異なっていても構わない。等価な論理回路を複数有することにより、同一の演算に対しても異なる消費電力波形とすることができる。 However, if the logic circuits A and B that output data with respect to data input are equivalent circuits, the calculation result is equal for each input in a range where the output of the circuit A and the output of the circuit B are assumed. That is. That is, “equivalent” means that the calculation result for a certain value is the same. For example, two equivalent circuits need only have the same calculation result, and the timing at which the calculation result is determined may be different. By having a plurality of equivalent logic circuits, different power consumption waveforms can be obtained for the same operation.
なお、1つの構成情報で構成される等価な回路の個数は2つ以上の複数であればよく、図5のように4つ(LOG1〜4)でなくても構わない。 Note that the number of equivalent circuits configured by one piece of configuration information may be two or more, and may not be four (LOG1 to LOG4) as shown in FIG.
このように本願発明は、プロセッシングエレメント(PE)の接続関係を切り替えることにより構成された、複数の論理回路(LOG1〜LOG4)及び複数の論理回路を切り替えるためのスイッチ回路としてのデマルチプレクサ(DMUX)及びマルチプレクサ(MUX)とを再構成可能回路(RECONF)内に有し、乱数発生器(RND)からの乱数RNDにより、どの論理回路に演算を行わせるかをスイッチ回路を用いて切り替えることを特徴とする。 As described above, according to the present invention, a plurality of logic circuits (LOG1 to LOG4) and a demultiplexer (DMUX) as a switch circuit for switching between the plurality of logic circuits are configured by switching the connection relationship of the processing elements (PE). And a multiplexer (MUX) in a reconfigurable circuit (RECONF), and which logic circuit is to be operated by a random number RND from a random number generator (RND) is switched using a switch circuit And
この特徴により、演算を行わせる際に用いる論理回路を乱数を用いてランダムに選択することが可能になるため、同一のデータを処理する際にも、消費電力波形等は同一にならず、また予測もできない。そのため、消費電力解析及びタイミング解析等による不正な解読を防止することが可能となる。この詳細については、図13を用いて後述する。 This feature makes it possible to randomly select a logic circuit to be used when performing an operation using a random number. Therefore, even when processing the same data, the power consumption waveform is not the same, and It cannot be predicted. Therefore, it is possible to prevent unauthorized decoding by power consumption analysis and timing analysis. Details of this will be described later with reference to FIG.
ここで、本実施例の乱数発生器(RND)は、プロセッシングエレメント(PE)を用いて構成することができる。また、乱数発生器は、CPUを介さずに直接再構成可能回路(RECONF)に乱数を送付することができる。これらの特徴により本実施例は、再構成可能回路(RECONF)の外部に乱数発生器を配置し外部から乱数を伝送する場合と比較して、乱数を伝送する経路自体を不正に解析されることを防ぐことが可能となる。 Here, the random number generator (RND) of the present embodiment can be configured using a processing element (PE). In addition, the random number generator can send the random number directly to the reconfigurable circuit (RECONF) without going through the CPU. Due to these characteristics, the present embodiment can illegally analyze the path for transmitting the random number as compared with the case where the random number generator is arranged outside the reconfigurable circuit (RECONF) and the random number is transmitted from the outside. Can be prevented.
次に図5および図6により、CPU106から構成情報が設定された後の再構成可能回路107aの処理フローを説明する。図6は、再構成された再構成可能回路107aの動作例を示すタイミングチャートである。
Next, a processing flow of the
再構成可能回路107aの処理開始がCPU106のイネーブルビット(ENB)書き込みで指示されると、再構成可能回路107a内に構成された乱数発生器201が乱数(RND)を生成し始める。図6で、RNDはたとえば4クロックサイクルごとに1つずつH、I、J、Kと乱数を出力している。この乱数がマルチプレクサ202、デマルチプレクサ203の制御信号に入力されて、複数の等価な論理回路(LOG1〜4)204〜207が切り替わる。図6では、順に論理回路LOG1、LOG2、LOG3、LOG4が選択されている。
When the processing start of the
たとえば、図5の乱数発生器201から出力された乱数に基づいてマルチプレクサ202、デマルチプレクサ203を切り替えることにより、等価な論理回路204〜207のうちの一つの回路が選択される。
For example, one of the
さらに、複数の等価な論理回路204〜207から1つが選択されたタイミングの次のクロックの立ち上がり時に、データの処理がこの選択された論理回路内で実行される。
Further, data processing is executed in the selected logic circuit at the rising edge of the clock next to the timing when one of the plurality of
たとえば、3つのデータが逐次的に実行される場合、各データごとにこのような論理回路の切り替えが行われる。3つのデータが順にLOG1、LOG2、LOG3の論理回路で処理され、すべてのデータの処理が完了すると、コントローラ108は割込み信号INTを発信し、一連の処理を終了する。
For example, when three pieces of data are sequentially executed, such logic circuit switching is performed for each piece of data. The three data are sequentially processed by the logic circuits of LOG1, LOG2, and LOG3. When the processing of all the data is completed, the
データの処理が終了すると、図1のコントローラ108から割込みコントローラ110に割込み信号を発生させ、再構成可能回路の暗号演算処理を終了する。
When the data processing is completed, an interrupt signal is generated from the
次に図7を用いて、乱数発生器201の構成例を説明する。図7は再構成可能回路の一部に論理構成情報に基づいて実現される論理構成例を示すブロック図である。図7は乱数発生器201の構成例を示している。
Next, a configuration example of the
図7において、601〜607はそれぞれ再構成可能回路107aのPEの1つを設定することで実現され、601〜607であらわされる演算回路は再構成可能回路上に実現される。601から606は32ビットの算術演算ユニットALUであり、設定にしたがって各種算術演算、論理演算、ビット操作などを行うことができる。PE(NOT)601はビット反転、PE(8−bit ROTL)602は8ビット左回転、PE(THR)603はデータ通過、PE(STR 0x000F)604は即値0x000Fのストア、PE(XOR)605は排他的論理和、PE(AND)606は論理積、PE(FF)607はフリップフロップであり、図7のように接続される。PE(FF)607からは、乱数RNDが出力される。
In FIG. 7,
図7のように構成される論理回路を詳細に記述すると、図8のようになる。 The logic circuit configured as shown in FIG. 7 is described in detail as shown in FIG.
それぞれ、図7の601〜607が、図8の701〜707に対応している。“0”との排他的論理和と、“1”との論理積とはデータ通過と同じ動作であり、“1”との排他的論理和はインバータ、“0”との論理積はデータマスクと同じ動作である。これらを書き下すと、図9のようになる。なお、図9は再構成可能回路の一部に論理構成情報に基づいて実現される論理構成例を示す回路図である。 7, 601 to 607 in FIG. 7 correspond to 701 to 707 in FIG. An exclusive OR with “0” and a logical product with “1” are the same operation as data passing, an exclusive OR with “1” is an inverter, and a logical product with “0” is a data mask. Is the same operation. These are written as shown in FIG. FIG. 9 is a circuit diagram illustrating a logical configuration example realized based on logical configuration information in a part of the reconfigurable circuit.
したがって、図9の論理回路(701〜703,705〜707)は、図10の論理回路(801〜806)で表される。図10において、801,803,804,805は701に、802は705に、806は707に、それぞれ対応している。図9の論理回路は、図10に示すように5個のインバータ801〜805と、1個のフリップフロップ806とからなるリングオシレータを8本形成する。
Therefore, the logic circuits (701 to 703, 705 to 707) in FIG. 9 are represented by the logic circuits (801 to 806) in FIG. In FIG. 10, 801, 803, 804, and 805 correspond to 701, 802 corresponds to 705, and 806 corresponds to 707, respectively. The logic circuit of FIG. 9 forms eight ring oscillators including five
奇数個のインバータ801〜805からなるリングオシレータは最終段のインバータ805の出力が初段のインバータ801の入力に接続されており、初段入力の論理否定を最終段のインバータ805が出力し、これが初段入力に再び入力され、初段入力の値が論理否定される。このことにより、リングオシレータは発振することになる。
In the ring oscillator composed of an odd number of
製造時のトランジスタ特性のばらつきや熱雑音などによって各ゲートの遅延時間に微小な変化が生じ、リングオシレータの発振周波数が変化する。これを用いて、観測者からは予測不可能な真性乱数を発生させることができる。 A minute change occurs in the delay time of each gate due to variations in transistor characteristics during manufacture, thermal noise, and the like, and the oscillation frequency of the ring oscillator changes. This can be used to generate true random numbers that cannot be predicted by the observer.
フリップフロップであるPE707の出力の下位8ビットは、8ビット幅の乱数を発生する。 The lower 8 bits of the output of PE707, which is a flip-flop, generates an 8-bit random number.
AES暗号方式は8ビットのデータをガロア体GF(256)の元と同一視している。なお、特に断りのない限りこれを16進数で表示することにする。 The AES encryption scheme identifies 8-bit data as the Galois field GF (256) element. Unless otherwise specified, this is displayed in hexadecimal.
ガロア体の積演算を実行する、等価な論理回路を複数有するような構成情報を用意し、AES暗号演算処理のS−BOXとよばれるステップを安全に実行する。 Configuration information that includes a plurality of equivalent logic circuits that execute Galois field product operations is prepared, and a step called S-BOX of the AES cryptographic operation processing is executed safely.
ガロア体の逆元を求める回路として、たとえば非特許文献4に記載された回路構成があり、ガロア体の元の2乗回路がその基本となる。ガロア体の積は任意の元と0x02との積演算と和の組合せで実現できる。 As a circuit for obtaining the inverse element of the Galois field, for example, there is a circuit configuration described in Non-Patent Document 4, and the square circuit of the Galois field element is the basis. A Galois field product can be realized by a combination of a product operation and a sum of an arbitrary element and 0x02.
図11および図12に、図5で示した複数の等価な論理回路204〜207の構成例を示す。図11および図12は、入力データDに対して、ガロア体の積演算の基本となる0x02×Dを出力する等価な論理回路である。ここで、本明細書においては、ガロア体の積演算を、記号×を用いて表す。図11において、1001〜1004はそれぞれ再構成可能回路のPEの1つを設定することで実現され、1001〜1004で表わされる演算回路は再構成可能回路107上に実現される。同様に、図12において、1101〜1108はそれぞれ再構成可能回路107のPEの1つを設定することで実現され、1101〜1108で表わされる演算回路は再構成可能回路107上に実現される。しかし、入力から出力までに通過するゲートの段数や構成が異なるため、処理時間や消費電力は異なる。
11 and 12 show configuration examples of the plurality of
図11において、PE(Left 1−bit Shift)1001は1ビット左シフト、PE(STR 0x117)1002は即値0x117をストア、PE(XOR)1003は排他的論理和、PE(MUX)1004はPE(Left 1−bit Shift)1001の出力信号のビット7によって制御されるマルチプレクサをそれぞれ表している。
In FIG. 11, PE (Left 1-bit Shift) 1001
図12において、PE(STR 0x55)1101は即値0x55をストア、PE(Left 1−bit Shift)1102は左1ビットシフト、PE(STR 0x117)1103は即値0x117をストア、PE(XOR)1104は排他的論理和、PE(Left 1−bit Shift)1105は左1ビットシフト、PE(XOR)1106は排他的論理和、PE(MUX)1107は入力Dのビット7によって制御されるマルチプレクサ、PE(XOR)1108は排他的論理和をそれぞれ表している。
In FIG. 12, PE (STR 0x55) 1101 stores immediate value 0x55, PE (Left 1-bit Shift) 1102
たとえば、図12のPE1101において、即値0x55をストアする命令の代わりに、乱数発生器から発生させられた8ビットの乱数をそのまま出力することにしても、図12の回路はDに対してガロア体の積0x02×Dを実行する図11の回路と等価な論理回路になる。このとき、この論理回路は乱数との演算をデータパスに加えた回路で、かつ図11と等価な論理回路である。
For example, in the
このように、PE1101の値は、演算結果0x02×Dの値に影響を与えないため、PE1101を乱数の入力として用いることができる。従って、図11及び12に記載の発明は、データの入力Dと、乱数の入力として扱うことが可能な入力PE1101とを有することを特徴とする。この特徴により、同一の演算を行う際にも乱数を並行してデータパスに流すことが可能となるため、より消費電力波形等をランダムなものとすることができるため、より不正な解析を防止することが可能となる。
Thus, since the value of
図13に、1つの論理回路でデータを処理した場合の消費電力波形W01〜W04と、複数の等価な論理回路を構成し、乱数発生器から発生させられた乱数に基づいて論理回路を切り替えながらデータを処理した場合の消費電力波形W11〜W14を示す。同じ論理回路でデータ処理の実行を続けた場合、同一データの処理を実行する際の消費電力波形は毎回同じになると考えられる。たとえば、データAを処理した際の波形W01とW04は同一である。 FIG. 13 shows power consumption waveforms W01 to W04 when data is processed by one logic circuit and a plurality of equivalent logic circuits, and the logic circuits are switched based on random numbers generated from a random number generator. The power consumption waveforms W11 to W14 when data is processed are shown. If data processing is continuously executed by the same logic circuit, it is considered that the power consumption waveform when the same data processing is executed is the same every time. For example, waveforms W01 and W04 when data A is processed are the same.
一方、データ処理のたびに複数の等価な論理回路をランダムに切り替えて選択し、データを処理した場合には、同じデータを処理した場合でも、実際の処理に用いられている回路が異なるため、波形は同一とは限らず、また予測もできない。たとえば、データAを処理した際の波形W11とW14は異なる波形である。 On the other hand, when selecting and selecting a plurality of equivalent logic circuits at random for each data processing and processing the data, even if the same data is processed, the circuit used in the actual processing is different, The waveforms are not always the same and cannot be predicted. For example, waveforms W11 and W14 when data A is processed are different waveforms.
これによって、再構成可能回路を再構成する際に用いられた構成情報が読み取られたとしても、消費電力波形から、処理したデータの特定を行うことが非常に困難になる。 This makes it very difficult to identify the processed data from the power consumption waveform even if the configuration information used when reconfiguring the reconfigurable circuit is read.
したがって、本実施の形態の情報処理装置によれば、再構成可能回路の内部で乱数が発生および消滅させられているため、同一の処理を行う複数の論理回路の選択およびその選択に用いられた乱数を外部から観測することができなくなる。したがって、暗号処理に用いた再構成可能回路の構成情報が攻撃者によって読み出されて解析された場合でも、実際に処理を実行した回路がいずれであるかを判別することができず、電力解析、タイミング解析が非常に困難になり、消費電力解析およびタイミング解析による不正な解読を防止することができる。 Therefore, according to the information processing apparatus of the present embodiment, random numbers are generated and extinguished inside the reconfigurable circuit, and thus used for selecting and selecting a plurality of logic circuits performing the same processing. Random numbers cannot be observed from outside. Therefore, even if the configuration information of the reconfigurable circuit used for cryptographic processing is read and analyzed by an attacker, it is not possible to determine which circuit actually executed the process, and power analysis Timing analysis becomes very difficult, and unauthorized decoding by power consumption analysis and timing analysis can be prevented.
また、これらを専用ハードウェアで実装する場合には、複数の論理回路を実際の回路として用意しなければならず、論理規模が非常に大きくなってしまうが、再構成可能回路を用いることにより、規模を大きくすることなく、より堅牢な暗号処理を可能にしている。 In addition, when these are implemented with dedicated hardware, a plurality of logic circuits must be prepared as actual circuits, and the logic scale becomes very large, but by using a reconfigurable circuit, It enables more robust cryptographic processing without increasing the scale.
以上、本発明者によってなされた発明をその実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。 Although the invention made by the present inventor has been specifically described based on the embodiment, the invention is not limited to the embodiment and can be variously modified without departing from the scope of the invention. Needless to say.
本発明は、半導体装置、特に暗号演算処理を行う半導体装置に有効である。 The present invention is effective for a semiconductor device, particularly a semiconductor device that performs cryptographic operation processing.
101 アプリケーションLSI
102 ベースバンドLSI(Base Band LSI)
103 RFアンプ(RF)
104 アンテナ
105 外部メモリ(Memory)
106 CPU
107,107a 再構成可能回路(RECONF)
108 コントローラ(CTR)
109 レジスタ(REG)
110 割込みコントローラ(INT)
111 RAM
112 ROM
113 インターフェース(I/F)
114 システムバス
201 乱数発生器(RND)
202,401,402,405 マルチプレクサ(MUX)
203,406 デマルチプレクサ(DMUX)
204〜207 論理回路
301〜309,601〜607,701〜707,1001〜1004,1101〜1108 プロセッシングエレメント(PE)
403 ALU
404,806 フリップフロップ
801〜805 インバータ(INV)
101 Application LSI
102 Baseband LSI
103 RF amplifier (RF)
106 CPU
107, 107a Reconfigurable circuit (RECONF)
108 Controller (CTR)
109 register (REG)
110 Interrupt controller (INT)
111 RAM
112 ROM
113 Interface (I / F)
114
202, 401, 402, 405 Multiplexer (MUX)
203,406 Demultiplexer (DMUX)
204-207 Logic circuits 301-309, 601-607, 701-707, 1001-1004, 1101-1108 Processing elements (PE)
403 ALU
404,806 flip-flops 801-805 inverter (INV)
Claims (7)
乱数発生器とを有し、
前記スイッチ回路は、前記乱数発生器で生成された乱数に基づいて前記第1論理回路と前記第2論理回路のどちらに演算を行わせるかを切り替えることを特徴とする情報処理装置。 A reconfigurable circuit having a first logic circuit, a second logic circuit, and a switch circuit configured by switching a connection relationship of a plurality of processing elements;
A random number generator,
The information processing apparatus, wherein the switch circuit switches between the first logic circuit and the second logic circuit based on the random number generated by the random number generator.
前記乱数発生器は、前記再構成可能回路内に設けられ、前記複数のプロセッシングエレメントの接続関係を切り替えることにより構成されることを特徴とする情報処理装置。 The information processing apparatus according to claim 1,
The information processing apparatus, wherein the random number generator is provided in the reconfigurable circuit, and is configured by switching a connection relationship of the plurality of processing elements.
前記乱数発生器は、CPUを介さずに前記再構成可能回路に前記乱数を伝送することを特徴とする情報処理装置。 The information processing apparatus according to claim 1,
The information processing apparatus, wherein the random number generator transmits the random number to the reconfigurable circuit without using a CPU.
前記第1論理回路と前記第2論理回路とは、等価な論理回路であることを特徴とする情報処理装置。 The information processing apparatus according to claim 1,
The information processing apparatus, wherein the first logic circuit and the second logic circuit are equivalent logic circuits.
前記第1論理回路及び第2論理回路は、データを入力するための第1入力と、前記乱数発生器で発生される第2入力とを有し、前記第2入力の値によらず前記第1入力の値に対して前記演算を行うことを特徴とする情報処理装置。 The information processing apparatus according to claim 1,
The first logic circuit and the second logic circuit have a first input for inputting data and a second input generated by the random number generator, and the first logic circuit and the second logic circuit are independent of the value of the second input. An information processing apparatus that performs the calculation on a value of one input.
前記演算は、暗号処理であることを特徴とする情報処理装置。 The information processing apparatus according to claim 1,
The information processing apparatus is characterized in that the calculation is cryptographic processing.
前記再構成可能回路内に構成された前記第1及び第2論理回路を実現する構成情報を格納したROMと、
前記再構成可能回路の構成情報を前記ROMから読み出し、前記再構成可能回路に前記第1及び第2論理回路を構成させるCPUとをさらに有することを特徴とする情報処理装置。 The information processing apparatus according to claim 1,
A ROM storing configuration information for realizing the first and second logic circuits configured in the reconfigurable circuit;
An information processing apparatus, further comprising: a CPU that reads configuration information of the reconfigurable circuit from the ROM and causes the reconfigurable circuit to configure the first and second logic circuits.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2008177879A JP2010021624A (en) | 2008-07-08 | 2008-07-08 | Information processing apparatus |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2008177879A JP2010021624A (en) | 2008-07-08 | 2008-07-08 | Information processing apparatus |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2010021624A true JP2010021624A (en) | 2010-01-28 |
Family
ID=41706124
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2008177879A Pending JP2010021624A (en) | 2008-07-08 | 2008-07-08 | Information processing apparatus |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2010021624A (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113127938A (en) * | 2020-01-14 | 2021-07-16 | 新唐科技股份有限公司 | Secure integrated circuit and method therefor |
-
2008
- 2008-07-08 JP JP2008177879A patent/JP2010021624A/en active Pending
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113127938A (en) * | 2020-01-14 | 2021-07-16 | 新唐科技股份有限公司 | Secure integrated circuit and method therefor |
| JP2021111410A (en) * | 2020-01-14 | 2021-08-02 | 新唐科技股▲ふん▼有限公司 | Secure integrated circuits and their methods |
| JP7061207B2 (en) | 2020-01-14 | 2022-04-27 | 新唐科技股▲ふん▼有限公司 | Secure integrated circuit and its method |
| CN113127938B (en) * | 2020-01-14 | 2023-05-12 | 新唐科技股份有限公司 | Secure integrated circuit and method thereof |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Glamocanin et al. | Are cloud FPGAs really vulnerable to power analysis attacks? | |
| CN101206816B (en) | Arithmetic processing device and arithmetic processing control method | |
| CN100583039C (en) | System and method for selecting a random processor to boot on a multiprocessor system | |
| Rahimunnisa et al. | FPGA implementation of AES algorithm for high throughput using folded parallel architecture | |
| Huang et al. | Trace buffer attack: Security versus observability study in post-silicon debug | |
| WO2015145487A1 (en) | Clock phase control circuit | |
| Shuyu et al. | A low-overhead PUF for anti-clone attack of RFID tags | |
| JP5188414B2 (en) | Information processing apparatus, information processing method, and program | |
| Moradi et al. | Dual-rail transition logic: A logic style for counteracting power analysis attacks | |
| US20110154062A1 (en) | Protection of electronic systems from unauthorized access and hardware piracy | |
| Zhao et al. | A lightweight hardware-assisted security method for efpga edge devices | |
| Chhabra et al. | Hardware obfuscation of aes ip core using pufs and prng: A secure cryptographic key generation solution for internet-of-things applications | |
| Pirpilidis et al. | On the effects of ring oscillator length and hardware Trojan size on an FPGA-based implementation of AES | |
| JP2003337750A (en) | Semiconductor device with internal analysis prevention function | |
| Roy et al. | Reconfigurable LUT: A double edged sword for security-critical applications | |
| JP2010021624A (en) | Information processing apparatus | |
| WO2022164381A1 (en) | An advanced encryption standard (aes) device | |
| Konstantinou et al. | Privacy-preserving functional IP verification utilizing fully homomorphic encryption | |
| Gallais et al. | Hardware trojans for inducing or amplifying side-channel leakage of cryptographic software | |
| Soares et al. | A robust architectural approach for cryptographic algorithms using GALS pipelines | |
| Singh et al. | Design of High Performance MIPS Cryptography Processor | |
| Sai et al. | Design of a high-speed and low-power AES architecture | |
| Durvaux et al. | A survey of recent results in FPGA security and intellectual property protection | |
| Singh et al. | Performance evaluation of low power MIPS crypto processor based on cryptography algorithms | |
| Wang et al. | A high-efficient and low-cost secure AMBA framework utilizing configurable data encryption modeling against probe attacks |