説明

機密情報処理装置

【課題】機密情報処理装置の機能変更を随時行うことが可能な機密情報処理装置を提供する。
【解決手段】
自装置内の各リソースについて、アクセスを許可するか否かの判定基準となるアクセス制御レベルを格納している制御部102と、更新対象プログラムを格納している機密情報格納部105と、外部装置からの更新要求の受取に応じて、更新対象プログラムを更新する更新処理を行う内部CPU103とを備える機密情報処理装置であって、制御部102は、各アクセス制御レベルに従って、外部装置から各リソースへのアクセスを許可するか否かを決定し、内部CPU103は、更新処理が行われている間、アクセス制御レベルが、外部装置からのアクセスを許可する状態にあり、かつ、更新処理の過程においてアクセスするリソースのアクセス制御レベルを、外部装置からのアクセスを不許可とするアクセス制御レベルに変更する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機密情報処理装置の有する機密情報処理プログラムの更新処理の技術に関する。
【背景技術】
【0002】
著作権保護が必要なコンテンツを扱うシステムにおいては、コンテンツを復号化するための鍵や復号化されたコンテンツなど機密情報の漏洩を防ぐ必要がある。機密情報の漏洩を防ぐための技術として、システム全体の制御を行うCPUとは異なる、機密情報を扱う専用CPUと、専用CPUで実行するプログラムおよび鍵などの機密情報を格納したメモリと、暗号演算回路とで構成される機密情報処理装置を設け、システム全体の制御を行うCPUからは専用CPUで実行するプログラムおよび機密情報にアクセスできないように制限するための技術が特許文献1に開示されている。
【0003】
これにより、装置内のセキュリティレベルを向上させることができ、コンテンツの不正実行を有効に防止することができる。
【特許文献1】特開2004−96666号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら上記従来技術では、外部からのアクセスにより、専用CPUで実行するプログラムを更新することができないため、前記機密情報処理装置が組み込まれたシステムが製品として出荷された後は機密情報処理装置の機能変更を随時行うことができないと言う問題があった。
本発明は、上記の問題点に鑑み、機密情報の漏洩を有効に防止しつつ、機密情報処理装置の機能変更を随時行うことが可能な機密情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0005】
上記課題を解決するために、本発明は、外部装置から自装置内部の各リソースへのアクセスを制御する機密情報処理装置であって、前記各リソースについて、外部装置からのアクセスを許可するか否かの判定基準となるアクセス制御レベルを格納しているレベル格納手段と、更新対象プログラムを格納しているプログラム格納手段と、外部装置から前記更新対象プログラムの更新要求を受け取る受取手段と、前記更新要求の受取に応じて、更新対象プログラムを更新する更新処理を行う更新手段と、前記各アクセス制御レベルに従って、外部装置から前記各リソースへのアクセスを許可するか否かを決定するアクセス制御手段と、前記更新処理が行われている間、前記レベル格納手段に格納されている各リソースのアクセス制御レベルの内、アクセス制御レベルが、外部装置からのアクセスを許可する状態にあり、かつ、前記更新処理の過程において前記更新手段によってアクセスされるリソースのアクセス制御レベルを、外部装置からのアクセスを不許可とするアクセス制御レベルに変更する変更手段とを備える。
【0006】
又、本発明は、外部装置から自装置内部の各リソースへのアクセスを制御する機密情報処理装置に用いる機密情報処理方法であって、前記機密情報処理装置は、前記各リソースについて、外部装置からのアクセスを許可するか否かの判定基準となるアクセス制御レベルを格納しているレベル格納手段と、更新対象プログラムを格納しているプログラム格納手段とを備え、前記機密情報処理方法は、外部装置から前記更新対象プログラムの更新要求を受け取る受取ステップと、前記更新要求の受取に応じて、更新対象プログラムを更新する更新処理を行う更新ステップと、前記各アクセス制御レベルに従って、外部装置から前記各リソースへのアクセスを許可するか否かを決定するアクセス制御ステップと、前記更新処理が行われている間、前記レベル格納手段に格納されている各リソースのアクセス制御レベルの内、アクセス制御レベルが、外部装置からのアクセスを許可する状態にあり、かつ、前記更新処理の過程においてアクセスされるリソースのアクセス制御レベルを、外部装置からのアクセスを不許可とするアクセス制御レベルに変更するランク変更ステップとを含むこととすることができる。
【0007】
又、本発明は、外部装置から自装置内部の各リソースへのアクセスを制御する機密情報処理装置において、機密情報処理を実行させるプログラムであって、前記機密情報処理装置は、前記各リソースについて、外部装置からのアクセスを許可するか否かの判定基準となるアクセス制御レベルを格納しているレベル格納手段と、更新対象プログラムを格納しているプログラム格納手段とを備え、前記機密情報処理は、外部装置から前記更新対象プログラムの更新要求を受け取る受取ステップと、前記更新要求の受取に応じて、更新対象プログラムを更新する更新処理を行う更新ステップと、前記各アクセス制御レベルに従って、外部装置から前記各リソースへのアクセスを許可するか否かを決定するアクセス制御ステップと、前記更新処理が行われている間、前記レベル格納手段に格納されている各リソースのアクセス制御レベルの内、アクセス制御レベルが、外部装置からのアクセスを許可する状態にあり、かつ、前記更新処理の過程においてアクセスされるリソースのアクセス制御レベルを、外部装置からのアクセスを不許可とするアクセス制御レベルに変更するランク変更ステップとを含むこととすることができる。
【0008】
又、本発明は、外部装置から自装置内部の各リソースへのアクセスを制御する機密情報処理装置において、機密情報処理を実行させるプログラムを記録したコンピュータ読取可能な記録媒体であって、前記機密情報処理装置は、前記各リソースについて、外部装置からのアクセスを許可するか否かの判定基準となるアクセス制御レベルを格納しているレベル格納手段と、更新対象プログラムを格納しているプログラム格納手段とを備え、前記機密情報処理は、外部装置から前記更新対象プログラムの更新要求を受け取る受取ステップと、前記更新要求の受取に応じて、更新対象プログラムを更新する更新処理を行う更新ステップと、前記各アクセス制御レベルに従って、外部装置から前記各リソースへのアクセスを許可するか否かを決定するアクセス制御ステップと、前記更新処理が行われている間、前記レベル格納手段に格納されている各リソースのアクセス制御レベルの内、アクセス制御レベルが、外部装置からのアクセスを許可する状態にあり、かつ、前記更新処理の過程においてアクセスされるリソースのアクセス制御レベルを、外部装置からのアクセスを不許可とするアクセス制御レベルに変更するランク変更ステップとを含むこととすることができる。
【発明の効果】
【0009】
本発明は、上記構成を備えることにより、更新処理を行っている間、外部装置からのアクセスを制限することができるので、機密情報の漏洩を有効に防止しつつ、機密情報処理装置の機能変更を外部から随時行うことができる。
ここで、前記変更手段は、前記更新処理が終了すると、変更したアクセス制御レベルを変更前のアクセス制御レベルに再変更することとしてもよい。
【0010】
これにより、更新処理の終了後は、外部からのアクセスを更新処理時に比べて、緩和することができるので、機密情報処理装置において、更新処理以外の処理を実行中は、外部からの通常どおりのアクセスを担保することができる。
ここで、前記アクセス制御レベルは、ランクで示され、前記機密情報処理装置は、外部装置から当該外部装置のアクセス制御レベルを受取るレベル受取手段を備え、前記アクセス制御手段は、前記外部装置のアクセス制御レベルの示すランクが、前記各リソースのアクセス制御レベルの示すランク以上である場合に、前記外部装置から当該リソースへのアクセスを許可し、前記外部装置のアクセス制御レベルの示すランクが、前記各リソースのアクセス制御レベルの示すランク以上でない場合に、前記外部装置から当該リソースへのアクセスを許可しないこととしてもよい。
【0011】
これにより、アクセス制御レベルを内部リソースの機密性の必要度に応じて設定することができるので、外部からの機密性の高いリソースへのアクセスを重点的に制限し、機密性の低いリソースに対しては、外部からのアクセスを容易にするというような必要に応じた柔軟で、きめの細かいアクセス制御を実現することができる。
ここで、前記受取手段は、前記リソースの1つであり、前記アクセス制御手段によって、前記外部装置の前記受取手段へのアクセスが許可された場合に限り、当該外部装置からの前記更新要求を受取ることとしてもよい。
【0012】
これにより、外部装置からの更新要求の受取を特定の外部装置からのものに制御することができるので、外部装置からの更新要求を無制限に受け取り、無駄な更新処理が実行されるのを有効に防止することができる。
ここで、前記機密情報処理装置はさらに、ランクの上限値を格納している上限値格納手段を備え、前記アクセス制御手段は、前記外部装置のアクセス制御レベルの示すランクが、上限値を超える場合に、前記各リソースへのアクセスを許可しないこととしてもよい。
【0013】
又、前記機密情報処理装置はさらに、ランクの上限値を格納している上限値格納手段を備え、前記アクセス制御手段は、前記外部装置のアクセス制御レベルの示すランクが、上限値を超える場合に、当該外部装置のアクセス制御レベルの示すランクを上限値と同一のランクとみなして、当該外部装置から前記各リソースへのアクセスを許可するか否かを決定することとしてもよい。
【0014】
これにより、外部装置に対してアクセスを許可する外部装置のアクセス制御レベルを制限することができるので、不正な操作により、外部装置のアクセス制御レベルの示すランクが高く設定された場合においても、当該外部装置からのアクセスを有効に排除することができる。
ここで、前記機密情報処理装置はさらに、前記外部装置の認証を行う認証手段を備え、前記アクセス制御手段は、前記認証手段によって前記外部装置が認証されない場合に、前記外部装置から各リソースへのアクセスを許可しないこととしてもよい。
【0015】
これにより、認証されない外部装置のアクセスは拒否されるので、外部装置からの不正アクセスを効果的に防止することができる。
ここで、前記機密情報処理装置は、外部装置から、暗号化された、前記更新対象プログラムの更新プログラムを受取り、復号化する復号化手段を備え、前記復号化手段は、前記変更手段によるアクセス制御レベルの変更対象となるリソースであり、復号化した前記更新プログラムを出力するデータ出力部を有し、前記更新手段は、前記データ出力部にアクセスして、復号化された前記更新プログラムを受取り、当該更新プログラムを前記プログラム格納手段に格納することにより、前記更新処理を行うこととしてもよい。
【0016】
これにより、更新処理が実行されている間、復号後の更新プログラムを出力するデータ出力部への外部からのアクセスが制限されるので、外部から機密情報を入力する場合におけるセキュリティを担保することができる。
ここで、前記プログラム格納手段は、プログラム格納部と退避部とを有し、前記プログラム格納部は、前記更新対象プログラムと当該更新対象プログラムのコンテキストとを格納し、前記更新手段は、前記更新対象プログラムのコンテキストを前記更新プログラムにおいて引継ぐか否かを判定する引継判定手段と、引継ぐ場合に、前記コンテキストを前記退避部に退避する退避手段と前記更新対象プログラムのハッシュ値を算出するハッシュ値算出手段とを有し、前記復号化手段はさらに、前記外部装置から、前記更新対象プログラムのハッシュ値を暗号化したハッシュ値を受取り、復号化して、前記データ出力部に出力し、前記更新手段は、前記データ出力部から復号された前記更新対象プログラムのハッシュ値を受取り、受取ったハッシュ値と算出したハッシュ値とが一致する場合に限り、前記更新プログラムと前記更新対象プログラムのコンテキストとを前記プログラム格納部に格納することとしてもよい。
【0017】
又、前記更新手段はさらに、受取った前記更新対象プログラムのハッシュ値と算出した前記更新対象プログラムのハッシュ値とが一致しない場合に、前記退避部に格納されている前記更新対象プログラムのコンテキストを消去することとしてもよい。
これにより、更新対象のプログラムのハッシュ値に基づいて、外部装置から入力された更新プログラムに更新対象のプログラムのコンテキストを引継がせてよいか否かを判定することできるので、コンテキストが不正に利用されるのを効果的に防止することができる。
【0018】
ここで、前記復号化手段はさらに、前記外部装置から、前記更新プログラムのハッシュ値を暗号化したハッシュ値を受取り、復号化して、前記データ出力部に出力し、前記ハッシュ値算出手段は、受取った前記更新対象プログラムのハッシュ値と算出した更新対象プログラムのハッシュ値とが一致する場合に、さらに、前記更新プログラムのハッシュ値を算出し、前記更新手段は、前記データ出力部から復号化された前記更新プログラムのハッシュ値を受取り、さらに、受取った前記更新プログラムのハッシュ値と算出した前記更新プログラムのハッシュ値とが一致する場合に限り、前記更新プログラムと前記更新対象プログラムのコンテキストとを前記プログラム格納部に格納することとしてもよい。
【0019】
又、前記更新手段はさらに、受取った前記更新プログラムのハッシュ値と算出した前記更新プログラムのハッシュ値とが一致しない場合に、前記プログラム格納手段に格納されている前記更新プログラムを消去することとしてもよい。
これにより、外部装置から入力された更新プログラムが改ざんされていないことをハッシュ値に基づいて、確認した上で、更新プログラムを受取ることができるので、不正に改ざんされたプログラムが、機密情報処理装置内に格納されるのを事前に防止することができる。
【0020】
ここで、前記プログラム格納手段は、プログラム格納部と退避部とを有し、前記プログラム格納部は、前記更新対象プログラムと前記更新対象プログラムのコンテキストとを格納し、前記退避部は、初期プログラムから前記更新対象プログラムに更新されるまでの各更新回のプログラムのハッシュ値に基づいて算出された複数世代ハッシュ値とを格納し、前記更新手段は、前記更新対象プログラムのコンテキストを前記更新プログラムにおいて引継ぐか否かを判定する引継判定手段と、引継ぐ場合に、前記コンテキストを前記退避部に退避する退避手段とを有し、前記復号化手段はさらに、前記外部装置から、複数世代ハッシュ値を暗号化したハッシュ値を受取り、復号化して、前記データ出力部に出力し、前記更新手段は、前記データ出力部から復号された複数世代ハッシュ値を受取り、受取った複数世代ハッシュ値と、前記退避部に格納されている複数世代ハッシュ値とが一致する場合に限り、前記更新プログラムと前記更新対象プログラムのコンテキストとを前記プログラム格納部に格納することとしてもよい。
【0021】
又、前記更新手段はさらに、受取った複数世代ハッシュ値と前記退避部に格納されている複数世代ハッシュ値とが一致しない場合に、前記退避部に格納されている前記更新対象プログラムのコンテキストを消去することとしてもよい。
これにより、複数世代ハッシュ値に基づいて、外部装置から入力された更新プログラムに更新前のプログラムのコンテキストを引継がせてよいか否かを判定できるので、各更新回のプログラムのハッシュ値が全て流出しない限り、不正利用者によって外部から入力された更新プログラムによってコンテキストが不正に利用されることはなく、コンテキストの不正な引継行為を効果的に防止することができる。
【0022】
ここで、前記復号化手段はさらに、前記外部装置から、前記更新プログラムのハッシュ値を暗号化したハッシュ値を受取り、復号化して、前記データ出力部に出力し、前記更新手段は、受取った複数世代ハッシュ値と前記退避部より取得した複数世代ハッシュ値とが一致する場合に、さらに、前記更新プログラムのハッシュ演算を行うことにより、前記更新プログラムのハッシュ値を算出し、さらに前記データ出力部から復号された前記更新プログラムのハッシュ値を受取り、受取った前記更新プログラムのハッシュ値と算出した前記更新プログラムのハッシュ値とが一致する場合に限り、前記更新プログラムと前記更新対象プログラムのコンテキストとを前記プログラム格納部に格納することとしてもよい。
【0023】
又、前記更新手段はさらに、受取った前記更新プログラムのハッシュ値と算出した前記更新プログラムのハッシュ値とが一致しない場合に、前記プログラム格納手段に格納されている前記更新プログラムを消去することとしてもよい。
これにより、外部装置から入力された更新プログラムが改ざんされていないことをハッシュ値に基づいて、確認した上で、更新プログラムを受取ることができるので、不正に改ざんされたプログラムが、機密情報処理装置内に格納されるのを事前に防止することができる。
【0024】
ここで、前記更新手段はさらに、取得した複数世代ハッシュ値と算出した前記更新プログラムのハッシュ値とを連結し、連結したものについてハッシュ演算を行うことにより、ハッシュ値を算出し、前記退避部に格納されている複数世代ハッシュ値を算出したハッシュ値に書換えることとしてもよい。
これにより、更新プログラムに更新対象プログラムのコンテキストが引継がれた場合に、複数世代ハッシュ値を更新することができるので、外部からのコンテキストの不正な引継行為に対する防御力をより高めることができる。
【0025】
ここで、前記プログラム格納手段はさらに、前記更新対象プログラムのコンテキストを格納し、前記更新手段は、前記更新対象プログラムのコンテキストを前記更新プログラムにおいて引継ぐか否かを判定する引継判定手段と、引継がない場合に、前記コンテキストを出力するか否かを判定する出力判定手段と、出力する場合に、前記更新対象プログラムのハッシュ値を算出するハッシュ値算出手段とを有し、前記機密情報処理装置はさらに、算出されたハッシュ値と前記コンテキストを暗号化する暗号化手段を備え、前記更新手段は、暗号化された前記ハッシュ値と前記コンテキストとを連結して自装置外部へ出力することとしてもよい。
【0026】
これにより、更新プログラムに引継がれない更新対象プログラムのコンテキストを更新対象プログラムのハッシュ値と関連付けて外部に一時的に退避させることができるので、機密情報処理装置内において、更新対象プログラムの再使用のため外部から退避させたコンテキストを入力する場合に、ハッシュ値に基づいて、外部から入力されたコンテキストが、当該更新対象プログラムのコンテキストであるか否かを容易に確認することができる。
【0027】
ここで、前記プログラム格納手段は、プログラム格納部と退避部とを有し、前記プログラム格納部は、前記更新対象プログラムと前記更新対象プログラムのコンテキストとを格納し、前記更新手段は、前記更新対象プログラムのコンテキストを前記更新プログラムにおいて引継ぐか否かを判定する引継判定手段と、引継がない場合に、前記コンテキストを前記退避部に退避するか否かを判定する退避判定手段と、退避する場合に、前記更新対象プログラムのハッシュ値を算出するハッシュ値算出手段と前記ハッシュ値と前記コンテキストとを連結して前記退避部へ退避する退避手段とを有することとしてもよい。
【0028】
これにより、更新プログラムに引継がれない更新対象プログラムのコンテキストを更新対象プログラムのハッシュ値と関連付けて退避部に一時的に退避させることができるので、機密情報処理装置内において、更新対象プログラムの再使用のため外部から退避させたコンテキストを入力する場合に、ハッシュ値に基づいて、退避部から入力されたコンテキストが、当該更新対象プログラムのコンテキストであるか否かを容易に確認することができる。
【0029】
ここで、前記復号化手段はさらに、前記外部装置から暗号化された、更新プログラムのハッシュ値と更新プログラムのコンテキストとを受取り、復号化し、前記更新手段は、
前記更新プログラムのハッシュ値を算出するハッシュ値算出手段と算出したハッシュ値と復号化された前記更新プログラムのハッシュ値とが一致するか否かを判定するハッシュ値判定手段とを有し、前記更新手段は、一致する場合に、復号化された前記コンテキストを前記プログラム格納手段に格納されている前記更新プログラムのコンテキストとして格納し、一致しない場合に、前記プログラム格納手段に格納されている前記更新プログラムを消去することとしてもよい。
【0030】
これにより、外部から入力されたコンテキストがハッシュ値と関連付けられて入力されるので、入力されたコンテキストが更新プログラムの正しいコンテキストであるか否かを容易に確認することができ、コンテキストの不正入力による機密情報処理装置の機能改ざん行為を有効に防止することができる。
ここで、前記プログラム格納手段は、プログラム格納部と退避部とを有し、前記プログラム格納部は、前記更新プログラムを格納し、前記退避部は、前記更新プログラムのコンテキストと当該更新プログラムのハッシュ値とを連結した連結データを複数、格納し、前記更新手段は、前記更新プログラムのハッシュ値を算出するハッシュ値算出手段と、前記退避部に、算出したハッシュ値と同じハッシュ値を有する連結データが格納されているか否かを判定する連結データ判定手段とを有し、格納されている場合に、前記更新手段は、前記退避部に格納されている該当する連結データに含まれる前記更新プログラムのコンテキストを前記プログラム格納部に格納し、格納されていない場合に、前記プログラム格納部に格納されている前記更新プログラムを消去することとしてもよい。
【0031】
これにより、外部から入力された更新プログラムが、機密情報処理装置内に格納されているコンテキストに対する更新プログラムであるか否かを、コンテキストと関連付けられているハッシュ値に基づいて確認することができるので、外部からの更新プログラムの不正入力によるコンテキストの不正使用を有効に防止することができる。
ここで、前記プログラム格納手段は、プログラム格納部と退避部とを有し、前記プログラム格納部は、前記更新対象プログラムと前記更新対象プログラムのコンテキストとを格納し、前記退避部は、暗号化された更新対象プログラムの示す値である連鎖値とを格納し、前記更新プログラムは、暗号鍵と前記連鎖値とを用いて暗号化され、前記更新手段は、前記更新対象プログラムのコンテキストを前記更新プログラムにおいて引継ぐか否かを判定する引継判定手段と、引継ぐ場合に、前記コンテキストを前記退避部に退避する退避手段とを有し、前記復号化手段はさらに、前記外部装置から、前記外部装置から受取った前記更新プログラムを前記暗号鍵と、前記退避部に格納されている前記連鎖値とを用いて復号化して、前記データ出力部に出力し、前記更新手段は、前記データ出力部から復号された前記更新プログラムを受取り、受取った前記更新プログラムと前記更新対象プログラムのコンテキストとを前記プログラム格納部に格納することとしてもよい。
【0032】
これにより、更新対象プログラムのコンテキストを引継ぐべき更新プログラムが、暗号鍵と、更新対象プログラムに固有の値である連鎖値との両方を用いて暗号化され、機密情報処理装置内で同じ暗号鍵と連鎖値との両方を用いて復号されるので、不正利用者は、暗号鍵と連鎖値との両方を知らない限り、外部から不正に更新プログラムを入力し、入力した更新プログラムを復号させることができないため、コンテキストの不正な引継行為を効果的に防止することができる。
【0033】
ここで、前記プログラム格納手段は、前記更新対象プログラムを格納しているバンクと前記更新対象プログラムの更新プログラムを格納しているバンクとを有し、前記更新手段は、前記プログラム格納手段のバンクを切り替えることにより、前記更新処理を行うこととしてもよい。
又、前記更新対象プログラムを格納しているバンクは、当該更新対象プログラムのコンテキストを格納し、前記受取手段は、切り替えるべき、前記更新プログラムを格納しているバンクを指定するバンク情報を前記更新要求として受取り、前記更新手段は、前記更新対象プログラムのコンテキストを前記更新プログラムにおいて引継ぐか否かを判定する引継判定手段と、引継ぐ場合に、前記プログラム格納手段におけるアクセス対象となるバンクを、前記更新対象プログラムを格納しているバンクから前記更新プログラムを格納しているバンクに切り替えるバンク切替手段とを有し、前記更新手段は、切り替えたバンクに、前記更新対象プログラムのコンテキストを格納することとしてもよい。
【0034】
これにより、更新プログラムを内部に格納した状態で、外部から容易にプログラムの更新処理を実行することができるので、機密情報を外部に持ち出すことなく、外部から安全確実にプログラムの更新処理を実行することができる。
ここで、前記更新対象プログラムには、当該更新対象プログラムのコンテキストを引継ぎ可能な、当該更新対象プログラムの更新プログラムが格納されているバンクを特定する情報である引継可能バンク情報が含まれ、前記更新手段はさらに、受取られたバンク情報の指定するバンクと、引継可能バンク情報の特定するバンクとが一致するか否かの判定する引継バンク判定手段を有し、前記バンク切替手段は、一致する場合に限り、前記プログラム格納手段におけるアクセス対象となるバンクを、前記更新対象プログラムを格納しているバンクから前記更新プログラムを格納しているバンクに切り替えることとしてもよい。
【0035】
これにより、外部からの不正アクセスによりバンクが切り替えられるのを効果的に防止することができるので、不正操作による更新プログラムの実行を有効に防止することができる。
ここで、前記アクセス制御レベルは、3段階以上のランクで示される
こととしてもよい。
【0036】
これにより、更新処理の実行時に、特定の外部装置のみがアクセス可能となるようにアクセス制御できると同時に、外部からの機密情報処理装置内のリソースへのアクセスに対しても特定のリソースへのアクセスを制限することができるので、機密性のレベルに応じてフレキシブルなアクセス制御をすることができる。
【発明を実施するための最良の形態】
【0037】
以下本発明を実施するための最良の形態について、図面を参照しながら説明する。
(実施の形態1)
<構成>
図1は本発明の実施の形態1に係る機密情報処理装置100の構成を示す機能ブロック図である。
【0038】
機密情報処理装置100は、外部インタフェース(以下、外部I/Fという。)101、制御部102、内部CPU103、暗号演算部104、機密情報格納部105から構成され、機密情報処理装置100には、外部装置120及び121が外部I/F101を介して接続されている。ここでは、説明を簡略化するため、機密情報処理装置100に接続されている外部装置を2つとしているが、外部装置は、1つであってもよいし、3つ以上であってもよい。
【0039】
外部I/Fは、外部装置120、121からランク情報や更新後のプログラムや当該プログラムに使用するコンテキストなどの各種データの入力を受け取り、制御部102に出力する。
ここで、「ランク情報」とは、機密情報処理装置内の各リソースにアクセスを許可するか否かの判断基準となるランクを示す情報のことをいい、外部装置120、121および機密情報処理装置100内の各リソースにそれぞれランク情報が予め設定されており、外部装置120、121及び内部CPU103が機密情報処理装置100内の各リソースへのアクセスをする際に、それぞれランク情報を図1に示す専用バスを介して制御部102に出力する。
【0040】
制御部102は、アクセス制御部1021、上限ランク格納部1023、プログラム更新要求レジスタ1024から構成される。
アクセス制御部1021は、ランク対応テーブルを格納しているランク対応テーブル格納部1022を有し、外部装置120、121及び内部CPU103から出力される各ランク情報に基いて、当該外部装置或いは内部CPU103から要求された機密情報処理装置100内のアクセス対象のリソースへのアクセスを制御する。
【0041】
具体的には、アクセス制御部1021は、機密情報処理装置100内の各リソースのアドレスと当該リソースに設定されているランクとの対応関係を示すランク対応テーブルを参照して、アクセス対象の示すランクを特定し、特定したランクと出力されたランク情報の示すランクとを比較して、出力されたランクが特定したランクより低くない場合に、当該アクセス対象へのアクセスを許可し、低い場合に、当該アクセス対象へのアクセスを拒否する制御を行う。
【0042】
図3は、ランク対応テーブルの具体例を示す図である。図3においては、各リソースを特定するためのアドレスを説明の都合上、名前で示しているが、実際には、各リソースに付与されたアドレスがランク対応テーブルに記述されている。
上限ランク格納部1023は、ランク上限値を格納している。
ここで、「ランク上限値」とは、外部装置120、121から出力されたランク情報の示すランクが不当に高いか否かを判定する基準となる閾値のことをいい、出力されたランク情報の示すランクがこの閾値より高い場合には、制御部102は、当該外部装置からのアクセス対象へのアクセスを拒否し、出力されたランク情報の示すランクがこの閾値より高くない場合には、さらに当該外部装置からのアクセス対象へのアクセスに対し、上記に説明したアクセス制御部1021によるアクセス制御が行われる。
【0043】
プログラム更新要求レジスタ1024は、外部装置120、121及びCPU103からのプログラム更新要求が有ったか否かを示す更新要求フラグを保持している。
制御部102は、プログラム更新要求レジスタの更新要求フラグを監視し、更新要求フラグが、プログラム更新要求が有ったことを示している場合に、内部CPU103に更新用プログラムの実行の指示をする。
【0044】
内部CPU103は、制御部102からの上記指示に応じて、機密情報格納部105の後述する更新用プログラム格納領域に格納されている更新用プログラムを読出し、後述するプログラム更新処理を実行する。
暗号演算部104は、データ入力部1041、演算処理部1042、データ出力部1043から構成される。
【0045】
データ入力部1041は、データ格納用のレジスタを有し、外部装置120、121、内部CPU103より出力されたプログラム、プログラムのコンテキスト、ハッシュ値などの各種データを受取る。
演算処理部1042は、データを暗号化又は復号化するための鍵データを格納する鍵データ格納部を有し、データ入力部1041から入力されるデータを鍵データ格納部に格納されている鍵を用いて暗号化又は復号化し、データ出力部1043に出力する。
【0046】
データ出力部1043は、演算処理部1042から入力される暗号化又は復号化後のデータを格納するためのレジスタを有し、入力されたデータを内部CPU103や外部I/F101を介して外部へ出力する。
機密情報格納部105は、演算用プログラム格納領域1051、更新用プログラム格納領域1052、退避領域1053から構成される。
【0047】
演算用プログラム格納領域1051は、機密情報処理装置100の機能を実現するためのプログラム及び当該プログラムのコンテキスト等を格納するための格納領域である。
図25は、演算用プログラム格納領域1051の構成を示す。演算用プログラム格納領域1051は、2つの格納領域である演算用プログラム格納領域A10511及び演算用プログラム格納領域B10515とから構成され、演算用プログラム格納領域A10511には、演算用プログラム領域10512、コンテキスト退避フラグ領域10513、演算用プログラム格納済フラグ領域10514が含まれ、演算用プログラム格納領域B10515には、コンテキスト引継フラグ領域10516、コンテキスト入力方法フラグ領域10517が含まれる。
【0048】
演算用プログラム領域10512は、機密情報処理装置100の機能を実現するためのプログラム及びそのコンテキストを格納するための領域であり、コンテキスト退避フラグ領域10513は、コンテキスト退避フラグを格納している領域であり、演算用プログラム格納済フラグ領域10514は、演算用プログラム格納済フラグを格納している領域である。
【0049】
ここで、「コンテキスト退避フラグ」とは、後述するプログラム更新処理において、更新前の機密情報処理装置100の機能を実現するためのプログラム(以下、「更新前プログラム」という。)のコンテキストの処理方法を示すフラグのことをいう。
又、「演算用プログラム格納済フラグ」とは、後述するプログラム更新処理において、更新前プログラム及びそのコンテキストが演算用プログラム領域10512に格納済であるか否かを示すフラグのことをいう。
【0050】
コンテキスト引継フラグ領域10516は、コンテキスト引継フラグを格納している領域であり、コンテキスト入力方法フラグ領域は、コンテキスト入力方法フラグを格納している領域である。
ここで、「コンテキスト引継フラグ」とは、後述するプログラム更新処理において、更新前プログラムと差替えるべき、更新前プログラムの一部又は全部を変更した、機密情報処理装置100の機能を実現するためのプログラム(以下、「更新後プログラム」という。)において、更新前プログラムのコンテキストを引継ぐか否かを指示するフラグのことをいう。
【0051】
ここで、「引継ぐ」とは、更新後プログラムにおいて、更新前プログラムのコンテキストを共用することをいう。
又、「コンテキスト入力方法フラグ」とは、後述するプログラム更新処理において、更新後プログラムのコンテキストの入力方法を示すフラグのことをいう。
更新用プログラム格納領域1052は、演算用プログラム格納領域1051に格納されているプログラムのプログラム更新処理を実行させる更新用プログラムを格納している格納領域である。
【0052】
退避領域1053は、演算用プログラム格納領域に格納されているプログラムのコンテキストを一時的に格納するための格納領域である。
外部装置120は、CPU1201を有し、機密情報処理装置100にアクセスする際に、ランク情報とアクセスを要求するアクセス対象を特定するアドレスとを外部I/F101に出力し、アクセスが許可されると、機密情報処理装置100の中の許可されたアクセス対象と各種データの送受信を行う。
【0053】
又、外部装置120は、後述する暗号化第1世代ハッシュ値及び暗号化連結ハッシュ値を外部から取得して、機密情報処理装置100に入力する。
ここで、暗号化第1世代ハッシュ値及び暗号化連結ハッシュ値作成は、外部環境において作成される。
暗号化第1世代ハッシュ値は、更新前プログラムのハッシュ値と更新後プログラムのハッシュ値とを連結して暗号鍵を用いて暗号化することにより作成される。
【0054】
図8は、暗号化第1世代ハッシュ値の作成処理の過程を模式的に示した図である。
又、暗号化連結ハッシュ値は、後述する複数世代ハッシュ値と更新後プログラムのハッシュ値とを連結して暗号化することにより、作成される。
より具体的には、「暗号化連結ハッシュ値」とは、機密情報処理装置100の機能を実現する初期プログラムから複数回更新された各更新回の更新プログラムのハッシュ値に基づいて算出されたハッシュ値(以下、「複数世代ハッシュ値」という。)と最新の更新プログラムのハッシュ値とを連結して、暗号鍵を用いて暗号化したハッシュ値のことをいう。
【0055】
複数世代ハッシュ値は、具体的には、以下の手順に従って算出される。
まず、初期プログラム(以下、「第1世代プログラム」という。)のハッシュ値と更新回数が1回目の更新プログラム(以下、「第2世代プログラムという。」のハッシュ値とが連結され、連結されたハッシュ値に対して、ハッシュ演算を行うことにより最初の複数世代ハッシュ値が算出される。以下、更新回数が2回目の更新プログラム(以下、「第3世代プログラム」という。)のハッシュ値と最初の複数世代ハッシュ値とが連結され、連結されたハッシュ値に対して、同様にしてハッシュ演算を行うことにより、2回目の複数世代ハッシュ値が算出され、複数世代ハッシュ値が更新される。上記の手順を繰り返すことにより、プログラムの更新があるごとに、複数世代ハッシュ値が次々に算出され、更新される。
【0056】
図9は、暗号化連結ハッシュ値の作成処理の過程を模式的に示した図である。
外部装置121は、DSP(Digital Signal Processor)1211を有し、機密情報処理装置100にアクセスする際に、ランク情報とアクセスを要求するアクセス対象を特定するアドレスとを外部I/F101に出力し、アクセスが許可されると、機密情報処理装置100の中の許可されたアクセス対象と各種データの送受信を行う。
【0057】
<動作>
次に機密情報処理装置100の行うアクセス制御処理の動作について説明する。図2は、上記処理の動作を示すフローチャートである。以下、図2のフローチャートを参照して上記処理の動作について説明する。
制御部102は、外部装置120又は121から、外部I/F101を介してランク情報とアクセス対象のアドレスの入力を受取ると(ステップS201)、受取ったランク情報の示すランクと上限ランク格納部1023に格納しているランク上限値とを比較し、ランク情報の示すランクがランク上限値より高いか否かを判定する(ステップS202)。
【0058】
ランク情報の示すランクがランク上限値より高い場合(ステップS202:Y)、制御部102は、外部装置からアクセス対象へのアクセスを拒否する(ステップS205)。
ランク情報の示すランクがランク上限値より高くない場合(ステップS202:N)、制御部102は、アクセス制御部1021に格納しているランク対応テーブルを参照して、ランク情報の示すランクがアクセス対象のリソースのランクよりも低くないか否かを判定する(ステップS203)。
【0059】
ランク情報の示すランクがアクセス対象のリソースのランクよりも低くない場合(ステップS203:Y)、制御部102は、外部装置からアクセス対象へのアクセスを許可し(ステップS204)、ランク情報の示すランクがアクセス対象のリソースのランクよりも低い場合(ステップS203:N)、ステップS205の処理を行う。
なお、機密情報処理装置100は、内部CPU103に対しても、ステップS202の処理を除いて、上記アクセス制御処理の動作を行う。
【0060】
上記アクセス制御処理の具体例として、外部装置120に設定されるランクを2、外部装置121に設定されるランクを1、上限ランク格納部1023に格納されているランクを2、ランク対応テーブルには、各リソースのランクが図3に示すように設定されているとすると、制御部102は、ステップS201において、外部装置120及び121からそれぞれ、ランク情報とアクセス対象とするプログラム更新要求レジスタ1024のアドレスの入力を受け取ると、ステップS202において、受取ったランク情報の示すランクと上限ランク格納部1023に格納しているランク上限値とを比較する。
【0061】
外部装置120及び121のいずれのランクもランク上限値2よりも高くないので(ステップS202:N)、制御部102は、ステップS203の処理に移行し、外部装置120のランク「2」及び外部装置121のランク「1」のそれぞれとアクセス対象のプログラム更新要求レジスタ1024のランク「2」とを比較し、外部装置120に対しては、外部装置120のランクは、プログラム更新要求レジスタ1024のランクよりも低くないので(ステップS203:Y)、外部装置120のプログラム更新要求レジスタ1024へのアクセスを許可し、外部装置121に対しては、外部装置121のランクはプログラム更新要求レジスタ1024のランクよりも低いので(ステップS203:N)、プログラム更新要求レジスタ1024へのアクセスを拒否する(ステップS205)。
【0062】
これにより、外部からの不正なアクセスを事前に検知して、排除することができると同時に、外部からのアクセスを許可する場合においても、機密性の高いリソースとそうでないリソースとでランクを段階的に設定することにより、外部からの機密性の高いリソースへのアクセスを制限しつつ、外部からの必要なリソースへのアクセスを許可することができるので、外部からの機密情報処理装置内のリソースへのアクセス要求に対し、機密性保持の観点から効果的なアクセス制御を実現することができる。
【0063】
次に機密情報処理装置100の行うプログラム更新処理の動作について説明する。図4は、上記処理の動作を示すフローチャートである。以下、図4のフローチャートを参照して、上記動作について説明する。
プログラム更新要求レジスタ1024は、図2のアクセス制御処理によって、プログラム更新要求レジスタ1024へのアクセスが許可された外部装置120から、外部I/F101を介してプログラム更新要求を受取ると(ステップS401)、プログラム更新要求レジスタ1024は、更新要求フラグをプログラム更新要求が有ったこと(以下、「有」という。)を示すフラグに変更する。
【0064】
内部CPU103は、更新要求フラグが「有」を示すと、制御部102からの更新用プログラム実行指示に応じて、更新用プログラム格納領域1052に格納されている更新用プログラムを起動し(ステップS402)、図2のアクセス制御処理によって、アクセス制御部1021へのアクセスが許可されると、アクセス制御部1021のランク対応テーブルの特定のリソース(ここでは、暗号演算部104のデータ入力部1041、演算処理部1042、データ出力部1043とする。)のランクを変更する(ステップS403)。
【0065】
図3は、ステップS403による変更前のランク対応テーブルの具体例を示し、図5は、ステップS403による変更後のランク対応テーブルの具体例を示す。
次に、内部CPU103は、図2のアクセス制御処理によって、演算用プログラム格納領域1051へのアクセスが許可されると、演算用プログラム格納領域1051に格納されている演算用プログラム格納済フラグが「格納済」を示しているか否かを判定する(ステップS404)。
【0066】
演算用プログラム格納領域に格納されている演算用プログラム格納済フラグが「格納済」を示している場合(ステップS404:Y)、内部CPU103は、演算用プログラム格納領域1051に格納されているコンテキスト引継フラグが「引継有」を指示しているか否かを判定する(ステップS405)。
コンテキスト引継フラグが「引継有」を指示している場合(ステップS405:Y)、内部CPU103は、後述するコンテンツ引継入力処理を行い(ステップS407)、処理が終了すると、図2のアクセス制御処理によって、アクセス制御部1021へのアクセスが許可されると、ステップS403において変更した、アクセス制御部1021のランク対応テーブルの特定のリソースのランクを変更前のランクに再変更する(ステップS416)。
【0067】
ステップS404において、演算用プログラム格納領域に格納されている演算用プログラム格納済フラグが「格納済」を示していない場合(ステップS404:N)、内部CPU103は、演算用プログラム格納領域に格納されているコンテンツ入力方法フラグが示す入力方法を判定する(ステップS417)。
ステップS417において、コンテンツ入力方法フラグが外部入力を示している場合、内部CPU103は、後述するコンテキスト外部入力処理を行い(ステップS414)、処理が終了すると、ステップS416の処理を行う。
【0068】
ステップS417において、コンテンツ入力方法フラグが退避入力を示している場合、内部CPU103は、後述する退避コンテキスト入力処理を行い(ステップS415)、処理が終了すると、ステップS416の処理を行う。
ステップS417において、コンテンツ入力方法フラグが入力なしを示している場合、後述するステップ411の処理に移行する。
【0069】
ステップS405において、コンテキスト引継フラグが「引継」を指示していない場合(ステップS405:N)、内部CPU103は、演算用プログラム格納領域1051に格納されているコンテキスト退避フラグが示す更新前プログラムのコンテキストの処理方法を判定する(ステップS406)。
ステップS406において、コンテキスト退避フラグが「外部出力」を示している場合、内部CPU103は、後述するコンテキスト外部出力処理を行い(ステップS408)、処理が終了すると、ステップS414の処理に移行する。
【0070】
ステップS406において、コンテキスト退避フラグが「退避」を示している場合、内部CPU103は、後述するコンテキスト退避処理を行い(ステップS409)、処理が終了すると、ステップS415の処理に移行する。
ステップS406において、コンテキスト退避フラグが「消去」を示している場合、内部CPU103は、演算用プログラム格納領域1051に格納されている更新前プログラムのコンテキストを消去する(ステップS410)。
【0071】
次に暗号演算部104は、図2のアクセス制御処理によってデータ入力部1041へのアクセスを許可された外部装置120から、データ入力部1041への暗号化された更新後プログラムの入力を受取ると(ステップS411)、演算処理部1042において、当該更新後プログラムの復号化を行い(ステップS412)、データ出力部1043に出力する。
【0072】
内部CPU103は、図2のアクセス制御処理によってデータ出力部1043へのアクセスを許可されると、データ出力部1043から復号された更新後プログラムを受取り、さらに、内部CPU103は、図2のアクセス制御処理によって演算用プログラム格納領域1051へのアクセスを許可されると、演算用プログラム格納領域1051に格納し(ステップS413)、ステップS416の処理を行う。
【0073】
次に機密情報処理装置100の行うコンテキスト引継入力処理の動作について説明する。図6及び図7は、上記処理の動作を示すフローチャートである。以下、図6のフローチャートを参照して上記処理の動作について説明する。
図2のアクセス制御処理によって退避領域1053へのアクセスを許可された内部CPU103は、演算用プログラム格納領域1051に格納されている更新前プログラムのコンテキストを退避領域1053に格納することにより、退避し(ステップS601)、さらに、図2のアクセス制御処理によって演算用プログラム格納領域1051へのアクセスを許可されると、演算用プログラム格納領域1051に格納されている更新前プログラムに含まれる依存確認方法フラグの示す依存確認方法を判定する(ステップS602)。
【0074】
ステップS602において、依存確認方法フラグの示す依存確認方法が、第1世代のハッシュ値による確認方法である場合、暗号演算部104は、図2のアクセス制御処理によって、データ入力部1041へのアクセスが許可された外部装置(ここでは、外部装置120)から、暗号化第1世代ハッシュ値のデータ入力部1041への入力を外部I/F101を介して受取り(ステップS603)、受取った暗号化第1世代ハッシュ値を演算処理部1042で復号化し(ステップS604)、更新前プログラムのハッシュ値と更新後プログラムのハッシュ値とを算出し(ステップS605)、データ出力部1043に出力する。
【0075】
次に内部CPU103は、図2のアクセス制御処理によって演算用プログラム格納領域1051へのアクセスを許可されると、演算用プログラム格納領域1051に格納されている更新前プログラムのハッシュ演算処理を行い(ステップS606)、さらに、図2のアクセス制御処理によってデータ出力部1043へのアクセスを許可されると、データ出力部1043から算出された更新前プログラムのハッシュ値を受取り、演算したハッシュ値と算出されたハッシュ値とを比較し、両者が一致するか否かを判定する(ステップS607)。
【0076】
ステップS607において、両者が一致する場合(ステップS607:Y)、内部CPU103は、外部装置120に対し、外部I/F101を介して更新後プログラムの入力を許可する旨通知する(ステップS608)。
次に、暗号演算部104は、図2のアクセス制御処理によってデータ入力部1041へのアクセスが許可された外部装置120から、暗号化された更新後プログラムの、データ入力部1041への入力を外部I/F101を介して受取ると(ステップS609)、受取った更新後プログラムを演算処理部1042で復号化した後、データ出力部1043に出力する。
【0077】
次に内部CPU103は、図2のアクセス制御処理によってデータ出力部1043へのアクセスを許可されると、データ出力部1043から復号された更新後プログラムを受取り、さらに、図2のアクセス制御処理によって演算用プログラム格納領域1051へのアクセスを許可されると、受取った更新後プログラムを演算用プログラム格納領域1051に格納し(ステップS610)、更新後プログラムのハッシュ演算処理を行い(ステップS611)、ステップS605において算出された更新後プログラムのハッシュ値と演算した更新後プログラムのハッシュ値とを比較し、両者が一致するか否かを判定する(ステップS612)。
【0078】
ステップS612において、両者が一致する場合(ステップS612:Y)、内部CPU103は、図2のアクセス制御処理によって退避領域1053へのアクセスを許可されると、ステップS601において、退避領域1053に退避した更新前プログラムのコンテキストを読み出し、さらに、図2のアクセス制御処理によって演算用プログラム格納領域1051へのアクセスを許可されると、演算用プログラム格納領域1051に格納し(ステップS626)、さらに、図2のアクセス制御処理によって退避領域1053へのアクセスを許可されると、退避領域1053に格納している更新前プログラムのコンテキストを消去する(ステップS627)。
【0079】
ステップS612において、両者が一致しない場合(ステップS612:N)、内部CPU103は、図2のアクセス制御処理によって演算用プログラム格納領域1051へのアクセスを許可されると、演算用プログラム格納領域1051に格納されている更新後プログラムを消去し(ステップS622)、ステップS627の処理を行う。
ステップS607において、両者が一致しない場合(ステップS607:N)、内部CPU103は、外部装置120に対し、更新後プログラムの入力を拒否する旨を外部I/F101を介して通知し(ステップS623)、ステップS627の処理を行う。
【0080】
ステップS602において、依存確認方法フラグの示す依存確認方法が、初期プログラムから直前に更新されたプログラムまでの各ハッシュ値を連結した複数世代のハッシュ値による確認方法である場合、暗号演算部104は、図2のアクセス制御処理によって、データ入力部1041へのアクセスが許可された外部装置120から、暗号化連結ハッシュ値のデータ入力部1041への入力を外部I/F101を介して受取り(ステップS613)、受取った暗号化連結ハッシュ値を演算処理部1042で復号化し(ステップS614)、複数世代ハッシュ値と更新後プログラムのハッシュ値を算出し(ステップS615)、データ出力部1043に出力する。
【0081】
次に、内部CPU103は、図2のアクセス制御処理によってデータ出力部1043へのアクセスを許可されると、データ出力部1043から、算出された複数世代ハッシュ値と更新後プログラムのハッシュ値とを受け取り、さらに、図2のアクセス制御処理によって退避領域1053へのアクセスを許可されると、退避領域1053に予め格納されている複数世代ハッシュ値を読み出し、両者の複数世代ハッシュ値を比較し、両者が一致するか否かを判定する(ステップS616)。
【0082】
ステップS616において、両者が一致する場合(ステップS616:Y)、内部CPU103は、外部装置120に対し、外部I/F101を介して更新後プログラムの入力を許可する旨通知する(ステップS617)。
次に、暗号演算部104は、図2のアクセス制御処理によってデータ入力部1041へのアクセスが許可された外部装置120から、暗号化された更新後プログラムの、データ入力部1041への入力を外部I/F101を介して受取ると(ステップS618)、受取った更新後プログラムを演算処理部1042で復号化した後、データ出力部1043に出力する。
【0083】
次に内部CPU103は、図2のアクセス制御処理によってデータ出力部1043へのアクセスを許可されると、データ出力部1043から復号された更新後プログラムを受取り、さらに、図2のアクセス制御処理によって演算用プログラム格納領域1051へのアクセスを許可されると、受取った更新後プログラムを演算用プログラム格納領域1051に格納し(ステップS619)、更新後プログラムのハッシュ演算処理を行い(ステップS620)、ステップS615において算出された更新後プログラムのハッシュ値と演算した更新後プログラムのハッシュ値とを比較し、両者が一致するか否かを判定する(ステップS621)。
【0084】
ステップS621において両者が一致する場合(ステップS621:Y)、内部CPU103は、図2のアクセス制御処理によって退避領域1053へのアクセスを許可されると、退避領域1053に格納されている複数世代ハッシュ値に、ステップS620において、演算した更新後プログラムのハッシュ値とを連結し、連結したものについてハッシュ演算を行い(ステップS624)、退避領域1053に格納されている複数世代ハッシュ値を、ステップS624において演算したハッシュ値に書換え、退避領域1053の複数世代ハッシュ値を更新し(ステップS625)、ステップS626の処理に移行する。
【0085】
ステップS616において、両者が一致しない場合(ステップS616:N)、内部CPU103は、ステップS623の処理に移行する。
又、ステップS621において、両者が一致しない場合(ステップS621:N)、内部CPU103は、ステップS622の処理に移行する。
次に機密情報処理装置100の行うコンテキスト外部出力処理の動作について説明する。
【0086】
図10は、上記処理の動作を示すフローチャートである。以下、図10のフローチャートを参照して、上記処理の動作について説明する。
内部CPU103は、図2のアクセス制御処理によって演算用プログラム格納領域1051へのアクセスを許可されると、演算用プログラム格納領域1051に格納されている更新前プログラムのハッシュ演算処理を行い(ステップS901)、さらに、図2のアクセス制御処理によってデータ入力部1041へのアクセスを許可されると、演算したハッシュ値と演算用プログラム格納領域に格納されている更新前プログラムのコンテキストとを連結して(ステップS902)、暗号演算部104に出力する。
【0087】
暗号演算部104は、連結されたハッシュ値とコンテキストを演算処理部1042において暗号化して(ステップS903)、データ出力部1043に出力する。
内部CPU103は、図2のアクセス制御処理によってデータ出力部1043へのアクセスを許可されると、データ出力部1043から暗号化された後の連結されたハッシュ値とコンテキストを受取り、外部I/F101を介して外部装置120へ出力する(ステップS904)。
【0088】
次に機密情報処理装置100の行うコンテキスト外部入力処理の動作について説明する。図11は、上記処理の動作を示すフローチャートである。以下、図11を参照して、上記処理の動作について説明する。
暗号演算部104は、図2のアクセス制御処理によってデータ入力部1041へのアクセスを許可された外部装置120から、データ入力部1041への暗号化された更新後プログラムの入力を受取ると(ステップS1001)、演算処理部1042において、暗号化された更新後プログラムを復号化し(ステップS1002)、データ出力部1043に出力する。
【0089】
内部CPU103は、図2のアクセス制御処理によってデータ出力部1043へのアクセスを許可されると、データ出力部1043から復号された更新後プログラムを受取り、演算用プログラム格納領域1051に格納する(ステップS1003)。
さらに、暗号演算部104は、図2のアクセス制御処理によってデータ入力部1041へのアクセスを許可された外部装置120から、データ入力部1041への暗号化された更新後プログラムのハッシュ値とコンテキストとの連結データの入力を受取ると(ステップS1004)、演算処理部1042において、暗号化された連結データを復号化し(ステップS1005)、データ出力部1043に出力する。
【0090】
次に内部CPU103は、図2のアクセス制御処理によって演算用プログラム格納領域1051へのアクセスを許可されると、演算用プログラム格納領域1051に格納されている更新後プログラムのハッシュ演算処理を行い(ステップS1006)、さらに、図2のアクセス制御処理によってデータ出力部1043へのアクセスを許可されると、データ出力部1043から復号された更新後プログラムのハッシュ値を受取り、演算したハッシュ値と復号されたハッシュ値とを比較し、両者が一致するか否かを判定する(ステップS1007)。
【0091】
ステップS1007において、両者が一致する場合(ステップS1007:Y)、復号された更新後プログラムのコンテキストをデータ出力部1043から受取り、さらに、図2のアクセス制御処理によって演算用プログラム格納領域1051へのアクセスを許可されると、更新後プログラムのコンテキストを演算用プログラム格納領域1051に格納し(ステップS1008)、ステップS1007において、両者が一致しない場合(ステップS1007:N)、図2のアクセス制御処理によって演算用プログラム格納領域1051へのアクセスを許可されると、演算用プログラム格納領域1051に格納している更新後プログラムを消去する(ステップS1009)。
次に、機密情報処理装置100の行うコンテキスト退避処理の動作について説明する。図12は、上記処理の動作を示すフローチャートである。以下、図12を参照して、上
記処理の動作について説明する。
【0092】
内部CPU103は、演算用プログラム格納領域1051に格納されている更新前プログラムのハッシュ演算処理を行い(ステップS1101)、演算したハッシュ値と演算用プログラム格納領域1051に格納されている更新前プログラムのコンテキストとを連結し(ステップS1102)、さらに、図2のアクセス制御処理によって退避領域1053へのアクセスを許可されると、連結したハッシュ値とコンテキスト(以下、「ハッシュ値・コンテキスト連結データ」という。)を退避領域1053に格納する(ステップS1103)。
【0093】
次に、機密情報処理装置100の行う退避コンテキスト入力処理について説明する。図13は、上記処理の動作を示すフローチャートである。以下、図13を参照して、上記処理の動作について説明する。
暗号演算部104は、図2のアクセス制御処理によってデータ入力部1041へのアクセスを許可された外部装置120から、データ入力部1041への暗号化された更新後プログラムの入力を受取ると(ステップS1201)、演算処理部1042において、暗号化された更新後プログラムを復号化し、データ出力部1043に出力する。
【0094】
内部CPU103は、図2のアクセス制御処理によってデータ出力部1043へのアクセスを許可されると、データ出力部1043より復号された更新後プログラムを受取り、さらに、図2のアクセス制御処理によって演算用プログラム格納領域1051へのアクセスを許可されると、演算用プログラム格納領域1051に格納し(ステップS1202)、更新後プログラムのハッシュ演算処理を行い(ステップS1203)、さらに、図2のアクセス制御処理によって退避領域1053へのアクセスを許可されると、演算したハッシュ値と同じハッシュ値を有するコンテキストを退避領域1053に格納されているハッシュ値・コンテキスト連結データの中から検索し(ステップS1204)、検索できたか否かを判定する(ステップS1205)。
【0095】
ステップS1205において、検索できた場合(ステップS1205:Y)、退避領域1053に格納されている該当するハッシュ値・コンテキスト連結データのコンテキストを読出し、さらに、図2のアクセス制御処理によって演算用プログラム格納領域1051へのアクセスを許可されると、読出したコンテキストを演算用プログラム格納領域1051に格納し(ステップS1206)、ステップS1205において、検索できなかった場合(ステップS1205:N)、さらに、図2のアクセス制御処理によって演算用プログラム格納領域1051へのアクセスを許可されると、演算用プログラム格納領域1051に格納されている更新後プログラムを消去する(ステップS1207)。
(実施の形態2)
実施の形態1においては、コンテキスト引継入力処理、コンテキスト外部入力処理、及び退避コンテキスト入力処理において、外部から入力されたコンテキスト又は退避領域1053に退避されたコンテキストが、更新後プログラムに適用できることの確認をハッシュ値に基づいて行うこととしたが、実施の形態2においては、上記確認を後述する連鎖値に基づいて行う。
【0096】
以下、実施の形態1における機密情報処理装置100の機能及び動作との相違点を中心に説明する。
<構成>
実施の形態2における機密情報処理装置150の構成は、退避領域1053に更新前プログラムの連鎖値が格納されている点を除くと、実施の形態1における機密情報処理装置100の構成と同じであるので、機密情報処理装置150の構成については説明を省略する。
【0097】
ここで、「連鎖値」とは、暗号化前の平文データを暗号化して得られる暗号文データの示す値であって、次の平文データの暗号化に用いられる値のことをいい、ここでは、機密情報処理装置150の機能を実現するためのプログラムが更新される毎に、連鎖値は、暗号化された当該更新プログラムの示す値に更新される。
以下、上記機能を実現するための初期プログラムを第1世代プログラム、1回目の更新後の上記プログラムを第2世代プログラム、2回目の更新後の上記プログラムを第3世代プログラムというように呼ぶこととする。
<動作>
図16は、機密情報処理装置150が、退避領域1053に連鎖値を格納し、格納した連鎖値を更新するために行う連鎖値生成処理の動作を示すフローチャートである。
【0098】
以下、図16を参照して、上記処理の動作について説明する。
暗号演算部104は、退避領域1053に格納されている連鎖値の初期値と、演算用プログラム格納領域1051に格納されている第1世代プログラムとを内部CPU103から取得し、取得した初期値と暗号鍵とを用いて第1世代プログラムを暗号化する(ステップS1401)。
【0099】
内部CPU103は、図2のアクセス制御処理によってデータ出力部1043へのアクセスを許可されると、暗号化第1世代プログラムをデータ出力部1043から受け取り、さらに、図2のアクセス制御処理によって退避領域1053へのアクセスを許可されると、暗号化第1世代プログラムの示す値を更新された連鎖値として、退避領域1053に格納されている初期値に上書きする(ステップS1402)。
【0100】
暗号化演算部104は、演算用プログラム格納領域1051に格納されている第2世代プログラムと退避領域1053に格納されている更新された連鎖値とを内部CPU103から取得し、取得した連鎖値と暗号鍵とを用いて第2世代プログラムを暗号化する(ステップS1403)。
内部CPU103は、図2のアクセス制御処理によってデータ出力部1043へのアクセスを許可されると、暗号化第2世代プログラムをデータ出力部1043から受け取り、さらに、2のアクセス制御処理によって退避領域1053へのアクセスを許可されると、暗号化第2世代プログラムの示す値を更新された連鎖値として、退避領域1053に格納されている連鎖値に上書きし(ステップS1404)、演算用プログラム格納領域1051に格納されている第3世代以降のプログラムについても、ステップS1403、S1404の処理を繰り返す(ステップS1405)。
【0101】
なお、上記の連鎖値生成処理を、機密情報処理装置150ではなく、外部(但し、外部装置120、121を除く。)で予め行い、生成した連鎖値を退避領域1053に格納することとしてもよい。
図17は、上記動作に従って、連鎖値が更新される様子を模式的に表した図である。
図14及び図15は、機密情報処理装置150の行うプログラム更新処理の動作を示すフローチャートである。図4に示す実施の形態1におけるプログラム更新処理の動作と同じ処理ステップについては、同じステップ番号が付されている。
【0102】
以下、機密情報処理装置100と動作が相違する、ステップS1312、S1313,コンテキスト引継入力処理(ステップS1307)、コンテキスト外部入力処理(ステップS1314)、及び退避コンテキスト入力処理(ステップS1315)の各動作について説明する。
最初にステップS1312及びS1313の処理について説明する。
【0103】
内部CPU103は、図15のステップS410の処理の後、又はステップS417において、コンテンツ入力方法フラグが消去を示している場合、図2のアクセス制御処理によって退避領域1053へのアクセスを許可されると、退避領域1053に格納されている連鎖値を初期値に初期化する(ステップS1312)。
暗号化演算部104は、ステップS411の処理を行った後、演算処理部1042において、退避領域1053に格納されている初期値と暗号鍵とを用いて、受取った更新後プログラムの復号化を行う(S1313)。
【0104】
次に、機密情報処理装置150の行うコンテキスト引継入力処理の動作について説明する。図18は、上記処理の動作を示すフローチャートである。
内部CPU103は、図2のアクセス制御処理によって退避領域1053へのアクセスを許可されると、演算用プログラム格納領域1051に格納されている更新前プログラムのコンテキストを退避領域1053に格納することにより、退避する(ステップS1601)。
【0105】
次に、暗号演算部104は、図2のアクセス制御処理によってデータ入力部1041へのアクセスが許可された外部装置120から、暗号化更新前プログラムの示す連鎖値と暗号鍵とを用いて、暗号化された更新後プログラムの、データ入力部1041への入力を外部I/F101を介して受取ると(ステップS1602)、演算処理部1042において、受取った更新後プログラムを退避領域1053に格納されている暗号化更新前プログラムの示す連鎖値と暗号鍵とを用いて復号化し(ステップS1603)、データ出力部1043に出力する。
【0106】
次に内部CPU103は、図2のアクセス制御処理によって演算用プログラム格納領域1051へのアクセスを許可されると、データ出力部1043から復号された更新後プログラムを受取り、演算用プログラム格納領域1051に格納し(ステップS1604)、さらに、図2のアクセス制御処理によって退避領域1053へのアクセスを許可されると、退避領域1053に格納されている更新前プログラムのコンテキストを読出し、さらに、図2のアクセス制御処理によって演算用プログラム格納領域1051へのアクセスを許可されると、読出したコンテキストを演算用プログラム格納領域に格納し(ステップS1605)、さらに、図2のアクセス制御処理によって退避領域1053へのアクセスを許可されると、暗号化更新後プログラムの示す連鎖値を、退避領域1053に格納されている更新前プログラムの示す連鎖値に上書きする(ステップS1606)。
【0107】
次に機密情報処理装置150の行うコンテキスト外部入力処理の動作について説明する。
図19は、上記処理の動作を示すフローチャートである。以下、図19のフローチャートを参照して、上記動作について説明する。
内部CPU103は、図2のアクセス制御処理によって退避領域1053へのアクセスを許可されると、退避領域1053に格納されている暗号化更新前プログラムの示す連鎖値を初期値に初期化する(ステップS1701)。
【0108】
次に、暗号演算部104は、図2のアクセス制御処理によってデータ入力部1041へのアクセスが許可された外部装置120から、暗号化更新前プログラムの示す連鎖値と暗号鍵とを用いて暗号化された更新後プログラムの、データ入力部1041への入力を外部I/F101を介して受取ると(ステップS1702)、演算処理部1042において、受取った更新後プログラムを、退避領域1053に格納されている初期値と暗号鍵とを用いて復号化し(ステップS1703)、データ出力部1043に出力する。
【0109】
次に内部CPU103は、図2のアクセス制御処理によってデータ出力部1043へのアクセスを許可されると、データ出力部1043から復号された更新後プログラムを受取り、さらに、図2のアクセス制御処理によって演算用プログラム格納領域1051へのアクセスを許可されると、演算用プログラム格納領域1051に更新後プログラムを格納する(ステップS1704)。
【0110】
次に、暗号演算部104は、図2のアクセス制御処理によってデータ入力部1041へのアクセスが許可された外部装置120から、暗号化更新前プログラムの示す連鎖値と暗号鍵とを用いて暗号化された更新後プログラムのハッシュ値とコンテキストとの連結データの、データ入力部1041への入力を外部I/F101を介して受取ると(ステップS1705)、演算処理部1042において、受取った更新後プログラムのハッシュ値とコンテキストとの連結データを、退避領域1053に格納されている初期値と暗号鍵とを用いて復号化し(ステップS1706)、データ出力部1043に出力する。
【0111】
次に内部CPU103は、図2のアクセス制御処理によって演算用プログラム格納領域1051へのアクセスを許可されると、演算用プログラム格納領域1051に格納されている更新後プログラムのハッシュ演算処理を行い(ステップS1707)、さらに、図2のアクセス制御処理によってデータ出力部1043へのアクセスを許可されると、データ出力部1043から復号された更新後プログラムのハッシュ値を受取り、演算したハッシュ値と復号されたハッシュ値とを比較し、両者が一致するか否かを判定する(ステップS1708)。
【0112】
ステップS1708において、両者が一致する場合(ステップS1708:Y)、内部CPU103は、復号された更新後プログラムのコンテキストをデータ出力部1043から受取り、さらに、図2のアクセス制御処理によって演算用プログラム格納領域1051へのアクセスを許可されると、更新後プログラムのコンテキストを演算用プログラム格納領域1051に格納し(ステップS1709)、ステップS1708において、両者が一致しない場合(ステップS1708:N)、図2のアクセス制御処理によって演算用プログラム格納領域1051へのアクセスを許可されると、演算用プログラム格納領域1051に格納している更新後プログラムを消去する(ステップS1710)。
【0113】
次に機密情報処理装置150の行う退避コンテキスト入力処理の動作について説明する。
図20は、上記処理の動作を示すフローチャートである。以下、図20のフローチャートを参照して、上記動作について説明する。
内部CPU103は、図2のアクセス制御処理によって退避領域1053へのアクセスを許可されると、退避領域1053に格納されている暗号化更新前プログラムの示す連鎖値を初期値に初期化する(ステップS1801)。
【0114】
次に、暗号演算部104は、図2のアクセス制御処理によってデータ入力部1041へのアクセスが許可された外部装置120から、暗号化更新前プログラムの示す連鎖値と暗号鍵とを用いて暗号化された更新後プログラムの、データ入力部1041への入力を外部I/F101を介して受取ると(ステップS1802)、内部CPU103より、退避領域1053に格納されている初期値を取得し、演算処理部1042において、受取った更新後プログラムを、取得した初期値と暗号鍵とを用いて復号化し(ステップS1803)、データ出力部1043に出力する。
【0115】
内部CPU103は、図2のアクセス制御処理によってデータ出力部1043へのアクセスを許可されると、データ出力部1043より復号された更新後プログラムを受取り、さらに、図2のアクセス制御処理によって演算用プログラム格納領域1051へのアクセスを許可されると、演算用プログラム格納領域1051に格納し、更新後プログラムのハッシュ演算処理を行い(ステップS1804)、さらに、図2のアクセス制御処理によって退避領域1053へのアクセスを許可されると、演算したハッシュ値と同じハッシュ値を有するコンテキストを退避領域1053に格納されているハッシュ値・コンテキスト連結データの中から検索し(ステップS1805)、検索できたか否かを判定する(ステップS1806)。
【0116】
ステップS1806において、検索できた場合(ステップS1806:Y)、内部CPU103は、退避領域1053に格納されている該当するハッシュ値・コンテキスト連結データのコンテキストを読出し、さらに、図2のアクセス制御処理によって演算用プログラム格納領域1051へのアクセスを許可されると、読出したコンテキストを演算用プログラム格納領域1051に格納し(ステップS1807)、ステップS1806において、検索できなかった場合(ステップS1806:N)、さらに、図2のアクセス制御処理によって演算用プログラム格納領域1051へのアクセスを許可されると、演算用プログラム格納領域1051に格納されている更新後プログラムを消去する(ステップS1808)。

(実施の形態3)
実施の形態1及び2においては、外部から更新後プログラムを機密情報処理装置内に入力することにより、更新前プログラムを更新することとしたが、本実施の形態3は、機密情報処理装置内の格納部の異なるバンクに予め更新前と更新後のプログラム格納しておき、外部からバンクの切替を行うことにより、プログラムの更新処理を行うことを特徴としている。
【0117】
以下、実施の形態1との相違点を中心にして説明する。
<構成>
図21は、本実施の形態における機密情報処理装置200の構成を示す機能ブロック図である。図21において、実施の形態1における機密情報処理装置100と同じ構成要素に対しては同じ番号を付している。図19に示すように、機密情報処理装置200は、制御部112及び機密情報格納部115の構成において機密情報処理装置100と相違する。
【0118】
制御部112は、認証部1125を有する点とプログラム更新要求レジスタ1124の機能において、実施の形態1における機密情報処理装置100の制御部102と異なる。
認証部1125は、外部装置120からの認証要求を外部I/F101を介して受け取ると、認証処理を実行し、認証結果を外部I/F101を介して外部装置120に通知する。
プログラム更新要求レジスタ1124は、認証部1125によって認証された外部装置120から、機密情報格納部115の演算用プログラム格納領域1151における更新後プログラムが格納されているバンクを指定するためのバンク情報を受け取り、格納する。
【0119】
機密情報格納部115は、演算用プログラム格納領域1151において、実施の形態1における機密情報処理装置100の機密情報格納部105と異なる。
演算用プログラム格納領域1151は、複数のバンクに分割され、各バンクには、更新前プログラム又は更新後プログラムが1つ格納されている。分割された各演算用プログラム格納領域の構成は、図25で示す構成と同じである。
【0120】
なお、更新後プログラムは1つに限らず、複数あってもよい。
<動作>
次に機密情報処理装置200の行うプアクセス制御処理の動作における、実施の形態1における当該動作との相違点について説明する。
実施の形態1におけるアクセス制御処理の動作においては、図2に示すように、ランク情報の示すランクがランク上限値より高い場合(ステップS202:Y)、制御部102は、外部装置からアクセス対象へのアクセスを拒否する(ステップS205)こととしたが、本実施の形態3における機密情報処理装置200においては、ランク情報の示すランクがランク上限値より高い場合(ステップS202:Y)、アクセスを拒否するのではなく、ランク情報の示すランクをランク上限値とみなして、ステップS203の処理を行う点において相違する。
【0121】
図26は、機密情報処理装置200の行うアクセス制御処理の動作を示すフローチャートである。図26において、図2におけるステップ番号の処理と同じ処理に関しては、図2のステップ番号と同じステップ番号を付している。図26においては、ステップS2601のランク情報の示すランクをランク上限値とみなす処理がある点において、図2のアクセス制御処理の動作と相違する。
【0122】
次に機密情報処理装置200の行うプログラム更新処理の動作について説明する。図22は、上記処理の動作を示すフローチャートである。以下、図22のフローチャートを参照して、上記処理の動作について説明する。
制御部112の認証部1125は、図26のアクセス制御処理によって、認証部1125へのアクセスが許可された外部装置120より認証要求を外部I/F101を介して受け取ると(ステップS2001)、認証処理を実行し、認証できたか否かを判定する(ステップS2002)。
【0123】
次にプログラム更新要求レジスタ1124は、ステップS2002において、認証できた場合に(ステップS2002:Y)、図26のアクセス制御処理によって、プログラム更新要求レジスタ1124へのアクセスが許可された外部装置120から、外部I/F101を介してバンク情報を受取り(ステップS2003)、当該バンク情報を格納する。
バンク情報がプログラム更新要求レジスタ1124に格納されると、内部CPU103は、図26のアクセス制御処理によって更新用プログラム格納領域1052へのアクセスを許可されると、制御部112からの更新用プログラムの実行指示に応じて、更新用プログラム格納領域1052に格納されている更新用プログラムを起動し(ステップS2004)、さらに、図26のアクセス制御処理によってアクセス制御部1021へのアクセスを許可されると、アクセス制御部1021のランク対応テーブルの特定のリソース(ここでは、プログラム更新要求レジスタ1124とする。)のランクを変更し、(ステップS2005)、さらに、図26のアクセス制御処理によって演算用プログラム格納領域1151へのアクセスを許可されると、演算用プログラム格納領域1151の、更新前プログラムが格納されているバンクに格納されているコンテキスト引継フラグが「引継有」を指示しているか否かを判定する(ステップS2006)。
【0124】
コンテキスト引継フラグが「引継有」を指示している場合(ステップS2006:Y)、内部CPU103は、後述するコンテンツ引継入力処理を行い(ステップS2007)、処理が終了し、図26のアクセス制御処理によってアクセス制御部1021へのアクセスを許可されると、アクセス制御部1021における、ステップS2005において変更した、ランク対応テーブルの特定のリソースのランクを変更前のランクに再変更する(ステップS2012)。
【0125】
ステップS2006において、コンテキスト引継フラグが「引継有」を指示していない場合(ステップS2006:N)、内部CPU103は、上記バンクに格納されているコンテキスト退避フラグが示す更新前プログラムのコンテキストの処理方法を判定する(ステップS2008)。
ステップS2008において、コンテキスト退避フラグが「退避」を示している場合、内部CPU103は、更新前プログラムのコンテキストを上記バンクに退避し(ステップS2009)、アクセス対象となるバンクを、プログラム更新要求レジスタ1124に格納されているバンク情報の指定するバンクに切り替え(ステップS2013)、切替後のバンクに格納されている更新後プログラムのコンテキストを復帰し(ステップS2014)、ステップS2012の処理を行う。
【0126】
ステップS2008において、コンテキスト退避フラグが「消去」を示している場合、内部CPU103は、更新前プログラムのコンテキストを消去し(ステップS2010)、ステップS2011の処理に移行する。
ステップS2002において、認証できなかった場合(ステップS2002:N)、CPU103は、プログラム更新処理を終了する。
【0127】
次に機密情報処理装置200の行うコンテキスト引継入力処理の動作について説明する。図23は、上記処理の動作を示すフローチャートである。以下、図23のフローチャートを参照して上記処理の動作について説明する。
内部CPU103は、図26のアクセス制御処理によってプログラム更新要求レジスタ1124へのアクセスを許可されると、プログラム更新要求レジスタ1124に格納されているバンク情報の指定するバンクが、更新前プログラムに含まれる引継可能バンク情報の示すバンクの何れか1つと一致するか否かを判定する(ステップS2101)。
【0128】
ここで、「引継可能バンク情報」とは、更新前プログラムのコンテキストを引継ぎ可能な更新後プログラムが格納されている、少なくとも1つ以上のバンクを特定する情報のことをいう。
ステップS2101において、プログラム更新要求レジスタ1124に格納されているバンク情報の指定するバンクが、更新前プログラムに含まれる引継可能バンク情報の示すバンクの何れか1つと一致する場合(ステップS2101:Y)、内部CPU103は、図26のアクセス制御処理によって演算用プログラム格納領域1151へのアクセスを許可されると、演算用プログラム格納領域1151の、更新前プログラムが格納されているバンクに格納されている更新前プログラムのコンテキストを読出し、さらに、図26のアクセス制御処理によって退避領域1053へのアクセスを許可されると、読出したコンテキストを退避領域1053に退避し(ステップS2102)、アクセス対象となるバンクを、プログラム更新要求レジスタ1124に格納されているバンク情報の指定するバンクに切り替え(ステップS2103)、退避領域1053に格納されている更新前プログラムのコンテキストを読出し、図26のアクセス制御処理によって演算用プログラム格納領域1151へのアクセスを許可されると、読出したコンテキストを切り替えたバンクに格納し(ステップS2104)、さらに、図26のアクセス制御処理によって退避領域1053へのアクセスを許可されると、退避領域1053に退避されている更新前プログラムのコンテキストを消去する(ステップS2105)。
<補足>
以上、本発明に係る機密情報処理装置100、150、200について、実施の形態に基づいて説明したが、本発明はこれら実施の形態に限られないことは勿論である。
(1)例えば、実施の形態1〜3においては、内部CPU103は、プログラム更新処理の実行前後を問わず、更新用プログラム格納領域1052にアクセスできることとしたが、内部CPU103に設定されるランクをプログラム更新処理の前後で、変更することにより、プログラム更新処理の実行中のみ更新用プログラム1052へアクセスできるように制御することとしてもよい。
【0129】
具体例として、プログラム更新処理の実行前のランク対応テーブルを図24に示すように設定し、内部CPU103に設定されるランクを2、外部装置120に設定されるランクを2、外部装置121に設定されるランクを1、上限ランク格納部1023に格納されているランクを2とし、外部装置120からプログラム更新要求レジスタ1024へ更新要求が有った場合に、制御部102が内部CPU103のランクを3に変更することとすることにより、上記制御を実現することができる。
【0130】
これにより、プログラム更新処理が実行されていない間は、更新用プログラム格納領域1052へのアクセスを制限することができるので、プログラム更新処理に関する機密性をより高めることができる。
又、上記の具体例では、外部装置120が直接、演算用プログラム格納領域1051にアクセスすることができるので、更新後プログラムを内部CPU103によらず演算用プログラム格納領域1051に格納する処理を行うことができるので、機密情報処理装置のプログラム更新処理に対する負荷を軽減することができる。
(2)又、実施の形態1〜3においては、ランク情報の示すランクは3段階としたが、3段階に限らず、それ以上であってもよい。
(3)又、実施の形態1〜3においては、ランク情報の入出力は、専用のバスを介して行うこととしたが、データバスを介して行うこととしてもよい。
(4)又、実施の形態1〜3において、機密情報処理装置100又は150又は200と外部装置120と外部装置121とは、1つのLSIに実装されていてもよいし、それぞれ別のLSIに実装されていてもよい。
(5)又、実施の形態1〜3においては、制御部102のアクセス制御部1021によって統括的にランクに基づくアクセス制御を行うこととしたが、暗号演算部103及び機密情報格納部105又は115については、それぞれ独立したアクセス制御部を設けることにより、ランクに基づくアクセス制御を行うこととしてもよい。
(6)又、実施の形態1〜3において、外部装置120、121に設定されているランクは、固定であってもよいし、変更可能であってもよい。
(7)又、実施の形態3においては、各バンクにコンテキストを退避することとしたが、退避領域1053に対応するコンテキスト格納領域を設けて、退避領域1053に退避することとしてもよい。
【産業上の利用可能性】
【0131】
本発明は、機密情報処理装置において、その機能を実現するためのプログラムを、機密情報を漏洩することなく、更新するための機密制御技術として利用できる。
【図面の簡単な説明】
【0132】
【図1】本発明の実施の形態1に係る機密情報処理装置100の構成を示す機能ブロック図である。
【図2】機密情報処理装置100の行うアクセス制御処理の動作を示すフローチャートである。
【図3】変更前のランク対応テーブルの具体例を示す。
【図4】機密情報処理装置100の行うプログラム更新処理の動作を示すフローチャートである。
【図5】変更後のランク対応テーブルの具体例を示す。
【図6】機密情報処理装置100の行うコンテキスト引継入力処理の動作を示すフローチャートの一部である。
【図7】機密情報処理装置100の行うコンテキスト引継入力処理の動作を示すフローチャートの一部である。
【図8】暗号化第1世代ハッシュ値の作成処理の過程を模式的に示した図である。
【図9】暗号化連結ハッシュ値の作成処理の過程を模式的に示した図である。
【図10】機密情報処理装置100の行うコンテキスト外部出力処理の動作を示すフローチャートである。
【図11】機密情報処理装置100の行うコンテキスト外部入力処理の動作を示すフローチャートである。
【図12】機密情報処理装置100の行うコンテキスト退避処理の動作を示すフローチャートである。
【図13】機密情報処理装置100の行う退避コンテキスト入力処理の動作を示すフローチャートである。
【図14】機密情報処理装置150の行うプログラム更新処理の動作を示すフローチャートの一部である。
【図15】機密情報処理装置150の行うプログラム更新処理の動作を示すフローチャートの一部である。
【図16】機密情報処理装置150が、退避領域1053に連鎖値を格納し、格納した連鎖値を更新するために行う連鎖値生成処理の動作を示すフローチャートである。
【図17】図16の動作に従って、連鎖値が更新される様子を模式的に表した図である。
【図18】機密情報処理装置150の行うコンテキスト引継入力処理の動作を示すフローチャートである。
【図19】機密情報処理装置150の行うコンテキスト外部入力処理の動作を示すフローチャートである。
【図20】機密情報処理装置150の行う退避コンテキスト入力処理の動作を示すフローチャートである。
【図21】機密情報処理装置200の構成を示す機能ブロック図である。
【図22】機密情報処理装置200の行うプログラム更新処理の動作を示すフローチャートである。
【図23】機密情報処理装置200の行うコンテキスト引継入力処理の動作を示すフローチャートである。
【図24】プログラム更新処理の実行前のランク対応テーブルの具体例を示す。
【図25】演算用プログラム格納領域1051の構成を示す。
【図26】機密情報処理装置200の行うアクセス制御処理の動作を示すフローチャートである。
【符号の説明】
【0133】
100、200 機密情報処理装置
101 外部I/F
102、112 制御部
103 内部CPU
104 暗号演算部
105、115 機密情報格納部
120 外部装置
121 外部装置
1021 アクセス制御部
1022 ランク対応テーブル格納部
1023 上限ランク格納部
1024、1124 プログラム更新要求レジスタ
1041 データ入力部
1042 演算処理部
1043 データ出力部
1051、1151 演算用プログラム格納領域
1052 更新用プログラム格納領域
1053 退避領域
1125 認証部
1201 CPU
1211 DSP

【特許請求の範囲】
【請求項1】
外部装置から自装置内部の各リソースへのアクセスを制御する機密情報処理装置であって、
前記各リソースについて、外部装置からのアクセスを許可するか否かの判定基準となるアクセス制御レベルを格納しているレベル格納手段と、
更新対象プログラムを格納しているプログラム格納手段と、
外部装置から前記更新対象プログラムの更新要求を受け取る受取手段と、
前記更新要求の受取に応じて、更新対象プログラムを更新する更新処理を行う更新手段と、
前記各アクセス制御レベルに従って、外部装置から前記各リソースへのアクセスを許可するか否かを決定するアクセス制御手段と、
前記更新処理が行われている間、前記レベル格納手段に格納されている各リソースのアクセス制御レベルの内、アクセス制御レベルが、外部装置からのアクセスを許可する状態にあり、かつ、前記更新処理の過程において前記更新手段によってアクセスされるリソースのアクセス制御レベルを、外部装置からのアクセスを不許可とするアクセス制御レベルに変更する変更手段と
を備えることを特徴とする機密情報処理装置。
【請求項2】
前記変更手段は、前記更新処理が終了すると、変更したアクセス制御レベルを変更前のアクセス制御レベルに再変更する
ことを特徴とする請求項1記載の機密情報処理装置。
【請求項3】
前記アクセス制御レベルは、ランクで示され、
前記機密情報処理装置は、外部装置から当該外部装置のアクセス制御レベルを受取るレベル受取手段を備え、
前記アクセス制御手段は、前記外部装置のアクセス制御レベルの示すランクが、前記各リソースのアクセス制御レベルの示すランク以上である場合に、前記外部装置から当該リソースへのアクセスを許可し、
前記外部装置のアクセス制御レベルの示すランクが、前記各リソースのアクセス制御レベルの示すランク以上でない場合に、前記外部装置から当該リソースへのアクセスを許可しない
ことを特徴とする請求項1又は2記載の機密情報処理装置。
【請求項4】
前記受取手段は、前記リソースの1つであり、前記アクセス制御手段によって、前記外部装置の前記受取手段へのアクセスが許可された場合に限り、当該外部装置からの前記更新要求を受取る
ことを特徴とする請求項3記載の機密情報処理装置。
【請求項5】
前記機密情報処理装置はさらに、ランクの上限値を格納している上限値格納手段を備え、
前記アクセス制御手段は、前記外部装置のアクセス制御レベルの示すランクが、上限値を超える場合に、前記各リソースへのアクセスを許可しない
ことを特徴とする請求項3又は4に記載の機密情報処理装置。
【請求項6】
前記機密情報処理装置はさらに、前記外部装置の認証を行う認証手段を備え、
前記アクセス制御手段は、前記認証手段によって前記外部装置が認証されない場合に、前記外部装置から各リソースへのアクセスを許可しない
ことを特徴とする請求項1〜5の何れかに記載の機密情報処理装置。
【請求項7】
前記機密情報処理装置は、外部装置から、暗号化された、前記更新対象プログラムの更新プログラムを受取り、復号化する復号化手段を備え、
前記復号化手段は、前記変更手段によるアクセス制御レベルの変更対象となるリソースであり、復号化した前記更新プログラムを出力するデータ出力部を有し、
前記更新手段は、前記データ出力部にアクセスして、復号化された前記更新プログラムを受取り、当該更新プログラムを前記プログラム格納手段に格納することにより、前記更新処理を行う
ことを特徴とする請求項1〜6の何れかに記載の機密情報処理装置。
【請求項8】
前記プログラム格納手段は、プログラム格納部と退避部とを有し、
前記プログラム格納部は、前記更新対象プログラムと当該更新対象プログラムのコンテキストとを格納し、
前記更新手段は、前記更新対象プログラムのコンテキストを前記更新プログラムにおいて引継ぐか否かを判定する引継判定手段と、
引継ぐ場合に、前記コンテキストを前記退避部に退避する退避手段と
前記更新対象プログラムのハッシュ値を算出するハッシュ値算出手段と
を有し、
前記復号化手段はさらに、前記外部装置から、前記更新対象プログラムのハッシュ値を暗号化したハッシュ値を受取り、復号化して、前記データ出力部に出力し、
前記更新手段は、前記データ出力部から復号された前記更新対象プログラムのハッシュ値を受取り、受取ったハッシュ値と算出したハッシュ値とが一致する場合に限り、前記更新プログラムと前記更新対象プログラムのコンテキストとを前記プログラム格納部に格納する
ことを特徴とする請求項7記載の機密情報処理装置。
【請求項9】
前記復号化手段はさらに、前記外部装置から、前記更新プログラムのハッシュ値を暗号化したハッシュ値を受取り、復号化して、前記データ出力部に出力し、
前記ハッシュ値算出手段は、受取った前記更新対象プログラムのハッシュ値と算出した更新対象プログラムのハッシュ値とが一致する場合に、さらに、前記更新プログラムのハッシュ値を算出し、
前記更新手段は、前記データ出力部から復号化された前記更新プログラムのハッシュ値を受取り、さらに、受取った前記更新プログラムのハッシュ値と算出した前記更新プログラムのハッシュ値とが一致する場合に限り、前記更新プログラムと前記更新対象プログラムのコンテキストとを前記プログラム格納部に格納する
ことを特徴とする請求項8記載の機密情報処理装置。
【請求項10】
前記更新手段はさらに、受取った前記更新対象プログラムのハッシュ値と算出した前記更新対象プログラムのハッシュ値とが一致しない場合に、前記退避部に格納されている前記更新対象プログラムのコンテキストを消去する
ことを特徴とする請求項8又は9に記載の機密情報処理装置。
【請求項11】
前記更新手段はさらに、受取った前記更新プログラムのハッシュ値と算出した前記更新プログラムのハッシュ値とが一致しない場合に、前記プログラム格納手段に格納されている前記更新プログラムを消去する
ことを特徴とする請求項10記載の機密情報処理装置。
【請求項12】
前記プログラム格納手段は、プログラム格納部と退避部とを有し、
前記プログラム格納部は、前記更新対象プログラムと前記更新対象プログラムのコンテキストとを格納し、
前記退避部は、初期プログラムから前記更新対象プログラムに更新されるまでの各更新回のプログラムのハッシュ値に基づいて算出された複数世代ハッシュ値を格納し、
前記更新手段は、前記更新対象プログラムのコンテキストを前記更新プログラムにおいて引継ぐか否かを判定する引継判定手段と、
引継ぐ場合に、前記コンテキストを前記退避部に退避する退避手段と
を有し、
前記復号化手段はさらに、前記外部装置から、複数世代ハッシュ値を暗号化したハッシュ値を受取り、復号化して、前記データ出力部に出力し、
前記更新手段は、前記データ出力部から復号された複数世代ハッシュ値を受取り、受取った複数世代ハッシュ値と、前記退避部に格納されている複数世代ハッシュ値とが一致する場合に限り、前記更新プログラムと前記更新対象プログラムのコンテキストとを前記プログラム格納部に格納する
ことを特徴とする請求項7記載の機密情報処理装置。
【請求項13】
前記復号化手段はさらに、前記外部装置から、前記更新プログラムのハッシュ値を暗号化したハッシュ値を受取り、復号化して、前記データ出力部に出力し、
前記更新手段は、受取った複数世代ハッシュ値と前記退避部より取得した複数世代ハッシュ値とが一致する場合に、さらに、前記更新プログラムのハッシュ演算を行うことにより、前記更新プログラムのハッシュ値を算出し、さらに前記データ出力部から復号された前記更新プログラムのハッシュ値を受取り、受取った前記更新プログラムのハッシュ値と算出した前記更新プログラムのハッシュ値とが一致する場合に限り、前記更新プログラムと前記更新対象プログラムのコンテキストとを前記プログラム格納部に格納する
ことを特徴とする請求項12記載の機密情報処理装置。
【請求項14】
前記更新手段はさらに、取得した複数世代ハッシュ値と算出した前記更新プログラムのハッシュ値とを連結し、連結したものについてハッシュ演算を行うことにより、ハッシュ値を算出し、前記退避部に格納されている複数世代ハッシュ値を算出したハッシュ値に書換える
ことを特徴とする請求項13記載の機密情報処理装置。
【請求項15】
前記更新手段はさらに、受取った複数世代ハッシュ値と前記退避部に格納されている複数世代ハッシュ値とが一致しない場合に、前記退避部に格納されている前記更新対象プログラムのコンテキストを消去する
ことを特徴とする請求項12〜14の何れかに記載の機密情報処理装置。
【請求項16】
前記更新手段はさらに、受取った前記更新プログラムのハッシュ値と算出した前記更新プログラムのハッシュ値とが一致しない場合に、前記プログラム格納手段に格納されている前記更新プログラムを消去する
ことを特徴とする請求項15記載の機密情報処理装置。
【請求項17】
前記プログラム格納手段はさらに、前記更新対象プログラムのコンテキストを格納し、
前記更新手段は、
前記更新対象プログラムのコンテキストを前記更新プログラムにおいて引継ぐか否かを判定する引継判定手段と、
引継がない場合に、前記コンテキストを出力するか否かを判定する出力判定手段と、
出力する場合に、前記更新対象プログラムのハッシュ値を算出するハッシュ値算出手段と
を有し、
前記機密情報処理装置はさらに、算出されたハッシュ値と前記コンテキストを暗号化する暗号化手段を備え、
前記更新手段は、暗号化された前記ハッシュ値と前記コンテキストとを連結して自装置外部へ出力する
ことを特徴とする請求項7記載の機密情報処理装置。
【請求項18】
前記プログラム格納手段は、プログラム格納部と退避部とを有し、
前記プログラム格納部は、前記更新対象プログラムと前記更新対象プログラムのコンテキストとを格納し、
前記更新手段は、
前記更新対象プログラムのコンテキストを前記更新プログラムにおいて引継ぐか否かを判定する引継判定手段と、
引継がない場合に、前記コンテキストを前記退避部に退避するか否かを判定する退避判定手段と、
退避する場合に、前記更新対象プログラムのハッシュ値を算出するハッシュ値算出手段と
前記ハッシュ値と前記コンテキストとを連結して前記退避部へ退避する退避手段と
を有することを特徴とする請求項7記載の機密情報処理装置。
【請求項19】
前記復号化手段はさらに、前記外部装置から暗号化された、更新プログラムのハッシュ値と更新プログラムのコンテキストとを受取り、復号化し、
前記更新手段は、
前記更新プログラムのハッシュ値を算出するハッシュ値算出手段と
算出したハッシュ値と復号化された前記更新プログラムのハッシュ値とが一致するか否かを判定するハッシュ値判定手段と
を有し、
前記更新手段は、一致する場合に、復号化された前記コンテキストを前記プログラム格納手段に格納されている前記更新プログラムのコンテキストとして格納し、
一致しない場合に、前記プログラム格納手段に格納されている前記更新プログラムを消去する
ことを特徴とする請求項7記載の機密情報処理装置。
【請求項20】
前記プログラム格納手段は、プログラム格納部と退避部とを有し、
前記プログラム格納部は、前記更新プログラムを格納し、
前記退避部は、前記更新プログラムのコンテキストと当該更新プログラムのハッシュ値とを連結した連結データを複数、格納し、
前記更新手段は、
前記更新プログラムのハッシュ値を算出するハッシュ値算出手段と、
前記退避部に、算出したハッシュ値と同じハッシュ値を有する連結データが格納されているか否かを判定する連結データ判定手段と
を有し、
格納されている場合に、前記更新手段は、前記退避部に格納されている該当する連結データに含まれる前記更新プログラムのコンテキストを前記プログラム格納部に格納し、
格納されていない場合に、前記プログラム格納部に格納されている前記更新プログラムを消去する
ことを特徴とする請求項7記載の機密情報処理装置。
【請求項21】
前記プログラム格納手段は、プログラム格納部と退避部とを有し、
前記プログラム格納部は、前記更新対象プログラムと前記更新対象プログラムのコンテキストとを格納し、
前記退避部は、暗号化された更新対象プログラムの示す値である連鎖値を格納し、
前記更新プログラムは、暗号鍵と前記連鎖値とを用いて暗号化され、
前記更新手段は、前記更新対象プログラムのコンテキストを前記更新プログラムにおいて引継ぐか否かを判定する引継判定手段と、
引継ぐ場合に、前記コンテキストを前記退避部に退避する退避手段と
を有し、
前記復号化手段はさらに、前記外部装置から受取った前記更新プログラムを前記暗号鍵と、前記退避部に格納されている前記連鎖値とを用いて復号化して、前記データ出力部に出力し、
前記更新手段は、前記データ出力部から復号された前記更新プログラムを受取り、受取った前記更新プログラムと前記更新対象プログラムのコンテキストとを前記プログラム格納部に格納する
ことを特徴とする請求項7記載の機密情報処理装置。
【請求項22】
前記プログラム格納手段は、前記更新対象プログラムを格納しているバンクと前記更新対象プログラムの更新プログラムを格納しているバンクとを有し、
前記更新手段は、前記プログラム格納手段のバンクを切り替えることにより、前記更新処理を行う
ことを特徴とする請求項1又は2記載の機密情報処理装置。
【請求項23】
前記更新対象プログラムを格納しているバンクは、当該更新対象プログラムのコンテキストを格納し、
前記受取手段は、切り替えるべき、前記更新プログラムを格納しているバンクを指定するバンク情報を前記更新要求として受取り、
前記更新手段は、
前記更新対象プログラムのコンテキストを前記更新プログラムにおいて引継ぐか否かを判定する引継判定手段と、
引継ぐ場合に、前記プログラム格納手段におけるアクセス対象となるバンクを、前記更新対象プログラムを格納しているバンクから前記更新プログラムを格納しているバンクに切り替えるバンク切替手段と
を有し、
前記更新手段は、切り替えたバンクに、前記更新対象プログラムのコンテキストを格納する
ことを特徴とする請求項22記載の機密情報処理装置。
【請求項24】
前記更新対象プログラムには、当該更新対象プログラムのコンテキストを引継ぎ可能な、当該更新対象プログラムの更新プログラムが格納されているバンクを特定する情報である引継可能バンク情報が含まれ、
前記更新手段はさらに、受取られたバンク情報の指定するバンクと、引継可能バンク情報の特定するバンクとが一致するか否かの判定する引継バンク判定手段を有し、
前記バンク切替手段は、一致する場合に限り、前記プログラム格納手段におけるアクセス対象となるバンクを、前記更新対象プログラムを格納しているバンクから前記更新プログラムを格納しているバンクに切り替える
ことを特徴とする請求項23記載の機密情報処理装置。
【請求項25】
前記アクセス制御レベルは、3段階以上のランクで示される
ことを特徴とする請求項3記載の機密情報処理装置。
【請求項26】
前記機密情報処理装置はさらに、ランクの上限値を格納している上限値格納手段を備え、
前記アクセス制御手段は、前記外部装置のアクセス制御レベルの示すランクが、上限値を超える場合に、当該外部装置のアクセス制御レベルの示すランクを上限値と同一のランクとみなして、当該外部装置から前記各リソースへのアクセスを許可するか否かを決定する
ことを特徴とする請求項3記載の機密情報処理装置。
【請求項27】
外部装置から自装置内部の各リソースへのアクセスを制御する機密情報処理装置に用いる機密情報処理方法であって、
前記機密情報処理装置は、
前記各リソースについて、外部装置からのアクセスを許可するか否かの判定基準となるアクセス制御レベルを格納しているレベル格納手段と、
更新対象プログラムを格納しているプログラム格納手段と
を備え、
前記機密情報処理方法は、
外部装置から前記更新対象プログラムの更新要求を受け取る受取ステップと、
前記更新要求の受取に応じて、更新対象プログラムを更新する更新処理を行う更新ステップと、
前記各アクセス制御レベルに従って、外部装置から前記各リソースへのアクセスを許可するか否かを決定するアクセス制御ステップと、
前記更新処理が行われている間、前記レベル格納手段に格納されている各リソースのアクセス制御レベルの内、アクセス制御レベルが、外部装置からのアクセスを許可する状態にあり、かつ、前記更新処理の過程においてアクセスされるリソースのアクセス制御レベルを、外部装置からのアクセスを不許可とするアクセス制御レベルに変更するランク変更ステップと
を含むことを特徴とする機密情報処理方法。
【請求項28】
外部装置から自装置内部の各リソースへのアクセスを制御する機密情報処理装置において、機密情報処理を実行させるプログラムであって、
前記機密情報処理装置は、
前記各リソースについて、外部装置からのアクセスを許可するか否かの判定基準となるアクセス制御レベルを格納しているレベル格納手段と、
更新対象プログラムを格納しているプログラム格納手段と
を備え、
前記機密情報処理は、
外部装置から前記更新対象プログラムの更新要求を受け取る受取ステップと、
前記更新要求の受取に応じて、更新対象プログラムを更新する更新処理を行う更新ステップと、
前記各アクセス制御レベルに従って、外部装置から前記各リソースへのアクセスを許可するか否かを決定するアクセス制御ステップと、
前記更新処理が行われている間、前記レベル格納手段に格納されている各リソースのアクセス制御レベルの内、アクセス制御レベルが、外部装置からのアクセスを許可する状態にあり、かつ、前記更新処理の過程においてアクセスされるリソースのアクセス制御レベルを、外部装置からのアクセスを不許可とするアクセス制御レベルに変更するランク変更ステップと
を含むことを特徴とするプログラム。
【請求項29】
外部装置から自装置内部の各リソースへのアクセスを制御する機密情報処理装置において、機密情報処理を実行させるプログラムを記録したコンピュータ読取可能な記録媒体であって、
前記機密情報処理装置は、
前記各リソースについて、外部装置からのアクセスを許可するか否かの判定基準となるアクセス制御レベルを格納しているレベル格納手段と、
更新対象プログラムを格納しているプログラム格納手段と
を備え、
前記機密情報処理は、
外部装置から前記更新対象プログラムの更新要求を受け取る受取ステップと、
前記更新要求の受取に応じて、更新対象プログラムを更新する更新処理を行う更新ステップと、
前記各アクセス制御レベルに従って、外部装置から前記各リソースへのアクセスを許可するか否かを決定するアクセス制御ステップと、
前記更新処理が行われている間、前記レベル格納手段に格納されている各リソースのアクセス制御レベルの内、アクセス制御レベルが、外部装置からのアクセスを許可する状態にあり、かつ、前記更新処理の過程においてアクセスされるリソースのアクセス制御レベルを、外部装置からのアクセスを不許可とするアクセス制御レベルに変更するランク変更ステップと
を含むことを特徴とするコンピュータ読取可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate