JP2010288233A - 暗号処理装置 - Google Patents
暗号処理装置 Download PDFInfo
- Publication number
- JP2010288233A JP2010288233A JP2009142622A JP2009142622A JP2010288233A JP 2010288233 A JP2010288233 A JP 2010288233A JP 2009142622 A JP2009142622 A JP 2009142622A JP 2009142622 A JP2009142622 A JP 2009142622A JP 2010288233 A JP2010288233 A JP 2010288233A
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- cryptographic
- round function
- operation mode
- round
- 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.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/72—Protecting 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 in cryptographic circuits
-
- 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
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
- G06F2207/7223—Randomisation as countermeasure against side channel attacks
-
- 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/08—Randomization, e.g. dummy operations or using noise
-
- 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
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
-
- 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/24—Key scheduling, i.e. generating round keys or sub-keys for block encryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
Abstract
【課題】電力解析攻撃に対する耐性を確保しつつ、処理時間を短くできる暗号処理装置を提供する。
【解決手段】暗号処理装置1は、それぞれが暗号処理を実行する第1及び第2のラウンド関数演算回路27a、27bと、第1のラウンド関数演算回路27aと前記第2のラウンド関数演算回路27bを並列に動作させる並列動作モード(PM)と、第1のラウンド関数演算回路27aと第2のラウンド関数演算回路27bを直列に動作させる直列動作モード(SM)とをランダムに切り替えて、第1のラウンド関数演算回路27aと第2のラウンド関数演算回路27bを動作させる制御回路30とを有する。
【選択図】図2
【解決手段】暗号処理装置1は、それぞれが暗号処理を実行する第1及び第2のラウンド関数演算回路27a、27bと、第1のラウンド関数演算回路27aと前記第2のラウンド関数演算回路27bを並列に動作させる並列動作モード(PM)と、第1のラウンド関数演算回路27aと第2のラウンド関数演算回路27bを直列に動作させる直列動作モード(SM)とをランダムに切り替えて、第1のラウンド関数演算回路27aと第2のラウンド関数演算回路27bを動作させる制御回路30とを有する。
【選択図】図2
Description
本発明は、暗号処理装置に関し、特に、電力解析攻撃に対する耐性を有する暗号処理装置に関する。
従来より、暗号処理装置で消費される電力から暗号処理装置で用いられる秘密情報を取り出す電力解析という方法がある。このような解析方法への対策として、例えばデータマスキング法という技術が提案されている(例えば、特許文献1参照)。データマスキング法によれば、乱数発生回路がマスクデータとしての乱数を生成し、暗号処理回路は、その乱数発生回路から供給されるマスクデータを用いてデータマスキングを行いながら、暗号処理を実行する。
データマスキング法は、一般に、入力された平文と乱数であるマスクデータとの排他的論理和等の演算を行うことによって、入力された平文を無関係のデータに変換して暗号処理を行うようにして、電力解析攻撃に対する耐性を高めている。
上記提案に係る暗号処理装置では、DESの暗号演算の一部であるS関数を2つ用いて、その2つのS関数をランダムに切り替えるようにして、電力解析攻撃に対する耐性を持たせている。
上記提案に係る暗号処理装置では、DESの暗号演算の一部であるS関数を2つ用いて、その2つのS関数をランダムに切り替えるようにして、電力解析攻撃に対する耐性を持たせている。
しかしながら、その提案の暗号処理装置では、S関数の部分の回路規模が二倍になっているにも拘わらず、処理時間は、それまでの従来の装置と同じである。
そこで、本発明は、電力解析攻撃に対する耐性を確保しつつ、処理時間を短くできる暗号処理装置を提供することを目的とする。
本発明の一態様によれば、それぞれが暗号処理を実行する第1及び第2の暗号演算回路と、前記第1の暗号演算回路と前記第2の暗号演算回路を並列に動作させる並列動作モードと、前記第1の暗号演算回路と前記第2の暗号演算回路を直列に動作させる直列動作モードとをランダムに切り替えて、前記第1の暗号演算回路と前記第2の暗号演算回路を動作させる制御回路とを有する暗号処理装置を提供することができる。
本発明によれば、電力解析攻撃に対する耐性を確保しつつ、処理時間を短くできる暗号処理装置を実現することができる。
以下、図面を参照して本発明の実施の形態を説明する。
(構成)
まず、図1に基づき、本発明の実施の形態に係わる暗号処理回路が搭載される暗号処理装置の構成を説明する。図1は、本実施の形態に係わる暗号処理装置1の構成を示す構成図である。
(構成)
まず、図1に基づき、本発明の実施の形態に係わる暗号処理回路が搭載される暗号処理装置の構成を説明する。図1は、本実施の形態に係わる暗号処理装置1の構成を示す構成図である。
暗号処理装置1は、中央処理装置(CPU)11と、プログラム等を記憶したROM12と、CPU11の作業用記憶領域としてのRAM13と、外部とのデータの送受信を行うための送受信インターフェース回路(以下、送受信I/Fと略す)14と、暗号処理回路を含む暗号回路モジュール15と、暗号回路モジュール15とバス16との暗号回路I/F17と、乱数を発生する回路である乱数発生回路18を含んで構成されている。CPU11と、ROM12と、RAM13と、送受信I/F14と、暗号回路I/F17は、バス16を介して互いに接続されている。
暗号処理装置1は、例えば、IC(Integrated Circuit)カードであり、カードリーダ装置等の外部装置(図示せず)からのデータを受信すると、そのデータに対して所定の暗号処理を施し、その暗号処理結果のデータを出力又は送信する。外部装置とのデータの送受信は、送受信I/F14を介して、例えば、図示しない無線通信用の回路を介して無線通信により行われる。
また、CPU11と暗号回路モジュール15間で送受信されるデータも、暗号化される。
暗号回路モジュール15は、2つの暗号処理回路を含み、暗号化及び/又は復号化の処理、を実行する。本実施の形態の暗号処理回路は、DES(Data Encryption Standard)のラウンド関数を用いた回路である。DESのラウンド関数にはデータ入力の他に、各ラウンドに入力されるラウンド鍵(拡大鍵)が、鍵データとして入力される。
乱数発生回路18は、乱数を生成して出力する回路である。
暗号回路モジュール15は、2つの暗号処理回路を含み、暗号化及び/又は復号化の処理、を実行する。本実施の形態の暗号処理回路は、DES(Data Encryption Standard)のラウンド関数を用いた回路である。DESのラウンド関数にはデータ入力の他に、各ラウンドに入力されるラウンド鍵(拡大鍵)が、鍵データとして入力される。
乱数発生回路18は、乱数を生成して出力する回路である。
また、図2は、暗号回路モジュール15の構成を示すブロック図である。
図2に示すように、暗号回路モジュール15は、入力端子21、選択回路であるセレクタ22、23a、23b、24a、24b、25、レジスタ26、所定のラウンド関数を演算するラウンド関数演算回路27a、27b、鍵スケジューラ28、出力端子29、及び制御回路30を有して構成されている。
図2に示すように、暗号回路モジュール15は、入力端子21、選択回路であるセレクタ22、23a、23b、24a、24b、25、レジスタ26、所定のラウンド関数を演算するラウンド関数演算回路27a、27b、鍵スケジューラ28、出力端子29、及び制御回路30を有して構成されている。
入力端子21は、暗号回路I/F17からの入力データDinを入力する端子である。セレクタ22は、ラウンド関数演算の結果出力と入力データDinのいずれか一方を、選択信号S0に応じて選択して出力するための回路である。レジスタ26は、セレクタ22の出力を入力し、入力データDin又はラウンド関数演算の中間結果を保持して出力するための回路である。
セレクタ24a、24bは、図2に示すように、それぞれ制御回路30からの選択信号S1,S2に応じて、レジスタ26の出力あるいはラウンド関数演算回路27b、27aの出力のいずれか一方を選択して出力するための回路である。
ラウンド関数演算回路27a、27bは、所定の暗号化演算処理あるいは所定の復号化演算処理の暗号処理を実行する回路である。よって、暗号処理は、暗号化処理あるいは復号化処理を意味する。ラウンド関数演算回路27aとラウンド関数演算回路27bのそれぞれは、鍵スケジューラ28からの鍵データであるラウンド鍵Kinを入力する入力端子を有する。
セレクタ22は、暗号処理を開始するときは、制御回路30からの選択信号S0により入力端子21からの入力データDinを選択して、レジスタ26に出力するように制御され、ラウンド関数演算中は、制御回路30からの選択信号S0によりラウンド関数演算の演算結果のデータを選択して、レジスタ26に出力するように制御される。
レジスタ26は、暗号処理中は、暗号処理の中間結果を保持する。レジスタ26の出力は、2つのセレクタ24aと24bのそれぞれの一方の入力端子に入力される。セレクタ24aの他方の入力端子には、ラウンド関数演算回路27bの出力が入力される。セレクタ24bの他方の入力端子には、ラウンド関数演算回路27aの出力が入力される。
セレクタ24aの出力は、ラウンド関数演算回路27aに供給され、セレクタ24bの出力は、ラウンド関数演算回路27bに供給される。
ラウンド関数演算回路27aと27bの出力は、セレクタ25に入力される。セレクタ25の出力は、セレクタ22の他方の入力端子に供給され、かつ出力端子29に供給される。最終的な暗号処理の結果は、出力データDoutとして出力端子29から出力される。
ラウンド関数演算回路27aと27bの出力は、セレクタ25に入力される。セレクタ25の出力は、セレクタ22の他方の入力端子に供給され、かつ出力端子29に供給される。最終的な暗号処理の結果は、出力データDoutとして出力端子29から出力される。
セレクタ24a、24b、25は、それぞれ、制御回路30からの選択信号S1、S2、S3に応じて2つの入力の一方を選択して出力する。
鍵スケジューラ28は、制御回路30からの制御信号CSに基づいて、2つのラウンド鍵Kin1,Kin2を生成して出力する回路である。2つのラウンド鍵Kin1,Kin2は、それぞれ鍵スケジューラ28の2つの出力端子28a、28bから出力される。2つのラウンド鍵Kin1,Kin2は、2つのセレクタ23a、23bに入力される。2つのセレクタ23aと23bは、それぞれ、制御回路30からの選択信号S4とS5に応じて、入力された2つのラウンド鍵Kin1,Kin2のいずれか一方を選択して、ラウンド関数演算回路27a、27bに出力する。
鍵スケジューラ28は、制御回路30からの制御信号CSに基づいて、2つのラウンド鍵Kin1,Kin2を生成して出力する回路である。2つのラウンド鍵Kin1,Kin2は、それぞれ鍵スケジューラ28の2つの出力端子28a、28bから出力される。2つのラウンド鍵Kin1,Kin2は、2つのセレクタ23a、23bに入力される。2つのセレクタ23aと23bは、それぞれ、制御回路30からの選択信号S4とS5に応じて、入力された2つのラウンド鍵Kin1,Kin2のいずれか一方を選択して、ラウンド関数演算回路27a、27bに出力する。
セレクタ23aと23bは、2つのラウンド関数演算回路に入力されるラウンド鍵Kin1,Kin2を制御するための回路である。後述するように、並列動作モードPMのときは、セレクタ23aと23bは、そのサイクルにおいて実行するラウンド関数演算に使用されるラウンド鍵を選択して出力する。セレクタ23aと23bは、直列動作モードSMのときは、そのサイクルにおいて先に演算処理を行うラウンド関数演算回路に最初のラウンド鍵を、後に演算処理を行うラウンド関数演算回路に2番目のラウンド鍵を入力するように、制御される。すなわち、2つのラウンド関数演算回路は、互いに時間をずらして動作する。例えば、あるサイクルにおいて、ラウンド関数演算回路27bが先に処理を行い、かつ第1の出力端子28aから最初のラウンド鍵が出力され、第2の出力端子28bから2番目のラウンド鍵が出力されていた場合、セレクタ23aと23bは、ラウンド関数演算回路27bに、最初のラウンド鍵が供給され、ラウンド関数演算回路27aに2番目のラウンド鍵が供給されるように制御される。
制御回路30は、制御回路部30aと出力回路部30bとを含んで構成されている。制御回路30は、並列動作モードPMと直列動作モードSMの2つのモードで、暗号処理を実行するように暗号回路モジュール15を制御するための回路である。
制御回路部30aは、暗号処理においてラウンドの状態(例えば、実行サイクルが何ラウンド目であるか等)を管理し、鍵スケジューラ28への制御信号CSと、出力回路部30bに対する制御信号CS1を出力する回路部である。
さらに、制御回路30は、乱数発生回路18からの乱数データRNに基づいて、ラウンド関数演算回路27aと27bを、後述する並列動作モードPMと直列動作モードSMでランダムに動作させるようにするための選択信号Si(ここで、iは、1から5)を出力する。
さらに、制御回路30は、乱数発生回路18からの乱数データRNに基づいて、ラウンド関数演算回路27aと27bを、後述する並列動作モードPMと直列動作モードSMでランダムに動作させるようにするための選択信号Si(ここで、iは、1から5)を出力する。
図2の場合、乱数データRNは、出力回路部30bに入力される。出力回路部30bは、乱数データの値に応じて、並列動作モードPMと直列動作モードSMのいずれかのモードでラウンド関数演算回路を動作させるように、選択信号Siを生成して出力する回路部である。
例えば、乱数データRNは、「1」と「0」のランダムデータでもよい。乱数データRNの「1」が並列動作モードPM、「0」が直列動作モードSMに対応させて、出力回路部30bは、そのモードに応じた選択信号Siを出力するようにしてもよい。
(動作)
次に図2に示した暗号回路モジュール15の動作を説明する。
制御回路30は、乱数発生回路18からの乱数に応じて、並列動作モードPMと直列動作モードSMをランダムに変化させながら、ラウンド関数演算回路27aと27bを動作させる。
次に図2に示した暗号回路モジュール15の動作を説明する。
制御回路30は、乱数発生回路18からの乱数に応じて、並列動作モードPMと直列動作モードSMをランダムに変化させながら、ラウンド関数演算回路27aと27bを動作させる。
並列動作モードPMでラウンド関数演算を行う場合は、セレクタ24aと24bは、共にレジスタ26からの出力を選択する。そのため、制御回路30からは、レジスタ26の出力を選択するように、選択信号S1,S2がセレクタ24aと24bに出力される。従って、ラウンド関数演算回路27aと27bには、レジスタ26の出力が入力される。ラウンド関数演算回路27aと27bには、同じデータが入力され、それぞれ処理が行われる。ラウンド関数演算回路27aと27bのそれぞれの出力は、セレクタ25に出力される。セレクタ25は、選択信号S3に応じていずれかの一方の出力を選択し、レジスタ26に出力する。
一方、直列動作モードSMでラウンド関数演算を行う場合は、2つのラウンド関数演算回路27aと27bの動作順序によって2通りの場合がある。第1の場合は、一つのサイクルにおいて、ラウンド関数演算回路27aを先に演算を行い、引き続き、その結果をラウンド関数演算回路27bが行う場合であり、第2の場合は、一つのサイクルにおいてラウンド関数演算回路27bが先に演算を行い、引き続き、その結果をラウンド関数演算回路27aが行う場合である。
ラウンド関数演算回路27aが先に演算を行う第1の場合は、セレクタ24aは、レジスタ26からの出力をラウンド関数演算回路27aに出力し、ラウンド関数演算回路27aは、レジスタ26からの出力に対して暗号処理を行う。その結果はセレクタ24bにも出力されているので、セレクタ24bは、選択信号S2に応じてラウンド関数演算回路27aからの出力をラウンド関数演算回路27bに供給する。ラウンド関数演算回路27bは、ラウンド関数演算回路27aからの出力に対して暗号処理を行い、結果をセレクタ25に出力する。セレクタ25には、ラウンド関数演算回路27aからの出力とラウンド関数演算回路27bからの出力が入力されている。セレクタ25は、選択信号S3に応じて、ラウンド関数演算回路27bからの出力を選択し、レジスタ26に出力する。レジスタ26は、セレクタ25から出力された結果を保持する。
ラウンド関数演算回路27bが先に演算を行う第2の場合は、セレクタ24bは、レジスタ26からの出力をラウンド関数演算回路27bに出力し、ラウンド関数演算回路27bは、レジスタ26からの出力に対して暗号処理を行う。その結果はセレクタ24aにも出力されているので、セレクタ24aは、選択信号S1に応じてラウンド関数演算回路27bからの出力をラウンド関数演算回路27aに供給する。ラウンド関数演算回路27aは、ラウンド関数演算回路27bからの出力に対して暗号処理を行い、結果をセレクタ25に出力する。セレクタ25には、ラウンド関数演算回路27bからの出力とラウンド関数演算回路27aからの出力が入力されている。セレクタ25は、選択信号S3に応じて、ラウンド関数演算回路27aからの出力を選択し、レジスタ26に出力する。
制御回路30は、乱数発生回路18からの乱数に基づいて、暗号処理回路の動作モードを、並列動作モードPMと直列動作モードSMの間で切り替える切り替え制御部を構成する。
制御回路30は、ラウンドの状態を管理しながら、鍵スケジューラ28に対して制御信号CSを出力する。制御信号CSは、ラウンドの情報を示すデータを含む。すなわち、鍵スケジューラ28は、制御回路28からの制御信号CSに基づいて、ラウンドの状態に応じたラウンド鍵を、2つの出力端子から出力する。
並列動作モードPMの場合は、鍵スケジューラ28は、同じデータを2つの出力端子28a、28bから出力し、直列動作モードSMの場合は、異なるデータを2つの出力端子28a、28bから出力する。特に、鍵スケジューラ28は、直列動作モードSMの場合、第1の場合と第2の場合に応じて、2つのラウンド関数演算回路のそれぞれに対応するラウンド鍵を出力する。
例えば、第3ラウンドが並列動作モードPMで実行されるとき、第3のラウンド鍵の鍵データが、鍵スケジューラ28の2つの出力端子28a、28bから出力される。第4と第5ラウンドが直列動作モードSMで実行されるときは、第4のラウンド鍵の鍵データが、第4ラウンドの暗号演算を実行するラウンド関数演算回路へ鍵スケジューラ28の一方の出力端子から出力され、第5のラウンド鍵の鍵データが、第5ラウンドの暗号演算を実行するラウンド関数演算回路へ鍵スケジューラ28の他方の出力端子から出力される。
並列動作モードPMの場合は、鍵スケジューラ28は、同じデータを2つの出力端子28a、28bから出力し、直列動作モードSMの場合は、異なるデータを2つの出力端子28a、28bから出力する。特に、鍵スケジューラ28は、直列動作モードSMの場合、第1の場合と第2の場合に応じて、2つのラウンド関数演算回路のそれぞれに対応するラウンド鍵を出力する。
例えば、第3ラウンドが並列動作モードPMで実行されるとき、第3のラウンド鍵の鍵データが、鍵スケジューラ28の2つの出力端子28a、28bから出力される。第4と第5ラウンドが直列動作モードSMで実行されるときは、第4のラウンド鍵の鍵データが、第4ラウンドの暗号演算を実行するラウンド関数演算回路へ鍵スケジューラ28の一方の出力端子から出力され、第5のラウンド鍵の鍵データが、第5ラウンドの暗号演算を実行するラウンド関数演算回路へ鍵スケジューラ28の他方の出力端子から出力される。
図3は、本実施の形態における並列動作モードPMと直列動作モードSMの切り替えによる演算状況の例を説明するための図である。
上述した図2に示す暗号回路モジュール15によれば、並列動作モードPMと直列動作モードSMが乱数RNに基づいてランダムに実行される。言い換えれば、暗号処理回路の動作モードが、並列動作モードPM又は直列動作モードSMにランダムに変化する。例えば、図3の(a)に示す例では、最初のサイクルでは直列動作モードSMで第1と第2ラウンドが実行され、次のサイクルでは並列動作モードPMで第3ラウンドが実行され、その次のサイクルも並列動作モードPMで第4ラウンドが実行され、その次のサイクルでは直列動作モードSMで第5と第6ラウンドが実行されている。そして、最後から1つ前のサイクルでは第14ラウンドは並列動作モードPMで実行され、最後のサイクルでは第15と第16ラウンドが直列動作モードSMで実行されて、暗号処理が終了している。
並列動作モードPMと直列動作モードSMは乱数RNに基づいてランダムに実行されるので、全てのサイクルが直列動作モードSMである場合(図3の(b)の場合)もあり得るし、全てのサイクルが並列動作モードPMである場合(図3の(c)の場合)もあり得る。しかし、通常は、全てのサイクルが直列動作モードSMとなる確率(図3の(b)の場合)あるいは全てのサイクルが並列動作モードPMとなる確率(図3の(c)の場合)は低く、並列動作モードPMと直列動作モードSMがランダムに混在する。
従って、通常は、全体の暗号処理時間Tspは、全てのサイクルにおいて直列動作モードSMが実行される図3の(b)の場合の時間Tsよりも長く、全てのサイクルにおいて並列動作モードPMが実行される図3の(c)の場合の時間Tpよりも短くなる。
さらに、ランダムに並列動作モードPMと直列動作モードSMがランダムに切り替わりながら実行されるため、電力解析攻撃への耐性も確保されている。また、2つの動作モードがランダムに組み合わされるので、暗号処理に要する全体の処理時間が変化するため、電力解析のタイミングを合わせることが困難になるので、その点においても電力解析攻撃への耐性は高い。
以上のように、本実施の形態に係る暗号処理装置によれば、電力解析攻撃に対する耐性を確保しつつ、処理時間を短くできる暗号処理装置を提供することができる。
次に、上述した実施の形態に係る暗号処理装置の変形例について説明する。上述した実施の形態に係る暗号処理装置を、以下に説明するように一部変更あるいは追加してもよい。
次に、上述した実施の形態に係る暗号処理装置の変形例について説明する。上述した実施の形態に係る暗号処理装置を、以下に説明するように一部変更あるいは追加してもよい。
(変形例1)
本変形例に係る暗号処理装置は、2つの動作モードの実行サイクルの間にダミーのラウンド鍵を用いた暗号演算すなわちダミー演算をランダムに挿入するように構成される。
図4は、本変形例に係る暗号処理装置の暗号回路モジュール15Aの構成例を示すブロック図である。図2と同じ構成要素については同じ符号を付し説明は省略する。
本変形例に係る暗号処理装置は、2つの動作モードの実行サイクルの間にダミーのラウンド鍵を用いた暗号演算すなわちダミー演算をランダムに挿入するように構成される。
図4は、本変形例に係る暗号処理装置の暗号回路モジュール15Aの構成例を示すブロック図である。図2と同じ構成要素については同じ符号を付し説明は省略する。
図4では、鍵スケジューラ28Aには、乱数発生回路18からの乱数RN1が入力される。鍵スケジューラ28Aは、入力された乱数RN1に応じて、直列動作モードSM時に、ダミーのラウンド鍵を生成して出力するダミー生成部28cを含む。なお、乱数RN1は、上述した乱数RNと同じものでもよいし、異なるものでもよい。
DESやAES等のアルゴリズムの特徴として、同じ鍵を用いて暗号化のためのラウンド処理と復号化のためのラウンド処理を行うと、データが元に戻る(すなわち出力データが入力データと同じになる)という性質がある。従って、この性質を利用して、ランダムに発生する直列動作モードSM時に、乱数RN1に基づいて生成されたラウンド鍵を用いて、2つのラウンド関数演算回路はラウンド演算を実行するダミー演算のサイクルを実行する。さらに、ダミー生成部28cがダミーのラウンド鍵を出力するタイミング(すなわちダミー演算サイクルの挿入されるタイミング)も、乱数RN1に基づいて決定される。
図5は、本変形例における並列動作モードPMと直列動作モードSMの切り替えによる演算状況の例を説明するための図である。
上述した図4に示す暗号回路モジュール15Aによれば、並列動作モードPMと直列動作モードSMが乱数RNに基づいて混在しながらランダムに実行され、かつダミー演算サイクルが乱数RN1に基づいてランダムに挿入される。例えば、図5の(a)に示す例では、最初に直列動作モードSMで第1と第2ラウンドが実行され、次に並列動作モードPMで第3ラウンドが実行され、その次では、直列動作モードSMでダミー演算が実行され、その次では直列動作モードSMで第4と第5ラウンドが実行されている。そして、第14ラウンドの後にダミー演算が実行され、最後に第15と第16ラウンドが直列動作モードSMで実行されて、暗号処理が終了している。
上述した図4に示す暗号回路モジュール15Aによれば、並列動作モードPMと直列動作モードSMが乱数RNに基づいて混在しながらランダムに実行され、かつダミー演算サイクルが乱数RN1に基づいてランダムに挿入される。例えば、図5の(a)に示す例では、最初に直列動作モードSMで第1と第2ラウンドが実行され、次に並列動作モードPMで第3ラウンドが実行され、その次では、直列動作モードSMでダミー演算が実行され、その次では直列動作モードSMで第4と第5ラウンドが実行されている。そして、第14ラウンドの後にダミー演算が実行され、最後に第15と第16ラウンドが直列動作モードSMで実行されて、暗号処理が終了している。
以上のように、並列動作モードPMと直列動作モードSMが乱数RNに基づいて混在しながらランダムに実行されるだけでなく、さらにダミー演算サイクルが乱数に基づいてランダムに挿入されるので、電力解析攻撃に対して上述した実施の形態の場合よりも、より高い耐性を確保しつつ、処理時間を短くできる暗号処理装置を実現することができる。
さらに、暗号演算処理の最初と最後の部分の少なくとも一方には1以上のダミー演算サイクルを必ず追加するようにしてもよい。これは、電力解析は、特に、最初と最後、ここでは第1と第16ラウンドの実行時に対して行われることが多いからである。
図5の(b)では、暗号演算処理の最初の部分(すなわち第1ラウンドの前の部分)FPに、1以上のダミー演算サイクルが追加されている例が示されている。図5の(b)では、最初の部分FPには、2つのダミー演算サイクルが追加されているが、追加されるダミー演算サイクルの数は、乱数RN1に基づいて決定される。
さらに、図5の(b)では、暗号演算処理の最後の部分(すなわち第16ラウンドの後の部分)LPに、ダミー演算サイクルが追加されている例を示す。図5の(b)では、最後の部分LPには、1つのダミー演算サイクルが追加されているが、追加されるダミー演算サイクルの数は、乱数RN1に基づいて決定される。
このように、最初と最後の両部分には必ず、あるいは最初と最後の部分の少なくとも一方には、1以上のダミー演算サイクルが追加される。その追加されるダミー演算サイクルの数は、ランダムに決定される。
以上のように、並列動作モードPMと直列動作モードSMの実行サイクルの間へのダミー演算の挿入と、暗号演算処理の最初と最後の部分へのダミー演算の追加を行うことにより、より高い耐性を確保しつつ、処理時間を短くできる暗号処理装置を実現することができる。
なお、ダミー演算の挿入と追加の一方だけを行うようにしても、より高い耐性を確保しつつ、処理時間を短くできる暗号処理装置を実現することができる。
(変形例2)
本変形例に係る暗号処理装置は、ラウンド関数演算にマスクデータを利用して暗号処理を実行するように構成される。
本変形例は、上述した実施の形態あるいは変形例1に係る暗号処理装置において、データマスキング法による暗号処理が適用されて、具体的には、各ラウンド関数演算回路にマスクデータが入力され、マスクデータを用いてデータマスキングを行いながら、暗号処理が実行される例である。
本変形例に係る暗号処理装置は、ラウンド関数演算にマスクデータを利用して暗号処理を実行するように構成される。
本変形例は、上述した実施の形態あるいは変形例1に係る暗号処理装置において、データマスキング法による暗号処理が適用されて、具体的には、各ラウンド関数演算回路にマスクデータが入力され、マスクデータを用いてデータマスキングを行いながら、暗号処理が実行される例である。
図2あるいは図4において、点線で示すように、ラウンド関数演算回路27aと27bにマスクデータMが入力される。マスクデータMは、乱数発生回路18から出力される乱数を用いて生成される。なお、マスクデータMを生成するために用いられる乱数は、上述した乱数RNと同じものでもよいし、異なるものでもよい。
データマスキング法は、特開2000−66585号(特許第3600454号)公報に示されるような方法を用いることができる。その場合、該公報に示されるような方法とは異なり、第一の暗号演算回路は、第一のマスクパターンのみを用いて暗号演算を行い、第二の暗号演算回路は、第二のマスクパターンのみを用いて暗号演算を行うような回路構成とすることができる。そして、直列動作モードでは、上記公報に記載の方法よりも高速に暗号処理を行うことが可能となり、並列動作モードでは、上記公報に記載の方法と同じ処理速度となる。
本変形例によれば、上述した実施の形態あるいは変形例1に係る暗号処理装置において、データマスキングによる耐性の向上も追加されるので、電力解析攻撃に対して、より高い耐性が確保できる。
なお、上述した実施の形態及び2つの変形例に係る暗号処理装置は、DESのラウンド関数を用いた暗号処理装置であるが、暗号処理方式としてはDESに限らず、他の方式を用いてもよい。
例えば、暗号処理方式としてAES(Advanced Encryption Standard)を用いることができる。DESの場合は、暗号用と復号用で同じ演算回路を用いるが、AESの場合は、2つの暗号演算回路のそれぞれに、暗号用と復号用の2つの演算回路が含まれ、2つの演算回路が切り替えられて実行されるように構成される。その場合は、制御回路30から暗号用と復号用のいずれの演算回路を用いるかを指示する信号が制御信号に含まれる。上述した変形例1におけるダミーのラウンド鍵を用いる場合は、2つの演算回路の一方を暗号用とし、他方を復号用として、それぞれに異なるラウンド鍵を供給するように、制御回路30は、2つのラウンド関数演算回路27a、27bと鍵スケジューラ28Aを制御する。
例えば、暗号処理方式としてAES(Advanced Encryption Standard)を用いることができる。DESの場合は、暗号用と復号用で同じ演算回路を用いるが、AESの場合は、2つの暗号演算回路のそれぞれに、暗号用と復号用の2つの演算回路が含まれ、2つの演算回路が切り替えられて実行されるように構成される。その場合は、制御回路30から暗号用と復号用のいずれの演算回路を用いるかを指示する信号が制御信号に含まれる。上述した変形例1におけるダミーのラウンド鍵を用いる場合は、2つの演算回路の一方を暗号用とし、他方を復号用として、それぞれに異なるラウンド鍵を供給するように、制御回路30は、2つのラウンド関数演算回路27a、27bと鍵スケジューラ28Aを制御する。
さらになお、上述した実施の形態及び2つの変形例に係る暗号処理装置では、暗号用の演算回路が2つ(具体的には、ラウンド関数演算回路27aと27b)ある例であるが、3つ以上あってもよい。
また、上述した実施の形態及び各変形例では、各暗号処理装置として、ICカードの例を挙げて説明したが、他の機器でもよい。
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
1 暗号処理装置、15 暗号回路モジュール、16 バス、21 入力端子、22,23a,23b,24a、24b、25 セレクタ、28c ダミー生成部、30 制御回路
Claims (5)
- それぞれが暗号処理を実行する第1及び第2の暗号演算回路と、
前記第1の暗号演算回路と前記第2の暗号演算回路を並列に動作させる並列動作モードと、前記第1の暗号演算回路と前記第2の暗号演算回路を直列に動作させる直列動作モードとをランダムに切り替えて、前記第1の暗号演算回路と前記第2の暗号演算回路を動作させる制御回路と、
を有することを特徴とする暗号処理装置。 - 前記制御回路は、前記並列動作モードと前記直列動作モードの実行サイクルの間にダミー演算をランダムに挿入することを特徴とする請求項1に記載の暗号処理装置。
- 前記第1及び前記第2の暗号演算回路は、それぞれ前記乱数又は前記乱数とは異なる乱数に基づき生成されたマスクデータを用いてデータマスキングを行いながら、前記暗号処理を実行することを特徴とする請求項1又は2に記載の暗号処理装置。
- 前記第1及び前記第2の暗号演算回路のそれぞれは、AESを利用した暗号用と復号用のラウンド関数演算回路を含むことを特徴とする請求項1から3のいずれか1つに記載に暗号処理装置。
- 前記第1及び前記第2の暗号演算回路は、DESを利用したラウンド関数演算回路であることを特徴とする請求項1から3のいずれか1つに記載に暗号処理装置。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009142622A JP2010288233A (ja) | 2009-06-15 | 2009-06-15 | 暗号処理装置 |
| US12/722,887 US20100318811A1 (en) | 2009-06-15 | 2010-03-12 | Cryptographic processor |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009142622A JP2010288233A (ja) | 2009-06-15 | 2009-06-15 | 暗号処理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2010288233A true JP2010288233A (ja) | 2010-12-24 |
Family
ID=43307432
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2009142622A Abandoned JP2010288233A (ja) | 2009-06-15 | 2009-06-15 | 暗号処理装置 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US20100318811A1 (ja) |
| JP (1) | JP2010288233A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2013080976A1 (ja) * | 2011-11-28 | 2013-06-06 | 日本電気株式会社 | 暗号化処理回路及び復号処理回路、その方法並びにそのプログラム |
Families Citing this family (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP2056275A4 (en) * | 2006-07-25 | 2011-05-04 | Nec Corp | PSEUDOZUFALLSZAHLENGENERATOR, STREAM ENCRYPTION DEVICE AND PROGRAM |
| GB2494731B (en) | 2011-09-06 | 2013-11-20 | Nds Ltd | Preventing data extraction by sidechannel attack |
| 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 |
| WO2014059547A1 (en) * | 2012-10-17 | 2014-04-24 | Elliptic Technologies Inc. | Cryptographic sequencing system and method |
| US10243727B2 (en) * | 2013-10-31 | 2019-03-26 | Ati Technologies Ulc | Method and system for constant time cryptography using a co-processor |
| CN104158651B (zh) * | 2014-07-15 | 2017-05-24 | 南京航空航天大学 | 基于数据冗余实时检错机制的全展开结构aes加/解密电路 |
| CN104158652B (zh) * | 2014-07-15 | 2017-05-24 | 南京航空航天大学 | 基于数据冗余实时检错机制的循环展开结构aes加/解密电路 |
| EP3220304B1 (en) * | 2016-02-22 | 2018-11-07 | Eshard | Method of testing the resistance of a circuit to a side channel analysis |
| EP3419005A1 (en) * | 2017-06-22 | 2018-12-26 | Gemalto Sa | Computing device processing expanded data |
| US10523428B2 (en) | 2017-11-22 | 2019-12-31 | Advanced Micro Devices, Inc. | Method and apparatus for providing asymmetric cryptographic keys |
| KR102628010B1 (ko) * | 2018-10-05 | 2024-01-22 | 삼성전자주식회사 | 가상 암호화 연산을 수행하는 암호화 회로 |
| EP4170535B1 (en) * | 2021-10-19 | 2024-12-04 | Renesas Electronics Corporation | Integrated circuit |
| US20240007267A1 (en) * | 2022-06-30 | 2024-01-04 | Intel Corporation | Side-channel resistant bulk aes encryption |
| US20240364497A1 (en) * | 2023-04-28 | 2024-10-31 | Cryptography Research, Inc. | Protection of secret data using unprotected data path |
Family Cites Families (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6339824B1 (en) * | 1997-06-30 | 2002-01-15 | International Business Machines Corporation | Method and apparatus for providing public key security control for a cryptographic processor |
| US6704871B1 (en) * | 1997-09-16 | 2004-03-09 | Safenet, Inc. | Cryptographic co-processor |
| JP3600454B2 (ja) * | 1998-08-20 | 2004-12-15 | 株式会社東芝 | 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体 |
| JP3822768B2 (ja) * | 1999-12-03 | 2006-09-20 | 株式会社ルネサステクノロジ | Icカードの製造方法 |
| JP3815936B2 (ja) * | 2000-01-25 | 2006-08-30 | 株式会社ルネサステクノロジ | Icカード |
| JP4058232B2 (ja) * | 2000-11-29 | 2008-03-05 | 株式会社ルネサステクノロジ | 半導体装置及びicカード |
| DE10061998A1 (de) * | 2000-12-13 | 2002-07-18 | Infineon Technologies Ag | Kryptographieprozessor |
| US7266703B2 (en) * | 2001-06-13 | 2007-09-04 | Itt Manufacturing Enterprises, Inc. | Single-pass cryptographic processor and method |
| US7360076B2 (en) * | 2001-06-13 | 2008-04-15 | Itt Manufacturing Enterprises, Inc. | Security association data cache and structure |
| US7248585B2 (en) * | 2001-10-22 | 2007-07-24 | Sun Microsystems, Inc. | Method and apparatus for a packet classifier |
| US8539232B2 (en) * | 2002-06-26 | 2013-09-17 | Sony Corporation | Information terminal apparatus, information processing apparatus and information communication system |
| JP4357815B2 (ja) * | 2002-09-11 | 2009-11-04 | 株式会社東芝 | 暗号演算回路 |
| US7293178B2 (en) * | 2002-12-09 | 2007-11-06 | Microsoft Corporation | Methods and systems for maintaining an encrypted video memory subsystem |
| US20050195975A1 (en) * | 2003-01-21 | 2005-09-08 | Kevin Kawakita | Digital media distribution cryptography using media ticket smart cards |
| US7269048B2 (en) * | 2003-09-22 | 2007-09-11 | Kabushiki Kaisha Toshiba | Semiconductor integrated circuit device |
| US8296577B2 (en) * | 2004-06-08 | 2012-10-23 | Hrl Laboratories, Llc | Cryptographic bus architecture for the prevention of differential power analysis |
| JP4896450B2 (ja) * | 2005-06-30 | 2012-03-14 | 株式会社東芝 | 記憶装置 |
| JP4960044B2 (ja) * | 2006-09-01 | 2012-06-27 | 株式会社東芝 | 暗号処理回路及びicカード |
-
2009
- 2009-06-15 JP JP2009142622A patent/JP2010288233A/ja not_active Abandoned
-
2010
- 2010-03-12 US US12/722,887 patent/US20100318811A1/en not_active Abandoned
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2013080976A1 (ja) * | 2011-11-28 | 2013-06-06 | 日本電気株式会社 | 暗号化処理回路及び復号処理回路、その方法並びにそのプログラム |
| JP5327493B1 (ja) * | 2011-11-28 | 2013-10-30 | 日本電気株式会社 | 暗号化処理回路及び復号処理回路、その方法並びにそのプログラム |
| US8842824B2 (en) | 2011-11-28 | 2014-09-23 | Nec Corporation | Encryption processing circuit and decryption processing circuit, methods thereof, and programs thereof |
Also Published As
| Publication number | Publication date |
|---|---|
| US20100318811A1 (en) | 2010-12-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2010288233A (ja) | 暗号処理装置 | |
| JP4960044B2 (ja) | 暗号処理回路及びicカード | |
| US7659837B2 (en) | Operation processing apparatus, operation processing control method, and computer program | |
| CN106133810B (zh) | 加密处理装置、加密处理方法 | |
| EP2228941B1 (en) | Encryption processing apparatus | |
| CN101378314B (zh) | 一种密钥序列的生成方法和密钥产生装置 | |
| KR100377172B1 (ko) | 데이터 암호화 표준 알고리즘을 이용한 암호화 장치의 키스케쥴러 | |
| JP2010245881A (ja) | 暗号処理装置 | |
| JP2007195132A (ja) | 暗号処理装置 | |
| JP6167876B2 (ja) | 電子回路、電子機器及び認証システム | |
| US10530567B2 (en) | Encryption device and memory device | |
| Singh et al. | An efficient hardware design and implementation of advanced encryption standard (AES) algorithm | |
| JP5231079B2 (ja) | 疑似乱数発生器及びデータ通信装置 | |
| JP4915779B2 (ja) | 装置間の接続方式および接続装置 | |
| JP2003084668A (ja) | 乱数生成装置、乱数生成方法及び乱数生成プログラム | |
| JP2008042328A (ja) | 演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム | |
| JP5014678B2 (ja) | 乱数発生回路 | |
| JP6401804B2 (ja) | 暗号化装置、メモリ装置、ホスト装置、及びメモリシステム | |
| KR100668664B1 (ko) | Aes 라인달 블록 알고리즘을 이용하는 암호화/복호화장치 및 방법 | |
| KR101693591B1 (ko) | 하드웨어와 소프트웨어 통합 설계가 가능한 경량암호 장치 | |
| Gao | FPGA implementation of AES algorithm for CAN FD | |
| JP3992888B2 (ja) | 暗号処理装置 | |
| JP4849140B2 (ja) | データ変換装置、演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム | |
| KR102282363B1 (ko) | 비트 시리얼 hight 연산 장치 및 그 방법, 그 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체 및 컴퓨터 프로그램 | |
| JP4765609B2 (ja) | 暗号処理装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110802 |
|
| A762 | Written abandonment of application |
Free format text: JAPANESE INTERMEDIATE CODE: A762 Effective date: 20121025 |