JP2000187618A - Information processor - Google Patents

Information processor

Info

Publication number
JP2000187618A
JP2000187618A JP10364954A JP36495498A JP2000187618A JP 2000187618 A JP2000187618 A JP 2000187618A JP 10364954 A JP10364954 A JP 10364954A JP 36495498 A JP36495498 A JP 36495498A JP 2000187618 A JP2000187618 A JP 2000187618A
Authority
JP
Japan
Prior art keywords
processing
secret information
time
register
switching signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP10364954A
Other languages
Japanese (ja)
Inventor
Takashi Matsuda
隆 松田
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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer 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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP10364954A priority Critical patent/JP2000187618A/en
Publication of JP2000187618A publication Critical patent/JP2000187618A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks

Landscapes

  • Storage Device Security (AREA)

Abstract

PROBLEM TO BE SOLVED: To make it difficult to analyze secret information based on the measurement of current consumption or electromagnetic waves. SOLUTION: The operations of a program counter block 12 and a register block 17 are switched according to a switching signal S outputted from a time- division processing controlling part 19, and real processing based on secret information held in a flash memory 15 and false processing which does not use the secret information is executed in time-vision parallel. Thus, the influence of the false processing is mixed with current consumption or electromagnetic waves so that the secret information can be made difficult to analyze from the current consumption or the electromagnetic waves at that time. Also, hardware to be used for the processing is switched according to the switching signal S, and the time-division parallel processing is operated so that high speed processing can be realized by making it unnecessary to operate switching processing by software processing. Moreover, plural common hardware is used for the real processing and the false processing so that the secret information becomes more difficult to be analyzed.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、秘密情報を保有す
る情報処理装置に係り、特に秘密情報の解読を困難とす
る時分割処理を行う情報処理装置に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an information processing apparatus having confidential information, and more particularly, to an information processing apparatus for performing time-sharing processing that makes it difficult to decipher confidential information.

【0002】[0002]

【従来の技術】例えばICカードなど、他人には知られ
てはいけない秘密情報を保有し、その情報に基づき処理
を行う情報処理装置がある。この種の情報処理装置で
は、CPUや専用のハードウェアを用いて秘密情報に従
い順次処理が行なわれるが、秘密情報に基づいて処理を
行う場合、秘密情報の内容によって、その処理内容が異
なる。すなわち、CPUで処理する場合には、秘密情報
の値により実行される命令の内容やその命令の順序が異
なる。実行される命令が異なると、消費される電流や放
射される電磁波が異なる。また、専用のハードウェアを
利用して処理する場合も同様であり、秘密情報の値によ
り、専用ハードウェアの各トランジスタの動作状況が異
なり、その時に消費される電流や放射される電磁波が異
なる。
2. Description of the Related Art There is an information processing apparatus, such as an IC card, which holds secret information that should not be known to others and performs processing based on the information. In this type of information processing apparatus, processing is sequentially performed according to secret information using a CPU or dedicated hardware. When processing is performed based on secret information, the processing content differs depending on the content of the secret information. That is, when the processing is performed by the CPU, the contents of the instructions to be executed and the order of the instructions are different depending on the value of the secret information. Different instructions to be executed have different current consumption and radiated electromagnetic waves. The same applies to the case where processing is performed using dedicated hardware. The operation state of each transistor of the dedicated hardware differs depending on the value of the secret information, and the current consumed at that time and the radiated electromagnetic wave differ.

【0003】これを利用して、消費電流や電磁波の時間
的変化を測定して秘密情報を外部から解析する手法が発
見されている。その際、外部から与えられるデータを変
えて処理させ、それぞれの処理での消費電流や放射電磁
波の時間的変化の違いを比較解析することも行われてい
る(「Differential Power Analysis」CryptographyRes
earch)。
[0003] A technique has been discovered which utilizes this to analyze the secret information from outside by measuring the current consumption and the temporal change of the electromagnetic wave. At that time, the data supplied from the outside is changed and processed, and the difference between the current consumption and the time change of the radiated electromagnetic wave in each processing is compared and analyzed (“Differential Power Analysis” Cryptography Res.
earch).

【0004】例えば、秘密情報がRSA公開鍵暗号の秘
密鍵であるとすると、秘密鍵の各ビットが“1”である
か“0”であるかによって、暗号化や復号化の処理にお
いて、乗算や剰余演算や他の演算の有無や順序が異な
る。したがって、各種のデータを暗号化させたり復号化
させたりして、これら一連の演算をその時の消費電流や
放射電磁波から解析することで、秘密鍵の各ビットの値
を知ることができる。
For example, assuming that the secret information is a secret key of the RSA public key encryption, multiplication in encryption or decryption processing depends on whether each bit of the secret key is “1” or “0”. The presence or absence and the order of the remainder operation and other operations are different. Therefore, the value of each bit of the secret key can be known by encrypting or decrypting various data and analyzing a series of these operations from current consumption and radiated electromagnetic waves at that time.

【0005】[0005]

【発明が解決しようとする課題】前述したように、秘密
情報の値により実行される命令や、ハードウェアの動作
状況が異なるため、その時に消費される電流や電磁波か
ら秘密情報が解析される問題があった。
As described above, since the instructions executed according to the value of the secret information and the operating conditions of the hardware are different, the problem that the secret information is analyzed from the current and electromagnetic waves consumed at that time. was there.

【0006】本発明は前記のような問題に鑑みなされた
もので、消費電流や電磁波の測定に基づく秘密情報の解
析を困難とした情報処理装置を提供することを目的とす
る。
The present invention has been made in view of the above problems, and has as its object to provide an information processing apparatus that makes it difficult to analyze secret information based on current consumption and electromagnetic wave measurement.

【0007】[0007]

【課題を解決するための手段】本発明の情報処理装置
は、秘密情報を記憶した記憶手段と、この記憶手段に記
憶された前記秘密情報に基づく処理の実行中に、他の処
理を周期的に時分割して実行する並列処理手段とを具備
したことを特徴としたものである。
An information processing apparatus according to the present invention includes a storage unit for storing secret information and a process for periodically executing other processing during execution of a process based on the secret information stored in the storage unit. And a parallel processing means for executing the processing in a time-division manner.

【0008】このような構成の情報処理装置によれば、
本装置が保有する秘密情報を用いた処理の実行中に偽の
処理が時分割並列的に実行される。したがって、消費電
流や電磁波に偽の処理の影響が混入することになり、そ
の時の消費電流や電磁波を測定解析しても、秘密情報を
知ることは困難となる。
According to the information processing apparatus having such a configuration,
During execution of the process using the secret information held by the present apparatus, a false process is executed in a time-division parallel manner. Therefore, the influence of the fake processing is mixed into the current consumption and the electromagnetic wave, and it is difficult to know the secret information even if the current consumption and the electromagnetic wave at that time are measured and analyzed.

【0009】また、本発明の情報処理装置は、複数の処
理で共通に利用できる資源である共通利用手段と、複数
の処理で共通に利用できない資源である非共通利用手段
と、前記共通利用手段と前記共通利用手段とを所定の周
期で切り替える切替手段と、この切替手段によって前記
共通利用手段と前記非共通利用手段とを切替えながら、
複数の処理を時分割並列的に実行し、前記非共通利用手
段が実行する少なくとも1つの処理で秘密情報に基づく
処理を行う制御手段とを具備したものである。
Further, the information processing apparatus of the present invention comprises a common use means which is a resource which can be commonly used in a plurality of processes, a non-common use means which is a resource which cannot be commonly used in a plurality of processes, and the common use means. Switching means for switching between the common use means and the common use means at a predetermined cycle, while switching between the common use means and the non-common use means by this switch means,
A control unit that executes a plurality of processes in a time-division parallel manner and performs a process based on secret information in at least one process executed by the non-common use unit.

【0010】このような構成の情報処理装置によれば、
複数の処理で共有化できないハードウェアと共有化可能
なハードウェアとが適宜切替えられて時分割並列処理が
実行され、その中の少なくとも1つの処理で秘密情報に
基づく処理が行なわれる。したがって、OSなどのソフ
トウェア処理による切替処理を不要として高速処理を実
現できる。
According to the information processing apparatus having such a configuration,
Hardware that cannot be shared by a plurality of processes and hardware that can be shared are appropriately switched to perform time-division parallel processing, and at least one of the processes performs a process based on secret information. Therefore, high-speed processing can be realized without switching processing by software processing such as an OS.

【0011】さらに、時分割により、本来の秘密情報に
基づく処理と偽の処理で多くの共通のハードウェアを使
用しているので、本当の処理と偽の処理の電磁波の放射
位置がほとんど同じものとなり、全く異なるハードウェ
アから偽の電磁波を放射するよりも分離が困難となり、
秘密情報の解読を一層困難なものとすることができる。
Further, since many common hardware are used for the processing based on the original secret information and the fake processing by time division, the radiation positions of the electromagnetic waves in the real processing and the fake processing are almost the same. It is more difficult to separate than radiating fake electromagnetic waves from completely different hardware,
Decryption of confidential information can be made more difficult.

【0012】[0012]

【発明の実施の形態】以下、図面を参照して本発明の一
実施形態を説明する。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment of the present invention will be described below with reference to the drawings.

【0013】図1は本発明の情報処理装置の実施形態と
して用いられるICカードにおけるLSI内部構成を示
すブロック図である。このICカードは秘密情報を保有
している。ここでは、秘密情報を例えばRSA公開鍵暗
号の秘密鍵とし、この秘密鍵を使った処理に関わる部分
だけを図示し、ICカード外部とのインターフェースや
各種セキュリティ回路などに関しては、説明を簡略化す
るために省略するものとする。
FIG. 1 is a block diagram showing the internal configuration of an LSI in an IC card used as an embodiment of the information processing apparatus of the present invention. This IC card holds secret information. Here, the secret information is, for example, a secret key of an RSA public key cryptosystem, and only a part related to processing using the secret key is illustrated, and the description of an interface with the outside of the IC card and various security circuits is simplified. For simplicity.

【0014】図1に示すように、本実施形態におけるI
Cカードには、プログラムROM11、プログラムカウ
ンタブロック12、命令デコーダ13、RAM14、フ
ラッシュメモリ(FLASH MEMORY)15、デ
ータROM16、レジスタブロック17、演算部18、
時分割処理制御部19が設けられている。
As shown in FIG. 1, I in the present embodiment
The C card includes a program ROM 11, a program counter block 12, an instruction decoder 13, a RAM 14, a flash memory (FLASH MEMORY) 15, a data ROM 16, a register block 17, an arithmetic unit 18,
A time division processing control unit 19 is provided.

【0015】プログラムROM11は、処理のプログラ
ムが格納されたメモリである。プログラムカウンタブロ
ック12は、命令アドレスADによりプログラムROM
11のアドレスを制御し、命令の流れを制御するもので
ある。なお、このプログラムカウンタブロック12の詳
細な構成については、後に図3を参照して説明する。命
令デコーダ13は、プログラムROM11から出力され
る命令をデコード処理し、各種制御信号を出力する。こ
の図では説明を簡単化するために、制御信号としてレジ
スタ制御信号RCのみを示し、それ以外の制御信号線に
ついては省略してある。
The program ROM 11 is a memory in which a processing program is stored. The program counter block 12 stores a program ROM according to the instruction address AD.
11 are controlled to control the flow of instructions. The detailed configuration of the program counter block 12 will be described later with reference to FIG. The instruction decoder 13 decodes an instruction output from the program ROM 11 and outputs various control signals. In this figure, for simplicity of explanation, only the register control signal RC is shown as a control signal, and other control signal lines are omitted.

【0016】RAM14は、処理のワークとして一時的
に用いられるメモリである。フラッシュメモリ15は、
暗号鍵のような秘密情報などを書き込んでおくための不
揮発性のメモリである。データROM16は、各種の処
理に使用されるデータを格納している。
The RAM 14 is a memory temporarily used as processing work. The flash memory 15
It is a nonvolatile memory for storing secret information such as an encryption key. The data ROM 16 stores data used for various processes.

【0017】レジスタブロック17は、処理に使用され
る複数のレジスタから構成される。なお、このレジスタ
ブロック17の詳細な構成については、後に図2を参照
して説明する。演算部18は、ALUや乗算器やシフタ
ー(ビットシフトするハードウェア)などの各種演算を
実現する複数の専用ハードウェアから構成される。時分
割処理制御部19は、時分割で並行して動作する複数の
処理(ここでは2つの処理)で用いられるハードウェア
を所定の周期(命令単位)で切替えるための切替信号S
を発生する。
The register block 17 comprises a plurality of registers used for processing. The detailed configuration of the register block 17 will be described later with reference to FIG. The operation unit 18 includes a plurality of dedicated hardware such as an ALU, a multiplier, and a shifter (hardware for bit shifting) that realize various operations. The time-division processing control unit 19 is a switching signal S for switching hardware used in a plurality of processes (here, two processes) operating in parallel in a time-division manner at a predetermined cycle (in units of instructions).
Occurs.

【0018】また、図中の外部アドレスバスaは、RA
M14、 フラッシュメモリ15、データROM16の
アドレスを指定するための信号線である。但し、RAM
14とフラッシュメモリ15のアドレスの最上位ビット
は、時分割処理制御部19から出力される切替信号Sに
よって決定される。
The external address bus a shown in FIG.
M14, a signal line for specifying addresses of the flash memory 15 and the data ROM 16. However, RAM
14 and the most significant bit of the address of the flash memory 15 are determined by the switching signal S output from the time-division processing control unit 19.

【0019】外部データバスbは、RAM14、フラッ
シュメモリ15、データROM16から読み込んだデー
タや書き込むデータが流れる信号線である。なお、ここ
で「外部」と記したのは後述の内部データバスcと区別
するためであり、RAM14, フラッシュメモリ15,
データROM16以外の部分がCPU部分であることを
念頭において、CPUの外部という意味であり、LSI
の外部という意味ではない。
The external data bus b is a signal line through which data read from or written to the RAM 14, the flash memory 15, and the data ROM 16 flows. Note that the term "external" is used here to distinguish it from an internal data bus c, which will be described later.
Keeping in mind that the part other than the data ROM 16 is the CPU part, it means outside of the CPU.
It does not mean outside.

【0020】ここでは、RAM14、フラッシュメモリ
15、データROM16とのデータのやり取りは必ずレ
ジスタブロック17を介する方式とした。また、RAM
14、フラッシュメモリ15、データROM16のアド
レスもレジスタブロック17を介して指定する方式とし
ている。
Here, data exchange with the RAM 14, the flash memory 15, and the data ROM 16 is always performed via the register block 17. Also, RAM
14, the addresses of the flash memory 15 and the data ROM 16 are also specified via the register block 17.

【0021】内部データバスcは、レジスタブロック1
7、演算部18、ブログラムカウンタブロック、時分割
処理制御部19間のデータのやり方を行うデータ線であ
る。この図では1本の線で表現したが、これは簡単のた
めであり、このバスは複数の系統である場合が多い。
The internal data bus c is connected to the register block 1
7, a data line for performing data processing between the arithmetic unit 18, the program counter block, and the time-division processing control unit 19. Although this diagram is represented by a single line in this figure, this is for the sake of simplicity, and this bus often has a plurality of systems.

【0022】このような構成において、レジスタブロッ
ク17とプログラムカウンタブロック12の内部動作は
前記時分割処理制御部19から出力される切替信号Sの
影響を受ける。
In such a configuration, the internal operations of the register block 17 and the program counter block 12 are affected by the switching signal S output from the time division processing control section 19.

【0023】図2にレジスタブロック17の内部構成を
示す。
FIG. 2 shows the internal configuration of the register block 17.

【0024】図2に示すように、レジスタブロック17
には、レジスタ部(1)21およびレジスタ部(2)2
2と、セレクタ(1)23、セレクタ(2)24、セレ
クタ(3)25、セレクタ(4)26が設けられてい
る。
As shown in FIG. 2, the register block 17
Includes a register section (1) 21 and a register section (2) 2
2, a selector (1) 23, a selector (2) 24, a selector (3) 25, and a selector (4) 26.

【0025】レジスタ部(1)21、レジスタ部(2)
22は同一の構造を持ち、それぞれ複数のレジスタから
構成される。具体的には、通常の演算結果やデータやア
ドレスの一時的な保持に使用される汎用レジスタと演算
結果のキャリーの有無などの情報を保持するステータス
レジスタ、RAM上のスタック位置を示すスタックポイ
ンタなどのレジスタから構成される。
Register section (1) 21, register section (2)
Reference numeral 22 has the same structure, and is composed of a plurality of registers. More specifically, a general-purpose register used for temporary storage of normal operation results and data and addresses, a status register holding information such as the presence / absence of carry of operation results, a stack pointer indicating a stack position in RAM, and the like. Is composed of registers.

【0026】レジスタ部(1)21はセレクタ(4)2
6を介してレジスタ制御信号RCに従って動作し、レジ
スタ部(2)22はセレクタ(4)26を介してレジス
タ制御信号RCに従って動作する。
The register section (1) 21 is provided with a selector (4) 2
6, the register section (2) 22 operates according to the register control signal RC via the selector (4) 26.

【0027】ここで、セレクタ(4)26は、前記図1
の時分割処理制御部19から出力される切替信号Sのレ
ベル(0/1)に応じて前記図1の命令デコーダ13か
ら出力されるレジスタ制御信号RCをレジスタ部(1)
21またはレジスタ部(2)22に供給する。すなわ
ち、切替信号Sが“0”の時は命令デコーダ13から出
力されるレジスタ制御信号RCをレジスタ部(1)21
に供給し、切替信号Sが“1”の時はそのレジスタ制御
信号RCをレジスタ部(2)22に供給する。その際、
他方のレジスタ部には動作しないような信号を供給す
る。これにより、レジスタ制御信号RCが供給された方
のレジスタ部のみが動作状態に切り替わることになる。
In this case, the selector (4) 26
The register control signal RC output from the instruction decoder 13 in FIG. 1 according to the level (0/1) of the switching signal S output from the time-division processing control unit 19 of FIG.
21 or the register section (2) 22. That is, when the switching signal S is "0", the register control signal RC output from the instruction decoder 13 is transmitted to the register (1) 21.
When the switching signal S is "1", the register control signal RC is supplied to the register section (2) 22. that time,
A signal that does not operate is supplied to the other register unit. As a result, only the register to which the register control signal RC is supplied switches to the operating state.

【0028】セレクタ(1)23は、切替信号Sのレベ
ル(0/1)に応じて、外部データバスbとレジスタ部
(1)21またはレジスタ部(2)22を接続する。す
なわち、切替信号Sが“0”の時は外部データバスbと
レジスタ部(1)21とを接続し、切替信号Sが“1”
の時は外部データバスbとレジスタ部(2)22とを接
続する。
The selector (1) 23 connects the external data bus b to the register section (1) 21 or the register section (2) 22 according to the level (0/1) of the switching signal S. That is, when the switching signal S is "0", the external data bus b is connected to the register section (1) 21, and the switching signal S becomes "1".
In this case, the external data bus b is connected to the register (2) 22.

【0029】セレクタ(2)24およびセレクタ(3)
25は、前記セレクタ(1)23と同様の働きを行い、
切替信号Sに従って、それぞれ、外部アドレスバスa、
内部データバスcをどちらのレジスタ部に接続するかを
切り替えるためのものである。すなわち、セレクタ
(2)24は、切替信号Sが“0”の時は外部アドレス
バスaとレジスタ部(1)21とを接続し、切替信号S
が“1”の時は外部アドレスバスaとレジスタ部(2)
22とを接続する。また、セレクタ(3)25は、切替
信号Sが“0”の時は内部データバスcとレジスタ部
(1)21とを接続し、切替信号Sが“1”の時は内部
データバスcとレジスタ部(2)22とを接続する。
Selector (2) 24 and selector (3)
25 performs the same operation as the selector (1) 23,
According to the switching signal S, the external address buses a,
This is for switching to which register unit the internal data bus c is connected. That is, when the switching signal S is “0”, the selector (2) 24 connects the external address bus a to the register section (1) 21 and outputs the switching signal S
Is "1", the external address bus a and the register (2)
22 is connected. The selector (3) 25 connects the internal data bus c to the register section (1) 21 when the switching signal S is “0”, and connects the internal data bus c to the register section (1) when the switching signal S is “1”. The register unit (2) 22 is connected.

【0030】以上により、切替信号Sが“0”の時はレ
ジスタ部(1)21が動作してレジスタブロック17の
外部と接続され、切替信号Sが“1”の時はレジスタ部
(2)22が動作してレジスタブロック17の外部と接
続される。これにより、切替信号Sに従い、2つのレジ
スタ部(1)21とレジスタ部(2)22の動作が適宜
切り替わることになる。
As described above, when the switching signal S is "0", the register section (1) 21 operates to be connected to the outside of the register block 17, and when the switching signal S is "1", the register section (2). 22 operates and is connected to the outside of the register block 17. Accordingly, the operations of the two register units (1) 21 and (2) 22 are appropriately switched according to the switching signal S.

【0031】図3にプログラムカウンタブロック12の
内部構成を示す。
FIG. 3 shows the internal configuration of the program counter block 12.

【0032】図3に示すように、プログラムカウンタブ
ロック12には、プログラムカウンタ部(1)31およ
びプログラムカウンタ部(2)32と、セレクタ(5)
33およびセレクタ(6)34、そして、インバータ3
5が設けられている。
As shown in FIG. 3, the program counter block 12 includes a program counter (1) 31, a program counter (2) 32, and a selector (5).
33 and the selector (6) 34 and the inverter 3
5 are provided.

【0033】プログラムカウンタ部(1)31およびプ
ログラムカウンタ部(2)32は同一の構成からなり、
それぞれ1つの処理の命令アドレスの流れを制御するも
のである。両者のプログラムカウンタ部ともに、切替信
号SをEnable信号として入力し、そのEnabl
e信号が“1”の時に動作し、“0”の時は非動作とな
る。この場合、プログラムカウンタ部(1)31には、
インバータ35で反転された切替信号SがEnable
信号として供給されるようになっている。したがって、
切替信号Sが“0”の時はプログラムカウンタ部(1)
31が動作し、切替信号Sが“1”の時はプログラムカ
ウンタ部(2)32が動作することになる。
The program counter (1) 31 and the program counter (2) 32 have the same configuration.
Each of them controls the flow of instruction addresses of one process. Both program counters input the switching signal S as an Enable signal,
It operates when the signal e is "1" and does not operate when it is "0". In this case, the program counter (1) 31 includes:
The switching signal S inverted by the inverter 35 is enabled.
It is supplied as a signal. Therefore,
When the switching signal S is "0", the program counter (1)
31 operates, and when the switching signal S is "1", the program counter (2) 32 operates.

【0034】セレクタ(5)33およびセレクタ(6)
34の動作は前記レジスタブロック17の各セレクタと
同様であり、切替信号Sに従ってプログラムカウンタ部
(1)31またはプログラムカウンタ部(2)32を選
択する。すなわち、セレクタ(5)33は、切替信号S
が“0”の時はレジスタ部(1)21を選択して、その
命令アドレスを命令アドレスADとしてプログラムRO
M11に出力し、切替信号Sが“1”の時はプログラム
カウンタ部(2)32を選択して、その命令アドレスを
命令アドレスADとしてプログラムROM11に出力す
る。また、セレクタ(6)34は、切替信号Sが“0”
の時はレジスタ部(1)21を選択して内部データバス
cと接続し、切替信号Sが“1”の時はプログラムカウ
ンタ部(2)32を選択して内部データバスcと接続す
る。
The selector (5) 33 and the selector (6)
The operation of 34 is the same as that of each selector of the register block 17, and selects the program counter unit (1) 31 or the program counter unit (2) 32 according to the switching signal S. That is, the selector (5) 33 outputs the switching signal S
Is "0", the register section (1) 21 is selected, and its instruction address is set as the instruction address AD, and the program RO is selected.
M11. When the switching signal S is "1", the program counter (2) 32 is selected, and the instruction address is output to the program ROM 11 as the instruction address AD. The selector (6) 34 sets the switching signal S to “0”.
In this case, the register section (1) 21 is selected and connected to the internal data bus c. When the switching signal S is "1", the program counter section (2) 32 is selected and connected to the internal data bus c.

【0035】以上により、切替信号Sが“0”の時はプ
ログラムカウンタ部(1)31がプログラムカウンタブ
ロック12の外部と接続されて動作し、切替信号Sが
“1”の時はプログラムカウンタ部(2)32がプログ
ラムカウンタブロック12の外部と接続されて動作す
る。これにより、切替信号Sに従い、2つのプログラム
カウンタ部(1)31とプログラムカウンタ部(2)3
2が適宜切り替わることになる。
As described above, when the switching signal S is "0", the program counter (1) 31 is connected to the outside of the program counter block 12 and operates. When the switching signal S is "1", the program counter (1) 31 operates. (2) 32 operates by being connected to the outside of the program counter block 12. Thus, according to the switching signal S, the two program counters (1) 31 and the program counters (2) 3
2 will be switched appropriately.

【0036】また、切替信号Sは前述したように図1の
RAM14とフラッシュメモリ15のアドレスの最上位
ビットにも入っている。これにより、切替信号Sが
“0”の時は両メモリのアドレスの下位半分がアクセス
され、切替信号Sが“1”の時は両メモリのアドレスの
上位半分がアクセスされる。つまり、これも切替信号S
に従い2つのメモリ空間が適宜切り替わることになる。
The switching signal S is also included in the most significant bits of the addresses of the RAM 14 and the flash memory 15 in FIG. Thus, when the switching signal S is "0", the lower halves of the addresses of both memories are accessed, and when the switching signal S is "1", the upper halves of the addresses of both memories are accessed. That is, this is also the switching signal S
, The two memory spaces are appropriately switched.

【0037】このように、切替信号Sにより2種の回路
の動作が切り替わるので、切替信号Sを命令単位で変化
させることにより、2つの処理を時分割で実行すること
ができる。
As described above, since the operations of the two types of circuits are switched by the switching signal S, the two processes can be executed in a time-division manner by changing the switching signal S in units of instructions.

【0038】単純な例を図4に示す。FIG. 4 shows a simple example.

【0039】今、図4に示すように、プログラムROM
11のアドレス=0からアドレス=6に命令1から命令
7が書き込まれているものとする。
Now, as shown in FIG.
It is assumed that instructions 1 to 7 have been written at addresses 0 to 6 of address 11.

【0040】また、データROM16のアドレス=0に
は、データ80(H)が書き込まれているものとする。
RAM14および フラッシュメモリ15のアドレスは
ともに13ビットであるとし、フラッシュメモリ15の
アドレス=0000(H)にデータ90(H)、アドレ
ス=1000(H)にデータ70(H)が事前に書き込
まれているものとする。
It is also assumed that data 80 (H) is written at address = 0 of the data ROM 16.
It is assumed that the addresses of the RAM 14 and the flash memory 15 are both 13 bits, and that the data 90 (H) is written in the address = 0000 (H) and the data 70 (H) is written in the address = 1000 (H) in the flash memory 15 in advance. Shall be

【0041】最初、2つのプログラムカウンタ部(1)
31およびプログラムカウンタ部(2)32はともにプ
ログラムROM11のアドレス0を示しているものとす
る。各命令は1命令サイクルで実行される。切替信号S
は最初0で命令サイクル毎に反転する。したがって、最
初の命令サイクル(命令サイクル1)では、切替信号S
が“0”なので、プログラムカウンタ部(1)31とレ
ジスタ部(1)21が動作する。このとき、プログラム
カウンタ部(1)31はプログラムROM11のアドレ
ス0を示しているので、プログラムROM11のアドレ
ス=0に書き込まれていた命令1が命令デコーダ13に
与えられてデコードされる。これにより、命令1が実行
され、フラッシュメモリ15の「アドレス0」のデータ
が「レジスタA」に読み込れることになるが、このとき
の「レジスタA」とはレジスタ部(1)21のレジスタ
である。
First, two program counter units (1)
31 and the program counter section (2) 32 both indicate the address 0 of the program ROM 11. Each instruction is executed in one instruction cycle. Switching signal S
Is initially 0 and is inverted every instruction cycle. Therefore, in the first instruction cycle (instruction cycle 1), the switching signal S
Is "0", the program counter (1) 31 and the register (1) 21 operate. At this time, since the program counter (1) 31 indicates the address 0 of the program ROM 11, the instruction 1 written at the address = 0 of the program ROM 11 is given to the instruction decoder 13 and decoded. As a result, the instruction 1 is executed, and the data at the “address 0” of the flash memory 15 is read into the “register A”. The “register A” at this time is the register of the register unit (1) 21. It is.

