(57)【要約】【課題】機密情報処理装置の機能変更を随時行うことが可能な機密情報処理装置を提供する。【解決手段】自装置内の各リソースについて、アクセスを許可するか否かの判定基準となるアクセス制御レベルを格納している制御部１０２と、更新対象プログラムを格納している機密情報格納部１０５と、外部装置からの更新要求の受取に応じて、更新対象プログラムを更新する更新処理を行う内部ＣＰＵ１０３とを備える機密情報処理装置であって、制御部１０２は、各アクセス制御レベルに従って、外部装置から各リソースへのアクセスを許可するか否かを決定し、内部ＣＰＵ１０３は、更新処理が行われている間、アクセス制御レベルが、外部装置からのアクセスを許可する状態にあり、かつ、更新処理の過程においてアクセスするリソースのアクセス制御レベルを、外部装置からのアクセスを不許可とするアクセス制御レベルに変更する。【選択図】図１
2006139517.tif 000002
【特許請求の範囲】
【請求項１】
外部装置から自装置内部の各リソースへのアクセスを制御する機密情報処理装置であって、
前記各リソースについて、外部装置からのアクセスを許可するか否かの判定基準となるアクセス制御レベルを格納しているレベル格納手段と、
更新対象プログラムを格納しているプログラム格納手段と、
外部装置から前記更新対象プログラムの更新要求を受け取る受取手段と、
前記更新要求の受取に応じて、更新対象プログラムを更新する更新処理を行う更新手段と、
前記各アクセス制御レベルに従って、外部装置から前記各リソースへのアクセスを許可するか否かを決定するアクセス制御手段と、
前記更新処理が行われている間、前記レベル格納手段に格納されている各リソースのアクセス制御レベルの内、アクセス制御レベルが、外部装置からのアクセスを許可する状態にあり、かつ、前記更新処理の過程において前記更新手段によってアクセスされるリソースのアクセス制御レベルを、外部装置からのアクセスを不許可とするアクセス制御レベルに変更する変更手段と
を備えることを特徴とする機密情報処理装置。
【請求項２】
前記変更手段は、前記更新処理が終了すると、変更したアクセス制御レベルを変更前のアクセス制御レベルに再変更する
ことを特徴とする請求項１記載の機密情報処理装置。
【請求項３】
前記アクセス制御レベルは、ランクで示され、
前記機密情報処理装置は、外部装置から当該外部装置のアクセス制御レベルを受取るレベル受取手段を備え、
前記アクセス制御手段は、前記外部装置のアクセス制御レベルの示すランクが、前記各リソースのアクセス制御レベルの示すランク以上である場合に、前記外部装置から当該リソースへのアクセスを許可し、
前記外部装置のアクセス制御レベルの示すランクが、前記各リソースのアクセス制御レベルの示すランク以上でない場合に、前記外部装置から当該リソースへのアクセスを許可しない
ことを特徴とする請求項１又は２記載の機密情報処理装置。
【請求項４】
前記受取手段は、前記リソースの１つであり、前記アクセス制御手段によって、前記外部装置の前記受取手段へのアクセスが許可された場合に限り、当該外部装置からの前記更新要求を受取る
ことを特徴とする請求項３記載の機密情報処理装置。
【請求項５】
前記機密情報処理装置はさらに、ランクの上限値を格納している上限値格納手段を備え、
前記アクセス制御手段は、前記外部装置のアクセス制御レベルの示すランクが、上限値を超える場合に、前記各リソースへのアクセスを許可しない
ことを特徴とする請求項３又は４に記載の機密情報処理装置。
【請求項６】
前記機密情報処理装置はさらに、前記外部装置の認証を行う認証手段を備え、
前記アクセス制御手段は、前記認証手段によって前記外部装置が認証されない場合に、前記外部装置から各リソースへのアクセスを許可しない
ことを特徴とする請求項１〜５の何れかに記載の機密情報処理装置。
【請求項７】
前記機密情報処理装置は、外部装置から、暗号化された、前記更新対象プログラムの更新プログラムを受取り、復号化する復号化手段を備え、
前記復号化手段は、前記変更手段によるアクセス制御レベルの変更対象となるリソースであり、復号化した前記更新プログラムを出力するデータ出力部を有し、
前記更新手段は、前記データ出力部にアクセスして、復号化された前記更新プログラムを受取り、当該更新プログラムを前記プログラム格納手段に格納することにより、前記更新処理を行う
ことを特徴とする請求項１〜６の何れかに記載の機密情報処理装置。
【請求項８】
前記プログラム格納手段は、プログラム格納部と退避部とを有し、
前記プログラム格納部は、前記更新対象プログラムと当該更新対象プログラムのコンテキストとを格納し、
前記更新手段は、前記更新対象プログラムのコンテキストを前記更新プログラムにおいて引継ぐか否かを判定する引継判定手段と、
引継ぐ場合に、前記コンテキストを前記退避部に退避する退避手段と
前記更新対象プログラムのハッシュ値を算出するハッシュ値算出手段と
を有し、
前記復号化手段はさらに、前記外部装置から、前記更新対象プログラムのハッシュ値を暗号化したハッシュ値を受取り、復号化して、前記データ出力部に出力し、
前記更新手段は、前記データ出力部から復号された前記更新対象プログラムのハッシュ値を受取り、受取ったハッシュ値と算出したハッシュ値とが一致する場合に限り、前記更新プログラムと前記更新対象プログラムのコンテキストとを前記プログラム格納部に格納する
ことを特徴とする請求項７記載の機密情報処理装置。
【請求項９】
前記復号化手段はさらに、前記外部装置から、前記更新プログラムのハッシュ値を暗号化したハッシュ値を受取り、復号化して、前記データ出力部に出力し、
前記ハッシュ値算出手段は、受取った前記更新対象プログラムのハッシュ値と算出した更新対象プログラムのハッシュ値とが一致する場合に、さらに、前記更新プログラムのハッシュ値を算出し、
前記更新手段は、前記データ出力部から復号化された前記更新プログラムのハッシュ値を受取り、さらに、受取った前記更新プログラムのハッシュ値と算出した前記更新プログラムのハッシュ値とが一致する場合に限り、前記更新プログラムと前記更新対象プログラムのコンテキストとを前記プログラム格納部に格納する
ことを特徴とする請求項８記載の機密情報処理装置。
【請求項１０】
前記更新手段はさらに、受取った前記更新対象プログラムのハッシュ値と算出した前記更新対象プログラムのハッシュ値とが一致しない場合に、前記退避部に格納されている前記更新対象プログラムのコンテキストを消去する
ことを特徴とする請求項８又は９に記載の機密情報処理装置。
【請求項１１】
前記更新手段はさらに、受取った前記更新プログラムのハッシュ値と算出した前記更新プログラムのハッシュ値とが一致しない場合に、前記プログラム格納手段に格納されている前記更新プログラムを消去する
ことを特徴とする請求項１０記載の機密情報処理装置。
【請求項１２】
前記プログラム格納手段は、プログラム格納部と退避部とを有し、
前記プログラム格納部は、前記更新対象プログラムと前記更新対象プログラムのコンテキストとを格納し、
前記退避部は、初期プログラムから前記更新対象プログラムに更新されるまでの各更新回のプログラムのハッシュ値に基づいて算出された複数世代ハッシュ値を格納し、
前記更新手段は、前記更新対象プログラムのコンテキストを前記更新プログラムにおいて引継ぐか否かを判定する引継判定手段と、
引継ぐ場合に、前記コンテキストを前記退避部に退避する退避手段と
を有し、
前記復号化手段はさらに、前記外部装置から、複数世代ハッシュ値を暗号化したハッシュ値を受取り、復号化して、前記データ出力部に出力し、
前記更新手段は、前記データ出力部から復号された複数世代ハッシュ値を受取り、受取った複数世代ハッシュ値と、前記退避部に格納されている複数世代ハッシュ値とが一致する場合に限り、前記更新プログラムと前記更新対象プログラムのコンテキストとを前記プログラム格納部に格納する
ことを特徴とする請求項７記載の機密情報処理装置。
【請求項１３】
前記復号化手段はさらに、前記外部装置から、前記更新プログラムのハッシュ値を暗号化したハッシュ値を受取り、復号化して、前記データ出力部に出力し、
前記更新手段は、受取った複数世代ハッシュ値と前記退避部より取得した複数世代ハッシュ値とが一致する場合に、さらに、前記更新プログラムのハッシュ演算を行うことにより、前記更新プログラムのハッシュ値を算出し、さらに前記データ出力部から復号された前記更新プログラムのハッシュ値を受取り、受取った前記更新プログラムのハッシュ値と算出した前記更新プログラムのハッシュ値とが一致する場合に限り、前記更新プログラムと前記更新対象プログラムのコンテキストとを前記プログラム格納部に格納する
ことを特徴とする請求項１２記載の機密情報処理装置。
【請求項１４】
前記更新手段はさらに、取得した複数世代ハッシュ値と算出した前記更新プログラムのハッシュ値とを連結し、連結したものについてハッシュ演算を行うことにより、ハッシュ値を算出し、前記退避部に格納されている複数世代ハッシュ値を算出したハッシュ値に書換える
ことを特徴とする請求項１３記載の機密情報処理装置。
【請求項１５】
前記更新手段はさらに、受取った複数世代ハッシュ値と前記退避部に格納されている複数世代ハッシュ値とが一致しない場合に、前記退避部に格納されている前記更新対象プログラムのコンテキストを消去する
ことを特徴とする請求項１２〜１４の何れかに記載の機密情報処理装置。
【請求項１６】
前記更新手段はさらに、受取った前記更新プログラムのハッシュ値と算出した前記更新プログラムのハッシュ値とが一致しない場合に、前記プログラム格納手段に格納されている前記更新プログラムを消去する
ことを特徴とする請求項１５記載の機密情報処理装置。
【請求項１７】
前記プログラム格納手段はさらに、前記更新対象プログラムのコンテキストを格納し、
前記更新手段は、
前記更新対象プログラムのコンテキストを前記更新プログラムにおいて引継ぐか否かを判定する引継判定手段と、
引継がない場合に、前記コンテキストを出力するか否かを判定する出力判定手段と、
出力する場合に、前記更新対象プログラムのハッシュ値を算出するハッシュ値算出手段と
を有し、
前記機密情報処理装置はさらに、算出されたハッシュ値と前記コンテキストを暗号化する暗号化手段を備え、
前記更新手段は、暗号化された前記ハッシュ値と前記コンテキストとを連結して自装置外部へ出力する
ことを特徴とする請求項７記載の機密情報処理装置。
【請求項１８】
前記プログラム格納手段は、プログラム格納部と退避部とを有し、
前記プログラム格納部は、前記更新対象プログラムと前記更新対象プログラムのコンテキストとを格納し、
前記更新手段は、
前記更新対象プログラムのコンテキストを前記更新プログラムにおいて引継ぐか否かを判定する引継判定手段と、
引継がない場合に、前記コンテキストを前記退避部に退避するか否かを判定する退避判定手段と、
退避する場合に、前記更新対象プログラムのハッシュ値を算出するハッシュ値算出手段と
前記ハッシュ値と前記コンテキストとを連結して前記退避部へ退避する退避手段と
を有することを特徴とする請求項７記載の機密情報処理装置。
【請求項１９】
前記復号化手段はさらに、前記外部装置から暗号化された、更新プログラムのハッシュ値と更新プログラムのコンテキストとを受取り、復号化し、
前記更新手段は、
前記更新プログラムのハッシュ値を算出するハッシュ値算出手段と
算出したハッシュ値と復号化された前記更新プログラムのハッシュ値とが一致するか否かを判定するハッシュ値判定手段と
を有し、
前記更新手段は、一致する場合に、復号化された前記コンテキストを前記プログラム格納手段に格納されている前記更新プログラムのコンテキストとして格納し、
一致しない場合に、前記プログラム格納手段に格納されている前記更新プログラムを消去する
ことを特徴とする請求項７記載の機密情報処理装置。
【請求項２０】
前記プログラム格納手段は、プログラム格納部と退避部とを有し、
前記プログラム格納部は、前記更新プログラムを格納し、
前記退避部は、前記更新プログラムのコンテキストと当該更新プログラムのハッシュ値とを連結した連結データを複数、格納し、
前記更新手段は、
前記更新プログラムのハッシュ値を算出するハッシュ値算出手段と、
前記退避部に、算出したハッシュ値と同じハッシュ値を有する連結データが格納されているか否かを判定する連結データ判定手段と
を有し、
格納されている場合に、前記更新手段は、前記退避部に格納されている該当する連結データに含まれる前記更新プログラムのコンテキストを前記プログラム格納部に格納し、
格納されていない場合に、前記プログラム格納部に格納されている前記更新プログラムを消去する
ことを特徴とする請求項７記載の機密情報処理装置。
【請求項２１】
前記プログラム格納手段は、プログラム格納部と退避部とを有し、
前記プログラム格納部は、前記更新対象プログラムと前記更新対象プログラムのコンテキストとを格納し、
前記退避部は、暗号化された更新対象プログラムの示す値である連鎖値を格納し、
前記更新プログラムは、暗号鍵と前記連鎖値とを用いて暗号化され、
前記更新手段は、前記更新対象プログラムのコンテキストを前記更新プログラムにおいて引継ぐか否かを判定する引継判定手段と、
引継ぐ場合に、前記コンテキストを前記退避部に退避する退避手段と
を有し、
前記復号化手段はさらに、前記外部装置から受取った前記更新プログラムを前記暗号鍵と、前記退避部に格納されている前記連鎖値とを用いて復号化して、前記データ出力部に出力し、
前記更新手段は、前記データ出力部から復号された前記更新プログラムを受取り、受取った前記更新プログラムと前記更新対象プログラムのコンテキストとを前記プログラム格納部に格納する
ことを特徴とする請求項７記載の機密情報処理装置。
【請求項２２】
前記プログラム格納手段は、前記更新対象プログラムを格納しているバンクと前記更新対象プログラムの更新プログラムを格納しているバンクとを有し、
前記更新手段は、前記プログラム格納手段のバンクを切り替えることにより、前記更新処理を行う
ことを特徴とする請求項１又は２記載の機密情報処理装置。
【請求項２３】
前記更新対象プログラムを格納しているバンクは、当該更新対象プログラムのコンテキストを格納し、
前記受取手段は、切り替えるべき、前記更新プログラムを格納しているバンクを指定するバンク情報を前記更新要求として受取り、
前記更新手段は、
前記更新対象プログラムのコンテキストを前記更新プログラムにおいて引継ぐか否かを判定する引継判定手段と、
引継ぐ場合に、前記プログラム格納手段におけるアクセス対象となるバンクを、前記更新対象プログラムを格納しているバンクから前記更新プログラムを格納しているバンクに切り替えるバンク切替手段と
を有し、
前記更新手段は、切り替えたバンクに、前記更新対象プログラムのコンテキストを格納する
ことを特徴とする請求項２２記載の機密情報処理装置。
【請求項２４】
前記更新対象プログラムには、当該更新対象プログラムのコンテキストを引継ぎ可能な、当該更新対象プログラムの更新プログラムが格納されているバンクを特定する情報である引継可能バンク情報が含まれ、
前記更新手段はさらに、受取られたバンク情報の指定するバンクと、引継可能バンク情報の特定するバンクとが一致するか否かの判定する引継バンク判定手段を有し、
前記バンク切替手段は、一致する場合に限り、前記プログラム格納手段におけるアクセス対象となるバンクを、前記更新対象プログラムを格納しているバンクから前記更新プログラムを格納しているバンクに切り替える
ことを特徴とする請求項２３記載の機密情報処理装置。
【請求項２５】
前記アクセス制御レベルは、３段階以上のランクで示される
ことを特徴とする請求項３記載の機密情報処理装置。
【請求項２６】
前記機密情報処理装置はさらに、ランクの上限値を格納している上限値格納手段を備え、
前記アクセス制御手段は、前記外部装置のアクセス制御レベルの示すランクが、上限値を超える場合に、当該外部装置のアクセス制御レベルの示すランクを上限値と同一のランクとみなして、当該外部装置から前記各リソースへのアクセスを許可するか否かを決定する
ことを特徴とする請求項３記載の機密情報処理装置。
【請求項２７】
外部装置から自装置内部の各リソースへのアクセスを制御する機密情報処理装置に用いる機密情報処理方法であって、
前記機密情報処理装置は、
前記各リソースについて、外部装置からのアクセスを許可するか否かの判定基準となるアクセス制御レベルを格納しているレベル格納手段と、
更新対象プログラムを格納しているプログラム格納手段と
を備え、
前記機密情報処理方法は、
外部装置から前記更新対象プログラムの更新要求を受け取る受取ステップと、
前記更新要求の受取に応じて、更新対象プログラムを更新する更新処理を行う更新ステップと、
前記各アクセス制御レベルに従って、外部装置から前記各リソースへのアクセスを許可するか否かを決定するアクセス制御ステップと、
前記更新処理が行われている間、前記レベル格納手段に格納されている各リソースのアクセス制御レベルの内、アクセス制御レベルが、外部装置からのアクセスを許可する状態にあり、かつ、前記更新処理の過程においてアクセスされるリソースのアクセス制御レベルを、外部装置からのアクセスを不許可とするアクセス制御レベルに変更するランク変更ステップと
を含むことを特徴とする機密情報処理方法。
【請求項２８】
外部装置から自装置内部の各リソースへのアクセスを制御する機密情報処理装置において、機密情報処理を実行させるプログラムであって、
前記機密情報処理装置は、
前記各リソースについて、外部装置からのアクセスを許可するか否かの判定基準となるアクセス制御レベルを格納しているレベル格納手段と、
更新対象プログラムを格納しているプログラム格納手段と
を備え、
前記機密情報処理は、
外部装置から前記更新対象プログラムの更新要求を受け取る受取ステップと、
前記更新要求の受取に応じて、更新対象プログラムを更新する更新処理を行う更新ステップと、
前記各アクセス制御レベルに従って、外部装置から前記各リソースへのアクセスを許可するか否かを決定するアクセス制御ステップと、
前記更新処理が行われている間、前記レベル格納手段に格納されている各リソースのアクセス制御レベルの内、アクセス制御レベルが、外部装置からのアクセスを許可する状態にあり、かつ、前記更新処理の過程においてアクセスされるリソースのアクセス制御レベルを、外部装置からのアクセスを不許可とするアクセス制御レベルに変更するランク変更ステップと
を含むことを特徴とするプログラム。
【請求項２９】
外部装置から自装置内部の各リソースへのアクセスを制御する機密情報処理装置において、機密情報処理を実行させるプログラムを記録したコンピュータ読取可能な記録媒体であって、
前記機密情報処理装置は、
前記各リソースについて、外部装置からのアクセスを許可するか否かの判定基準となるアクセス制御レベルを格納しているレベル格納手段と、
更新対象プログラムを格納しているプログラム格納手段と
を備え、
前記機密情報処理は、
外部装置から前記更新対象プログラムの更新要求を受け取る受取ステップと、
前記更新要求の受取に応じて、更新対象プログラムを更新する更新処理を行う更新ステップと、
前記各アクセス制御レベルに従って、外部装置から前記各リソースへのアクセスを許可するか否かを決定するアクセス制御ステップと、
前記更新処理が行われている間、前記レベル格納手段に格納されている各リソースのアクセス制御レベルの内、アクセス制御レベルが、外部装置からのアクセスを許可する状態にあり、かつ、前記更新処理の過程においてアクセスされるリソースのアクセス制御レベルを、外部装置からのアクセスを不許可とするアクセス制御レベルに変更するランク変更ステップと
を含むことを特徴とするコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機密情報処理装置の有する機密情報処理プログラムの更新処理の技術に関する。
【背景技術】
【０００２】
著作権保護が必要なコンテンツを扱うシステムにおいては、コンテンツを復号化するための鍵や復号化されたコンテンツなど機密情報の漏洩を防ぐ必要がある。機密情報の漏洩を防ぐための技術として、システム全体の制御を行うＣＰＵとは異なる、機密情報を扱う専用ＣＰＵと、専用ＣＰＵで実行するプログラムおよび鍵などの機密情報を格納したメモリと、暗号演算回路とで構成される機密情報処理装置を設け、システム全体の制御を行うＣＰＵからは専用ＣＰＵで実行するプログラムおよび機密情報にアクセスできないように制限するための技術が特許文献１に開示されている。
【０００３】
これにより、装置内のセキュリティレベルを向上させることができ、コンテンツの不正実行を有効に防止することができる。
【特許文献１】特開２００４−９６６６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら上記従来技術では、外部からのアクセスにより、専用ＣＰＵで実行するプログラムを更新することができないため、前記機密情報処理装置が組み込まれたシステムが製品として出荷された後は機密情報処理装置の機能変更を随時行うことができないと言う問題があった。
本発明は、上記の問題点に鑑み、機密情報の漏洩を有効に防止しつつ、機密情報処理装置の機能変更を随時行うことが可能な機密情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明は、外部装置から自装置内部の各リソースへのアクセスを制御する機密情報処理装置であって、前記各リソースについて、外部装置からのアクセスを許可するか否かの判定基準となるアクセス制御レベルを格納しているレベル格納手段と、更新対象プログラムを格納しているプログラム格納手段と、外部装置から前記更新対象プログラムの更新要求を受け取る受取手段と、前記更新要求の受取に応じて、更新対象プログラムを更新する更新処理を行う更新手段と、前記各アクセス制御レベルに従って、外部装置から前記各リソースへのアクセスを許可するか否かを決定するアクセス制御手段と、前記更新処理が行われている間、前記レベル格納手段に格納されている各リソースのアクセス制御レベルの内、アクセス制御レベルが、外部装置からのアクセスを許可する状態にあり、かつ、前記更新処理の過程において前記更新手段によってアクセスされるリソースのアクセス制御レベルを、外部装置からのアクセスを不許可とするアクセス制御レベルに変更する変更手段とを備える。
【０００６】
又、本発明は、外部装置から自装置内部の各リソースへのアクセスを制御する機密情報処理装置に用いる機密情報処理方法であって、前記機密情報処理装置は、前記各リソースについて、外部装置からのアクセスを許可するか否かの判定基準となるアクセス制御レベルを格納しているレベル格納手段と、更新対象プログラムを格納しているプログラム格納手段とを備え、前記機密情報処理方法は、外部装置から前記更新対象プログラムの更新要求を受け取る受取ステップと、前記更新要求の受取に応じて、更新対象プログラムを更新する更新処理を行う更新ステップと、前記各アクセス制御レベルに従って、外部装置から前記各リソースへのアクセスを許可するか否かを決定するアクセス制御ステップと、前記更新処理が行われている間、前記レベル格納手段に格納されている各リソースのアクセス制御レベルの内、アクセス制御レベルが、外部装置からのアクセスを許可する状態にあり、かつ、前記更新処理の過程においてアクセスされるリソースのアクセス制御レベルを、外部装置からのアクセスを不許可とするアクセス制御レベルに変更するランク変更ステップとを含むこととすることができる。
【０００７】
又、本発明は、外部装置から自装置内部の各リソースへのアクセスを制御する機密情報処理装置において、機密情報処理を実行させるプログラムであって、前記機密情報処理装置は、前記各リソースについて、外部装置からのアクセスを許可するか否かの判定基準となるアクセス制御レベルを格納しているレベル格納手段と、更新対象プログラムを格納しているプログラム格納手段とを備え、前記機密情報処理は、外部装置から前記更新対象プログラムの更新要求を受け取る受取ステップと、前記更新要求の受取に応じて、更新対象プログラムを更新する更新処理を行う更新ステップと、前記各アクセス制御レベルに従って、外部装置から前記各リソースへのアクセスを許可するか否かを決定するアクセス制御ステップと、前記更新処理が行われている間、前記レベル格納手段に格納されている各リソースのアクセス制御レベルの内、アクセス制御レベルが、外部装置からのアクセスを許可する状態にあり、かつ、前記更新処理の過程においてアクセスされるリソースのアクセス制御レベルを、外部装置からのアクセスを不許可とするアクセス制御レベルに変更するランク変更ステップとを含むこととすることができる。
【０００８】
又、本発明は、外部装置から自装置内部の各リソースへのアクセスを制御する機密情報処理装置において、機密情報処理を実行させるプログラムを記録したコンピュータ読取可能な記録媒体であって、前記機密情報処理装置は、前記各リソースについて、外部装置からのアクセスを許可するか否かの判定基準となるアクセス制御レベルを格納しているレベル格納手段と、更新対象プログラムを格納しているプログラム格納手段とを備え、前記機密情報処理は、外部装置から前記更新対象プログラムの更新要求を受け取る受取ステップと、前記更新要求の受取に応じて、更新対象プログラムを更新する更新処理を行う更新ステップと、前記各アクセス制御レベルに従って、外部装置から前記各リソースへのアクセスを許可するか否かを決定するアクセス制御ステップと、前記更新処理が行われている間、前記レベル格納手段に格納されている各リソースのアクセス制御レベルの内、アクセス制御レベルが、外部装置からのアクセスを許可する状態にあり、かつ、前記更新処理の過程においてアクセスされるリソースのアクセス制御レベルを、外部装置からのアクセスを不許可とするアクセス制御レベルに変更するランク変更ステップとを含むこととすることができる。
【発明の効果】
【０００９】
本発明は、上記構成を備えることにより、更新処理を行っている間、外部装置からのアクセスを制限することができるので、機密情報の漏洩を有効に防止しつつ、機密情報処理装置の機能変更を外部から随時行うことができる。
ここで、前記変更手段は、前記更新処理が終了すると、変更したアクセス制御レベルを変更前のアクセス制御レベルに再変更することとしてもよい。
【００１０】
これにより、更新処理の終了後は、外部からのアクセスを更新処理時に比べて、緩和することができるので、機密情報処理装置において、更新処理以外の処理を実行中は、外部からの通常どおりのアクセスを担保することができる。
ここで、前記アクセス制御レベルは、ランクで示され、前記機密情報処理装置は、外部装置から当該外部装置のアクセス制御レベルを受取るレベル受取手段を備え、前記アクセス制御手段は、前記外部装置のアクセス制御レベルの示すランクが、前記各リソースのアクセス制御レベルの示すランク以上である場合に、前記外部装置から当該リソースへのアクセスを許可し、前記外部装置のアクセス制御レベルの示すランクが、前記各リソースのアクセス制御レベルの示すランク以上でない場合に、前記外部装置から当該リソースへのアクセスを許可しないこととしてもよい。
【００１１】
これにより、アクセス制御レベルを内部リソースの機密性の必要度に応じて設定することができるので、外部からの機密性の高いリソースへのアクセスを重点的に制限し、機密性の低いリソースに対しては、外部からのアクセスを容易にするというような必要に応じた柔軟で、きめの細かいアクセス制御を実現することができる。
ここで、前記受取手段は、前記リソースの１つであり、前記アクセス制御手段によって、前記外部装置の前記受取手段へのアクセスが許可された場合に限り、当該外部装置からの前記更新要求を受取ることとしてもよい。
【００１２】
これにより、外部装置からの更新要求の受取を特定の外部装置からのものに制御することができるので、外部装置からの更新要求を無制限に受け取り、無駄な更新処理が実行されるのを有効に防止することができる。
ここで、前記機密情報処理装置はさらに、ランクの上限値を格納している上限値格納手段を備え、前記アクセス制御手段は、前記外部装置のアクセス制御レベルの示すランクが、上限値を超える場合に、前記各リソースへのアクセスを許可しないこととしてもよい。
【００１３】
又、前記機密情報処理装置はさらに、ランクの上限値を格納している上限値格納手段を備え、前記アクセス制御手段は、前記外部装置のアクセス制御レベルの示すランクが、上限値を超える場合に、当該外部装置のアクセス制御レベルの示すランクを上限値と同一のランクとみなして、当該外部装置から前記各リソースへのアクセスを許可するか否かを決定することとしてもよい。
【００１４】
これにより、外部装置に対してアクセスを許可する外部装置のアクセス制御レベルを制限することができるので、不正な操作により、外部装置のアクセス制御レベルの示すランクが高く設定された場合においても、当該外部装置からのアクセスを有効に排除することができる。
ここで、前記機密情報処理装置はさらに、前記外部装置の認証を行う認証手段を備え、前記アクセス制御手段は、前記認証手段によって前記外部装置が認証されない場合に、前記外部装置から各リソースへのアクセスを許可しないこととしてもよい。
【００１５】
これにより、認証されない外部装置のアクセスは拒否されるので、外部装置からの不正アクセスを効果的に防止することができる。
ここで、前記機密情報処理装置は、外部装置から、暗号化された、前記更新対象プログラムの更新プログラムを受取り、復号化する復号化手段を備え、前記復号化手段は、前記変更手段によるアクセス制御レベルの変更対象となるリソースであり、復号化した前記更新プログラムを出力するデータ出力部を有し、前記更新手段は、前記データ出力部にアクセスして、復号化された前記更新プログラムを受取り、当該更新プログラムを前記プログラム格納手段に格納することにより、前記更新処理を行うこととしてもよい。
【００１６】
これにより、更新処理が実行されている間、復号後の更新プログラムを出力するデータ出力部への外部からのアクセスが制限されるので、外部から機密情報を入力する場合におけるセキュリティを担保することができる。
ここで、前記プログラム格納手段は、プログラム格納部と退避部とを有し、前記プログラム格納部は、前記更新対象プログラムと当該更新対象プログラムのコンテキストとを格納し、前記更新手段は、前記更新対象プログラムのコンテキストを前記更新プログラムにおいて引継ぐか否かを判定する引継判定手段と、引継ぐ場合に、前記コンテキストを前記退避部に退避する退避手段と前記更新対象プログラムのハッシュ値を算出するハッシュ値算出手段とを有し、前記復号化手段はさらに、前記外部装置から、前記更新対象プログラムのハッシュ値を暗号化したハッシュ値を受取り、復号化して、前記データ出力部に出力し、前記更新手段は、前記データ出力部から復号された前記更新対象プログラムのハッシュ値を受取り、受取ったハッシュ値と算出したハッシュ値とが一致する場合に限り、前記更新プログラムと前記更新対象プログラムのコンテキストとを前記プログラム格納部に格納することとしてもよい。
【００１７】
又、前記更新手段はさらに、受取った前記更新対象プログラムのハッシュ値と算出した前記更新対象プログラムのハッシュ値とが一致しない場合に、前記退避部に格納されている前記更新対象プログラムのコンテキストを消去することとしてもよい。
これにより、更新対象のプログラムのハッシュ値に基づいて、外部装置から入力された更新プログラムに更新対象のプログラムのコンテキストを引継がせてよいか否かを判定することできるので、コンテキストが不正に利用されるのを効果的に防止することができる。
【００１８】
ここで、前記復号化手段はさらに、前記外部装置から、前記更新プログラムのハッシュ値を暗号化したハッシュ値を受取り、復号化して、前記データ出力部に出力し、前記ハッシュ値算出手段は、受取った前記更新対象プログラムのハッシュ値と算出した更新対象プログラムのハッシュ値とが一致する場合に、さらに、前記更新プログラムのハッシュ値を算出し、前記更新手段は、前記データ出力部から復号化された前記更新プログラムのハッシュ値を受取り、さらに、受取った前記更新プログラムのハッシュ値と算出した前記更新プログラムのハッシュ値とが一致する場合に限り、前記更新プログラムと前記更新対象プログラムのコンテキストとを前記プログラム格納部に格納することとしてもよい。
【００１９】
又、前記更新手段はさらに、受取った前記更新プログラムのハッシュ値と算出した前記更新プログラムのハッシュ値とが一致しない場合に、前記プログラム格納手段に格納されている前記更新プログラムを消去することとしてもよい。
これにより、外部装置から入力された更新プログラムが改ざんされていないことをハッシュ値に基づいて、確認した上で、更新プログラムを受取ることができるので、不正に改ざんされたプログラムが、機密情報処理装置内に格納されるのを事前に防止することができる。
【００２０】
ここで、前記プログラム格納手段は、プログラム格納部と退避部とを有し、前記プログラム格納部は、前記更新対象プログラムと前記更新対象プログラムのコンテキストとを格納し、前記退避部は、初期プログラムから前記更新対象プログラムに更新されるまでの各更新回のプログラムのハッシュ値に基づいて算出された複数世代ハッシュ値とを格納し、前記更新手段は、前記更新対象プログラムのコンテキストを前記更新プログラムにおいて引継ぐか否かを判定する引継判定手段と、引継ぐ場合に、前記コンテキストを前記退避部に退避する退避手段とを有し、前記復号化手段はさらに、前記外部装置から、複数世代ハッシュ値を暗号化したハッシュ値を受取り、復号化して、前記データ出力部に出力し、前記更新手段は、前記データ出力部から復号された複数世代ハッシュ値を受取り、受取った複数世代ハッシュ値と、前記退避部に格納されている複数世代ハッシュ値とが一致する場合に限り、前記更新プログラムと前記更新対象プログラムのコンテキストとを前記プログラム格納部に格納することとしてもよい。
【００２１】
又、前記更新手段はさらに、受取った複数世代ハッシュ値と前記退避部に格納されている複数世代ハッシュ値とが一致しない場合に、前記退避部に格納されている前記更新対象プログラムのコンテキストを消去することとしてもよい。
これにより、複数世代ハッシュ値に基づいて、外部装置から入力された更新プログラムに更新前のプログラムのコンテキストを引継がせてよいか否かを判定できるので、各更新回のプログラムのハッシュ値が全て流出しない限り、不正利用者によって外部から入力された更新プログラムによってコンテキストが不正に利用されることはなく、コンテキストの不正な引継行為を効果的に防止することができる。
【００２２】
ここで、前記復号化手段はさらに、前記外部装置から、前記更新プログラムのハッシュ値を暗号化したハッシュ値を受取り、復号化して、前記データ出力部に出力し、前記更新手段は、受取った複数世代ハッシュ値と前記退避部より取得した複数世代ハッシュ値とが一致する場合に、さらに、前記更新プログラムのハッシュ演算を行うことにより、前記更新プログラムのハッシュ値を算出し、さらに前記データ出力部から復号された前記更新プログラムのハッシュ値を受取り、受取った前記更新プログラムのハッシュ値と算出した前記更新プログラムのハッシュ値とが一致する場合に限り、前記更新プログラムと前記更新対象プログラムのコンテキストとを前記プログラム格納部に格納することとしてもよい。
【００２３】
又、前記更新手段はさらに、受取った前記更新プログラムのハッシュ値と算出した前記更新プログラムのハッシュ値とが一致しない場合に、前記プログラム格納手段に格納されている前記更新プログラムを消去することとしてもよい。
これにより、外部装置から入力された更新プログラムが改ざんされていないことをハッシュ値に基づいて、確認した上で、更新プログラムを受取ることができるので、不正に改ざんされたプログラムが、機密情報処理装置内に格納されるのを事前に防止することができる。
【００２４】
ここで、前記更新手段はさらに、取得した複数世代ハッシュ値と算出した前記更新プログラムのハッシュ値とを連結し、連結したものについてハッシュ演算を行うことにより、ハッシュ値を算出し、前記退避部に格納されている複数世代ハッシュ値を算出したハッシュ値に書換えることとしてもよい。
これにより、更新プログラムに更新対象プログラムのコンテキストが引継がれた場合に、複数世代ハッシュ値を更新することができるので、外部からのコンテキストの不正な引継行為に対する防御力をより高めることができる。
【００２５】
ここで、前記プログラム格納手段はさらに、前記更新対象プログラムのコンテキストを格納し、前記更新手段は、前記更新対象プログラムのコンテキストを前記更新プログラムにおいて引継ぐか否かを判定する引継判定手段と、引継がない場合に、前記コンテキストを出力するか否かを判定する出力判定手段と、出力する場合に、前記更新対象プログラムのハッシュ値を算出するハッシュ値算出手段とを有し、前記機密情報処理装置はさらに、算出されたハッシュ値と前記コンテキストを暗号化する暗号化手段を備え、前記更新手段は、暗号化された前記ハッシュ値と前記コンテキストとを連結して自装置外部へ出力することとしてもよい。
【００２６】
これにより、更新プログラムに引継がれない更新対象プログラムのコンテキストを更新対象プログラムのハッシュ値と関連付けて外部に一時的に退避させることができるので、機密情報処理装置内において、更新対象プログラムの再使用のため外部から退避させたコンテキストを入力する場合に、ハッシュ値に基づいて、外部から入力されたコンテキストが、当該更新対象プログラムのコンテキストであるか否かを容易に確認することができる。
【００２７】
ここで、前記プログラム格納手段は、プログラム格納部と退避部とを有し、前記プログラム格納部は、前記更新対象プログラムと前記更新対象プログラムのコンテキストとを格納し、前記更新手段は、前記更新対象プログラムのコンテキストを前記更新プログラムにおいて引継ぐか否かを判定する引継判定手段と、引継がない場合に、前記コンテキストを前記退避部に退避するか否かを判定する退避判定手段と、退避する場合に、前記更新対象プログラムのハッシュ値を算出するハッシュ値算出手段と前記ハッシュ値と前記コンテキストとを連結して前記退避部へ退避する退避手段とを有することとしてもよい。
【００２８】
これにより、更新プログラムに引継がれない更新対象プログラムのコンテキストを更新対象プログラムのハッシュ値と関連付けて退避部に一時的に退避させることができるので、機密情報処理装置内において、更新対象プログラムの再使用のため外部から退避させたコンテキストを入力する場合に、ハッシュ値に基づいて、退避部から入力されたコンテキストが、当該更新対象プログラムのコンテキストであるか否かを容易に確認することができる。
【００２９】
ここで、前記復号化手段はさらに、前記外部装置から暗号化された、更新プログラムのハッシュ値と更新プログラムのコンテキストとを受取り、復号化し、前記更新手段は、
前記更新プログラムのハッシュ値を算出するハッシュ値算出手段と算出したハッシュ値と復号化された前記更新プログラムのハッシュ値とが一致するか否かを判定するハッシュ値判定手段とを有し、前記更新手段は、一致する場合に、復号化された前記コンテキストを前記プログラム格納手段に格納されている前記更新プログラムのコンテキストとして格納し、一致しない場合に、前記プログラム格納手段に格納されている前記更新プログラムを消去することとしてもよい。
【００３０】
これにより、外部から入力されたコンテキストがハッシュ値と関連付けられて入力されるので、入力されたコンテキストが更新プログラムの正しいコンテキストであるか否かを容易に確認することができ、コンテキストの不正入力による機密情報処理装置の機能改ざん行為を有効に防止することができる。
ここで、前記プログラム格納手段は、プログラム格納部と退避部とを有し、前記プログラム格納部は、前記更新プログラムを格納し、前記退避部は、前記更新プログラムのコンテキストと当該更新プログラムのハッシュ値とを連結した連結データを複数、格納し、前記更新手段は、前記更新プログラムのハッシュ値を算出するハッシュ値算出手段と、前記退避部に、算出したハッシュ値と同じハッシュ値を有する連結データが格納されているか否かを判定する連結データ判定手段とを有し、格納されている場合に、前記更新手段は、前記退避部に格納されている該当する連結データに含まれる前記更新プログラムのコンテキストを前記プログラム格納部に格納し、格納されていない場合に、前記プログラム格納部に格納されている前記更新プログラムを消去することとしてもよい。
【００３１】
これにより、外部から入力された更新プログラムが、機密情報処理装置内に格納されているコンテキストに対する更新プログラムであるか否かを、コンテキストと関連付けられているハッシュ値に基づいて確認することができるので、外部からの更新プログラムの不正入力によるコンテキストの不正使用を有効に防止することができる。
ここで、前記プログラム格納手段は、プログラム格納部と退避部とを有し、前記プログラム格納部は、前記更新対象プログラムと前記更新対象プログラムのコンテキストとを格納し、前記退避部は、暗号化された更新対象プログラムの示す値である連鎖値とを格納し、前記更新プログラムは、暗号鍵と前記連鎖値とを用いて暗号化され、前記更新手段は、前記更新対象プログラムのコンテキストを前記更新プログラムにおいて引継ぐか否かを判定する引継判定手段と、引継ぐ場合に、前記コンテキストを前記退避部に退避する退避手段とを有し、前記復号化手段はさらに、前記外部装置から、前記外部装置から受取った前記更新プログラムを前記暗号鍵と、前記退避部に格納されている前記連鎖値とを用いて復号化して、前記データ出力部に出力し、前記更新手段は、前記データ出力部から復号された前記更新プログラムを受取り、受取った前記更新プログラムと前記更新対象プログラムのコンテキストとを前記プログラム格納部に格納することとしてもよい。
【００３２】
これにより、更新対象プログラムのコンテキストを引継ぐべき更新プログラムが、暗号鍵と、更新対象プログラムに固有の値である連鎖値との両方を用いて暗号化され、機密情報処理装置内で同じ暗号鍵と連鎖値との両方を用いて復号されるので、不正利用者は、暗号鍵と連鎖値との両方を知らない限り、外部から不正に更新プログラムを入力し、入力した更新プログラムを復号させることができないため、コンテキストの不正な引継行為を効果的に防止することができる。
【００３３】
ここで、前記プログラム格納手段は、前記更新対象プログラムを格納しているバンクと前記更新対象プログラムの更新プログラムを格納しているバンクとを有し、前記更新手段は、前記プログラム格納手段のバンクを切り替えることにより、前記更新処理を行うこととしてもよい。
又、前記更新対象プログラムを格納しているバンクは、当該更新対象プログラムのコンテキストを格納し、前記受取手段は、切り替えるべき、前記更新プログラムを格納しているバンクを指定するバンク情報を前記更新要求として受取り、前記更新手段は、前記更新対象プログラムのコンテキストを前記更新プログラムにおいて引継ぐか否かを判定する引継判定手段と、引継ぐ場合に、前記プログラム格納手段におけるアクセス対象となるバンクを、前記更新対象プログラムを格納しているバンクから前記更新プログラムを格納しているバンクに切り替えるバンク切替手段とを有し、前記更新手段は、切り替えたバンクに、前記更新対象プログラムのコンテキストを格納することとしてもよい。
【００３４】
これにより、更新プログラムを内部に格納した状態で、外部から容易にプログラムの更新処理を実行することができるので、機密情報を外部に持ち出すことなく、外部から安全確実にプログラムの更新処理を実行することができる。
ここで、前記更新対象プログラムには、当該更新対象プログラムのコンテキストを引継ぎ可能な、当該更新対象プログラムの更新プログラムが格納されているバンクを特定する情報である引継可能バンク情報が含まれ、前記更新手段はさらに、受取られたバンク情報の指定するバンクと、引継可能バンク情報の特定するバンクとが一致するか否かの判定する引継バンク判定手段を有し、前記バンク切替手段は、一致する場合に限り、前記プログラム格納手段におけるアクセス対象となるバンクを、前記更新対象プログラムを格納しているバンクから前記更新プログラムを格納しているバンクに切り替えることとしてもよい。
【００３５】
これにより、外部からの不正アクセスによりバンクが切り替えられるのを効果的に防止することができるので、不正操作による更新プログラムの実行を有効に防止することができる。
ここで、前記アクセス制御レベルは、３段階以上のランクで示される
こととしてもよい。
【００３６】
これにより、更新処理の実行時に、特定の外部装置のみがアクセス可能となるようにアクセス制御できると同時に、外部からの機密情報処理装置内のリソースへのアクセスに対しても特定のリソースへのアクセスを制限することができるので、機密性のレベルに応じてフレキシブルなアクセス制御をすることができる。
【発明を実施するための最良の形態】
【００３７】
以下本発明を実施するための最良の形態について、図面を参照しながら説明する。
（実施の形態１）
＜構成＞
図１は本発明の実施の形態１に係る機密情報処理装置１００の構成を示す機能ブロック図である。
【００３８】
機密情報処理装置１００は、外部インタフェース（以下、外部I/Fという。）１０１、制御部１０２、内部CPU１０３、暗号演算部１０４、機密情報格納部１０５から構成され、機密情報処理装置１００には、外部装置１２０及び１２１が外部I/F１０１を介して接続されている。ここでは、説明を簡略化するため、機密情報処理装置１００に接続されている外部装置を２つとしているが、外部装置は、１つであってもよいし、３つ以上であってもよい。
【００３９】
外部I/Fは、外部装置１２０、１２１からランク情報や更新後のプログラムや当該プログラムに使用するコンテキストなどの各種データの入力を受け取り、制御部１０２に出力する。
ここで、「ランク情報」とは、機密情報処理装置内の各リソースにアクセスを許可するか否かの判断基準となるランクを示す情報のことをいい、外部装置１２０、１２１および機密情報処理装置１００内の各リソースにそれぞれランク情報が予め設定されており、外部装置１２０、１２１及び内部CPU１０３が機密情報処理装置１００内の各リソースへのアクセスをする際に、それぞれランク情報を図１に示す専用バスを介して制御部１０２に出力する。
【００４０】
制御部１０２は、アクセス制御部１０２１、上限ランク格納部１０２３、プログラム更新要求レジスタ１０２４から構成される。
アクセス制御部１０２１は、ランク対応テーブルを格納しているランク対応テーブル格納部１０２２を有し、外部装置１２０、１２１及び内部CPU１０３から出力される各ランク情報に基いて、当該外部装置或いは内部CPU１０３から要求された機密情報処理装置１００内のアクセス対象のリソースへのアクセスを制御する。
【００４１】
具体的には、アクセス制御部１０２１は、機密情報処理装置１００内の各リソースのアドレスと当該リソースに設定されているランクとの対応関係を示すランク対応テーブルを参照して、アクセス対象の示すランクを特定し、特定したランクと出力されたランク情報の示すランクとを比較して、出力されたランクが特定したランクより低くない場合に、当該アクセス対象へのアクセスを許可し、低い場合に、当該アクセス対象へのアクセスを拒否する制御を行う。
【００４２】
図３は、ランク対応テーブルの具体例を示す図である。図３においては、各リソースを特定するためのアドレスを説明の都合上、名前で示しているが、実際には、各リソースに付与されたアドレスがランク対応テーブルに記述されている。
上限ランク格納部１０２３は、ランク上限値を格納している。
ここで、「ランク上限値」とは、外部装置１２０、１２１から出力されたランク情報の示すランクが不当に高いか否かを判定する基準となる閾値のことをいい、出力されたランク情報の示すランクがこの閾値より高い場合には、制御部１０２は、当該外部装置からのアクセス対象へのアクセスを拒否し、出力されたランク情報の示すランクがこの閾値より高くない場合には、さらに当該外部装置からのアクセス対象へのアクセスに対し、上記に説明したアクセス制御部１０２１によるアクセス制御が行われる。
【００４３】
プログラム更新要求レジスタ１０２４は、外部装置１２０、１２１及びCPU１０３からのプログラム更新要求が有ったか否かを示す更新要求フラグを保持している。
制御部１０２は、プログラム更新要求レジスタの更新要求フラグを監視し、更新要求フラグが、プログラム更新要求が有ったことを示している場合に、内部CPU１０３に更新用プログラムの実行の指示をする。
【００４４】
内部CPU１０３は、制御部１０２からの上記指示に応じて、機密情報格納部１０５の後述する更新用プログラム格納領域に格納されている更新用プログラムを読出し、後述するプログラム更新処理を実行する。
暗号演算部１０４は、データ入力部１０４１、演算処理部１０４２、データ出力部１０４３から構成される。
【００４５】
データ入力部１０４１は、データ格納用のレジスタを有し、外部装置１２０、１２１、内部CPU１０３より出力されたプログラム、プログラムのコンテキスト、ハッシュ値などの各種データを受取る。
演算処理部１０４２は、データを暗号化又は復号化するための鍵データを格納する鍵データ格納部を有し、データ入力部１０４１から入力されるデータを鍵データ格納部に格納されている鍵を用いて暗号化又は復号化し、データ出力部１０４３に出力する。
【００４６】
データ出力部１０４３は、演算処理部１０４２から入力される暗号化又は復号化後のデータを格納するためのレジスタを有し、入力されたデータを内部CPU１０３や外部I/F１０１を介して外部へ出力する。
機密情報格納部１０５は、演算用プログラム格納領域１０５１、更新用プログラム格納領域１０５２、退避領域１０５３から構成される。
【００４７】
演算用プログラム格納領域１０５１は、機密情報処理装置１００の機能を実現するためのプログラム及び当該プログラムのコンテキスト等を格納するための格納領域である。
図２５は、演算用プログラム格納領域１０５１の構成を示す。演算用プログラム格納領域１０５１は、２つの格納領域である演算用プログラム格納領域A１０５１１及び演算用プログラム格納領域B１０５１５とから構成され、演算用プログラム格納領域A１０５１１には、演算用プログラム領域１０５１２、コンテキスト退避フラグ領域１０５１３、演算用プログラム格納済フラグ領域１０５１４が含まれ、演算用プログラム格納領域B１０５１５には、コンテキスト引継フラグ領域１０５１６、コンテキスト入力方法フラグ領域１０５１７が含まれる。
【００４８】
演算用プログラム領域１０５１２は、機密情報処理装置１００の機能を実現するためのプログラム及びそのコンテキストを格納するための領域であり、コンテキスト退避フラグ領域１０５１３は、コンテキスト退避フラグを格納している領域であり、演算用プログラム格納済フラグ領域１０５１４は、演算用プログラム格納済フラグを格納している領域である。
【００４９】
ここで、「コンテキスト退避フラグ」とは、後述するプログラム更新処理において、更新前の機密情報処理装置１００の機能を実現するためのプログラム（以下、「更新前プログラム」という。）のコンテキストの処理方法を示すフラグのことをいう。
又、「演算用プログラム格納済フラグ」とは、後述するプログラム更新処理において、更新前プログラム及びそのコンテキストが演算用プログラム領域１０５１２に格納済であるか否かを示すフラグのことをいう。
【００５０】
コンテキスト引継フラグ領域１０５１６は、コンテキスト引継フラグを格納している領域であり、コンテキスト入力方法フラグ領域は、コンテキスト入力方法フラグを格納している領域である。
ここで、「コンテキスト引継フラグ」とは、後述するプログラム更新処理において、更新前プログラムと差替えるべき、更新前プログラムの一部又は全部を変更した、機密情報処理装置１００の機能を実現するためのプログラム（以下、「更新後プログラム」という。）において、更新前プログラムのコンテキストを引継ぐか否かを指示するフラグのことをいう。
【００５１】
ここで、「引継ぐ」とは、更新後プログラムにおいて、更新前プログラムのコンテキストを共用することをいう。
又、「コンテキスト入力方法フラグ」とは、後述するプログラム更新処理において、更新後プログラムのコンテキストの入力方法を示すフラグのことをいう。
更新用プログラム格納領域１０５２は、演算用プログラム格納領域１０５１に格納されているプログラムのプログラム更新処理を実行させる更新用プログラムを格納している格納領域である。
【００５２】
退避領域１０５３は、演算用プログラム格納領域に格納されているプログラムのコンテキストを一時的に格納するための格納領域である。
外部装置１２０は、CPU１２０１を有し、機密情報処理装置１００にアクセスする際に、ランク情報とアクセスを要求するアクセス対象を特定するアドレスとを外部I/F１０１に出力し、アクセスが許可されると、機密情報処理装置１００の中の許可されたアクセス対象と各種データの送受信を行う。
【００５３】
又、外部装置１２０は、後述する暗号化第１世代ハッシュ値及び暗号化連結ハッシュ値を外部から取得して、機密情報処理装置１００に入力する。
ここで、暗号化第１世代ハッシュ値及び暗号化連結ハッシュ値作成は、外部環境において作成される。
暗号化第１世代ハッシュ値は、更新前プログラムのハッシュ値と更新後プログラムのハッシュ値とを連結して暗号鍵を用いて暗号化することにより作成される。
【００５４】
図８は、暗号化第１世代ハッシュ値の作成処理の過程を模式的に示した図である。
又、暗号化連結ハッシュ値は、後述する複数世代ハッシュ値と更新後プログラムのハッシュ値とを連結して暗号化することにより、作成される。
より具体的には、「暗号化連結ハッシュ値」とは、機密情報処理装置１００の機能を実現する初期プログラムから複数回更新された各更新回の更新プログラムのハッシュ値に基づいて算出されたハッシュ値（以下、「複数世代ハッシュ値」という。）と最新の更新プログラムのハッシュ値とを連結して、暗号鍵を用いて暗号化したハッシュ値のことをいう。
【００５５】
複数世代ハッシュ値は、具体的には、以下の手順に従って算出される。
まず、初期プログラム（以下、「第１世代プログラム」という。）のハッシュ値と更新回数が1回目の更新プログラム（以下、「第２世代プログラムという。」のハッシュ値とが連結され、連結されたハッシュ値に対して、ハッシュ演算を行うことにより最初の複数世代ハッシュ値が算出される。以下、更新回数が２回目の更新プログラム（以下、「第３世代プログラム」という。）のハッシュ値と最初の複数世代ハッシュ値とが連結され、連結されたハッシュ値に対して、同様にしてハッシュ演算を行うことにより、２回目の複数世代ハッシュ値が算出され、複数世代ハッシュ値が更新される。上記の手順を繰り返すことにより、プログラムの更新があるごとに、複数世代ハッシュ値が次々に算出され、更新される。
【００５６】
図９は、暗号化連結ハッシュ値の作成処理の過程を模式的に示した図である。
外部装置１２１は、DSP（Digital Signal Processor）１２１１を有し、機密情報処理装置１００にアクセスする際に、ランク情報とアクセスを要求するアクセス対象を特定するアドレスとを外部I/F１０１に出力し、アクセスが許可されると、機密情報処理装置１００の中の許可されたアクセス対象と各種データの送受信を行う。
【００５７】
＜動作＞
次に機密情報処理装置１００の行うアクセス制御処理の動作について説明する。図２は、上記処理の動作を示すフローチャートである。以下、図２のフローチャートを参照して上記処理の動作について説明する。
制御部１０２は、外部装置１２０又は１２１から、外部I/F１０１を介してランク情報とアクセス対象のアドレスの入力を受取ると（ステップＳ２０１）、受取ったランク情報の示すランクと上限ランク格納部１０２３に格納しているランク上限値とを比較し、ランク情報の示すランクがランク上限値より高いか否かを判定する（ステップＳ２０２）。
【００５８】
ランク情報の示すランクがランク上限値より高い場合（ステップＳ２０２：Ｙ）、制御部１０２は、外部装置からアクセス対象へのアクセスを拒否する（ステップＳ２０５）。
ランク情報の示すランクがランク上限値より高くない場合（ステップＳ２０２：Ｎ）、制御部１０２は、アクセス制御部１０２１に格納しているランク対応テーブルを参照して、ランク情報の示すランクがアクセス対象のリソースのランクよりも低くないか否かを判定する（ステップＳ２０３）。
【００５９】
ランク情報の示すランクがアクセス対象のリソースのランクよりも低くない場合（ステップＳ２０３：Ｙ）、制御部１０２は、外部装置からアクセス対象へのアクセスを許可し（ステップＳ２０４）、ランク情報の示すランクがアクセス対象のリソースのランクよりも低い場合（ステップＳ２０３：Ｎ）、ステップＳ２０５の処理を行う。
なお、機密情報処理装置１００は、内部CPU１０３に対しても、ステップＳ２０２の処理を除いて、上記アクセス制御処理の動作を行う。
【００６０】
上記アクセス制御処理の具体例として、外部装置１２０に設定されるランクを２、外部装置１２１に設定されるランクを１、上限ランク格納部１０２３に格納されているランクを２、ランク対応テーブルには、各リソースのランクが図３に示すように設定されているとすると、制御部１０２は、ステップＳ２０１において、外部装置１２０及び１２１からそれぞれ、ランク情報とアクセス対象とするプログラム更新要求レジスタ１０２４のアドレスの入力を受け取ると、ステップＳ２０２において、受取ったランク情報の示すランクと上限ランク格納部１０２３に格納しているランク上限値とを比較する。
【００６１】
外部装置１２０及び１２１のいずれのランクもランク上限値２よりも高くないので（ステップＳ２０２：Ｎ）、制御部１０２は、ステップＳ２０３の処理に移行し、外部装置１２０のランク「２」及び外部装置１２１のランク「１」のそれぞれとアクセス対象のプログラム更新要求レジスタ１０２４のランク「２」とを比較し、外部装置１２０に対しては、外部装置１２０のランクは、プログラム更新要求レジスタ１０２４のランクよりも低くないので（ステップＳ２０３：Ｙ）、外部装置１２０のプログラム更新要求レジスタ１０２４へのアクセスを許可し、外部装置１２１に対しては、外部装置１２１のランクはプログラム更新要求レジスタ１０２４のランクよりも低いので（ステップＳ２０３：Ｎ）、プログラム更新要求レジスタ１０２４へのアクセスを拒否する（ステップＳ２０５）。
【００６２】
これにより、外部からの不正なアクセスを事前に検知して、排除することができると同時に、外部からのアクセスを許可する場合においても、機密性の高いリソースとそうでないリソースとでランクを段階的に設定することにより、外部からの機密性の高いリソースへのアクセスを制限しつつ、外部からの必要なリソースへのアクセスを許可することができるので、外部からの機密情報処理装置内のリソースへのアクセス要求に対し、機密性保持の観点から効果的なアクセス制御を実現することができる。
【００６３】
次に機密情報処理装置１００の行うプログラム更新処理の動作について説明する。図４は、上記処理の動作を示すフローチャートである。以下、図４のフローチャートを参照して、上記動作について説明する。
プログラム更新要求レジスタ１０２４は、図２のアクセス制御処理によって、プログラム更新要求レジスタ１０２４へのアクセスが許可された外部装置１２０から、外部I/F１０１を介してプログラム更新要求を受取ると（ステップＳ４０１）、プログラム更新要求レジスタ１０２４は、更新要求フラグをプログラム更新要求が有ったこと（以下、「有」という。）を示すフラグに変更する。
【００６４】
内部CPU１０３は、更新要求フラグが「有」を示すと、制御部１０２からの更新用プログラム実行指示に応じて、更新用プログラム格納領域１０５２に格納されている更新用プログラムを起動し（ステップＳ４０２）、図２のアクセス制御処理によって、アクセス制御部１０２１へのアクセスが許可されると、アクセス制御部１０２１のランク対応テーブルの特定のリソース（ここでは、暗号演算部１０４のデータ入力部１０４１、演算処理部１０４２、データ出力部１０４３とする。）のランクを変更する（ステップＳ４０３）。
【００６５】
図３は、ステップＳ４０３による変更前のランク対応テーブルの具体例を示し、図５は、ステップＳ４０３による変更後のランク対応テーブルの具体例を示す。
次に、内部CPU１０３は、図２のアクセス制御処理によって、演算用プログラム格納領域１０５１へのアクセスが許可されると、演算用プログラム格納領域１０５１に格納されている演算用プログラム格納済フラグが「格納済」を示しているか否かを判定する（ステップＳ４０４）。
【００６６】
演算用プログラム格納領域に格納されている演算用プログラム格納済フラグが「格納済」を示している場合（ステップＳ４０４：Ｙ）、内部CPU１０３は、演算用プログラム格納領域１０５１に格納されているコンテキスト引継フラグが「引継有」を指示しているか否かを判定する（ステップＳ４０５）。
コンテキスト引継フラグが「引継有」を指示している場合（ステップＳ４０５：Ｙ）、内部CPU１０３は、後述するコンテンツ引継入力処理を行い（ステップＳ４０７）、処理が終了すると、図２のアクセス制御処理によって、アクセス制御部１０２１へのアクセスが許可されると、ステップＳ４０３において変更した、アクセス制御部１０２１のランク対応テーブルの特定のリソースのランクを変更前のランクに再変更する（ステップＳ４１６）。
【００６７】
ステップＳ４０４において、演算用プログラム格納領域に格納されている演算用プログラム格納済フラグが「格納済」を示していない場合（ステップＳ４０４：Ｎ）、内部CPU１０３は、演算用プログラム格納領域に格納されているコンテンツ入力方法フラグが示す入力方法を判定する（ステップＳ４１７）。
ステップＳ４１７において、コンテンツ入力方法フラグが外部入力を示している場合、内部ＣＰＵ１０３は、後述するコンテキスト外部入力処理を行い（ステップＳ４１４）、処理が終了すると、ステップＳ４１６の処理を行う。
【００６８】
ステップＳ４１７において、コンテンツ入力方法フラグが退避入力を示している場合、内部ＣＰＵ１０３は、後述する退避コンテキスト入力処理を行い（ステップＳ４１５）、処理が終了すると、ステップＳ４１６の処理を行う。
ステップＳ４１７において、コンテンツ入力方法フラグが入力なしを示している場合、後述するステップ４１１の処理に移行する。
【００６９】
ステップＳ４０５において、コンテキスト引継フラグが「引継」を指示していない場合（ステップＳ４０５：Ｎ）、内部CPU１０３は、演算用プログラム格納領域１０５１に格納されているコンテキスト退避フラグが示す更新前プログラムのコンテキストの処理方法を判定する（ステップＳ４０６）。
ステップＳ４０６において、コンテキスト退避フラグが「外部出力」を示している場合、内部CPU１０３は、後述するコンテキスト外部出力処理を行い（ステップＳ４０８）、処理が終了すると、ステップＳ４１４の処理に移行する。
【００７０】
ステップＳ４０６において、コンテキスト退避フラグが「退避」を示している場合、内部CPU１０３は、後述するコンテキスト退避処理を行い（ステップＳ４０９）、処理が終了すると、ステップＳ４１５の処理に移行する。
ステップＳ４０６において、コンテキスト退避フラグが「消去」を示している場合、内部CPU１０３は、演算用プログラム格納領域１０５１に格納されている更新前プログラムのコンテキストを消去する（ステップＳ４１０）。
【００７１】
次に暗号演算部１０４は、図２のアクセス制御処理によってデータ入力部１０４１へのアクセスを許可された外部装置１２０から、データ入力部１０４１への暗号化された更新後プログラムの入力を受取ると（ステップＳ４１１）、演算処理部１０４２において、当該更新後プログラムの復号化を行い（ステップＳ４１２）、データ出力部１０４３に出力する。
【００７２】
内部CPU１０３は、図２のアクセス制御処理によってデータ出力部１０４３へのアクセスを許可されると、データ出力部１０４３から復号された更新後プログラムを受取り、さらに、内部CPU１０３は、図２のアクセス制御処理によって演算用プログラム格納領域１０５１へのアクセスを許可されると、演算用プログラム格納領域１０５１に格納し（ステップＳ４１３）、ステップＳ４１６の処理を行う。
【００７３】
次に機密情報処理装置１００の行うコンテキスト引継入力処理の動作について説明する。図６及び図７は、上記処理の動作を示すフローチャートである。以下、図６のフローチャートを参照して上記処理の動作について説明する。
図２のアクセス制御処理によって退避領域１０５３へのアクセスを許可された内部CPU１０３は、演算用プログラム格納領域１０５１に格納されている更新前プログラムのコンテキストを退避領域１０５３に格納することにより、退避し（ステップＳ６０１）、さらに、図２のアクセス制御処理によって演算用プログラム格納領域１０５１へのアクセスを許可されると、演算用プログラム格納領域１０５１に格納されている更新前プログラムに含まれる依存確認方法フラグの示す依存確認方法を判定する（ステップＳ６０２）。
【００７４】
ステップＳ６０２において、依存確認方法フラグの示す依存確認方法が、第１世代のハッシュ値による確認方法である場合、暗号演算部１０４は、図２のアクセス制御処理によって、データ入力部１０４１へのアクセスが許可された外部装置（ここでは、外部装置１２０）から、暗号化第１世代ハッシュ値のデータ入力部１０４１への入力を外部I/F１０１を介して受取り（ステップＳ６０３）、受取った暗号化第１世代ハッシュ値を演算処理部１０４２で復号化し（ステップＳ６０４）、更新前プログラムのハッシュ値と更新後プログラムのハッシュ値とを算出し（ステップＳ６０５）、データ出力部１０４３に出力する。
【００７５】
次に内部CPU１０３は、図２のアクセス制御処理によって演算用プログラム格納領域１０５１へのアクセスを許可されると、演算用プログラム格納領域１０５１に格納されている更新前プログラムのハッシュ演算処理を行い（ステップＳ６０６）、さらに、図２のアクセス制御処理によってデータ出力部１０４３へのアクセスを許可されると、データ出力部１０４３から算出された更新前プログラムのハッシュ値を受取り、演算したハッシュ値と算出されたハッシュ値とを比較し、両者が一致するか否かを判定する（ステップＳ６０７）。
【００７６】
ステップＳ６０７において、両者が一致する場合（ステップＳ６０７：Ｙ）、内部CPU１０３は、外部装置１２０に対し、外部I/F１０１を介して更新後プログラムの入力を許可する旨通知する（ステップＳ６０８）。
次に、暗号演算部１０４は、図２のアクセス制御処理によってデータ入力部１０４１へのアクセスが許可された外部装置１２０から、暗号化された更新後プログラムの、データ入力部１０４１への入力を外部I/F１０１を介して受取ると（ステップＳ６０９）、受取った更新後プログラムを演算処理部１０４２で復号化した後、データ出力部１０４３に出力する。
【００７７】
次に内部CPU１０３は、図２のアクセス制御処理によってデータ出力部１０４３へのアクセスを許可されると、データ出力部１０４３から復号された更新後プログラムを受取り、さらに、図２のアクセス制御処理によって演算用プログラム格納領域１０５１へのアクセスを許可されると、受取った更新後プログラムを演算用プログラム格納領域１０５１に格納し（ステップＳ６１０）、更新後プログラムのハッシュ演算処理を行い（ステップＳ６１１）、ステップＳ６０５において算出された更新後プログラムのハッシュ値と演算した更新後プログラムのハッシュ値とを比較し、両者が一致するか否かを判定する（ステップＳ６１２）。
【００７８】
ステップＳ６１２において、両者が一致する場合（ステップＳ６１２：Ｙ）、内部CPU１０３は、図２のアクセス制御処理によって退避領域１０５３へのアクセスを許可されると、ステップＳ６０１において、退避領域１０５３に退避した更新前プログラムのコンテキストを読み出し、さらに、図２のアクセス制御処理によって演算用プログラム格納領域１０５１へのアクセスを許可されると、演算用プログラム格納領域１０５１に格納し（ステップＳ６２６）、さらに、図２のアクセス制御処理によって退避領域１０５３へのアクセスを許可されると、退避領域１０５３に格納している更新前プログラムのコンテキストを消去する（ステップＳ６２７）。
【００７９】
ステップＳ６１２において、両者が一致しない場合（ステップＳ６１２：Ｎ）、内部CPU103は、図２のアクセス制御処理によって演算用プログラム格納領域１０５１へのアクセスを許可されると、演算用プログラム格納領域１０５１に格納されている更新後プログラムを消去し（ステップＳ６２２）、ステップＳ６２７の処理を行う。
ステップＳ６０７において、両者が一致しない場合（ステップＳ６０７：Ｎ）、内部CPU１０３は、外部装置１２０に対し、更新後プログラムの入力を拒否する旨を外部I/F１０１を介して通知し（ステップＳ６２３）、ステップＳ６２７の処理を行う。
【００８０】
ステップＳ６０２において、依存確認方法フラグの示す依存確認方法が、初期プログラムから直前に更新されたプログラムまでの各ハッシュ値を連結した複数世代のハッシュ値による確認方法である場合、暗号演算部１０４は、図２のアクセス制御処理によって、データ入力部１０４１へのアクセスが許可された外部装置１２０から、暗号化連結ハッシュ値のデータ入力部１０４１への入力を外部I/F１０１を介して受取り（ステップＳ６１３）、受取った暗号化連結ハッシュ値を演算処理部１０４２で復号化し（ステップＳ６１４）、複数世代ハッシュ値と更新後プログラムのハッシュ値を算出し（ステップＳ６１５）、データ出力部１０４３に出力する。
【００８１】
次に、内部CPU１０３は、図２のアクセス制御処理によってデータ出力部１０４３へのアクセスを許可されると、データ出力部１０４３から、算出された複数世代ハッシュ値と更新後プログラムのハッシュ値とを受け取り、さらに、図２のアクセス制御処理によって退避領域１０５３へのアクセスを許可されると、退避領域１０５３に予め格納されている複数世代ハッシュ値を読み出し、両者の複数世代ハッシュ値を比較し、両者が一致するか否かを判定する（ステップＳ６１６）。
【００８２】
ステップＳ６１６において、両者が一致する場合（ステップＳ６１６：Ｙ）、内部CPU１０３は、外部装置１２０に対し、外部I/F１０１を介して更新後プログラムの入力を許可する旨通知する（ステップＳ６１７）。
次に、暗号演算部１０４は、図２のアクセス制御処理によってデータ入力部１０４１へのアクセスが許可された外部装置１２０から、暗号化された更新後プログラムの、データ入力部１０４１への入力を外部I/F１０１を介して受取ると（ステップＳ６１８）、受取った更新後プログラムを演算処理部１０４２で復号化した後、データ出力部１０４３に出力する。
【００８３】
次に内部CPU１０３は、図２のアクセス制御処理によってデータ出力部１０４３へのアクセスを許可されると、データ出力部１０４３から復号された更新後プログラムを受取り、さらに、図２のアクセス制御処理によって演算用プログラム格納領域１０５１へのアクセスを許可されると、受取った更新後プログラムを演算用プログラム格納領域１０５１に格納し（ステップＳ６１９）、更新後プログラムのハッシュ演算処理を行い（ステップＳ６２０）、ステップＳ６１５において算出された更新後プログラムのハッシュ値と演算した更新後プログラムのハッシュ値とを比較し、両者が一致するか否かを判定する（ステップＳ６２１）。
【００８４】
ステップＳ６２１において両者が一致する場合（ステップＳ６２１：Ｙ）、内部CPU１０３は、図２のアクセス制御処理によって退避領域１０５３へのアクセスを許可されると、退避領域１０５３に格納されている複数世代ハッシュ値に、ステップＳ６２０において、演算した更新後プログラムのハッシュ値とを連結し、連結したものについてハッシュ演算を行い（ステップＳ６２４）、退避領域１０５３に格納されている複数世代ハッシュ値を、ステップＳ６２４において演算したハッシュ値に書換え、退避領域１０５３の複数世代ハッシュ値を更新し（ステップＳ６２５）、ステップＳ６２６の処理に移行する。
【００８５】
ステップＳ６１６において、両者が一致しない場合（ステップＳ６１６：Ｎ）、内部CPU１０３は、ステップＳ６２３の処理に移行する。
又、ステップＳ６２１において、両者が一致しない場合（ステップＳ６２１：Ｎ）、内部CPU１０３は、ステップＳ６２２の処理に移行する。
次に機密情報処理装置１００の行うコンテキスト外部出力処理の動作について説明する。
【００８６】
図１０は、上記処理の動作を示すフローチャートである。以下、図１０のフローチャートを参照して、上記処理の動作について説明する。
内部CPU１０３は、図２のアクセス制御処理によって演算用プログラム格納領域１０５１へのアクセスを許可されると、演算用プログラム格納領域１０５１に格納されている更新前プログラムのハッシュ演算処理を行い（ステップＳ９０１）、さらに、図２のアクセス制御処理によってデータ入力部１０４１へのアクセスを許可されると、演算したハッシュ値と演算用プログラム格納領域に格納されている更新前プログラムのコンテキストとを連結して（ステップＳ９０２）、暗号演算部１０４に出力する。
【００８７】
暗号演算部１０４は、連結されたハッシュ値とコンテキストを演算処理部１０４２において暗号化して（ステップＳ９０３）、データ出力部１０４３に出力する。
内部CPU１０３は、図２のアクセス制御処理によってデータ出力部１０４３へのアクセスを許可されると、データ出力部１０４３から暗号化された後の連結されたハッシュ値とコンテキストを受取り、外部I/F１０１を介して外部装置１２０へ出力する（ステップＳ９０４）。
【００８８】
次に機密情報処理装置１００の行うコンテキスト外部入力処理の動作について説明する。図１１は、上記処理の動作を示すフローチャートである。以下、図１１を参照して、上記処理の動作について説明する。
暗号演算部１０４は、図２のアクセス制御処理によってデータ入力部１０４１へのアクセスを許可された外部装置１２０から、データ入力部１０４１への暗号化された更新後プログラムの入力を受取ると（ステップＳ１００１）、演算処理部１０４２において、暗号化された更新後プログラムを復号化し（ステップＳ１００２）、データ出力部１０４３に出力する。
【００８９】
内部CPU１０３は、図２のアクセス制御処理によってデータ出力部１０４３へのアクセスを許可されると、データ出力部１０４３から復号された更新後プログラムを受取り、演算用プログラム格納領域１０５１に格納する（ステップＳ１００３）。
さらに、暗号演算部１０４は、図２のアクセス制御処理によってデータ入力部１０４１へのアクセスを許可された外部装置１２０から、データ入力部１０４１への暗号化された更新後プログラムのハッシュ値とコンテキストとの連結データの入力を受取ると（ステップＳ１００４）、演算処理部１０４２において、暗号化された連結データを復号化し（ステップＳ１００５）、データ出力部１０４３に出力する。
【００９０】
次に内部CPU１０３は、図２のアクセス制御処理によって演算用プログラム格納領域１０５１へのアクセスを許可されると、演算用プログラム格納領域１０５１に格納されている更新後プログラムのハッシュ演算処理を行い（ステップＳ１００６）、さらに、図２のアクセス制御処理によってデータ出力部１０４３へのアクセスを許可されると、データ出力部１０４３から復号された更新後プログラムのハッシュ値を受取り、演算したハッシュ値と復号されたハッシュ値とを比較し、両者が一致するか否かを判定する（ステップＳ１００７）。
【００９１】
ステップＳ１００７において、両者が一致する場合（ステップＳ１００７：Ｙ）、復号された更新後プログラムのコンテキストをデータ出力部１０４３から受取り、さらに、図２のアクセス制御処理によって演算用プログラム格納領域１０５１へのアクセスを許可されると、更新後プログラムのコンテキストを演算用プログラム格納領域１０５１に格納し（ステップＳ１００８）、ステップＳ１００７において、両者が一致しない場合（ステップＳ１００７：Ｎ）、図２のアクセス制御処理によって演算用プログラム格納領域１０５１へのアクセスを許可されると、演算用プログラム格納領域１０５１に格納している更新後プログラムを消去する（ステップＳ１００９）。
次に、機密情報処理装置１００の行うコンテキスト退避処理の動作について説明する。図１２は、上記処理の動作を示すフローチャートである。以下、図１２を参照して、上
記処理の動作について説明する。
【００９２】
内部CPU１０３は、演算用プログラム格納領域１０５１に格納されている更新前プログラムのハッシュ演算処理を行い（ステップＳ１１０１）、演算したハッシュ値と演算用プログラム格納領域１０５１に格納されている更新前プログラムのコンテキストとを連結し（ステップＳ１１０２）、さらに、図２のアクセス制御処理によって退避領域１０５３へのアクセスを許可されると、連結したハッシュ値とコンテキスト（以下、「ハッシュ値・コンテキスト連結データ」という。）を退避領域１０５３に格納する（ステップＳ１１０３）。
【００９３】
次に、機密情報処理装置１００の行う退避コンテキスト入力処理について説明する。図１３は、上記処理の動作を示すフローチャートである。以下、図１３を参照して、上記処理の動作について説明する。
暗号演算部１０４は、図２のアクセス制御処理によってデータ入力部１０４１へのアクセスを許可された外部装置１２０から、データ入力部１０４１への暗号化された更新後プログラムの入力を受取ると（ステップＳ１２０１）、演算処理部１０４２において、暗号化された更新後プログラムを復号化し、データ出力部１０４３に出力する。
【００９４】
内部CPU１０３は、図２のアクセス制御処理によってデータ出力部１０４３へのアクセスを許可されると、データ出力部１０４３より復号された更新後プログラムを受取り、さらに、図２のアクセス制御処理によって演算用プログラム格納領域１０５１へのアクセスを許可されると、演算用プログラム格納領域１０５１に格納し（ステップＳ１２０２）、更新後プログラムのハッシュ演算処理を行い（ステップＳ１２０３）、さらに、図２のアクセス制御処理によって退避領域１０５３へのアクセスを許可されると、演算したハッシュ値と同じハッシュ値を有するコンテキストを退避領域１０５３に格納されているハッシュ値・コンテキスト連結データの中から検索し（ステップＳ１２０４）、検索できたか否かを判定する（ステップＳ１２０５）。
【００９５】
ステップＳ１２０５において、検索できた場合（ステップＳ１２０５：Ｙ）、退避領域１０５３に格納されている該当するハッシュ値・コンテキスト連結データのコンテキストを読出し、さらに、図２のアクセス制御処理によって演算用プログラム格納領域１０５１へのアクセスを許可されると、読出したコンテキストを演算用プログラム格納領域１０５１に格納し（ステップＳ１２０６）、ステップＳ１２０５において、検索できなかった場合（ステップＳ１２０５：Ｎ）、さらに、図２のアクセス制御処理によって演算用プログラム格納領域１０５１へのアクセスを許可されると、演算用プログラム格納領域１０５１に格納されている更新後プログラムを消去する（ステップＳ１２０７）。
（実施の形態２）
実施の形態１においては、コンテキスト引継入力処理、コンテキスト外部入力処理、及び退避コンテキスト入力処理において、外部から入力されたコンテキスト又は退避領域１０５３に退避されたコンテキストが、更新後プログラムに適用できることの確認をハッシュ値に基づいて行うこととしたが、実施の形態２においては、上記確認を後述する連鎖値に基づいて行う。
【００９６】
以下、実施の形態１における機密情報処理装置１００の機能及び動作との相違点を中心に説明する。
＜構成＞
実施の形態２における機密情報処理装置１５０の構成は、退避領域１０５３に更新前プログラムの連鎖値が格納されている点を除くと、実施の形態１における機密情報処理装置１００の構成と同じであるので、機密情報処理装置１５０の構成については説明を省略する。
【００９７】
ここで、「連鎖値」とは、暗号化前の平文データを暗号化して得られる暗号文データの示す値であって、次の平文データの暗号化に用いられる値のことをいい、ここでは、機密情報処理装置１５０の機能を実現するためのプログラムが更新される毎に、連鎖値は、暗号化された当該更新プログラムの示す値に更新される。
以下、上記機能を実現するための初期プログラムを第1世代プログラム、１回目の更新後の上記プログラムを第２世代プログラム、２回目の更新後の上記プログラムを第３世代プログラムというように呼ぶこととする。
＜動作＞
図１６は、機密情報処理装置１５０が、退避領域１０５３に連鎖値を格納し、格納した連鎖値を更新するために行う連鎖値生成処理の動作を示すフローチャートである。
【００９８】
以下、図１６を参照して、上記処理の動作について説明する。
暗号演算部１０４は、退避領域１０５３に格納されている連鎖値の初期値と、演算用プログラム格納領域１０５１に格納されている第1世代プログラムとを内部CPU１０３から取得し、取得した初期値と暗号鍵とを用いて第１世代プログラムを暗号化する（ステップＳ１４０１）。
【００９９】
内部CPU１０３は、図２のアクセス制御処理によってデータ出力部１０４３へのアクセスを許可されると、暗号化第１世代プログラムをデータ出力部１０４３から受け取り、さらに、図２のアクセス制御処理によって退避領域１０５３へのアクセスを許可されると、暗号化第1世代プログラムの示す値を更新された連鎖値として、退避領域１０５３に格納されている初期値に上書きする（ステップＳ１４０２）。
【０１００】
暗号化演算部１０４は、演算用プログラム格納領域１０５１に格納されている第２世代プログラムと退避領域１０５３に格納されている更新された連鎖値とを内部CPU１０３から取得し、取得した連鎖値と暗号鍵とを用いて第２世代プログラムを暗号化する（ステップＳ１４０３）。
内部CPU１０３は、図２のアクセス制御処理によってデータ出力部１０４３へのアクセスを許可されると、暗号化第２世代プログラムをデータ出力部１０４３から受け取り、さらに、２のアクセス制御処理によって退避領域１０５３へのアクセスを許可されると、暗号化第２世代プログラムの示す値を更新された連鎖値として、退避領域１０５３に格納されている連鎖値に上書きし（ステップＳ１４０４）、演算用プログラム格納領域１０５１に格納されている第３世代以降のプログラムについても、ステップＳ１４０３、Ｓ１４０４の処理を繰り返す（ステップＳ１４０５）。
【０１０１】
なお、上記の連鎖値生成処理を、機密情報処理装置１５０ではなく、外部（但し、外部装置１２０、１２１を除く。）で予め行い、生成した連鎖値を退避領域１０５３に格納することとしてもよい。
図１７は、上記動作に従って、連鎖値が更新される様子を模式的に表した図である。
図１４及び図１５は、機密情報処理装置１５０の行うプログラム更新処理の動作を示すフローチャートである。図４に示す実施の形態１におけるプログラム更新処理の動作と同じ処理ステップについては、同じステップ番号が付されている。
【０１０２】
以下、機密情報処理装置１００と動作が相違する、ステップＳ１３１２、Ｓ１３１３，コンテキスト引継入力処理（ステップＳ１３０７）、コンテキスト外部入力処理（ステップＳ１３１４）、及び退避コンテキスト入力処理（ステップＳ１３１５）の各動作について説明する。
最初にステップＳ１３１２及びＳ１３１３の処理について説明する。
【０１０３】
内部CPU１０３は、図１５のステップＳ４１０の処理の後、又はステップＳ４１７において、コンテンツ入力方法フラグが消去を示している場合、図２のアクセス制御処理によって退避領域１０５３へのアクセスを許可されると、退避領域１０５３に格納されている連鎖値を初期値に初期化する（ステップＳ１３１２）。
暗号化演算部１０４は、ステップＳ４１１の処理を行った後、演算処理部１０４２において、退避領域１０５３に格納されている初期値と暗号鍵とを用いて、受取った更新後プログラムの復号化を行う（Ｓ１３１３）。
【０１０４】
次に、機密情報処理装置１５０の行うコンテキスト引継入力処理の動作について説明する。図１８は、上記処理の動作を示すフローチャートである。
内部CPU１０３は、図２のアクセス制御処理によって退避領域１０５３へのアクセスを許可されると、演算用プログラム格納領域１０５１に格納されている更新前プログラムのコンテキストを退避領域１０５３に格納することにより、退避する（ステップＳ１６０１）。
【０１０５】
次に、暗号演算部１０４は、図２のアクセス制御処理によってデータ入力部１０４１へのアクセスが許可された外部装置１２０から、暗号化更新前プログラムの示す連鎖値と暗号鍵とを用いて、暗号化された更新後プログラムの、データ入力部１０４１への入力を外部I/F１０１を介して受取ると（ステップＳ１６０２）、演算処理部１０４２において、受取った更新後プログラムを退避領域１０５３に格納されている暗号化更新前プログラムの示す連鎖値と暗号鍵とを用いて復号化し（ステップＳ１６０３）、データ出力部１０４３に出力する。
【０１０６】
次に内部CPU１０３は、図２のアクセス制御処理によって演算用プログラム格納領域１０５１へのアクセスを許可されると、データ出力部１０４３から復号された更新後プログラムを受取り、演算用プログラム格納領域１０５１に格納し（ステップＳ１６０４）、さらに、図２のアクセス制御処理によって退避領域１０５３へのアクセスを許可されると、退避領域１０５３に格納されている更新前プログラムのコンテキストを読出し、さらに、図２のアクセス制御処理によって演算用プログラム格納領域１０５１へのアクセスを許可されると、読出したコンテキストを演算用プログラム格納領域に格納し（ステップＳ１６０５）、さらに、図２のアクセス制御処理によって退避領域１０５３へのアクセスを許可されると、暗号化更新後プログラムの示す連鎖値を、退避領域１０５３に格納されている更新前プログラムの示す連鎖値に上書きする（ステップＳ１６０６）。
【０１０７】
次に機密情報処理装置１５０の行うコンテキスト外部入力処理の動作について説明する。
図１９は、上記処理の動作を示すフローチャートである。以下、図１９のフローチャートを参照して、上記動作について説明する。
内部ＣＰＵ１０３は、図２のアクセス制御処理によって退避領域１０５３へのアクセスを許可されると、退避領域１０５３に格納されている暗号化更新前プログラムの示す連鎖値を初期値に初期化する（ステップＳ１７０１）。
【０１０８】
次に、暗号演算部１０４は、図２のアクセス制御処理によってデータ入力部１０４１へのアクセスが許可された外部装置１２０から、暗号化更新前プログラムの示す連鎖値と暗号鍵とを用いて暗号化された更新後プログラムの、データ入力部１０４１への入力を外部I/F１０１を介して受取ると（ステップＳ１７０２）、演算処理部１０４２において、受取った更新後プログラムを、退避領域１０５３に格納されている初期値と暗号鍵とを用いて復号化し（ステップＳ１７０３）、データ出力部１０４３に出力する。
【０１０９】
次に内部CPU１０３は、図２のアクセス制御処理によってデータ出力部１０４３へのアクセスを許可されると、データ出力部１０４３から復号された更新後プログラムを受取り、さらに、図２のアクセス制御処理によって演算用プログラム格納領域１０５１へのアクセスを許可されると、演算用プログラム格納領域１０５１に更新後プログラムを格納する（ステップＳ１７０４）。
【０１１０】
次に、暗号演算部１０４は、図２のアクセス制御処理によってデータ入力部１０４１へのアクセスが許可された外部装置１２０から、暗号化更新前プログラムの示す連鎖値と暗号鍵とを用いて暗号化された更新後プログラムのハッシュ値とコンテキストとの連結データの、データ入力部１０４１への入力を外部I/F１０１を介して受取ると（ステップＳ１７０５）、演算処理部１０４２において、受取った更新後プログラムのハッシュ値とコンテキストとの連結データを、退避領域１０５３に格納されている初期値と暗号鍵とを用いて復号化し（ステップＳ１７０６）、データ出力部１０４３に出力する。
【０１１１】
次に内部CPU１０３は、図２のアクセス制御処理によって演算用プログラム格納領域１０５１へのアクセスを許可されると、演算用プログラム格納領域１０５１に格納されている更新後プログラムのハッシュ演算処理を行い（ステップＳ１７０７）、さらに、図２のアクセス制御処理によってデータ出力部１０４３へのアクセスを許可されると、データ出力部１０４３から復号された更新後プログラムのハッシュ値を受取り、演算したハッシュ値と復号されたハッシュ値とを比較し、両者が一致するか否かを判定する（ステップＳ１７０８）。
【０１１２】
ステップＳ１７０８において、両者が一致する場合（ステップＳ１７０８：Ｙ）、内部CPU１０３は、復号された更新後プログラムのコンテキストをデータ出力部１０４３から受取り、さらに、図２のアクセス制御処理によって演算用プログラム格納領域１０５１へのアクセスを許可されると、更新後プログラムのコンテキストを演算用プログラム格納領域１０５１に格納し（ステップＳ１７０９）、ステップＳ１７０８において、両者が一致しない場合（ステップＳ１７０８：Ｎ）、図２のアクセス制御処理によって演算用プログラム格納領域１０５１へのアクセスを許可されると、演算用プログラム格納領域１０５１に格納している更新後プログラムを消去する（ステップＳ１７１０）。
【０１１３】
次に機密情報処理装置１５０の行う退避コンテキスト入力処理の動作について説明する。
図２０は、上記処理の動作を示すフローチャートである。以下、図２０のフローチャートを参照して、上記動作について説明する。
内部ＣＰＵ１０３は、図２のアクセス制御処理によって退避領域１０５３へのアクセスを許可されると、退避領域１０５３に格納されている暗号化更新前プログラムの示す連鎖値を初期値に初期化する（ステップＳ１８０１）。
【０１１４】
次に、暗号演算部１０４は、図２のアクセス制御処理によってデータ入力部１０４１へのアクセスが許可された外部装置１２０から、暗号化更新前プログラムの示す連鎖値と暗号鍵とを用いて暗号化された更新後プログラムの、データ入力部１０４１への入力を外部I/F１０１を介して受取ると（ステップＳ１８０２）、内部CPU１０３より、退避領域１０５３に格納されている初期値を取得し、演算処理部１０４２において、受取った更新後プログラムを、取得した初期値と暗号鍵とを用いて復号化し（ステップＳ１８０３）、データ出力部１０４３に出力する。
【０１１５】
内部CPU１０３は、図２のアクセス制御処理によってデータ出力部１０４３へのアクセスを許可されると、データ出力部１０４３より復号された更新後プログラムを受取り、さらに、図２のアクセス制御処理によって演算用プログラム格納領域１０５１へのアクセスを許可されると、演算用プログラム格納領域１０５１に格納し、更新後プログラムのハッシュ演算処理を行い（ステップＳ１８０４）、さらに、図２のアクセス制御処理によって退避領域１０５３へのアクセスを許可されると、演算したハッシュ値と同じハッシュ値を有するコンテキストを退避領域１０５３に格納されているハッシュ値・コンテキスト連結データの中から検索し（ステップＳ１８０５）、検索できたか否かを判定する（ステップＳ１８０６）。
【０１１６】
ステップＳ１８０６において、検索できた場合（ステップＳ１８０６：Ｙ）、内部CPU１０３は、退避領域１０５３に格納されている該当するハッシュ値・コンテキスト連結データのコンテキストを読出し、さらに、図２のアクセス制御処理によって演算用プログラム格納領域１０５１へのアクセスを許可されると、読出したコンテキストを演算用プログラム格納領域１０５１に格納し（ステップＳ１８０７）、ステップＳ１８０６において、検索できなかった場合（ステップＳ１８０６：Ｎ）、さらに、図２のアクセス制御処理によって演算用プログラム格納領域１０５１へのアクセスを許可されると、演算用プログラム格納領域１０５１に格納されている更新後プログラムを消去する（ステップＳ１８０８）。
（実施の形態３）
実施の形態１及び２においては、外部から更新後プログラムを機密情報処理装置内に入力することにより、更新前プログラムを更新することとしたが、本実施の形態３は、機密情報処理装置内の格納部の異なるバンクに予め更新前と更新後のプログラム格納しておき、外部からバンクの切替を行うことにより、プログラムの更新処理を行うことを特徴としている。
【０１１７】
以下、実施の形態１との相違点を中心にして説明する。
＜構成＞
図２１は、本実施の形態における機密情報処理装置２００の構成を示す機能ブロック図である。図２１において、実施の形態１における機密情報処理装置１００と同じ構成要素に対しては同じ番号を付している。図１９に示すように、機密情報処理装置２００は、制御部１１２及び機密情報格納部１１５の構成において機密情報処理装置１００と相違する。
【０１１８】
制御部１１２は、認証部１１２５を有する点とプログラム更新要求レジスタ１１２４の機能において、実施の形態１における機密情報処理装置１００の制御部１０２と異なる。
認証部１１２５は、外部装置１２０からの認証要求を外部I/F１０１を介して受け取ると、認証処理を実行し、認証結果を外部I/F１０１を介して外部装置１２０に通知する。
プログラム更新要求レジスタ１１２４は、認証部１１２５によって認証された外部装置１２０から、機密情報格納部１１５の演算用プログラム格納領域１１５１における更新後プログラムが格納されているバンクを指定するためのバンク情報を受け取り、格納する。
【０１１９】
機密情報格納部１１５は、演算用プログラム格納領域１１５１において、実施の形態１における機密情報処理装置１００の機密情報格納部１０５と異なる。
演算用プログラム格納領域１１５１は、複数のバンクに分割され、各バンクには、更新前プログラム又は更新後プログラムが１つ格納されている。分割された各演算用プログラム格納領域の構成は、図２５で示す構成と同じである。
【０１２０】
なお、更新後プログラムは１つに限らず、複数あってもよい。
＜動作＞
次に機密情報処理装置２００の行うプアクセス制御処理の動作における、実施の形態１における当該動作との相違点について説明する。
実施の形態１におけるアクセス制御処理の動作においては、図２に示すように、ランク情報の示すランクがランク上限値より高い場合（ステップＳ２０２：Ｙ）、制御部１０２は、外部装置からアクセス対象へのアクセスを拒否する（ステップＳ２０５）こととしたが、本実施の形態３における機密情報処理装置２００においては、ランク情報の示すランクがランク上限値より高い場合（ステップＳ２０２：Ｙ）、アクセスを拒否するのではなく、ランク情報の示すランクをランク上限値とみなして、ステップＳ２０３の処理を行う点において相違する。
【０１２１】
図２６は、機密情報処理装置２００の行うアクセス制御処理の動作を示すフローチャートである。図２６において、図２におけるステップ番号の処理と同じ処理に関しては、図２のステップ番号と同じステップ番号を付している。図２６においては、ステップＳ２６０１のランク情報の示すランクをランク上限値とみなす処理がある点において、図２のアクセス制御処理の動作と相違する。
【０１２２】
次に機密情報処理装置２００の行うプログラム更新処理の動作について説明する。図２２は、上記処理の動作を示すフローチャートである。以下、図２２のフローチャートを参照して、上記処理の動作について説明する。
制御部１１２の認証部１１２５は、図２６のアクセス制御処理によって、認証部１１２５へのアクセスが許可された外部装置１２０より認証要求を外部I/F１０１を介して受け取ると（ステップＳ２００１）、認証処理を実行し、認証できたか否かを判定する（ステップＳ２００２）。
【０１２３】
次にプログラム更新要求レジスタ１１２４は、ステップＳ２００２において、認証できた場合に（ステップＳ２００２：Ｙ）、図２６のアクセス制御処理によって、プログラム更新要求レジスタ１１２４へのアクセスが許可された外部装置１２０から、外部I/F１０１を介してバンク情報を受取り（ステップＳ２００３）、当該バンク情報を格納する。
バンク情報がプログラム更新要求レジスタ１１２４に格納されると、内部CPU１０３は、図２６のアクセス制御処理によって更新用プログラム格納領域１０５２へのアクセスを許可されると、制御部１１２からの更新用プログラムの実行指示に応じて、更新用プログラム格納領域１０５２に格納されている更新用プログラムを起動し（ステップＳ２００４）、さらに、図２６のアクセス制御処理によってアクセス制御部１０２１へのアクセスを許可されると、アクセス制御部１０２１のランク対応テーブルの特定のリソース（ここでは、プログラム更新要求レジスタ１１２４とする。）のランクを変更し、（ステップＳ２００５）、さらに、図２６のアクセス制御処理によって演算用プログラム格納領域１１５１へのアクセスを許可されると、演算用プログラム格納領域１１５１の、更新前プログラムが格納されているバンクに格納されているコンテキスト引継フラグが「引継有」を指示しているか否かを判定する（ステップＳ２００６）。
【０１２４】
コンテキスト引継フラグが「引継有」を指示している場合（ステップＳ２００６：Ｙ）、内部CPU１０３は、後述するコンテンツ引継入力処理を行い（ステップＳ２００７）、処理が終了し、図２６のアクセス制御処理によってアクセス制御部１０２１へのアクセスを許可されると、アクセス制御部１０２１における、ステップＳ２００５において変更した、ランク対応テーブルの特定のリソースのランクを変更前のランクに再変更する（ステップＳ２０１２）。
【０１２５】
ステップＳ２００６において、コンテキスト引継フラグが「引継有」を指示していない場合（ステップＳ２００６：Ｎ）、内部CPU１０３は、上記バンクに格納されているコンテキスト退避フラグが示す更新前プログラムのコンテキストの処理方法を判定する（ステップＳ２００８）。
ステップＳ２００８において、コンテキスト退避フラグが「退避」を示している場合、内部CPU１０３は、更新前プログラムのコンテキストを上記バンクに退避し（ステップＳ２００９）、アクセス対象となるバンクを、プログラム更新要求レジスタ１１２４に格納されているバンク情報の指定するバンクに切り替え（ステップＳ２０１３）、切替後のバンクに格納されている更新後プログラムのコンテキストを復帰し（ステップＳ２０１４）、ステップＳ２０１２の処理を行う。
【０１２６】
ステップＳ２００８において、コンテキスト退避フラグが「消去」を示している場合、内部CPU１０３は、更新前プログラムのコンテキストを消去し（ステップＳ２０１０）、ステップＳ２０１１の処理に移行する。
ステップＳ２００２において、認証できなかった場合（ステップＳ２００２：Ｎ）、CPU１０３は、プログラム更新処理を終了する。
【０１２７】
次に機密情報処理装置２００の行うコンテキスト引継入力処理の動作について説明する。図２３は、上記処理の動作を示すフローチャートである。以下、図２３のフローチャートを参照して上記処理の動作について説明する。
内部CPU１０３は、図２６のアクセス制御処理によってプログラム更新要求レジスタ１１２４へのアクセスを許可されると、プログラム更新要求レジスタ１１２４に格納されているバンク情報の指定するバンクが、更新前プログラムに含まれる引継可能バンク情報の示すバンクの何れか１つと一致するか否かを判定する（ステップＳ２１０１）。
【０１２８】
ここで、「引継可能バンク情報」とは、更新前プログラムのコンテキストを引継ぎ可能な更新後プログラムが格納されている、少なくとも１つ以上のバンクを特定する情報のことをいう。
ステップＳ２１０１において、プログラム更新要求レジスタ１１２４に格納されているバンク情報の指定するバンクが、更新前プログラムに含まれる引継可能バンク情報の示すバンクの何れか１つと一致する場合（ステップＳ２１０１：Ｙ）、内部CPU１０３は、図２６のアクセス制御処理によって演算用プログラム格納領域１１５１へのアクセスを許可されると、演算用プログラム格納領域１１５１の、更新前プログラムが格納されているバンクに格納されている更新前プログラムのコンテキストを読出し、さらに、図２６のアクセス制御処理によって退避領域１０５３へのアクセスを許可されると、読出したコンテキストを退避領域１０５３に退避し（ステップＳ２１０２）、アクセス対象となるバンクを、プログラム更新要求レジスタ１１２４に格納されているバンク情報の指定するバンクに切り替え（ステップＳ２１０３）、退避領域１０５３に格納されている更新前プログラムのコンテキストを読出し、図２６のアクセス制御処理によって演算用プログラム格納領域１１５１へのアクセスを許可されると、読出したコンテキストを切り替えたバンクに格納し（ステップＳ２１０４）、さらに、図２６のアクセス制御処理によって退避領域１０５３へのアクセスを許可されると、退避領域１０５３に退避されている更新前プログラムのコンテキストを消去する（ステップＳ２１０５）。
＜補足＞
以上、本発明に係る機密情報処理装置１００、１５０、２００について、実施の形態に基づいて説明したが、本発明はこれら実施の形態に限られないことは勿論である。
（１）例えば、実施の形態１〜３においては、内部CPU１０３は、プログラム更新処理の実行前後を問わず、更新用プログラム格納領域１０５２にアクセスできることとしたが、内部CPU１０３に設定されるランクをプログラム更新処理の前後で、変更することにより、プログラム更新処理の実行中のみ更新用プログラム１０５２へアクセスできるように制御することとしてもよい。
【０１２９】
具体例として、プログラム更新処理の実行前のランク対応テーブルを図２４に示すように設定し、内部CPU１０３に設定されるランクを２、外部装置１２０に設定されるランクを２、外部装置１２１に設定されるランクを１、上限ランク格納部１０２３に格納されているランクを２とし、外部装置１２０からプログラム更新要求レジスタ１０２４へ更新要求が有った場合に、制御部１０２が内部CPU１０３のランクを３に変更することとすることにより、上記制御を実現することができる。
【０１３０】
これにより、プログラム更新処理が実行されていない間は、更新用プログラム格納領域１０５２へのアクセスを制限することができるので、プログラム更新処理に関する機密性をより高めることができる。
又、上記の具体例では、外部装置１２０が直接、演算用プログラム格納領域１０５１にアクセスすることができるので、更新後プログラムを内部CPU１０３によらず演算用プログラム格納領域１０５１に格納する処理を行うことができるので、機密情報処理装置のプログラム更新処理に対する負荷を軽減することができる。
（２）又、実施の形態１〜３においては、ランク情報の示すランクは３段階としたが、３段階に限らず、それ以上であってもよい。
（３）又、実施の形態１〜３においては、ランク情報の入出力は、専用のバスを介して行うこととしたが、データバスを介して行うこととしてもよい。
（４）又、実施の形態１〜３において、機密情報処理装置１００又は１５０又は２００と外部装置１２０と外部装置１２１とは、１つのＬＳＩに実装されていてもよいし、それぞれ別のＬＳＩに実装されていてもよい。
（５）又、実施の形態１〜３においては、制御部１０２のアクセス制御部１０２１によって統括的にランクに基づくアクセス制御を行うこととしたが、暗号演算部１０３及び機密情報格納部１０５又は１１５については、それぞれ独立したアクセス制御部を設けることにより、ランクに基づくアクセス制御を行うこととしてもよい。
（６）又、実施の形態１〜３において、外部装置１２０、１２１に設定されているランクは、固定であってもよいし、変更可能であってもよい。
（７）又、実施の形態３においては、各バンクにコンテキストを退避することとしたが、退避領域１０５３に対応するコンテキスト格納領域を設けて、退避領域１０５３に退避することとしてもよい。
【産業上の利用可能性】
【０１３１】
本発明は、機密情報処理装置において、その機能を実現するためのプログラムを、機密情報を漏洩することなく、更新するための機密制御技術として利用できる。
【図面の簡単な説明】
【０１３２】
【図１】本発明の実施の形態１に係る機密情報処理装置１００の構成を示す機能ブロック図である。
【図２】機密情報処理装置１００の行うアクセス制御処理の動作を示すフローチャートである。
【図３】変更前のランク対応テーブルの具体例を示す。
【図４】機密情報処理装置１００の行うプログラム更新処理の動作を示すフローチャートである。
【図５】変更後のランク対応テーブルの具体例を示す。
【図６】機密情報処理装置１００の行うコンテキスト引継入力処理の動作を示すフローチャートの一部である。
【図７】機密情報処理装置１００の行うコンテキスト引継入力処理の動作を示すフローチャートの一部である。
【図８】暗号化第１世代ハッシュ値の作成処理の過程を模式的に示した図である。
【図９】暗号化連結ハッシュ値の作成処理の過程を模式的に示した図である。
【図１０】機密情報処理装置１００の行うコンテキスト外部出力処理の動作を示すフローチャートである。
【図１１】機密情報処理装置１００の行うコンテキスト外部入力処理の動作を示すフローチャートである。
【図１２】機密情報処理装置１００の行うコンテキスト退避処理の動作を示すフローチャートである。
【図１３】機密情報処理装置１００の行う退避コンテキスト入力処理の動作を示すフローチャートである。
【図１４】機密情報処理装置１５０の行うプログラム更新処理の動作を示すフローチャートの一部である。
【図１５】機密情報処理装置１５０の行うプログラム更新処理の動作を示すフローチャートの一部である。
【図１６】機密情報処理装置１５０が、退避領域１０５３に連鎖値を格納し、格納した連鎖値を更新するために行う連鎖値生成処理の動作を示すフローチャートである。
【図１７】図１６の動作に従って、連鎖値が更新される様子を模式的に表した図である。
【図１８】機密情報処理装置１５０の行うコンテキスト引継入力処理の動作を示すフローチャートである。
【図１９】機密情報処理装置１５０の行うコンテキスト外部入力処理の動作を示すフローチャートである。
【図２０】機密情報処理装置１５０の行う退避コンテキスト入力処理の動作を示すフローチャートである。
【図２１】機密情報処理装置２００の構成を示す機能ブロック図である。
【図２２】機密情報処理装置２００の行うプログラム更新処理の動作を示すフローチャートである。
【図２３】機密情報処理装置２００の行うコンテキスト引継入力処理の動作を示すフローチャートである。
【図２４】プログラム更新処理の実行前のランク対応テーブルの具体例を示す。
【図２５】演算用プログラム格納領域１０５１の構成を示す。
【図２６】機密情報処理装置２００の行うアクセス制御処理の動作を示すフローチャートである。
【符号の説明】
【０１３３】
１００、２００  機密情報処理装置
１０１    外部Ｉ／Ｆ
１０２、１１２    制御部
１０３    内部ＣＰＵ
１０４    暗号演算部
１０５、１１５    機密情報格納部
１２０    外部装置
１２１    外部装置
１０２１  アクセス制御部
１０２２  ランク対応テーブル格納部
１０２３  上限ランク格納部
１０２４、１１２４    プログラム更新要求レジスタ
１０４１  データ入力部
１０４２  演算処理部
１０４３  データ出力部
１０５１、１１５１  演算用プログラム格納領域
１０５２  更新用プログラム格納領域
１０５３  退避領域
１１２５  認証部
１２０１  ＣＰＵ
１２１１  ＤＳＰ
【図１】
2006139517.tif 000003
【図２】
2006139517.tif 000004
【図３】
2006139517.tif 000005
【図４】
2006139517.tif 000006
【図５】
2006139517.tif 000007
【図６】
2006139517.tif 000008
【図７】
2006139517.tif 000009
【図８】
2006139517.tif 000010
【図９】
2006139517.tif 000011
【図１０】
2006139517.tif 000012
【図１１】
2006139517.tif 000013
【図１２】
2006139517.tif 000014
【図１３】
2006139517.tif 000015
【図１４】
2006139517.tif 000016
【図１５】
2006139517.tif 000017
【図１６】
2006139517.tif 000018
【図１７】
2006139517.tif 000019
【図１８】
2006139517.tif 000020
【図１９】
2006139517.tif 000021
【図２０】
2006139517.tif 000022
【図２１】
2006139517.tif 000023
【図２２】
2006139517.tif 000024
【図２３】
2006139517.tif 000025
【図２４】
2006139517.tif 000026
【図２５】
2006139517.tif 000027
【図２６】
2006139517.tif 000028