(57)【特許請求の範囲】
【請求項１】
正当性検証のためのプログラムが格納された不揮発性記憶部と、
アドレスが固定値として認識可能な複数の領域に、優先順位が規定された複数の被検証データが格納された補助記憶装置と、
前記複数の被検証データに対して前記正当性検証のためのプログラムを実行する実行手段であって、前記複数の被検証データのうち一の被検証データが正当であると判定されるまで、前記優先順位に従って前記正当性検証を順番に実行する実行手段と、を有し、
前記実行手段は、前記複数の被検証データのうち前記優先順位が最上位の被検証データについては揮発性記憶部にコピーした後に前記正当性検証を実行し、前記複数の被検証データのうち前記優先順位が最上位でない被検証データについては前記補助記憶装置上で前記正当性検証を実行する手段である情報処理装置。
【請求項２】
正当性検証のためのプログラムが格納された不揮発性記憶部と、
アドレスが固定値として認識可能な複数の領域に、優先順位が規定された複数の被検証データが格納された補助記憶装置と、
前記複数の被検証データに対して前記正当性検証のためのプログラムを実行する実行手段であって、前記複数の被検証データのうち一の被検証データが正当であると判定されるまで、前記優先順位に従って前記正当性検証を順番に実行する実行手段と、を有し、
前記補助記憶装置に格納された被検証データは、それぞれオペレーティングシステムを含むルート部分と、アプリケーションプログラムを含む付加部分に分かれており、ある被検証データのルート部分が正当であるという検証結果が得られると、該ルート部分を起動する処理を行った後に、同じ前記優先順位の被検証データの付加部分の前記正当性検証に係る処理が実行される情報処理装置。
【請求項３】
請求項１又は２に記載の情報処理装置であって、
前記複数の被検証データのうち、前記優先順位が最上位でない一以上の被検証データは、前記優先順位がより上位の被検証データのリカバリプログラムを含む情報処理装置。
【請求項４】
請求項１〜３のいずれか１項に記載の情報処理装置であって、
前記不揮発性記憶部及び前記実行手段は、ＳｏＣ（System-on-a-Chip）又はＡＳＩＣ（Application Specific  Integrated  Circuit）として構成される情報処理装置。
【請求項５】
請求項１ないし４のいずれか１項に記載の情報処理装置であって、
前記複数の被検証データは、前記補助記憶装置の物理アドレスに関して、前記優先順位に従って並べられている情報処理装置。
【請求項６】
請求項２に記載の情報処理装置であって、
前記実行手段は、前記複数の被検証データを揮発性記憶部にコピーした後に前記正当性検証を実行する手段である情報処理装置。
【請求項７】
請求項２に記載の情報処理装置であって、
前記被検証データのルート部分は、同じ前記優先順位の被検証データの付加部分が格納されたアドレスを認識可能であり、該付加部分に対する前記正当性検証の少なくとも一部を実行するためのプログラムを含む情報処理装置。
【請求項８】
請求項２又は７に記載の情報処理装置であって、
ある被検証データの付加部分について正当でないという検証結果が得られた場合、前記優先順位が一つ下位の被検証データのルート部分の前記正当性検証が実行される情報処理装置。
【請求項９】
請求項２又は７に記載の情報処理装置であって、
ある被検証データの付加部分について正当でないという検証結果が得られた場合、前記優先順位が一つ下位の被検証データの付加部分の前記正当性検証が実行される情報処理装置。
【請求項１０】
請求項１に記載の情報処理装置であって、
前記複数の被検証データのうち、前記優先順位が最上位でない一以上の被検証データは、前記優先順位がより上位の被検証データのリカバリプログラムの少なくとも一部を外部機器から読み込むための制御を行うプログラムを含む情報処理装置。
【請求項１１】
請求項１０に記載の情報処理装置であって、
前記優先順位がより上位の被検証データのリカバリプログラムの少なくとも一部を外部機器から読み込むための制御を行うプログラムは、前記揮発性記憶部に展開されて実行される情報処理装置。
【請求項１２】
補助記憶装置におけるアドレスが固定値として認識可能な複数の領域に、優先順位が規定された複数の被検証データが格納された情報処理装置における被検証データの正当性検証方法であって、
該情報処理装置の実行手段が、
前記複数の被検証データから前記優先順位に従って一の被検証データを選択する処理と、
前記選択された被検証データに対して正当性検証を実行する処理と、
を前記複数の被検証データのうち一の被検証データが正当であると判定されるまで繰り返し実行し、
前記実行手段は、前記複数の被検証データのうち前記優先順位が最上位の被検証データについては揮発性記憶部にコピーした後に前記正当性検証を実行し、前記複数の被検証データのうち前記優先順位が最上位でない被検証データについては前記補助記憶装置上で前記正当性検証を実行する正当性検証方法。
【請求項１３】
補助記憶装置におけるアドレスが固定値として認識可能な複数の領域に、優先順位が規定された複数の被検証データが格納された情報処理装置における被検証データの正当性検証プログラムであって、
該情報処理装置に、
前記複数の被検証データから前記優先順位に従って一の被検証データを選択する処理と、
前記選択された被検証データに対して正当性検証を実行する処理と、
を前記複数の被検証データのうち一の被検証データが正当であると判定されるまで繰り返し実行させる実行処理を、実行させ、
前記実行処理では、前記複数の被検証データのうち前記優先順位が最上位の被検証データについては揮発性記憶部にコピーした後に前記正当性検証を実行し、前記複数の被検証データのうち前記優先順位が最上位でない被検証データについては前記補助記憶装置上で前記正当性検証を実行する正当性検証プログラム。
【請求項１４】
補助記憶装置におけるアドレスが固定値として認識可能な複数の領域に、優先順位が規定された複数の被検証データが格納された情報処理装置における被検証データの正当性検証プログラムであって、
該情報処理装置に、
前記複数の被検証データから前記優先順位に従って一の被検証データを選択する処理と、
前記選択された被検証データに対して正当性検証を実行する処理と、
を前記複数の被検証データのうち一の被検証データが正当であると判定されるまで繰り返し実行させる実行処理と、を実行させ、
前記補助記憶装置に格納された被検証データは、それぞれオペレーティングシステムを含むルート部分と、アプリケーションプログラムを含む付加部分に分かれており、
前記実行処理では、ある被検証データのルート部分が正当であるという検証結果が得られると、該ルート部分を起動する処理を行った後に、同じ前記優先順位の被検証データの付加部分の正当性検証に係る処理を実行する正当性検証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、起動時等にセキュリティ性を維持するための正当性検証を行う情報処理装置及びその正当性検証方法、並びに正当性検証プログラムに関する。
【背景技術】
【０００２】
従来、パーソナルコンピュータ、電子機器や電動機器に組み込まれた組込コンピュータ、サーバ装置、その他の情報処理装置において、補助記憶装置に格納されたプログラム等のデータが改竄・破壊等されていないかどうかを検証する処理が行われている。係る処理は、正当性検証と称され、情報処理装置の起動時等に実行される。
【０００３】
図１は、従来のパーソナルコンピュータの部分構成例である。図示するように、従来のパーソナルコンピュータは、ＣＰＵ（Central  Processing  Unit）、ブートデバイス、補助記憶装置、ＴＰＭ（Trusted  Platform  Module）、暗号計算エンジン、ＲＡＭ（Random  Access  Memory）等が、バスによって接続された構成となっている。
【０００４】
ブートデバイスは、例えばフラッシュＲＯＭ（Read  Only  Memory）であり、ＢＩＯＳ（Basic  Input/Output  System）や正当性検証用のプログラム等、起動時に実行されるプログラムが格納される。補助記憶装置は、例えばＨＤＤ（Hard  Disk  Drive）、フラッシュメモリ、ＥＥＰＲＯＭ（Electrically  Erasable  and  Programmable  Read  Only  Memory）等であり、オペレーティングシステムや各種アプリケーションプログラム、データベース等が格納される。ＴＰＭは、保持するデータの改竄等に対する耐性を有するセキュリティチップであり、暗号計算に用いられる鍵データ、正当性検証のための比較データ等を保持又は生成することができる。ＴＰＭが保持・生成する鍵データは、手順を踏むことによって書き換えることができる。暗号計算エンジンは、ＲＳＡ暗号演算やハッシュ演算等の暗号計算を行う演算器ユニットである。ＴＰＭは、暗号計算エンジンの機能を兼ねることができる。
【０００５】
図１に例示する従来のパーソナルコンピュータにおける正当性検証は、例えば、補助記憶装置に格納された被検証データ（プログラムやデータ）をＲＡＭにコピーし、これに対して暗号計算エンジンが鍵データを用いて暗号計算を行い、計算結果が比較データと一致している場合に、被検証データが正常（正当）であると判断する手順で行われる。そして、被検証データが正常であると判断されるとオペレーティングシステムが起動して通常作動状態に移行する。
【０００６】
図１に例示する従来のパーソナルコンピュータにおいては、ブートデバイスやＴＰＭが書き換え可能なデバイスであるため、正当性検証のためのプログラムに発生した問題についてはプログラムの書き換えで対応することができ、正当性検証に係る処理と他の処理を比較的自由に記述することができる等の利点が存在する。
【０００７】
また、上記のような正当性検証技術に関連し、種々の文献が開示されている。例えば特許文献１には、起動対象のプログラム等のハッシュ値を算出し、予め記憶しておいたハッシュ値と比較して正当性検証を行う情報処理装置について記載されている。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
反面、図１に例示する従来のパーソナルコンピュータにおいては、ブートデバイスやＴＰＭとして書き換え可能なデバイスを用いることにより、コストやサイズの低減を実現することが困難であるという課題が生じる。特に、ＳｏＣ（System-on-a-Chip）やＡＳＩＣ（Application  Specific  Integrated  Circuit）に代表される集積技術では、フラッシュＲＯＭやＴＰＭ等の書き換え可能なデバイスは搭載されないのが通常である。
【０００９】
これに対し、単純に、上記書き換え可能なデバイスをマスクＲＯＭ等の書き換え不能なデバイスで置換しようとすると、正当でないという検証結果を得た場合の対応が煩雑となり、利便性に欠けるものとなる場合がある。
【００１０】
本発明はこのような課題を解決するためのものであり、利便性を維持しつつ、コストやサイズを低減可能な情報処理装置等を提供することを、主たる目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するための本発明の一態様は、正当性検証のためのプログラムが格納された不揮発性記憶部と、前記実行手段によりアドレスが固定値として認識可能な複数の領域に、優先順位が規定された複数の被検証データが格納された補助記憶装置と、前記複数の被検証データに対して前記正当性検証のためのプログラムを実行する実行手段であって、前記複数の被検証データのうち一の被検証データが正当であると判定されるまで、前記優先順位に従って前記正当性検証を順番に実行する実行手段と、を有し、前記実行手段は、前記複数の被検証データのうち前記優先順位が最上位の被検証データについては揮発性記憶部にコピーした後に前記正当性検証を実行し、前記複数の被検証データのうち前記優先順位が最上位でない被検証データについては前記補助記憶装置上で前記正当性検証を実行する手段である情報処理装置である。
【発明の効果】
【００１２】
本発明によれば、利便性を維持しつつ、コストやサイズを低減可能な情報処理装置等を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】従来のパーソナルコンピュータの部分構成例である。
【図２】本発明の第１実施例に係る情報処理装置１のシステム構成例である。
【図３】情報処理装置１の起動時における処理の流れを示すフローチャートである。
【図４】情報処理装置２の起動時における処理の流れを示すフローチャートである。
【図５】情報処理装置３の起動時における処理の流れを示すフローチャートである。
【図６】本発明の第４実施例に係る情報処理装置４のシステム構成例である。
【図７】情報処理装置４の起動時における処理の流れを示すフローチャートである。
【図８】第４実施例における処理のバリエーションを例示した図である。
【図９】本発明の第５実施例に係る情報処理装置５のシステム構成例である。
【図１０】正当性検証の結果、被検証データ＃２が正当であるという結果を得て、プログラムが実行されている状態を示す図である。
【図１１】被検証データ＃２に含まれるプログラムがＲＡＭ１４に展開されて実行される様子を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。
【実施例】
【００１５】
＜第１実施例＞
以下、図面を参照し、本発明の第１実施例に係る情報処理装置１について説明する。
【００１６】
［構成］
図２は、本発明の第１実施例に係る情報処理装置１のシステム構成例である。情報処理装置１は、主要な構成として、ＣＰＵ１０と、ブートデバイス１１と、補助記憶装置１２と、暗号計算エンジン１３と、ＲＡＭ１４と、がバス１６によって接続された構成となっている。
【００１７】
これらの構成要素のうち、ＣＰＵ１０、ブートデバイス１１、暗号計算エンジン１３、ＲＡＭ１４は、ＳｏＣ（System-on-a-Chip）１７として構成されると好適である。これによって、全体のチップ面積並びに情報処理装置１のサイズを小さくすることが可能となる。特に、情報処理装置１が電子機器や電動機器に組み込まれた組込コンピュータである場合に、サイズダウンの要求は高いものであり、係る効果は顕著なものとなる。なお、ＳｏＣに代えてＡＳＩＣ（Application  Specific  Integrated  Circuit）が採用されてもよい。
【００１８】
なお、この他、一般的な情報処理装置が備える構成、例えば表示装置やスピーカ、マウス、キーボード、タッチパッド、ネットワーク接続のためのインターフェース等を備えてもよい（後述する第２実施例以下も同様である）。
【００１９】
ＣＰＵ１０は、プログラムカウンタや命令デコーダ、各種演算器、ＬＳＵ（Load  Store  Unit）、汎用レジスタ等を有するプロセッサである。
【００２０】
ブートデバイス１１は、例えばマスクＲＯＭであり、ＢＩＯＳ１１Ａ、正当性検証プログラム１１Ｂ、秘密鍵１１Ｃ、比較データ１１Ｄ、アドレステーブル１１Ｅ等が格納されている。これらのプログラムやデータは、ブートデバイス１１が書き換え不能な記憶装置であるために、被検証データから除外している。秘密鍵１１Ｃや比較データ１１Ｄ、アドレステーブル１１Ｅの格納箇所は、ブートデバイス１１と別体のＲＯＭ等であってもよい。
【００２１】
補助記憶装置１２は、例えばＨＤＤ、フラッシュメモリ、ＥＥＰＲＯＭ等の読み書き可能な不揮発性記憶装置である。補助記憶装置１２には、被検証データ＃０、＃１、…、＃Ｎが格納されている。ここで、＃以降の数字は、正当性検証が行われる優先順位を示している。Ｎは１以上の任意の整数である。被検証データ＃０、＃１、…、＃Ｎは、例えば補助記憶装置１２の物理アドレスに関して、優先順位に従って並べられている。具体的には、被検証データ＃０の開始アドレスが００１０００００、被検証データ＃１の開始アドレスが００２０００００、被検証データ＃２の開始アドレスが００２０００００…のように順に並べられる。これによって、ＣＰＵ１０による読み込み処理等が容易となり、情報処理装置１の起動時間を短縮することができる。
【００２２】
優先順位が最上位の被検証データ＃０は、例えばオペレーティングシステムやアプリケーションプログラム、データベース等を含み、被検証データ＃０よりも下位の被検証データ＃１は、例えば被検証データ＃０のリカバリプログラムを含む。更に下位の被検証データ＃２、＃３、…については、被検証データ＃１のリカバリプログラムを含んでもよいし、他の内容を含んでもよい。なお、被検証データの内容は上記に限らず、各被検証データが同じ内容のプログラムやデータであっても構わない。
【００２３】
各被検証データの開始アドレス及び終了アドレスは、アドレステーブル１１Ｅに格納されており、ＣＰＵ１０が（正当性検証プログラム１１Ｂが）固定値として認識可能となっている。なお、これに限らず、各被検証データの開始アドレス及び終了アドレスは、正当性検証プログラム１１Ｂのコードに直接記述されてもよい。
【００２４】
暗号計算エンジン１３は、ＲＳＡ暗号演算やハッシュ演算等の暗号計算を行うための演算器ユニットである。暗号計算エンジン１３による暗号計算は、秘密鍵１１Ｃ及び図示しない正当性検証用署名鍵を用いて行われる。
【００２５】
ＲＡＭ１４は、正当性検証を行う際の作業領域等として用いられる他、情報処理装置１が通常作動状態に移行した後の主記憶装置として用いられる。
【００２６】
［正当性検証の手順等］
本実施例に係る情報処理装置１は、起動時（電源投入時、再起動時）等において、被検証データ１２＃０〜１２＃Ｎが改竄・破壊等されていないかどうかを検証するための正当性検証を行う。正当性検証を行うタイミングについては特段の制約はなく、任意に定めてよい。以下、その手順等について説明する。
【００２７】
図３は、情報処理装置１の起動時における処理の流れを示すフローチャートである。
【００２８】
情報処理装置１が起動すると、まずＢＩＯＳ１１Ａが起動する（Ｓ１００）。
【００２９】
次に、正当性検証プログラム１１Ｂが起動する（Ｓ１０２）。正当性検証プログラム１１Ｂは、秘密鍵１１Ｃと正当性検証用署名鍵を読み込み（Ｓ１０４）これらを組み合わせて暗号計算の設定等を行う（Ｓ１０６）。
【００３０】
次に、正当性検証プログラム１１Ｂは、被検証データ＃ｋを指定し（Ｓ１０８）、被検証データ＃ｋに対するハッシュ値等を計算するように、暗号計算エンジン１３に指示する（Ｓ１１０）。ｋは、本フローのループ処理回数に応じて０からＮまで増加するパラメータであり、初期値は０に設定される。暗号計算エンジン１３は、正当性検証プログラム１１Ｂの指示に従い、指定された被検証データ＃ｋに対する暗号計算を行う。
【００３１】
正当性検証プログラム１１Ｂは、暗号計算エンジン１３によるハッシュ値等の計算が終了すると（Ｓ１１２）、暗号計算エンジン１３の計算結果と比較データ１１Ｄが一致したか否かを判定する（Ｓ１１４）。
【００３２】
暗号計算エンジン１３の計算結果と比較データ１１Ｄが一致した場合は、被検証データ＃ｋに含まれるプログラムを実行する（Ｓ１１６）。
【００３３】
一方、暗号計算エンジン１３の計算結果と比較データ１１Ｄが一致しなかった場合は、パラメータｋがＮ以上であるか否かを判定し（Ｓ１１８）。パラメータｋがＮ未満であれば、パラメータｋを１増加させ（Ｓ１２０）、Ｓ１０８に戻る。
【００３４】
Ｓ１１６においては、Ｓ１０８において指定された被検証データ＃ｋが被検証データ＃０であれば、被検証データ＃０に含まれるオペレーティングシステムやアプリケーションプログラムが起動し、情報処理装置１が通常作動状態に移行する。
【００３５】
また、被検証データ＃ｋが被検証データ＃１以下であれば、例えば被検証データ＃０のリカバリ等が実行され、その後、被検証データ＃０に含まれるオペレーティングシステムやアプリケーションプログラムが起動し、情報処理装置１が通常作動状態に移行する。
【００３６】
また、前述のように、下位の被検証データ（＃１、＃２、…）が被検証データ＃０と同じ内容のプログラムやデータを含む場合、被検証データ＃ｋが正当でなければ被検証データ＃ｋ＋１を検証するという流れで正当な被検証データが発見されるまで繰り返し処理が行われる。
【００３７】
また、下位の被検証データ（＃１、＃２、…）が、被検証データ＃０と同じ内容のプログラムやデータ及び被検証データ＃０のリカバリプログラムを含む場合、正当な被検証でデータが発見されると、オペレーティングシステムやアプリケーションプログラムが起動すると共にバックグラウンドで被検証データ＃０のリカバリが実行される。
【００３８】
すなわち、いずれかの被検証データが正当であれば、情報処理装置１が通常作動状態に移行することになる。
【００３９】
従って、いずれの場合も、自動的に情報処理装置１を通常作動状態に移行させることができるため、情報処理装置１の利便性を高めることができる。また、被検証データは、読み書き可能な補助記憶装置１２に格納されるため、バージョンアップ等に伴う被検証データの改変に容易に対応することができ、情報処理装置１の利便性を高めることができる。
【００４０】
Ｓ１１８においてパラメータｋがＮ以上であると判定された場合は、エラー表示等を行って（Ｓ１２２）本フローを終了する。
【００４１】
［まとめ］
以上説明した本実施例の情報処理装置１によれば、上記説明したように、いずれかの被検証データが改竄・破壊等されたことにより、当該被検証データが正当でないと判定されても、より下位の被検証データが正当であれば自動的に情報処理装置１を通常作動状態に移行させることができるため、情報処理装置１の利便性を高めることができる。
【００４２】
また、補助記憶装置１２以外のＣＰＵ１０、ブートデバイス１１、暗号計算エンジン１３、ＲＡＭ１４は、フラッシュメモリやＴＰＭ等の書き換え可能なデバイスを含んでいないため、ＳｏＣやＡＩＣＳとして構成されることが容易である。このため、コストやサイズの低減を図ることができる。
【００４３】
これらより、本実施例の情報処理装置１によれば、利便性を維持しつつ、コストやサイズを低減することができる。
【００４４】
＜第２実施例＞
以下、図面を参照し、本発明の第２実施例に係る情報処理装置２について説明する。
【００４５】
［構成］
本発明の第２実施例に係る情報処理装置２は、各構成要素の基本機能に関して第１実施例と共通するため、各構成について同一の符号を付し、全体の図示及び各構成要素の基本機能についての説明は省略する。
【００４６】
本実施例に係る情報処理装置２（特に正当性検証プログラム１１Ｂ）は、各被検証データについての暗号計算を行う際に、補助記憶装置１２からＲＡＭ１４にデータをコピーした上で暗号計算を行う。
【００４７】
これによって、高速アクセス可能なＲＡＭ１４に格納された被検証データに対して暗号計算を行うことになり、正当性検証を迅速に行うことができる。
【００４８】
［正当性検証の手順等］
図４は、情報処理装置２の起動時における処理の流れを示すフローチャートである。
【００４９】
情報処理装置２が起動すると、まずＢＩＯＳ１１Ａが起動する（Ｓ２００）。
【００５０】
次に、正当性検証プログラム１１Ｂが起動する（Ｓ２０２）。正当性検証プログラム１１Ｂは、秘密鍵１１Ｃと正当性検証用署名鍵を読み込み（Ｓ２０４）これらを組み合わせて暗号計算の設定等を行う（Ｓ２０６）。
【００５１】
次に、正当性検証プログラム１１Ｂは、被検証データ＃ｋをＲＡＭ１４にコピーする（Ｓ２０８）。ｋは、本フローのループ処理回数に応じて０からＮまで増加するパラメータであり、初期値は０に設定される。なお、係るコピー処理は、ＤＭＡコントローラに指示して行ってもよい。
【００５２】
次に、正当性検証プログラム１１Ｂは、ＲＡＭ１４に格納された被検証データ＃ｋに対するハッシュ値等を計算するように、暗号計算エンジン１３に指示する（Ｓ２１０）。暗号計算エンジン１３は、正当性検証プログラム１１Ｂの指示に従い、指定された被検証データに対する暗号計算を行う。
【００５３】
ＲＡＭ１４は、通常、補助記憶装置１２に比して高速にアクセスすることができる。従って、上記のような処理を行うことによって、迅速に正当性検証を行うことができる。
【００５４】
正当性検証プログラム１１Ｂは、暗号計算エンジン１３によるハッシュ値等の計算が終了すると（Ｓ２１２）、暗号計算エンジン１３の計算結果と比較データ１１Ｄが一致したか否かを判定する（Ｓ２１４）。
【００５５】
暗号計算エンジン１３の計算結果と比較データ１１Ｄが一致した場合は、Ｓ２０８においてＲＡＭ１４にコピーされた被検証データ＃ｋに含まれるプログラムを実行する（Ｓ２１６）。
【００５６】
一方、暗号計算エンジン１３の計算結果と比較データ１１Ｄが一致しなかった場合は、パラメータｋがＮ以上であるか否かを判定し（Ｓ２１８）。パラメータｋがＮ未満であれば、パラメータｋを１増加させ（Ｓ２２０）、Ｓ２０８に戻る。
【００５７】
ここで、Ｓ２０８においてＲＡＭ１４にコピーされた被検証データ＃ｋが被検証データ＃０であれば、被検証データ＃０に含まれるオペレーティングシステムやアプリケーションプログラムが起動し、情報処理装置２が通常作動状態に移行する。
【００５８】
また、Ｓ２０８においてＲＡＭ１４にコピーされた被検証データ＃ｋが被検証データ＃１以下であれば、例えば被検証データ＃０のリカバリ等が実行され、その後、被検証データ＃０に含まれるオペレーティングシステムやアプリケーションプログラムが起動し、情報処理装置２が通常作動状態に移行する。
【００５９】
また、前述のように、下位の被検証データ（＃１、＃２、…）が被検証データ＃０と同じ内容のプログラムやデータを含む場合、被検証データ＃ｋが正当でなければ被検証データ＃ｋ＋１を検証するという流れで正当な被検証データが発見されるまで繰り返し処理が行われる。
【００６０】
また、下位の被検証データ（＃１、＃２、…）が、被検証データ＃０と同じ内容のプログラムやデータ及び被検証データ＃０のリカバリプログラムを含む場合、正当な被検証でデータが発見されると、オペレーティングシステムやアプリケーションプログラムが起動すると共にバックグラウンドで被検証データ＃０のリカバリが実行される。
【００６１】
すなわち、いずれかの被検証データが正当であれば、情報処理装置２が通常作動状態に移行することになる。
【００６２】
従って、いずれの場合も、自動的に情報処理装置２を通常作動状態に移行させることができるため、情報処理装置２の利便性を高めることができる。また、被検証データは、読み書き可能な補助記憶装置１２に格納されるため、バージョンアップ等に伴う被検証データの改変に容易に対応することができ、情報処理装置２の利便性を高めることができる。
【００６３】
Ｓ２１６においてパラメータｋがＮ以上であると判定された場合は、エラー表示等を行って（Ｓ２２２）本フローを終了する。
【００６４】
［まとめ］
以上説明した本実施例の情報処理装置２によれば、第１実施例の情報処理装置１と同様の効果を奏するのに加え、被検証データをＲＡＭ１４にコピーした上で、ＲＡＭ１４に格納された被検証データに対して暗号計算を行うため、より迅速に正当性検証を行うことができる。
【００６５】
＜第３実施例＞
以下、図面を参照し、本発明の第３実施例に係る情報処理装置３について説明する。
【００６６】
［構成］
本発明の第３実施例に係る情報処理装置３は、各構成要素の基本機能に関して第１実施例と共通するため、各構成について同一の符号を付し、全体の図示及び各構成要素の基本機能についての説明は省略する。
【００６７】
本実施例に係る情報処理装置３（特に正当性検証プログラム１１Ｂ）は、被検証データ＃０についての暗号計算を行う際には、補助記憶装置１２からＲＡＭ１４にデータをコピーした上で暗号計算を行い、被検証データ＃１以下についての暗号計算を行う際には、補助記憶装置１２に格納されたデータに対して直接暗号計算を行う。
【００６８】
これによって、被検証データ＃０については、高速アクセス可能なＲＡＭ１４に格納されたデータに対して暗号計算を行うことになり、迅速に処理を行うことができる。
【００６９】
また、被検証データ＃１以下については、ＲＡＭ１４の記憶容量を懸念することなく、自由にプログラム等の設計を行うことができる。前述のように、被検証データ＃１以下には、被検証データ＃０のリカバリプログラム等が格納されることが想定されるが、リカバリプログラム等は、対象プログラム自体よりもデータサイズが大きいものとなる可能性がある。従って、上記のような処理を行うことにより、プログラム設計のフレキシビリティを高めることができる。
【００７０】
［正当性検証の手順等］
図５は、情報処理装置３の起動時における処理の流れを示すフローチャートである。
【００７１】
情報処理装置３が起動すると、まずＢＩＯＳ１１Ａが起動する（Ｓ３００）。
【００７２】
次に、正当性検証プログラム１１Ｂが起動する（Ｓ３０２）。正当性検証プログラム１１Ｂは、秘密鍵１１Ｃと正当性検証用署名鍵を読み込み（Ｓ３０４）これらを組み合わせて暗号計算の設定等を行う（Ｓ３０６）。
【００７３】
次に、正当性検証プログラム１１Ｂは、パラメータｋが０であるか否かを判定する（Ｓ３０８＿１）。ｋは、本フローのループ処理回数に応じて０からＮまで増加するパラメータであり、初期値は０に設定される。
【００７４】
パラメータｋが０である場合は、被検証データ＃ｋ（＝＃０）をＲＡＭ１４にコピーし（Ｓ３０８＿２）、ＲＡＭ１４に格納された被検証データ＃０に対するハッシュ値等を計算するように、暗号計算エンジン１３に指示する（Ｓ３０８＿３）。暗号計算エンジン１３は、正当性検証プログラム１１Ｂの指示に従い、指定された被検証データに対する暗号計算を行う。なお、Ｓ３０８＿２におけるコピー処理は、ＤＭＡコントローラに指示して行ってもよい。
【００７５】
一方、パラメータｋが０でない場合は、被検証データ＃ｋを指定し（Ｓ３０８＿４）、被検証データ＃ｋに対するハッシュ値等を計算するように、暗号計算エンジン１３に指示する（Ｓ３０８＿５）。暗号計算エンジン１３は、正当性検証プログラム１１Ｂの指示に従い、指定された被検証データ＃ｋに対する暗号計算を行う。
【００７６】
上記のように、ＲＡＭ１４は、通常、補助記憶装置１２に比して高速にアクセスすることができる。従って、被検証データ＃０については迅速に正当性検証を行うことができる。また、被検証データ＃１以下については補助記憶装置１２に格納されたデータに対して直接暗号計算を行うため、プログラム設計のフレキシビリティを高めることができる。
【００７７】
正当性検証プログラム１１Ｂは、暗号計算エンジン１３によるハッシュ値等の計算が終了すると（Ｓ３１０）、暗号計算エンジン１３の計算結果と比較データ１１Ｄが一致したか否かを判定する（Ｓ３１２）。
【００７８】
暗号計算エンジン１３の計算結果と比較データ１１Ｄが一致した場合は、被検証データ＃ｋに含まれるプログラムを実行する（Ｓ３１４）。
【００７９】
一方、暗号計算エンジン１３の計算結果と比較データ１１Ｄが一致しなかった場合は、パラメータｋがＮ以上であるか否かを判定し（Ｓ３１６）。パラメータｋがＮ未満であれば、パラメータｋを１増加させ（Ｓ３１８）、Ｓ３０８に戻る。
【００８０】
Ｓ３１４においては、被検証データ＃ｋが被検証データ＃０であれば、被検証データ＃０に含まれるオペレーティングシステムやアプリケーションプログラムが起動し、情報処理装置３が通常作動状態に移行する。
【００８１】
また、Ｓ３１４において実行される被検証データ＃ｋが被検証データ＃１以下であれば、例えば被検証データ＃０のリカバリ等が実行され、その後、被検証データ＃０に含まれるオペレーティングシステムやアプリケーションプログラムが起動し、情報処理装置３が通常作動状態に移行する。
【００８２】
また、前述のように、下位の被検証データ（＃１、＃２、…）が被検証データ＃０と同じ内容のプログラムやデータを含む場合、被検証データ＃ｋが正当でなければ被検証データ＃ｋ＋１を検証するという流れで正当な被検証データが発見されるまで繰り返し処理が行われる。
【００８３】
また、下位の被検証データ（＃１、＃２、…）が、被検証データ＃０と同じ内容のプログラムやデータ及び被検証データ＃０のリカバリプログラムを含む場合、正当な被検証でデータが発見されると、オペレーティングシステムやアプリケーションプログラムが起動すると共にバックグラウンドで被検証データ＃０のリカバリが実行される。
【００８４】
すなわち、いずれかの被検証データが正当であれば、情報処理装置３が通常作動状態に移行することになる。
【００８５】
従って、いずれの場合も、自動的に情報処理装置３を通常作動状態に移行させることができるため、情報処理装置３の利便性を高めることができる。また、被検証データは、読み書き可能な補助記憶装置１２に格納されるため、バージョンアップ等に伴う被検証データの改変に容易に対応することができ、情報処理装置３の利便性を高めることができる。
【００８６】
Ｓ３１６においてパラメータｋがＮ以上であると判定された場合は、エラー表示等を行って（Ｓ３２０）本フローを終了する。
【００８７】
［まとめ］
以上説明した本実施例の情報処理装置３によれば、第１実施例の情報処理装置１と同様の効果を奏するのに加え、被検証データ＃０については、より迅速に正当性検証を行うことができ、被検証データ＃１以下については、プログラム設計のフレキシビリティを高めることができる。
【００８８】
＜第４実施例＞
以下、図面を参照し、本発明の第４実施例に係る情報処理装置４について説明する。
【００８９】
［構成］
図６は、本発明の第４実施例に係る情報処理装置４のシステム構成例である。以下、第１実施例との共通部分については同一の符号を付し、詳細な説明を省略する。
【００９０】
本実施例の補助記憶装置１２には、被検証データ（ルート部分）＃０、＃１、…、＃Ｎと、被検証データ（付加部分）＃０*、＃１*、…、＃Ｎ*が格納されている。
【００９１】
ルート部分と付加部分の関係は、例えば以下の通りである。ルート部分にはオペレーティングシステムや基本的なアプリケーションプログラム等が、付加部分にはその他のアプリケーションプログラム等が含まれる。
【００９２】
従って、本実施例の情報処理装置４は、ルート部分について正当性検証を行い、正当であるという判定結果を得るとルート部分のプログラムを実行し、付加部分の正当性検証についてはバックグラウンドで実行するという制御を行うことができる。これによって、オペレーティングシステム等の基本ソフトウエアが含まれるルート部分についての正当性検証が速やかに終了するため、ユーザから見た情報処理装置４の起動時間を短縮することができる。
【００９３】
また、被検証データ（付加部分）＃０*、＃１*、…、＃Ｎ*の開始アドレス及び終了アドレスは、アドレステーブル１１Ｅに格納されるのではなく、ルート部分のプログラム又はデータに格納されていると好適である。すなわち、被検証データ（付加部分）＃０*の開始アドレス及び終了アドレスは被検証データ（ルート部分）＃０に、被検証データ（付加部分）＃１*の開始アドレス及び終了アドレスは被検証データ（ルート部分）＃１に、被検証データ（付加部分）＃Ｎ*の開始アドレス及び終了アドレスは被検証データ（ルート部分）＃Ｎに、それぞれ格納される。
【００９４】
これによって、仮に被検証データ（付加部分）＃０*、＃１*、…、＃Ｎ*においてアドレス変更を伴うような修正が加えられた場合、ルート部分に格納されたデータにのみ修正を加えればよく、正当性検証プログラム１１Ｂはアドレステーブル１１Ｅ等によりルート部分の開始アドレス及び終了アドレスを認識できれば十分である。この結果、被検証データ（付加部分）＃０*、＃１*、…、＃Ｎ*については、比較的自由にバージョンアップ等のソフトウエア修正を行うことが可能となる。
【００９５】
なお、第１〜第３実施例と同様に、下位の被検証データ（ルート部分）＃１、＃２、…は、より上位の被検証データ（ルート部分）のリカバリプログラム等を含み、下位の被検証データ（付加部分）＃１、＃２、…は、より上位の被検証データ（付加部分）のリカバリプログラム等を含むものとすると、好適である。以下、これを前提とする。
【００９６】
［正当性検証の手順等］
図７は、情報処理装置４の起動時における処理の流れを示すフローチャートである。
【００９７】
情報処理装置４が起動すると、まずＢＩＯＳ１１Ａが起動する（Ｓ４００）。
【００９８】
次に、正当性検証プログラム１１Ｂが起動する（Ｓ４０２）。正当性検証プログラム１１Ｂは、秘密鍵１１Ｃと正当性検証用署名鍵を読み込み（Ｓ４０４）これらを組み合わせて暗号計算の設定等を行う（Ｓ４０６）。
【００９９】
次に、正当性検証プログラム１１Ｂは、被検証データ（ルート部分）＃ｋを指定し（Ｓ４０８）、被検証データ＃ｋに対するハッシュ値等を計算するように、暗号計算エンジン１３に指示する（Ｓ４１０）。ｋは、本フローのループ処理回数に応じて０からＮまで増加するパラメータであり、初期値は０に設定される。
【０１００】
正当性検証プログラム１１Ｂは、暗号計算エンジン１３によるハッシュ値等の計算が終了すると（Ｓ４１２）、暗号計算エンジン１３の計算結果と比較データ１１Ｄが一致したか否かを判定する（Ｓ４１４）。
【０１０１】
Ｓ４１４において、暗号計算エンジン１３の計算結果と比較データ１１Ｄが一致したと判定された場合は、被検証データ（ルート部分）＃ｋに含まれるプログラムを実行する（Ｓ４１６）。
【０１０２】
Ｓ４１６において、被検証データ（ルート部分；以下省略）＃ｋが被検証データ＃０であれば、被検証データ＃０に含まれるオペレーティングシステム等の基本ソフトウエアが起動する。また、被検証データ＃ｋが被検証データ＃１以下であれば、例えば被検証データ＃０のリカバリ等が実行され、その後、被検証データ＃０に含まれるオペレーティングシステム等の基本ソフトウエアが起動する。
【０１０３】
また、前述のように、下位の被検証データ（＃１、＃２、…）が被検証データ＃０と同じ内容のプログラムやデータを含む場合、被検証データ＃ｋが正当でなければ被検証データ＃ｋ＋１を検証するという流れで正当な被検証データが発見されるまで繰り返し処理が行われる。
【０１０４】
また、下位の被検証データ（＃１、＃２、…）が、被検証データ＃０と同じ内容のプログラムやデータ及び被検証データ＃０のリカバリプログラムを含む場合、正当な被検証でデータが発見されると、オペレーティングシステム等の基本ソフトウエアが起動すると共にバックグラウンドで被検証データ＃０のリカバリが実行される。
【０１０５】
すなわち、いずれかの被検証データ（ルート部分）が正当であれば、オペレーティングシステム等の基本ソフトウエアが起動することになる。この結果、ユーザは情報処理装置４の基本的な機能を利用することができる。
【０１０６】
続いて、被検証データ（ルート部分）＃ｋに含まれるプログラムは、被検証データ（付加部分）＃ｋ*を指定し（Ｓ４１８）、被検証データ＃ｋ*に対するハッシュ値等を計算するように、暗号計算エンジン１３に指示する（Ｓ４２０）。
【０１０７】
被検証データ（ルート部分）＃ｋに含まれるプログラムは、暗号計算エンジン１３によるハッシュ値等の計算が終了すると（Ｓ４２２）、暗号計算エンジン１３の計算結果と比較データ１１Ｄが一致したか否かを判定する（Ｓ４２４）。
【０１０８】
被検証データ（ルート部分）＃ｋに含まれるプログラムは、Ｓ４２４において、暗号計算エンジン１３の計算結果と比較データ１１Ｄが一致したと判定された場合は、正当性検証プログラム１１Ｂに検証正常終了フラグを返す（Ｓ４２６）。これを受けた正当性検証プログラム１１Ｂは本フローを終了し、情報処理装置４が通常作動状態に移行する。
【０１０９】
なお、暗号計算エンジン１３の計算結果と比較データ１１Ｄが一致した被検証データ（付加部分）＃ｋ*が被検証データ（付加部分）＃０*であれば、特段の処理は行われないが、被検証データ（付加部分）＃ｋ*が被検証データ（付加部分）＃１*以下であれば、より上位の被検証データ（付加部分）のリカバリプログラムがバックグラウンドで実行される。
【０１１０】
一方、被検証データ（ルート部分）＃ｋに含まれるプログラムは、Ｓ４２４において、暗号計算エンジン１３の計算結果と比較データ１１Ｄが一致しないと判定された場合は、正当性検証プログラム１１Ｂに検証異常終了フラグを返す（Ｓ４２８）。これを受けた正当性検証プログラム１１Ｂは、パラメータｋがＮ以上であるか否かを判定し（Ｓ４３０）。パラメータｋがＮ未満であれば、パラメータｋを１増加させ（Ｓ４３２）、更に被検証データ（ルート部分）＃ｋに含まれるプログラムを停止させ（Ｓ４３４）Ｓ４０８に戻る。
【０１１１】
同様に、正当性検証プログラム１１Ｂは、ＳＳ４１４において暗号計算エンジン１３の計算結果と比較データ１１Ｄが一致しないと判定された場合も、パラメータｋがＮ以上であるか否かを判定し（Ｓ４３０）。パラメータｋがＮ未満であれば、被検証データ（ルート部分）＃ｋに含まれるプログラムを停止させ（Ｓ４３２）、パラメータｋを１増加させ（Ｓ４３４）、Ｓ４０８に戻る。
【０１１２】
このように、被検証データ（ルート部分）＃ｋと、被検証データ（付加部分）＃ｋ*の双方が正当であると判定されるまで、パラメータｋを増加させながら繰り返し処理が実行される。係る処理によって、いずれかの被検証データが正当であれば、情報処理装置４が通常作動状態に移行するため、情報処理装置４の利便性を高めることができるという点等は、第１実施例と同様である。
【０１１３】
Ｓ４３０においてパラメータｋがＮ以上であると判定された場合は、エラー表示等を行って（Ｓ４３６）本フローを終了する。
【０１１４】
［まとめ］
以上説明した本実施例の情報処理装置４によれば、第１実施例の情報処理装置１と同様の効果を奏するのに加え、オペレーティングシステム等の基本ソフトウエアが含まれるルート部分についての正当性検証が速やかに終了するため、ユーザから見た情報処理装置４の起動時間を短縮することができる。
【０１１５】
また、被検証データ（付加部分）の開始アドレス及び終了アドレスを、ルート部分のプログラム又はデータに格納することにより、付加部分については、比較的自由にバージョンアップ等のソフトウエア修正を行うことが可能となる。
【０１１６】
本実施例において、暗号計算対象となる被検証データをＲＡＭ１４にコピーするかどうかは、任意に決定してよい。
【０１１７】
また、被検証データ（付加部分）＃ｋ*が正当でないという判定を得た場合に、被検証データ（ルート部分）＃ｋ＋１の正当性検証を行うという処理の流れとしたが（処理パターンＡ）、既に被検証データ（ルート部分）＃ｋが正当であるという判定を得ていることに鑑み、被検証データ（ルート部分）＃ｋが、被検証データ（付加部分）＃ｋ*が正当でなければ、続いて被検証データ（付加部分）＃ｋ＋１*についての正当性検証を行うという処理の流れとしてもよい（処理パターンＢ）。処理パターンＢの場合、被検証データ（ルート部分）＃ｋは、被検証データ（付加部分）＃ｋ*、＃ｋ＋１*、…＃Ｎ*の開始アドレスと終了アドレスを格納していると好適である。図８は、これらの処理の流れを比較した図であり、第４実施例における処理のバリエーションを例示した図である。図中、矢印は正当性検証の推移を示しており、検証結果が正当であることを検証ＯＫと、検証結果が正当でないことを検証ＮＧと表記した。
【０１１８】
＜第５実施例＞
以下、図面を参照し、本発明の第５実施例に係る情報処理装置５について説明する。
【０１１９】
［構成］
図９は、本発明の第５実施例に係る情報処理装置５のシステム構成例である。以下、第４実施例との共通部分については同一の符号を付し、詳細な説明を省略する。
【０１２０】
情報処理装置５は、Ｉ／Ｏ１８を備える（第１〜第４実施例においては必須の構成でないため記載しなかったが、情報処理装置１〜４が同様の構成を備えてもよいのは勿論である）。
【０１２１】
本実施例の情報処理装置５では、各被検証データは、上位の被検証データのリカバリプログラムの全てを自己で保有するのではなく、リカバリのための制御プログラムを保持し、データをＩ／Ｏ１８に接続された機器から読み込んで補助記憶装置１２に上書き保存する制御を行う。この際に、Ｉ／Ｏ１８に該当データを記憶した媒体等が接続されていない場合には、ディスプレイ装置等により、ユーザに対して該当する媒体等を接続するように促す表示を行ってもよい。また、Ｉ／Ｏ１８にリカバリプログラムを記憶した媒体等が接続されている場合には、自動的にリカバリプログラムの読み込み及び補助記憶装置１２への上書き保存を開始してもよいし、ユーザによる承認を受け付けてもよい。
【０１２２】
Ｉ／Ｏ１８に接続された機器としては、ＳＤカード、フロッピー（登録商標）ディスク、ＵＳＢ（Universal  Serial  Bus）メモリ、ＣＤ（Compact  Disc）、ＤＶＤ（Digital  Versatile  Disc）、有線／無線ネットワークとのインターフェース機器等が挙げられる。
【０１２３】
これによって、オペレーティングシステム等の基本ソフトウエアの起動時間を短縮することができる。また、被検証データ（特に被検証データ＃１以下）として予め格納しておくデータのサイズを小さくすることができる。また、外部にリカバリプログラム等を保持する構成を採用することによって、情報処理装置５のバージョンアップ等にも柔軟に対応することができる。
【０１２４】
［正当性検証の手順等］
本実施例の情報処理装置５は、基本的な正当性検証の手順については第４実施例において図７により説明した処理と同様の処理を行うため、フローチャートの図示及び説明を省略する。本実施例では、図７のＳ４１６の処理において、被検証データ（ルート部分）がより上位の被検証データ（ルート部分）のリカバリの全てを実行するのではなく、データをＩ／Ｏ１８に接続された機器から読み込んで補助記憶装置１２に上書き保存するための処理を実行する。同様に、図７のＳ４２６の処理の後には、被検証データ（付加部分）がより上位の被検証データ（付加部分）のリカバリの全てを実行するのではなく、データをＩ／Ｏ１８に接続された機器から読み込んで補助記憶装置１２に上書き保存するための処理を実行する。
【０１２５】
図１０は、正当性検証の結果、被検証データ（ルート部分）＃２が正当であるという結果を得て、プログラムが実行されている状態を示す図である。この状態において、被検証データ（ルート部分）＃２が実行されることによりオペレーティングシステム等の基本ソフトウエアが起動し、被検証データ（ルート部分）＃１のリカバリプログラムがＩ／Ｏ１８から読み込まれて補助記憶装置１２に上書き保存される。また、この状態の後、被検証データ（付加部分）＃２の正当性検証が実行され、正当であるという結果を得ると被検証データ（付加部分）＃０のリカバリプログラムがＩ／Ｏ１８から読み込まれて補助記憶装置１２に上書き保存される。なお、被検証データ（付加部分）＃０のリカバリプログラムは被検証データ（ルート部分）＃１のリカバリプログラムと並行して読み込まれてもよい。
【０１２６】
［その他］
第５実施例の作動原理は、第１〜第３実施例で説明した構成に対しても適用可能である。すなわち、被検証データがルート部分と付加部分に分かれていない構成においても、被検証データがより上位の被検証データのリカバリの全てを実行するのではなく、データをＩ／Ｏ１８に接続された機器から読み込んで補助記憶装置１２に上書き保存するための処理を実行する構成としてよい。
【０１２７】
また、第５実施例における被検証データ（ルート部分）は、正当であるという検証結果を得て実行される際には、ＲＡＭ１４に展開されてから実行する手順としてもよい。図１１は、図１０と同様の状態において、被検証データ（ルート部分）＃２に含まれるプログラムがＲＡＭ１４に展開されて実行される様子を示す図である。こうすれば、補助記憶装置１２が、プログラムの実行と上書き保存を同時に行うことができないものであっても、対応することができる。
【０１２８】
［まとめ］
以上説明した本実施例の情報処理装置５によれば、第１実施例の情報処理装置１と同様の効果を奏するのに加え、被検証データとして予め格納しておくデータのサイズを小さくすることができる。また、外部にリカバリプログラム等を保持する構成を採用することによって、情報処理装置５のバージョンアップ等にも柔軟に対応することができる。
【０１２９】
＜変形等＞
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【０１３０】
例えば、各実施例の処理・構成は排他的なものではなく、適宜組み合わせることが可能である。
【０１３１】
また、各実施例は、暗号計算エンジン１３を省略し、ＣＰＵ１０が暗号計算を実行する態様であってもよい。
【符号の説明】
【０１３２】
１、２、３、４、５  情報処理装置
１０    ＣＰＵ
１１    ブートデバイス
１１Ａ  ＢＩＯＳ
１１Ｂ  正当性検証プログラム
１１Ｃ  秘密鍵
１１Ｄ  比較データ
１１Ｅ  アドレステーブル
１２    補助記憶装置
１２＃０、１２＃１、…、１２＃Ｎ、１２＃０*、１２＃１*、…、１２＃Ｎ*  被検証データ
１３    暗号計算エンジン
１４    ＲＡＭ
１６    バス
１７    ＳｏＣ
１８    Ｉ／Ｏ
【先行技術文献】
【特許文献】
【０１３３】
【特許文献１】特開２００９−１２９０６１号公報
【図１】
0005796447.tif 000002
【図２】
0005796447.tif 000003
【図３】
0005796447.tif 000004
【図４】
0005796447.tif 000005
【図５】
0005796447.tif 000006
【図６】
0005796447.tif 000007
【図７】
0005796447.tif 000008
【図８】
0005796447.tif 000009
【図９】
0005796447.tif 000010
【図１０】
0005796447.tif 000011
【図１１】
0005796447.tif 000012