JP2002334317A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JP2002334317A
JP2002334317A JP2001138073A JP2001138073A JP2002334317A JP 2002334317 A JP2002334317 A JP 2002334317A JP 2001138073 A JP2001138073 A JP 2001138073A JP 2001138073 A JP2001138073 A JP 2001138073A JP 2002334317 A JP2002334317 A JP 2002334317A
Authority
JP
Japan
Prior art keywords
branch
branch instruction
information processing
instruction
processing apparatus
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.)
Granted
Application number
JP2001138073A
Other languages
English (en)
Other versions
JP2002334317A5 (ja
JP4009437B2 (ja
Inventor
Takashi Watanabe
高志 渡邊
Takashi Endo
隆 遠藤
Masahiro Kaminaga
正博 神永
Kunihiko Nakada
邦彦 中田
Yuichiro Nariyoshi
雄一郎 成吉
Chiaki Tanimoto
千晶 谷本
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
Hitachi Solutions Technology Ltd
Original Assignee
Hitachi Ltd
Hitachi ULSI Systems Co 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, Hitachi ULSI Systems Co Ltd filed Critical Hitachi Ltd
Priority to JP2001138073A priority Critical patent/JP4009437B2/ja
Priority to US10/124,576 priority patent/US7451485B2/en
Publication of JP2002334317A publication Critical patent/JP2002334317A/ja
Publication of JP2002334317A5 publication Critical patent/JP2002334317A5/ja
Application granted granted Critical
Publication of JP4009437B2 publication Critical patent/JP4009437B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】 情報処理装置が誤動作した際にも適切に処理
を継続もしくは停止することができるように、誤動作検
出装置を提供する。 【解決手段】 分岐先情報を受け取った情報処理装置
は、分岐先情報に依存した条件分岐を行い、それに応じ
た処理をデータに対して行う。この時に、条件分岐先で
処理データIとは別のデータJに対して、その条件分岐先
に応じた処理を行いその結果を出力することで後に検算
を行って条件分岐が正しく行われたかどうかを判定する
ことができるようにする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は情報処理装置に関
し、特に電磁波や放射線、電源の瞬断その他の物理手段
により誤動作を起こし、その装置内部で使用されている
情報を取得しようとする攻撃やその情報取得を目的とし
たその装置の解析に対抗する手段を持つ耐タンパー装置
に関する。
【0002】
【従来の技術】電子機器が普及している現代において、
各種の機器が様々な周波数の電磁波を放射している。例
えば、テレビの隣にスピーカを設置すると、テレビの映
像に滲みが生じるなどの現象が起こる。また、車に搭載
されるコンピュータに代表されるように、強度の大きい
振動や不安定な電源といった環境においても誤動作のな
い、もしくは規定外動作から確実に復帰するための手段
を備えた装置が必要とされている。このような現象につ
いて説明するために、「タンパーエビデント(tamper ev
ident)」「タンパーレスポンス(tamper response)」
「タンパーフリー(tamper free)(耐タンパー(tamper re
sistant)とも)」といった用語が用いられ、それぞれ、
規定外動作検出、該検出後の応答性、該動作に対する耐
性を意味する。
【0003】一般の装置には、装置本来の目的を正常に
果たすために、実際の運用環境におけるノイズなどの誤
動作要因をあらかじめ想定して設定された動作マージン
がある。タンパーエビデント性を持つ装置は、その装置
があらかじめ想定した動作環境外の誤動作環境にさらさ
れたかどうかの履歴を適当な手段で記録することができ
るため、装置の管理者は装置を常時監視する必要が無
く、定期的に履歴を確認することで、誤動作防止のため
の適切な処置を施すことができる。さらにタンパーレス
ポンス性を持つ装置は、設計時に想定した以外の誤動作
状況になったかどうかを独自に観測して必要な手段で警
報などの応答を行うことができる。装置の管理者は、装
置が警告を発した場合のみに確認作業を行えば良い。タ
ンパーフリー性を持つ装置は、規定外の動作に陥らない
ように十分な配慮が行われているか、仮に規定外の動作
に陥ったとしても自動的に復旧することができる。また
は、タンパーという言葉を悪意者からの攻撃と解釈する
ならば、悪意者の目的物を完全に保護する機構を備えた
装置もタンパーフリー装置と呼ぶことができる。例え
ば、秘密の情報を保持する記憶装置を備える銀行端末な
どが不正に開封された場合には、その装置自身が自動的
にその記憶装置の記憶内容を消去したり破壊したりする
ことで保護することができる。タンパーフリー性を持つ
装置は、管理者が監視を行う必要が無い。
【0004】ここでは、タンパーとは環境の変化や悪意
者による積極的な攻撃を意味する。
【0005】電磁波や放射線、熱、振動など強度などが
設計時に意図した範囲を超えたときに、装置はいわゆる
誤動作や停止状態に陥る傾向がある。これは、装置が電
気的、機械的に動作していることによる。部品点数の少
ない装置であれば、単純な総当りを行っても原因の特定
と対策にかかるコストは比較的低く抑えることが可能で
あるが、部品が相互に組み合わされたときに、その種類
と方法をすべて網羅的に確認することは不可能であり、
したがって誤動作しないことを保証することは非常に困
難である。そのため、多数の部品にそのシステム全体の
安全性を依存しなければならない装置ほど、耐タンパー
性に高度の注意を払うことが必要である。例えば、数1
0万から数100万個のオーダーで高度に集積化された
半導体を使用する中央演算装置(CPU)などのマイクロ
プロセッサや、CPU、メモリ、外部インターフェースな
どを数mm角以下に集積したICカードなどがその一例であ
ろう。従来は、そのようなシステムを運用する上で、上
位のシステムは下位のシステムの安全性を全面的に信頼
することで設計を行ってきたが、これは下位のシステム
の故障や誤動作によりシステム全体が不測の停止や誤動
作状態に陥る可能性があることを意味する。
【0006】図1に、ICカードを示した。ICカード(1
01)には接触端子(102)が装着されており、この
端子を経由して外部とのやり取りを行う。Vccには電源
を供給し、RSTにはリセット信号を、CLKにはクロック信
号を、I/OにはI/O信号を伝達する。GNDは接地端子であ
る。 高度な安全性を要求されるICカードなどの場合、
図2の中央演算装置(201)を使用して秘密の鍵を使
用して暗号処理などの演算を行う。ICカードでは内部と
外部とをつなぐのはI/Oポート(207)のみであり、C
PUの演算データは外部に出力されないことから、内部で
記憶装置(204)に秘密に保持しているデータ(20
6)は極めて安全であると考えられてきた。しかし、IC
カードに外部から放射線や電磁波などのストレスを与え
ることで誤動作を起こし、その演算結果を観測すること
により内部の秘密の鍵情報を取得することができること
をBiham氏とShamir氏が「Differential Fault Analysis
of Secret Key Cryptosystems」(Lecture Notes in Co
mputer Science, Advancesin Cryptology, proceedings
of CRYPTO'97, Springer-Ferlag, pp513-525, 1997)に
おいて示した。ここに示されるように、演算値の一部に
エラーを生じさせその演算結果から秘密の鍵を特定する
ことが可能である。ゆえに、ICカードのシステムが動作
しつづけていることだけでは必ずしも十分でない。この
ように、装置自身がシステム設計者の意図通りに「正し
く」動作しているかどうかを把握する必要がある。
【0007】
【発明が解決しようとする課題】従来の装置は、外部か
らの放射線や電磁波、振動などにより誤動作を起こし、
その誤動作の結果として予定外の情報漏洩や故障を招く
ことがあった。装置の電源を不安定にした場合、装置の
中で最も電圧異常に弱い部分から誤動作を始める傾向が
ある。これは装置の接続関係や設計により様々に異なる
ため、高度に集積された装置のどの部分が弱いかを決定
することは困難である。また、高度に組み合わされた装
置の相互関係を追跡することは非常に高コストでもあ
り、引き起こされる誤動作現象を予測することも困難で
ある。
【0008】本発明の目的のひとつは、情報処理装置が
誤動作の種類に応じて適切に処理を継続もしくは停止す
ることが可能な情報処理装置を提供することにある。
【0009】
【課題を解決するための手段】I.条件分岐命令を複数
回連続的に記述する。
【0010】グリッチアタックへの対応策の一つとし
て、条件分岐命令を複数回連続的に記述する構成を本発
明の実施例では採る。
【0011】グリッチアタックに遭遇してある条件分岐
命令が正しく実行されず、実質的にはその命令が実行さ
れなかった場合への対応策である。
【0012】それに関連する構成は次の通りである。 1.ICカード用チップ内の一のアプリケーションまたは
一の情報へのアクセス権を得るための入力パスワードの
正誤を判定するために前記入力パスワードと正しいパス
ワードとを比較し、両者が一致した場合にはその次の命
令を実行し、不一致の場合には分岐命令を実行する第一
の分岐命令が記憶装置内に格納され、その第1の分岐命
令の後にはそれと同じ命令である第2の分岐命令が前記
記憶装置内に格納されていることを特徴とする情報処理
装置。 2.前記第1および第2の分岐命令の判定結果に基づき
実行される分岐命令での分岐先にはエラー処理命令が設
けられていることを特徴とする上記1.記載の情報処理
装置。 3.前記第2の分岐命令の判定結果に基づき分岐せずに
その次の命令が実行される場合にはその第2の分岐命令
の次の命令またはその先の命令には前記アクセス権を付
与するルーチンが含まれていることを特徴とする上記1
記載の情報処理装置。 4.前記入力パスワードは複数個の文字、数字、符号ま
たは記号の列を有し、前記文字、数字、符号または記号
の一単位と正しいパスワードの一単位とを比較すること
により入力パスワードの正誤判定を行うことを特徴とす
る請求項1記載の情報処理装置。 5.前記第一の分岐命令に引き続いて前記第二の分岐命
令が実行される場合の前記第一の分岐命令の実行開始時
刻から前記第二の分岐命令の実行開始時刻までの時間間
隔が1マイクロ秒以下となるように構成されていること
を特徴とする上記1.記載の情報処理装置。 6.前記正しいパスワードがn個(nは自然数とする。)の
文字列よりなる場合、前記第1および第2の分岐命令は
それぞれn個あり、前記第1の分岐命令と前記第2の分
岐命令とが交互に実行されるようにコーディングされて
いることを特徴とする上記1.記載の情報処理装置。 7.前記第1の分岐命令と前記第2の分岐命令との間に
はそれ以外の命令が配置されていることを特徴とする上
記6.記載の情報処理装置。 8.分岐条件を満足する場合にはその分岐命令を実行
し、その分岐条件を満足しない場合にはその次の命令を
実行する第一の分岐命令が記憶装置内に格納され、その
第1の分岐命令の後にはそれと同じ命令である第2の分
岐命令が前記記憶装置内に格納されていることを特徴と
する情報処理装置。 9.前記第2の分岐命令は前記第1の分岐命令に引き続
いて前記記憶装置内の所定アドレスに記憶されているこ
とを特徴とする上記8.記載の情報処理装置。 10.前記第1および第2の分岐命令は入力パスワード
が正しいか否かの判定を行うために用いられるものであ
り、入力パスワードが正しいとの判定がなされた場合に
はその判定の後にICカード用チップ内の一のアプリケー
ションまたは一の情報へのアクセスする処理が実行され
るように構成されたことを特徴とする上記8.記載の情
報処理装置。
【0013】上記したものは基本的に同じ分岐命令を連
続して記載するものである。これに対して次のものは異
なる分岐命令を連続的に記載するものである。 11.ある条件フラグF1の値が0または1のときに分岐
命令が実行される第1の分岐命令と、前記条件フラグF1
の値が1または0のときに分岐命令が実行される第2の
分岐命令とを有し、前記第1の分岐命令実行時に前記条
件フラグF1の値に基づき分岐処理が行われないときに
は、それに続く処理で前記条件フラグF1の値を反転させ
た後に前記第2の分岐命令が実行されるように構成され
たことを特徴とする情報処理装置。 12.前記第1および第2の分岐命令は入力パスワード
が正しいか否かの判定を行うために用いられるものであ
り、入力パスワードが正しいとの判定がなされた場合に
はその判定の後にICカード用チップ内の一のアプリケー
ションまたは一の情報へのアクセスする処理が実行され
るように構成されたことを特徴とする上記11.記載の
情報処理装置。 13.ある条件フラグF1の値が0または1のときに分岐
命令が実行される第1の分岐命令と、前記条件フラグF2
の値が0または1のときに分岐命令が実行される第2の分
岐命令とを有し、前記第1の分岐命令実行時に前記条件
フラグF1の値に基づき分岐処理が行われないときには、
それに続く処理で前記条件フラグF1の値を前記条件フラ
グF2に複写し、その後に前記第2の分岐命令が実行する
ように構成したことを特徴とする情報処理装置。 II.つぎのものは分岐経路の把握に関するものであ
る。分岐命令に従い分岐する場合、分岐前にどの分岐先
へ分岐すべきかは遅くともその分岐命令実行直前に判明
している。一方、その分岐命令が正しく実行されたか否
かの確認が必要な場合がある。この場合、個々の分岐先
で特有の処理を行い、その処理結果と事前に記憶した分
岐先とを比較照合することにより、正しく分岐したか否
かをチェックする機能を有するのが以下の構成である。 14.分岐条件に基づき複数個の分岐先のうちのいずれ
か一を指定する分岐命令と、その分岐先にコーディング
されている一連の命令を実行した場合には前記複数個の
分岐先のうちのどの分岐先経路を通過したかを第1のデ
ータとして記憶し、前記分岐条件の判断の基準となる分
岐先データと前記第1のデータとを比較する手段を有す
ることを特徴とする情報処理装置。 15.前記分岐条件の判断の基準となる分岐先データと
前記第1のデータとが一致する場合にはそれに引き続く
処理を行い、不一致の場合にはエラー処理を行うように
構成されたことを特徴とする上記14.記載の情報処理
装置。 III.これは.ループ処理の処理回数を制限する機能
に関するものである。
【0014】これは、ループ処理の処理回数を制限する
ことにより、情報処理装置の異常な動作を抑制する処理
に関するものである。カウンタを複数個設け、ループ内
で例えば、同様のカウントダウン処理を行い、各カウン
タ値が0となるか複数個のカウンタの値に不一致が生じ
た場合にはループ処理から抜ける処理を行う。これによ
り規定回数以上のループ処理実行を抑制するものであ
る。以下のものはその具体的な構成例である。 16.第1および第2のカウンタの値を初期化し、ルー
プ内で前記第1および第2のカウンタ値をカウントダウ
ンする処理を行い、前記第1および第2のカウンタに対
するカウントダウン後の前記第1および第2のカウンタ
値が不一致の場合または前記第1および第2のカウンタ
に対するカウントダウン後の前記第1および第2の両方
のカウンタ値が共に第1の所定値の場合には前記ループ
から抜ける処理を行い、前記第1および第2のカウンタ
に対するカウントダウン後の前記第1および第2の両方
のカウンタ値が共に第2の所定値の場合には前記ループ
内の処理を繰り返すように構成されていることを特徴と
する情報処理装置。 17.前記第1の所定値は0であり、前記第2の所定値
は自然数であることを特徴とする上記16.記載の情報
処理装置。 18.第1および第2のカウンタの値を初期化し、処理
ループ内で前記第1および第2のカウンタ値を更新する
処理を行い、前記更新処理後の前記第1のカウンタ値と
第2のカウンタ値とが不一致の場合または前記更新処理
後の前記第1および第2の両方のカウンタ値が共に第1
の所定値の場合には前記ループから抜ける処理を行い、
それ以外の場合には前記ループ内の処理を繰り返すよう
に構成されていることを特徴とする情報処理装置。 19.前記カウンタ値の更新は更新前のカウンタ値から
カウントダウンする処理であるか又はカウントアップ処
理するものであることを特徴とする上記18.記載の情
報処理装置。 20.前記第1の所定値は0であることを特徴とする上
記18.記載の情報処理装置。 IV.情報処理装置の一部を切り離してその部分を使用
し続けるような行為を阻止するための手段について説明
する。これはそのような部分に関連する独自のカウンタ
をその装置に設け、その部分を使用するたびにその独自
カウンタのカウンタ値を更新し、そのカウンタ値が規定
値以下となった場合にはその部分の使用を阻止する機能
を設けるものである。以下に具体的な構成を示す。 21.その装置の一部の使用限度回数を記憶するための
カウンタと、その装置の一部の使用回数に応じて前記カ
ウンタ値を更新する手段と、その装置の一部の累積使用
回数が前記使用限度回数に至った場合にはその装置の一
部のその後の使用を制限する手段と、その装置の一部の
使用が制限された場合にはその装置の他の部分からの指
示で前記カウンタ値を更新することによりその使用制限
を解除する手段を有することを特徴とする情報処理装
置。 22.その装置の一部の累積使用回数が前記使用限度回
数に至った場合にはその装置の一部のその後の使用を拒
否するものあることを特徴とする上記21.記載の情報
処理装置。 23.その装置へのコマンド入力により前記使用制限が
解除されるように構成されていることを特徴とする上記
21.記載の情報処理装置。 24.前記コマンド入力と併せてそのコマンド入力の正
当性を確認する手段が設けられていることを特徴とする
上記23.記載の情報処理装置。
【0015】
【発明の実施の形態】今、演算装置を考える。電源を不
安定にした場合、演算装置の全体ではなく一部分で誤動
作が起こることがある。つまり、ある命令を受け取った
演算装置の命令実行部分が沈黙状態に陥り、しかしそれ
以外の部分が正常に動作しているならば、外部からはあ
る命令を実行しない演算装置と見ることができる。この
ような誤動作は条件分岐を行う際に顕著な問題となる。 (1)同様な条件分岐命令を複数個並べることによる誤
動作防止対策 図3は一般的に用いられるパスワード照合の処理フロー
である。パスワード判定装置(300)は、判定部分
(301)でパスワードが不正解であると判定すると、
もう一度パスワード入力処理に戻るように動作しようと
する(302)。この時に上記の誤動作(条件分岐命令
の沈黙)が起こったならば、判定部分(301)の処理
を行わずに次の処理に遷移するため、パスワードの正否
に関わらず、最終的に正解時の処理(303)に進む可
能性がある。
【0016】また、図4に示すように、装置がエラーを
起こした場合、装置のリセットをその装置の利用者に対
して促すために無限ループ(400)に遷移させること
が一般的に行われる。その装置が無限ループ(401)
内で動作中に誤動作した場合を考える。すると、無限ル
ープに留まるための無条件ジャンプ命令(402)が実
行されないことが起こり得る。この場合、装置は無限ル
ープを抜け出し、それに続くアドレスに記述されている
プログラム(403)へ遷移し、以降に記述されている
プログラムを順次実行していく可能性がある。これはこ
のプログラムの作成者が想定していない動作であり、望
ましくないものである。
【0017】図5に示すように、条件分岐命令を複数回
繰り返す(502,503,504)ことで、図4を用
いて説明した問題点の発生を防止することができる。同
一の条件での分岐命令を複数回繰り返すことは処理フロ
ーに何ら影響を与えず、突発的な誤動作であれば、複数
回のうちのいずれかが正常に処理される。ここで、2回
目以降の条件分岐先(503,504)を装置の処理を
停止する制御を行う装置、あるいは誤動作を警告する装
置(506)に設定することもできる。というのは、2
回目以降の条件分岐で分岐するのは上記のような誤動作
による場合に他ならないからである。この時、装置はタ
ンパーエビデント性を持つといえる。なお、誤動作なき
場合には処理A(505)または処理B(507)が実行され
る。
【0018】一般的な情報処理装置はプログラムカウン
タを元に動作を行っており、そのプログラムカウンタが
指し示す場所にあるプログラムを順次実行する。プログ
ラムやデータを記憶する記憶装置は一般に読み書き時に
電力を消費する。また複雑な手順を経るため、電源が不
安定になるなどにより誤動作が起こった場合にプログラ
ムやデータを正常に読み込めない場合がある。特別な配
慮のされていない装置ではこの誤動作の際に、プログラ
ムカウンタの指し示すプログラムステップを無処理のま
ま通過し、しかしプログラムカウンタは記憶装置に比較
して電力消費が少なく簡単な演算で更新されるため、そ
のまま次のプログラムステップに進むことがある。条件
分岐処理を無処理のまま通過することは、条件判定で条
件が偽であった場合と等価であり、設計者の意図しない
結果をもたらす。例えば、入力値が負の数であれば再度
入力処理に戻り、そうでなければ次の処理に進むという
処理を考える。誤動作により入力値の判定が行われない
まま次の処理に進んでしまうと、後のプログラムは入力
値が正の数であることを想定しているため、予期しない
誤動作を引き起こす。本実施例のように、2回以上の条
件分岐命令を設置することで、条件分岐命令を無処理の
まま通過して次の状態に移行してしまう確率を減らすこ
とができる。条件分岐処理は一般的にシステムに変化を
もたらさないため、複数回実行してもなんら新たな問題
は起きない。また、条件を反転した命令を使用すること
や、他の条件フラグによる条件判定を行うことで、異な
る条件分岐命令を混在させることができる。ある環境要
因による誤動作が命令そのものに依存するものであると
き、本発明により連続する同質の誤動作の影響を受ける
確率を効果的に減らすことができる。
【0019】図5に示した情報処理装置は、条件フラグ
Z(ゼロフラグ)を参照し、Z=0であれば分岐処理
(502)を行う。本発明では、分岐処理(502)の
後に再度、同じ分岐処理(503)を行う。本実施例で
はさらに続けて同じ分岐処理(504)を行っている。
これは、処理装置の誤動作により分岐処理が行われなか
った場合の保護機構であり、条件分岐命令は処理装置の
内部状態を変化させない命令であるため、さらに誤動作
確率を減らすために、本例に見られるように3回処理を
行うのに留まらず、任意の回数だけ行うことができる。
2回目以降の分岐処理により分岐が起こるのは、誤動作
により1回目の分岐処理を通過した場合のみであるた
め、2回目以降の分岐処理の分岐先をエラー処理(50
6)とすることができる。エラー処理とせず、1回目の
分岐処理と同様に処理B(507)に接続すれば、誤動
作環境下においても処理を継続することができる。図5
に示した条件Z=0とは、演算の結果がゼロであったこ
とを示すものであり、一般の演算器にはこのような演算
の結果を示す条件フラグが用意されている。本実施例で
はZフラグを参照したが、その他のフラグを用いること
も可能である。 (2)他の分岐命令の併用による誤動作防止対策 先に述べたように、電源を不安定にしても装置全体が必
ずしも不安定になるわけではなく、最も弱いところから
誤動作し始める傾向がある。そのため、受ける影響が演
算装置の命令毎に異なり、ある命令は正常動作してもあ
る命令は誤動作する場合がある。ところで、演算装置に
は各条件フラグの0/1に応じて2種類ずつの命令(図
6の602,604)が実装することができる。例え
ば、Zフラグ(ゼロフラグ)が0であるときに分岐する命
令(602)と、Zフラグが1であるときに分岐する命
令(604)である。そこで、条件フラグのビット値を
反転して(603)再度違う命令で条件分岐を行う。こ
れは、一時的な誤動作であれば同じ分岐命令を列挙する
ことで対策可能であるが、定常的な誤動作であるときに
は同じ命令の系列はすべて通過してしまうため、違う命
令を織り交ぜることで誤動作検出確率を上げることがで
きる。主な手順は以下の通りである。 1.条件分岐命令を実行。 2.条件フラグの値を反転。 3.上記1.の条件を反転した条件分岐命令を実行。
【0020】同等の効果を得るために、ある条件フラグ
を保存している状態レジスタの値を、別の条件フラグを
保存している状態レジスタに複写することで、別命令を
用いて条件判定処理を行ってもよい。この場合、 1.条件分岐命令を実行。 2.上記1.で使用した条件フラグ値を、別の条件フラ
グを保持する状態レジスタに移動。 3.上記2.での移動先に対応する条件分岐命令を実
行。 の手順で処理する。ここでも先と同じ理由で、2回目以
降の分岐命令の分岐先を警告装置や停止装置(608)
にすることでタンパーエビデント性を得ることができ
る。ところで、異なる命令間で誤動作の発生確率や発生
状態が異なる。そのため、同等の処理を多種の方法で行
うことが誤動作への対策となる。図6のように、分岐処
理(602)の後で分岐条件を反転する(603)こと
で、分岐処理に異なる命令(604)を使用することが
でき、誤動作を効果的に回避することができる。ここで
は条件フラグZについて述べたが、他の条件フラグを用
いても同様に処理を行うことができる。
【0021】さらに、ビットシフト命令などにより状態
レジスタに保存されているある条件フラグの結果を他の
条件フラグ位置に反映させ、その結果を利用して多種の
条件分岐命令で条件判定を行うことも可能である。状態
レジスタ(コンディションコードレジスタ:CCR)とは、
演算器で取り扱うデータの状態を反映するレジスタであ
る。一般にHフラグ、Nフラグ、Zフラグ、Vフラグ、
Cフラグがあり、それぞれハーフキャリ、ネガティブ、
ゼロ、オーバーフロー、キャリを表している。ハーフキ
ャリには、演算で中央ビットについてキャリまたはボロ
ーが発生したときに1がセットされ、ネガティブフラグ
には、演算結果が負の数であるときに1がセットされ、
ゼロフラグには、演算結果がゼロであるときに1がセッ
トされ、オーバーフローフラグには、演算結果がオーバ
ーフローを生じた際に1がセットされ、キャリフラグに
は、演算でキャリが生じた際に1がセットされる。これ
らは、状態レジスタの中で各1ビットの位置を占め、順
番に配置されている。配置はCPUにより異なる場合が
あるため、ここでは、HNZVCの順番に配置されてい
るものとし、8ビットの状態レジスタの上位3ビットはこ
こでは常に0であるとする。図7は、ゼロフラグが0で
ある場合に処理B(709)を行いたい場合を示してい
る。最初の分岐処理では、通常通りゼロフラグを利用し
て条件分岐を行う(702)。次に状態レジスタ(配置
は上記したように「000HNZVC」である)を1ビッ
ト右にシフトすることにより、Zフラグの位置にあった
ビットをVフラグの位置に移動する(703)。つま
り、Vフラグの判定を行うことで実質的に先のZフラグ
の判定を行っていることになる(704)。さらに状態
レジスタを1ビット右にシフトすると、Vフラグの位置
にあったビットはCフラグの位置に移動する(70
5)。Cフラグの判定を行うことで、先のZフラグの判
定を行うことができる(706)。このように複数の異
なる命令を使用することで、一部の命令の誤動作を検出
することができる。 (3)処理経路の把握 ノイズによる誤動作などによりCPUのプログラムカウ
ンタが異常動作した場合、条件分岐が必ずしも設計者の
意図どおりに当該条件に従って処理されないことや、通
常先頭から順番に処理されるべき処理順序が、誤動作に
より変化することが起こりうる。このような事態の発生
を前提として、各分岐経路での処理が正しく行われたか
どうかを判定する手段を設ける必要がある。その判定は
以下の手順に従って行う。 1.分岐情報(どこへ分岐するのかの分岐先の情報)を
保存。 2.分岐命令を実行。 3.分岐先での処理命令を実行。 4.分岐先に依存した情報をメモリに保存。 5.分岐先での処理終了後に、上記1.で保存した分岐
情報と上記4.で保存した情報を比較。
【0022】上記処理5.において比較結果が不一致な
らば、分岐処理が期待通りに処理されなかったことを意
味する。よってその場合はさらにエラー処理として装置
を停止したり、分岐前に遡って再処理を行うなどの後処
理を適切に行うことができる。
【0023】図8に本実施例に係る処理フローを示す。
分岐命令を実行するにあたり、分岐先を決定するための
情報を記憶装置に記憶する(801)。分岐命令は分岐
先情報を元に分岐経路を決定する(802)。今、分岐
先情報により経路Aを選択したとすると、分岐経路で
は、経路に依存した処理fa(803)を行い、さらに
分岐経路に特有の情報Iaを記憶装置に記憶する(80
4)。処理終了後、分岐先情報と分岐経路情報を比較す
ることにより、正しい分岐経路が選択されたことを確認
する。分岐経路が正しくなかったと判定されれば、処理
を直ちに終了したり、エラーメッセージを表示するなど
の処理を行う(807)。
【0024】今、例えば、銀行端末機内のプログラムが
入金処理を実行する場合を考える。分岐処理に先立ち、
分岐先を決定するための情報を保存する。例として、文
字列“入金処理”を記憶装置に記憶する。次に分岐命令
は文字列“入金処理”を読み、入金処理経路を選択す
る。入金処理経路では、実際に入金処理を行い、さらに
入金処理経路を処理したことを示す文字列 “入金処理
経路選択”を記憶装置に記憶する。以上の処理経路の処
理が終了した後に、分岐処理に先立ち記憶しておいた文
字列“入金処理”と実際の処理経路で記憶した文字列
“入金処理経路選択”を比較して、望んだ経路が正しく
選択され実行されたことを確認することができる。も
し、分岐命令実行時の誤動作により、希望していない処
理経路である、例えば、出金処理経路に分岐したなら
ば、当該経路処理中に文字列“出金処理経路選択”が記
憶される。そのため、処理経路の処理が終了した後に行
う比較において、“入金処理”と“出金処理経路選択”
が不整合であることを発見することができ、たとえば処
理を中断したり、再度分岐処理をやり直すなどの対策を
施すことができる。ここでは、処理経路独自の情報とし
て文字列を保存したが、後で処理経路を特定できるなら
ば、数値を使用しても良い。
【0025】図9に条件分岐処理においてその条件分岐
が正常に行われたかどうかを検知するための手段の一例
を示す。入金処理経路では、経路情報として“1”を保
存する(903)。出勤処理経路では、経路情報として
“2”を保存する(905)。照会処理経路では、経路
情報として“3”を保存する(907)。装置の使用者
は経路情報として1,2,3いずれの値が保存されてい
るかを確認することにより意図した通りの処理経路が選
択されたかを知ることができる(909)。このよう
に、単純な値の設定により経路選択の結果を保持するこ
ともできる。また、経路情報を装置固有の値に限定する
ことで、装置使用者が本情報処理装置の出力結果を使用
する際の手順を定型化することができるため利便性を向
上させることができる。この定型化により検査処理の共
通化を行い、プログラムメモリの節約が可能であり、汎
用検査処理としてハードウェア化することで高速化も可
能である。
【0026】処理経路独自の情報を保存するための処理
は、処理経路に分岐した後のどのタイミングで何度行っ
ても良い。図10に一例として、処理経路中に2回の数値
演算を行う場合を示す。
【0027】入金処理の先頭では数値“1”を設定し
(1003)、出金処理の先頭では数値“2”を設定し
(1006)、照会処理の先頭では数値“3”を設定す
る(1009)。また、入金処理の末端では数値を3倍
し(1005)、出金処理の末端では数値を4倍し(1
008)、照会処理の末端では数値を5倍する(101
1)とする。このとき、最後に得られた数値が“3”な
らば、入金処理経路が正しく処理されたことを示し、数
値が“4”ならば、入金処理経路の途中で誤動作により
出金処理経路に移行したことを示し、数値が“5”なら
ば、入金処理経路の途中で誤動作により照会処理経路に
移行したことを示し、数値が“6”ならば、出金処理経
路の途中で誤動作により入金処理経路に移行したことを
示し、数値が“8”ならば、出金処理経路が正しく処理
されたことを示し、数値が“10”ならば、出金処理経
路の途中で誤動作により照会処理に移行したことを示
し、数値が“9”ならば、照会処理経路の途中で誤動作
により入金処理に移行したことを示し、数値が“12”
ならば、照会処理経路の途中で誤動作により出金処理に
移行したことを示し、数値が“15”ならば、照会処理
が正しく行われたことを示す。それ以外の数値は起こり
えない。起こりえない数値が得られた場合は、誤動作が
起きていることを意味する。今、入金処理を実行したい
とする。分岐先を決定するための情報である文字列“入
金処理”を保存(1001)した後、分岐命令を実行す
る(1402)。分岐命令により入金処理経路に処理を
移行し、入金処理経路の先頭で、数値“1”を保存する
(1003)。入金処理を終了し(1004)、入金処
理経路の末端で、先ほどの数値“1”を3倍する処理を
行い、結果“3”を保存する(1005)。処理経路の
処理を終了した後で、分岐処理前に保存した文字列“入
金処理”から、比較するべき数値は“3”であることを
得る。処理経路の処理中に設定された数値が“3”であ
ることを確認すれば(1012)、確かに入金処理が行
われたことを確認することができる。このように、起こ
り得る全ての処理経路が各々独自の値を持つように処理
方法を選択することで、処理経路の終了後にどのような
経路で処理したかを確認することができるため、経路処
理の途中での誤動作も検出することが可能である。分岐
先での経路処理中に多くの検査用処理を行えば、より細
かく処理経路を把握することができる。
【0028】図11は、図10などで示した情報処理装置A
を内蔵する情報処理装置Bであって、情報処理装置Aの出
力を検査して演算が正しく行われた場合に正しい演算結
果を出力し、演算が正しく行われなかった場合にはエラ
ーであることを示す情報を出力するものである。分岐処
理の検算には、情報処理装置Bへの入力値(本実施例で
は、そのまま情報処理装置Aへの入力値となる)と情報
処理装置Aにおける分岐処理の結果の出力データK、Lを
使用する。検算処理をハードウェアで実装すれば、デー
タJに複雑な処理を施しても検算に要する時間を節約す
ることができる。また、装置使用者は情報処理装置Bが
誤動作を起こした場合にその旨の出力結果を得てそれに
応じて再実行などの適切な後処理を行うことができるた
め、情報処理装置として条件分岐の検算処理までを含め
ることには大きな効果がある。情報処理装置Bは入力デ
ータ(1101)をそのまま情報処理装置Aの入力部に
入力し(1102)、情報処理装置Aの出力(110
6)と合わせて検算処理を行う。処理の結果、情報処理
装置Aの結果が正しいものと判断されればデータ出力部
から正常なデータを出力するようにセットし(111
1)、不正であると判断されればデータ出力部から不正
を示すデータを出力するようにセットし(1110)、
データ出力手段によりセットされたデータを出力する
(1112)。今、入力データI、Jが与えられたと
き、情報処理装置AによりI、Jに対して演算が行われ
る。例えば処理fが演算経路に応じた方式でのIを暗号
化演算であるとし、処理G0はJに0を、処理G1はJに
1を、処理G2はJに2を加える演算とする。入力Jの
値に依存して経路が正しく選択されたかどうかを情報処
理装置Bはその情報処理装置Aの入出力値から判断する。
検算処理(1107)は、情報処理装置Aにおける経路
選択処理(1103)と同等の演算を用いて想定される
経路を決定し、その場合の処理GをJに対して行い、判
定処理(1108)で情報処理装置Aの出力値であるKと
比較を行い、結果が一致すれば正しく経路が選択された
と判定し、(1111)で出力データを正しいデータに
セットする。結果が不一致であれば、処理が正しく行わ
れなかったとして(1110)により処理の不正を表す
データをセットする。情報処理装置Bは、情報処理装置A
の結果から誤動作の有無を検出する処理を付加したもの
であり、これによりユーザーは独自に誤動作の有無を検
出する必要がなくなる。図11ではさらに上記検算処理を
複数回行い、すべての検算に合格した場合(1109)
に正しい演算結果を出力し、演算が正しく行われなかっ
た場合にはエラーであることを示す情報を出力する情報
処理装置である。情報処理装置の設置環境や悪意者から
の攻撃の種類により誤動作の発生確率やタイミングは変
化するため、必ずしも1度の検算処理が正常に処理され
るとは限らない。そのため、複数回の検算処理を行うこ
とで効果的に検算処理自体の誤動作の確率を減らすこと
ができる。例えば、1回の検算処理が確率50%で誤っ
て演算が正しく行われたと判断する場合では、2回の検
算処理が間違いを出力する確率は25%であり、3回な
らば12.5%となり、7回の検算処理で間違える確率
は1%以下となる。また、上記情報処理装置が誤動作を
検出した際に、演算がエラーである旨の出力をする代わ
りに装置全体を停止させることができる。環境の変化や
悪意者の意図により誤動作が集中した場合に、誤動作を
表す出力データを正常に外部に伝達できなくなることが
ある。このような場合、情報処理装置側で装置全体に停
止命令を発行することがシステムの誤動作を最低限に抑
える最善の方法を与える。装置の停止は、一時的である
ことも恒久的なものである場合もある。 (4)カウンタ処理 カウンタは、あるサービスを提供する回数などの限度を
規定する上で重要であり、処理装置使用を提供するサー
ビス運用システムでは不可欠である。誤動作によりカウ
ントダウン機能が誤動作すると、利用者は規定の回数を
超えてその装置を利用し続けることができるため、確実
にカウント処理を行う必要がある。また、カウントダウ
ン機能の誤動作により、利用者が規定回数以下しか利用
できなければ、サービスとしての運用ができなくなる。
外部処理の終了待ち時間調整には一定回数のループ処理
を利用することが一般的であるが、誤動作によりループ
処理の回数に変化が起こるとやり取りの整合性が取れず
致命的な問題となる。また、ストリーム暗号を利用する
際に、途中で同期がずれるとそれ以降の暗号文全体が解
読されてしまう問題が知られている。
【0029】そこで、カウンタを2つ以上用意し、それ
ぞれについてカウント処理を行い、すべてのカウンタが
終了条件に達した場合にのみ処理を終了する。途中で、
一部のカウンタのみが終了条件に達した場合は、誤動作
を意味するため、エラー警告を発したり動作を停止する
などの処理を行う。手順を図12および以下に示す。 1.カウンタを初期化する。 2.ループ内の処理を行う。 3.カウンタのカウントダウンを行う。 4.各カウンタの終了判定を行う。 5.各カウンタの終了判定結果を保存する。 6.すべてのカウンタについて、終了判定がNoであれ
ば、2.へ戻る。 7.すべてのカウンタについて、終了判定がYesであれ
ば、処理を終了する。 8.上記6.、7.いずれでもなければエラー処理を行う。
【0030】本対策処理では、カウンタを2つ以上用意
し、まずそれらを初期化する(1201)。次に、ルー
プ処理に入り、ループ内処理を行う(1202)。各カウ
ンタをカウントダウンし(1203)、カウンタ毎に終
了判定を行う(1204)。各カウンタの終了判定結果
を保存する(1205)。この終了判定結果を読み込
み、すべての判定結果が一様にNoになっていれば、ルー
プ処理を継続する(1202)。すべての判定結果が一
様にYesになっていれば、ループ処理を終了する(12
10)。これ以外のケースでは、一部のカウンタのみが
終了状態に達していることになるため、誤動作をしてい
ると判定し、エラー処理を行う(1209)。
【0031】従来の繰り返し処理装置は、入力されたカ
ウンタ値を減算し、演算結果が0になるまで繰り返し演
算を行う。繰り返し処理時の誤動作によりカウンタ値が
変化した場合に、カウンタ値が規定値になる前に繰り返
し処理を終えてしまうことを防止する実施例を図13を用
いて説明する。ここでは、入力データIは256未満の
数値であるとする(1301)。JをJ=256−Iと
して生成する(1302)。カウントダウン処理は、I
=I−1(1303)、J=J+1(1304)、つま
りコンピュータで一般的なデクリメント,インクリメン
トであるとする。通常のループ処理と同様にカウンタI
が0であるかを検査する(1306)。Iが0でなけれ
ば、次に演算I+Jを行い、0である場合にはエラーが
起きていないと判断して、次のループへと進む(130
9)。ここでエラーがあると判断された場合(I+J≠
0)は速やかに、装置がそれ以上の処理を行わないよう
に、必要に応じて異常である旨のデータを出力し、リセ
ットなどの処理を行う(1310)。1806でI=0
であった場合も、I+Jが0であるかを確認し、0であ
れば終了処理に進み(1308)、0でなければエラー
処理に進む(1310)。カウンタを256未満とした
のは、実際のCPUにおいて8ビットの数値が利用しや
すいためであり、この制限は重要ではない。
【0032】ここでは、カウンタを2つ使用する例を挙
げたが、3つ以上の場合についても同様に処理すること
ができる。また、カウントダウン処理としてデクリメン
ト、インクリメントを使用したが、その他の演算を用い
ても良い。
【0033】一例として、図14に乗算、除算を使用する
場合を示す。ここでは、256回のループ処理を行う。
まず、0でない数Iを生成する(1402)。Jとして
Iの257を法とした逆数を設定する(1403)。カ
ウント処理では257を法として、Iは2倍算、Jは2
での除算を行う(1404,1405)。カウンタの終
了条件はI=1である(1407)。カウント終了条件
のチェックの後にもう1つのカウンタJとの整合性をチ
ェックするためにI×Jmod257が1であるかどう
かを確認し(1408,1410)、1でなければ誤動
作を意味するため、エラー処理を行う(1411)。カ
ウント終了しており、カウンタIとJの整合性が正しけ
ればループ処理を終了する(1409)。本実施例で
は、オイラーの定理を利用している。同定理によると、
pを素数として1≦y<pであるyについてyφ(p)mod p=1と
なる。ここでφ(x)はオイラー数を表す。つまり、本実
施例中で用いた法257について、257と互いに素な
数I(257が素数であるため、256以下で0以外の任意
の数は257と互いに素である)をφ(257)=256
乗すると、1になる。 (5)装置独自のカウンタ 使用者からの呼び出し回数を制限した情報処理装置につ
いて以下、説明する。情報処理装置は独自にカウンタを
保持し、呼び出し毎にカウントダウンし、呼び出し回数
が一定回数を超えた場合、それ以降の呼び出しに対して
処理実行を拒否する。これにより、設計者が意図しない
誤動作により想定回数以上の処理実行を防止することが
できる。例えば、データを出力する処理装置を呼び出す
際に誤動作を起こせば、必要以上のデータを外部に対し
て出力することがある。これはセキュリティ上重要な情
報を保持する装置(例えばICカードや現金処理端末装
置など)においては重要な情報の漏洩に繋がり、致命的
な問題となる可能性があるため、本発明による保護が必
要である。さらに、実行可能回数を制限することによ
り、処理装置部分を単独で取り出してきて別装置に内蔵
して使用するという不正使用を防止することができる。
装置の運用は、以下の手順による。 1.初期化データにより、装置内のカウンタをある値に
初期値化する。 2.処理装置は呼び出される毎にカウントダウンし、カ
ウンタが終了条件に達しているかどうかをチェックす
る。 3.カウンタが終了状態でなければ処理を行う。 4.カウンタが終了状態であれば、処理を拒否して終了
する。 5.制御システムは、外部からの要求に応じて初期化デ
ータを装置に送る。
【0034】図15に示すように、ユーザ(1501)
は、制御システム(1505)に対して装置の初期化要
求を行う。制御システムはその要求に応じて装置内部カ
ウンタ(1506)を初期化するための初期化コード
を、装置に対して送る。装置は初期化コードに応じて内
部カウンタを初期化する。ユーザが処理装置(150
2)を呼び出すと、装置はカウントダウンを行い(15
03)、カウンタが終了条件に達したかを判定する(1
504)。カウンタが終了条件に達していなければ、処
理を実行し(1507)、終了条件に達していれば処理
を実行せずに終了する。該装置のカウンタを初期化する
には、セキュリティを考慮する場合、暗号化したパスワ
ードの照合などを利用する。
【0035】図15に示すように、制御システム(150
5)は、ユーザ(1501)からの装置初期化要求を受
ける。制御システムはユーザ要求の正当性を検証した後
に、装置(1502)に対してカウンタ(1506)初
期化コードを送信する。装置はカウンタ初期化コードの
正当性を検証した後に、カウンタを要求値に設定する。
次に、ユーザは装置の実行呼び出しを行う。装置はそれ
を受けて、内部カウンタのカウントダウンを行い(15
03)、カウンタが終了していなければ(1504)処
理を実行する(1507)。カウンタが終了していれ
ば、そのまま終了する。呼び出しに対して処理を行わな
くなれば、ユーザが制御システムに対して再度、初期化
要求を行う。以下同様にして運用する。
【0036】装置の内部カウンタの初期化は、ユーザの
要求が無くとも制御システムが特定間隔で行っても良
い。この場合、図16のように、制御システム(160
7)は独自に (例えばクロックに同期して)カウントダ
ウンする(1607)ことで初期化タイミングを決定
し、特定間隔でカウンタ初期化コードを送信する。装置
のカウンタ初期化コードとして、暗号化パスワードなど
で保護された方法を用いれば、装置の不正使用に対して
安全性を向上させることができる。これにより、装置提
供者は装置使用者に対して利用資源の制限を行うことが
できる。装置提供者は装置使用者が適当な資格を得るこ
とでカウンタ初期化データの値の大小を調整したり、適
当なタイミングで再度初期化を行うことができる。
【0037】以上、警告や制御停止などによるタンパー
エビデント性を強調したが、代わりに再計算処理などへ
制御を移すことで、装置は動作を続けることが可能であ
る。異常環境が継続すれば、無限のループに陥る可能性
があるが、環境が常に変化しつづける場合、最終的に処
理を正常に継続すると期待される。本発明の実施例にお
ける異常時に動作を停止するか継続するかの選択はシス
テム設計者の手にゆだねることができる。高セキュリテ
ィシステムであれば警告を発して停止しても良く、高度
な無人システムであれば、最大限に復旧継続処理の努力
を行うように設定することもできる。以上を必要に応じ
て組み合わせて使用することで、誤動作に対してより高
い検出可能性を得ることができる。
【0038】
【発明の効果】本発明の実施例によれば、情報処理装置
の誤動作を検出することが可能である。
【図面の簡単な説明】
【図1】ICカード外観図。
【図2】ICカードのシステム図。
【図3】パスワード照合処理フロー。
【図4】無限ループと、誤動作による無限ループ抜けを
示す図。
【図5】条件分岐を複数回実行することによる誤動作検
出フロー。
【図6】二種類の分岐命令を併用した誤動作検出フロ
ー。
【図7】分岐条件データを他フラグに移動することを利
用した誤動作検出フロー。
【図8】分岐経路に依存した情報を保存することで、経
路選択が正しく行われたかどうかを検査する機構を備え
た分岐処理フロー。
【図9】分岐経路情報として経路に固有の数値を設定し
た処理フロー。
【図10】分岐経路情報として、経路先頭と末尾に検査
用処理を設けることで、経路処理中の経路遷移を検出す
る処理フロー。
【図11】分岐処理の正しさを複数回検査することによ
り、異常検出率を向上させる処理フロー。
【図12】複数のカウンタを用いたループ処理フロー。
【図13】2つのカウンタの和を使用することにより、
カウンタ誤動作を検出するループ処理フロー。
【図14】2つのカウンタの積を使用することにより、
カウンタ誤動作を検出するループ処理フロー。
【図15】装置独自のカウンタを用いた、処理回数制限
機構を備える処理装置の運用方法を表す図。
【図16】自動的にカウンタを初期化する制御システム
と、カウンタによる実行回数制限を持つ処理装置の運用
方法を示す図。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 遠藤 隆 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 神永 正博 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 中田 邦彦 東京都小平市上水本町五丁目20番1号 株 式会社日立製作所半導体グループ内 (72)発明者 成吉 雄一郎 東京都小平市上水本町5丁目22番1号 株 式会社日立超エル・エス・アイ・システム ズ内 (72)発明者 谷本 千晶 東京都小平市上水本町五丁目20番1号 株 式会社日立製作所半導体グループ内 Fターム(参考) 5B035 AA13 BB09 BC00 CA11

Claims (24)

    【特許請求の範囲】
  1. 【請求項1】ICカード用チップ内の一のアプリケーショ
    ンまたは一の情報へのアクセス権を得るための入力パス
    ワードの正誤を判定するために前記入力パスワードと正
    しいパスワードとを比較し、両者が一致した場合にはそ
    の次の命令を実行し、不一致の場合には分岐命令を実行
    する第一の分岐命令が記憶装置内に格納され、その第1
    の分岐命令の後にはそれと同じ命令である第2の分岐命
    令が前記記憶装置内に格納されていることを特徴とする
    情報処理装置。
  2. 【請求項2】前記第1および第2の分岐命令の判定結果
    に基づき実行される分岐命令での分岐先にはエラー処理
    命令が設けられていることを特徴とする請求項1記載の
    情報処理装置。
  3. 【請求項3】前記第2の分岐命令の判定結果に基づき分
    岐せずにその次の命令が実行される場合にはその第2の
    分岐命令の次の命令またはその先の命令には前記アクセ
    ス権を付与するルーチンが含まれていることを特徴とす
    る請求項1記載の情報処理装置。
  4. 【請求項4】前記入力パスワードは複数個の文字、数
    字、符号または記号の列を有し、前記文字、数字、符号
    または記号の一単位と正しいパスワードの一単位とを比
    較することにより入力パスワードの正誤判定を行うこと
    を特徴とする請求項1記載の情報処理装置。
  5. 【請求項5】前記第一の分岐命令に引き続いて前記第二
    の分岐命令が実行される場合の前記第一の分岐命令の実
    行開始時刻から前記第二の分岐命令の実行開始時刻まで
    の時間間隔が1マイクロ秒以下となるように構成されて
    いることを特徴とする請求項1記載の情報処理装置。
  6. 【請求項6】前記正しいパスワードがn個(nは自然数と
    する。)の文字列よりなる場合、前記第1および第2の
    分岐命令はそれぞれn個あり、前記第1の分岐命令と前
    記第2の分岐命令とが交互に実行されるようにコーディ
    ングされていることを特徴とする請求項1記載の情報処
    理装置。
  7. 【請求項7】前記第1の分岐命令と前記第2の分岐命令
    との間にはそれ以外の命令が配置されていることを特徴
    とする請求項6記載の情報処理装置。
  8. 【請求項8】分岐条件を満足する場合にはその分岐命令
    を実行し、その分岐条件を満足しない場合にはその次の
    命令を実行する第一の分岐命令が記憶装置内に格納さ
    れ、その第1の分岐命令の後にはそれと同じ命令である
    第2の分岐命令が前記記憶装置内に格納されていること
    を特徴とする情報処理装置。
  9. 【請求項9】前記第2の分岐命令は前記第1の分岐命令
    に引き続いて前記記憶装置内の所定アドレスに記憶され
    ていることを特徴とする請求項8記載の情報処理装置。
  10. 【請求項10】前記第1および第2の分岐命令は入力パ
    スワードが正しいか否かの判定を行うために用いられる
    ものであり、入力パスワードが正しいとの判定がなされ
    た場合にはその判定の後にICカード用チップ内の一のア
    プリケーションまたは一の情報へのアクセスする処理が
    実行されるように構成されたことを特徴とする請求項8
    記載の情報処理装置。
  11. 【請求項11】ある条件フラグF1の値が0または1のと
    きに分岐命令が実行される第1の分岐命令と、前記条件
    フラグF1の値が1または0のときに分岐命令が実行され
    る第2の分岐命令とを有し、前記第1の分岐命令実行時
    に前記条件フラグF1の値に基づき分岐処理が行われない
    ときには、それに続く処理で前記条件フラグF1の値を反
    転させた後に前記第2の分岐命令が実行されるように構
    成されたことを特徴とする情報処理装置。
  12. 【請求項12】前記第1および第2の分岐命令は入力パ
    スワードが正しいか否かの判定を行うために用いられる
    ものであり、入力パスワードが正しいとの判定がなされ
    た場合にはその判定の後にICカード用チップ内の一のア
    プリケーションまたは一の情報へのアクセスする処理が
    実行されるように構成されたことを特徴とする請求項1
    1記載の情報処理装置。
  13. 【請求項13】ある条件フラグF1の値が0または1のと
    きに分岐命令が実行される第1の分岐命令と、前記条件
    フラグF2の値が0または1のときに分岐命令が実行される
    第2の分岐命令とを有し、前記第1の分岐命令実行時に
    前記条件フラグF1の値に基づき分岐処理が行われないと
    きには、それに続く処理で前記条件フラグF1の値を前記
    条件フラグF2に複写し、その後に前記第2の分岐命令が
    実行するように構成したことを特徴とする情報処理装
    置。
  14. 【請求項14】分岐条件に基づき複数個の分岐先のうち
    のいずれか一を指定する分岐命令と、その分岐先にコー
    ディングされている一連の命令を実行した場合には前記
    複数個の分岐先のうちのどの分岐先経路を通過したかを
    第1のデータとして記憶し、前記分岐条件の判断の基準
    となる分岐先データと前記第1のデータとを比較する手
    段を有することを特徴とする情報処理装置。
  15. 【請求項15】前記分岐条件の判断の基準となる分岐先
    データと前記第1のデータとが一致する場合にはそれに
    引き続く処理を行い、不一致の場合にはエラー処理を行
    うように構成されたことを特徴とする請求項14記載の
    情報処理装置。
  16. 【請求項16】第1および第2のカウンタの値を初期化
    し、ループ内で前記第1および第2のカウンタ値をカウ
    ントダウンする処理を行い、前記第1および第2のカウ
    ンタに対するカウントダウン後の前記第1および第2の
    カウンタ値が不一致の場合または前記第1および第2の
    カウンタに対するカウントダウン後の前記第1および第
    2の両方のカウンタ値が共に第1の所定値の場合には前
    記ループから抜ける処理を行い、前記第1および第2の
    カウンタに対するカウントダウン後の前記第1および第
    2の両方のカウンタ値が共に第2の所定値の場合には前
    記ループ内の処理を繰り返すように構成されていること
    を特徴とする情報処理装置。
  17. 【請求項17】前記第1の所定値は0であり、前記第2
    の所定値は自然数であることを特徴とする請求項16記
    載の情報処理装置。
  18. 【請求項18】第1および第2のカウンタの値を初期化
    し、処理ループ内で前記第1および第2のカウンタ値を
    更新する処理を行い、前記更新処理後の前記第1のカウ
    ンタ値と第2のカウンタ値とが不一致の場合または前記
    更新処理後の前記第1および第2の両方のカウンタ値が
    共に第1の所定値の場合には前記ループから抜ける処理
    を行い、それ以外の場合には前記ループ内の処理を繰り
    返すように構成されていることを特徴とする情報処理装
    置。
  19. 【請求項19】前記カウンタ値の更新は更新前のカウン
    タ値からカウントダウンする処理であるか又はカウント
    アップ処理するものであることを特徴とする請求項18
    記載の情報処理装置。
  20. 【請求項20】前記第1の所定値は0であることを特徴
    とする請求項18記載の情報処理装置。
  21. 【請求項21】その装置の一部の使用限度回数を記憶す
    るためのカウンタと、その装置の一部の使用回数に応じ
    て前記カウンタ値を更新する手段と、その装置の一部の
    累積使用回数が前記使用限度回数に至った場合にはその
    装置の一部のその後の使用を制限する手段と、その装置
    の一部の使用が制限された場合にはその装置の他の部分
    からの指示で前記カウンタ値を更新することによりその
    使用制限を解除する手段を有することを特徴とする情報
    処理装置。
  22. 【請求項22】その装置の一部の累積使用回数が前記使
    用限度回数に至った場合にはその装置の一部のその後の
    使用を拒否するものあることを特徴とする請求項21記
    載の情報処理装置。
  23. 【請求項23】その装置へのコマンド入力により前記使
    用制限が解除されるように構成されていることを特徴と
    する請求項21記載の情報処理装置。
  24. 【請求項24】前記コマンド入力と併せてそのコマンド
    入力の正当性を確認する手段が設けられていることを特
    徴とする請求項23記載の情報処理装置。
JP2001138073A 2001-05-09 2001-05-09 情報処理装置 Expired - Fee Related JP4009437B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2001138073A JP4009437B2 (ja) 2001-05-09 2001-05-09 情報処理装置
US10/124,576 US7451485B2 (en) 2001-05-09 2002-04-18 Information processing unit having tamper-resistant system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001138073A JP4009437B2 (ja) 2001-05-09 2001-05-09 情報処理装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2005109697A Division JP2005285133A (ja) 2005-04-06 2005-04-06 情報処理装置

Publications (3)

Publication Number Publication Date
JP2002334317A true JP2002334317A (ja) 2002-11-22
JP2002334317A5 JP2002334317A5 (ja) 2005-09-15
JP4009437B2 JP4009437B2 (ja) 2007-11-14

Family

ID=18985070

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001138073A Expired - Fee Related JP4009437B2 (ja) 2001-05-09 2001-05-09 情報処理装置

Country Status (2)

Country Link
US (1) US7451485B2 (ja)
JP (1) JP4009437B2 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007304838A (ja) * 2006-05-11 2007-11-22 Nec Computertechno Ltd マイクロプロセッサ及びこれを用いた情報処理方法並びにプログラム
WO2008126491A1 (ja) * 2007-03-29 2008-10-23 Kabushiki Kaisha Toshiba 情報記憶媒体
JP2008262300A (ja) * 2007-04-10 2008-10-30 Dainippon Printing Co Ltd 携帯用セキュリティデバイス
JP2009015434A (ja) * 2007-07-02 2009-01-22 Dainippon Printing Co Ltd 携帯可能情報処理装置及び情報処理プログラム
JP2010068523A (ja) * 2008-09-11 2010-03-25 Oberthur Technologies 攻撃に対するマイクロ回路の保護方法及びデバイス
JP4754635B2 (ja) * 2006-02-27 2011-08-24 シャープ株式会社 制御フロー保護機構
JP4822231B2 (ja) * 2005-07-19 2011-11-24 ジェムアルト エスアー 長い摂動による故障の検出
JP2012048753A (ja) * 2011-11-24 2012-03-08 Dainippon Printing Co Ltd 携帯用セキュリティデバイス

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1494104B1 (fr) * 2003-06-26 2006-06-21 St Microelectronics S.A. Contrôle d'intégrité d'un programme en utilisant des statistiques
US8065532B2 (en) * 2004-06-08 2011-11-22 Hrl Laboratories, Llc Cryptographic architecture with random instruction masking to thwart differential power analysis
US20080271001A1 (en) * 2006-09-11 2008-10-30 Yo Nonomura Method of generating program, information processing device and microcomputer
JP5060372B2 (ja) * 2008-04-10 2012-10-31 ルネサスエレクトロニクス株式会社 データ処理装置
US9098700B2 (en) 2010-03-01 2015-08-04 The Trustees Of Columbia University In The City Of New York Systems and methods for detecting attacks against a digital circuit
WO2011119137A1 (en) 2010-03-22 2011-09-29 Lrdc Systems, Llc A method of identifying and protecting the integrity of a set of source data
EP2388730A1 (en) * 2010-05-17 2011-11-23 Nagravision S.A. Method for generating software code

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4430706A (en) * 1980-10-27 1984-02-07 Burroughs Corporation Branch prediction apparatus and method for a data processing system
JPS59193641A (ja) 1983-04-18 1984-11-02 Matsushita Electric Ind Co Ltd 無線装置
US4799153A (en) * 1984-12-14 1989-01-17 Telenet Communications Corporation Method and apparatus for enhancing security of communications in a packet-switched data communications system
JPS62249238A (ja) 1986-04-23 1987-10-30 Nec Corp 電子計算機システムのジヨブ実行方式
US4816653A (en) * 1986-05-16 1989-03-28 American Telephone And Telegraph Company Security file system for a portable data carrier
JPS62293441A (ja) 1986-06-12 1987-12-21 Nec Corp デ−タ出力方式
US4962530A (en) * 1987-09-10 1990-10-09 Computer Security Corporation System for cryptographing and identification
JPH02165343A (ja) 1988-12-20 1990-06-26 Nec Corp 耐放射線コマンドデコーダ
US4959860A (en) * 1989-02-07 1990-09-25 Compaq Computer Corporation Power-on password functions for computer system
JP3125070B2 (ja) * 1990-12-14 2001-01-15 三菱電機株式会社 Icカード
US5293424A (en) * 1992-10-14 1994-03-08 Bull Hn Information Systems Inc. Secure memory card
JP2743872B2 (ja) * 1995-06-28 1998-04-22 日本電気株式会社 盗難保護機能付き無線装置
US6542645B1 (en) * 1997-07-15 2003-04-01 Silverbrook Research Pty Ltd Adaptive tracking of dots in optical storage system using ink dots
JPH1196120A (ja) 1997-09-25 1999-04-09 Meidensha Corp ログイン方式

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4822231B2 (ja) * 2005-07-19 2011-11-24 ジェムアルト エスアー 長い摂動による故障の検出
JP4754635B2 (ja) * 2006-02-27 2011-08-24 シャープ株式会社 制御フロー保護機構
JP2007304838A (ja) * 2006-05-11 2007-11-22 Nec Computertechno Ltd マイクロプロセッサ及びこれを用いた情報処理方法並びにプログラム
JP4747028B2 (ja) * 2006-05-11 2011-08-10 エヌイーシーコンピュータテクノ株式会社 マイクロプロセッサ及びこれを用いた情報処理方法並びにプログラム
WO2008126491A1 (ja) * 2007-03-29 2008-10-23 Kabushiki Kaisha Toshiba 情報記憶媒体
US8469278B2 (en) 2007-03-29 2013-06-25 Kabushiki Kaisha Toshiba Information storage medium
JP2008262300A (ja) * 2007-04-10 2008-10-30 Dainippon Printing Co Ltd 携帯用セキュリティデバイス
JP2009015434A (ja) * 2007-07-02 2009-01-22 Dainippon Printing Co Ltd 携帯可能情報処理装置及び情報処理プログラム
JP2010068523A (ja) * 2008-09-11 2010-03-25 Oberthur Technologies 攻撃に対するマイクロ回路の保護方法及びデバイス
JP2012048753A (ja) * 2011-11-24 2012-03-08 Dainippon Printing Co Ltd 携帯用セキュリティデバイス

Also Published As

Publication number Publication date
US7451485B2 (en) 2008-11-11
JP4009437B2 (ja) 2007-11-14
US20020169969A1 (en) 2002-11-14

Similar Documents

Publication Publication Date Title
US11893112B2 (en) Quantitative digital sensor
Dupuis et al. A novel hardware logic encryption technique for thwarting illegal overproduction and hardware trojans
US7205794B2 (en) Microprocessor resistant to power analysis
JP2002334317A (ja) 情報処理装置
EP2294526B1 (en) A method for secure data reading and a data handling system
US20070255980A1 (en) Method and apparatus for detecting false operation of computer
EP3503466B1 (en) Countermeasures to frequency alteration attacks on ring oscillator based physical unclonable functions
US20150286520A1 (en) Method For Checking Data Consistency In A System On Chip
US20020010856A1 (en) IC, IC-mounted electronic device, debugging method and IC debugger
US20080276306A1 (en) Implicit Authentication to Computer Resources and Error Recovery
Hamdioui et al. Hacking and protecting IC hardware
US11704128B2 (en) Method for executing a machine code formed from blocks having instructions to be protected, each instruction associated with a construction instruction to modify a signature of the block
US20060289656A1 (en) Portable electronic apparatus and data output method therefor
US11288405B2 (en) Integrated circuit(s) with anti-glitch canary circuit(s)
EP1295200A2 (en) Data processing method and device for protected execution of instructions
Markantonakis et al. Secure and trusted application execution on embedded devices
Bouffard et al. Detecting laser fault injection for smart cards using security automata
KR100406228B1 (ko) 의사 랜덤 이진 시퀀스 프로그램 인터록을 이용한 템퍼레지스턴스
US9652232B2 (en) Data processing arrangement and method for data processing
JP2005285133A (ja) 情報処理装置
Köylü et al. Exploiting PUF Variation to Detect Fault Injection Attacks
Sakamoto et al. How to code data integrity verification secure against single-spot-laser-induced instruction manipulation attacks
EP4357957A1 (en) Method for securing against physical or logical attacks an execution of a machine language instructions code
US20210349990A1 (en) Countermeasure for protecting against a fault injection attack in a data processing system
EP4213443A1 (en) Method for detecting a fault injection in a data processing system

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20050315

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050406

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050406

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20050406

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050511

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070227

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070417

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20070417

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070515

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070713

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070807

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070903

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

Free format text: PAYMENT UNTIL: 20100907

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110907

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110907

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

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

Free format text: PAYMENT UNTIL: 20110907

Year of fee payment: 4

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20120907

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120907

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130907

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees