(57)【要約】【課題】情報処理装置において、ＣＰＵなどのデータ処理部に対する機密性が要求される機密データについての機密性を確保する。【解決手段】情報処理装置１は、データを読み込んで処理するデータ処理部１１と、データ処理部１１により読み込み可能な機密データ１９を記憶可能な第１被アクセス部１３と、第１被アクセス部１３とデータ処理部１１とを接続するバス１７と、バス１７を監視し、バス１７上のデータを処理するバス処理部１５とを有する。バス処理部１５は、バス１７を通じてデータ処理部１１が第１被アクセス部１３から機密データ１９を読み込む場合、第１被アクセス部１３がバス１７へ出力した機密データ１９に暗号をかけて、暗号化された機密データをデータ処理部１１に読み込ませる。【選択図】図１
2011175464.tif 000002
【特許請求の範囲】
【請求項１】
データを読み込んで処理するデータ処理部と、
前記データ処理部により読み込み可能なデータとして、前記データ処理部に対する機密性が要求される機密データを記憶可能な第１被アクセス部と、
前記第１被アクセス部と前記データ処理部とを接続するバスと、
前記バスを監視し、前記バス上のデータを処理するバス処理部と
を有し、
前記バス処理部は、
前記バスを通じて前記データ処理部が前記第１被アクセス部から前記機密データを読み込む場合、前記第１被アクセス部が前記バスへ出力した機密データに暗号をかけて、暗号化された機密データを前記データ処理部に読み込ませる
情報処理装置。
【請求項２】
前記データ処理部によりデータを書き込み可能な第２被アクセス部を有し、
前記データ処理部は、
前記第１被アクセス部から読み込んだ暗号化された前記機密データを、前記バスを通じて前記第２被アクセス部に書き込み、
前記バスアクセス部は、
前記バスを通じて前記データ処理部が前記第２被アクセス部に暗号化された前記機密データを書き込む場合、前記データ処理部が前記バスへ出力した暗号化された機密データの暗号を解除して、復号された機密データを前記第２被アクセス部に書き込ませる
請求項１記載の情報処理装置。
【請求項３】
前記バスアクセス部は、
前記データ処理部により値を設定可能なレジスタを有し、
前記レジスタの値に応じて前記暗号化された機密データの暗号の解除を制御する
請求項２記載の情報処理装置。
【請求項４】
前記バス処理部は、
前記第２被アクセス部にアクセスする場合に前記データ処理部が用いるアドレスと、前記データ処理部が前記バスへ出力したアドレスとを比較し、これらのアドレスが一致する場合に前記データ処理部が前記バスへ出力した暗号化されたデータの暗号を解除する
請求項２または３記載の情報処理装置。
【請求項５】
前記バス処理部は、
前記第１被アクセス部にアクセスする場合に前記データ処理部が用いるアドレスと、前記データ処理部が前記バスへ出力したアドレスとを比較し、これらのアドレスが一致する場合に前記データ処理部が前記バスを通じて読み込む機密データに暗号をかける
請求項１から４のいずれか一項記載の情報処理装置。
【請求項６】
前記バス処理部は、
前記機密データを暗号化するための乱数を発生する乱数発生部と、
前記乱数を用いて前記機密データを暗号化する暗号処理部と、
暗号化された機密データと前記乱数とを対応付けて記憶する記憶部と、
前記記憶部に記憶された前記乱数を用いて、前記データ処理部が前記バスへ出力した暗号化された機密データを復号する復号処理部と、
前記データ処理部が前記バスへ出力した暗号化された機密データと前記記憶部に記憶されている前記暗号化された機密データとを比較する比較部と、
前記比較部で比較されるデータ同士が一致する場合に、前記データ処理部が前記バスへ出力したデータの替わりに、前記復号処理部により復号された機密データを前記バスを通じて前記第２被アクセス部へ出力するセレクタと
を有する請求項２から５のいずれか一項記載の情報処理装置。
【請求項７】
前記バスは、
前記データ処理部がデータサイズを切り替えてデータを入出力可能な複数のバイトレーンからなるデータバスを有し、
前記バス処理部は、
前記データバスについて、前記データ処理部が有効なデータを出力していないバイトレーンをマスクするマスク部を有し、
前記記憶部は、
前記データバスの有効なデータが出力されているデータサイズの前記暗号化された機密データを、前記データ処理部が有効なデータを出力しているバイトレーンへ出力し、
前記比較部は、
前記マスク部によりマスクされたデータバス上のデータと、前記記憶部が出力した機密データとを、前記データバスの前記複数のバイトレーンにおいて比較する
請求項６記載の情報処理装置。
【請求項８】
前記データ処理部、前記第１被アクセス部、前記バス、および前記バス処理部は、１個の集積回路装置に組み込まれている
請求項１から７のいずれか一項記載の情報処理装置。
【請求項９】
データを読み込んで処理するデータ処理部と、前記データ処理部に対する機密性が要求される機密データを前記データ処理部により読み込み可能に記憶する第１被アクセス部とがバスにより接続された情報処理装置についての前記バス上で、前記データ処理部による前記第１被アクセス部からの前記機密データの読み込みを検出するステップと、
前記バス上で前記機密データの読み込みを検出した場合に、前記第１被アクセス部が前記バスへ出力した機密データに暗号をかけて、暗号化された機密データを前記データ処理部に読み込ませるステップと
を備える情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機密性が要求される機密データを利用可能な情報処理装置および情報処理方法に関する。
【背景技術】
【０００２】
情報処理装置において、ＣＰＵは、記憶部などに記憶されたデータを読み込んで処理する。
このような情報処理装置において、ＣＰＵに対する機密性が要求される機密データを利用することがある。
たとえばＣＰＵ以外の周辺デバイスで利用される暗号キー、パスワード、乱数の初期値（シード値）などである。
これらの周辺デバイスで利用される機密データは、たとえば記憶部に記憶され、ＣＰＵにより記憶部から周辺デバイスへ転送され、周辺デバイスに利用される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−２０３２３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、このようにＣＰＵに対する機密性が要求される機密データをＣＰＵにより転送可能にした場合、ＣＰＵは、機密データに自由にアクセス可能である。
また、機密データを利用するソフトウェアプログラムの設計者などは、機密データの格納元アドレスを知ることが可能である。
そのため、ソフトウェアプログラムの設計者などは、たとえば機密データを読み出して表示するプログラムをＣＰＵに実行させることにより、簡単に機密データの内容を知ることができる。
【０００５】
ところで、データを保護する方法には、たとえばバス・スクランブル方法がある（特許文献１を参照）。
バス・スクランブル方法では、記憶部は、データにスクランブルをかけてバスへ出力し、ＣＰＵは、バスから入力されたデータのスクランブルを解除して読み込む。これにより、バス上のデータは、暗号化されて保護される。
しかしながら、このバス・スクランブル方法を用いたとしても、ＣＰＵに読み込まれた後のデータは、暗号化されていない。
その結果、データを保護するためにバス・スクランブル方法を採用したとしても、機密データを利用するソフトウェアプログラムの設計者などに対して機密データを保護することにはならない。
【０００６】
このように情報処理装置では、ＣＰＵなどのデータ処理部に対する機密性が要求される機密データについての機密性を確保することが求められている。
【課題を解決するための手段】
【０００７】
本発明の第１の観点の情報処理装置は、データを読み込んで処理するデータ処理部と、データ処理部により読み込み可能なデータとして、データ処理部に対する機密性が要求される機密データを記憶可能な第１被アクセス部と、第１被アクセス部とデータ処理部とを接続するバスと、バスを監視し、バス上のデータを処理するバス処理部とを有する。そして、バス処理部は、バスを通じてデータ処理部が第１被アクセス部から機密データを読み込む場合、第１被アクセス部がバスへ出力した機密データに暗号をかけて、暗号化された機密データをデータ処理部に読み込ませる。
【０００８】
第１の観点では、機密データは、バス処理部により暗号化された状態でデータ処理部に読み込まれる。
すなわち、データ処理部に読み込まれた機密データの内容は、データ処理部に対して隠蔽される。
【０００９】
本発明の第２の観点の情報処理方法は、データを読み込んで処理するデータ処理部と、データ処理部に対する機密性が要求される機密データをデータ処理部により読み込み可能に記憶する第１被アクセス部とがバスにより接続された情報処理装置についてのバス上で、データ処理部による第１被アクセス部からの機密データの読み込みを検出するステップと、バス上で機密データの読み込みを検出した場合に、第１被アクセス部がバスへ出力した機密データに暗号をかけて、暗号化された機密データをデータ処理部に読み込ませるステップとを備える。
【発明の効果】
【００１０】
本発明では、データ処理部に対する機密性が要求される機密データについての機密性を確保することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、本発明の実施形態に係る情報処理装置の概略ブロック図である。
【図２】図２は、図１のＣＰＵバスおよびその周辺部を示す説明図である。
【図３】図３は、ＣＰＵがアクセス可能な記憶領域のアドレスマップの一例である。
【図４】図４は、機密リードデータの読出し時の図１のバス制御部でのデータ遷移図である。
【図５】図５は、機密ライトデータの書き込み時のバス制御部でのデータ遷移図である。
【図６】図６は、リードアクセス時に機能するバス制御部の構成を示すブロック図である。
【図７】図７は、リードアクセス時のタイミングチャートである。
【図８】図８は、ライトアクセス時に機能するバス制御部の構成を示すブロック図である。
【図９】図９は、ライトアクセス時のタイミングチャートである。
【図１０】図１０は、図１のスクランブルメモリの全体的なデータ構造の説明図である。
【図１１】図１１は、図１０のスクランブルメモリの詳細なデータ構造の説明図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態を図面に関連付けて説明する。
説明は以下の順に行う。
１．情報処理装置の構成。
２．情報処理装置におけるデータの遷移。
３．機密データなどへのリードアクセス動作。
４．機密データなどへのライトアクセス動作。
５．スクランブルメモリについての説明。
【００１３】
［情報処理装置１の構成］
図１は、本発明の実施形態に係る情報処理装置１の概略ブロック図である。
図１には、情報処理装置１のＣＰＵバス・アーキテクチャ・システムが図示されている。
図１の情報処理装置１は、集積回路装置２を有する。
集積回路装置２は、ＣＰＵ１１、通常データブロック１２、機密データ読み出しブロック１３、機密データ書き込みブロック１４、バス制御部１５、セレクタ１６、およびＣＰＵバス１７を有する。
これらの回路１１から１７は、集積回路装置２のたとえば１チップの半導体基板上に集積化される。
【００１４】
ＣＰＵ１１は、たとえばクロック毎に命令を実行するＲＩＳＣ（Reduced Instruction Set Computer）コアである。なお、ＣＰＵ１１は、ＣＩＳＣ（Complex Instruction Set Computer）コアであってもよい。
ＣＰＵ１１は、通常データブロック１２などからプログラムを読み込んで実行する。これにより、ＣＰＵ１１は、情報処理装置１の制御部として機能する。
また、ＣＰＵ１１は、通常データブロック１２などからデータを読み込んで処理する。
たとえば、ＣＰＵ１１は、情報処理装置１のＣＰＵバス１７の利用を管理するバスマスタとして機能する。
ＣＰＵ１１は、ＣＰＵバス１７を使用して、通常データブロック１２、機密データ読み出しブロック１３、機密データ書き込みブロック１４またはバス制御部１５にアクセスする。
ＣＰＵ１１によるＣＰＵバス１７を使用した周辺デバイス１２〜１５へのアクセスには、リードアクセスと、ライトアクセスとがある。
【００１５】
通常データブロック１２は、たとえばＣＰＵ１１によりライトアクセスおよびリードアクセス可能な通常の記憶部である。
通常の記憶部は、たとえばハードディスクドライブ、不揮発性の半導体メモリ、コンピュータ読み取り可能な記録媒体を有する。
そして、通常データブロック１２は、ＣＰＵ１１が読み込んで実行するプログラム、ＣＰＵ１１がプログラムの実行に用いるデータなどを記憶する。
以下、通常データブロック１２に記憶され、ＣＰＵ１１により書き換え可能なデータを、通常データ１８と呼ぶ。
通常データ１８は、ＣＰＵ１１において利用されるため、ＣＰＵ１１に対する機密性は要求されない。
【００１６】
機密データ読み出しブロック１３は、たとえばＣＰＵ１１によりリードアクセスのみ可能な読出し専用の記憶部である。
読出し専用の記憶部は、たとえばＣＰＵ１１によりデータの書き換えができないＲＯＭ、ＥＥＰＲＯＭなどの不揮発性の半導体メモリを有する。
そして、機密データ読み出しブロック１３は、ＣＰＵ１１以外の周辺デバイス、たとえば機密データ書き込みブロック１４などで使用される機密リードデータ１９を記憶する。
機密リードデータ１９には、たとえば機密データ書き込みブロック１４で利用される暗号キー、パスワード、乱数の初期値などがある。
機密リードデータ１９は、ＣＰＵ１１以外で使用されるため、ＣＰＵ１１に対して機密性が要求される。
【００１７】
機密データ書き込みブロック１４は、たとえばＣＰＵ１１によりライトアクセスのみ可能な書き込み専用の記憶部、通信部、暗号処理部である。
書き込み専用の記憶部は、たとえばＣＰＵ１１によりデータの書き込みが可能なＲＡＭ、ハードディスクドライブ、半導体メモリ、コンピュータ読み取り可能な記録媒体を有する。
そして、機密データ書き込みブロック１４は、ＣＰＵ１１により書き込まれるデータを記憶する。
以下、ＣＰＵ１１により機密データ読み出しブロック１３から機密データ書き込みブロック１４へ転送された暗号キー、パスワード、乱数の初期値などのデータを、機密ライトデータ２０とよぶ。
機密ライトデータ２０は、機密リードデータ１９と同様に、ＣＰＵ１１に対して機密性が要求される。
【００１８】
この機密ライトデータ２０および機密リードデータ１９のように、ＣＰＵ１１に対して機密性が要求されるデータは、ＣＰＵ１１による転送処理を許可しても、それ以外の目的外処理、たとえば内容の表示処理などを許可したくない。
なお、通常データブロック１２、機密データ読み出しブロック１３、および機密データ書き込みブロック１４が共に記憶部である場合、これらのブロックが物理的に１つの記憶デバイスにより実現されてもよい。
【００１９】
図２は、図１のＣＰＵバス１７およびその周辺部を示す説明図である。
図２のＣＰＵバス１７は、アドレスバス２１、データバス２２、制御バス２３を有する。
ＣＰＵバス１７のアドレスバス２１、データバス２２および制御バス２３は、ＣＰＵ１１、通常データブロック１２、機密データ読み出しブロック１３、機密データ書き込みブロック１４、バス制御部１５に接続される。
【００２０】
アドレスバス２１は、複数のアドレスバス信号線により構成される。
ＣＰＵ１１は、たとえば通常データブロック１２などにアクセスする場合、アクセス先のアドレス信号をアドレスバス２１へ出力する。
ＣＰＵ１１が出力したアドレス信号は、アドレスバス２１を通じて、通常データブロック１２、機密データ読み出しブロック１３、機密データ書き込みブロック１４、バス制御部１５へ出力される。
【００２１】
図３は、ＣＰＵ１１がアクセス可能な記憶領域のアドレスマップの一例である。
図３のアドレスマップでは、０ｘ００００（１６進数の００００。以下、同様。）から０ｘＤＦＦＦまでのアドレスに通常データブロック１２が割り当てられている。
０ｘＥ０００から０ｘＥＦＦＦまでのアドレスに機密データ読み出しブロック１３が割り当てられている。以下、機密データ読み出しブロック１３に割り当てられたアドレス範囲を読出しアドレス範囲３１という。
０ｘＦ０００から０ｘＦＦＦＦまでのアドレスに機密データ書き込みブロック１４が割り当てられている。以下、機密データ書き込みブロック１４に割り当てられたアドレス範囲を書込みアドレス範囲３２という。
【００２２】
そして、ＣＰＵ１１は、アクセス先のアドレスを示すアドレス信号をアドレスバス２１へ出力し、所定の記憶領域にアクセスする。
通常データブロック１２、機密データ読み出しブロック１３、機密データ書き込みブロック１４、バス制御部１５は、アドレスバス２１を通じて割り当てられたアドレスが入力されると、ＣＰＵ１１にそのアドレスの記憶領域をアクセスさせる。
【００２３】
図２のデータバス２２は、ＣＰＵ１１と周辺デバイス１２〜１５との間でのデータの送受に用いられる。
データバス２２は、複数のバイトレーン２４により構成される。
バイトレーン２４は、複数本のデータバス信号線で構成される。
図２には、第１バイトレーン２４、第２バイトレーン２４、第３バイトレーン２４、第４バイトレーン２４が図示されている。
【００２４】
ＣＰＵ１１は、複数のバイトレーン２４を任意の組み合わせて選択し、選択したバイトレーン２４を用いてアクセスする。
たとえばバイトレーン２４が４個である場合、ＣＰＵ１１は、４個のバイトレーン２４の内の１個のバイトレーン２４を用いてバイトアクセス可能である。
また、ＣＰＵ１１は、４個のバイトレーン２４の内の２個のバイトレーン２４を用いてハーフワードアクセス可能である。
また、ＣＰＵ１１は、４個のすべてのバイトレーン２４を用いてワードアクセス可能である。
ＣＰＵ１１は、ＣＰＵバス１７の状況、データやアクセスの内容に応じて任意のバイトレーン２４を選択し、アクセスを実行する。
ライトアクセスの場合、ＣＰＵ１１は、選択したバイトレーン２４に、ライトデータの信号を出力する。
ライトデータの信号は、バイトレーン２４を通じて、アドレスバス２１で指定された書き込み先のブロック、たとえば機密データ書き込みブロック１４へ入力される。
リードアクセスの場合、アドレスバス２１で指定された読出し元のブロック、たとえば機密データ読み出しブロック１３は、リードデータの信号を、バイトイネーブル信号線２６により指定されたバイトレーン２４へ出力する。
リードデータの信号は、バイトレーン２４を通じて、ＣＰＵ１１へ入力される。
【００２５】
制御バス２３は、ＣＰＵ１１などがアクセス内容や状態を示す制御信号を出力するバスである。
制御バス２３には、たとえばライトイネーブル信号線２５、バイトイネーブル信号線２６などがある。
【００２６】
ライトイネーブル信号線２５は、ＣＰＵ１１がライトイネーブル信号を出力する信号線である。
ライトイネーブル信号は、たとえばライトアクセスの場合にハイレベルとされ、それ以外のたとえばリードアクセスの場合にローレベルとされる。
【００２７】
バイトイネーブル信号線２６は、ＣＰＵ１１がバイトイネーブル信号を出力する信号線である。バイトイネーブル信号は、データバス２２の複数のバイトレーン２４の各々についての有効／無効を示す信号である。
ＣＰＵ１１は、たとえばライトデータを出力したバイトレーン２４を有効とし、残りのバイトレーン２４を無効とするバイトイネーブル信号を、バイトイネーブル信号線２６へ出力する。
【００２８】
図１のセレクタ１６は、図２に示すように、データバス２２に接続される。
これにより、ＣＰＵ１１と周辺デバイス１２〜１５とは、セレクタ１６を介して接続されることになる。
【００２９】
以下、ＣＰＵ１１とセレクタ１６とを接続するマスタ側のデータバス２２を上位データバス２２−１といい、ＣＰＵバス１７のうち、上位データバス２２−１を含む部分を上位ＣＰＵバス１７−１という。
また、セレクタ１６と周辺ブロックとを接続するスレーブ側のデータバス２２を下位データバス２２−２といい、ＣＰＵバス１７のうち、下位データバス２２−２を含む部分を下位ＣＰＵバス１７−２という。
【００３０】
また、セレクタ１６は、バス制御部１５に接続される。
バス制御部１５は、選択信号と、ＣＰＵバス１７上のデータを変換したデータの信号とをセレクタ１６へ出力する。
リードアクセスの場合、セレクタ１６は、下位ＣＰＵバス１７−２およびバス制御部１５の一方を選択信号に応じて選択し、上位ＣＰＵバス１７−１に接続する。
ライトアクセスの場合、セレクタ１６は、上位ＣＰＵバス１７−１およびバス制御部１５の一方を選択信号に応じて選択し、下位ＣＰＵバス１７−２に接続する。
【００３１】
図１のバス制御部１５は、図２に示すように、上位ＣＰＵバス１７−１と、下位データバス２２−２と、セレクタ１６とに接続される。
バス制御部１５は、ＣＰＵバス１７を監視し、ＣＰＵバス１７上のデータを暗号化または復号化し、セレクタ１６へ出力する。
また、バス制御部１５は、上位ＣＰＵバス１７−１のデータに基づく判断処理を実行し、判断結果に対応する選択信号をセレクタ１６へ出力する。
【００３２】
［情報処理装置１におけるデータの遷移］
図４は、ＣＰＵ１１が機密データ読み出しブロック１３から機密リードデータ１９を読出す場合の、図１のバス制御部１５におけるデータの遷移図である。
機密データ読み出しブロック１３が下位データバス２２−２へ出力した機密リードデータ１９は、バス制御部１５に入力される。
バス制御部１５は、後述する乱数発生部４１により乱数データを生成し、この乱数データを用いて機密リードデータ１９を暗号化する。これにより、機密リードデータ１９を暗号化したスクランブルリードデータが生成される。
また、バス制御部１５は、スクランブルリードデータをセレクタ１６へ出力し、セレクタ１６へ選択信号を出力する。
セレクタ１６がスクランブルリードデータを選択すると、スクランブルリードデータは、下位データバス２２−２上の機密リードデータ１９の替わりに、上位データバス２２−１を通じてＣＰＵ１１に入力される。
また、スクランブルリードデータは、乱数データと対応付けて、後述するスクランブルメモリ４３に保存される。
【００３３】
図５は、ＣＰＵ１１が機密データ書き込みブロック１４へ機密ライトデータ２０を書き込む場合の、バス制御部１５におけるデータの遷移図である。
ＣＰＵ１１は、機密ライトデータ２０を暗号化したスクランブルライトデータを上位データバス２２−１へ出力する。スクランブルライトデータは、バス制御部１５に入力される。
バス制御部１５は、入力されたスクランブルライトデータが、後述するスクランブルメモリ４３に保存されているスクランブルリードデータと一致する場合、スクランブルリードデータと対応する乱数データを用いて、スクランブルライトデータを復号する。
これにより、スクランブルライトデータを復号した機密ライトデータ２０が生成される。
また、バス制御部１５は、機密ライトデータ２０をセレクタ１６へ出力し、セレクタ１６へ選択信号を出力する。
セレクタ１６が機密ライトデータ２０を選択すると、機密ライトデータ２０は、上位データバス２２−１上のスクランブルライトデータの替わりに、下位データバス２２−２を通じて機密データ書き込みブロック１４に入力される。
また、使用されたスクランブルリードデータは、乱数データとともに、スクランブルメモリ４３から削除される。
【００３４】
［機密データなどへのリードアクセス動作］
図６は、図１のＣＰＵ１１がリードアクセスする場合に機能するバス制御部１５の構成を示すブロック図である。
図６に示すように、リードアクセス時には、バス制御部１５において、乱数発生部４１と、データ暗号化用の排他論理和演算部４２と、スクランブルメモリ４３と、リードアドレスレジスタ４４と、リードアドレス比較器４５とが機能する。
また、図６には、上位データバス２２−１と下位データバス２２−２との間に接続されたセレクタ１６が示されている。
【００３５】
リードアドレスレジスタ４４は、ＣＰＵ１１に対する機密性が要求されるデータの読出し元アドレスを記憶する。
具体的には、リードアドレスレジスタ４４は、図３の読出しアドレス範囲３１を記憶する。
なお、リードアドレスレジスタ４４は、図３の読出しアドレス範囲３１および書込みアドレス範囲３２の両方を記憶してもよい。
【００３６】
リードアドレス比較器４５は、リードアドレスレジスタ４４と、アドレスバス２１とが接続される。
そして、リードアドレス比較器４５は、アドレスバス２１上のアドレスと、リードアドレスレジスタ４４のアドレス範囲とを比較する。
アドレスバス２１上のアドレスがリードアドレスレジスタ４４のアドレス範囲である場合、リードアドレス比較器４５は、アドレス一致検出信号を出力する。
【００３７】
乱数発生部４１は、乱数データを発生する。
【００３８】
排他論理和演算部４２は、下位データバス２２−２と、乱数発生部４１とに接続される。
そして、排他論理和演算部４２は、下位データバス２２−２上のスクランブルリードデータと、乱数データとの排他論理和を演算する。
【００３９】
セレクタ１６は、下位データバス２２−２と、排他論理和演算部４２とに接続される。
そして、セレクタ１６は、リードアドレス比較器４５のアドレス一致検出信号（選択信号）に基づいて、下位データバス２２−２および排他論理和演算部４２の一方を選択する。
具体的には、セレクタ１６は、選択信号が入力されている場合には排他論理和演算部４２を選択し、それ以外の場合には下位データバス２２−２を選択する。
また、セレクタ１６は、選択した側のデータの信号を、上位データバス２２−１へ出力する。
たとえば排他論理和演算部４２を選択した場合、セレクタ１６は、スクランブルリードデータの信号を、上位データバス２２−１へ出力する。
【００４０】
スクランブルメモリ４３は、上位データバス２２−１と、乱数発生部４１と、バイトイネーブル信号線２６と、リードアドレス比較器４５とに接続される。
そして、スクランブルメモリ４３は、リードアドレス比較器４５からアドレス一致信号が入力されると、入力中のスクランブルリードデータおよび乱数データとを対応付けて、１つのデータセットとして記憶する。
スクランブルメモリ４３は、バイトイネーブル信号線２６に基づいて有効とされているバイトレーン２４のデータを記憶する。
【００４１】
また、スクランブルメモリ４３は、乱数有効信号を乱数発生部４１へ出力する。
乱数有効信号は、スクランブルメモリ４３から出力され、スクランブルメモリ４３が既に記憶しているデータセットと、入力中のデータセットとが一致する場合に無効となり、それ以外の不一致などの場合に有効となる。
乱数発生部４１は、乱数有効信号が無効である場合、有効になるまで新たな乱数の発生を繰り返す。
これにより、スクランブルメモリ４３に複数の同一のスクランブルリードデータが記憶されなくなり、スクランブルメモリ４３に記憶される複数のスクランブルリードデータは、互いに識別可能となる。
【００４２】
ＣＰＵ１１が機密データ読み出しブロック１３にリードアクセスする場合、リードアドレス比較器４５は、ＣＰＵ１１がＣＰＵバス１７へ出力したアドレスと、リードアドレスレジスタ４４のアドレスとを比較する。
リードアドレス比較器４５がアドレス一致検出信号を出力すると、セレクタ１６は、排他論理和演算部４２を選択する。
排他論理和演算部４２は、機密データ読み出しブロック１３が下位データバス２２−２へ出力した機密リードデータ１９と、乱数データの排他論理和を演算している。
これにより、上位データバス２２−１には、排他論理和演算部４２により暗号化されたデータが出力される。
ＣＰＵ１１は、機密リードデータ１９の替わりに、この機密リードデータ１９を暗号化したスクランブルデータを読み込む。
【００４３】
これに対して例えばＣＰＵ１１が通常データブロック１２にリードアクセスする場合、リードアドレス比較器４５は、ＣＰＵ１１がＣＰＵバス１７へ出力したアドレスが、リードアドレスレジスタ４４のアドレスと一致しないと判断する。
セレクタ１６は、下位データバス２２−２を選択する。
これにより、上位データバス２２−１には、通常データブロック１２が下位データバス２２−２へ出力した通常データ１８が出力される。
ＣＰＵ１１は、通常データ１８を読み込む。
【００４４】
以上のように、バス制御部１５は、ＣＰＵ１１が機密データ読み出しブロック１３から読み出した機密リードデータ１９をＣＰＵバス１７上で暗号化し、暗号化された機密リードデータ１９をＣＰＵ１１に読み込ませることができる。
【００４５】
図７は、図１の情報処理装置１での機密リードデータ１９の読出し動作を示すタイミングチャートである。
図７（Ａ）はアドレスバス２１、図７（Ｂ）は下位データバス２２−２上のデータ、図７（Ｃ）は上位データバス２２−１上のデータである。
そして、たとえば通常データ１８を読み出す場合にはセレクタ１６は下位データバス２２−２を選択するため、通常データブロック１２が下位データバス２２−２へ出力した通常データ１８がそのまま上位データバス２２−１へ出力されている。
この場合、ＣＰＵ１１は、通常データブロック１２から読み出した通常データ１８をそのまま読み込むことができる。
【００４６】
これに対して、機密リードデータ１９を読み出す場合にはセレクタ１６は排他論理和演算部４２を選択する。このため、機密データ読み出しブロック１３が下位データバス２２−２へ出力した機密リードデータ１９が暗号化（スクランブル化）されて上位データバス２２−１へ出力されている。
この場合、ＣＰＵ１１は、機密データ読み出しブロック１３から読み出された機密リードデータ１９を暗号化した状態で読み込むことになる。
【００４７】
［機密データなどへのライトアクセス動作］
図８は、図１のＣＰＵ１１がライトアクセスする場合に機能するバス制御部１５の構成を示すブロック図である。
【００４８】
図８に示すように、ライトアクセス時には、バス制御部１５において、バイトマスク部５１と、スクランブルメモリ４３と、データ比較器５２と、データ復号用の排他論理和演算部４２とが機能する。
また、バス制御部１５では、ライトアドレスレジスタ５４と、ライトアドレス比較器５５と、デスクランブルレジスタ５６と、第１論理積演算部５７と、第２論理積演算部５８とが機能する。
また、図８には、上位データバス２２−１と下位データバス２２−２との間に接続されたセレクタ１６が示されている。
【００４９】
ライトアドレスレジスタ５４は、ＣＰＵ１１に対する機密性が要求されるデータの書き込み先アドレスを記憶する。
具体的には、ライトアドレスレジスタ５４は、図３の書込みアドレス範囲３２を記憶する。
なお、ライトアドレスレジスタ５４は、図３の読出しアドレス範囲３１および書込みアドレス範囲３２の両方を記憶してもよい。
【００５０】
ライトアドレス比較器５５は、ライトアドレスレジスタ５４と、アドレスバス２１とが接続される。
そして、ライトアドレス比較器５５は、アドレスバス２１上のアドレスと、ライトアドレスレジスタ５４のアドレス範囲とを比較する。
アドレスバス２１上のアドレスがライトアドレスレジスタ５４のアドレス範囲である場合、ライトアドレス比較器５５は、たとえばハイレベルのアドレス一致検出信号を出力する。
【００５１】
デスクランブルレジスタ５６は、スクランブルライトデータのデスクランブル（復号）のオンオフを示す値を記憶する。デスクランブルレジスタ５６の値は、ＣＰＵ１１により書き換え可能である。
【００５２】
第１論理積演算部５７は、ライトアドレス比較器５５と、デスクランブルレジスタ５６とに接続される。
そして、アドレス一致信号が一致を示すハイレベルの信号であり、かつ、デスクランブルレジスタ５６が復号有効を示すハイレベルの信号を出力している場合、第１論理積演算部５７は、ハイレベルの信号を出力する。
それ以外の場合は、第１論理積演算部５７は、ローレベルの信号を出力する。
【００５３】
バイトマスク部５１は、上位データバス２２−１と、バイトイネーブル信号線２６とに接続される。
バイトマスク部５１は、バイトイネーブル信号に基づいてＣＰＵ１１がライトデータを出力している有効なバイトレーン２４と、無効なバイトレーン２４とを判別する。
また、バイトマスク部５１は、無効なバイトレーン２４をマスクする。具体的にはバイトマスク部５１は、無効なバイトレーン２４を例えば０にマスクする。
バイトマスク部５１は、バス制御部１５の内部バス５９へ、マスクしたデータを出力する。
【００５４】
スクランブルメモリ４３は、バイトイネーブル信号線２６に接続される。
スクランブルメモリ４３は、記憶しているスクランブルリードデータを出力する。
スクランブルメモリ４３は、バイトイネーブル信号に基づいて有効なバイトレーン２４を判断し、有効なバイトレーン２４へスクランブルリードデータを出力する。
また、スクランブルメモリ４３は、無効なバイトレーン２４へ０を出力する。
【００５５】
データ比較器５２は、バイトマスク部５１と、スクランブルメモリ４３とに接続される。
そして、データ比較器５２は、バイトマスク部５１により無効レーンをマスクされた上位データバス２２−１上のスクランブルライトデータと、スクランブルメモリ４３が出力するスクランブルリードデータとを比較する。
スクランブルライトデータとスクランブルリードデータとが一致する場合、データ比較器５２は、データ一致検出信号を出力する。
【００５６】
第２論理積演算部５８は、データ比較器５２と、第１論理積演算部５７とに接続される。
データ比較器５２がデータの一致を示すハイレベルを出力し、第１論理積演算部５７がハイレベルの信号を出力している場合、第２論理積演算部５８は、ハイレベルの信号を出力する。
それ以外の場合は、第２論理積演算部５８は、ローレベルの信号を出力する。
【００５７】
データ復号用の排他論理和演算部４２は、バイトマスク部５１と、スクランブルメモリ４３とに接続される。
そして、排他論理和演算部４２は、バイトマスク部５１が内部バス５９へ出力したデータを、スクランブルメモリ４３から出力される乱数データにより復号する。
【００５８】
セレクタ１６は、内部バス５９と、排他論理和演算部４２と、第２論理積演算部５８とに接続される。
そして、第２論理積演算部５８がハイレベルの信号を出力している場合、セレクタ１６は、排他論理和演算部４２を選択する。
セレクタ１６は、排他論理和演算部４２により復号化された機密ライトデータ２０を下位データバス２２−２へ出力する。
また、第２論理積演算部５８がローレベルの信号を出力している場合、セレクタ１６は、内部バス５９を選択する。
セレクタ１６は、上位データバス２２−１からバイトマスク部５１へ入力されたスクランブルライトデータを下位データバス２２−２へ出力する。
【００５９】
ＣＰＵ１１が機密データ書き込みブロック１４にライトアクセスする場合、ライトアドレス比較器５５は、ＣＰＵ１１がＣＰＵバス１７へ出力したアドレスと、ライトアドレスレジスタ５４のアドレスとを比較し、アドレス一致検出信号を出力する。
第１論理積演算部５７は、デスクランブルレジスタ５６がデスクランブル有効を示すハイレベルの信号を出力している場合、ハイレベルの信号を出力する。
【００６０】
また、バイトマスク部５１は、上位データバス２２−１のうち、無効なバイトレーンを０にマスクする。
データ比較器５２は、データバス２２のバス幅において、マスクされた上位データバス２２−１上のデータと、スクランブルメモリ４３に記憶されているデータとを比較する。
これらのデータが完全に一致する場合、データ比較器５２は、ハイレベルの信号を出力する。第２論理積演算部５８は、ハイレベルの信号を出力する。
これにより、セレクタ１６は、排他論理和演算部４２を選択する。
【００６１】
スクランブルメモリ４３は、データの一致を判定されたデータセットの乱数データを排他論理和演算部４２へ出力する。
排他論理和演算部４２は、ＣＰＵ１１が上位データバス２２−１へ出力したスクランブルライトデータと、当該スクランブルライトデータの暗号化に用いた乱数データとの排他論理和を演算する。
これにより、下位データバス２２−２には、排他論理和演算部４２により復号されることにより生成された機密ライトデータ２０へ出力される。
機密データ書き込みブロック１４は、スクランブルライトデータの替わりに、この機密ライトデータ２０を書き込む。
【００６２】
これに対して、例えばＣＰＵ１１が通常データブロック１２にライトアクセスする場合、リードアドレス比較器４５は、ＣＰＵ１１がＣＰＵバス１７へ出力したアドレスが、リードアドレスレジスタ４４のアドレスと一致しないと判断する。
セレクタ１６は、上位データバス２２−１を選択する。
これにより、下位データバス２２−２には、ＣＰＵ１１が上位データバス２２−１へ出力した通常データ１８が出力される。
通常データブロック１２には、ＣＰＵ１１が出力した通常データ１８が書き込まれる。
【００６３】
以上のように、バス制御部１５は、ＣＰＵ１１がスクランブルライトデータを機密データ書き込みブロック１４に書き込む場合に、ＣＰＵ１１から出力されたスクランブルライトデータをＣＰＵバス１７上で復号する。
これにより、機密データ書き込みブロック１４には、復号された機密ライトデータ２０が書き込まれる。
【００６４】
図９は、図１の情報処理装置１での機密ライトデータ２０の書き込み動作を示すタイミングチャートである。
図９（Ａ）はアドレスバス２１、図９（Ｂ）は下位データバス２２−２上のデータ、図９（Ｃ）は上位データバス２２−１上のデータである。
【００６５】
そして、たとえば通常データ１８を書き込む場合にはセレクタ１６はバイトマスク部５１を選択するため、ＣＰＵ１１が上位データバス２２−１へ出力した通常データ１８がそのまま下位データバス２２−２へ出力されている。
この場合、ＣＰＵ１１は、自ら出力した書込みデータをそのまま書き込むことができる。
これに対して、スクランブルライトデータを書き込む場合にはセレクタ１６は排他論理和演算部４２を選択する。
ＣＰＵ１１が上位データバス２２−１へ出力したスクランブルライトデータは、復号化（デスクランブル化）された上で下位データバス２２−２へ出力されている。
この場合、ＣＰＵ１１が出力した暗号化された機密データは、ＣＰＵバス１７上で復号化されて、機密データ書き込みブロック１４に書き込まれることになる。
【００６６】
［スクランブルメモリ４３についての説明］
図１０および図１１は、図１のスクランブルメモリ４３のデータ構造の説明図である。
図１０に示すように、スクランブルメモリ４３は、複数組のデータセットを、データサイズ毎に分類して記憶する。
データセットは、図１１に示すように、機密リードデータ１９を暗号化したスクランブルリードデータと、その暗号化に用いた乱数データとを有する。
【００６７】
図１のＣＰＵ１１は、データバス２２の４個のバイトレーン２４から、１個のバイトレーン２４を選択するバイトアクセス、２個のバイトレーン２４を選択するハーフワードアクセス、または４個のバイトレーン２４を選択するワードアクセスを実行する。
スクランブルメモリ４３は、このバイトアクセス、ハーフワードアクセスおよびワードアクセス毎に複数組のデータセットを記憶する。
そのため、ＣＰＵ１１が機密データ読み出しブロック１３から機密リードデータ１９を読出す場合には、スクランブルメモリ４３には、図１０に示すように、新たなデータセットとバイトイネーブル信号とが入力される。
そして、スクランブルメモリ４３は、バイトイネーブル信号の情報から、どのデータサイズに格納するかを判断する。
【００６８】
また、スクランブルメモリ４３は、図１１に示すように、新たに入力されたスクランブルリードデータと乱数データとを対応付けて、該当するデータサイズのデータセットとして記憶する。
例えば、有効なバイトレーンがビット１５〜８で、データバスの値が「０ｘ０１２３４５６７」の場合、データバスのサイズはバイトとなるので、バイトサイズのメモリ領域を選択し、「０ｘ４５」を保存する。
ただし、作成されたスクランブルリードデータと同じ値のスクランブルリードデータがスクランブルメモリ４３にすでに存在する場合は、再度乱数の生成からやり直し、異なるスクランブルリードデータが得られるまで処理を繰り返す。
なお、スクランブル化の精度は乱数の品質に依存するので、より安全性を高めたい場合は品質の良い乱数を使用するか、または単純な排他論理和演算によるスクランブル化ではなく、暗号化処理を実施してもよい。
【００６９】
次に、ＣＰＵ１１が、機密データ読み出しブロック１３から読み出したスクランブルリードデータを、スクランブルライトデータとして機密データ書き込みブロック１４へ書き込む場合について説明する。
この場合、スクランブルメモリ４３には、図１０に示すように、新たなデータセットとバイトイネーブル信号とが入力される。
スクランブルメモリ４３は、バイトイネーブル信号の情報から、どのバイトレーン２４へデータを出力するのかを判断する。
スクランブルメモリ４３は、特定したバイトレーン２４へ、自ら記憶していた、対応するデータサイズのスクランブルリードデータを出力する。
また、スクランブルメモリ４３は、対応する乱数データも出力する。
【００７０】
そして、スクランブルメモリ４３は、第２論理積演算部５８の出力がハイレベルになるまで、複数のスクランブルリードデータを順番に出力する。
第２論理積演算部５８の出力がハイレベルになると、スクランブルメモリ４３は、そのときの出力を保持する。
また、出力中のデータセットが復号に使用されると、図１１に示すように、スクランブルメモリ４３は、当該データセットを破棄する。
スクランブルメモリ４３は、たとえば第２論理積演算部５８の出力がハイレベルからローレベルに変化することに基づいて、当該データセットを破棄すればよい。
【００７１】
このように、スクランブルメモリ４３は、有効なバイトレーン２４のデータのみを記憶することにより、所定数のデータセットを記憶するために必要となる容量を削減できる。
スクランブルメモリ４３からスクランブルリードデータを読み出すときは、データバス２２のどのバイトレーン２４が有効であるかを示すバイトイネーブル信号を参照する。
有効なバイトレーン２４情報からデータバス２２のサイズを確認し、データバス２２のサイズに合わせたメモリ領域から、比較するスクランブルリードデータを選択する。
このとき選択するスクランブルリードデータは、有効なバイトレーン２４へ出力され、無効なバイトレーン２４には０が埋め込まれる。
例えば、有効なバイトレーン２４がビット１５〜８の場合、データバス２２のサイズは１バイトとなるので、バイトサイズのメモリ領域からスクランブルリードデータを選択する。
選択されたスクランブルリードデータの値が「０ｘ０１２３４５６７」の場合、有効なバイトレーン２４がビット１５〜８のため、「０ｘ４５」が有効となり、他のビットは０埋めされる。
このため、最終的にスクランブルメモリ４３から出力されるスクランブルリードデータの値は、「０ｘ００００４５００」となる。
【００７２】
データバス２２の値は、無効なバイトレーン２４を０でマスクするバイトマスク部５１を通ってから、スクランブルリードデータと一致するかを比較される。
バイトマスク部５１では、データバス２２のどのバイトレーン２４が有効であるかを示すバイトイネーブル信号を参照し、無効なバイトレーン２４を０でマスクする。
例えば、有効なバイトレーン２４がビット１５〜８で、データバス２２の値が「０ｘ０１２３４５６７」の場合、バイトマスク（１３）から出力されるデータバス２２の値は「０ｘ００００４５００」となる。
【００７３】
スクランブルメモリ４３の容量は有限のため、スクランブルメモリ４３の上限に達した場合は、古いデータに対して上書きを行い、古いデータのデスクランブルができなくなる。
よって、一度に読み出せるスクランブルリードデータの読み出しサイズは、スクランブルメモリ４３のサイズまでとなる。
【００７４】
なお、機密データ書き込みブロック１４に、スクランブルライトデータと同じ値のデータの書き込みを行う場合（つまり、デスクランブルしないで書き込みを行いたい場合）、ＣＰＵ１１は、以下の処理を実施する。
すなわち、ＣＰＵ１１は、まず、データをデスクランブルしてしまわないように、事前にバス制御部１５のデスクランブルレジスタ５６を設定する。
その後、ＣＰＵ１１は、スクランブルライトデータの書き込みを実行する。
デスクランブルレジスタ５６の設定がＯｎの場合には、スクランブルライトデータの書き込み時にバス制御部１５においてデスクランブル処理が実行される。
【００７５】
これに対して、デスクランブルレジスタ５６の設定がＯｆｆの場合、ライトデータの書き込み時にバス制御部１５においてデスクランブル処理が実行されない。
ＣＰＵ１１が書き込みを行ったデータバス２２は、そのままの値で機密データ書き込みブロック１４に書き込まれる。
【００７６】
以上のように、本実施形態では、機密データ読み出しブロック１３に記憶されている機密リードデータ１９は、バス制御部１５の乱数発生部４１で生成した乱数データによりスクランブル化され、ＣＰＵ１１へ読み込まれる。
これにより、ＣＰＵ１１から機密リードデータ１９を隠蔽できる。
また、ＣＰＵ１１は、スクランブルリードデータを、スクランブルライトデータとして機密データ書き込みブロック１４に書き込むことができる。
この際、スクランブルライトデータは、スクランブルメモリ４３に保持されている乱数データによりデスクランブルされ、機密データ書き込みブロック１４に書き込まれる。
このようにＣＰＵ１１は、ＣＰＵ１１に対して機密性を要求される機密データについては、スクランブル化された状態でしかリードライトアクセスできなくなる。
ソフトウェアによってＣＰＵ１１を制御可能なソフトウェア設計者は、機密データの内容を知ることができない。
また、機密データは、機密データ読み出しブロック１３と機密データ書き込みブロック１４と間でＣＰＵ１１により転送可能である。
【００７７】
このように本実施形態では、ＣＰＵ１１に機密データの内容を知られることなく、機密データの転送が可能になる。
よって、本実施形態では、たとえば機密データの開示を許可されていないソフトウェア開発者がソフトウェアによってＣＰＵ１１を制御可能な状態であるとしても、機密データを保護できる。
また、本実施形態では、外部の攻撃者が強制的にＣＰＵ１１をテストモードに遷移させてＣＰＵ１１を直接制御可能な状態だとしても、機密データを保護できる。
たとえば、機密データの開示を認められない開発者でも、機密データの転送に関するソフトウェアを開発することができる。
ソフトウェア開発用のテストモードの場合においても、機密データの安全性を確保することができる。
また、悪意のある外部の攻撃者によってＣＰＵ１１が乗っ取られた場合でも、ＣＰＵ１１が機密データをそのまま読み出すことはできないため、機密データの機密性は保たれる。
【００７８】
これに対して、本実施形態を適用しない場合には、情報処理装置では、ＣＰＵ１１アクセスから機密データを保護する仕組みが存在しない。このため、ソフトウェア設計者などは、情報処理装置において簡単に機密データの内容を読み出すことができる。
【００７９】
以上の実施形態は、本発明の好適な実施形態の例であるが、本発明は、これに限定されるものではなく、発明の要旨を逸脱しない範囲において種々の変形または変更が可能である。
【００８０】
たとえば上記実施形態では、ＣＰＵ１１、通常データブロック１２、機密データ読み出しブロック１３、機密データ書き込みブロック１４、およびバス制御部１５は、同じＣＰＵバス１７に接続されている。
この他にも例えば、ＣＰＵ１１は第１バスに接続され、通常データブロック１２、機密データ読み出しブロック１３、機密データ書き込みブロック１４などは第２バスに接続され、情報処理装置１は第１バスと第２バスとが接続されるブリッジ回路を有してもよい。
この場合、バス制御部１５は、第１バスを監視しても、第２バスを監視してもよい。
【００８１】
上記実施形態では、バス制御部１５は、リードアクセスの場合にはアドレスのみに基づいて、機密データ読み出しブロック１３が出力した機密リードデータ１９と、機密リードデータ１９を暗号化したスクランブルリードデータとの選択を切り替えている。
また、バス制御部１５は、ライトアクセスの場合にはアドレス、データバス２２上のデータおよびバイトイネーブル信号に基づいて、ＣＰＵ１１が出力したスクランブルライトデータと、それを復号した機密ライトデータ２０との選択を切り替えている。
この他にも例えば、バス制御部１５は、ライトアクセスの場合にアドレスのみに基づいて、ＣＰＵ１１が出力したスクランブルライトデータと、スクランブルライトデータを復号した機密ライトデータ２０との選択を切り替えてもよい。
【００８２】
上記実施形態では、機密データ読み出しブロック１３と、機密データ書き込みブロック１４とが別々のブロックとされている。
この他にも例えば、機密データ読み出しブロック１３と機密データ書き込みブロック１４とが１個のブロックとされてもよい。
【００８３】
上記実施形態では、ＣＰＵ１１、通常データブロック１２、機密データ読み出しブロック１３、機密データ書き込みブロック１４、およびバス制御部１５は、ＣＰＵバス１７とともに１チップの集積回路装置２に組み込まれている。
この他にも例えば、ＣＰＵ１１、通常データブロック１２、機密データ読み出しブロック１３、機密データ書き込みブロック１４、およびバス制御部１５は、別々の集積回路装置２に組み込まれてもよい。
【符号の説明】
【００８４】
１…情報処理装置、２…集積回路装置、１１…ＣＰＵ（データ処理部）、１３…機密データ読み出しブロック（第１被アクセス部）、１４…機密データ書き込みブロック（第２被アクセス部）、１５…バス制御部（バス処理部）、１６…セレクタ、１７…ＣＰＵバス（バス）、１９…機密リードデータ（機密データ）、２０…機密ライトデータ（機密データ）、２１…アドレスバス、２２…データバス、２４…バイトレーン、４１…乱数発生部、４２…排他論理和演算部（暗号処理部、復号処理部）、４３…スクランブルメモリ（記憶部）、５１…バイトマスク部（マスク部）、５２…データ比較器（比較部）、５６…デスクランブルレジスタ（レジスタ）
【図１】
2011175464.tif 000003
【図２】
2011175464.tif 000004
【図３】
2011175464.tif 000005
【図４】
2011175464.tif 000006
【図５】
2011175464.tif 000007
【図６】
2011175464.tif 000008
【図７】
2011175464.tif 000009
【図８】
2011175464.tif 000010
【図９】
2011175464.tif 000011
【図１０】
2011175464.tif 000012
【図１１】
2011175464.tif 000013