説明

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へ供給する手段と、所定の回数を超えたと判断した場合、生成した通信暗号鍵の前記暗号鍵要求信号の送信元のプログラムを実行する外部CPUへの供給を停止する手段とを備えることを特徴とする。
【0010】
また、第2発明に係るICチップは、第1発明において、前記セキュアモジュールは、外部CPUで実行するプログラムごとに前記所定の回数を設定する手段を備えることを特徴とする。
【0011】
また、第3発明に係るICチップは、第1又は第2発明において、前記セキュアモジュールは、前記通信暗号鍵を生成した履歴情報を記憶する手段と、前記履歴情報を照会して必要とする通信暗号鍵を抽出する手段と、抽出した通信暗号鍵を前記暗号鍵要求信号の送信元のプログラムを実行する外部CPUへ供給する手段とを備えることを特徴とする。
【0012】
また、第4発明に係るボードは、第1乃至第3発明のいずれか1つのICチップを搭載したことを特徴とする。
【0013】
また、第5発明に係る情報処理装置は、外部から参照することが可能なメモリと、該メモリに書き込まれたプログラムを実行するCPUとを備え、前記メモリに書き込まれた複数のプログラム間で情報を受け渡しする情報処理装置において、第4発明のボードを搭載し、供給された通信暗号鍵を用いて受け渡しする情報を暗号化する手段と、暗号化された情報を送受信する手段と、受信した暗号化された情報を復号する手段とを備えることを特徴とする。
【0014】
また、第6発明に係る情報処理装置は、第5発明において、前記セキュアモジュールは、外部CPUで実行するプログラムごとに前記所定の回数を設定する手段を備えることを特徴とする。
【0015】
また、第7発明に係る情報処理装置は、第5又は第6発明において、前記セキュアモジュールは、前記通信暗号鍵を生成した履歴情報を記憶する手段と、前記履歴情報を照会して必要とする通信暗号鍵を抽出する手段と、抽出した通信暗号鍵を前記暗号鍵要求信号の送信元のプログラムを実行する外部CPUへ供給する手段とを備えることを特徴とする。
【0016】
また、第8発明に係るコンピュータプログラムは、演算回路を、内部に格納されている情報を外部から参照することができないセキュアモジュールとして機能させるコンピュータプログラムにおいて、前記演算回路を、情報を受け渡しするプログラムを実行する外部CPUから暗号鍵の供給を要求する暗号鍵要求信号を受信する手段、前記暗号鍵要求信号を受信する都度、複数のプログラム間で受け渡しする情報を暗号化する通信暗号鍵を生成する手段、生成した通信暗号鍵を供給した回数を計数する手段、該手段で計数した回数が所定の回数を超えたか否かを判断する手段、該手段で所定の回数を超えていないと判断した場合、生成した通信暗号鍵を前記暗号鍵要求信号の送信元のプログラムを実行する外部CPUへ供給する手段、及び所定の回数を超えたと判断した場合、生成した通信暗号鍵の前記暗号鍵要求信号の送信元のプログラムを実行する外部CPUへの供給を停止する手段として機能させることを特徴とする。
【0017】
また、第9発明に係るコンピュータプログラムは、第8発明において、前記演算回路を、外部CPUで実行するプログラムごとに前記所定の回数を設定する手段として機能させることを特徴とする。
【0018】
また、第10発明に係るコンピュータプログラムは、第8又は第9発明において、前記演算回路を、前記通信暗号鍵を生成した履歴情報を記憶する手段、前記履歴情報を照会して必要とする通信暗号鍵を抽出する手段、及び抽出した通信暗号鍵を前記暗号鍵要求信号の送信元のプログラムを実行する外部CPUへ供給する手段として機能させることを特徴とする。
【0019】
第1発明、第4発明、第5発明及び第8発明では、内部に格納されている情報を外部から参照することができない構造であるセキュアモジュールを有するICチップを搭載したセキュリティボードを備える情報処理装置において、セキュアモジュールは、情報を受け渡しするプログラムを実行する外部CPUから暗号鍵の供給を要求する暗号鍵要求信号を受信し、暗号鍵要求信号を受信する都度、複数のプログラム間で受け渡しする情報を暗号化する通信暗号鍵を生成する。生成した通信暗号鍵を供給した回数を計数し、計数した回数が所定の回数を超えていないと判断した場合、生成した通信暗号鍵を暗号鍵要求信号の送信元のプログラムを実行する外部CPUへ供給し、所定の回数を超えたと判断した場合、生成した通信暗号鍵の暗号鍵要求信号の送信元のプログラムを実行する外部CPUへの供給を停止する。これにより、情報を受け渡しするプログラムから、受け渡しする情報を暗号化するための通信暗号鍵の供給を要求されたセキュアモジュールは、供給した回数が所定回数を超えた場合、それ以後通信暗号鍵を供給しない。したがって、例えばプログラム間で情報を受け渡しするプログラムの数を超えたと判断した場合、セキュアモジュールは通信暗号鍵を供給しないことから、不正に情報を取得しようと通信暗号鍵を要求した第三者のプログラムが通信暗号鍵を取得しても、受け渡し先のプログラムが復号鍵を取得することができない。よって、第三者による情報の不正取得を未然に防止することが可能となる。
【0020】
第2発明、第6発明及び第9発明では、セキュアモジュールは、外部CPUで実行するプログラムごとに所定の回数を設定することができる。これにより、情報を受け渡しするプログラムの構成に応じて、通信暗号鍵を供給するか否かを判断する指標を変更することができ、第三者の別プログラムが通信暗号鍵を要求した場合に、情報の供給を効果的に防止することが可能となる。
【0021】
第3発明、第7発明及び第10発明では、セキュアモジュールは、通信暗号鍵を生成した履歴情報を記憶し、履歴情報の供給を要求する履歴要求信号を外部から受信した場合、記憶してある履歴情報を履歴要求信号の送信元へ供給する。これにより、変更した通信暗号鍵の履歴情報を、外部から参照することができないセキュアモジュールに記憶しておくことにより、暗号化に用いた通信暗号鍵が最新の通信暗号鍵でない場合であっても、復号可能な通信暗号鍵を容易に特定することができ、情報を復号することができなくなる事態を防止することが可能となる。
【発明の効果】
【0022】
第1発明、第4発明、第5発明及び第8発明によれば、情報を受け渡しするプログラムから、受け渡しする情報を暗号化するための通信暗号鍵の生成を要求されたセキュアモジュールは、要求のある都度固有の通信暗号鍵を生成し、生成した通信暗号鍵の供給を要求された場合に、供給した回数が所定回数を超えたときには、それ以後通信暗号鍵を供給しない。したがって、例えばプログラム間で情報を受け渡しするプログラムの数を超えたと判断した場合、セキュアモジュールは通信暗号鍵を供給しないことから、不正に情報を取得しようと通信暗号鍵を要求した第三者のプログラムが通信暗号鍵を取得しても、受け渡し先のプログラムが復号鍵を取得することができない。よって、第三者による情報の不正取得を未然に防止することが可能となる。
【0023】
第2発明、第6発明及び第9発明によれば、情報を受け渡しするプログラムの構成に応じて、通信暗号鍵を供給するか否かを判断する指標を変更することができ、第三者の別プログラムが通信暗号鍵を要求した場合に、情報の供給を効果的に防止することが可能となる。
【0024】
第3発明、第7発明及び第10発明によれば、変更した通信暗号鍵の履歴情報を、外部から参照することができないセキュアモジュールに記憶しておくことにより、暗号化に用いた通信暗号鍵が最新の通信暗号鍵でない場合であっても、復号可能な通信暗号鍵を容易に特定することができ、情報を復号することができなくなる事態を防止することが可能となる。
【発明を実施するための最良の形態】
【0025】
以下、本発明をその実施の形態を示す図面に基づいて具体的に説明する。
【0026】
(実施の形態1)
図1は、本発明の実施の形態1に係る情報処理装置の構成を示すブロック図である。実施の形態1に係る情報処理装置は、主CPU11を中心とした演算処理部に、セキュリティを維持するためのセキュリティボード2を接続してある。セキュリティボード2は、内部バス16と接続インタフェース21を介して接続してあり、ICチップ3を搭載している。情報処理装置1は、少なくとも主CPU11、RAM12、記憶手段13、入力手段14、出力手段15、及びセキュリティボード2で構成してあり、内部バス16を介して相互に接続されている。
【0027】
主CPU11は、内部バス16を介して情報処理装置1の上述したようなハードウェア各部と接続されており、上述したハードウェア各部を制御するとともに、ハードディスク等の記憶手段13に記憶されたプログラム、例えばディジタルコンテンツを受信するプログラム、受信したディジタルコンテンツを暗号化/復号するプログラム、複数のプログラム間でデータを受け渡しするプログラム等をRAM12へ展開することにより、種々のソフトウェア的機能を実行する。
【0028】
RAM12は、DRAM等で構成され、記憶手段13に記憶してあるプログラム、例えばディジタルコンテンツを受信するプログラム、受信したディジタルコンテンツを暗号化/復号するプログラム、複数のプログラム間でデータを受け渡しするプログラム等を実行時に展開し、実行時に発生する一時的なデータを記憶する。
【0029】
入力手段14は、情報処理装置1を操作するために必要な文字キー、テンキー、各種のファンクションキー等を備えたキーボード、マウス等の入力媒体である。出力手段15は、液晶表示装置、CRTディスプレイ等の表示装置、レーザプリンタ、ドットプリンタ等の印刷装置等である。
【0030】
セキュリティボード2は、少なくとも主CPU11と内部バス16を介して接続する接続インタフェース21及びICチップ3で構成してある。ICチップ3は、内部に格納されている情報を外部から参照することができない構造を有するセキュアモジュールとして構成されており、少なくとも副CPU31、RAM32、記憶手段33を備え、記憶手段33は、暗号鍵要求信号を受け付けた場合にプログラム間で受け渡しする情報を暗号化処理するための通信暗号鍵を生成するプログラム、生成した通信暗号鍵を供給した回数を計数するプログラム、供給した回数に応じて通信暗号鍵を供給するか否かを判断するプログラム、生成した通信暗号鍵を暗号鍵要求信号の送信元へ供給するプログラム等を記憶している。
【0031】
副CPU31は、内部バス34を介してICチップ3の上述したようなハードウェア各部と接続されており、上述したハードウェア各部を制御するとともに、記憶手段33に記憶された各種のプログラムをRAM32へ展開することにより、種々のソフトウェア的機能を実行する。
【0032】
以下、上述した構成の情報処理装置1における主CPU11及び副CPU31の処理について説明する。本実施の形態1では、複数のプログラム間でディジタルコンテンツを受け渡しする場合について説明する。なお、本実施の形態1では、実行されるプログラムが正当なプログラムである旨は、別の手段により保証されているものとする。
【0033】
図2は、本発明の実施の形態1に係るICチップ3の副CPU31の処理手順を示すフローチャートである。情報処理装置1の主CPU11は、複数のプログラム間でディジタルコンテンツを受け渡しする場合、ディジタルコンテンツを送出する側のプログラムの指示により暗号鍵要求信号をICチップ3に対して送信する。ICチップ3の副CPU31は、暗号鍵要求信号を受け付ける(ステップS201:YES)。
【0034】
なお、情報処理装置1の主CPU11が、ディジタルコンテンツを送出する側のプログラムの指示により暗号鍵要求信号をICチップ3に対して送信するタイミングは、上述のようにディジタルコンテンツの受け渡しが発生する都度に限定されるものではなく、一定間隔で送信しても良い。また、暗号鍵要求信号は処理コマンドの一部であっても良い。
【0035】
図3は、暗号鍵要求信号のデータ構成の例示図である。暗号鍵要求信号は、少なくともプログラムを識別する情報、通信暗号鍵を要求する旨を示す情報、通信暗号鍵を書き込むRAM12上のアドレス情報を含む。プログラムを識別する情報はプログラムIDでも良いし、プログラムを展開しているRAM12上のアドレス範囲であっても良い。通信暗号鍵を要求する旨を示す情報は、例えば要求フラグを‘1’に設定して送信する。通信暗号鍵は、RAM12への書込みではなく、接続インタフェース21を介して受信した暗号鍵要求信号に対する返答としても良い。
【0036】
暗号鍵要求信号を受け付けた副CPU31は、暗号鍵要求信号が、通信暗号鍵生成要求であるか否かを判断する(ステップS202)。副CPU31が、通信暗号鍵生成要求であると判断した場合(ステップS202:YES)、副CPU31は、通信暗号鍵が未生成である、すなわちディジタルコンテンツのプログラム間での受け渡し前であると判断し、通信暗号鍵を生成する(ステップS203)。副CPU31は、通信暗号鍵をICチップ3の記憶手段33に記憶し、生成した通信暗号鍵の供給回数を初期化する(ステップS204)。供給回数の初期化は、残回数を設定する方法であっても良いし、供給した回数を0(ゼロ)に設定する方法であっても良い。
【0037】
生成された通信暗号鍵を取得するために、情報処理装置1の主CPU11は、暗号鍵要求信号をICチップ3に対して送信する。
【0038】
ICチップ3の副CPU31は、暗号鍵要求信号を受け付け(ステップS201)、受け付けた暗号鍵要求信号が通信暗号鍵生成要求であるか否かを判断する(ステップS202)。副CPU31が、通信暗号鍵生成要求ではないと判断した場合(ステップS202:NO)、副CPU31は、通信暗号鍵が生成済みであると判断し、記憶手段33を照会して、通信暗号鍵を抽出する(ステップS205)。
【0039】
副CPU31は、通信暗号鍵を供給する都度、供給した回数を計数する(ステップS206)。副CPU31は、計数した供給回数が所定の回数を超えているか否かを判断する(ステップS207)。
【0040】
所定の回数は、情報処理装置1の入力手段14を介して入力され、接続インタフェース21を介してRAM33に記憶される。例えばディジタルコンテンツを受け渡すプログラムの個数を指定する。これにより第三者による不正なプログラムによる暗号鍵要求信号を受け付けた場合、本来通信暗号鍵を取得すべきプログラムが通信暗号鍵を受け取ることができなくなる。
【0041】
副CPU31が、計数した供給回数が所定の回数、例えば2回を超えていると判断した場合(ステップS207:YES)、副CPU31は、暗号鍵要求信号で指定されたRAM12のアドレスへ生成した通信暗号鍵を書き込まずに処理を終了する。供給回数を超えた場合、ICチップ3は以後の暗号鍵要求信号を受け付けないようにしても良い。副CPU31が、計数した回数が所定の回数を超えていないと判断した場合(ステップS207:NO)、副CPU31は、暗号鍵要求信号で指定されたRAM12のアドレスへ生成した通信暗号鍵を書き込む(ステップS208)。情報処理装置1の主CPU11は、指定したアドレスに通信暗号鍵が書き込まれたか否かを監視しておき、主CPU11が書き込まれたと判断した場合、主CPU11は、ディジタルコンテンツを書き込まれた通信暗号鍵を用いて暗号化処理する。なお、通信暗号鍵生成と通信暗号鍵要求とをまとめて行うように構成してもよい。
【0042】
主CPU11は、暗号化されたディジタルコンテンツを他のプログラムへと受け渡し、受け取った他のプログラムの指示により、主CPU11は、暗号鍵要求信号をICチップ3に対して送信する。副CPU31は、前記と同様の処理を行い、暗号鍵要求信号で指定されたRAM12のアドレスへ生成した通信暗号鍵を書き込む。情報処理装置1の主CPU11は、指定したアドレスに通信暗号鍵が書き込まれたか否かを監視しておき、主CPU11が書き込まれたと判断した場合、主CPU11は、受け取ったディジタルコンテンツを書き込まれた通信暗号鍵を用いて復号処理する。さらに、暗号鍵要求信号をICチップ3に対して送信した場合、所定の回数を2回とした場合には、回数を超えるため、通信暗号鍵を取得することはできない。
【0043】
以上のように本実施の形態1によれば、通信暗号鍵の生成処理は、外部から内部を参照することができないICチップ3内で実行されており、暗号化処理及び復号処理は、従来の手法で保護されているプログラム実行領域内で実行されていることから、プログラム間でディジタルコンテンツを受け渡す場合であっても、用いられた通信暗号鍵を特定することが困難となる。また、第三者による不正な通信暗号鍵の取得要求があった場合であっても、ディジタルコンテンツの受け渡しプログラムが通信暗号鍵を受け取ることができず、ディジタルコンテンツの送出そのものが停止することから、ディジタルコンテンツの不正流出を確実に抑制することが可能となる。
【0044】
また、通信暗号鍵そのものを別の暗号鍵を用いて暗号化しても良い。図4は通信暗号鍵を暗号化する場合のICチップ3の副CPU31の処理手順を示すフローチャートである。図4では、公開鍵方式を用いて通信暗号鍵を暗号化する場合について説明する。もちろん、公開鍵方式に限定するものではなく、秘密鍵方式であっても良い。
【0045】
ICチップ3内のRAM32に公開鍵と対応する秘密鍵を記憶しておく。そして、情報処理装置1の主CPU11は、公開鍵で通信暗号鍵を暗号化する暗号鍵を暗号化し、暗号鍵要求信号とともにICチップ3へ送信する。
【0046】
副CPU31は、暗号鍵要求信号及び暗号化された暗号鍵を受信し(ステップS401)、RAM32に記憶してある秘密鍵を用いて受信した暗号鍵を復号する(ステップS402)。副CPU31は、復号した暗号鍵を用いて、生成した通信暗号鍵を暗号化し(ステップS403)、暗号化した通信暗号鍵を、指定されたRAM12のアドレスに書き込む(ステップS404)。
【0047】
通信暗号鍵がRAM12の所定のアドレスに書き込まれたと判断した主CPU11は、暗号化された通信暗号鍵を、既知である暗号鍵を用いて復号し、復号した通信暗号鍵を用いて、受け取ったディジタルコンテンツを暗号化/復号する。
【0048】
このようにすることで、ディジタルコンテンツを受け渡しする複数のプログラム間で、より安全に通信暗号鍵を受け渡しすることができ、コンテンツの不正流出をより効果的に抑制することが可能となる。
【0049】
(実施の形態2)
図5は、本実施の形態2に係る情報処理装置の構成を示すブロック図である。実施の形態2に係る情報処理装置は、実施の形態1と同様、主CPU11を中心とした演算処理部に、セキュリティを維持するためのセキュリティボード2を接続してある。セキュリティボード2は、内部バス16と接続インタフェース21を介して接続してあり、ICチップ3を搭載している。情報処理装置1は、少なくとも主CPU11、RAM12、記憶手段13、入力手段14、出力手段15、及びセキュリティボード2で構成してあり、内部バス16を介して相互に接続されている。
【0050】
セキュリティボード2は、少なくとも主CPU11と内部バス16を介して接続する接続インタフェース21及びICチップ3で構成してある。ICチップ3は、内部に格納されている情報を外部から参照することができない構造を有するセキュアモジュールとして構成されており、少なくとも副CPU31、RAM32、記憶手段33を備え、記憶手段33は、暗号鍵要求信号を受け付けた場合にプログラム間で受け渡しする情報を暗号化処理するための通信暗号鍵を生成するプログラム、生成した通信暗号鍵を供給した回数を計数するプログラム、供給した回数に応じて通信暗号鍵を供給するか否かを判断するプログラム、生成した通信暗号鍵を暗号鍵要求信号の送信元へ供給するプログラム等を記憶している。また、生成した通信暗号鍵を識別する情報、例えば通信暗号鍵番号と対応付けて、生成した通信暗号鍵を記憶手段33の履歴情報記憶部331に記憶する。
【0051】
副CPU31は、内部バス34を介してICチップ3の上述したようなハードウェア各部と接続されており、上述したハードウェア各部を制御するとともに、記憶手段33に記憶された各種のプログラムをRAM32へ展開することにより、種々のソフトウェア的機能を実行する。
【0052】
以下、上述した構成の情報処理装置1における主CPU11及び副CPU31の処理について説明する。本実施の形態2では、複数のプログラム間でディジタルコンテンツを受け渡しする場合について説明する。なお、本実施の形態2では、実行されるプログラムが正当なプログラムである旨は、別の手段により保証されているものとする。
【0053】
図6は、本発明の実施の形態2に係るICチップ3の副CPU31の処理手順を示すフローチャートである。情報処理装置1の主CPU11は、複数のプログラム間でディジタルコンテンツを受け渡しする場合、ディジタルコンテンツを送出する側のプログラムの指示により暗号鍵要求信号をICチップ3に対して送信する。ICチップ3の副CPU31は、暗号鍵要求信号を受け付ける(ステップS601:YES)。
【0054】
なお、情報処理装置1の主CPU11が、ディジタルコンテンツを送出する側のプログラムの指示により暗号鍵要求信号をICチップ3に対して送信するタイミングは、上述のようにディジタルコンテンツの受け渡しが発生する都度に限定されるものではなく、一定間隔で送信しても良い。また、暗号鍵要求信号は処理コマンドの一部であっても良い。また、暗号鍵要求信号のデータ構成は実施の形態1と同様である。
【0055】
暗号鍵要求信号を受け付けた副CPU31は、暗号鍵要求信号が通信暗号鍵生成要求であるか否かを判断する(ステップS602)。副CPU31が、通信暗号鍵生成要求であると判断した場合(ステップS602:YES)、副CPU31は、通信暗号鍵が未生成である、すなわちディジタルコンテンツのプログラム間での受け渡し前であると判断し、通信暗号鍵を生成する(ステップS603)。副CPU31は、通信暗号鍵に通信暗号鍵番号を付し、通信暗号鍵と対応付けて、ICチップ3の記憶手段33に記憶する。また、副CPU31は、通信暗号鍵及び通信暗号鍵番号を履歴情報として、ICチップ3の履歴情報記憶部331に記憶する(ステップS604)。副CPU31は、通信暗号鍵番号を通信鍵要求信号で指定したRAM12のアドレスへ書き込む(ステップS605)。さらに、生成した通信暗号鍵の供給回数を初期化し(ステップS606)、通信暗号鍵番号と関連付けて履歴情報記憶部331に記憶する。供給回数の初期化は、残回数を設定する方法であっても良いし、供給した回数を0(ゼロ)に設定する方法であっても良い。
【0056】
情報処理装置1の主CPU11は、指定したアドレスに通信暗号鍵番号が書き込まれたか否かを監視しておき、主CPU11が書き込まれたと判断した場合、主CPUは、生成された通信暗号鍵を取得するために、暗号鍵要求信号をICチップ3に対して送信する。主CPU11は、暗号鍵要求信号に通信暗号鍵番号を含めて送信する。
【0057】
ICチップ3の副CPU31は、暗号鍵要求信号を受け付け(ステップS601)、通受け付けた暗号鍵要求信号が通信暗号鍵生成要求であるか否かを判断する(ステップS602)。副CPU31が、通信暗号鍵生成要求ではないと判断した場合(ステップS602:NO)、副CPU31は、通信暗号鍵が生成済みであると判断し、通信暗号鍵番号に対応する通信暗号鍵が履歴情報記憶部331に記憶してあるか否かを判断する(ステップS607)。
【0058】
副CPU31が、通信暗号鍵番号に対応する通信暗号鍵が履歴情報記憶部331に記憶してあると判断した場合(ステップS607:YES)、副CPU31は、対応する通信暗号鍵を抽出する(ステップS608)。副CPU31が、通信暗号鍵番号に対応する通信暗号鍵が存在しないと判断した場合(ステップS607:NO)、副CPU31は、対応する通信暗号鍵が存在しないものと判断し、処理を終了する。
【0059】
副CPU31は、通信暗号鍵を供給する都度、供給回数を計数する(ステップS609)。副CPU31は、計数した供給回数が所定の回数を超えているか否かを判断する(ステップS610)。回数の計数は、通信暗号鍵番号毎に行い、履歴情報からの通信暗号鍵取得であっても、過去に取得した回数が既に所定の回数に達していた場合には、通信暗号鍵を取得することはできない。
【0060】
所定の回数は、情報処理装置1の入力手段14を介して入力され、接続インタフェース21を介してRAM33に記憶される。例えばディジタルコンテンツを受け渡すプログラムの個数を指定する。これにより第三者による不正なプログラムによる暗号鍵要求信号を受け付けた場合、本来通信暗号鍵を取得すべきプログラムが通信暗号鍵を受け取ることができなくなる。
【0061】
副CPU31が、計数した供給回数が所定の回数、例えば2回を超えていると判断した場合(ステップS610:YES)、副CPU31は、ICチップ3の履歴情報記憶部331に記憶してある通信暗号鍵番号及び通信暗号鍵を削除し(ステップS611)、暗号鍵要求信号で指定されたRAM12のアドレスへ生成した通信暗号鍵及び通信暗号鍵番号を書き込まずに処理を終了する。供給回数を超えたと判断した場合、通信暗号鍵番号に対応する通信暗号鍵を履歴情報記憶部331から削除する以外に、ICチップ3は、以後の暗号鍵要求信号を受け付けないようにしても良い。副CPU31が、計数した供給回数が所定の回数を超えていないと判断した場合(ステップS610:NO)、副CPU31は、暗号鍵要求信号で指定されたRAM12のアドレスへ生成した通信暗号鍵及び通信暗号鍵番号を書き込む(ステップS612)。
【0062】
情報処理装置1の主CPU11は、指定したアドレスに通信暗号鍵が書き込まれたか否かを監視しておき、主CPU11が書き込まれたと判断した場合、主CPU11は、受け渡すディジタルコンテンツを書き込まれた通信暗号鍵を用いて暗号化処理する。なお、通信暗号鍵生成と通信暗号鍵要求をまとめて行うように構成してもよい。主CPU11は、暗号化されたディジタルコンテンツを他のプログラムへと受け渡し、受け取った他のプログラムの指示により、主CPU11は、暗号鍵要求信号をICチップ3に対して送信する。主CPU31は、暗号鍵要求信号に通信暗号鍵番号を含めて送信する。
【0063】
副CPU31は、前記と同様の処理を行い、対応する通信暗号鍵を抽出して(ステップS608)、暗号化されたディジタルコンテンツの復号鍵(秘密鍵方式では同一の鍵)として、抽出した通信暗号鍵及び通信暗号鍵番号を暗号鍵要求信号で指定されたRAM12のアドレスへ書き込む(ステップS612)。情報処理装置1の主CPU11は、指定したアドレスに通信暗号鍵が書き込まれたか否かを監視しておき、主CPU11が書き込まれたと判断した場合、主CPU11は、受け取ったディジタルコンテンツを書き込まれた通信暗号鍵を用いて復号処理する。さらに、暗号鍵要求信号をICチップ3に対して送信した場合、所定の回数を2回とした場合には、回数を超えるため、通信暗号鍵を取得することはできない。
【0064】
以上のように本実施の形態2によれば、プログラム間でディジタルコンテンツを受け渡す場合、通信暗号鍵で受け渡しするディジタルコンテンツを暗号化した後、通信暗号鍵が新たに生成されたときでも、履歴情報を参照することにより過去に生成された通信暗号鍵(復号鍵)を確実に取得することができ、暗号化されたディジタルコンテンツが復号できない事態等の発生を未然に防止することが可能となる。
【0065】
また、実施の形態1と同様に、通信暗号鍵そのものを別の暗号鍵を用いて暗号化しても良く、この場合も同様の効果が期待できる。
【0066】
上述した実施の形態1及び2では、通信暗号鍵を情報処理装置1のRAM12へセキュアモジュールの副CPU31の指示により書き込む場合について説明しているが、斯かる構成に限定されるものではなく、CPU間で相互に送受信する等、安全を確保しつつ通信暗号鍵を受け渡しすることが可能な方法であれば何でも良い。
また、ICチップ3が扱う通信暗号鍵を一つとして構成を説明したが、複数の通信暗号鍵を管理することも可能である。
【図面の簡単な説明】
【0067】
【図1】本発明の実施の形態1に係る情報処理装置の構成を示すブロック図である。
【図2】本発明の実施の形態1に係るICチップの副CPUの処理手順を示すフローチャートである。
【図3】暗号鍵要求信号のデータ構成の例示図である。
【図4】通信暗号鍵を暗号化する場合のICチップの副CPUの処理手順を示すフローチャートである。
【図5】本実施の形態2に係る情報処理装置の構成を示すブロック図である。
【図6】本発明の実施の形態2に係るICチップの副CPUの処理手順を示すフローチャートである。
【符号の説明】
【0068】
1 情報処理装置
2 セキュリティボード
3 ICチップ
11 主CPU
12、32 RAM
13、33 記憶手段
14 入力手段
15 出力手段
16、34 内部バス
21 接続インタフェース
31 副CPU
30 内部バス
331 履歴情報記憶部


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


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


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