JP2002247025A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JP2002247025A
JP2002247025A JP2001046250A JP2001046250A JP2002247025A JP 2002247025 A JP2002247025 A JP 2002247025A JP 2001046250 A JP2001046250 A JP 2001046250A JP 2001046250 A JP2001046250 A JP 2001046250A JP 2002247025 A JP2002247025 A JP 2002247025A
Authority
JP
Japan
Prior art keywords
data
disturbance
processed
transformed
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.)
Pending
Application number
JP2001046250A
Other languages
English (en)
Inventor
Takashi Endo
隆 遠藤
Masahiro Kaminaga
正博 神永
Takashi Watanabe
高志 渡邊
Masaru Oki
優 大木
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2001046250A priority Critical patent/JP2002247025A/ja
Priority to EP01120625A priority patent/EP1244077B1/en
Priority to US09/940,982 priority patent/US20020154767A1/en
Priority to DE60137193T priority patent/DE60137193D1/de
Publication of JP2002247025A publication Critical patent/JP2002247025A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/0806Details of the card
    • G07F7/0813Specific details related to card security
    • G07F7/082Features insuring the integrity of the data on or in the card
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]

Abstract

(57)【要約】 【課題】 本願発明は、高いセキュリティを持つカ−ド
部材などの耐タンパ−情報処理装置を提供するものであ
る。技術的な課題は、カ−ド部材、例えばICカ−ド用
チップでのデ−タ処理と消費電流との関連性を減らすこ
とである。 【解決手段】 本願発明の着眼点は、ICカード用チッ
プで消費される電流値と、処理されているデータの関連
性を減らすための方法として、処理するデータを撹乱用
データで変形し、データの処理を変形したデータで処理
し、処理後に撹乱用データを用いて逆変換し、正しい処
理結果を求めるものである。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、機密性の高いIC
カードなどの耐タンパ装置に関するものである。
【0002】
【従来の技術】ICカ−ドは、勝手に書き換えることが
許されないような個人情報の保持や、秘密情報である暗
号鍵を用いたデ−タの暗号化や、或いは暗号文の復号化
を行う装置である。ICカ−ド自体は電源を持っておら
ず、ICカ−ド用のリ−ダライタに差し込まれると、電
源の供給を受け、動作可能となる。ICカードは動作可
能になると、リ−ダライタから送信されるコマンドを受
信し、そのコマンドに従って、デ−タの転送等の処理を
行う。
【0003】ICカ−ドの基本概念は、図1に示すよう
に、カ−ド101の上に、ICカ−ド用チップ102を
搭載したものである。図に示すように、一般にICカ−
ドは、所定位置に、供給電圧端子Vcc、グランド端子
GND、リセット端子RST、入出力端子I/O、クロ
ック端子CLK及び、を有する。この端子の位置は、I
SO7816の規格に定められている。これらの諸端子
を通して、リ−ダ−ライタから電源の供給やリ−ダライ
タとのデ−タの通信を行う。こうしたICカ−ドを用い
た通信に関しては、例えばW.Rankl And Eff
ing : SMARTCARD HANDBOOK、 J
ohn Wiley & Sonss、 1997、PP.4
1などに見られる。
【0004】ICカ−ドに搭載される半導体チップの構
成は、基本的には通常のマイクロコンピュ−タと同じ構
成である。図2はICカ−ドに搭載される半導体チップ
の基本的構成を示すブロック図である。図2に見られる
ように、カード部材用の半導体チップは、中央処理装置
(CPU)201、記憶装置204、入出力(I/O)
ポ−ト207、コ・プロセッサ202を有する。システ
ムによってはコ・プロセッサはない場合もある。CPU
201は、論理演算や算術演算などを行う装置であり、
記憶装置204は、プログラムやデ−タを格納する装置
である。入出力ポ−トは、リ−ダライタと通信を行う装
置である。コ・プロセッサは、暗号処理そのもの、また
は、暗号処理に必要な演算を高速に行う装置である。こ
れには、例えば、RSA暗号の剰余演算を行う為の特別
な演算装置や、DES暗号のラウンド処理を行う暗号装
置などがある。ICカ−ド用プロセッサの中には、コ・
プロセッサを持たないものも多くある。デ−タバス20
3は、各装置を接続するバスである。
【0005】記憶装置204は、ROM(Read O
nly Memory)やRAM(Randum Ac
cess Memory)、EEPROM(Elect
ric Erasable Programable
Read Only Memory)などを有する。R
OMは、記憶情報を変更できないメモリであり、主にプ
ログラムを格納するメモリである。RAMは自由に書き
換えができるメモリであるが、電源の供給が中断される
と、記憶している内容は消滅する。ICカ−ドがリ−ダ
ライタから抜かれると電源の供給が中断されるため、R
AMの内容は、保持されなくなる。EEPROMは、電
源の供給が中断されてもその内容を保持することができ
るメモリである。このEEPROMは記憶情報を書き換
える必要があり、ICカ−ドがリ−ダライタから抜かれ
ても、保持が可能なデ−タを格納するために使われる。
例えば、プリペイドカ−ドでのプリペイドの度数など
は、使用するたびに書き換えられ、かつリ−ダライタか
抜かれてもデ−タを保持する必要があるため、EEPR
OMに保持される。
【0006】ICカ−ドは、プログラムや重要な情報が
ICカ−ド用チップの中に密閉されているため、重要な
情報を格納したり、カ−ドの中で暗号処理を行うために
用いられる。従来、ICカ−ドでの暗号を解読する難し
さは、暗号アルゴリズムの解読の困難さと同じと考えら
れていた。しかし、ICカ−ドが暗号処理を行っている
時の消費電流を観測し、解析することにより、暗号アル
ゴリズムの解読より容易に暗号処理の内容や暗号鍵が推
定される可能性が示唆されている。消費電流は、リ−ダ
ライタから供給されている電流を測定することにより観
測することができ、この攻撃法の詳細は、例えば、Jo
hn Wiley & Sons社、W. Rankl
e & W. Fffing著 「SMART CAR
D HANDBOOK」の8.5.1.1 Passive
Protective Mechanisms(26
3ペ−ジ)にこのような危険性が記載されている。それ
は次のような理由による。 ICカ−ド用チップを構成
しているCMOSは、出力状態が1から0あるいは0か
ら1に変わった時に電流を消費する。特に、デ−タバス
203においては、バスドライバ−の電流や、配線及
び、配線に接続されているトランジスタの静電容量のた
め、バスの値が1から0あるいは0から1に変わると、
大きな電流が流れる。そのため、消費電流を観測すれ
ば、ICカ−ド用チップの中で、何が動作しているか分
かる可能性を示唆している。
【0007】図3は、ICカ−ド用チップの1サイクル
での消費電流の波形を示したものである。処理している
デ−タに依存して、電流波形が301や302のように
異なる。このような差は、バス203を流れるデ−タや
中央演算装置201で処理しているデ−タに依存して生
じる。
【0008】16ビットのプリチャージバスにデータを転
送する場合を考える。プリチャージバスは、データ転送
の前に全てのビットを”0”にそろえるバスである。こ
のバスに、値は違うが、”1”のビットの数が同じデー
タ、たとえば、”1”のビットの数が2である16進数
の”88”と”11”を転送した場合、電流波形はほぼ
同じ波形になる。この理由は、”0”から”1”へ変化
したビットの数が同じであるため、同じように電流を消
費し、同じ電流波形になったからである。もし、”1”
のビットの数が1つ異なるデータ、たとえば”1”のビ
ットの数が3である”89”や”19”を転送した場
合、”1”のビットの数が2のデータとは消費電流波形
が異なる。これは、3ビット分のバスの値が”0”か
ら”1”に変化したため、その分の電流が消費される。
そのため、先の2ビットが変化したデータに比べて、消
費電流が1ビット分大きくなる。一般に、”1”のビッ
トの数が多いほど、電流波形は高くなると言う規則性が
ある。この規則性から、転送されるデータを推定するこ
とができる。
【0009】具体的な命令でどのように差が出るかを、
次のような左シフト命令を例にして説明する。 logical_shiftl R1 (式1) この命令は、レジスタ1の内容を左シフトし、最上位ビ
ットの値をコンディションコードレジスタのキャリーフ
ラグに入れる命令である。レジスタR1の最上位ビット
が内部バスを経由してコンディションコードレジスタに
転送されるため、電流波形の大きさを比較すれば、最上
位ビットの”0”と”1”が識別できる可能性がある。
もしR1に重要なデータが入っていれば、そのデータの
1ビットが”0”であるか”1”であるかが分かる可能
性がある。特にDESのような暗号処理では、暗号鍵を
シフトする操作が頻発する。このシフト操作の時に暗号
鍵のデータを推定できる電流波形が生じ、暗号鍵を推定
される危険性がある。
【0010】これは、コ・プロセッサ202の演算でも
同じである。演算内容が暗号鍵に依存した偏りがある
と、その偏りが消費電流から求められ、暗号鍵が推定さ
れる可能性がある。
【0011】特願平10-354156号の「情報処理装置、端
タンパ処理装置」では、この課題を解決する方法とし
て、撹乱用データで処理データを変形し、変形されたデ
ータを処理し、処理結果を撹乱用データを用いて逆変換
することにより、処理中の消費電流とデータの関連性を
減らすことで解決しようとしている。
【0012】次の命令列を例として、問題点を説明す
る。 logical_rotatel R1 (式2) xor R1 R2 (式3) (式2)では、レジスタR1の値を左に論理ローテート
し、レジスタR1に格納する。(式3)では、レジスタ
R2とR1の排他的論理和を取り、R2に格納する。
(式2)と(式3)では、処理するデータをそのまま扱
っているので、データの内容によって消費電流波形の大
きさが変わり、電流波形を観測することによって、デー
タが推定できる。特開平10-354156号では、問題を解決
するために、勝手に選んだ乱数X1、X2を撹乱用デー
タとして用い、以下に示すように(式4)、(式5)で
R1、R2に格納されたデータを変形し、(式6)、
(式7)で変形データを処理し、R2に格納する。(式
8)、(式9)で逆変形するための準備計算を行い、
(式10)でR2に格納された処理済変形データを逆変
形し、(式2)(式3)で得られるものと同じ値がR2
に格納される。 xor X1 R1 (式4) xor X2 R2 (式5) logical_rotetel R1 (式6) xor R1 R2 (式7) logical_rotetel X1 (式8) xor X1 X2 (式9) xor X2 R2 (式10) ここで問題となるのは、特開平10-354156号では、デー
タのハミングウエイトが直接観測されないように、撹乱
用データを使っていた。しかし、撹乱用データはある確
率でハミングウエイトが0や8(特別な値)になる。も
し、撹乱用データがそのような特別のハミングウエイト
を持つと、実際の処理データのハミングウエイトが直接
観測できることになる。本発明では、撹乱用データのハ
ミングウエイトを0や8などの特別な値に成ることを防
ぐものである。
【0013】具体的には、(式4)、(式5)を計算す
る際に、X1、X2の値に依存した消費電流の差が観測
可能であり、X1、X2のハミングウエイトが推定でき
る。たとえば、X1、X2のハミングウエイトと消費電
流が比例するプロセッサの場合、ハミングウエイトが0
となる場合を検出できる。同様に、xor演算でのビッ
トがする反転数と消費電流が比例する場合においても、
反転するビット数は、X1、X2のハミングウエイトと
等しい。ハミングウエイトが0となる値は0以外にはあ
りえないため、消費電流を観測することで、撹乱用デー
タが0となる場合の測定データのみを識別することが出
来る。上記の撹乱方式では、(式6)(式7)の計算に
際して、(式2)(式3)と同じ電流波形が観測される
ことなり、アタックが可能となる。
【0014】
【発明が解決しようとしている課題】本願発明は、高い
セキュリティを持つカ−ド部材などの耐タンパ−情報処
理装置を提供するものである。
【0015】本願発明の技術的な課題は、カ−ド部材、
例えばICカ−ド用チップでのデ−タ処理と消費電流と
の関連性を減らすことである。消費電流とチップの処理
との関連性が減れば、観測した消費電流の波形からIC
カ−ド用チップ内での処理や暗号鍵を推測することが困
難になる。即ち、本願発明は、カード部材等に高いセキ
ュリティを持たせんとするものである。
【0016】
【課題を解決するための手段】本願発明の着眼点は、I
Cカード用チップで消費される電流値と、処理されてい
るデータの関連性を減らすための方法として、処理する
データを撹乱用データで変形し、データの処理を変形し
たデータで処理し、処理後に撹乱用データを用いて逆変
換し、正しい処理結果を求めるものである。さらに、撹
乱用データと消費電流の関連性を減らすために、撹乱用
データとして、データを変形する際に用いる撹乱用デー
タのバイナリ表現した際のハミングウエイトが常に一定
値となりかつ各ビットが”0”と”1”のどちらの値を
とるのかの確率が0.5となる。且つ、逆変換する際に用
いる撹乱用データのバイナリ表現もまたハミングウエイ
トが一定となり、各ビットが”0”と”1”のどちらの
値をとるのかの確率が0.5であるような撹乱用データを
生成することにより、撹乱用データを用いた処理の消費
電流と撹乱データの関連性を減らし、撹乱用データを消
費電流から推定した後に、変形したデータを消費電流か
ら推定し、推定された撹乱用データと変形したデータか
ら、元の処理データを推定するアタックを困難にする。
尚、ここで、ハミングウエイトとは、二進数における
“1”の数を意味する。
【0017】さらに、撹乱用データを撹乱用データの生
成方法として、あらかじめ撹乱データとして用いること
の出来る値を複数生成し、格納しておくことにより、撹
乱用データを生成する際に撹乱用データを生成する際の
消費電流と撹乱用データの関連性を減らし、撹乱用デー
タを推定することを困難にする。
【0018】
【発明の実施の形態】以下、本発明の実施例に付いて図
面を参照しながら説明する。
【0019】図1はICカードの概観を示したものであ
る。ICカード101は、ISO7816の規格により、大
きさや、ICカードのチップ102の位置や接点の数およ
び割り当てなどが規定されている。
【0020】図2はICカードチップ102の内部構成で
ある。構成に付いては、従来技術の説明で既に述べた通
りである。本発明は、プログラム205で処理するデー
タに撹乱を加えることにより、処理中に生じるICカード
用チップのハードウエアが消費する電流波形から、本物
のデータの推定を困難にさせるものである。
【0021】従来の技術で説明したように、データをそ
のまま処理した場合、消費電流を測定することにより、
データを推定することが可能である。また、処理される
データを撹乱用のデータを用いて変形し、変形したデー
タに対して処理を行い、選られた処理結果を撹乱用に用
いたデータもしくは撹乱用に用いたデータを処理した値
を用いて逆変形を行い、本物の処理後データと等しい値
を得ることにより、処理中に消費される電流値とデータ
との間の相関を減らし、消費電流の測定からデータを推
定することを困難にする従来技術では、撹乱に用いるデ
ータについて制限を設けていないため、撹乱用データが
処理させる際の消費電流値により、撹乱用データを推定
し、測定データを分類することで、なおアタックが可能
である。
【0022】例えば、XORを撹乱用の関数として用いた
場合、撹乱用データの全ビットが1の場合や全ビットが
0の場合などは、消費電流により識別可能であり、また
識別率が100%でない場合でも、多くの測定サンプル
の平均値を計算することにより、識別誤りの影響をデー
タの推定には影響が無くなるようにすることが出来る。
【0023】尚、前記処理の例は、例えば、ローテー
ト、シフト、ビット位置置換、拡大ビット位置置換など
の処理をあげる事が出来る。
【0024】そこで、撹乱用データのハミングウエイト
が撹乱用データのビット長の半分に等しくなり、かつ撹
乱用データのそれぞれのビット位置での0と1の出現確
率が0.5となるように撹乱用データを生成することで、
撹乱用データが処理される際の消費電流より、撹乱用デ
ータが容易に特定できなくなる。
【0025】入力データをD1、処理を関数f、出力デ
ータをD2とするとき、 D2=f(D1) (式11) となる。処理fの電流波形を測定することで、D1が推
定可能とする。ここで、撹乱用データX1iを用いて、
D1を撹乱する変形関数hと、hの逆変換を行うgとい
う変換関数があり、次の(式12)もしくは(式13)
の関係を満たす場合、(式11)の代わりに(式12)
もしくは(式13)を計算することで、(式11)相当
の処理を行う。
【0026】(式12)もしくは(式13)のいずれが
使用できるのかは、関数f、関数hの性質に依存する。
(式12)を満たす、関数f、関数hの例としては、関
数fがローテート、シフト、ビット位置置換などの処理
(式14)であり、関数hがxor(式15)の場合が
例としてあげられる。その場合は、関数gもまた、xo
r(式16)となる。
【0027】一方、(式13)を満たす、関数f、関数
hの例としては、関数fが加減算で、関数hも加減算の
場合、関数fが乗除算で、関数hも乗除算の場合が例と
して上げられる。(式12)や(式13)においても、
処理fの電流波形を測定することで、h(D1、X1
i)の値は推定可能であるが、X1iが推定できない
と、D1を復元することはできない。 f(D1)=g(f(h(D1、X1i))、f(X1i))(式12) f(D1)=g(f(h(D1、X1i))、X1i) (式13) h(x、y)=x xor y (式14) f(x)=rotate_right(x) (式15) g(x、y)=x xor y (式16) ところが、X1iが値が特定の値Cになった場合に、外
部からの観測で識別可能で、変形関数hが既知である場
合、h(D1、C)の値から、hの逆関数を取ること
で、D1を復元出来る。外部からの電流測定により識別
が容易なX1iとしては、すべてのビットが0である場
合や、すべてのビットが1の場合などが有る。というの
は、ハミングウエイトが0となるデータは0以外には存
在せず、同様にすべてのビットが1となる場合のハミン
グウエイトと等しいハミングウエイトを与える値は、す
べてのビットが1となるもの以外にはないからである。
関数hとして、xorを用いた場合、X1iが0となっ
た場合、h(D1、0)が即D1の値と等しくなる。値
のバラエティーが最も多いハミングウエイトは、データ
のビット長の半分のハミングウエイトである。
【0028】図4は、1個の撹乱用データを用いた実施
例である。本実施例の特徴は、撹乱用データのハミング
ウエイトを与えることによって、撹乱用データの各ビッ
トがオール0になったり、オール1になったりすること
により、データが推定されることを防ぐものである。デ
ータ変形処理手段(402)で入力データD1(40
1)を撹乱用データX1i(403)を用いて変形し、変
形データH2(404)を生成し、変形データ処理手段
(405)にて、変形データH1(404)を処理し、
変形データH2(406)を得る。データ逆変換処理手
段(407)で、変形データH2(407)を変形済み
撹乱用データX1o(408)を用いて逆変換し、処理
済データD2(409)を得る。ここで、撹乱用データ
X1i(403)と変形済み撹乱用データX1o(40
8)は、ともにハミングウエイトが一定の値である。
【0029】この実施例は、請求項1に対応する実施例
である。撹乱用データX1i(403)と、変形済み撹
乱用データX1o(408)を作成する方法には幾つか
の方法が有る。
【0030】図5は、ハミングウエイト一定の撹乱用デ
ータX1i(502)およびハミングウエイト一定の処
理済撹乱データX1o(504)を生成する一実施例で
ある。ハミングウエイト一定乱数生成手順(501)に
より、ハミングウエイト一定の乱数を生成し、第1撹乱
用データX1i(502)とし、撹乱用データ処理手段
(503)で第1撹乱用データX1i(502)を処理
し、処理済撹乱用データX1o(504)を得る。ハミ
ングウエイト検査手段(505)により、処理済撹乱用
データX1o(504)のハミングウエイトが検査さ
れ、所定のハミングウエイトと異なる場合は、ハミング
ウエイト一定の乱数生成手段(501)に対して再生成
制御信号を送り、撹乱用データX1i(502)の生成
からやりなおす。これは、請求項2の実施例である。前
記ハミングウエイト検査は、具体的には多くはCPUで
実行される。ハミングウエイト一定の乱数生成手段(5
01)はCPUあるいはその生成手段(Generar
tor)がその役割を果たす。
【0031】ハミングウエイト一定乱数生成の方法はい
くつか存在する。図6は、ハミングウエイト一定の乱数
の生成方法の1実施例で、請求項6の実施例でもある。
ここでは、発生したい乱数のビット数を2nビットとす
る。まずnビット乱数発生手段(601)によりnビッ
ト乱数(602)を生成する。このnビット乱数発生手
段(601)は、疑似乱数でもよいし、物理現象を測定
して選られる真の乱数であってもよい。つぎにビット反
転処理手段(603)を用いて、発生したnビット乱数
(602)を反転し、反転nビット乱数(604)を生
成する。つぎに、データ統合手段(605)にて、nビ
ット乱数(602)と反転nビット乱数(604)を結
合して、ハミングウエイト一定2nビット乱数(60
6)を生成する。nビット乱数(602)の各ビットの
うち、値が1であるビット数をn1個、0であるビット
数をn2個とすると、 n1+n2=n (式17) であり、反転nビット乱数(604)はnビット乱数
(602)の反転値であるので、値が1であるビットの
数はn2個、0であるビット数がn1個となる。従っ
て、nビット乱数(602)と反転nビット乱数(60
4)を結合して作成した乱数のハミングウエイトは、n
1+n2となり、(式17)に示されるように、ここで
生成される乱数のハミングウエイトは、常にnビットと
なる。
【0032】図7はハミングウエイト一定乱数生成の別
の実施例で、請求項7の実施例である。目標のハミング
ウエイトHを受け取り(702)、乱数Rを発生させる
(703)。乱数RのハミングウエイトRHを計算し
(704)、発生させた乱数RのハミングウエイトRH
が目標のハミングウエイトHと等しいか比較し、等しく
ない場合は、乱数R発生(703)からやり直す。乱数
Rのハミングウエイトと、目標のハミングウエイトHが
等しい場合は、乱数Rを結果として返し(706)、処
理を終了する(707)。
【0033】図10は、ハミングウエイト一定乱数生成
の別の実施例で、請求項8の実施例である。予め、mビ
ット長のデータで、ハミングウエイトが一定であるデー
タを収めたテーブルを用意しておく。発生できるハミン
グウエイト一定の乱数は、mの倍数ビット長にかぎられ
る。まず、発生したい乱数のビット長をnに設定し(1
002)、Lにnをmで割った値を代入する(100
4)。処理の基本的な流れは、mビット長のハミングウ
エイト一定の乱数をL個生成し結合することで、nビッ
ト長のハミングウエイト一定の乱数を生成する。つぎ
に、ハミングウエイト一定の乱数の生成結果を収めるD
を0に初期化する(1004)。乱数Rを生成し、乱数
Rをインデックスとして、あらかじめハミングウエイト
が一定であるデータを収めたテーブルから値を1つ取り
出し、dに代入する(1006)。Dをmビット分左シ
フトし、dを加える(1007)。乱数R発生(100
5)からDをmビット分左シフトし、dを加える処理
(1007)までを、L回繰り返し(1008)、Dを
結果として返す(1009)。
【0034】図8は、決められたビット長(MaxBit)の
データで、ハミングウエイトがHammingビット(一定の
ハミングウエイト)となるデータをすべてリストアップ
し、datという配列に入れるための処理手順の実施例で
ある。dat配列の大きさは、(MaxBitの階乗)/{(Ham
mingの階乗)^2}になる。尚、ここで、dat配列と
は、ハミングウエイトが一定のデータを格納するための
配列である。たとえば、8ビット長のデータで、ハミン
グウエイトが4ビットとなるようなデータは、70個に
なる。基本的な考え方は、Hamming個の1となるビット
位置を格納する配列を用意し、その配列におさめられた
ビット位置が重ならないように1となるビット位置を変
えて行くことで、すべての組み合わせを見つけ出すとい
うものである。まず、ハミングウエイトをHammingに代
入する(802)。つぎに生成したいデータのビット長
をMaxBitに代入する(803)。次にHamming個の要素
を持つ、1となるビットの位置を格納するpos配列を0
からHamming-1までの値で初期化する(804)。結果
を格納するためのdat配列へのインデックスnumを0に初
期化する(805)。尚、ここで、numは配列dat
のインデックス値で、処理(806)で生成される値を
格納するインデックスの位置を示す。まず、pos配列に
収められたビット位置から、データを計算し、dat配列
のインデックスがnumの位置に収める(806)。イン
デックスnumに1を加える(807)。更新するビット
位置を決めるインデックスbを0に初期化する(80
8)。bが一番上位に位置するビットにたどり着いてい
るかチェックし(809)、たどり着いていなければ、
処理801に、たどり着いていれば、処理812に分岐
する。処理801では、1ビット上位がすでに1になっ
ているかチェックし、すでに1があれば、処理812に
飛び、1がなければ、処理811へ移行する。処理81
1では、ビットの位置を1ビット分上位方向に進め、処
理806に移る。処理812では、現在注目しているビ
ットが、1となっているビットのうちの最上位のビット
かどうかをチェックし、最上位であった場合には、処理
813に進み、それ以外の場合は処理814に進む。処
理813では、1ビット上位にビット移動できるかチェ
ックし、移動できる場合は、811に飛び、移動できな
い場合は、処理814に飛ぶ。処理814では、現在注
目しているビットが値が1となっているうちの最下位の
ビットかどうかをチェックし、最下位のビットであれば
処理815に飛び、最下位ではない場合は処理816に
飛ぶ。処理816では、下位側のビットのうち、1にな
っているビットで一番近くにあるビットから数えて、1
ビット分上位ビットの位置に移動させる。処理815で
は、最下位にビットを移動させ、処理817に移る。処
理817では、注目するビットを1つ分、上位方向に位
置するビットに移す。処理818では、全部の組み合わ
せについて処理が終了したかをチェックし、まだ終わっ
ていなければ、処理806に飛び、すべての組み合わせ
に付いて処理が終わっていれば、終了する(819)。
結果は、dat配列に格納され、dat配列に格納されたデー
タの個数は、numに設定される。
【0035】図11は、撹乱用データX1i(110
3)、変形済み撹乱用データX1o(1105)を生成
する一実施例で、請求項3の実施例である。予め撹乱用
データX1iとして使用可能なデータを格納した撹乱用
データ格納手段(1102)より、撹乱用データ選択手
段(1101)がデータを選択し、撹乱用データX1i
(1103)とする。選択された撹乱用データX1i
(1103)を撹乱用データ処理手段(1104)によ
り処理し、変形済み撹乱用データX1o(1105)を
生成する。撹乱用データ格納手段は通例、例えばRAM
あるいはレジスタなどが、又撹乱用データ処理手段は通
例、例えばCPUあるいはALUなどが用いられる。図
9は、撹乱用データ格納手段(1102)に格納するた
めの、撹乱用データを予め選択する方法の一実施例であ
る。
【0036】図9の実施例は、図8の実施例と同様の手
順で、ハミングウエイト一定のデータをリストアップし
ている。図8の実施例との違いは、リストアップされた
データをそのまま使用するのではなく、さらに撹乱用デ
ータ処理手段で処理し、処理結果のハミングウエイトを
計算してhxdatに代入し(907)、hxdatの値も
ハミングウエイト一定となることをチェックし(90
8)、一定の場合だけ、dat配列に格納するようにして
いる点である。その他の処理に付いては、図8と同一で
ある。
【0037】図12は、撹乱用データX1i(120
3)、変形済み撹乱用データX1o(1204)を生成
する一実施例で、請求項4の実施例である。予め、図9
の実施例や図5の実施例などの方法で、撹乱用データお
よび処理済撹乱用データ格納手段(1201)に撹乱用
データおよび処理済撹乱用データの組を複数組格納し、
撹乱用データおよび処理済撹乱用データ選択手段(12
02)により、撹乱用データおよび処理済撹乱用データ
格納手段(1201)から、撹乱用データX1i(12
03)及び処理済撹乱用データX1o(1204)を取
り出す。図55に図12に対応するテーブルの例を示
す。これはデータ処理が、左ローテートの場合で、前記
撹乱用データおよび処理済撹乱用データ格納手段(12
01)に格納されたデータX1i、X1oを例示する。
【0038】また、撹乱用データおよび処理済撹乱用デ
ータ格納手段(1201)に格納するデータの個数を偶
数にし、格納するデータを適切に選択することで、請求
項5の実施例となる。請求項5の実施例としては、最低
限2組のデータがあればよい。
【0039】図13は、データ処理がテーブルルックア
ップで定義された処理を、2個の撹乱用データを用いて
撹乱する実施例で、請求項9の一実施例である。入力デ
ータD1(1301)を用いて、表を引き、処理済デー
タD2(1310)得る。表をTableとすると、D
1とD2の関係は、(式19)のようになる。 D2=Table[D1] (式19) この表引き処理を行う際の電流を測定すると、D1やD
2の値が推定できる。そこで、第1撹乱用データX1i
と第2撹乱用データX2iと、表のインデックスと出力
結果を変形する関数fと関数gを考え、変形済みの表X
Tableを(式20)のように定義する。 XTable[f(i、X1i)] =g(Table[i]、X2i) (式20) また、gの逆関数をhと定義する。 D=h(g(D、X)、X) (式22) すると、表引き処理は、 H1=f(D1、X1i) (式23) H2=XTable[H1] (式24) D2=h(H2、X2i) (式25) となる。関数f(x、y)は、xの値が異なる場合に、
必ず異なる値になる必要がある。一方、関数g、関数h
は、(式26)の関係を満たす必要がある。 a=h(g(a、X)、X) (式26) ここで、(式24)の処理の消費電流によりH1もしく
はH2が推定されても、それぞれX1i、X2iにより
撹乱されているため、(式24)の測定結果だけでは、
D1、D2の値を推定することは出来ない。図13で
は、(式23)にあたる処理が、第1撹乱用データX1
i(1303)を用いて、入力データD1(1301)
をデータ変形処理手段(1302)で処理し、変形デー
タH1(1304)を得る処理に相当する。また、(式
24)に当たる処理は、変形データH1(1304)を
インデックスとして、変形済み表(1306)を表引き
する変形済み表アクセス手段(1305)を用いて、変
形データH2(1307)を得る処理に相当する。(式
25)に相当する処理は、変形データH2(1307)
を第2撹乱用データX2i(1309)を用いてデータ
逆変形処理手段(1308)を用いて逆変形し、処理済
データD2(1301)を得る処理に相当する。
【0040】図14は、図13の実施例で用いる、第1
撹乱用データX1i(1403)および第2撹乱用デー
タX2i(1404)および変形済み表(1407)を
作成するための一実施例で、請求項10の一実施例であ
る。第1ハミングウエイト一定乱数生成手段(140
1)により、第1撹乱用データX1i(1403)を生
成し、第2ハミングウエイト一定乱数生成手段(140
2)により、第2撹乱用データX2i(1404)を生
成し、表格納手段(1405)に格納された、(式1
9)を満たす表と、第1撹乱用データX1i(140
3)と、第2撹乱用データX2i(1404)から、表
変形手段(1406)により(式20)を満たす変換が
行なわれ、変形済み表(1407)を生成する。第1ハ
ミングウエイト一定乱数生成手段(1401)および第
2撹乱用データX2i(1404)には、請求項6、請
求項7、請求項8のいずれかのハミングウエイト一定乱
数生成手段を用いることが出来る。
【0041】図15は、図13の実施例で用いる、第1
撹乱用データX1i(1505)および第2撹乱用デー
タX2i(1506)および変形済み表(1509)を
作成するための一実施例で、請求項11の一実施例であ
る。予めハミングウエイト一定のデータが複数個格納さ
れた、第1撹乱用データ格納手段(1501)と、第1
撹乱用データ格納手段(1501)から値を1つ選択し
て取り出し、第1撹乱用データX1i(1505)とす
るための第1撹乱用データ選択手段(1503)と、第
2撹乱用データ格納手段(1502)から値を1つ選択
して取り出し、第2撹乱用データX2i(1506)と
するための第1撹乱用データ選択手段(1504)と、
表格納手段(1507)に格納された、(式19)を満
たす表と、第1撹乱用データX1i(1505)と、第
2撹乱用データX2i(1506)から、表変形手段
(1508)により(式20)を満たす変換が行なわ
れ、変形済み表(1407)が生成される。
【0042】図56に第1撹乱用データ格納手段(15
01)に格納された第1撹乱用データ、及び第2撹乱用
データ格納手段(1502)に格納された第2撹乱用デ
ータの例を示す。図57に、表格納手段(1507)に
格納された表のを例示する。この例は、第1撹乱用デー
タがOx1c71c71c71c7、第1撹乱用データ
がOx55555555が選択された例である。
【0043】図16は、図13の実施例で用いる、第1
撹乱用データX1i(1603)および第2撹乱用デー
タX2i(1604)および変形済み表(1605)を
作成するための一実施例で、請求項12の一実施例であ
る。予め第1撹乱用データX1iに成り得るハミングウ
エイト一定の値と、第2撹乱用データX2iに成り得る
ハミングウエイト一定のデータと、さらにそれらの組を
用いて変形処理が行われた変形済み表が複数組が格納さ
れた、第1撹乱用データ、第2撹乱用データ及び変形済
み表格納手段(1602)から、第1撹乱用データ、第
2撹乱用データ及び変形済み表選択手段(1601)に
より、第1撹乱用データX1i、第2撹乱用データ及び
変形済み表の組が1つ選択して取り出され、第1撹乱用
データX1i(1603)、第2撹乱用データX2i
(1604)、変形済み表(1605)として選択され
る。図58に図16に対応する第1撹乱用データ、第2
撹乱用データ及び変形済み表のテ−ブルの例を示す。第
1撹乱用データ、第2撹乱用データ及び変形済み表格納
手段(1602)には、このような表を複数セット有し
ている。
【0044】図17は、データ処理がテーブルルックア
ップとそれに引き続く1つの処理で定義された処理を、
2個の撹乱用データを用いて撹乱する実施例で、請求項
13の一実施例である。入力データD1(1701)を
用いて、表を引き、処理pを行い、処理済データD2
(1712)得る。表をTableとすると、D1とD
2の関係は、(式25)のようになる。 D2=p(Table[D1]) (式27) この表引き処理を行う際の電流を測定すると、D1やD
2の値が推定できる。そこで、第1撹乱用データX1i
と第2撹乱用データX2iと、表のインデックスと出力
結果を変形する関数fと関数gを考え、変形済みの表X
Tableを(式27)のように定義する。 XTable[f(i、X1i)] =g(Table[i]、X2i) (式28) また、gの逆関数をhと定義する。 D=h(g(D、X)、X) (式29) X2oを次の様に定義する X2o=p(X2i) (式30) すると、表引き及び処理pは、 H1=f(D1、X1i) (式31) H2=XTable[H1] (式32) H3=p(H2) (式33) D2=h(H3、X2o) (式34) と表現される。ここで、関数f、関数h、関数pは、
(式35)を満たすものである必要がある。 a=h(p(f(a、X))、p(X)) (式35) この様な条件を満たす関数f、関数h、関数pの組み合わせには、 f(x、y)=x xor y (式36) p(x) =右ローテーション(x) h(x、y)=x xor y などがある。
【0045】ここで、(式32)の処理を行なう際の消
費電流によりH1が推定されても、X1iにより撹乱さ
れているため、(式32)の測定結果だけでは、D1の
値を推定することは出来ない。同様に、(式33)の処
理の消費電流によりH3が推定されても、X2iにより
撹乱されているため、(式33)の測定結果だけでは、
D2の値を推定することは出来ない。図17では、(式
31)にあたる処理は、第1撹乱用データX1i(17
03)を用いて、入力データD1(1701)をデータ
変形処理手段(1702)で処理し、変形データH1
(1704)を得る処理に相当する。また、(式32)
に当たる処理は、変形データH1(1704)をインデ
ックスとして、変形済み表(1706)を表引きする変
形済み表アクセス手段(1705)を用いて、変形デー
タH2(1707)を得る処理に相当する。(式33)
に相当する処理は、変形データH2(1707)を変形
済みデータ処理手段(1708)により処理し、処理済
変形データH3(1709)を得る処理に相当する。
(式34)に相当する処理は、処理済変形データH3
(1709)を処理済第2撹乱用データX2o(171
1)を用いてデータ逆変形処理手段(1710)により
逆変形し、処理済データD2(1712)を得る処理に
相当する。
【0046】図19は、図17の実施例で用いる、第1
撹乱用データX1i(1903)および第2撹乱用デー
タX2i(1904)および変形済み表(1908)お
よび処理済第2撹乱用データX2o(1909)を作成
するための一実施例で、請求項14の一実施例である。
【0047】第1ハミングウエイト一定乱数生成手段
(1901)により、第1撹乱用データX1i(190
3)を生成し、第2ハミングウエイト一定乱数生成手段
(1902)により、第2撹乱用データX2i(190
4)が生成される。撹乱用データ処理手段(1907)
により、第2撹乱用データX2i(1904)が処理さ
れ、処理済第2撹乱用データ(1909)が生成され
る。ハミングウエイト検査手段(1910)により、処
理済第2撹乱用データ(1909)のハミングウエイト
が検査され、不適切な場合は、第2ハミングウエイト一
定乱数生成手段(1902)に対して、再生成制御信号
が送られ、第2撹乱用データX2i(1904)の再生
成が行われる。表格納手段(1905)に格納された表
と、第1撹乱用データX1i(1903)と、第2撹乱
用データX2i(1904)から、表変形手段(190
6)により(式27)を満たす変換が行なわれ、変形済
み表(1908)を生成する。第1ハミングウエイト一
定乱数生成手段(1901)および第2撹乱用データX
2i(1904)には、請求項6、請求項7、請求項8
のいずれかのハミングウエイト一定乱数生成手段を用い
ることが出来る。本実施例の利点は、第1撹乱用デー
タ、第2撹乱用データをその都度生成するため、特に撹
乱用データのビット長が長い場合に、多くのバリエーシ
ョンが期待できる点である。
【0048】図20は、図17の実施例で用いる、第1
撹乱用データX1i(2005)および第2撹乱用デー
タX2i(2006)および変形済み表(2010)お
よび処理済第2撹乱用データX2o(2011)を作成
するための一実施例で、請求項15の一実施例である。
【0049】第1撹乱用データ格納手段(2001)に
格納された、複数の第1撹乱用データ候補から、第1撹
乱用データ選択手段(2003)によりデータを選択
し、第1撹乱用データX1i(2005)を生成し、第
2撹乱用データ格納手段(2002)に格納された、複
数の第2撹乱用データ候補から、第2撹乱用データ選択
手段(2004)によりデータを選択し、第2撹乱用デ
ータX2i(2006)を生成する。撹乱用データ処理
手段(2009)により、第2撹乱用データX2i(2
006)が処理され、処理済第2撹乱用データ(201
1)が生成される。表格納手段(2007)に格納され
た表と、第1撹乱用データX1i(2005)と、第2
撹乱用データX2i(2006)から、表変形手段(2
008)により(式26)を満たす変換が行なわれ、変
形済み表(2010)が生成される。本実施例の利点
は、予め第1撹乱用データ、第2撹乱用データの項補が
用意されているため、第1撹乱用データおよび第2撹乱
用データの生成に時間がかからず、かつリーク情報も少
なくて済むことである。
【0050】図21は、図17の実施例で用いる、第1
撹乱用データX1i(2105)および第2撹乱用デー
タX2i(2106)および変形済み表(2110)お
よび処理済第2撹乱用データX2o(2107)を作成
するための一実施例で、請求項16の一実施例である。
【0051】第1撹乱用データ格納手段(2101)に
格納された、複数の第1撹乱用データ候補から、第1撹
乱用データ選択手段(2103)によりデータを選択
し、第1撹乱用データX1i(2105)を生成し、第
2撹乱用データおよび処理済第2撹乱用データ格納手段
(2102)に格納された、複数の第2撹乱用データお
よび処理済第2撹乱用データ候補の組から、第2撹乱用
データおよび処理済第2撹乱用データ選択手段(210
4)によりデータを選択し、第2撹乱用データX2i
(2106)をおよび処理済第2撹乱用データX2o
(2107)を生成する。表格納手段(2109)に格
納された表と、第1撹乱用データX1i(2105)
と、第2撹乱用データX2i(2106)から、表変形
手段(2108)により(式26)を満たす変換が行な
われ、変形済み表(2110)が生成される。本実施例
の利点は、予め第1撹乱用データ、第2撹乱用データお
よび処理済第2撹乱用データの項補が用意されているた
め、第1撹乱用データ、第2撹乱用データおよび処理済
み第2撹乱用データX2oの生成に時間がかからず、第
2撹乱用データから処理済第2撹乱用データを生成する
処理がなく、その分請求項15に比べてさらにリーク情
報が少なくて済む。
【0052】図22は、図17の実施例で用いる、第1
撹乱用データX1i(2203)および処理済第2撹乱
用データX2i(2104)および変形済み表(220
5)を作成するための一実施例で、請求項17の一実施
例である。
【0053】第1撹乱用データと処理済第2撹乱用デー
タと変形済み表の組を複数格納した第1撹乱用データ、
処理済第2撹乱用データおよび変換済み表格納手段(2
202)より、第1撹乱用データ処理済み第2撹乱用デ
ータおよび変換済み表選択手段(2201)により、第
1撹乱用データ処理済み第2撹乱用データおよび変換済
み表を選択し、第1撹乱用データX1i(2203)お
よび処理済第2撹乱用データX2i(2104)および
変形済み表(2205)とする。本実施例の利点は、表
を変形する処理が不要なため、請求項16に比べ、さら
にリーク情報が少なくて済む。
【0054】図23は、表引きとそれに引き続く1つの
処理からなる一連の処理を複数回繰り返す処理装置にお
いて、表のインデックスと内容を2つの撹乱用データを
用いて処理中に現れる数値を撹乱し、処理を行なう情報
処理装置の1実施例で、請求項18の1実施例である。
【0055】複数回繰り返して処理を行なう際に、変形
されているデータを逆変形する際に、まず次の処理のた
めの変形を行なった後に、逆変形を行なうという手順を
取るため、変形されていないデータが途中では現れず、
途中では、2重に変形されているか、1重に変形されて
いるかの違いはあるが、常に途中のデータは変形された
まま処理されるため、リーク情報が少ないのが特徴であ
る。
【0056】この請求項18で用いられるデータ変形お
よびデータ逆変形手段は、実行する順番を変えても同じ
値を返す必要がある。データxを撹乱情報y変形する処
理を関数f(x、y)とし、変形データxを撹乱情報y
で逆変形する関数をg(x、y)とすると、 f(g(x、y1)、y2)=g(f(x、y2)、y1) (式37) なる条件を満たす必要がある。
【0057】実施例中の、第1撹乱用データX1i(2
303)、変形済み表(2306)、変形済み第2撹乱
用データ(2313)は、請求項14、請求項15、請
求項16、請求項17の実施例のいずれかにより生成す
ることが可能である。入力データD1(2301)を第
1撹乱用データX1iを用いてデータ変形処理手段(2
302)で変形し、変形データH1(2304)を得
る。変形データH1(2304)を用いて、変形済み表
(2306)を変形済み表アクセス処理手段(230
5)により表引き処理を行い、変形データH2(230
7)を得る。変形済みデータ処理手段(2308)に
て、変形データH2(2307)を処理し、処理済変形
データH3(2309)を得る。この状態で、H2は、
第2撹乱用データによる変形を受けた状態にある。さら
に、第1撹乱用データX1i(2303)を用いて、処
理済変形データH3(2309)を、データ変形処理手
段(2310)で変形し、処理済変形データH4(23
11)を得る。H4は、第1撹乱用データと第2撹乱用
データの2つにより変形された状態にある。ここで、変
形済み第2撹乱用データX2o(2313)を用いて、
データ逆変形処理手段(2312)により、処理済変形
データH5(2314)を得る。H5は、第2撹乱用デ
ータによる変形が解かれ、第1撹乱用データのみによっ
て変形している状態となり、変形済み表のインデックス
として使用可能である。処理済変形データH5(231
4)を用いて、変形済み表アクセス処理手段(231
5)により、変形済み表(2306)の表引きを行い、
処理済変形データH6(2316)を得る。処理済変形
データH6(2316)を変形済みデータ処理手段(23
17)で処理し、処理済変形データH7(2318)を得
る。H7は、第2撹乱データで変形を受けているため、
最終結果とするために、変形済み第2撹乱データX2o
(2313)を用いて、逆変形を行い、最終的な結果で
ある、処理済データD2(2320)を得る。この実施
例は、一連の処理の繰り返し回数は、2回のみである
が、同様の手順で複数回の繰り返しが可能である。
【0058】図19は、図23の実施例で用いる、第1
撹乱用データX1i(1903)および変形済み表(1
908)および処理済第2撹乱用データX2o(190
9)を作成するための一実施例でもあり、図19と図2
3をあわせた実施例は、請求項19の一実施例である。
【0059】図20は、図23の実施例で用いる、第1
撹乱用データX1i(2005)および変形済み表(2
010)および処理済第2撹乱用データX2o(201
1)を作成するための一実施例でもあり、図20と図2
3をあわせた実施例は、請求項20の一実施例である。
【0060】図21は、図23の実施例で用いる、第1
撹乱用データX1i(2105)および変形済み表(2
110)および処理済第2撹乱用データX2o(210
7)を作成するための一実施例でもあり、図21と図2
3をあわせた実施例は、請求項21の一実施例である。
【0061】図22は、図23の実施例で用いる、第1
撹乱用データX1i(2203)および変形済み表(2
204)および処理済第2撹乱用データX2o(220
5)を作成するための一実施例でもあり、図22と図2
3をあわせた実施例は、請求項22の一実施例である。
【0062】図24は、表引きとそれに引き続く1つの
処理からなる一連の処理を複数回繰り返す処理装置にお
いて、表のインデックスと出力をそれぞれ2つの撹乱用
データで2重に変形し、処理する実施例の一つで、請求
項23の実施例の一つである。2重に変形することによ
り、消費電流による観測を少ない資源でより強力な撹乱
が行なえるようにする。
【0063】この実施例で用いられる、4つの撹乱用デ
ータと、前記撹乱用データを用いて第2変形済み表を生
成する方法としては、請求項19、20、21、22が
ある。たとえば、予めハミングウエイト一定の数値を複
数個用意して選択する実施例の場合、予め用意した数値
のバリエーションが少ない場合、撹乱データを用いてデ
ータを変形する処理が既知の場合、予め用意されている
撹乱用データを全て推定することも可能となる。撹乱用
データを用いて変形する処理がXOR処理であった場合、
元のデータと撹乱用データが同一のデータであった場
合、変形済みのデータは0となることから、予め用意さ
れた撹乱用データのセットを推定することが不可能では
ない。そこで、たとえばハミングウエイトを固定しない
代りに常にビット長で表現できる全ての値を生成した撹
乱用データで変形した後に、ハミングウエイト一定の撹
乱用データを用いてさらに変形を行なうことで、容易に
は撹乱用データの推定ができなくなる。図24を用い
て、処理の詳細を説明する。
【0064】入力データD1(2401)が、第3撹乱
用データX3i(2403)を用いて、データ変形手段
(2402)で変形され、変形データH1(2404)
が生成される。第3撹乱用データは、表引き処理に用い
られる表のインデックスを変形する2つの撹乱データの
うちの一つで、実際の表引きには、さらに第1撹乱用デ
ータX1i(2406)で変形する必要がある。その変
形処理を行なうのが、データ変形処理手段(2405)
で、変形データH1(2404)を第1撹乱用データ
(2406)を用いて変形し、変形データH2(240
7)を得る。得られた変形データH2(2407)をイ
ンデックスとして用い、変形済み表アクセス処理手段
(2408)により第2変形済み表(2409)を表引
きし、変形データH3(2410)を得る。変形データ
H3(2410)を処理する変形済みデータ処理手段
(2411)で処理し、処理済変形データH4(241
2)を生成する。第3撹乱用データX3i(2403)
を用いて、データ変形処理手段(2413)により、処
理済変形データH4(2412)を変形し、処理変形デ
ータH5(2414)を得て、さらに第1撹乱用データ
X1i(2406)を用いてデータ変形処理手段(24
15)で変形し、処理済変形データH6(2416)を
得る。ここまでで、処理中のデータは、第3撹乱用デー
タX3i(2403)、第1撹乱用データX1i(24
06)、および第2変形表(2409)に畳み込まれて
いる、処理済第2撹乱用データX2o(2418)、処
理済第4撹乱用データX4o(2421)で変形されて
いる状態なので、まずデータ逆変換手順(2417)
で、処理済第2撹乱用データX2o(2418)を用い
て、データの逆変形を行い、処理済変形データH7(2
419)を生成する。そしてデータ逆変換手順(242
0)で、処理済第4撹乱用データX4o(2421)を
用いて、データの逆変形を行い、処理済変形データH8
(2422)を生成する。これで、データは第3撹乱用
データX3i(2403)、第1撹乱用データX1i
(2406)の2つの撹乱用データで変形されている状
態になるので、第2変形済み表(2409)のインデッ
クスとして用いることが出来る。変形済み表アクセス処
理手順(2423)で表引きを行い、変形データH9
(2424)を得て、さらに変形済みデータ処理手順
(2425)により、処理済変形データH10(242
6)を得る。ここまでで、最終結果を処理済第2撹乱用
データX2o(2418)、処理済第4撹乱用データX
4o(2421)で変形されている状態のデータが得ら
れたことになるので、データ逆変換処理手順(242
7)により、処理済第2撹乱用データX2o(241
8)による変形分を逆変形し、さらにデータ逆変換処理
手順(2429)により、処理済第4撹乱用データX4
o(2421)による変形分を逆変形して最終的な結果
D2(2530)を得る。
【0065】図26は、図24すなわち請求項23の実
施例における、第1撹乱用データX1i(2602)、
処理済第2撹乱用データX2o(2606)、第3撹乱
用データX3i(2612)、処理済第4撹乱用データ
X4o(2618)と、第2処理済表(2617)を生
成する方法の1実施例であり、請求項24の一実施例で
ある。処理手順は、まず図19の実施例の方法で、第1
撹乱用データX1i(2602)、処理済第2撹乱用デ
ータX2o(2606)、および変形済み表(261
0)を生成し、生成した変形済み表(2610)をさら
に第3撹乱用データ生成手段(2611)で生成された
第3撹乱用データX3i(2612)と、第4撹乱用デ
ータ生成手段(2613)で生成された第4撹乱用デー
タX4i(2614)とを用いて、表変形処理手段(2
616)にて変形済み表(2610)をさらに変形し
て、第2変形済み表(2617)を得る。また、データ
の逆変換時に必要となる、処理済み第4撹乱用データX
4o(2618)を第4撹乱用データX4i(261
4)から、撹乱用データ処理手段(2615)を用いて
計算しておく。
【0066】図27は、図24すなわち請求項23の実
施例における、第1撹乱用データX1i(2703)、
処理済第2撹乱用データX2o(2707)、第3撹乱
用データX3i(2712)、処理済第4撹乱用データ
X4o(2718)と、第2処理済表(2714)を生
成する別の方法の位置実施例であり請求項25の一実施
例である。
【0067】処理手順は、まず図20の実施例の方法
で、第1撹乱用データX1i(2703)、処理済第2
撹乱用データX2o(2706)、および変形済み表
(2710)を生成し、生成した変形済み表(271
0)をさらに第3撹乱用データ生成手段(2711)で
生成された第3撹乱用データX3i(2712)と、第
4撹乱用データ生成手段(2715)で生成された第4
撹乱用データX4i(2716)とを用いて、表変形処
理手段(2713)にて変形済み表(2710)をさら
に変形して、第2変形済み表(2714)を得る。ま
た、データの逆変換時に必要となる、処理済み第4撹乱
用データX4o(2718)を第4撹乱用データX4i
(2616)より、撹乱用データ処理手段(2717)
を用いて計算しておく。
【0068】図28は、図24すなわち請求項23の実
施例における、第1撹乱用データX1i(2904)、
処理済第2撹乱用データX2o(2805)、第3撹乱
用データX3i(2807)、処理済第4撹乱用データ
X4o(2804)と、第2処理済表(2909)を生
成する別の方法の位置実施例であり請求項26の一実施
例である。
【0069】処理手順は、まず図21の実施例の方法
で、第1撹乱用データX1i(2804)、処理済第2
撹乱用データX2o(2805)、および変形済み表
(2803)を生成し、生成した変形済み表(280
3)をさらに第3撹乱用データ生成手段(806)で生
成された第3撹乱用データX3i(2807)と、第4
撹乱用データ生成手段(2810)で生成された第4撹
乱用データX4i(2811)とを用いて、表変形処理
手段(2713)にて変形済み表(2803)をさらに
変形して、第2変形済み表(2809)を得る。また、
データの逆変換時に必要となる、処理済み第4撹乱用デ
ータX4o(2813)を第4撹乱用データX4i(2
811)より、撹乱用データ処理手段(2812)を用
いて計算しておく。
【0070】図29、30、31、32、33、34、
35、36、37、38、39、45、46、47を用
いて、請求項27の一実施例について説明する。
【0071】まず、図29を用いて、SBOX表の変形
処理および撹乱用データについて説明する。SBOX表
のアドレス撹乱用データSinX1(2901)とSB
OXデータ撹乱用データSoutX(2902)を用い
て、SBOX表(2903)をSBOX表変形手段(2
904)で変形処理を行い、変形済みSBOX表(29
05)を得る。SBOX表のアドレスおよびデータの変
形は、XORで行なうものとする。また、SoutXを
転置処理P(2906)、転置処理E(2907)を行
い、転置済みSBOXデータ撹乱用データXSoutX
(2909)を生成しておく。ここでの処理を纏める
と、SBOX表をSBOX[0..63]、変形SBOX表をX
SBOX[0..63]、転置処理Pを関数P()、拡大転置処理
Eを関数E()で表現すると、 XSBOX[i xor SinX1]=SBOX[i] xor SoutX (式38) XSoutX=E(P(SoutX)) (式39) となる。SinX1、SoutXの作成方法は、請求項
14、15、16、17のいずれかの方法を用いること
ができる。
【0072】図46は、SBOXの格納様式の一実施例
である。64個の32ビット整数からならる要素を持つ
1次元の配列としてSBOXを格納する。図45は、図
46の様式で格納されたSBOXを表引きするための処
理の一実施例で、48ビットの入力を6ビットごとに分
解し、SBOX配列を表引きし、表引きの際に用いた6
ビットの値の位置に応じたマスクで必要なデータを取り
出し、順次加算することで、最終的な表引き結果を得
る。図45のフローチャートを用いて、処理を順を追っ
て説明する。4502で、inに表引きの入力となる4
8ビットの数値を代入する。48ビットを6ビットづつ
に分解し、8回に分けて処理するため、4503におい
て、処理回数をカウントするための変数jを0に初期化
する。4504で、表引き結果をマスクするための変数
maskを15で初期化する。これは、下位4ビットがすべ
て1である数値である。4505で、表引き結果を格納
する変数resultを0に初期化する。4506で、
inの下位6ビットを取り出し、idxに代入する。4
507で、inを右に6ビットシフトし、つぎの6ビッ
トを取り出す準備を行う。4508でdに図46のSB
OXをidxをインデックスとしたときの表引き結果を
代入する。4509でdとmaskのANDを計算し、
dに代入する。4510で、resultにdを加え
る。4511にて、maskを左に4ビットシフトし、
次のデータをマスクする準備とする。4512でカウン
タjを1だけ加算する。4513でjが8未満であれ
ば、4506からの処理を繰り返す。4514では、r
esultを結果として返す。
【0073】図47は、図29のSBOX表変形手段
(2304)の詳細なフローチャートであり、図46の
様式で格納されたSBOXを変形するための手順を示
す。この手順で変形さされた変形済みSBOX表は、図
46の表引き処理により、表引きが可能である。また、
図47で選られた変形済みSBOXを通常のSBOXと
見なして、新たな撹乱用データを用いて図47の処理を
繰り返すことで、多重に変形することが可能である。図
47にしたがって、SBOX変形の手順を説明する。4
702では、SBOXを表引きするためのインデックス
idxを0に初期化する。4703では、idxを6ビッ
トのビット列とみなし、そのビット列を8個繰り返して
選られる48ビットの数値を計算し、inに代入する。
4703では、inと、48ビットアドレス撹乱用デー
タとのxorを計算し、inに代入する。4705で
は、inをSBOXの表引き用の48ビットの入力とし
て、図45に示されるSBXO表アクセス手順を呼び出
し、結果をresultとする。4706では、結果r
esultに対して、32ビットの出力撹乱用データと
のxorを計算し、resultに代入する。4707
では、変形済みSBOX表のインデックスidxの位置
に、resultを代入する。4708では、idxに
1を加える。4809では、idxが64未満かどうか
を判定し、64未満の場合は、4703からの処理を繰
り返す。idxが64になると、表の変換が終了する。
【0074】次に、図30を用いて、平文撹乱用データ
PXで変形したデータを、逆変換するために用いる、置
換済み平文撹乱用データPXo1(3003)、PXo2
(3007)、PXo3(3006)、PXo4(3010)の
生成について説明する。平文用データPXを転置処理I
P(3002)で転置し、上位32ビットと下位32ビ
ットにわけ、それぞれ転置済み平文撹乱用データ1のP
Xo1(3003)、転置済み平文撹乱用データ2のP
Xo2(3007)とする。この2つの値は、最終ラウ
ンドの処理が終わった後の、IP逆転置処理の直前で変
形データを最終的な結果にするための逆変形処理に用い
られる。つぎに、転置済み平文撹乱用データ1のPXo
1(3003)、転置済み平文撹乱用データ2のPXo
2(3007)に対して、拡大転置処理E(3005、
3009)を行ない、転置済み平文撹乱用データ3のP
Xo3(3006)、転置済み平文撹乱用データ4のP
Xo4(3010)とし、各ラウンドでの変形SBOX
表の表引き前の逆変形処理に用いる。
【0075】次に、図31を用いて、秘密鍵撹乱用デー
タと、各ラウンドごとの鍵の処理のうち、LS処理の直
後に行なう変形処理用に用いる、処理済み秘密鍵撹乱用
データKXo1(3109)、KXo2(3111)、
KXo3(3113)について、説明する。本実施例で
は、選択転置処理PC2での通常の出力を、Xとした場
合、 X xor XSoutX (式40) という値を出力するようにしたい。選択置換PC1をP
C1()と表現し、LS処理をLS()と表現し、鍵を
Kと表現する。本実施例では、鍵は秘密鍵撹乱用データ
KXとのxorで撹乱されるため、第1ラウンドでは、 K0=LS(PC1(KX xor K)) (式41) KXo1=LS(PC1(KX)) xor INV_PC2(SinX1) (式42) K1=KO xor KXo1 (式43) K1_OUT=PC2(K1) (式44) K1_OUTをPC2からの出力として使うことで、
(式40)を満たす値が得られる。つぎに、第2ラウン
ド用の値は、 KXo2=INV_PC2(SinX1)xor LS(INV_PC2(SinX1)) (式45) K2=LS(K1) xor KXo2 (式46) K2_OUT=PC2(K2) となる。また、たとえばラウンド3のように、LS処理
で2ビット分ローテートするラウンドでは、 KXo3=INV_PC2(SinX1)xor LS(LS(INV_PC2(SinX1))) (式47) K3=LS(LS(K2))xor KXo3 K3_OUT=PC2(K3) (式48) とすることで、(式40)を満たす値が得られる。LS
処理でシフトするビットの種類は2種類のみなので、ラ
ウンド1用のKXo1と、LS処理のシフト量が1ビッ
トのKXo2、LS処理のシフト量が2ヒ゛ットのKXo3
の3種類の値が必要となる。これらの3つの値で、ラウ
ンド16全ての変形処理を行なうことが出来る。(式4
1)、(式45)、(式47)で示されるKXo1、K
Xo2、KXo3の計算は、図31のシグナルフローの
通りである。本実施例では、変形処理にxor演算を用
いるので、図31中の、逆変換結合処理(3108、3
110、3112)はxor処理を用いる。
【0076】図32は、平文データPtext(320
1)を変形する処理の一実施例である。
【0077】平文撹乱用データPX(3203)を用い
て、第1変形処理(3202)で変形し、変形済み平文
データXPtext(3204)を作成する。ここで、
第1変形処理(3202)は、本実施例では、xor演
算を用いる。したがって、 XPtext=Ptext xor PX (式49) となる。XPtextを転置処理IP(3205)によ
り転置し、上位32ビットを転置済み変形平文1のXP
textL(3206)、下位32ビットを転置済み変
形平文2のXPtextR(3207)とする。この処
理は、第1変形処理(3202)を除けば、通常のDE
S暗号処理の処理フローに等しい。
【0078】ここで、別の実施例を図54に示す。この
別の実施例では、平文データ(5401)を転置処理I
P(5402)で処理した後に、第1変形手段(540
4、5407)で撹乱している。この実施例では、平文
撹乱用データPX(5301)の処理が、転置処理IP
を行わずに済む分だけ、効率的である。図53は、平文
撹乱用データの処理の1実施例である。
【0079】図33は、秘密鍵データK(3301)の
変形処理の一実施例で、秘密鍵撹乱用データKX(33
03)を用いて、第2変形処理(3302)にて、秘密
鍵データK(3301)を変形し、変形済み秘密鍵デー
タXK(3304)を得る。本実施例では、第2変形処
理手段として、xor演算を用いる。したがって、 XK=K xor KX (式50) となる。つぎに各ラウンドの処理を図34、図35、図
36、図37、図38に示す。
【0080】5つの図の違いは、ラウンドの違いで、第
1ラウンド、第5ラウンド、第9ラウンド、第13ラウ
ンドの処理が図35、第2ラウンド、第6ラウンド、第
10ラウンド、第14ラウンドの処理が、図35、第3
ラウンド、第7ラウンド、第11ラウンド、第15ラウ
ンドの処理が、図36、第4ラウンド、第8ラウンド、
第12ラウンドの処理が図37、第16ラウンドの処理
が図38に示されている。
【0081】図34の処理を順を追って説明する。ま
ず、撹乱処理を行わないときのXPtextL(340
1)に来るべき値をPtextL、同様に撹乱処理を行
わなかったときのXPtextR(3402)に来るべ
き値をPtextLとする。すると、XPtextLお
よびXPtextRは、 XPtextL=PTextL xor PXo1 (式51) XPtextR=PTextR xor PXo2 (式52) と表現される。同様に、XKL(3407)の値をXK
L0、撹乱処理を行わない場合のXKL(3407)に
来るべき値をKL、選択置換処理PC1を関数PC
1()として表現すると、 XKL0=KL xor PC1(KX) (式53) となる。第3変形処理(3409)を実行後のXKL
(3410)の値をXKL1とし、選択置換PC2の逆
関数をINV_PC2()とする。ここで、PC2()
で参照されないビットに付いては、INV_PC2()
では0になるものとする。第3逆変形処理(3409)
で使用される処理済秘密鍵撹乱用データは、そのラウン
ドで行われるローテート処理LS(3408)でシフト
されるビット数で決まり、1ビットの場合は、KXo
2、2ビットの場合は、KXo3、ラウンド1の場合
は、KXo1が用いられる。 XKL1=LS(XKL0) xor KXo1 (式54) さらに、(式53)と(式42)を代入すると、 XKL1 =LS(KL xor PC1(KX))xor KXo1 (式55) また、 LS(a xor b)=LS(a) xor LS(b) (式56) (a xor b) xor c =a xor (b xor c) (式57) という関係を用いて、(式54)を書き直すと、 XKL1=LS(KL xor PC1(KX))xor (LS(PC1(KX))xor INV_PC2(SinX1)) =LS(KL xor PC1(KX) xor PC1(KX)) xor INV_PC2(SinX1) =LS(KL) xor INV_PC2(SinX1) (式58) となる。この値に選択置換処理PC−2(3414)を
施した値をXKL1PC2とすると、 XKL1PC2=PC2(XKL1) =PC2(LS(KL) xor INV_PC2(SinX1)) =PC2(LS(KL)) xor SinX1 (式59) となる。ここでは、ラウンド1の場合について説明した
が、ラウンド5、ラウンド9、ラウンド13において
も、選択置換処理PC−2(3414)の出力は、撹乱
処理を行わない場合の値である PC2(LS(K
L))とSinX1のxorを行った値となる。
【0082】つぎにxor演算(3404)を行った結
果を、XPtextRXとし、拡大転置処理E(340
3)の演算を関数E()と表現すると、XPtextR
Xは、 XPtextRX =E(XPtextR) xor XKLPC2 (式60) となり、(式52)、(式59)を代入すると、 XPtextRX=E(PtextR xor PXo2) xor PC2(LS(KL)) xor SinX1 =E(PtextR)xor PC2(LS(KL)) xor E(PXo2) xor SinX1 (式61) となる。転置済み平文撹乱用データ4のPXo4(34
16)を用いて、第1逆変形処理(3415)で逆変形
した結果を、XPtextRX2とすると、第1逆変形
処理はxor演算であるので、 XPtextRX2=XPtextR xor PXo4 =E(PtextR) xor PC2(LS(KL)) xor E(PXo2) xor SinX1 xor PXo4 (式62) また、図30の実施例より、 PXo4=E(PXo2) (式63) であるので、(式62)は、 XPtextRX2=E(PtextR) xor PC2(LS(KL)) xor E(PXo2) xor SinX1 xor E(PXo2) =E(PtextR) xor PC2(LS(KL)) xor SinX1 (式64) となる。また、撹乱処理を行わない場合の、変形SBO
Xアクセス処理(3418)の入力となる値Ptext
RX2は、 PtextRX2 =E(PtextR) xor PC2(LS(KL)) (式65) であり、(式64)は、 XPtextRX2 =PtextRX2 xor SinX1 (式66) となる。撹乱処理を行わない値と比較すると、SBOX
のアドレス撹乱用データSinX1とxorを取った値
と等しくなるため、変形済みSBOX表(3419)を
アクセス屡事ができる。アクセスした結果には、Sou
tXによる変形が行われているので、xor処理(34
21)への入力は、撹乱を行わない場合のSBOXの出
力をSResultとすると、 P(SResult xor SoutX (式67) となる。(式67)と転置済み変形平文1のXPtex
tL(3401)とのxor(3421)を計算する
と、 P(Sresult xor SoutX) xor XPtextL =P(Sresult)xor P(SoutX) xor PtextL x or PTextL xor PXo1 (式68) となる。この値は、転置済み変形平文2のXPtext
R(3423)に代入されるが、ここで、撹乱を行わな
い場合のXPtextR(3423)に代入される値
を、PtextR2、撹乱を行った場合の値をXPte
xtR2とすると、 XPtextR2=PtextR2 xor P(SoutX) xor PXo1 (式69) 同様にして、撹乱を行わない場合のXPtextL(3
422)に代入される値を、PtextL2、撹乱を行
った場合の値をXPtextL2とすると、 XPtextL2=PtextL2 xor PXo2 (式70) (式69)、(式70)の値は、次のラウンドの図35
で使用される。(式69)と(式51)を比較した場
合、PXo2の代わりにPXo1が使われ、さらにP
(SoutX)でのxorが加わっている。この違いに
より、図34と図35では、第1逆変形処理(351
5)に用いられる転置済み平文撹乱用データ(351
6)が、PXo4からPXo3に替わり、P(Sout
X)による変形を元に戻すために、第4逆変形処理(3
517)の処理が加わっている。第4逆変形処理(35
17)にたどり着くまでに、P(SoutX)は、拡大
置換処理E()が施され、E(P(SoutX))とな
り、転置済みSBOX撹乱用データXSoutXと等し
くなる。
【0083】図35の撹乱を行わない場合のXPtex
tR(3525)に代入される値を、PtextR3、
撹乱を行った場合の値をXPtextR3とし、、撹乱
を行わない場合のXPtextL(3524)に代入さ
れる値を、PtextL3、撹乱を行った場合の値をX
PtextL3とすると、 XPtextR3=PtextR3 xor P(SoutX) xor PXo2 (式71) XPtextL3=PtextL3 xor P(SoutX) xor PXo1 (式72) となる。
【0084】(式71)、(式72)の値は、次のラウ
ンドの図36で使用される。(式71)と(式69)を
比較した場合、PXo1の代わりにPXo2が使われて
いる。この違いにより、図35と図36では、第1逆変
形処理(3615)に用いられる転置済み平文撹乱用デ
ータ(3516)が、PXo3からPXo4に替わって
いる。また、xor処理(3623)の2つの入力のい
ずれにも、P(SoutX)がxorされているため、
P(SoutX)の影響が消える。その結果、図36の
撹乱を行わない場合のXPtextR(3625)に代
入される値を、PtextR4、撹乱を行った場合の値
をXPtextR4とし、撹乱を行わない場合のXPt
extL(3624)に代入される値を、PtextL
4、撹乱を行った場合の値をXPtextL4とする
と、 XPtextR4=PtextR4 xor PXo1 (式73) XPtextL4=PtextL4 xor P(SoutX) xor PXo2 (式74) となる。
【0085】(式73)、(式74)の値は、次のラウ
ンドの図37で使用される。(式73)と(式71)を
比較した場合、PXo2の代わりにPXo1が使われて
おり、またP(SoutX)によるxorが含まれてい
ない。この違いにより、図36と図37では、第1逆変
形処理(3715)に用いられる転置済み平文撹乱用デ
ータ(3516)が、PXo4からPXo3に替わって
いる。P(SoutX)による変形を元に戻す必要が無
いため、第4逆変形処理が無くなっている。また、xo
r処理(3721)の2つの入力のいずれにも、P(S
outX)がxorされているため、P(SoutX)
の影響が消える。その結果、図37の撹乱を行わない場
合のXPtextR(3722)に代入される値を、P
textR5、撹乱を行った場合の値をXPtextR
5とし、撹乱を行わない場合のXPtextL(372
4)に代入される値を、PtextL5、撹乱を行った
場合の値をXPtextL5とすると、 XPtextR5=PtextR5 xor PXo2 (式75) XPtextL5=PtextL5 xor PXo1 (式76) となり、(式75)、(式76)は(式51)、(式5
2)と同様の変形が行われているため、次のラウンドの
処理が図34の実施例で行うことが出来る。
【0086】図38は、図37の処理とほぼ同様である
が、最後にXPtextLとXPtextRの交換を行
っていない。したがって、図38の撹乱を行わない場合
のXPtextR(3822)に代入される値を、Pt
extR6、撹乱を行った場合の値をXPtextR6
とし、撹乱を行わない場合のXPtextL(382
4)に代入される値を、PtextL6、撹乱を行った
場合の値をXPtextL6とすると、 XPtextR6=PtextR6 xor PXo1 (式77) XPtextL6=PtextL6 xor PXo2 (式78) となる。
【0087】図39は、最終結果を求めるための処理フ
ローを示す。第5逆変換処理(3905)により、転置
済み平文撹乱用データ1のPXo2(3904)を用い
て、転置済み変形平文1のXPtextL(3901)
を逆変形し、第6逆変換処理(3906)により、転置
済み平文撹乱用データ2のPXo1(3903)を用い
て、転置済み変形平文2のXPtextR(3902)
を逆変形する。これにより、変形がすべて取り除かれ
る。 PtextR6=XPtextR6 xor PXo1 (式79) PtextL6=XPtextL6 xor PXo2 (式80) 最後に、転置処理IP−1(3907)を用いて、第5
逆変換処理(3905)の結果と第6逆変換処理(39
06)の結果を入力として、転置処理を行い、最終的な
暗号文データCtext(3908)を得る。最終的な
暗号データCtextを得る直前まで、どの時点をとっ
ても、データは変形を受けたままとなるので、電流波形
から本来のデータを推測することが困難に成る。
【0088】SBOX表アドレス撹乱用データSin
X、SBOX表データ撹乱用データSoutXおよび変
形SBOX表の作成を、図19もしくは図20もしくは
図21もしくは図22のような実施例で行ない、ハミン
グウエイトが常に一定とし、電流波形から本来のデータ
を推測することがさらに困難となった実施例が、請求項
28の実施例となる。
【0089】請求項29の一実施例を、図39、40、
41、42、43、44、45、46、47、52に示
す。基本的な手順は請求項27の実施例と同じである
が、SBOXの変形を2回行っている点が、実施例27
と違う。SBOXの変形の一実施例を図52に示す。撹
乱用データとしては、SBOXアドレス撹乱用データS
inX1(5201)、転置済みSBOXデータ撹乱用
データXSout1(5210)、SBOXアドレス撹
乱用データSinX2(5212)、転置済みSBOX
データ撹乱用データXSoutX2(5218)を用
い、第2変形済みSBOX表(5214)を生成する。
SBOX撹乱用データの個数が増えたため、図40に示
される、ラウンド1、ラウンド5、ラウンド9、ラウン
ド13の処理の一実施例において、SBOXアドレス撹
乱用データSinX2(4015)を用いて、第3変形
処理(4014)を行う処理が追加となり、図41に示
される、ラウンド2、ラウンド6、ラウンド10、ラウ
ンド14の処理の一実施例において、SBOXアドレス
撹乱用データSinX2(4115)を用いて、第3変
形処理(4114)を行う処理と、転置済みSBOXデ
ータ撹乱用データXSoutX2(4121)を用い
て、第4逆変形処理(4120)が追加となり、図42
に示される、ラウンド3、ラウンド7、ラウンド11、
ラウンド15の処理の一実施例において、SBOXアド
レス撹乱用データSinX2(4215)を用いて、第
3変形処理(4214)を行う処理と、転置済みSBO
Xデータ撹乱用データXSoutX2(4221)を用
いて、第4逆変形処理(4220)が追加となり、図4
3に示される、ラウンド4、ラウンド8、ラウンド12
の処理の一実施例において、SBOXアドレス撹乱用デ
ータSinX2(4315)を用いて、第3変形処理
(4314)を行う処理が追加となり、図44に示され
る、ラウンド16の処理の一実施例において、SBOX
アドレス撹乱用データSinX2(4415)を用い
て、第3変形処理(4414)を行う処理が追加となっ
ている。
【0090】SBOX表アドレス撹乱用データSinX
1、SBOX表アドレス撹乱用データSinX2、SB
OX表データ撹乱用データSoutX1、SBOX表デ
ータ撹乱用データSoutX2及び第2変形SBOX表
の作成を、図26もしくは図27もしくは図28のよう
な実施例で行った場合が、請求項30の実施例となる。
【0091】SBOX表アドレス撹乱用データSinX
1、SBOX表アドレス撹乱用データSinX2、SB
OX表データ撹乱用データSoutX1、SBOX表デ
ータ撹乱用データSoutX2及び第2変形SBOX表
の作成を、図26もしくは図27もしくは図28のよう
な実施例で行ない、かつハミングウエイトの検査を、全
ビット通じてのハミングウエイトではなく、中央演算処
理装置で一度に処理できるビット数に区切って評価した
際にも、ハミングウエイトのが一定となるようにハミン
グウエイトの検査を実施したものが、請求項31の実施
例となる。
【0092】
【発明の効果】本頑発明によれば、ICカードチップで
の処理データを変形することと、その変形に用いる撹乱
用データの生成時に制約を加えることにより、消費電流
の波形から、処理や暗号鍵の推測を困難にする。
【図面の簡単な説明】
【図1】図1は、ICカードのハードウエア構成の例を
示す図である。
【図2】図2は、ICカード用チップ内のハードウエア
構成の例を示す図である。
【図3】図3は、消費電流の波形例を示す図である。
【図4】図4は、一つの撹乱用データを使ったデータ変
形の手順の例を示すフローチャートである。
【図5】図5は、撹乱用データをあらかじめ複数用意
し、選択することで撹乱用データを生成する、一つの撹
乱用データを使ったデータ変形の手順の例を示すフロー
チャートである。
【図6】図6は、ハミングウエイト一定の乱数生成方法
を示すフローチャートである。
【図7】図7は、ハミングウエイト一定の乱数生成方法
の例を示すフローチャートである。
【図8】図8は、ハミングウエイト一定の値の一覧表作
成方法の例を示すフローチャートである。
【図9】図9は、ハミングウエイトが一定でかつ、デー
タ処理手順処理後のハミングウエイト一定の値の一覧表
作成方法の例を示すフローチャートである。
【図10】図10は、ビット長の短いハミングウエイト
一定の一覧表から、ビット長の長いハミングウエイト一
定の乱数の生成方法の例を示すフローチャートである。
【図11】図11は、撹乱用データおよび処理済撹乱用
データ生成方法の例を示すフローチャートである。
【図12】図12は、撹乱用データおよび処理済撹乱用
データ生成方法の例を示すフローチャートである。
【図13】図13は、表引きによるデータ処理を、2つ
の撹乱用データを用いてタ変形して処理する方法の例を
示すフローチャートである。
【図14】図14は、撹乱用データおよび変形済み表生
成方法の例を示すフローチャートである。
【図15】図15は、撹乱用データおよび変形済み表生
成方法の例を示すフローチャートである。
【図16】図16は、撹乱用データおよび変形済み表生
成方法。
【図17】表引きと1つのデータ処理手段からなるデー
タ処理を、2つの撹乱用データを用いて変形して処理す
る方法の例を示すフローチャートである。
【図18】図18は、撹乱用データおよび変形済み表生
成方法の例を示すフローチャートである。
【図19】図19は、撹乱用データおよび変形済み表生
成方法の例を示すフローチャートである。
【図20】図20は、撹乱用データおよび変形済み表生
成方法の例を示すフローチャートである。
【図21】図21は、撹乱用データおよび変形済み表生
成方法の例を示すフローチャートである。
【図22】図22は、撹乱用データおよび変形済み表生
成方法の例を示すフローチャートである。
【図23】図23は、表引きと1つのデータ処理手段か
らなる処理を、2回繰り返すデータ処理を、2つの撹乱
用データを用いて変形して処理する方法の例を示すフロ
ーチャートである。
【図24】図24は、表引きと1つのデータ処理手段か
らなる処理を、2回繰り返すデータ処理を、4つの撹乱
用データを用いて変形して処理する方法の例を示すフロ
ーチャートである。
【図25】図25は、撹乱用データおよび変形済み表生
成方法の例を示すフローチャートである。
【図26】図26は、撹乱用データおよび変形済み表生
成方法の例を示すフローチャートである。
【図27】図27は、撹乱用データおよび変形済み表生
成方法の例を示すフローチャートである。
【図28】図28は、撹乱用データおよび変形済み表生
成方法の例を示すフローチャートである。
【図29】図29は、DES処理用SBOX撹乱用デー
タおよび変形SBOX生成方法の例を示すフローチャー
トである。
【図30】図30は、DES処理用平文撹乱用データ生
成方法の例を示すフローチャートである。
【図31】図31は、DES処理用秘密鍵撹乱用データ
生成方法の例を示すフローチャートである。
【図32】図32は、平文変形方法の例を示すフローチ
ャートである。
【図33】図33は、秘密鍵変形方法の例を示すフロー
チャートである。
【図34】図34は、DES第1、第5、第9、第13
ラウンド処理方法の例を示すフローチャートである。
【図35】図35は、DES第2、第6、第10、第1
4ラウンド処理方法の例を示すフローチャートである。
【図36】図36は、DES第3、第7、第11、第1
5ラウンド処理方法の例を示すフローチャートである。
【図37】図37は、DES第4、第8、第12ラウン
ド処理方法の例を示すフローチャートである。
【図38】図38は、DES第16ラウンド処理方法の
例を示すフローチャートである。
【図39】図39は、DES最終逆変形方法の例を示す
フローチャートである。
【図40】図40は、DES第1、第5、第9、第13
ラウンド処理方法の例を示すフローチャートである。
【図41】図41は、DES第2、第6、第10、第1
4ラウンド処理方法の例を示すフローチャートである。
【図42】図42は、DES第3、第7、第11、第1
5ラウンド処理方法の例を示すフローチャートである。
【図43】図43は、DES第4、第8、第12ラウン
ド処理方法の例を示すフローチャートである。
【図44】図44は、DES第16ラウンド処理方法の
例を示すフローチャートである。
【図45】図45は、SBOXアクセス方法の例を示す
フローチャートである。
【図46】図46は、SBOX表の例を示す図である。
【図47】図46は、SBOX表変形方法の例を示すフ
ローチャートである。
【図48】図48は、ハミングウエイト一定撹乱用かつ
処理済のハミングウエイトも一定のデータ生成方法の例
を示すフローチャートである。
【図49】図49は、ハミングウエイト一定乱数生成方
式の例を示すフローチャートである。
【図50】図50は、ハミングウエイト一定乱数生成方
式の例を示すフローチャートである。
【図51】図51は、ハミングウエイト一定乱数生成方
式の例を示すフローチャートである。
【図52】図52は、DES処理用SBOX撹乱用デー
タおよび変形SBOX生成方法の例を示すフローチャー
トである。
【図53】図53は、DES処理用撹乱用データ生成方
法の例を示すフローチャートである。
【図54】図54は、DES処理中間データ撹乱方法の
例を示すフローチャートである
【図55】図55は、図12に対応するテーブルの例を
示す図である。
【図56】図56は、第1撹乱用データ格納手段(15
01)に格納された第1撹乱用データ、及び第2撹乱用
データ格納手段(1502)に格納された第2撹乱用デ
ータの例を示す図である。
【図57】図57は、表格納手段(1507)に格納さ
れたデータの例を示す図である。
【図58】図58は、第1撹乱用データ、第2撹乱用デ
ータ及び変形済み表のテ−ブルの例を示す図である。
【符号の説明】
401:入力データ、402:データ変形処理手段、4
03:攪乱用データ、404:変形データ、405:変
形データ処理手段、406:変形データ、407:変形
データ、408:変形済み攪乱用データ、409:処理
済データ、502:ハミングウエート一定の攪乱用デー
タ、503:攪乱用データ処理手段、504:処理済攪
乱用データ、505:ハミングウエイト検査手段、60
1:nビット乱数発生手段、602:nビット乱数、6
03:ビット反転処理手段、604:反転nビット乱
数、605:データ統合手段、606:ハミングウエイ
ト一定2nビット乱数。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 渡邊 高志 東京都国分寺市東恋ヶ窪一丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 大木 優 東京都国分寺市東恋ヶ窪一丁目280番地 株式会社日立製作所中央研究所内 Fターム(参考) 5B035 AA13 BB09 CA11 CA29 5J104 AA47 JA04 NA02 NA07 NA09 NA20 NA22 NA35 NA40 NA42

Claims (31)

    【特許請求の範囲】
  1. 【請求項1】 プログラムを格納するプログラム格納
    部、データを保存するデータ格納部を有する記憶装置と
    プログラムにしたがい、所定の処理を実行する中央演算
    装置とを有し、 プログラムは、中央演算装置の指示を与える処理命令か
    ら構成される一つ以上のデータ処理手段からなり、 一つのデータ処理手段が、その入力データを処理し、処
    理済データを出力する入力データ処理手段を含み、且つ
    生成される撹乱用データXiのハミングウエイトが常に一
    定値であり、且つ、生成されたXiを前記入力データ処理
    手段で処理済撹乱用データXoに変換した後のハミングウ
    エイトも常に一定になるような、撹乱用データXiを生成
    する撹乱用データ生成手段を有し、 前記撹乱用データ生成手段は、 前記撹乱用データXiを使って入力データD1を変形し、変
    形データH1を作成するデータ変形手段と、 変形データH1を前記入力データ処理手段と同じ処理を行
    い、処理済変形データH2を得る変形データ処理手段と、 前記撹乱用データXiに前記入力データ処理手段と同じ処
    理を行い、処理済撹乱用データXoを生成する撹乱用デー
    タ処理手段と、 処理済撹乱用データXoを使用して処理済変形データH2を
    処理し、入力データD1を入力データ処理手段で処理した
    結果である処理済データD2を得るデータ逆変形処理手段
    と、を有することを特徴とする情報処理装置。
  2. 【請求項2】 生成される撹乱用データXiのハミングウ
    エイトが、常に一定値であり、且つ、生成されたXiを予
    め定義された入力データ処理に従って処理して生成した
    処理済撹乱用データXoのハミングウエイトも常に一定で
    あるような、撹乱用データおよび処理済撹乱用データ生
    成手段であって、 撹乱用データおよび処理済撹乱用データを生成する手段
    は、ハミングウエイト一定の乱数を生成する撹乱用デー
    タ生成手段と、撹乱用データ処理手段と、及びハミング
    ウエイト検査手段とを有し、 前記撹乱用データ生成手段で生成されたデータを撹乱用
    データ処理手段で処理し、処理結果をハミングウエイト
    検査手段でハミングウエイトが所定の値であるかを検査
    し、所定の値でない場合に、撹乱用データ生成手段のデ
    ータ生成からやり直すように制御信号を送るハミングウ
    エイト検査手段を有し、ハミングウエイトが一定で、撹
    乱用データ処理手段で処理した後も、ハミングウエイト
    が一定となるような撹乱用データを生成するように構成
    された、撹乱用データおよび処理済撹乱用データ生成手
    段を、有する情報処理装置。
  3. 【請求項3】 前記撹乱用データおよび処理済撹乱用デ
    ータを生成する手段が、あらかじめ、ハミングウエイト
    が一定でかつ、撹乱用データ処理手段で処理を行った結
    果も、ハミングウエイトが一定となるようなデータを選
    択して複数格納した撹乱用データ格納手段と、撹乱用デ
    ータ格納手段に格納されたデータをランダムに選択する
    撹乱用データ選択手段と、選択された撹乱用データXiを
    処理して、処理済の撹乱用データを生成する撹乱用デー
    タ処理をなす手段を有することを特徴とした、請求項1
    に記載の情報処理装置。
  4. 【請求項4】 前記撹乱用データおよび処理済撹乱用デ
    ータを生成する手段として、あらかじめ、ハミングウエ
    イトが一定でかつ、撹乱用データ処理手段で処理を行っ
    た結果もハミングウエイトが一定となるようなデータ
    を、撹乱用データ処理手段で処理した結果と組み合わせ
    て、複数組格納した撹乱用データおよび処理済撹乱用デ
    ータ格納手段と、撹乱用データおよび処理済撹乱用デー
    タ格納手段に格納されたデータをランダムに選択する撹
    乱用データおよび処理済撹乱用データ選択手段とを有す
    ることを特徴とした、請求項1に記載の情報処理装置。
  5. 【請求項5】 前記撹乱用データおよび処理済撹乱用デ
    ータ格納手段に格納するデータの組の数が遇数個であ
    り、且つ撹乱用データおよび処理済撹乱用データのいず
    れのビットについても、0となるか1となるかの確率が
    0.5となるように選択したデータを格納している撹乱用
    データおよび処理済撹乱用データ格納手段を有すること
    を特徴とする、請求項4に記載の情報処理装置。
  6. 【請求項6】 ハミングウエイト一定の乱数を生成する
    手段として、発生する乱数のビット数の半分のビット数
    の乱数を発生させる乱数発生手段と、ビット反転演算を
    計算するビット反転演算手段と、乱数発生手段で生成さ
    れたデータと、ビット反転演算手段の計算結果を結合し
    て、所定のビット数の数値を生成する、データ結合手段
    から成る、ハミングウエイト一定乱数生成手段を、有す
    ることを特徴とする情報処理装置。
  7. 【請求項7】 ハミングウエイト一定の乱数を生成する
    手段として、乱数発生手段と、前記乱数発生手段により
    生成された乱数のハミングウエイト計算手段と、前記ハ
    ミングウエイト計算手段の結果を検査し、目標ハミング
    ウエイトと等しくない場合に乱数発生手段に対して乱数
    の再生成を行わせる、ハミングウエイト検査手段とを有
    することを特徴とした、ハミングウエイト一定乱数生成
    手段を、有することを特徴とする情報処理装置。
  8. 【請求項8】 ハミングウエイト一定の乱数を生成する
    手段として、発生させたい乱数のビット数の約数となる
    ビット数ハミングウエイト一定の乱数を発生させるハミ
    ングウエイト一定部分乱数発生手段と、発生させたい乱
    数のビット数に達するまで、前記ハミングウエイト一定
    部分乱数発生手段に乱数を生成させる乱数発生制御手段
    と、発生した乱数を結合して、所定のビット数の乱数と
    するデータ結合手段からなる、ハミングウエイト一定乱
    数生成手段を、有することを特徴とする情報処理装置。
  9. 【請求項9】 プログラムを格納するプログラム格納
    部、データを保存するデータ格納部を有する記憶装置と
    プログラムにしたがい、所定の処理を実行する中央演算
    装置を有し、プログラムは、中央演算装置の指示を与え
    る処理命令から構成される一つ以上のデータ処理手段を
    有し、 一つのデータ処理手段が、インデックスとそれに対応し
    たデータから成る表を有し、入力データをインデックス
    として表引きを行い、インデックスに対応したデータを
    処理済データとして出力する入力データ処理手段を有
    し、 ハミングウエイトの値が常に一定となる第1の撹乱用デ
    ータX1iと、 ハミングウエイトの値が常に一定となる第2の撹乱用デ
    ータX2iと、 第1撹乱用データX1iでインデックスを撹乱し、 第2撹乱用データX2iでインデックスに対応したデータ
    を撹乱することにより生成された変形済み表を使い、 前記撹乱用データXiを使って入力データD1を変形し、変
    形データH1を作成するデータ変形手段と、 変形データH1をインデックスとして、前記変形済み表を
    引いて変形データH2を取り出す変形済み表アクセス処
    理手段と、 変形データH2を第2撹乱用データX2iを用いて、 入力データD1を入力データ処理手段で処理した結果であ
    る処理済データD2を得るデータ逆変形処理手段とを有す
    る、ことを特徴とする情報処理装置。
  10. 【請求項10】 第1撹乱用データX1iおよび第2撹乱
    用データX2iおよび変形済み表を生成する手段として、
    第1撹乱用データX1iを生成するための第1ハミングウ
    エイト一定乱数生成手段と、第2撹乱用データX2iを生
    成するための第2ハミングウエイト一定乱数生成手段
    と、第1撹乱用データX1iと第2撹乱用データX2iと表を
    用いて、表のインデックスを第1撹乱用データX1iで変
    形し、表のデータを第2撹乱用データX2iで変形し、変
    形済み表を生成する表変形手段を有すること、を特徴と
    する請求項9に記載の情報処理装置。
  11. 【請求項11】 第1撹乱用データX1iおよび第2撹乱
    用データX2iおよび変形済み表を生成する手段として、
    ハミングウエイト一定の値を予め複数格納している第1
    撹乱用データ格納手段と、 第1撹乱用データ格納手段に格納されたデータをランダ
    ムに選択し、第1撹乱用データX1iとするための第1撹
    乱用データ選択手段と、 ハミングウエイト一定の値を予め複数格納している第2
    撹乱用データ格納手段と、第2撹乱用データ格納手段に
    格納されたデータをランダムに選択し、第2撹乱用デー
    タX2iとするための第2撹乱用データ選択手段と、 第1撹乱用データX1iと第2撹乱用データX2iと表を用い
    て、表のインデックスを第1撹乱用データX1iで変形
    し、表のデータを第2撹乱用データX2iで変形し、変形
    済み表を生成する表変形手段を有することを特徴とす
    る、請求項9に記載の情報処理装置。
  12. 【請求項12】 第1撹乱用データX1iおよび第2撹乱
    用データX2iおよび変形済み表を生成する手段として、
    第1撹乱用データになりうる、ハミングウエイト一定の
    値と、第2撹乱用データになりうる、ハミングウエイト
    一定の値と前記第1撹乱用データとなり得る値と前記第
    2撹乱用データとなり得る値と表を用いて、あらかじめ
    表のインデックスを第1撹乱用データX1iで変形し、表
    のデータを第2撹乱用データX2iで変形して作成した変
    形済み表を、作成したときに用いた第1撹乱用データと
    第2撹乱用データを組にしたものを、複数組格納した第
    一撹乱用データ、第2撹乱用データおよび変形済み表格
    納手段と、 第一撹乱用データ、第2撹乱用データおよび変形済み表
    格納手段からランダムに、 第1撹乱用データと第2撹乱用データと変形済み表を選
    択する、第1撹乱用データ第2撹乱用データおよび変形
    済み表選択手段を有することを特徴とする、請求項9に
    記載の情報処理装置。
  13. 【請求項13】 プログラムを格納するプログラム格納
    部、データを保存するデータ格納部を有する記憶装置と
    プログラムにしたがい、所定の処理を実行する中央演算
    装置を有し、プログラムは、中央演算装置の指示を与え
    る処理命令から構成される一つ以上のデータ処理手段か
    らなり、 一つのデータ処理手段が、表引きを行い、表引き結果を
    データ処理処理し、処理結果を処理済データとして出力
    する入力データ処理手段を有し、且つ、 ハミングウエイトの値が常に一定となる第1の撹乱用デ
    ータX1iと、ハミングウエイトの値が常に一定となり、
    かつ前記表引き後に行われるデータ処理を行った結果の
    ハミングウエイトも常に一定となる様な第2の撹乱用デ
    ータX2iと、前記第2の撹乱用データX2iをデータ処理し
    た結果の処理済第2撹乱用データX2iと、 第1撹乱用データX1iでインデックスを撹乱し、 第2撹乱用データX2iでインデックスに対応したデータ
    を撹乱することにより生成された変形済み表を使い、 前記撹乱用データXiを使って入力データD1を変形し、変
    形データH1を作成するデータ変形手段と、 変形データH1をインデックスとして、前記変形済み表を
    引いて変形データH2を取り出す変形済み表アクセス処
    理手段と、 処理済変形データH2を処理し、処理済変形データH3
    を得る変形済みデータ処理手段と、 処理済み変形データH3を処理済第2撹乱用データX2o
    を用いて、入力データD1を用いて表引きを行い、表引き
    結果をデータ処理処理した結果である処理済データD2を
    得るデータ逆変形処理手段とを有することを特徴とする
    情報処理装置。
  14. 【請求項14】 第1撹乱用データX1iおよび第2撹乱
    用データX2iおよび処理済第2撹乱用データX2oおよび変
    形済み表を生成する手段として、 第1撹乱用データX1iを生成するための第1ハミングウ
    エイト一定乱数生成手段と、 第2撹乱用データX2iを生成するための第2ハミングウ
    エイト一定乱数生成手段と、 第2撹乱用データX2iを処理し、処理済第2撹乱用デー
    タX2oを生成する撹乱用データ処理手段と、 処理済第2撹乱用データX2oのハミングウエイトを計算
    し、処理済第2撹乱用データX2oのハミングウエイトが
    不適切な場合は第2ハミングウエイト一定乱数生成手段
    に対して、 第2撹乱用データX2iの再生成を行わせる、ハミングウ
    エイト検査手段と、 第1撹乱用データX1iと第2撹乱用データX2iと表を用い
    て、表のインデックスを第1撹乱用データX1iで変形
    し、表のデータを第2撹乱用データX2iで変形し、変形
    済み表を生成する表変形手段とを有することを特徴とす
    る、請求項13に記載の情報処理装置。
  15. 【請求項15】 前記第1撹乱用データX1iおよび第2
    撹乱用データX2iおよび処理済第2撹乱用データX2oおよ
    び変形済み表を生成する手段として、 ハミングウエイト一定の値を予め複数格納している第1
    撹乱用データ格納手段と、 第1撹乱用データ格納手段に格納されたデータをランダ
    ムに選択し、第1撹乱用データX1iとするための第1撹
    乱用データ選択手段と、 ハミングウエイト一定かつ撹乱用データ処理手段で処理
    した結果のハミングウエイトも一定となる様な値を複数
    格納している第2撹乱用データ格納手段と、第2撹乱用
    データ格納手段に格納されたデータをランダムに選択
    し、第2撹乱用データX2iとするための第2撹乱用デー
    タ選択手段と、 第2撹乱用データX2iを処理し、処理済第2撹乱用デー
    タX2oを生成する撹乱用データ処理手段と、 第1撹乱用データX1iと第2撹乱用データX2iと表を用い
    て、表のインデックスを第1撹乱用データX1iで変形
    し、表のデータを第2撹乱用データX2iで変形し、変形
    済み表を生成する表変形手段とを有することを特徴とす
    る、請求項13に記載の情報処理装置。
  16. 【請求項16】 前記第1撹乱用データX1iおよび処理
    済第2撹乱用データX2oおよび変形済み表を生成する手
    段として、ハミングウエイト一定の値を予め複数格納し
    ている第1撹乱用データ格納手段と、 第1撹乱用データ格納手段に格納されたデータをランダ
    ムに選択し、第1撹乱用データX1iとするための第1撹
    乱用データ選択手段と、 ハミングウエイト一定かつ撹乱用データ処理手段で処理
    した結果のハミングウエイトも一定となる様な、第2撹
    乱用データと処理済第2撹乱用データの組を複数組格納
    している第2撹乱用データおよび処理済第2撹乱用デー
    タ格納手段と、第2撹乱用データおよび処理済第2撹乱
    用データ格納手段に格納された、第2撹乱用データと処
    理済第2撹乱用データの組をランダムに選択し、第2撹
    乱用データX2iおよび処理済第2撹乱用データX2oとする
    ための第2撹乱用データおよび処理済第2撹乱用データ
    選択手段と、 第1撹乱用データX1iと第2撹乱用データX2iと表を用い
    て、表のインデックスを第1撹乱用データX1iで変形
    し、表のデータを第2撹乱用データX2iで変形し、変形
    済み表を生成する表変形手段と、を有することを特徴と
    する、請求項13に記載の情報処理装置。
  17. 【請求項17】 前記第1撹乱用データX1iおよび処理
    済第2撹乱用データX2oおよび変形済み表を生成する手
    段として、 ハミングウエイト一定の第1撹乱用データに使用できる
    値と、 ハミングウエイト一定かつ撹乱用データ処理手段で処理
    した結果のハミングウエイトも一定となる様な、第2撹
    乱用データに使用できる値を処理した結果選られる処理
    済第2撹乱用データに使用できる値と、第1撹乱用デー
    タに使用できる値と前記処理済第2撹乱用データに使用
    できる値を生成したときに用いた第2撹乱用データに使
    用できる値を用いて、表のインデックスを第1撹乱用デ
    ータX1iに使用できる値で変形し、表のデータを第2撹
    乱用データX2iに使用できる値で変形し、変形済み表を
    生成し、前記第1撹乱用データに使用できる値と処理済
    第2撹乱用データに使用できる値と変形済み表の組を複
    数格納した、第1撹乱用データおよび処理済第2撹乱用
    データおよび変形済み表格納手段と、 第1撹乱用データと処理済第2撹乱用データと変形済み
    表の組をランダムに選択し、 第1撹乱用データX1iと処理済第2撹乱用データX2oと処
    理済表とするための、第1撹乱用データおよび処理済第
    2撹乱用データおよび変形済み表選択手段とを有するこ
    とを特徴とする、請求項13に記載の情報処理装置。
  18. 【請求項18】 プログラムを格納するプログラム格納
    部、データを保存するデータ格納部を有する記憶装置と
    プログラムにしたがい、所定の処理を実行し、データ処
    理を行なう中央演算装置を有し、 プログラムは、中央演算装置の指示を与える処理命令か
    ら構成される一つ以上のデータ処理手段を有し、 一つのデータ処理手段が、表引きを行い、表引き結果を
    データ処理処理し、処理結果を処理済データとして出力
    する入力データ処理手段を含み、前記処理手段を複数回
    繰り返すことで処理結果を生成し、且つ、 ハミングウエイトの値が常に一定となる第1の撹乱用デ
    ータX1iと、ハミングウエイトの値が常に一定となり、
    かつ前記表引き後に行われるデータ処理を行った結果の
    ハミングウエイトも常に一定となる様な第2の撹乱用デ
    ータX2iと、前記第2の撹乱用データX2iをデータ処理し
    た結果の処理済第2撹乱用データX2oと、第1撹乱用デ
    ータX1iでインデックスを撹乱し、第2撹乱用データX2i
    でインデックスに対応したデータを撹乱することにより
    生成された変形済み表を使い、前記撹乱用データXiを使
    って入力データD1を変形し、変形データH1を作成するデ
    ータ変形手段と、 変形データH1をインデックスとして、前記変形済み表を
    引いて変形データH2を取り出す変形済み表アクセス処
    理手段と、処理済変形データH2を処理し、処理済変形
    データH3を得る変形済みデータ処理手段と、 第1撹乱用データX1iを用いて処理済み変形データH3
    を変形し、処理済変形データH4を得るデータ変形処理
    手段と、 処理済第2撹乱用データX2oを用いて処理済み変形デー
    タH4を変形し、処理済変形データH5を得るデータ変
    形処理手段と、 処理済変形データH5をインデックスとして、前記変形
    済み表を引いて変形データH6を取り出す変形済み表ア
    クセス処理手段と、処理済変形データH6を処理し、処
    理済変形データH7を得る変形済みデータ処理手段と、 処理済第2撹乱用データX2oを用いて処理済み変形デー
    タH7を変形し、入力データD1を用いて表引きを行い、
    表引き結果をデータ処理処理し、さらにその結果を用い
    て表引きを行い、表引き結果をデータ処理処理した結果
    である処理済データD2を得るデータ逆変形処理手段と、
    を有することを特徴とする情報処理装置。
  19. 【請求項19】 第1撹乱用データX1iおよび処理済第
    2撹乱用データX2oおよび変形済み表を生成する手段と
    して、 第1撹乱用データX1iを生成するための第1ハミングウ
    エイト一定乱数生成手段と、 第2撹乱用データX2iを生成するための第2ハミングウ
    エイト一定乱数生成手段と、 第2撹乱用データX2iを処理し、処理済第2撹乱用デー
    タX2oを生成する撹乱用データ処理手段と、 処理済第2撹乱用データX2oのハミングウエイトを計算
    し、処理済第2撹乱用データX2oのハミングウエイトが
    不適切な場合は第2ハミングウエイト一定乱数生成手段
    に対して、第2撹乱用データX2iの再生成を行わせる、
    ハミングウエイト検査手段と、第1撹乱用データX1iと
    第2撹乱用データX2iと表を用いて、表のインデックス
    を第1撹乱用データX1iで変形し、表のデータを第2撹
    乱用データX2iで変形し、変形済み表を生成する表変形
    手段とを有することを特徴とする、請求項18に記載の
    情報処理装置。
  20. 【請求項20】 前記第1撹乱用データX1iおよび処理
    済第2撹乱用データX2oおよび変形済み表を生成する手
    段として、ハミングウエイト一定の値を予め複数格納し
    ている第1撹乱用データ格納手段と、 第1撹乱用データ格納手段に格納されたデータをランダ
    ムに選択し、第1撹乱用データX1iとするための第1撹
    乱用データ選択手段と、ハミングウエイト一定かつ撹乱
    用データ処理手段で処理した結果のハミングウエイトも
    一定となる様な値を複数格納している第2撹乱用データ
    格納手段と、第2撹乱用データ格納手段に格納されたデ
    ータをランダムに選択し、第2撹乱用データX2iとする
    ための第2撹乱用データ選択手段と、 第2撹乱用データX2iを処理し、処理済第2撹乱用デー
    タX2oを生成する撹乱用データ処理手段と、 第1撹乱用データX1iと第2撹乱用データX2iと表を用い
    て、表のインデックスを第1撹乱用データX1iで変形
    し、表のデータを第2撹乱用データX2iで変形し、変形
    済み表を生成する表変形手段とを有することを特徴とす
    る、請求項18に記載の情報処理装置。
  21. 【請求項21】 第1撹乱用データX1iおよび処理済第
    2撹乱用データX2oおよび変形済み表を生成する手段と
    して、ハミングウエイト一定の値を予め複数格納してい
    る第1撹乱用データ格納手段と、第1撹乱用データ格納
    手段に格納されたデータをランダムに選択し、第1撹乱
    用データX1iとするための第1撹乱用データ選択手段
    と、ハミングウエイト一定かつ撹乱用データ処理手段で
    処理した結果のハミングウエイトも一定となる様な、第
    2撹乱用データと処理済第2撹乱用データの組を複数組
    格納している第2撹乱用データおよび処理済第2撹乱用
    データ格納手段と、第2撹乱用データおよび処理済第2
    撹乱用データ格納手段に格納された、第2撹乱用データ
    と処理済第2撹乱用データの組をランダムに選択し、第
    2撹乱用データX2iおよび処理済第2撹乱用データX2oと
    するための第2撹乱用データおよび処理済第2撹乱用デ
    ータ選択手段と、第1撹乱用データX1iと第2撹乱用デ
    ータX2iと表を用いて、表のインデックスを第1撹乱用
    データX1iで変形し、表のデータを第2撹乱用データX2i
    で変形し、変形済み表を生成する表変形手段とを有する
    ことを特徴とする、請求項18に記載の情報処理装置。
  22. 【請求項22】 第1撹乱用データX1iおよび処理済第
    2撹乱用データX2oおよび変形済み表を生成する手段と
    して、 ハミングウエイト一定の第1撹乱用データに使用できる
    値と、 ハミングウエイト一定かつ撹乱用データ処理手段で処理
    した結果のハミングウエイトも一定となる様な、第2撹
    乱用データに使用できる値を処理した結果選られる処理
    済第2撹乱用データに使用できる値と、 第1撹乱用データに使用できる値と前記処理済第2撹乱
    用データに使用できる値を生成したときに用いた第2撹
    乱用データに使用できる値を用いて、表のインデックス
    を第1撹乱用データX1iに使用できる値で変形し、表の
    データを第2撹乱用データX2iに使用できる値で変形
    し、変形済み表を生成し、 前記第1撹乱用データに使用できる値と処理済第2撹乱
    用データに使用できる値と変形済み表の組を複数格納し
    た、第1撹乱用データおよび処理済第2撹乱用データお
    よび変形済み表格納手段と、 第1撹乱用データと処理済第2撹乱用データと変形済み
    表の組をランダムに選択し、第1撹乱用データX1iと処
    理済第2撹乱用データX2oと処理済表とするための、第
    1撹乱用データおよび処理済第2撹乱用データおよび変
    形済み表選択手段とを有することを特徴とする、請求項
    18に記載の情報処理装置。
  23. 【請求項23】 プログラムを格納するプログラム格納
    部、データを保存するデータ格納部を有する記憶装置と
    プログラムにしたがい、所定の処理を実行し、データ処
    理を行なう中央演算装置を有し、 プログラムは、中央演算装置の指示を与える処理命令か
    ら構成される一つ以上のデータ処理手段からなり、一つ
    のデータ処理手段が、表引きを行い、表引き結果をデー
    タ処理処理し、処理結果を処理済データとして出力する
    入力データ処理手段を含み、前記処理手段を複数回繰り
    返すことで処理結果を生成し、且つ、 ハミングウエイトの値が常に一定である第1の撹乱用デ
    ータX1iと、 ハミングウエイトの値が常に一定であり、かつ前記表引
    き後に行われるデータ処理を行った結果のハミングウエ
    イトも常に一定となる様な第2の撹乱用データX2iと、
    前記第2の撹乱用データX2iをデータ処理した結果の処
    理済第2撹乱用データX2oと、 ハミングウエイトの値が常に一定である第3の撹乱用デ
    ータX3iと、 ハミングウエイトの値が常に一定であり、かつ前記表引
    き後に行われるデータ処理を行った結果のハミングウエ
    イトも常に一定となる様な第4の撹乱用データX4iと、
    前記第4の撹乱用データX4iをデータ処理した結果の処
    理済第4撹乱用データX4oと、第1撹乱用データX1iを用
    いてインデックスを撹乱し、 さらに第3撹乱用データX3iで前記第一撹乱用データを
    用いた撹乱されたインデックスをさらに撹乱し、 第2撹乱用データX2iを用いて前記インデックスに対応
    したデータを撹乱し、 第4撹乱用データX4iを用いて、前記第2撹乱用データ
    を用いて撹乱されたデータをさらに撹乱することにより
    生成された第2変形済み表を使い、 前記第3撹乱用データX3iを使って入力データD1を変形
    し、変形データH1を作成するデータ変形手段と、 前記第1撹乱用データX1iを使って変型データH1を変形
    し、変形データH2を作成するデータ変形手段と、 変形データH2をインデックスとして、前記第2変形済み
    表を引いて変形データH3を取り出す変形済み表アクセ
    ス処理手段と、 処理済変形データH3を処理し、処理済変形データH4
    を得る変形済みデータ処理手段と、 第3撹乱用データX3iを用いて処理済み変形データH4
    を変形し、処理済変形データH5を得るデータ変形処理
    手段と、 第1撹乱用データX1iを用いて処理済み変形データH5
    を変形し、処理済変形データH6を得るデータ変形処理
    手段と、処理済第2撹乱用データX2oを用いて処理済み
    変形データH6を変形し、処理済変形データH7を得る
    データ変形処理手段と、処理済第4撹乱用データX4oを
    用いて処理済み変形データH7を変形し、処理済変形デ
    ータH8を得るデータ変形処理手段と、 処理済変形データH8をインデックスとして、前記第2
    変形済み表を引いて変形データH9を取り出す変形済み
    表アクセス処理手段と、 処理済変形データH9を処理し、処理済変形データH1
    0を得る変形済みデータ処理手段と、 処理済第2撹乱用データX2oを用いて処理済み変形デー
    タH10を逆変形し、変型データH11を得るデータ逆
    変型処理手段と、 処理済第4撹乱用データX4oを用いて処理済み変形デー
    タH11を逆変形し、 入力データD1を用いて表引きを行い、表引き結果をデー
    タ処理処理し、さらにその結果を用いて表引きを行い、
    表引き結果をデータ処理処理した結果である処理済デー
    タD2を得るデータ逆変形処理手段とを有することを特徴
    とする情報処理装置。
  24. 【請求項24】 第1撹乱用データX1iおよび処理済第
    2撹乱用データX2oおよび第3撹乱用データX3iおよび処
    理済第4撹乱用データX4oおよび第2変形済み表を生成
    する手段として、 第1撹乱用データX1iを生成するための第1ハミングウ
    エイト一定乱数生成手段と、 第2撹乱用データX2iを生成するための第2ハミングウ
    エイト一定乱数生成手段と、 第2撹乱用データX2iを処理し、処理済第2撹乱用デー
    タX2oを生成する撹乱用データ処理手段と、 処理済第2撹乱用データX2oのハミングウエイトを計算
    し、処理済第2撹乱用データX2oのハミングウエイトが
    不適切な場合は第2ハミングウエイト一定乱数生成手段
    に対して、 第2撹乱用データX2iの再生成を行わせる、ハミングウ
    エイト検査手段と、 第1撹乱用データX1iと第2撹乱用データX2iと表を用い
    て、表のインデックスを第1撹乱用データX1iで変形
    し、表のデータを第2撹乱用データX2iで変形し、変形
    済み表を生成する表変形手段と、 第3撹乱用データX3iを生成するための第1乱数生成手
    段と、 第4撹乱用データX4iを生成するための第2乱数生成手
    段と、 第4撹乱用データX4iを処理し、処理済第4撹乱用デー
    タX4oを生成する撹乱用データ処理手段と、 第3撹乱用データX3iと第4撹乱用データX4iと変形済み
    表とを用いて、変形済み表のインデックスを第3撹乱用
    データX3iで変形し、変形済み表のデータを第4撹乱用
    データX4iで変形し、第2変形済み表を生成する表変形
    処理手段とを有することを特徴とする、請求項23に記
    載の情報処理装置。
  25. 【請求項25】 第1撹乱用データX1iおよび処理済第
    2撹乱用データX2oおよび第3撹乱用データX3iおよび処
    理済第4撹乱用データX4oおよび第2変形済み表を生成
    する手段として、 ハミングウエイト一定の値を予め複数格納している第1
    撹乱用データ格納手段と、 第1撹乱用データ格納手段に格納されたデータをランダ
    ムに選択し、第1撹乱用データX1iとするための第1撹
    乱用データ選択手段と、 ハミングウエイト一定かつ撹乱用データ処理手段で処理
    した結果のハミングウエイトも一定となる様な値を複数
    格納している第2撹乱用データ格納手段と、第2撹乱用
    データ格納手段に格納されたデータをランダムに選択
    し、第2撹乱用データX2iとするための第2撹乱用デー
    タ選択手段と、 第2撹乱用データX2iを処理し、処理済第2撹乱用デー
    タX2oを生成する撹乱用データ処理手段と、 第1撹乱用データX1iと第2撹乱用データX2iと表を用い
    て、表のインデックスを第1撹乱用データX1iで変形
    し、表のデータを第2撹乱用データX2iで変形し、変形
    済み表を生成する表変形手段と、 第3撹乱用データX3iを生成するための第1乱数生成手
    段と、 第4撹乱用データX4iを生成するための第2乱数生成手
    段と、 第4撹乱用データX4iを処理し、処理済第4撹乱用デー
    タX4oを生成する撹乱用データ処理手段と、 第3撹乱用データX3iと第4撹乱用データX4iと変形済み
    表とを用いて、変形済み表のインデックスを第3撹乱用
    データX3iで変形し、変形済み表のデータを第4撹乱用
    データX4iで変形し、第2変形済み表を生成する表変形
    処理手段とを有することを特徴とする、請求項23に記
    載の情報処理装置。
  26. 【請求項26】 第1撹乱用データX1iおよび処理済第
    2撹乱用データX2oおよび第3撹乱用データX3iおよび処
    理済第4撹乱用データX4oおよび第2変形済み表を生成
    する手段として、 ハミングウエイト一定の値を予め複数格納している第1
    撹乱用データ格納手段と、 第1撹乱用データ格納手段に格納されたデータをランダ
    ムに選択し、第1撹乱用データX1iとするための第1撹
    乱用データ選択手段と、ハミングウエイト一定かつ撹乱
    用データ処理手段で処理した結果のハミングウエイトも
    一定となる様な、第2撹乱用データと処理済第2撹乱用
    データの組を複数組格納している第2撹乱用データおよ
    び処理済第2撹乱用データ格納手段と、第2撹乱用デー
    タおよび処理済第2撹乱用データ格納手段に格納され
    た、第2撹乱用データと処理済第2撹乱用データの組を
    ランダムに選択し、第2撹乱用データX2iおよび処理済
    第2撹乱用データX2oとするための第2撹乱用データお
    よび処理済第2撹乱用データ選択手段と、 第1撹乱用データX1iと第2撹乱用データX2iと表を用い
    て、表のインデックスを第1撹乱用データX1iで変形
    し、表のデータを第2撹乱用データX2iで変形し、変形
    済み表を生成する表変形手段と、 第3撹乱用データX3iを生成するための第1乱数生成手
    段と、 第4撹乱用データX4iを生成するための第2乱数生成手
    段と、 第4撹乱用データX4iを処理し、処理済第4撹乱用デー
    タX4oを生成する撹乱用データ処理手段と、 第3撹乱用データX3iと第4撹乱用データX4iと変形済み
    表とを用いて、変形済み表のインデックスを第3撹乱用
    データX3iで変形し、変形済み表のデータを第4撹乱用
    データX4iで変形し、第2変形済み表を生成する表変形
    処理手段とを有することを特徴とする、請求項23に記
    載の情報処理装置。
  27. 【請求項27】 プログラムを格納するプログラム格納
    部、データを保存するデータ格納部を有する記憶装置と
    プログラムにしたがい、所定の処理を実行し、データ処
    理を行なう中央演算装置を有し、プログラムは、中央演
    算装置の指示を与える処理命令から構成される一つ以上
    のデータ処理手段を有し、 一つのデータ処理手段が、メッセージと秘密鍵を入力と
    し、Data EncryptionStandard(DES)暗号処理を行い、暗
    号化処理を行ない、前記暗号化処理の処理結果を生成
    し、且つ、 平文を撹乱する平文撹乱用データPXを用いて、メッセー
    ジを変形する手段と、秘密鍵を撹乱する秘密鍵撹乱用デ
    ータKXを用いて、秘密鍵データKを変形する手段と、 DES暗号処理で用いられるSBOX表のインデックス
    を撹乱するためのSBOXアドレス撹乱用データSinX1
    を用いてSBOX表のインデックスを変形しSBOX表を並
    べ替え、かつSBOX表の出力を撹乱するためのSBO
    Xデータ撹乱用データSoutXとを用いて並べ替えられた
    SBOX表の出力を撹乱し、変形済みSBOX表を作成
    するためのSBOX表変形手段と、 SBOXの表引き処理の直前のXOR結果が、データが
    SinX1および平文撹乱用データPXもしくはPXを
    変形した値で変形された値となるように調整するための
    逆変形処理もしくは変形処理を、XORの2つの入力デ
    ータのいずれかもしくは両方に有し、 SBOXの表引き処理の前までにデータがSinX1で
    変形された値に調整するための、逆変形処理をSBOX
    の直前に有し、 DESの最終ラウンド終了後のIP置換処理の直前もし
    くは直後に、平文撹乱用データPXもしくはPXを変形
    された値を逆変形するための逆変形処理手段を有するこ
    とを特徴とする、情報処理装置。
  28. 【請求項28】 前記SBOX表アドレス撹乱用データ
    SinX1のハミングウエイトが一定かつ、SBOX表
    データ撹乱用データSoutXのハミングウエイトと、
    転置済みSBOXデータ撹乱用データXSoutXのハ
    ミングウエイトが一定であるような、SoutXを用い
    ていることを特徴とする、請求項27に記載の情報処理
    装置。
  29. 【請求項29】 前記SBOX表アドレス撹乱に2つ以
    上の撹乱用データ用いて、アドレスの変形を複数回おこ
    ない、SBOX表のデータ撹乱に2つ以上の撹乱用デー
    タを用いて、変形を複数回以上行なうSBOX表変形手
    段を有することを特徴とする、請求項27に記載の情報
    処理装置。
  30. 【請求項30】 SBOX表アドレス撹乱用データのう
    ち、1つ以上の撹乱用データのハミングウエイトのが一
    定かつ、SBOX表データ撹乱用データのうち、1つ以
    上の撹乱用データのハミングウエイトが一定であるよう
    な、撹乱用データを用いることを特徴とする、請求項2
    9に記載の情報処理装置。
  31. 【請求項31】 ハミングウエイトが一定となる撹乱用
    データが、中央演算装置で一度に処理できるビット長に
    分割した際のそれぞれの部分ビットにおけるハミングウ
    エイトも一定であるような、SBOXアドレス撹乱用デ
    ータSinX1、SBOXデータ撹乱用データSout
    X1を用いることを特徴とする、請求項30に記載の情
    報処理装置。
JP2001046250A 2001-02-22 2001-02-22 情報処理装置 Pending JP2002247025A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2001046250A JP2002247025A (ja) 2001-02-22 2001-02-22 情報処理装置
EP01120625A EP1244077B1 (en) 2001-02-22 2001-08-29 Tamper resistant device
US09/940,982 US20020154767A1 (en) 2001-02-22 2001-08-29 Tamper resistance device
DE60137193T DE60137193D1 (de) 2001-02-22 2001-08-29 Betrugssichere Vorrichtung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001046250A JP2002247025A (ja) 2001-02-22 2001-02-22 情報処理装置

Publications (1)

Publication Number Publication Date
JP2002247025A true JP2002247025A (ja) 2002-08-30

Family

ID=18907909

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001046250A Pending JP2002247025A (ja) 2001-02-22 2001-02-22 情報処理装置

Country Status (4)

Country Link
US (1) US20020154767A1 (ja)
EP (1) EP1244077B1 (ja)
JP (1) JP2002247025A (ja)
DE (1) DE60137193D1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005195829A (ja) * 2004-01-07 2005-07-21 Hitachi Ltd 復号または署名作成におけるべき乗剰余算の計算方法
JP2009537025A (ja) * 2006-03-31 2009-10-22 アクサルト・エス・アー サイドチャネル攻撃からの保護
JP2010166402A (ja) * 2009-01-16 2010-07-29 Mitsubishi Electric Corp 暗号処理装置及び暗号処理方法及び暗号処理プログラム
JP2012070048A (ja) * 2010-09-21 2012-04-05 Toshiba Corp 暗号化装置および復号装置
JP2012520589A (ja) * 2009-03-10 2012-09-06 イルデト・コーポレート・ビー・ヴイ 入力に依存する符号化を用いたホワイトボックス暗号システム

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1610462B1 (fr) * 2004-06-24 2012-07-11 St Microelectronics S.A. Circuit et procédé de vérification de la constance de biais d'un flux de bits
FR2872357A1 (fr) * 2004-06-24 2005-12-30 St Microelectronics Sa Verification d'un flux de bits
US7743977B2 (en) * 2005-02-28 2010-06-29 Broadcom Corporation Method and system for random data access for security applications
US20130114805A1 (en) * 2010-04-29 2013-05-09 Dongguk University Industry-Academic Cooperate Foundation Encryption system using discrete chaos function
WO2012161763A1 (en) * 2011-02-15 2012-11-29 Lewis James M Method and system for identifying counterfeit programmable devices
US10142099B2 (en) * 2013-01-11 2018-11-27 Qualcomm Incorporated Method and apparatus for a computable, large, variable and secure substitution box
US9886597B2 (en) * 2013-02-27 2018-02-06 Morpho Method for encoding data on a chip card by means of constant-weight codes
DE102013205542A1 (de) * 2013-03-28 2014-10-02 Robert Bosch Gmbh Vorrichtung und Verfahren zur Verarbeitung von Daten
EP3220304B1 (en) * 2016-02-22 2018-11-07 Eshard Method of testing the resistance of a circuit to a side channel analysis

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999067766A2 (en) * 1998-06-03 1999-12-29 Cryptography Research, Inc. Balanced cryptographic computational method and apparatus for leak minimization in smartcards and other cryptosystems
WO1999067919A2 (en) * 1998-06-03 1999-12-29 Cryptography Research, Inc. Improved des and other cryptographic processes with leak minimization for smartcards and other cryptosystems
JP2000066585A (ja) * 1998-08-20 2000-03-03 Toshiba Corp 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体
JP2000165375A (ja) * 1998-11-30 2000-06-16 Hitachi Ltd 情報処理装置、icカード
JP2000182012A (ja) * 1998-12-14 2000-06-30 Hitachi Ltd 情報処理装置、端タンパ処理装置
WO2000049765A2 (fr) * 1999-02-17 2000-08-24 Gemplus Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete
JP2000511649A (ja) * 1996-06-05 2000-09-05 ジェムプリュス エス.セー.アー. 公開鍵暗号方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4334273A (en) * 1979-04-24 1982-06-08 Kokusai Denshin Denwa Co., Ltd. Signal processing system using a digital technique
US4783829A (en) * 1983-02-23 1988-11-08 Hitachi, Ltd. Pattern recognition apparatus
US5410717A (en) * 1991-03-22 1995-04-25 Allen-Bradley Company, Inc. Removable function card for a programmable controller processor
US6011566A (en) * 1994-09-01 2000-01-04 Unisys Corporation System and method to display raster images with negligible delay time and reduced memory requirements
US5577053A (en) * 1994-09-14 1996-11-19 Ericsson Inc. Method and apparatus for decoder optimization
JP3512604B2 (ja) * 1997-09-11 2004-03-31 シャープ株式会社 画像処理装置、および、そのプログラムを記録した記録媒体
US6408075B1 (en) * 1998-11-30 2002-06-18 Hitachi, Ltd. Information processing equipment and IC card
CA2298990A1 (en) * 2000-02-18 2001-08-18 Cloakware Corporation Method and system for resistance to power analysis

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000511649A (ja) * 1996-06-05 2000-09-05 ジェムプリュス エス.セー.アー. 公開鍵暗号方法
WO1999067766A2 (en) * 1998-06-03 1999-12-29 Cryptography Research, Inc. Balanced cryptographic computational method and apparatus for leak minimization in smartcards and other cryptosystems
WO1999067919A2 (en) * 1998-06-03 1999-12-29 Cryptography Research, Inc. Improved des and other cryptographic processes with leak minimization for smartcards and other cryptosystems
JP2000066585A (ja) * 1998-08-20 2000-03-03 Toshiba Corp 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体
JP2000165375A (ja) * 1998-11-30 2000-06-16 Hitachi Ltd 情報処理装置、icカード
JP2000182012A (ja) * 1998-12-14 2000-06-30 Hitachi Ltd 情報処理装置、端タンパ処理装置
WO2000049765A2 (fr) * 1999-02-17 2000-08-24 Gemplus Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005195829A (ja) * 2004-01-07 2005-07-21 Hitachi Ltd 復号または署名作成におけるべき乗剰余算の計算方法
JP4626148B2 (ja) * 2004-01-07 2011-02-02 株式会社日立製作所 復号または署名作成におけるべき乗剰余算の計算方法
JP2009537025A (ja) * 2006-03-31 2009-10-22 アクサルト・エス・アー サイドチャネル攻撃からの保護
JP2010166402A (ja) * 2009-01-16 2010-07-29 Mitsubishi Electric Corp 暗号処理装置及び暗号処理方法及び暗号処理プログラム
JP2012520589A (ja) * 2009-03-10 2012-09-06 イルデト・コーポレート・ビー・ヴイ 入力に依存する符号化を用いたホワイトボックス暗号システム
US9654280B2 (en) 2009-03-10 2017-05-16 Irdeto B.V. White-box cryptographic system with input dependent encodings
JP2012070048A (ja) * 2010-09-21 2012-04-05 Toshiba Corp 暗号化装置および復号装置
US9031234B2 (en) 2010-09-21 2015-05-12 Kabushiki Kaisha Toshiba Encryption device and decryption device

Also Published As

Publication number Publication date
DE60137193D1 (de) 2009-02-12
EP1244077A3 (en) 2007-04-11
EP1244077A2 (en) 2002-09-25
EP1244077B1 (en) 2008-12-31
US20020154767A1 (en) 2002-10-24

Similar Documents

Publication Publication Date Title
US6839847B1 (en) Information processing equipment and IC card
JP4317607B2 (ja) 情報処理装置、耐タンパ処理装置
JP2002247025A (ja) 情報処理装置
US8473751B2 (en) Method for cryptographic data processing, particularly using an S box, and related device and software
JP4199937B2 (ja) 耐タンパー暗号処理方法
JP2001268072A (ja) 情報処理装置、情報処理方法、及びカード部材
US20040030905A1 (en) Encoding method and system resistant to power analysis
US8321691B2 (en) EMA protection of a calculation by an electronic circuit
CN103503362A (zh) 数据处理装置、数据处理方法以及程序
US6820814B1 (en) Countermeasure method in an electric component using a secret key cryptographic algorithm
JP2005004048A (ja) 鍵拡張装置、鍵拡張方法および鍵拡張プログラム
JP2004126841A (ja) プログラム実装方法
CN107016292A (zh) 防止通过功率分析进行窃听的电子电路及防止窃听的方法
JP6890589B2 (ja) 計算デバイス及び方法
JP2005149262A (ja) 情報処理装置
EP1419436B1 (en) Apparatus and method for performing a cryptographic algorithm
US20010054163A1 (en) Method for the secured transfer of data
JP4003723B2 (ja) 情報処理装置、耐タンパ処理装置
CN109787750A (zh) 通信报文的编解码方法、装置、设备和存储介质
Chaturvedi et al. Comparison between Ultra Lightweight Cryptographic Techniques on Microcontrollers for Smart Agriculture
JP4664655B2 (ja) 情報処理装置、および、そのアドレス制御方法
Hesse et al. A Modular Open-Source Cryptographic Co-Processor for Internet of Things
AU2005203004B2 (en) Information processing device, information processing method and smartcard
CN116743353A (zh) 一种新型flm结构的分组密码算法实现方法及系统
Mayes Multi-Platform Performance of Authenticated Encryption for Payment Cards with Crypto Co-processors

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070529

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070730

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20070730

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070904