JP4935229B2 - 演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム - Google Patents

演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム Download PDF

Info

Publication number
JP4935229B2
JP4935229B2 JP2006211189A JP2006211189A JP4935229B2 JP 4935229 B2 JP4935229 B2 JP 4935229B2 JP 2006211189 A JP2006211189 A JP 2006211189A JP 2006211189 A JP2006211189 A JP 2006211189A JP 4935229 B2 JP4935229 B2 JP 4935229B2
Authority
JP
Japan
Prior art keywords
input
output
selector
bit
arithmetic processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006211189A
Other languages
English (en)
Other versions
JP2008042328A (ja
Inventor
良和 宮戸
徹 秋下
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2006211189A priority Critical patent/JP4935229B2/ja
Publication of JP2008042328A publication Critical patent/JP2008042328A/ja
Application granted granted Critical
Publication of JP4935229B2 publication Critical patent/JP4935229B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラムに関する。さらに詳細には、本発明は、AES(Advanced Encryption Standard)に代表されるような共通鍵暗号方式や、RSA(Rivest−Shamir−Adleman)暗号に代表されるような公開鍵暗号方式、またはSHA−1に代表されるようなハッシュ関数などの演算を効率的に実行する論理回路を利用した演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラムに関する。
昨今、ネットワーク通信、電子商取引の発展に伴い、通信におけるセキュリティ確保が重要な問題となっている。セキュリティ確保の1つの方法が暗号技術であり、現在、様々な暗号化手法を用いた通信が実現され、運用されている。
暗号化方式には大きく分けて共通鍵暗号方式と公開鍵暗号方式が存在する。共通鍵暗号方式には、DES(Data Encryption Standard)やAES(Advanced Encryption Standard)がある。AES暗号方式はDES暗号方式の後継暗号方式として位置づけられている。また、公開鍵暗号方式には、RSA(Rivest−Shamir−Adleman)暗号方式やECC(Elliptic Curve Cryptosystems)暗号方式が存在する。
このような様々な暗号方式に従った暗号処理を実行する装置、すなわち暗号処理デバイスとしては、例えば、C言語のようなプログラミング言語を用いてCPUを利用してプログラムの処理によって実行させる構成、あるいは様々なゲート回路を使用してハードウェア上で実行させる構成などがある。
暗号処理デバイスにおいては、例えば、平文を入力し暗号文を出力するデータ暗号化処理、あるいは暗号文を入力し平文を出力する復号化処理が実行される。これらの暗号処理は、セキュアに行なわれ、情報の漏洩を防ぐ工夫がなされているが、一方で、暗号処理の適用鍵や、アルゴリズムを解析する攻撃手法も存在する。攻撃方法は大別して破壊攻撃と非破壊攻撃に分類することができる。
このうち破壊攻撃は、ICチップなどのパッケージを硝酸などの薬品を用いて化学的処理により溶解しICチップのダイをあらわにした後、物理的な方法で秘密情報を読み取る攻撃である。ダイがあらわになると、配線パターンから構成された回路を導出するリバースエンジニアリングが可能であり、配線から直接秘密情報を抽出することが可能となる。また配線だけでなくメモリセルからもレーザーや電磁波を用いてメモリ状態を検知することによって、メモリ内に書き込まれている秘密情報を観測することができる。
また非破壊攻撃はサイドチャネル攻撃(Side−Channel Attack)とも呼ばれる。基本的にICチップのパッケージを溶解するという処理を行なわず、外部から得られる物理的情報、たとえば消費電流、輻射電磁波、演算終了時間等の情報を利用して、秘密情報を盗み出すものである。実際に共通鍵暗号方式であるDESが実装されたデバイスの暗号処理中の消費電流を観測して、秘密情報である鍵情報を漏洩させる方法がKocherらによって1999年に発表された。この手法については、例えば非特許文献1に記載されている。
非特許文献1に記載されているDPA(Differential Power Analysis)攻撃は、入力平文の異なる数多くの暗号演算処理中の消費電流を観測して、秘密情報のビット値をもとに消費電流波形を統計処理することにより、秘密情報との相関の有無によって統計処理した消費電流波形に表れる特徴的なパターンから秘密情報を導き出すという攻撃手法である。
このような攻撃に対して、様々な防御方法も提案されている。例えば、共通鍵暗号方式であるAESについて例を挙げれば、非特許文献2に1つの防御手法が記載されている。この非特許文献2に記載の手法は、AESの演算のうちSubByteと呼ばれている内部のS−Box演算に対して対策を施したものである。この対策は演算途中の秘密情報を含んだ中間値があらわに存在しないように乱数を用いて秘匿する技術である。
しかしながら、この方法を単純にハードウェアに実装しても内部信号の遅延差による過渡遷移が生じるために、乱数を用いて秘密情報を含んだ中間値の秘匿が完全にできない状況が生じるためにDPA攻撃によって秘密情報が漏洩してしまうことがあるという問題がある。
上述のAESにおけるSubByteと呼ばれている内部のS−Box演算は、例えば二分決定グラフ(BDD: Binary Decision Diagram)を用いたハードウェアによって実行可能である。二分決定グラフ(BDD)については、例えば、特許文献1、非特許文献3に記載されている。なお、二分決定グラフ(BDD)については本明細書中においても後段で説明する。従来型の二分決定グラフ(BDD)を適用した論理回路構成による演算を実行した場合、内部信号の遅延差による過渡遷移が生じ、DPA攻撃によって秘密情報が漏洩してしまうことがあるという問題がある。
さらに、非特許文献4には、上述の非特許文献2の構成における欠点である過渡遷移を解消した構成として、WDDL(Wave Differential Dynamic Logic)を用いた対策が開示されている。この対策はロジックの状態として、Pre−Charge Phase、およびEvaluation Phaseという2つの状態を持ち、この2つの状態を行き来することによって演算を行なう処理を漏洩防止策としたものである。
Pre−Charge Phaseはゲート回路が初期化されている状態であり、Evaluation Phaseは実際の演算を行なっている状態ということができる。さらにゲート回路の入出力に対して相補的な入力および出力が存在する。この相補的入力に対して正論理ゲートと負論理ゲートが形成され、相補的な出力が得られる。WDDLはこの2つの機構、Pre−Charge PhaseとEvaluation Phaseの2状態および相補的な入出力の存在によって、いかなる入力信号に対しても出力はPre−Charge PhaseからEvaluationo PhaseおよびEvaluation PhaseからPre−Charge Phaseに状態が遷移するときにいちどだけ出力が変化するMonotonicityを満たしている。
WDDLにはこのような性質があるため、不要な過渡遷移が生じることがない。さらに相補的な出力は任意の入力に対してどちらかの出力のみ変化するので、状態が遷移したときにのみ充放電が行なわれるCMOS(Complemetary Metal Oxide Semiconductor)プロセスを用いたロジックでは消費電流が一定となる。よって秘密情報を含むビット値の違いによって消費電流の相違がなくなるので、DPA攻撃に対して有効な対策となる。
しかしながらWDDLは相補的入出力が存在し、その入出力の遅延差をなくすようにレイアウトを行なわなければならない。さらに演算構成上で2つの演算入力に対して大幅な遅延差がある場合には、DPA攻撃によって秘密情報が漏洩してしまう危険が存在するという問題点を有する。
特開2003−223100 Paul C.Kocher,Joshaua Jaffe and Benjamin Jun,"Differential Power Analysis",CRYPTO 1999,Lecture Note in Computer Science,Vol.1666,Springer−Verlag(1999),pp.388−397. Elisabeth Oswald, Stefan Mangard, Norbert Pramstaller,"A Side−Channel Analysis Resistant Description of the AES S−Box",FSE 2005,LNCS 3557,pp.413−423. 森岡澄夫,佐藤証著"共通鍵暗号ハードウェアのための超高速S−Box回路アーキテクチャ"SCIS2002,9B−3,2002 Kris Tiri, Ingrid Verbauwhede,"Securing Encryption Algorithms against DPA at the Logic Level: Next Generation Smart Card Technology",CHES 2003,LNCS 2779,pp.125−136.
本発明は、上記問題点に鑑みてなされたものであり、不要な過渡遷移を生じさせることのない論理回路による演算処理構成を実現するものであり、例えば、DPA攻撃による秘密情報漏洩の可能性を低減させて、攻撃に対する耐性を高めた演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラムを提供することを目的とする。
本発明の第1の側面は、
演算処理装置であり、
入力ビットのデータ変換処理を実行して出力ビットを生成する論理回路と、
前記論理回路に対する入力ビットの切り替え処理としての入力ビット遷移処理を、前記論理回路の出力を固定値に維持したプリチャージ・フェーズにおいて実行させ、入力ビット遷移処理が終了した後、エバリュエーション・フェーズへ移行させて遷移後の入力ビットのデータ変換処理に基づく出力ビットの生成処理を行なわせる制御部と、
を有することを特徴とする演算処理装置にある。
さらに、本発明の演算処理装置の一実施態様において、前記論理回路は、前記入力ビットをセレクト信号として設定した複数のセレクタによる階層構成を有し、データ変換処理結果に基づいて設定される定数項としてのビット値を入力する複数の最下層セレクタから順次、上層セレクタへ出力値を転送して最上層セレクタから出力ビットを出力する構成であり、前記最下層セレクタの入力値を前記プリチャージ・フェーズにおいて固定値に設定するためのゲート回路を有し、前記制御部は、前記プリチャージ・フェーズにおいて、前記最下層セレクタの入力を固定値とするように前記ゲート回路の出力制御を行う構成であることを特徴とする。
さらに、本発明の演算処理装置の一実施態様において、前記ゲート回路は、一方の入力がデータ変換処理結果に基づいて設定される定数項であり、他方の入力が0と1のプリチャージ信号の切り替え入力であり、出力が前記最下層セレクタへの入力としたアンド回路であり、前記制御部は、前記プリチャージ・フェーズにおいて、前記プリチャージ信号を0として、アンド回路出力を0に設定する制御を行う構成であることを特徴とする。
さらに、本発明の演算処理装置の一実施態様において、前記制御部は、前記プリチャージ・フェーズにおいて、前記プリチャージ信号を0として、前記アンド回路出力を0に設定した後、予め定められた経過時間の後、前記論理回路に対する入力ビットの切り替え処理としての入力ビット遷移処理を実行させ、入力ビット遷移処理の完了後に、エバリュエーション・フェーズへ移行させて遷移後の入力ビットのデータ変換処理に基づく出力ビットの生成処理を行なわせる構成であることを特徴とする。
さらに、本発明の演算処理装置の一実施態様において、前記論理回路を構成するセレクタは、同一値を入力値とする複数のセレクタを1つのセレクタとした共有セレクタを有する構成であることを特徴とする。
さらに、本発明の演算処理装置の一実施態様において、前記論理回路を構成するセレクタは、反転出力を行なうセレクタであることを特徴とする。
さらに、本発明の演算処理装置の一実施態様において、前記ゲート回路は、一方の入力をデータ変換処理結果に基づいて設定されるデータまたは乱数に設定可能な構成であり、前記制御部は、前記プリチャージ・フェーズにおいて、前記最下層セレクタの入力を固定値とし、前記エバリュエーション・フェーズにおいて、前記データ変換処理結果に基づいて設定されるデータまたは乱数を前記最下層セレクタの入力として設定して出力ビットの生成処理を行なわせる構成であることを特徴とする。
さらに、本発明の演算処理装置の一実施態様において、前記ゲート回路は、前記最下層セレクタの入力値を前記プリチャージ・フェーズにおいて0または1にランダムに出力する構成を有し、前記制御部は、前記プリチャージ・フェーズにおいて、前記最下層セレクタの入力をランダムに0または1とするように前記ゲート回路の出力制御を行う構成であることを特徴とする。
さらに、本発明の演算処理装置の一実施態様において、前記論理回路は、二分決定グラフ(BDD: Binary Decision Diagram)を用いた構成を有することを特徴とする。
さらに、本発明の演算処理装置の一実施態様において、前記論理回路は、入力ビットのデータ変換処理として、入力ビットの非線形変換処理、または線形変換処理を実行する構成であることを特徴とする。
さらに、本発明の第2の側面は、
演算処理装置において演算処理制御を実行する演算処理制御方法であり、
制御部の制御により、入力ビットのデータ変換処理を実行して出力ビットを生成する論理回路に対する入力ビットの切り替え処理としての入力ビット遷移処理を、前記論理回路の出力を固定値に維持したプリチャージ・フェーズにおいて実行させる入力ビット遷移ステップと、
制御部の制御により、入力ビット遷移処理が終了した後、エバリュエーション・フェーズへ移行させて遷移後の入力ビットのデータ変換処理に基づく出力ビットの生成処理を行なわせる出力ビット生成ステップと、
を有することを特徴とする演算処理制御方法にある。
さらに、本発明の演算処理制御方法の一実施態様において、前記論理回路は、前記入力ビットをセレクト信号として設定した複数のセレクタによる階層構成を有し、データ変換処理結果に基づいて設定される定数項としてのビット値を入力する複数の最下層セレクタから順次、上層セレクタへ出力値を転送して最上層セレクタから出力ビットを出力する構成であり、前記最下層セレクタの入力値を前記プリチャージ・フェーズにおいて固定値に設定するためのゲート回路を有し、記制御部は、前記プリチャージ・フェーズにおいて、前記最下層セレクタの入力を固定値とするように前記ゲート回路の出力制御を行うことを特徴とする。
さらに、本発明の演算処理制御方法の一実施態様において、前記論理回路は、入力ビットのデータ変換処理として、入力ビットの非線形変換処理、または線形変換処理を実行することを特徴とする。
さらに、本発明の第3の側面は、
演算処理装置において演算処理制御を実行させるコンピュータ・プログラムであり、
制御部の制御により、入力ビットのデータ変換処理を実行して出力ビットを生成する論理回路に対する入力ビットの切り替え処理としての入力ビット遷移処理を、前記論理回路の出力を固定値に維持したプリチャージ・フェーズにおいて実行させる入力ビット遷移ステップと、
制御部の制御により、入力ビット遷移処理が終了した後、エバリュエーション・フェーズへ移行させて遷移後の入力ビットのデータ変換処理に基づく出力ビットの生成処理を行なわせる出力ビット生成ステップと、
を実行させることを特徴とするコンピュータ・プログラムにある。
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能なコンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、CDやFD、MOなどの記録媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
本発明の構成によれば、論理回路を適用して入力ビットの非線形変換処理や線形変換処理などのデータ変換処理を行い、出力ビットを生成する演算装置において、論理回路に対する入力ビットの切り替え処理である入力ビット遷移処理を、論理回路の出力を固定値に維持したプリチャージ・フェーズにおいて実行させ、入力ビット遷移処理が終了した後、エバリュエーション・フェーズへ移行して、データ変換処理に基づく出力ビットの生成処理を行なわせる構成としたので、入力ビット遷移処理時に発生する過渡遷移に基づく解析を困難とすることが可能となる。本構成により、例えばDPA(Differential Power Analysis)攻撃に対する耐性の高い演算装置が実現される。
以下、本発明の演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラムの詳細について説明する。
以下、本発明の実施の形態として、共通鍵暗号方式であるAES(Advanced Encryption Standard)における本発明の適用例を説明する。共通鍵暗号方式であるAESは、例えば、入力128ビットの平文を128ビットの暗号文に変換する処理を行なう。従来の共通鍵暗号方式であるDES(Data Encryption Standard)と同様、データ変換処理単位としてのラウンド演算を繰り返し実行する構成を持つ。なお、本発明は、AESやDESなどの共通鍵暗号処理のみならずRSAなどの公開鍵暗号処理やSHA−1などのハッシュ関数の演算など、非線形変換処理や線形変換処理などのデータ変換処理を実行する各種の演算において適用可能である。
以下、下記の項目に従って、本発明について順次説明する。
1.本発明において前提とする演算回路の概要
2.実施例1(ゲート回路適用構成)
3.実施例2(セレクタ共有構成)
4.実施例3(反転出力セレクタ利用構成)
5.実施例4(乱数の入力構成)
6.その他の実施例
[1.本発明において前提とする演算回路の概要]
図1にAESやDESなどの共通鍵暗号方式の暗号処理を実行する基本構成を示す。図1に示すように、基本的な暗号処理構成には、データ変換部110と鍵スケジュール部120が含まれる。データ変換部110は、変換対象のデータを入力し、複数のラウンド演算部151−1〜151−nにおけるデータ変換を行って変換データを出力する。鍵スケジュール部120では、各ラウンドにおいて適用するラウンド鍵を生成して各ラウンド演算部151−1〜151-nに出力する。
ラウンド演算部151−1〜151−nでは同様のラウンド演算を繰り返し実行する。1つのラウンドでは、入力ビットの変換処理として、変換テーブルを利用した入力ビットの非線形変換や、線形変換、入力鍵(ラウンド鍵)を適用したデータ変換処理などが実行される。その結果に基づいて次のラウンド演算部の入力が生成される。
例えば、AES暗号では、ラウンド演算部151−1〜151−nにおいて実行される非線形変換処理はSubByteと呼ばれる。このSubByteと呼ばれる非線形変換処理は、予め用意された非線形変換テーブル(S−Boxテーブル)を利用した変換処理として実行される。
ラウンド演算部151−1〜151−nの非線形変換部では、入力128ビットを8ビット毎に分割し、非線形変換テーブル(S−Boxテーブル)を適用して、入力8ビットを変換し、出力8ビットを生成する。8ビット毎の非線形変換データを順次生成して、128ビット分の非線形変換データを生成し出力する。図2に非線形変換処理に適用する変換テーブル(S−Boxテーブル)を示す。
図2に示す変換テーブルにおいて、最上段の横ラインに示す(0,1,2,・・・d,e,f)は変換処理対象となる入力8ビットの下位4ビットを16進表現で示している。0〜fは、2進表現では0000〜1111に相当する。左端の縦ラインに示す(0,1,2,・・・d,e,f)は変換処理対象となる入力8ビットの上位4ビットを16進表現で示している。0〜fは、2進表現では0000〜1111に相当する。
入力ビットは8ビット00〜FF(00000000〜11111111)であり、2=256種類のビット状態がある。これを上位4ビットと下位4ビットに分割して、図2に示すテーブルを適用して256種類の出力8ビット00〜FF(00000000〜11111111)を決定する。
例えば、入力が16進表現で00(2進表現で00000000)である場合、図2に示すテーブルに基づいて出力が63(16進表現)となる。また、入力がC0(16進数)である場合、図2に示すテーブルに基づいて出力がBA(16進表現)となる。このように、ラウンド演算部における非線形変換処理は、図2に示された変換テーブルを適用した8ビット入力、8ビット出力の1対1写像を実行する。
このような非線形変換テーブル(S−Boxテーブル)による変換処理を実行するハードウェアの回路構成例として、二分決定グラフ(BDD: Binary Decision Diagram)を用いた構成がある。図3に非線形変換テーブル(S−Boxテーブル)に基づく変換結果中の出力の下位1ビットを出力する論理回路としての二分決定グラフ(BDD)を示す。
図3には、論理関数としての2入力1出力のセレクタを、第1層から第8層の階層構成として論理回路としての二分決定グラフ(BDD)を示している。ピラミッド型の8層構造にセレクタが接続された構成を持つ。最終1ビットを出力するセレクタは、第1層のセレクタである。
第1層にはセレクタが1個、第2層にはセレクタが2個、第3層にはセレクタが4個、第4層にはセレクタが8個、第5層にはセレクタが16個、第6層にはセレクタが32個、第7層にはセレクタが64個、第8層にはセレクタが128個あり、全部で255個のセレクタで構成されている。
第1層のセレクタ入力は第2層のセレクタ出力が供給され、
第2層のセレクタ入力は第3層のセレクタ出力が供給され、
第3層のセレクタ入力は第4層のセレクタ出力が供給され、
第4層のセレクタ入力は第5層のセレクタ出力が供給され、
第5層のセレクタ入力は第6層のセレクタ出力が供給され、
第6層のセレクタ入力は第7層のセレクタ出力が供給され、
第7層のセレクタ入力は第8層のセレクタ出力が供給され、
第8層のセレクタ入力は0もしくは1の定数項が供給される。
第8層のセレクタ入力は、図2に示す非線形変換テーブル(S−Boxテーブル)に基づいて決定される0もしくは1の定数項であり、256ビットデータである。
図3に示す論理回路は、非線形変換結果としての出力8ビットの最下位ビットを出力する選択回路である。この場合、図3の最下段に示される第8層のセレクタ入力値としての256ビット[10110111・・・11110010]は、図2に示すテーブルに示される256個の出力値(63,7C,77・・・54,BB,16)の最下位ビットに対応するビット値として設定される。
例えば、図3の最下段に示される第8層のセレクタ入力値の左端のビット値[1]は図2に示すテーブルの最上段の左端に示す出力値である(63)の最下位ビットに相当し、図3の最下段に示される第8層のセレクタ入力値の右端のビット値[0]は図2に示すテーブルの最下段の右端に示す出力値である(16)の最下位ビットに相当する。
図2に示すテーブルに示される256個の出力値(63,7C,77・・・54,BB,16)の最下位ビットに対応するビット値のみを示す変換テーブルを図4に示す。この図4に示す16×16=256個の出力値は、図2に示すテーブルに示される256個の出力値(63,7C,77・・・54,BB,16)の最下位ビットに対応するビット値であり、このビット値が、図3に示す回路構成の第8層のセレクタ入力値として設定される。
各層のセレクタに入力するセレクト信号は、非線形変換対象データとして入力される128ビットを8ビット毎に分割した8−bitの各1ビットが利用される。入力8−bit中の最上位ビット(in[7])が、第1層のセレクタに対するセレクト信号として入力され、第2番目のビット(in[6])が、第2層のセレクタに対するセレクト信号として入力され、以下、各層に各ビットが入力され、最下位ビット(in[0])は、第8層のセレクタに対するセレクト信号として入力される。
入力8ビットは、非線形変換対象データとしての128ビットの分割データであり、128ビットを構成する8ビット毎に、順次、入力値が変更(遷移)され、次々に8ビット単位で非線形変換処理が行なわれることになる。
各セレクタに入力されるセレクト信号が[0]の場合にはセレクタ入力の左側の入力が選択されて上位層に出力され、セレクト信号が[1]の場合にはセレクタ入力の右側が選択されて上位層に出力される。従って、セレクト信号8ビットが決まると、第8層のセレクタ入力256個のうちのひとつが出力される。第8層のセレクタ入力の定数は第1層から第8層のセレクト入力の順列で一意に決定される。
例えば、非線形変換対象データとしての入力8ビットが[00000000]である場合、セレクト信号は、すべて[0]であり、すべてのセレクタにおいて、左側の入力が選択されて上位層に出力されることになり、結果として、図3の最下段に示される第8層のセレクタ入力値の左端のビット値[1]が最終的な出力(第1層のセレクタ出力)とされる。この出力は、図2に示すテーブルの最上段の左端に示す出力値である(63)の最下位ビットに相当する。このように、非線形変換対象データとしての入力ビットの値(00000000〜11111111)の値に応じて、第8層のセレクタ入力256個のうちのひとつが出力される。これらの第8層のセレクタ入力256個のそれぞれは、図2に示すテーブルに示される256個の出力値(63,7C,77・・・54,BB,16)の最下位ビットに対応するビット値である。
この図3に示す階層構成のセレクタからなる構成を8つ適用することで、図2に示すテーブルに示される256個の出力値(63,7C,77・・・54,BB,16)の8ビット全てに対応するビット値を決定する。
図3に示す構成において、最下段の第8層のセレクタ入力値としての256ビット[10110111・・・11110010]は、図4を参照して説明したビット値、すなわち、図2に示すテーブルに示される256個の出力値(63,7C,77・・・54,BB,16)の最下位ビットに対応するビット値として設定されているが、
最下段の第8層のセレクタ入力値を、図2に示すテーブルに示される256個の出力値(63,7C,77・・・54,BB,16)各々の最上位ビット〜最下位ビットの8種類を設定してその出力を組み合わせることで、入力8ビットを図2に示すテーブルによって非線形変換した結果としての出力8ビットを得ることができる。
このようにして、図2に示す非線形変換テーブル(S−Boxテーブル)と同等の値を出力する構成が実現される。すなわち、図2に示す非線形変換テーブル(S−Boxテーブル)と同等の値を出力される論理関数は図3のような二分決定グラフ(BDD)によって構成することができる。
[2.実施例1(ゲート回路適用構成)]
本発明の第1の実施形態について、図5以下を参照して説明する。本発明の暗号処理装置は、共通鍵ブロック暗号に従った暗号処理を実行する暗号処理装置であり、入力ビットの非線形変換処理を実行して出力ビットを生成する論理回路と、この論理回路に対する入力ビットの切り替え処理としての入力ビット遷移処理を、論理回路の出力を固定値に維持したプリチャージ・フェーズにおいて実行させ、入力ビット遷移処理が終了した後、エバリュエーション・フェーズへ移行させて遷移後の入力ビットの非線形変換処理に基づく出力ビットの生成処理を行なわせる制御部とを有する。
論理回路構成を図5に示す。図5に示すように本実施例における論理回路は、図3を参照して説明したピラミッド型のセレクタ階層構成を持つ二分決定グラフ(BDD)を基本構成として、さらに、第8層のセレクタの前段に演算回路を設け、この演算回路の処理によってプリチャージ・フェーズ(Pre−Charge Phase)とエバリュエーション・フェーズ(Evaluation Phase)状態を設定可能とした構成である。なお、これらのフェーズの移行制御や入力情報の設定、遷移制御は図示しない制御部によって実行される。
論理回路は、図5に示すように、第8層のセレクタの入力値をアンドゲート回路の出力値とする。第8層のセレクタの入力は256個であり、256個のアンドゲート回路によって第8層のセレクタの入力値を生成する。
256個のアンドゲート回路の一方の入力は、図3を参照して説明した第8層のセレクタの入力値と同様の定数項であり、図2に示すテーブルに示される256個の出力値(63,7C,77・・・54,BB,16)各々の最上位ビット〜最下位ビットの8種類のいずれかである。図5に示す例は、図3と同様、図4に示すビット値、すなわち図2に示すテーブルに示される256個の出力値(63,7C,77・・・54,BB,16)各々の最下位ビットを定数項として設定した例を示している。従って、図5に示す構成は、図3の構成と同様、非線形変換処理による出力8ビットの最下位ビットを出力する回路構成である。
図5に示す256個のアンドゲート回路のもう一方の入力は、プリチャージ入力[prch]である。プリチャージ入力[prch]が[0]の場合には第8層のセレクタ入力の256個の入力すべてが0となる。この状態が、プリチャージ・フェーズ(Pre−Charge Phase)状態である。
プリチャージ入力[prch]が[1]の場合には、定数項が第8層のセレクタ入力として設定されることになる。この入力は、図3の回路構成における第8層のセレクタ入力と同様である。この状態が、エバリュエーション・フェーズ(Evaluation Phase)状態である。
このように、8階層のセレクタを適用した出力ビットの算出処理を実行するエバリュエーション・フェーズ(Evaluation Phase)の開始前に、第8層のセレクタ入力の256個の入力すべてを0とするプリチャージ・フェーズ(Pre−Charge Phase)を設定する。
さらに、本実施例においては、各セレクタのセレクト信号の入力として供給される入力8ビットの遷移タイミングが制御部において制御される。図6に制御部の制御によって実行される信号の入力、状態遷移等を示すタイミングチャートを示す。
図6は、
(a)プリチャージ信号[prch]、
(b)セレクタに対するセレクト信号[in]、
(c)セレクタの出力(第1層のセレクタ最終出力)[out]、
これら各信号の時間遷移を示すタイミングチャートである。本発明の暗号処理装置における制御部は、このタイミングチャートに従って、図5に示す論理回路に対するプリチャージ信号[prch]の入力を制御し、セレクタに対するセレクト信号[in]の遷移を実行する。
(a)プリチャージ信号[prch]は、[0]と[1]とを交互に遷移する。この結果、図に示すように、プリチャージ・フェーズ(Pre−Charge Phase)と、エバリュエーション・フェーズ(Evaluation Phase)状態が交互に繰り返される。すなわち、
図5に示す回路における第8層のセレクタ入力値がオール0とされ結果としてセレクタ出力がオール0に設定され、出力値の算出が行なわれないプリチャージ・フェーズ(Pre−Charge Phase)と、
図5に示す回路における第8層のセレクタ入力値が定数項に設定され、正規の出力値の算出が行なわれるエバリュエーション・フェーズ(Evaluation Phase)
これらの2状態が交互に繰り返される。
各セレクタに供給されるセレクト信号[in]は、図に示す信号線の交差部分がセレクト信号[in]の遷移点となる。すなわち、非線形変換対象データである128ビットを8ビット毎に分割した8ビット単位の入力ビットの遷移点である。
この遷移点は、図6に示すように、エバリュエーション・フェーズ(Evaluation Phase)から、プリチャージ・フェーズ(Pre−Charge Phase)への移行後、プリチャージ・フェーズ(Pre−Charge Phase)が定常状態になった時点に設定される。
プリチャージ・フェーズ(Pre−Charge Phase)では、図5に示す回路における第8層のセレクタ入力値がオール0とされ結果としてセレクタ出力がオール0に設定されている。従って、この時点で、各セレクタに供給されるセレクト信号[in]が遷移、すなわち入力値が変更されても、各セレクタの出力は変更されることなく[0]のまま維持されることになる。
プリチャージ・フェーズ(Pre−Charge Phase)からエバリュエーション・フェーズ(Evaluation Phase)に移行すると、図5に示す回路における第8層のセレクタ入力値が定数項に設定され、正規の出力値の算出が開始される。すなわち、第8層のセレクタ出力から第1層のセレクタ出力へ順々に値が確定する。この時点では、各セレクタに供給されるセレクト信号[in]は、第1層から第8層に至るまで全て、完全に遷移が済んでおり、それぞれの層のセレクト信号の入力タイミングが乱れることで発生する過渡遷移を生じさせない。
過渡遷移について、図7を参照して説明する。図7(1)は、図3に示す従来型の二分決定グラフ(BDD: Binary Decision Diagram)を用いた論理回路構成において、各層に入力される(a)セレクト信号[in]と、出力[out]のタイミングチャートであり、図6における(b)[in]、(c)[out]に対応する信号の時間遷移を示している。
図7(2)は、図7(1)に示すデータ領域201の拡大図である。(a)セレクト信号[in]は、例えば図3の論理回路における第1層から第8層までの8つのセレクタ層に対する8つの入力ビットの遷移タイミングが図7(2)(a)セレクト信号[in[0]〜[7]]に示す信号線の交差領域で発生する。この入力8ビットの遷移は、完全な同一タイミングで発生させることは困難であり、各入力ビットの遷移タイミングにはずれが発生することになる。
従って、入力8ビットの遷移が開始されてから完全に全ビットの遷移が終了するまでには、一定の期間を要することになる。これが、図7(2)に示すΔtの遷移期間に相当する。このような、遷移期間において、図7(2)(b)に示す出力[out]は、8層のセレクタ層に対する入力8ビットの遷移に応じて、出力値を変化させることになる。図7(2)(b)に示す点線部では、セレクト信号の遷移タイミングのずれに応じた出力値変化が発生する。
この出力値の変化の解析により、二分決定グラフ(BDD: Binary Decision Diagram)を用いた論理回路構成で利用されている信号値が解析される可能性がある。すなわち、先に背景技術の欄で説明したように、この過渡遷移に起因して、DPA攻撃によって秘密情報が漏洩してしまうことがある。
なお、背景技術の欄で説明したように、この過渡遷移を防止する従来構成としてWDDL(Wave Differential Dynamic Logic)を用いた対策が開示されているが、WDDLは相補的入出力が存在し、その入出力の遅延差をなくすようにレイアウトを行なわなければならないというレイアウト構築の困難性という問題がある。さらに演算構成上で2つの演算入力に対して大幅な遅延差がある場合には、DPA攻撃を確実に防止できないという問題がある。
この点、本発明の構成では、図5に示すように、第8層のセレクタ入力の前段にアンドゲート回路を設けて、アンドゲート回路の入力の一方を非線形変換テーブルに設定された出力値に基づいて決定される定数項とし、他方を[0]と[1]とを交互に出力するプリチャージ信号[prch]とするといった簡易な構成として、図6に示すタイミングチャートに従った信号の遷移を実現し、過渡遷移を防止することができる。
本発明の構成では、セレクタに対するセレクト信号の遷移点を、図6に示すように、エバリュエーション・フェーズ(Evaluation Phase)から、プリチャージ・フェーズ(Pre−Charge Phase)への移行後、プリチャージ・フェーズ(Pre−Charge Phase)が定常状態になった時点に設定している。
プリチャージ・フェーズ(Pre−Charge Phase)では、図5に示す回路における第8層のセレクタ入力値がオール0とされ、結果としてセレクタ出力がオール0に設定されるので、この時点で、セレクト信号[in]を遷移させれば、各層のセレクト信号の遷移タイミングがずれても、出力は[0]のままに維持される。すなわち、セレクト信号の遷移によって、出力値[out]が変化せず、過渡遷移に基づく出力値の遷移状態を検出されず、秘密情報の漏洩防止が可能となる。また、本構成では、WDDLのような相補的入出力を用いることがなく回路のレイアウトが容易となり、8つの層に対するセレクト信号の遷移タイミングのずれが大きい場合でも過渡遷移の発生が防止可能となるという利点がある。
本発明の構成では、図6に示すように、プリチャージ・フェーズ(Pre−Charge Phase)において、セレクタに対するセレクト信号の入力[in]の遷移を実行して、遷移が完全に終了した後、プリチャージ・フェーズ(Pre−Charge Phase)からエバリュエーション・フェーズ(Evaluation Phase)に移行する。
エバリュエーション・フェーズ(Evaluation Phase)に移行すると、図5に示す回路における第8層のセレクタ入力値が定数項に設定され、正規の出力値の算出が開始される。すなわち、第8層のセレクタ出力から第1層のセレクタ出力へ順々に値が確定する。この時点では、各セレクタに供給されるセレクト信号[in]は、第1層から第8層に至るまで全て完全に遷移が済んでおり、それぞれの層のセレクト信号の入力タイミングが乱れることによる出力値の変化、すなわち、過渡遷移が発生することはなく、過渡遷移の解析による秘密情報の漏洩が防止される。
[3.実施例2(セレクタ共有構成)]
なお、前述したように、例えば図5に示す二分決定グラフ(BDD: Binary Decision Diagram)を用いた論理回路構成は、出力8ビット中の1ビットを出力するために適用される論理回路であり、入力8ビットから非線形変換結果としての出力8ビットを、並列に得るためには、図5に示す二分決定グラフ(BDD: Binary Decision Diagram)を用いた論理回路を8個、組み合わせて動作させることが必要である。
このように各出力ビット対応の二分決定グラフ(BDD)を用いた論理回路構成とする場合、回路規模が大きくなるが、回路規模の縮小のためセレクタを共有する構成が可能である。
図8を参照して、セレクタの共有化構成について説明する。例えば、図8(A)に示すように、同一の入力値を持つ複数のセレクタ211,212が存在する場合、これらの複数のセレクタを1つのセレクタとして構成する。すなわち、図8(B)に示すように、セレクタ211,212の代用として1つのセレクタ231を設ける。このセレクタ共有化処理により、二分決定グラフ(BDD)を用いた論理回路構成を小さくすることが可能であり、回路規模の縮小およびコストダウンが可能となる。また、回路規模の削減により消費電流も小さくすることができる。
[4.実施例3(反転出力セレクタ利用構成)]
次に、本発明の実施例3として、反転出力セレクタを利用した構成例について説明する。図9を参照して本発明の実施例3の構成および処理について説明する。
本発明の第3の実施形態は、先に図5を参照して説明した実施例1の二分決定グラフ(BDD)を用いた論理回路構成において適用するセレクタを反転出力セレクタとした構成である。図9に示すように、8階層全てのセレクタが反転出力セレクタとして構成する。セレクタは8階層であり、偶数回の反転が行なわれることになる。従って、最終出力は8階層のセレクタとした場合も、8階層の反転セレクタとした場合も同一となる。
反転出力つきセレクタは、図5を参照して説明した構成において使用するセレクタよりも占有面積が小さくできる。従って、よって回路規模を削減でき、消費電流も小さくできる。
なお、本構成においても、
(a)プリチャージ信号[prch]、
(b)セレクタに対するセレクト信号[in]、
(c)セレクタの出力(第1層のセレクタ最終出力)[out]、
これら各信号の時間遷移は、先に実施例1において説明したと同様、図6を参照して説明したタイミングチャートに従った処理として実行される。
すなわち、反転出力つきセレクタに対するセレクト信号[in]の遷移は、プリチャージ信号[prch]=[0]とされるプリチャージ・フェーズ(Pre−Charge Phase)への移行後、プリチャージ・フェーズ(Pre−Charge Phase)が定常状態になった時点に実行される。従って、各層のセレクト信号の遷移タイミングがずれても、出力は[0]のままに維持され、出力値[out]が変化せず、過渡遷移に基づく出力値の遷移状態を検出されることがなく秘密情報の漏洩防止が可能となる。
[5.実施例4(乱数の入力構成)]
次に、本発明の実施例4として、乱数入力を利用した構成例について説明する。図10を参照して本発明の実施例4の構成および処理について説明する。
本発明の第4の実施形態は、先に図5を参照して説明した実施例1の二分決定グラフ(BDD)を用いた論理回路構成において、第8層の入力値を生成するアンドゲート回路に対する一方の入力値を実施例1とは異なる設定としている。
実施例1では、先に説明したように、256個のアンドゲート回路の一方の入力は、図3を参照して説明した第8層のセレクタの入力値と同様の定数項であり、図2に示すテーブルに示される256個の出力値(63,7C,77・・・54,BB,16)各々の最上位ビット〜最下位ビットの8種類のいずれかの定数項である。例えば、図5に示す例は、図4に示すビット値、すなわち図2に示すテーブルに示される256個の出力値(63,7C,77・・・54,BB,16)各々の最下位ビットを定数項として設定した例である。
すなわち、実施例1では、図2に示すテーブルに示される256個の出力値(63,7C,77・・・54,BB,16)各々の最上位ビット〜最下位ビットのビット値[0]または[1]に従った256個の定数項からなるビット値がアンドゲート回路に対する入力値としてそのまま適用されていた。本実施例4では、この256個のアンドゲート回路の入力を定数項、およびその反転値、乱数、これらを適宜、組み合わせて入力する設定とする。
具体的には、例えば、
(a)実施例1と同様の非線形変換テーブル(S−Boxテーブル)の出力値対応のビット値からなる定数項、
(b)上記定数項の反転値、
(c)乱数
これら(a)〜(c)のデータを入力値として適用する。(a)〜(c)のすべてを利用する構成やいずれか2つを組み合わせて利用する構成などが可能である。
なお、この場合には、どのタイミングで(a)〜(c)のいずれのデータが入力されたかを示す管理情報を保持し、管理情報に従って、正しい出力値を取得することになる。なお、(b)の定数項の反転値を入力した場合の最終出力は正式な出力ビットの反転値(正式出力が1の場合0、0の場合1)となるため、出力を反転させて正式な出力ビットとして適用することが可能である。
例えば、具体的には、図5を参照して説明した出力8ビット中の最下位ビットを得るための回路では、図2に示すテーブルに示される256個の出力値(63,7C,77・・・54,BB,16)各々の最下位ビットのビット値、すなわち、先に図4を参照して説明したビット値[1,0,1,1,0・・・,0,0,1,0]を入力するか、あるいはその反転入力としての反転ビット値[0,1,0,0,1・・・,1,1,0,1]を入力する設定とする。この反転値入力に基づいて得た出力を反転処理することで、正式な非線形変換出力ビットを得ることができる。
この実施例においては、定数項入力のみならず、乱数の入力を行なうので、セレクタ出力におけるビットの0および1の生起確率が平均化され、DPA解析をさらに困難とすることが可能となる。
なお、前述したと同様、例えば、図10に示す二分決定グラフ(BDD)を用いた論理回路構成は、出力1ビットを得るための構成であり、8ビット入力に対応する非線形変換結果としての出力8ビットを得るためには、図10と同様な構造をもつ二分決定グラフで構成された論理関数が8組必要になる。この場合、それぞれの組に対して、それぞれ、
(a)実施例1と同様の非線形変換テーブル(S−Boxテーブル)の出力値対応のビット値からなる定数項、
(b)上記定数項の反転値、
(c)乱数、
これら(a)〜(c)のデータを入力値として適用する。(a)〜(c)のすべてを利用する構成やいずれか2つを組み合わせて利用する構成などが可能である。適用する乱数は、論理関数8組のそれぞれにおいて同一のものを適用してもよいし異なるものを適用してもよい。
なお、本構成においても、
(a)プリチャージ信号[prch]、
(b)セレクタに対するセレクト信号[in]、
(c)セレクタの出力(第1層のセレクタ最終出力)[out]、
これら各信号の時間遷移は、先に実施例1において説明したと同様、図6を参照して説明したタイミングチャートに従った処理として実行される。
すなわち、セレクタに対するセレクト信号[in]の遷移は、プリチャージ信号[prch]=[0]とされるプリチャージ・フェーズ(Pre−Charge Phase)への移行後、プリチャージ・フェーズ(Pre−Charge Phase)が定常状態になった時点に実行される。従って、各層のセレクト信号の遷移タイミングがずれても、出力は[0]のままに維持され、出力値[out]が変化せず、過渡遷移に基づく出力値の遷移状態を検出されることがなく秘密情報の漏洩防止が可能となる。
このように本実施例では、最下層セレクタの入力値を生成するゲート回路の一方の入力を非線形変換処理結果データに基づいて設定されるデータまたは乱数として設定可能な構成とし、制御部がプリチャージ・フェーズにおいては、最下層セレクタの入力を固定値とし、エバリュエーション・フェーズにおいては、非線形変換処理結果データに基づいて設定されるデータまたは乱数を最下層セレクタの入力として設定して出力ビットの生成処理を行なわせる。
[6.その他の実施例]
上述した各実施例においては、各層のセレクト信号の遷移処理を実行するタイミングにおいて、プリチャージ信号[prch]=[0]として、出力を[0]に維持する構成として説明したが、各層のセレクト信号の遷移処理を実行するタイミングにおける出力を[0]に維持するのではなく、逆に[1]に維持されるような構成としてもよい。
例えば、第8層に入力するゲート回路信号をオール1、または、定数項あるいは乱数とするゲート回路を構成し、プリチャージ・フェーズ(Pre−Charge Phase)においては、オール1の出力を第8層のセレクタに入力する構成とする。
この構成においても、セレクタに対するセレクト信号[in]の遷移は、出力が[1]に維持されるプリチャージ・フェーズ(Pre−Charge Phase)への移行後、プリチャージ・フェーズ(Pre−Charge Phase)が定常状態になった時点に実行される。従って、各層のセレクト信号の遷移タイミングがずれても、出力は[1]のままに維持され、出力値[out]が変化せず、過渡遷移に基づく出力値の遷移状態を検出されることがなく秘密情報の漏洩防止が可能となる。
さらに、各層のセレクト信号の遷移処理を実行するタイミングでの出力を[0]と[1]を不規則に変更する構成としてもよい。この構成は、第8層に入力する出力信号を生成するゲート回路の出力を、
オール1、または、
オール0、または、
定数項あるいは乱数、
これらの3種類の出力を選択して出力可能なゲート回路を構成し、プリチャージ・フェーズ(Pre−Charge Phase)において、オール1またはオール0の出力をランダムに選択するスイッチを設けてスイッチをランダムに切り替えて第8層のセレクタにオール0またはオール1を入力する構成とする。
この構成においても、セレクタに対するセレクト信号[in]の遷移は、出力を[0]または[1]のいずれかの選択された値とするプリチャージ・フェーズ(Pre−Charge Phase)への移行後、プリチャージ・フェーズ(Pre−Charge Phase)が定常状態になった時点に実行される。従って、各層のセレクト信号の遷移タイミングがずれても、出力はランダムに選択された[0]または[1]に維持される。従って、出力値[out]が変化せず、過渡遷移に基づく出力値の遷移状態を検出されることがなく秘密情報の漏洩が防止される。
なお、上述した各実施例は、単独で適用することも可能であるが、複数組み合わせた構成としてもよい、
なお、上述した実施例では、共通鍵暗号処理における非線形変換処理例を中心として説明したが、本発明は、AESやDESなどの共通鍵暗号処理のみならずRSAなどの公開鍵暗号処理やSHA−1などのハッシュ関数の演算など、非線形変換処理や線形変換処理などのデータ変換処理を実行する各種の演算において適用可能である。
最後に、暗号文の生成、あるいは暗号文の復号処理等の暗号処理を実行する暗号処理装置としてのICモジュール300の構成例を図11を参照して説明する。上述の処理は、例えばPC、ICカード、リーダライタ、その他、様々な情報処理装置において実行可能であり、図11に示すICモジュール300は、これら様々な機器に構成することが可能である。
図11に示すCPU(Central processing Unit)301は、暗号処理の開始や、終了、データの送受信の制御、各構成部間のデータ転送制御、その他の各種プログラムを実行する制御部として機能するプロセッサである。メモリ302は、CPU301が実行するプログラム、あるいは演算パラメータとしての固定データを格納するROM(Read-Only-Memory)、CPU301の処理において実行されるプログラム、およびプログラム処理において適宜変化するパラメータの格納エリア、ワーク領域として使用されるRAM(Random Access Memory)等からなる。また、メモリ302は暗号処理に必要な鍵データ等の格納領域として使用可能である。例えば暗号処理に適用する秘密鍵:Kが格納される。データ格納領域は、耐タンパ構造を持つメモリとして構成されることが好ましい。
暗号処理部303は、上述した各実施例において説明した階層構成のセレクタ構成からなる二分決定グラフ(BDD)を用いた論理回路構成を有し、上述したプリチャージ・フェーズ(Pre−Charge Phase)と、エバリュエーション・フェーズ(Evaluation Phase)を設定可能とした非線形変換処理回路を有する構成である。
各フェーズの切り替え制御や、ゲート回路の出力制御、セレクタに対するセレクト信号の遷移、出力の選択処理など、上述した実施例において説明した論理回路から正当な出力を得るために必要となる制御は、例えば制御部としてのCPU301において予め設定されたプログラムに従って実行される。例えば暗号処理の実行プログラムをROMに格納し、CPU301がROM格納プログラムを読み出して、暗号処理部303に構成された二分決定グラフ(BDD)を用いた論理回路構成を用いた処理を実行する。具体的には、先に図6を参照して説明したタイミングチャートに従った処理シーケンスで制御が実行される。
乱数発生器304は、暗号処理に適用する鍵、乱数情報の生成処理において適用される。あるいはデバイス間の認証処理において必要となる乱数生成、その他、暗号処理に必要となる乱数生成処理に適用される。乱数発生器304は、例えばLFSR(線形フィードバックシフトレジスタ)を適用した乱数生成器、あるいは擬似乱数生成器などによって構成される。
送受信部305は、外部とのデータ通信を実行するデータ通信処理部であり、例えばリーダライタ等、ICモジュールとのデータ通信を実行し、ICモジュール内で生成した暗号文の出力、あるいは外部のリーダライタ等の機器からのデータ入力などを実行する。
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
上述した本発明の構成によれば、論理回路を適用して入力ビットの非線形変換処理や線形変換処理などのデータ変換処理を行い、出力ビットを生成する演算装置において、論理回路に対する入力ビットの切り替え処理である入力ビット遷移処理を、論理回路の出力を固定値に維持したプリチャージ・フェーズにおいて実行させ、入力ビット遷移処理が終了した後、エバリュエーション・フェーズへ移行して、データ変換処理に基づく出力ビットの生成処理を行なわせる構成としたので、入力ビット遷移処理時に発生する過渡遷移に基づく解析を困難とすることが可能となる。本構成により、例えばDPA(Differential Power Analysis)攻撃に対する耐性の高い演算装置が実現される。
AESやDESなどの共通鍵暗号方式の暗号処理を実行する基本構成を示す図である。 非線形変換処理に適用する変換テーブル(S−Boxテーブル)を示す図である。 非線形変換テーブル(S−Boxテーブル)に基づく変換結果中の出力の下位1ビットを出力する論理回路としての二分決定グラフ(BDD)を示す図である。 図2に示すテーブルに示される256個の出力値の最下位ビットに対応するビット値のみを示す変換テーブルを示す図である。 本発明の第1の実施形態としての二分決定グラフ(BDD)を基本構成とし、プリチャージ・フェーズ(Pre−Charge Phase)とエバリュエーション・フェーズ(Evaluation Phase)を設定可能とした論理回路構成を示す図である。 本発明の第1の実施形態としての論理回路における信号遷移を説明するタイミングチャートを示す図である。 過渡遷移について説明する図である。 セレクタの共有化構成について説明する図である。 反転出力セレクタを利用した本発明の実施例構成について説明する図である。 乱数入力構成を持つ本発明の実施例構成について説明する図である。 本発明の構成が適用可能な暗号処理実行デバイスとしてのICモジュールの構成例を示す図である。
符号の説明
110 データ変換部
115 ラウンド演算部
120 鍵スケジュール部
300 ICモジュール
301 CPU(Central processing Unit)
302 メモリ
303 暗号処理部
304 乱数発生器
305 送受信部

Claims (12)

  1. 演算処理装置であり、
    入力ビットのデータ変換処理を実行して出力ビットを生成する論理回路と、
    前記論理回路に対する入力ビットの切り替え処理としての入力ビット遷移処理を、前記論理回路の出力を固定値に維持したプリチャージ・フェーズにおいて実行させ、入力ビット遷移処理が終了した後、エバリュエーション・フェーズへ移行させて遷移後の入力ビットのデータ変換処理に基づく出力ビットの生成処理を行なわせる制御部と、
    を有し、
    前記論理回路は、
    前記入力ビットをセレクト信号として設定した複数のセレクタによる階層構成を有し、データ変換処理結果に基づいて設定される定数項としてのビット値を入力する複数の最下層セレクタから順次、上層セレクタへ出力値を転送して最上層セレクタから出力ビットを出力する構成であり、前記最下層セレクタの入力値を前記プリチャージ・フェーズにおいて固定値に設定するためのゲート回路を有し、
    前記制御部は、前記プリチャージ・フェーズにおいて、前記最下層セレクタの入力を固定値とするように前記ゲート回路の出力制御を行う構成であることを特徴とする演算処理装置。
  2. 前記ゲート回路は、
    一方の入力がデータ変換処理結果に基づいて設定される定数項であり、
    他方の入力が0と1のプリチャージ信号の切り替え入力であり、
    出力が前記最下層セレクタへの入力としたアンド回路であり、
    前記制御部は、
    前記プリチャージ・フェーズにおいて、前記プリチャージ信号を0として、アンド回路出力を0に設定する制御を行う構成であることを特徴とする請求項に記載の演算処理装置。
  3. 前記制御部は、
    前記プリチャージ・フェーズにおいて、前記プリチャージ信号を0として、前記アンド回路出力を0に設定した後、予め定められた経過時間の後、前記論理回路に対する入力ビットの切り替え処理としての入力ビット遷移処理を実行させ、入力ビット遷移処理の完了後に、エバリュエーション・フェーズへ移行させて遷移後の入力ビットのデータ変換処理に基づく出力ビットの生成処理を行なわせる構成であることを特徴とする請求項に記載の演算処理装置。
  4. 前記論理回路を構成するセレクタは、同一値を入力値とする複数のセレクタを1つのセレクタとした共有セレクタを有する構成であることを特徴とする請求項に記載の演算処理装置。
  5. 前記論理回路を構成するセレクタは、反転出力を行なうセレクタであることを特徴とする請求項に記載の演算処理装置。
  6. 前記ゲート回路は、
    一方の入力をデータ変換処理結果に基づいて設定されるデータまたは乱数に設定可能な構成であり、
    前記制御部は、
    前記プリチャージ・フェーズにおいて、前記最下層セレクタの入力を固定値とし、前記エバリュエーション・フェーズにおいて、前記データ変換処理結果に基づいて設定されるデータまたは乱数を前記最下層セレクタの入力として設定して出力ビットの生成処理を行なわせる構成であることを特徴とする請求項に記載の演算処理装置。
  7. 前記ゲート回路は、
    前記最下層セレクタの入力値を前記プリチャージ・フェーズにおいて0または1にランダムに出力する構成を有し、
    前記制御部は、前記プリチャージ・フェーズにおいて、前記最下層セレクタの入力をランダムに0または1とするように前記ゲート回路の出力制御を行う構成であることを特徴とする請求項に記載の演算処理装置。
  8. 前記論理回路は、
    二分決定グラフ(BDD: Binary Decision Diagram)を用いた構成を有することを特徴とする請求項1に記載の演算処理装置。
  9. 前記論理回路は、
    入力ビットのデータ変換処理として、
    入力ビットの非線形変換処理、または線形変換処理を実行する構成であることを特徴とする請求項1に記載の演算処理装置。
  10. 演算処理装置において演算処理制御を実行する演算処理制御方法であり、
    制御部の制御により、入力ビットのデータ変換処理を実行して出力ビットを生成する論理回路に対する入力ビットの切り替え処理としての入力ビット遷移処理を、前記論理回路の出力を固定値に維持したプリチャージ・フェーズにおいて実行させる入力ビット遷移ステップと、
    制御部の制御により、入力ビット遷移処理が終了した後、エバリュエーション・フェーズへ移行させて遷移後の入力ビットのデータ変換処理に基づく出力ビットの生成処理を行なわせる出力ビット生成ステップと、
    を有し、
    前記論理回路は、前記入力ビットをセレクト信号として設定した複数のセレクタによる階層構成を有し、データ変換処理結果に基づいて設定される定数項としてのビット値を入力する複数の最下層セレクタから順次、上層セレクタへ出力値を転送して最上層セレクタから出力ビットを出力する構成であり、前記最下層セレクタの入力値を前記プリチャージ・フェーズにおいて固定値に設定するためのゲート回路を有し、
    前記制御部は、前記プリチャージ・フェーズにおいて、前記最下層セレクタの入力を固定値とするように前記ゲート回路の出力制御を行うことを特徴とする演算処理制御方法。
  11. 前記論理回路は、
    入力ビットのデータ変換処理として、
    入力ビットの非線形変換処理、または線形変換処理を実行することを特徴とする請求項10に記載の演算処理制御方法。
  12. 演算処理装置において演算処理制御を実行させるコンピュータ・プログラムであり、
    制御部の制御により、入力ビットのデータ変換処理を実行して出力ビットを生成する論理回路に対する入力ビットの切り替え処理としての入力ビット遷移処理を、前記論理回路の出力を固定値に維持したプリチャージ・フェーズにおいて実行させる入力ビット遷移ステップと、
    制御部の制御により、入力ビット遷移処理が終了した後、エバリュエーション・フェーズへ移行させて遷移後の入力ビットのデータ変換処理に基づく出力ビットの生成処理を行なわせる出力ビット生成ステップと、
    を実行させ、
    前記論理回路は、前記入力ビットをセレクト信号として設定した複数のセレクタによる階層構成を有し、データ変換処理結果に基づいて設定される定数項としてのビット値を入力する複数の最下層セレクタから順次、上層セレクタへ出力値を転送して最上層セレクタから出力ビットを出力する構成であり、前記最下層セレクタの入力値を前記プリチャージ・フェーズにおいて固定値に設定するためのゲート回路を有し、
    前記コンピュータ・プログラムは、前記制御部の制御により、前記プリチャージ・フェーズにおいて、前記最下層セレクタの入力を固定値とするように前記ゲート回路の出力制御を行わせることを特徴とするコンピュータ・プログラム。
JP2006211189A 2006-08-02 2006-08-02 演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム Expired - Fee Related JP4935229B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006211189A JP4935229B2 (ja) 2006-08-02 2006-08-02 演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006211189A JP4935229B2 (ja) 2006-08-02 2006-08-02 演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム

Publications (2)

Publication Number Publication Date
JP2008042328A JP2008042328A (ja) 2008-02-21
JP4935229B2 true JP4935229B2 (ja) 2012-05-23

Family

ID=39176895

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006211189A Expired - Fee Related JP4935229B2 (ja) 2006-08-02 2006-08-02 演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム

Country Status (1)

Country Link
JP (1) JP4935229B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JP4849140B2 (ja) * 2009-02-20 2012-01-11 ソニー株式会社 データ変換装置、演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム
KR101566408B1 (ko) 2009-03-13 2015-11-05 삼성전자주식회사 불 마스크와 산술 마스크의 변환 회로 및 변환 방법
CN104353303A (zh) * 2014-10-27 2015-02-18 张广舜 一种电机外置的侧吸与封闭式气体过滤方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3877663B2 (ja) * 2002-09-26 2007-02-07 株式会社東芝 論理回路および暗号化装置
DE10323863B4 (de) * 2003-05-26 2005-09-22 Infineon Technologies Ag Integrierte Schaltung und Verfahren zum Betreiben einer integrierten Schaltung
DE10324049B4 (de) * 2003-05-27 2006-10-26 Infineon Technologies Ag Integrierte Schaltung und Verfahren zum Betreiben der integrierten Schaltung
JP3945497B2 (ja) * 2004-06-30 2007-07-18 株式会社日立製作所 情報処理装置、icカード
JP4453697B2 (ja) * 2006-12-15 2010-04-21 ソニー株式会社 演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム
JP4849140B2 (ja) * 2009-02-20 2012-01-11 ソニー株式会社 データ変換装置、演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム

Also Published As

Publication number Publication date
JP2008042328A (ja) 2008-02-21

Similar Documents

Publication Publication Date Title
JP4453697B2 (ja) 演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム
JP4687775B2 (ja) 暗号処理装置
EP1873671B2 (en) A method for protecting IC Cards against power analysis attacks
CN100583739C (zh) 加密装置、加密方法及其存储介质
EP2228941B1 (en) Encryption processing apparatus
US9325494B2 (en) Method for generating a bit vector
JP4960044B2 (ja) 暗号処理回路及びicカード
US20120005466A1 (en) Data processing device and method for operating such data processing device
US20120093308A1 (en) Apparatus and method for generating random data
US11258579B2 (en) Method and circuit for implementing a substitution table
JP2007195132A (ja) 暗号処理装置
JP2008233683A (ja) 暗号処理装置及びプログラム
CN112422272A (zh) 一种防功耗攻击的aes加密方法及电路
EP1646174A1 (en) Method and apparatus for generating cryptographic sets of instructions automatically and code generation
JP4935229B2 (ja) 演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム
US10530567B2 (en) Encryption device and memory device
Nguyen et al. Lightweight and secure PUFs: A survey
JP2005134478A (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4849140B2 (ja) データ変換装置、演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム
JP2007174024A (ja) 暗号処理装置
JP2005031471A (ja) 暗号処理装置、および暗号処理方法
JP5268001B2 (ja) ストリーム暗号向け擬似乱数生成装置とプログラムと方法
JP2006025366A (ja) 暗号化装置及び半導体集積回路
JP2005045752A (ja) 暗号処理装置、および暗号処理方法
JP2006054568A (ja) 暗号化装置、復号化装置、および方法、並びにコンピュータ・プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090724

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111020

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111108

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111229

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120206

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

Free format text: PAYMENT UNTIL: 20150302

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20150302

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees