JP4588969B2 - Secure device - Google Patents

Secure device Download PDF

Info

Publication number
JP4588969B2
JP4588969B2 JP2002314892A JP2002314892A JP4588969B2 JP 4588969 B2 JP4588969 B2 JP 4588969B2 JP 2002314892 A JP2002314892 A JP 2002314892A JP 2002314892 A JP2002314892 A JP 2002314892A JP 4588969 B2 JP4588969 B2 JP 4588969B2
Authority
JP
Japan
Prior art keywords
confidential information
unit
information processing
processing unit
circuit
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
JP2002314892A
Other languages
Japanese (ja)
Other versions
JP2004153460A (en
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2002314892A priority Critical patent/JP4588969B2/en
Publication of JP2004153460A publication Critical patent/JP2004153460A/en
Application granted granted Critical
Publication of JP4588969B2 publication Critical patent/JP4588969B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Description

【0001】
【発明の属する技術分野】
この発明は、情報処理装置における機密性の高い暗号セキュアシステムに係わり、特に、セキュア回路の構成方法に関するものである。
【0002】
【従来の技術】
従来例1.
例えば、特開2000−165375に示された従来の「情報処理装置、ICカード」に示された選択的転置処理の処理ルーチンを図10に示す。
【0003】
従来例1の選択的転置処理(P101)では、まず実行フラグをクリアする(P102)。この実行フラグは、各ビットが繰返し処理の処理単位で処理が終了しているならば“1”であり、未処理であれば“0”である。実行フラグの全てのビットが“1”であるならば(P103)、処理を終了する(P112)。そうでなければ、処理を続け乱数を取出す(P104)。乱数は、乱数生成装置などで生成する。
【0004】
繰返し単位で、実行する処理を指定する実行インデックスを乱数によって決める(P105)。例えば、乱数の下位3ビットを取り出し、その値に対する8の剰余を実行インデックスとする。このように実行インデックスを乱数から生成すれば、処理順番をランダムにすることが出来る。
【0005】
次に実行フラグの対応するビットを、処理済を示す“1”とする(P106)。
【0006】
以上のようにすることにより、繰返し処理の処理単位が乱数によってランダムに選ばれるために、処理単位の順序が一定とならない。さらに、ランダムに処理順序が選択されるために、同じ処理が1度以上処理される場合もあり、処理時間も不定となる。
【0007】
次に、選択された実行インデックスに従い、処理すべき正常入力データとビット反転入力データを取り出す(P107)。正常入力データとビット反転入力データが同じ順番で処理されるのを避けるために、乱数を取出し(P108)、アドレス変位を計算する(P109)。そのアドレス変位から呼出しアドレスを求め(P110)、ルーチンを呼び出す(P111)。
【0008】
以上のようにすることにより、アドレス変位が乱数により決められるので、正常入力データ処理ルーチンと反転入力データ処理ルーチンの処理順序が一定とならない。さらに、ランダムに処理順序が選択されるために、同じ処理が1度以上処理される場合もあり、処理時間も不定となる。
【0009】
また、P107で組になるように格納された正常入力データとビット反転入力データが取り出されるので、データ転送時のデータと消費電力の関連性を少なくすることが出来る(例えば特許文献1参照)。
【0010】
従来例2.
図11は例えば、WO99/67766に示された従来の“BALANCEDCRYPTOGRAPHIC COMPUTATIONAL METHOD AND APPARATUS FOR LEAK MINIMIZATION IN SMARTCARDS AND OTHER CRYPTOSYSTEMS”におけるNANDゲートのCMOS実装図である。図において、AとBは入力端子であり、各々2ビットでTRUE、FALSEを表す。つまり、AはA1とA2のビットで、(A1,A2)=(1,0)でTRUEを、(A1,A2)=(0,1)でFALSEを表す。この両者のハミングウェイトは一定である。VPPは電源電圧、GNDは接地電圧を示す。Oは出力端子であり、O1、O2の2ビットでNAND出力を表す。O3からO8はNANDとして使用する場合は、使用しない。
【0011】
従来例2の動作について述べる。NANDの入力端子A、Bに入力データが入力される前に、入力端子A、Bは中立の状態にある。つまり、(A1,A2,B1,B2)=(0,0,0,0)であり、図11のサブユニットP210、P220、P230、P240は全て同じ状態にある。この状態のもと、NANDゲートに論理入力を与えた時の各サブユニットの状態変化を図12に示す。例えば、(TRUE,TRUE)の入力を与えた場合、サブユニットP210では全てのトランジスタが、サブユニットP220ではP222、P224のトランジスタが、サブユニットP230ではP231、P233のトランジスタが状態変化を起こす。図12によれば、どのような入力を与えても、NANDゲート内で状態変化を起こすトランジスタ数は変わらない。よって、入力状態に依らず、NANDゲート内の消費電力は一定に保たれる(例えば特許文献1参照)。
【0012】
【特許文献1】
特開2000−165375号公報
【特許文献2】
国際公開WO99/67766号公報
【0013】
【発明が解決しようとする課題】
従来例1の「情報処理装置、ICカード」は、乱数により処理順序を可変とし、内部処理状態の特定を困難にする特徴がある反面、1度以上処理が実行される可能性があり、処理時間が長くなると言う課題があった。
【0014】
また、組になるように格納された正常入力データとビット反転入力データの処理順序を乱数により変更することで、正常入力データとビット反転入力データの処理状態の特定を困難にする特徴がある反面、ある特定時間においては正常入力データまたはビット反転入力データの何れかが処理されており、その処理データの消費電力情報が外部に漏れて機密情報が解読されると言う課題があった。
【0015】
一方、従来例2の“BALANCED CRYPTOGRAPHIC COMPUTATIONAL METHOD AND APPARATUS FOR LEAK MINIMIZATION IN SMARTCARDS AND OTHER CRYPTOSYSTEMS”では、NANDゲートをハミングウェイトが一定となるように構成するので、入力データに依存する消費電力情報を少なくする特徴がある反面、回路構成が冗長になり消費電力が増大すると言う課題があった。
【0016】
この発明は、外部に漏れる消費エネルギー量と機密情報との関連性を少なくし、外部に消費電力情報が漏れても、機密情報の解読が困難になるようにし、かつ、装置の冗長性が低いセキュア装置の構成及びセキュア方法を構築することを目的とする。
【0017】
【課題を解決するための手段】
本発明のセキュア装置は、
機密情報を処理する機密情報処理部を備えるセキュア装置であって、
上記機密情報処理部は、エネルギーを消費して機密情報を処理するロジック部と、
ダミーのエネルギーの消費を行うことで上記ロジック部が消費する消費エネルギーの量をカモフラージュすることにより上記ロジック部が消費する消費エネルギーの量から上記ロジック部によって処理される機密情報の漏洩を抑止する抑止部とを備える。
【0018】
【発明の実施の形態】
実施の形態1.
図1は実施の形態1の暗号セキュア装置1の回路構成図を示したものである。図1において、暗号セキュア装置1は、マイクロプロセッサ10、暗号(復号)処理を高速に行う暗号処理部(暗号コプロ)11、乱数を発生する乱数発生器12、外部との通信を行う通信部13、マイクロプロセッサ10の処理プログラム等を格納するROM14、マイクロプロセッサ10の作業領域を提供するRAM15を備える。
マイクロプロセッサ10は、暗号セキュア装置1の全体の制御を行ったり、後述する暗号処理部11、乱数発生器12を用いて、暗号(復号)処理を行うプロセッサである。
通信部13は外部とのインタフェースを掌るものであり、通信に限られるものではなく、他のインタフェース、例えばIEEE1394であっても良い。
なお、暗号セキュア装置1は、機密情報が外部に漏れることを防止するセキュア装置の一例である。
【0019】
本発明では、暗号処理部11、乱数発生器12に消費電力が一定となる消費電力バランス設計を行うことを特徴とする。
【0020】
本発明の詳細な説明に移る前に、一般的な暗号アルゴリズムについて簡単に述べる。図2はDES(Data Encryption Standard)暗号の基本構造を模式的に表したものである。DES暗号は64ビットのデータを56ビットの鍵で、暗号化及び復号する。図2は暗号化の手順を示している。64ビットの入力データは、はじめに初期転置させられる。初期転置は、既定の初期転置テーブルに従い、ビット単位で64ビットの入力データを入れ換えることである。
【0021】
その後、ラウンドと呼ばれる操作を16回繰り返す。各ラウンドでは、以下の(1)〜(4)の処理を行う。
(1)64ビットの入力データを、上位32ビットと下位32ビットに分ける。
(2)下位32ビットと48ビットの鍵Ki(1≦i≦16)を入力として、f関数と呼ばれる処理を行い、データを攪拌する。
(3)上位32ビットと上記f関数処理後の出力32ビットの排他的論理和を取る。
(4)下位32ビットを上位32ビットとして出力し、排他的論理和を取った出力32ビットを下位32ビットとして出力する。
【0022】
なお、図2に示された48ビットの鍵Ki(K1〜K16)は56ビットの鍵を拡大して生成されるものである。
【0023】
最後に、最終転置と呼ばれる初期転置の逆転置を行い暗号化が終了する。DESの詳しい記述は、チャーリー・カフマン著「ネットワークセキュリティ」(プレンティスホール社)などにある。
【0024】
次に、RSA暗号の概要を述べる。RSA暗号の復号化は次の式に従って行われる。
【0025】
【数1】

Figure 0004588969
【0026】
ここで、cは暗号文、mはメッセージ、dとnはある規則に従い求められた復号鍵である。実際に使用されるdとnは1024ビット以上であるので、(数式1)をそのまま計算することはなく、式を展開して(数式2)に従って計算されることが多い。
【0027】
【数2】
Figure 0004588969
【0028】
なお、上記(数式2)に記載された/* */で含まれた分は数式の一部ではなく、数式を説明する文である。
【0029】
ここで、|d|はdのビット長、d[i]はdのiビット目の値である。RSA暗号の詳しい記述についても前述の「ネットワークセキュリティ」などに書かれている。
【0030】
一般的な暗号アルゴリズムは以上のように組み立てられている。何れの例においても、小さな単位(ラウンド、ループ)の繰返し構造を有する演算処理を行っている。しかも、この小さい単位には機密とすべき情報が入力されているので、この演算処理において、機密情報と消費電力との間に関連性がある場合、機密情報が外部で推定される可能性がある。W.Ranke & W. Effing,“Smart Card Handbook”,(John Wiley &sons)において、このような危険性が示唆されている。
【0031】
本実施の形態は、上記のような危険性に対抗するために、外部に漏れる消費電力情報と内部処理のデータ(機密情報)との関連性を少なくするものである。
【0032】
図1において、機密情報を扱うブロックは、暗号処理部11と乱数発生器12であり、本実施の形態ではこの機密情報を扱うブロックに対して、消費電力バランス設計を行うことを特徴とする。消費電力バランス設計とは、回路内部で処理されているデータと外部に漏れ出る消費電力との関連性を極力小さくする設計のことを示す。以下に、その詳細を述べる。
【0033】
図3は、暗号処理部11が複数のサブブロックで構成されている場合、機密情報を扱うサブブロックに対してのみ、消費電力バランス設計を行う例を示している。図3において、情報処理部200は機密情報を扱わないサブブロックであり、入力インタフェースなどに相当する。機密情報処理部210から機密情報処理部214は機密情報を扱うサブブロックであり、一般的な暗号アルゴリズムでのラウンドやループに相当する。情報処理部230も情報処理部200と同様に機密情報を扱わないサブブロックで出力インタフェースなどに相当する。機密情報生成部240は機密情報を生成するサブブロックであり、一般的な暗号アルゴリズムでの拡大鍵生成などに相当する。
【0034】
本実施の形態では、上記機密情報を扱うサブブロックに対してのみ、消費電力バランス設計を行う。このようにすることにより、すべてのサブブロックに対して消費電力バランス設計を行うのに比べ、消費電力の増大を抑えることが出来る。
【0035】
次に、機密情報を扱うサブブロック(機密情報処理部(210、211、212、213、214)及び機密情報生成部240)の少なくともいずれかに対して行う消費電力バランス設計について述べる。話を簡単にするために、機密情報を扱うサブブロックが図4に示すような入力部46、複数の基本ブロック部4、出力部48から構成されているものとする。
基本ブロック部4は異なるロジック部41、ロジック部42、セレクタ43及びフリップフロップ(FF)44で構成される。一例として図4の基本ブロック部4を提示したが、一般の回路はこれらの要素の組合せで実現することが出来る。
【0036】
図4に示す機密情報を扱うサブブロック機密情報処理部に対して、消費電力バランス設計を行う方法を以下に示す。消費電力バランス設計では、回路上の1ノードの状態がある時刻において定まるタイミングと同じタイミングで、前記状態の反転状態が定まる回路の1ノードを設計する。具体的には、ある時刻のゲート出力(ノード)が0であれば、消費電力バランス設計では同じ時刻にゲート出力(ノード)が1であるゲートを追加する。このようにすることで、内部処理されているデータは常に、1と0が対になって発生するため、外部に漏れる消費電力と内部処理されているデータとの関連性を抑えることが出来る。
【0037】
図5に、図4の基本ブロック部4に対して消費電力バランス設計が行われ、追加される追加回路を抑止部(55、56)として示す。追加回路は以下の(1)〜(8)に示すようにして設計する。
(1)入力部46にインバータ50を設ける。ただし、インバータ50は、全てのバランス基本ブロック部5の入力データに対し設けるのではなく、消費電力バランス設計を行う先頭のバランス基本ブロック部5に対してのみ行う。
(2)図4のロジック部41及びロジック部42に対して、以下のゲート(回路)の対応関係に従って、ロジック部41及びロジック部42の回路を置き換えることにより追加回路を設計する。
AND回路 → OR回路
OR回路 → AND回路
NAND回路 → NOR回路
NOR回路 → NAND回路
NOT回路はNOT回路のままとする。
つまり、図4で使用されるAND回路はOR回路で置き換えるといった具合にロジック部41及びロジック部42を置き換える。
(3)セレクタ43、フリップフロップ44は同じ回路とする。
(4)セレクタ43のセレクト信号は同じものとする。
(5)フリップフロップ44のクロックは同じものとする。
(6)基本ブロック部4が複数連続する場合は、各々に対して上記(2)〜(4)の作業を行い、すべてのバランス基本ブロック部5に対して、消費電力バランス設計を行う。このようにして、消費電力バランス設計が行われた追加回路は、ロジック部41及びロジック部42に対し抑止部55及び抑止部56としてバランスロジック部51及びバランスロジック部52に追加される。
(7)消費電力バランス設計が行われた追加回路の出力は、図3に示す次の処理を行う機密情報処理部に対応する消費電力バランス設計が行われた追加回路に入力される。
(8)消費電力バランス設計を行う最後の機密情報処理部(図3では、機密情報処理部214)に対応する消費電力バランス設計が行われた追加回路の出力(最終出力)は、内部で使用する乱数等として利用することができる。
【0038】
このように、実施の形態1に記載された発明の消費電力バランス設計では、回路上の1ノードの状態がある時刻において定まると、同じタイミングで反転状態の1ノードが定まる回路を設計する。このような消費電力バランス設計によって追加された抑止部が、ダミーのエネルギーの消費を行うことでロジック部が消費する消費エネルギーの量をカモフラージュすることにより、ロジック部が消費する消費エネルギーの量からロジック部によって処理される機密情報の漏洩を抑止することができる。すなわち、消費電力バランス設計によって内部で処理されるデータのバランスがとれ、消費電力と内部処理データの関連性を小さくする暗号セキュア装置1を構築することが出来る。
【0039】
また、機密情報を扱う機密情報処理部に対してのみ、消費電力バランス設計を行うため、消費電力の増加を必要最小限に抑えることができる。
【0040】
また、消費電力バランス設計におけるロジック部の置換えを、1ゲート(回路)に付き、1ゲート(回路)としたので、回路の冗長性を抑えることが出来る。
【0041】
実施の形態2.
実施の形態1では、暗号処理部11が複数のサブブロックで構成されている場合、機密情報を扱うサブブロックに対してのみ、消費電力バランス設計を行う例を示した。
実施の形態2では、機密情報を扱う機密情報処理部が連続している場合、最初と最後の機密情報処理部に対してのみ、消費電力バランス設計を行う。
【0042】
一般に、消費電力から機密情報を推定する場合、消費電力が既知の情報と推定する機密情報の関数で決まると仮定して、推定された機密情報の確からしさを消費電力の統計処理により求める。既知情報は、平文や最終結果である暗号文などである。機密情報を扱う機密情報処理部の機密情報が判別された場合、その機密情報処理部の出力も既知情報として扱うことが出来る。
【0043】
図6に実施の形態2における暗号処理部11のブロック図を示す。機密情報を扱う機密情報処理部のうち、連続して行われる機密情報処理部の最初と最後の機密情報処理部210、機密情報処理部214にだけ、消費電力バランス設計を行う。このように、消費電力バランス設計を行うことにより、その機密情報処理部で扱う機密情報を推定することが困難になり、連続する機密情報処理部が扱う機密情報の推定を行うことが出来なくなる。なお、機密情報処理部611から機密情報処理部613は消費電力バランス設計を行わないサブブロックである。
【0044】
このように、実施の形態2では機密情報を扱うサブブロックのうち、連続して行われるサブブロックの最初と最後のサブブロックにだけ、消費電力バランス設計を行うので、一連の機密情報の推定が困難になる。
【0045】
また、機密情報を扱うサブブロックのうち、連続して行われるサブブロックのうち、最初と最後のサブブロック以外のサブブロックに対しては消費電力バランス設計を行わないので、消費電力の増大を抑えると共に、回路の増加も抑えることが出来る。
【0046】
実施の形態3.
実施の形態1および2は、暗号アルゴリズムを平面状に展開した回路構成における暗号セキュア装置1の構成方法を示した。
実施の形態3では、暗号アルゴリズムをループ状に展開した回路構成における暗号セキュア装置1の構成方法について述べる。
【0047】
図7は、暗号アルゴリズムをループ状に展開した回路構成図を示している。図において、情報処理部200は機密情報を扱わないサブブロックであり、入力インタフェースなどに相当する。機密情報処理部70は機密情報を扱うサブブロックであり、一般的な暗号アルゴリズムでの1ラウンドや1ループに相当する。レジスタ71は機密情報処理部70の出力結果を記録する。セレクタ72は、セレクタ信号(図示せず)に従い情報処理部200からの信号とレジスタ71からの信号のいずれかを選択する。情報処理部230も情報処理部200と同様に機密情報を扱わないサブブロックで出力インタフェースなどに相当する。機密情報生成部240は機密情報を生成するサブブロックであり、一般的な暗号アルゴリズムでの拡大鍵生成などに相当する。機密情報生成部240は、機密情報処理部70の演算処理に対応する機密情報を機密情報処理部70に対して提供する。
【0048】
このように、実施の形態3では、消費電力バランス設計を機密情報生成部240と機密情報処理部70に対してのみ行う。そのため、機密情報処理部70がループ状に展開した回路構成を持つことにより、暗号アルゴリズムを平面状に展開した回路構成に比べ、消費電力バランス設計による回路の規模を必要最小限に抑えることが出来る。
【0049】
実施の形態4.
実施の形態3は、暗号アルゴリズムのループ構造に分岐がない例を示した。実施の形態4では、暗号アルゴリズムのループ構造に分岐がある回路構成における暗号セキュア装置1の構成方法について述べる。
【0050】
図8は、ループ構造に分岐がある暗号アルゴリズムの回路構成例を示している。図において、情報処理部200は機密情報を扱わないサブブロックであり、入力インタフェースなどに相当する。機密情報処理部70は機密情報を扱うサブブロックであり、一般的な暗号アルゴリズムでの1ラウンドや1ループに相当する。セレクタ80は機密情報処理部70からの信号とセレクタ72からの信号のいずれかをセレクタ信号(図示せず)に従い選択する。レジスタ71はセレクタ80の出力結果を記録する。セレクタ72は、情報処理部200からの信号とレジスタ71からの信号のいずれかをセレクタ信号(図示せず)に従い選択する。情報処理部230も情報処理部200と同様に機密情報を扱わないサブブロックで出力インタフェースなどに相当する。機密情報生成部240は機密情報を生成するサブブロックであり、一般的な暗号アルゴリズムでの拡大鍵生成などに相当する。機密情報生成部240は、機密情報処理部70の演算状態に対応する機密情報を機密情報処理部70に対して提供する。
【0051】
このように、実施の形態4では、消費電力バランス設計を機密情報生成部240と機密情報処理部70に対してのみ行い、暗号アルゴリズム上、機密情報処理部70を使用しない分岐中でも、機密情報処理部70を動作させる。そのため、暗号アルゴリズム上、機密情報処理部70を使用しない分岐の情報と消費電力との関連性を低くすることが出来る。
【0052】
実施の形態5.
実施の形態4は、暗号アルゴリズムのループ構造に分岐がある例を示した。実施の形態5では、暗号アルゴリズムのループ構造の分岐に、積極的に機密情報と無関係な情報を反映させる例について述べる。
【0053】
図9は、ループ構造に分岐がある暗号アルゴリズムの回路に、積極的に機密情報とは無関係な情報を反映させる構成例を示している。図において、情報処理部200は機密情報を扱わないサブブロックであり、入力インタフェースなどに相当する。乱数発生器12は消費電力バランス設計を行った乱数を発生させる機器である。セレクタ90は、セレクタ72の信号と乱数発生器12の信号のいずれかをセレクタ信号(図示せず)に従い選択する。機密情報処理部70は、原則として機密情報を扱うサブブロックであり、一般的な暗号アルゴリズムでの1ラウンドや1ループに相当する。ただし、機密情報処理部70が機密情報を処理しないタイミングであっても、機密情報処理部70に分岐する場合がある。この場合には、乱数発生器12によって発生した乱数をセレクタ90が選択し、機密情報処理部70は、乱数を入力信号として処理を行う。すなわち、機密情報処理部70は、乱数発生器12によって発生された乱数をダミーの情報としてにダミーの情報を処理する。
セレクタ80は機密情報処理部70からの信号とセレクタ72からの信号のいずれかをセレクタ信号(図示せず)に従い選択する。レジスタ91はセレクタ80の出力結果を記録する。セレクタ72は、情報処理部200からの信号とレジスタ91からの信号のいずれかをセレクタ信号(図示せず)に従い選択する。情報処理部230も情報処理部200と同様に機密情報を扱わないサブブロックで出力インタフェースなどに相当する。機密情報生成部240は機密情報を生成するサブブロックであり、一般的な暗号アルゴリズムでの拡大鍵生成などに相当する。機密情報生成部240は、機密情報処理部70の演算状態に対応する機密情報を機密情報処理部70に対して提供する。
【0054】
また、消費電力バランス設計が行われた回路の出力を乱数として扱うことを特徴とする暗号セキュア装置1について説明した。
【0055】
このように、実施の形態5では、消費電力バランス設計を機密情報生成部240、機密情報処理部70、乱数発生器12に対してのみ行い、さらに、暗号アルゴリズム上、機密情報処理部70を使用しない分岐中でも、機密情報処理部70を乱数発生器12の信号で動作させる。そのため、暗号アルゴリズム上、機密情報処理部70を使用しない分岐の情報と消費電力との関連性を低くすることが出来る。
【0056】
上記すべての実施の形態では、消費電力バランス設計として、回路内部で処理されているデータと外部に漏れ出る消費電力との関連性を極力小さくする設計について述べた。しかし、消費電力は、機密情報を処理する時に消費する消費エネルギーの一例であり、すべての実施の形態に記載の消費電力バランス設計は、機密情報と消費エネルギーとの関連性を極力小さくする設計として用いることができる。
【0057】
すべての実施の形態では、各構成要素の各動作はお互いに関連しており、各構成要素の動作は、上記に示された動作の関連を考慮しながら、一連の動作として置き換えることができる。そして、このように置き換えることにより、セキュア装置の発明をセキュア方法の発明の実施形態とすることができる。
また、上記各構成要素の動作を、各構成要素の処理と置き換えることにより、セキュア装置の発明をセキュアプログラムの実施の形態とすることができる。
また、セキュアプログラムを、セキュアプログラムを記録したコンピュータ読み取り可能な記録媒体に記憶させることで、セキュアプログラムに記録したコンピュータ読み取り可能な記録媒体の実施の形態とすることができる。
【0058】
従って、セキュアプログラムの実施の形態は、
エネルギーを消費して機密情報を処理する処理と、
ダミーのエネルギーの消費を行うことで上記機密情報の処理で消費する消費エネルギーの量をカモフラージュすることにより、上記機密情報の処理で消費する消費エネルギーの量から上記処理される機密情報の漏洩を抑止する処理とをコンピュータに実行させるセキュアプログラムをコンピュータに実行させるためのセキュアプログラムを記録したコンピュータ読み取り可能な記録媒体、というように、セキュアプログラムに記録したコンピュータ読み取り可能な記録媒体の実施の形態とすることができる。
【0059】
上記プログラムの実施の形態及びプログラムに記録したコンピュータ読み取り可能な記録媒体の実施の形態は、すべてコンピュータで動作可能なプログラムにより構成することができる。
上記プログラムの実施の形態およびプログラムを記録したコンピュータ読み取り可能な記録媒体の実施の形態における各処理はプログラムで実行されるが、このプログラムは、記録装置に記録されていて、記録装置から中央処理装置(CPU)に読み込まれ、中央処理装置によって、各フローチャートが実行されることになる。
また、各実施の形態のソフトウェアやプログラムは、ROM(READ ONLY MEMORY)に記憶されたファームウェアで実現されていても構わない。あるいは、ソフトウェアとファームウェアとハードウェアとの組み合わせで前述したプログラムの各機能を実現しても構わない。
【0060】
【発明の効果】
本発明によれば、機密情報処理部は、ダミーのエネルギーの消費を行うことでロジック部が消費する消費エネルギーの量をカモフラージュすることにより上記ロジック部が消費する消費エネルギー量から上記ロジック部によって処理される機密情報の漏洩を抑止する抑止部を備えたので、消費エネルギー量と機密情報の関連性を小さくすることが出来る。
【図面の簡単な説明】
【図1】実施の形態1の暗号セキュア装置1の回路構成図である。
【図2】DES暗号の基本構造を模式的に現した図である。
【図3】消費電力バランス設計を行う例を示す図である。
【図4】基本ブロック部4を提示する図である。
【図5】図4の回路に対応する消費電力バランス設計が行われ、機密情報処理部に追加される追加回路を示す図である。
【図6】実施の形態2における暗号処理部11のブロック図である。
【図7】暗号アルゴリズムをループ状に展開した回路構成例を示す図である。
【図8】ループ構造に分岐がある暗号アルゴリズムの回路構成例を示す図である。
【図9】ループ構造に分岐がある暗号アルゴリズムの回路に、積極的に機密情報とは無関係な情報を反映させる構成例を示す図である。
【図10】従来例を示す図である。
【図11】従来例を示す図である。
【図12】従来例を示す図である。
【符号の説明】
1 暗号セキュア装置、4 基本ブロック部、5 バランス基本ブロック部、10 マイクロプロセッサ、11 暗号処理部、12 乱数発生器、13 通信部、41,42 ロジック部、43 セレクタ、44 FF、46 入力部、48 出力部、50 インバータ、51 バランスロジック部、52 バランスロジック部、55,56 抑止部、200 情報処理部、210,211,212,213,214,611,612,613 機密情報処理部、240 機密情報生成部。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a highly secure cryptographic secure system in an information processing apparatus, and more particularly to a secure circuit configuration method.
[0002]
[Prior art]
Conventional Example 1
For example, FIG. 10 shows a processing routine of selective transposition processing shown in a conventional “information processing apparatus, IC card” disclosed in Japanese Patent Laid-Open No. 2000-165375.
[0003]
In the selective transposition process (P101) of Conventional Example 1, first, the execution flag is cleared (P102). This execution flag is “1” if the processing is completed for each bit in the processing unit of the repeated processing, and “0” if the processing is not performed. If all the bits of the execution flag are “1” (P103), the process is terminated (P112). Otherwise, the process is continued and a random number is taken out (P104). The random number is generated by a random number generator or the like.
[0004]
An execution index for designating a process to be executed is determined by a random number using a random number (P105). For example, the lower 3 bits of the random number are extracted and the remainder of 8 for the value is used as the execution index. If the execution index is generated from random numbers in this way, the processing order can be made random.
[0005]
Next, the corresponding bit of the execution flag is set to “1” indicating that the processing has been completed (P106).
[0006]
By doing as described above, the processing unit of the iterative processing is randomly selected by a random number, so the order of the processing units is not constant. Furthermore, since the processing order is selected at random, the same processing may be processed one or more times, and the processing time is indefinite.
[0007]
Next, normal input data and bit-reversed input data to be processed are extracted according to the selected execution index (P107). In order to avoid normal input data and bit-reversed input data being processed in the same order, random numbers are extracted (P108) and address displacements are calculated (P109). A call address is obtained from the address displacement (P110), and a routine is called (P111).
[0008]
As described above, since the address displacement is determined by a random number, the processing order of the normal input data processing routine and the inverted input data processing routine is not constant. Furthermore, since the processing order is selected at random, the same processing may be processed one or more times, and the processing time is indefinite.
[0009]
In addition, since normal input data and bit-reversed input data stored in pairs at P107 are extracted, the relevance between data and power consumption during data transfer can be reduced (see, for example, Patent Document 1).
[0010]
Conventional Example 2
11 is a NAND gate CMOS diagram in a conventional “BALANCED CRYPTOGRAPICIC COMPUTATIONAL METHOD AND APPARATUS FOR LEAK MINIMIZATION IN SMARTCARDS AND OTHER CRYPTOSYSTEMS” disclosed in WO99 / 67766, for example. In the figure, A and B are input terminals, each representing 2 bits for TRUE and FALSE. That is, A is bits of A1 and A2, and (A1, A2) = (1, 0) represents TRUE, and (A1, A2) = (0, 1) represents FALSE. Both hamming weights are constant. VPP indicates a power supply voltage, and GND indicates a ground voltage. O is an output terminal, and the NAND output is represented by 2 bits of O1 and O2. O3 to O8 are not used when used as NAND.
[0011]
The operation of Conventional Example 2 will be described. Before input data is input to the input terminals A and B of the NAND, the input terminals A and B are in a neutral state. That is, (A1, A2, B1, B2) = (0, 0, 0, 0), and the subunits P210, P220, P230, and P240 in FIG. 11 are all in the same state. FIG. 12 shows the state change of each subunit when a logic input is given to the NAND gate under this state. For example, when an input of (TRUE, TRUE) is given, all the transistors in the subunit P210, the transistors P222 and P224 in the subunit P220, and the transistors P231 and P233 in the subunit P230 change state. According to FIG. 12, no matter what input is given, the number of transistors that cause a state change in the NAND gate does not change. Therefore, the power consumption in the NAND gate is kept constant regardless of the input state (see, for example, Patent Document 1).
[0012]
[Patent Document 1]
JP 2000-165375 A
[Patent Document 2]
International Publication No. WO99 / 67766
[0013]
[Problems to be solved by the invention]
The “information processing apparatus, IC card” of Conventional Example 1 is characterized in that the processing order can be made variable by random numbers and it is difficult to specify the internal processing state, but the processing may be executed once or more. There was a problem that time would be long.
[0014]
In addition, there is a feature that makes it difficult to specify the processing state of normal input data and bit-reversed input data by changing the processing order of normal input data and bit-reversed input data stored in pairs as a random number. There is a problem in that either normal input data or bit-inverted input data is processed at a specific time, and power consumption information of the processed data leaks to the outside and confidential information is decoded.
[0015]
On the other hand, in the “BALANCED CRYPTOGRAPHIC COMPUTATIONAL METHOD AND APPARATUS FOR LEAK MINIMIZATION IN SMART CARDS AND OTHER CRYPTOSY SYSTEMS” in the conventional example 2, the power is configured so that the power is dependent on the input so that the power of the NAND gate is constant and the Hamming weight is constant. On the other hand, there is a problem that the circuit configuration becomes redundant and power consumption increases.
[0016]
The present invention reduces the relationship between the amount of energy consumption leaked to the outside and the confidential information, makes it difficult to decipher the confidential information even if the power consumption information leaks to the outside, and the redundancy of the apparatus is low It is an object to construct a secure device configuration and a secure method.
[0017]
[Means for Solving the Problems]
The secure device of the present invention comprises:
A secure device including a confidential information processing unit that processes confidential information,
The confidential information processing unit is a logic unit that consumes energy and processes confidential information;
Suppressing leakage of confidential information processed by the logic unit from the amount of energy consumed by the logic unit by camouflaging the amount of energy consumed by the logic unit by consuming dummy energy A part.
[0018]
DETAILED DESCRIPTION OF THE INVENTION
Embodiment 1 FIG.
FIG. 1 is a circuit configuration diagram of the cryptographic secure device 1 according to the first embodiment. In FIG. 1, a cryptographic secure device 1 includes a microprocessor 10, an encryption processing unit (encryption coprocessor) 11 that performs encryption (decryption) processing at high speed, a random number generator 12 that generates random numbers, and a communication unit 13 that communicates with the outside. A ROM 14 for storing a processing program of the microprocessor 10, and a RAM 15 for providing a work area of the microprocessor 10.
The microprocessor 10 is a processor that performs overall control of the encryption secure device 1 and performs encryption (decryption) processing using an encryption processing unit 11 and a random number generator 12 described later.
The communication unit 13 serves as an interface with the outside, and is not limited to communication, and may be another interface such as IEEE1394.
The cryptographic secure device 1 is an example of a secure device that prevents confidential information from leaking outside.
[0019]
The present invention is characterized in that the power consumption balance design is made such that the power consumption is constant for the cryptographic processing unit 11 and the random number generator 12.
[0020]
Before moving on to the detailed description of the present invention, a general cryptographic algorithm will be briefly described. FIG. 2 schematically shows the basic structure of DES (Data Encryption Standard) encryption. The DES encryption encrypts and decrypts 64-bit data with a 56-bit key. FIG. 2 shows an encryption procedure. First, 64-bit input data is initially transposed. The initial transposition is to replace 64-bit input data in bit units according to a predetermined initial transposition table.
[0021]
Thereafter, an operation called round is repeated 16 times. In each round, the following processes (1) to (4) are performed.
(1) Divide 64-bit input data into upper 32 bits and lower 32 bits.
(2) The lower 32 bits and the 48-bit key Ki (1 ≦ i ≦ 16) are input, and processing called an f function is performed to stir the data.
(3) Exclusive OR of the upper 32 bits and the output 32 bits after the f function processing is taken.
(4) The lower 32 bits are output as the upper 32 bits, and the output 32 bits obtained by taking the exclusive OR are output as the lower 32 bits.
[0022]
The 48-bit key Ki (K1 to K16) shown in FIG. 2 is generated by expanding the 56-bit key.
[0023]
Finally, the initial transposition called the final transposition is reversed and the encryption is completed. A detailed description of DES can be found in Charlie Cuffman's “Network Security” (Prentice Hall).
[0024]
Next, an outline of the RSA encryption will be described. The decryption of the RSA cipher is performed according to the following equation.
[0025]
[Expression 1]
Figure 0004588969
[0026]
Here, c is a ciphertext, m is a message, and d and n are decryption keys obtained according to a certain rule. Since d and n that are actually used are 1024 bits or more, (Formula 1) is not calculated as it is, and is often calculated according to (Formula 2) by expanding the formula.
[0027]
[Expression 2]
Figure 0004588969
[0028]
Note that the part included in / * * / described in (Expression 2) is not a part of the expression but a sentence explaining the expression.
[0029]
Here, | d | is the bit length of d, and d [i] is the value of the i-th bit of d. A detailed description of the RSA encryption is also described in the aforementioned “network security”.
[0030]
A general encryption algorithm is assembled as described above. In any of the examples, arithmetic processing having a repeating structure of small units (round, loop) is performed. In addition, since information that should be classified is input to this small unit, there is a possibility that the confidential information may be estimated externally if there is a relationship between the confidential information and the power consumption. is there. W. Ranke & W. Effing, “Smart Card Handbook” (John Wiley & Sons) suggests such a risk.
[0031]
In the present embodiment, in order to counter the dangers as described above, the relevance between the power consumption information leaked to the outside and the internal processing data (confidential information) is reduced.
[0032]
In FIG. 1, blocks that handle confidential information are an encryption processing unit 11 and a random number generator 12, and this embodiment is characterized in that a power consumption balance design is performed on the blocks that handle confidential information. The power consumption balance design refers to a design that minimizes the relationship between the data processed inside the circuit and the power consumption leaking outside. The details will be described below.
[0033]
FIG. 3 shows an example in which the power consumption balance design is performed only for the sub-block that handles confidential information when the cryptographic processing unit 11 is composed of a plurality of sub-blocks. In FIG. 3, an information processing unit 200 is a sub-block that does not handle confidential information, and corresponds to an input interface or the like. The confidential information processing unit 210 to the confidential information processing unit 214 are sub-blocks that handle confidential information, and correspond to rounds and loops in a general encryption algorithm. Similarly to the information processing unit 200, the information processing unit 230 is a sub-block that does not handle confidential information and corresponds to an output interface or the like. The confidential information generation unit 240 is a sub-block that generates confidential information, and corresponds to expanded key generation using a general encryption algorithm.
[0034]
In this embodiment, the power consumption balance design is performed only for the sub-block that handles the confidential information. By doing in this way, the increase in power consumption can be suppressed compared with performing power consumption balance design with respect to all the subblocks.
[0035]
Next, a power consumption balance design to be performed on at least one of the sub-blocks that handle confidential information (the confidential information processing units (210, 211, 212, 213, 214) and the confidential information generation unit 240) will be described. In order to simplify the story, it is assumed that a sub-block for handling confidential information is composed of an input unit 46, a plurality of basic block units 4 and an output unit 48 as shown in FIG.
The basic block unit 4 includes a different logic unit 41, a logic unit 42, a selector 43, and a flip-flop (FF) 44. Although the basic block unit 4 of FIG. 4 has been presented as an example, a general circuit can be realized by a combination of these elements.
[0036]
A method of performing power consumption balance design for the sub-block confidential information processing unit that handles confidential information shown in FIG. 4 will be described below. In the power consumption balance design, one node of a circuit in which the inversion state of the state is determined is designed at the same timing as the state in which the state of one node on the circuit is determined at a certain time. Specifically, if the gate output (node) at a certain time is 0, a gate whose gate output (node) is 1 is added at the same time in the power consumption balance design. By doing in this way, since the data that is internally processed is always generated as a pair of 1 and 0, it is possible to suppress the relationship between the power consumption that leaks to the outside and the data that is internally processed.
[0037]
FIG. 5 shows a power consumption balance design for the basic block unit 4 of FIG. 4 and additional circuits to be added are shown as suppression units (55, 56). The additional circuit is designed as shown in the following (1) to (8).
(1) An inverter 50 is provided at the input unit 46. However, the inverter 50 is not provided for the input data of all the balance basic block units 5, but only for the first balance basic block unit 5 that performs power consumption balance design.
(2) An additional circuit is designed by replacing the logic unit 41 and the logic unit 42 with respect to the logic unit 41 and the logic unit 42 shown in FIG.
AND circuit → OR circuit
OR circuit → AND circuit
NAND circuit → NOR circuit
NOR circuit → NAND circuit
The NOT circuit remains the NOT circuit.
That is, the logic unit 41 and the logic unit 42 are replaced such that the AND circuit used in FIG. 4 is replaced with an OR circuit.
(3) The selector 43 and the flip-flop 44 are the same circuit.
(4) The select signal of the selector 43 is the same.
(5) The clocks of the flip-flops 44 are the same.
(6) When a plurality of basic block units 4 are continuous, the operations (2) to (4) are performed on each of them, and the power consumption balance design is performed on all the balanced basic block units 5. In this way, the additional circuit on which the power consumption balance design is performed is added to the balance logic unit 51 and the balance logic unit 52 as the suppression unit 55 and the suppression unit 56 with respect to the logic unit 41 and the logic unit 42.
(7) The output of the additional circuit for which the power consumption balance design has been performed is input to the additional circuit for which the power consumption balance design has been performed corresponding to the confidential information processing unit that performs the next processing illustrated in FIG.
(8) The output (final output) of the additional circuit for which the power consumption balance design corresponding to the last confidential information processing unit (the confidential information processing unit 214 in FIG. 3) performing the power consumption balance design is used internally. It can be used as a random number or the like.
[0038]
Thus, in the power consumption balance design of the invention described in the first embodiment, when a state of one node on the circuit is determined at a certain time, a circuit in which one node in the inverted state is determined at the same timing is designed. The deterrence unit added by such power consumption balance design camouflages the amount of energy consumed by the logic unit by consuming dummy energy, so that the logic unit uses the amount of energy consumed by the logic unit. The leakage of confidential information processed by the section can be suppressed. In other words, it is possible to construct the cryptographic secure device 1 that balances the data processed internally by the power consumption balance design and reduces the relationship between the power consumption and the internal processing data.
[0039]
In addition, since the power consumption balance design is performed only for the confidential information processing unit that handles confidential information, an increase in power consumption can be minimized.
[0040]
In addition, since the replacement of the logic part in the power consumption balance design is performed for one gate (circuit) and one gate (circuit), the redundancy of the circuit can be suppressed.
[0041]
Embodiment 2. FIG.
In the first embodiment, when the cryptographic processing unit 11 is configured by a plurality of sub-blocks, an example in which the power consumption balance design is performed only for the sub-blocks that handle confidential information has been described.
In the second embodiment, when the confidential information processing units that handle confidential information are continuous, the power consumption balance design is performed only for the first and last confidential information processing units.
[0042]
In general, when the confidential information is estimated from the power consumption, it is assumed that the power consumption is determined by the function of the confidential information to be estimated as known information, and the certainty of the estimated confidential information is obtained by statistical processing of the power consumption. The known information includes plaintext and ciphertext that is the final result. When the confidential information of the confidential information processing unit that handles confidential information is determined, the output of the confidential information processing unit can also be handled as known information.
[0043]
FIG. 6 shows a block diagram of the cryptographic processing unit 11 in the second embodiment. Among the confidential information processing units that handle confidential information, only the first and last confidential information processing units 210 and the confidential information processing unit 214 that are continuously performed are designed to balance power consumption. Thus, by performing the power consumption balance design, it becomes difficult to estimate the confidential information handled by the confidential information processing unit, and the confidential information handled by the continuous confidential information processing unit cannot be estimated. Note that the confidential information processing unit 611 to the confidential information processing unit 613 are sub-blocks that do not perform power consumption balance design.
[0044]
As described above, in the second embodiment, the power consumption balance design is performed only on the first and last sub-blocks of the sub-blocks that are continuously performed among the sub-blocks that handle the confidential information. It becomes difficult.
[0045]
In addition, among the sub-blocks that handle confidential information, among the consecutive sub-blocks, the power consumption balance design is not performed for sub-blocks other than the first and last sub-blocks, thus suppressing an increase in power consumption. At the same time, the increase in circuit can be suppressed.
[0046]
Embodiment 3 FIG.
In the first and second embodiments, the configuration method of the cryptographic secure device 1 in the circuit configuration in which the cryptographic algorithm is developed in a planar shape is shown.
In the third embodiment, a configuration method of the cryptographic secure device 1 in a circuit configuration in which the cryptographic algorithm is developed in a loop will be described.
[0047]
FIG. 7 shows a circuit configuration diagram in which the encryption algorithm is developed in a loop shape. In the figure, an information processing unit 200 is a sub-block that does not handle confidential information, and corresponds to an input interface or the like. The confidential information processing unit 70 is a sub-block that handles confidential information, and corresponds to one round or one loop in a general encryption algorithm. The register 71 records the output result of the confidential information processing unit 70. The selector 72 selects either a signal from the information processing unit 200 or a signal from the register 71 in accordance with a selector signal (not shown). Similarly to the information processing unit 200, the information processing unit 230 is a sub-block that does not handle confidential information and corresponds to an output interface or the like. The confidential information generation unit 240 is a sub-block that generates confidential information, and corresponds to expanded key generation using a general encryption algorithm. The confidential information generation unit 240 provides confidential information corresponding to the arithmetic processing of the confidential information processing unit 70 to the confidential information processing unit 70.
[0048]
As described above, in the third embodiment, the power consumption balance design is performed only for the confidential information generation unit 240 and the confidential information processing unit 70. Therefore, by having the circuit configuration in which the confidential information processing unit 70 is developed in a loop shape, the scale of the circuit based on the power consumption balance design can be minimized as compared with the circuit configuration in which the encryption algorithm is expanded in a planar shape. .
[0049]
Embodiment 4 FIG.
Embodiment 3 shows an example in which there is no branch in the loop structure of the encryption algorithm. In the fourth embodiment, a configuration method of the cryptographic secure device 1 in a circuit configuration having a branch in the loop structure of the cryptographic algorithm will be described.
[0050]
FIG. 8 shows a circuit configuration example of an encryption algorithm having a branch in the loop structure. In the figure, an information processing unit 200 is a sub-block that does not handle confidential information, and corresponds to an input interface or the like. The confidential information processing unit 70 is a sub-block that handles confidential information, and corresponds to one round or one loop in a general encryption algorithm. The selector 80 selects either a signal from the confidential information processing unit 70 or a signal from the selector 72 according to a selector signal (not shown). The register 71 records the output result of the selector 80. The selector 72 selects either a signal from the information processing unit 200 or a signal from the register 71 according to a selector signal (not shown). Similarly to the information processing unit 200, the information processing unit 230 is a sub-block that does not handle confidential information and corresponds to an output interface or the like. The confidential information generation unit 240 is a sub-block that generates confidential information, and corresponds to expanded key generation using a general encryption algorithm. The confidential information generation unit 240 provides confidential information corresponding to the calculation state of the confidential information processing unit 70 to the confidential information processing unit 70.
[0051]
As described above, in the fourth embodiment, the power consumption balance design is performed only for the confidential information generation unit 240 and the confidential information processing unit 70, and the confidential information processing is performed even in a branch where the confidential information processing unit 70 is not used due to the encryption algorithm. The unit 70 is operated. For this reason, the relevance between the branch information not using the confidential information processing unit 70 and the power consumption can be reduced due to the encryption algorithm.
[0052]
Embodiment 5 FIG.
The fourth embodiment has shown an example in which there is a branch in the loop structure of the encryption algorithm. In the fifth embodiment, an example in which information unrelated to confidential information is positively reflected in the branch of the loop structure of the encryption algorithm will be described.
[0053]
FIG. 9 shows a configuration example in which information unrelated to confidential information is positively reflected in a cryptographic algorithm circuit having a branch in the loop structure. In the figure, an information processing unit 200 is a sub-block that does not handle confidential information, and corresponds to an input interface or the like. The random number generator 12 is a device that generates random numbers for which power consumption balance design is performed. The selector 90 selects either the signal of the selector 72 or the signal of the random number generator 12 according to a selector signal (not shown). The confidential information processing unit 70 is a sub-block that handles confidential information in principle, and corresponds to one round or one loop in a general encryption algorithm. However, there is a case where the confidential information processing unit 70 branches to the confidential information processing unit 70 even when the confidential information processing unit 70 does not process the confidential information. In this case, the selector 90 selects a random number generated by the random number generator 12, and the confidential information processing unit 70 performs processing using the random number as an input signal. That is, the confidential information processing unit 70 processes dummy information using the random number generated by the random number generator 12 as dummy information.
The selector 80 selects either a signal from the confidential information processing unit 70 or a signal from the selector 72 according to a selector signal (not shown). The register 91 records the output result of the selector 80. The selector 72 selects either a signal from the information processing unit 200 or a signal from the register 91 according to a selector signal (not shown). Similarly to the information processing unit 200, the information processing unit 230 is a sub-block that does not handle confidential information and corresponds to an output interface or the like. The confidential information generation unit 240 is a sub-block that generates confidential information, and corresponds to expanded key generation using a general encryption algorithm. The confidential information generation unit 240 provides confidential information corresponding to the calculation state of the confidential information processing unit 70 to the confidential information processing unit 70.
[0054]
Further, the cryptographic secure device 1 characterized in that the output of the circuit for which the power consumption balance design is performed is treated as a random number has been described.
[0055]
As described above, in the fifth embodiment, the power consumption balance design is performed only for the confidential information generation unit 240, the confidential information processing unit 70, and the random number generator 12, and the confidential information processing unit 70 is used in terms of the encryption algorithm. The secret information processing unit 70 is operated by the signal of the random number generator 12 even during the branching that is not performed. For this reason, the relevance between the branch information not using the confidential information processing unit 70 and the power consumption can be reduced due to the encryption algorithm.
[0056]
In all the embodiments described above, as the power consumption balance design, the design that minimizes the relevance between the data processed inside the circuit and the power consumption leaking to the outside has been described. However, power consumption is an example of energy consumption consumed when processing confidential information. The power consumption balance design described in all the embodiments is designed to minimize the relevance between confidential information and energy consumption. Can be used.
[0057]
In all the embodiments, each operation of each component is related to each other, and the operation of each component can be replaced as a series of operations in consideration of the relationship of the operations described above. And by replacing in this way, the invention of the secure device can be an embodiment of the invention of the secure method.
Further, by replacing the operation of each component described above with the process of each component, the invention of the secure device can be an embodiment of the secure program.
Further, by storing the secure program in a computer-readable recording medium in which the secure program is recorded, an embodiment of a computer-readable recording medium recorded in the secure program can be obtained.
[0058]
Therefore, the embodiment of the secure program is
Processing that consumes energy and processes sensitive information;
Suppressing leakage of confidential information processed from the amount of energy consumed by processing confidential information by camouflaging the amount of energy consumed by processing confidential information by consuming dummy energy An embodiment of a computer-readable recording medium recorded in a secure program, such as a computer-readable recording medium recording a secure program for causing a computer to execute a secure program that causes the computer to execute be able to.
[0059]
The embodiment of the above-described program and the embodiment of the computer-readable recording medium recorded in the program can all be configured by a computer-operable program.
Each process in the embodiment of the above-described program and the embodiment of the computer-readable recording medium on which the program is recorded is executed by the program, and this program is recorded in the recording apparatus, and the central processing unit is recorded from the recording apparatus. (CPU), each flowchart is executed by the central processing unit.
In addition, the software and program of each embodiment may be realized by firmware stored in a ROM (READ ONLY MEMORY). Alternatively, each function of the program described above may be realized by a combination of software, firmware, and hardware.
[0060]
【The invention's effect】
According to the present invention, the confidential information processing unit performs processing by the logic unit from the amount of energy consumed by the logic unit by camouflaging the amount of energy consumed by the logic unit by consuming dummy energy. Since the deterrence part which deters the leakage of the confidential information to be performed is provided, the relation between the energy consumption and the confidential information can be reduced.
[Brief description of the drawings]
FIG. 1 is a circuit configuration diagram of a cryptographic secure device 1 according to a first embodiment.
FIG. 2 is a diagram schematically showing the basic structure of a DES cipher.
FIG. 3 is a diagram illustrating an example in which power consumption balance design is performed.
FIG. 4 is a diagram presenting a basic block unit 4;
5 is a diagram showing an additional circuit that is added to the confidential information processing unit after the power consumption balance design corresponding to the circuit of FIG. 4 is performed.
6 is a block diagram of an encryption processing unit 11 according to Embodiment 2. FIG.
FIG. 7 is a diagram illustrating a circuit configuration example in which an encryption algorithm is developed in a loop shape;
FIG. 8 is a diagram illustrating a circuit configuration example of an encryption algorithm having a branch in a loop structure.
FIG. 9 is a diagram illustrating a configuration example in which information irrelevant to confidential information is positively reflected in a circuit of an encryption algorithm having a branch in a loop structure.
FIG. 10 is a diagram showing a conventional example.
FIG. 11 is a diagram showing a conventional example.
FIG. 12 is a diagram showing a conventional example.
[Explanation of symbols]
1 cryptographic secure device, 4 basic block unit, 5 balance basic block unit, 10 microprocessor, 11 cryptographic processing unit, 12 random number generator, 13 communication unit, 41, 42 logic unit, 43 selector, 44 FF, 46 input unit, 48 output unit, 50 inverter, 51 balance logic unit, 52 balance logic unit, 55, 56 deterrence unit, 200 information processing unit, 210, 211, 212, 213, 214, 611, 612, 613 confidential information processing unit, 240 confidential Information generator.

Claims (2)

機密情報を処理する機密情報処理部を複数備え、上記複数の機密情報処理部の各機密情報処理部が、直列に配置されるセキュア装置であって、
上記機密情報処理部は、
エネルギーを消費して機密情報を処理して任意のタイミングで所定の状態が定まった信号を出力する複数のノードからなる回路を有するロジック部と、
上記ロジック部が有する回路の複数のノードにそれぞれ対応した複数のノードからなる反転回路であって、上記ロジック部が有する回路の各ノードから出力される信号と同じタイミングで、上記ロジック部が有する回路のノードが出力する信号の状態を反転した反転状態の信号を出力する複数のノードからなる反転回路を有する抑止部と
を備え、
上記各機密情報処理部が備えた抑止部は、前段の機密情報処理部によって処理した処理結果を、次段の機密情報処理部のロジック部と抑止部とのうち抑止部の入力情報とし、
上記各機密情報処理部が備えたロジック部は、前段の機密情報処理部によって機密情報を処理した処理結果を、次段の機密情報処理部のロジック部と抑止部とのうちロジック部の入力情報とする
ことを特徴とするセキュア装置。
A plurality of secret information processing unit for processing confidential information, the confidential information processing unit of the plurality of secret information processing portion is a secure device that will be placed in series,
Each of the above confidential information processing units
A logic unit having a circuit composed of a plurality of nodes that consume energy and process confidential information and output a signal in which a predetermined state is determined at an arbitrary timing;
An inverting circuit composed of a plurality of nodes respectively corresponding to a plurality of nodes of the circuit included in the logic unit, and the circuit included in the logic unit at the same timing as a signal output from each node of the circuit included in the logic unit A suppression unit having an inverting circuit composed of a plurality of nodes that output a signal in an inverted state obtained by inverting the state of a signal output from the node of
The deterrence unit included in each confidential information processing unit uses the processing result processed by the previous confidential information processing unit as input information of the deterrence unit among the logic unit and deterrence unit of the next confidential information processing unit,
The logic units included in each of the confidential information processing units described above are processing results obtained by processing the confidential information by the previous confidential information processing unit, and the input information of the logic unit among the logic unit and the suppression unit of the subsequent confidential information processing unit. secure device according to claim <br/> be.
上記セキュア装置は、さらに、
密鍵情報を生成する機密情報生成部を有し、
上記機密情報生成部は、エネルギーを消費して上記機密鍵情報を生成する処理をして任意のタイミングで所定の状態が定まった信号を出力する複数のノードからなる回路を有するロジック部と、上記機密情報生成部のロジック部が有する回路の複数のノードにそれぞれ対応した複数のノードからなる反転回路であって、上記機密情報生成部のロジック部が有する回路の各ノードから出力される信号と同じタイミングで、上記機密情報生成部のロジック部が有する回路のノードが出力する信号の状態を反転した反転状態の信号を出力する複数のノードからなる反転回路を有する抑止部を有し、
上記複数の機密情報処理部は、上記機密情報生成部によって生成された機密鍵情報を使用して機密情報を処理し、
上記セキュア装置は、上記機密情報生成部の抑止部と上記複数の機密情報処理部各々有する各抑止部によって消費される消費エネルギー量を使用して上記機密鍵情報及び上記機密情報が外部に漏洩することを防止することを特徴とする請求項1に記載されたセキュア装置。
The secure device further includes:
Has a secret information generating unit that generates aircraft Mitsukagi information,
The secret information generating unit, a logic unit having a circuit comprising a plurality of nodes consumes energy outputs a signal that definite predetermined state at any time by a process of generating the secret key information, An inversion circuit composed of a plurality of nodes respectively corresponding to a plurality of nodes of a circuit included in the logic unit of the confidential information generation unit, and a signal output from each node of the circuit included in the logic unit of the confidential information generation unit; at the same timing, and a preventing part having an inverting circuit comprising a plurality of nodes for outputting a signal inverted state by inverting the state of the signal node of the circuit logic of the secret information generating unit has outputs,
The plurality of confidential information processing units process the confidential information using the confidential key information generated by the confidential information generating unit,
The secure device, the secret key information and the confidential information using the energy consumption of inhibiting section and the plurality of secret information processing portion of the secret information generation unit is consumed by the respective inhibiting unit having each outside The secure device according to claim 1, wherein leakage is prevented.
JP2002314892A 2002-10-29 2002-10-29 Secure device Expired - Fee Related JP4588969B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002314892A JP4588969B2 (en) 2002-10-29 2002-10-29 Secure device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002314892A JP4588969B2 (en) 2002-10-29 2002-10-29 Secure device

Publications (2)

Publication Number Publication Date
JP2004153460A JP2004153460A (en) 2004-05-27
JP4588969B2 true JP4588969B2 (en) 2010-12-01

Family

ID=32459084

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002314892A Expired - Fee Related JP4588969B2 (en) 2002-10-29 2002-10-29 Secure device

Country Status (1)

Country Link
JP (1) JP4588969B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006025366A (en) * 2004-07-09 2006-01-26 Sony Corp Encryption apparatus and semiconductor integrated circuit
JP2006054568A (en) * 2004-08-10 2006-02-23 Sony Corp Encryption apparatus, decryption apparatus and method, and computer program
JP6048965B2 (en) * 2013-04-22 2016-12-21 三菱電機株式会社 Tamper resistant memory system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000066585A (en) * 1998-08-20 2000-03-03 Toshiba Corp Encryption and decryption apparatus, encryption and decryption method and their program memory medium
JP2000259784A (en) * 1999-03-09 2000-09-22 Hitachi Ltd Ic card and semiconductor integrated circuit device
JP2002311826A (en) * 2001-04-16 2002-10-25 Hitachi Ltd Encoding and decoding device, method for encoding and decoding, data enciphering method and ic card

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000066585A (en) * 1998-08-20 2000-03-03 Toshiba Corp Encryption and decryption apparatus, encryption and decryption method and their program memory medium
JP2000259784A (en) * 1999-03-09 2000-09-22 Hitachi Ltd Ic card and semiconductor integrated circuit device
JP2002311826A (en) * 2001-04-16 2002-10-25 Hitachi Ltd Encoding and decoding device, method for encoding and decoding, data enciphering method and ic card

Also Published As

Publication number Publication date
JP2004153460A (en) 2004-05-27

Similar Documents

Publication Publication Date Title
US6940975B1 (en) Encryption/decryption apparatus, encryption/decryption method, and program storage medium therefor
US8265273B2 (en) Encryption device using mask value to convert plain text into encrypted text
Tsunoo et al. Cryptanalysis of DES implemented on computers with cache
JP6244429B2 (en) Stream cipher encryption apparatus, stream cipher decryption apparatus, stream cipher encryption method, stream cipher decryption method, and program
Trichina Combinational logic design for AES subbyte transformation on masked data
US7659837B2 (en) Operation processing apparatus, operation processing control method, and computer program
KR20180002069A (en) A protection method and device against a side-channel analysis
TWI447683B (en) Information processing device
JP4960044B2 (en) Cryptographic processing circuit and IC card
KR20060086743A (en) Apparatus and method for performing logical operation being secure against differential power analysis
Yuksel Universal hashing for ultra-low-power cryptographic hardware applications
JP2005215688A (en) Hardware encryption/decryption apparatus using s-box operation, and method for the same
Liu et al. A true random-based differential power analysis countermeasure circuit for an AES engine
JP4588969B2 (en) Secure device
JP2004109420A (en) Method and apparatus for generating random number
JP2004054128A (en) Encrypting system
Singh et al. Compact and Secure S-Box Implementations of AES—A Review
JP2004078053A (en) Ciphering device
EP1629626B1 (en) Method and apparatus for a low memory hardware implementation of the key expansion function
JP2006025366A (en) Encryption apparatus and semiconductor integrated circuit
JP2010245753A (en) Encryption operation circuit device
JP6584732B2 (en) Code generation apparatus, code generation method, and code generation program
JP4990843B2 (en) Cryptographic operation apparatus, method thereof, and program
JP2010232709A (en) Encryption arithmetic circuit device
Alam et al. First-order DPA Vulnerability of Rijndael: Security and Area-delay Optimization Trade-off.

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20040519

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20041025

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051011

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090626

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100302

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100519

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100609

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4588969

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

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees