(57)【要約】組み込み機器等に用いられ、省電力モードを備えるセキュア処理装置であって、省電力モードへの移行時に、退避させる対象となるセキュアなデータのハッシュ値を計算する。計算したハッシュ値を、省電力モード時においても記憶内容が消失しないセキュア処理装置内部の保護格納部に格納する。セキュアなデータを暗号化して外部メモリに記憶させ、省電力モードへ移行する。通常電力モードへ復帰する時に、外部メモリに記憶させた暗号化データを復号する。復号したデータのハッシュ値を計算し、保護格納部に格納されているハッシュ値と比較する。ハッシュ値が一致すれば、復号したデータをセキュアなデータをセキュア処理装置に再度記憶させ、一致しなければ、復号したデータや外部メモリに記憶させた暗号化データを破棄する。
2007091492.tif 000002
【特許請求の範囲】
【請求項１】
動作モードとして、通常電力モードと、省電力モードとを切り換えて動作し、前記通常電力モード時には、秘匿すべき保護データに係る処理を少なくとも実行し、前記省電力モード時には、前記保護データを、外部メモリにおいて安全に保持するセキュア処理装置であって、
データの暗号化および復号化を行う暗号処理部と、
データの内容に依存して定まり、当該データよりもデータサイズが小さい認証子を生成する生成部と、
自装置外部からの不正アクセスを防止する機構を有し、前記省電力モード時において、記憶内容が消失するメモリにより構成され、前記保護データを記憶するためのセキュア記憶部と、
前記通常電力モードまたは前記省電力モードのいずれの動作時であっても記憶内容を保持する機構、および、自装置外部からの不正アクセスを防止する機構を有し、前記セキュア記憶部よりも記憶容量が小さい保護格納部と、
前記省電力モードへの移行時に、前記保護データに基づいて、前記生成部に第１認証子を生成させ、生成された当該第１認証子を前記保護格納部に格納させるとともに、前記保護データを前記暗号処理部に暗号化させ、得られた暗号化データを前記外部メモリに記憶させるよう制御する移行制御部と、
前記通常電力モードへの復帰時に、前記外部メモリに記憶された前記暗号化データを前記暗号処理部に復号化させ、得られた復号化データに基づいて、前記生成部に第２認証子を生成させる認証子生成制御部と、
生成された前記第２認証子と、前記保護格納部に格納されている前記第１認証子とが一致するか否かを判断する判断部と、
一致しないと判断されると、前記復号化データの前記セキュア記憶部への書き込みを禁止し、一致すると判断されると、前記復号化データを前記セキュア記憶部へ書き込む復帰制御部とを備える
ことを特徴とするセキュア処理装置。
【請求項２】
前記セキュア処理装置は、さらに、バス暗号鍵を用いて暗号化したデータを、外部の記憶領域であるバス暗号領域に保持させ、前記バス暗号領域に保持されているデータを用いて安全に処理を行うものであり、
前記セキュア記憶部は、さらに、前記バス暗号鍵を記憶し、
前記移行制御部は、前記省電力モードへの移行時に、前記セキュア記憶部に記憶されている前記バス暗号鍵を暗号化し、暗号化されたバス暗号鍵を前記外部メモリに記憶させるよう制御するバス暗号鍵退避制御部を含み、
前記復帰制御部は、前記外部メモリに記憶された前記暗号化されたバス暗号鍵を復号化するバス暗号鍵復号化制御部と、
前記バス暗号鍵復号化制御部により復号化されたバス暗号鍵を、前記セキュア記憶部へ書き込むバス暗号鍵再設定部を含む
ことを特徴とする請求項１記載のセキュア処理装置。
【請求項３】
前記セキュア処理装置は、
前記バス暗号鍵を保持し、前記省電力モードへの移行が完了すると、保持内容が消失するバス暗号鍵設定レジスタと、
前記バス暗号鍵設定レジスタに保持されているバス暗号鍵を用いて、前記バス暗号領域へ出力するデータの暗号化、および、前記バス暗号領域から出力されるデータの復号化を行うバス暗号回路を含み、
前記セキュア記憶部が記憶している前記バス暗号鍵は、前記バス暗号鍵設定レジスタに保持されている前記バス暗号鍵と同一であり、
前記バス暗号鍵再設定部は、前記バス暗号鍵復号化制御部により前記復号化されたバス暗号鍵を、前記バス暗号鍵設定レジスタに保持させる
ことを特徴とする請求項２記載のセキュア記憶装置。
【請求項４】
前記セキュア処理装置は、
前記バス暗号鍵設定レジスタと、前記バス暗号回路とからなる組を複数備え、
前記バス暗号鍵設定レジスタと前記バス暗号回路とからなる組のそれぞれは、前記バス暗号領域に保持されているデータそれぞれと対応しており、
前記セキュア記憶部は、前記バス暗号鍵設定レジスタそれぞれが保持している複数のバス暗号鍵それぞれと同一のバス暗号鍵を記憶しており、
前記バス暗号鍵退避制御部は、前記省電力モードへの移行時に、前記セキュア記憶部により記憶されている複数の前記バス暗号鍵を前記暗号化し、暗号化された複数のバス暗号鍵を前記外部メモリに前記記憶させ、
前記バス暗号鍵復号化制御部は、複数の前記バス暗号鍵を前記復号化し、
前記バス暗号鍵再設定部は、復号された前記複数の前記バス暗号鍵を、前記セキュア記憶部へ書き込む
ことを特徴とする請求項３記載のセキュア処理装置。
【請求項５】
前記保護格納部は、不揮発性のメモリにより構成される
ことを特徴とする請求項１記載のセキュア処理装置。
【請求項６】
前記保護格納部は、揮発性のメモリであり、前記省電力モード時においても電力が供給される構成を有する
ことを特徴とする請求項１記載のセキュア処理装置。
【請求項７】
前記生成部は、データの内容に基づいて、ハッシュ関数によりハッシュ値を算出し、前記生成部が生成する前記認証子とは、前記算出されたハッシュ値である
ことを特徴とする請求項１記載のセキュア処理装置。
【請求項８】
前記復帰制御部は、前記判断部により一致しないと判断されると、前記外部メモリに記憶された前記暗号化データを消去する消去部と、
前記暗号処理部により復号化された前記復号化データを破棄する破棄部とを含む
ことを特徴とする請求項１記載のセキュア処理装置。
【請求項９】
前記セキュア処理装置は、前記通常電力モードへの復帰時に、前記外部メモリに記憶された前記暗号化データを消去するデータ消去部を含む
ことを特徴とする請求項１記載のセキュア処理装置。
【請求項１０】
前記セキュア処理装置は、さらに、
自装置を識別する情報である装置固有情報を記憶する固有情報保持部を含み、
前記暗号化部は、前記固有情報保持部に記憶されている装置固有情報に基づいた暗号鍵を用いて、前記暗号化および前記復号化を行う
ことを特徴とする請求項１記載のセキュア処理装置。
【請求項１１】
前記固有情報保持部は、自装置外部からの不正アクセスを防止する機構を有している
ことを特徴とする請求項１０記載のセキュア処理装置。
【請求項１２】
動作モードとして、通常電力モードと、省電力モードとを切り換えて動作し、前記通常電力モード時には、秘匿すべき保護データに係る処理を少なくとも実行し、前記省電力モード時には、前記保護データを、外部メモリにおいて安全に保持するセキュア処理装置であって、
データの暗号化および復号化を行う暗号処理部と、
データの内容に依存して定まり、当該データよりもデータサイズが小さい認証子を生成する生成部と、
自装置外部からの不正アクセスを防止する機構を有し、前記省電力モード時において、記憶内容が消失するメモリにより構成され、前記保護データを記憶するためのセキュア記憶部と、
前記通常電力モードまたは前記省電力モードのいずれの動作時であっても記憶内容を保持する機構、および、自装置外部からの不正アクセスを防止する機構を有し、前記セキュア記憶部よりも記憶容量が小さい保護格納部と、
前記省電力モードへの移行時に、前記保護データを前記暗号処理部に暗号化させ、得られた暗号化データを前記外部メモリに記憶させるとともに、前記暗号化データに基づいて、前記生成部に第１認証子を生成させ、生成された当該第１認証子を前記保護格納部に格納させる移行制御部と、
前記通常電力モードへの復帰時に、前記外部メモリに記憶された前記暗号化データに基づいて、前記生成部に第２認証子を生成させる認証子生成制御部と、
生成された前記第２認証子と、前記保護格納部に格納されている前記第１認証子とが一致するか否かを判断する判断部と、
一致しないと判断されると、前記外部メモリに記憶された前記暗号化データを前記セキュア記憶部へ書き込むための処理を制限し、一致すると判断されると、前記暗号化データを前記暗号処理部に復号化させ、得られた復号化データを前記セキュア記憶部へ書き込む復帰制御部とを備える
ことを特徴とするセキュア処理装置。
【請求項１３】
前記復帰制御部は、前記判断部により一致しないと判断されると、前記暗号化データの前記暗号処理部による復号化を実行しないことで、前記制限を行う
ことを特徴とする請求項１２記載のセキュア処理装置。
【請求項１４】
前記セキュア処理装置は、さらに、バス暗号鍵を用いて暗号化したデータを、外部の記憶領域であるバス暗号領域に保持させ、前記バス暗号領域に保持されているデータを用いて安全に処理を行うものであり、
前記セキュア記憶部は、さらに、前記バス暗号鍵を記憶し、
前記移行制御部は、前記省電力モードへの移行時に、前記セキュア記憶部に記憶されている前記バス暗号鍵を暗号化し、暗号化されたバス暗号鍵を前記外部メモリに記憶させるよう制御するバス暗号鍵退避制御部を含み、
前記復帰制御部は、前記外部メモリに記憶された前記暗号化されたバス暗号鍵を復号化するバス暗号鍵復号化制御部と、
前記バス暗号鍵復号化制御部により復号化されたバス暗号鍵を、前記セキュア記憶部へ書き込むバス暗号鍵再設定部を含む
ことを特徴とする請求項１２記載のセキュア処理装置。
【請求項１５】
前記セキュア処理装置は、
前記バス暗号鍵を保持し、前記省電力モードへの移行が完了すると、保持内容が消失するバス暗号鍵設定レジスタと、
前記バス暗号鍵設定レジスタに保持されているバス暗号鍵を用いて、前記バス暗号領域へ出力するデータの暗号化、および、前記バス暗号領域から出力されるデータの復号化を行うバス暗号回路を含み、
前記セキュア記憶部が記憶している前記バス暗号鍵は、前記バス暗号鍵設定レジスタに保持されている前記バス暗号鍵と同一であり、
前記バス暗号鍵再設定部は、前記バス暗号鍵復号化制御部により前記復号化されたバス暗号鍵を、前記バス暗号鍵設定レジスタに保持させる
ことを特徴とする請求項１４記載のセキュア記憶装置。
【請求項１６】
前記セキュア処理装置は、
前記バス暗号鍵設定レジスタと、前記バス暗号回路とからなる組を複数備え、
前記バス暗号鍵設定レジスタと前記バス暗号回路とからなる組のそれぞれは、前記バス暗号領域に保持されているデータそれぞれと対応しており、
前記セキュア記憶部は、前記バス暗号鍵設定レジスタそれぞれが保持している複数のバス暗号鍵それぞれと同一のバス暗号鍵を記憶しており、
前記バス暗号鍵退避制御部は、前記省電力モードへの移行時に、前記セキュア記憶部により記憶されている複数の前記バス暗号鍵を前記暗号化し、暗号化された複数のバス暗号鍵を前記外部メモリに前記記憶させ、
前記バス暗号鍵復号化制御部は、複数の前記バス暗号鍵を前記復号化し、
前記バス暗号鍵再設定部は、復号された前記複数の前記バス暗号鍵を、前記セキュア記憶部へ書き込む
ことを特徴とする請求項１５記載のセキュア処理装置。
【請求項１７】
前記復帰制御部は、前記判断部により一致しないと判断されると、前記外部メモリに記憶された前記暗号化データを消去する消去部を含む
ことを特徴とする請求項１２記載のセキュア処理装置。
【請求項１８】
動作モードとして、通常電力モードと、省電力モードとを切り換えて動作し、前記通常電力モード時には、秘匿すべき保護データに係る処理を少なくとも実行し、前記省電力モード時には、前記保護データを、外部メモリにおいて安全に保持するセキュア処理装置において用いられる、情報処理方法であって、
前記セキュア処理装置は、
自装置外部からの不正アクセスを防止する機構を有し、前記省電力モード時において、記憶内容が消失するメモリにより構成され、前記保護データを記憶するためのセキュア記憶部と、
前記通常電力モードまたは前記省電力モードのいずれの動作時であっても記憶内容を保持する機構、および、自装置外部からの不正アクセスを防止する機構を有し、前記セキュア記憶部よりも記憶容量が小さい保護格納部とを有し、
前記情報処理方法は、
データの暗号化および復号化を行う暗号処理ステップと、
データの内容に依存して定まり、当該データよりもデータサイズが小さい認証子を生成する生成ステップと、
前記セキュア処理装置が前記省電力モードへ移行する時に、前記セキュア記憶部に記憶されている前記保護データに基づいて、前記生成ステップの実行により第１認証子を生成し、生成された当該第１認証子を前記保護格納部に格納させるとともに、前記保護データを前記暗号処理ステップの実行により暗号化し、得られた暗号化データを前記外部メモリに記憶させるよう制御する移行制御ステップと、
前記セキュア処理装置が前記通常電力モードへ復帰する時に、前記外部メモリに記憶された前記暗号化データを前記暗号処理ステップの実行により復号化し、得られた復号化データに基づいて、前記生成ステップの実行により第２認証子を生成するよう制御する認証子生成制御ステップと、
生成された前記第２認証子と、前記保護格納部に格納されている前記第１認証子とが一致するか否かを判断する判断ステップと、
前記判断ステップにおいて一致しないと判断されると、前記復号化データの前記セキュア記憶部への書き込みを禁止し、一致すると判断されると、前記復号化データを前記セキュア記憶部へ書き込む復帰制御ステップとを含む
ことを特徴とする情報処理方法。
【請求項１９】
動作モードとして、通常電力モードと、省電力モードとを切り換えて動作し、前記通常電力モード時には、秘匿すべき保護データに係る処理を少なくとも実行し、前記省電力モード時には、前記保護データを、外部メモリにおいて安全に保持するセキュア処理装置の動作を制御する制御プログラムであって、
前記セキュア処理装置は、
自装置外部からの不正アクセスを防止する機構を有し、前記省電力モード時において、記憶内容が消失するメモリにより構成され、前記保護データを記憶するためのセキュア記憶部と、
前記通常電力モードまたは前記省電力モードのいずれの動作時であっても記憶内容を保持する機構、および、自装置外部からの不正アクセスを防止する機構を有し、前記セキュア記憶部よりも記憶容量が小さい保護格納部とを有し、
前記制御プログラムは、
データの暗号化および復号化を行う暗号処理ステップと、
データの内容に依存して定まり、当該データよりもデータサイズが小さい認証子を生成する生成ステップと、
前記セキュア処理装置が前記省電力モードへ移行する時に、前記セキュア記憶部に記憶されている前記保護データに基づいて、前記生成ステップの実行により第１認証子を生成し、生成された当該第１認証子を前記保護格納部に格納させるとともに、前記保護データを前記暗号処理ステップの実行により暗号化し、得られた暗号化データを前記外部メモリに記憶させるよう制御する移行制御ステップと、
前記セキュア処理装置が前記通常電力モードへ復帰する時に、前記外部メモリに記憶された前記暗号化データを前記暗号処理ステップの実行により復号化し、得られた復号化データに基づいて、前記生成ステップの実行により第２認証子を生成するよう制御する認証子生成制御ステップと、
生成された前記第２認証子と、前記保護格納部に格納されている前記第１認証子とが一致するか否かを判断する判断ステップと、
前記判断ステップにおいて一致しないと判断されると、前記復号化データの前記セキュア記憶部への書き込みを禁止し、一致すると判断されると、前記復号化データを前記セキュア記憶部へ書き込む復帰制御ステップとを含む
ことを特徴とする制御プログラム。
【請求項２０】
動作モードとして、通常電力モードと、省電力モードとを切り換えて動作し、前記通常電力モード時には、秘匿すべき保護データに係る処理を少なくとも実行し、前記省電力モード時には、前記保護データを、外部メモリにおいて安全に保持するセキュア処理装置において用いられる、情報処理方法であって、
前記セキュア処理装置は、
自装置外部からの不正アクセスを防止する機構を有し、前記省電力モード時において、記憶内容が消失するメモリにより構成され、前記保護データを記憶するためのセキュア記憶部と、
前記通常電力モードまたは前記省電力モードのいずれの動作時であっても記憶内容を保持する機構、および、自装置外部からの不正アクセスを防止する機構を有し、前記セキュア記憶部よりも記憶容量が小さい保護格納部とを有し、
前記情報処理方法は、
データの暗号化および復号化を行う暗号処理ステップと、
データの内容に依存して定まり、当該データよりもデータサイズが小さい認証子を生成する生成ステップと、
前記セキュア処理装置が前記省電力モードへ移行する時に、前記保護データを前記暗号処理ステップの実行により暗号化し、得られた暗号化データを前記外部メモリに記憶させるとともに、前記暗号化データに基づいて、前記生成ステップの実行により第１認証子を生成し、生成された当該第１認証子を前記保護格納部に格納させるよう制御する移行制御ステップと、
前記セキュア処理装置が前記通常電力モードへ復帰する時に、前記外部メモリに記憶された前記暗号化データに基づいて、前記生成ステップの実行により第２認証子を生成するよう制御する認証子生成制御ステップと、
生成された前記第２認証子と、前記保護格納部に格納されている前記第１認証子とが一致するか否かを判断する判断ステップと、
前記判断ステップにおいて一致しないと判断されると、前記外部メモリに記憶された前記暗号化データを前記セキュア記憶部へ書き込むための処理を制限し、一致すると判断されると、前記暗号化データを前記暗号処理部ステップの実行により復号化し、得られた復号化データを前記セキュア記憶部へ書き込むよう制御する復帰制御ステップとを含む
ことを特徴とする情報処理方法。
【請求項２１】
動作モードとして、通常電力モードと、省電力モードとを切り換えて動作し、前記通常電力モード時には、秘匿すべき保護データに係る処理を少なくとも実行し、前記省電力モード時には、前記保護データを、外部メモリにおいて安全に保持するセキュア処理装置の動作を制御する制御プログラムであって、
前記セキュア処理装置は、
自装置外部からの不正アクセスを防止する機構を有し、前記省電力モード時において、記憶内容が消失するメモリにより構成され、前記保護データを記憶するためのセキュア記憶部と、
前記通常電力モードまたは前記省電力モードのいずれの動作時であっても記憶内容を保持する機構、および、自装置外部からの不正アクセスを防止する機構を有し、前記セキュア記憶部よりも記憶容量が小さい保護格納部とを有し、
前記制御プログラムは、
データの暗号化および復号化を行う暗号処理ステップと、
データの内容に依存して定まり、当該データよりもデータサイズが小さい認証子を生成する生成ステップと、
前記セキュア処理装置が前記省電力モードへ移行する時に、前記保護データを前記暗号処理ステップの実行により暗号化し、得られた暗号化データを前記外部メモリに記憶させるとともに、前記暗号化データに基づいて、前記生成ステップの実行により第１認証子を生成し、生成された当該第１認証子を前記保護格納部に格納させるよう制御する移行制御ステップと、
前記セキュア処理装置が前記通常電力モードへ復帰する時に、前記外部メモリに記憶された前記暗号化データに基づいて、前記生成ステップの実行により第２認証子を生成するよう制御する認証子生成制御ステップと、
生成された前記第２認証子と、前記保護格納部に格納されている前記第１認証子とが一致するか否かを判断する判断ステップと、
前記判断ステップにおいて一致しないと判断されると、前記外部メモリに記憶された前記暗号化データを前記セキュア記憶部へ書き込むための処理を制限し、一致すると判断されると、前記暗号化データを前記暗号処理部ステップの実行により復号化し、得られた復号化データを前記セキュア記憶部へ書き込むよう制御する復帰制御ステップとを含む
ことを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、秘匿すべき保護データを安全に処理するための機構を有し、通常電力モードおよび省電力モードにより動作することができるセキュア処理装置に関し、特に、通常電力モードと省電力モードとの切り替えの前後において、保護データを安全に外部メモリへ退避させ、また、省電力モードからの復帰を安全に行うための技術に関する。
【背景技術】
【０００２】
音楽データなどに代表されるコンテンツにかかるデータが不正に複製されたり、コンテンツを再生するためのプログラムが不正に改ざん等されると、著作権者等の不利益となる。そのため、著作権者等にとっては、これらの高い価値を有するデータにかかる処理が安全に行われることが望ましい。
この要望に応えるため、秘匿すべき保護データを用いた処理を安全に実行することができるセキュア処理装置が提供されている。【０００３】
セキュア処理装置としては、例えば、セキュアメモリを内部に含んだ集積回路がある。このセキュアメモリは、外部からの不正アクセスを防止する機構を有している。
具体的には、この集積回路では、セキュアメモリにアクセスすることができるのは、集積回路内部のCPUのみである。そして、集積回路内部のCPUの動作モードがセキュアモードのときに限り、CPUは、セキュアメモリにアクセスすることができる。【０００４】
このように、セキュア処理装置は、秘匿すべき保護データを保持する記憶領域にアクセスすることができる主体およびアクセスできる機会を制限することで、データの秘匿を実現している。
ところで、セキュア処理装置には、動作モードとして、通常電力モードおよび省電力モードを切り換えて動作するものがある。省電力モードで動作している間、セキュア処理装置は、電源の供給が制限され、また、CPUをスリープモードに移行させる等、機能の一部を制限することで、消費電力を小さくして動作する。省電力モードを備えたセキュア処理装置は、例えば、バッテリー駆動により動作する携帯機器等で用いられる。こうすることで、携帯機器は、音楽データ等の秘匿すべき保護データを用いた処理を、セキュア処理装置により安全に行いつつ、動作時間を長くすることができる。【０００５】
また、セキュア処理装置の、外部からの不正アクセスを防止する機構を有している記憶領域は、CPUによる高速アクセスを可能にするため、通常、揮発性のメモリが用いられる。そのため、セキュア処理装置が省電力モードに移行すると、上記記憶領域に保持されているデータが消失する。したがって、音楽データや音楽再生用の重要なプログラム等が上記記憶領域でのみ保持されている場合、セキュア処理装置が省電力モードに移行するたびに、当該データやプログラムが消失することになる。【０００６】
この場合、セキュア処理装置を組み込んだ機器のユーザにとって不都合が生じることがある。
具体的に、セキュア処理装置を含んだ携帯機器のユーザが音楽データを再生している場合を例に、上述したユーザの不都合を説明する。携帯機器が音楽データを再生している途中に、携帯機器が省電力モードに移行したとする。この後、省電力モードから復帰して、音楽データの続きを再生しようとしても、上記記憶領域の音楽データが消失している。そのため、再度、上記記憶領域に音楽データが読み込まれるまでユーザが待たされたり、音楽データの再生位置等の情報が消失して音楽データの先頭からしか再生できないなどの望ましくない事態が生じることがある。【０００７】
そこで、セキュア処理装置を省電力モードへ移行させる際に、上記記憶領域に保持されているデータを、セキュア処理装置の外部にある外部メモリに退避させる技術が従来用いられている。そして、セキュア処理装置を省電力モードから復帰させる際に、外部メモリに退避させたデータを、上記記憶領域に再設定する。これにより、セキュア処理装置は、省電力モード移行前後の処理を継続して行うことができ、ユーザの不都合が発生しないようにすることができる。【０００８】
ただし、この技術を用いる場合、セキュア処理装置に異常なデータが再設定されると、セキュア処理装置が暴走する可能性がある。そのため、外部メモリへのデータの退避と、セキュア処理装置へのデータの再設定は、異常なく行われることが望ましい。
この課題を解決するため、下記の特許文献１には、正常な手順で外部メモリへのデータの退避が行えるようにすることを目的とする技術が開示されている。具体的には、まず、省電力モードへの移行を開始すると、キーワードをレジスタに設定する。次に、外部メモリへデータを退避させる前に、キーワードとレジスタの内容とが一致するか判断し、一致する場合にデータの退避を実行する。【０００９】
この技術によると、セキュア処理装置が暴走等により、キーワードをレジスタに設定する処理を飛ばして省電力モードに移行する処理を実行しようとしたとしても、キーワードとレジスタの内容とが一致しないので、異常終了する。
【特許文献１】日本国特許公開公報  特開平５−１４３４７８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上記特許文献１の技術を用いると、異常な手順で省電力モードへ移行する事態を防ぐことができる。すなわち、暴走等によりセキュア処理装置が省電力モードへ移行するのを回避できる。したがって、外部メモリへ退避するデータを適切なものとすることができる。
しかし、特許文献１記載の技術を用いたとしても、退避したデータが改ざんされたり破損したりすると、省電力モードから復帰するときに、セキュア処理装置に、異常なデータが再設定されることとなる。すなわち、省電力モードからの復帰が安全に行われないという問題がある。例えば外部メモリに退避させたデータが改ざんされて、不正なプログラム等がセキュア処理装置に再設定されて実行される可能性がある。その結果、例えば上記記憶領域のデータを外部に出力させるような処理が行われて、秘匿すべき保護データが暴露されるなどの事態が発生しうる。【００１１】
そこで、本発明は、省電力モードを備えるセキュア処理装置において、秘匿すべき保護データを外部メモリへ安全に退避し、かつ、外部メモリへ退避させたデータをセキュア処理装置に安全に再設定することを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するため、本発明のセキュア処理装置は、動作モードとして、通常電力モードと、省電力モードとを切り換えて動作し、前記通常電力モード時には、秘匿すべき保護データに係る処理を少なくとも実行し、前記省電力モード時には、前記保護データを、外部メモリにおいて安全に保持するセキュア処理装置であって、データの暗号化および復号化を行う暗号処理部と、データの内容に依存して定まり、当該データよりもデータサイズが小さい認証子を生成する生成部と、自装置外部からの不正アクセスを防止する機構を有し、前記省電力モード時において、記憶内容が消失するメモリにより構成され、前記保護データを記憶するためのセキュア記憶部と、前記通常電力モードまたは前記省電力モードのいずれの動作時であっても記憶内容を保持する機構、および、自装置外部からの不正アクセスを防止する機構を有し、前記セキュア記憶部よりも記憶容量が小さい保護格納部と、前記省電力モードへの移行時に、前記保護データに基づいて、前記生成部に第１認証子を生成させ、生成された当該第１認証子を前記保護格納部に格納させるとともに、前記保護データを前記暗号処理部に暗号化させ、得られた暗号化データを前記外部メモリに記憶させるよう制御する移行制御部と、前記通常電力モードへの復帰時に、前記外部メモリに記憶された前記暗号化データを前記暗号処理部に復号化させ、得られた復号化データに基づいて、前記生成部に第２認証子を生成させる認証子生成制御部と、生成された前記第２認証子と、前記保護格納部に格納されている前記第１認証子とが一致するか否かを判断する判断部と、一致しないと判断されると、前記復号化データの前記セキュア記憶部への書き込みを禁止し、一致すると判断されると、前記復号化データを前記セキュア記憶部へ書き込む復帰制御部とを備えることを特徴とする。
【発明の効果】
【００１３】
上述の構成を備えるセキュア処理装置は、省電力モードへの移行時に、保護データに基づいて第１認証子を生成する。また、通常電力モードへの復帰時に、セキュア記憶部に再設定する対象となるデータに基づいて第２認証子を生成し、第２認証子と、省電力モードへの移行時に生成した第１認証子とを比較することで、外部メモリに退避させたデータの再設定を行うか否かを制御するという技術的特徴を有している。【００１４】
生成部により生成される認証子は、生成の元となるデータに依存して定まる。したがって、セキュア処理装置は、第１認証子と第２認証子とを比較することにより、セキュア記憶部に再設定する対象となるデータが、外部メモリに退避させたデータと同一か否かを判断することができる。
同一であれば、データをセキュア記憶部に再設定する。同一でなければ、退避させたデータが、改ざん等により、異常なデータになっていると推定できるので、当該データをセキュア記憶部に書き込まない。【００１５】
こうすることで、セキュア処理装置は、異常なデータを再設定しないですみ、外部メモリへ退避させたデータを、安全に再設定することができる。
また、セキュア処理装置は、外部メモリへデータを退避させる際に、暗号化部により、退避にかかるデータを暗号化する。そして、暗号化したデータを外部メモリへ退避させる。したがって、セキュア処理装置は、秘匿すべき保護データを安全に外部メモリに退避させることができる。【００１６】
また、上述の構成において、生成部は、認証子を生成する対象となるデータよりもデータサイズが小さい認証子を生成するので、認証子を格納する保護格納部は、セキュア記憶部よりもメモリ領域を小さくできる。
したがって、上述の構成を備えるセキュア処理装置は、秘匿すべき保護データを安全に処理しつつ、省電力化を実現し、さらに、装置の大型化を避けることができる。例えば、セキュア処理装置が集積回路の場合、回路の大型化を避けることができる。そのため、小型化の要請が強い集積回路において、上述の技術的特徴を有するセキュア処理装置を容易に実現することができる。【００１７】
ところで、セキュア処理装置が高速で所定の処理を行うには、重要なデータを記憶するセキュア記憶部の記憶容量が十分ではない場合がある。この場合は、重要なプログラムなどのデータを所定の暗号鍵を用いて暗号化する。この暗号鍵を、以下、バス暗号鍵という。セキュア処理装置は、バス暗号鍵を安全に保持する。また、バス暗号鍵を用いて暗号化したデータを、外部の記憶領域に記憶させる。この外部の記憶領域を、以下、バス暗号領域という。【００１８】
このような構成により、セキュア処理装置は、セキュア記憶部の記憶容量が十分ではない場合も、秘匿すべき保護データを用いて安全に処理を行うことができる。
しかし、省電力モードへの移行時に、セキュア処理装置において保持しているバス暗号鍵が消失してしまうと、バス暗号領域のデータを復号するための鍵が無くなり、処理を再開できなくなる。【００１９】
ここで、セキュア処理装置が、例えば装置に固有な情報等の、変化しない情報に基づいて、１のバス暗号鍵をいつでも生成することができ、これによって生成されたバス暗号鍵を用い続けるとする。この場合、確かに、省電力モードへ移行してバス暗号鍵が消失したとしても、再度、同一のバス暗号鍵を生成することができるので、通常電力モードへの復帰後、再度生成したバス暗号鍵を用いて、バス暗号領域のデータを復号化することはできる。【００２０】
しかし、バス暗号領域のデータを復号するためのバス暗号鍵がいつまでも同じであると、不正者がバス暗号領域のデータを解析する等により、バス暗号鍵が解読され、バス暗号領域に保持されている重要なデータが暴露されるおそれがある。そのため、バス暗号鍵は、随時変更されることが望ましい。
このように、セキュア処理装置が１のバス暗号鍵を用い続けないことを前提とすると、セキュア処理装置は、省電力モードへの移行後、通常電力モードへ復帰したときに、バス暗号鍵が消失していると、バス暗号領域のデータを用いた処理を再開できなくなる。そのため、再度、バス暗号領域にデータを書き込む等の不要な処理が必要となる。【００２１】
この問題に対処すべく、バス暗号領域において保持されている重要なデータについても、省電力モードへの移行後、通常電力モードへの復帰時に、上述のセキュア記憶部のデータと同様に、処理の継続等を可能とすることが望ましい。
そこで、前記セキュア処理装置は、さらに、バス暗号鍵を用いて暗号化したデータを、外部の記憶領域であるバス暗号領域に保持させ、前記バス暗号領域に保持されているデータを用いて安全に処理を行うものであり、前記セキュア記憶部は、さらに、前記バス暗号鍵を記憶し、前記移行制御部は、前記省電力モードへの移行時に、前記セキュア記憶部に記憶されている前記バス暗号鍵を暗号化し、暗号化されたバス暗号鍵を前記外部メモリに記憶させるよう制御するバス暗号鍵退避制御部を含み、前記復帰制御部は、前記外部メモリに記憶された前記暗号化されたバス暗号鍵を復号化するバス暗号鍵復号化制御部と、前記バス暗号鍵復号化制御部により復号化されたバス暗号鍵を、前記セキュア記憶部へ書き込むバス暗号鍵再設定部を含むこととしてもよい。【００２２】
このような構成により、バス暗号領域のデータについても、省電力モードへの移行の前後において、処理の継続等を行うことができるので、通常電力モードへの復帰後、処理を再開するまでの時間を短くすることができる。
なお、上記のようにバス暗号領域およびバス暗号鍵を用いるセキュア処理装置は、処理を高速化するために、所定の回路やレジスタ等を用いて実現されることがある。【００２３】
具体的には、前記セキュア処理装置は、前記バス暗号鍵を保持し、前記省電力モードへの移行が完了すると、保持内容が消失するバス暗号鍵設定レジスタと、前記バス暗号鍵設定レジスタに保持されているバス暗号鍵を用いて、前記バス暗号領域へ出力するデータの暗号化、および、前記バス暗号領域から出力されるデータの復号化を行うバス暗号回路を含み、前記セキュア記憶部が記憶している前記バス暗号鍵は、前記バス暗号鍵設定レジスタに保持されている前記バス暗号鍵と同一であり、前記バス暗号鍵再設定部は、前記バス暗号鍵復号化制御部により前記復号化されたバス暗号鍵を、前記バス暗号鍵設定レジスタに保持させるという構成を有していてもよい。【００２４】
このような構成により、バス暗号領域を用いた処理を、安全かつ高速に行うことができる。
さらに、上述のバス暗号領域を用いた処理を行う場合、安全性をより高めるには、例えば重要なデータ１つ１つに対し、異なるバス暗号鍵を用いることが望ましい。仮に１のバス暗号鍵が解読されたとしても、他のバス暗号鍵を用いたデータは暴露されないためである。【００２５】
上述の技術は、例えば、バス暗号回路とバス暗号鍵設定レジスタとの組を複数備え、重要なデータ１つ１つを、バス暗号回路とバス暗号鍵設定レジスタとの組のそれぞれに対応させることで実現できる。ただし、この場合、バス暗号鍵設定レジスタが複数あるので、セキュア処理装置が省電力モードへ移行する際に、複数のバス暗号鍵設定レジスタに保持されている各バス暗号鍵を読み出そうとすると、バス暗号鍵を保持しているレジスタの特定やバス暗号鍵の読み出し等の処理を要する。そのため、省電力モードへの移行が遅れたり、また、省電力モードへの移行が完了するまでに、バス暗号鍵の外部メモリへの退避が間に合わないおそれがある。【００２６】
そこで、前記セキュア処理装置は、前記バス暗号鍵設定レジスタと、前記バス暗号回路とからなる組を複数備え、前記バス暗号鍵設定レジスタと前記バス暗号回路とからなる組のそれぞれは、前記バス暗号領域に保持されているデータそれぞれと対応しており、前記セキュア記憶部は、前記バス暗号鍵設定レジスタそれぞれが保持している複数のバス暗号鍵それぞれと同一のバス暗号鍵を記憶しており、前記バス暗号鍵退避制御部は、前記省電力モードへの移行時に、前記セキュア記憶部により記憶されている複数の前記バス暗号鍵を前記暗号化し、暗号化された複数のバス暗号鍵を前記外部メモリに前記記憶させ、前記バス暗号鍵復号化制御部は、複数の前記バス暗号鍵を前記復号化し、前記バス暗号鍵再設定部は、復号された前記複数の前記バス暗号鍵を、前記セキュア記憶部へ書き込むこととしてもよい。【００２７】
上述の構成によると、セキュア記憶部は、バス暗号鍵設定レジスタに保持されている複数のバス暗号鍵と同一のバス暗号鍵をそれぞれ保持している。そのため、セキュア処理装置は、省電力モードへの移行時に、バス暗号鍵を退避させるバス暗号鍵設定レジスタの特定や探索等を行うことなく、バス暗号鍵等の外部メモリへの退避を行うことができる。したがって、省電力モードへの移行時に、外部メモリへのデータの退避が間に合わない等のおそれを回避することができる。【００２８】
ところで、消費電力をより低下させたい場合は、省電力モード時において、必要な電源の供給を少なくすることが望ましい。
そこで、前記保護格納部は、不揮発性のメモリにより構成されることとしてもよい。
上述の構成によると、保護格納部は電源電圧を供給しなくとも記憶内容を保持するので、保護格納部に揮発性メモリを用いる場合と比べると、セキュア処理装置の消費電力を低下させることができる。【００２９】
一方、セキュア処理装置の安全性を高めたい場合には、保護格納部を以下の構成とすることもできる。
すなわち、前記保護格納部は、揮発性のメモリであり、前記省電力モード時においても電力が供給される構成を有することとしてもよい。
仮に、何らかの不正な解析手段により、保護格納部に記憶されている認証子が暴露されてしまうとする。この場合、認証子に基づいて、元のデータが不正者に推定されたり、暴露されたのと同一の認証子が生成部により生成されるように、不正なデータを不正者が作成するおそれがある。【００３０】
このようなおそれに対し、上述の構成を備えるセキュア処理装置によると、保護格納部は、揮発性のメモリであるため、省電力モード時には記憶内容を保持する。そして、セキュア処理装置の電源がオフになると、保護格納部の記憶内容が消失する。そのため、セキュア処理装置が電源オフの場合に、保護格納部が解析されて認証子が不正に暴露されるのを防ぐことができる。また、耐タンパ性などの対策をとる必要もない。【００３１】
すなわち、簡易な構成で、不正な解析に対するセキュア処理装置の安全性を高めることができる。
また、生成部による認証子の生成方法に関連して、セキュア処理装置の安全性をより高めるには、以下の構成としてもよい。
すなわち、前記生成部は、データの内容に基づいて、ハッシュ関数によりハッシュ値を算出し、前記生成部が生成する前記認証子とは、前記算出されたハッシュ値であることとしてもよい。【００３２】
ハッシュ関数とは、あるデータから固定長の擬似乱数を生成する関数である。メッセージダイジェスト関数ともいう。ハッシュ関数により生成された値は、ハッシュ値と呼ばれる。ハッシュ関数は、不可逆な一方向関数を含むため、算出されたハッシュ値から、元のデータを推測するのが困難という特徴がある。また、ハッシュ関数は、あるデータとハッシュ値が等しい別のデータを容易に生成できないという特徴も有する。【００３３】
したがって、上述の構成によると、仮に保護格納部に記憶されている認証子が暴露されたとしても、認証子を生成する元となったデータ、すなわち秘匿すべき保護データが推測されるのを困難にすることができる。また、暴露された認証子が生成されるように、不正者が不正なデータを作成し、外部メモリに記憶させるのも困難となる。
ここで、外部メモリへ退避したデータと、外部メモリから再設定する対象となるデータとが異なる場合、すなわち、外部メモリへ退避したデータが改ざん等されている場合に、セキュア処理装置の安全性を高めるために、以下の構成とすることもできる。【００３４】
すなわち、前記復帰制御部は、前記判断部により一致しないと判断されると、前記外部メモリに記憶された前記暗号化データを消去する消去部と、前記暗号処理部により復号化された前記復号化データを破棄する破棄部とを含むこととしてもよい。
上述の構成によると、改ざん等がなされたおそれのある異常なデータをセキュア処理装置および外部メモリから完全に消去するので、このような異常なデータを誤ってセキュア処理装置が実行するおそれをなくすことができる。【００３５】
また、外部メモリに退避させた保護データが改ざんされているにせよ、改ざんされていないにせよ、セキュア処理装置が通常電力モードに復帰した後においても、外部メモリに退避させたデータをそのまま外部メモリに残しておくことは望ましくない。不正な解析等によって保護データが解読されるおそれがあるからである。
そこで、前記セキュア処理装置は、前記通常電力モードへの復帰時に、前記外部メモリに記憶された前記暗号化データを消去するデータ消去部を含むこととしてもよい。【００３６】
これにより、外部メモリにデータを退避させる期間を最小限にすることができ、不正者が外部メモリの暗号化データにアクセスしたり、不正な解析を行うおそれを小さくすることができる。
一方、外部メモリに退避させた保護データを、不正に利用されないようにするには、以下の構成とすることもできる。【００３７】
すなわち、前記セキュア処理装置は、さらに、自装置を識別する情報である装置固有情報を保持する固有情報保持部を含み、前記暗号化部は、前記保持されている装置固有情報に基づいた暗号鍵を用いて、前記暗号化および前記復号化を行うこととしてもよい。
上述の構成によると、外部メモリに退避されるデータは、装置固有情報に基づいて暗号化されたデータである。すなわち、外部メモリに退避されるデータは、暗号化を行った装置のみが、復号化することができる。【００３８】
したがって、外部メモリに退避されたデータが他の装置に読み込まれて不正に解析される等の不正行為を困難にすることができる。
上述の構成において、セキュア処理装置の安全性の観点からは、以下の構成にすることが望ましい。
すなわち、前記固有情報保持部は、自装置外部からの不正アクセスを防止する機構を有していることとしてもよい。【００３９】
これにより、固有情報保持部から装置固有情報が不正に漏洩するおそれが小さくなる。したがって、暗号化されたデータの復号がより困難になるので、セキュア処理装置の安全性を、より一層、高めることができる。
ところで、上述の構成では、外部メモリへデータを退避させる際、暗号化を行う前のセキュア記憶部のデータに基づいて、生成部により第１認証子を生成している。しかし、生成部が認証子を生成するタイミングは、これに限られるものではない。【００４０】
したがって、本発明のセキュア処理装置は、動作モードとして、通常電力モードと、省電力モードとを切り換えて動作し、前記通常電力モード時には、秘匿すべき保護データに係る処理を少なくとも実行し、前記省電力モード時には、前記保護データを、外部メモリにおいて安全に保持するセキュア処理装置であって、データの暗号化および復号化を行う暗号処理部と、データの内容に依存して定まり、当該データよりもデータサイズが小さい認証子を生成する生成部と、自装置外部からの不正アクセスを防止する機構を有し、前記省電力モード時において、記憶内容が消失するメモリにより構成され、前記保護データを記憶するためのセキュア記憶部と、前記通常電力モードまたは前記省電力モードのいずれの動作時であっても記憶内容を保持する機構、および、自装置外部からの不正アクセスを防止する機構を有し、前記セキュア記憶部よりも記憶容量が小さい保護格納部と、前記省電力モードへの移行時に、前記保護データを前記暗号処理部に暗号化させ、得られた暗号化データを前記外部メモリに記憶させるとともに、前記暗号化データに基づいて、前記生成部に第１認証子を生成させ、生成された当該第１認証子を前記保護格納部に格納させる移行制御部と、前記通常電力モードへの復帰時に、前記外部メモリに記憶された前記暗号化データに基づいて、前記生成部に第２認証子を生成させる認証子生成制御部と、生成された前記第２認証子と、前記保護格納部に格納されている前記第１認証子とが一致するか否かを判断する判断部と、一致しないと判断されると、前記外部メモリに記憶された前記暗号化データを前記セキュア記憶部へ書き込むための処理を制限し、一致すると判断されると、前記暗号化データを前記暗号処理部に復号化させ、得られた復号化データを前記セキュア記憶部へ書き込む復帰制御部とを備えることを特徴としてもよい。【００４１】
また、上述の構成において、前記復帰制御部は、前記判断部により一致しないと判断されると、前記暗号化データの前記暗号処理部による復号化を実行しないことで、前記制限を行うこととしてもよい。
上述の構成によると、セキュア処理装置は、生成部により生成された第２認証子と第１認証子とを比較し、比較結果に応じて、外部メモリに記憶された暗号化データを復号化するか否かを制御する。すなわち、セキュア処理装置は、負荷の大きい復号化処理が行われる前に、外部メモリに退避されたデータが異常なデータであるかを判断する。【００４２】
外部メモリに退避されたデータが異常である場合には、復号化処理を行わないとすることでセキュア処理装置の処理負荷を軽減できる。また、異常なデータを検出した時に、異常なデータに対する対策にかかる処理、例えば異常終了などを迅速に行うことができる。
また、上述の構成においても、外部メモリに退避させたデータを、セキュア処理装置が通常電力モードに復帰した後もそのまま外部メモリに残しておくことは望ましくない。【００４３】
そこで、前記復帰制御部は、前記判断部により一致しないと判断されると、前記外部メモリに記憶された前記暗号化データを消去する消去部を含むこととしてもよい。
上述の構成によると、改ざん等のおそれのある異常なデータを外部メモリから消去することができるので、このような異常なデータを誤ってセキュア処理装置が実行するおそれをなくすことができる。【００４４】
また、本発明は、動作モードとして、通常電力モードと、省電力モードとを切り換えて動作し、前記通常電力モード時には、秘匿すべき保護データに係る処理を少なくとも実行し、前記省電力モード時には、前記保護データを、外部メモリにおいて安全に保持するセキュア処理装置において用いられる、情報処理方法であって、前記セキュア処理装置は、自装置外部からの不正アクセスを防止する機構を有し、前記省電力モード時において、記憶内容が消失するメモリにより構成され、前記保護データを記憶するためのセキュア記憶部と、前記通常電力モードまたは前記省電力モードのいずれの動作時であっても記憶内容を保持する機構、および、自装置外部からの不正アクセスを防止する機構を有し、前記セキュア記憶部よりも記憶容量が小さい保護格納部とを有し、前記情報処理方法は、データの暗号化および復号化を行う暗号処理ステップと、データの内容に依存して定まり、当該データよりもデータサイズが小さい認証子を生成する生成ステップと、前記セキュア処理装置が前記省電力モードへ移行する時に、前記セキュア記憶部に記憶されている前記保護データに基づいて、前記生成ステップの実行により第１認証子を生成し、生成された当該第１認証子を前記保護格納部に格納させるとともに、前記保護データを前記暗号処理ステップの実行により暗号化し、得られた暗号化データを前記外部メモリに記憶させるよう制御する移行制御ステップと、前記セキュア処理装置が前記通常電力モードへ復帰する時に、前記外部メモリに記憶された前記暗号化データを前記暗号処理ステップの実行により復号化し、得られた復号化データに基づいて、前記生成ステップの実行により第２認証子を生成するよう制御する認証子生成制御ステップと、生成された前記第２認証子と、前記保護格納部に格納されている前記第１認証子とが一致するか否かを判断する判断ステップと、前記判断ステップにおいて一致しないと判断されると、前記復号化データの前記セキュア記憶部への書き込みを禁止し、一致すると判断されると、前記復号化データを前記セキュア記憶部へ書き込む復帰制御ステップとを含むこととしてもよい。【００４５】
また、本発明は、動作モードとして、通常電力モードと、省電力モードとを切り換えて動作し、前記通常電力モード時には、秘匿すべき保護データに係る処理を少なくとも実行し、前記省電力モード時には、前記保護データを、外部メモリにおいて安全に保持するセキュア処理装置の動作を制御する制御プログラムであって、前記セキュア処理装置は、自装置外部からの不正アクセスを防止する機構を有し、前記省電力モード時において、記憶内容が消失するメモリにより構成され、前記保護データを記憶するためのセキュア記憶部と、前記通常電力モードまたは前記省電力モードのいずれの動作時であっても記憶内容を保持する機構、および、自装置外部からの不正アクセスを防止する機構を有し、前記セキュア記憶部よりも記憶容量が小さい保護格納部とを有し、前記制御プログラムは、データの暗号化および復号化を行う暗号処理ステップと、データの内容に依存して定まり、当該データよりもデータサイズが小さい認証子を生成する生成ステップと、前記セキュア処理装置が前記省電力モードへ移行する時に、前記セキュア記憶部に記憶されている前記保護データに基づいて、前記生成ステップの実行により第１認証子を生成し、生成された当該第１認証子を前記保護格納部に格納させるとともに、前記保護データを前記暗号処理ステップの実行により暗号化し、得られた暗号化データを前記外部メモリに記憶させるよう制御する移行制御ステップと、前記セキュア処理装置が前記通常電力モードへ復帰する時に、前記外部メモリに記憶された前記暗号化データを前記暗号処理ステップの実行により復号化し、得られた復号化データに基づいて、前記生成ステップの実行により第２認証子を生成するよう制御する認証子生成制御ステップと、生成された前記第２認証子と、前記保護格納部に格納されている前記第１認証子とが一致するか否かを判断する判断ステップと、前記判断ステップにおいて一致しないと判断されると、前記復号化データの前記セキュア記憶部への書き込みを禁止し、一致すると判断されると、前記復号化データを前記セキュア記憶部へ書き込む復帰制御ステップとを含むこととしてもよい。【００４６】
また、本発明は、動作モードとして、通常電力モードと、省電力モードとを切り換えて動作し、前記通常電力モード時には、秘匿すべき保護データに係る処理を少なくとも実行し、前記省電力モード時には、前記保護データを、外部メモリにおいて安全に保持するセキュア処理装置において用いられる、情報処理方法であって、前記セキュア処理装置は、自装置外部からの不正アクセスを防止する機構を有し、前記省電力モード時において、記憶内容が消失するメモリにより構成され、前記保護データを記憶するためのセキュア記憶部と、前記通常電力モードまたは前記省電力モードのいずれの動作時であっても記憶内容を保持する機構、および、自装置外部からの不正アクセスを防止する機構を有し、前記セキュア記憶部よりも記憶容量が小さい保護格納部とを有し、前記情報処理方法は、データの暗号化および復号化を行う暗号処理ステップと、データの内容に依存して定まり、当該データよりもデータサイズが小さい認証子を生成する生成ステップと、前記セキュア処理装置が前記省電力モードへ移行する時に、前記保護データを前記暗号処理ステップの実行により暗号化し、得られた暗号化データを前記外部メモリに記憶させるとともに、前記暗号化データに基づいて、前記生成ステップの実行により第１認証子を生成し、生成された当該第１認証子を前記保護格納部に格納させるよう制御する移行制御ステップと、前記セキュア処理装置が前記通常電力モードへ復帰する時に、前記外部メモリに記憶された前記暗号化データに基づいて、前記生成ステップの実行により第２認証子を生成するよう制御する認証子生成制御ステップと、生成された前記第２認証子と、前記保護格納部に格納されている前記第１認証子とが一致するか否かを判断する判断ステップと、前記判断ステップにおいて一致しないと判断されると、前記外部メモリに記憶された前記暗号化データを前記セキュア記憶部へ書き込むための処理を制限し、一致すると判断されると、前記暗号化データを前記暗号処理部ステップの実行により復号化し、得られた復号化データを前記セキュア記憶部へ書き込むよう制御する復帰制御ステップとを含むこととしてもよい。【００４７】
また、本発明は、動作モードとして、通常電力モードと、省電力モードとを切り換えて動作し、前記通常電力モード時には、秘匿すべき保護データに係る処理を少なくとも実行し、前記省電力モード時には、前記保護データを、外部メモリにおいて安全に保持するセキュア処理装置の動作を制御する制御プログラムであって、前記セキュア処理装置は、自装置外部からの不正アクセスを防止する機構を有し、前記省電力モード時において、記憶内容が消失するメモリにより構成され、前記保護データを記憶するためのセキュア記憶部と、前記通常電力モードまたは前記省電力モードのいずれの動作時であっても記憶内容を保持する機構、および、自装置外部からの不正アクセスを防止する機構を有し、前記セキュア記憶部よりも記憶容量が小さい保護格納部とを有し、前記制御プログラムは、データの暗号化および復号化を行う暗号処理ステップと、データの内容に依存して定まり、当該データよりもデータサイズが小さい認証子を生成する生成ステップと、前記セキュア処理装置が前記省電力モードへ移行する時に、前記保護データを前記暗号処理ステップの実行により暗号化し、得られた暗号化データを前記外部メモリに記憶させるとともに、前記暗号化データに基づいて、前記生成ステップの実行により第１認証子を生成し、生成された当該第１認証子を前記保護格納部に格納させるよう制御する移行制御ステップと、前記セキュア処理装置が前記通常電力モードへ復帰する時に、前記外部メモリに記憶された前記暗号化データに基づいて、前記生成ステップの実行により第２認証子を生成するよう制御する認証子生成制御ステップと、生成された前記第２認証子と、前記保護格納部に格納されている前記第１認証子とが一致するか否かを判断する判断ステップと、前記判断ステップにおいて一致しないと判断されると、前記外部メモリに記憶された前記暗号化データを前記セキュア記憶部へ書き込むための処理を制限し、一致すると判断されると、前記暗号化データを前記暗号処理部ステップの実行により復号化し、得られた復号化データを前記セキュア記憶部へ書き込むよう制御する復帰制御ステップとを含むこととしてもよい。【００４８】
これにより、上述した制御プログラムを、ネットワークを通して頒布等により流通させることができる。
【図面の簡単な説明】
【００４９】
【図１】組み込み機器１のハードウェア構成を示す機能ブロック図。
【図２】組み込み機器１がシステムＬＳＩ１０００によって音楽データを安全に再生する処理を示すフローチャート。
【図３】システムＬＳＩ１０００が省電力モードと通常電力モードとの切り替えを制御する処理の概要を示すフローチャート。
【図４】ＣＰＵ１１０がセキュア記憶部１０３に記憶されているデータを外部メモリ５０１に安全に退避させる処理を示すフローチャート。
【図５】外部メモリ５０１に退避されているデータをＣＰＵ１１０がセキュア記憶部１０３に安全に再設定する処理を示すフローチャート。
【符号の説明】
【００５０】
１        組み込み機器
１０１    固有情報保持部
１０２    保護格納部
１０３    セキュア記憶部
１０４    退避指示部
１０５    復帰指示部
１０６    暗号処理部
１０７    認証子生成部
１０８    バス暗号回路
１０９    バス暗号鍵設定レジスタ
１１０    ＣＰＵ
１１１    内部バス
５０１    外部メモリ
５０２    バス暗号領域
５０３    電源Ａ
５０４    電源Ｂ
１０００  システムＬＳＩ
【発明を実施するための最良の形態】
【００５１】
１．１  概要
以下、本発明のセキュア処理装置について、実施の一形態を説明する。
１．１．１  セキュア処理装置の概要
本実施形態では、セキュア処理装置がシステムＬＳＩ１０００の場合を想定して説明する。また、システムＬＳＩ１０００は、組み込み機器１に含まれているとする。システムＬＳＩ１０００は、少なくとも、秘匿すべき保護データにかかる処理を行う構成要素については、外部からの不正なアクセスを防止する機構が設けられている。【００５２】
１．１．２  組み込み機器１の概要
なお、組み込み機器１は、具体的には、例えば、音楽データ等の再生が可能な携帯機器である。組み込み機器１は、MP3（MPEG-1 Audio Layer-3）、AAC（Advanced Audio Coding）、WMA（Windows（登録商標） Media Audio）などの音声ファイルフォーマットの音楽データを再生する。音楽データは、SDメモリカード等の外部のフラッシュメモリに記憶されている。【００５３】
著作権保護に配慮した音楽データの利用を可能にするために、組み込み機器１は、SD-Audioに対応している。SD-Audioとは、SDメモリカードに著作権保護を施して音楽データを記録するSD応用規格（application format）である。
著作権保護を実現するため、SDメモリカードに記録されている音楽データは、暗号化されている。暗号化された音楽データを再生するには、音楽データを復号する必要がある。復号化された音楽データは、不正に複製等されないようにする必要があるので、組み込み機器１は、システムＬＳＩ１０００によって当該音楽データの再生処理を安全に行う。【００５４】
１．１．３  システムＬＳＩ１０００の概要
システムＬＳＩ１０００は、秘匿すべき保護データを用いた処理を行うためのセキュア記憶部１０３を有している。
また、システムＬＳＩ１０００は、通常電力モードと省電力モードとを切り換えて動作する。【００５５】
省電力モードで動作している間、システムＬＳＩ１０００においては、セキュア記憶部１０３には電力が供給されず、記憶内容が消失する。そのため、システムＬＳＩ１０００は、省電力モードへ移行する際に、セキュア記憶部１０３のデータを、システムＬＳＩ１０００の外部にある外部メモリ５０１に退避させる。また、システムＬＳＩ１０００は、省電力モードから通常電力モードへ復帰する際に、外部メモリ５０１に退避させたデータを、セキュア記憶部１０３に安全に再設定する。【００５６】
以下、セキュア記憶部１０３のデータを外部メモリ５０１に安全に退避させ、また、外部メモリ５０１に退避させたデータをセキュア記憶部１０３に安全に再設定することを特徴とする本発明のセキュア処理装置の一例であるシステムＬＳＩ１０００について、具体的に説明する。
１．２  構成
まず、組み込み機器１およびシステムＬＳＩ１０００の構成を具体的に説明する。【００５７】
図１は、組み込み機器１のハードウェア構成を示す機能ブロック図である。
図１に示すように、組み込み機器１は、システムＬＳＩ１０００と、外部メモリ５０１と、バス暗号領域５０２と、電源Ａ５０３と、電源Ｂ５０４とを含む。
１．２．１  システムＬＳＩ１０００
システムＬＳＩ１０００は、固有情報保持部１０１と、保護格納部１０２と、セキュア記憶部１０３と、退避指示部１０４と、復帰指示部１０５と、暗号処理部１０６と、認証子生成部１０７と、バス暗号回路１０８と、バス暗号鍵設定レジスタ１０９と、ＣＰＵ１１０とからなるハードウェア構成を含む。システムＬＳＩ１０００の各構成要素は、内部バス１１１によってそれぞれ接続されている。【００５８】
上述のシステムＬＳＩ１０００の各構成要素は、システムＬＳＩ１０００の内部に含まれており、システムＬＳＩ１０００の外部からの不正アクセスを防止する機構を有している。
１．２．２  外部メモリ５０１
外部メモリ５０１は、システムＬＳＩ１０００の外部に設けられた揮発性のメモリであり、著作権保護やセキュリティ面から見て重要度の低いデータと、システムＬＳＩ１０００から退避させるデータとを記憶する。【００５９】
外部メモリ５０１は不正アクセスを防止する機構を有しておらず、外部メモリ５０１に記憶されているデータは、さまざまな機器からアクセスされうる。また、外部メモリ５０１は、図示するように、電源Ａ５０３と接続されている。組み込み機器１が動作している間、外部メモリ５０１には電源Ａ５０３から電力が供給されている。そのため、組み込み機器１が動作している間、外部メモリ５０１の記憶内容は消失しない。【００６０】
外部メモリ５０１が記憶するデータ等を具体的に説明すると、図示するように、外部メモリ５０１は、通常プログラム２０５や、暗号化された退避データ２０６などを記憶する。
通常プログラム２０５は、例えば、組み込み機器１全体の処理を制御するためのプログラムであり、ＣＰＵ１１０により随時参照され、実行される。暗号化された退避データ２０６は、システムＬＳＩ１０００が省電力モードへ移行する際に、システムＬＳＩ１０００から外部メモリ５０１へと退避させるデータである。このデータは、システムＬＳＩ１０００の暗号処理部１０６により暗号化されている。外部メモリ５０１には、これら以外にも、通常プログラム２０５などが処理のために用いるデータ等を記憶する。【００６１】
なお、通常プログラム２０５は、著作権保護を要する音楽データ等と比べると、セキュリティ面から見た場合にそれほど重要ではなく、また、組み込み機器１全体の動作を制御するものであるため比較的データサイズが大きい。そのため、セキュア記憶部１０３ではなく外部メモリ５０１において記憶することとする。
なお、暗号化された退避データ２０６は、より高いセキュリティを確保するためには、システムＬＳＩ１０００が省電力モードから通常電力モードへと復帰した後、速やかに外部メモリ５０１から削除されることが望ましい。【００６２】
１．２．３  バス暗号領域５０２
バス暗号領域５０２は、システムＬＳＩ１０００の外部に設けられた揮発性のメモリであり、著作権保護やセキュリティ面から見て重要度の高いデータが記憶される。図示するように、バス暗号領域５０２は、電源Ａ５０３と接続され、電源Ａ５０３から電力が供給されている。そのため、組み込み機器１が動作している間、バス暗号領域５０２の記憶内容は消失しない。【００６３】
バス暗号領域５０２は、セキュア記憶部１０３の記憶容量が十分でない等の問題により、システムＬＳＩ１０００のセキュア記憶部１０３に格納しきれないデータをシステムＬＳＩ１０００の外部で安全に保持するために用いられる。なお、バス暗号領域５０２は、さまざまな機器からアクセスされうるため、バス暗号領域５０２には、安全にデータが保持されるようにするため、バス暗号回路１０８により暗号化されたデータが記憶される。バス暗号回路１０８が暗号化に用いる鍵を、バス暗号鍵と言う。【００６４】
本実施形態では、バス暗号領域５０２には、図示するように、セキュアアプリ２０７などが記憶される。セキュアアプリ２０７は、バス暗号回路１０８により暗号化されている。セキュアアプリ２０７は、著作権保護を実現するためのプログラムであり、具体的には、音楽データの権利情報を用いた処理や音楽データを復号するための復号鍵を用いた処理などを安全に行うためのものである。【００６５】
バス暗号領域５０２に保持されているセキュアアプリ２０７は、ＣＰＵ１１０により読み出され、バス暗号回路１０８でバス暗号鍵を用いて復号化がなされる。ＣＰＵ１１０は、復号化処理がなされたプログラムを実行して上述の著作権保護を実現するための処理を行う。
１．２．４  電源Ａ５０３
電源Ａ５０３は、図示するように、外部メモリ５０１、バス暗号領域５０２、システムＬＳＩ１０００内部の保護格納部１０２に電力を供給し続ける電源である。電池等として実装される。電源Ａ５０３は、システムＬＳＩ１０００が省電力モードであれ通常電力モードであれ、上述の外部メモリ５０１、バス暗号領域５０２、保護格納部１０２に電力を供給する。【００６６】
１．２．５  電源Ｂ５０４
電源Ｂ５０４は、図示するように、システムＬＳＩ１０００に電力を供給する電源である。ただし、電源Ｂ５０４は、システムＬＳＩ１０００が通常電力モードで動作している場合にのみ電力を供給し、システムＬＳＩ１０００が省電力モードである場合には電力を供給しない電源である。電源Ｂ５０４は、組み込み機器１の外部バッテリー等として実装される。【００６７】
なお、電源Ａ５０３は、システムＬＳＩ１０００が省電力モード時において、所定のデータを保持するためにメモリ等に電力を供給するものである。ＣＰＵ１１０等を含み、プログラム等を実行するシステムＬＳＩ１０００に電力を供給する電源Ｂ５０４と比べると、電源Ａ５０３がメモリ等に供給するのに必要な電力は少なくて済む。そのため、電源Ａ５０３は、一般的には電源Ｂ５０４より小容量の電源であり、例えばコンデンサなどの、着脱不可のバッテリーとして実装される。【００６８】
１．２．６  固有情報保持部１０１
次に、システムＬＳＩ１０００の内部に含まれる各構成要素について説明する。
固有情報保持部１０１は、システムＬＳＩ１０００に固有の固有情報を記憶する。固有情報とは、例えばシステムＬＳＩ１０００を識別するための識別子（ＩＤ）などである。
固有情報がシステムＬＳＩ１０００に固有であることを利用した処理を行う場合を考慮して、固有情報保持部１０１は、記憶している固有情報が消去されたり書き換えられたりされるのが困難となるような実装で実現されることが望ましい。例えば、固有情報保持部１０１は、マスクＲＯＭ（Read Only Memory）やヒューズである。【００６９】
１．２．７  保護格納部１０２
保護格納部１０２は、認証子を格納するための認証子格納領域２０１を有し、後述する認証子生成部１０７が生成する認証子を、認証子格納領域２０１において格納する。認証子については、認証子生成部１０７とともに後述する。
保護格納部１０２は、例えば揮発性のメモリであり、図示するように、電源Ａ５０３と接続されている。電源Ａ５０３から電力の供給を受けているので、システムＬＳＩ１０００が省電力モードであるか否かにかかわらず、記憶内容が消失しない。また、保護格納部１０２は、セキュア記憶部１０３またはバス暗号領域５０２に格納されたプログラムに含まれる命令コードでのみアクセス可能な領域であり、外部からの不正なアクセスから保護されている。【００７０】
認証子のデータサイズは、セキュア記憶部１０３に記憶されているデータのデータサイズよりも小さいので、後述するセキュア記憶部１０３と比較して、保護格納部１０２は、記憶容量が少ない。例えば、セキュア記憶部１０３の1/1000〜1/100程度の記憶容量を有している。そのため、セキュア記憶部１０３と比較して、必要なメモリ領域が少ない。
１．２．８  セキュア記憶部１０３
セキュア記憶部１０３は、秘匿すべき保護データの処理等をＣＰＵ１１０が行うために用いられるメモリである。【００７１】
セキュア記憶部１０３は、揮発性のメモリであり、システムＬＳＩ１０００の外部からアクセスすることができないハードウェア構成を有している。
このようなハードウェア構成は、例えば、通常モードとセキュアモードとを切り換えて動作するＣＰＵ１１０と、セキュア記憶部１０３とで実現できる。詳細に説明すると、セキュア記憶部１０３は、物理的に分離されたメモリ空間であり、システムＬＳＩ１０００の外部からアクセスできず、セキュアモードで動作しているＣＰＵ１１０のみがアクセス可能である、という構成にすることでこのようなハードウェア構成を実現できる。【００７２】
なお、本実施形態では、機密性が保証されるべきデータが、セキュア記憶部１０３に記憶される。これらのデータが暴露されるとデータの権利者等の不利益になるためである。具体的には、同図に示すように、セキュア記憶部１０３には、セキュアなプログラム２０２、セキュアなデータ２０３、バス暗号鍵２０４が記憶される。
ここで、セキュアなプログラム２０２は、システムＬＳＩ１０００の処理を制御するプログラムである。例えば、著作権管理がなされている音楽データを復号化して再生するためのプログラムや、システムＬＳＩ１０００が省電力モードへ移行するときに、セキュア記憶部１０３に記憶されているデータを外部メモリ５０１に退避させる処理を実行するためのプログラムなどがセキュアなプログラム２０２に含まれる。なお、セキュアなプログラム２０２のうち、省電力モード移行時にセキュア記憶部１０３に記憶されているデータを外部メモリ５０１に退避させる処理を実行するためのプログラムは、予めシステムＬＳＩ１０００内部の不揮発性のROM（Read Only Memory）に格納されていることとする。そして、システムＬＳＩ１０００が動作を開始したときに、ROMから読み出されてセキュア記憶部１０３にセキュアなプログラム２０２として記憶されることとする。なお、このROMは、システムＬＳＩ１０００の内部に含まれるため、システムＬＳＩ１０００の外部からの不正アクセスから保護されている。また、セキュアなデータ２０３は、例えば、暗号化のなされていない音楽データである。【００７３】
セキュアなプログラム２０２が暴露されると、プログラムが改ざんされて、音楽データの再生回数の制限が無効にされる等の不正な処理が可能なプログラムが作成されるおそれがある。また、セキュアなデータ２０３が暴露されると、不正に複製がなされうる。そのため、これらプログラムやデータは、機密性が保証されるべきものであるといえる。
なお、バス暗号鍵２０４については、バス暗号回路１０８およびバス暗号鍵設定レジスタ１０９とともに詳しく説明する。【００７４】
上述の通り、セキュア記憶部１０３は、外部からアクセスすることができないハードウェア構成を有しているため、セキュア記憶部１０３に記憶されるデータは、機密性が保証される。また、固有情報保持部１０１、保護格納部１０２も、上述のセキュア記憶部１０３と同様のハードウェア構成を有し、外部からアクセスすることができない。
また、セキュア記憶部１０３は、システムＬＳＩ１０００が省電力モードで動作している間、電力が供給されず、記憶内容が消失する。【００７５】
１．２．９  退避指示部１０４
退避指示部１０４は、システムＬＳＩ１０００が通常電力モードから省電力モードに移行すべきであることを検知する。検知すると、セキュア記憶部１０３に記憶されているデータを外部メモリ５０１に退避させる指示を、ＣＰＵ１１０に通知する。
なお、組み込み機器１は、図示しない操作部材がユーザにより押下されたり、操作指示を示す信号を受信したりすることで、ユーザの操作がなされたと検出する検出機構を有している。組み込み機器１は、システムＬＳＩ１０００が通常電力モードにより動作している時においては、ユーザの操作が所定時間以上検出されないと、システムＬＳＩ１０００を省電力モードに移行させる。また、組み込み機器１は、システムＬＳＩ１０００が省電力モードにより動作している時においては、ユーザの操作を検出することでシステムＬＳＩ１０００を通常電力モードへと復帰させる。【００７６】
詳細に説明すると、システムＬＳＩ１０００が通常電力モードの時において、上記検出機構が所定時間以上ユーザの操作を検出しなかったとき、組み込み機器１は、システムＬＳＩ１０００を省電力モードへ移行させるための移行制御信号を退避指示部１０４へ出力する。退避指示部１０４は、この移行制御信号を受け付けることで、システムＬＳＩ１０００が通常電力モードから省電力モードへ移行すべきことを検知する。【００７７】
また、組み込み機器１は、システムＬＳＩ１０００が省電力モードで動作している時に、上記検出機構によりユーザの操作を受け付けると、システムＬＳＩ１０００を通常電力モードへと復帰させるために、電源Ｂ５０４からシステムＬＳＩ１０００への電力の供給を再開する。システムＬＳＩ１０００への電力の供給が再開されると、組み込み機器１は、復帰指示部１０５に対して、復帰制御信号を出力する。【００７８】
１．２．１０  復帰指示部１０５
復帰指示部１０５は、復帰制御信号を受け付けることで、システムＬＳＩ１０００が省電力モードから通常電力モードへと復帰すべきであることを検知する。検知すると、外部メモリ５０１に退避されているデータをセキュア記憶部１０３に安全に再設定させる処理の実行をＣＰＵ１１０に指示する。【００７９】
詳細に説明すると、システムＬＳＩ１０００は、外部メモリ５０１に退避されているデータをセキュア記憶部１０３に安全に再設定するための復帰プログラムを記憶している。この復帰プログラムは、例えばシステムＬＳＩ１０００の外部からの不正アクセスを防止する機構を有している不揮発性メモリに記憶されており、システムＬＳＩ１０００が省電力モードにより動作している間も消失しない。【００８０】
システムＬＳＩ１０００を通常電力モードへと復帰させるために、電源Ｂ５０４からシステムＬＳＩ１０００への電力の供給が再開され、復帰指示部１０５が復帰制御信号を受け付けると、復帰指示部１０５は、上記復帰プログラムをメモリから読み出し、読み出した復帰プログラムをセキュア記憶部１０３に記憶させる。そして、復帰指示部１０５は、ＣＰＵ１１０に、セキュア記憶部１０３に記憶されている復帰プログラムの実行を開始するよう指示する。【００８１】
なお、外部メモリ５０１に退避されているデータをセキュア記憶部１０３に安全に再設定させる処理については、後述する。また、上記復帰プログラムは、不正な改ざんから保護されていることが望ましい。改ざん等がなされると、例えば一部の認証等の処理が省略され、外部メモリ５０１に退避されているデータをセキュア記憶部１０３に再設定する処理が安全に行われなくなる可能性があるためである。【００８２】
１．２．１１  暗号処理部１０６
暗号処理部１０６は、ＣＰＵ１１０の指示に従って、入力されたデータやプログラムの暗号化処理、および、復号化処理を行う。暗号処理部１０６は、システムＬＳＩ１０００の外部からの不正アクセスを防止する機構を有している。そのため、暗号処理部１０６が暗号化処理または復号化処理を行うための鍵や、暗号化または復号化処理中の中間データなどをシステムＬＳＩ１０００の外部の不正者が不正に取得することはできない。【００８３】
なお、暗号化や復号化に用いるアルゴリズムとしては、共通鍵方式のAES（Advanced Encryption Standard）や、公開鍵方式のRSA（Rivest Shamir Adleman）などが一例として挙げられるが、これらに限られない。
１．２．１２  認証子生成部１０７
認証子生成部１０７は、ＣＰＵ１１０の指示に従って、入力されたデータやプログラムから、認証子を生成する。ここで、認証子とは、入力されたデータやプログラムを要約した値である。【００８４】
認証子は、システムＬＳＩ１０００の省電力モード移行時に外部メモリ５０１に退避させるデータと、通常電力モードへの復帰時にセキュア記憶部１０３に再設定するデータとが同一であるかを判断するために用いられる。
そのため、認証子生成部１０７は、少なくとも、入力されたデータやプログラムに依存した値、望ましくは、一意に求まる値を生成すべきである。また、外部メモリ５０１に退避させたデータが改ざん等されていないことを保証するために、認証子生成部１０７は、あるデータと認証子の値が等しい別のデータが容易に生成できないような方法で認証子を生成することが望ましい。さらに、似たデータから近い値の認証子が生成されないこと、また、生成される認証子の値に偏りがないことが望ましい。【００８５】
そのため、本実施形態では、認証子生成部１０７は、入力されたデータやプログラムのハッシュ値を計算し、計算されたハッシュ値を認証子としている。ハッシュ値計算のアルゴリズムは、例えばSHA-1などを用いることとするが、これに限らない。
１．２．１３  バス暗号回路１０８
バス暗号回路１０８は、バス暗号鍵設定レジスタ１０９を含んでいる。バス暗号鍵設定レジスタ１０９は、バス暗号鍵を格納するレジスタである。バス暗号鍵は、ＣＰＵ１１０が、セキュア記憶部１０３に記憶されているセキュアなプログラム２０２を実行することにより決定される。バス暗号回路１０８は、バス暗号領域５０２に書き込むプログラム等を、まず、バス暗号鍵設定レジスタ１０９に設定されたバス暗号鍵を用いて暗号化する。暗号化した後、バス暗号領域５０２にセキュアアプリ２０７などとして記憶させる。また、バス暗号回路１０８は、バス暗号領域５０２に保持されている暗号化されたプログラムやデータを読み出して、バス暗号鍵を用いて復号化する。【００８６】
なお、バス暗号領域５０２には、暗号化されたデータが格納されているが、バス暗号領域５０２は、さまざまな機器からアクセスされうるため、暗号化に用いたバス暗号鍵が固定だと、バス暗号領域５０２に記憶されているデータが解析等されることにより、暗号化に用いているバス暗号鍵が暴露されるおそれがある。そのため、バス暗号鍵は、随時変更されることが望ましい。バス暗号鍵が変更されると、バス暗号回路１０８は、バス暗号鍵設定レジスタ１０９の記憶内容を更新する。【００８７】
また、バス暗号鍵設定レジスタ１０９に保持されているバス暗号鍵は、セキュア記憶部１０３においてもバス暗号鍵２０４として記憶される。バス暗号鍵が変更されるたびに、変更後のバス暗号鍵が、バス暗号鍵設定レジスタ１０９とセキュア記憶部１０３に上書きされる。
なお、バス暗号鍵変更のタイミングとしては、例えば組み込み機器１に電源が投入された時や、セキュアなプログラム２０２が動作を開始した時など様々なものが考えられる。このとき、セキュアなプログラム２０２の初期動作として、セキュアなプログラム２０２の実行開始時刻等を用いて鍵を生成するなどとすればよい。【００８８】
また、バス暗号回路１０８や、バス暗号鍵を格納しているバス暗号鍵設定レジスタ１０９等は、システムＬＳＩ１０００の内部に含まれ、システムＬＳＩ１０００の外部から不正アクセスできない。バス暗号領域５０２に記憶されている暗号化されたデータは、システムＬＳＩ１０００によって読み出され、システムＬＳＩ１０００の内部でしか復号化できないため、復号化後のデータはシステムＬＳＩ１０００のみが利用することができる。【００８９】
１．２．１４  ＣＰＵ１１０
ＣＰＵ１１０は、セキュア記憶部１０３やバス暗号領域５０２や外部メモリ５０１などに記憶されているプログラムに従って、システムＬＳＩ１０００の動作を制御する。
ＣＰＵ１１０は、動作モードとして通常モードとセキュアモードとを備え、通常モードとセキュアモードとを切り換えて動作する。セキュアモードで動作している時に限り、ＣＰＵ１１０は、セキュア記憶部１０３や保護格納部１０２や固有情報保持部１０１などのシステムＬＳＩ１０００内部のメモリへアクセスできる。また、セキュアモードで動作している時に限り、暗号処理部１０６やバス暗号回路１０８を用いて、機密性が保証されるべきデータに関する処理を行う。つまり、システムＬＳＩ１０００では、機密性が保証されるべきデータを用いた処理が行われる際に、システムＬＳＩ１０００内部の各構成要素にアクセス可能な主体および時期を、ＣＰＵ１１０がセキュアモードで動作している時に限定している。こうすることで、システムＬＳＩ１０００は、外部からの不正アクセスを防止する。
例えば、ＣＰＵ１１０は、動作モードをセキュアモードに切り換えてから、暗号化された音楽データをSDメモリカードから読み出して復号化し、再生する処理や、省電力モードへの移行時にセキュア記憶部１０３のデータ等を外部メモリ５０１に安全に退避させる処理や、通常電力モードへの復帰時に、外部メモリ５０１に退避させたデータをセキュア記憶部１０３に安全に再設定する処理などを行う。【００９０】
１．２．１５  内部バス１１１
内部バス１１１は、図示するように、システムＬＳＩ１０００内部の各構成要素を互いに接続する。
１．２．１６  その他の構成要素
なお、組み込み機器１には、ユーザの操作を受け付ける操作受付部や、SDメモリカード等のフラッシュメモリを着脱できるようにするためのインタフェース等を備えるが、本発明の特徴部分ではないので、図１には図示せず、説明を省略する。【００９１】
１．３  動作
次に、本発明のセキュア処理装置の動作を説明する。
まず、システムＬＳＩ１０００が音楽データを安全に再生する処理を「１．３．１  音楽データの再生処理」で説明する。
次に、システムＬＳＩ１０００が、省電力モードへの移行時にセキュア記憶部１０３に記憶されているデータ等を外部メモリ５０１に安全に退避させる処理と、通常電力モードへの復帰時に外部メモリ５０１に退避させたデータを安全にセキュア記憶部１０３に再設定する処理とを、「１．３．２  電力モード切り替え時の処理」「１．３．３  退避時の処理」「１．３．４  復帰時の処理」で説明する。【００９２】
１．３．１  音楽データの再生処理
以下、組み込み機器１がシステムＬＳＩ１０００によって音楽データを安全に再生する処理を説明する。なお、音楽データは、暗号化処理がされており、SDメモリカードに記憶されているものとする。
また、システムＬＳＩ１０００は、バス暗号領域５０２に記憶されているセキュアアプリ２０７によって、SDメモリカードから音楽データを取得する。また、セキュアなプログラム２０２によって、音楽データの復号化を行い、復号化された音楽データをセキュア記憶部１０３に記憶させることとする。また、セキュア記憶部１０３に記憶される音楽データの再生も、セキュアなプログラム２０２によって行うこととする。【００９３】
以下、具体的に説明すると、組み込み機器１は、ユーザから音楽データの再生を指示する操作を受け付けると、システムＬＳＩ１０００により音楽データの再生処理を開始する。
図２は、組み込み機器１がシステムＬＳＩ１０００によって音楽データを安全に再生する処理を示すフローチャートである。【００９４】
図２に示すように、システムＬＳＩ１０００のＣＰＵ１１０は、バス暗号領域５０２に記憶されているセキュアアプリ２０７を実行することにより、組み込み機器１に接続されたSDメモリカードから、暗号化された音楽データを取得する（ステップＳ２０１）。
ＣＰＵ１１０は、セキュア記憶部１０３からセキュアなプログラム２０２を読み出す。ＣＰＵ１１０は、セキュアなプログラム２０２を実行することで、暗号化された音楽データを復号するための復号鍵を算出する。算出された復号鍵を用いて、暗号化された音楽データを復号化する（ステップＳ２０２）。なお、音楽データ等の、暗号化されたコンテンツを復号するための復号鍵の算出方法は、従来から広く用いられており、本発明の特徴部分ではないため詳細な説明を省略する。【００９５】
ＣＰＵ１１０は、セキュアなプログラム２０２を実行することにより復号化された音楽データを、セキュア記憶部１０３に記憶させる（ステップＳ２０３）。
ＣＰＵ１１０は、セキュア記憶部１０３に記憶されている復号化された平文音楽データを再生する（ステップＳ２０４）。
ＣＰＵ１１０は、全ての音楽データをSDメモリカードから取得したか否かを判断し（ステップＳ２０５）、取得したのであれば（ステップＳ２０５：ＹＥＳ）、処理を終了し、取得したのでなければ（ステップＳ２０５：ＮＯ）、ステップＳ２０１の処理に戻って、音楽データの取得、復号化、再生処理を繰り返し行う（ステップＳ２０１、Ｓ２０２、Ｓ２０３、Ｓ２０４）。【００９６】
１．３．２  電力モード切り替え時の処理
図３は、システムＬＳＩ１０００が省電力モードと通常電力モードとの切り替えを制御する処理の概要を示すフローチャートである。
組み込み機器１が動作を開始し、システムＬＳＩ１０００が起動すると（ステップＳ３０１）、システムＬＳＩ１０００は、まず、通常電力モードで動作を開始する。【００９７】
動作を開始すると、システムＬＳＩ１０００のＣＰＵ１１０は、省電力モード移行時にセキュア記憶部１０３に記憶されているデータを外部メモリ５０１に退避させる処理を実行するためのプログラムを、セキュアなプログラム２０２としてセキュア記憶部１０３に記憶させる。
システムＬＳＩ１０００は、省電力モードに移行すべきことを退避指示部１０４によって検知するまで（ステップＳ３０２：ＮＯ）、通常電力モードで動作する。【００９８】
省電力モードへ移行すべきことを退避指示部１０４が検知すると（ステップＳ３０２：ＹＥＳ）、セキュア記憶部１０３に記憶されているデータを外部メモリ５０１に退避させる指示が、退避指示部１０４からＣＰＵ１１０へ通知される。
ＣＰＵ１１０は、退避指示部１０４から上記通知を受け付けると、セキュアなプログラム２０２を実行することにより、セキュア記憶部１０３に記憶されているデータを外部メモリ５０１に安全に退避させる処理を行う（ステップＳ３０３）。このステップＳ３０３の処理を、退避時の処理と呼ぶこととする。退避時の処理の詳細は、「１．３．３  退避時の処理」で説明する。退避時の処理が実行された後、システムＬＳＩ１０００は、省電力モードにより動作する。【００９９】
システムＬＳＩ１０００は、省電力モードにより動作している間、通常電力モードへと復帰すべきであることを復帰指示部１０５によって検知するまで（ステップＳ３０４：ＮＯ）、省電力モードで動作する。
通常電力モードへ復帰すべきであることを復帰指示部１０５が検知すると（ステップＳ３０４：ＹＥＳ）、復帰指示部１０５は、外部メモリ５０１に退避されているデータをセキュア記憶部１０３に安全に再設定するための復帰プログラムをシステムＬＳＩ１０００内の不揮発性メモリから読み出して、セキュア記憶部１０３に記憶させる。復帰指示部１０５は、セキュア記憶部１０３に記憶された上記復帰プログラムの実行をＣＰＵ１１０に指示する。【０１００】
ＣＰＵ１１０は、復帰指示部１０５からの指示を受け付けて、上記復帰プログラムを実行することにより、外部メモリ５０１に退避されているデータをセキュア記憶部１０３に安全に再設定する処理を実行する（ステップＳ３０５）。このステップＳ３０５の処理を、復帰時の処理と呼ぶこととする。復帰時の処理の詳細は、「１．３．４  復帰時の処理」で説明する。復帰時の処理が実行された後、システムＬＳＩ１０００は、通常電力モードで動作し、ステップＳ３０２の処理を行う。【０１０１】
１．３．３  退避時の処理
ステップＳ３０３の、退避時の処理を、詳しく説明する。
図４は、ＣＰＵ１１０がセキュア記憶部１０３に記憶されているデータを外部メモリ５０１に安全に退避させる処理を示すフローチャートである。
以下、ＣＰＵ１１０が退避指示部１０４から通知を受け付けた後の処理について説明する。【０１０２】
ＣＰＵ１１０は、まず、セキュア記憶部１０３に記憶されているセキュアなプログラム２０２やセキュアなデータ２０３やバス暗号鍵２０４など、記憶内容の全てを入力データとして、認証子生成部１０７にハッシュ値を計算させる（ステップＳ４０１）。
計算により得られたハッシュ値を保護格納部１０２の認証子格納領域２０１に格納する（ステップＳ４０２）。【０１０３】
ＣＰＵ１１０は、セキュア記憶部１０３に記憶されている全ての記憶内容を、固有情報保持部１０１に記憶されている固有情報を暗号鍵として用いて暗号処理部１０６に暗号化させる（ステップＳ４０３）。
暗号化が完了したデータを、暗号化された退避データ２０６として外部メモリ５０１に記憶させる（ステップＳ４０４）。【０１０４】
ステップＳ４０４の処理が完了した後、ＣＰＵ１１０は、電源Ｂ５０４の電力供給を停止する（ステップＳ４０５）。こうすることで、システムＬＳＩ１０００への電力供給が停止して、退避時の処理が完了する。
１．３．４  復帰時の処理
ステップＳ３０５の、復帰時の処理を、詳しく説明する。【０１０５】
図５は、外部メモリ５０１に退避されているデータをＣＰＵ１１０がセキュア記憶部１０３に安全に再設定する処理を示すフローチャートである。
以下、ステップＳ３０４の処理、つまりシステムＬＳＩ１０００が通常電力モードへ復帰すべきことを復帰指示部１０５が検知した後の処理について説明する。なお、退避指示部１０４の説明で上述したように、復帰指示部１０５が検知を行う時には、組み込み機器１により、電源Ｂ５０４からシステムＬＳＩ１０００への電力の供給が再開されている。【０１０６】
まず、復帰指示部１０５は、検知を行うと、復帰指示部１０５の説明で上述したように、復帰プログラムをメモリから読み出し、読み出した復帰プログラムをセキュア記憶部１０３に記憶させる（ステップＳ５０１）。復帰指示部１０５は、ＣＰＵ１１０に、復帰プログラムの実行を開始ずるよう指示する。
ＣＰＵ１１０は、復帰指示部１０５からの指示を受け付けて、復帰プログラムを実行する。以下、復帰プログラムによる処理を説明すると、まず、ＣＰＵ１１０は、外部メモリ５０１に退避させた、暗号化された退避データ２０６を読み出す。読み出しを終えると、暗号化された退避データ２０６を、固有情報保持部１０１に記憶されている固有情報を復号鍵として用いて暗号処理部１０６に復号化させる（ステップＳ５０２）。【０１０７】
復号化により得られたデータを入力データとして、認証子生成部１０７にハッシュ値を計算させる（ステップＳ５０３）。
ＣＰＵ１１０は、計算により得られたハッシュ値を、保護格納部１０２の認証子格納領域２０１に格納されているハッシュ値とを比較して、ハッシュ値が一致するか判断する（ステップＳ５０４）。【０１０８】
判断の結果、ハッシュ値が一致する場合は（ステップＳ５０４：ＹＥＳ）、ＣＰＵ１１０は、復帰時の処理を正常終了する（ステップＳ５０５）。
判断の結果、ハッシュ値が異なる場合は（ステップＳ５０４：ＮＯ）、暗号化された退避データ２０６が改ざんされていると推定できるため、ＣＰＵ１１０は復帰時の処理を異常終了する（ステップＳ５０６）。このとき、ステップＳ５０２において復号化されたデータを破棄する。【０１０９】
１．３．５  動作についての補足説明
（１）バス暗号鍵についての補足説明
上述の実施例では、バス暗号鍵設定レジスタ１０９に格納されているバス暗号鍵を、セキュア記憶部１０３においても記憶している。システムＬＳＩ１０００が省電力モードに移行する際には、セキュア記憶部１０３に記憶されているバス暗号鍵２０４も暗号化されて外部メモリ５０１に退避される。【０１１０】
ここで、バス暗号鍵についても退避させる点について、補足説明する。
バス暗号領域５０２のデータは、上述のように、バス暗号鍵を鍵として用いて暗号化されている。また、上述のように、バス暗号鍵は、随時、変更されることが望ましい。
ここで、バス暗号鍵を随時変更することとする。そうすると、システムＬＳＩ１０００が省電力モードへ移行する際に、バス暗号鍵が消失すると、通常電力モードに復帰した後、もともと用いていたバス暗号鍵が得られなくなり、バス暗号領域５０２のデータを利用できなくなる。そのため、通常電力モードに復帰した後、バス暗号領域５０２のデータを用いた処理を継続して行うには、バス暗号領域５０２に、再度、データを記憶させる等の処理が必要となる。つまり、省電力モードと通常電力モードとが切り換わる前後において、バス暗号領域５０２のデータを用いた処理を連続して実行できず、終了させるより他ないという問題がある。【０１１１】
そこで、上述の実施形態のように、バス暗号鍵をも退避させておくと、省電力モードと通常電力モードとが切り換わっても、バス暗号領域５０２のデータを用いた処理を連続して実行することができる。
また、バス暗号鍵は、セキュア記憶部１０３においても記憶されているが、必ずしもセキュア記憶部１０３に記憶させておく必要はない。省電力モードへの移行時に、バス暗号鍵設定レジスタ１０９から読み出せば、バス暗号鍵を退避させることができる。【０１１２】
ただし、セキュア記憶部１０３にバス暗号鍵２０４として記憶させておくと、省電力モードへ移行する際に、バス暗号鍵設定レジスタ１０９からバス暗号鍵を読み出さなくてもよいため、外部メモリ５０１へのデータの退避を高速で行えるという利点がある。
したがって、データを退避させる処理を行いつつシステムＬＳＩ１０００への供給電力が低下するような場合などにおいて、データの退避が完了する前に電力の供給が停止してデータを消失してしまうなどの危険を低くすることができる。【０１１３】
また、上述の実施形態では、バス暗号回路１０８は１つとして説明してきたが、バス暗号領域５０２においてセキュアアプリ２０７が複数記憶されている場合、それぞれのセキュアアプリ２０７ごとに異なる鍵を用いて暗号化や復号化を行うほうが、セキュリティの観点からは好ましい。ある鍵が解析等により暴露されても、その他の鍵を用いているセキュアアプリ２０７には影響がないからである。【０１１４】
すなわち、セキュアアプリ２０７のひとつひとつに、バス暗号回路１０８とバス暗号鍵設定レジスタ１０９との組が対応するよう、バス暗号回路１０８を複数備えることとしてもよい。あるいは、バス暗号鍵設定レジスタ１０９を複数備えることとしてもよい。
この場合、セキュア記憶部１０３に、複数のバス暗号鍵を、連続したメモリアドレスによってまとめて記憶させておくと、外部メモリ５０１へデータを退避させる際、複数のバス暗号鍵設定レジスタ１０９のそれぞれからバス暗号鍵を読み出すよりも高速でバス暗号鍵の退避を完了することができる。バス暗号鍵設定レジスタ１０９に格納されているバス暗号鍵は、システムＬＳＩ１０００から見た場合、仮想メモリ空間において、ばらばらに配置されており、バス暗号鍵を探索する必要があるからである。
（２）固有情報を用いて暗号化する点についての補足説明
上述の実施例では、システムＬＳＩ１０００に固有の固有情報を暗号鍵として用いて、外部メモリ５０１に退避させるデータの暗号化を行っている。【０１１５】
こうすると、システムＬＳＩ１０００のそれぞれにおいて固有情報が異なるので、それぞれのシステムＬＳＩ１０００で暗号化のために用いる暗号鍵が異なることになる。そのため、あるシステムＬＳＩ１０００で暗号化されたデータが、別のシステムＬＳＩ１０００では復号化されないようにすることができる。
（３）音楽データの再生処理についての補足説明
なお、図２に示した処理のうち、音楽データの再生を行うステップＳ２０１、ステップＳ２０２、ステップＳ２０３の処理は、システムＬＳＩ１０００の内部の構成要素、つまりシステムＬＳＩ１０００の外部からなされる不正アクセスから保護された構成要素でのみ行われる。そのため、音楽データの再生処理を安全に行うことができる。【０１１６】
また、暗号化された音楽データを復号化するための復号鍵は、音楽データとともにメモリカードに記録されていることとしてもよい。このとき、復号鍵は、不正に復号鍵が利用されるのを避けるため、暗号化されていることが望ましい。
１．３．６  動作の変形例
（１）ハッシュ値の計算タイミングの変形例
省電力モードへの移行時において、認証子生成部１０７がハッシュ値を計算するタイミングについて、上述の実施例では、セキュア記憶部１０３に記憶されているデータを暗号処理部１０６で暗号化する前にハッシュ値を計算することとしている。すなわち、平文のデータに基づいてハッシュ値を計算している。【０１１７】
この他にも、まず、セキュア記憶部１０３に記憶されている平文のデータを暗号処理部１０６で暗号化し、暗号化により得られたデータに基づいて、認証子生成部１０７によりハッシュ値を計算することとしてもよい。この場合、通常電力モードへの復帰時においては、ＣＰＵ１１０は、まず、暗号化された退避データ２０６を外部メモリ５０１から読み出す。次に、暗号化された退避データ２０６に基づいて、認証子生成部１０７によりハッシュ値を計算する。計算により得られたハッシュ値が、省電力モードへの移行時に算出したハッシュ値と同一であれば、暗号化された退避データ２０６を暗号処理部１０６で復号化してセキュア記憶部１０３に再設定し、復帰時の処理を正常終了する。ハッシュ値が同一でなければ、暗号化された退避データ２０６の復号化処理を行わずに異常終了する。【０１１８】
このような構成であると、暗号化された退避データ２０６が改ざんされたか否かを、処理の負荷が大きい復号化を実行する前に改ざん確認することができるので、改ざんチェックを迅速に行うことができる。
なお、上述の実施例で説明したように、平文のデータに基づいてハッシュ値を計算する方法にも利点はある。【０１１９】
上記変形例のように、暗号化したデータに基づいてハッシュ値を計算する場合、暗号化して外部メモリ５０１に書き出した直後から、暗号化したデータに基づいてハッシュ値を計算するまでの間に、外部メモリ５０１の暗号化データが改ざんされると、改ざんされたデータに基づいてハッシュ値が計算されることとなり、改ざんを検出できないおそれがある。特に、セキュア記憶部１０３の記憶容量が小さい場合、暗号化したデータをセキュア記憶部１０３に記憶させつつハッシュ値を計算する処理を行うことが困難な場合もありうる。【０１２０】
したがって、上記変形例の場合、暗号化したデータのハッシュ値を認証子格納領域２０１に格納するまで、外部メモリ５０１への書き出しを行わないことが望ましい。
これに対し、上述の実施例では、ハッシュ値の計算が完了して認証子格納領域２０１に格納するまでの処理がシステムＬＳＩ１０００の内部で行われるので、改ざんされたデータに基づいてハッシュ値を計算するような事態は発生しない。
（２）復帰時の処理が異常終了した場合
なお、復帰時の処理において、異常終了した場合（ステップＳ５０６）、システムＬＳＩ１０００の動作を停止することとしてもよいし、異常終了したことを示す情報を外部に通知したり表示したりしてもよい。【０１２１】
これにより、不正な改ざんがなされたことを、例えば著作権者等に通知することができる。このとき、システムＬＳＩ１０００の固有情報をあわせて外部に通知すると、著作権者等は、システムＬＳＩ１０００を含んでいる組み込み機器１を特定できる。その結果、不正な改ざんがなされた組み込み機器１に対して、コンテンツの再生禁止等の対策をとることができる。【０１２２】
また、この他にも、ステップＳ５０４において、ハッシュ値が一致しないと判断された場合（ステップＳ５０４：ＮＯ）、セキュア記憶部１０３をダミーデータで上書きして、セキュア記憶部１０３に記憶されているデータを完全に消去してもよい。さらに、外部メモリ５０１に暗号化された退避データ２０６が残っていれば、これも同様に消去するとしてもよい。【０１２３】
こうすることで、改ざんされたデータを組み込み機器１から完全に消去することができるので、過去に改ざんされたデータをＣＰＵ１１０が誤って再び実行するといった危険をなくすことができる。
なお、システムＬＳＩ１０００を通常電力モードへ復帰させた後において、外部メモリ５０１に、暗号化された退避データ２０６が残ったままであると、不正な解析者が外部メモリ５０１に残っている、暗号化された退避データ２０６を解析する可能性がある。そのため、ステップＳ５０４における判断の結果にかかわらず、ステップＳ５０４の処理の後、外部メモリ５０１の、暗号化された退避データ２０６を消去することとしてもよい。
（３）退避時の処理・復帰時の処理
上述の実施例では、退避時の処理は、ＣＰＵ１１０がセキュアなプログラム２０２を実行することにより行っている。また、復帰時の処理は、ＣＰＵ１１０が復帰プログラムを実行することにより行っている。【０１２４】
この他にも、例えば、退避指示部１０４や復帰指示部１０５がＣＰＵ１１０を介さずに直接にシステムＬＳＩ１０００の各構成要素を制御することとしてもよい。
また、退避指示部１０４や復帰指示部１０５の機能を、ＣＰＵ１１０が含んでいることとしてもよい。
すなわち、何らかの態様で上述の実施例のような退避時の処理や復帰時の処理を行う機能的構成がシステムＬＳＩ１０００に備わっていればよく、上述の実施例の構成に限られない。
（４）暗号化に使用する鍵
セキュア記憶部１０３の記憶内容を暗号化および復号化するための鍵は、システムＬＳＩ１０００に固有の固有情報でなくとも、複数のシステムＬＳＩ１０００のそれぞれに共通する鍵を用いて暗号化等を行ってもよい。【０１２５】
また、固有情報のデータ長が長い場合は、暗号化等の処理負荷が大きくなるため、ハッシュ値をとるなどしてデータ長を縮めた値を、鍵として用いてもよい。
また、固有情報保持部１０１に記憶されている固有情報でなくとも、セキュアなプログラム２０２が鍵を生成する処理を行ってもよいし、システムＬＳＩ１０００の外部から鍵を取得することとしてもよい。例えば、ユーザが入力するデータや、組み込み機器１内の別の領域に記憶されている、何らかの構成要素に固有の情報などを用いることが考えられる。このようにすると、固有情報を持たないシステムＬＳＩに対しても本発明を適用することが出来る。
（５）退避の対象
上記実施例では、セキュア記憶部１０３の全ての記憶内容を、外部メモリ５０１に退避させる対象としている。【０１２６】
この他にも、外部メモリ５０１に空き容量がない場合は、特に重要なデータなど、一部のデータのみを退避し、残りを破棄することとしてもよい。
また、セキュア記憶部１０３の記憶内容のすべてをひとまとめに暗号化したりハッシュ値を計算したりするのではなく、セキュアなプログラム２０２や、セキュアなデータ２０３や、バス暗号鍵２０４などを単位として別々に暗号化やハッシュ値を計算してもよい。この場合、通常電力モードへの復帰時に、それぞれのハッシュ値を用いて改ざん確認を行う必要があるため、ハッシュ値と退避にかかるデータを識別する情報とを対応付けて記憶しておく。【０１２７】
また、セキュア記憶部１０３の記憶内容に限らず、例えばシステムＬＳＩ１０００にあるレジスタの値についても、上述の退避時の処理や復帰時の処理により、外部メモリ５０１に退避させ、また、レジスタに再設定することとしてもよい。これにより、システムＬＳＩ１０００の動作状態を、より完全に外部メモリ５０１に退避させることができ、通常電力モードへの復帰時に、処理の再開を完全に行うことができる。
（６）退避先
上記実施例では、セキュア記憶部１０３の記憶内容を、外部メモリ５０１に退避させることとしている。【０１２８】
この他にも、何らかのセキュリティ対策が施されているメモリに退避させれば、より安全性が高まる。
また、退避させるデータを、外部メモリ５０１のみに限る必要はなく、一部のデータは外部メモリ５０１に退避させ、その他のデータはバス暗号領域５０２に退避させるなどとしてもよい。例えば、バス暗号鍵２０４と、バス暗号鍵設定レジスタ１０９にバス暗号鍵を設定するためのプログラムを外部メモリ５０１に退避させ、他のデータをバス暗号領域５０２に退避させる等とする。この場合、通常電力モードへの復帰時には、まず外部メモリ５０１からバス暗号鍵２０４をセキュア記憶部１０３に再設定する。次に、バス暗号鍵をバス暗号鍵設定レジスタ１０９に設定してから、バス暗号領域５０２に退避させていたデータをセキュア記憶部１０３に再設定する。【０１２９】
１．４  その他の変形例
（１）電源Ａ５０３、電源Ｂ５０４
電源Ａ５０３および電源Ｂ５０４について補足すると、上述の構成に限らず、電源Ａ５０３と電源Ｂ５０４が同一電源であり、システムＬＳＩ１０００が省電力モードかそうでないかによって、電力の供給先を制御するとしてもよい。また、電源Ｂ５０４は、システムＬＳＩ１０００に対して電力を供給することとしているが、組み込み機器１に含まれる他の構成要素に電力を供給することとしてもよい。
（２）省電力モード、通常電力モードの切り換えの契機
上述の実施例では、組み込み機器１は、ユーザからの操作があるか否かに基づいて、システムＬＳＩ１０００を省電力モードに移行させ、通常電力モードへ復帰させることとしている。【０１３０】
この他にも、システムＬＳＩ１０００が省電力モードへの移行の判断等を行ってもよい。
システムＬＳＩ１０００が省電力モードへの移行の判断等を行う場合、例えば、電源Ｂ５０４から供給される電圧の変化に基づいて、電圧が所定の閾値を下回れば省電力モードへの移行を検知し、所定の閾値を上回れば通常電力モードへの復帰を検知するとしてもよい。【０１３１】
なお、この場合、電源Ｂ５０４からの電力供給が、システムＬＳＩ１０００の退避時の処理が完了するまでに途絶えると、データの退避ができなくなる。そのため、退避時の処理が完了するのに必要な時間、電力を供給する予備の電源やコンデンサなどを予め用意してもよい。
また、電源Ｂ５０４の電圧の変化に基づいて、通常電力モードへの復帰を検知する場合、電源Ｂ５０４から電力が供給されていない状態で検知を行うこととなるので、電圧の変化を検出できないおそれがある。そのため、電源Ｂ５０４の電圧の変化を検出して通常電力モードへの復帰を検知する機構に対しては、電源Ｂ５０４とは異なる電源から電力を供給することが望ましい。例えば、電源Ａ５０３から供給することとしてもよい。【０１３２】
この他にも、省電力モードへの移行の判断等は、通常プログラム２０５が制御することとしてもよいし、システムＬＳＩ１０００に専用のハードウェアにより行っても良いし、退避指示部１０４や復帰指示部１０５に判断機能を持たせても良い。
また、復帰指示部１０５を備えなくとも、例えば、通常電力モードへの復帰の検知を、システムＬＳＩ１０００の外部の機構により行い、検知時に、外部メモリ５０１に記憶させておいた復帰プログラムを、ＣＰＵ１１０に実行させるよう割り込みをかけることとしてもよい。こうすることで、復帰指示部１０５そのものを省くことができ、余分なハードウェア構成を省いてシステムＬＳＩ１０００の集積度を高めることができる。【０１３３】
また、システムＬＳＩ１０００内のROMに、復帰プログラムを記憶させておき、通常電力モードからの復帰時にＣＰＵ１１０がROMから直接復帰プログラムを読み出して実行することとしてもよい。この構成によると、セキュア記憶部１０３に復帰プログラムを記憶させるステップを省略することができるので、より高速に復帰時の処理を実行することができる。このとき、復帰プログラムを、書き換え困難なROMに格納しておくと、復帰プログラム自体の改ざんを防ぐことができる。
（３）メモリ
上述の実施例では、外部メモリ５０１、バス暗号領域５０２、保護格納部１０２は、いずれも揮発性のメモリであるとしたが、省電力モード時においても記憶内容が消失しないのであれば、これに限られない。例えば、不揮発性のメモリや、ハードディスクなどでもよい。なお、不揮発性のメモリやハードディスクを用いると、電力を常時供給しなくとも記憶内容が保持されるので、電源Ａ５０３は不要となる。【０１３４】
また、外部メモリ５０１、バス暗号領域５０２、保護格納部１０２は、揮発性のメモリである場合、組み込み機器１の電源がオフであれば記憶内容が消失するので、組み込み機器１の電源がオフの間にこれらのメモリのデータが解析される等のおそれはなくなる。
また、セキュア記憶部１０３は、揮発性のメモリであるとしたが、不揮発性のメモリであってもよい。この場合においても、上述の実施例のように、省電力モードへの移行時にセキュア記憶部１０３の記憶内容を暗号化して外部メモリ５０１に退避させることで、不正な解析者の攻撃を避けることができる。【０１３５】
具体的に説明すると、セキュア記憶部１０３が不揮発性のメモリである場合は、システムＬＳＩ１０００が省電力モード時においてもセキュア記憶部１０３の記憶内容が消失しない。そのため、省電力モードへの移行の前後において、セキュア記憶部１０３を用いた処理を継続して行うという点のみを考慮すると、上述の実施例のようにセキュア記憶部１０３の記憶内容を暗号化して外部メモリ５０１へ退避させる必要性は大きくない。【０１３６】
しかし、システムＬＳＩ１０００がセキュア記憶部１０３を用いた処理を実行している途中でシステムＬＳＩ１０００が省電力モードに移行すると、処理途中のデータがセキュア記憶部１０３に残ることとなる。そのため、不正な解析者が、システムＬＳＩ１０００を省電力モードに移行させて、その間に、セキュア記憶部１０３の記憶内容を、時間をかけて解析しようと試みる可能性がある。セキュア記憶部１０３の記憶内容は、通常、機密性を保持すべき、価値の高いデータである。【０１３７】
そこで、セキュア記憶部１０３を不揮発性のメモリとする場合は、システムＬＳＩ１０００を省電力モードに移行させる時に、上述の実施例のようにセキュア記憶部１０３の記憶内容を暗号化して外部メモリに退避させるとともに、セキュア記憶部１０３の記憶内容を消去するとよい。こうすることにより、セキュア記憶部１０３が不揮発性のメモリである場合に、システムＬＳＩ１０００がセキュア記憶部１０３を用いた処理の実行途中でシステムＬＳＩ１０００を省電力モードに切り換えた上で、処理途中のセキュア記憶部１０３の記憶内容を解析しようとする不正な解析者の攻撃を避けることができる。
（４）ソフトウェアまたはハードウェアによる実装
上記の実施例では、システムＬＳＩ１０００の各構成要素は、ハードウェアにより実装することを想定しているが、これに限らない。例えば、退避指示部１０４や復帰指示部１０５等を、ソフトウェアにより実装することとしてもよい。例えば、省電力モードへの移行や通常電力モードへの復帰を検知する機能を、セキュアなプログラム２０２、セキュアアプリ２０７、通常プログラム２０５等に持たせ、ＣＰＵ１１０が実行することにより、退避指示部１０４等の機能を実装することができる。【０１３８】
これにより、ハードウェアリソースを少なくできるので、システムＬＳＩ１０００の集積度を、さらに高めることができる。
さらに、ソフトウェアとハードウェアとを併用して、省電力モードへの移行等の検知の精度を、より高める構成としてもよい。
要するに、上記実施例の各構成要素を、実現可能な範囲でソフトウェアとして実装すると、必要なハードウェアが減るので回路の集積度が減る。また、ハードウェアとして実装すると、ソフトウェアによる実装と比べて処理を高速化することができる。特に、ユーザの利便性が求められる場合には、退避時の処理や復帰時の処理をハードウェアにより高速化すると有用である。
（５）その他
システムＬＳＩは集積度の違いにより、ＩＣ、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもあるが、システムＬＳＩ１０００を上記のいずれの集積度で実現した場合も本発明に含まれることは言うまでもない。また、ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ(Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。【０１３９】
さらには、半導体技術の進歩または派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて構成要素の集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
本発明は、上記に示す方法であるとしてもよい。また、これらの方法をＣＰＵの処理として実現するプログラムであるとしてもよいし、前記コンピュータプログラムからなるディジタル信号であるとしてもよい。【０１４０】
また、本発明は、前記コンピュータプログラムまたは前記ディジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙＤｉｓｃ）、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記ディジタル信号であるとしてもよい。【０１４１】
また、これらの実施の形態および変形例の組合せであってもよい。
【産業上の利用可能性】
【０１４２】
本発明は、省電力モードと通常電力モードにより動作し、秘匿すべきデータを安全に処理する機構を有するシステムＬＳＩ等において、データの安全性を確保しつつ、省電力化と処理の高速化を図ることができる。したがって、これらシステムＬＳＩ等を組み込んで著作権にかかるデータの処理を行う機器等において特に有用である。
【図１】
2007091492.tif 000003
【図２】
2007091492.tif 000004
【図３】
2007091492.tif 000005
【図４】
2007091492.tif 000006
【図５】
2007091492.tif 000007
【手続補正書】
【提出日】平成20年4月2日(2008.4.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
動作モードとして、通常電力モードと、省電力モードとを切り換えて動作し、前記通常電力モード時には、秘匿すべき保護データに係る処理を少なくとも実行し、前記省電力モード時には、前記保護データを、外部メモリにおいて安全に保持するセキュア処理装置であって、
データの暗号化および復号化を行う暗号処理部と、
データの内容に依存して定まり、当該データよりもデータサイズが小さい認証子を生成する生成部と、
自装置外部からの不正アクセスを防止する機構を有し、前記省電力モード時において、記憶内容が消失するメモリにより構成され、前記保護データを記憶するためのセキュア記憶部と、
前記通常電力モードまたは前記省電力モードのいずれの動作時であっても記憶内容を保持する機構、および、自装置外部からの不正アクセスを防止する機構を有し、前記セキュア記憶部よりも記憶容量が小さい保護格納部と、
前記省電力モードへの移行時に、前記保護データに基づいて、前記生成部に第１認証子を生成させ、生成された当該第１認証子を前記保護格納部に格納させるとともに、前記保護データを前記暗号処理部に暗号化させ、得られた暗号化データを前記外部メモリに記憶させるよう制御する移行制御部と、
前記通常電力モードへの復帰時に、前記外部メモリに記憶された前記暗号化データを前記暗号処理部に復号化させ、得られた復号化データに基づいて、前記生成部に第２認証子を生成させる認証子生成制御部と、
生成された前記第２認証子と、前記保護格納部に格納されている前記第１認証子とが一致するか否かを判断する判断部と、
一致しないと判断されると、前記復号化データの前記セキュア記憶部への書き込みを禁止し、一致すると判断されると、前記復号化データを前記セキュア記憶部へ書き込む復帰制御部とを備える
ことを特徴とするセキュア処理装置。
【請求項２】
前記セキュア処理装置は、さらに、バス暗号鍵を用いて暗号化したデータを、外部の記憶領域であるバス暗号領域に保持させ、前記バス暗号領域に保持されているデータを用いて安全に処理を行うものであり、
前記セキュア記憶部は、さらに、前記バス暗号鍵を記憶し、
前記移行制御部は、前記省電力モードへの移行時に、前記セキュア記憶部に記憶されている前記バス暗号鍵を暗号化し、暗号化されたバス暗号鍵を前記外部メモリに記憶させるよう制御するバス暗号鍵退避制御部を含み、
前記復帰制御部は、前記外部メモリに記憶された前記暗号化されたバス暗号鍵を復号化するバス暗号鍵復号化制御部と、
前記バス暗号鍵復号化制御部により復号化されたバス暗号鍵を、前記セキュア記憶部へ書き込むバス暗号鍵再設定部を含む
ことを特徴とする請求項１記載のセキュア処理装置。
【請求項３】
前記セキュア処理装置は、
前記バス暗号鍵を保持し、前記省電力モードへの移行が完了すると、保持内容が消失するバス暗号鍵設定レジスタと、
前記バス暗号鍵設定レジスタに保持されているバス暗号鍵を用いて、前記バス暗号領域へ出力するデータの暗号化、および、前記バス暗号領域から出力されるデータの復号化を行うバス暗号回路を含み、
前記セキュア記憶部が記憶している前記バス暗号鍵は、前記バス暗号鍵設定レジスタに保持されている前記バス暗号鍵と同一であり、
前記バス暗号鍵再設定部は、前記バス暗号鍵復号化制御部により前記復号化されたバス暗号鍵を、前記バス暗号鍵設定レジスタに保持させる
ことを特徴とする請求項２記載のセキュア記憶装置。
【請求項４】
前記セキュア処理装置は、
前記バス暗号鍵設定レジスタと、前記バス暗号回路とからなる組を複数備え、
前記バス暗号鍵設定レジスタと前記バス暗号回路とからなる組のそれぞれは、前記バス暗号領域に保持されているデータそれぞれと対応しており、
前記セキュア記憶部は、前記バス暗号鍵設定レジスタそれぞれが保持している複数のバス暗号鍵それぞれと同一のバス暗号鍵を記憶しており、
前記バス暗号鍵退避制御部は、前記省電力モードへの移行時に、前記セキュア記憶部により記憶されている複数の前記バス暗号鍵を前記暗号化し、暗号化された複数のバス暗号鍵を前記外部メモリに前記記憶させ、
前記バス暗号鍵復号化制御部は、複数の前記バス暗号鍵を前記復号化し、
前記バス暗号鍵再設定部は、復号された前記複数の前記バス暗号鍵を、前記セキュア記憶部へ書き込む
ことを特徴とする請求項３記載のセキュア処理装置。
【請求項５】
前記保護格納部は、不揮発性のメモリにより構成される
ことを特徴とする請求項１記載のセキュア処理装置。
【請求項６】
前記保護格納部は、揮発性のメモリであり、前記省電力モード時においても電力が供給される構成を有する
ことを特徴とする請求項１記載のセキュア処理装置。
【請求項７】
前記生成部は、データの内容に基づいて、ハッシュ関数によりハッシュ値を算出し、前記生成部が生成する前記認証子とは、前記算出されたハッシュ値である
ことを特徴とする請求項１記載のセキュア処理装置。
【請求項８】
前記復帰制御部は、前記判断部により一致しないと判断されると、前記外部メモリに記憶された前記暗号化データを消去する消去部と、
前記暗号処理部により復号化された前記復号化データを破棄する破棄部とを含む
ことを特徴とする請求項１記載のセキュア処理装置。
【請求項９】
前記セキュア処理装置は、前記通常電力モードへの復帰時に、前記外部メモリに記憶された前記暗号化データを消去するデータ消去部を含む
ことを特徴とする請求項１記載のセキュア処理装置。
【請求項１０】
前記セキュア処理装置は、さらに、
自装置を識別する情報である装置固有情報を記憶する固有情報保持部を含み、
前記暗号化部は、前記固有情報保持部に記憶されている装置固有情報に基づいた暗号鍵を用いて、前記暗号化および前記復号化を行う
ことを特徴とする請求項１記載のセキュア処理装置。
【請求項１１】
前記固有情報保持部は、自装置外部からの不正アクセスを防止する機構を有している
ことを特徴とする請求項１０記載のセキュア処理装置。
【請求項１２】
動作モードとして、通常電力モードと、省電力モードとを切り換えて動作し、前記通常電力モード時には、秘匿すべき保護データに係る処理を少なくとも実行し、前記省電力モード時には、前記保護データを、外部メモリにおいて安全に保持するセキュア処理装置であって、
データの暗号化および復号化を行う暗号処理部と、
データの内容に依存して定まり、当該データよりもデータサイズが小さい認証子を生成する生成部と、
自装置外部からの不正アクセスを防止する機構を有し、前記省電力モード時において、記憶内容が消失するメモリにより構成され、前記保護データを記憶するためのセキュア記憶部と、
前記通常電力モードまたは前記省電力モードのいずれの動作時であっても記憶内容を保持する機構、および、自装置外部からの不正アクセスを防止する機構を有し、前記セキュア記憶部よりも記憶容量が小さい保護格納部と、
前記省電力モードへの移行時に、前記保護データを前記暗号処理部に暗号化させ、得られた暗号化データを前記外部メモリに記憶させるとともに、前記暗号化データに基づいて、前記生成部に第１認証子を生成させ、生成された当該第１認証子を前記保護格納部に格納させる移行制御部と、
前記通常電力モードへの復帰時に、前記外部メモリに記憶された前記暗号化データに基づいて、前記生成部に第２認証子を生成させる認証子生成制御部と、
生成された前記第２認証子と、前記保護格納部に格納されている前記第１認証子とが一致するか否かを判断する判断部と、
一致しないと判断されると、前記外部メモリに記憶された前記暗号化データを前記セキュア記憶部へ書き込むための処理を制限し、一致すると判断されると、前記暗号化データを前記暗号処理部に復号化させ、得られた復号化データを前記セキュア記憶部へ書き込む復帰制御部とを備える
ことを特徴とするセキュア処理装置。
【請求項１３】
前記復帰制御部は、前記判断部により一致しないと判断されると、前記暗号化データの前記暗号処理部による復号化を実行しないことで、前記制限を行う
ことを特徴とする請求項１２記載のセキュア処理装置。
【請求項１４】
前記セキュア処理装置は、さらに、バス暗号鍵を用いて暗号化したデータを、外部の記憶領域であるバス暗号領域に保持させ、前記バス暗号領域に保持されているデータを用いて安全に処理を行うものであり、
前記セキュア記憶部は、さらに、前記バス暗号鍵を記憶し、
前記移行制御部は、前記省電力モードへの移行時に、前記セキュア記憶部に記憶されている前記バス暗号鍵を暗号化し、暗号化されたバス暗号鍵を前記外部メモリに記憶させるよう制御するバス暗号鍵退避制御部を含み、
前記復帰制御部は、前記外部メモリに記憶された前記暗号化されたバス暗号鍵を復号化するバス暗号鍵復号化制御部と、
前記バス暗号鍵復号化制御部により復号化されたバス暗号鍵を、前記セキュア記憶部へ書き込むバス暗号鍵再設定部を含む
ことを特徴とする請求項１２記載のセキュア処理装置。
【請求項１５】
前記セキュア処理装置は、
前記バス暗号鍵を保持し、前記省電力モードへの移行が完了すると、保持内容が消失するバス暗号鍵設定レジスタと、
前記バス暗号鍵設定レジスタに保持されているバス暗号鍵を用いて、前記バス暗号領域へ出力するデータの暗号化、および、前記バス暗号領域から出力されるデータの復号化を行うバス暗号回路を含み、
前記セキュア記憶部が記憶している前記バス暗号鍵は、前記バス暗号鍵設定レジスタに保持されている前記バス暗号鍵と同一であり、
前記バス暗号鍵再設定部は、前記バス暗号鍵復号化制御部により前記復号化されたバス暗号鍵を、前記バス暗号鍵設定レジスタに保持させる
ことを特徴とする請求項１４記載のセキュア記憶装置。
【請求項１６】
前記セキュア処理装置は、
前記バス暗号鍵設定レジスタと、前記バス暗号回路とからなる組を複数備え、
前記バス暗号鍵設定レジスタと前記バス暗号回路とからなる組のそれぞれは、前記バス暗号領域に保持されているデータそれぞれと対応しており、
前記セキュア記憶部は、前記バス暗号鍵設定レジスタそれぞれが保持している複数のバス暗号鍵それぞれと同一のバス暗号鍵を記憶しており、
前記バス暗号鍵退避制御部は、前記省電力モードへの移行時に、前記セキュア記憶部により記憶されている複数の前記バス暗号鍵を前記暗号化し、暗号化された複数のバス暗号鍵を前記外部メモリに前記記憶させ、
前記バス暗号鍵復号化制御部は、複数の前記バス暗号鍵を前記復号化し、
前記バス暗号鍵再設定部は、復号された前記複数の前記バス暗号鍵を、前記セキュア記憶部へ書き込む
ことを特徴とする請求項１５記載のセキュア処理装置。
【請求項１７】
前記復帰制御部は、前記判断部により一致しないと判断されると、前記外部メモリに記憶された前記暗号化データを消去する消去部を含む
ことを特徴とする請求項１２記載のセキュア処理装置。
【請求項１８】
動作モードとして、通常電力モードと、省電力モードとを切り換えて動作し、前記通常電力モード時には、秘匿すべき保護データに係る処理を少なくとも実行し、前記省電力モード時には、前記保護データを、外部メモリにおいて安全に保持するセキュア処理装置において用いられる、情報処理方法であって、
前記セキュア処理装置は、
自装置外部からの不正アクセスを防止する機構を有し、前記省電力モード時において、記憶内容が消失するメモリにより構成され、前記保護データを記憶するためのセキュア記憶部と、
前記通常電力モードまたは前記省電力モードのいずれの動作時であっても記憶内容を保持する機構、および、自装置外部からの不正アクセスを防止する機構を有し、前記セキュア記憶部よりも記憶容量が小さい保護格納部とを有し、
前記情報処理方法は、
データの暗号化および復号化を行う暗号処理ステップと、
データの内容に依存して定まり、当該データよりもデータサイズが小さい認証子を生成する生成ステップと、
前記セキュア処理装置が前記省電力モードへ移行する時に、前記セキュア記憶部に記憶されている前記保護データに基づいて、前記生成ステップの実行により第１認証子を生成し、生成された当該第１認証子を前記保護格納部に格納させるとともに、前記保護データを前記暗号処理ステップの実行により暗号化し、得られた暗号化データを前記外部メモリに記憶させるよう制御する移行制御ステップと、
前記セキュア処理装置が前記通常電力モードへ復帰する時に、前記外部メモリに記憶された前記暗号化データを前記暗号処理ステップの実行により復号化し、得られた復号化データに基づいて、前記生成ステップの実行により第２認証子を生成するよう制御する認証子生成制御ステップと、
生成された前記第２認証子と、前記保護格納部に格納されている前記第１認証子とが一致するか否かを判断する判断ステップと、
前記判断ステップにおいて一致しないと判断されると、前記復号化データの前記セキュア記憶部への書き込みを禁止し、一致すると判断されると、前記復号化データを前記セキュア記憶部へ書き込む復帰制御ステップとを含む
ことを特徴とする情報処理方法。
【請求項１９】
動作モードとして、通常電力モードと、省電力モードとを切り換えて動作し、前記通常電力モード時には、秘匿すべき保護データに係る処理を少なくとも実行し、前記省電力モード時には、前記保護データを、外部メモリにおいて安全に保持するセキュア処理装置の動作を制御する制御プログラムであって、
前記セキュア処理装置は、
自装置外部からの不正アクセスを防止する機構を有し、前記省電力モード時において、記憶内容が消失するメモリにより構成され、前記保護データを記憶するためのセキュア記憶部と、
前記通常電力モードまたは前記省電力モードのいずれの動作時であっても記憶内容を保持する機構、および、自装置外部からの不正アクセスを防止する機構を有し、前記セキュア記憶部よりも記憶容量が小さい保護格納部とを有し、
前記制御プログラムは、
データの暗号化および復号化を行う暗号処理ステップと、
データの内容に依存して定まり、当該データよりもデータサイズが小さい認証子を生成する生成ステップと、
前記セキュア処理装置が前記省電力モードへ移行する時に、前記セキュア記憶部に記憶されている前記保護データに基づいて、前記生成ステップの実行により第１認証子を生成し、生成された当該第１認証子を前記保護格納部に格納させるとともに、前記保護データを前記暗号処理ステップの実行により暗号化し、得られた暗号化データを前記外部メモリに記憶させるよう制御する移行制御ステップと、
前記セキュア処理装置が前記通常電力モードへ復帰する時に、前記外部メモリに記憶された前記暗号化データを前記暗号処理ステップの実行により復号化し、得られた復号化データに基づいて、前記生成ステップの実行により第２認証子を生成するよう制御する認証子生成制御ステップと、
生成された前記第２認証子と、前記保護格納部に格納されている前記第１認証子とが一致するか否かを判断する判断ステップと、
前記判断ステップにおいて一致しないと判断されると、前記復号化データの前記セキュア記憶部への書き込みを禁止し、一致すると判断されると、前記復号化データを前記セキュア記憶部へ書き込む復帰制御ステップとを含む
ことを特徴とする制御プログラム。
【請求項２０】
動作モードとして、通常電力モードと、省電力モードとを切り換えて動作し、前記通常電力モード時には、秘匿すべき保護データに係る処理を少なくとも実行し、前記省電力モード時には、前記保護データを、外部メモリにおいて安全に保持するセキュア処理装置において用いられる、情報処理方法であって、
前記セキュア処理装置は、
自装置外部からの不正アクセスを防止する機構を有し、前記省電力モード時において、記憶内容が消失するメモリにより構成され、前記保護データを記憶するためのセキュア記憶部と、
前記通常電力モードまたは前記省電力モードのいずれの動作時であっても記憶内容を保持する機構、および、自装置外部からの不正アクセスを防止する機構を有し、前記セキュア記憶部よりも記憶容量が小さい保護格納部とを有し、
前記情報処理方法は、
データの暗号化および復号化を行う暗号処理ステップと、
データの内容に依存して定まり、当該データよりもデータサイズが小さい認証子を生成する生成ステップと、
前記セキュア処理装置が前記省電力モードへ移行する時に、前記保護データを前記暗号処理ステップの実行により暗号化し、得られた暗号化データを前記外部メモリに記憶させるとともに、前記暗号化データに基づいて、前記生成ステップの実行により第１認証子を生成し、生成された当該第１認証子を前記保護格納部に格納させるよう制御する移行制御ステップと、
前記セキュア処理装置が前記通常電力モードへ復帰する時に、前記外部メモリに記憶された前記暗号化データに基づいて、前記生成ステップの実行により第２認証子を生成するよう制御する認証子生成制御ステップと、
生成された前記第２認証子と、前記保護格納部に格納されている前記第１認証子とが一致するか否かを判断する判断ステップと、
前記判断ステップにおいて一致しないと判断されると、前記外部メモリに記憶された前記暗号化データを前記セキュア記憶部へ書き込むための処理を制限し、一致すると判断されると、前記暗号化データを前記暗号処理部ステップの実行により復号化し、得られた復号化データを前記セキュア記憶部へ書き込むよう制御する復帰制御ステップとを含む
ことを特徴とする情報処理方法。
【請求項２１】
動作モードとして、通常電力モードと、省電力モードとを切り換えて動作し、前記通常電力モード時には、秘匿すべき保護データに係る処理を少なくとも実行し、前記省電力モード時には、前記保護データを、外部メモリにおいて安全に保持するセキュア処理装置の動作を制御する制御プログラムであって、
前記セキュア処理装置は、
自装置外部からの不正アクセスを防止する機構を有し、前記省電力モード時において、記憶内容が消失するメモリにより構成され、前記保護データを記憶するためのセキュア記憶部と、
前記通常電力モードまたは前記省電力モードのいずれの動作時であっても記憶内容を保持する機構、および、自装置外部からの不正アクセスを防止する機構を有し、前記セキュア記憶部よりも記憶容量が小さい保護格納部とを有し、
前記制御プログラムは、
データの暗号化および復号化を行う暗号処理ステップと、
データの内容に依存して定まり、当該データよりもデータサイズが小さい認証子を生成する生成ステップと、
前記セキュア処理装置が前記省電力モードへ移行する時に、前記保護データを前記暗号処理ステップの実行により暗号化し、得られた暗号化データを前記外部メモリに記憶させるとともに、前記暗号化データに基づいて、前記生成ステップの実行により第１認証子を生成し、生成された当該第１認証子を前記保護格納部に格納させるよう制御する移行制御ステップと、
前記セキュア処理装置が前記通常電力モードへ復帰する時に、前記外部メモリに記憶された前記暗号化データに基づいて、前記生成ステップの実行により第２認証子を生成するよう制御する認証子生成制御ステップと、
生成された前記第２認証子と、前記保護格納部に格納されている前記第１認証子とが一致するか否かを判断する判断ステップと、
前記判断ステップにおいて一致しないと判断されると、前記外部メモリに記憶された前記暗号化データを前記セキュア記憶部へ書き込むための処理を制限し、一致すると判断されると、前記暗号化データを前記暗号処理部ステップの実行により復号化し、得られた復号化データを前記セキュア記憶部へ書き込むよう制御する復帰制御ステップとを含む
ことを特徴とする制御プログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、秘匿すべき保護データを安全に処理するための機構を有し、通常電力モードおよび省電力モードにより動作することができるセキュア処理装置に関し、特に、通常電力モードと省電力モードとの切り替えの前後において、保護データを安全に外部メモリへ退避させ、また、省電力モードからの復帰を安全に行うための技術に関する。
【背景技術】
【０００２】
音楽データなどに代表されるコンテンツにかかるデータが不正に複製されたり、コンテンツを再生するためのプログラムが不正に改ざん等されると、著作権者等の不利益となる。そのため、著作権者等にとっては、これらの高い価値を有するデータにかかる処理が安全に行われることが望ましい。
【０００３】
この要望に応えるため、秘匿すべき保護データを用いた処理を安全に実行することができるセキュア処理装置が提供されている。
セキュア処理装置としては、例えば、セキュアメモリを内部に含んだ集積回路がある。このセキュアメモリは、外部からの不正アクセスを防止する機構を有している。
【０００４】
具体的には、この集積回路では、セキュアメモリにアクセスすることができるのは、集積回路内部のCPUのみである。そして、集積回路内部のCPUの動作モードがセキュアモードのときに限り、CPUは、セキュアメモリにアクセスすることができる。
【０００５】
このように、セキュア処理装置は、秘匿すべき保護データを保持する記憶領域にアクセスすることができる主体およびアクセスできる機会を制限することで、データの秘匿を実現している。
【０００６】
ところで、セキュア処理装置には、動作モードとして、通常電力モードおよび省電力モードを切り換えて動作するものがある。省電力モードで動作している間、セキュア処理装置は、電源の供給が制限され、また、CPUをスリープモードに移行させる等、機能の一部を制限することで、消費電力を小さくして動作する。省電力モードを備えたセキュア処理装置は、例えば、バッテリー駆動により動作する携帯機器等で用いられる。こうすることで、携帯機器は、音楽データ等の秘匿すべき保護データを用いた処理を、セキュア処理装置により安全に行いつつ、動作時間を長くすることができる。
【０００７】
また、セキュア処理装置の、外部からの不正アクセスを防止する機構を有している記憶領域は、CPUによる高速アクセスを可能にするため、通常、揮発性のメモリが用いられる。そのため、セキュア処理装置が省電力モードに移行すると、上記記憶領域に保持されているデータが消失する。したがって、音楽データや音楽再生用の重要なプログラム等が上記記憶領域でのみ保持されている場合、セキュア処理装置が省電力モードに移行するたびに、当該データやプログラムが消失することになる。
【０００８】
この場合、セキュア処理装置を組み込んだ機器のユーザにとって不都合が生じることがある。
具体的に、セキュア処理装置を含んだ携帯機器のユーザが音楽データを再生している場合を例に、上述したユーザの不都合を説明する。携帯機器が音楽データを再生している途中に、携帯機器が省電力モードに移行したとする。この後、省電力モードから復帰して、音楽データの続きを再生しようとしても、上記記憶領域の音楽データが消失している。そのため、再度、上記記憶領域に音楽データが読み込まれるまでユーザが待たされたり、音楽データの再生位置等の情報が消失して音楽データの先頭からしか再生できないなどの望ましくない事態が生じることがある。
【０００９】
そこで、セキュア処理装置を省電力モードへ移行させる際に、上記記憶領域に保持されているデータを、セキュア処理装置の外部にある外部メモリに退避させる技術が従来用いられている。そして、セキュア処理装置を省電力モードから復帰させる際に、外部メモリに退避させたデータを、上記記憶領域に再設定する。これにより、セキュア処理装置は、省電力モード移行前後の処理を継続して行うことができ、ユーザの不都合が発生しないようにすることができる。
【００１０】
ただし、この技術を用いる場合、セキュア処理装置に異常なデータが再設定されると、セキュア処理装置が暴走する可能性がある。そのため、外部メモリへのデータの退避と、セキュア処理装置へのデータの再設定は、異常なく行われることが望ましい。
【００１１】
この課題を解決するため、下記の特許文献１には、正常な手順で外部メモリへのデータの退避が行えるようにすることを目的とする技術が開示されている。具体的には、まず、省電力モードへの移行を開始すると、キーワードをレジスタに設定する。次に、外部メモリへデータを退避させる前に、キーワードとレジスタの内容とが一致するか判断し、一致する場合にデータの退避を実行する。
【００１２】
この技術によると、セキュア処理装置が暴走等により、キーワードをレジスタに設定する処理を飛ばして省電力モードに移行する処理を実行しようとしたとしても、キーワードとレジスタの内容とが一致しないので、異常終了する。
【特許文献１】日本国特許公開公報  特開平５−１４３４７８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
上記特許文献１の技術を用いると、異常な手順で省電力モードへ移行する事態を防ぐことができる。すなわち、暴走等によりセキュア処理装置が省電力モードへ移行するのを回避できる。したがって、外部メモリへ退避するデータを適切なものとすることができる。
【００１４】
しかし、特許文献１記載の技術を用いたとしても、退避したデータが改ざんされたり破損したりすると、省電力モードから復帰するときに、セキュア処理装置に、異常なデータが再設定されることとなる。すなわち、省電力モードからの復帰が安全に行われないという問題がある。例えば外部メモリに退避させたデータが改ざんされて、不正なプログラム等がセキュア処理装置に再設定されて実行される可能性がある。その結果、例えば上記記憶領域のデータを外部に出力させるような処理が行われて、秘匿すべき保護データが暴露されるなどの事態が発生しうる。
【００１５】
そこで、本発明は、省電力モードを備えるセキュア処理装置において、秘匿すべき保護データを外部メモリへ安全に退避し、かつ、外部メモリへ退避させたデータをセキュア処理装置に安全に再設定することを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【００１６】
上記課題を解決するため、本発明のセキュア処理装置は、動作モードとして、通常電力モードと、省電力モードとを切り換えて動作し、前記通常電力モード時には、秘匿すべき保護データに係る処理を少なくとも実行し、前記省電力モード時には、前記保護データを、外部メモリにおいて安全に保持するセキュア処理装置であって、データの暗号化および復号化を行う暗号処理部と、データの内容に依存して定まり、当該データよりもデータサイズが小さい認証子を生成する生成部と、自装置外部からの不正アクセスを防止する機構を有し、前記省電力モード時において、記憶内容が消失するメモリにより構成され、前記保護データを記憶するためのセキュア記憶部と、前記通常電力モードまたは前記省電力モードのいずれの動作時であっても記憶内容を保持する機構、および、自装置外部からの不正アクセスを防止する機構を有し、前記セキュア記憶部よりも記憶容量が小さい保護格納部と、前記省電力モードへの移行時に、前記保護データに基づいて、前記生成部に第１認証子を生成させ、生成された当該第１認証子を前記保護格納部に格納させるとともに、前記保護データを前記暗号処理部に暗号化させ、得られた暗号化データを前記外部メモリに記憶させるよう制御する移行制御部と、前記通常電力モードへの復帰時に、前記外部メモリに記憶された前記暗号化データを前記暗号処理部に復号化させ、得られた復号化データに基づいて、前記生成部に第２認証子を生成させる認証子生成制御部と、生成された前記第２認証子と、前記保護格納部に格納されている前記第１認証子とが一致するか否かを判断する判断部と、一致しないと判断されると、前記復号化データの前記セキュア記憶部への書き込みを禁止し、一致すると判断されると、前記復号化データを前記セキュア記憶部へ書き込む復帰制御部とを備えることを特徴とする。
【発明の効果】
【００１７】
上述の構成を備えるセキュア処理装置は、省電力モードへの移行時に、保護データに基づいて第１認証子を生成する。また、通常電力モードへの復帰時に、セキュア記憶部に再設定する対象となるデータに基づいて第２認証子を生成し、第２認証子と、省電力モードへの移行時に生成した第１認証子とを比較することで、外部メモリに退避させたデータの再設定を行うか否かを制御するという技術的特徴を有している。
【００１８】
生成部により生成される認証子は、生成の元となるデータに依存して定まる。したがって、セキュア処理装置は、第１認証子と第２認証子とを比較することにより、セキュア記憶部に再設定する対象となるデータが、外部メモリに退避させたデータと同一か否かを判断することができる。
【００１９】
同一であれば、データをセキュア記憶部に再設定する。同一でなければ、退避させたデータが、改ざん等により、異常なデータになっていると推定できるので、当該データをセキュア記憶部に書き込まない。
【００２０】
こうすることで、セキュア処理装置は、異常なデータを再設定しないですみ、外部メモリへ退避させたデータを、安全に再設定することができる。
また、セキュア処理装置は、外部メモリへデータを退避させる際に、暗号化部により、退避にかかるデータを暗号化する。そして、暗号化したデータを外部メモリへ退避させる。したがって、セキュア処理装置は、秘匿すべき保護データを安全に外部メモリに退避させることができる。
【００２１】
また、上述の構成において、生成部は、認証子を生成する対象となるデータよりもデータサイズが小さい認証子を生成するので、認証子を格納する保護格納部は、セキュア記憶部よりもメモリ領域を小さくできる。
【００２２】
したがって、上述の構成を備えるセキュア処理装置は、秘匿すべき保護データを安全に処理しつつ、省電力化を実現し、さらに、装置の大型化を避けることができる。例えば、セキュア処理装置が集積回路の場合、回路の大型化を避けることができる。そのため、小型化の要請が強い集積回路において、上述の技術的特徴を有するセキュア処理装置を容易に実現することができる。
【００２３】
ところで、セキュア処理装置が高速で所定の処理を行うには、重要なデータを記憶するセキュア記憶部の記憶容量が十分ではない場合がある。この場合は、重要なプログラムなどのデータを所定の暗号鍵を用いて暗号化する。この暗号鍵を、以下、バス暗号鍵という。セキュア処理装置は、バス暗号鍵を安全に保持する。また、バス暗号鍵を用いて暗号化したデータを、外部の記憶領域に記憶させる。この外部の記憶領域を、以下、バス暗号領域という。
【００２４】
このような構成により、セキュア処理装置は、セキュア記憶部の記憶容量が十分ではない場合も、秘匿すべき保護データを用いて安全に処理を行うことができる。
しかし、省電力モードへの移行時に、セキュア処理装置において保持しているバス暗号鍵が消失してしまうと、バス暗号領域のデータを復号するための鍵が無くなり、処理を再開できなくなる。
【００２５】
ここで、セキュア処理装置が、例えば装置に固有な情報等の、変化しない情報に基づいて、１のバス暗号鍵をいつでも生成することができ、これによって生成されたバス暗号鍵を用い続けるとする。この場合、確かに、省電力モードへ移行してバス暗号鍵が消失したとしても、再度、同一のバス暗号鍵を生成することができるので、通常電力モードへの復帰後、再度生成したバス暗号鍵を用いて、バス暗号領域のデータを復号化することはできる。
【００２６】
しかし、バス暗号領域のデータを復号するためのバス暗号鍵がいつまでも同じであると、不正者がバス暗号領域のデータを解析する等により、バス暗号鍵が解読され、バス暗号領域に保持されている重要なデータが暴露されるおそれがある。そのため、バス暗号鍵は、随時変更されることが望ましい。
【００２７】
このように、セキュア処理装置が１のバス暗号鍵を用い続けないことを前提とすると、セキュア処理装置は、省電力モードへの移行後、通常電力モードへ復帰したときに、バス暗号鍵が消失していると、バス暗号領域のデータを用いた処理を再開できなくなる。そのため、再度、バス暗号領域にデータを書き込む等の不要な処理が必要となる。
【００２８】
この問題に対処すべく、バス暗号領域において保持されている重要なデータについても、省電力モードへの移行後、通常電力モードへの復帰時に、上述のセキュア記憶部のデータと同様に、処理の継続等を可能とすることが望ましい。
【００２９】
そこで、前記セキュア処理装置は、さらに、バス暗号鍵を用いて暗号化したデータを、外部の記憶領域であるバス暗号領域に保持させ、前記バス暗号領域に保持されているデータを用いて安全に処理を行うものであり、前記セキュア記憶部は、さらに、前記バス暗号鍵を記憶し、前記移行制御部は、前記省電力モードへの移行時に、前記セキュア記憶部に記憶されている前記バス暗号鍵を暗号化し、暗号化されたバス暗号鍵を前記外部メモリに記憶させるよう制御するバス暗号鍵退避制御部を含み、前記復帰制御部は、前記外部メモリに記憶された前記暗号化されたバス暗号鍵を復号化するバス暗号鍵復号化制御部と、前記バス暗号鍵復号化制御部により復号化されたバス暗号鍵を、前記セキュア記憶部へ書き込むバス暗号鍵再設定部を含むこととしてもよい。
【００３０】
このような構成により、バス暗号領域のデータについても、省電力モードへの移行の前後において、処理の継続等を行うことができるので、通常電力モードへの復帰後、処理を再開するまでの時間を短くすることができる。
【００３１】
なお、上記のようにバス暗号領域およびバス暗号鍵を用いるセキュア処理装置は、処理を高速化するために、所定の回路やレジスタ等を用いて実現されることがある。
具体的には、前記セキュア処理装置は、前記バス暗号鍵を保持し、前記省電力モードへの移行が完了すると、保持内容が消失するバス暗号鍵設定レジスタと、前記バス暗号鍵設定レジスタに保持されているバス暗号鍵を用いて、前記バス暗号領域へ出力するデータの暗号化、および、前記バス暗号領域から出力されるデータの復号化を行うバス暗号回路を含み、前記セキュア記憶部が記憶している前記バス暗号鍵は、前記バス暗号鍵設定レジスタに保持されている前記バス暗号鍵と同一であり、前記バス暗号鍵再設定部は、前記バス暗号鍵復号化制御部により前記復号化されたバス暗号鍵を、前記バス暗号鍵設定レジスタに保持させるという構成を有していてもよい。
【００３２】
このような構成により、バス暗号領域を用いた処理を、安全かつ高速に行うことができる。
さらに、上述のバス暗号領域を用いた処理を行う場合、安全性をより高めるには、例えば重要なデータ１つ１つに対し、異なるバス暗号鍵を用いることが望ましい。仮に１のバス暗号鍵が解読されたとしても、他のバス暗号鍵を用いたデータは暴露されないためである。
【００３３】
上述の技術は、例えば、バス暗号回路とバス暗号鍵設定レジスタとの組を複数備え、重要なデータ１つ１つを、バス暗号回路とバス暗号鍵設定レジスタとの組のそれぞれに対応させることで実現できる。ただし、この場合、バス暗号鍵設定レジスタが複数あるので、セキュア処理装置が省電力モードへ移行する際に、複数のバス暗号鍵設定レジスタに保持されている各バス暗号鍵を読み出そうとすると、バス暗号鍵を保持しているレジスタの特定やバス暗号鍵の読み出し等の処理を要する。そのため、省電力モードへの移行が遅れたり、また、省電力モードへの移行が完了するまでに、バス暗号鍵の外部メモリへの退避が間に合わないおそれがある。
【００３４】
そこで、前記セキュア処理装置は、前記バス暗号鍵設定レジスタと、前記バス暗号回路とからなる組を複数備え、前記バス暗号鍵設定レジスタと前記バス暗号回路とからなる組のそれぞれは、前記バス暗号領域に保持されているデータそれぞれと対応しており、前記セキュア記憶部は、前記バス暗号鍵設定レジスタそれぞれが保持している複数のバス暗号鍵それぞれと同一のバス暗号鍵を記憶しており、前記バス暗号鍵退避制御部は、前記省電力モードへの移行時に、前記セキュア記憶部により記憶されている複数の前記バス暗号鍵を前記暗号化し、暗号化された複数のバス暗号鍵を前記外部メモリに前記記憶させ、前記バス暗号鍵復号化制御部は、複数の前記バス暗号鍵を前記復号化し、前記バス暗号鍵再設定部は、復号された前記複数の前記バス暗号鍵を、前記セキュア記憶部へ書き込むこととしてもよい。
【００３５】
上述の構成によると、セキュア記憶部は、バス暗号鍵設定レジスタに保持されている複数のバス暗号鍵と同一のバス暗号鍵をそれぞれ保持している。そのため、セキュア処理装置は、省電力モードへの移行時に、バス暗号鍵を退避させるバス暗号鍵設定レジスタの特定や探索等を行うことなく、バス暗号鍵等の外部メモリへの退避を行うことができる。したがって、省電力モードへの移行時に、外部メモリへのデータの退避が間に合わない等のおそれを回避することができる。
【００３６】
ところで、消費電力をより低下させたい場合は、省電力モード時において、必要な電源の供給を少なくすることが望ましい。
そこで、前記保護格納部は、不揮発性のメモリにより構成されることとしてもよい。
【００３７】
上述の構成によると、保護格納部は電源電圧を供給しなくとも記憶内容を保持するので、保護格納部に揮発性メモリを用いる場合と比べると、セキュア処理装置の消費電力を低下させることができる。
【００３８】
一方、セキュア処理装置の安全性を高めたい場合には、保護格納部を以下の構成とすることもできる。
すなわち、前記保護格納部は、揮発性のメモリであり、前記省電力モード時においても電力が供給される構成を有することとしてもよい。
【００３９】
仮に、何らかの不正な解析手段により、保護格納部に記憶されている認証子が暴露されてしまうとする。この場合、認証子に基づいて、元のデータが不正者に推定されたり、暴露されたのと同一の認証子が生成部により生成されるように、不正なデータを不正者が作成するおそれがある。
【００４０】
このようなおそれに対し、上述の構成を備えるセキュア処理装置によると、保護格納部は、揮発性のメモリであるため、省電力モード時には記憶内容を保持する。そして、セキュア処理装置の電源がオフになると、保護格納部の記憶内容が消失する。そのため、セキュア処理装置が電源オフの場合に、保護格納部が解析されて認証子が不正に暴露されるのを防ぐことができる。また、耐タンパ性などの対策をとる必要もない。
【００４１】
すなわち、簡易な構成で、不正な解析に対するセキュア処理装置の安全性を高めることができる。
また、生成部による認証子の生成方法に関連して、セキュア処理装置の安全性をより高めるには、以下の構成としてもよい。
【００４２】
すなわち、前記生成部は、データの内容に基づいて、ハッシュ関数によりハッシュ値を算出し、前記生成部が生成する前記認証子とは、前記算出されたハッシュ値であることとしてもよい。
【００４３】
ハッシュ関数とは、あるデータから固定長の擬似乱数を生成する関数である。メッセージダイジェスト関数ともいう。ハッシュ関数により生成された値は、ハッシュ値と呼ばれる。ハッシュ関数は、不可逆な一方向関数を含むため、算出されたハッシュ値から、元のデータを推測するのが困難という特徴がある。また、ハッシュ関数は、あるデータとハッシュ値が等しい別のデータを容易に生成できないという特徴も有する。
【００４４】
したがって、上述の構成によると、仮に保護格納部に記憶されている認証子が暴露されたとしても、認証子を生成する元となったデータ、すなわち秘匿すべき保護データが推測されるのを困難にすることができる。また、暴露された認証子が生成されるように、不正者が不正なデータを作成し、外部メモリに記憶させるのも困難となる。
【００４５】
ここで、外部メモリへ退避したデータと、外部メモリから再設定する対象となるデータとが異なる場合、すなわち、外部メモリへ退避したデータが改ざん等されている場合に、セキュア処理装置の安全性を高めるために、以下の構成とすることもできる。
【００４６】
すなわち、前記復帰制御部は、前記判断部により一致しないと判断されると、前記外部メモリに記憶された前記暗号化データを消去する消去部と、前記暗号処理部により復号化された前記復号化データを破棄する破棄部とを含むこととしてもよい。
【００４７】
上述の構成によると、改ざん等がなされたおそれのある異常なデータをセキュア処理装置および外部メモリから完全に消去するので、このような異常なデータを誤ってセキュア処理装置が実行するおそれをなくすことができる。
【００４８】
また、外部メモリに退避させた保護データが改ざんされているにせよ、改ざんされていないにせよ、セキュア処理装置が通常電力モードに復帰した後においても、外部メモリに退避させたデータをそのまま外部メモリに残しておくことは望ましくない。不正な解析等によって保護データが解読されるおそれがあるからである。
【００４９】
そこで、前記セキュア処理装置は、前記通常電力モードへの復帰時に、前記外部メモリに記憶された前記暗号化データを消去するデータ消去部を含むこととしてもよい。
これにより、外部メモリにデータを退避させる期間を最小限にすることができ、不正者が外部メモリの暗号化データにアクセスしたり、不正な解析を行うおそれを小さくすることができる。
【００５０】
一方、外部メモリに退避させた保護データを、不正に利用されないようにするには、以下の構成とすることもできる。
すなわち、前記セキュア処理装置は、さらに、自装置を識別する情報である装置固有情報を保持する固有情報保持部を含み、前記暗号化部は、前記保持されている装置固有情報に基づいた暗号鍵を用いて、前記暗号化および前記復号化を行うこととしてもよい。
【００５１】
上述の構成によると、外部メモリに退避されるデータは、装置固有情報に基づいて暗号化されたデータである。すなわち、外部メモリに退避されるデータは、暗号化を行った装置のみが、復号化することができる。
【００５２】
したがって、外部メモリに退避されたデータが他の装置に読み込まれて不正に解析される等の不正行為を困難にすることができる。
上述の構成において、セキュア処理装置の安全性の観点からは、以下の構成にすることが望ましい。
【００５３】
すなわち、前記固有情報保持部は、自装置外部からの不正アクセスを防止する機構を有していることとしてもよい。
これにより、固有情報保持部から装置固有情報が不正に漏洩するおそれが小さくなる。したがって、暗号化されたデータの復号がより困難になるので、セキュア処理装置の安全性を、より一層、高めることができる。
【００５４】
ところで、上述の構成では、外部メモリへデータを退避させる際、暗号化を行う前のセキュア記憶部のデータに基づいて、生成部により第１認証子を生成している。しかし、生成部が認証子を生成するタイミングは、これに限られるものではない。
【００５５】
したがって、本発明のセキュア処理装置は、動作モードとして、通常電力モードと、省電力モードとを切り換えて動作し、前記通常電力モード時には、秘匿すべき保護データに係る処理を少なくとも実行し、前記省電力モード時には、前記保護データを、外部メモリにおいて安全に保持するセキュア処理装置であって、データの暗号化および復号化を行う暗号処理部と、データの内容に依存して定まり、当該データよりもデータサイズが小さい認証子を生成する生成部と、自装置外部からの不正アクセスを防止する機構を有し、前記省電力モード時において、記憶内容が消失するメモリにより構成され、前記保護データを記憶するためのセキュア記憶部と、前記通常電力モードまたは前記省電力モードのいずれの動作時であっても記憶内容を保持する機構、および、自装置外部からの不正アクセスを防止する機構を有し、前記セキュア記憶部よりも記憶容量が小さい保護格納部と、前記省電力モードへの移行時に、前記保護データを前記暗号処理部に暗号化させ、得られた暗号化データを前記外部メモリに記憶させるとともに、前記暗号化データに基づいて、前記生成部に第１認証子を生成させ、生成された当該第１認証子を前記保護格納部に格納させる移行制御部と、前記通常電力モードへの復帰時に、前記外部メモリに記憶された前記暗号化データに基づいて、前記生成部に第２認証子を生成させる認証子生成制御部と、生成された前記第２認証子と、前記保護格納部に格納されている前記第１認証子とが一致するか否かを判断する判断部と、一致しないと判断されると、前記外部メモリに記憶された前記暗号化データを前記セキュア記憶部へ書き込むための処理を制限し、一致すると判断されると、前記暗号化データを前記暗号処理部に復号化させ、得られた復号化データを前記セキュア記憶部へ書き込む復帰制御部とを備えることを特徴としてもよい。
【００５６】
また、上述の構成において、前記復帰制御部は、前記判断部により一致しないと判断されると、前記暗号化データの前記暗号処理部による復号化を実行しないことで、前記制限を行うこととしてもよい。
【００５７】
上述の構成によると、セキュア処理装置は、生成部により生成された第２認証子と第１認証子とを比較し、比較結果に応じて、外部メモリに記憶された暗号化データを復号化するか否かを制御する。すなわち、セキュア処理装置は、負荷の大きい復号化処理が行われる前に、外部メモリに退避されたデータが異常なデータであるかを判断する。
【００５８】
外部メモリに退避されたデータが異常である場合には、復号化処理を行わないとすることでセキュア処理装置の処理負荷を軽減できる。また、異常なデータを検出した時に、異常なデータに対する対策にかかる処理、例えば異常終了などを迅速に行うことができる。
【００５９】
また、上述の構成においても、外部メモリに退避させたデータを、セキュア処理装置が通常電力モードに復帰した後もそのまま外部メモリに残しておくことは望ましくない。
そこで、前記復帰制御部は、前記判断部により一致しないと判断されると、前記外部メモリに記憶された前記暗号化データを消去する消去部を含むこととしてもよい。
【００６０】
上述の構成によると、改ざん等のおそれのある異常なデータを外部メモリから消去することができるので、このような異常なデータを誤ってセキュア処理装置が実行するおそれをなくすことができる。
【００６１】
また、本発明は、動作モードとして、通常電力モードと、省電力モードとを切り換えて動作し、前記通常電力モード時には、秘匿すべき保護データに係る処理を少なくとも実行し、前記省電力モード時には、前記保護データを、外部メモリにおいて安全に保持するセキュア処理装置において用いられる、情報処理方法であって、前記セキュア処理装置は、自装置外部からの不正アクセスを防止する機構を有し、前記省電力モード時において、記憶内容が消失するメモリにより構成され、前記保護データを記憶するためのセキュア記憶部と、前記通常電力モードまたは前記省電力モードのいずれの動作時であっても記憶内容を保持する機構、および、自装置外部からの不正アクセスを防止する機構を有し、前記セキュア記憶部よりも記憶容量が小さい保護格納部とを有し、前記情報処理方法は、データの暗号化および復号化を行う暗号処理ステップと、データの内容に依存して定まり、当該データよりもデータサイズが小さい認証子を生成する生成ステップと、前記セキュア処理装置が前記省電力モードへ移行する時に、前記セキュア記憶部に記憶されている前記保護データに基づいて、前記生成ステップの実行により第１認証子を生成し、生成された当該第１認証子を前記保護格納部に格納させるとともに、前記保護データを前記暗号処理ステップの実行により暗号化し、得られた暗号化データを前記外部メモリに記憶させるよう制御する移行制御ステップと、前記セキュア処理装置が前記通常電力モードへ復帰する時に、前記外部メモリに記憶された前記暗号化データを前記暗号処理ステップの実行により復号化し、得られた復号化データに基づいて、前記生成ステップの実行により第２認証子を生成するよう制御する認証子生成制御ステップと、生成された前記第２認証子と、前記保護格納部に格納されている前記第１認証子とが一致するか否かを判断する判断ステップと、前記判断ステップにおいて一致しないと判断されると、前記復号化データの前記セキュア記憶部への書き込みを禁止し、一致すると判断されると、前記復号化データを前記セキュア記憶部へ書き込む復帰制御ステップとを含むこととしてもよい。
【００６２】
また、本発明は、動作モードとして、通常電力モードと、省電力モードとを切り換えて動作し、前記通常電力モード時には、秘匿すべき保護データに係る処理を少なくとも実行し、前記省電力モード時には、前記保護データを、外部メモリにおいて安全に保持するセキュア処理装置の動作を制御する制御プログラムであって、前記セキュア処理装置は、自装置外部からの不正アクセスを防止する機構を有し、前記省電力モード時において、記憶内容が消失するメモリにより構成され、前記保護データを記憶するためのセキュア記憶部と、前記通常電力モードまたは前記省電力モードのいずれの動作時であっても記憶内容を保持する機構、および、自装置外部からの不正アクセスを防止する機構を有し、前記セキュア記憶部よりも記憶容量が小さい保護格納部とを有し、前記制御プログラムは、データの暗号化および復号化を行う暗号処理ステップと、データの内容に依存して定まり、当該データよりもデータサイズが小さい認証子を生成する生成ステップと、前記セキュア処理装置が前記省電力モードへ移行する時に、前記セキュア記憶部に記憶されている前記保護データに基づいて、前記生成ステップの実行により第１認証子を生成し、生成された当該第１認証子を前記保護格納部に格納させるとともに、前記保護データを前記暗号処理ステップの実行により暗号化し、得られた暗号化データを前記外部メモリに記憶させるよう制御する移行制御ステップと、前記セキュア処理装置が前記通常電力モードへ復帰する時に、前記外部メモリに記憶された前記暗号化データを前記暗号処理ステップの実行により復号化し、得られた復号化データに基づいて、前記生成ステップの実行により第２認証子を生成するよう制御する認証子生成制御ステップと、生成された前記第２認証子と、前記保護格納部に格納されている前記第１認証子とが一致するか否かを判断する判断ステップと、前記判断ステップにおいて一致しないと判断されると、前記復号化データの前記セキュア記憶部への書き込みを禁止し、一致すると判断されると、前記復号化データを前記セキュア記憶部へ書き込む復帰制御ステップとを含むこととしてもよい。
【００６３】
また、本発明は、動作モードとして、通常電力モードと、省電力モードとを切り換えて動作し、前記通常電力モード時には、秘匿すべき保護データに係る処理を少なくとも実行し、前記省電力モード時には、前記保護データを、外部メモリにおいて安全に保持するセキュア処理装置において用いられる、情報処理方法であって、前記セキュア処理装置は、自装置外部からの不正アクセスを防止する機構を有し、前記省電力モード時において、記憶内容が消失するメモリにより構成され、前記保護データを記憶するためのセキュア記憶部と、前記通常電力モードまたは前記省電力モードのいずれの動作時であっても記憶内容を保持する機構、および、自装置外部からの不正アクセスを防止する機構を有し、前記セキュア記憶部よりも記憶容量が小さい保護格納部とを有し、前記情報処理方法は、データの暗号化および復号化を行う暗号処理ステップと、データの内容に依存して定まり、当該データよりもデータサイズが小さい認証子を生成する生成ステップと、前記セキュア処理装置が前記省電力モードへ移行する時に、前記保護データを前記暗号処理ステップの実行により暗号化し、得られた暗号化データを前記外部メモリに記憶させるとともに、前記暗号化データに基づいて、前記生成ステップの実行により第１認証子を生成し、生成された当該第１認証子を前記保護格納部に格納させるよう制御する移行制御ステップと、前記セキュア処理装置が前記通常電力モードへ復帰する時に、前記外部メモリに記憶された前記暗号化データに基づいて、前記生成ステップの実行により第２認証子を生成するよう制御する認証子生成制御ステップと、生成された前記第２認証子と、前記保護格納部に格納されている前記第１認証子とが一致するか否かを判断する判断ステップと、前記判断ステップにおいて一致しないと判断されると、前記外部メモリに記憶された前記暗号化データを前記セキュア記憶部へ書き込むための処理を制限し、一致すると判断されると、前記暗号化データを前記暗号処理部ステップの実行により復号化し、得られた復号化データを前記セキュア記憶部へ書き込むよう制御する復帰制御ステップとを含むこととしてもよい。
【００６４】
また、本発明は、動作モードとして、通常電力モードと、省電力モードとを切り換えて動作し、前記通常電力モード時には、秘匿すべき保護データに係る処理を少なくとも実行し、前記省電力モード時には、前記保護データを、外部メモリにおいて安全に保持するセキュア処理装置の動作を制御する制御プログラムであって、前記セキュア処理装置は、自装置外部からの不正アクセスを防止する機構を有し、前記省電力モード時において、記憶内容が消失するメモリにより構成され、前記保護データを記憶するためのセキュア記憶部と、前記通常電力モードまたは前記省電力モードのいずれの動作時であっても記憶内容を保持する機構、および、自装置外部からの不正アクセスを防止する機構を有し、前記セキュア記憶部よりも記憶容量が小さい保護格納部とを有し、前記制御プログラムは、データの暗号化および復号化を行う暗号処理ステップと、データの内容に依存して定まり、当該データよりもデータサイズが小さい認証子を生成する生成ステップと、前記セキュア処理装置が前記省電力モードへ移行する時に、前記保護データを前記暗号処理ステップの実行により暗号化し、得られた暗号化データを前記外部メモリに記憶させるとともに、前記暗号化データに基づいて、前記生成ステップの実行により第１認証子を生成し、生成された当該第１認証子を前記保護格納部に格納させるよう制御する移行制御ステップと、前記セキュア処理装置が前記通常電力モードへ復帰する時に、前記外部メモリに記憶された前記暗号化データに基づいて、前記生成ステップの実行により第２認証子を生成するよう制御する認証子生成制御ステップと、生成された前記第２認証子と、前記保護格納部に格納されている前記第１認証子とが一致するか否かを判断する判断ステップと、前記判断ステップにおいて一致しないと判断されると、前記外部メモリに記憶された前記暗号化データを前記セキュア記憶部へ書き込むための処理を制限し、一致すると判断されると、前記暗号化データを前記暗号処理部ステップの実行により復号化し、得られた復号化データを前記セキュア記憶部へ書き込むよう制御する復帰制御ステップとを含むこととしてもよい。
【００６５】
これにより、上述した制御プログラムを、ネットワークを通して頒布等により流通させることができる。
【発明を実施するための最良の形態】
【００６６】
１．１  概要
以下、本発明のセキュア処理装置について、実施の一形態を説明する。
１．１．１  セキュア処理装置の概要
本実施形態では、セキュア処理装置がシステムＬＳＩ１０００の場合を想定して説明する。また、システムＬＳＩ１０００は、組み込み機器１に含まれているとする。システムＬＳＩ１０００は、少なくとも、秘匿すべき保護データにかかる処理を行う構成要素については、外部からの不正なアクセスを防止する機構が設けられている。
【００６７】
１．１．２  組み込み機器１の概要
なお、組み込み機器１は、具体的には、例えば、音楽データ等の再生が可能な携帯機器である。組み込み機器１は、MP3（MPEG-1 Audio Layer-3）、AAC（AdvancedAudio Coding）、WMA（Windows（登録商標） Media Audio）などの音声ファイルフォーマットの音楽データを再生する。音楽データは、SDメモリカード等の外部のフラッシュメモリに記憶されている。
【００６８】
著作権保護に配慮した音楽データの利用を可能にするために、組み込み機器１は、SD-Audioに対応している。SD-Audioとは、SDメモリカードに著作権保護を施して音楽データを記録するSD応用規格（applicationformat）である。
【００６９】
著作権保護を実現するため、SDメモリカードに記録されている音楽データは、暗号化されている。暗号化された音楽データを再生するには、音楽データを復号する必要がある。復号化された音楽データは、不正に複製等されないようにする必要があるので、組み込み機器１は、システムＬＳＩ１０００によって当該音楽データの再生処理を安全に行う。
【００７０】
１．１．３  システムＬＳＩ１０００の概要
システムＬＳＩ１０００は、秘匿すべき保護データを用いた処理を行うためのセキュア記憶部１０３を有している。
【００７１】
また、システムＬＳＩ１０００は、通常電力モードと省電力モードとを切り換えて動作する。
省電力モードで動作している間、システムＬＳＩ１０００においては、セキュア記憶部１０３には電力が供給されず、記憶内容が消失する。そのため、システムＬＳＩ１０００は、省電力モードへ移行する際に、セキュア記憶部１０３のデータを、システムＬＳＩ１０００の外部にある外部メモリ５０１に退避させる。また、システムＬＳＩ１０００は、省電力モードから通常電力モードへ復帰する際に、外部メモリ５０１に退避させたデータを、セキュア記憶部１０３に安全に再設定する。
【００７２】
以下、セキュア記憶部１０３のデータを外部メモリ５０１に安全に退避させ、また、外部メモリ５０１に退避させたデータをセキュア記憶部１０３に安全に再設定することを特徴とする本発明のセキュア処理装置の一例であるシステムＬＳＩ１０００について、具体的に説明する。
【００７３】
１．２  構成
まず、組み込み機器１およびシステムＬＳＩ１０００の構成を具体的に説明する。
図１は、組み込み機器１のハードウェア構成を示す機能ブロック図である。
【００７４】
図１に示すように、組み込み機器１は、システムＬＳＩ１０００と、外部メモリ５０１と、バス暗号領域５０２と、電源Ａ５０３と、電源Ｂ５０４とを含む。
１．２．１  システムＬＳＩ１０００
システムＬＳＩ１０００は、固有情報保持部１０１と、保護格納部１０２と、セキュア記憶部１０３と、退避指示部１０４と、復帰指示部１０５と、暗号処理部１０６と、認証子生成部１０７と、バス暗号回路１０８と、バス暗号鍵設定レジスタ１０９と、ＣＰＵ１１０とからなるハードウェア構成を含む。システムＬＳＩ１０００の各構成要素は、内部バス１１１によってそれぞれ接続されている。
【００７５】
上述のシステムＬＳＩ１０００の各構成要素は、システムＬＳＩ１０００の内部に含まれており、システムＬＳＩ１０００の外部からの不正アクセスを防止する機構を有している。
【００７６】
１．２．２  外部メモリ５０１
外部メモリ５０１は、システムＬＳＩ１０００の外部に設けられた揮発性のメモリであり、著作権保護やセキュリティ面から見て重要度の低いデータと、システムＬＳＩ１０００から退避させるデータとを記憶する。
【００７７】
外部メモリ５０１は不正アクセスを防止する機構を有しておらず、外部メモリ５０１に記憶されているデータは、さまざまな機器からアクセスされうる。また、外部メモリ５０１は、図示するように、電源Ａ５０３と接続されている。組み込み機器１が動作している間、外部メモリ５０１には電源Ａ５０３から電力が供給されている。そのため、組み込み機器１が動作している間、外部メモリ５０１の記憶内容は消失しない。
【００７８】
外部メモリ５０１が記憶するデータ等を具体的に説明すると、図示するように、外部メモリ５０１は、通常プログラム２０５や、暗号化された退避データ２０６などを記憶する。
【００７９】
通常プログラム２０５は、例えば、組み込み機器１全体の処理を制御するためのプログラムであり、ＣＰＵ１１０により随時参照され、実行される。暗号化された退避データ２０６は、システムＬＳＩ１０００が省電力モードへ移行する際に、システムＬＳＩ１０００から外部メモリ５０１へと退避させるデータである。このデータは、システムＬＳＩ１０００の暗号処理部１０６により暗号化されている。外部メモリ５０１には、これら以外にも、通常プログラム２０５などが処理のために用いるデータ等を記憶する。
【００８０】
なお、通常プログラム２０５は、著作権保護を要する音楽データ等と比べると、セキュリティ面から見た場合にそれほど重要ではなく、また、組み込み機器１全体の動作を制御するものであるため比較的データサイズが大きい。そのため、セキュア記憶部１０３ではなく外部メモリ５０１において記憶することとする。
【００８１】
なお、暗号化された退避データ２０６は、より高いセキュリティを確保するためには、システムＬＳＩ１０００が省電力モードから通常電力モードへと復帰した後、速やかに外部メモリ５０１から削除されることが望ましい。
【００８２】
１．２．３  バス暗号領域５０２
バス暗号領域５０２は、システムＬＳＩ１０００の外部に設けられた揮発性のメモリであり、著作権保護やセキュリティ面から見て重要度の高いデータが記憶される。図示するように、バス暗号領域５０２は、電源Ａ５０３と接続され、電源Ａ５０３から電力が供給されている。そのため、組み込み機器１が動作している間、バス暗号領域５０２の記憶内容は消失しない。
【００８３】
バス暗号領域５０２は、セキュア記憶部１０３の記憶容量が十分でない等の問題により、システムＬＳＩ１０００のセキュア記憶部１０３に格納しきれないデータをシステムＬＳＩ１０００の外部で安全に保持するために用いられる。なお、バス暗号領域５０２は、さまざまな機器からアクセスされうるため、バス暗号領域５０２には、安全にデータが保持されるようにするため、バス暗号回路１０８により暗号化されたデータが記憶される。バス暗号回路１０８が暗号化に用いる鍵を、バス暗号鍵と言う。
【００８４】
本実施形態では、バス暗号領域５０２には、図示するように、セキュアアプリ２０７などが記憶される。セキュアアプリ２０７は、バス暗号回路１０８により暗号化されている。セキュアアプリ２０７は、著作権保護を実現するためのプログラムであり、具体的には、音楽データの権利情報を用いた処理や音楽データを復号するための復号鍵を用いた処理などを安全に行うためのものである。
【００８５】
バス暗号領域５０２に保持されているセキュアアプリ２０７は、ＣＰＵ１１０により読み出され、バス暗号回路１０８でバス暗号鍵を用いて復号化がなされる。ＣＰＵ１１０は、復号化処理がなされたプログラムを実行して上述の著作権保護を実現するための処理を行う。
【００８６】
１．２．４  電源Ａ５０３
電源Ａ５０３は、図示するように、外部メモリ５０１、バス暗号領域５０２、システムＬＳＩ１０００内部の保護格納部１０２に電力を供給し続ける電源である。電池等として実装される。電源Ａ５０３は、システムＬＳＩ１０００が省電力モードであれ通常電力モードであれ、上述の外部メモリ５０１、バス暗号領域５０２、保護格納部１０２に電力を供給する。
【００８７】
１．２．５  電源Ｂ５０４
電源Ｂ５０４は、図示するように、システムＬＳＩ１０００に電力を供給する電源である。ただし、電源Ｂ５０４は、システムＬＳＩ１０００が通常電力モードで動作している場合にのみ電力を供給し、システムＬＳＩ１０００が省電力モードである場合には電力を供給しない電源である。電源Ｂ５０４は、組み込み機器１の外部バッテリー等として実装される。
【００８８】
なお、電源Ａ５０３は、システムＬＳＩ１０００が省電力モード時において、所定のデータを保持するためにメモリ等に電力を供給するものである。ＣＰＵ１１０等を含み、プログラム等を実行するシステムＬＳＩ１０００に電力を供給する電源Ｂ５０４と比べると、電源Ａ５０３がメモリ等に供給するのに必要な電力は少なくて済む。そのため、電源Ａ５０３は、一般的には電源Ｂ５０４より小容量の電源であり、例えばコンデンサなどの、着脱不可のバッテリーとして実装される。
【００８９】
１．２．６  固有情報保持部１０１
次に、システムＬＳＩ１０００の内部に含まれる各構成要素について説明する。
固有情報保持部１０１は、システムＬＳＩ１０００に固有の固有情報を記憶する。固有情報とは、例えばシステムＬＳＩ１０００を識別するための識別子（ＩＤ）などである。
【００９０】
固有情報がシステムＬＳＩ１０００に固有であることを利用した処理を行う場合を考慮して、固有情報保持部１０１は、記憶している固有情報が消去されたり書き換えられたりされるのが困難となるような実装で実現されることが望ましい。例えば、固有情報保持部１０１は、マスクＲＯＭ（ReadOnly Memory）やヒューズである。
【００９１】
１．２．７  保護格納部１０２
保護格納部１０２は、認証子を格納するための認証子格納領域２０１を有し、後述する認証子生成部１０７が生成する認証子を、認証子格納領域２０１において格納する。認証子については、認証子生成部１０７とともに後述する。
【００９２】
保護格納部１０２は、例えば揮発性のメモリであり、図示するように、電源Ａ５０３と接続されている。電源Ａ５０３から電力の供給を受けているので、システムＬＳＩ１０００が省電力モードであるか否かにかかわらず、記憶内容が消失しない。また、保護格納部１０２は、セキュア記憶部１０３またはバス暗号領域５０２に格納されたプログラムに含まれる命令コードでのみアクセス可能な領域であり、外部からの不正なアクセスから保護されている。
【００９３】
認証子のデータサイズは、セキュア記憶部１０３に記憶されているデータのデータサイズよりも小さいので、後述するセキュア記憶部１０３と比較して、保護格納部１０２は、記憶容量が少ない。例えば、セキュア記憶部１０３の1/1000〜1/100程度の記憶容量を有している。そのため、セキュア記憶部１０３と比較して、必要なメモリ領域が少ない。
【００９４】
１．２．８  セキュア記憶部１０３
セキュア記憶部１０３は、秘匿すべき保護データの処理等をＣＰＵ１１０が行うために用いられるメモリである。
【００９５】
セキュア記憶部１０３は、揮発性のメモリであり、システムＬＳＩ１０００の外部からアクセスすることができないハードウェア構成を有している。
このようなハードウェア構成は、例えば、通常モードとセキュアモードとを切り換えて動作するＣＰＵ１１０と、セキュア記憶部１０３とで実現できる。詳細に説明すると、セキュア記憶部１０３は、物理的に分離されたメモリ空間であり、システムＬＳＩ１０００の外部からアクセスできず、セキュアモードで動作しているＣＰＵ１１０のみがアクセス可能である、という構成にすることでこのようなハードウェア構成を実現できる。
【００９６】
なお、本実施形態では、機密性が保証されるべきデータが、セキュア記憶部１０３に記憶される。これらのデータが暴露されるとデータの権利者等の不利益になるためである。具体的には、同図に示すように、セキュア記憶部１０３には、セキュアなプログラム２０２、セキュアなデータ２０３、バス暗号鍵２０４が記憶される。
【００９７】
ここで、セキュアなプログラム２０２は、システムＬＳＩ１０００の処理を制御するプログラムである。例えば、著作権管理がなされている音楽データを復号化して再生するためのプログラムや、システムＬＳＩ１０００が省電力モードへ移行するときに、セキュア記憶部１０３に記憶されているデータを外部メモリ５０１に退避させる処理を実行するためのプログラムなどがセキュアなプログラム２０２に含まれる。なお、セキュアなプログラム２０２のうち、省電力モード移行時にセキュア記憶部１０３に記憶されているデータを外部メモリ５０１に退避させる処理を実行するためのプログラムは、予めシステムＬＳＩ１０００内部の不揮発性のROM（ReadOnly Memory）に格納されていることとする。そして、システムＬＳＩ１０００が動作を開始したときに、ROMから読み出されてセキュア記憶部１０３にセキュアなプログラム２０２として記憶されることとする。なお、このROMは、システムＬＳＩ１０００の内部に含まれるため、システムＬＳＩ１０００の外部からの不正アクセスから保護されている。また、セキュアなデータ２０３は、例えば、暗号化のなされていない音楽データである。
【００９８】
セキュアなプログラム２０２が暴露されると、プログラムが改ざんされて、音楽データの再生回数の制限が無効にされる等の不正な処理が可能なプログラムが作成されるおそれがある。また、セキュアなデータ２０３が暴露されると、不正に複製がなされうる。そのため、これらプログラムやデータは、機密性が保証されるべきものであるといえる。
【００９９】
なお、バス暗号鍵２０４については、バス暗号回路１０８およびバス暗号鍵設定レジスタ１０９とともに詳しく説明する。
上述の通り、セキュア記憶部１０３は、外部からアクセスすることができないハードウェア構成を有しているため、セキュア記憶部１０３に記憶されるデータは、機密性が保証される。また、固有情報保持部１０１、保護格納部１０２も、上述のセキュア記憶部１０３と同様のハードウェア構成を有し、外部からアクセスすることができない。
【０１００】
また、セキュア記憶部１０３は、システムＬＳＩ１０００が省電力モードで動作している間、電力が供給されず、記憶内容が消失する。
１．２．９  退避指示部１０４
退避指示部１０４は、システムＬＳＩ１０００が通常電力モードから省電力モードに移行すべきであることを検知する。検知すると、セキュア記憶部１０３に記憶されているデータを外部メモリ５０１に退避させる指示を、ＣＰＵ１１０に通知する。
【０１０１】
なお、組み込み機器１は、図示しない操作部材がユーザにより押下されたり、操作指示を示す信号を受信したりすることで、ユーザの操作がなされたと検出する検出機構を有している。組み込み機器１は、システムＬＳＩ１０００が通常電力モードにより動作している時においては、ユーザの操作が所定時間以上検出されないと、システムＬＳＩ１０００を省電力モードに移行させる。また、組み込み機器１は、システムＬＳＩ１０００が省電力モードにより動作している時においては、ユーザの操作を検出することでシステムＬＳＩ１０００を通常電力モードへと復帰させる。
【０１０２】
詳細に説明すると、システムＬＳＩ１０００が通常電力モードの時において、上記検出機構が所定時間以上ユーザの操作を検出しなかったとき、組み込み機器１は、システムＬＳＩ１０００を省電力モードへ移行させるための移行制御信号を退避指示部１０４へ出力する。退避指示部１０４は、この移行制御信号を受け付けることで、システムＬＳＩ１０００が通常電力モードから省電力モードへ移行すべきことを検知する。
【０１０３】
また、組み込み機器１は、システムＬＳＩ１０００が省電力モードで動作している時に、上記検出機構によりユーザの操作を受け付けると、システムＬＳＩ１０００を通常電力モードへと復帰させるために、電源Ｂ５０４からシステムＬＳＩ１０００への電力の供給を再開する。システムＬＳＩ１０００への電力の供給が再開されると、組み込み機器１は、復帰指示部１０５に対して、復帰制御信号を出力する。
【０１０４】
１．２．１０  復帰指示部１０５
復帰指示部１０５は、復帰制御信号を受け付けることで、システムＬＳＩ１０００が省電力モードから通常電力モードへと復帰すべきであることを検知する。検知すると、外部メモリ５０１に退避されているデータをセキュア記憶部１０３に安全に再設定させる処理の実行をＣＰＵ１１０に指示する。
【０１０５】
詳細に説明すると、システムＬＳＩ１０００は、外部メモリ５０１に退避されているデータをセキュア記憶部１０３に安全に再設定するための復帰プログラムを記憶している。この復帰プログラムは、例えばシステムＬＳＩ１０００の外部からの不正アクセスを防止する機構を有している不揮発性メモリに記憶されており、システムＬＳＩ１０００が省電力モードにより動作している間も消失しない。
【０１０６】
システムＬＳＩ１０００を通常電力モードへと復帰させるために、電源Ｂ５０４からシステムＬＳＩ１０００への電力の供給が再開され、復帰指示部１０５が復帰制御信号を受け付けると、復帰指示部１０５は、上記復帰プログラムをメモリから読み出し、読み出した復帰プログラムをセキュア記憶部１０３に記憶させる。そして、復帰指示部１０５は、ＣＰＵ１１０に、セキュア記憶部１０３に記憶されている復帰プログラムの実行を開始するよう指示する。
【０１０７】
なお、外部メモリ５０１に退避されているデータをセキュア記憶部１０３に安全に再設定させる処理については、後述する。また、上記復帰プログラムは、不正な改ざんから保護されていることが望ましい。改ざん等がなされると、例えば一部の認証等の処理が省略され、外部メモリ５０１に退避されているデータをセキュア記憶部１０３に再設定する処理が安全に行われなくなる可能性があるためである。
【０１０８】
１．２．１１  暗号処理部１０６
暗号処理部１０６は、ＣＰＵ１１０の指示に従って、入力されたデータやプログラムの暗号化処理、および、復号化処理を行う。暗号処理部１０６は、システムＬＳＩ１０００の外部からの不正アクセスを防止する機構を有している。そのため、暗号処理部１０６が暗号化処理または復号化処理を行うための鍵や、暗号化または復号化処理中の中間データなどをシステムＬＳＩ１０００の外部の不正者が不正に取得することはできない。
【０１０９】
なお、暗号化や復号化に用いるアルゴリズムとしては、共通鍵方式のAES（Advanced Encryption Standard）や、公開鍵方式のRSA（Rivest Shamir Adleman）などが一例として挙げられるが、これらに限られない。
【０１１０】
１．２．１２  認証子生成部１０７
認証子生成部１０７は、ＣＰＵ１１０の指示に従って、入力されたデータやプログラムから、認証子を生成する。ここで、認証子とは、入力されたデータやプログラムを要約した値である。
【０１１１】
認証子は、システムＬＳＩ１０００の省電力モード移行時に外部メモリ５０１に退避させるデータと、通常電力モードへの復帰時にセキュア記憶部１０３に再設定するデータとが同一であるかを判断するために用いられる。
【０１１２】
そのため、認証子生成部１０７は、少なくとも、入力されたデータやプログラムに依存した値、望ましくは、一意に求まる値を生成すべきである。また、外部メモリ５０１に退避させたデータが改ざん等されていないことを保証するために、認証子生成部１０７は、あるデータと認証子の値が等しい別のデータが容易に生成できないような方法で認証子を生成することが望ましい。さらに、似たデータから近い値の認証子が生成されないこと、また、生成される認証子の値に偏りがないことが望ましい。
【０１１３】
そのため、本実施形態では、認証子生成部１０７は、入力されたデータやプログラムのハッシュ値を計算し、計算されたハッシュ値を認証子としている。ハッシュ値計算のアルゴリズムは、例えばSHA-1などを用いることとするが、これに限らない。
【０１１４】
１．２．１３  バス暗号回路１０８
バス暗号回路１０８は、バス暗号鍵設定レジスタ１０９を含んでいる。バス暗号鍵設定レジスタ１０９は、バス暗号鍵を格納するレジスタである。バス暗号鍵は、ＣＰＵ１１０が、セキュア記憶部１０３に記憶されているセキュアなプログラム２０２を実行することにより決定される。バス暗号回路１０８は、バス暗号領域５０２に書き込むプログラム等を、まず、バス暗号鍵設定レジスタ１０９に設定されたバス暗号鍵を用いて暗号化する。暗号化した後、バス暗号領域５０２にセキュアアプリ２０７などとして記憶させる。また、バス暗号回路１０８は、バス暗号領域５０２に保持されている暗号化されたプログラムやデータを読み出して、バス暗号鍵を用いて復号化する。
【０１１５】
なお、バス暗号領域５０２には、暗号化されたデータが格納されているが、バス暗号領域５０２は、さまざまな機器からアクセスされうるため、暗号化に用いたバス暗号鍵が固定だと、バス暗号領域５０２に記憶されているデータが解析等されることにより、暗号化に用いているバス暗号鍵が暴露されるおそれがある。そのため、バス暗号鍵は、随時変更されることが望ましい。バス暗号鍵が変更されると、バス暗号回路１０８は、バス暗号鍵設定レジスタ１０９の記憶内容を更新する。
【０１１６】
また、バス暗号鍵設定レジスタ１０９に保持されているバス暗号鍵は、セキュア記憶部１０３においてもバス暗号鍵２０４として記憶される。バス暗号鍵が変更されるたびに、変更後のバス暗号鍵が、バス暗号鍵設定レジスタ１０９とセキュア記憶部１０３に上書きされる。
【０１１７】
なお、バス暗号鍵変更のタイミングとしては、例えば組み込み機器１に電源が投入された時や、セキュアなプログラム２０２が動作を開始した時など様々なものが考えられる。このとき、セキュアなプログラム２０２の初期動作として、セキュアなプログラム２０２の実行開始時刻等を用いて鍵を生成するなどとすればよい。
【０１１８】
また、バス暗号回路１０８や、バス暗号鍵を格納しているバス暗号鍵設定レジスタ１０９等は、システムＬＳＩ１０００の内部に含まれ、システムＬＳＩ１０００の外部から不正アクセスできない。バス暗号領域５０２に記憶されている暗号化されたデータは、システムＬＳＩ１０００によって読み出され、システムＬＳＩ１０００の内部でしか復号化できないため、復号化後のデータはシステムＬＳＩ１０００のみが利用することができる。
【０１１９】
１．２．１４  ＣＰＵ１１０
ＣＰＵ１１０は、セキュア記憶部１０３やバス暗号領域５０２や外部メモリ５０１などに記憶されているプログラムに従って、システムＬＳＩ１０００の動作を制御する。
ＣＰＵ１１０は、動作モードとして通常モードとセキュアモードとを備え、通常モードとセキュアモードとを切り換えて動作する。セキュアモードで動作している時に限り、ＣＰＵ１１０は、セキュア記憶部１０３や保護格納部１０２や固有情報保持部１０１などのシステムＬＳＩ１０００内部のメモリへアクセスできる。また、セキュアモードで動作している時に限り、暗号処理部１０６やバス暗号回路１０８を用いて、機密性が保証されるべきデータに関する処理を行う。つまり、システムＬＳＩ１０００では、機密性が保証されるべきデータを用いた処理が行われる際に、システムＬＳＩ１０００内部の各構成要素にアクセス可能な主体および時期を、ＣＰＵ１１０がセキュアモードで動作している時に限定している。こうすることで、システムＬＳＩ１０００は、外部からの不正アクセスを防止する。
例えば、ＣＰＵ１１０は、動作モードをセキュアモードに切り換えてから、暗号化された音楽データをSDメモリカードから読み出して復号化し、再生する処理や、省電力モードへの移行時にセキュア記憶部１０３のデータ等を外部メモリ５０１に安全に退避させる処理や、通常電力モードへの復帰時に、外部メモリ５０１に退避させたデータをセキュア記憶部１０３に安全に再設定する処理などを行う。
【０１２０】
１．２．１５  内部バス１１１
内部バス１１１は、図示するように、システムＬＳＩ１０００内部の各構成要素を互いに接続する。
【０１２１】
１．２．１６  その他の構成要素
なお、組み込み機器１には、ユーザの操作を受け付ける操作受付部や、SDメモリカード等のフラッシュメモリを着脱できるようにするためのインタフェース等を備えるが、本発明の特徴部分ではないので、図１には図示せず、説明を省略する。
【０１２２】
１．３  動作
次に、本発明のセキュア処理装置の動作を説明する。
まず、システムＬＳＩ１０００が音楽データを安全に再生する処理を「１．３．１  音楽データの再生処理」で説明する。
【０１２３】
次に、システムＬＳＩ１０００が、省電力モードへの移行時にセキュア記憶部１０３に記憶されているデータ等を外部メモリ５０１に安全に退避させる処理と、通常電力モードへの復帰時に外部メモリ５０１に退避させたデータを安全にセキュア記憶部１０３に再設定する処理とを、「１．３．２  電力モード切り替え時の処理」「１．３．３  退避時の処理」「１．３．４  復帰時の処理」で説明する。
【０１２４】
１．３．１  音楽データの再生処理
以下、組み込み機器１がシステムＬＳＩ１０００によって音楽データを安全に再生する処理を説明する。なお、音楽データは、暗号化処理がされており、SDメモリカードに記憶されているものとする。
【０１２５】
また、システムＬＳＩ１０００は、バス暗号領域５０２に記憶されているセキュアアプリ２０７によって、SDメモリカードから音楽データを取得する。また、セキュアなプログラム２０２によって、音楽データの復号化を行い、復号化された音楽データをセキュア記憶部１０３に記憶させることとする。また、セキュア記憶部１０３に記憶される音楽データの再生も、セキュアなプログラム２０２によって行うこととする。
【０１２６】
以下、具体的に説明すると、組み込み機器１は、ユーザから音楽データの再生を指示する操作を受け付けると、システムＬＳＩ１０００により音楽データの再生処理を開始する。
【０１２７】
図２は、組み込み機器１がシステムＬＳＩ１０００によって音楽データを安全に再生する処理を示すフローチャートである。
図２に示すように、システムＬＳＩ１０００のＣＰＵ１１０は、バス暗号領域５０２に記憶されているセキュアアプリ２０７を実行することにより、組み込み機器１に接続されたSDメモリカードから、暗号化された音楽データを取得する（ステップＳ２０１）。
【０１２８】
ＣＰＵ１１０は、セキュア記憶部１０３からセキュアなプログラム２０２を読み出す。ＣＰＵ１１０は、セキュアなプログラム２０２を実行することで、暗号化された音楽データを復号するための復号鍵を算出する。算出された復号鍵を用いて、暗号化された音楽データを復号化する（ステップＳ２０２）。なお、音楽データ等の、暗号化されたコンテンツを復号するための復号鍵の算出方法は、従来から広く用いられており、本発明の特徴部分ではないため詳細な説明を省略する。
【０１２９】
ＣＰＵ１１０は、セキュアなプログラム２０２を実行することにより復号化された音楽データを、セキュア記憶部１０３に記憶させる（ステップＳ２０３）。
ＣＰＵ１１０は、セキュア記憶部１０３に記憶されている復号化された平文音楽データを再生する（ステップＳ２０４）。
【０１３０】
ＣＰＵ１１０は、全ての音楽データをSDメモリカードから取得したか否かを判断し（ステップＳ２０５）、取得したのであれば（ステップＳ２０５：ＹＥＳ）、処理を終了し、取得したのでなければ（ステップＳ２０５：ＮＯ）、ステップＳ２０１の処理に戻って、音楽データの取得、復号化、再生処理を繰り返し行う（ステップＳ２０１、Ｓ２０２、Ｓ２０３、Ｓ２０４）。
【０１３１】
１．３．２  電力モード切り替え時の処理
図３は、システムＬＳＩ１０００が省電力モードと通常電力モードとの切り替えを制御する処理の概要を示すフローチャートである。
【０１３２】
組み込み機器１が動作を開始し、システムＬＳＩ１０００が起動すると（ステップＳ３０１）、システムＬＳＩ１０００は、まず、通常電力モードで動作を開始する。
動作を開始すると、システムＬＳＩ１０００のＣＰＵ１１０は、省電力モード移行時にセキュア記憶部１０３に記憶されているデータを外部メモリ５０１に退避させる処理を実行するためのプログラムを、セキュアなプログラム２０２としてセキュア記憶部１０３に記憶させる。
【０１３３】
システムＬＳＩ１０００は、省電力モードに移行すべきことを退避指示部１０４によって検知するまで（ステップＳ３０２：ＮＯ）、通常電力モードで動作する。
省電力モードへ移行すべきことを退避指示部１０４が検知すると（ステップＳ３０２：ＹＥＳ）、セキュア記憶部１０３に記憶されているデータを外部メモリ５０１に退避させる指示が、退避指示部１０４からＣＰＵ１１０へ通知される。
【０１３４】
ＣＰＵ１１０は、退避指示部１０４から上記通知を受け付けると、セキュアなプログラム２０２を実行することにより、セキュア記憶部１０３に記憶されているデータを外部メモリ５０１に安全に退避させる処理を行う（ステップＳ３０３）。このステップＳ３０３の処理を、退避時の処理と呼ぶこととする。退避時の処理の詳細は、「１．３．３  退避時の処理」で説明する。退避時の処理が実行された後、システムＬＳＩ１０００は、省電力モードにより動作する。
【０１３５】
システムＬＳＩ１０００は、省電力モードにより動作している間、通常電力モードへと復帰すべきであることを復帰指示部１０５によって検知するまで（ステップＳ３０４：ＮＯ）、省電力モードで動作する。
【０１３６】
通常電力モードへ復帰すべきであることを復帰指示部１０５が検知すると（ステップＳ３０４：ＹＥＳ）、復帰指示部１０５は、外部メモリ５０１に退避されているデータをセキュア記憶部１０３に安全に再設定するための復帰プログラムをシステムＬＳＩ１０００内の不揮発性メモリから読み出して、セキュア記憶部１０３に記憶させる。復帰指示部１０５は、セキュア記憶部１０３に記憶された上記復帰プログラムの実行をＣＰＵ１１０に指示する。
【０１３７】
ＣＰＵ１１０は、復帰指示部１０５からの指示を受け付けて、上記復帰プログラムを実行することにより、外部メモリ５０１に退避されているデータをセキュア記憶部１０３に安全に再設定する処理を実行する（ステップＳ３０５）。このステップＳ３０５の処理を、復帰時の処理と呼ぶこととする。復帰時の処理の詳細は、「１．３．４  復帰時の処理」で説明する。復帰時の処理が実行された後、システムＬＳＩ１０００は、通常電力モードで動作し、ステップＳ３０２の処理を行う。
【０１３８】
１．３．３  退避時の処理
ステップＳ３０３の、退避時の処理を、詳しく説明する。
図４は、ＣＰＵ１１０がセキュア記憶部１０３に記憶されているデータを外部メモリ５０１に安全に退避させる処理を示すフローチャートである。
【０１３９】
以下、ＣＰＵ１１０が退避指示部１０４から通知を受け付けた後の処理について説明する。
ＣＰＵ１１０は、まず、セキュア記憶部１０３に記憶されているセキュアなプログラム２０２やセキュアなデータ２０３やバス暗号鍵２０４など、記憶内容の全てを入力データとして、認証子生成部１０７にハッシュ値を計算させる（ステップＳ４０１）。
【０１４０】
計算により得られたハッシュ値を保護格納部１０２の認証子格納領域２０１に格納する（ステップＳ４０２）。
ＣＰＵ１１０は、セキュア記憶部１０３に記憶されている全ての記憶内容を、固有情報保持部１０１に記憶されている固有情報を暗号鍵として用いて暗号処理部１０６に暗号化させる（ステップＳ４０３）。
【０１４１】
暗号化が完了したデータを、暗号化された退避データ２０６として外部メモリ５０１に記憶させる（ステップＳ４０４）。
ステップＳ４０４の処理が完了した後、ＣＰＵ１１０は、電源Ｂ５０４の電力供給を停止する（ステップＳ４０５）。こうすることで、システムＬＳＩ１０００への電力供給が停止して、退避時の処理が完了する。
【０１４２】
１．３．４  復帰時の処理
ステップＳ３０５の、復帰時の処理を、詳しく説明する。
図５は、外部メモリ５０１に退避されているデータをＣＰＵ１１０がセキュア記憶部１０３に安全に再設定する処理を示すフローチャートである。
【０１４３】
以下、ステップＳ３０４の処理、つまりシステムＬＳＩ１０００が通常電力モードへ復帰すべきことを復帰指示部１０５が検知した後の処理について説明する。なお、退避指示部１０４の説明で上述したように、復帰指示部１０５が検知を行う時には、組み込み機器１により、電源Ｂ５０４からシステムＬＳＩ１０００への電力の供給が再開されている。
【０１４４】
まず、復帰指示部１０５は、検知を行うと、復帰指示部１０５の説明で上述したように、復帰プログラムをメモリから読み出し、読み出した復帰プログラムをセキュア記憶部１０３に記憶させる（ステップＳ５０１）。復帰指示部１０５は、ＣＰＵ１１０に、復帰プログラムの実行を開始ずるよう指示する。
【０１４５】
ＣＰＵ１１０は、復帰指示部１０５からの指示を受け付けて、復帰プログラムを実行する。以下、復帰プログラムによる処理を説明すると、まず、ＣＰＵ１１０は、外部メモリ５０１に退避させた、暗号化された退避データ２０６を読み出す。読み出しを終えると、暗号化された退避データ２０６を、固有情報保持部１０１に記憶されている固有情報を復号鍵として用いて暗号処理部１０６に復号化させる（ステップＳ５０２）。
【０１４６】
復号化により得られたデータを入力データとして、認証子生成部１０７にハッシュ値を計算させる（ステップＳ５０３）。
ＣＰＵ１１０は、計算により得られたハッシュ値を、保護格納部１０２の認証子格納領域２０１に格納されているハッシュ値とを比較して、ハッシュ値が一致するか判断する（ステップＳ５０４）。
【０１４７】
判断の結果、ハッシュ値が一致する場合は（ステップＳ５０４：ＹＥＳ）、ＣＰＵ１１０は、復帰時の処理を正常終了する（ステップＳ５０５）。
判断の結果、ハッシュ値が異なる場合は（ステップＳ５０４：ＮＯ）、暗号化された退避データ２０６が改ざんされていると推定できるため、ＣＰＵ１１０は復帰時の処理を異常終了する（ステップＳ５０６）。このとき、ステップＳ５０２において復号化されたデータを破棄する。
【０１４８】
１．３．５  動作についての補足説明
（１）バス暗号鍵についての補足説明
上述の実施例では、バス暗号鍵設定レジスタ１０９に格納されているバス暗号鍵を、セキュア記憶部１０３においても記憶している。システムＬＳＩ１０００が省電力モードに移行する際には、セキュア記憶部１０３に記憶されているバス暗号鍵２０４も暗号化されて外部メモリ５０１に退避される。
【０１４９】
ここで、バス暗号鍵についても退避させる点について、補足説明する。
バス暗号領域５０２のデータは、上述のように、バス暗号鍵を鍵として用いて暗号化されている。また、上述のように、バス暗号鍵は、随時、変更されることが望ましい。
【０１５０】
ここで、バス暗号鍵を随時変更することとする。そうすると、システムＬＳＩ１０００が省電力モードへ移行する際に、バス暗号鍵が消失すると、通常電力モードに復帰した後、もともと用いていたバス暗号鍵が得られなくなり、バス暗号領域５０２のデータを利用できなくなる。そのため、通常電力モードに復帰した後、バス暗号領域５０２のデータを用いた処理を継続して行うには、バス暗号領域５０２に、再度、データを記憶させる等の処理が必要となる。つまり、省電力モードと通常電力モードとが切り換わる前後において、バス暗号領域５０２のデータを用いた処理を連続して実行できず、終了させるより他ないという問題がある。
【０１５１】
そこで、上述の実施形態のように、バス暗号鍵をも退避させておくと、省電力モードと通常電力モードとが切り換わっても、バス暗号領域５０２のデータを用いた処理を連続して実行することができる。
【０１５２】
また、バス暗号鍵は、セキュア記憶部１０３においても記憶されているが、必ずしもセキュア記憶部１０３に記憶させておく必要はない。省電力モードへの移行時に、バス暗号鍵設定レジスタ１０９から読み出せば、バス暗号鍵を退避させることができる。
【０１５３】
ただし、セキュア記憶部１０３にバス暗号鍵２０４として記憶させておくと、省電力モードへ移行する際に、バス暗号鍵設定レジスタ１０９からバス暗号鍵を読み出さなくてもよいため、外部メモリ５０１へのデータの退避を高速で行えるという利点がある。
【０１５４】
したがって、データを退避させる処理を行いつつシステムＬＳＩ１０００への供給電力が低下するような場合などにおいて、データの退避が完了する前に電力の供給が停止してデータを消失してしまうなどの危険を低くすることができる。
【０１５５】
また、上述の実施形態では、バス暗号回路１０８は１つとして説明してきたが、バス暗号領域５０２においてセキュアアプリ２０７が複数記憶されている場合、それぞれのセキュアアプリ２０７ごとに異なる鍵を用いて暗号化や復号化を行うほうが、セキュリティの観点からは好ましい。ある鍵が解析等により暴露されても、その他の鍵を用いているセキュアアプリ２０７には影響がないからである。
【０１５６】
すなわち、セキュアアプリ２０７のひとつひとつに、バス暗号回路１０８とバス暗号鍵設定レジスタ１０９との組が対応するよう、バス暗号回路１０８を複数備えることとしてもよい。あるいは、バス暗号鍵設定レジスタ１０９を複数備えることとしてもよい。
【０１５７】
この場合、セキュア記憶部１０３に、複数のバス暗号鍵を、連続したメモリアドレスによってまとめて記憶させておくと、外部メモリ５０１へデータを退避させる際、複数のバス暗号鍵設定レジスタ１０９のそれぞれからバス暗号鍵を読み出すよりも高速でバス暗号鍵の退避を完了することができる。バス暗号鍵設定レジスタ１０９に格納されているバス暗号鍵は、システムＬＳＩ１０００から見た場合、仮想メモリ空間において、ばらばらに配置されており、バス暗号鍵を探索する必要があるからである。
（２）固有情報を用いて暗号化する点についての補足説明
上述の実施例では、システムＬＳＩ１０００に固有の固有情報を暗号鍵として用いて、外部メモリ５０１に退避させるデータの暗号化を行っている。
【０１５８】
こうすると、システムＬＳＩ１０００のそれぞれにおいて固有情報が異なるので、それぞれのシステムＬＳＩ１０００で暗号化のために用いる暗号鍵が異なることになる。そのため、あるシステムＬＳＩ１０００で暗号化されたデータが、別のシステムＬＳＩ１０００では復号化されないようにすることができる。
（３）音楽データの再生処理についての補足説明
なお、図２に示した処理のうち、音楽データの再生を行うステップＳ２０１、ステップＳ２０２、ステップＳ２０３の処理は、システムＬＳＩ１０００の内部の構成要素、つまりシステムＬＳＩ１０００の外部からなされる不正アクセスから保護された構成要素でのみ行われる。そのため、音楽データの再生処理を安全に行うことができる。
【０１５９】
また、暗号化された音楽データを復号化するための復号鍵は、音楽データとともにメモリカードに記録されていることとしてもよい。このとき、復号鍵は、不正に復号鍵が利用されるのを避けるため、暗号化されていることが望ましい。
【０１６０】
１．３．６  動作の変形例
（１）ハッシュ値の計算タイミングの変形例
省電力モードへの移行時において、認証子生成部１０７がハッシュ値を計算するタイミングについて、上述の実施例では、セキュア記憶部１０３に記憶されているデータを暗号処理部１０６で暗号化する前にハッシュ値を計算することとしている。すなわち、平文のデータに基づいてハッシュ値を計算している。
【０１６１】
この他にも、まず、セキュア記憶部１０３に記憶されている平文のデータを暗号処理部１０６で暗号化し、暗号化により得られたデータに基づいて、認証子生成部１０７によりハッシュ値を計算することとしてもよい。この場合、通常電力モードへの復帰時においては、ＣＰＵ１１０は、まず、暗号化された退避データ２０６を外部メモリ５０１から読み出す。次に、暗号化された退避データ２０６に基づいて、認証子生成部１０７によりハッシュ値を計算する。計算により得られたハッシュ値が、省電力モードへの移行時に算出したハッシュ値と同一であれば、暗号化された退避データ２０６を暗号処理部１０６で復号化してセキュア記憶部１０３に再設定し、復帰時の処理を正常終了する。ハッシュ値が同一でなければ、暗号化された退避データ２０６の復号化処理を行わずに異常終了する。
【０１６２】
このような構成であると、暗号化された退避データ２０６が改ざんされたか否かを、処理の負荷が大きい復号化を実行する前に改ざん確認することができるので、改ざんチェックを迅速に行うことができる。
【０１６３】
なお、上述の実施例で説明したように、平文のデータに基づいてハッシュ値を計算する方法にも利点はある。
上記変形例のように、暗号化したデータに基づいてハッシュ値を計算する場合、暗号化して外部メモリ５０１に書き出した直後から、暗号化したデータに基づいてハッシュ値を計算するまでの間に、外部メモリ５０１の暗号化データが改ざんされると、改ざんされたデータに基づいてハッシュ値が計算されることとなり、改ざんを検出できないおそれがある。特に、セキュア記憶部１０３の記憶容量が小さい場合、暗号化したデータをセキュア記憶部１０３に記憶させつつハッシュ値を計算する処理を行うことが困難な場合もありうる。
【０１６４】
したがって、上記変形例の場合、暗号化したデータのハッシュ値を認証子格納領域２０１に格納するまで、外部メモリ５０１への書き出しを行わないことが望ましい。
これに対し、上述の実施例では、ハッシュ値の計算が完了して認証子格納領域２０１に格納するまでの処理がシステムＬＳＩ１０００の内部で行われるので、改ざんされたデータに基づいてハッシュ値を計算するような事態は発生しない。
（２）復帰時の処理が異常終了した場合
なお、復帰時の処理において、異常終了した場合（ステップＳ５０６）、システムＬＳＩ１０００の動作を停止することとしてもよいし、異常終了したことを示す情報を外部に通知したり表示したりしてもよい。
【０１６５】
これにより、不正な改ざんがなされたことを、例えば著作権者等に通知することができる。このとき、システムＬＳＩ１０００の固有情報をあわせて外部に通知すると、著作権者等は、システムＬＳＩ１０００を含んでいる組み込み機器１を特定できる。その結果、不正な改ざんがなされた組み込み機器１に対して、コンテンツの再生禁止等の対策をとることができる。
【０１６６】
また、この他にも、ステップＳ５０４において、ハッシュ値が一致しないと判断された場合（ステップＳ５０４：ＮＯ）、セキュア記憶部１０３をダミーデータで上書きして、セキュア記憶部１０３に記憶されているデータを完全に消去してもよい。さらに、外部メモリ５０１に暗号化された退避データ２０６が残っていれば、これも同様に消去するとしてもよい。
【０１６７】
こうすることで、改ざんされたデータを組み込み機器１から完全に消去することができるので、過去に改ざんされたデータをＣＰＵ１１０が誤って再び実行するといった危険をなくすことができる。
【０１６８】
なお、システムＬＳＩ１０００を通常電力モードへ復帰させた後において、外部メモリ５０１に、暗号化された退避データ２０６が残ったままであると、不正な解析者が外部メモリ５０１に残っている、暗号化された退避データ２０６を解析する可能性がある。そのため、ステップＳ５０４における判断の結果にかかわらず、ステップＳ５０４の処理の後、外部メモリ５０１の、暗号化された退避データ２０６を消去することとしてもよい。
（３）退避時の処理・復帰時の処理
上述の実施例では、退避時の処理は、ＣＰＵ１１０がセキュアなプログラム２０２を実行することにより行っている。また、復帰時の処理は、ＣＰＵ１１０が復帰プログラムを実行することにより行っている。
【０１６９】
この他にも、例えば、退避指示部１０４や復帰指示部１０５がＣＰＵ１１０を介さずに直接にシステムＬＳＩ１０００の各構成要素を制御することとしてもよい。
また、退避指示部１０４や復帰指示部１０５の機能を、ＣＰＵ１１０が含んでいることとしてもよい。
【０１７０】
すなわち、何らかの態様で上述の実施例のような退避時の処理や復帰時の処理を行う機能的構成がシステムＬＳＩ１０００に備わっていればよく、上述の実施例の構成に限られない。
（４）暗号化に使用する鍵
セキュア記憶部１０３の記憶内容を暗号化および復号化するための鍵は、システムＬＳＩ１０００に固有の固有情報でなくとも、複数のシステムＬＳＩ１０００のそれぞれに共通する鍵を用いて暗号化等を行ってもよい。
【０１７１】
また、固有情報のデータ長が長い場合は、暗号化等の処理負荷が大きくなるため、ハッシュ値をとるなどしてデータ長を縮めた値を、鍵として用いてもよい。
また、固有情報保持部１０１に記憶されている固有情報でなくとも、セキュアなプログラム２０２が鍵を生成する処理を行ってもよいし、システムＬＳＩ１０００の外部から鍵を取得することとしてもよい。例えば、ユーザが入力するデータや、組み込み機器１内の別の領域に記憶されている、何らかの構成要素に固有の情報などを用いることが考えられる。このようにすると、固有情報を持たないシステムＬＳＩに対しても本発明を適用することが出来る。
（５）退避の対象
上記実施例では、セキュア記憶部１０３の全ての記憶内容を、外部メモリ５０１に退避させる対象としている。
【０１７２】
この他にも、外部メモリ５０１に空き容量がない場合は、特に重要なデータなど、一部のデータのみを退避し、残りを破棄することとしてもよい。
また、セキュア記憶部１０３の記憶内容のすべてをひとまとめに暗号化したりハッシュ値を計算したりするのではなく、セキュアなプログラム２０２や、セキュアなデータ２０３や、バス暗号鍵２０４などを単位として別々に暗号化やハッシュ値を計算してもよい。この場合、通常電力モードへの復帰時に、それぞれのハッシュ値を用いて改ざん確認を行う必要があるため、ハッシュ値と退避にかかるデータを識別する情報とを対応付けて記憶しておく。
【０１７３】
また、セキュア記憶部１０３の記憶内容に限らず、例えばシステムＬＳＩ１０００にあるレジスタの値についても、上述の退避時の処理や復帰時の処理により、外部メモリ５０１に退避させ、また、レジスタに再設定することとしてもよい。これにより、システムＬＳＩ１０００の動作状態を、より完全に外部メモリ５０１に退避させることができ、通常電力モードへの復帰時に、処理の再開を完全に行うことができる。
（６）退避先
上記実施例では、セキュア記憶部１０３の記憶内容を、外部メモリ５０１に退避させることとしている。
【０１７４】
この他にも、何らかのセキュリティ対策が施されているメモリに退避させれば、より安全性が高まる。
また、退避させるデータを、外部メモリ５０１のみに限る必要はなく、一部のデータは外部メモリ５０１に退避させ、その他のデータはバス暗号領域５０２に退避させるなどとしてもよい。例えば、バス暗号鍵２０４と、バス暗号鍵設定レジスタ１０９にバス暗号鍵を設定するためのプログラムを外部メモリ５０１に退避させ、他のデータをバス暗号領域５０２に退避させる等とする。この場合、通常電力モードへの復帰時には、まず外部メモリ５０１からバス暗号鍵２０４をセキュア記憶部１０３に再設定する。次に、バス暗号鍵をバス暗号鍵設定レジスタ１０９に設定してから、バス暗号領域５０２に退避させていたデータをセキュア記憶部１０３に再設定する。
【０１７５】
１．４  その他の変形例
（１）電源Ａ５０３、電源Ｂ５０４
電源Ａ５０３および電源Ｂ５０４について補足すると、上述の構成に限らず、電源Ａ５０３と電源Ｂ５０４が同一電源であり、システムＬＳＩ１０００が省電力モードかそうでないかによって、電力の供給先を制御するとしてもよい。また、電源Ｂ５０４は、システムＬＳＩ１０００に対して電力を供給することとしているが、組み込み機器１に含まれる他の構成要素に電力を供給することとしてもよい。
（２）省電力モード、通常電力モードの切り換えの契機
上述の実施例では、組み込み機器１は、ユーザからの操作があるか否かに基づいて、システムＬＳＩ１０００を省電力モードに移行させ、通常電力モードへ復帰させることとしている。
【０１７６】
この他にも、システムＬＳＩ１０００が省電力モードへの移行の判断等を行ってもよい。
システムＬＳＩ１０００が省電力モードへの移行の判断等を行う場合、例えば、電源Ｂ５０４から供給される電圧の変化に基づいて、電圧が所定の閾値を下回れば省電力モードへの移行を検知し、所定の閾値を上回れば通常電力モードへの復帰を検知するとしてもよい。
【０１７７】
なお、この場合、電源Ｂ５０４からの電力供給が、システムＬＳＩ１０００の退避時の処理が完了するまでに途絶えると、データの退避ができなくなる。そのため、退避時の処理が完了するのに必要な時間、電力を供給する予備の電源やコンデンサなどを予め用意してもよい。
【０１７８】
また、電源Ｂ５０４の電圧の変化に基づいて、通常電力モードへの復帰を検知する場合、電源Ｂ５０４から電力が供給されていない状態で検知を行うこととなるので、電圧の変化を検出できないおそれがある。そのため、電源Ｂ５０４の電圧の変化を検出して通常電力モードへの復帰を検知する機構に対しては、電源Ｂ５０４とは異なる電源から電力を供給することが望ましい。例えば、電源Ａ５０３から供給することとしてもよい。
【０１７９】
この他にも、省電力モードへの移行の判断等は、通常プログラム２０５が制御することとしてもよいし、システムＬＳＩ１０００に専用のハードウェアにより行っても良いし、退避指示部１０４や復帰指示部１０５に判断機能を持たせても良い。
【０１８０】
また、復帰指示部１０５を備えなくとも、例えば、通常電力モードへの復帰の検知を、システムＬＳＩ１０００の外部の機構により行い、検知時に、外部メモリ５０１に記憶させておいた復帰プログラムを、ＣＰＵ１１０に実行させるよう割り込みをかけることとしてもよい。こうすることで、復帰指示部１０５そのものを省くことができ、余分なハードウェア構成を省いてシステムＬＳＩ１０００の集積度を高めることができる。
【０１８１】
また、システムＬＳＩ１０００内のROMに、復帰プログラムを記憶させておき、通常電力モードからの復帰時にＣＰＵ１１０がROMから直接復帰プログラムを読み出して実行することとしてもよい。この構成によると、セキュア記憶部１０３に復帰プログラムを記憶させるステップを省略することができるので、より高速に復帰時の処理を実行することができる。このとき、復帰プログラムを、書き換え困難なROMに格納しておくと、復帰プログラム自体の改ざんを防ぐことができる。
（３）メモリ
上述の実施例では、外部メモリ５０１、バス暗号領域５０２、保護格納部１０２は、いずれも揮発性のメモリであるとしたが、省電力モード時においても記憶内容が消失しないのであれば、これに限られない。例えば、不揮発性のメモリや、ハードディスクなどでもよい。なお、不揮発性のメモリやハードディスクを用いると、電力を常時供給しなくとも記憶内容が保持されるので、電源Ａ５０３は不要となる。
【０１８２】
また、外部メモリ５０１、バス暗号領域５０２、保護格納部１０２は、揮発性のメモリである場合、組み込み機器１の電源がオフであれば記憶内容が消失するので、組み込み機器１の電源がオフの間にこれらのメモリのデータが解析される等のおそれはなくなる。
【０１８３】
また、セキュア記憶部１０３は、揮発性のメモリであるとしたが、不揮発性のメモリであってもよい。この場合においても、上述の実施例のように、省電力モードへの移行時にセキュア記憶部１０３の記憶内容を暗号化して外部メモリ５０１に退避させることで、不正な解析者の攻撃を避けることができる。
【０１８４】
具体的に説明すると、セキュア記憶部１０３が不揮発性のメモリである場合は、システムＬＳＩ１０００が省電力モード時においてもセキュア記憶部１０３の記憶内容が消失しない。そのため、省電力モードへの移行の前後において、セキュア記憶部１０３を用いた処理を継続して行うという点のみを考慮すると、上述の実施例のようにセキュア記憶部１０３の記憶内容を暗号化して外部メモリ５０１へ退避させる必要性は大きくない。
【０１８５】
しかし、システムＬＳＩ１０００がセキュア記憶部１０３を用いた処理を実行している途中でシステムＬＳＩ１０００が省電力モードに移行すると、処理途中のデータがセキュア記憶部１０３に残ることとなる。そのため、不正な解析者が、システムＬＳＩ１０００を省電力モードに移行させて、その間に、セキュア記憶部１０３の記憶内容を、時間をかけて解析しようと試みる可能性がある。セキュア記憶部１０３の記憶内容は、通常、機密性を保持すべき、価値の高いデータである。
【０１８６】
そこで、セキュア記憶部１０３を不揮発性のメモリとする場合は、システムＬＳＩ１０００を省電力モードに移行させる時に、上述の実施例のようにセキュア記憶部１０３の記憶内容を暗号化して外部メモリに退避させるとともに、セキュア記憶部１０３の記憶内容を消去するとよい。こうすることにより、セキュア記憶部１０３が不揮発性のメモリである場合に、システムＬＳＩ１０００がセキュア記憶部１０３を用いた処理の実行途中でシステムＬＳＩ１０００を省電力モードに切り換えた上で、処理途中のセキュア記憶部１０３の記憶内容を解析しようとする不正な解析者の攻撃を避けることができる。
（４）ソフトウェアまたはハードウェアによる実装
上記の実施例では、システムＬＳＩ１０００の各構成要素は、ハードウェアにより実装することを想定しているが、これに限らない。例えば、退避指示部１０４や復帰指示部１０５等を、ソフトウェアにより実装することとしてもよい。例えば、省電力モードへの移行や通常電力モードへの復帰を検知する機能を、セキュアなプログラム２０２、セキュアアプリ２０７、通常プログラム２０５等に持たせ、ＣＰＵ１１０が実行することにより、退避指示部１０４等の機能を実装することができる。
【０１８７】
これにより、ハードウェアリソースを少なくできるので、システムＬＳＩ１０００の集積度を、さらに高めることができる。
さらに、ソフトウェアとハードウェアとを併用して、省電力モードへの移行等の検知の精度を、より高める構成としてもよい。
【０１８８】
要するに、上記実施例の各構成要素を、実現可能な範囲でソフトウェアとして実装すると、必要なハードウェアが減るので回路の集積度が減る。また、ハードウェアとして実装すると、ソフトウェアによる実装と比べて処理を高速化することができる。特に、ユーザの利便性が求められる場合には、退避時の処理や復帰時の処理をハードウェアにより高速化すると有用である。
（５）その他
システムＬＳＩは集積度の違いにより、ＩＣ、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもあるが、システムＬＳＩ１０００を上記のいずれの集積度で実現した場合も本発明に含まれることは言うまでもない。また、ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ(Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【０１８９】
さらには、半導体技術の進歩または派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて構成要素の集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
【０１９０】
本発明は、上記に示す方法であるとしてもよい。また、これらの方法をＣＰＵの処理として実現するプログラムであるとしてもよいし、前記コンピュータプログラムからなるディジタル信号であるとしてもよい。
【０１９１】
また、本発明は、前記コンピュータプログラムまたは前記ディジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙＤｉｓｃ）、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記ディジタル信号であるとしてもよい。
【０１９２】
また、これらの実施の形態および変形例の組合せであってもよい。
【産業上の利用可能性】
【０１９３】
本発明は、省電力モードと通常電力モードにより動作し、秘匿すべきデータを安全に処理する機構を有するシステムＬＳＩ等において、データの安全性を確保しつつ、省電力化と処理の高速化を図ることができる。したがって、これらシステムＬＳＩ等を組み込んで著作権にかかるデータの処理を行う機器等において特に有用である。
【図面の簡単な説明】
【０１９４】
【図１】組み込み機器１のハードウェア構成を示す機能ブロック図。
【図２】組み込み機器１がシステムＬＳＩ１０００によって音楽データを安全に再生する処理を示すフローチャート。
【図３】システムＬＳＩ１０００が省電力モードと通常電力モードとの切り替えを制御する処理の概要を示すフローチャート。
【図４】ＣＰＵ１１０がセキュア記憶部１０３に記憶されているデータを外部メモリ５０１に安全に退避させる処理を示すフローチャート。
【図５】外部メモリ５０１に退避されているデータをＣＰＵ１１０がセキュア記憶部１０３に安全に再設定する処理を示すフローチャート。
【符号の説明】
【０１９５】
１        組み込み機器
１０１    固有情報保持部
１０２    保護格納部
１０３    セキュア記憶部
１０４    退避指示部
１０５    復帰指示部
１０６    暗号処理部
１０７    認証子生成部
１０８    バス暗号回路
１０９    バス暗号鍵設定レジスタ
１１０    ＣＰＵ
１１１    内部バス
５０１    外部メモリ
５０２    バス暗号領域
５０３    電源Ａ
５０４    電源Ｂ
１０００  システムＬＳＩ
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2007091492.tif 000008
【図２】
2007091492.tif 000009
【図３】
2007091492.tif 000010
【図４】
2007091492.tif 000011
【図５】
2007091492.tif 000012
【国際調査報告】
2007091492.tif 000013
2007091492.tif 000014