セキュア計算システム、セキュア計算方法およびセキュア計算用プログラム
【課題】マルチコアプロセッサを用いて計算処理を実行する際、プロセッサごとの動作を制御する特別なセキュリティ回路を備えていない場合であっても、セキュアに計算処理を実行できるセキュア計算システムを提供する。
【解決手段】一のコア80は、他のコア90からのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段81と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段82とを備える。復号手段83は、他のコアから受信した暗号化データを復号鍵を用いて復号した平文データを作成し、その平文データを平文データ記憶手段87に記憶させる。平文データ計算手段84は、平文データ記憶手段87に記憶された平文データに対して指定された計算処理を行い、その計算処理による計算結果を結果データ記憶手段86に記憶させる。
【解決手段】一のコア80は、他のコア90からのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段81と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段82とを備える。復号手段83は、他のコアから受信した暗号化データを復号鍵を用いて復号した平文データを作成し、その平文データを平文データ記憶手段87に記憶させる。平文データ計算手段84は、平文データ記憶手段87に記憶された平文データに対して指定された計算処理を行い、その計算処理による計算結果を結果データ記憶手段86に記憶させる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マルチコアプロセッサを利用してセキュアに計算を実行できるセキュア計算用システム、セキュア計算用方法およびセキュア計算用プログラムに関する。
【背景技術】
【0002】
一般的なセキュアシステムの一例が、特許文献1に記載されている。特許文献1に記載されたセキュアシステムを用いてセキュアなデータ処理およびデータ伝送を行う方法では、セルアーキテクチャと呼ばれる特殊なプロセッサを用いることを前提にしている。図13は、セルアーキテクチャを用いたプロセッサ装置を示す説明図である。図13に示すプロセッサ装置は、ローカルメモリと、そのローカルメモリとの間で情報の伝送を可能にするバスと、ローカルメモリの動作を制御可能に接続され、データを処理する1つ以上のプロセッサと、三つの動作モードのうちいずれかの動作モードにプロセッサ装置を設定可能なセキュリティ回路とを備えている。
【0003】
第一の動作モードは、演算処理ユニットと、プロセッサ装置と通信可能に接続された外部デバイスとが、バスを介してローカルメモリの情報をプロセッサ装置の外部に転送することを開始でき、かつ、プロセッサ装置の外部の情報をローカルメモリに転送することを開始できるモードである。
【0004】
第二の動作モードは、演算処理ユニットとプロセッサ装置の外部デバイスとが、バスを介してローカルメモリの情報をプロセッサ装置の外部に転送することを開始できず、かつ、プロセッサ装置の外部の情報をローカルメモリに転送することも開始できないモードである。
【0005】
第三の動作モードは、演算処理ユニットがバスを介してローカルメモリの情報をローカルメモリに転送することを開始でき、かつ、プロセッサ装置の外部の情報をローカルメモリに転送することを開始できる。その一方で、プロセッサ装置の外部デバイスはバスを介してローカルメモリの情報を外部に転送することを開始できず、かつ、プロセッサ装置の外部の情報をローカルメモリに転送することも開始できないモードである。
【0006】
セキュリティ回路は、プロセッサ装置が認証ルーチンを実行する場合には、プロセッサ装置を第2のモードに設定し、認証が成功した場合にはプロセッサ装置を第3のモードに設定する。このようにモードを設定することで、セキュアなデータ処理を実現する。
【0007】
また、近年のマルチコアプロセッサは、上記のセルアーキテクチャと類似の構成を備える一方で、ローカルメモリの代わりに、キャッシュメモリを有する。キャッシュメモリは、上記のセルアーキテクチャのように明示的にモードが切り替えられることはない。
【0008】
さらに、近年のマルチコアプロセッサには、キャッシュ以外に、ローカルメモリを内蔵するものも存在する。このようなマルチコアプロセッサのローカルメモリは、上記セルアーキテクチャのローカルメモリのように明示的にモードが切り替えられることはない。一方で、ローカルメモリに書き込まれたデータを、別のコアから参照することはできない。
【0009】
また、特許文献2には、同一構成のプロセッサを複数有する対称型のマルチプロセッサが記載されている。特許文献2に記載されたマルチプロセッサでは、各プロセッサがバスで接続され、それぞれのプロセッサにはキャッシュメモリが含まれる。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開2006−139785号公報
【特許文献2】特開2007−265143号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
しかし、特許文献1に記載されたプロセッサ装置は、セルアーキテクチャのように、プロセッサごとにセキュリティのモードを指定してデータを処理可能なセキュリティ回路を備えていることを前提にしている。すなわち、上述する特別なセキュリティ回路をプロセッサに実装しなければ、セキュアに計算処理を実行できないという問題がある。
【0012】
また、特許文献2に記載されたマルチプロセッサは、処理時間の短縮や処理効率の向上を図ることを目的として使用されるものであり、プロセッサ内のセキュリティについては考慮されていない。そのため、特許文献2に記載されたマルチプロセッサを用いても、セキュアに計算処理を実行できるとは言い難い。
【0013】
そこで、本発明は、マルチコアプロセッサを用いて計算処理を実行する際、プロセッサごとの動作を制御する特別なセキュリティ回路を備えていない場合であっても、セキュアに計算処理を実行できるセキュア計算システム、セキュア計算方法およびセキュア計算用プログラムを提供することを目的とする。
【課題を解決するための手段】
【0014】
本発明によるセキュア計算システムは、マルチコアプロセッサを用いたセキュア計算システムであって、一のコアが、他のコアからのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段と、暗号化されたデータを復号する復号手段と、復号手段が復号したデータである平文データに対して指定された計算処理を行う平文データ計算手段とを備え、他コアアクセス可能記憶手段が、他のコアから受信した暗号化データを記憶する暗号化データ記憶手段と、平文データ計算手段による計算結果を記憶する結果データ記憶手段とを含み、自コア内アクセス可能記憶手段が、平文データを記憶する平文データ記憶手段と、受信した暗号化データを復号する復号鍵を記憶する復号鍵記憶手段とを含み、復号手段が、他のコアから受信した暗号化データを復号鍵を用いて復号した平文データを作成し、その平文データを平文データ記憶手段に記憶させ、平文データ計算手段が、平文データ記憶手段に記憶された平文データに対して指定された計算処理を行い、その計算処理による計算結果を結果データ記憶手段に記憶させることを特徴とする。
【0015】
本発明による他のセキュア計算システムは、マルチコアプロセッサを用いたセキュア計算システムであって、一のコアが、他のコアからのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段と、暗号化されたデータを復号する復号手段と、復号手段が復号したデータである平文データに対して指定された計算処理を行う平文データ計算手段と、他のコアから指定された暗号鍵を用いてデータを暗号化する暗号化手段とを備え、他コアアクセス可能記憶手段が、他のコアから受信した暗号化データを記憶する暗号化データ記憶手段と、平文データ計算手段による計算結果を記憶する結果データ記憶手段と、他のコアから指定された暗号鍵を記憶する暗号鍵記憶手段とを含み、自コア内アクセス可能記憶手段が、平文データを記憶する平文データ記憶手段と、受信した暗号化データを復号する復号鍵を記憶する復号鍵記憶手段と、復号手段が復号した平文データを記憶する平文結果データ記憶手段とを含み、復号手段が、他のコアから受信した暗号化データを復号鍵を用いて復号した平文データを作成し、その平文データを平文データ記憶手段に記憶させ、平文データ計算手段は、平文データ記憶手段に記憶された平文データに対して指定された計算処理を行い、その計算処理による計算結果を平文結果データ記憶手段に記憶させ、暗号化手段が、暗号鍵記憶手段に記憶された暗号鍵を用いて平文結果データ記憶手段に記憶された計算結果を暗号化し、暗号化した計算結果を結果データ記憶手段に記憶させることを特徴とする。
【0016】
本発明によるセキュア計算方法は、少なくとも一のコアが、他のコアからのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段とを備えたマルチコアプロセッサを用いたセキュア計算方法であって、一のコアが、自コア内アクセス可能記憶手段に記憶された復号鍵を用いて、他のコアから受信した暗号化データを復号したデータである平文データを作成し、一のコアが、平文データを自コア内アクセス可能記憶手段に記憶させ、一のコアが、自コア内アクセス可能記憶手段に記憶された平文データに対して指定された計算処理を行い、一のコアが、計算処理による計算結果を他コアアクセス可能記憶手段に記憶させることを特徴とする。
【0017】
本発明による他のセキュア計算方法は、少なくとも一のコアが、他のコアからのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段とを備えたマルチコアプロセッサを用いたセキュア計算方法であって、一のコアが、自コア内アクセス可能記憶手段に記憶された復号鍵を用いて、他のコアから受信した暗号化データを復号したデータである平文データを作成し、一のコアが、平文データを自コア内アクセス可能記憶手段に記憶させ、一のコアが、自コア内アクセス可能記憶手段に記憶された平文データに対して指定された計算処理を行い、一のコアが、計算処理による計算結果を自コア内アクセス可能記憶手段に記憶させ、一のコアが、他のコアから指定された暗号鍵を用いて計算結果を暗号化し、一のコアが、暗号化した計算結果を他コアアクセス可能記憶手段に記憶させることを特徴とする。
【0018】
本発明によるセキュア計算用プログラムは、少なくとも一のコアが、他のコアからのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段とを備えたマルチコアプロセッサを有するコンピュータに適用されるセキュア計算用プログラムであって、コンピュータに、自コア内アクセス可能記憶手段に記憶された復号鍵を用いて、他のコアから受信した暗号化データを復号したデータである平文データを作成し、その平文データを自コア内アクセス可能記憶手段に記憶させる復号処理、および、自コア内アクセス可能記憶手段に記憶された平文データに対して指定された計算処理を行い、その計算処理による計算結果を他コアアクセス可能記憶手段に記憶させる平文データ計算処理を実行させることを特徴とする。
【0019】
本発明による他のセキュア計算用プログラムは、少なくとも一のコアが、他のコアからのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段とを備えたマルチコアプロセッサを有するコンピュータに適用されるセキュア計算用プログラムであって、コンピュータに、自コア内アクセス可能記憶手段に記憶された復号鍵を用いて、他のコアから受信した暗号化データを復号したデータである平文データを作成し、その平文データを自コア内アクセス可能記憶手段に記憶させる復号処理、自コア内アクセス可能記憶手段に記憶された平文データに対して指定された計算処理を行い、その計算処理による計算結果を自コア内アクセス可能記憶手段に記憶させる平文データ計算処理、および、他コアアクセス可能記憶手段に記憶された暗号鍵を用いて平文結果データ記憶手段に記憶された計算結果を暗号化し、暗号化した計算結果を他コアアクセス可能記憶手段に記憶させる暗号処理を実行させることを特徴とする。
【発明の効果】
【0020】
本発明によれば、マルチコアプロセッサを用いて計算処理を実行する際、プロセッサごとの動作を制御する特別なセキュリティ回路を備えていない場合であっても、セキュアに計算処理を実行できる。
【図面の簡単な説明】
【0021】
【図1】本発明の第1の実施形態におけるセキュア計算システムの例を示すブロック図である。
【図2】第1の実施形態におけるコア4−2の例を示すブロック図である。
【図3】キャッシュ、ローカルメモリ、メモリの内容の一例を示す説明図である。
【図4】第1の実施形態におけるセキュア計算システムの動作の例を示すフローチャートである。
【図5】本発明の第2の実施形態におけるセキュア計算システムの例を示すブロック図である。
【図6】第2の実施形態におけるコア4−3の例を示すブロック図である。
【図7】キャッシュ、ローカルメモリ、メモリの内容の一例を示す説明図である。
【図8】第2の実施形態におけるセキュア計算システムの動作の例を示すフローチャートである。
【図9】サーバごとに通信データ量の統計計算を行う動作の例を示す説明図である。
【図10】サーバごとに通信データ量の統計計算を行う動作の例を示す説明図である。
【図11】本発明によるセキュア計算システムの最小構成の例を示すブロック図である。
【図12】本発明によるセキュア計算システムの他の最小構成の例を示すブロック図である。
【図13】セルアーキテクチャを用いたプロセッサ装置を示す説明図である。
【発明を実施するための形態】
【0022】
以下、本発明の実施形態を図面を参照して説明する。
【0023】
実施形態1.
図1は、本発明の第1の実施形態におけるセキュア計算システムの例を示すブロック図である。本実施形態におけるセキュア計算システムは、コンピュータ1により実現される。コンピュータ1は、少なくとも、マルチコアプロセッサ2とメモリ3とを備えている。また、コンピュータ1は、プログラム制御により動作する。
【0024】
マルチコアプロセッサ2は、少なくとも2つのコア(より詳しくは、コア4−1とコア4−2と)を含む。さらに、この2つのコアは、それぞれキャッシュ(より詳しくは、キャッシュ5−1とキャッシュ5−2)と、ローカルメモリ(より詳しくは、ローカルメモリ6−1とローカルメモリ6−2)とを有する。
【0025】
マルチコアプロセッサ2は、メモリ3から読み込んだ命令列(セキュア計算用プログラム)を実行し、また、メモリ3からデータを読み込んで、何らかの計算処理を行い、その処理結果をメモリ3に記憶させる。以下、メモリ等にデータを記憶させることを、メモリにデータを書き出すと記し、メモリ等がデータを記憶することを、メモリがデータを保持すると記すこともある。
【0026】
各コア(より詳しくは、コア4−1とコア4−2と)では、キャッシュに記憶されたデータを参照して処理が行われ、処理結果がキャッシュに一時的に記憶される。なお、キャッシュへのアクセス(例えば、読み書き)は、メモリ3へのアクセスの結果として同時に(自動的に)行われ、キャッシュに対する明示的なアクセス操作は行われない。
【0027】
キャッシュ(より詳しくは、キャッシュ5−1とキャッシュ5−2と)は、コアがメモリ3に記憶された命令やデータなどの情報にアクセスする際に、それらの情報を一時的に保持する。キャッシュは、他のコアからのアクセスが可能な状態で情報を記憶する。
【0028】
ローカルメモリ(より詳しくは、ローカルメモリ6−1とローカルメモリ6−2)は、各コアでのみアクセス可能なメモリである。ローカルメモリに対しては、メモリ3から読み込んだ情報の書き出し操作を各コアが明示的に行う。
【0029】
本実施形態では、計算処理の実行指示を行うプログラム(以下、ユーザプログラムと記す。)および計算処理の実行指示を受けて暗号化されたデータの復号および計算処理を行うプログラム(以下、暗号化計算プログラムと記す。)がそれぞれ実行されるものとする。また、本実施形態におけるセキュア計算システムでは、後述するコア4−1のユーザプログラム処理部9がユーザプログラムを実行し、コア4−2の暗号化計算プログラム処理部7が暗号化計算プログラムを実行する。各プログラムを実行するコアの割り当ては初期化時に行われ、その後、コアの割り当ては変化しない。さらに、暗号化計算プログラム処理部7が復号に用いる暗号鍵は、ローカルメモリの一部として、後述する暗号鍵保持部16へ初期化時に記憶される。
【0030】
次に、各コアの内容について具体的に説明する。コア4−1は、ユーザプログラム処理部9と、ローカルメモリ6−1と、キャッシュ5−1とを含む。なお、ローカルメモリ6−1およびキャッシュ5−1の内容は、上述するローカルメモリおよびキャッシュの説明の通りである。
【0031】
ユーザプログラム処理部9は、暗号化済みのデータを通信ネットワーク(図示せず)を介して受信する、または、磁気ディスク装置等(図示せず)から読み取ると、暗号化データを暗号化計算プログラム処理部7に送信し、計算指示を行う。そして、ユーザプログラム処理部9は、暗号化計算プログラム処理部7から計算結果を受け取る。ユーザプログラム処理部9は、例えば、数字の配列が暗号化された暗号化データを入手すると、その暗号化データを暗号化計算プログラム処理部7に送信して、配列内の数字の総和を計算させる。
【0032】
コア4−2は、暗号化計算プログラム処理部7と、ローカルメモリ6−2と、キャッシュ5−2とを含む。なお、ローカルメモリ6−2およびキャッシュ5−2の内容は、上述するローカルメモリおよびキャッシュの説明の通りである。
【0033】
暗号化計算プログラム処理部7は、暗号化済みのデータを受け取り、それを内部で復号した後で特定の計算を行い、計算終了の通知をユーザプログラム処理部9に行う。暗号化計算プログラム処理部7は、公開鍵暗号を用いて復号を行う。すなわち、受け取った暗号化データが公開鍵により暗号化されており、暗号化計算プログラム処理部7は、受け取った暗号化データを秘密鍵を使って復号する。なお、復号に必要な秘密鍵は、ローカルメモリ6−2に記憶されている。ここで、特定の計算とは、例えば、総和を求める計算である。この場合、暗号化計算プログラム処理部7は、数字の配列が暗号化された暗号化データを受け取り、それを復号した結果として得られた配列の各要素を加算する。
【0034】
次に、コア4−2の内容について、より詳細に説明する。図2は、本実施形態におけるコア4−2の例を示すブロック図である。キャッシュ5−2は、暗号化データ保持部11と、結果データ保持部12とを含み、ローカルメモリ6−2は、平文データ保持部15と、暗号鍵保持部16とを含み、暗号化計算プログラム処理部7は、復号化部13と、計算部17とを含む。
【0035】
暗号化データ保持部11は、別のコア(本実施形態では、コア4−1)から渡された暗号化済みデータを保持する。暗号化データ保持部11は、キャッシュ5−2の一部であるが、メモリ3の一部であってもよい。暗号化データ保持部11が記憶する暗号化済みデータは、別のコアからアクセス(例えば、参照)可能である。また、暗号化データ保持部11は、計算部17が使用する引数や環境変数などを記憶していてもよい。なお、引数や環境変数に関しては、必ずしも、暗号化しておく必要はない。
【0036】
結果データ保持部12は、計算部17による計算結果を保持する。結果データ保持部12は、キャッシュ5−2の一部であるが、メモリ3の一部であってもよい。暗号化データ保持部11と同様、結果データ保持部12が記憶する計算結果のデータは、別のコア(本実施形態では、コア4−1)からアクセス(例えば、参照)可能である。
【0037】
平文データ保持部15は、復号化部13により復号された暗号化データ(以下、平文データと記す。)を記憶する。また、暗号鍵保持部16は、受信した暗号化データを復号する暗号鍵を記憶する。なお、この暗号鍵のことを復号鍵と記すこともある。平文データ保持部15と、暗号鍵保持部16とは、ローカルメモリ6−2の一部であり、ローカルメモリ6−2に記憶されたデータは、他のコアからアクセス(例えば、参照)することはできない。
【0038】
復号化部13は、暗号化計算プログラム処理部7が別のコアから計算要求を受けとると、暗号鍵保持部16に記憶された暗号鍵を用いて、暗号化データ保持部11に保持されている暗号化済みデータを復号し、復号した結果の平文データを平文データ保持部15に記憶させる。
【0039】
計算部17は、特定の計算を行う機能を提供するものであり、平文データ保持部15に記憶された平文データを入力として、計算を実行する。具体的には、計算部17は、平文データ保持部15に記憶された平文データをもとに、特定の計算処理を行う。さらに、計算部17は、計算結果を結果データ保持部12に記憶させ、計算の要求元であるユーザプログラム処理部9に計算終了を通知する。そして、計算部17は、平文データ保持部15に記憶されたデータを計算終了の通知と合わせて消去する。なお、計算部17が計算中に利用するメモリ領域(スタックやヒープ)には、ローカルメモリ6−2が使用される。
【0040】
図3は、キャッシュ、ローカルメモリおよびメモリの内容の一例を示す説明図である。キャッシュ5−1およびキャッシュ5−2には、暗号化データ保持部11に対応するキャッシュエントリおよび結果データ保持部12に対応するキャッシュエントリが確保される。また、メモリ3には、暗号化データ保持部11に対応するメモリ領域および結果データ保持部12に対応するメモリ領域が確保される。さらに、ローカルメモリ6−2には、平文データ保持部15および暗号鍵保持部16が含まれる。なお、本実施形態では、ローカルメモリ6−1に記憶させる情報がないため、図3に例示するローカルメモリ6−1には、記憶する内容を特に記載していない。
【0041】
次に、動作について説明する。図4は、第1の実施形態におけるセキュア計算システムの動作の例を示すフローチャートである。ユーザプログラム処理部9は、暗号化プログラム処理部7に計算要求を行い、合わせて、暗号化済みデータをキャッシュ5-2上の暗号化データ保持部11に記憶させる(ステップS1)。このとき、暗号化済みデータは、キャッシュ5−1の中の暗号化データ保持部11に対応するキャッシュエントリを経由して、暗号化プログラム処理部7に渡される。
【0042】
暗号化計算プログラム処理部7が計算要求を受け取ると、復号化部13は、暗号鍵保持部16に記憶された暗号鍵を用いて、暗号化データ保持部11に保持されている暗号化済みデータを復号し、復号した結果の平文データを平文データ保持部15に記憶させる(ステップS2)。
【0043】
計算部17は、平文データ保持部15に記憶された平文データを入力として計算処理を実行し、さらに、計算結果を結果データ保持部12に記憶させる。同時に、計算部17は、平文データ保持部15に記憶された平文データを消去する(ステップS3)。そして、計算部17は、計算処理の要求元であるユーザプログラム処理部9に計算が終了した旨を通知する(ステップS4)。
【0044】
ユーザプログラム処理部9は、計算部17からの通知を受け取ると、キャッシュ5−1の中の結果データ保持部12に対応するキャッシュエントリから、計算結果のデータを読み出す(ステップS5)。具体的には、ユーザプログラム処理部9は、結果データ保持部12に対応するメモリ領域をアクセスすることで、結果的に、キャッシュ5−1の中の結果データ保持部12に対応するキャッシュエントリから、計算結果のデータを読み出す。
【0045】
以上のように、本実施形態によれば、コア4−2の復号化部13が、ローカルメモリ6−2の暗号鍵保持部16に記憶された復号鍵を用いて、コア4−1から受信した暗号化データを復号した平文データを作成し、その平文データをローカルメモリ6−2の平文データ保持部15に記憶させる。そして、コア4−2の計算部17が、平文データ保持部15に記憶された平文データに対して指定された計算処理を行い、その計算処理による計算結果をキャッシュ5−2の結果データ保持部12に記憶させる。
【0046】
すなわち、本実施形態では、他のコアからはアクセスできないローカルメモリ6−2を利用して暗号化計算プログラム処理部7が復号や計算処理を行うように構成されているため、特別なセキュリティ回路を備えていない場合であっても、セキュアな計算処理を実現できる。
【0047】
なお、第1の実施形態では、コアを対称にするため、コア4−1にローカルメモリ6−1が含まれる構成を例に説明した。ただし、本発明におけるセキュア計算システムでは、コア4−1がローカルメモリを含まない非対称な構成であってもよい。なお、この場合、ハードウェア構成(すなわち、コア4−1にローカルメモリ6−1を含まない構成)以外の構成および動作は、上述する内容と同様である。
【0048】
また、第1の実施形態では、ローカルメモリとキャッシュの両方がコアに含まれる構成を例に説明した。ただし、本発明におけるセキュア計算システムにおいて、キャッシュの一部の一貫性制御を停止できるマルチコアプロセッサであれば、ローカルメモリを含まない構成であってもよい。ここで、一貫性制御とは、キャッシュ上の一のデータが他のデータに変更されたことに伴い、そのキャッシュを含むコア以外のコアに含まれるキャッシュに記憶された一のデータを他のデータに変更する制御である。
【0049】
一貫性制御を停止されたキャッシュ領域に記憶されたデータがあるコアによって変更されたとしても、別のコアからはその変更内容を取得することはできず、その部分の領域をローカルメモリのように使うことが可能なためである。すなわち、一貫性制御が停止されたキャッシュの一部領域を自コアからのみアクセスが可能な領域として用いることができる。この場合、初期化時などに、キャッシュの一部の一貫性制御を停止させ、その停止させた部分を、第1の実施形態におけるローカルメモリと同様に利用すればよい。その場合の動作については、上述する内容と同様である。
【0050】
次に、第1の実施形態における変形例について説明する。第1の実施形態では、暗号化計算プログラム処理部7が、特定の1種類の計算処理を行う場合について説明した。本変形では、暗号化計算プログラム処理部7が複数の計算処理の中から1つを選択して計算処理を行う場合について説明する。この場合、ユーザプログラム処理部9は、暗号化計算プログラム処理部7への引数として、計算の種類を示す識別子を渡す。暗号化計算プログラム処理部7の計算部17は、複数の計算式を保持し、計算の種類を示す識別子に基づいて、計算式を選択し、計算処理を行う。
【0051】
すなわち、本実施形態の変形例では、特別なセキュリティ回路を備えていない場合であっても、セキュアな計算処理を実現できるという第1の実施形態の効果に加えて、複数の計算式から一つの計算式を選択して、暗号化計算を行うことができるという効果が得られる。
【0052】
実施形態2.
図5は、本発明の第2の実施形態におけるセキュア計算システムの例を示すブロック図である。なお、第1の実施形態と同様の構成については、図1と同一の符号を付し、説明を省略する。本実施形態におけるセキュア計算システムも、コンピュータ1により実現され、コンピュータ1は、少なくとも、マルチコアプロセッサ2とメモリ3とを備えている。また、コンピュータ1は、プログラム制御により動作する。
【0053】
マルチコアプロセッサ2は、少なくとも2つのコア(より詳しくは、コア4−1とコア4−3と)を含む。さらに、この2つのコアは、それぞれキャッシュ(より詳しくは、キャッシュ5−1とキャッシュ5−3)と、ローカルメモリ(より詳しくは、ローカルメモリ6−1とローカルメモリ6−3)とを有する。
【0054】
本実施形態におけるセキュア計算システムでは、後述するコア4−1のユーザプログラム処理部9がユーザプログラムを実行し、コア4−3の暗号化計算プログラム処理部8が暗号化計算プログラムを実行する。
【0055】
次に、各コアの内容について具体的に説明する。コア4−1については、第1の実施形態と同様である。コア4−3は、暗号化計算プログラム処理部8と、ローカルメモリ6−3と、キャッシュ5−3とを含む。なお、ローカルメモリ6−3およびキャッシュ5−3の内容は、第1の実施形態におけるローカルメモリおよびキャッシュの説明の通りである。
【0056】
暗号化計算プログラム処理部8は、第1の実施形態における暗号化計算プログラム処理部7と同様、暗号化済みのデータを受け取り、それを内部で復号した後で特定の計算処理を行い、計算終了の通知をユーザプログラム処理部9に行う。
【0057】
次に、コア4−3の内容について、より詳細に説明する。図6は、本実施形態におけるコア4−3の例を示すブロック図である。キャッシュ5−3は、暗号化データ保持部11と、結果データ保持部12と、第2の暗号鍵保持部20とを含み、ローカルメモリ6−3は、平文データ保持部15と、暗号鍵保持部16と、平文結果データ保持部18とを含み、暗号化計算プログラム処理部8は、復号化部13と、暗号化部14と、計算部19とを含む。
【0058】
コア4−3は、暗号化部14、平文結果データ保持部18、計算部19および第2の暗号鍵保持部20を含んでいる点において第1の実施形態におけるコア4−2と異なる。それ以外の構成内容については、第1の実施形態の構成内容と同様である。すなわち、暗号化データ保持部11は、別のコアから渡された暗号化済みデータを保持し、暗号鍵保持部16は、暗号鍵を保持する。また、復号化部13は、暗号化データ保持部11に保持されている暗号化済みデータを復号し、平文データ保持部15は、復号後の平文データを保持する。また、結果データ保持部12は、計算結果のデータを保持する。
【0059】
また、暗号化データ保持部11と結果データ保持部12とは、キャッシュ5−3の一部であるが、メモリ3の一部であってもよい。また、平文データ保持部15と暗号鍵保持部16とは、ローカルメモリ6−3の一部である。
【0060】
計算部19は、特定の計算を行う機能を提供するものであり、平文データ保持部15に記憶された平文データを入力として、計算を実行する。具体的には、計算部19は、平文データ保持部15に記憶された平文データをもとに、特定の計算処理を行う。さらに、計算部19は、計算結果を平文結果データ保持部18に記憶させ、暗号化部14に計算結果の暗号化を指示する。なお、計算部19が計算中に利用するメモリ領域(スタックやヒープ)には、ローカルメモリ6−3が使用される。
【0061】
平文結果データ保持部18は、計算部19による計算結果を一時的に記憶する。平文結果データ保持部18は、ローカルメモリ6−3の一部であり、ローカルメモリ6−3に記憶されたデータは、自コアからのみアクセス可能であり、他のコアからアクセス(例えば、参照)することはできない。
【0062】
第2の暗号鍵保持部20は、ユーザプログラム処理部9から送信される公開暗号鍵を記憶する。なお、第2の暗号鍵保持部20は、ローカルメモリ6−3の一部であってもよく、メモリ3の一部であってもよい。
【0063】
暗号化部14は、計算部19から暗号化の指示を受け取ると、平文結果データ保存部18から平文の計算結果のデータを読み取り、そのデータを第2の暗号鍵保持部20が記憶する暗号鍵を用いて暗号化する。そして、暗号化部14は、暗号化した結果を結果データ保持部12に記憶させる。同時に、暗号化部14は、平文結果データ保持部18に記憶されたデータを消去する。そして、暗号化部14は、計算処理の要求元であるユーザプログラム処理部9に計算が終了した旨を通知する。
【0064】
図7は、キャッシュ、ローカルメモリおよびメモリの内容の一例を示す説明図である。キャッシュ5−1およびキャッシュ5−3には、暗号化データ保持部11に対応するキャッシュエントリおよび結果データ保持部12に対応するキャッシュエントリが確保される。また、メモリ3には、暗号化データ保持部11に対応するメモリ領域および結果データ保持部12に対応するメモリ領域が確保される。さらに、ローカルメモリ6−3には、平文データ保持部15、暗号鍵保持部16および平文結果データ保持部18が含まれる。本実施形態でも、ローカルメモリ6−1に記憶させる情報がないため、図7に例示するローカルメモリ6−1には、記憶する内容を特に記載していない。
【0065】
次に、動作について説明する。図8は、第2の実施形態におけるセキュア計算システムの動作の例を示すフローチャートである。ユーザプログラム処理部9は、暗号化プログラム処理部8に計算要求を行い、合わせて、暗号化済みデータをキャッシュ5−3上の暗号化データ保持部11に記憶させる(ステップS11)。このとき、暗号化済みデータは、キャッシュ5−1の中の暗号化データ保持部11に対応するキャッシュエントリを経由して、暗号化プログラム処理部8に渡される。
【0066】
暗号化計算プログラム処理部8が計算要求を受け取ると、復号化部13は、暗号鍵保持部16に記憶された暗号鍵を用いて、暗号化データ保持部11に保持されている暗号化済みデータを復号し、復号した結果の平文データを平文データ保持部15に記憶させる(ステップS12)。
【0067】
計算部19は、平文データ保持部15に記憶された平文データを入力として計算処理を実行し、さらに、計算結果を平文結果データ保持部18に記憶させる。同時に、計算部19は、平文データ保持部15に記憶された平文データを消去する(ステップS13)。
【0068】
暗号化部14は、平文結果データ保存部18から平文の計算結果のデータを読み取り、そのデータを第2の暗号鍵保持部20が記憶する暗号鍵を用いて暗号化する。そして、暗号化部14は、暗号化した結果を結果データ保持部12に記憶させる。同時に、暗号化部14は、平文結果データ保持部18に記憶されたデータを消去する(ステップS14)。
【0069】
そして、暗号化部14は、計算処理の要求元であるユーザプログラム処理部9に計算が終了した旨を通知する(ステップS15)。
【0070】
ユーザプログラム処理部9は、計算部17からの通知を受け取ると、キャッシュ5−1の中の結果データ保持部12に対応するキャッシュエントリから、計算結果のデータを読み出す(ステップS16)。具体的には、ユーザプログラム処理部9は、結果データ保持部12に対応するメモリ領域をアクセスすることで、結果的に、キャッシュ5−1の中の結果データ保持部12に対応するキャッシュエントリから、計算結果のデータを読み出す。
【0071】
以上のように、本実施形態によれば、コア4−3の復号化部13が、ローカルメモリ6−3の暗号鍵保持部16に記憶された復号鍵を用いて、コア4−1から受信した暗号化データを復号した平文データを作成し、その記平文データをローカルメモリ6−3の平文データ保持部15に記憶させる。そして、コア4−3の計算部19が、平文データ保持部15に記憶された平文データに対して指定された計算処理を行い、その計算処理による計算結果をローカルメモリ6−3の平文データ結果保持部18に記憶させる。さらに、コア4−3の暗号化部14がコア4−1から指定された暗号鍵を用いて計算結果を暗号化し、暗号化した計算結果をキャッシュ5−3の結果データ保持部12に記憶させる。
【0072】
すなわち、本実施形態では、他のコアからはアクセスできないローカルメモリ6−3を利用して、暗号化計算プログラム処理部8が計算結果を暗号化し、暗号化されたデータをユーザプログラム処理部9が取得するように構成されている。よって、第1の実施形態よりも、さらに、セキュアな計算処理を実現できる。
【実施例1】
【0073】
以下、具体的な実施例により本発明を説明するが、本発明の範囲は以下に説明する内容に限定されない。本発明によるセキュア計算システムは、セキュアな統計計算に適用できる。第1の実施例では、第1の実施形態におけるセキュア計算システムを用いて統計計算を行う動作について説明する。
【0074】
図9は、サーバごとに通信データ量の統計計算を行う動作の例を示す説明図である。コンピュータ1は、暗号化データとして、ユーザIDとアクセス先を示す情報と通信データ量とを含むアクセス履歴を定期的にサーバなど(図示せず)から受け取る。そして、ユーザプログラム処理部9が暗号化計算プログラム処理部7にアクセス履歴を送信し、計算指示を行う。暗号化計算プログラム処理部7は、アクセス履歴を受け取り、サーバごとにパケット量などを合算した結果をサーバごとの通信データ量として計算する。そして、コンピュータ1は、この通信データ量を要求されたサーバ等(図示せず)に返す。
【0075】
具体的には、暗号化データ保持部11に暗号化されたデータ(アクセス履歴)が記憶されると、復号化部13がそのデータを復号し、復号された平文データを平文データ保持部15に記憶させる。図9に示す例では、平文データ保持部15は、復号化後の平文データ(アクセス履歴)として、ユーザIDとアクセス先を示す情報(アクセス先)とデータ量とを対応付けて記憶する。
【0076】
次に、計算部17は、アクセス先を示す情報に含まれるサーバIDを検索キーにして、アクセス履歴を検索する。ここでは、サーバID「a.b.c」を検索キーにしてアクセス履歴を検索するものとする。そして、計算部17は、検索の結果絞り込まれたエントリにおけるデータ量の総和を計算する。この場合、データ量の総和は、1000+1000+5000000=5002000(バイト)と計算される。計算部17は、他のサーバに関しても同様にデータ量の総和を計算する。
【0077】
そして、計算部17は、計算結果を結果データ保持部12に記憶させる。図9に示す例では、結果データ保持部12は、計算結果として、サーバごとのURLと合計データ量とを対応付けて記憶する。
【0078】
ユーザごとのアクセス履歴は、プライバシーにかかわる重大な情報であるため、秘匿すべきである。一方で、サーバごとの統計情報は、負荷分散などのために重要な指標である。本実施例では、復号後のアクセス履歴が他のコアからアクセスできないローカルメモリ上に記憶されて統計処理が行われるため、ユーザごとのアクセス履歴を知られることなく、サーバ単位のアクセス統計情報を取得することができる。すなわち、本発明におけるセキュア計算システムにより、プライバシー情報の秘匿と有益な情報の抽出という2点を両立できる。
【実施例2】
【0079】
本発明によるセキュア計算システムは、課金システムにも適用できる。第2の実施例では、第2の実施形態におけるセキュア計算システムを用いて統計計算を行う動作について説明する。
【0080】
図10は、サーバごとに通信データ量の統計計算を行う動作の例を示す説明図である。コンピュータ1は、暗号化データとして、ユーザIDとアクセス先を示す情報と通信データ量とを含むアクセス履歴を定期的にサーバなど(図示せず)から受け取る。そして、ユーザプログラム処理部9が暗号化計算プログラム処理部8にアクセス履歴を送信し、計算指示を行う。暗号化計算プログラム処理部8は、アクセス履歴を受け取り、ユーザIDごとにパケット量などを合算した結果をユーザごとの課金データとして計算する。そして、コンピュータ1は、この課金データを要求されたサーバ等(図示せず)に返す。このとき、課金データは、暗号化された状態で返される。
【0081】
具体的には、暗号化データ保持部11に暗号化されたデータ(アクセス履歴)が記憶されると、復号化部13がそのデータを復号し、復号された平文データを平文データ保持部15に記憶させる。図10に示す例では、平文データ保持部15は、復号化後の平文データ(アクセス履歴)として、ユーザIDとアクセス先を示す情報(アクセス先)とデータ量とを対応付けて記憶する。
【0082】
次に、計算部19は、引数として与えられたユーザIDを検索キーにして、アクセス履歴を検索する。ここでは、ユーザID「tom」が検索キーとして与えられたものとする。そして、計算部19は、検索の結果絞り込まれたエントリにおけるデータ量の総和を計算する。この場合、データ量の総和は、1000+5000000+2000=5003000(バイト)と計算される。そして、計算部19は、計算結果を平文結果データ保持部18に記憶させる。図10に示す例では、平文結果データ保持部18は、計算結果として、ユーザIDと合計データ量とを対応付けて記憶する。
【0083】
暗号化部14は、ユーザプログラム処理部9から送信された暗号鍵(具体的には、第2の暗号鍵保持部20に記憶された公開暗号鍵)を使って計算結果を暗号化し、暗号化した計算結果を結果データ保持部12に記憶させる。以降、ユーザプログラム処理部9は、暗号化された計算結果を結果データ保持部12を介して取得する。
【0084】
本実施例では、ユーザプログラム処理部9から送信された公開暗号鍵を使って計算結果を暗号化しているため、この公開暗号鍵に対応する秘密暗号鍵を知るものによってのみユーザごとのアクセス統計情報を処理できる。
【0085】
次に、本発明の最小構成の例を説明する。図11は、本発明によるセキュア計算システムの最小構成の例を示すブロック図である。本発明によるセキュア計算システムは、マルチコアプロセッサ99(例えば、マルチコアプロセッサ2)を用いたセキュア計算システムであって、一のコア80(例えば、コア4−2)は、他のコア90(例えば、コア4−1)からのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段81(例えば、キャッシュ5−2)と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段82(例えば、ローカルメモリ6−2)と、暗号化されたデータを復号する復号手段83(例えば、復号化部13)と、復号手段83が復号したデータである平文データに対して指定された計算処理(例えば、通信データ量の統計計算)を行う平文データ計算手段84(例えば、計算部17)とを備えている。
【0086】
他コアアクセス可能記憶手段81は、他のコアから受信した暗号化データを記憶する暗号化データ記憶手段85(例えば、暗号化データ保持部11)と、平文データ計算手段84による計算結果を記憶する結果データ記憶手段86(例えば、結果データ保持部12)とを含む。
【0087】
自コア内アクセス可能記憶手段82は、平文データを記憶する平文データ記憶手段87(例えば、平文データ保持部15)と、受信した暗号化データを復号する復号鍵を記憶する復号鍵記憶手段88(例えば、暗号鍵保持部16)とを含む。
【0088】
復号手段83は、他のコアから受信した暗号化データを復号鍵を用いて復号した平文データを作成し、その平文データを平文データ記憶手段87に記憶させる。平文データ計算手段84は、平文データ記憶手段87に記憶された平文データに対して指定された計算処理を行い、その計算処理による計算結果を結果データ記憶手段86に記憶させる。
【0089】
そのような構成により、マルチコアプロセッサを用いて計算処理を実行する際、プロセッサごとの動作を制御する特別なセキュリティ回路を備えていない場合であっても、セキュアに計算処理を実行できる。
【0090】
また、図12は、本発明によるセキュア計算システムの他の最小構成の例を示すブロック図である。本発明による他のセキュア計算システムは、マルチコアプロセッサ99(例えば、マルチコアプロセッサ2)を用いたセキュア計算システムであって、一のコア60(例えば、コア4−3)は、他のコア90(例えば、コア4−1)からのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段61(例えば、キャッシュ5−3)と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段62(例えば、ローカルメモリ6−3)と、暗号化されたデータを復号する復号手段63(例えば、復号化部13)と、復号手段63が復号したデータである平文データに対して指定された計算処理(例えば、通信データ量の統計計算)を行う平文データ計算手段64(例えば、計算部19)と、他のコアから指定された暗号鍵を用いてデータを暗号化する暗号化手段65(例えば、暗号化部14)を備えている。
【0091】
他コアアクセス可能記憶手段61は、他のコアから受信した暗号化データを記憶する暗号化データ記憶手段66(例えば、暗号化データ保持部11)と、平文データ計算手段64による計算結果を記憶する結果データ記憶手段67(例えば、結果データ保持部12)と、他のコアから指定された暗号鍵を記憶する暗号鍵記憶手段68(例えば、第2の暗号鍵保持部20)とを含む。
【0092】
自コア内アクセス可能記憶手段62は、平文データを記憶する平文データ記憶手段69(例えば、平文データ保持部15)と、受信した暗号化データを復号する復号鍵を記憶する復号鍵記憶手段70(例えば、暗号鍵保持部16)と、復号手段63が復号した平文データを記憶する平文結果データ記憶手段71(例えば、平文結果データ保持部18)とを含む。
【0093】
復号手段63は、他のコアから受信した暗号化データを復号鍵を用いて復号した平文データを作成し、その平文データを平文データ記憶手段69に記憶させる。平文データ計算手段64は、平文データ記憶手段69に記憶された平文データに対して指定された計算処理を行い、その計算処理による計算結果を平文結果データ記憶手段71に記憶させる。暗号化手段65は、暗号鍵記憶手段68に記憶された暗号鍵を用いて平文結果データ記憶手段71に記憶された計算結果を暗号化し、暗号化した計算結果を結果データ記憶手段67に記憶させる。
【0094】
そのような構成であっても、セキュアに計算処理を実行できる。
【0095】
また、暗号化手段65は、平文結果データ記憶手段71に記憶された計算結果を削除してもよい。
【0096】
また、平文データ計算手段84(平文データ計算手段64)は、平文データ記憶手段87(平文データ記憶手段69)に記憶された平文データを削除してもよい。
【0097】
また、他コアアクセス可能記憶手段81(他コアアクセス可能記憶手段61)は、一のコア80(一のコア60)におけるキャッシュであり、自コア内アクセス可能記憶手段82(自コア内アクセス可能記憶手段62)は、一のコア80(一のコア60)におけるローカルメモリであってもよい。
【0098】
また、他コアアクセス可能記憶手段81(他コアアクセス可能記憶手段61)は、一のコア80(一のコア60)におけるキャッシュであり、自コア内アクセス可能記憶手段82(自コア内アクセス可能記憶手段62)は、キャッシュにおいて他のコア80(他のコア60)におけるキャッシュとの一貫性制御が停止された領域であってもよい。
【産業上の利用可能性】
【0099】
データセンターで各マシンの使用状況を収集し、統計情報を計算する機能を持つ管理サーバに本発明を適用可能である。また、OpenFlowネットワークシステムにおいて、ネットワーク全体の制御を行うコントローラにも本発明を適用可能である。
【符号の説明】
【0100】
1 コンピュータ
2 マルチコアプロセッサ
3 メモリ
4−1,4−2 コア
5−1,5−2 キャッシュ
6−1,6−2 ローカルメモリ
7,8 暗号化計算プログラム処理部
9 ユーザプログラム処理部
11 暗号化データ保持部
12 結果データ保持部
13 復号化部
14 暗号化部
15 平文データ保持部
16 暗号鍵保持部
17,19 計算部
18 平文結果データ保持部
20 第2の暗号鍵保持部
【技術分野】
【0001】
本発明は、マルチコアプロセッサを利用してセキュアに計算を実行できるセキュア計算用システム、セキュア計算用方法およびセキュア計算用プログラムに関する。
【背景技術】
【0002】
一般的なセキュアシステムの一例が、特許文献1に記載されている。特許文献1に記載されたセキュアシステムを用いてセキュアなデータ処理およびデータ伝送を行う方法では、セルアーキテクチャと呼ばれる特殊なプロセッサを用いることを前提にしている。図13は、セルアーキテクチャを用いたプロセッサ装置を示す説明図である。図13に示すプロセッサ装置は、ローカルメモリと、そのローカルメモリとの間で情報の伝送を可能にするバスと、ローカルメモリの動作を制御可能に接続され、データを処理する1つ以上のプロセッサと、三つの動作モードのうちいずれかの動作モードにプロセッサ装置を設定可能なセキュリティ回路とを備えている。
【0003】
第一の動作モードは、演算処理ユニットと、プロセッサ装置と通信可能に接続された外部デバイスとが、バスを介してローカルメモリの情報をプロセッサ装置の外部に転送することを開始でき、かつ、プロセッサ装置の外部の情報をローカルメモリに転送することを開始できるモードである。
【0004】
第二の動作モードは、演算処理ユニットとプロセッサ装置の外部デバイスとが、バスを介してローカルメモリの情報をプロセッサ装置の外部に転送することを開始できず、かつ、プロセッサ装置の外部の情報をローカルメモリに転送することも開始できないモードである。
【0005】
第三の動作モードは、演算処理ユニットがバスを介してローカルメモリの情報をローカルメモリに転送することを開始でき、かつ、プロセッサ装置の外部の情報をローカルメモリに転送することを開始できる。その一方で、プロセッサ装置の外部デバイスはバスを介してローカルメモリの情報を外部に転送することを開始できず、かつ、プロセッサ装置の外部の情報をローカルメモリに転送することも開始できないモードである。
【0006】
セキュリティ回路は、プロセッサ装置が認証ルーチンを実行する場合には、プロセッサ装置を第2のモードに設定し、認証が成功した場合にはプロセッサ装置を第3のモードに設定する。このようにモードを設定することで、セキュアなデータ処理を実現する。
【0007】
また、近年のマルチコアプロセッサは、上記のセルアーキテクチャと類似の構成を備える一方で、ローカルメモリの代わりに、キャッシュメモリを有する。キャッシュメモリは、上記のセルアーキテクチャのように明示的にモードが切り替えられることはない。
【0008】
さらに、近年のマルチコアプロセッサには、キャッシュ以外に、ローカルメモリを内蔵するものも存在する。このようなマルチコアプロセッサのローカルメモリは、上記セルアーキテクチャのローカルメモリのように明示的にモードが切り替えられることはない。一方で、ローカルメモリに書き込まれたデータを、別のコアから参照することはできない。
【0009】
また、特許文献2には、同一構成のプロセッサを複数有する対称型のマルチプロセッサが記載されている。特許文献2に記載されたマルチプロセッサでは、各プロセッサがバスで接続され、それぞれのプロセッサにはキャッシュメモリが含まれる。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開2006−139785号公報
【特許文献2】特開2007−265143号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
しかし、特許文献1に記載されたプロセッサ装置は、セルアーキテクチャのように、プロセッサごとにセキュリティのモードを指定してデータを処理可能なセキュリティ回路を備えていることを前提にしている。すなわち、上述する特別なセキュリティ回路をプロセッサに実装しなければ、セキュアに計算処理を実行できないという問題がある。
【0012】
また、特許文献2に記載されたマルチプロセッサは、処理時間の短縮や処理効率の向上を図ることを目的として使用されるものであり、プロセッサ内のセキュリティについては考慮されていない。そのため、特許文献2に記載されたマルチプロセッサを用いても、セキュアに計算処理を実行できるとは言い難い。
【0013】
そこで、本発明は、マルチコアプロセッサを用いて計算処理を実行する際、プロセッサごとの動作を制御する特別なセキュリティ回路を備えていない場合であっても、セキュアに計算処理を実行できるセキュア計算システム、セキュア計算方法およびセキュア計算用プログラムを提供することを目的とする。
【課題を解決するための手段】
【0014】
本発明によるセキュア計算システムは、マルチコアプロセッサを用いたセキュア計算システムであって、一のコアが、他のコアからのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段と、暗号化されたデータを復号する復号手段と、復号手段が復号したデータである平文データに対して指定された計算処理を行う平文データ計算手段とを備え、他コアアクセス可能記憶手段が、他のコアから受信した暗号化データを記憶する暗号化データ記憶手段と、平文データ計算手段による計算結果を記憶する結果データ記憶手段とを含み、自コア内アクセス可能記憶手段が、平文データを記憶する平文データ記憶手段と、受信した暗号化データを復号する復号鍵を記憶する復号鍵記憶手段とを含み、復号手段が、他のコアから受信した暗号化データを復号鍵を用いて復号した平文データを作成し、その平文データを平文データ記憶手段に記憶させ、平文データ計算手段が、平文データ記憶手段に記憶された平文データに対して指定された計算処理を行い、その計算処理による計算結果を結果データ記憶手段に記憶させることを特徴とする。
【0015】
本発明による他のセキュア計算システムは、マルチコアプロセッサを用いたセキュア計算システムであって、一のコアが、他のコアからのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段と、暗号化されたデータを復号する復号手段と、復号手段が復号したデータである平文データに対して指定された計算処理を行う平文データ計算手段と、他のコアから指定された暗号鍵を用いてデータを暗号化する暗号化手段とを備え、他コアアクセス可能記憶手段が、他のコアから受信した暗号化データを記憶する暗号化データ記憶手段と、平文データ計算手段による計算結果を記憶する結果データ記憶手段と、他のコアから指定された暗号鍵を記憶する暗号鍵記憶手段とを含み、自コア内アクセス可能記憶手段が、平文データを記憶する平文データ記憶手段と、受信した暗号化データを復号する復号鍵を記憶する復号鍵記憶手段と、復号手段が復号した平文データを記憶する平文結果データ記憶手段とを含み、復号手段が、他のコアから受信した暗号化データを復号鍵を用いて復号した平文データを作成し、その平文データを平文データ記憶手段に記憶させ、平文データ計算手段は、平文データ記憶手段に記憶された平文データに対して指定された計算処理を行い、その計算処理による計算結果を平文結果データ記憶手段に記憶させ、暗号化手段が、暗号鍵記憶手段に記憶された暗号鍵を用いて平文結果データ記憶手段に記憶された計算結果を暗号化し、暗号化した計算結果を結果データ記憶手段に記憶させることを特徴とする。
【0016】
本発明によるセキュア計算方法は、少なくとも一のコアが、他のコアからのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段とを備えたマルチコアプロセッサを用いたセキュア計算方法であって、一のコアが、自コア内アクセス可能記憶手段に記憶された復号鍵を用いて、他のコアから受信した暗号化データを復号したデータである平文データを作成し、一のコアが、平文データを自コア内アクセス可能記憶手段に記憶させ、一のコアが、自コア内アクセス可能記憶手段に記憶された平文データに対して指定された計算処理を行い、一のコアが、計算処理による計算結果を他コアアクセス可能記憶手段に記憶させることを特徴とする。
【0017】
本発明による他のセキュア計算方法は、少なくとも一のコアが、他のコアからのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段とを備えたマルチコアプロセッサを用いたセキュア計算方法であって、一のコアが、自コア内アクセス可能記憶手段に記憶された復号鍵を用いて、他のコアから受信した暗号化データを復号したデータである平文データを作成し、一のコアが、平文データを自コア内アクセス可能記憶手段に記憶させ、一のコアが、自コア内アクセス可能記憶手段に記憶された平文データに対して指定された計算処理を行い、一のコアが、計算処理による計算結果を自コア内アクセス可能記憶手段に記憶させ、一のコアが、他のコアから指定された暗号鍵を用いて計算結果を暗号化し、一のコアが、暗号化した計算結果を他コアアクセス可能記憶手段に記憶させることを特徴とする。
【0018】
本発明によるセキュア計算用プログラムは、少なくとも一のコアが、他のコアからのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段とを備えたマルチコアプロセッサを有するコンピュータに適用されるセキュア計算用プログラムであって、コンピュータに、自コア内アクセス可能記憶手段に記憶された復号鍵を用いて、他のコアから受信した暗号化データを復号したデータである平文データを作成し、その平文データを自コア内アクセス可能記憶手段に記憶させる復号処理、および、自コア内アクセス可能記憶手段に記憶された平文データに対して指定された計算処理を行い、その計算処理による計算結果を他コアアクセス可能記憶手段に記憶させる平文データ計算処理を実行させることを特徴とする。
【0019】
本発明による他のセキュア計算用プログラムは、少なくとも一のコアが、他のコアからのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段とを備えたマルチコアプロセッサを有するコンピュータに適用されるセキュア計算用プログラムであって、コンピュータに、自コア内アクセス可能記憶手段に記憶された復号鍵を用いて、他のコアから受信した暗号化データを復号したデータである平文データを作成し、その平文データを自コア内アクセス可能記憶手段に記憶させる復号処理、自コア内アクセス可能記憶手段に記憶された平文データに対して指定された計算処理を行い、その計算処理による計算結果を自コア内アクセス可能記憶手段に記憶させる平文データ計算処理、および、他コアアクセス可能記憶手段に記憶された暗号鍵を用いて平文結果データ記憶手段に記憶された計算結果を暗号化し、暗号化した計算結果を他コアアクセス可能記憶手段に記憶させる暗号処理を実行させることを特徴とする。
【発明の効果】
【0020】
本発明によれば、マルチコアプロセッサを用いて計算処理を実行する際、プロセッサごとの動作を制御する特別なセキュリティ回路を備えていない場合であっても、セキュアに計算処理を実行できる。
【図面の簡単な説明】
【0021】
【図1】本発明の第1の実施形態におけるセキュア計算システムの例を示すブロック図である。
【図2】第1の実施形態におけるコア4−2の例を示すブロック図である。
【図3】キャッシュ、ローカルメモリ、メモリの内容の一例を示す説明図である。
【図4】第1の実施形態におけるセキュア計算システムの動作の例を示すフローチャートである。
【図5】本発明の第2の実施形態におけるセキュア計算システムの例を示すブロック図である。
【図6】第2の実施形態におけるコア4−3の例を示すブロック図である。
【図7】キャッシュ、ローカルメモリ、メモリの内容の一例を示す説明図である。
【図8】第2の実施形態におけるセキュア計算システムの動作の例を示すフローチャートである。
【図9】サーバごとに通信データ量の統計計算を行う動作の例を示す説明図である。
【図10】サーバごとに通信データ量の統計計算を行う動作の例を示す説明図である。
【図11】本発明によるセキュア計算システムの最小構成の例を示すブロック図である。
【図12】本発明によるセキュア計算システムの他の最小構成の例を示すブロック図である。
【図13】セルアーキテクチャを用いたプロセッサ装置を示す説明図である。
【発明を実施するための形態】
【0022】
以下、本発明の実施形態を図面を参照して説明する。
【0023】
実施形態1.
図1は、本発明の第1の実施形態におけるセキュア計算システムの例を示すブロック図である。本実施形態におけるセキュア計算システムは、コンピュータ1により実現される。コンピュータ1は、少なくとも、マルチコアプロセッサ2とメモリ3とを備えている。また、コンピュータ1は、プログラム制御により動作する。
【0024】
マルチコアプロセッサ2は、少なくとも2つのコア(より詳しくは、コア4−1とコア4−2と)を含む。さらに、この2つのコアは、それぞれキャッシュ(より詳しくは、キャッシュ5−1とキャッシュ5−2)と、ローカルメモリ(より詳しくは、ローカルメモリ6−1とローカルメモリ6−2)とを有する。
【0025】
マルチコアプロセッサ2は、メモリ3から読み込んだ命令列(セキュア計算用プログラム)を実行し、また、メモリ3からデータを読み込んで、何らかの計算処理を行い、その処理結果をメモリ3に記憶させる。以下、メモリ等にデータを記憶させることを、メモリにデータを書き出すと記し、メモリ等がデータを記憶することを、メモリがデータを保持すると記すこともある。
【0026】
各コア(より詳しくは、コア4−1とコア4−2と)では、キャッシュに記憶されたデータを参照して処理が行われ、処理結果がキャッシュに一時的に記憶される。なお、キャッシュへのアクセス(例えば、読み書き)は、メモリ3へのアクセスの結果として同時に(自動的に)行われ、キャッシュに対する明示的なアクセス操作は行われない。
【0027】
キャッシュ(より詳しくは、キャッシュ5−1とキャッシュ5−2と)は、コアがメモリ3に記憶された命令やデータなどの情報にアクセスする際に、それらの情報を一時的に保持する。キャッシュは、他のコアからのアクセスが可能な状態で情報を記憶する。
【0028】
ローカルメモリ(より詳しくは、ローカルメモリ6−1とローカルメモリ6−2)は、各コアでのみアクセス可能なメモリである。ローカルメモリに対しては、メモリ3から読み込んだ情報の書き出し操作を各コアが明示的に行う。
【0029】
本実施形態では、計算処理の実行指示を行うプログラム(以下、ユーザプログラムと記す。)および計算処理の実行指示を受けて暗号化されたデータの復号および計算処理を行うプログラム(以下、暗号化計算プログラムと記す。)がそれぞれ実行されるものとする。また、本実施形態におけるセキュア計算システムでは、後述するコア4−1のユーザプログラム処理部9がユーザプログラムを実行し、コア4−2の暗号化計算プログラム処理部7が暗号化計算プログラムを実行する。各プログラムを実行するコアの割り当ては初期化時に行われ、その後、コアの割り当ては変化しない。さらに、暗号化計算プログラム処理部7が復号に用いる暗号鍵は、ローカルメモリの一部として、後述する暗号鍵保持部16へ初期化時に記憶される。
【0030】
次に、各コアの内容について具体的に説明する。コア4−1は、ユーザプログラム処理部9と、ローカルメモリ6−1と、キャッシュ5−1とを含む。なお、ローカルメモリ6−1およびキャッシュ5−1の内容は、上述するローカルメモリおよびキャッシュの説明の通りである。
【0031】
ユーザプログラム処理部9は、暗号化済みのデータを通信ネットワーク(図示せず)を介して受信する、または、磁気ディスク装置等(図示せず)から読み取ると、暗号化データを暗号化計算プログラム処理部7に送信し、計算指示を行う。そして、ユーザプログラム処理部9は、暗号化計算プログラム処理部7から計算結果を受け取る。ユーザプログラム処理部9は、例えば、数字の配列が暗号化された暗号化データを入手すると、その暗号化データを暗号化計算プログラム処理部7に送信して、配列内の数字の総和を計算させる。
【0032】
コア4−2は、暗号化計算プログラム処理部7と、ローカルメモリ6−2と、キャッシュ5−2とを含む。なお、ローカルメモリ6−2およびキャッシュ5−2の内容は、上述するローカルメモリおよびキャッシュの説明の通りである。
【0033】
暗号化計算プログラム処理部7は、暗号化済みのデータを受け取り、それを内部で復号した後で特定の計算を行い、計算終了の通知をユーザプログラム処理部9に行う。暗号化計算プログラム処理部7は、公開鍵暗号を用いて復号を行う。すなわち、受け取った暗号化データが公開鍵により暗号化されており、暗号化計算プログラム処理部7は、受け取った暗号化データを秘密鍵を使って復号する。なお、復号に必要な秘密鍵は、ローカルメモリ6−2に記憶されている。ここで、特定の計算とは、例えば、総和を求める計算である。この場合、暗号化計算プログラム処理部7は、数字の配列が暗号化された暗号化データを受け取り、それを復号した結果として得られた配列の各要素を加算する。
【0034】
次に、コア4−2の内容について、より詳細に説明する。図2は、本実施形態におけるコア4−2の例を示すブロック図である。キャッシュ5−2は、暗号化データ保持部11と、結果データ保持部12とを含み、ローカルメモリ6−2は、平文データ保持部15と、暗号鍵保持部16とを含み、暗号化計算プログラム処理部7は、復号化部13と、計算部17とを含む。
【0035】
暗号化データ保持部11は、別のコア(本実施形態では、コア4−1)から渡された暗号化済みデータを保持する。暗号化データ保持部11は、キャッシュ5−2の一部であるが、メモリ3の一部であってもよい。暗号化データ保持部11が記憶する暗号化済みデータは、別のコアからアクセス(例えば、参照)可能である。また、暗号化データ保持部11は、計算部17が使用する引数や環境変数などを記憶していてもよい。なお、引数や環境変数に関しては、必ずしも、暗号化しておく必要はない。
【0036】
結果データ保持部12は、計算部17による計算結果を保持する。結果データ保持部12は、キャッシュ5−2の一部であるが、メモリ3の一部であってもよい。暗号化データ保持部11と同様、結果データ保持部12が記憶する計算結果のデータは、別のコア(本実施形態では、コア4−1)からアクセス(例えば、参照)可能である。
【0037】
平文データ保持部15は、復号化部13により復号された暗号化データ(以下、平文データと記す。)を記憶する。また、暗号鍵保持部16は、受信した暗号化データを復号する暗号鍵を記憶する。なお、この暗号鍵のことを復号鍵と記すこともある。平文データ保持部15と、暗号鍵保持部16とは、ローカルメモリ6−2の一部であり、ローカルメモリ6−2に記憶されたデータは、他のコアからアクセス(例えば、参照)することはできない。
【0038】
復号化部13は、暗号化計算プログラム処理部7が別のコアから計算要求を受けとると、暗号鍵保持部16に記憶された暗号鍵を用いて、暗号化データ保持部11に保持されている暗号化済みデータを復号し、復号した結果の平文データを平文データ保持部15に記憶させる。
【0039】
計算部17は、特定の計算を行う機能を提供するものであり、平文データ保持部15に記憶された平文データを入力として、計算を実行する。具体的には、計算部17は、平文データ保持部15に記憶された平文データをもとに、特定の計算処理を行う。さらに、計算部17は、計算結果を結果データ保持部12に記憶させ、計算の要求元であるユーザプログラム処理部9に計算終了を通知する。そして、計算部17は、平文データ保持部15に記憶されたデータを計算終了の通知と合わせて消去する。なお、計算部17が計算中に利用するメモリ領域(スタックやヒープ)には、ローカルメモリ6−2が使用される。
【0040】
図3は、キャッシュ、ローカルメモリおよびメモリの内容の一例を示す説明図である。キャッシュ5−1およびキャッシュ5−2には、暗号化データ保持部11に対応するキャッシュエントリおよび結果データ保持部12に対応するキャッシュエントリが確保される。また、メモリ3には、暗号化データ保持部11に対応するメモリ領域および結果データ保持部12に対応するメモリ領域が確保される。さらに、ローカルメモリ6−2には、平文データ保持部15および暗号鍵保持部16が含まれる。なお、本実施形態では、ローカルメモリ6−1に記憶させる情報がないため、図3に例示するローカルメモリ6−1には、記憶する内容を特に記載していない。
【0041】
次に、動作について説明する。図4は、第1の実施形態におけるセキュア計算システムの動作の例を示すフローチャートである。ユーザプログラム処理部9は、暗号化プログラム処理部7に計算要求を行い、合わせて、暗号化済みデータをキャッシュ5-2上の暗号化データ保持部11に記憶させる(ステップS1)。このとき、暗号化済みデータは、キャッシュ5−1の中の暗号化データ保持部11に対応するキャッシュエントリを経由して、暗号化プログラム処理部7に渡される。
【0042】
暗号化計算プログラム処理部7が計算要求を受け取ると、復号化部13は、暗号鍵保持部16に記憶された暗号鍵を用いて、暗号化データ保持部11に保持されている暗号化済みデータを復号し、復号した結果の平文データを平文データ保持部15に記憶させる(ステップS2)。
【0043】
計算部17は、平文データ保持部15に記憶された平文データを入力として計算処理を実行し、さらに、計算結果を結果データ保持部12に記憶させる。同時に、計算部17は、平文データ保持部15に記憶された平文データを消去する(ステップS3)。そして、計算部17は、計算処理の要求元であるユーザプログラム処理部9に計算が終了した旨を通知する(ステップS4)。
【0044】
ユーザプログラム処理部9は、計算部17からの通知を受け取ると、キャッシュ5−1の中の結果データ保持部12に対応するキャッシュエントリから、計算結果のデータを読み出す(ステップS5)。具体的には、ユーザプログラム処理部9は、結果データ保持部12に対応するメモリ領域をアクセスすることで、結果的に、キャッシュ5−1の中の結果データ保持部12に対応するキャッシュエントリから、計算結果のデータを読み出す。
【0045】
以上のように、本実施形態によれば、コア4−2の復号化部13が、ローカルメモリ6−2の暗号鍵保持部16に記憶された復号鍵を用いて、コア4−1から受信した暗号化データを復号した平文データを作成し、その平文データをローカルメモリ6−2の平文データ保持部15に記憶させる。そして、コア4−2の計算部17が、平文データ保持部15に記憶された平文データに対して指定された計算処理を行い、その計算処理による計算結果をキャッシュ5−2の結果データ保持部12に記憶させる。
【0046】
すなわち、本実施形態では、他のコアからはアクセスできないローカルメモリ6−2を利用して暗号化計算プログラム処理部7が復号や計算処理を行うように構成されているため、特別なセキュリティ回路を備えていない場合であっても、セキュアな計算処理を実現できる。
【0047】
なお、第1の実施形態では、コアを対称にするため、コア4−1にローカルメモリ6−1が含まれる構成を例に説明した。ただし、本発明におけるセキュア計算システムでは、コア4−1がローカルメモリを含まない非対称な構成であってもよい。なお、この場合、ハードウェア構成(すなわち、コア4−1にローカルメモリ6−1を含まない構成)以外の構成および動作は、上述する内容と同様である。
【0048】
また、第1の実施形態では、ローカルメモリとキャッシュの両方がコアに含まれる構成を例に説明した。ただし、本発明におけるセキュア計算システムにおいて、キャッシュの一部の一貫性制御を停止できるマルチコアプロセッサであれば、ローカルメモリを含まない構成であってもよい。ここで、一貫性制御とは、キャッシュ上の一のデータが他のデータに変更されたことに伴い、そのキャッシュを含むコア以外のコアに含まれるキャッシュに記憶された一のデータを他のデータに変更する制御である。
【0049】
一貫性制御を停止されたキャッシュ領域に記憶されたデータがあるコアによって変更されたとしても、別のコアからはその変更内容を取得することはできず、その部分の領域をローカルメモリのように使うことが可能なためである。すなわち、一貫性制御が停止されたキャッシュの一部領域を自コアからのみアクセスが可能な領域として用いることができる。この場合、初期化時などに、キャッシュの一部の一貫性制御を停止させ、その停止させた部分を、第1の実施形態におけるローカルメモリと同様に利用すればよい。その場合の動作については、上述する内容と同様である。
【0050】
次に、第1の実施形態における変形例について説明する。第1の実施形態では、暗号化計算プログラム処理部7が、特定の1種類の計算処理を行う場合について説明した。本変形では、暗号化計算プログラム処理部7が複数の計算処理の中から1つを選択して計算処理を行う場合について説明する。この場合、ユーザプログラム処理部9は、暗号化計算プログラム処理部7への引数として、計算の種類を示す識別子を渡す。暗号化計算プログラム処理部7の計算部17は、複数の計算式を保持し、計算の種類を示す識別子に基づいて、計算式を選択し、計算処理を行う。
【0051】
すなわち、本実施形態の変形例では、特別なセキュリティ回路を備えていない場合であっても、セキュアな計算処理を実現できるという第1の実施形態の効果に加えて、複数の計算式から一つの計算式を選択して、暗号化計算を行うことができるという効果が得られる。
【0052】
実施形態2.
図5は、本発明の第2の実施形態におけるセキュア計算システムの例を示すブロック図である。なお、第1の実施形態と同様の構成については、図1と同一の符号を付し、説明を省略する。本実施形態におけるセキュア計算システムも、コンピュータ1により実現され、コンピュータ1は、少なくとも、マルチコアプロセッサ2とメモリ3とを備えている。また、コンピュータ1は、プログラム制御により動作する。
【0053】
マルチコアプロセッサ2は、少なくとも2つのコア(より詳しくは、コア4−1とコア4−3と)を含む。さらに、この2つのコアは、それぞれキャッシュ(より詳しくは、キャッシュ5−1とキャッシュ5−3)と、ローカルメモリ(より詳しくは、ローカルメモリ6−1とローカルメモリ6−3)とを有する。
【0054】
本実施形態におけるセキュア計算システムでは、後述するコア4−1のユーザプログラム処理部9がユーザプログラムを実行し、コア4−3の暗号化計算プログラム処理部8が暗号化計算プログラムを実行する。
【0055】
次に、各コアの内容について具体的に説明する。コア4−1については、第1の実施形態と同様である。コア4−3は、暗号化計算プログラム処理部8と、ローカルメモリ6−3と、キャッシュ5−3とを含む。なお、ローカルメモリ6−3およびキャッシュ5−3の内容は、第1の実施形態におけるローカルメモリおよびキャッシュの説明の通りである。
【0056】
暗号化計算プログラム処理部8は、第1の実施形態における暗号化計算プログラム処理部7と同様、暗号化済みのデータを受け取り、それを内部で復号した後で特定の計算処理を行い、計算終了の通知をユーザプログラム処理部9に行う。
【0057】
次に、コア4−3の内容について、より詳細に説明する。図6は、本実施形態におけるコア4−3の例を示すブロック図である。キャッシュ5−3は、暗号化データ保持部11と、結果データ保持部12と、第2の暗号鍵保持部20とを含み、ローカルメモリ6−3は、平文データ保持部15と、暗号鍵保持部16と、平文結果データ保持部18とを含み、暗号化計算プログラム処理部8は、復号化部13と、暗号化部14と、計算部19とを含む。
【0058】
コア4−3は、暗号化部14、平文結果データ保持部18、計算部19および第2の暗号鍵保持部20を含んでいる点において第1の実施形態におけるコア4−2と異なる。それ以外の構成内容については、第1の実施形態の構成内容と同様である。すなわち、暗号化データ保持部11は、別のコアから渡された暗号化済みデータを保持し、暗号鍵保持部16は、暗号鍵を保持する。また、復号化部13は、暗号化データ保持部11に保持されている暗号化済みデータを復号し、平文データ保持部15は、復号後の平文データを保持する。また、結果データ保持部12は、計算結果のデータを保持する。
【0059】
また、暗号化データ保持部11と結果データ保持部12とは、キャッシュ5−3の一部であるが、メモリ3の一部であってもよい。また、平文データ保持部15と暗号鍵保持部16とは、ローカルメモリ6−3の一部である。
【0060】
計算部19は、特定の計算を行う機能を提供するものであり、平文データ保持部15に記憶された平文データを入力として、計算を実行する。具体的には、計算部19は、平文データ保持部15に記憶された平文データをもとに、特定の計算処理を行う。さらに、計算部19は、計算結果を平文結果データ保持部18に記憶させ、暗号化部14に計算結果の暗号化を指示する。なお、計算部19が計算中に利用するメモリ領域(スタックやヒープ)には、ローカルメモリ6−3が使用される。
【0061】
平文結果データ保持部18は、計算部19による計算結果を一時的に記憶する。平文結果データ保持部18は、ローカルメモリ6−3の一部であり、ローカルメモリ6−3に記憶されたデータは、自コアからのみアクセス可能であり、他のコアからアクセス(例えば、参照)することはできない。
【0062】
第2の暗号鍵保持部20は、ユーザプログラム処理部9から送信される公開暗号鍵を記憶する。なお、第2の暗号鍵保持部20は、ローカルメモリ6−3の一部であってもよく、メモリ3の一部であってもよい。
【0063】
暗号化部14は、計算部19から暗号化の指示を受け取ると、平文結果データ保存部18から平文の計算結果のデータを読み取り、そのデータを第2の暗号鍵保持部20が記憶する暗号鍵を用いて暗号化する。そして、暗号化部14は、暗号化した結果を結果データ保持部12に記憶させる。同時に、暗号化部14は、平文結果データ保持部18に記憶されたデータを消去する。そして、暗号化部14は、計算処理の要求元であるユーザプログラム処理部9に計算が終了した旨を通知する。
【0064】
図7は、キャッシュ、ローカルメモリおよびメモリの内容の一例を示す説明図である。キャッシュ5−1およびキャッシュ5−3には、暗号化データ保持部11に対応するキャッシュエントリおよび結果データ保持部12に対応するキャッシュエントリが確保される。また、メモリ3には、暗号化データ保持部11に対応するメモリ領域および結果データ保持部12に対応するメモリ領域が確保される。さらに、ローカルメモリ6−3には、平文データ保持部15、暗号鍵保持部16および平文結果データ保持部18が含まれる。本実施形態でも、ローカルメモリ6−1に記憶させる情報がないため、図7に例示するローカルメモリ6−1には、記憶する内容を特に記載していない。
【0065】
次に、動作について説明する。図8は、第2の実施形態におけるセキュア計算システムの動作の例を示すフローチャートである。ユーザプログラム処理部9は、暗号化プログラム処理部8に計算要求を行い、合わせて、暗号化済みデータをキャッシュ5−3上の暗号化データ保持部11に記憶させる(ステップS11)。このとき、暗号化済みデータは、キャッシュ5−1の中の暗号化データ保持部11に対応するキャッシュエントリを経由して、暗号化プログラム処理部8に渡される。
【0066】
暗号化計算プログラム処理部8が計算要求を受け取ると、復号化部13は、暗号鍵保持部16に記憶された暗号鍵を用いて、暗号化データ保持部11に保持されている暗号化済みデータを復号し、復号した結果の平文データを平文データ保持部15に記憶させる(ステップS12)。
【0067】
計算部19は、平文データ保持部15に記憶された平文データを入力として計算処理を実行し、さらに、計算結果を平文結果データ保持部18に記憶させる。同時に、計算部19は、平文データ保持部15に記憶された平文データを消去する(ステップS13)。
【0068】
暗号化部14は、平文結果データ保存部18から平文の計算結果のデータを読み取り、そのデータを第2の暗号鍵保持部20が記憶する暗号鍵を用いて暗号化する。そして、暗号化部14は、暗号化した結果を結果データ保持部12に記憶させる。同時に、暗号化部14は、平文結果データ保持部18に記憶されたデータを消去する(ステップS14)。
【0069】
そして、暗号化部14は、計算処理の要求元であるユーザプログラム処理部9に計算が終了した旨を通知する(ステップS15)。
【0070】
ユーザプログラム処理部9は、計算部17からの通知を受け取ると、キャッシュ5−1の中の結果データ保持部12に対応するキャッシュエントリから、計算結果のデータを読み出す(ステップS16)。具体的には、ユーザプログラム処理部9は、結果データ保持部12に対応するメモリ領域をアクセスすることで、結果的に、キャッシュ5−1の中の結果データ保持部12に対応するキャッシュエントリから、計算結果のデータを読み出す。
【0071】
以上のように、本実施形態によれば、コア4−3の復号化部13が、ローカルメモリ6−3の暗号鍵保持部16に記憶された復号鍵を用いて、コア4−1から受信した暗号化データを復号した平文データを作成し、その記平文データをローカルメモリ6−3の平文データ保持部15に記憶させる。そして、コア4−3の計算部19が、平文データ保持部15に記憶された平文データに対して指定された計算処理を行い、その計算処理による計算結果をローカルメモリ6−3の平文データ結果保持部18に記憶させる。さらに、コア4−3の暗号化部14がコア4−1から指定された暗号鍵を用いて計算結果を暗号化し、暗号化した計算結果をキャッシュ5−3の結果データ保持部12に記憶させる。
【0072】
すなわち、本実施形態では、他のコアからはアクセスできないローカルメモリ6−3を利用して、暗号化計算プログラム処理部8が計算結果を暗号化し、暗号化されたデータをユーザプログラム処理部9が取得するように構成されている。よって、第1の実施形態よりも、さらに、セキュアな計算処理を実現できる。
【実施例1】
【0073】
以下、具体的な実施例により本発明を説明するが、本発明の範囲は以下に説明する内容に限定されない。本発明によるセキュア計算システムは、セキュアな統計計算に適用できる。第1の実施例では、第1の実施形態におけるセキュア計算システムを用いて統計計算を行う動作について説明する。
【0074】
図9は、サーバごとに通信データ量の統計計算を行う動作の例を示す説明図である。コンピュータ1は、暗号化データとして、ユーザIDとアクセス先を示す情報と通信データ量とを含むアクセス履歴を定期的にサーバなど(図示せず)から受け取る。そして、ユーザプログラム処理部9が暗号化計算プログラム処理部7にアクセス履歴を送信し、計算指示を行う。暗号化計算プログラム処理部7は、アクセス履歴を受け取り、サーバごとにパケット量などを合算した結果をサーバごとの通信データ量として計算する。そして、コンピュータ1は、この通信データ量を要求されたサーバ等(図示せず)に返す。
【0075】
具体的には、暗号化データ保持部11に暗号化されたデータ(アクセス履歴)が記憶されると、復号化部13がそのデータを復号し、復号された平文データを平文データ保持部15に記憶させる。図9に示す例では、平文データ保持部15は、復号化後の平文データ(アクセス履歴)として、ユーザIDとアクセス先を示す情報(アクセス先)とデータ量とを対応付けて記憶する。
【0076】
次に、計算部17は、アクセス先を示す情報に含まれるサーバIDを検索キーにして、アクセス履歴を検索する。ここでは、サーバID「a.b.c」を検索キーにしてアクセス履歴を検索するものとする。そして、計算部17は、検索の結果絞り込まれたエントリにおけるデータ量の総和を計算する。この場合、データ量の総和は、1000+1000+5000000=5002000(バイト)と計算される。計算部17は、他のサーバに関しても同様にデータ量の総和を計算する。
【0077】
そして、計算部17は、計算結果を結果データ保持部12に記憶させる。図9に示す例では、結果データ保持部12は、計算結果として、サーバごとのURLと合計データ量とを対応付けて記憶する。
【0078】
ユーザごとのアクセス履歴は、プライバシーにかかわる重大な情報であるため、秘匿すべきである。一方で、サーバごとの統計情報は、負荷分散などのために重要な指標である。本実施例では、復号後のアクセス履歴が他のコアからアクセスできないローカルメモリ上に記憶されて統計処理が行われるため、ユーザごとのアクセス履歴を知られることなく、サーバ単位のアクセス統計情報を取得することができる。すなわち、本発明におけるセキュア計算システムにより、プライバシー情報の秘匿と有益な情報の抽出という2点を両立できる。
【実施例2】
【0079】
本発明によるセキュア計算システムは、課金システムにも適用できる。第2の実施例では、第2の実施形態におけるセキュア計算システムを用いて統計計算を行う動作について説明する。
【0080】
図10は、サーバごとに通信データ量の統計計算を行う動作の例を示す説明図である。コンピュータ1は、暗号化データとして、ユーザIDとアクセス先を示す情報と通信データ量とを含むアクセス履歴を定期的にサーバなど(図示せず)から受け取る。そして、ユーザプログラム処理部9が暗号化計算プログラム処理部8にアクセス履歴を送信し、計算指示を行う。暗号化計算プログラム処理部8は、アクセス履歴を受け取り、ユーザIDごとにパケット量などを合算した結果をユーザごとの課金データとして計算する。そして、コンピュータ1は、この課金データを要求されたサーバ等(図示せず)に返す。このとき、課金データは、暗号化された状態で返される。
【0081】
具体的には、暗号化データ保持部11に暗号化されたデータ(アクセス履歴)が記憶されると、復号化部13がそのデータを復号し、復号された平文データを平文データ保持部15に記憶させる。図10に示す例では、平文データ保持部15は、復号化後の平文データ(アクセス履歴)として、ユーザIDとアクセス先を示す情報(アクセス先)とデータ量とを対応付けて記憶する。
【0082】
次に、計算部19は、引数として与えられたユーザIDを検索キーにして、アクセス履歴を検索する。ここでは、ユーザID「tom」が検索キーとして与えられたものとする。そして、計算部19は、検索の結果絞り込まれたエントリにおけるデータ量の総和を計算する。この場合、データ量の総和は、1000+5000000+2000=5003000(バイト)と計算される。そして、計算部19は、計算結果を平文結果データ保持部18に記憶させる。図10に示す例では、平文結果データ保持部18は、計算結果として、ユーザIDと合計データ量とを対応付けて記憶する。
【0083】
暗号化部14は、ユーザプログラム処理部9から送信された暗号鍵(具体的には、第2の暗号鍵保持部20に記憶された公開暗号鍵)を使って計算結果を暗号化し、暗号化した計算結果を結果データ保持部12に記憶させる。以降、ユーザプログラム処理部9は、暗号化された計算結果を結果データ保持部12を介して取得する。
【0084】
本実施例では、ユーザプログラム処理部9から送信された公開暗号鍵を使って計算結果を暗号化しているため、この公開暗号鍵に対応する秘密暗号鍵を知るものによってのみユーザごとのアクセス統計情報を処理できる。
【0085】
次に、本発明の最小構成の例を説明する。図11は、本発明によるセキュア計算システムの最小構成の例を示すブロック図である。本発明によるセキュア計算システムは、マルチコアプロセッサ99(例えば、マルチコアプロセッサ2)を用いたセキュア計算システムであって、一のコア80(例えば、コア4−2)は、他のコア90(例えば、コア4−1)からのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段81(例えば、キャッシュ5−2)と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段82(例えば、ローカルメモリ6−2)と、暗号化されたデータを復号する復号手段83(例えば、復号化部13)と、復号手段83が復号したデータである平文データに対して指定された計算処理(例えば、通信データ量の統計計算)を行う平文データ計算手段84(例えば、計算部17)とを備えている。
【0086】
他コアアクセス可能記憶手段81は、他のコアから受信した暗号化データを記憶する暗号化データ記憶手段85(例えば、暗号化データ保持部11)と、平文データ計算手段84による計算結果を記憶する結果データ記憶手段86(例えば、結果データ保持部12)とを含む。
【0087】
自コア内アクセス可能記憶手段82は、平文データを記憶する平文データ記憶手段87(例えば、平文データ保持部15)と、受信した暗号化データを復号する復号鍵を記憶する復号鍵記憶手段88(例えば、暗号鍵保持部16)とを含む。
【0088】
復号手段83は、他のコアから受信した暗号化データを復号鍵を用いて復号した平文データを作成し、その平文データを平文データ記憶手段87に記憶させる。平文データ計算手段84は、平文データ記憶手段87に記憶された平文データに対して指定された計算処理を行い、その計算処理による計算結果を結果データ記憶手段86に記憶させる。
【0089】
そのような構成により、マルチコアプロセッサを用いて計算処理を実行する際、プロセッサごとの動作を制御する特別なセキュリティ回路を備えていない場合であっても、セキュアに計算処理を実行できる。
【0090】
また、図12は、本発明によるセキュア計算システムの他の最小構成の例を示すブロック図である。本発明による他のセキュア計算システムは、マルチコアプロセッサ99(例えば、マルチコアプロセッサ2)を用いたセキュア計算システムであって、一のコア60(例えば、コア4−3)は、他のコア90(例えば、コア4−1)からのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段61(例えば、キャッシュ5−3)と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段62(例えば、ローカルメモリ6−3)と、暗号化されたデータを復号する復号手段63(例えば、復号化部13)と、復号手段63が復号したデータである平文データに対して指定された計算処理(例えば、通信データ量の統計計算)を行う平文データ計算手段64(例えば、計算部19)と、他のコアから指定された暗号鍵を用いてデータを暗号化する暗号化手段65(例えば、暗号化部14)を備えている。
【0091】
他コアアクセス可能記憶手段61は、他のコアから受信した暗号化データを記憶する暗号化データ記憶手段66(例えば、暗号化データ保持部11)と、平文データ計算手段64による計算結果を記憶する結果データ記憶手段67(例えば、結果データ保持部12)と、他のコアから指定された暗号鍵を記憶する暗号鍵記憶手段68(例えば、第2の暗号鍵保持部20)とを含む。
【0092】
自コア内アクセス可能記憶手段62は、平文データを記憶する平文データ記憶手段69(例えば、平文データ保持部15)と、受信した暗号化データを復号する復号鍵を記憶する復号鍵記憶手段70(例えば、暗号鍵保持部16)と、復号手段63が復号した平文データを記憶する平文結果データ記憶手段71(例えば、平文結果データ保持部18)とを含む。
【0093】
復号手段63は、他のコアから受信した暗号化データを復号鍵を用いて復号した平文データを作成し、その平文データを平文データ記憶手段69に記憶させる。平文データ計算手段64は、平文データ記憶手段69に記憶された平文データに対して指定された計算処理を行い、その計算処理による計算結果を平文結果データ記憶手段71に記憶させる。暗号化手段65は、暗号鍵記憶手段68に記憶された暗号鍵を用いて平文結果データ記憶手段71に記憶された計算結果を暗号化し、暗号化した計算結果を結果データ記憶手段67に記憶させる。
【0094】
そのような構成であっても、セキュアに計算処理を実行できる。
【0095】
また、暗号化手段65は、平文結果データ記憶手段71に記憶された計算結果を削除してもよい。
【0096】
また、平文データ計算手段84(平文データ計算手段64)は、平文データ記憶手段87(平文データ記憶手段69)に記憶された平文データを削除してもよい。
【0097】
また、他コアアクセス可能記憶手段81(他コアアクセス可能記憶手段61)は、一のコア80(一のコア60)におけるキャッシュであり、自コア内アクセス可能記憶手段82(自コア内アクセス可能記憶手段62)は、一のコア80(一のコア60)におけるローカルメモリであってもよい。
【0098】
また、他コアアクセス可能記憶手段81(他コアアクセス可能記憶手段61)は、一のコア80(一のコア60)におけるキャッシュであり、自コア内アクセス可能記憶手段82(自コア内アクセス可能記憶手段62)は、キャッシュにおいて他のコア80(他のコア60)におけるキャッシュとの一貫性制御が停止された領域であってもよい。
【産業上の利用可能性】
【0099】
データセンターで各マシンの使用状況を収集し、統計情報を計算する機能を持つ管理サーバに本発明を適用可能である。また、OpenFlowネットワークシステムにおいて、ネットワーク全体の制御を行うコントローラにも本発明を適用可能である。
【符号の説明】
【0100】
1 コンピュータ
2 マルチコアプロセッサ
3 メモリ
4−1,4−2 コア
5−1,5−2 キャッシュ
6−1,6−2 ローカルメモリ
7,8 暗号化計算プログラム処理部
9 ユーザプログラム処理部
11 暗号化データ保持部
12 結果データ保持部
13 復号化部
14 暗号化部
15 平文データ保持部
16 暗号鍵保持部
17,19 計算部
18 平文結果データ保持部
20 第2の暗号鍵保持部
【特許請求の範囲】
【請求項1】
マルチコアプロセッサを用いたセキュア計算システムであって、
一のコアは、
他のコアからのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段と、
自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段と、
暗号化されたデータを復号する復号手段と、
前記復号手段が復号したデータである平文データに対して指定された計算処理を行う平文データ計算手段とを備え、
前記他コアアクセス可能記憶手段は、
他のコアから受信した暗号化データを記憶する暗号化データ記憶手段と、
前記平文データ計算手段による計算結果を記憶する結果データ記憶手段とを含み、
前記自コア内アクセス可能記憶手段は、
前記平文データを記憶する平文データ記憶手段と、
受信した暗号化データを復号する復号鍵を記憶する復号鍵記憶手段とを含み、
前記復号手段は、他のコアから受信した暗号化データを前記復号鍵を用いて復号した平文データを作成し、当該平文データを前記平文データ記憶手段に記憶させ、
前記平文データ計算手段は、前記平文データ記憶手段に記憶された平文データに対して指定された計算処理を行い、当該計算処理による計算結果を前記結果データ記憶手段に記憶させる
ことを特徴とするセキュア計算システム。
【請求項2】
マルチコアプロセッサを用いたセキュア計算システムであって、
一のコアは、
他のコアからのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段と、
自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段と、
暗号化されたデータを復号する復号手段と、
前記復号手段が復号したデータである平文データに対して指定された計算処理を行う平文データ計算手段と、
他のコアから指定された暗号鍵を用いてデータを暗号化する暗号化手段とを備え、
前記他コアアクセス可能記憶手段は、
他のコアから受信した暗号化データを記憶する暗号化データ記憶手段と、
前記平文データ計算手段による計算結果を記憶する結果データ記憶手段と、
他のコアから指定された暗号鍵を記憶する暗号鍵記憶手段とを含み、
前記自コア内アクセス可能記憶手段は、
前記平文データを記憶する平文データ記憶手段と、
受信した暗号化データを復号する復号鍵を記憶する復号鍵記憶手段と、
前記復号手段が復号した平文データを記憶する平文結果データ記憶手段とを含み、
前記復号手段は、他のコアから受信した暗号化データを前記復号鍵を用いて復号した平文データを作成し、当該平文データを前記平文データ記憶手段に記憶させ、
前記平文データ計算手段は、前記平文データ記憶手段に記憶された平文データに対して指定された計算処理を行い、当該計算処理による計算結果を前記平文結果データ記憶手段に記憶させ、
前記暗号化手段は、前記暗号鍵記憶手段に記憶された暗号鍵を用いて前記平文結果データ記憶手段に記憶された計算結果を暗号化し、暗号化した計算結果を前記結果データ記憶手段に記憶させる
ことを特徴とするセキュア計算システム。
【請求項3】
暗号化手段は、平文結果データ記憶手段に記憶された計算結果を削除する
請求項2記載のセキュア計算システム。
【請求項4】
平文データ計算手段は、平文データ記憶手段に記憶された平文データを削除する
請求項1から請求項3のうちのいずれか1項に記載のセキュア計算システム。
【請求項5】
他コアアクセス可能記憶手段は、一のコアにおけるキャッシュであり、
自コア内アクセス可能記憶手段は、一のコアにおけるローカルメモリである
請求項1から請求項4のうちのいずれか1項に記載のセキュア計算システム。
【請求項6】
他コアアクセス可能記憶手段は、一のコアにおけるキャッシュであり、
自コア内アクセス可能記憶手段は、前記キャッシュにおいて他のコアにおけるキャッシュとの一貫性制御が停止された領域である
請求項1から請求項4のうちのいずれか1項に記載のセキュア計算システム。
【請求項7】
少なくとも一のコアが、他のコアからのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段とを備えたマルチコアプロセッサを用いたセキュア計算方法であって、
前記一のコアが、前記自コア内アクセス可能記憶手段に記憶された復号鍵を用いて、他のコアから受信した暗号化データを復号したデータである平文データを作成し、
前記一のコアが、前記平文データを前記自コア内アクセス可能記憶手段に記憶させ、
前記一のコアが、前記自コア内アクセス可能記憶手段に記憶された平文データに対して指定された計算処理を行い、
前記一のコアが、前記計算処理による計算結果を前記他コアアクセス可能記憶手段に記憶させる
ことを特徴とするセキュア計算方法。
【請求項8】
少なくとも一のコアが、他のコアからのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段とを備えたマルチコアプロセッサを用いたセキュア計算方法であって、
前記一のコアが、前記自コア内アクセス可能記憶手段に記憶された復号鍵を用いて、他のコアから受信した暗号化データを復号したデータである平文データを作成し、
前記一のコアが、前記平文データを前記自コア内アクセス可能記憶手段に記憶させ、
前記一のコアが、前記自コア内アクセス可能記憶手段に記憶された平文データに対して指定された計算処理を行い、
前記一のコアが、前記計算処理による計算結果を前記自コア内アクセス可能記憶手段に記憶させ、
前記一のコアが、他のコアから指定された暗号鍵を用いて前記計算結果を暗号化し、
前記一のコアが、暗号化した計算結果を前記他コアアクセス可能記憶手段に記憶させる
ことを特徴とするセキュア計算方法。
【請求項9】
少なくとも一のコアが、他のコアからのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段とを備えたマルチコアプロセッサを有するコンピュータに適用されるセキュア計算用プログラムであって、
前記コンピュータに、
前記自コア内アクセス可能記憶手段に記憶された復号鍵を用いて、他のコアから受信した暗号化データを復号したデータである平文データを作成し、当該平文データを前記自コア内アクセス可能記憶手段に記憶させる復号処理、および、
前記自コア内アクセス可能記憶手段に記憶された平文データに対して指定された計算処理を行い、当該計算処理による計算結果を前記他コアアクセス可能記憶手段に記憶させる平文データ計算処理
を実行させるためのセキュア計算用プログラム。
【請求項10】
少なくとも一のコアが、他のコアからのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段とを備えたマルチコアプロセッサを有するコンピュータに適用されるセキュア計算用プログラムであって、
前記コンピュータに、
前記自コア内アクセス可能記憶手段に記憶された復号鍵を用いて、他のコアから受信した暗号化データを復号したデータである平文データを作成し、当該平文データを前記自コア内アクセス可能記憶手段に記憶させる復号処理、
前記自コア内アクセス可能記憶手段に記憶された平文データに対して指定された計算処理を行い、当該計算処理による計算結果を前記自コア内アクセス可能記憶手段に記憶させる平文データ計算処理、および、
前記他コアアクセス可能記憶手段に記憶された暗号鍵を用いて前記平文結果データ記憶手段に記憶された計算結果を暗号化し、暗号化した計算結果を前記他コアアクセス可能記憶手段に記憶させる暗号処理
を実行させるためのセキュア計算用プログラム。
【請求項1】
マルチコアプロセッサを用いたセキュア計算システムであって、
一のコアは、
他のコアからのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段と、
自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段と、
暗号化されたデータを復号する復号手段と、
前記復号手段が復号したデータである平文データに対して指定された計算処理を行う平文データ計算手段とを備え、
前記他コアアクセス可能記憶手段は、
他のコアから受信した暗号化データを記憶する暗号化データ記憶手段と、
前記平文データ計算手段による計算結果を記憶する結果データ記憶手段とを含み、
前記自コア内アクセス可能記憶手段は、
前記平文データを記憶する平文データ記憶手段と、
受信した暗号化データを復号する復号鍵を記憶する復号鍵記憶手段とを含み、
前記復号手段は、他のコアから受信した暗号化データを前記復号鍵を用いて復号した平文データを作成し、当該平文データを前記平文データ記憶手段に記憶させ、
前記平文データ計算手段は、前記平文データ記憶手段に記憶された平文データに対して指定された計算処理を行い、当該計算処理による計算結果を前記結果データ記憶手段に記憶させる
ことを特徴とするセキュア計算システム。
【請求項2】
マルチコアプロセッサを用いたセキュア計算システムであって、
一のコアは、
他のコアからのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段と、
自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段と、
暗号化されたデータを復号する復号手段と、
前記復号手段が復号したデータである平文データに対して指定された計算処理を行う平文データ計算手段と、
他のコアから指定された暗号鍵を用いてデータを暗号化する暗号化手段とを備え、
前記他コアアクセス可能記憶手段は、
他のコアから受信した暗号化データを記憶する暗号化データ記憶手段と、
前記平文データ計算手段による計算結果を記憶する結果データ記憶手段と、
他のコアから指定された暗号鍵を記憶する暗号鍵記憶手段とを含み、
前記自コア内アクセス可能記憶手段は、
前記平文データを記憶する平文データ記憶手段と、
受信した暗号化データを復号する復号鍵を記憶する復号鍵記憶手段と、
前記復号手段が復号した平文データを記憶する平文結果データ記憶手段とを含み、
前記復号手段は、他のコアから受信した暗号化データを前記復号鍵を用いて復号した平文データを作成し、当該平文データを前記平文データ記憶手段に記憶させ、
前記平文データ計算手段は、前記平文データ記憶手段に記憶された平文データに対して指定された計算処理を行い、当該計算処理による計算結果を前記平文結果データ記憶手段に記憶させ、
前記暗号化手段は、前記暗号鍵記憶手段に記憶された暗号鍵を用いて前記平文結果データ記憶手段に記憶された計算結果を暗号化し、暗号化した計算結果を前記結果データ記憶手段に記憶させる
ことを特徴とするセキュア計算システム。
【請求項3】
暗号化手段は、平文結果データ記憶手段に記憶された計算結果を削除する
請求項2記載のセキュア計算システム。
【請求項4】
平文データ計算手段は、平文データ記憶手段に記憶された平文データを削除する
請求項1から請求項3のうちのいずれか1項に記載のセキュア計算システム。
【請求項5】
他コアアクセス可能記憶手段は、一のコアにおけるキャッシュであり、
自コア内アクセス可能記憶手段は、一のコアにおけるローカルメモリである
請求項1から請求項4のうちのいずれか1項に記載のセキュア計算システム。
【請求項6】
他コアアクセス可能記憶手段は、一のコアにおけるキャッシュであり、
自コア内アクセス可能記憶手段は、前記キャッシュにおいて他のコアにおけるキャッシュとの一貫性制御が停止された領域である
請求項1から請求項4のうちのいずれか1項に記載のセキュア計算システム。
【請求項7】
少なくとも一のコアが、他のコアからのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段とを備えたマルチコアプロセッサを用いたセキュア計算方法であって、
前記一のコアが、前記自コア内アクセス可能記憶手段に記憶された復号鍵を用いて、他のコアから受信した暗号化データを復号したデータである平文データを作成し、
前記一のコアが、前記平文データを前記自コア内アクセス可能記憶手段に記憶させ、
前記一のコアが、前記自コア内アクセス可能記憶手段に記憶された平文データに対して指定された計算処理を行い、
前記一のコアが、前記計算処理による計算結果を前記他コアアクセス可能記憶手段に記憶させる
ことを特徴とするセキュア計算方法。
【請求項8】
少なくとも一のコアが、他のコアからのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段とを備えたマルチコアプロセッサを用いたセキュア計算方法であって、
前記一のコアが、前記自コア内アクセス可能記憶手段に記憶された復号鍵を用いて、他のコアから受信した暗号化データを復号したデータである平文データを作成し、
前記一のコアが、前記平文データを前記自コア内アクセス可能記憶手段に記憶させ、
前記一のコアが、前記自コア内アクセス可能記憶手段に記憶された平文データに対して指定された計算処理を行い、
前記一のコアが、前記計算処理による計算結果を前記自コア内アクセス可能記憶手段に記憶させ、
前記一のコアが、他のコアから指定された暗号鍵を用いて前記計算結果を暗号化し、
前記一のコアが、暗号化した計算結果を前記他コアアクセス可能記憶手段に記憶させる
ことを特徴とするセキュア計算方法。
【請求項9】
少なくとも一のコアが、他のコアからのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段とを備えたマルチコアプロセッサを有するコンピュータに適用されるセキュア計算用プログラムであって、
前記コンピュータに、
前記自コア内アクセス可能記憶手段に記憶された復号鍵を用いて、他のコアから受信した暗号化データを復号したデータである平文データを作成し、当該平文データを前記自コア内アクセス可能記憶手段に記憶させる復号処理、および、
前記自コア内アクセス可能記憶手段に記憶された平文データに対して指定された計算処理を行い、当該計算処理による計算結果を前記他コアアクセス可能記憶手段に記憶させる平文データ計算処理
を実行させるためのセキュア計算用プログラム。
【請求項10】
少なくとも一のコアが、他のコアからのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段とを備えたマルチコアプロセッサを有するコンピュータに適用されるセキュア計算用プログラムであって、
前記コンピュータに、
前記自コア内アクセス可能記憶手段に記憶された復号鍵を用いて、他のコアから受信した暗号化データを復号したデータである平文データを作成し、当該平文データを前記自コア内アクセス可能記憶手段に記憶させる復号処理、
前記自コア内アクセス可能記憶手段に記憶された平文データに対して指定された計算処理を行い、当該計算処理による計算結果を前記自コア内アクセス可能記憶手段に記憶させる平文データ計算処理、および、
前記他コアアクセス可能記憶手段に記憶された暗号鍵を用いて前記平文結果データ記憶手段に記憶された計算結果を暗号化し、暗号化した計算結果を前記他コアアクセス可能記憶手段に記憶させる暗号処理
を実行させるためのセキュア計算用プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2012−147095(P2012−147095A)
【公開日】平成24年8月2日(2012.8.2)
【国際特許分類】
【出願番号】特願2011−2031(P2011−2031)
【出願日】平成23年1月7日(2011.1.7)
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成22年度 総務省、「グリーンネットワーク基盤技術の研究開発」委託研究、産業技術力強化法第19条の適用を受ける特許出願
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】
【公開日】平成24年8月2日(2012.8.2)
【国際特許分類】
【出願日】平成23年1月7日(2011.1.7)
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成22年度 総務省、「グリーンネットワーク基盤技術の研究開発」委託研究、産業技術力強化法第19条の適用を受ける特許出願
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】
[ Back to top ]