JP4701260B2 - 情報処理装置、情報処理方法、および、情報処理プログラム - Google Patents
情報処理装置、情報処理方法、および、情報処理プログラム Download PDFInfo
- Publication number
- JP4701260B2 JP4701260B2 JP2008093316A JP2008093316A JP4701260B2 JP 4701260 B2 JP4701260 B2 JP 4701260B2 JP 2008093316 A JP2008093316 A JP 2008093316A JP 2008093316 A JP2008093316 A JP 2008093316A JP 4701260 B2 JP4701260 B2 JP 4701260B2
- Authority
- JP
- Japan
- Prior art keywords
- description
- information processing
- bit string
- verification
- value
- 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.)
- Active
Links
- 230000010365 information processing Effects 0.000 title claims description 323
- 238000003672 processing method Methods 0.000 title claims description 5
- 238000012795 verification Methods 0.000 claims description 424
- 238000000034 method Methods 0.000 claims description 174
- 238000006243 chemical reaction Methods 0.000 claims description 147
- 238000012545 processing Methods 0.000 claims description 110
- 238000004364 calculation method Methods 0.000 claims description 42
- 238000007689 inspection Methods 0.000 claims description 36
- 238000004891 communication Methods 0.000 description 13
- 230000002159 abnormal effect Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 8
- 230000007257 malfunction Effects 0.000 description 6
- 230000010485 coping Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001678 irradiating effect Effects 0.000 description 2
- TVEXGJYMHHTVKP-UHFFFAOYSA-N 6-oxabicyclo[3.2.1]oct-3-en-7-one Chemical compound C1C2C(=O)OC1C=CC2 TVEXGJYMHHTVKP-UHFFFAOYSA-N 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000010884 ion-beam technique Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
Images
Landscapes
- Storage Device Security (AREA)
Description
まず、本実施形態において用いる原理について説明する。本実施形態においては、全ビット反転するという攻撃が、非常に困難であることに注目し、次のような処理を行う。この処理により、処理プログラムに対してのバイパスや改竄の検知が可能となる。
・CV(i)をXOR演算(排他的論理和演算)した場合に、CV(j)となる値CVMを、CV(i)とCV(j)との全ての組み合わせに対して予め算出して準備し、変換テーブルに記憶しておく。ここで、iとjとは、上記16通りのCVの内、いずれか1つのCVを示すための識別情報である。
・処理プログラムの間(途中)に、CV(i)を、CV(j)に変換するプログラムを組み込む。
・処理プログラムの間(途中)で変換されたCV(j)の値と、予め算出されるはずのCV(j)の値とが一致するか否かを判定してチェックすることにより、バイパスや改竄を検知する。
以下、図面を参照して、本発明の実施の形態について説明する。
まず、図1に示すように、“01”と“10”との2ビット固定長である基本ビット列を組み合わせた1バイトフォーマットのデータ(8ビット固定長のデータ)を、CVとする。この場合、基本ビット列が2ビット固定長であり、CVが8ビット固定長であるため、CVは16種類のデータとなる。なお、ここでは、16種類の組み合わせを有するCVについて、それぞれのCVを識別するために、識別情報i(ここで、iは0から15の整数)を用いてCV(i)とする。
次に、図4を用いて、上記に説明したCVを用いた一例としての、改竄などの検証方法について説明する。
仮に演算途中で、CurrentCVの値を「ビット反転」させるような改竄が出来るような場合には、CurrentCVの値を別の値、つまり、CVと別のCVに変えることができてしまう。しかしながら、現在のハードウェア製品において、物理攻撃によるビット改竄は、連続した隣同士のビットをまとめて0にしたり、1にしたりする事は可能であるが、複数のビットに対して、ビット反転させるような改竄はきわめて難しい(現在は不可能である)事が分かっている。ここで、CVは、上記に説明したように、“01”および“10”を組み合わせた変数であるため、ビット反転攻撃には耐性がある。そのため、このようなビット反転の攻撃に対しては、CVを用いることにより、対抗できる。
上記「セキュア版」プログラムの処理A(図4(b)の行番号02の処理)のみ、処理B(図4(b)の行番号04の処理)のみ、または、処理C(図4(b)の行番号06の処理)だけをうまくバイパス攻撃できてしまうと、図4(b)の行番号01、03、05、07、08のCurrentCVの計算を正常に処理されてしまうため、このようなバイパス攻撃を検知することができない。
次に、図5を用いて、IF文の代わりに算術演算を利用する方法について説明する。IF文として、通常、条件判断部、正常系処理部、および、例外系処理部に分かれたプログラムが記述される。バイパス攻撃によって、条件判断部(と、正常系処理部)がバイパスされてしまうと、プログラムカウンタが働いてしまい、条件判断部による条件判断が実行されずに、正常系処理部もしくは例外系処理部が動作させられてしまう可能性がある(図5(a)参照)。
これにより、認証が正しい場合、すなわち認証データtの値が0の場合には、認証の成功または失敗を示す変数sの値が0となる。また、それ以外、すなわち、認証が正しくなく、認証データtの値が0でない場合には、認証の成功または失敗を示す変数sの値が1となる。
また、内部変数の値は、演算処理部にRAM(Random Access Memory)などのメモリ(記憶装置)上に展開される。しかしながら、メモリ上に展開される場合に、メモリ周辺を電気的にオール0やオール1にし(全てのデータ端子などをHとなる電位、または、Lとなる電位にし)、メモリから読み出す場合またはメモリに書き込む場合のデータの値を電気的(物理的)に変えてしまうことで、ICカードなどの情報処理装置に対して、誤動作を起こさせる可能性がある。
次に、図7を用いて、CVを用いたForループの実行の保証について説明する。なお、ここではループ処理としてForループについて説明するが、Whileループなど、他のループについても同様である。
まず、図7(a)に示すようなForループにおいては、Forループの実行中にバイパスされてしまい、しかるべき回数の処理が実行されないような誤動作が生じる可能性がある。
この解決手段として、図7(b)に「セキュア版1」として示すように、ループ中にCVの演算処理を行い、ループ処理の終了後に、CVの値が、演算処理が実行された後に本来あるべきCVの値であるか否かをチェックすることで、Forループが実行されたことを保証することが可能である。
なお、図7(c)に「セキュア版2」として示すように、ループ回数を可変にすることも可能である。図7(c)では、ループ処理の回数がn回(ここで、nは1以上の任意の整数)である場合について説明する。なお、ループ処理において、予め定められたループする回数の値を、ループ処理回数nとして説明する。
次に、図8を用いて、CVをモジュールの返却値に応用する場合について説明する。たとえば、比較や認証を実行するモジュールなどが、比較結果や認証結果を返却する場合には、一般に、正常終了を示す“0”や異常終了を示す“1”などの、1ビットの簡単な値を用いることがある(図8(a)参照)。たとえば、この図8(a)に示す例では、関数f1()は、返却値として1または0を返している。
次に、図9を用いて、グローバル・スタンプ・ラリーについて説明する。まず、本実施形態でいうグローバル・スタンプ・ラリーについて説明する。なお、ここでは、モジュールの階層構造として、最上位モジュール、Module_A、および、Module_Bとの3つの階層構造を有している場合について説明する。なお、この図9においては、後述するcurrentCVをcCV、currentCVaをcCVa、currentCVbをcCVbとして表記している。
・最上位モジュール(必ずしもmainである必要はない)で、currentCVの初期値を設定する。たとえば、図9(a)の1行目「currentCV=CV(0)」を参照。なお、このCV(0)は55hである。
なお、呼び出されたモジュールは、返却値として、可能な限りCVを用いるようにする。
次に、図9の場合について、一例としてのグローバル・スタンプ・ラリーの動作について説明する。なお、ここでは、currentCVの値を更新する処理のみについて説明する。
まず、図9(a)の最上位モジュールにおいて、currentCVの値がCV(0)に初期設定される(図9(a)1行目参照)。次に、currentCVの値が、CVM(0,2)により、CV(0)からCV(2)に更新される(図9(a)2行目参照)。次に、Module_Aを、Module_A(currentCV)として呼び出すことにより、呼び出すModule_AにCV(2)であるcurrentCVを渡す(図9(a)3行目参照)(ステップS91)。
これは、Module_Bに渡したcurrentCVaの値とModule_Bからの返却値retとの排他的論理和演算した結果は、互いにビット反転した値同士を排他的論理和演算することからFFhとなり、このFFhに対して、更にFFhと排他的論理和演算することにより00hとなるためである。
(1)バイパス検知、つまり、プログラムステップを飛ばして処理が行われてしまうことを検知することが可能である。
(2)改竄の検知、つまり、プログラム処理中のある値が改竄されてしまうことを検知することが可能である。
・IF文を減らすこと。
・算術演算ではなく、XOR演算(排他的論理和演算)という論理演算を利用すること。一般的に、算術演算に対比して、論理演算の方が、演算時間が早い。また、本実施形態においては、変換テーブルを用いてXOR演算を実行するため、更に演算時間が早い。
・1バイト単位の変数エリアとワークエリアを2〜3バイト準備するだけでよいこと。
すなわち、変換テーブル記憶部33には、型Aのビット列X(k)と排他的論理和演算することで型Aのビット列X(l)となるようなビット列の配列Z(k,l)(k,l=0,・・・,m−1)が変換ビット列として記憶されている。
また、情報処理部4は、CV演算部6により、検証メモリ部2から読み出した変数と変換ビット列とを排他的論理和演算して、検証メモリ部2に上書きする。
また、情報処理部4は、CV判定部7により、検証メモリ部2から読み出した変数の値に基いて、後述する検証演算記述による排他的論理和演算が実行されたか否かを判定する。
すなわち、情報処理部4は、情報処理検証演算記述に基づいて、検査対象情報処理を実行するとともに、検証メモリ部2から読み出した変数と、変換テーブル記憶部33から読み出した変換ビット列とを排他的論理和演算した値を検証メモリ部2に上書きする。
すなわち、情報処理部4は、判定記述に基づいて、検証メモリ部2から読み出した変数の値が、ビット列記憶部34から読み出した型Aのビット列と一致するか否かを判定することにより、検証演算記述による排他的論理和演算が実行されたか否かを判定する。
ここで、情報処理記述の後に検証演算記述が記述されている記述を情報処理検証演算記述とする。また、予め定められたプログラムには少なくとも、設定記述と、ループ処理を実行することを示す記述ともに、該記述されているループ処理が実行される場合に、該実行されているループ処理内で情報処理検証演算記述を実行することを示す記述が記述されているループ処理記述と、判定記述とが、設定記述の後にループ処理記述が記述され、かつ、ループ処理記述の後に判定記述が記述されるように予め記述されている。
また、予め定められたプログラムには、下位モジュールを呼び出し、検証メモリ部2に記憶されている検証用となる変数を呼び出す下位モジュールに渡すとともに、呼び出された下位モジュールからの返却値を取得することを示す記述であるモジュール呼出記述と、モジュール呼出記述で呼び出した下位モジュールからの返却値が、予め定められたビット列であるか否かを検証することを示す返却値判定記述とが、モジュール呼出記述の後に返却値判定記述が記述されるように予め記述されている。
なお、このようなモジュール内検証メモリ部を用いることなく、検証メモリ部2のみを用いても、モジュール間でプログラムの記述順の通りに処理が実行されたか否かの検証を同様に実行することは可能である。検証メモリ部2のみを用いる場合には、この検証メモリ部2には、たとえば、グローバル変数としての変数が記憶される。
なお、モジュール内情報処理記述およびその後にモジュール内検証演算記述が記述されている記述をモジュール内情報処理検証演算記述として、モジュール内設定記述の後にモジュール内情報処理検証演算記述が記述され、かつ、モジュール内情報処理検証演算記述の後に返却記述が記述されるように記述されている。
また、検査対象情報処理による情報処理をするプログラムの記述において、2値の値をとる2つの内部変数として、少なくとも0と1とを含む2ビット長以上の第3の固定ビット長である複数の基本ビット列を組み合わせた第4の固定ビット長の変数である2つの変数であって、互いにビット反転の関係にある2つの変数を用いる。
また、検査対象情報処理となる情報処理のプログラムの記述において、条件判断の処理がある場合には、条件判断の対象となる変数に基づいた算術演算により条件判断する記述が条件判断記述として予め記述されている。この場合、情報処理部4は、条件判断記述に基づいて、条件判断の対象となる変数に基づいた算術演算により条件判断する。
なお、この情報処理装置1は専用のハードウェアにより実現されるものであってもよく、また、この情報処理装置1はメモリおよびCPU(中央情報処理装置)により構成され、情報処理装置1の機能を実現するためのプログラムをメモリにロードして実行することによりその機能を実現させるものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
Claims (13)
- 予め定められたプログラムの記述に基づいて順に情報処理を実行する情報処理部を有する情報処理装置であって、
検証用となる変数の値が記憶される検証メモリ部、を有し、
少なくとも0と1とを含む2ビット長以上の第1の固定ビット長である複数の基本ビット列を組み合わせた第2の固定ビット長のビット列のデータ型を型Aとし、
前記型Aのある値を前記検証メモリ部に記憶させることを示す記述を設定記述とし、
検査対象となる情報処理である検査対象情報処理を実行することを示す記述を情報処理記述とし、
前記検証メモリ部に記憶されている変数をあるビット列で排他的論理和演算して前記検証メモリ部に上書きすることを示す記述を検証演算記述とし、
前記検証メモリ部に記憶されている変数の値に基づいて前記検証演算記述による排他的論理和演算が実行されたか否かを示す記述を判定記述とし、
前記情報処理記述およびその後に前記検証演算記述が記述されている記述を情報処理検証演算記述として、
前記予め定められたプログラムには、
前記設定記述と、
複数のn個の前記情報処理検証演算記述と、
前記判定記述とが、
前記設定記述の後に前記n個の情報処理検証演算記述が順に記述され、かつ、前記n個の情報処理検証演算記述の後に前記判定記述が記述されるように予め記述されており、
前記情報処理部は、
前記設定記述に基づいて、前記型Aのあるビット列aを前記メモリ部に記憶し、
前記n個の情報処理検証演算記述に基づいて、前記検査対象情報処理を実行するとともに、前記検証メモリ部から読み出した前記変数と、前記変数と排他的論理和演算する事で前記型Aのあるビット列となるようなビット列bi(i=1〜n)とを排他的論理和演算して前記検証メモリ部に上書きすることをn回実行し、
前記判定記述により、前記検証メモリ部から読み出した変数の値が
検証値c=a^b1^b2^・・・・^bn(^は、排他的論理和演算)
と一致するか否かを判定する事により、
前記複数の前記情報処理検証演算記述に含まれている検証演算記述による排他的論理和演算が順に実行されたか否かを判定する、
ことを特徴とする情報処理装置。 - 前記設定記述に基づき前記検証メモリ部に記憶されているビット列aと、
前記検証値cは、互いにビット反転の関係にある
ことを特徴とする請求項1に記載の情報処理装置。 - 予め定められたプログラムの記述に基づいて順に情報処理を実行する情報処理部を有する情報処理装置であって、
少なくとも0と1とを含む2ビット長以上の第1の固定ビット長である複数の基本ビット列を組み合わせた第2の固定ビット長のビット列のデータ型を型Aとし、
前記型Aのビット列の値であって、値が互いに異なるm個の値を、識別子j(j=0,・・・,m−1)と対応づけて、前記型Aのビット列の配列X(j)として記憶するビット列記憶部と、
X(k)と排他的論理和演算することでX(l)となるようなビット列の配列Z(k,l)(k,l=0,・・・,m−1)を変換ビット列として記憶する変換ビット列記憶部と、
検証用となる変数の値を記憶する検証メモリ部と、を有し、
前記予め定められたプログラムは、
前記ビット列記憶部に記憶されている前記型Aのある値を前記検証メモリ部に記憶させる事を示す記述である設定記述と、
検査対象となる情報処理である検査対象情報処理を実行することを示す記述である情報処理記述と、
前記検証メモリ部に記憶されている変数を前記変換ビット列記憶部より読み出した変換ビット列で排他的論理和演算した値を前記検証メモリ部に上書きすることを示す記述である検証演算記述と、
前記検証メモリ部に記憶されている変数の値に基づいて前記検証演算記述による排他的論理和演算が実行されたか否かを示す記述である判定記述とを有し、
前記情報処理記述およびその後に前記検証演算記述が記述されている記述を情報処理検証演算記述として、
前記設定記述の後に、n個の前記情報処理検証演算記述が順に記述され、かつ、前記n個の情報処理検証演算記述の後に前記判定記述が記述されるように予め記述されており、
前記設定記述は、前記ビット列記憶部に記憶されている前記型Aの値であるX(p0)(p0は、0〜m−1の間の任意の値の識別子)を前記検証メモリ部に記憶させるように記述されており、
前記n個の情報処理検証演算記述のうちi番目の記述の中の検証演算記述には、前記検証メモリ部に記憶されている変数を、前記変換ビット列記憶部より読み出した変換ビット列であるZ(pi−1,pi)(piは0〜m−1の間の任意の識別子)が示す値で排他的論理和演算し、検証メモリ部に上書きするように予め記述されており、
前記判定記述には、前記検証メモリ部に記憶されている変数が、X(p0)^Z(p0,p1)^・・・・^Z(pn−1,pn)(^は排他的論理和演算)の値となるX(pn)(pnは0〜m−1の間の任意の識別子)であって、前記ビット列記憶部から読み出したX(pn)の値と一致するか否かを判断するように予め記述されており、
前記情報処理部は、
前記設定記述に基づいて、前記ビット列記憶部より読み出した前記型Aのある値を前記検証メモリ部に記憶し、
前記情報処理検証演算記述に基づいて、前記検査対象情報処理を実行するとともに、前記検証メモリ部から読み出した前記変数と、前記変換ビット列記憶部から読みだした変換ビット列とを排他的論理和演算した値を前記検証メモリ部に上書きし、
前記判定記述に基づいて、前記検証メモリ部から読み出した変数の値が、前記ビット列記憶部から読み出した前記型Aのビット列と一致するか否かを判定することにより、前記検証演算記述による排他的論理和演算が実行されたか否かを判定する
ことを特徴とする情報処理装置。 - 前記設定記述に基づいて検証メモリ部に記憶された前記型Aの値と、
前記判定記述に基づいて前記ビット列記憶部より読み出された前記型Aの値とは、互いにビット反転の関係にある
ことを特徴とする請求項3記載の情報処理装置。 - 前記予め定められたプログラムには、少なくとも
前記設定記述と、
ループ処理を実行することを示す記述とともに、該記述されているループ処理が実行される場合に、該実行されているループ処理内で前記情報処理検証演算記述を実行する事を示す記述であるループ処理記述と、
前記判定記述とが、
前記設定記述の後に前記ループ処理記述が記述され、かつ、前記ループ処理記述の後に前記判定記述が記述されるように予め記述されており、
前記設定記述には、値0の識別子で対応づけられるX(0)の値を前記検証メモリ部に記憶させるように記述されており、
前記ループ処理記述中の検証演算記述には、前記検証メモリ部に記憶されている変数を、前記変換ビット列記憶部より読み出した変換ビット列であるZ(i−1,i)(iはループ内i番目に処理される回数値)が示すビット列の値で排他的論理和演算し、前記検証メモリ部に上書きするように予め記述されており、
前記判定記述には、前記検証メモリ部に記憶されている変数が、前記ビット列記憶部から読み出したX(n)(n=1〜mであり、ループ回数)の値と一致するか否かを判断するように予め記述されており、
前記情報処理部は、
前記設定記述に基づいて、前記ビット列記憶部より読み出した前記型Aのある値を前記検証メモリ部に記憶し、
前記情報処理検証演算記述に基づいて、前記検査対象情報処理を実行するとともに、前記検証メモリ部から読み出した前記変数と、前記変換ビット列記憶部から読みだした変換ビット列とを排他的論理和演算した値を前記検証メモリ部に上書きし、
前記判定記述に基づいて、前記検証メモリ部から読み出した変数の値が、前記ビット列記憶部から読み出した前記型Aのビット列と一致するか否かを判定することにより、前記検証演算記述による排他的論理和演算が実行されたか否かを判定する
ことを特徴とする請求項3又は請求項4に記載の情報処理装置。 - 前記予め定められたプログラムには、
下位モジュールを呼び出し、前記検証メモリ部に記憶されている変数を前記下位モジュールに渡すとともに、前記下位モジュールからの返却値を取得する記述であるモジュール呼び出し記述と、
前記モジュール呼び出し記述で呼び出した下位モジュールからの返却値が、前記下位モジュールが記述順通りに実行された場合に返却されるビット列であるか否かを検証することを示す返却値判定記述とが、
前記モジュール呼出記述の後に前記返却値判定記述が記述されるように予め記述されており、
前記情報処理部は、
前記モジュール呼出記述に基づいて下位モジュールを呼出し、前記検証メモリ部に記憶されている変数を前記下位モジュールに渡すとともに、前記下位モジュールからの返却値を取得し、
前記返却値判定記述に基づいて、前記モジュール呼出し記述で呼出した下位モジュールからの返却値が、前記下位モジュールが記述順通りに実行された場合に返却されるビット列であるか否かを検証する、
ことを特徴とする請求項3から請求項5のいずれかに記載の情報処理装置。 - 前記情報処理装置は、
モジュール内検証メモリ部を有し、
前記モジュール呼出し記述に基づいて呼出される下位モジュールのプログラムは、
自モジュールを呼出した上位モジュールより渡された変数を、前記変換ビット列記憶部より読み出した変換ビット列で排他的論理和演算して前記モジュール内検証メモリ部に記憶する事を示す記述であるモジュール内設定記述と、
自モジュール内における検査対象となる情報処理であるモジュール内検査対象情報処理を実行する事を示す記述であるモジュール内情報処理記述と、
前記モジュール内検証メモリ部に記憶されている変数を前記変換ビット列記憶部より読み出した変換ビット列で排他的論理和演算した値を前記モジュール内検証メモリ部に上書きする事を示す記述であるモジュール内検証演算記述と、
前記モジュール内検証メモリ部に記憶されている変数の値を、前記上位モジュールに返却値として返却することを示す返却記述とを有し、
前記モジュール内情報処理記述およびその後に前記モジュール内検証演算記述が記述されている記述をモジュール内情報処理検証演算記述として、
前記モジュール内設定記述の後に前記モジュール内情報処理検証演算記述が記述され、かつ、前記モジュール内情報処理検証演算記述の後に返却記述が記述されるように記述されており、
前記情報処理部は、
前記モジュール内設定記述に基づいて、自モジュールを呼出した上位モジュールより渡された変数を前記変換ビット列記憶部より読み出した変換ビット列で排他的論理和演算した値を前記モジュール内検証メモリ部に記憶し、
前記モジュール内情報処理検証演算記述に基づいて、前記モジュール内検査対象情報処理を実行するとともに、前記モジュール内検証メモリ部から読み出した前記変数と、前記変換ビット列記憶部から読み出した変換ビット列とを排他的論理和演算した値を前記モジュール内検証メモリ部に上書きし、
前記返却記述に基づいて、前記モジュール内検証メモリ部に記憶されている変数の値を、前記上位モジュールに返却値として返却する、
ことを特徴とする請求項6に記載の情報処理装置。 - 前記モジュール内設定記述に基づき、前記モジュール内検証メモリ部に記憶される前記上位モジュールより渡された変数と、
前記返却記述に基づき、前記上位モジュールに返却される返却値とは、互いにビット反転の関係になるように予め設定されている、
ことを特徴とする請求項7記載の情報処理装置。 - 前記検査対象情報処理による情報処理をするプログラムの記述において、
2値の値をとる2つの内部変数として、少なくとも0と1とを含む2ビット長以上の第3の固定ビット長である複数の基本ビット列を組み合わせた第4の固定ビット長の変数である2つの変数であって、互いにビット反転の関係にある2つの変数を用いる、
ことを特徴とする請求項3から請求項8のいずれかに記載の情報処理装置。 - 予め定められたプログラムの記述に基づいて順に情報処理を実行する情報処理部を有する情報処理装置であって、
少なくとも0と1とを含む2ビット長以上の第1の固定ビット長である複数の基本ビット列を組み合わせた第2の固定ビット長のビット列のデータ型を型Aとし、
前記型Aのある値を変換前ビット列として記憶する変換前ビット列記憶部と、
前記型Aのある値であって、前記変換前ビット列とは値が異なるある値を変換後ビット列として記憶する変換後ビット列記憶部と、
前記変換前ビット列と排他的論理和演算することにより前記変換後ビット列に変換させる変換ビット列を記憶する変換ビット列記憶部と、
検証用となる変数の値を記憶する検証メモリ部と、を有し、
前記予め定められたプログラムには少なくとも、
前記変換前ビット列記憶部に記憶されている変換前ビット列を読み出し前記検証メモリ部に記憶させる事を示す記述である設定記述と、
検査対象となる情報処理である検査対象情報処理を実行することを示す記述である情報処理記述と、
前記検証メモリ部に記憶されている変数を前記変換ビット列記憶部より読み出した変換ビット列で排他的論理和演算した値を前記検証メモリ部に上書きすることを示す記述である検証演算記述と、
前記検証メモリ部に記憶されている変数の値に基づいて前記検証演算記述による排他的論理和演算が実行されたか否かを示す記述である判定記述とが、
前記設定記述の後に前記情報処理記述が記述され、前記情報処理記述の後に検証演算記述が記述され、かつ、前記検証処理記述の後に前記判定記述が記述されるように予め記述されており、
前記情報処理部は、
前記設定記述に基づいて、変換前ビット列を前記変換前ビット列記憶部から読み出して前記検証メモリ部に記憶し、
前記情報処理記述に基づいて、前記検査対象情報処理を実行し、
前記検証演算記述に基づいて、前記検証メモリから読み出した変数と、前記変換ビット列記憶部から読み出した変換ビット列とを排他的論理和演算して前記検証メモリ部に上書きし、
前記判定記述により、前記検証メモリ部から読み出した変数の値が、前記変換後ビット列記憶部より読み出した前記変換後ビット列と一致するか否かを判定する事により、前記検証演算記述による排他的論理和演算が実行されたか否かを判定する
ことを特徴とする情報処理装置。 - 前記設定記述に基づいて検証メモリ部に記憶された前記変換前ビット列と、
前記判定記述に基づいて前記変換後ビット列記憶部より読み出された前記変換後ビット列とは、互いにビット反転の関係にある
ことを特徴とする請求項10記載の情報処理装置。 - 予め定められたプログラムの記述に基づいて順に情報処理を実行する情報処理部と、少なくとも0と1とを含む2ビット長以上の第1の固定ビット長である複数の基本ビット列を組み合わせた第2の固定ビット長のビット列のデータ型を型Aとして、前記型Aのビット列の値であって、値が互いに異なるm個の値を、識別子j(j=0,・・・,m−1)と対応づけて、前記型Aのビット列の配列X(j)として記憶するビット列記憶部と、X(k)と排他的論理和演算することでX(l)となるようなビット列の配列Z(k,l)(k,l=0,・・・,m−1)を変換ビット列として記憶する変換ビット列記憶部と、検証用となる変数の値を記憶する検証メモリ部と、を有し、前記予め定められたプログラムは、前記ビット列記憶部に記憶されている前記型Aのある値を前記検証メモリ部に記憶させる事を示す記述である設定記述と、検査対象となる情報処理である検査対象情報処理を実行することを示す記述である情報処理記述と、前記検証メモリ部に記憶されている変数を前記変換ビット列記憶部より読み出した変換ビット列で排他的論理和演算した値を前記検証メモリ部に上書きすることを示す記述である検証演算記述と、前記検証メモリ部に記憶されている変数の値に基づいて前記検証演算記述による排他的論理和演算が実行されたか否かを示す記述である判定記述とを有し、前記情報処理記述およびその後に前記検証演算記述が記述されている記述を情報処理検証演算記述として、前記設定記述の後に、n個の前記情報処理検証演算記述が順に記述され、かつ、前記n個の情報処理検証演算記述の後に前記判定記述が記述されるように予め記述されており、前記設定記述は、前記ビット列記憶部に記憶されている前記型Aの値であるX(p0)(p0は、0〜m−1の間の任意の値の識別子)を前記検証メモリ部に記憶させるように記述されており、前記n個の情報処理検証演算記述のうちi番目の記述の中の検証演算記述には、前記検証メモリ部に記憶されている変数を、前記変換ビット列記憶部より読み出した変換ビット列であるZ(pi−1,pi)(piは0〜m−1の間の任意の識別子)が示す値で排他的論理和演算し、検証メモリ部に上書きするように予め記述されており、前記判定記述には、前記検証メモリ部に記憶されている変数が、X(p0)^Z(p0,p1)^・・・・^Z(pn−1,pn)(^は排他的論理和演算)の値となるX(pn)(pnは0〜m−1の間の任意の識別子)であって、前記ビット列記憶部から読み出したX(pn)の値と一致するか否かを判断するように予め記述されている情報処理装置において用いられる情報処理であって、
前記情報処理部は、
前記設定記述に基づいて、前記ビット列記憶部より読み出した前記型Aのある値を前記検証メモリ部に記憶し、
前記情報処理検証演算記述に基づいて、前記検査対象情報処理を実行するとともに、前記検証メモリ部から読み出した前記変数と、前記変換ビット列記憶部から読みだした変換ビット列とを排他的論理和演算した値を前記検証メモリ部に上書きし、
前記判定記述に基づいて、前記検証メモリ部から読み出した変数の値が、前記ビット列記憶部から読み出した前記型Aのビット列と一致するか否かを判定することにより、前記検証演算記述による排他的論理和演算が実行されたか否かを判定する、
ことを特徴とする情報処理方法。 - 予め定められたプログラムの記述に基づいて順に情報処理を実行する情報処理部と、少なくとも0と1とを含む2ビット長以上の第1の固定ビット長である複数の基本ビット列を組み合わせた第2の固定ビット長のビット列のデータ型を型Aとして、前記型Aのビット列の値であって、値が互いに異なるm個の値を、識別子j(j=0,・・・,m−1)と対応づけて、前記型Aのビット列の配列X(j)として記憶するビット列記憶部と、X(k)と排他的論理和演算することでX(l)となるようなビット列の配列Z(k,l)(k,l=0,・・・,m−1)を変換ビット列として記憶する変換ビット列記憶部と、検証用となる変数の値を記憶する検証メモリ部と、を有し、前記予め定められたプログラムは、前記ビット列記憶部に記憶されている前記型Aのある値を前記検証メモリ部に記憶させる事を示す記述である設定記述と、検査対象となる情報処理である検査対象情報処理を実行することを示す記述である情報処理記述と、前記検証メモリ部に記憶されている変数を前記変換ビット列記憶部より読み出した変換ビット列で排他的論理和演算した値を前記検証メモリ部に上書きすることを示す記述である検証演算記述と、前記検証メモリ部に記憶されている変数の値に基づいて前記検証演算記述による排他的論理和演算が実行されたか否かを示す記述である判定記述とを有し、前記情報処理記述およびその後に前記検証演算記述が記述されている記述を情報処理検証演算記述として、前記設定記述の後に、n個の前記情報処理検証演算記述が順に記述され、かつ、前記n個の情報処理検証演算記述の後に前記判定記述が記述されるように予め記述されており、前記設定記述は、前記ビット列記憶部に記憶されている前記型Aの値であるX(p0)(p0は、0〜m−1の間の任意の値の識別子)を前記検証メモリ部に記憶させるように記述されており、前記n個の情報処理検証演算記述のうちi番目の記述の中の検証演算記述には、前記検証メモリ部に記憶されている変数を、前記変換ビット列記憶部より読み出した変換ビット列であるZ(pi−1,pi)(piは0〜m−1の間の任意の識別子)が示す値で排他的論理和演算し、検証メモリ部に上書きするように予め記述されており、前記判定記述には、前記検証メモリ部に記憶されている変数が、X(p0)^Z(p0,p1)^・・・・^Z(pn−1,pn)(^は排他的論理和演算)の値となるX(pn)(pnは0〜m−1の間の任意の識別子)であって、前記ビット列記憶部から読み出したX(pn)の値と一致するか否かを判断するように予め記述されている情報処理装置としてのコンピュータに、
前記設定記述に基づいて、前記ビット列記憶部より読み出した前記型Aのある値を前記検証メモリ部に記憶する手順と、
前記情報処理検証演算記述に基づいて、前記検査対象情報処理を実行するとともに、前記検証メモリ部から読み出した前記変数と、前記変換ビット列記憶部から読みだした変換ビット列とを排他的論理和演算した値を前記検証メモリ部に上書きする手順と、
前記判定記述に基づいて、前記検証メモリ部から読み出した変数の値が、前記ビット列記憶部から読み出した前記型Aのビット列と一致するか否かを判定することにより、前記検証演算記述による排他的論理和演算が実行されたか否かを判定する手順と
を実行させるための情報処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008093316A JP4701260B2 (ja) | 2008-03-31 | 2008-03-31 | 情報処理装置、情報処理方法、および、情報処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008093316A JP4701260B2 (ja) | 2008-03-31 | 2008-03-31 | 情報処理装置、情報処理方法、および、情報処理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009245336A JP2009245336A (ja) | 2009-10-22 |
JP4701260B2 true JP4701260B2 (ja) | 2011-06-15 |
Family
ID=41307114
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008093316A Active JP4701260B2 (ja) | 2008-03-31 | 2008-03-31 | 情報処理装置、情報処理方法、および、情報処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4701260B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5470305B2 (ja) * | 2011-03-04 | 2014-04-16 | 株式会社エヌ・ティ・ティ・データ | セキュリティ試験支援装置、セキュリティ試験支援方法およびセキュリティ試験支援プログラム |
US8917566B2 (en) | 2012-04-11 | 2014-12-23 | International Business Machines Corporation | Bypass structure for a memory device and method to reduce unknown test values |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005509936A (ja) * | 2001-11-16 | 2005-04-14 | ギーゼッケ ウント デフリエント ゲーエムベーハー | 携帯型データ記憶媒体により制御されるプログラム実行 |
JP2005510095A (ja) * | 2001-11-14 | 2005-04-14 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 情報漏洩が低減される装置および方法 |
JP2006155190A (ja) * | 2004-11-29 | 2006-06-15 | Sony Corp | データ記憶装置、データ処理方法、記録媒体、およびプログラム |
JP2007517299A (ja) * | 2003-12-31 | 2007-06-28 | トラステッド ロジック ソシエテ アノニム | 実行トレースプリントを検証することによるプログラム実行整合性の制御方法 |
JP2009525509A (ja) * | 2006-02-27 | 2009-07-09 | シャープ株式会社 | 制御フロー保護機構 |
-
2008
- 2008-03-31 JP JP2008093316A patent/JP4701260B2/ja active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005510095A (ja) * | 2001-11-14 | 2005-04-14 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 情報漏洩が低減される装置および方法 |
JP2005509936A (ja) * | 2001-11-16 | 2005-04-14 | ギーゼッケ ウント デフリエント ゲーエムベーハー | 携帯型データ記憶媒体により制御されるプログラム実行 |
JP2007517299A (ja) * | 2003-12-31 | 2007-06-28 | トラステッド ロジック ソシエテ アノニム | 実行トレースプリントを検証することによるプログラム実行整合性の制御方法 |
JP2006155190A (ja) * | 2004-11-29 | 2006-06-15 | Sony Corp | データ記憶装置、データ処理方法、記録媒体、およびプログラム |
JP2009525509A (ja) * | 2006-02-27 | 2009-07-09 | シャープ株式会社 | 制御フロー保護機構 |
Also Published As
Publication number | Publication date |
---|---|
JP2009245336A (ja) | 2009-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6277101B2 (ja) | データ検証方法およびデータ検証用装置 | |
CN111095213B (zh) | 嵌入式程序的安全引导方法、装置、设备及存储介质 | |
CN109561085B (zh) | 一种基于设备识别码的身份验证方法、服务器及介质 | |
US11829479B2 (en) | Firmware security verification method and device | |
US9298947B2 (en) | Method for protecting the integrity of a fixed-length data structure | |
US10146655B2 (en) | Method for determining an intergrity of an execution of a code fragment and a method for providing an abstracted representation of a program code | |
US11321168B2 (en) | Error identification in executed code | |
WO2002027444A2 (en) | System and method for verifying the integrity of stored information within an electronic device | |
US20060047955A1 (en) | Application code integrity check during virtual machine runtime | |
CN109472172A (zh) | 用于防止来自存储器的未授权数据访问的方法 | |
ES2349725T3 (es) | Procedimiento, dispositivo y sistema para verificar puntos determinados sobre una curva elíptica. | |
JP4701260B2 (ja) | 情報処理装置、情報処理方法、および、情報処理プログラム | |
JP4766285B2 (ja) | 永久データハードウェアインテグリティ | |
EP3499398A2 (en) | Secure storage of monotonic odo value inside a secure hardware elements update counter | |
KR101482700B1 (ko) | 해시를 이용한 프로그램의 무결성 검증 방법 | |
CN109472148B (zh) | 加载热补丁的方法、装置和存储介质 | |
CN106484477B (zh) | 安全的软件下载与启动方法 | |
CN105426206B (zh) | 一种版本信息的控制方法和控制装置 | |
CN110601846A (zh) | 一种校验虚拟可信根的***及方法 | |
US20240012903A1 (en) | Method for Executing a Program on a Data Processing Device | |
JP6069120B2 (ja) | 情報処理システム | |
JP5758336B2 (ja) | 情報処理装置、情報処理方法、及び情報処理プログラム | |
JP5200686B2 (ja) | 情報処理装置、正常処理判別方法、及び情報処理プログラム | |
US7822953B2 (en) | Protection of a program against a trap | |
JP2009015434A (ja) | 携帯可能情報処理装置及び情報処理プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110131 |
|
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: 20110208 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110307 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4701260 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |