(57)【要約】  【課題】  暗号鍵を別個に備えたセキュアモジュールで生成して、メインメモリに書き込む情報を暗号化することにより、複数のプログラム間で情報の受け渡しを行う場合であっても、受け渡しに係る情報の権利保護アルゴリズムの漏洩を防止することができるＩＣチップ、ボード、情報処理装置及びコンピュータプログラムを提供する。  【解決手段】  内部に格納されている情報を外部から参照することができない構造であるセキュアモジュールを有するＩＣチップをセキュリティボードに備えた情報処理装置において、セキュアモジュールは、情報を受け渡しするプログラムを実行する外部ＣＰＵから通信暗号鍵の供給を要求する暗号鍵要求信号を外部から受信し、暗号鍵要求信号を受信する都度、複数のプログラム間で受け渡しする情報を暗号化する通信暗号鍵を生成し、生成した通信暗号鍵を暗号鍵要求信号の送信元のプログラムを実行する外部ＣＰＵへ供給する。【選択図】      図２
2007013677.tif 000002
【特許請求の範囲】
【請求項１】
内部に格納されている情報を外部から参照することができない構造を有するセキュアモジュールを有するＩＣチップにおいて、
前記セキュアモジュールは、
情報を受け渡しするプログラムを実行する外部ＣＰＵから通信暗号鍵の供給を要求する暗号鍵要求信号を外部から受信する手段と、
前記暗号鍵要求信号を受信する都度、複数のプログラム間で受け渡しする情報を暗号化する通信暗号鍵を生成する手段と、
生成した通信暗号鍵を前記暗号鍵要求信号の送信元のプログラムを実行する外部ＣＰＵへ供給する手段と
を備えることを特徴とするＩＣチップ。
【請求項２】
前記セキュアモジュールは、前記通信暗号鍵を生成した履歴情報を記憶する手段と、
前記履歴情報を照会して必要とする通信暗号鍵を抽出する手段と、
抽出した通信暗号鍵を前記暗号鍵要求信号の送信元のプログラムを実行する外部ＣＰＵへ供給する手段と
を備えることを特徴とする請求項１記載のＩＣチップ。
【請求項３】
請求項１又は２記載のＩＣチップを搭載したことを特徴とするボード。
【請求項４】
外部から参照することが可能なメモリと、
該メモリに書き込まれたプログラムを実行するＣＰＵとを備え、
前記メモリに書き込まれた複数のプログラム間で情報を受け渡しする情報処理装置において、
請求項３記載のボードを搭載し、
供給された通信暗号鍵を用いて受け渡しする情報を暗号化する手段と、
暗号化された情報を送受信する手段と、
受信した暗号化された情報を復号する手段と
を備えることを特徴とする情報処理装置。
【請求項５】
前記セキュアモジュールは、前記通信暗号鍵を生成した履歴情報を記憶する手段と、
前記履歴情報を照会して必要とする通信暗号鍵を抽出する手段と、
抽出した通信暗号鍵を前記暗号鍵要求信号の送信元のプログラムを実行する外部ＣＰＵへ供給する手段と
を備えることを特徴とする請求項４記載の情報処理装置。
【請求項６】
演算回路を、内部に格納されている情報を外部から参照することができないセキュアモジュールとして機能させるコンピュータプログラムにおいて、
前記演算回路を、
情報を受け渡しするプログラムを実行する外部ＣＰＵから通信暗号鍵の供給を要求する暗号鍵要求信号を外部から受信する手段、
前記暗号鍵要求信号を受信する都度、複数のプログラム間で受け渡しする情報を暗号化する通信暗号鍵を生成する手段、及び
生成した通信暗号鍵を前記暗号鍵要求信号の送信元のプログラムを実行する外部ＣＰＵへ供給する手段
として機能させることを特徴とするコンピュータプログラム。
【請求項７】
前記演算回路を、
前記通信暗号鍵を生成した履歴情報を記憶する手段、
前記履歴情報を照会して必要とする通信暗号鍵を抽出する手段、及び
抽出した通信暗号鍵を前記暗号鍵要求信号の送信元のプログラムを実行する外部ＣＰＵへ供給する手段
として機能させることを特徴とする請求項６記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のソフトウェアプログラム間でメモリを介してデータを受け渡しする場合に、第三者のメモリ監視及び解析による不正使用、改竄等を防止することができるＩＣチップ、ボード、情報処理装置及びコンピュータプログラムに関する。
【背景技術】
【０００２】
近年、ブロードバンドインターネット、ディジタル放送等が普及しつつあり、配信されたコンテンツ（主にディジタルＡＶコンテンツ）の安全性を保障する権利保護技術が着目されている。専用の受信機を介して配信されたコンテンツを再生する場合、比較的容易にコンテンツの無断複製等を抑制することが可能であるのに対し、特にパーソナルコンピュータ（以下、ＰＣ）のようなオープンアーキテクチャである電子機器を用いて再生する場合、基本的に第三者によるメモリ解析が容易であり、コンテンツの安全性を確保することは困難である。しかし、ＰＣは、ブロードバンドインターネットの主要な端末装置の１つであり、コンテンツの安全性を保証することができた場合、インターネット全体でのディジタルＡＶコンテンツの配信可能性が飛躍的に向上する。
【０００３】
従来、ＰＣに搭載しているソフトウェアプログラムの権利保護は、安全性を保障するアルゴリズムの秘匿化処理、アルゴリズムの解析を困難にする難読化処理等を実行することが主流であった。前者は、例えば暗号鍵を用いる暗号化処理であり、後者は、例えば演算処理結果が同一である複雑な処理を実行することにより、演算過程の解析を困難にする処理である。
【特許文献１】特開２００１−３２５１５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、ＰＣ上でソフトウェアプログラムを実行する場合、必ずメインメモリ上に展開して実行することから、メインメモリの記憶内容を複写し、複写した内容を解析することにより、時間さえかければ上述した権利保護アルゴリズムの詳細を把握することが可能となる。また、例えばメインメモリの記憶内容の解析により、暗号化処理で用いる暗号鍵の保存場所が特定された場合、該ソフトウェアプログラムの権利保護アルゴリズムが漏洩する。
【０００５】
そこで、例えば外部から記憶内容を参照することができない構造を有するセキュアモジュールを別個に備え、メインメモリの記憶内容の解析により、暗号化処理で用いる暗号鍵の保存場所が特定された場合であっても、暗号鍵をセキュアモジュール内に記憶しておくことにより、該ソフトウェアプログラムの権利保護アルゴリズムが漏洩することを防止する情報処理装置が開発されている。
【０００６】
セキュアモジュールを別個に備えることにより、単一のソフトウェアプログラムで情報を処理する限り、権利保護アルゴリズムの漏洩の可能性はほとんどない。しかしながら、アプリケーションによっては同時に複数のソフトウェアプログラムが実行され、相互間で情報の受け渡しを行うものが存在する。この場合、受け渡し時のメインメモリの記憶内容を解析することにより、暗号化処理された情報を取得される可能性が残されている。
【０００７】
本発明は斯かる事情に鑑みてなされたものであり、暗号鍵を別個に備えたセキュアモジュールで生成して、メインメモリに書き込む情報を暗号化することにより、複数のプログラム間で情報の受け渡しを行う場合であっても、受け渡しに係る情報の権利保護アルゴリズムの漏洩を防止することができるＩＣチップ、ボード、情報処理装置及びコンピュータプログラムを提供することを目的とする。
【０００８】
また本発明は、別個に備えたセキュアモジュールで生成した暗号鍵の生成履歴をセキュアモジュール内に記憶しておくことにより、暗号鍵が変更された場合であっても、過去の生成履歴を解析することにより容易に暗号鍵を再取得することができ、セキュリティレベルを高く維持した状態で、復号することができない事態が発生することを防止することができるＩＣチップ、ボード、情報処理装置及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために第１発明に係るＩＣチップは、内部に格納されている情報を外部から参照することができない構造を有するセキュアモジュールを有するＩＣチップにおいて、前記セキュアモジュールは、情報を受け渡しするプログラムを実行する外部ＣＰＵから通信暗号鍵の供給を要求する暗号鍵要求信号を外部から受信する手段と、前記暗号鍵要求信号を受信する都度、複数のプログラム間で受け渡しする情報を暗号化する通信暗号鍵を生成する手段と、生成した通信暗号鍵を前記暗号鍵要求信号の送信元のプログラムを実行する外部ＣＰＵへ供給する手段とを備えることを特徴とする。
【００１０】
また、第２発明に係るＩＣチップは、第１発明において、前記セキュアモジュールは、前記通信暗号鍵を生成した履歴情報を記憶する手段と、前記履歴情報を照会して必要とする通信暗号鍵を抽出する手段と、抽出した通信暗号鍵を前記暗号鍵要求信号の送信元のプログラムを実行する外部ＣＰＵへ供給する手段とを備えることを特徴とする。
【００１１】
また、第３発明に係るボードは、第１発明又は第２発明のＩＣチップを搭載したことを特徴とする。
【００１２】
また、第４発明に係る情報処理装置は、外部から参照することが可能なメモリと、該メモリに書き込まれたプログラムを実行するＣＰＵとを備え、前記メモリに書き込まれた複数のプログラム間で情報を受け渡しする情報処理装置において、第３発明のボードを搭載し、供給された通信暗号鍵を用いて受け渡しする情報を暗号化する手段と、暗号化された情報を送受信する手段と、受信した暗号化された情報を復号する手段とを備えることを特徴とする。
【００１３】
また、第５発明に係る情報処理装置は、第４発明において、前記セキュアモジュールは、前記通信暗号鍵を生成した履歴情報を記憶する手段と、前記履歴情報を照会して必要とする通信暗号鍵を抽出する手段と、抽出した通信暗号鍵を前記暗号鍵要求信号の送信元のプログラムを実行する外部ＣＰＵへ供給する手段とを備えることを特徴とする。
【００１４】
また、第６発明に係るコンピュータプログラムは、演算回路を、内部に格納されている情報を外部から参照することができないセキュアモジュールとして機能させるコンピュータプログラムにおいて、前記演算回路を、情報を受け渡しするプログラムを実行する外部ＣＰＵから通信暗号鍵の供給を要求する暗号鍵要求信号を外部から受信する手段、前記暗号鍵要求信号を受信する都度、複数のプログラム間で受け渡しする情報を暗号化する通信暗号鍵を生成する手段、及び生成した通信暗号鍵を前記暗号鍵要求信号の送信元のプログラムを実行する外部ＣＰＵへ供給する手段として機能させることを特徴とする。
【００１５】
また、第７発明に係るコンピュータプログラムは、第６発明において、前記演算回路を、前記通信暗号鍵を生成した履歴情報を記憶する手段、前記履歴情報を照会して必要とする通信暗号鍵を抽出する手段、及び抽出した通信暗号鍵を前記暗号鍵要求信号の送信元のプログラムを実行する外部ＣＰＵへ供給する手段として機能させることを特徴とする。
【００１６】
第１発明、第３発明、第４発明及び第６発明では、内部に格納されている情報を外部から参照することができない構造を有するセキュアモジュールを有しており、セキュアモジュールは、情報を受け渡しするプログラムを実行する外部ＣＰＵから通信暗号鍵の供給を要求する暗号鍵要求信号を外部から受信し、暗号鍵要求信号を受信する都度、複数のプログラム間で受け渡しする情報を暗号化する通信暗号鍵を生成し、生成した通信暗号鍵を暗号鍵要求信号の送信元のプログラムを実行する外部ＣＰＵへ供給する。これにより、情報を受け渡しするプログラムから、受け渡しする情報を暗号化するための通信暗号鍵の生成を要求されたセキュアモジュールは、要求のある都度固有の通信暗号鍵を生成し、生成した通信暗号鍵で受け渡しする情報を暗号化することから、プログラム間で情報の受け渡しをする中途のメモリ記憶内容、すなわちプログラムの実行中のメモリ内容を解析して通信暗号鍵を特定することが困難になる。また、暗号鍵を特定することができた場合であっても、適宜通信暗号鍵を変更することができることから、特定した通信暗号鍵を用いて情報を復号することができず、コンテンツの不正流出を効果的に抑制することが可能となる。
【００１７】
第２発明、第５発明及び第７発明では、セキュアモジュールは、通信暗号鍵を生成した履歴情報を記憶し、履歴情報を照会して必要とする通信暗号鍵を抽出し、抽出した通信暗号鍵を暗号鍵要求信号の送信元へ供給する。これにより、変更した通信暗号鍵の履歴情報を、外部から参照することができないセキュアモジュールに記憶しておくことにより、暗号化に用いた通信暗号鍵が最新の通信暗号鍵でない場合であっても、復号可能な通信暗号鍵を容易に抽出することができ、情報を復号することができなくなる事態を防止することが可能となる。
【発明の効果】
【００１８】
第１発明、第３発明、第４発明及び第６発明によれば、情報を受け渡しするプログラムから、受け渡しする情報を暗号化するための通信暗号鍵の生成を要求されたセキュアモジュールは、要求のある都度固有の通信暗号鍵を生成し、生成した通信暗号鍵で受け渡しする情報を暗号化することから、プログラム間で情報の受け渡しをする中途のメモリ記憶内容、すなわちプログラムの実行中のメモリ内容を解析して暗号鍵を特定することが困難になる。また、通信暗号鍵を特定することができた場合であっても、適宜通信暗号鍵を変更することができることから、特定した通信暗号鍵を用いて情報を復号することができず、コンテンツの不正流出を効果的に抑制することが可能となる。
【００１９】
第２発明、第５発明及び第７発明によれば、変更した通信暗号鍵の履歴情報を、外部から参照することができないセキュアモジュールに記憶しておくことにより、暗号化に用いた通信暗号鍵が最新の通信暗号鍵でない場合であっても、復号可能な通信暗号鍵を容易に抽出することができ、情報を復号することができなくなる事態を防止することが可能となる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明をその実施の形態を示す図面に基づいて具体的に説明する。
【００２１】
(実施の形態１)
図１は、本発明の実施の形態１に係る情報処理装置の構成を示すブロック図である。実施の形態１に係る情報処理装置は、主ＣＰＵ１１を中心とした演算処理部に、セキュリティを維持するためのセキュリティボード２を接続してある。セキュリティボード２は、内部バス１６と接続インタフェース２１を介して接続してあり、ＩＣチップ３を搭載している。情報処理装置１は、少なくとも主ＣＰＵ１１、ＲＡＭ１２、記憶手段１３、入力手段１４、出力手段１５、及びセキュリティボード２で構成してあり、内部バス１６を介して相互に接続されている。
【００２２】
主ＣＰＵ１１は、内部バス１６を介して情報処理装置１の上述したようなハードウェア各部と接続されており、上述したハードウェア各部を制御するとともに、ハードディスク等の記憶手段１３に記憶されたプログラム、例えばディジタルコンテンツを受信するプログラム、受信したディジタルコンテンツを暗号化／復号するプログラム、複数のプログラム間でデータを受け渡しするプログラム等をＲＡＭ１２へ展開することにより、種々のソフトウェア的機能を実行する。
【００２３】
ＲＡＭ１２は、ＤＲＡＭ等で構成され、記憶手段１３に記憶してあるプログラム、例えばディジタルコンテンツを受信するプログラム、受信したディジタルコンテンツを暗号化／復号するプログラム、複数のプログラム間でデータを受け渡しするプログラム等を実行時に展開し、実行時に発生する一時的なデータを記憶する。
【００２４】
入力手段１４は、情報処理装置１を操作するために必要な文字キー、テンキー、各種のファンクションキー等を備えたキーボード、マウス等の入力媒体である。出力手段１５は、液晶表示装置、ＣＲＴディスプレイ等の表示装置、レーザプリンタ、ドットプリンタ等の印刷装置等である。
【００２５】
セキュリティボード２は、少なくとも主ＣＰＵ１１と内部バス１６を介して接続する接続インタフェース２１及びＩＣチップ３で構成してある。ＩＣチップ３は、内部に格納されている情報を外部から参照することができない構造を有するセキュアモジュールとして構成されており、少なくとも副ＣＰＵ３１、ＲＡＭ３２、記憶手段３３を備え、記憶手段３３は、暗号鍵要求信号を受け付けた場合にプログラム間で受け渡しする情報を暗号化処理するための通信暗号鍵を生成するプログラム、生成した通信暗号鍵を供給するプログラム等を記憶している。
【００２６】
副ＣＰＵ３１は、内部バス３４を介してＩＣチップ３の上述したようなハードウェア各部と接続されており、上述したハードウェア各部を制御するとともに、記憶手段３３に記憶された各種のプログラムをＲＡＭ３２へ展開することにより、種々のソフトウェア的機能を実行する。
【００２７】
以下、上述した構成の情報処理装置１における主ＣＰＵ１１及び副ＣＰＵ３１の処理について説明する。本実施の形態１では、複数のプログラム間でディジタルコンテンツを受け渡しする場合について説明する。なお、本実施の形態１では、実行されるプログラムが正当なプログラムである旨は、別の手段により保証されているものとする。また、プログラムが展開されているＲＡＭ１２のアドレス、個々のプログラムに対する通信暗号鍵を書き込むＲＡＭ１２のアドレスに関する情報は、別の手段により事前にＩＣチップ３のＲＡＭ３２に記憶されているものとする。
【００２８】
図２は、本発明の実施の形態１に係るＩＣチップ３の副ＣＰＵ３１の処理手順を示すフローチャートである。情報処理装置１の主ＣＰＵ１１は、複数のプログラム間でディジタルコンテンツを受け渡しする場合、ディジタルコンテンツを送出する側のプログラムの指示により暗号鍵要求信号をＩＣチップ３に対して送信する。ＩＣチップ３の副ＣＰＵ３１は、暗号鍵要求信号を受け付ける(ステップＳ２０１：ＹＥＳ)。
【００２９】
なお、情報処理装置１の主ＣＰＵ１１が、ディジタルコンテンツを送出する側のプログラムの指示により暗号鍵要求信号をＩＣチップ３に対して送信するタイミングは、上述のようにディジタルコンテンツの受け渡しが発生する都度に限定されるものではなく、一定間隔で送信しても良い。また、暗号鍵要求信号は処理コマンドの一部であっても良い。
【００３０】
図３は、暗号鍵要求信号のデータ構成の例示図である。暗号鍵要求信号は、少なくともプログラムを識別する情報、通信暗号鍵を要求する旨を示す情報、通信暗号鍵を書き込むＲＡＭ１２上のアドレス情報を含む。プログラムを識別する情報はプログラムＩＤでも良いし、プログラムを展開しているＲＡＭ１２上のアドレス範囲であっても良い。通信暗号鍵を要求する旨を示す情報は、例えば要求フラグを‘１’に設定して送信する。通信暗号鍵を書き込むＲＡＭ１２上のアドレス情報を指定した場合、指定したアドレスに通信暗号鍵が書き込まれる。一方、アドレス情報を指定しない場合、事前にＩＣチップ３のＲＡＭ３２に記憶してあるアドレス群に通信暗号鍵を書き込むことになる。
【００３１】
暗号鍵要求信号を受け付けた副ＣＰＵ３１は、通信暗号鍵を生成する（ステップＳ２０２)。副ＣＰＵ３１は、生成した通信暗号鍵をＩＣチップ３の記憶手段３３に記憶する(ステップＳ２０３)。
【００３２】
副ＣＰＵ３１は、事前にＩＣチップ３のＲＡＭ３２に記憶してあるＲＡＭ１２のアドレス群へ生成した通信暗号鍵を書き込む(ステップＳ２０４)。情報処理装置１の主ＣＰＵ１１は、指定したアドレスに通信暗号鍵が書き込まれたか否かを監視しておき、主ＣＰＵ１１が書き込まれたと判断した場合、主ＣＰＵ１１は、受け渡すディジタルコンテンツを書き込まれた通信暗号鍵を用いて暗号化処理する。主ＣＰＵ１１は、暗号化されたディジタルコンテンツを他のプログラムへと受け渡し、受け取った他のプログラムは、所定のアドレスに書き込まれた通信暗号鍵を用いてディジタルコンテンツを復号する。
【００３３】
以上のように本実施の形態１によれば、通信暗号鍵の生成処理は、外部から内部を参照することができないＩＣチップ３内で実行されており、暗号化処理及び復号処理は、従来の手法で保護されているプログラム実行領域内で実行されていることから、プログラム間でディジタルコンテンツを受け渡す場合であっても、用いられた通信暗号鍵を特定することが困難となる。また、通信暗号鍵を特定することができた場合であっても、適宜通信暗号鍵を変更することができることから、特定した通信暗号鍵を用いて情報を復号することができず、コンテンツの不正流出を効果的に抑制することが可能となる。
【００３４】
なお、生成した通信暗号鍵をＲＡＭ１２に書き込む場合、書き込むアドレスを毎回変更しても良い。この場合、通信暗号鍵を書き込む時点で、次回に書き込むアドレスに関する情報を付与しても良いし、通信暗号鍵を書き込むアドレスに実際に通信暗号鍵を書き込んだアドレスへのポインタを書き込み、実際の通信暗号鍵を書き込むアドレスは、副ＣＰＵ３１がランダムに割当てても良い。
【００３５】
また、通信暗号鍵そのものを別の暗号鍵を用いて暗号化しても良い。図４は通信暗号鍵を暗号化する場合のＩＣチップ３の副ＣＰＵ３１の処理手順を示すフローチャートである。図４では、公開鍵方式を用いて通信暗号鍵を暗号化する場合について説明する。もちろん、公開鍵方式に限定するものではなく、秘密鍵方式であっても良い。
【００３６】
ＩＣチップ３内のＲＡＭ３２に公開鍵と対応する秘密鍵を記憶しておく。そして、情報処理装置１の主ＣＰＵ１１は、公開鍵で通信暗号鍵を暗号化する暗号鍵を暗号化し、暗号鍵要求信号とは異なる信号によりＩＣチップ３へ送信する。
【００３７】
副ＣＰＵ３１は、暗号化された暗号鍵を受信し（ステップＳ４０１）、ＲＡＭ３２に記憶してある秘密鍵を用いて受信した暗号鍵を復号する（ステップＳ４０２）。副ＣＰＵ３１は、復号した暗号鍵をプログラムＩＤと関連付けてＲＡＭ３２に記憶する(ステップＳ４０３)。副ＣＰＵ３１は、暗号鍵要求信号を受信して通信暗号鍵を生成した時点で、ＲＡＭ３２に記憶してある暗号鍵を用いて通信暗号鍵を暗号化し、ＲＡＭ１２に記憶する。これにより、プログラム毎に異なる暗号鍵を記憶することが可能となり、プログラム毎に異なる暗号鍵を用いて１つの通信暗号鍵を暗号化してＲＡＭ１２に記憶する。
【００３８】
暗号鍵要求信号により通信暗号鍵が生成された場合、通信暗号鍵がＲＡＭ１２の所定のアドレスに書き込まれたと判断した主ＣＰＵ１１は、暗号化された通信暗号鍵を、既知である暗号鍵を用いて復号し、復号した通信暗号鍵を用いて、受け取ったディジタルコンテンツを暗号化／復号する。
【００３９】
このようにすることで、ディジタルコンテンツを受け渡しする複数のプログラム間で、より安全に通信暗号鍵を受け渡しすることができ、コンテンツの不正流出をより効果的に抑制することが可能となる。
【００４０】
（実施の形態２）
図５は、本実施の形態２に係る情報処理装置の構成を示すブロック図である。実施の形態２に係る情報処理装置は、実施の形態１と同様、主ＣＰＵ１１を中心とした演算処理部に、セキュリティを維持するためのセキュリティボード２を接続してある。セキュリティボード２は、内部バス１６と接続インタフェース２１を介して接続してあり、ＩＣチップ３を搭載している。情報処理装置１は、少なくとも主ＣＰＵ１１、ＲＡＭ１２、記憶手段１３、入力手段１４、出力手段１５、及びセキュリティボード２で構成してあり、内部バス１６を介して相互に接続されている。
【００４１】
セキュリティボード２は、少なくとも主ＣＰＵ１１と内部バス１６を介して接続する接続インタフェース２１及びＩＣチップ３で構成してある。ＩＣチップ３は、内部に格納されている情報を外部から参照することができない構造を有するセキュアモジュールとして構成されており、少なくとも副ＣＰＵ３１、ＲＡＭ３２、記憶手段３３を備え、記憶手段３３は、暗号鍵要求信号を受け付けた場合にプログラム間で受け渡しする情報を暗号化処理するための通信暗号鍵を生成するプログラム、生成した暗号鍵を供給するプログラム等を記憶している。また、生成した通信暗号鍵を識別する情報、例えば通信暗号鍵番号と対応付けて、生成した通信暗号鍵を記憶手段３３の履歴情報記憶部３３１に記憶する。
【００４２】
副ＣＰＵ３１は、内部バス３４を介してＩＣチップ３の上述したようなハードウェア各部と接続されており、上述したハードウェア各部を制御するとともに、記憶手段３３に記憶された各種のプログラムをＲＡＭ３２へ展開することにより、種々のソフトウェア的機能を実行する。
【００４３】
以下、上述した構成の情報処理装置１における主ＣＰＵ１１及び副ＣＰＵ３１の処理について説明する。本実施の形態２では、複数のプログラム間でディジタルコンテンツを受け渡しする場合について説明する。なお、本実施の形態２では、実行されるプログラムが正当なプログラムである旨は、別の手段により保証されているものとする。また、プログラムが展開されているＲＡＭ１２のアドレス、個々のプログラムに対する通信暗号鍵を書き込むＲＡＭ１２のアドレスに関する情報は、別の手段により事前にＩＣチップ３のＲＡＭ３２に記憶されているものとする。
【００４４】
図６は、本発明の実施の形態２に係るＩＣチップ３の副ＣＰＵ３１の処理手順を示すフローチャートである。情報処理装置１の主ＣＰＵ１１は、複数のプログラム間でディジタルコンテンツを受け渡しする場合、ディジタルコンテンツを送出する側のプログラムの指示により暗号鍵要求信号をＩＣチップ３に対して送信する。ＩＣチップ３の副ＣＰＵ３１は、暗号鍵要求信号を受け付ける(ステップＳ６０１：ＹＥＳ)。
【００４５】
なお、情報処理装置１の主ＣＰＵ１１が、ディジタルコンテンツを送出する側のプログラムの指示により暗号鍵要求信号をＩＣチップ３に対して送信するタイミングは、上述のようにディジタルコンテンツの受け渡しが発生する都度に限定されるものではなく、一定間隔で送信しても良い。また、暗号鍵要求信号は処理コマンドの一部であっても良い。また、暗号鍵要求信号のデータ構成は実施の形態１と同様である。
【００４６】
暗号鍵要求信号を受け付けた副ＣＰＵ３１は、暗号鍵要求信号に通信暗号鍵番号が含まれているか否かを判断する(ステップＳ６０２)。副ＣＰＵ３１が、通信暗号鍵番号が含まれていないと判断した場合(ステップＳ６０２：ＮＯ)、副ＣＰＵ３１は、通信暗号鍵が未生成である、すなわちディジタルコンテンツのプログラム間での受け渡し前であると判断し、通信暗号鍵を生成する(ステップＳ６０３)。副ＣＰＵ３１は、通信暗号鍵に通信暗号鍵番号を付し、通信暗号鍵と対応付けて、ＩＣチップ３の記憶手段３３に記憶する(ステップＳ６０４)。また、副ＣＰＵ３１は、通信暗号鍵及び通信暗号鍵番号を履歴情報として、ＩＣチップ３の履歴情報記憶部３３１に記憶する(ステップＳ６０５)。
【００４７】
副ＣＰＵ３１は、事前にＩＣチップ３のＲＡＭ３２に記憶してあるＲＡＭ１２のアドレス群へ生成した通信暗号鍵及び通信暗号鍵番号を書き込む(ステップＳ６０６)。情報処理装置１の主ＣＰＵ１１は、指定したアドレスに通信暗号鍵が書き込まれたか否かを監視しておき、主ＣＰＵ１１が書き込まれたと判断した場合、主ＣＰＵ１１は、受け渡すディジタルコンテンツを書き込まれた通信暗号鍵を用いて暗号化処理する。主ＣＰＵ１１は、暗号化されたディジタルコンテンツを他のプログラムへと受け渡し、受け取った他のプログラムは、所定のアドレスに書き込まれた通信暗号鍵を用いてディジタルコンテンツを復号する。受け取ったディジタルコンテンツの通信暗号鍵が、ＲＡＭ１２に記憶してある通信暗号鍵と異なる場合、ディジタルコンテンツを受け取ったプログラムの指示により、主ＣＰＵ１１は、暗号鍵要求信号をＩＣチップ３に対して送信する。主ＣＰＵ３１は、暗号鍵要求信号に必要な通信暗号鍵番号を含めて送信する。
【００４８】
ＩＣチップ３の副ＣＰＵ３１は、暗号鍵要求信号を受け付け(ステップＳ６０１)、通信暗号鍵番号が含まれているか否かを判断する(ステップＳ６０２)。副ＣＰＵ３１が、通信暗号鍵番号が含まれていると判断した場合(ステップＳ６０２：ＹＥＳ)、副ＣＰＵ３１は、通信暗号鍵が生成済みである、すなわちディジタルコンテンツのプログラム間での受け渡し後であると判断し、通信暗号鍵番号に対応する通信暗号鍵を履歴情報記憶部３３１から抽出することが可能であるか否かを判断する(ステップＳ６０７)。
【００４９】
副ＣＰＵ３１が、通信暗号鍵番号に対応する通信暗号鍵を履歴情報記憶部３３１から抽出することが可能であると判断した場合(ステップＳ６０７：ＹＥＳ)、副ＣＰＵ３１は、対応する通信暗号鍵を抽出して(ステップＳ６０８)、暗号化されたディジタルコンテンツの復号鍵（秘密鍵方式では同一の鍵）として、抽出した通信暗号鍵及び通信暗号鍵番号を暗号鍵要求信号で指定されたＲＡＭ１２のアドレスへ書き込む(ステップＳ６０９)。
【００５０】
副ＣＰＵ３１が、通信暗号鍵番号に対応する通信暗号鍵を記憶手段３３から抽出することが可能ではないと判断した場合(ステップＳ６０７：ＮＯ)、副ＣＰＵ３１は、対応する通信暗号鍵が存在しないものと判断し、処理を終了する。
【００５１】
情報処理装置１の主ＣＰＵ１１は、指定したアドレスに通信暗号鍵が書き込まれたか否かを監視しておき、主ＣＰＵ１１が書き込まれたと判断した場合、主ＣＰＵ１１は、受け取ったディジタルコンテンツを書き込まれた通信暗号鍵を用いて復号処理する。
【００５２】
以上のように本実施の形態２によれば、プログラム間でディジタルコンテンツを受け渡す場合、通信暗号鍵で受け渡しするディジタルコンテンツを暗号化した後、通信暗号鍵が新たに生成されたときでも、履歴情報を参照することにより過去に生成された通信暗号鍵（復号鍵）を確実に取得することができ、暗号化されたディジタルコンテンツが復号できない事態等の発生を未然に防止することが可能となる。また、主ＣＰＵ１１が副ＣＰＵ３１に対してコマンドを発行することにより、明示的に履歴情報の取得要求を出した場合であっても、プログラム間で受け渡しするディジタルコンテンツの安全を確保しつつ、過去の通信暗号鍵を確実に取得することが可能となる。
【００５３】
なお、生成した通信暗号鍵をＲＡＭ１２に書き込む場合、書き込むアドレスを毎回変更しても良い。この場合、通信暗号鍵及び通信暗号鍵番号を書き込む時点で、次回に書き込むアドレスに関する情報を付与しても良いし、通信暗号鍵を書き込むアドレスに実際に通信暗号鍵を書き込んだアドレスへのポインタを書き込み、実際の通信暗号鍵を書き込むアドレスは、副ＣＰＵ３１がランダムに割当てても良い。
【００５４】
また、実施の形態１と同様に、通信暗号鍵そのものを別の暗号鍵を用いて暗号化しても良く、この場合も同様の効果が期待できる。
【００５５】
上述した実施の形態１及び２では、通信暗号鍵を情報処理装置１のＲＡＭ１２へセキュアモジュールの副ＣＰＵ３１の指示により書き込む場合について説明しているが、斯かる構成に限定されるものではなく、ＣＰＵ間で相互に送受信する等、安全を確保しつつ通信暗号鍵を受け渡しすることが可能な方法であれば何でも良い。また、ＩＣチップ３が扱う通信暗号鍵が１個である場合について説明しているが、複数の通信暗号鍵を扱う場合であっても同様の効果が期待できる。
【図面の簡単な説明】
【００５６】
【図１】本発明の実施の形態１に係る情報処理装置の構成を示すブロック図である。
【図２】本発明の実施の形態１に係るＩＣチップの副ＣＰＵの処理手順を示すフローチャートである。
【図３】暗号鍵要求信号のデータ構成の例示図である。
【図４】通信暗号鍵を暗号化する場合のＩＣチップの副ＣＰＵの処理手順を示すフローチャートである。
【図５】本実施の形態２に係る情報処理装置の構成を示すブロック図である。
【図６】本発明の実施の形態２に係るＩＣチップの副ＣＰＵの処理手順を示すフローチャートである。
【符号の説明】
【００５７】
１  情報処理装置
２  セキュリティボード
３  ＩＣチップ
１１  主ＣＰＵ
１２、３２  ＲＡＭ
１３、３３  記憶手段
１４  入力手段
１５  出力手段
１６、３４  内部バス
２１  接続インタフェース
３１  副ＣＰＵ
３０  内部バス
３３１  履歴情報記憶部
【図１】
2007013677.tif 000003
【図２】
2007013677.tif 000004
【図３】
2007013677.tif 000005
【図４】
2007013677.tif 000006
【図５】
2007013677.tif 000007
【図６】
2007013677.tif 000008