JP2010011353A - 演算処理装置 - Google Patents

演算処理装置 Download PDF

Info

Publication number
JP2010011353A
JP2010011353A JP2008171214A JP2008171214A JP2010011353A JP 2010011353 A JP2010011353 A JP 2010011353A JP 2008171214 A JP2008171214 A JP 2008171214A JP 2008171214 A JP2008171214 A JP 2008171214A JP 2010011353 A JP2010011353 A JP 2010011353A
Authority
JP
Japan
Prior art keywords
arithmetic
circuit
instruction
unit
redundant
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
Application number
JP2008171214A
Other languages
English (en)
Other versions
JP5146156B2 (ja
Inventor
Koichi Yoshimi
康一 吉見
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008171214A priority Critical patent/JP5146156B2/ja
Priority to US12/382,866 priority patent/US8407452B2/en
Publication of JP2010011353A publication Critical patent/JP2010011353A/ja
Application granted granted Critical
Publication of JP5146156B2 publication Critical patent/JP5146156B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】暗号の解読を強固に防止することを課題とする。
【解決手段】演算処理装置は、暗号化処理を実施する演算器回路群と、演算器回路群と同一の構成である冗長演算器回路群を有する。そして、演算処理装置は、暗号化処理を実施する場合に、演算器回路群では通常通り、暗号化処理をしつつ、冗長演算器回路群ではランダムデータ生成部などによりランダムに生成されたデータなどを用いて暗号化マスクプログラム処理を実施する。また、演算処理装置は、暗号化処理を実施しない場合に、冗長演算器回路群で通常の演算処理を実施する。
【選択図】 図1

Description

この発明は、暗号化処理を実行する演算処理装置に関する。
従来より、暗号を解読した情報の搾取や、特定個人への成りすましなどセキュリティに関連する事件や問題が多発し、社会問題になってきている。そのため、情報の漏洩や暗号の解読など、個人・法人を問わず、情報の漏洩対策や情報・機密の暗号化が必須となっている。
情報の暗号化は、DES(Data Encryption Standard)、AES(Advanced Encryption Standard)、RSA(公開鍵暗号方式)、MISTY(共通鍵暗号方式)などの暗号解読の計算の複雑さを増やす方法を採用することで、暗号解読への耐性を持たせるのが主流である。暗号解読の計算の複雑さを増やす方法としては、暗号のキーを長くする方法や演算回数を増やす方法が考えられている。
最近では、暗号化の手法をハードウェアから特定する手法として、図8に示すような暗号化を行うプロセサのチップ上の電力分布や電力の変動量から、演算の種類・回数・内容を特定するような暗号解読が行われつつある。具体的には、マイクロコンピュータによる暗号化処理時の消費電力を解析することで、暗号化処理で使用した秘密の鍵を特定する差分電力解析(DPA:Differential Power Analysis)などがある。DPAが解析する消費電力は、通常、プロセサチップにおけるVccとGNDとの間に抵抗を設置し、その両端の電圧を観察することによって測定することができる。
そして、このようなDPAなどの暗号解読に対して、システム内部のハードウェアで使用する消費電力を制御したり、シリアルデータの変化の回数を用いて全体の消費電力を平均化したりする暗号解読を防止する技術が開示されている(例えば、特許文献1と2参照)。同様に、暗号解読に対して、バス上を伝送するデータに乱数データを加えて転送して消費電力と暗号データとの相関を減少させたり、プロセッサがランダムに命令を実行したりする暗号解読を防止する技術が開示されている(例えば、特許文献3と4参照)。
特開2004−56363号公報 特許第3933647号公報 特開2005−223477号公報 米国特許出願公開第2005/0273631号明細書
しかしながら、上記したいずれの従来の技術でも、計算の複雑さを増すことで暗号の強度を上げようとしているが、ハードウェアの動きそのものを解読されてしまうと、暗号の計算方法を類推されてしまい、暗号としての強度が低下するという課題があった。
具体的には、システム内部のハードウェアで使用する消費電力を制御することで、システム全体の消費電力を平均化したとしても、昨今のように攻撃対象がプロセサ本体、あるいは、コンピュータ内部の個別のハードウェアモジュールである場合には、有効ではない。また、シリアルデータが変化しない回数に対応したシリアルデータを作成し、それを暗号処理回路と同一のダミー回路に入力することで、全体の消費電力を平均化したとしても、シリアルデータ以外も使用する暗号処理も存在するため、適用できる範囲は狭く、一般的なパラレルデータの暗号処理での消費電力解析への対策としては効果的ではない。
また、バス上を伝送するデータに乱数データを加えて転送することで、消費電力と暗号データとの相関を減少させて、消費電力解析を行いにくくしたとしても、マイクロプロセサの内部コンポーネントなどから消費電力解析を行われる場合には、効果的ではない。また、暗号処理プログラムの前後で、特定の制御フラグを立て、プロセッサがランダムに命令を実行したとしても、暗号処理中にランダムな命令を実行するわけではないため、消費電力解析を行われる場合には、効果的ではない。
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、暗号の解読を強固に防止することが可能である演算処理装置を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本願が開示する演算処理装置は、暗号化処理を実行する演算処理装置であって、前記暗号化処理を実施する第一の演算部と、前記暗号化処理を実施する場合に、ランダムに生成された命令とデータを用いて暗号化マスクプログラム処理を実施し、前記暗号化処理を実施しない場合に、通常の演算処理を実施する第二の演算部と、を有する。
本発明によれば、暗号の解読を強固に防止することが可能である。
以下に添付図面を参照して、この発明に係る演算処理装置の実施例を詳細に説明する。なお、以下では、本実施例に係る演算処理装置の概要、演算処理装置の構成および処理の流れを順に説明し、最後に本実施例に対する種々の変形例を説明する。
[演算処理装置の概要]
最初に、実施例1に係る演算処理装置の概要を説明する。実施例1に係る演算処理装置は、暗号化処理を実施する演算器回路群と、当該演算器回路群と同様の構成を有する冗長演算器回路群と、ランダムに生成したデータを冗長演算器回路群の各回路に投入するランダムデータ生成回路とを有するマイクロプロセッサであり、これらによって、暗号の解読を強固に防止することが可能である。なお、演算機械路群としては、整数・浮動小数点演算回路、論理演算回路、シフトレジスタ、Bit Population count演算回路などの暗号処理で多用される複数の回路が含まれる。
具体的には、実施例1に係る演算処理装置(マイクロプロセッサ)は、暗号化処理を実施する際に、通常の暗号化処理を演算器回路群で処理しつつ、ランダムに生成されたデータを用いた冗長な暗号化マスクプログラム処理を冗長演算器回路群で実施する。このような暗号化マスクプログラム処理を行うことにより、演算処理装置は、電力の消費時・非消費時の電力差に対して冗長な消費電力を発生させ、演算器回路群で実施される実際の暗号化処理による消費電力変動をマスクし、消費電力の時間的および空間的な局所化を暗号解読者に察知されないようにする。その結果、暗号解読者は、差分電力解析(DPA:Differential Power Analysis)などによる消費電力からの類推、例えば、暗号化演算の種類や演算回数の推測などが行えず、演算処理装置は、暗号の解読を強固に防止することが可能である。
[演算処理装置の構成]
次に、図1〜図6を用いて、実施例1に係る演算処理装置の構成を説明する。図1は、実施例1に係る演算処理装置の構成を示すブロック図である。
図1に示すように、実施例1による演算処理装置10は、暗号処理識別回路11と、演算器回路12と、ランダムデータ生成回路13と、命令発行回路14と、プロセサ状態管理回路15と、クロック位相制御回路16と、L1キャッシュ17と、L2キャッシュ18と、Load/Store回路19と、メモリ管理回路20と、外部バス制御回路21と、電力チェック回路22とを有する。
かかる暗号処理識別回路11は、当該演算処理装置(マイクロプロセッサ)10が暗号化処理時であるか否かを識別して、各機能部に通知する。具体的には、暗号処理識別回路11は、外部から受け付けた暗号処理識別信号あるいはプログラム中のプロセスIDなどから、暗号処理を行うプログラムであるか否かを識別する。そして、暗号処理識別回路11は、接続される演算器回路群12、命令発行回路14、L1キャッシュ17、Load/Store回路19、外部バス制御回路21に対して、識別した結果を出力する。なお、外部から受け付ける暗号処理識別信号は、当該マイクロプロセッサ内で生成されたものであってもよく、外部装置で生成されてもよい。ただし、暗号処理識別回路11は、どのような暗号処理識別信号が暗号処理であるかを認識している必要がある。例えば、暗号処理識別信号の認識手法としては、一定の信号(暗号処理識別信号)を検出する分岐回路(判定回路)などを暗号処理識別回路11内に事前に設けることにより実現することができる。
演算器回路12は、IU(Integer Unit)やFPU(Floating Point Unit)などを有する回路であり、演算結果を記憶するレジスタファイルと、暗号化処理を実施する複数の回路と、後述するランダムデータ生成回路によりランダムに生成されたデータを用いて冗長な暗号化マスクプログラム処理を行う冗長演算器回路とを有する。具体的には、演算器回路群12は、図2に示すように、加減算回路、乗除算回路、論理演算回路、浮動小数点演算回路、シフト演算回路、Bit Population count演算回路などの演算器回路群12aと、演算器回路群12aと同一の回路構成を有する冗長演算器回路群12bとを有する。
かかる演算器回路群12aは、暗号処理識別回路11またはメモリ管理回路20から暗号化処理時であることが通知されて、後述する命令発行回路14から暗号化処理における各種演算命令が入力された場合に、L1キャッシュ17やL2キャッシュ18からデータを取得して、当該命令に対応した各種演算回路による処理を実行する。そして、演算器回路群12aは、外部バス制御回路21に接続される主記憶装置(メモリ)などに実行して得られた結果を格納する。ここで、演算器回路群12aが有する各種演算回路の処理内容について説明すると、加減算回路は、加算器と減算器とを有して各種データを加算または減算する回路であり、乗除算回路は、乗算器と除算器とを有して各種データを乗算または除算する回路であり、論理演算回路は、論理和や論理積などブール代数(論理演算)を行う回路である。
また、浮動小数点演算回路は、浮動小数点演算を行う回路であり、シフト演算回路は、算術シフトや論理シフトなどビットを操作するシフト演算を行う回路であり、Bit Population count演算回路は、レジスタ中の1あるいは0の値のビット数を計数する回路である。なお、ここで説明した各種演算回路は例示であり、演算器回路群12aは、これら以外の暗号処理で多用される回路を備えていてもよい。また、演算器回路群12aは、上記した各種演算回路を全て備えている必要もなく、一部はソフトウエアなどで実施されていてもよい。
そして、冗長演算器回路群12bは、演算器回路群12aと同一の構成を有し、暗号化処理を実施する場合に、ランダムに生成されたデータを用いて暗号化処理を実施し、暗号化処理を実施しない場合に、他の演算処理を実施する。具体的には、暗号処理識別回路11またはメモリ管理回路20から暗号化処理時であることが通知された場合に、冗長演算器回路群12bは、後述するクロック位相制御回路16から入力されたクロックに従いつつ、後述するランダムデータ生成回路13によってランダムに生成されたデータを用いて各種演算回路を実行する。また、暗号化処理時であることが通知された冗長演算器回路群12bは、後述する命令発行回路14の冗長命令発行制御回路14aによりランダムに生成された命令を受け付けて、当該命令とランダムデータに従って各種演算回路を実行する。そして、冗長演算器回路群12bは、外部バス制御回路21に接続される主記憶装置などの冗長演算器回路群12b専用領域に、実行して得られた結果を格納する。
また、暗号処理識別回路11またはメモリ管理回路20から暗号化処理時でない、つまりその他の演算処理時であることが通知された場合に、冗長演算器回路群12bは、現地点で実行されるべき他の演算処理を各種演算回路を用いて実行する。そして、冗長演算器回路群12bは、外部バス制御回路21に接続される主記憶装置などの冗長演算器回路群12b専用領域に、実行して得られた結果を格納する。なお、冗長演算器回路群12bについても演算器回路群12aと同様に、上記した演算回路以外の暗号処理で多用される回路を備えていてもよく、上記した各種演算回路を全て備えている必要もなく、一部はソフトウエアなどで実施されていてもよい。また、冗長演算器回路群12bが有する各種演算回路の処理内容は、演算器回路群12aで説明した処理内容と同様であるので、ここでは詳細な説明は省略する。なお、図2は、演算器回路を説明するための図である。
図1に戻り、ランダムデータ生成回路13は、演算器回路12の冗長演算器回路群12bに対して、ランダムなデータを生成して投入する回路である。具体的には、ランダムデータ生成回路13は、図3に示すように、8ビット、16ビット、32ビット、64ビットのそれぞれに対応したPRBS(Pseudorandom Binary(Bit) Sequence:擬似乱数バイナリ(ビット)シーケンス)を用いて擬似乱数を発生させて、ランダムなデータを生成する。例えば、ランダムデータ生成回路13は、制御クロック、系列シード値(初期値)、シード値をいずれかのPRBSに入力して特定の演算により乱数(8ビットデータ、16ビットデータ、32ビットデータまたは64ビットデータ)を生成し、生成したデータを演算器回路12の冗長演算器回路群12bに投入する。なお、図3は、ランダムデータ生成回路を説明するための図である。
図1に戻り、命令発行回路14は、演算命令やメモリアクセス命令などを各回路に投入する回路であり、特に本実施例に密接に関連するものとしては、冗長命令発行制御回路14aと冗長命令発行頻度制御回路14bとを有する。具体的には、命令発行回路14は、暗号処理識別回路11などから投入された制御クロック、つまり当該演算処理装置10内で発生しているクロックや命令発行制御信号に基づいて、暗号化処理を実施する命令や各種制御・情報信号を生成して、演算器回路12に投入する。例えば、命令発行回路14は、後述するメモリ管理回路20、L1キャッシュ17、L2キャッシュ18、Load/Store回路19を介して、外部バス制御回路21に接続される主記憶装置から命令を読み出してデコードする。そして、デコードした結果が演算命令などであれば、命令発行回路14は、当該演算命令を演算器回路12に投入する。また、デコードした結果がメモリへのアクセス命令などであれば、命令発行回路14は、メモリ管理回路20、Load/Store回路19、L2キャッシュ18、L1キャッシュ17および外部バス制御回路21により、メモリと演算器回路12あるいはレジスタファイルとの間でデータを転送する。
冗長命令発行制御回路14aは、暗号化処理を実施する場合に、演算器回路12の冗長演算器回路群12bに対して、ランダムに生成した命令を投入する。具体的には、冗長命令発行制御回路14aは、暗号処理識別回路11から暗号化処理時であることが通知された場合、図4に示すように、後述する冗長命令発行頻度制御回路から命令種別ごとの命令発行制御信号を受け付ける。すると、冗長命令発行制御回路14aは、暗号化マスクプログラム処理を実施させるための命令(各種制御・情報信号)をランダムに生成して、演算器回路12の冗長演算器回路群12bに投入する。
冗長命令発行頻度制御回路14bは、暗号化処理における実行プログラムや実行フェーズを把握し、実行されるプログラムやフェーズが変わる場合には、冗長演算器回路群12bを動作させる。具体的には、冗長命令発行頻度制御回路14bは、図4に示すように、後述するプロセサ状態管理回路15からプログラムカウンタや、品種、数、頻度などの命令情報を受け付けて暗号化処理における実行プログラムや実行フェーズを把握する。そして、冗長命令発行頻度制御回路14bは、実行されるプログラムやフェーズが変わる場合には、冗長命令発行制御回路14aに対して命令発行指示を投入する。命令発行指示が投入された冗長命令発行制御回路14aは、暗号化マスクプログラム処理を実施させるための命令(各種制御・情報信号)をランダムに生成して、演算器回路12の冗長演算器回路群12bに投入する。このようにすることで、実行されるプログラムやフェーズの変わり目をランダムに変化させることができ、消費電力の時間的および空間的な局所化を暗号解読者に察知されないようにすることができる。
そして、冗長命令発行頻度制御回路14bは、後述する電力チェック回路22により計測された消費電力が所定の閾値より大きい場合には、冗長演算器回路群12bに対して投入する命令を抑止する。具体的には、冗長命令発行頻度制御回路14bは、電力チェック回路22により当該演算処理装置内の消費電力が許容最大値近傍の値である旨の通知を受け付けた場合に、冗長命令発行制御回路14aに対して命令発行抑止信号を投入して、冗長演算器回路群12bに対する命令を抑止する。なお、図4は、命令発行回路を説明するための図である。
図1に戻り、プロセサ状態管理回路15は、暗号化処理を実施した実行履歴から暗号化処理で実行されるプログラムやフェーズを認識し、暗号化処理において演算処理が増減したプログラムやフェーズの場合には、演算器回路12の冗長演算器回路群12bに対して、その増減に応じてランダムに生成した命令を投入する。具体的には、プロセサ状態管理回路15は、過去や直前に実行された暗号化処理の各プログラムの実行フェーズなどを一時領域などに格納する。その後、暗号処理識別回路11から暗号化処理時であることが通知されて演算器回路12で暗号化処理が実施されている間、プロセサ状態管理回路15は、実行中のプログラムやフェーズを暗号処理識別回路11や演算器回路12から取得して、冗長命令発行頻度制御回路14bに投入する。また、プロセサ状態管理回路15は、認識したフェーズにおいて演算器回路12で実行される演算回路が少ないなどと実行履歴から判断した場合には、冗長命令発行頻度制御回路14bに対して命令投入指示を発行する。その後、命令投入指示を受け付けた冗長命令発行頻度制御回路14bは、冗長命令発行制御回路14aに対して命令発行指示を投入し、冗長命令発行制御回路14aは、命令(各種制御・情報信号)をランダムに生成して演算器回路12の冗長演算器回路群12bに投入する。
クロック位相制御回路16は、演算器回路12の冗長演算器回路群12bに対して与えるクロックの位相を変動制御させる。具体的には、クロック位相制御回路16は、図5に示すように、ランダムデータ生成回路13により生成されたランダムデータと当該演算処理装置10内で発生している制御クロックとを入力信号として受け付ける。そして、クロック位相制御回路16は、ランダムクロックディレイ制御回路やプログラマブルディレイラインなどにより、入力信号を一定時間遅延させて、位相を変動させたクロックを生成し、生成したクロックを演算器回路12の冗長演算器回路群12bに出力する。例えば、クロック位相制御回路16は、ランダムデータの種類に対応付けた遅延時間を決めておき、ランダムクロックディレイ制御回路やプログラマブルディレイラインなどにより、ランダムデータに対応する一定時間分、入力信号を遅延させてクロックを生成し、生成したクロックを演算器回路12の冗長演算器回路群12bに出力するようにしてもよい。なお、図5は、クロック位相制御回路を説明するための図である。
L1キャッシュ17は、制御回路とメモリと冗長キャッシュ制御回路17aを有し、命令発行回路14や演算器回路12の演算器回路群12aからの要求に応じて命令やデータを応答する。具体的には、L1キャッシュ17のメモリは、当該演算処理装置10であるマイクロプロセッサと同じモジュールに集積または実装されている高速で少容量なメモリであり、使用頻度の高い命令やデータを記憶する一時領域である。
L1キャッシュ17の制御回路は、命令発行回路14や演算器回路群12aから命令またはデータの取得要求を受け付けた場合に、当該取得要求に対応する命令またはデータがL1キャッシュ17のメモリに記憶されているか否かを判定する。そして、L1キャッシュ17の制御回路は、取得要求に対応する命令またはデータがL1キャッシュ17のメモリに記憶されている場合には、L1キャッシュ17のメモリから対応する命令またはデータを取得して応答する。一方、取得命令に対応する命令またはデータがL1キャッシュ17のメモリに記憶されていない場合には、後述するL2キャッシュ18やLoad/Store回路19を介して、外部バス制御回路21に接続される主記憶から対応する命令またはデータを取得して応答する。
また、L1キャッシュ17の冗長キャッシュ制御回路17aは、命令発行回路14や冗長演算器回路群12bから命令またはデータの取得要求を受け付けた場合に、当該取得要求に対応する命令またはデータを応答する動作を擬態する。例えば、L1キャッシュ17の冗長キャッシュ制御回路17aは、取得要求に対応する命令またはデータがL1キャッシュ17のメモリに記憶されているか否かを判定する動作、L2キャッシュ18やLoad/Store回路19を介して外部バス制御回路21に接続される主記憶から対応する命令またはデータを取得する動作を擬態して、命令発行回路14や冗長演算器回路群12bに応答する。
L2キャッシュ18は、制御回路とメモリとを有し、L1キャッシュ17からの要求に応じて命令やデータを応答する。具体的には、L2キャッシュ18のメモリは、L1キャッシュ17のメモリより低速で主記憶より高速であるとともに、L1キャッシュ17のメモリより容量が大きく主記憶部より容量が小さいメモリであり、比較的使用頻度の高いデータを記憶する一時領域である。
L2キャッシュ18の制御回路は、L1キャッシュ17から命令またはデータの取得要求を受け付けた場合に、当該取得要求に対応する命令またはデータがL2キャッシュ18のメモリに記憶されているか否かを判定する。そして、L2キャッシュ18の制御回路は、取得要求に対応する命令またはデータがL2キャッシュ18のメモリに記憶されている場合には、L2キャッシュ18のメモリから対応する命令またはデータを取得して応答し、L2キャッシュ18のメモリに記憶されていない場合には、後述するLoad/Store回路19を介して、外部バス制御回路21に接続される主記憶から対応する命令またはデータを取得して応答する。
Load/Store回路19は、冗長Load/Store回路19aを有し、L1キャッシュ17、L2キャッシュ18や外部バス制御回路21に接続される主記憶などに対して、LoadやStore命令を実行する。具体的には、Load/Store回路19は、L1キャッシュ17やL2キャッシュ18からLoad命令を受け付けた場合に、当該命令に対応するデータを外部バス制御回路21に接続される主記憶から取得して、命令元のメモリに格納する。また、L1キャッシュ17やL2キャッシュ18からStore命令を受け付けた場合に、当該命令に対応するデータを命令元のメモリから読み出して、外部バス制御回路21に接続される主記憶に格納する。
Load/Store回路19の冗長Load/Store回路19aは、L1キャッシュ17、L2キャッシュ18や外部バス制御回路21に接続される主記憶などに対して、LoadやStore命令を実行する動作を擬態する。例えば、冗長Load/Store回路19aは、L1キャッシュ17の冗長キャッシュ制御回路17aやL2キャッシュ18からLoad命令を受け付けた場合に、当該命令に対応するデータを外部バス制御回路21に接続される主記憶から取得して、命令元のメモリに格納する動作を擬態する。また、L1キャッシュ17やL2キャッシュ18からStore命令を受け付けた場合に、当該命令に対応するデータを命令元のメモリから読み出して、外部バス制御回路21に接続される主記憶に格納する動作を擬態する。
メモリ管理回路20は、当該演算処理装置10が受け付けたメモリアクセス処理命令を実行する。具体的には、メモリ管理回路20は、仮想アドレスを物理アドレスに変換する機能、メモリ保護機能、キャッシュ制御機能、バス調停機能、バンク切り替え機能などを有し、当該演算処理装置10が受け付けたメモリアクセス処理を実行する命令を命令発行回路14に投入する。また、メモリ管理回路20は、当該演算処理装置10が受け付けたメモリアクセス命令に対応する命令やデータを、L1キャッシュ17などから取得して命令発行回路14に投入したり、命令元の外部装置などに応答したりする。
外部バス制御回路21は、冗長バス制御回路21aを有し、外部装置である主記憶とのデータのやり取りを制御する。具体的には、外部バス制御回路21は、Load/Store回路19からLoad命令と当該命令に対応するデータなどを受け付けた場合に、当該データなどを主記憶に格納する。また、外部バス制御回路21は、Load/Store回路19からStore命令を受け付けた場合に、当該Store命令に対応するデータを主記憶から取得してLoad/Store回路19に応答する。
冗長バス制御回路21aは、外部装置である主記憶とのデータのやり取りの制御を擬態する。具体的には、冗長バス制御回路21aは、冗長Load/Store回路19から擬態動作である擬態Load命令と当該命令に対応するデータなどを受け付けた場合に、当該データなどを主記憶に格納する動作を擬態する。また、冗長バス制御回路21aは、Load/Store回路19から擬態Store命令を受け付けた場合に、当該Store命令に対応するデータを主記憶から取得してLoad/Store回路19に応答する動作を擬態する。
そして、冗長バス制御回路21aは、暗号化処理においてメモリアクセスが発生していない場合に、各種メモリに対して、ランダムにメモリアクセスを実施する。具体的には、冗長バス制御回路21aは、Load命令やStore命令を所定の期間受け付けなかった場合など暗号化処理においてメモリアクセスが発生していない場合に、冗長Load/Store回路19aを介してL1キャッシュ17やL2キャッシュに対してランダムにメモリアクセスを実施したり、接続される主記憶に対してランダムにメモリアクセスを実施したりする。
電力チェック回路22は、演算処理装置10全体で消費される消費電力を計測する。具体的には、電力チェック回路22は、図6に示すように、命令発行回路14を介して受け付けた各機能回路の動作率カウンタ信号と演算処理装置10の制御クロックとから、各回路の電力推定を行い、その合計と閾値とを比較する。そして、電力チェック回路22は、算出した演算処理装置10全体で消費される消費電力が閾値以上、つまり消費電力の最大許容値近傍である場合には、冗長命令発行頻度制御回路14bに対して命令発行抑止信号を投入する。
また、電力チェック回路22は、演算処理装置10全体で消費される消費電力が閾値以上であるか否かを判定するだけでなく、各回路ごとに消費電力の閾値を設けておき、各回路ごとに閾値以上か否かを判定することもできる。また、電力チェック回路22は、電力推定として様々な手法を用いることができ、例えば、各回路ごとに入力信号の変化確率から出力信号の変化確率を推定し、各回路間の配線容量と変化確率の積から当該回路全体で消費される電力を推定することができる。なお、図6は、電力チェック回路を説明するための図である。
[演算処理装置による処理]
次に、図7を用いて、演算処理装置による処理を説明する。図7は、実施例1に係る演算処理装置における処理の流れを示すフローチャートである。
図7に示すように、プログラムが投入されると(ステップS101肯定)、演算処理装置10は、当該プログラム処理が暗号化処理であるか否かを判定する(ステップS102)。
具体的には、演算処理装置10は、暗号処理識別回路11やメモリ管理回路20から発行される命令に暗号化処理を示すプログラムIDが含まれているか否かなどにより、投入されたプログラムが暗号化処理であるか否かを判定する。
そして、演算処理装置10は、投入されたプログラムが暗号化処理であると判定された場合(ステップS102肯定)、冗長暗号化処理を実施する(ステップS103)。
具体的には、演算処理装置10は、投入されたプログラムが暗号化処理であると判定された場合、図2で説明した各回路や各メモリを動作させて暗号化処理を実施しつつ、各回路のや各メモリの冗長回路を動作させて冗長な暗号化マスクプログラム処理を実施する。なお、冗長回路としては、冗長命令発行制御回路14a、冗長命令発行頻度制御回路14b、ランダムデータ生成回路13、冗長演算器回路群12bや冗長キャッシュ制御回路17a、Load/Store回路19aなどがあげられる。
その後、演算処理装置10は、当該プログラムが終了すると(ステップS104肯定)、当該処理を終了する。一方、新たなプログラムが実行されると(ステップS104否定)、ステップS101に戻って以降の処理を実行する。
一方、投入されたプログラム処理が暗号化処理でないと判定された場合(ステップS102否定)、演算処理装置10は、各回路のや各メモリの冗長回路を用いて、投入されたプログラム処理を実行する。
[実施例1による効果]
このように、実施例1によれば、演算処理装置10は、暗号化処理を実施する演算器回路群12aと、暗号化処理を実施する場合に、ランダムに生成されたデータを用いて暗号化処理を実施し、暗号化処理を実施しない場合に、他の演算処理を実施する冗長演算器回路群12bとを有する。そうすることにより、演算処理装置10は、電力の消費時・非消費時の電力差に対して冗長な消費電力を発生させ、演算器回路群で実施される実際の暗号化処理による消費電力変動をマスクし、消費電力の時間的および空間的な局所化を暗号解読者に察知されないようにする。その結果、演算処理装置10は、暗号の解読を強固に防止することが可能である。
また、実施例1によれば、冗長演算器回路群12は、演算器回路群12aと同一の構成を有する1つまたは複数の演算部である。その結果、演算処理装置10は、電力の消費時・非消費時の電力差に対してより冗長な消費電力を発生させ、演算器回路群で実施される実際の暗号化処理による消費電力変動をよりマスクすることができる。
また、実施例1によれば、演算処理装置10は、冗長演算器回路群12bにより暗号化処理が実施された場合には、冗長演算器回路群12bにより実施された暗号処理結果のみを格納し、冗長演算器回路群12bにより他の演算処理が実施された場合には、冗長演算器回路群12bにより実施された演算処理結果を格納するメモリ領域をさらに備える。その結果、暗号処理用に割り当てられた特殊な空間へのアクセスを行うことで、通常のメモリ空間に対して悪影響が出ないようにすることができる。
また、実施例1によれば、演算処理装置10は、暗号化処理においてメモリアクセスが発生していない場合に、冗長演算器回路群12b専用のメモリ領域に対して、ランダムにメモリアクセスを実施する。その結果、バス信号の使用頻度に依存する電力消費の偏りをマスクすることができ、暗号の解読をより強固に防止することが可能である。
また、実施例1によれば、演算処理装置10は、暗号化処理を実施する場合に、冗長演算器回路群12bに対して、ランダムに生成した命令を投入することができる。その結果、ランダムな消費電力を発生させることができるので、暗号の解読をより強固に防止することが可能である。
また、実施例1によれば、演算処理装置10は、暗号化処理を実施した実行履歴から暗号化処理で実行される各プログラムの実行フェーズを認識し、暗号化処理において演算処理が少ない実行フェーズの場合には、冗長演算器回路群12bに対して、ランダムに生成した命令を投入する。その結果、演算処理装置10は、プログラムの実行フェーズが変化したとき、その実行フェーズで使用される頻度が変化した回路に対して、ランダムにデータを生成して、冗長な演算器・回路を動作させるための冗長な命令の発生・実行の頻度を増減させることで、フェーズ間の電力消費の差を軽減し、消費電力の平均化を行うことができる。
また、実施例1によれば、演算処理装置10は、計測された消費電力が所定の閾値より大きい場合には、冗長演算器回路群12bに対して命令の投入を抑止する。その結果、消費電力が電力最大値を超えそうな場合には、制限値を超えないように冗長命令の発生をスロットリングする機能を持つことができ、消費電力オーバーにより装置停止などを回避することができる。
また、実施例1によれば、演算処理装置10は、冗長演算器回路群12bに対して与えるクロックの位相を変動制御させることができる。その結果、演算処理装置10は、外部に見える消費電力のピーク値を通常ピーク値が発生するタイミングから移動させることができる。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に示すように、(1)冗長演算器回路群の構成、(2)メモリ構成、(3)システム構成等、にそれぞれ区分けして異なる実施例を説明する。
(1)冗長演算器回路群の構成
例えば、実施例1では、冗長演算器回路群12と演算器回路群12aとが同一の構成である場合について説明したが、本願が開示する演算処理装置はこれに限定されるものではなく、暗号化処理を疑似的に実行できる最低限の構成を有する冗長演算器回路群12を用いることもできる。
また、冗長演算器回路群12は、チップの余った部分を使って実装することで、回路の微小化と集積化進んでいる高集積のLSI(Large Scale Integration)やVLSI(Very Large Scale Integration)であっても、消費電力とチップ面積を無駄にすることなく、暗号処理時の安全を確保することができる。
(2)メモリ構成
また、実施例1では、外部バス制御回路に接続される主記憶に、冗長演算器回路群12b専用の領域を備えさせた場合を説明したが、本願が開示する演算処理装置はこれに限定されるものではなく、冗長演算器回路群12b専用のメモリを新たに外部バス制御回路に接続するようにしてもよい。
(3)システム構成等
また、本願が開示する演算処理装置は、実施例1で説明した冗長な回路を全て備えている必要はない。例えば、冗長演算器回路群12bとランダムデータ生成回路13とだけを有していてもよく、冗長演算器回路群12bとランダムデータ生成回路13と冗長命令発行回路とだけを有していてもよい。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合(例えば、メモリ管理回路と暗号処理識別回路とを統合するなど)して構成することができる。
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理(例えば、暗号化識別処理など)の全部または一部を手動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
以上の実施例1〜2を含む実施形態に関し、更に以下の付記を開示する。
(付記1)暗号化処理を実行する演算処理装置であって、
前記暗号化処理を実施する第一の演算部と、
前記第一の演算部が前記暗号化処理を実施する場合に、ランダムに生成された命令および/またはデータを用いてマスクプログラム処理を実施する一方、前記第一の演算部が前記暗号化処理を実施しない場合に、通常の演算処理を実施する第二の演算部と、
を備えたことを特徴とする演算処理装置。
(付記2)前記第二の演算部は、前記第一の演算部と同一の構成を有する1つまたは複数の演算部であることを特徴とする付記1に記載の演算処理装置。
(付記3)前記第二の演算部によりマスクプログラム処理が実施された場合には、前記第二の演算部により実施されたマスクプログラムの処理結果のみを格納する一方、前記第二の演算部により通常の演算処理が実施された場合には、前記第二の演算部により実施された演算処理結果を格納するメモリ部をさらに備えたことを特徴とする付記1または2に記載の演算処理装置。
(付記4)前記マスクプログラム処理においてメモリアクセスが発生していない場合に、前記メモリ部に対して、ランダムにメモリアクセスを実施するメモリアクセス部をさらに備えたことを特徴とする付記3に記載の演算処理装置。
(付記5)前記第一の演算部が前記暗号化処理を実施する場合に、前記第二の演算部に対して、ランダムに生成した命令を投入するランダム命令生成部をさらに備え、
前記第二の演算部は、前記マスクプログラム処理を実施する場合に、前記ランダム命令生成部により投入された命令を用いて前記マスクプログラム処理を実施することを特徴とする付記1〜4のいずれか一つに記載の演算処理装置。
(付記6)前記ランダム命令生成部は、前記暗号化処理を実施した実行履歴から前記暗号化処理で実行される各プログラムの実行フェーズを認識し、前記暗号化処理において演算処理の頻度が変化した実行フェーズの場合には、前記第二の演算部に対して、ランダムな命令の頻度を増減させて命令を投入することを特徴とする付記5に記載の演算処理装置。
(付記7)当該演算処理装置全体で消費される消費電力を計測する消費電力計測部をさらに備え、
前記ランダム命令生成部は、前記消費電力計測部により計測された消費電力が所定の閾値より大きい場合には、前記第二の演算部に対して投入する命令を抑止することを特徴とする付記1〜6のいずれか一つに記載の演算処理装置。
(付記8)前記第二の演算部に対して与えるクロックの位相を変動制御させるクロック位相制御部をさらに備えたことを特徴とする付記1〜7のいずれか一つに記載の演算処理装置。
(付記9)暗号化処理を実行する演算処理装置に適した演算処理方法であって、
前記暗号化処理を実施する第一の演算ステップと、
前記暗号化処理を実施する場合に、ランダムに生成されたデータを用いて前記暗号化による電力消費をマスクするマスクプログラム処理を実施する一方、前記暗号化処理を実施しない場合には通常の演算処理を実施する第二の演算ステップと、
を含んだことを特徴とする演算処理方法。
実施例1に係る演算処理装置の構成を示すブロック図である。 演算器回路を説明するための図である。 ランダムデータ生成回路を説明するための図である。 命令発行回路を説明するための図である。 クロック位相制御回路を説明するための図である。 電力チェック回路を説明するための図である。 実施例1に係る演算処理装置における処理の流れを示すフローチャートである。 従来技術を説明するための図である。
符号の説明
10 演算処理装置
11 暗号処理識別回路
12 演算器回路
12a 演算器回路群
12b 冗長演算器回路群
13 ランダムデータ生成回路
14 命令発行回路
14a 冗長命令発行制御回路
14b 冗長命令発行頻度制御回路
15 プロセサ状態管理回路
16 クロック位相制御回路
17 L1キャッシュ
17a 冗長キャッシュ制御回路
18 L2キャッシュ
19 Load/Store回路
19a 冗長Load/Store回路
20 メモリ管理回路
21 外部バス制御回路
21a 冗長バス制御回路
22 電力チェック回路

Claims (5)

  1. 暗号化処理を実行する演算処理装置であって、
    前記暗号化処理を実施する第一の演算部と、
    前記第一の演算部が前記暗号化処理を実施する場合に、ランダムに生成された命令および/またはデータを用いてマスクプログラム処理を実施する一方、前記第一の演算部が前記暗号化処理を実施しない場合に、通常の演算処理を実施する第二の演算部と、
    を備えたことを特徴とする演算処理装置。
  2. 前記第二の演算部は、前記第一の演算部と同一の構成を有する1つまたは複数の演算部であることを特徴とする請求項1に記載の演算処理装置。
  3. 前記第二の演算部によりマスクプログラム処理が実施された場合には、前記第二の演算部により実施されたマスクプログラムの処理結果のみを格納する一方、前記第二の演算部により通常の演算処理が実施された場合には、前記第二の演算部により実施された演算処理結果を格納するメモリ部をさらに備えたことを特徴とする請求項1または2に記載の演算処理装置。
  4. 前記第一の演算部が前記暗号化処理を実施する場合に、前記第二の演算部に対して、ランダムに生成した命令を投入するランダム命令生成部をさらに備え、
    前記第二の演算部は、前記マスクプログラム処理を実施する場合に、前記ランダム命令生成部により投入された命令を用いて前記マスクプログラム処理を実施することを特徴とする請求項1〜3のいずれか一つに記載の演算処理装置。
  5. 当該演算処理装置全体で消費される消費電力を計測する消費電力計測部をさらに備え、
    前記ランダム命令生成部は、前記消費電力計測部により計測された消費電力が所定の閾値より大きい場合には、前記第二の演算部に対して投入する命令を抑止することを特徴とする請求項1〜4のいずれか一つに記載の演算処理装置。
JP2008171214A 2008-06-30 2008-06-30 演算処理装置 Expired - Fee Related JP5146156B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008171214A JP5146156B2 (ja) 2008-06-30 2008-06-30 演算処理装置
US12/382,866 US8407452B2 (en) 2008-06-30 2009-03-25 Processor for performing encryption mask processing using randomly generated instructions and data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008171214A JP5146156B2 (ja) 2008-06-30 2008-06-30 演算処理装置

Publications (2)

Publication Number Publication Date
JP2010011353A true JP2010011353A (ja) 2010-01-14
JP5146156B2 JP5146156B2 (ja) 2013-02-20

Family

ID=41448983

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008171214A Expired - Fee Related JP5146156B2 (ja) 2008-06-30 2008-06-30 演算処理装置

Country Status (2)

Country Link
US (1) US8407452B2 (ja)
JP (1) JP5146156B2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4674440B2 (ja) * 2004-03-04 2011-04-20 ソニー株式会社 データ処理回路
DE102008027391B8 (de) * 2008-06-09 2011-07-28 Atmel Automotive GmbH, 74072 Schaltung, Verfahren zum Empfangen eines Signals und Verwendung eines Zufallsgenerators
US8769355B2 (en) 2011-06-27 2014-07-01 Freescale Semiconductor, Inc. Using built-in self test for preventing side channel security attacks on multi-processor systems
US8958550B2 (en) 2011-09-13 2015-02-17 Combined Conditional Access Development & Support. LLC (CCAD) Encryption operation with real data rounds, dummy data rounds, and delay periods
US9448942B2 (en) * 2012-08-20 2016-09-20 Freescale Semiconductor, Inc. Random access of a cache portion using an access module
US9092622B2 (en) * 2012-08-20 2015-07-28 Freescale Semiconductor, Inc. Random timeslot controller for enabling built-in self test module
US9575727B2 (en) * 2014-09-26 2017-02-21 Intel Corporation Methods for generating random data using phase change materials and related devices and systems
EP3214566B1 (en) * 2016-03-01 2018-09-12 Siemens Aktiengesellschaft Preventing side channel attacks on a cpu
WO2018174819A1 (en) * 2017-03-20 2018-09-27 Nanyang Technological University Hardware security to countermeasure side-channel attacks
US10718827B2 (en) * 2017-08-25 2020-07-21 Infineon Technologies Ag Frequency increasing sensor protocol in magnetic sensing
EP3502912A1 (en) * 2017-12-19 2019-06-26 Gemalto Sa Method of activating a feature of a chip
US11216556B2 (en) * 2018-12-17 2022-01-04 Intel Corporation Side channel attack prevention by maintaining architectural state consistency
US11599679B2 (en) * 2020-06-23 2023-03-07 Arm Limited Electromagnetic and power noise injection for hardware operation concealment
WO2024079726A1 (en) * 2022-10-14 2024-04-18 Telefonaktiebolaget Lm Ericsson (Publ) Adaptive side-channel countermeasure for processing devices

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001230771A (ja) * 2000-01-08 2001-08-24 Koninkl Philips Electronics Nv データ処理装置およびその操作方法
JP2002141897A (ja) * 2000-10-31 2002-05-17 Advanced Mobile Telecommunications Security Technology Research Lab Co Ltd 耐タンパー機能を有する暗号回路
JP2002311826A (ja) * 2001-04-16 2002-10-25 Hitachi Ltd 暗号化・復号化装置、暗号化・復号化方法、データの暗号化方法及びicカード
JP2003188871A (ja) * 2001-12-20 2003-07-04 Fujitsu Ltd 暗号処理装置、暗号処理ユニット制御装置および暗号処理ユニット
JP2005045752A (ja) * 2003-07-07 2005-02-17 Sony Corp 暗号処理装置、および暗号処理方法
JP2007122657A (ja) * 2005-10-31 2007-05-17 Toshiba Corp 消費電流制御システム
JP2007195132A (ja) * 2005-12-20 2007-08-02 Sony Corp 暗号処理装置
JP2008141381A (ja) * 2006-11-30 2008-06-19 Toshiba Corp 情報処理装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6804782B1 (en) * 1999-06-11 2004-10-12 General Instrument Corporation Countermeasure to power attack and timing attack on cryptographic operations
JP4083925B2 (ja) * 1999-06-24 2008-04-30 株式会社日立製作所 情報処理装置、カード部材および情報処理システム
FR2796477B1 (fr) * 1999-07-15 2001-10-12 Gemplus Card Int Procede d'amelioration d'un generateur aleatoire en vue de le rendre resistant contre les attaques par mesure de courant
US6625737B1 (en) * 2000-09-20 2003-09-23 Mips Technologies Inc. System for prediction and control of power consumption in digital system
DE10061997A1 (de) * 2000-12-13 2002-07-18 Infineon Technologies Ag Kryptographieprozessor
DE10101956A1 (de) * 2001-01-17 2002-07-25 Infineon Technologies Ag Verfahren zur Erhöhung der Sicherheit einer CPU
CA2486713A1 (en) * 2002-05-23 2003-12-04 Atmel Corporation Advanced encryption standard (aes) hardware cryptographic engine
JP2004056363A (ja) 2002-07-18 2004-02-19 Mitsubishi Electric Corp 暗号処理装置及び電力平準化制御方法
US7313677B2 (en) * 2002-12-12 2007-12-25 Arm Limited Processing activity masking in a data processing system
EP1496641A3 (en) * 2003-07-07 2005-03-02 Sony Corporation Cryptographic processing apparatus, cryptographic processing method and computer program
DE10347301B4 (de) * 2003-10-08 2007-12-13 Infineon Technologies Ag Schaltung mit einem Bus mit mehreren Empfängern
US7996671B2 (en) * 2003-11-17 2011-08-09 Bluerisc Inc. Security of program executables and microprocessors based on compiler-architecture interaction
JP4435593B2 (ja) 2004-02-04 2010-03-17 株式会社ルネサステクノロジ 耐タンパー情報処理装置
CN100356342C (zh) * 2003-11-18 2007-12-19 株式会社瑞萨科技 信息处理装置
JP3933647B2 (ja) * 2004-05-10 2007-06-20 シャープ株式会社 消費電力解析防止機能つき半導体装置
US7949883B2 (en) * 2004-06-08 2011-05-24 Hrl Laboratories, Llc Cryptographic CPU architecture with random instruction masking to thwart differential power analysis
FR2875318A1 (fr) * 2004-09-15 2006-03-17 St Microelectronics Sa Protection d'un algorithme des
US7774616B2 (en) * 2006-06-09 2010-08-10 International Business Machines Corporation Masking a boot sequence by providing a dummy processor
FR2903830B1 (fr) 2006-07-11 2008-08-22 Alcatel Sa Procede et dispositif de surveillance des chemins optiques de connexion pour un reseau optique transparent
US8006045B2 (en) * 2009-02-27 2011-08-23 Atmel Rousset S.A.S. Dummy write operations
DE102010028375A1 (de) * 2010-04-29 2011-11-03 Robert Bosch Gmbh Schutz vor kryptoanalytischen Seitenkanalattacken

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001230771A (ja) * 2000-01-08 2001-08-24 Koninkl Philips Electronics Nv データ処理装置およびその操作方法
JP2002141897A (ja) * 2000-10-31 2002-05-17 Advanced Mobile Telecommunications Security Technology Research Lab Co Ltd 耐タンパー機能を有する暗号回路
JP2002311826A (ja) * 2001-04-16 2002-10-25 Hitachi Ltd 暗号化・復号化装置、暗号化・復号化方法、データの暗号化方法及びicカード
JP2003188871A (ja) * 2001-12-20 2003-07-04 Fujitsu Ltd 暗号処理装置、暗号処理ユニット制御装置および暗号処理ユニット
JP2005045752A (ja) * 2003-07-07 2005-02-17 Sony Corp 暗号処理装置、および暗号処理方法
JP2007122657A (ja) * 2005-10-31 2007-05-17 Toshiba Corp 消費電流制御システム
JP2007195132A (ja) * 2005-12-20 2007-08-02 Sony Corp 暗号処理装置
JP2008141381A (ja) * 2006-11-30 2008-06-19 Toshiba Corp 情報処理装置

Also Published As

Publication number Publication date
JP5146156B2 (ja) 2013-02-20
US8407452B2 (en) 2013-03-26
US20090327664A1 (en) 2009-12-31

Similar Documents

Publication Publication Date Title
JP5146156B2 (ja) 演算処理装置
Murdock et al. Plundervolt: Software-based fault injection attacks against Intel SGX
Qiu et al. Voltjockey: Breaching trustzone by software-controlled voltage manipulation over multi-core frequencies
Wichelmann et al. Microwalk: A framework for finding side channels in binaries
Yuce et al. Fault attacks on secure embedded software: Threats, design, and evaluation
Götzfried et al. Cache attacks on Intel SGX
Suh et al. Aegis: A single-chip secure processor
De Mulder et al. Protecting RISC-V against side-channel attacks
Suh et al. AEGIS: A single-chip secure processor
Saputra et al. Masking the energy behavior of DES encryption [smart cards]
JP5643894B2 (ja) サイドチャネル攻撃および反復起動攻撃に耐える動的可変タイミング演算パスのシステムおよび方法
EP2273718B1 (en) Cryptographic key generation using a stored input value and a count value stored for later regeneration
Bayrak et al. Automatic application of power analysis countermeasures
US7801298B2 (en) Apparatus and method for detecting a potential attack on a cryptographic calculation
US20120331309A1 (en) Using built-in self test for preventing side channel security attacks on multi-processor systems
US20160188874A1 (en) System and method for secure code entry point control
US20060080537A1 (en) Illegal analysis / falsification preventing system
US9735953B2 (en) Side channel analysis resistant architecture
CN110825672B (zh) 用于联机加密处理的高性能自主硬件引擎
Tunstall Smart card security
US9251098B2 (en) Apparatus and method for accessing an encrypted memory portion
CN111046381A (zh) 一种嵌入式cpu抗差分功耗分析装置及方法
Kiaei et al. Domain-oriented masked instruction set architecture for RISC-V
TWI712915B (zh) 執行一密碼編譯操作之方法,以及電腦可讀非暫時性儲存媒體
CN106548098B (zh) 用于检测故障攻击的方法和系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110315

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120802

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120821

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121002

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121112

R150 Certificate of patent or registration of utility model

Ref document number: 5146156

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151207

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees