JP2002261751A - 暗号処理方法 - Google Patents

暗号処理方法

Info

Publication number
JP2002261751A
JP2002261751A JP2001058087A JP2001058087A JP2002261751A JP 2002261751 A JP2002261751 A JP 2002261751A JP 2001058087 A JP2001058087 A JP 2001058087A JP 2001058087 A JP2001058087 A JP 2001058087A JP 2002261751 A JP2002261751 A JP 2002261751A
Authority
JP
Japan
Prior art keywords
processing
encryption
result
output
memory
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.)
Withdrawn
Application number
JP2001058087A
Other languages
English (en)
Other versions
JP2002261751A5 (ja
Inventor
Masahiro Kaminaga
正博 神永
Takashi Endo
隆 遠藤
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 JP2001058087A priority Critical patent/JP2002261751A/ja
Priority to US09/931,937 priority patent/US20020124179A1/en
Priority to EP01119671A priority patent/EP1237322A3/en
Publication of JP2002261751A publication Critical patent/JP2002261751A/ja
Publication of JP2002261751A5 publication Critical patent/JP2002261751A5/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/004Countermeasures against attacks on cryptographic mechanisms for fault attacks
    • 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カードなどのI/Oポートから暗号
文Cを受信し(ステップ601)、この暗号文CをRAM
に格納し(ステップ602)、暗号文Cに対して復号化処
理を行ない(ステップ603)、その処理結果ZをRAM
に格納する(ステップ604)。処理結果Zに対して暗号
化処理を行ない(ステップ605)、その処理結果Wと元
の暗号文Cとを比較して(ステップ606)、一致すれば
I/Oポートに平文Zを出力する(ステップ608)。両
者が不一致であればリセットする(ステップ607)。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、高いセキュリティ
を持つICカードなどの耐タンパー暗号処理方法に関す
るものである。
【0002】
【従来の技術】ICカードは、勝手に書き換えることが
許されないような個人情報の保持や、秘密情報である暗
号鍵を用いたデータの暗号化や暗号文の復号化を行う装
置である。ICカード自体は電源を持っておらず、IC
カード用のリーダライタに差し込まれると、電源の供給
を受け、動作可能となる。動作可能になると、リーダラ
イタから送信されるコマンドを受信し、そのコマンドに
従ってデータの転送等の処理を行う。ICカードの一般
的な解説は、オーム社出版電子情報通信学会編水沢順一
著「ICカード」などにある。
【0003】ICカードの構成は、図1に示すように、
カード101の上に、ICカード用チップ102を搭載したも
のである。図に示すように、一般にICカードは、ISO7
816の規格に定められた位置に供給電圧端子Vcc、 グラ
ンド端子GND、リセット端子RST、 入出力端子I/O及び
クロック端子CLKを持ち、これらの端子を通してリーダ
ーライタから電源の供給やリーダライタとのデータの通
信を行う(W.Rankl and Effing : SMARTCARD HANDBOOK、
John Wiley & Sons、 1997、 pp.41参照)。
【0004】ICカード用チップの構成は、基本的には
通常のマイクロコンピュータと同じ構成である。その構
成は、図2に示すように、中央処理装置(CPU)201、記
憶装置204、入出力(I/O)ポート207、コ・プロセッ
サ202からなる(コ・プロセッサはない場合もある)。
CPU201は、論理演算や算術演算などを行う装置であ
り、記憶装置204は、プログラムやデータを格納する装
置である。入出力ポートは、リーダライタと通信を行う
装置である。コ・プロセッサは、暗号処理そのもの、ま
たは、暗号処理に必要な演算を高速に行う装置であり、
例えばRSA暗号の剰余演算を行うための特別な演算装
置や、DES暗号のラウンド処理を行う暗号装置などが
ある。ICカード用プロセッサの中には、コ・プロセッ
サを持たないものも多くある。データバス203は、各装
置を接続するバスである。
【0005】記憶装置204は、ROM(Read Only Mem
ory)やRAM(Random Access Memory)、EEPROM(E
lectrical Erasable Programmable Read Only Memory)
などからなる。ROMは、変更できないメモリであり、
主にプログラムを格納するメモリである。RAMは自由
に書き換えができるメモリであるが、電源の供給が中断
されると、記憶している内容は消滅する。ICカードが
リーダライタから抜かれると電源の供給が中断されるた
め、RAMの内容は、保持されなくなる。EEPROM
は、電源の供給が中断されてもその内容を保持すること
ができるメモリである。書き換える必要があり、ICカ
ードがリーダライタから抜かれても、保持するデータを
格納するために使われる。例えば、プリペイドカードで
のプリペイドの度数などは、使用するたびに書き換えら
れ、かつリーダライタから抜かれてもデータを保持する
必要があるため、EEPROMで保持される。
【0006】ICカードは、プログラムや重要な情報が
ICカード用チップの中に密閉されているため、重要な
情報を格納したり、カードの中で暗号処理を行うために
用いられる。従来、ICカードでの暗号を解読する難し
さは、暗号アルゴリズムの解読の困難さと同じと考えら
れていた。
【0007】しかし、ICカードが暗号処理を行なって
いるときに、異常クロック、異常電圧、異常電磁波、異
常温度等を用いて、故意にエラーを引き起こし、暗号で
用いている鍵や秘密情報を取り出せる可能性があり、脅
威となっている。John Wiley& Sons社 W.Rankl & W.Eff
ing著 「Smart Card Handbook」の8.5.1.2 Active prot
ective mechanisms(263ページ)にこのような危険性が記
載されている。この種の攻撃について、より詳細な議論
は、Ross Anderson, Markus Gunter Kuhn:“Tamper-Res
istance --- a Cautionary Note”, the 2nd USENIX Wo
rkshop onElectric Commerce Proceedings, pp.1-11, 1
996に書かれている。特にCRT(Chinese Remainder T
heorem:中国人剰余定理)を用いたRSA暗号処理につ
いては、A.K.Lenstra氏のショートメモ“Memo on RSA S
ignature Generalization inthe Presence of Fault
s”,1999 に記載されている。このLenstra氏のショート
メモについては、発明の実施形態で詳細を述べる。
【0008】この種のアタックを防ぐ一つの方法は、特
殊なハードウエアを内蔵することによって、異常な環境
を検出することである。この理由から、現状流通してい
るICカードの多くは、各種の異常環境検出装置を内蔵
している。
【0009】ハードウエアを用いてこの種のアタックを
防ぐ別の方法は、内部のレジスタなどにパリティビット
をつける方法で、パリティチェックにより処理データに
異常が検出されたときにリセットするなどして、異常な
処理結果を返すことを防ぐものである。この方法は、主
として大型の計算機のエラー対策として用いられている
ものであるが、一般にチップ面積の制約等の理由で、I
Cカードには適用しないことが多い。
【0010】しかしながら、異常環境検出装置を用いる
対策は、検出装置の動的特性には限界があり、瞬間的な
電源電圧の遮断や、クロックの変調等を検出することは
容易でない。またパリティビットの検出では、2ビット
が反転する等の誤作動を検出できない。
【0011】
【発明が解決しようとしている課題】本発明の主たる課
題は、異常環境検出装置やパリティ検出装置を用いるこ
となく、ICカード用チップにおいて生ずる誤作動を暗
号処理方式に応じた方式で検出することである。本発明
の着眼点は,暗号処理結果を出力する前に、再び復号化
し、入力と同一であれば結果を出力し、異なれば結果を
出力しないことにより、誤作動によって生じた処理結果
を外部に出力しないことである。本発明の検出方式は、
異常環境検出装置やパリティ検出装置のように一般のプ
ログラムを誤作動から保護することはできないが、もっ
とも重要な情報を操作する暗号処理部の誤動作を、異常
環境検出装置やパリティ検出装置の検出限界を超えて検
出することができる。
【0012】本発明の目的は、上記の課題を解決するこ
とにある。
【0013】
【課題を解決するための手段】ICカードチップに代表
される耐タンパー装置は、プログラムを格納するプログ
ラム格納部、データを保存するデータ格納部を持つ記憶
装置と、プログラムに従って所定の処理を実行しデータ
処理を行う中央演算装置(CPU)を持ち、プログラム
は、CPUに実行の指示を与える処理命令から構成され
る一つ以上のデータ処理手段からなる情報処理装置とし
て捉えることができる。ICカードには、個人情報、電
子マネーとしての機能など高いセキュリティを必要とす
る情報を格納する。そのため、ICカードには暗号処理
装置や、暗号ソフトウエアが内蔵されている。この意味
で、ICカードはデバイスとしては、暗号処理モジュー
ルとして捉えることができる。暗号は大きく分けて二種
類ある。一つは、暗号化に用いる鍵と復号化に用いる鍵
が同一のもので、対称鍵暗号、または秘密鍵暗号と呼ば
れるものである。もう一つは、暗号化に用いる鍵と復号
化に用いる鍵が異なるもので、非対称鍵暗号、または公
開鍵暗号と呼ばれるものである。後者は、特に電子署名
等で用いられる方式である。
【0014】本発明において、暗号処理中に生じた誤作
動を検出する方法は、暗号処理結果を出力する前に、再
び復号化し、入力と同一であれば結果を出力し、異なれ
ば結果を出力しないことにより、誤作動によって生じた
処理結果を外部に出力しないというものである。
【0015】具体的には、対称鍵暗号、例えば、現在標
準的に用いられているDES暗号(例えば、岡本栄司著
「暗号理論入門」共立出版,pp.33-50を参照)を用いる
場合、ICカードは、暗号文Cを受け取り、カードチッ
プ内に格納されている秘密鍵Kを用いて、通常のDES
の操作を行ない、平文Z = INV_DES(C, K)を求める。D
ESは、16ラウンドからなる攪拌操作列であり、攪拌操
作は、転字と換字から構成されている。このDESの攪
拌操作を逆に溯る操作を行なうことにより、逆変換DES
を構成することができる。従って、正しく復号処理INV_
DES(C, K)が行われれていれば、DES(Z, K) = Cが成り立
たなければならないはずである。そこでDES(Z, K)の処
理結果WをRAM等に格納して後、WとCを比較し、W = C
となればZは正しい処理結果であることがわかるので、
これを正しい処理結果として出力し、WがCと異なれば、
出力しない。 逆に平文を暗号化する場合は、復号化し
て確認することができることは言うまでもない。
【0016】一方、非対称鍵暗号の場合、例えば、RS
A暗号を例に取ると、ICカードでは、(暗号化に用い
られる公開鍵指数eは、通常、3又は、65537である)公
開鍵指数e、公開モジュラスNを用いて、平文Mに対し
て、C = RSA(M, (e,N)) = M^e mod Nを計算して、これ
を暗号文とする。 この暗号文Cは、公開鍵情報J=(e,N)
の持ち主によってICカードにて受信され、このICカ
ードに保持されている秘密鍵指数xを用いて、INV_RSA
(C, x, J) = C^x mod N = Mという操作で復号され、処
理結果zを得る。一般にICカードのセキュリティにお
いては、カードチップ内に格納されている秘密鍵指数x
がアタックターゲットであり、この復号化処理において
誤作動が生ずると、xに関する情報がカード外にリーク
する。これを守るために、計算結果Zをすぐに出力せ
ず、RAM等に格納し、暗号化処理結果wとcを比較し、
w = cであれば、Zは正しい処理結果であることがわかる
ので、これを正しい処理結果として出力し、wがcと異な
れば、出力しない。
【0017】以上を勘案すると、本発明の趣旨は、暗号
化または復号化の操作に対し、その逆操作、すなわち暗
号化に対しては復号化、復号化に対しては、暗号化の操
作を行なって、元の結果が得られるかどうかを確認する
ことにある。従って、暗号の種類が、DESであるか、
RSAであるかと言った問題は本質的ではない。つま
り、上記2種類の暗号以外に、他の秘密鍵暗号、公開鍵
暗号に対しても同様の操作―逆操作というプロセスで誤
作動検出を行なうことができる。
【0018】
【発明の実施形態】本実施例では、秘密鍵暗号の代表例
であるDES暗号を例に取る。ここでは、秘密鍵暗号の
代表例としてDESを例として採用するのみであって、
DES以外の秘密鍵暗号においても同様に本発明を適用
することができる。
【0019】図3は、DESの基本構造を示す図であ
る。DESは、64ビットの平文を64ビットの鍵K(但
し、このうち8ビットをパリティビットとして用いるの
で、実質の鍵長は、56ビットである)をビット置換302,
304によって変形し、第一段目の部分鍵K1を生成し、置
換302を行なった鍵ビットを左巡回シフト306,307で半々
のビット毎に変形し、これをビット置換304と同じビッ
ト置換(PC-2)を施して部分鍵K2を生成する。これを繰
り返し、最終的に、第16段目でも同様に左巡回シフト30
9,310で半々のビット毎に変形し、これをビット置換304
と同じビット置換311を施して部分鍵K16を生成する。一
方、平文は、初期置換IP301を施した後に、64ビットを3
2ビットずつに左右に分離される。この右半分を部分鍵K
1と共にf関数303と呼ばれる非線型の変換に代入し、そ
の結果と左半分のビットとビット毎の排他的論理和305
を取って、第2ラウンドの右半分の32ビットとし、先の
初期置換301の出力の右半分を第2ラウンドの左32ビッ
トとして、以下同様の操作を繰り返し、最終的に第15
ラウンド目の出力を部分鍵K16を用いて変形し、左右入
れ替えた後、初期置換IPの逆置換313に代入して、その
結果を64ビットの暗号文として出力する。
【0020】この復号変換INV_DESは、図4のように構
成することができる。図3との違いは、第16ラウンド目
の処理から始めるということである。そのため先に左巡
回シフト306,307,309,310で変形した部分を、逆に右巡
回シフト406,407,409,410する。部分鍵はK16, K15,
...,K1というように暗号化変換とは逆に用いる。この
操作は、ちょうど図3の処理を全て逆方向に行なうとい
うことに他ならない。
【0021】いま例えば、暗号化変換で、第16ラウンド
目で、特定の処理ビットがエラーにより反転したとす
る。このとき、第16ラウンド目に使用されている部分鍵
K16が何であるかによって、反転した際の処理結果が変
化する。反転した処理結果とK16の関係を詳細に調べる
と、両者の間に数学的関係が現れる。これを複数の入力
に対して連立して解くことにより、K16の候補を大幅に
減らすことができる。K16が特定できれば、DESの鍵K
を決定するには、残りの8ビットを決定すればよいの
で、高々2^8 = 256通りを試せば、正しい解を決定する
ことができる。
【0022】DES暗号に対して誤作動を起こして解析
する手法は、極めて複雑であるので、ここでは要点のみ
示した。詳細は、国際会議CRYPTO'97にて発表された論
文EliBiham, Adi Shamir: “Differential Fault Analy
sis of Secret Key Cryptosystems”, Springer-Verlag
LNCS1294, pp513-525に書かれている。
【0023】このような攻撃を行なうには、アタッカー
は、暗号化(または復号化)の結果を解析する必要があ
る。鍵K、平文Mに対する暗号化結果Zは通常RAMに一
時的に格納され、ICカードのI/O端子を通して出力
される。アタッカーは、暗号化処理中に異常電圧、異常
クロック、異常電磁波などを印加し、エラーを引き起こ
す。従ってエラー注入が成功した場合のZは、一般に正
しい処理結果DES(M, K)ではない別の値になっているは
ずである。逆に言えば、同じ値ではアタッカーは何の情
報も得ることができない。
【0024】この性質を利用すれば、誤作動検出が可能
となる。例えば、図5のような処理を行なえばよい。す
なわち、I/Oポートから平文Mを受信し(ステップ50
1)、この平文MをRAMに格納する(ステップ502)。
該平文MをICカード内のメモリ(通常はEEPRO
M)に格納されている秘密鍵Kと共にDES暗号化処理
(ステップ503)を行なう。ステップ503の処理の結果Z
をRAM上に格納し(ステップ504)、処理結果ZをDE
S復号化処理(ステップ505)を行ない、処理結果Wを得
る。WとMを比較し(ステップ506)、両者が一致すればI
/OポートからZを出力し(ステップ508)、WとMが一致し
なければ、リセットする(ステップ507)。DESがKを
固定された64ビットの数から64ビットの数への写像とみ
なせば、これは全単射であるから、Zが正しいDES(M, K)
と一致する以外に、W = Mとなることはない。すなわ
ち、DESの処理結果に誤作動に起因するエラーがあれ
ば、復号処理結果を見ることによって、必ずこのエラー
を検出し、リセットがかかる。このときアタッカーは、
アタックに必要となる誤った処理結果を得ることができ
ず、アタックを実行することができない。これは、本発
明の実施例の一つである。
【0025】復号処理の場合の誤作動検出も考え方は、
全く同様である。すなわち、図6のように、I/Oポー
トから暗号文Cを受信し(ステップ601)、この暗号文C
をRAMに格納する(ステップ602)。暗号文CをICカ
ード内のメモリ(通常はEEPROM)に格納されてい
る秘密鍵Kと共にDES復号化処理(ステップ603)を行
なう。ステップ603の処理の結果ZをRAM上に格納し
(ステップ604)、処理結果ZをDES暗号化処理(ステ
ップ605)を行ない、処理結果Wを得る。WとCを比較し
(ステップ606)、両者が一致すればI/OポートからZ
を出力し(ステップ608)、WとCが一致しなければリセ
ットする(ステップ607)。すなわち、DESの復号化
処理結果に誤作動に起因するエラーがあれば、暗号化処
理結果を見ることによって、必ずこのエラーを検出し、
リセットがかかる。このときアタッカーは、アタックに
必要となる誤った処理結果を得ることができず、アタッ
クを実行することができない。これは、本発明の実施例
の一つである。
【0026】このことを簡単に数値例で確認する。但
し、DESの計算は、手で追えるほど簡単ではなく、計
算機を必要とするので、岡本栄司著「暗号理論入門」共
立出版p.42に掲載されている例を用いて説明する。簡単
のため、復号化計算のチェックのみ実行してみる。
【0027】鍵K = F234AEB545B1A830(16進数), 暗号文
C = 3CC0BAE8226AF5D1(16進数)に対する出力Mは、0952E
3934CF0CB1E(16進数)であることが知られている。このM
が何らかの原因により、エラーを含み、1ビット異なる
値0952E3934CF0CB1F(16進数)になってしまったと仮定す
る。これを再び暗号化してみると、9602F43C1283633Bと
なる(この計算結果は表に書かれていない。実際に計算
機を用いて計算する必要がある)。これは、明らかに本
来の値C = 3CC0BAE8226AF5D1とは異なり、検出が成功す
る。
【0028】上記の一連の処理を見れば、秘密鍵暗号の
種類がDESであることは、本発明において本質的では
なく、暗号化処理と、その復号化処理が与えられていれ
ば、全く同様に行なうことができることがわかる。これ
を示したのが、図7及び図8である。すなわち、図7に
示すように、I/Oポートから平文Mを受信し(ステッ
プ701)、この平文MをRAMに格納する(ステップ70
2)。平文MをICカード内のメモリ(通常はEEPRO
M)に格納されている秘密鍵Kと共に暗号化処理(ステ
ップ703)を行なう。ステップ703の処理の結果ZをRAM上
に格納し(ステップ704)、処理結果Zを復号化処理(ス
テップ705)を行ない、処理結果Wを得る。WとMを比較し
(ステップ706)、両者が一致すればI/OポートからZ
を出力し(ステップ708)、WとMが一致しなければ、リ
セットする(ステップ707)。すなわち、暗号化処理
(ステップ703)の処理結果に誤作動に起因するエラー
があれば、復号処理結果を見ることによって、このエラ
ーを検出し、リセットがかかる。このときアタッカー
は、アタックに必要となる誤った処理結果を得ることが
できず、アタックを実行することができない。これは、
本発明の実施例の一つである。
【0029】復号処理の場合の誤作動検出も考え方は、
全く同様である。すなわち、図8のように、I/Oポー
トから暗号文Cを受信し(ステップ801)、この暗号文C
をRAMに格納する(ステップ802)。暗号文CをICカ
ード内のメモリ(通常はEEPROM)に格納されてい
る秘密鍵Kと共にDES復号化処理(ステップ803)を行
なう。ステップ803の処理の結果ZをRAM上に格納し
(ステップ804)、処理結果ZをDES暗号化処理(ステ
ップ805)を行ない、処理結果Wを得る。WとCを比較し
(ステップ806)、両者が一致すればI/OポートからZ
を出力し(ステップ808)、WとMが一致しなければ、リ
セットする(ステップ807)。すなわち、DESの復号
化処理結果に誤作動に起因するエラーがあれば、暗号化
処理結果を見ることによって、このエラーを検出し、リ
セットがかかる。このときアタッカーは、アタックに必
要となる誤った処理結果を得ることができず、アタック
を実行することができない。これは、本発明の実施例の
一つである。
【0030】上記の実施例では、誤作動を検出した際に
リセットを行なっているが、これは本発明の趣旨とは無
関係であり、例えば、リセットは行なわず、暗号処理と
は無関係な一定の値を出力したりしてもよいことは言う
までもない。
【0031】また本発明の考え方は、暗号化処理、復号
化処理の一部にも適用することができる場合がある。例
えば、置換処理の最中にエラーが生じたかどうかを判定
するために、この置換処理の逆置換処理を行なって、誤
作動を検出することも可能である。
【0032】次に、非対称鍵暗号の場合について説明す
る。非対称鍵暗号に対する誤作動を利用したアタックの
うち、最も有名なのは、CRT(中国人剰余定理)を用
いたRSA暗号処理に対するアタックである。この詳細
はA.K.Lenstra氏のショートメモ“Memo on RSA Signatu
re Generalization in the Presence of Faults”,1999
に記載されているが、ここでは、このアタックについ
て、その原理を説明し、理解の助けとする。RSA暗号
および、CRTについては、岡本栄司著「暗号理論入
門」(共立出版)や、A.J.Menezes, P.C. van Oorscho
t, S. A.Vanstone著 Handbook of Applied Cryptograph
y,(CRC-Press)などに詳しく記載されている。
【0033】簡単にRSA暗号を説明する。RSA暗号
では、大きな素数、例えば512ビットの2つの素数p,qの
積 N = pq と Nと互いに素な数 e(ICカードでは、3
や、65537が用いられることが多い)をとり、これを公
開鍵として公開鍵簿に登録する。このとき、この公開鍵
の持ち主Aに送信者Bは、1以上N-1以下の数で表現された
データ(平文) M を、 y = M^e mod N として暗号化して送信する。ここで、M^eはMのe乗を表
す記号とする。この暗号文 R を受け取ったAは、xe mod
(p-1)(q-1) = 1となる秘密鍵 x を用いて y^x mod N を計算する。ここで、(p-1)(q-1)は、Nのオイラー関数
の値f(N)である。これは、Nと互いに素な自然数の個数
に等しい。オイラーの定理によれば、 y^((p-1)(q-1)) mod N = 1 が成り立つ。一方、xe = 1 + k(p-1)(q-1)(kは整数)
と書くことができるので 、y^x mod N = (M^e)^x mod N = M^(ex) mod N = M^(1+k(p-1)(q-1)) mod N = M*M^(k(p-1)(q-1)) mod N = M が成り立つ。従って、y^x mod Nを計算することによっ
て、持ち主Aは、送信者Bの平文 M を復号することがで
きる。この際、秘密鍵 x を計算するのに、Nの素因数
p, q が用いられている。現在のところ、素因数分解を
介さないで、xを計算する方法は知られておらず、大き
な素数の積を因数分解することは、現実的でない時間が
必要であるので、Nを公開してもAの秘密鍵は安全であ
る。
【0034】ICカードでは、公開鍵指数eとして、3
や、65537が用いられることが多い。これは、暗号化の
計算時間を短縮するという意味もあるが、eの値を知っ
ても、直接的に秘密鍵指数xやNの素因数が危険に曝さ
れることはないという事情によるものである。
【0035】この計算法としては、アディション・チェ
イン方式などが採用される(上記「暗号理論入門」参
照)ことが多いが、このようなアルゴリズムでは、処理
が遅く、ICカードを用いたトランザクションに要する
時間がユーザの許容範囲を超えてしまう可能性がある。
【0036】そこで、単純にx,Nに対するべき乗剰余
計算を行なわずに、公開モジュラスNの二つの素因数p,q
に対するべき乗剰余計算結果から、Mを導く方法が、C
RTである。
【0037】図9を用いて、CRTの処理を簡単に説明
する。まず、計算に用いる値k=p^(-1) mod q, xp = x m
od (p-1), xq = x mod (q-1)の値を計算する。普通、こ
れらの値はEEPROMに格納しておく。次にI/Oポ
ートから暗号文yを受け取り(ステップ902)、この暗号
文yを素因数p,qを法とする剰余yp = y mod p, yq =y mo
d qを求め、これをRAMに格納する(ステップ903)。次
に、二つのべき乗剰余計算: Cp = yp^xp mod p, Cq = yq^xq mod q を行なう(ステップ904, 905)。次に、再結合計算: S = (Cq - Cp)*k mod p M = S*p + Cp を行ない(ステップ906,907)、Mを返す(ステップ90
8)。このMが、実際のy^xmod Nに一致する。
【0038】この事実を数値的に確認しておく。暗号文
y = 79, N = 187(=11*17), x = 107とする。このxは、
Nのオイラー関数値(11-1)*(17-1)=160に関して、e = 3
の逆数になっている。このとき、実際の値は、 M = 79^107 mod 187 = 79^(5*3*7 + 2) mod 187 = 79^2 * (79^5 mod 187)^(3*7) mod 187 = 79^2 * 10^(3*7) mod 187 = 79^2 * (10^3 mod 187)^7 mod 187 = 79^2 * (65^7 mod 187) mod 187 = 79^2 * 142 mod 187 = 29 である。
【0039】これをCRTを用いて計算する。11*14 mo
d 17 = 1であるから、k = 11^(-1)mod 17 = 14であり、
xp = 107 mod (11-1) = 7, xq = 107 mod (17-1) = 11
である。また、yp = 79 mod 11 = 2, yq = 79 mod 17 =
11となる。 Cp = 2^7 mod 11 = 7 Cq = 11^11 mod 17 = 12 となるので、 S = (12 - 7)*14 mod 17 = 2 M = 2*11 + 7 = 29 となり、先の値と一致する。
【0040】CRTを用いると高速化できる理由は、べ
き乗剰余計算では、データ長さの3乗に比例して、計算
量が増加するのに対して、CRTでは、データの長さが
半分のものを二つ計算するため、それぞれのべき乗剰余
計算の計算量は、1/8で済み、これを二回実行しても、
両者の計算量の合計は、1/8 * 2 = 1/4で済むからであ
る。実際には、データの変換や、再結合計算を行なう必
要があるので、4倍速にはならないが、速度は3倍程度に
向上する。
【0041】A.K.Lenstra氏が示したアタックの方法は
以下の通りである。まず、ICカードを正常動作させ
て、正しい計算値Mを得る。次に計算中にエラーを注入
し、図9における再結合計算部(ステップ907)におい
て、Sが正しい値でなくなってしまったと仮定する。こ
のエラーの入ったSの値を、S[ERROR]とし、対応する出
力値をM[ERROR]すると、アタッカーは二つの値: M = S*p + Cp M[ERROR] = S[ERROR]*p + Cp を得ることになる。両者の差は、 M[ERROR] - M = (S[ERROR] - S)*p となる。つまり、結果の差は、素因数pの倍数である。
【0042】従って、 p = gcd( M[ERROR] - M , N ) が成り立つ。ここで、gcd(A,B)は、AとBの最大公約数で
ある。
【0043】エラーは、Sの値を変化させ、Cpの値を変
えないようなものなら何でもよい。つまり、yqの計算
値、Cqの計算値、(Cq - Cp)*k mod qの計算値のいずれ
かが本来の値と異なっていれば、上記アタックが成功す
る。
【0044】実際、この方法で、モジュラスの因数分解
ができることを数値例で示す。先に示した数値例を思い
出そう。先の例では、暗号文y = 79, N = 187(=11*17),
x =107とする。このとき、実際の値は、29であった。
またk = 11^(-1) mod 17 = 14,xp = 107 mod (11-1) =
7, xq = 107 mod (17-1) = 11,yp = 79 mod 11 = 2,
yq = 79 mod 17 = 11であった。
【0045】Cqの計算が誤作動を起こし、11という値に
変化してしまったと仮定する。Cp =2^7 mod 11 = 7は正
常値である。このとき、 S = (11 - 7)*14 mod 17 = 5 となるので、 M[ERROR] = 5*11 + 7 = 62 が出力される。このとき、 gcd( 62 - 29 , 187 ) = gcd( 33 , 187 ) = 11 となり、モジュラスNの素因数11が得られる。
【0046】本発明では、このような現象を次のように
検出する。図10に示すように、まず、CRTの準備演
算1001にて、k=p^(-1) mod q, xp = x mod (p-1), xq =
x mod (q-1)を計算し、メモリに格納しておく(ステッ
プ1001)。次にI/Oポートから、暗号文yを受信し
(ステップ1002)、この暗号文yをRAMに格納する
(ステップ1003)。次に暗号文yに対して、CRTを用
いたRSA復号計算 y^x modNを行なう(ステップ100
4)。この演算結果ZをRAMに格納する(ステップ100
5)。演算結果Zは、エラーを含んでいる可能性のあるも
のである。RAM上の演算結果Zに対して、暗号化計算Z
^e mod Nを行ない(ステップ1006)、暗号化結果Wと、
RAM上にある暗号文yとが一致するかどうか比較し
(ステップ1007)、一致すれば、I/Oポートに平文Z
を出力し(ステップ1009)、一致しなければ、リセット
する(ステップ1008)。これは、本発明の実施例の一つ
である。
【0047】但し、これで、エラーが検出できるのは、
yがモジュラスNと互いに素である場合である。このこと
は、オイラーの定理から容易にわかることである。もし
もyがモジュラスNと互いに素でなければ、復号化結果を
暗号化しても元に戻らない場合があり、この際、図10
に示したエラー検出システムは、エラーがない場合でも
リセットしてしまう。
【0048】しかし、このようなことが起きる確率は、
無視できる程度に小さい。実際、N=pqと互いに素な、N
未満の自然数は、pの倍数がq-1個、qの倍数がp-1個であ
るから、p+q-2個あるが、これは全体の (p+q-2)/N = (p+q-2)/pq ≒ (1/p) + (1/q) に過ぎない。現在のRSA暗号の主流の鍵長は、1024ビ
ットであるので、その素因数p,qは512ビットである。従
って、上記確率は、ほぼ、2^(-511)であり、これは極め
て小さな数であり、無視できる。
【0049】本実施例においては、CRTを用いている
が、エラーの検出は、CRTとは全く無関係であり、一
般のRSAでもよい。さらに、より一般の公開鍵暗号で
も利用可能である。以下、その一例として、楕円曲線上
のRSA暗号を取り上げる。
【0050】楕円曲線暗号については、考案者の一人が
書いたN.コブリツ著(櫻井幸一訳)「数論アルゴリズ
ムと楕円暗号理論入門」(シュプリンガーフェアラ−ク
東京)、楕円曲線上の演算については、I.H.シルバーマ
ン・J.テイト著「楕円曲線論入門」(シュプリンガーフ
ェアラ−ク東京)、また群、環、体等の代数系について
は、松坂和夫著「代数系入門」(岩波書店)に詳しい説
明がある。
【0051】説明に先立って、まず、楕円曲線暗号につ
いて、簡単に説明する。楕円曲線とは、体Kの上で定義
された3次多項式の零点集合であり、Kの標数が2でな
い場合は、 y^2 = x^3 + ax^2 + bx +c という標準形を持つ。標数が2の体の上では、y^2 + cy
= x^3 + ax + bまたは、 y^2 + xy = x^3 + ax + b という標準形を持つ曲線である。(いずれの場合も、後
に説明する無限遠点Oを含めて考える)。楕円曲線の形
状は、図11のようなものになる。本発明において、標
数が2であるか否かは、本質的ではないので、以下、簡
単のため、標数が2でない場合について説明する。また
暗号で必要なのは、有限体の場合のみであるので、その
場合に限って説明する。有限個の元からなる体を有限体
またはガロア体といい、その構造はよく知られている。
その最も単純な構成法は以下の通りである。
【0052】まず、素数 p を法とする整数環の剰余環
Zp を考える。Zpにおいては、0以外の元は逆を持つの
で、体の構造を持っている。これを素体といい、Fpと書
く。これが最も原始的な有限体の例である。
【0053】次に、Fpの元を係数に持つ多項式 f(X) を
考え、その零点のうち、Fpに含まれないものをFpに添加
することによって、新しい体を構成することができる。
これを、Fpの有限次代数拡大体という。Fpの有限次代数
拡大体の元の個数は、pのべきになっていることが知ら
れている。その元の個数をqと書くとき、有限次代数拡
大体をFqなどと表示することがある。
【0054】楕円曲線上の点の間には、演算を定めるこ
とができる。図12に示すように、楕円曲線上の二つの
点、P,Qがあるとき、この二点を通る直線を引き(P=Qの
ときは接線を引く)、この直線が再び楕円曲線と交わる
点Rをx軸に関して対称に折り返した点は、曲線の対称
性から、再び楕円曲線上の点となる。この点をP+Qと書
き、PとQの「和」と定義する。交わる点がない場合は、
架空の点として無限遠点というものを考え、この架空の
点で交わっているものとみなす。無限遠点をOと書く。
また、楕円曲線上の点Pとx軸に関して対称な位置にあ
る点をPの逆元といい、-Pで表す。この「和」を用いて
一点Pをk個加えたものを、kP、-Pをk個加えたものを-kP
と書いて、Pのスカラー倍という。これらの座標は、P,Q
の座標の有理式で表すことができ、従って、一般の体の
上でこの演算を考えることができる。この「加法」は、
通常の加法と同様に、結合法則、交換法則が成立し、こ
の加法に関して、無限遠点Oは、通常の数での演算と同
様にゼロの役割を果たし、-Pは、Pと加えると、Oにな
る。これは楕円曲線上の加法演算が、可換群(アーベル
群)の構造を持つことを示している。これをモーデル・
ヴェイユ群ということがある。楕円曲線E、定義体Fqを
固定したときのモーデル・ヴェイユ群を、G(E/Fq)と書く
ことがある。G(E/Fq)の構造は非常に単純で、巡回群
か、または二つの巡回群の直積と同型になることが知ら
れている。
【0055】一般に、kP=Qの値がわかっても、逆にkの
値を知るのは計算量が膨大になるため、容易でない。こ
れを楕円曲線上の離散対数問題という。楕円曲線暗号で
は、楕円曲線上の離散対数問題が困難であることに基づ
いている。
【0056】楕円曲線を利用した暗号方式には種々のも
のがあるが、ここでは、特に楕円RSA暗号方式を説明
する。楕円RSA暗号においては、環上で楕円曲線を取
り扱う必要がある。環上での楕円曲線においても、形式
的に有限体上での場合と同じ式を用いてモーデル・ヴェ
イユ群演算を行なうことができることが知られている。
【0057】利用者は、二つの大きな素数p,q(p≡2 (mo
d 3), q≡2 (mod 3))を生成し、n=pq, m = lcm(p+1,q+
1)を求める。適当なe∈Zm(=Z/mZ) , gcd(e,m)=1を定
め、d =e^(-1) mod mを計算する。(e,n)が公開され、d
または、p,qを秘密鍵とする。
【0058】暗号化は次のように行なう。M = (Mx , M
y) ∈ Zn×Znを平文とする。環Zn上の楕円曲線を E: y^2 = x^3 + b として、楕円曲線上の点の加算を考えると、点の加算式
は、bの値に依存しないことがわかる。そこで、b = My
^2 - Mx^3 mod nとおく。すると、Mは、E上の点とみな
すことができる。この設定上で、楕円曲線上の演算: C = eM を行なう。これが暗号化である。
【0059】復号化は、 M = dC とすればよい。この演算が復号になっていることは、R
SA暗号の場合と同様にして証明できるが、Eの位数がp
+1になっていることを利用する必要がある。詳しくは、
例えば、岡本龍明・山本博資「現代暗号」産業図書を参
照されたい。
【0060】上記の楕円RSA暗号において、復号化操
作におけるエラーを検出する方法について述べる。図1
3に示すように、まず、I/Oポートより、公開鍵e,n
及び暗号文Cを受信し(ステップ1301)、この暗号文Cを
RAMに格納し(ステップ1302)、復号化計算(ステッ
プ1303)にて、秘密鍵dを用いてdCを計算する。dCに
は、エラーが含まれている可能性がある。この処理結果
をZとし、このZに対して、暗号化計算(ステップ1305)
にて、W = eZを求める。もしも、Zが正しい結果である
ならば、Wは、Cに等しくなければならない。そこで、W=
Cであれば、このZをI/Oポートに出力し(ステップ13
08)、W=Cでなければ、リセット(ステップ1307)を行
なう。これは、本発明の実施例の一つである。
【0061】以上に述べた処理方式は、抽象レベルで
は、同一と考えられる処理を具現化したものであって、
これらを、個々の暗号方式を超えて一般化することは自
然なことである。
【0062】以下、図14を用いて上記エラー検出方法
を抽象化したものを説明する。まず、I/Oポートよ
り、公開鍵情報J及び暗号文Cを受信し(ステップ140
1)、この暗号文CをRAMに格納し(ステップ1402)、
復号化計算(ステップ1403)にて、秘密鍵情報Sを用い
て、復号化結果D(C, S)を計算する。この復号化結果に
はエラーが含まれている可能性がある。この処理結果を
Zとし、このZに対して、暗号化計算(ステップ1405)に
て、W = E(Z, J)を求める。もしも、Zが正しい結果であ
るならば、Wは、Cに等しくなければならない。そこで、
W=Cであれば、このZをI/Oポートに出力し(ステップ
1408)、W=Cでなければ、リセット(ステップ1407)を
行なう。
【0063】図14に示した処理は、どのような非対称
暗号に対しても適用できるわけではないことに注意して
おく。実際、楕円ElGamal暗号などでは、単純に逆算で
きないため、本発明の方式は適用できない。
【0064】
【発明の効果】以上述べたように本発明によれば、暗号
化または復号化の操作に対し、その逆操作、すなわち暗
号化に対しては復号化、復号化に対しては暗号化の操作
を行なって、元の結果が得られるかどうか確認するの
で、故障検出によるICカードなどへの攻撃に対抗する
ことができる。
【図面の簡単な説明】
【図1】ICカードの概観及び端子を示す図である。
【図2】マイクロコンピュータの構成を示す図である。
【図3】DES暗号化処理方式を説明する図である。
【図4】DES復号化処理方式を説明する図である。
【図5】DES暗号化に対するエラー検出方法の実施例
の処理手順を示す図である。
【図6】DES復号化に対するエラー検出方法の実施例
の処理手順を示す図である。
【図7】一般の秘密鍵暗号の暗号化に対するエラー検出
方法の実施例の処理手順を示す図である。
【図8】一般の秘密鍵暗号の復号化に対するエラー検出
方法の実施例の処理手順を示す図である。
【図9】CRT(中国人剰余定理)を用いたRSAべき
乗剰余計算の処理手順を示す図である。
【図10】CRT(中国人剰余定理)を用いたRSA復
号化計算に対するエラー検出方法の実施例の処理手順を
示す図である。
【図11】楕円曲線の形状を示す図である。
【図12】楕円曲線上の加法を説明する図である。
【図13】楕円RSA暗号における復号化操作に対する
エラー検出方法の実施例の処理手順を示す図である。
【図14】より一般の非対称鍵暗号における復号化操作
に対するエラー検出方法の実施例の処理手順を示す図で
ある。
【符号の説明】
601〜608:ステップ(復号化処理後の暗号化による確
認)、1301〜1308:(復号化処理後の暗号化による確
認)
───────────────────────────────────────────────────── フロントページの続き (72)発明者 渡邊 高志 東京都国分寺市東恋ヶ窪一丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 大木 優 東京都国分寺市東恋ヶ窪一丁目280番地 株式会社日立製作所中央研究所内 Fターム(参考) 5B035 AA13 BB09 CA11 CA33 CA38 5J104 JA13 JA28 NA02 NA35 NA40 NA42

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】情報処理装置を利用して対称鍵暗号化処理
    を行なう方法であって、(1)入力される平文Mに秘密
    鍵Kを適用する暗号化処理Z=E(M,K)を行なって
    その結果Zをメモリに格納し、(2)前記メモリ上の結
    果Zに対して復号化処理W=D(Z,K)を行なってそ
    の結果Wをメモリ上に格納し、(3)前記の処理結果W
    と平文Mとが一致している場合には、処理結果Zを出力
    し、(4)前記の処理結果Wと平文Mとが不一致の場合
    には、処理結果の出力を抑止することを特徴とする暗号
    処理方法。
  2. 【請求項2】前記暗号化処理及び復号化処理をDES(D
    ata Encryption Standard)に従って実行することを特徴
    とする請求項1記載の暗号処理方法。
  3. 【請求項3】前記処理結果の出力を抑止する方法とし
    て、前記情報処理装置をリセットすることを特徴とする
    請求項1記載の暗号処理方法。
  4. 【請求項4】前記情報処理装置及び前記メモリは、IC
    カード上に搭載されるそれぞれ演算装置及び記憶装置で
    あることを特徴とする請求項1記載の暗号処理方法。
  5. 【請求項5】情報処理装置を利用して対称鍵復号化処理
    を行なう方法であって、(1)入力される暗号文Cに秘
    密鍵Kを適用する復号化処理Z=D(C,K)を行なっ
    てその結果Zをメモリに格納し、(2)前記メモリ上の
    結果Zに対して暗号化処理W=E(Z,K)を行なって
    その結果Wをメモリ上に格納し、(3)前記の処理結果
    Wと暗号文Cとが一致している場合には、処理結果Zを
    出力し、(4)前記の処理結果Wと暗号文Cとが不一致
    の場合には、処理結果の出力を抑止することを特徴とす
    る暗号処理方法。
  6. 【請求項6】前記暗号化処理及び復号化処理をDES(D
    ata Encryption Standard)に従って実行することを特徴
    とする請求項5記載の暗号処理方法。
  7. 【請求項7】前記処理結果の出力を抑止する方法とし
    て、前記情報処理装置をリセットすることを特徴とする
    請求項5記載の暗号処理方法。
  8. 【請求項8】前記情報処理装置及び前記メモリは、IC
    カード上に搭載されるそれぞれ演算装置及び記憶装置で
    あることを特徴とする請求項5記載の暗号処理方法。
  9. 【請求項9】情報処理装置を利用して非対称鍵復号化処
    理を行なう方法であって、(1)入力される暗号文Cに
    秘密鍵X,公開鍵情報Jを適用する復号化処理Z=D
    (C,X,J)を行なってその結果Zをメモリに格納
    し、(2)前記メモリ上の結果Zに対して暗号化処理W
    =E(Z,J)を行なってその結果Wをメモリ上に格納
    し、(3)前記の処理結果Wと暗号文Cとが一致してい
    る場合には、処理結果Zを出力し、(4)前記の処理結
    果Wと暗号文Cとが不一致の場合には、処理結果の出力
    を抑止することを特徴とする暗号処理方法。
  10. 【請求項10】前記暗号化処理及び復号化処理をRSA
    暗号化方式に従って実行することを特徴とする請求項9
    記載の暗号処理方法。
  11. 【請求項11】前記処理結果の出力を抑止する方法とし
    て、前記情報処理装置をリセットすることを特徴とする
    請求項9記載の暗号処理方法。
  12. 【請求項12】前記情報処理装置及び前記メモリは、I
    Cカード上に搭載されるそれぞれ演算装置及び記憶装置
    であることを特徴とする請求項9記載の暗号処理方法。
JP2001058087A 2001-03-02 2001-03-02 暗号処理方法 Withdrawn JP2002261751A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2001058087A JP2002261751A (ja) 2001-03-02 2001-03-02 暗号処理方法
US09/931,937 US20020124179A1 (en) 2001-03-02 2001-08-20 Fault detection method
EP01119671A EP1237322A3 (en) 2001-03-02 2001-08-22 Fault detection method for cryptographic process

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001058087A JP2002261751A (ja) 2001-03-02 2001-03-02 暗号処理方法

Publications (2)

Publication Number Publication Date
JP2002261751A true JP2002261751A (ja) 2002-09-13
JP2002261751A5 JP2002261751A5 (ja) 2005-06-16

Family

ID=18917869

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001058087A Withdrawn JP2002261751A (ja) 2001-03-02 2001-03-02 暗号処理方法

Country Status (3)

Country Link
US (1) US20020124179A1 (ja)
EP (1) EP1237322A3 (ja)
JP (1) JP2002261751A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2005027403A1 (ja) * 2003-09-11 2006-11-24 株式会社ルネサステクノロジ 情報処理装置
US7388957B2 (en) 2003-01-28 2008-06-17 Matsushita Electric Industrial Co., Ltd. Elliptic curve exponentiation apparatus that can counter differential fault attack, and information security apparatus
JP2009015434A (ja) * 2007-07-02 2009-01-22 Dainippon Printing Co Ltd 携帯可能情報処理装置及び情報処理プログラム
EP2259487A1 (en) 2009-06-01 2010-12-08 Sony Corporation Circuit for detecting malfunction generation attack and integrated circuit using the same
JP2016224617A (ja) * 2015-05-28 2016-12-28 大日本印刷株式会社 演算装置、演算方法、及び演算処理プログラム

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10258323A1 (de) * 2002-12-13 2004-06-24 Giesecke & Devrient Gmbh Verschlüsselungsverfahren
JP2004212828A (ja) * 2003-01-08 2004-07-29 Sony Corp 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP2004361986A (ja) * 2003-04-08 2004-12-24 Sharp Corp スクランブル回路
DE10328860B4 (de) * 2003-06-26 2008-08-07 Infineon Technologies Ag Vorrichtung und Verfahren zum Verschlüsseln von Daten
KR100546375B1 (ko) 2003-08-29 2006-01-26 삼성전자주식회사 자체 오류 감지 기능을 강화한 상호 의존적 병렬 연산방식의 하드웨어 암호화 장치 및 그 하드웨어 암호화 방법
DE102004001659B4 (de) * 2004-01-12 2007-10-31 Infineon Technologies Ag Vorrichtung und Verfahren zum Konvertieren einer ersten Nachricht in eine zweite Nachricht
JP4583305B2 (ja) * 2005-12-28 2010-11-17 シャープ株式会社 記録方法、記録装置及びicカード
KR100850202B1 (ko) * 2006-03-04 2008-08-04 삼성전자주식회사 Ecc 패스트 몽고매리 전력 래더 알고리즘을 이용하여dfa 에 대응하는 암호화 방법
JP4327883B1 (ja) * 2008-04-28 2009-09-09 株式会社東芝 情報処理装置、情報処理方法
US8612777B2 (en) * 2009-01-09 2013-12-17 Infineon Technologies Ag Apparatus and method for writing data to be stored to a predetermined memory area
US8644500B2 (en) * 2010-08-20 2014-02-04 Apple Inc. Apparatus and method for block cipher process for insecure environments
CN108900319B (zh) * 2018-05-30 2021-05-25 北京百度网讯科技有限公司 故障检测方法和装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5608798A (en) * 1995-08-30 1997-03-04 National Semiconductor Corporation Crytographic device with secure testing function
US5631960A (en) * 1995-08-31 1997-05-20 National Semiconductor Corporation Autotest of encryption algorithms in embedded secure encryption devices
US5991401A (en) * 1996-12-06 1999-11-23 International Business Machines Corporation Method and system for checking security of data received by a computer system within a network environment
US6049613A (en) * 1997-03-07 2000-04-11 Jakobsson; Markus Method and apparatus for encrypting, decrypting, and providing privacy for data values
US6144740A (en) * 1998-05-20 2000-11-07 Network Security Technology Co. Method for designing public key cryptosystems against fault-based attacks with an implementation
JP2002519722A (ja) * 1998-06-03 2002-07-02 クリプターグラフィー リサーチ インコーポレイテッド スマートカードおよび他の暗号システム用の、漏洩を最小に抑える、改良desおよび他の暗号プロセス
US6219791B1 (en) * 1998-06-22 2001-04-17 Motorola, Inc. Method and apparatus for generating and verifying encrypted data packets
US7216110B1 (en) * 1999-10-18 2007-05-08 Stamps.Com Cryptographic module for secure processing of value-bearing items

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7388957B2 (en) 2003-01-28 2008-06-17 Matsushita Electric Industrial Co., Ltd. Elliptic curve exponentiation apparatus that can counter differential fault attack, and information security apparatus
JPWO2005027403A1 (ja) * 2003-09-11 2006-11-24 株式会社ルネサステクノロジ 情報処理装置
JP2009015434A (ja) * 2007-07-02 2009-01-22 Dainippon Printing Co Ltd 携帯可能情報処理装置及び情報処理プログラム
EP2259487A1 (en) 2009-06-01 2010-12-08 Sony Corporation Circuit for detecting malfunction generation attack and integrated circuit using the same
US8350574B2 (en) 2009-06-01 2013-01-08 Sony Corporation Circuit for detecting malfunction generation attack and integrated circuit using the same
JP2016224617A (ja) * 2015-05-28 2016-12-28 大日本印刷株式会社 演算装置、演算方法、及び演算処理プログラム

Also Published As

Publication number Publication date
EP1237322A2 (en) 2002-09-04
US20020124179A1 (en) 2002-09-05
EP1237322A3 (en) 2003-08-13

Similar Documents

Publication Publication Date Title
EP1248409B1 (en) Attack-resistant cryptographic method and apparatus
Blömer et al. Provably secure masking of AES
JP3950638B2 (ja) 耐タンパーモジュラ演算処理方法
US7864951B2 (en) Scalar multiplication method with inherent countermeasures
Page et al. A fault attack on pairing-based cryptography
JP2002261751A (ja) 暗号処理方法
EP3596876B1 (en) Elliptic curve point multiplication device and method for signing a message in a white-box context
US7835517B2 (en) Encryption processing apparatus, encryption processing method, and computer program
Dhem et al. Hardware and software symbiosis helps smart card evolution
JP2008252299A (ja) 暗号処理システム及び暗号処理方法
US8639944B2 (en) Zero divisors protecting exponentiation
GB2399904A (en) Side channel attack prevention in data processing by adding a random multiple of the modulus to the plaintext before encryption.
US8150029B2 (en) Detection of a disturbance in a calculation performed by an integrated circuit
JP5261088B2 (ja) 不正操作検知回路、不正操作検知回路を備えた装置、及び不正操作検知方法
US11824986B2 (en) Device and method for protecting execution of a cryptographic operation
CN103246494A (zh) 一种抵抗能量分析和错误攻击的安全模幂计算方法
US9313027B2 (en) Protection of a calculation performed by an integrated circuit
JP3878853B2 (ja) 公開鍵暗号アルゴリズムを用いる電子構成品におけるモジュラべき乗演算アルゴリズム
JP2003255831A (ja) 楕円曲線スカラー倍計算方法及び装置
US11206126B2 (en) Cryptographic scheme with fault injection attack countermeasure
KR100564599B1 (ko) 역원 계산 회로, 역원계산 방법 및 상기 역원계산 방법을실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수있는 기록매체
Russon Exploiting dummy codes in Elliptic Curve Cryptography implementations
Koziel Low-Resource and Fast Elliptic Curve Implementations over Binary Edwards Curves
Han et al. On security of XTR public key cryptosystems against Side Channel Attacks
Ma Cryptographic Security: Countermeasures against Side-Channel Attacks

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040913

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040913

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20050906