【0042】また、フラッシュメモリ15の最上位アド
レスは切替信号Sによって決定されるので、フラッシュ
メモリ15の「アドレス0」とはフラッシュメモリ15
のアドレス=00000(H)のことである。したがっ
て、フラッシュメモリ15のアドレス=0000(H)
に書き込まれていたデータ90(H)がレジスタ部
(1)21のレジスタAにロードされることになる。
Since the highest address of the flash memory 15 is determined by the switching signal S, “address 0” of the flash memory 15 is
Address = 000000 (H). Therefore, the address of the flash memory 15 = 0000 (H)
Is loaded into the register A of the register section (1) 21.

【0043】プログラムカウンタ部(1)31は、現在
のアドレスに1加算した値1を次の命令アドレス1とし
て保持する。これで命令1は動作終了し、次の命令サイ
クル(命令サイクル2)に入る。
The program counter (1) 31 holds the value 1 obtained by adding 1 to the current address as the next instruction address 1. This completes the operation of the instruction 1 and enters the next instruction cycle (instruction cycle 2).

【0044】この時、切替信号Sが反転し、“1”にな
るので、プログラムROM11の命令アドレスはプログ
ラムカウンタ部(2)32の出力、すなわち“0”とな
る。よって、再びプログラムROM11アドレス=0の
命令1が実行されるが、今度はレジスタ部(2)22が
動作するので、その際の「レジスタA」とはレジスタ部
(2)22のレジスタである。フラッシュメモリ15の
「アドレス0」とは今度はフラッシュメモリ15のアド
レス=1000(H)のことであり、よって、レジスタ
部(2)22のレジスタAにデータ70(H)がロード
されることになる。
At this time, since the switching signal S is inverted and becomes "1", the instruction address of the program ROM 11 becomes the output of the program counter (2) 32, that is, "0". Therefore, the instruction 1 of the program ROM 11 address = 0 is executed again, but this time the register unit (2) 22 operates, and the “register A” at this time is the register of the register unit (2) 22. The “address 0” of the flash memory 15 means that the address of the flash memory 15 = 1000 (H), and thus the data 70 (H) is loaded into the register A of the register section (2) 22. Become.

【0045】プログラムカウンタ部(2)32は現在の
アドレスに1加算した値1を次の命令アドレス2として
保持する。これで再び命令1は動作終了するが、この命
令サイクルの間、プログラムカウンタ部(1)31やレ
ジスタ部(1)21は変化していない。
The program counter (2) 32 holds the value 1 obtained by adding 1 to the current address as the next instruction address 2. Thus, the operation of the instruction 1 ends again, but the program counter (1) 31 and the register (1) 21 have not changed during this instruction cycle.

【0046】次の命令サイクル(命令サイクル3)に入
ると、切替信号Sが反転し、再び“0”になるので、プ
ログラムROM11の命令アドレスはプログラムカウン
タ部(1)31の出力、すなわち“1”となる。よっ
て、プログラムROM11アドレス=1の命令2が実行
され、レジスタ部(1)21のレジスタBにデータ80
(H)がロードされる。
In the next instruction cycle (instruction cycle 3), the switching signal S is inverted and becomes "0" again. Therefore, the instruction address of the program ROM 11 is the output of the program counter unit (1) 31, that is, "1". ". Therefore, the instruction 2 of the program ROM 11 address = 1 is executed, and the data 80 is stored in the register B of the register section (1) 21.
(H) is loaded.

【0047】以後、同様の処理が繰り返される。Thereafter, the same processing is repeated.

【0048】ここで、レジスタなどのデータの変化の様
子を図5に示す。
FIG. 5 shows how the data in the registers and the like changes.

【0049】命令サイクル毎に切替信号Sのレベル(1
/0)が切り替わる。なお、図5の例では、レジスタな
どの値はその命令サイクルが始まった時点の値を示し
た。例えば、命令サイクル1ではレジスタ部(1)21
のレジスタAにデータ90(H)がロードされるが、こ
の図では命令サイクル2の欄にその値が記されることに
なる。
The level of the switching signal S (1
/ 0) is switched. In the example of FIG. 5, the values of the registers and the like indicate the values at the time when the instruction cycle starts. For example, in the instruction cycle 1, the register unit (1) 21
Data 90 (H) is loaded into the register A of FIG. 2, but the value is written in the column of the instruction cycle 2 in this figure.

【0050】このようにして、2つの処理が命令単位で
時分割で並列に実行される。そのため、消費電流や放射
電磁波は2つの処理によるデータが混在したものにな
る。この場合、2つの処理が命令単位の短い時間で切り
替わるので、2つの影響を分離することは困難である。
また、切替信号Sを“1”または“0”の一方に固定す
るれば、1つの処理だけを通常動作として動かすことも
可能である。したがって、切替信号Sをコントロールす
ることで、通常動作と時分割並列動作を切り替えること
もできる。
In this way, two processes are executed in parallel on a command-by-command basis in a time-sharing manner. Therefore, the consumed current and the radiated electromagnetic wave are data in which the data obtained by the two processes are mixed. In this case, it is difficult to separate the two effects because the two processes are switched in a short time in instruction units.
Further, if the switching signal S is fixed to one of “1” and “0”, only one process can be operated as a normal operation. Therefore, by controlling the switching signal S, the normal operation and the time-division parallel operation can be switched.

【0051】次に、ICカード内に公開鍵暗号方式の秘
密鍵を持たせ、外部から与えられた暗号データを解読す
る際の復号処理の動作を説明する。
Next, a description will be given of the operation of a decryption process when a secret key of the public key cryptosystem is provided in the IC card and the externally provided encrypted data is decrypted.

【0052】図6に復号処理メモリとした用いられるR
AM14とフラッシュメモリ15のデータ領域を示す。
図6(a)がフラッシュメモリ15、同図(b)がRA
M14のデータ領域である。ここでは、秘密鍵の長さを
2048ビットとし、暗号化データ(復号すべきデー
タ)も2048ビットの場合を示した。
FIG. 6 shows R used as a decoding memory.
2 shows data areas of the AM 14 and the flash memory 15.
FIG. 6A shows the flash memory 15, and FIG.
This is the data area of M14. Here, a case is shown where the length of the secret key is 2048 bits and the encrypted data (data to be decrypted) is also 2048 bits.

【0053】秘密鍵はICカードに事前に秘密裏に書き
込まているが、復号処理が始まる時点には、暗号化デー
タ、偽の暗号化データ、偽の秘密鍵も書き込まれている
ものとする。
It is assumed that the secret key is written in secret on the IC card in advance, but the encrypted data, the fake encrypted data, and the fake secret key are also written at the time of starting the decryption process.

【0054】暗号化データはICカード外部から受け取
った復号すべきデータであり、本来の秘密情報(秘密
鍵)に基づく処理で用いられるものである。一方、偽の
暗号化データと偽の秘密鍵は秘密情報(秘密鍵)を用い
ない偽の処理で用いられるものであり、これらはICカ
ード内で乱数的に発生させた値である。なお、これらの
データを復号処理が始まるまでに作り出して書き込んで
おく動作は、本発明の本質ではないので、ここでは説明
を省略する。また、そのために必要となる若干のハード
ウェア構成なども簡単のために省略してある。
The encrypted data is data to be decrypted received from outside the IC card, and is used in processing based on the original secret information (secret key). On the other hand, the fake encrypted data and the fake secret key are used in fake processing that does not use secret information (secret key), and are values generated randomly in the IC card. Note that the operation of creating and writing these data before the start of the decoding process is not the essence of the present invention, and a description thereof will be omitted here. Also, some hardware configurations required for that purpose are omitted for simplicity.

【0055】暗号化データと偽の暗号化データはRAM
14の所定の領域に書き込まれ、偽の秘密鍵はフラッシ
ュメモリ15の所定の領域に書き込まれる。ここで、復
号化処理を行う場合に、切替信号Sが命令サイクル毎に
切り替わり、時分割並列で以下のような処理が実行され
る。
The encrypted data and the fake encrypted data are stored in RAM.
14, and the fake secret key is written to a predetermined area of the flash memory 15. Here, when performing the decoding processing, the switching signal S is switched for each instruction cycle, and the following processing is executed in time division parallel.

【0056】すなわち、フラッシュメモリ15のアドレ
ス=0000(H)からアドレス=00FF(H)まで
の領域の値を秘密鍵として使用して、RAM14のアド
レス=0000(H)からアドレス=00FF(H)ま
での領域のデータを復元処理することにより、その復号
データをRAM14のアドレス=0100(H)からア
ドレス=01FF(H)までの領域に書き込む。
That is, using the value of the area from the address = 0000 (H) to the address = 00FF (H) of the flash memory 15 as the secret key, the address of the RAM 14 from the address = 0000 (H) to the address = 00FF (H) is used. The decoded data is written in the area from the address = 0100 (H) to the address = 01FF (H) in the RAM 14 by restoring the data in the area up to.

【0057】ここで、前述した命令単位の処理の切替に
より、1つの処理は本来の暗号化データを秘密鍵で復元
して、その復号データをRAM14のアドレス=010
0(H)からアドレス=01FF(H)に書き込むこと
になるが、もう一方の処理は、フラッシュメモリ15の
アドレス=1000(H)からアドレス=10FF
(H)に書き込まれた偽の秘密鍵を用いて、RAM14
のアドレス=1000(H)からアドレス=10FF
(H)に書き込まれた偽の暗号化データを復元し、その
偽の復号データをRAM14のアドレス=1100
(H)からアドレス=11FF(H)に書き込むことに
なる。
Here, by switching the processing in units of instructions as described above, in one processing, the original encrypted data is restored using the secret key, and the decrypted data is stored in the RAM 14 at the address = 010.
From 0 (H) to address = 01FF (H), the other processing is from address = 1000 (H) of flash memory 15 to address = 10FF.
Using the fake secret key written in (H), the RAM 14
Address = 1000 (H) to address = 10FF
The fake encrypted data written in (H) is restored, and the fake decrypted data is stored in the RAM 14 at the address = 1100.
From (H), data is written to address = 11FF (H).

【0058】この2つの処理は命令サイクル単位で交互
に実行される。したがって、ICカード外部で消費電流
や放射電磁波を測定したとしても、本当の処理と偽の処
理で発生する両方の消費電流や放射電磁波が混合されて
測定される。この場合、命令単位の短い時間で2つの処
理が切り替わっているので、この2つの処理の影響を分
離することは困難であり、その結果、ICカードの消費
電流や電磁放射を測定しても秘密鍵(秘密データ)を知
ることは困難となる。
These two processes are executed alternately in instruction cycle units. Therefore, even if the consumed current and the radiated electromagnetic wave are measured outside the IC card, both the consumed current and the radiated electromagnetic wave generated in the real processing and the fake processing are mixed and measured. In this case, it is difficult to separate the effects of the two processes because the two processes are switched in a short time in the unit of an instruction. As a result, even if the current consumption and the electromagnetic radiation of the IC card are measured, there is no secret. It is difficult to know the key (secret data).

【0059】また、偽の暗号化データと偽の秘密鍵は毎
回乱数的にICカード内で発生されるため、偽の処理に
よる消費電流、放射電磁波の値は毎回異なる。したがっ
て、たとえ各種の暗号化データをICカード外部から与
えて復号処理させ、そのときの消費電流や放射電磁波の
違いを比較解析したとして、ICカードが保有する秘密
鍵を探ることはできない。
Further, since the fake encrypted data and the fake secret key are generated in the IC card in random numbers each time, the current consumption and the value of the radiated electromagnetic wave due to the fake processing are different each time. Therefore, even if various types of encrypted data are given from outside the IC card and subjected to decryption processing and differences in current consumption and radiated electromagnetic waves at that time are compared and analyzed, it is impossible to search for a secret key held by the IC card.

【0060】なお、前記実施形態では、切替信号Sは命
令単位で変化するとしたが、短い時間であれば他の単位
でも良い。例えば、複数命令単位、命令を更に分割した
時間単位、まとまった処理単位などでも良い。
In the above embodiment, the switching signal S changes in units of instructions. However, other units may be used as long as they are short. For example, it may be a unit of a plurality of instructions, a unit of time obtained by further dividing an instruction, or a unit of processing.

【0061】また、切替信号Sを命令単位で反転させ、
2つの処理を交互に実行するようにしたが、2つの命令
サイクルを一組として、前のサイクルで処理するものと
後のサイクルで処理するものを、2命令サイクル毎にラ
ンダムに決めても良い。そうすると、処理の順序がラン
ダムに切り替わるため、消費電流や電磁波から2つの処
理の影響を分離するのは一層困難となる。
Further, the switching signal S is inverted for each instruction,
Although the two processes are executed alternately, two instruction cycles may be set as a set, and the one to be processed in the previous cycle and the one to be processed in the subsequent cycle may be randomly determined every two instruction cycles. . Then, since the order of the processes is switched at random, it becomes more difficult to separate the effects of the two processes from the current consumption and the electromagnetic wave.

【0062】また、命令サイクル毎に切替信号Sの値を
ランダムに決めるようにしても良い。その場合、時折、
同一の処理が連続したりして、処理の切り替わりが不規
則となるので、消費電流や電磁波から2つの処理の影響
を分離するのが更に困難となる。
The value of the switching signal S may be randomly determined for each instruction cycle. In that case, occasionally,
Since the same processing is repeated or the processing is switched irregularly, it becomes more difficult to separate the effects of the two processings from the current consumption and electromagnetic waves.

【0063】また、2つの処理を時分割で並列に行った
が、同じ電源ラインで動作する2つのハードウェアを1
つのLSI内に持ち、完全に並列動作させても良い。
Although the two processes were performed in parallel in a time-division manner, two hardwares operating on the same power supply line
It may be held in one LSI and operated completely in parallel.

【0064】また、2つの処理を並列動作させたが、3
つ以上でも良い。この場合、処理が多い方が効果が高く
なる。
Although the two processes were operated in parallel,
More than one. In this case, the more the processing, the higher the effect.

【0065】逆に、本当の処理のサイクルより少ない割
合で偽の処理を混ぜて時分割並列的に行うようにしても
良い。
Conversely, false processing may be mixed at a rate smaller than the real processing cycle and performed in a time-division parallel manner.

【0066】また、偽の処理も本当の処理と全く同一の
プログラムで動作させたが、全く異なるプログラムでも
良い。例えば、通常なら本当の処理の前または後に行っ
たであろう意味のある処理を、並列に行って偽の処理の
代わりとしても良い。但し、その場合は乱数的な要素が
少ないので、その時の処理は注意深く選ぶ必要がある。
Although the fake processing is operated by the same program as the real processing, it may be a completely different program. For example, meaningful processing that would normally have been performed before or after the real processing may be performed in parallel to replace the fake processing. However, in that case, there are few random elements, so the processing at that time must be carefully selected.

【0067】また、CPUによるプログラムでの処理で
あったが、専用ハードウェアで処理されていても良い。
その際、例えば専用ハードウェアを時分割に駆動すれば
良い。
Although the processing is performed by the CPU using a program, the processing may be performed by dedicated hardware.
At this time, for example, dedicated hardware may be driven in a time-division manner.

【0068】また、RAM14とフラッシュメモリ15
とを完全に2つの処理で使用する部分に分割したが、共
通に利用する部分を設けることでも良い。
The RAM 14 and the flash memory 15
Is completely divided into parts used in two processes, but a part commonly used may be provided.

【0069】また、データROM16はすべて2つの処
理で共通に利用する資源として用いたが、2つの処理で
共通に利用しない部分があっても良い。
Although the data ROM 16 is used as a resource commonly used in the two processes, there may be a portion that is not commonly used in the two processes.

【0070】また、RAM14やフラッシュメモリ15
などの切替えられる回路は完全に2つの処理で排他的に
利用されるとしたが、例えば動作モードを設け、その動
作モードの設定によっては、一時的に共通に利用できる
ようにしても良い。この場合、例えばRAM14やフラ
ッシュメモリ15に切替信号Sを直接入れないで、レジ
スタブロック17から指定される最上位アドレスと選択
できるようにすれば良い。
The RAM 14 and the flash memory 15
Although the switched circuit such as is used exclusively for the two processes, for example, an operation mode may be provided, and depending on the setting of the operation mode, the circuit may be temporarily used in common. In this case, for example, the switching signal S may not be directly input to the RAM 14 or the flash memory 15 but may be selected as the highest address specified from the register block 17.

【0071】[0071]

【発明の効果】以上詳記したように本発明によれば、秘
密情報を用いた処理の実行中に偽の処理を時分割並列的
に実行する構成としたため、秘密情報を用いた本当の処
理と、秘密情報を用いない偽の処理とが短い時間で切り
替わるので、消費電流や電磁波に偽の処理の影響が混入
することになり、その時の消費電流や電磁波を測定解析
しても、秘密情報を知ることは困難となる。
As described above in detail, according to the present invention, a false process is executed in a time-division parallel manner during execution of a process using secret information. And the fake process that does not use secret information are switched in a short time, so that the influence of the fake process is mixed into the current consumption and electromagnetic waves. It will be difficult to know.

【0072】また、偽の処理で用いられるデータが乱数
的に発生されるため、そのデータが毎回異なり、しか
も、外部から知ることはできない。したがって、外部か
ら各種のデータを与えて処理させて、各処理での消費電
流や電磁波の違いを比較解析しても、秘密情報を知るこ
とはできない。
Further, since the data used in the fake processing is generated in a random manner, the data is different each time and cannot be known from outside. Therefore, even if various types of data are given from the outside and processed, and differences in current consumption and electromagnetic waves in each process are compared and analyzed, secret information cannot be known.

【0073】また、偽の処理も本当の処理と同じプログ
ラムで動作するので、消費電流や電磁波へ混入する偽の
処理の影響も本物らしいものとなり、2つの影響を解析
して分離することは一層困難となる。
Further, since the fake processing operates according to the same program as the real processing, the influence of the fake processing mixed into the current consumption and the electromagnetic wave is also genuine, and it is more difficult to analyze and separate the two effects. It will be difficult.

【0074】また、このように消費電流や電磁波を測定
されても秘密情報を知ることが困難であることから、消
費電流や電磁波を測定しにくくするハード的な工夫(シ
ールドなど)が不要である。
In addition, since it is difficult to know secret information even when the current consumption and the electromagnetic wave are measured, it is not necessary to provide a hardware device (such as a shield) that makes it difficult to measure the current consumption and the electromagnetic wave. .

【0075】また、複数の処理で共有化できないハード
ウェアと共有化可能なハードウェアとを適宜切替えられ
て時分割並列処理を実行し、その中の少なくとも1つの
処理で秘密情報に基づく処理を行うようにしたため、O
Sなどのソフトウェア処理による切替処理を不要として
高速処理を実現できる。
In addition, hardware that cannot be shared by a plurality of processes and hardware that can be shared can be appropriately switched to execute time-division parallel processing, and at least one of the processes performs a process based on secret information. O
High-speed processing can be realized by eliminating the need for switching processing by software processing such as S.

【0076】さらに、時分割により、本当の処理と偽の
処理で多くの共通のハードウェアが使用されるので、本
当の処理と偽の処理の電磁波の放射位置がほとんど同じ
ものとなり、全く異なるハードウェアから偽の電磁波を
放射するよりも分離が困難となる。
Furthermore, since the time division allows a lot of common hardware to be used for the real processing and the fake processing, the radiation positions of the electromagnetic waves in the real processing and the fake processing become almost the same, and completely different hardware is used. Separation is more difficult than radiating fake electromagnetic waves from wear.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の情報処理装置の実施形態として用いら
れるICカードにおけるLSI内部構成を示すブロック
図。
FIG. 1 is a block diagram showing an internal configuration of an LSI in an IC card used as an embodiment of the information processing apparatus of the present invention.

【図2】前記ICカードに設けられたレジスタブロック
の内部構成を示すブロック図。
FIG. 2 is a block diagram showing an internal configuration of a register block provided in the IC card.

【図3】前記ICカードに設けられたプログラムカウン
タブロックの内部構成を示すブロック図。
FIG. 3 is a block diagram showing an internal configuration of a program counter block provided in the IC card.

【図4】前記ICカードに設けられたプログラムカウン
タブロックに書き込まれた命令例を示す図。
FIG. 4 is a view showing an example of an instruction written in a program counter block provided in the IC card.

【図5】前記ICカードに設けられたレジスタなどのデ
ータ遷移を示す図。
FIG. 5 is a view showing data transition of a register and the like provided in the IC card.

【図6】前記ICカード内に秘密鍵を持たせ、外部から
与えられた暗号データを復号化する場合でのRAMとフ
ラッシュメモリのデータ領域を示す図。
FIG. 6 is a diagram showing a data area of a RAM and a flash memory in a case where a secret key is provided in the IC card and encrypted data provided from the outside is decrypted.

【符号の説明】 11…プログラムROM 12…プログラムカウンタブロック 13…命令デコーダ 14…RAM 15…フラッシュメモリ 16…データROM 17…レジスタブロック 18…演算部 19…時分割処理制御部 21…レジスタ部(1) 22…レジスタ部(2) 23…セレクタ(1) 24…セレクタ(2) 25…セレクタ(3) 26…セレクタ(4) 31…プログラムカウンタ部(1) 32…プログラムカウンタ部(2) 33…セレクタ(5) 34…セレクタ(6) 35…インバータ a…外部アドレスバス b…外部データバス c…内部データバス S…切替信号 RC…レジスタ制御信号[Description of Signs] 11 Program ROM 12 Program counter block 13 Instruction decoder 14 RAM 15 Flash memory 16 Data ROM 17 Register block 18 Arithmetic unit 19 Time division processing control unit 21 Register unit (1 22 ... Register (2) 23 ... Selector (1) 24 ... Selector (2) 25 ... Selector (3) 26 ... Selector (4) 31 ... Program Counter (1) 32 ... Program Counter (2) 33 ... Selector (5) 34 ... Selector (6) 35 ... Inverter a ... External address bus b ... External data bus c ... Internal data bus S ... Switching signal RC ... Register control signal

Claims (5)

【特許請求の範囲】[Claims] 【請求項1】 秘密情報を記憶した記憶手段と、 この記憶手段に記憶された前記秘密情報に基づく処理の
実行中に、他の処理を周期的に時分割して実行する並列
処理手段とを具備したことを特徴とする情報処理装置。
1. A storage unit for storing secret information, and a parallel processing unit for periodically performing time-divisional execution of another process during execution of a process based on the secret information stored in the storage unit. An information processing apparatus, comprising:
【請求項2】 複数の処理で共通に利用できる資源であ
る共通利用手段と、 複数の処理で共通に利用できない資源である非共通利用
手段と、 前記共通利用手段と前記共通利用手段とを所定の周期で
切り替える切替手段と、 この切替手段によって前記共通利用手段と前記非共通利
用手段とを切替えながら、複数の処理を時分割並列的に
実行し、前記非共通利用手段が実行する少なくとも1つ
の処理で秘密情報に基づく処理を行う制御手段とを具備
したことを特徴とする情報処理装置。
2. A method according to claim 1, wherein the common use means is a resource which can be commonly used in a plurality of processes, the non-common use means is a resource which cannot be commonly used in a plurality of processes, and the common use means and the common use means are predetermined. Switching means for switching at a cycle of: a plurality of processes are executed in a time-division parallel manner while switching between the common use means and the non-common use means by the switch means, and at least one of the non-common use means executed by the non-common use means An information processing apparatus comprising: control means for performing processing based on secret information in processing.
【請求項3】 前記切替手段による切替単位は命令単位
であることを特徴とする請求項2記載の情報処理装置。
3. The information processing apparatus according to claim 2, wherein a switching unit by said switching means is a command unit.
【請求項4】 前記秘密情報に基づく処理と同秘密情報
を用いない処理とが同じプログラムに従う処理であるこ
とを特徴とする請求項2記載の情報処理装置。
4. The information processing apparatus according to claim 2, wherein the processing based on the secret information and the processing not using the secret information are processing according to the same program.
【請求項5】 前記秘密情報を用いない処理で用いられ
る情報が乱数的に発生されることを特徴とする請求項2
記載の情報処理装置。
5. The method according to claim 2, wherein the information used in the processing not using the secret information is randomly generated.
An information processing apparatus according to claim 1.
JP10364954A 1998-12-22 1998-12-22 Information processor Pending JP2000187618A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10364954A JP2000187618A (en) 1998-12-22 1998-12-22 Information processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10364954A JP2000187618A (en) 1998-12-22 1998-12-22 Information processor

Publications (1)

Publication Number Publication Date
JP2000187618A true JP2000187618A (en) 2000-07-04

Family

ID=18483076

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10364954A Pending JP2000187618A (en) 1998-12-22 1998-12-22 Information processor

Country Status (1)

Country Link
JP (1) JP2000187618A (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000305453A (en) * 1999-04-21 2000-11-02 Nec Corp Ciphering device, deciphering device, and ciphering and deciphering device
JP2006520565A (en) * 2003-03-14 2006-09-07 アクサルト・エス・アー Process of security for electronic units with cryptographic processors
WO2010030067A2 (en) * 2008-09-11 2010-03-18 Electronics And Telecommunications Research Institute Method for generating electromagnetic waves using software
JP2011239461A (en) * 2004-06-08 2011-11-24 Hrl Laboratories Llc Cryptographic architecture with instruction masking and other techniques for thwarting differential power analysis
JP2013143652A (en) * 2012-01-10 2013-07-22 Canon Inc Information processing apparatus and information processing method
JP2013143653A (en) * 2012-01-10 2013-07-22 Canon Inc Information processing apparatus and information processing method

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000305453A (en) * 1999-04-21 2000-11-02 Nec Corp Ciphering device, deciphering device, and ciphering and deciphering device
JP2006520565A (en) * 2003-03-14 2006-09-07 アクサルト・エス・アー Process of security for electronic units with cryptographic processors
JP2011239461A (en) * 2004-06-08 2011-11-24 Hrl Laboratories Llc Cryptographic architecture with instruction masking and other techniques for thwarting differential power analysis
JP2013141323A (en) * 2004-06-08 2013-07-18 Hrl Lab Llc Cryptographic architecture with instruction masking and other techniques for disturbing differential power analysis
JP2013167897A (en) * 2004-06-08 2013-08-29 Hrl Lab Llc Cryptographic architecture with instruction masking and other techniques for thwarting differential power analysis
WO2010030067A2 (en) * 2008-09-11 2010-03-18 Electronics And Telecommunications Research Institute Method for generating electromagnetic waves using software
WO2010030067A3 (en) * 2008-09-11 2010-05-27 Electronics And Telecommunications Research Institute Method for generating electromagnetic waves using software
US8499110B2 (en) 2008-09-11 2013-07-30 Electronics And Telecommunications Research Institute Method of generating useful electromagnetic waves by controlling electromagnetic wave noise generated from bus within computer by means of software
JP2013143652A (en) * 2012-01-10 2013-07-22 Canon Inc Information processing apparatus and information processing method
JP2013143653A (en) * 2012-01-10 2013-07-22 Canon Inc Information processing apparatus and information processing method

Similar Documents

Publication Publication Date Title
US20220138349A1 (en) Cryptographic architecture for cryptographic permutation
US4764959A (en) Single-chip microcomputer with encryptable function on program memory
US6064740A (en) Method and apparatus for masking modulo exponentiation calculations in an integrated circuit
US9740863B2 (en) Protecting a secure boot process against side channel attacks
EP1711887B1 (en) Protection against power analysis attacks
JP2001230771A (en) Data processor and its operation method
US9735953B2 (en) Side channel analysis resistant architecture
US20200228306A1 (en) Configuring a device based on a dpa countermeasure
CN107924444B (en) Secure modular exponentiation processor, method, system, and instructions
JP2005503069A (en) How to protect the amount of secrets
US20210006391A1 (en) Data processing method, circuit, terminal device and storage medium
US20020065574A1 (en) Data processor, semiconductor integrated circuit and CPU
CN112948840A (en) Access control device and processor comprising same
JP2000187618A (en) Information processor
JPH1185507A (en) Central processor and microcomputer system
KR100209762B1 (en) Reset apparatus and operation mode regulating method using its
US6584514B1 (en) Apparatus and method for address modification in a direct memory access controller
JPH07219852A (en) Semiconductor memory device
JP2006254099A (en) Microprocessor
JPH04359323A (en) Microcomputer
US7246218B2 (en) Systems for increasing register addressing space in instruction-width limited processors
US20030233560A1 (en) Method for protecting program in microcomputer
KR20040050742A (en) Apparatus for public key cryptography on the prime field
Ambardar et al. Implementation of Secured MIPS Pipeline Processor using RC6 Algorithm with Vhdl
CN112487448A (en) Encrypted information processing device and method and computer equipment