(57)【特許請求の範囲】
【請求項１】
正当性検証の対象となる被検証データが格納された補助記憶装置と、
前記正当性検証のためのプログラムが格納されたプログラムメモリと、
第１のＲＡＭ（Random  Access  Memory）と、
第２のＲＡＭと、
前記正当性検証のためのプログラムに従って前記正当性検証を実行する実行手段と、
を備え、
前記正当性検証を実行する際に、前記被検証データが前記補助記憶装置から前記第１のＲＡＭにコピーされ、前記実行手段が、前記第２のＲＡＭを作業領域とし、前記第１のＲＡＭに格納された前記被検証データに対して前記正当性検証を実行することを特徴とする、
情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記正当性検証を実行する際に、前記正当性検証のためのプログラムの少なくとも一部が前記第２のＲＡＭに展開される、
情報処理装置。
【請求項３】
請求項１又は２に記載の情報処理装置であって、
前記第１のＲＡＭと前記第２のＲＡＭは、異なる入出力ポートを有する別体のＲＡＭである、
情報処理装置。
【請求項４】
請求項１ないし３のいずれか１項に記載の情報処理装置であって、
前記実行手段は、前記第１のＲＡＭに格納された前記被検証データに対して暗号計算を行う暗号計算手段を含み、
前記正当性検証を実行する際に、前記暗号計算に用いられる鍵データの少なくとも一部が、前記補助記憶装置から前記第２のＲＡＭにコピーされて用いられる、
情報処理装置。
【請求項５】
請求項１ないし３のいずれか１項に記載の情報処理装置であって、
前記実行手段は、ＣＰＵ（Central  Processing  Unit）と、該ＣＰＵとは別体の暗号計算手段を含み、
前記暗号計算手段は、前記ＣＰＵからの指示により前記補助記憶装置から前記第１のＲＡＭにコピーされた前記被検証データに対して暗号計算を行い、該暗号計算が終了したときに前記ＣＰＵに対して割り込み通知を行う手段である、
情報処理装置。
【請求項６】
請求項１ないし３のいずれか１項に記載の情報処理装置であって、
前記補助記憶装置に格納された被検証データは暗号化されており、前記補助記憶装置から第３のＲＡＭにコピーされ、復号手段によって復号された後に前記第１のＲＡＭにコピーされる、
情報処理装置。
【請求項７】
請求項６に記載の情報処理装置であって、
前記実行手段は、前記第１のＲＡＭに格納された前記被検証データに対して暗号計算を行う暗号計算手段を含み、
前記暗号計算に用いられる鍵データの少なくとも一部は暗号化されて前記補助記憶装置に格納されており、前記補助記憶装置から第４のＲＡＭにコピーされ、復号手段によって復号された後に前記暗号計算に用いられる、
情報処理装置。
【請求項８】
請求項１ないし７のいずれか１項に記載の情報処理装置であって、
少なくとも前記補助記憶装置と前記第１のＲＡＭ間のデータ転送を制御するＤＭＡコントローラを備え、該ＤＭＡコントローラの制御によって前記被検証データが前記補助記憶装置から前記第１のＲＡＭにコピーされる、
情報処理装置。
【請求項９】
請求項１ないし８のいずれか１項に記載の情報処理装置であって、
前記プログラムメモリはＲＯＭであり、
前記プログラムメモリ、前記第１のＲＡＭ、前記第２のＲＡＭ、前記実行手段は、ＳｏＣ（System-on-a-Chip）又はＡＳＩＣ（Application  Specific  Integrated  Circuit）として構成される、
情報処理装置。
【請求項１０】
情報処理装置が、補助記憶装置に格納された被検証データに対して正当性検証を実行する正当性検証方法であって、
前記被検証データを前記補助記憶装置から第１のＲＡＭにコピーするステップと、
前記第１のＲＡＭに格納された前記被検証データに対して、第２のＲＡＭを作業領域として暗号計算を行う、又は暗号計算手段に行わせるステップと、
前記暗号計算の結果を予め格納された比較データと比較するステップと、
を備える正当性検証方法。
【請求項１１】
情報処理装置に、補助記憶装置に格納された被検証データに対して正当性検証を実行させるための情報処理装置によって読み取り可能な正当性検証プログラムであって、
前記被検証データを前記補助記憶装置から第１のＲＡＭにコピーするステップと、
前記第１のＲＡＭに格納された前記被検証データに対して、第２のＲＡＭを作業領域として暗号計算を行う、又は暗号計算手段に行わせるステップと、
前記暗号計算の結果を予め格納された比較データと比較するステップと、
を前記情報処理装置に実行させる正当性検証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、起動時等にセキュリティ性を維持するための正当性検証を行う情報処理装置及びその正当性検証方法、並びに正当性検証プログラムに関する。
【背景技術】
【０００２】
従来、パーソナルコンピュータ、電子機器や電動機器に組み込まれた組込コンピュータ、サーバ装置、その他の情報処理装置において、補助記憶装置に格納されたプログラム等のデータが改竄・破壊等されていないかどうかを検証する処理が行われている。係る処理は、正当性検証と称され、情報処理装置の起動時等に実行される。
【０００３】
図１は、従来のパーソナルコンピュータの部分構成例である。図示するように、従来のパーソナルコンピュータは、ＣＰＵ（Central  Processing  Unit）、ブートデバイス、補助記憶装置、ＴＰＭ（Trusted  Platform  Module）、暗号計算エンジン、ＲＡＭ（Random  Access  Memory）等が、バスによって接続された構成となっている。
【０００４】
ブートデバイスは、例えばフラッシュＲＯＭであり、ＢＩＯＳ（Basic  Input/Output  System）や正当性検証用のプログラム等、起動時に実行されるプログラムが格納される。補助記憶装置は、例えばＨＤＤ（Hard  Disk  Drive）、フラッシュメモリ、ＥＥＰＲＯＭ（Electrically  Erasable  and  Programmable  Read  Only  Memory）等であり、オペレーティングシステムや各種アプリケーションプログラム、データベース等が格納される。ＴＰＭは、保持するデータの改竄等に対する耐性を有するセキュリティチップであり、暗号計算に用いられる鍵データ、正当性検証のための比較データ等を保持又は生成することができる。ＴＰＭが保持・生成する鍵データは、手順を踏むことによって書き換えることができる。暗号計算エンジンは、ＲＳＡ暗号演算やハッシュ演算等の暗号計算を行う演算器ユニットである。ＴＰＭは、暗号計算エンジンの機能を兼ねることができる。
【０００５】
図１に例示する従来のパーソナルコンピュータにおける正当性検証は、例えば、補助記憶装置に格納された被検証データ（プログラムやデータ）をＲＡＭにコピーし、これに対して暗号計算エンジンが鍵データを用いて暗号計算を行い、計算結果が比較データと一致している場合に、被検証データが正常（正当）であると判断する手順で行われる。そして、被検証データが正常であると判断されるとオペレーティングシステムが起動して通常作動状態に移行する。
【０００６】
係る技術に関連し、種々の文献が開示されている。例えば特許文献１には、起動対象のプログラム等のハッシュ値を算出し、予め記憶しておいたハッシュ値と比較して正当性検証を行う情報処理装置について記載されている。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来の情報処理装置においては、被検証データをコピーする際（図１における矢印（Ａ））、正当性検証用のプログラムを展開する際（図１における矢印（Ｂ））、計算対象として被検証データを読み込む際（図１における矢印（Ｃ））、作業領域として種々のパラメータを書き込む際（図１における矢印（Ｄ））等にそれぞれＲＡＭへのアクセスが発生するため、これらが干渉して処理遅延が生じる場合がある。また、ＲＡＭにおける被検証データのコピー領域と、暗号計算のためのプログラムの作業領域を事前に区別しておく必要があり、正当性検証の後にＲＡＭ上でデータの再配置を行う必要が生じる場合もある。データの再配置を行う場合、情報処理装置の起動が遅くなってしまう。
【０００８】
本発明はこのような課題を解決するためのものであり、より迅速に正当性検証を行うことが可能な情報処理装置等を提供することを、主たる目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するための本発明の一態様は、
正当性検証の対象となる被検証データが格納された補助記憶装置と、
前記正当性検証のためのプログラムが格納されたプログラムメモリと、
第１のＲＡＭ（Random  Access  Memory）と、
第２のＲＡＭと、
前記正当性検証のためのプログラムに従って前記正当性検証を実行する実行手段と、
を備え、
前記正当性検証を実行する際に、前記被検証データが前記補助記憶装置から前記第１のＲＡＭにコピーされ、前記実行手段が、前記第２のＲＡＭを作業領域とし、前記第１のＲＡＭに格納された前記被検証データに対して前記正当性検証を実行することを特徴とする、
情報処理装置である。
【発明の効果】
【００１０】
本発明によれば、より迅速に正当性検証を行うことが可能な情報処理装置等を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】従来のパーソナルコンピュータの部分構成例である。
【図２】本発明の第１実施例に係る情報処理装置１のシステム構成例である。
【図３】情報処理装置１の起動時における処理の流れを示すフローチャートである。
【図４】本発明の第２実施例に係る情報処理装置２のシステム構成例である。
【図５】情報処理装置２の起動時における処理の流れを示すフローチャートである。
【図６】本発明の第３実施例に係る情報処理装置３のシステム構成例である。
【図７】情報処理装置３の起動時における処理の流れを示すフローチャートである。
【図８】本発明の第４実施例に係る情報処理装置４のシステム構成例である。
【図９】情報処理装置４の起動時における処理の流れを示すフローチャートである。
【図１０】本発明の第５実施例に係る情報処理装置５のシステム構成例である。
【図１１】情報処理装置５の起動時における処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。
【実施例】
【００１３】
＜第１実施例＞
以下、図面を参照し、本発明の第１実施例に係る情報処理装置１について説明する。
【００１４】
［構成］
図２は、本発明の第１実施例に係る情報処理装置１のシステム構成例である。情報処理装置１は、主要な構成として、ＣＰＵ１０と、ブートデバイス１１と、補助記憶装置１２と、暗号計算エンジン１３と、ＲＡＭ１４＃１、１４＃２と、ＤＭＡ（Direct  Memory  Access）コントローラ１５と、がバス１６によって接続された構成となっている。
【００１５】
これらの構成要素のうち、ＣＰＵ１０、ブートデバイス１１、暗号計算エンジン１３、ＲＡＭ１４＃１、１４＃２、ＤＡＭコントローラ１５は、ＳｏＣ（System-on-a-Chip）１７として構成されると好適である。これによって、全体のチップ面積並びに情報処理装置１のサイズを小さくすることが可能となる。特に、情報処理装置１が電子機器や電動機器に組み込まれた組込コンピュータである場合に、サイズダウンの要求は高いものであり、係る効果は顕著なものとなる。なお、ＳｏＣに代えてＡＳＩＣ（Application  Specific  Integrated  Circuit）が採用されてもよい。
【００１６】
なお、この他、一般的な情報処理装置が備える構成、例えば表示装置やスピーカ、マウス、キーボード、タッチパッド、ネットワーク接続のためのインターフェース等を備えてもよい（後述する第２実施例以下も同様である）。
【００１７】
ＣＰＵ１０は、プログラムカウンタや命令デコーダ、各種演算器、ＬＳＵ（Load  Store  Unit）、汎用レジスタ等を有するプロセッサである。
【００１８】
ブートデバイス１１は、例えばマスクＲＯＭであり、ＢＩＯＳ１１Ａ、正当性検証プログラム１１Ｂ、秘密鍵１１Ｃ、比較データ１１Ｄ等が格納されている。これらのプログラムやデータは、ブートデバイス１１が書き換え不能な記憶装置であるために、被検証データから除外している。秘密鍵１１Ｃや比較データ１１Ｄの格納箇所は、ブートデバイス１１と別体のＲＯＭ等であってもよい。
【００１９】
補助記憶装置１２は、例えばＨＤＤ、フラッシュメモリ、ＥＥＰＲＯＭ等の不揮発性記憶装置である。補助記憶装置１２には、オペレーティングシステム１２Ｂ、アプリケーションプログラム１２Ｃ等を含む被検証データ１２Ａ、正当性検証用署名鍵１２Ｄ等が格納されている。正当性検証用署名鍵１２Ｄの格納箇所は、他の記憶装置であってもよい。
【００２０】
暗号計算エンジン１３は、ＲＳＡ暗号演算やハッシュ演算等の暗号計算を行うための演算器ユニットである。暗号計算エンジン１３による暗号計算は、秘密鍵１１Ｃ及び正当性検証用署名鍵１２Ｄを用いて行われる。
【００２１】
ＲＡＭ１４＃１、１４＃２は、異なる入出力ポートを有する別体のＲＡＭである。ＲＡＭ１４＃１には、正当性検証を行う際に、被検証データ１２Ａがコピーされる（図２における矢印（１））。また、ＲＡＭ１４＃２には、正当性検証を行う際に、正当性検証プログラム１１Ｂの一部又は全部が展開され（図２における矢印（２））、正当性検証のための作業領域として用いられる（図２における矢印（３））。
【００２２】
このように、被検証データ１２ＡがコピーされるＲＡＭ１４＃１と、正当性検証プログラム１１Ｂの一部又は全部が展開され、作業領域として使用されるＲＡＭ１４＃２を使い分けることにより、正当性検証を行う際のアクセス干渉の発生を低減することができる。この結果、より迅速に正当性検証を行うことができる。
【００２３】
ＤＭＡコントローラ１５は、ＣＰＵ１０からの指示に従い、バス１６に接続された機器間のデータ転送を制御する。
【００２４】
［正当性検証の手順等］
本実施例に係る情報処理装置１は、起動時（電源投入時、再起動時）等において、被検証データ１２Ａが改竄・破壊等されていないかどうかを検証するための正当性検証を行う。正当性検証を行うタイミングについては特段の制約はなく、任意に定めてよい。以下、その手順等について説明する。
【００２５】
図３は、情報処理装置１の起動時における処理の流れを示すフローチャートである。
【００２６】
情報処理装置１が起動すると、まずＢＩＯＳ１１Ａが起動する（Ｓ１００）。
【００２７】
次に、正当性検証プログラム１１Ｂが起動する（Ｓ１０２）。正当性検証プログラム１１Ｂは、例えば冒頭部分がブートデバイス１１上で実行され、残りの部分は、ＲＡＭ１４＃２に展開された上で実行される。正当性検証プログラム１１ＢをＲＡＭ１４＃２に展開する処理は、ＤＭＡコントローラ１５によって行われてもよいし、ＣＰＵ１０によって行われてもよい。
【００２８】
正当性検証プログラム１１Ｂは、被検証データ１２ＡをＲＡＭ１４＃１にコピーするように、ＤＭＡコントローラ１５に指示する（Ｓ１０４）。ＤＭＡコントローラ１５は、ＲＡＭ１４＃１の予め定められた領域に被検証データ１２Ａをコピーする。
【００２９】
次に、正当性検証プログラム１１Ｂは、秘密鍵１１Ｃと正当性検証用署名鍵１２Ｄを読み込み（Ｓ１０６）これらを組み合わせて暗号計算の設定等を行い（Ｓ１０８）、係る設定に従って被検証データ１２Ａに対するハッシュ値等を計算するように、暗号計算エンジン１３に指示する（Ｓ１１０）。ここで、正当性検証用署名鍵１２Ｄは、例えば３００バイト未満の小さいデータであることが好ましく、この場合、補助記憶装置１２から読み込むための時間は軽微である。暗号計算エンジン１３は、正当性検証プログラム１１Ｂの指示に従い、ＲＡＭ１４＃１に格納された被検証データ１２Ａを読み込んで（図２における矢印（４））暗号計算を行う。
【００３０】
正当性検証プログラム１１Ｂは、ハッシュ値等の計算を指示すると、係る計算が終了したかどうかを定期的にチェックする処理を開始する（Ｓ１１２）。
【００３１】
そして、暗号計算エンジン１３によるハッシュ値等の計算が終了すると（Ｓ１１４）、暗号計算エンジン１３の計算結果と比較データ１１Ｄが一致したか否かを判定する（Ｓ１１６）。
【００３２】
暗号計算エンジン１３の計算結果と比較データ１１Ｄが一致した場合は、情報処理装置１が通常作動状態に移行する（Ｓ１１８）。この際に、ＲＡＭ１４＃１に展開された被検証データ１２Ａは、元々補助記憶装置１２に格納されたものがそっくりコピーされたものであり、更に、正当性検証において他のプログラムやデータがＲＡＭ１４＃１に書き込まれないように制御されている。この結果、被検証データ１２Ａに含まれるオペレーティングシステム１２Ｂやアプリケーションプログラム１２Ｃについては、データの再配置等を行うことなく、そのままＲＡＭ１４＃１上で実行することができる。これによって、情報処理装置１の起動時間を短縮することができる。
【００３３】
また、ＲＡＭ１４＃２に残存する正当性検証プログラムや作業領域のデータ等については、通常作動状態に移行した後は不要であるため、自由に上書きすることができる。このため、ＲＡＭ１４＃２についてもデータの再配置等の処理は不要であり、情報処理装置１の起動時間を更に短縮することができる。
【００３４】
一方、暗号計算エンジン１３の計算結果と比較データ１１Ｄが一致しなかった場合は、所定のエラー処理を実行する（Ｓ１２０）。エラー処理には、例えばリカバリプログラムリストを表示してユーザに選択させる等の処理が含まれ得るが、本発明の適用上、如何なる処理を行ってもよい。これによって、被検証データ１２Ａが改竄・破壊等された可能性がある場合には通常作動状態に移行するのを妨げ、情報処理装置１が不正な動作をするのを防止することができる。
【００３５】
［まとめ］
以上説明した本実施例の情報処理装置１によれば、被検証データ１２ＡがコピーされるＲＡＭ１４＃１と、正当性検証プログラム１１Ｂの一部又は全部が展開され、作業領域として使用されるＲＡＭ１４＃２を使い分けているため、正当性検証を行う際のアクセス干渉の発生を低減することができ、より迅速に正当性検証を行うことができる。
【００３６】
また、ＲＡＭ１４＃１は専ら被検証データ１２Ａのコピー領域として使用されるため、被検証データ１２Ａに含まれるオペレーティングシステム１２Ｂやアプリケーションプログラム１２Ｃを、そのままＲＡＭ１４＃１上で実行することができる。これによって、情報処理装置１の起動時間を短縮することができる。
【００３７】
＜第２実施例＞
以下、図面を参照し、本発明の第２実施例に係る情報処理装置２について説明する。
【００３８】
［構成］
図４は、本発明の第２実施例に係る情報処理装置２のシステム構成例である。情報処理装置２は、構成要素について第１実施例と共通するため、各構成について同一の符号を付し、それぞれの機能等についての説明は省略する。
【００３９】
本実施例に係る情報処理装置２は、正当性検証用署名鍵１２ＤをＲＡＭ１４＃２にコピーし（図４における矢印（５））、暗号計算の際にはＲＡＭ１４＃２から正当性検証用署名鍵１２Ｄを読み込みて用いる点で、第１実施例と相違する。これによって、正当性検証用署名鍵１２Ｄのデータサイズが比較的大きい場合に、更に迅速に正当性検証を行うことができる。
【００４０】
［正当性検証の手順等］
図５は、情報処理装置２の起動時における処理の流れを示すフローチャートである。
【００４１】
情報処理装置２が起動すると、まずＢＩＯＳ１１Ａが起動する（Ｓ２００）。
【００４２】
次に、正当性検証プログラム１１Ｂが起動する（Ｓ２０２）。正当性検証プログラム１１Ｂは、例えば冒頭部分がブートデバイス１１上で実行され、残りの部分は、ＲＡＭ１４＃２に展開された上で実行される。正当性検証プログラム１１ＢをＲＡＭ１４＃２に展開する処理は、ＤＭＡコントローラ１５によって行われてもよいし、ＣＰＵ１０によって行われてもよい。
【００４３】
正当性検証プログラム１１Ｂは、被検証データ１２ＡをＲＡＭ１４＃１にコピーするように、ＤＭＡコントローラ１５に指示する（Ｓ２０４）。
【００４４】
続いて、正当性検証プログラム１１Ｂは、正当性検証用署名鍵１２ＤをＲＡＭ１４＃２にコピーするように、ＤＭＡコントローラ１５に指示する（Ｓ２０５）。なお、Ｓ２０４とＳ２０５は、いずれが先に行われてもよい。
【００４５】
ＤＭＡコントローラ１５は、ＲＡＭ１４＃１の予め定められた領域に被検証データ１２Ａをコピーする。また、ＲＡＭ１４＃２の予め定められた領域に正当性検証用署名鍵１２Ｄをコピーする。
【００４６】
次に、正当性検証プログラム１１Ｂは、秘密鍵１１Ｃと正当性検証用署名鍵１２Ｄを読み込み（Ｓ２０６）これらを組み合わせて暗号計算の設定等を行い（Ｓ２０８）、係る設定に従って被検証データ１２Ａに対するハッシュ値等を計算するように、暗号計算エンジン１３に指示する（Ｓ２１０）。ここで、正当性検証用署名鍵１２Ｄは、例えば３００バイト未満の小さいデータであることが好ましく、この場合、補助記憶装置１２から読み込むための時間は軽微である。
【００４７】
正当性検証プログラム１１Ｂは、ハッシュ値等の計算を指示すると、係る計算が終了したかどうかを定期的にチェックする処理を開始する（Ｓ２１２）。
【００４８】
そして、暗号計算エンジン１３によるハッシュ値等の計算が終了すると（Ｓ２１４）、暗号計算エンジン１３の計算結果と比較データ１１Ｄが一致したか否かを判定する（Ｓ２１６）。
【００４９】
暗号計算エンジン１３の計算結果と比較データ１１Ｄが一致した場合は、情報処理装置２が通常作動状態に移行する（Ｓ２１８）。この際に、ＲＡＭ１４＃１に展開された被検証データ１２Ａは、元々補助記憶装置１２に格納されたものがそっくりコピーされたものであり、更に、正当性検証において他のプログラムやデータがＲＡＭ１４＃１に書き込まれないように制御されている。この結果、被検証データ１２Ａに含まれるオペレーティングシステム１２Ｂやアプリケーションプログラム１２Ｃについては、データの再配置等を行うことなく、そのままＲＡＭ１４＃１上で実行することができる。これによって、情報処理装置２の起動時間を短縮することができる。
【００５０】
また、ＲＡＭ１４＃２に残存する正当性検証プログラムや作業領域のデータ等については、通常作動状態に移行した後は不要であるため、自由に上書きすることができる。このため、ＲＡＭ１４＃２についてもデータの再配置等の処理は不要であり、情報処理装置２の起動時間を更に短縮することができる。
【００５１】
一方、暗号計算エンジン１３の計算結果と比較データ１１Ｄが一致しなかった場合は、所定のエラー処理を実行する（Ｓ２２０）。エラー処理には、例えばリカバリプログラムリストを表示してユーザに選択させる等の処理が含まれ得るが、本発明の適用上、如何なる処理を行ってもよい。これによって、被検証データ１２Ａが改竄・破壊等された可能性がある場合には通常作動状態に移行するのを妨げ、情報処理装置２が不正な動作をするのを防止することができる。
【００５２】
［まとめ］
以上説明した本実施例の情報処理装置２によれば、第１実施例の情報処理装置１と同様の効果を奏するのに加え、正当性検証用署名鍵１２Ｄのデータサイズが比較的大きい場合に、更に迅速に正当性検証を行うことができる。
【００５３】
なお、上記では正当性検証用署名鍵１２ＤをＲＡＭ１２＃２にコピーすることのみ言及したが、秘密鍵１１Ｃ、比較データ１１Ｄについても、図５のＳ２０５のタイミング等でＲＡＭ１２＃２にコピーしてもよい。
【００５４】
＜第３実施例＞
以下、図面を参照し、本発明の第３実施例に係る情報処理装置３について説明する。
【００５５】
［構成］
図６は、本発明の第３実施例に係る情報処理装置３のシステム構成例である。情報処理装置３における第１実施例と共通する構成要素については、第１実施例と同一の符号を付し、それぞれの機能等についての説明は省略する。
【００５６】
本実施例に係る情報処理装置３は、ブートデバイス１１が並行実施プログラム１１Ｅを格納している（補助記憶装置１２に格納しても構わない）点で、第１実施例と相違する。並行実施プログラム１１Ｅとは、例えばハードウエアデバイスの初期化等を行うためのプログラムであり、情報処理装置３の起動時に実行する必要があるものである。
【００５７】
また、本実施例に係る暗号計算エンジン１３は、割り込み通知を行う機能を有しており、計算が終了した際に、ＣＰＵ１０に対して（ソフトウエア上は正当性検証プログラム１１Ｂに対して）、計算が終了した旨を通知することができる（図６における矢印（６））。
【００５８】
これによって、ＣＰＵ１０は、暗号計算エンジン１３に計算指示を行ってから暗号計算エンジン１３が計算を終了するまでの間に、並行実施プログラム１１Ｅを実行することができる。この結果、更に迅速に正当性検証を行うことができる。
【００５９】
［正当性検証の手順等］
図７は、情報処理装置３の起動時における処理の流れを示すフローチャートである。
【００６０】
情報処理装置３が起動すると、まずＢＩＯＳ１１Ａが起動する（Ｓ３００）。
【００６１】
次に、正当性検証プログラム１１Ｂが起動する（Ｓ３０２）。正当性検証プログラム１１Ｂは、例えば冒頭部分がブートデバイス１１上で実行され、残りの部分は、ＲＡＭ１４＃２に展開された上で実行される。正当性検証プログラム１１ＢをＲＡＭ１４＃２に展開する処理は、ＤＭＡコントローラ１５によって行われてもよいし、ＣＰＵ１０によって行われてもよい。
【００６２】
正当性検証プログラム１１Ｂは、被検証データ１２ＡをＲＡＭ１４＃１にコピーするように、ＤＭＡコントローラ１５に指示する（Ｓ３０４）。ＤＭＡコントローラ１５は、ＲＡＭ１４＃１の予め定められた領域に被検証データ１２Ａをコピーする。
【００６３】
次に、正当性検証プログラム１１Ｂは、秘密鍵１１Ｃと正当性検証用署名鍵１２Ｄを読み込み（Ｓ３０６）これらを組み合わせて暗号計算の設定等を行い（Ｓ３０８）、係る設定に従って被検証データ１２Ａに対するハッシュ値等を計算するように、暗号計算エンジン１３に指示する（Ｓ３１０）。ここで、正当性検証用署名鍵１２Ｄは、例えば３００バイト未満の小さいデータであることが好ましく、この場合、補助記憶装置１２から読み込むための時間は軽微である。
【００６４】
上記のように暗号計算エンジン１３に指示すると、ＣＰＵ１０は、並行実施プログラム１１Ｅを実行する（Ｓ３１２）。並行実施プログラムの開始トリガは、正当性検証プログラム１１Ｂに記述されていてもよいし、より上位のプログラムに記述されてもよい。また、並行実施プログラム１１ＥをＲＡＭ１４＃２に展開する処理は、ＤＭＡコントローラ１５によって行われてもよいし、ＣＰＵ１０によって行われてもよい。
【００６５】
そして、暗号計算エンジン１３によるハッシュ値等の計算が終了した旨の通知を受けると（Ｓ３１４）、暗号計算エンジン１３の計算結果と比較データ１１Ｄが一致したか否かを判定する（Ｓ３１６）。
【００６６】
暗号計算エンジン１３の計算結果と比較データ１１Ｄが一致した場合は、情報処理装置３が通常作動状態に移行する（Ｓ３１８）。この際に、ＲＡＭ１４＃１に展開された被検証データ１２Ａは、元々補助記憶装置１２に格納されたものがそっくりコピーされたものであり、更に、正当性検証において他のプログラムやデータがＲＡＭ１４＃１に書き込まれないように制御されている。この結果、被検証データ１２Ａに含まれるオペレーティングシステム１２Ｂやアプリケーションプログラム１２Ｃについては、データの再配置等を行うことなく、そのままＲＡＭ１４＃１上で実行することができる。これによって、情報処理装置３の起動時間を短縮することができる。
【００６７】
また、ＲＡＭ１４＃２に残存する正当性検証プログラムや作業領域のデータ等については、通常作動状態に移行した後は不要であるため、自由に上書きすることができる。このため、ＲＡＭ１４＃２についてもデータの再配置等の処理は不要であり、情報処理装置３の起動時間を更に短縮することができる。
【００６８】
一方、暗号計算エンジン１３の計算結果と比較データ１１Ｄが一致しなかった場合は、所定のエラー処理を実行する（Ｓ３２０）。エラー処理には、例えばリカバリプログラムリストを表示してユーザに選択させる等の処理が含まれ得るが、本発明の適用上、如何なる処理を行ってもよい。これによって、被検証データ１２Ａが改竄・破壊等された可能性がある場合には通常作動状態に移行するのを妨げ、情報処理装置３が不正な動作をするのを防止することができる。
【００６９】
［まとめ］
以上説明した本実施例の情報処理装置３によれば、第１実施例の情報処理装置１と同様の効果を奏するのに加え、暗号計算エンジン１３に計算指示を行ってから暗号計算エンジン１３が計算を終了するまでの間に、並行実施プログラム１１Ｅを実行可能であるため、更に迅速に正当性検証を行うことができる。
【００７０】
＜第４実施例＞
以下、図面を参照し、本発明の第４実施例に係る情報処理装置４について説明する。
【００７１】
［構成］
図８は、本発明の第４実施例に係る情報処理装置４のシステム構成例である。情報処理装置４における第１実施例と共通する構成要素については、第１実施例と同一の符号を付し、それぞれの機能等についての説明は省略する。
【００７２】
本実施例に係る情報処理装置４は、ＲＡＭ１４＃３を備える点で、第１実施例と相違する。
【００７３】
また、本実施例に係る情報処理装置４は、補助記憶装置１２が復号用署名鍵１２Ｅを格納している点で、第１実施例と相違する。補助記憶装置１２に格納された被検証データ１２Ａ*は、復号用署名鍵１２Ｅを用いて復号可能な態様で暗号化されている（以下、「*」が、暗号化されていることを示すものとする）。
【００７４】
ＲＡＭ１４＃３には、暗号化された被検証データ１２Ａ*がコピーされる（図８における矢印（７））。暗号化された被検証データ１２Ａ*の復号は、例えば暗号計算エンジン１３によって行われ、復号された被検証データ１２ＡがＲＡＭ１４＃１に格納される（図８における矢印（８））。
【００７５】
これによって、悪意のあるソフトウエア等による被検証データ１２Ａの改竄・破壊が困難となり、情報処理装置４のセキュリティ性を高めることができる。
【００７６】
［正当性検証の手順等］
図９は、情報処理装置４の起動時における処理の流れを示すフローチャートである。
【００７７】
情報処理装置４が起動すると、まずＢＩＯＳ１１Ａが起動する（Ｓ４００）。
【００７８】
次に、正当性検証プログラム１１Ｂが起動する（Ｓ４０２）。正当性検証プログラム１１Ｂは、例えば冒頭部分がブートデバイス１１上で実行され、残りの部分は、ＲＡＭ１４＃２に展開された上で実行される。正当性検証プログラム１１ＢをＲＡＭ１４＃２に展開する処理は、ＤＭＡコントローラ１５によって行われてもよいし、ＣＰＵ１０によって行われてもよい。
【００７９】
正当性検証プログラム１１Ｂは、被検証データ１２Ａ*をＲＡＭ１４＃３にコピーするように、ＤＭＡコントローラ１５に指示する（Ｓ４０４）。ＤＭＡコントローラ１５は、ＲＡＭ１４＃３の予め定められた領域に被検証データ１２Ａ*をコピーする。
【００８０】
続いて、正当性検証プログラム１１Ｂは、復号用署名鍵１２Ｅを用いて被検証データ１２Ａ*を復号するように、暗号計算エンジン１３に指示する（Ｓ４０５）。暗号計算エンジン１３により復号された被検証データ１２Ａは、ＲＡＭ１４＃１に格納される。
【００８１】
次に、正当性検証プログラム１１Ｂは、秘密鍵１１Ｃと正当性検証用署名鍵１２Ｄを読み込み（Ｓ４０６）これらを組み合わせて暗号計算の設定等を行い（Ｓ４０８）、係る設定に従って被検証データ１２Ａに対するハッシュ値等を計算するように、暗号計算エンジン１３に指示する（Ｓ４１０）。ここで、正当性検証用署名鍵１２Ｄは、例えば３００バイト未満の小さいデータであることが好ましく、この場合、補助記憶装置１２から読み込むための時間は軽微である。
【００８２】
正当性検証プログラム１１Ｂは、ハッシュ値等の計算を指示すると、係る計算が終了したかどうかを定期的にチェックする処理を開始する（Ｓ４１２）。
【００８３】
そして、暗号計算エンジン１３によるハッシュ値等の計算が終了すると（Ｓ４１４）、暗号計算エンジン１３の計算結果と比較データ１１Ｄが一致したか否かを判定する（Ｓ４１６）。
【００８４】
暗号計算エンジン１３の計算結果と比較データ１１Ｄが一致した場合は、情報処理装置４が通常作動状態に移行する（Ｓ４１８）。この際に、ＲＡＭ１４＃１に展開された被検証データ１２Ａは、元々補助記憶装置１２に格納されたものがそっくりコピーされた上で復号されたものであり、更に、正当性検証において他のプログラムやデータがＲＡＭ１４＃１に書き込まれないように制御されている。この結果、被検証データ１２Ａに含まれるオペレーティングシステム１２Ｂやアプリケーションプログラム１２Ｃについては、データの再配置等を行うことなく、そのままＲＡＭ１４＃１上で実行することができる。これによって、情報処理装置４の起動時間を短縮することができる。
【００８５】
また、ＲＡＭ１４＃２に残存する正当性検証プログラムや作業領域のデータ等については、通常作動状態に移行した後は不要であるため、自由に上書きすることができる。このため、ＲＡＭ１４＃２についてもデータの再配置等の処理は不要であり、情報処理装置４の起動時間を更に短縮することができる。
【００８６】
一方、暗号計算エンジン１３の計算結果と比較データ１１Ｄが一致しなかった場合は、所定のエラー処理を実行する（Ｓ４２０）。エラー処理には、例えばリカバリプログラムリストを表示してユーザに選択させる等の処理が含まれ得るが、本発明の適用上、如何なる処理を行ってもよい。これによって、被検証データ１２Ａが改竄・破壊等された可能性がある場合には通常作動状態に移行するのを妨げ、情報処理装置４が不正な動作をするのを防止することができる。
【００８７】
［まとめ］
以上説明した本実施例の情報処理装置４によれば、第１実施例の情報処理装置１と同様の効果を奏するのに加え、補助記憶装置１２に格納された被検証データ１２Ａ*が暗号化されていることにより、情報処理装置４としてのセキュリティ性を高めることができる。
【００８８】
なお、本実施例の情報処理装置４において、ＲＡＭ１４＃２とＲＡＭ１４＃３は同一のＲＡＭにおける分離された領域であっても構わない。
【００８９】
＜第５実施例＞
以下、図面を参照し、本発明の第５実施例に係る情報処理装置５について説明する。
【００９０】
［構成］
図１０は、本発明の第５実施例に係る情報処理装置５のシステム構成例である。情報処理装置５における第４実施例と共通する構成要素については、第４実施例と同一の符号を付し、それぞれの機能等についての説明は省略する。
【００９１】
本実施例に係る情報処理装置５は、ＲＡＭ１４＃４を備える点で、第４実施例と相違する。
【００９２】
また、本実施例に係る情報処理装置５は、補助記憶装置１２に格納された被検証データ１２Ａ*に加えて、正当性検証用署名鍵１２Ｄ*が、復号用署名鍵１２Ｅを用いて復号可能な態様で暗号化されている。
【００９３】
ＲＡＭ１４＃４には、暗号化された正当性検証用署名鍵１２Ｄ*がコピーされる（図８における矢印（９））。暗号化された正当性検証用署名鍵１２Ｄ*の復号は、例えば暗号計算エンジン１３によって行われ、復号された正当性検証用署名鍵１２ＤがＲＡＭ１４＃４の上記コピーされた領域とは別の領域に格納される（図８における矢印（１０））。
【００９４】
これによって、悪意のあるソフトウエア等による被検証データ１２Ａの改竄・破壊が困難となり、情報処理装置５のセキュリティ性を更に高めることができる。
【００９５】
［正当性検証の手順等］
図１１は、情報処理装置５の起動時における処理の流れを示すフローチャートである。
【００９６】
情報処理装置５が起動すると、まずＢＩＯＳ１１Ａが起動する（Ｓ５００）。
【００９７】
次に、正当性検証プログラム１１Ｂが起動する（Ｓ５０２）。正当性検証プログラム１１Ｂは、例えば冒頭部分がブートデバイス１１上で実行され、残りの部分は、ＲＡＭ１４＃２に展開された上で実行される。正当性検証プログラム１１ＢをＲＡＭ１４＃２に展開する処理は、ＤＭＡコントローラ１５によって行われてもよいし、ＣＰＵ１０によって行われてもよい。
【００９８】
正当性検証プログラム１１Ｂは、被検証データ１２Ａ*をＲＡＭ１４＃３にコピーするように、ＤＭＡコントローラ１５に指示し（Ｓ５０４＿１）、更に、正当性検証用署名鍵１２Ｄ*をＲＡＭ１４＃４にコピーするように、ＤＭＡコントローラ１５に指示する（Ｓ５０４＿２）。ＤＭＡコントローラ１５は、ＲＡＭ１４＃３の予め定められた領域に被検証データ１２Ａ*をコピーし、ＲＡＭ１４＃４の予め定められた領域に正当性検証用署名鍵１２Ｄ*をコピーする。
【００９９】
続いて、正当性検証プログラム１１Ｂは、復号用署名鍵１２Ｅを用いて被検証データ１２Ａ*及び正当性検証用署名鍵１２Ｄ*を復号するように、暗号計算エンジン１３に指示する（Ｓ５０５）。暗号計算エンジン１３により復号された被検証データ１２Ａは、ＲＡＭ１４＃１に格納され、暗号計算エンジン１３により復号された正当性検証用署名鍵１２Ｄは、ＲＡＭ１４＃２に格納される。
【０１００】
次に、正当性検証プログラム１１Ｂは、秘密鍵１１Ｃと正当性検証用署名鍵１２Ｄを読み込み（Ｓ５０６）これらを組み合わせて暗号計算の設定等を行い（Ｓ５０８）、係る設定に従って被検証データ１２Ａに対するハッシュ値等を計算するように、暗号計算エンジン１３に指示する（Ｓ５１０）。ここで、正当性検証用署名鍵１２Ｄは、例えば３００バイト未満の小さいデータであることが好ましく、この場合、補助記憶装置１２から読み込むための時間は軽微である。
【０１０１】
正当性検証プログラム１１Ｂは、ハッシュ値等の計算を指示すると、係る計算が終了したかどうかを定期的にチェックする処理を開始する（Ｓ５１２）。
【０１０２】
そして、暗号計算エンジン１３によるハッシュ値等の計算が終了すると（Ｓ５１４）、暗号計算エンジン１３の計算結果と比較データ１１Ｄが一致したか否かを判定する（Ｓ５１６）。
【０１０３】
暗号計算エンジン１３の計算結果と比較データ１１Ｄが一致した場合は、情報処理装置５が通常作動状態に移行する（Ｓ５１８）。この際に、ＲＡＭ１４＃１に展開された被検証データ１２Ａは、元々補助記憶装置１２に格納されたものがそっくりコピーされた上で復号されたものであり、更に、正当性検証において他のプログラムやデータがＲＡＭ１４＃１に書き込まれないように制御されている。この結果、被検証データ１２Ａに含まれるオペレーティングシステム１２Ｂやアプリケーションプログラム１２Ｃについては、データの再配置等を行うことなく、そのままＲＡＭ１４＃１上で実行することができる。これによって、情報処理装置５の起動時間を短縮することができる。
【０１０４】
また、ＲＡＭ１４＃２に残存する正当性検証プログラムや作業領域のデータ等については、通常作動状態に移行した後は不要であるため、自由に上書きすることができる。このため、ＲＡＭ１４＃２についてもデータの再配置等の処理は不要であり、情報処理装置５の起動時間を更に短縮することができる。
【０１０５】
一方、暗号計算エンジン１３の計算結果と比較データ１１Ｄが一致しなかった場合は、所定のエラー処理を実行する（Ｓ４２０）。エラー処理には、例えばリカバリプログラムリストを表示してユーザに選択させる等の処理が含まれ得るが、本発明の適用上、如何なる処理を行ってもよい。これによって、被検証データ１２Ａが改竄・破壊等された可能性がある場合には通常作動状態に移行するのを妨げ、情報処理装置５が不正な動作をするのを防止することができる。
【０１０６】
［まとめ］
以上説明した本実施例の情報処理装置５によれば、第１実施例の情報処理装置１と同様の効果を奏するのに加え、補助記憶装置１２に格納された被検証データ１２Ａ*や正当性検証用署名鍵１２Ｄ*が暗号化されていることにより、情報処理装置５としてのセキュリティ性を高めることができる。
【０１０７】
なお、本実施例の情報処理装置５において、ＲＡＭ１４＃２、１４＃３、１４＃４は同一のＲＡＭにおける分離された領域であっても構わない。
【０１０８】
＜変形等＞
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【０１０９】
例えば、各実施例の処理・構成は排他的なものではなく、例えば第４実施例の情報処理装置４が、第３実施例のように、暗号計算エンジン１３から割り込み通知を受ける態様であってもよい。このように、各実施例の処理・構成は、適宜組み合わせることが可能である。
【０１１０】
また、ＲＡＭ１４＃１とＲＡＭ１４＃２は、異なる入出力ポートを有する別体のＲＡＭであるものとしたが、複数の入出力ポートを有することにより、分離した領域への並行アクセスが可能なＲＡＭであっても構わない。
【０１１１】
また、第３実施例を除き、暗号計算エンジン１３を省略し、ＣＰＵ１０が暗号計算を実行する態様であってもよい。
【０１１２】
また、ＤＭＡコントローラ１５を省略し、ＣＰＵ１０がアキュムレータ等を介してデータのコピー処理を実行する態様であってもよい。
【符号の説明】
【０１１３】
１、２、３、４、５  情報処理装置
１０    ＣＰＵ
１１    ブートデバイス
１１Ａ  ＢＩＯＳ
１１Ｂ  正当性検証プログラム
１１Ｃ  秘密鍵
１１Ｄ  比較データ
１１Ｅ  並行実施プログラム
１２    補助記憶装置
１２Ａ  被検証データ
１２Ｂ  オペレーティングシステム
１２Ｃ  アプリケーションプログラム
１２Ｄ  正当性検証用署名鍵
１２Ｅ  復号用署名鍵
１３    暗号計算エンジン
１４＃１、１４＃２、１４＃３、１４＃４  ＲＡＭ
１５    ＤＭＡコントローラ
１６    バス
１７    ＳｏＣ
【先行技術文献】
【特許文献】
【０１１４】
【特許文献１】特開２００９−１２９０６１号公報
【図１】
0005776480.tif 000002
【図２】
0005776480.tif 000003
【図３】
0005776480.tif 000004
【図４】
0005776480.tif 000005
【図５】
0005776480.tif 000006
【図６】
0005776480.tif 000007
【図７】
0005776480.tif 000008
【図８】
0005776480.tif 000009
【図９】
0005776480.tif 000010
【図１０】
0005776480.tif 000011
【図１１】
0005776480.tif 000012