JP2004347975A - データ処理装置及び論理演算装置 - Google Patents
データ処理装置及び論理演算装置 Download PDFInfo
- Publication number
- JP2004347975A JP2004347975A JP2003146491A JP2003146491A JP2004347975A JP 2004347975 A JP2004347975 A JP 2004347975A JP 2003146491 A JP2003146491 A JP 2003146491A JP 2003146491 A JP2003146491 A JP 2003146491A JP 2004347975 A JP2004347975 A JP 2004347975A
- Authority
- JP
- Japan
- Prior art keywords
- data
- bit
- input
- combination
- signal lines
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/0008—Arrangements for reducing power consumption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Logic Circuits (AREA)
- Storage Device Security (AREA)
Abstract
【解決手段】入力側の2本の信号線I1,I2あるいは出力側の2本の信号線O1,O2の状態が(1,0)である場合を値1を持つ1ビット・データとし、(0,1)である場合を値0を持つ1ビット・データとし、レジスタ1,2は、CTLR信号がhighの状態で、(1,0)又は(0,1)で表される1ビット・データをCLK信号に従って入力し一旦保持するとともに、保持していた(1,0)又は(0,1)で表される1ビット・データを出力する。他方、CTLR信号がlowの状態では、(0,0)で表される無効なデータが与えられるが、レジスタ1,2は、該無効なデータは取り込まない。また、このとき、AND回路6,7により、無効なデータ(0,0)が出力される。
【選択図】 図1
Description
【発明の属する技術分野】
本発明は、データを処理するデータ処理装置及び論理演算を行う論理演算装置に関する。
【0002】
【従来の技術】
マイクロコンピュータなどのように演算処理装置を備えたLSIにおいて、暗号演算を行う際の演算処理中の消費電力を測定し、その消費電力からLSIに納められている鍵情報を取り出すという電力差分攻撃(DPA:Differential Power Analysis)がある(例えば、非特許文献1参照)。
【0003】
DPAによる攻撃では、最初に、複数のデータをLSIに入力して、それぞれの消費電力を測定する。次に、暗号演算回路内にある鍵情報の推定を行う。この推定した鍵情報と消費電力との間に相関がある場合、その相関値を計算したとき、推定した値が正しいときに大きな相関値となり、推定が間違っているときに小さな相関値となる。DPAは、この原理を用いて、消費電力を測定することにより暗号演算回路内部の鍵情報を取り出すという攻撃方法である。
【0004】
DPAによる攻撃は、破壊行為を伴わない攻撃であるため、外見を見ただけでは攻撃され鍵情報が取り出されたかどうか判断できず、不正利用による被害が拡大するおそれがある。このため、暗号演算回路においてDPAへの対策が必須となっている。
【0005】
ところで、CMOS(Complemetary Metal−Oxide Semiconductor)デバイスを用いて製作された演算処理装置を備えたLSIにおいては、同期信号を用い、1線で1ビットのデータを表している。このような回路構成のLSIにおける消費電力は、CMOSの特性により、処理しているデータ及びその前のデータに依存して変動する。
【0006】
以下、CMOSデバイスのNOT素子の動作と消費電力について説明する。
【0007】
CMOSによるNOT素子は、通常、供給電源線Vcc、グランド線GND、VccとGNDとの間に直列に接続されたnMOS及びpMOS、両MOSのゲートに接続された入力信号線、nMOSとMOSとの接続線に接続された出力信号線、出力信号線とGNDとの間に接続された容量Cを備えている。
【0008】
このNOT素子の入力がhigh(もしくは、1)のとき、nMOSが導通状態となるため、容量Cの正の電荷はnMOSを介してGndに流れるため、出力の電位はlow(もしくは、0)になる。ここで、highとは、演算処理装置内で論理的に1と認識される電位であり、lowとは0と認識される電位である。
【0009】
逆に、入力がlowの場合、pMOSが導通状態となる一方で、nMOSは非通電状態となる。このpMOSが導通状態となることで、Vccから正の電荷が容量Cに蓄積され、出力はhighとなる。
【0010】
入力の遷移が起こらない場合、例えば入力がhighを維持する場合には、pMOSが通電状態のままであり、出力はlowのままとなる。このとき、nMOSは非導通状態であるためGNDに電荷は流れず、電力は消費されない。他方、入力がlowを維持する場合には、nMOSが導通状態となり、出力はhighのままとなる。このとき、pMOSは非導通状態であるので、電荷がGNDに流れることはなく、電力は消費されない。
【0011】
このように、CMOSデバイスは、理想状態としては信号線の状態が変わらない場合には電力を消費しないため、CMOSデバイスでLSIを作ると低消費電力とすることができる。
【0012】
さて、CMOSデバイスは、状態が遷移するときに、Vccから電荷が流れ、電力を消費する。このため、入力が遷移するCMOSデバイスと、入力が遷移しないCMOSデバイスとでは、消費する電力に差が生じる。このために、信号線の状態の遷移と鍵情報との間に関係がある場合、鍵情報の演算に関係して消費電力が変化する。この消費電力変動が外部から観測可能であり、このような場合、DPAにより鍵情報を特定されることになる。
【0013】
理想的にはCMOSデバイスは信号の遷移以外に電力を消費しないが、実際には、信号の遷移による電力消費以外にも、洩れ電流という電流が流れることで、電力が消費される。この洩れ電流は、入力からpMOS又はnMOS1のゲートを通りドレインに流れたり、VccからpMOS及びnMOS1を通ってGND6に流れたりする電流である。この洩れ電流量は、CMOSデバイスの入力信号線と出力信号線の状態に依存する。
【0014】
以上説明したように、CMOSデバイスを用いたマイクロコンピュータのデータ演算時の消費電力の変動は、信号線の状態遷移を伴わずに信号線の0,1の状態に応じて消費される電力と、遷移する信号線の数とに依存して決まる。
【0015】
CMOSデバイスを用いて、データを1ビットで表した回路構成の場合は、その前の状態により消費電力が変動することとなり、演算しているデータと消費電力との間に大きな相関を持つ。このため、鍵情報に関した演算を行っているときの消費電力の変動が、鍵情報と相関がある場合には、DPAによりマイクロコンピュータ内の鍵情報を推定されることとなる。
【0016】
従来、DPAに対しては、演算中のデータをマスクして演算するという対策がある(例えば、特許文献1参照)。この対策は、鍵情報を用いた演算中の消費電力の変動が鍵情報と相関がなくなるように、鍵情報をマスクして演算を行うという方法である。このように鍵情報をマスクして演算することで、消費電力の変動と鍵情報との間の相関をなくすことでDPAへの対策としている。このように、消費電力の変動と鍵情報との間の相関をなくすことが、DPA対策として有効である。
【0017】
しかし、この方法では、マスク演算のために余分なハードウェアあるいは計算時間が必要になる。
【0018】
【特許文献1】
特開2000−66585
【0019】
【非特許文献1】
Kocher, P, Jaffe, J, and Jun, B. Differential Power Analysis. In Advances in Cryptology of CRYPTO ´99 Springer− Verlag Lecture Notes in Computer Science 1666 p.388−398
【0020】
【発明が解決しようとする課題】
DPAによる攻撃に対する対策としては、中間データを乱数でマスクするという手段を用いないで済ませるには、演算データによらず消費電力を同じにするという対策が考えられる。中間データの値によらず常に一定の消費電力を消費するような回路構成であるならば、消費電力の変動と鍵情報との間に相関はなくなるためにDPA対策となる。このような問題を解決するために、マイクロコンピュータ内において処理しているデータや、その前のデータに依存しない回路構成が必要となる。しかしながら、そのための技術は未だ知られていない。
【0021】
本発明は、上記事情を考慮してなされたもので、演算対象となるデータの内容によらずに消費電力を一定又は概ね一定とすることができるデータ処理装置及び論理演算装置を提供することを目的とする。
【0022】
【課題を解決するための手段】
本発明に係るデータ処理装置は、入力側の複数本の信号線と、出力側の複数本の信号線と、前記入力側の複数本の信号線からデータを入力し、前記出力側の複数本の信号線へデータを出力する電子回路とを備え、前記入力側の複数本の信号線から入力されるデータ及び前記出力側の複数本の信号線へ出力されるデータを、当該複数本の信号線のビット状態の組合せにより値が定まる1ビット・データとして扱うことを特徴とする。
【0023】
好ましくは、前記1ビット・データの値として0を与える場合の前記複数本の信号線に係る第1のビット状態の組合せの持つハミング重みと、前記1ビット・データの値として1を与える場合の前記複数本の信号線に係る第2のビット状態の組合せの持つハミング重みとを均等又は概ね均等にするようにしてもよい。
【0024】
これによって、静的消費電力をデータによらず一定又は概ね一定とすることができる。
【0025】
また、好ましくは、前記複数本の信号線に係るビット状態の組み合わせとして、前記1ビット・データの値として0を与える第1のビット状態の組合せ又は0を与える第2のビット状態の組合せが入出力される稼働相と、無効なデータを表す前記第1又は第2のビット状態のいずれとも異なる第3のビット状態の組み合わせが入出力される休止相の区別を示す制御信号を入力する手段を更に備えるようにしてもよい。好ましくは、前記第3のビット状態の組合せと前記第1のビット状態の組合せとの間のハミング距離と、前記第3のビット状態の組合せと前記第2のビット状態の組合せとの間のハミング距離とを均等又は概ね均等にするようにしてもよい。
【0026】
これによって、静的消費電力及び動的消費電力をデータによらず一定又は概ね一定とすることができる。
【0027】
また、本発明に係る論理演算回路は、第1及び第2の2本の信号線のビット状態の組合せにより値が定まる1ビット・データを入力し一旦保持した後に出力する第1のデータ保持回路と、第1及び第2の2本の信号線のビット状態の組合せにより値が定まる1ビット・データを入力し一旦保持した後に出力する第2のデータ保持回路と、前記第1のデータ処理装置の出力側の第1の信号線を第1の入力データとし、前記第2のデータ処理装置の出力側の第1の信号線を第2の入力データとし、該第1の入力データ及び該第2の入力データをもとにした第1の論理演算を行って、その結果を出力する第1の論理演算回路と、前記第1のデータ処理装置の出力側の第2の信号線を第1の入力データとし、前記第2のデータ処理装置の出力側の第2の信号線を第2の入力データとし、該第1の入力データ及び該第2の入力データをもとにした第2の論理演算を行って、その結果を出力する第2の論理演算回路と、前記第1の論理演算回路の出力側の信号線及び前記第2の論理演算回路の出力側の信号線の2本の信号線で与えられる第3のビット・データを入力し一旦保持した後に出力する第3のデータ保持回路とを備えたことを特徴とする。
【0028】
なお、装置に係る本発明は方法に係る発明としても成立し、方法に係る本発明は装置に係る発明としても成立する。
【0029】
本発明によれば、演算対象となるデータの内容によらずに消費電力を一定又は概ね一定とすることができる。
【0030】
従って、本発明に係る装置を暗号演算回路に適用すれば、電力差分攻撃へ対策することができる。
【0031】
【発明の実施の形態】
以下、図面を参照しながら発明の実施の形態を説明する。
【0032】
最初に、本実施形態の基本的な構成について説明する。
【0033】
本実施形態では、データパス部のハミング重みを一定(または、ほぼ一定)にするために、従来は1本の信号線で1ビットを表現していたものを、1ビットのデータを表すのに信号線を2本以上用いる。
【0034】
すなわち、n(nは2以上)本の信号線で与えられるデータを、nビットのデータとして扱うのではなく、当該n本の信号線のビット状態の組合せにより値が定まる1ビット・データとして扱う。
【0035】
なお、以下では、1ビットのデータを表すのに信号線を2本用いる構成を中心に説明する。
【0036】
従来のように1本の信号線で1ビットのデータを表す場合、信号線の1または0の状態がそのまま1ビットのデータの値に対応するが、1ビットのデータを表すのに2本の信号線を用いて表現する場合のデータの表現方法としては、2本の信号線を組み合わせて、1線式において“high(もしくは、1)”と表した状態(当該ビットの値=1に対応する状態)を2線式では(1,0)と符号化して表し(すなわち、第1の信号線が状態1をとり、第2の信号線が状態0をとる)、1線式において“low(もしくは、0)”と表した状態(当該ビットの値=0に対応する状態)を(0,1)と符号化して表す(すなわち、第1の信号線が状態0をとり、第2の信号線が状態1をとる)、といった表現方法を導入する。もちろん、1線式において“1”と表した状態を2線式では(0,1)で、“0”と表した状態を(1,0)で表す表現方法も可能である。これらの場合、データパス部のハミング重みは1で一定となる。
【0037】
このようにデータパス部のデータを符号化し、1ビットを2本の信号線で表すという2線化を行うことで、CMOSデバイスを用いて製作された演算処理装置内において、データの内容にかかわらずに、鍵情報を演算するデータパス部における状態1を持つ信号線の数と、状態0を持つ信号線の数とを等しくすることができる。
【0038】
データパス部におけるハミング重み(状態1を持つ信号線の数)を一定にすることができる理由を説明する。従来のように1線で1ビットを表す1線式では、ビット値=0を表すときのハミング重みは0となり、ビット値=1を表すときのハミング重みは1となる。他方、本実施形態のように例えば2本の信号線で1ビットを表現する2線式では、ビット値=0を表すときのハミング重みとビット値=1を表すときのハミング重みはいずれも1となる。このように、2線式では、データの内容にかかわらずにハミング重みは同じ値になるため、データパス部のハミング重みは演算中に一定となるのである。
【0039】
信号線の遷移に伴わずに消費される電力(スタティック消費電力)は、データパス部のハミング重みに依存することから、2線式にすることでデータによらずスタティック消費電力を一定とすることが可能となる。これによって、スタティック消費電力と鍵情報との間の相関をなくすことができる。
【0040】
従って、このような構成を暗号演算回路に適用すれば、電力差分攻撃へ対策することができる。
【0041】
また、本実施形態では、次のようにデータが有効であるフェイズ(稼働相)とデータが無効であるフェイズ(休止相)とを設ける2相方式を採用すると好ましい。
【0042】
まず、上記のように符号化された有効なデータがデータパス部を流れるときを稼働相とする。また、状態遷移する信号線の数を一定(または、ほぼ一定)にするため無効なデータ(非データ)がデータパス部を流れるときを休止相とする。
【0043】
例えば、2線式において、1ビットのデータが上記のように(1,0)または(0,1)で表されるのに対して、それらのいずれとの間の遷移についてもハミング距離を同じくする(0,0)または(1,1)を非データとする。(0,0)は第1及び第2の信号線がいずれも状態0をとり、(1,1)は第1及び第2の信号線がいずれも状態1をとるものである。
【0044】
このように、稼働相のときにデータを流し、休止相のときに非データを流すようにすることで、休止相を挟んで隣接するデータ間の依存関係をなくすることができる。これは、休止相により1ビットを表す2本の信号線が(0,0)または(1,1)という非データを表す状態に遷移するため、後続するデータは、直前のデータ(休止相を挟んで隣接するデータ)とは無関係となり、休止相にある非データとの間の相違だけで関係するからである。
【0045】
また、2線化された信号線を(1,0)または(0,1)という本来のデータの状態から一旦(0,0)または(1,1)という本来のデータではない非データの状態に遷移させることで、データの内容によらずに1から0または0から1へ状態遷移する信号線の数を一定にし、これによって、データの内容によらず信号線の遷移による消費電力(ダイナミック消費電力)を一定とすることができる。この結果、ダイナミック消費電力と鍵情報との間の相関をなくすことができる。
【0046】
従って、このような構成を暗号演算回路に適用すれば、電力差分攻撃へ対策することができる。
【0047】
ここで、稼働相と休止相とを例えば交互に設けた場合を考える。例えば、図2にあるように、同期信号CLKの立ち上がりのタイミングに合わせて、制御信号線をhigh,lowと交互に繰り返すようにし、この制御信号に従ってデータパス部を稼働相と休止相が交互に繰り返すようにする(なお、図2では稼働相と休止相とを同期信号CLKの立ち下がりのタイミングで切り替えたが、同期信号CLKの立ち下がりのタイミングで切り替えるようにしてもよい)。
【0048】
この場合、稼働相における信号線の状態は(1,0)または(0,1)であり、休止相における信号線の状態は(0,0)または(1,1)であるので、遷移状態としては、稼働相から休止相への遷移では、(1,0)→(0,0)、(1,0)→(1,1)、(0,1)→(0,0)、または(0,1)→(1,1)、休止相から稼働相への遷移では、(0,0)→(1,0)、(0,0)→(0,1)、(1,1)→(1,0)、(1,1)→(0,1)となり、いずれも、状態遷移する信号線の数は1つで一定となる。
【0049】
なお、上記した2線式2相方式の回路構成において、同期信号の立ち上がり(または、立ち下がり)において休止相とするために、データを保持するレジスタは、休止相のデータを内部で保持しないように、入力信号を監視し、休止相であり非データを検出した場合には、レジスタの入力を内部に取り込まないようにし、他方、稼働相のデータを検出した場合には、同期信号の立ち上がり(または、立ち下がり)において入力を内部に取り込むようにするという回路構成にするのが望ましい。
【0050】
また、休止相または稼働相を示す制御信号線を用意し、休止相の場合にはデータパス部に非データが流れるようにレジスタの出力部にAND素子またはOR素子を入れ、制御信号線に応じて、非データがレジスタの先にある組合せ回路へ入力されるようにしてもよい。
【0051】
以下では、2線式2相方式の回路の具体例をいくつか示す。
【0052】
最初に、稼働相において入力データを内部に保持し、休止相においては入力データを取り込まない2線式2相方式のデータ保持回路(レジスタ)の構成例について説明する。
【0053】
図1に、2線化されたデータを保持するデータ保持回路の構成例を示す。本データ保持回路は、第1のレジスタ1と、第2のレジスタ2と、監視回路3と、第1のAND回路6と、第2のAND回路7とを含む。監視回路3は、OR回路4とAND回路5とを含む。なお、図3に、第1及び第2のレジスタ1,2として使用可能な、1つのAND回路11と6つのNAND回路12〜17からなるエッジトリガ型Dフリップフロップの例を示す。また、レジスタ1,2には、マスタースレーブ型Dフリップフロップを用いることも可能である。
【0054】
なお、本データ保持回路は、非データ(0,0)を休止相とする場合の例である。もちろん、図1を修正すれば非データ(1,1)を休止相とする場合も実現可能である。
【0055】
図1において、制御信号CTRLと同期信号CLKには、例えば図2の信号がそれぞれ供給される(本例の場合、CTRLがhighのとき稼動相となり、lowのとき休止相となる)。
【0056】
図1に示されるように、2線に符号化されたデータを保持するために、従来の1線式で使われるDフリップフロップを用いて実現することができる。このように2つのDフリップフロップ1,2を並べることで、2線に符号化されたデータを保持することができる。
【0057】
監視回路9は、休止相であることを監視するための回路である。すなわち、例えばデータパス部の信号線が(0,0)になる場合が休止相とした場合、監視回路9は図1のようにOR回路4とAND回路5で実現することができる。なお、(1,1)を休止相とした場合には、NAND素子とAND素子で実現することができる。
【0058】
第1のAND回路6及び第2のAND回路7の出力が、当該2線式の出力となる。図1の例では、稼動相において、(1,0)または(0,1)が出力され、休止相において(0,0)が出力される。
【0059】
図4に、本データ保持回路の動作を表すタイミングチャート例を示す。なお、図4において、(I1,I2)は図1の入力I1,I2の各状態を示し、(R1,R2)は図1の各レジスタ1,2の保持状態を示し、(O1,O2)は図1の出力O1,O2の各状態を示す。稼動相で入力された入力データは、次の休止相の間も保持され(すなわち、休止相の非データは取り込まれない)、次の稼動相で出力されることがわかる。
【0060】
以上のように本構成例によれば、休止相において非データを取り込まず、稼働相においてデータを保持し、稼動相においてデータを出力し、休止相において非データを出力するようなデータ保持回路を実現することができる。
【0061】
ところで、データ保持回路の実現方法としては、図1の構成例のように既存の1線式で用いられているDフリップフロップを用いて実現する方法もあるが、これよりも少ない論理素子で実現することも可能である。
【0062】
図5に、この場合のデータ保持回路の構成例を示す。図5に示されるように、本データ保持回路は、OR回路or1、AND回路a1〜a4、NAND回路na1〜na6を含む(なお、OR回路or1とAND回路a1で監視回路3を形成している)。
【0063】
なお、図5は、休止相が(0,0)である場合の構成例を示しているが、もちろん、図5を修正すれば休止相が(1,1)である場合も実現可能である。
【0064】
ここで、図6及び図7を用いて、図5に例示した2線式2相方式のデータ保持回路の動作について詳しく説明する。なお、図6及び図7では、図5のAND回路a3,a4は省略している。
【0065】
最初に図5の回路が休止相の状態にあるとし、入力I1,I2ともに0であったとする。
【0066】
次いで稼働相に遷移し、図6のように入力I2が“1”に遷移したとすると、or1の出力は“0”から“1”に遷移する。そして図6のように同期信号CLKが“0”から“1”に立ち上がることで、AND素子a1の出力が“0”から“1”に遷移する。これにより、NAND素子na2の出力が“1”から“0”に遷移する。AND素子a2の出力は、“0”となりNAND素子na3の出力は“1”に遷移する。以上の動作で、NAND素子na5の出力は“1”となり、NAND素子na6の出力は“0”となる。NAND素子na5,n6の出力をAND素子a4,a3の入力に入れ、制御信号CTRLとのAND演算を行うことで、稼動相におけるデータ(0,1)が出力される。
【0067】
さらに稼働相から休止相へ遷移し、図7のように入力I2が“1”から“0”に遷移する。この結果、OR素子or1の出力は“0”になり、AND素子a1,a2の出力も“0”となる。AND素子a1の出力が“0”になることで、NAND素子na2の出力は“1”となり、NAND素子na3の出力も“1”となる。このとき、NAND素子na5,NAND素子na6の出力は変わらない。NAND素子na5,n6の出力はAND素子a4,a3の入力に入れられるが、制御信号CTRLとのAND演算が行われるので、稼動相におけるデータ(0,0)が出力される。
【0068】
以上に示したように、図5のような回路構成とすることで、休止相において入力を取り込まず以前の稼働相のデータを保持し続け、稼働相において入力データを内部に取り込むような2線式用の1ビットのデータ保持回路を構成することができる。
【0069】
このようなレジスタを用い、稼働相と休止相を交互に流すことで、データパス部のハミング重みが一定となるとともに、信号線の遷移数が一定になることについて説明する。
【0070】
スタティック消費電力においては、データのハミング重みが問題となる。2線式のデータパス部において、1ビットのデータは(1,0)または(0,1)と表現される。例えば、1線式において、8ビットのデータ0x18(00011000)についてはハミング重みは“2”、0xff(11111111)についてはハミング重みは“8”となる。一方、2線式においては、8ビットのデータ0x18は(0,1)(0,1)(0,1)(1,0)(1,0)(0,1)(0,1)(0,1)と表されるために、そのハミング重みは“8”であり、0xffは(1,0)(1,0)(1,0)(1,0)(1,0)(1,0)(1,0)(1,0)と表されるために、そのハミング重みは同じく“8”となる。
【0071】
このように、1線式ではデータの内容によってハミング重みが異なるが、2線式では1ビットのデータを2線で(1,0)または(0,1)で表すために、データの内容にかかわらずにハミング重みは一定となる。
【0072】
次に、図8に、1ビットの論理AND演算を行う2線式データパス部の構成例を示す。
【0073】
図8に示されるように、本演算回路は、本実施形態のデータ保持回路r1〜r3と、AND回路a1と、OR回路or1とを含む。
【0074】
以下、図8に例示した1ビットの論理AND演算を行う2線式データパス部を用いて、ダイナミック消費電力について説明する。
【0075】
ここでは、1ビットのデータの値=1を(1,0)で表し、1ビットのデータの値=0を(0,1)で表すものとする。また、休止相を(0,0)とする。また、制御信号CTRLと同期信号CLKには図2の信号がそれぞれ供給されるものとする(CTRLがhighのとき稼動相となり、lowのとき休止相となるものとする)。
【0076】
まず、図9の状態において、レジスタr1に(0,1)、レジスタr2に(1,0)、レジスタr3に(1,0)がそれぞれ保持されており、休止相(制御信号は“0”)であったとする。この状態では、全ての信号線の状態が“0”になっている。
【0077】
次に、休止相から稼働相へ遷移し(制御信号は“0”から“1”に遷移し)、図10の状態になったものとする。この状態では、レジスタr1へ(1,0)、レジスタr2へ(1,0)がそれぞれ入力されたものとする。また、レジスタr1から(0,1)、レジスタr2から(1,0)がそれぞれ出力され、それらが2線式のデータに対する論理AND演算を行う組合せ回路a1,or1に入力され、その演算結果(0,1)が出力され、これがレジスタr3に届き、保持される。また、レジスタr3からは、(1,0)が出力される。
【0078】
ここで、図9の状態から図10の状態への遷移をみると、組合せ回路の6つ信号線のうちの3つの信号線において状態が“0”から“1”に遷移していることがわかる。
【0079】
次に、稼働相から休止相へ遷移し(制御信号は“1”から“0”に遷移し)、図9の状態に戻ったものとする。この状態では、全ての信号線の状態が“0”になっている。
【0080】
ここで、図10の状態から図9の状態への遷移をみると、やはり3つの信号線において状態が遷移していることがわかる。
【0081】
次に、休止相から稼働相へ遷移し(制御信号は“0”から“1”に遷移し)、図11の状態になったものとする。この状態では、レジスタr1へ(0,1)、レジスタr2へ(0,1)がそれぞれ入力されたものとする。また、レジスタr1から(1,0)、レジスタr2から(1,0)がそれぞれ出力され、それらが2線式のデータに対する論理AND演算を行う組合せ回路a1,or1に入力され、その演算結果(1,0)が出力され、これがレジスタr3に届き、保持される。また、レジスタr3からは、(0,1)が出力される。
【0082】
ここで、図9の状態から図11の状態への遷移をみると、やはり3つの信号線において状態が遷移していることがわかる。
【0083】
このように、データの内容にかかわらずに、遷移する信号線の数は一定になる。
【0084】
このように、稼働相と休止相によりデータと非データを交互にデータパスに流すことで、データパス部における組合せ回路の信号線のうち状態遷移するものの個数は一定となり、ダイナミック消費電力は一定となる。
【0085】
ところで、図8では1ビットの論理AND演算を行う2線式データパス部の構成例を示したが、もちろん、この構成例を適宜修正することによって、他の論理演算を行う2線式データパス部も実現可能である。
【0086】
図12に、1ビットの論理OR演算を行う2線式データパス部の構成例を示す。図12に示されるように、本演算回路は、本実施形態のデータ保持回路r1〜r3と、OR回路or2とAND回路a2とを含む。
【0087】
また、図13に、1ビットの論理NAND演算を行う2線式データパス部の構成例を示す。図13に示されるように、本演算回路は、本実施形態のデータ保持回路r1〜r3と、NAND回路na1と、NOR回路nor1とを含む。
【0088】
また、図14に、1ビットの論理NOR演算を行う2線式データパス部の構成例を示す。図14に示されるように、本演算回路は、本実施形態のデータ保持回路r1〜r3と、NOR回路nor2とNAND回路na2とを含む。
【0089】
また、図15に、1ビットの論理NOT演算を行う2線式データパス部の構成例を示す。図15に示されるように、本演算回路は、本実施形態のデータ保持回路r1,r2とを含み、データ保持回路r1の第1の出力O1をデータ保持回路r2の第2の入力I1へ結合し、データ保持回路r1の第2の出力O2をデータ保持回路r2の第1の入力I2へ結合するものである(図中、h1の配線部分参照)。なお、この場合、1ビットの論理NOT演算を行う2線式データパス部は、図16に示すように、2つのNOT回路not1,not2を用いても実現可能である。
【0090】
なお、これまでの説明では、非データ(0,0)を休止相とする場合を中心に説明したが、非データ(1,1)を休止相とする場合も実現可能であり、また、休止相に非データ(0,0)と(1,1)を併用する(例えば、交互あるいはランダムに使用する)構成も可能である。
【0091】
また、これまでの説明では、稼動相と休止相とを交互に設ける場合を中心に説明したが、所定回数の稼動相が続いた後に休止相を設ける、休止相をランダムに設けるなど、それ以外の構成も可能である。
【0092】
また、これまでの説明では、1ビットのデータを表すのに信号線を2本用いる構成を中心に説明したが、1ビットのデータを表すのに信号線を3本以上用いる構成も可能である。
【0093】
1ビットのデータを表すのに4本の信号線を用いる場合には、例えば、状態1を(1,1,0,0)、状態0を(0,0,1,1)で表し、5本の信号線を用いる場合には、例えば、状態1を(1,0,1,0,1)、状態0を(0,1,0,1,0)で表すなどすればよい。
【0094】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【0095】
【発明の効果】
本発明によれば、演算対象となるデータの内容によらずに消費電力を一定又は概ね一定とすることができる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係るデータ保持回路の構成例を示す図
【図2】同実施形態における同期信号と制御信号のタイミングの一例を示す図
【図3】同期信号を用いた1線式の1ビットのDフリップフロップの構成例を示す図
【図4】同実施形態に係るデータ保持回路の動作例を示す図
【図5】本発明の一実施形態に係るデータ保持回路の他の構成例を示す図
【図6】図5のデータ保持回路の動作について説明するための図
【図7】図5のデータ保持回路の動作について説明するための図
【図8】同実施形態に係る論理AND演算を行うデータパス部の構成例を示す図
【図9】図8のデータパス部の動作について説明するための図
【図10】図8のデータパス部の動作について説明するための図
【図11】図8のデータパス部の動作について説明するための図
【図12】同実施形態に係る論理OR演算を行うデータパス部の構成例を示す図
【図13】同実施形態に係る論理NAND演算を行うデータパス部の構成例を示す図
【図14】同実施形態に係る論理NOR演算を行うデータパス部の構成例を示す図
【図15】同実施形態に係る論理NOT演算を行うデータパス部の構成例を示す図
【図16】同実施形態に係る論理NOT演算を行うデータパス部の他の構成例を示す図
【符号の説明】
1,2…レジスタ、3…監視回路、5,6,7,11,a1〜a4…AND回路、4,or1,or2…OR回路、12〜17,na1〜na6…NAND回路、nor1,nor2…NOR回路、not1,not2…NOT回路、r1〜r3…データ保持回路
Claims (16)
- 入力側の複数本の信号線と、
出力側の複数本の信号線と、
前記入力側の複数本の信号線からデータを入力し、前記出力側の複数本の信号線へデータを出力する電子回路とを備え、
前記入力側の複数本の信号線から入力されるデータ及び前記出力側の複数本の信号線へ出力されるデータを、当該複数本の信号線のビット状態の組合せにより値が定まる1ビット・データとして扱うことを特徴とするデータ処理装置。 - 前記1ビット・データの値として0を与える場合の前記複数本の信号線に係る第1のビット状態の組合せの持つハミング重みと、前記1ビット・データの値として1を与える場合の前記複数本の信号線に係る第2のビット状態の組合せの持つハミング重みとを均等又は概ね均等にすることを特徴とする請求項1に記載のデータ処理装置。
- 前記複数本の信号線に係るビット状態の組み合わせとして、前記1ビット・データの値として0を与える第1のビット状態の組合せ又は0を与える第2のビット状態の組合せが入出力される稼働相と、無効なデータを表す前記第1又は第2のビット状態のいずれとも異なる第3のビット状態の組み合わせが入出力される休止相の区別を示す制御信号を入力する手段を更に備えたことを特徴とする請求項1に記載のデータ処理装置。
- 予め定められた方法に従って前記稼働相の間に前記休止相が挿入されることを特徴とする請求項3に記載のデータ処理装置。
- 各々の前記1ビット・データの入出力に係る前記稼働相の間にそれぞれ前記休止相が挿入されることを特徴とする請求項4に記載のデータ処理装置。
- 前記第3のビット状態の組合せと前記第1のビット状態の組合せとの間のハミング距離と、前記第3のビット状態の組合せと前記第2のビット状態の組合せとの間のハミング距離とを均等又は概ね均等にすることを特徴とする請求項3に記載のデータ処理装置。
- 前記入力側及び出力側の信号線の本数をそれぞれ2本として、
前記第1のビット状態の組合せを、当該データに係る第1の信号線のビット状態が1であり且つ第2の信号線のビット状態が0である組合せ又は第1の信号線のビット状態が0であり且つ第2の信号線のビット状態が1である組合せのいずれかとし、
前記第2のビット状態の組合せを、前記第1のビット状態の組合せを反転させた組合せとし、
前記第3のビット状態の組合せを、前記第1の信号線のビット状態が0であり且つ第2の信号線のビット状態が0である第1の組合せ及び又は前記第1の信号線のビット状態が1であり且つ第2の信号線のビット状態が1である第2の組合せとすることを特徴とする請求項6に記載のデータ処理装置。 - 前記データ処理装置は、同期信号を入力する手段を更に備え、
前記電子回路は、前記制御信号が前記稼動相を示す場合には、前記同期信号に従って、前記入力側の複数本の信号線から前記第1又は第2のビット状態の組み合わせに係る前記1ビット・データを入力し、前記出力側の複数本の信号線へ前記第1又は第2のビット状態の組み合わせに係る前記1ビット・データを出力することを特徴とする請求項3に記載のデータ処理装置。 - 前記電子回路は、前記制御信号が前記休止相を示す場合には、前記入力側の複数本の信号線から前記無効なデータを入力することなしに、前記同期信号に従って、前記出力側の複数本の信号線から前記無効なデータを出力することを特徴とする請求項8に記載のデータ処理装置。
- 前記同期信号の立ち上がり又は立ち下がりの2回に1回の割合で、前記同期信号に同期した前記1ビット・データが入力されることを特徴とする請求項8に記載のデータ処理装置。
- 前記電子回路は、前記1ビット・データを保持する回路であることを特徴とする請求項1に記載のデータ処理装置。
- 第1及び第2の2本の信号線のビット状態の組合せにより値が定まる1ビット・データを入力し一旦保持した後に出力する第1のデータ保持回路と、
第1及び第2の2本の信号線のビット状態の組合せにより値が定まる1ビット・データを入力し一旦保持した後に出力する第2のデータ保持回路と、
前記第1のデータ処理装置の出力側の第1の信号線を第1の入力データとし、前記第2のデータ処理装置の出力側の第1の信号線を第2の入力データとし、該第1の入力データ及び該第2の入力データをもとにした第1の論理演算を行って、その結果を出力する第1の論理演算回路と、
前記第1のデータ処理装置の出力側の第2の信号線を第1の入力データとし、前記第2のデータ処理装置の出力側の第2の信号線を第2の入力データとし、該第1の入力データ及び該第2の入力データをもとにした第2の論理演算を行って、その結果を出力する第2の論理演算回路と、
前記第1の論理演算回路の出力側の信号線及び前記第2の論理演算回路の出力側の信号線の2本の信号線で与えられる第3のビット・データを入力し一旦保持した後に出力する第3のデータ保持回路とを備えたことを特徴とする論理演算装置。 - 前記第1の論理演算回路は、前記第1の入力データと前記第2の入力データとのAND演算を行うものであり、
前記第2の論理演算回路は、前記第1の入力データと前記第2の入力データとのOR演算を行うものであることを特徴とする請求項12に記載の論理演算装置。 - 前記第1の論理演算回路は、前記第1の入力データと前記第2の入力データとのOR演算を行うものであり、
前記第2の論理演算回路は、前記第1の入力データと前記第2の入力データとのAND演算を行うものであることを特徴とする請求項12に記載の論理演算装置。 - 前記第1の論理演算回路は、前記第1の入力データと前記第2の入力データとのNAND演算を行うものであり、
前記第2の論理演算回路は、前記第1の入力データと前記第2の入力データとのNOR演算を行うものであることを特徴とする請求項12に記載の論理演算装置。 - 前記第1の論理演算回路は、前記第1の入力データと前記第2の入力データとのNOR演算を行うものであり、
前記第2の論理演算回路は、前記第1の入力データと前記第2の入力データとのNAND演算を行うものであることを特徴とする請求項12に記載の論理演算装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003146491A JP3819872B2 (ja) | 2003-05-23 | 2003-05-23 | 論理演算装置 |
US10/849,253 US7071725B2 (en) | 2003-05-23 | 2004-05-20 | Data processing apparatus and logical operation apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003146491A JP3819872B2 (ja) | 2003-05-23 | 2003-05-23 | 論理演算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004347975A true JP2004347975A (ja) | 2004-12-09 |
JP3819872B2 JP3819872B2 (ja) | 2006-09-13 |
Family
ID=33447587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003146491A Expired - Fee Related JP3819872B2 (ja) | 2003-05-23 | 2003-05-23 | 論理演算装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7071725B2 (ja) |
JP (1) | JP3819872B2 (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008118566A (ja) * | 2006-11-07 | 2008-05-22 | Toshiba Corp | 暗号処理回路及び暗号処理方法 |
JP2009151327A (ja) * | 2009-02-20 | 2009-07-09 | Sony Corp | データ変換装置、演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム |
US7583129B2 (en) | 2003-05-27 | 2009-09-01 | Infineon Technologies Ag | Integrated circuit and method for operating the integrated circuit |
JP2010532540A (ja) * | 2007-07-06 | 2010-10-07 | エックスモス リミテッド | トークンプロトコル |
JP2011514046A (ja) * | 2008-02-25 | 2011-04-28 | インスティテュート テレコム−テレコム パリ テック | 暗号回路を試験する方法、被試験可能な安全暗号回路、およびその回路に配線する方法 |
US8213603B2 (en) | 2009-03-13 | 2012-07-03 | Sony Corporation | Encryption processing apparatus |
US8370642B2 (en) | 2008-11-20 | 2013-02-05 | Sony Corporation | Cryptographic processing apparatus |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7610628B2 (en) * | 2005-03-01 | 2009-10-27 | Infineon Technologies Ag | Apparatus and method for calculating a representation of a result operand |
DE102005037357B3 (de) * | 2005-08-08 | 2007-02-01 | Infineon Technologies Ag | Logikschaltung und Verfahren zum Berechnen eines maskierten Ergebnisoperanden |
US7881465B2 (en) * | 2005-08-08 | 2011-02-01 | Infineon Technologies Ag | Circuit and method for calculating a logic combination of two encrypted input operands |
US7372290B2 (en) * | 2005-10-04 | 2008-05-13 | Stmicroelectronics, Inc. | System and method for using dummy cycles to mask operations in a secure microcontroller |
JP2008099204A (ja) * | 2006-10-16 | 2008-04-24 | Toshiba Corp | 論理回路 |
FR2929470B1 (fr) * | 2008-03-25 | 2010-04-30 | Groupe Ecoles Telecomm | Procede de protection de circuit de cryptographie programmable, et circuit protege par un tel procede |
WO2011101994A1 (ja) | 2010-02-22 | 2011-08-25 | 株式会社東芝 | 暗号化装置 |
CN103593627B (zh) * | 2013-11-06 | 2016-08-17 | 中国科学院信息工程研究所 | 一种双层复合寄存器系统及抵抗能量分析攻击的方法 |
US10891396B2 (en) * | 2016-05-27 | 2021-01-12 | Samsung Electronics Co., Ltd. | Electronic circuit performing encryption/decryption operation to prevent side- channel analysis attack, and electronic device including the same |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999067766A2 (en) * | 1998-06-03 | 1999-12-29 | Cryptography Research, Inc. | Balanced cryptographic computational method and apparatus for leak minimization in smartcards and other cryptosystems |
JP3600454B2 (ja) | 1998-08-20 | 2004-12-15 | 株式会社東芝 | 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体 |
JP4428829B2 (ja) * | 2000-07-24 | 2010-03-10 | 株式会社ルネサステクノロジ | 半導体集積回路 |
JP2003008414A (ja) * | 2001-06-21 | 2003-01-10 | Seiko Epson Corp | クロックエッジ検出回路 |
JP4045777B2 (ja) * | 2001-10-30 | 2008-02-13 | 株式会社日立製作所 | 情報処理装置 |
DE10227618B4 (de) * | 2002-06-20 | 2007-02-01 | Infineon Technologies Ag | Logikschaltung |
-
2003
- 2003-05-23 JP JP2003146491A patent/JP3819872B2/ja not_active Expired - Fee Related
-
2004
- 2004-05-20 US US10/849,253 patent/US7071725B2/en not_active Expired - Fee Related
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7583129B2 (en) | 2003-05-27 | 2009-09-01 | Infineon Technologies Ag | Integrated circuit and method for operating the integrated circuit |
JP2008118566A (ja) * | 2006-11-07 | 2008-05-22 | Toshiba Corp | 暗号処理回路及び暗号処理方法 |
JP2010532540A (ja) * | 2007-07-06 | 2010-10-07 | エックスモス リミテッド | トークンプロトコル |
JP2011514046A (ja) * | 2008-02-25 | 2011-04-28 | インスティテュート テレコム−テレコム パリ テック | 暗号回路を試験する方法、被試験可能な安全暗号回路、およびその回路に配線する方法 |
US8370642B2 (en) | 2008-11-20 | 2013-02-05 | Sony Corporation | Cryptographic processing apparatus |
JP2009151327A (ja) * | 2009-02-20 | 2009-07-09 | Sony Corp | データ変換装置、演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム |
US8213603B2 (en) | 2009-03-13 | 2012-07-03 | Sony Corporation | Encryption processing apparatus |
Also Published As
Publication number | Publication date |
---|---|
US7071725B2 (en) | 2006-07-04 |
JP3819872B2 (ja) | 2006-09-13 |
US20040233749A1 (en) | 2004-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3819872B2 (ja) | 論理演算装置 | |
KR100855599B1 (ko) | 소비전력해석 방지기능이 있는 반도체 장치 | |
JP5926655B2 (ja) | 中央処理装置および演算装置 | |
US7881465B2 (en) | Circuit and method for calculating a logic combination of two encrypted input operands | |
KR100486808B1 (ko) | 데이터 처리 장치 및 그것을 이용한 메모리 카드 | |
Emmert et al. | EMC: Efficient Muller C-Element Implementation for High Bit-width Asynchronous Applications | |
Liu et al. | Correlation power analysis against stream cipher mickey v2 | |
US6873558B2 (en) | Integrated circuit and method for operating the integrated circuit | |
Yanambaka et al. | Veda-PUF: a PUF based on vedic principles for robust lightweight security for IoT | |
JP2004038318A (ja) | レジスタ回路及びこれを用いた暗号演算回路 | |
KR20010032564A (ko) | 미분 전류 소모 분석을 방지하는 데이터 처리 장치 및작동 방법 | |
JP4335561B2 (ja) | 半導体集積回路装置 | |
JPS63313222A (ja) | キ−入力装置 | |
JP2008067349A (ja) | 半導体集積回路 | |
US20190114143A1 (en) | Random number generating system and random number generating method thereof | |
Emmert et al. | An asynchronous FPGA THx2 programmable cell for mitigating side-channel attacks | |
JP3737783B2 (ja) | 論理素子及びこれを用いた暗号演算回路 | |
JP2010062635A (ja) | 暗号処理装置および集積回路 | |
WO2004095366A1 (en) | Electronic circuit device for cryptographic applications | |
Liu et al. | A low-overhead and high-reliability physical unclonable function (PUF) for cryptography | |
Howard et al. | Investigation and comparison of bus alternatives for asynchronous circuits | |
KR100412475B1 (ko) | 데이타 정렬회로 및 이를 이용한 자기타이밍 웨이브파이프라인 가산기 | |
US7622974B2 (en) | Semiconductor device | |
Atani et al. | Design and implementation of DPA resistive Grain-128 stream cipher based on SABL logic | |
JP2008196917A (ja) | 非同期式カウンタ回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040902 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060118 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060322 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060522 |
|
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: 20060613 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060615 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090623 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100623 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100623 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110623 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120623 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120623 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130623 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |