説明

ICチップ、ボード、情報処理装置及びコンピュータプログラム

【課題】 暗号鍵を別個に備えたセキュアモジュールで生成して、メインメモリに書き込む情報を暗号化することにより、複数のプログラム間で情報の受け渡しを行う場合であっても、受け渡しに係る情報の権利保護アルゴリズムの漏洩を防止することができるICチップ、ボード、情報処理装置及びコンピュータプログラムを提供する。
【解決手段】 内部に格納されている情報を外部から参照することができない構造であるセキュアモジュールを有するICチップをセキュリティボードに備えた情報処理装置において、セキュアモジュールは、情報を受け渡しするプログラムを実行する外部CPUから通信暗号鍵の供給を要求する暗号鍵要求信号を外部から受信し、暗号鍵要求信号を受信する都度、複数のプログラム間で受け渡しする情報を暗号化する通信暗号鍵を生成し、生成した通信暗号鍵を暗号鍵要求信号の送信元のプログラムを実行する外部CPUへ供給する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のソフトウェアプログラム間でメモリを介してデータを受け渡しする場合に、第三者のメモリ監視及び解析による不正使用、改竄等を防止することができるICチップ、ボード、情報処理装置及びコンピュータプログラムに関する。
【背景技術】
【0002】
近年、ブロードバンドインターネット、ディジタル放送等が普及しつつあり、配信されたコンテンツ(主にディジタルAVコンテンツ)の安全性を保障する権利保護技術が着目されている。専用の受信機を介して配信されたコンテンツを再生する場合、比較的容易にコンテンツの無断複製等を抑制することが可能であるのに対し、特にパーソナルコンピュータ(以下、PC)のようなオープンアーキテクチャである電子機器を用いて再生する場合、基本的に第三者によるメモリ解析が容易であり、コンテンツの安全性を確保することは困難である。しかし、PCは、ブロードバンドインターネットの主要な端末装置の1つであり、コンテンツの安全性を保証することができた場合、インターネット全体でのディジタルAVコンテンツの配信可能性が飛躍的に向上する。
【0003】
従来、PCに搭載しているソフトウェアプログラムの権利保護は、安全性を保障するアルゴリズムの秘匿化処理、アルゴリズムの解析を困難にする難読化処理等を実行することが主流であった。前者は、例えば暗号鍵を用いる暗号化処理であり、後者は、例えば演算処理結果が同一である複雑な処理を実行することにより、演算過程の解析を困難にする処理である。
【特許文献1】特開2001−325150号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかし、PC上でソフトウェアプログラムを実行する場合、必ずメインメモリ上に展開して実行することから、メインメモリの記憶内容を複写し、複写した内容を解析することにより、時間さえかければ上述した権利保護アルゴリズムの詳細を把握することが可能となる。また、例えばメインメモリの記憶内容の解析により、暗号化処理で用いる暗号鍵の保存場所が特定された場合、該ソフトウェアプログラムの権利保護アルゴリズムが漏洩する。
【0005】
そこで、例えば外部から記憶内容を参照することができない構造を有するセキュアモジュールを別個に備え、メインメモリの記憶内容の解析により、暗号化処理で用いる暗号鍵の保存場所が特定された場合であっても、暗号鍵をセキュアモジュール内に記憶しておくことにより、該ソフトウェアプログラムの権利保護アルゴリズムが漏洩することを防止する情報処理装置が開発されている。
【0006】
セキュアモジュールを別個に備えることにより、単一のソフトウェアプログラムで情報を処理する限り、権利保護アルゴリズムの漏洩の可能性はほとんどない。しかしながら、アプリケーションによっては同時に複数のソフトウェアプログラムが実行され、相互間で情報の受け渡しを行うものが存在する。この場合、受け渡し時のメインメモリの記憶内容を解析することにより、暗号化処理された情報を取得される可能性が残されている。
【0007】
本発明は斯かる事情に鑑みてなされたものであり、暗号鍵を別個に備えたセキュアモジュールで生成して、メインメモリに書き込む情報を暗号化することにより、複数のプログラム間で情報の受け渡しを行う場合であっても、受け渡しに係る情報の権利保護アルゴリズムの漏洩を防止することができるICチップ、ボード、情報処理装置及びコンピュータプログラムを提供することを目的とする。
【0008】
また本発明は、別個に備えたセキュアモジュールで生成した暗号鍵の生成履歴をセキュアモジュール内に記憶しておくことにより、暗号鍵が変更された場合であっても、過去の生成履歴を解析することにより容易に暗号鍵を再取得することができ、セキュリティレベルを高く維持した状態で、復号することができない事態が発生することを防止することができるICチップ、ボード、情報処理装置及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するために第1発明に係るICチップは、内部に格納されている情報を外部から参照することができない構造を有するセキュアモジュールを有するICチップにおいて、前記セキュアモジュールは、情報を受け渡しするプログラムを実行する外部CPUから通信暗号鍵の供給を要求する暗号鍵要求信号を外部から受信する手段と、前記暗号鍵要求信号を受信する都度、複数のプログラム間で受け渡しする情報を暗号化する通信暗号鍵を生成する手段と、生成した通信暗号鍵を前記暗号鍵要求信号の送信元のプログラムを実行する外部CPUへ供給する手段とを備えることを特徴とする。
【0010】
また、第2発明に係るICチップは、第1発明において、前記セキュアモジュールは、前記通信暗号鍵を生成した履歴情報を記憶する手段と、前記履歴情報を照会して必要とする通信暗号鍵を抽出する手段と、抽出した通信暗号鍵を前記暗号鍵要求信号の送信元のプログラムを実行する外部CPUへ供給する手段とを備えることを特徴とする。
【0011】
また、第3発明に係るボードは、第1発明又は第2発明のICチップを搭載したことを特徴とする。
【0012】
また、第4発明に係る情報処理装置は、外部から参照することが可能なメモリと、該メモリに書き込まれたプログラムを実行するCPUとを備え、前記メモリに書き込まれた複数のプログラム間で情報を受け渡しする情報処理装置において、第3発明のボードを搭載し、供給された通信暗号鍵を用いて受け渡しする情報を暗号化する手段と、暗号化された情報を送受信する手段と、受信した暗号化された情報を復号する手段とを備えることを特徴とする。
【0013】
また、第5発明に係る情報処理装置は、第4発明において、前記セキュアモジュールは、前記通信暗号鍵を生成した履歴情報を記憶する手段と、前記履歴情報を照会して必要とする通信暗号鍵を抽出する手段と、抽出した通信暗号鍵を前記暗号鍵要求信号の送信元のプログラムを実行する外部CPUへ供給する手段とを備えることを特徴とする。
【0014】
また、第6発明に係るコンピュータプログラムは、演算回路を、内部に格納されている情報を外部から参照することができないセキュアモジュールとして機能させるコンピュータプログラムにおいて、前記演算回路を、情報を受け渡しするプログラムを実行する外部CPUから通信暗号鍵の供給を要求する暗号鍵要求信号を外部から受信する手段、前記暗号鍵要求信号を受信する都度、複数のプログラム間で受け渡しする情報を暗号化する通信暗号鍵を生成する手段、及び生成した通信暗号鍵を前記暗号鍵要求信号の送信元のプログラムを実行する外部CPUへ供給する手段として機能させることを特徴とする。
【0015】
また、第7発明に係るコンピュータプログラムは、第6発明において、前記演算回路を、前記通信暗号鍵を生成した履歴情報を記憶する手段、前記履歴情報を照会して必要とする通信暗号鍵を抽出する手段、及び抽出した通信暗号鍵を前記暗号鍵要求信号の送信元のプログラムを実行する外部CPUへ供給する手段として機能させることを特徴とする。
【0016】
第1発明、第3発明、第4発明及び第6発明では、内部に格納されている情報を外部から参照することができない構造を有するセキュアモジュールを有しており、セキュアモジュールは、情報を受け渡しするプログラムを実行する外部CPUから通信暗号鍵の供給を要求する暗号鍵要求信号を外部から受信し、暗号鍵要求信号を受信する都度、複数のプログラム間で受け渡しする情報を暗号化する通信暗号鍵を生成し、生成した通信暗号鍵を暗号鍵要求信号の送信元のプログラムを実行する外部CPUへ供給する。これにより、情報を受け渡しするプログラムから、受け渡しする情報を暗号化するための通信暗号鍵の生成を要求されたセキュアモジュールは、要求のある都度固有の通信暗号鍵を生成し、生成した通信暗号鍵で受け渡しする情報を暗号化することから、プログラム間で情報の受け渡しをする中途のメモリ記憶内容、すなわちプログラムの実行中のメモリ内容を解析して通信暗号鍵を特定することが困難になる。また、暗号鍵を特定することができた場合であっても、適宜通信暗号鍵を変更することができることから、特定した通信暗号鍵を用いて情報を復号することができず、コンテンツの不正流出を効果的に抑制することが可能となる。
【0017】
第2発明、第5発明及び第7発明では、セキュアモジュールは、通信暗号鍵を生成した履歴情報を記憶し、履歴情報を照会して必要とする通信暗号鍵を抽出し、抽出した通信暗号鍵を暗号鍵要求信号の送信元へ供給する。これにより、変更した通信暗号鍵の履歴情報を、外部から参照することができないセキュアモジュールに記憶しておくことにより、暗号化に用いた通信暗号鍵が最新の通信暗号鍵でない場合であっても、復号可能な通信暗号鍵を容易に抽出することができ、情報を復号することができなくなる事態を防止することが可能となる。
【発明の効果】
【0018】
第1発明、第3発明、第4発明及び第6発明によれば、情報を受け渡しするプログラムから、受け渡しする情報を暗号化するための通信暗号鍵の生成を要求されたセキュアモジュールは、要求のある都度固有の通信暗号鍵を生成し、生成した通信暗号鍵で受け渡しする情報を暗号化することから、プログラム間で情報の受け渡しをする中途のメモリ記憶内容、すなわちプログラムの実行中のメモリ内容を解析して暗号鍵を特定することが困難になる。また、通信暗号鍵を特定することができた場合であっても、適宜通信暗号鍵を変更することができることから、特定した通信暗号鍵を用いて情報を復号することができず、コンテンツの不正流出を効果的に抑制することが可能となる。
【0019】
第2発明、第5発明及び第7発明によれば、変更した通信暗号鍵の履歴情報を、外部から参照することができないセキュアモジュールに記憶しておくことにより、暗号化に用いた通信暗号鍵が最新の通信暗号鍵でない場合であっても、復号可能な通信暗号鍵を容易に抽出することができ、情報を復号することができなくなる事態を防止することが可能となる。
【発明を実施するための最良の形態】
【0020】
以下、本発明をその実施の形態を示す図面に基づいて具体的に説明する。
【0021】
(実施の形態1)
図1は、本発明の実施の形態1に係る情報処理装置の構成を示すブロック図である。実施の形態1に係る情報処理装置は、主CPU11を中心とした演算処理部に、セキュリティを維持するためのセキュリティボード2を接続してある。セキュリティボード2は、内部バス16と接続インタフェース21を介して接続してあり、ICチップ3を搭載している。情報処理装置1は、少なくとも主CPU11、RAM12、記憶手段13、入力手段14、出力手段15、及びセキュリティボード2で構成してあり、内部バス16を介して相互に接続されている。
【0022】
主CPU11は、内部バス16を介して情報処理装置1の上述したようなハードウェア各部と接続されており、上述したハードウェア各部を制御するとともに、ハードディスク等の記憶手段13に記憶されたプログラム、例えばディジタルコンテンツを受信するプログラム、受信したディジタルコンテンツを暗号化/復号するプログラム、複数のプログラム間でデータを受け渡しするプログラム等をRAM12へ展開することにより、種々のソフトウェア的機能を実行する。
【0023】
RAM12は、DRAM等で構成され、記憶手段13に記憶してあるプログラム、例えばディジタルコンテンツを受信するプログラム、受信したディジタルコンテンツを暗号化/復号するプログラム、複数のプログラム間でデータを受け渡しするプログラム等を実行時に展開し、実行時に発生する一時的なデータを記憶する。
【0024】
入力手段14は、情報処理装置1を操作するために必要な文字キー、テンキー、各種のファンクションキー等を備えたキーボード、マウス等の入力媒体である。出力手段15は、液晶表示装置、CRTディスプレイ等の表示装置、レーザプリンタ、ドットプリンタ等の印刷装置等である。
【0025】
セキュリティボード2は、少なくとも主CPU11と内部バス16を介して接続する接続インタフェース21及びICチップ3で構成してある。ICチップ3は、内部に格納されている情報を外部から参照することができない構造を有するセキュアモジュールとして構成されており、少なくとも副CPU31、RAM32、記憶手段33を備え、記憶手段33は、暗号鍵要求信号を受け付けた場合にプログラム間で受け渡しする情報を暗号化処理するための通信暗号鍵を生成するプログラム、生成した通信暗号鍵を供給するプログラム等を記憶している。
【0026】
副CPU31は、内部バス34を介してICチップ3の上述したようなハードウェア各部と接続されており、上述したハードウェア各部を制御するとともに、記憶手段33に記憶された各種のプログラムをRAM32へ展開することにより、種々のソフトウェア的機能を実行する。
【0027】
以下、上述した構成の情報処理装置1における主CPU11及び副CPU31の処理について説明する。本実施の形態1では、複数のプログラム間でディジタルコンテンツを受け渡しする場合について説明する。なお、本実施の形態1では、実行されるプログラムが正当なプログラムである旨は、別の手段により保証されているものとする。また、プログラムが展開されているRAM12のアドレス、個々のプログラムに対する通信暗号鍵を書き込むRAM12のアドレスに関する情報は、別の手段により事前にICチップ3のRAM32に記憶されているものとする。
【0028】
図2は、本発明の実施の形態1に係るICチップ3の副CPU31の処理手順を示すフローチャートである。情報処理装置1の主CPU11は、複数のプログラム間でディジタルコンテンツを受け渡しする場合、ディジタルコンテンツを送出する側のプログラムの指示により暗号鍵要求信号をICチップ3に対して送信する。ICチップ3の副CPU31は、暗号鍵要求信号を受け付ける(ステップS201:YES)。
【0029】
なお、情報処理装置1の主CPU11が、ディジタルコンテンツを送出する側のプログラムの指示により暗号鍵要求信号をICチップ3に対して送信するタイミングは、上述のようにディジタルコンテンツの受け渡しが発生する都度に限定されるものではなく、一定間隔で送信しても良い。また、暗号鍵要求信号は処理コマンドの一部であっても良い。
【0030】
図3は、暗号鍵要求信号のデータ構成の例示図である。暗号鍵要求信号は、少なくともプログラムを識別する情報、通信暗号鍵を要求する旨を示す情報、通信暗号鍵を書き込むRAM12上のアドレス情報を含む。プログラムを識別する情報はプログラムIDでも良いし、プログラムを展開しているRAM12上のアドレス範囲であっても良い。通信暗号鍵を要求する旨を示す情報は、例えば要求フラグを‘1’に設定して送信する。通信暗号鍵を書き込むRAM12上のアドレス情報を指定した場合、指定したアドレスに通信暗号鍵が書き込まれる。一方、アドレス情報を指定しない場合、事前にICチップ3のRAM32に記憶してあるアドレス群に通信暗号鍵を書き込むことになる。
【0031】
暗号鍵要求信号を受け付けた副CPU31は、通信暗号鍵を生成する(ステップS202)。副CPU31は、生成した通信暗号鍵をICチップ3の記憶手段33に記憶する(ステップS203)。
【0032】
副CPU31は、事前にICチップ3のRAM32に記憶してあるRAM12のアドレス群へ生成した通信暗号鍵を書き込む(ステップS204)。情報処理装置1の主CPU11は、指定したアドレスに通信暗号鍵が書き込まれたか否かを監視しておき、主CPU11が書き込まれたと判断した場合、主CPU11は、受け渡すディジタルコンテンツを書き込まれた通信暗号鍵を用いて暗号化処理する。主CPU11は、暗号化されたディジタルコンテンツを他のプログラムへと受け渡し、受け取った他のプログラムは、所定のアドレスに書き込まれた通信暗号鍵を用いてディジタルコンテンツを復号する。
【0033】
以上のように本実施の形態1によれば、通信暗号鍵の生成処理は、外部から内部を参照することができないICチップ3内で実行されており、暗号化処理及び復号処理は、従来の手法で保護されているプログラム実行領域内で実行されていることから、プログラム間でディジタルコンテンツを受け渡す場合であっても、用いられた通信暗号鍵を特定することが困難となる。また、通信暗号鍵を特定することができた場合であっても、適宜通信暗号鍵を変更することができることから、特定した通信暗号鍵を用いて情報を復号することができず、コンテンツの不正流出を効果的に抑制することが可能となる。
【0034】
なお、生成した通信暗号鍵をRAM12に書き込む場合、書き込むアドレスを毎回変更しても良い。この場合、通信暗号鍵を書き込む時点で、次回に書き込むアドレスに関する情報を付与しても良いし、通信暗号鍵を書き込むアドレスに実際に通信暗号鍵を書き込んだアドレスへのポインタを書き込み、実際の通信暗号鍵を書き込むアドレスは、副CPU31がランダムに割当てても良い。
【0035】
また、通信暗号鍵そのものを別の暗号鍵を用いて暗号化しても良い。図4は通信暗号鍵を暗号化する場合のICチップ3の副CPU31の処理手順を示すフローチャートである。図4では、公開鍵方式を用いて通信暗号鍵を暗号化する場合について説明する。もちろん、公開鍵方式に限定するものではなく、秘密鍵方式であっても良い。
【0036】
ICチップ3内のRAM32に公開鍵と対応する秘密鍵を記憶しておく。そして、情報処理装置1の主CPU11は、公開鍵で通信暗号鍵を暗号化する暗号鍵を暗号化し、暗号鍵要求信号とは異なる信号によりICチップ3へ送信する。
【0037】
副CPU31は、暗号化された暗号鍵を受信し(ステップS401)、RAM32に記憶してある秘密鍵を用いて受信した暗号鍵を復号する(ステップS402)。副CPU31は、復号した暗号鍵をプログラムIDと関連付けてRAM32に記憶する(ステップS403)。副CPU31は、暗号鍵要求信号を受信して通信暗号鍵を生成した時点で、RAM32に記憶してある暗号鍵を用いて通信暗号鍵を暗号化し、RAM12に記憶する。これにより、プログラム毎に異なる暗号鍵を記憶することが可能となり、プログラム毎に異なる暗号鍵を用いて1つの通信暗号鍵を暗号化してRAM12に記憶する。
【0038】
暗号鍵要求信号により通信暗号鍵が生成された場合、通信暗号鍵がRAM12の所定のアドレスに書き込まれたと判断した主CPU11は、暗号化された通信暗号鍵を、既知である暗号鍵を用いて復号し、復号した通信暗号鍵を用いて、受け取ったディジタルコンテンツを暗号化/復号する。
【0039】
このようにすることで、ディジタルコンテンツを受け渡しする複数のプログラム間で、より安全に通信暗号鍵を受け渡しすることができ、コンテンツの不正流出をより効果的に抑制することが可能となる。
【0040】
(実施の形態2)
図5は、本実施の形態2に係る情報処理装置の構成を示すブロック図である。実施の形態2に係る情報処理装置は、実施の形態1と同様、主CPU11を中心とした演算処理部に、セキュリティを維持するためのセキュリティボード2を接続してある。セキュリティボード2は、内部バス16と接続インタフェース21を介して接続してあり、ICチップ3を搭載している。情報処理装置1は、少なくとも主CPU11、RAM12、記憶手段13、入力手段14、出力手段15、及びセキュリティボード2で構成してあり、内部バス16を介して相互に接続されている。
【0041】
セキュリティボード2は、少なくとも主CPU11と内部バス16を介して接続する接続インタフェース21及びICチップ3で構成してある。ICチップ3は、内部に格納されている情報を外部から参照することができない構造を有するセキュアモジュールとして構成されており、少なくとも副CPU31、RAM32、記憶手段33を備え、記憶手段33は、暗号鍵要求信号を受け付けた場合にプログラム間で受け渡しする情報を暗号化処理するための通信暗号鍵を生成するプログラム、生成した暗号鍵を供給するプログラム等を記憶している。また、生成した通信暗号鍵を識別する情報、例えば通信暗号鍵番号と対応付けて、生成した通信暗号鍵を記憶手段33の履歴情報記憶部331に記憶する。
【0042】
副CPU31は、内部バス34を介してICチップ3の上述したようなハードウェア各部と接続されており、上述したハードウェア各部を制御するとともに、記憶手段33に記憶された各種のプログラムをRAM32へ展開することにより、種々のソフトウェア的機能を実行する。
【0043】
以下、上述した構成の情報処理装置1における主CPU11及び副CPU31の処理について説明する。本実施の形態2では、複数のプログラム間でディジタルコンテンツを受け渡しする場合について説明する。なお、本実施の形態2では、実行されるプログラムが正当なプログラムである旨は、別の手段により保証されているものとする。また、プログラムが展開されているRAM12のアドレス、個々のプログラムに対する通信暗号鍵を書き込むRAM12のアドレスに関する情報は、別の手段により事前にICチップ3のRAM32に記憶されているものとする。
【0044】
図6は、本発明の実施の形態2に係るICチップ3の副CPU31の処理手順を示すフローチャートである。情報処理装置1の主CPU11は、複数のプログラム間でディジタルコンテンツを受け渡しする場合、ディジタルコンテンツを送出する側のプログラムの指示により暗号鍵要求信号をICチップ3に対して送信する。ICチップ3の副CPU31は、暗号鍵要求信号を受け付ける(ステップS601:YES)。
【0045】
なお、情報処理装置1の主CPU11が、ディジタルコンテンツを送出する側のプログラムの指示により暗号鍵要求信号をICチップ3に対して送信するタイミングは、上述のようにディジタルコンテンツの受け渡しが発生する都度に限定されるものではなく、一定間隔で送信しても良い。また、暗号鍵要求信号は処理コマンドの一部であっても良い。また、暗号鍵要求信号のデータ構成は実施の形態1と同様である。
【0046】
暗号鍵要求信号を受け付けた副CPU31は、暗号鍵要求信号に通信暗号鍵番号が含まれているか否かを判断する(ステップS602)。副CPU31が、通信暗号鍵番号が含まれていないと判断した場合(ステップS602:NO)、副CPU31は、通信暗号鍵が未生成である、すなわちディジタルコンテンツのプログラム間での受け渡し前であると判断し、通信暗号鍵を生成する(ステップS603)。副CPU31は、通信暗号鍵に通信暗号鍵番号を付し、通信暗号鍵と対応付けて、ICチップ3の記憶手段33に記憶する(ステップS604)。また、副CPU31は、通信暗号鍵及び通信暗号鍵番号を履歴情報として、ICチップ3の履歴情報記憶部331に記憶する(ステップS605)。
【0047】
副CPU31は、事前にICチップ3のRAM32に記憶してあるRAM12のアドレス群へ生成した通信暗号鍵及び通信暗号鍵番号を書き込む(ステップS606)。情報処理装置1の主CPU11は、指定したアドレスに通信暗号鍵が書き込まれたか否かを監視しておき、主CPU11が書き込まれたと判断した場合、主CPU11は、受け渡すディジタルコンテンツを書き込まれた通信暗号鍵を用いて暗号化処理する。主CPU11は、暗号化されたディジタルコンテンツを他のプログラムへと受け渡し、受け取った他のプログラムは、所定のアドレスに書き込まれた通信暗号鍵を用いてディジタルコンテンツを復号する。受け取ったディジタルコンテンツの通信暗号鍵が、RAM12に記憶してある通信暗号鍵と異なる場合、ディジタルコンテンツを受け取ったプログラムの指示により、主CPU11は、暗号鍵要求信号をICチップ3に対して送信する。主CPU31は、暗号鍵要求信号に必要な通信暗号鍵番号を含めて送信する。
【0048】
ICチップ3の副CPU31は、暗号鍵要求信号を受け付け(ステップS601)、通信暗号鍵番号が含まれているか否かを判断する(ステップS602)。副CPU31が、通信暗号鍵番号が含まれていると判断した場合(ステップS602:YES)、副CPU31は、通信暗号鍵が生成済みである、すなわちディジタルコンテンツのプログラム間での受け渡し後であると判断し、通信暗号鍵番号に対応する通信暗号鍵を履歴情報記憶部331から抽出することが可能であるか否かを判断する(ステップS607)。
【0049】
副CPU31が、通信暗号鍵番号に対応する通信暗号鍵を履歴情報記憶部331から抽出することが可能であると判断した場合(ステップS607:YES)、副CPU31は、対応する通信暗号鍵を抽出して(ステップS608)、暗号化されたディジタルコンテンツの復号鍵(秘密鍵方式では同一の鍵)として、抽出した通信暗号鍵及び通信暗号鍵番号を暗号鍵要求信号で指定されたRAM12のアドレスへ書き込む(ステップS609)。
【0050】
副CPU31が、通信暗号鍵番号に対応する通信暗号鍵を記憶手段33から抽出することが可能ではないと判断した場合(ステップS607:NO)、副CPU31は、対応する通信暗号鍵が存在しないものと判断し、処理を終了する。
【0051】
情報処理装置1の主CPU11は、指定したアドレスに通信暗号鍵が書き込まれたか否かを監視しておき、主CPU11が書き込まれたと判断した場合、主CPU11は、受け取ったディジタルコンテンツを書き込まれた通信暗号鍵を用いて復号処理する。
【0052】
以上のように本実施の形態2によれば、プログラム間でディジタルコンテンツを受け渡す場合、通信暗号鍵で受け渡しするディジタルコンテンツを暗号化した後、通信暗号鍵が新たに生成されたときでも、履歴情報を参照することにより過去に生成された通信暗号鍵(復号鍵)を確実に取得することができ、暗号化されたディジタルコンテンツが復号できない事態等の発生を未然に防止することが可能となる。また、主CPU11が副CPU31に対してコマンドを発行することにより、明示的に履歴情報の取得要求を出した場合であっても、プログラム間で受け渡しするディジタルコンテンツの安全を確保しつつ、過去の通信暗号鍵を確実に取得することが可能となる。
【0053】
なお、生成した通信暗号鍵をRAM12に書き込む場合、書き込むアドレスを毎回変更しても良い。この場合、通信暗号鍵及び通信暗号鍵番号を書き込む時点で、次回に書き込むアドレスに関する情報を付与しても良いし、通信暗号鍵を書き込むアドレスに実際に通信暗号鍵を書き込んだアドレスへのポインタを書き込み、実際の通信暗号鍵を書き込むアドレスは、副CPU31がランダムに割当てても良い。
【0054】
また、実施の形態1と同様に、通信暗号鍵そのものを別の暗号鍵を用いて暗号化しても良く、この場合も同様の効果が期待できる。
【0055】
上述した実施の形態1及び2では、通信暗号鍵を情報処理装置1のRAM12へセキュアモジュールの副CPU31の指示により書き込む場合について説明しているが、斯かる構成に限定されるものではなく、CPU間で相互に送受信する等、安全を確保しつつ通信暗号鍵を受け渡しすることが可能な方法であれば何でも良い。また、ICチップ3が扱う通信暗号鍵が1個である場合について説明しているが、複数の通信暗号鍵を扱う場合であっても同様の効果が期待できる。
【図面の簡単な説明】
【0056】
【図1】本発明の実施の形態1に係る情報処理装置の構成を示すブロック図である。
【図2】本発明の実施の形態1に係るICチップの副CPUの処理手順を示すフローチャートである。
【図3】暗号鍵要求信号のデータ構成の例示図である。
【図4】通信暗号鍵を暗号化する場合のICチップの副CPUの処理手順を示すフローチャートである。
【図5】本実施の形態2に係る情報処理装置の構成を示すブロック図である。
【図6】本発明の実施の形態2に係るICチップの副CPUの処理手順を示すフローチャートである。
【符号の説明】
【0057】
1 情報処理装置
2 セキュリティボード
3 ICチップ
11 主CPU
12、32 RAM
13、33 記憶手段
14 入力手段
15 出力手段
16、34 内部バス
21 接続インタフェース
31 副CPU
30 内部バス
331 履歴情報記憶部


【特許請求の範囲】
【請求項1】
内部に格納されている情報を外部から参照することができない構造を有するセキュアモジュールを有するICチップにおいて、
前記セキュアモジュールは、
情報を受け渡しするプログラムを実行する外部CPUから通信暗号鍵の供給を要求する暗号鍵要求信号を外部から受信する手段と、
前記暗号鍵要求信号を受信する都度、複数のプログラム間で受け渡しする情報を暗号化する通信暗号鍵を生成する手段と、
生成した通信暗号鍵を前記暗号鍵要求信号の送信元のプログラムを実行する外部CPUへ供給する手段と
を備えることを特徴とするICチップ。
【請求項2】
前記セキュアモジュールは、前記通信暗号鍵を生成した履歴情報を記憶する手段と、
前記履歴情報を照会して必要とする通信暗号鍵を抽出する手段と、
抽出した通信暗号鍵を前記暗号鍵要求信号の送信元のプログラムを実行する外部CPUへ供給する手段と
を備えることを特徴とする請求項1記載のICチップ。
【請求項3】
請求項1又は2記載のICチップを搭載したことを特徴とするボード。
【請求項4】
外部から参照することが可能なメモリと、
該メモリに書き込まれたプログラムを実行するCPUとを備え、
前記メモリに書き込まれた複数のプログラム間で情報を受け渡しする情報処理装置において、
請求項3記載のボードを搭載し、
供給された通信暗号鍵を用いて受け渡しする情報を暗号化する手段と、
暗号化された情報を送受信する手段と、
受信した暗号化された情報を復号する手段と
を備えることを特徴とする情報処理装置。
【請求項5】
前記セキュアモジュールは、前記通信暗号鍵を生成した履歴情報を記憶する手段と、
前記履歴情報を照会して必要とする通信暗号鍵を抽出する手段と、
抽出した通信暗号鍵を前記暗号鍵要求信号の送信元のプログラムを実行する外部CPUへ供給する手段と
を備えることを特徴とする請求項4記載の情報処理装置。
【請求項6】
演算回路を、内部に格納されている情報を外部から参照することができないセキュアモジュールとして機能させるコンピュータプログラムにおいて、
前記演算回路を、
情報を受け渡しするプログラムを実行する外部CPUから通信暗号鍵の供給を要求する暗号鍵要求信号を外部から受信する手段、
前記暗号鍵要求信号を受信する都度、複数のプログラム間で受け渡しする情報を暗号化する通信暗号鍵を生成する手段、及び
生成した通信暗号鍵を前記暗号鍵要求信号の送信元のプログラムを実行する外部CPUへ供給する手段
として機能させることを特徴とするコンピュータプログラム。
【請求項7】
前記演算回路を、
前記通信暗号鍵を生成した履歴情報を記憶する手段、
前記履歴情報を照会して必要とする通信暗号鍵を抽出する手段、及び
抽出した通信暗号鍵を前記暗号鍵要求信号の送信元のプログラムを実行する外部CPUへ供給する手段
として機能させることを特徴とする請求項6記載のコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2007−13677(P2007−13677A)
【公開日】平成19年1月18日(2007.1.18)
【国際特許分類】
【出願番号】特願2005−192629(P2005−192629)
【出願日】平成17年6月30日(2005.6.30)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】