マルチコアプロセッサを用いたセキュア計算システムであって、一のコアは、他のコアからのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段と、暗号化されたデータを復号する復号手段と、前記復号手段が復号したデータである平文データに対して指定された計算処理を行う平文データ計算手段とを備え、前記他コアアクセス可能記憶手段は、他のコアから受信した暗号化データを記憶する暗号化データ記憶手段と、前記平文データ計算手段による計算結果を記憶する結果データ記憶手段とを含み、前記自コア内アクセス可能記憶手段は、前記平文データを記憶する平文データ記憶手段と、受信した暗号化データを復号する復号鍵を記憶する復号鍵記憶手段とを含み、前記復号手段は、他のコアから受信した暗号化データを前記復号鍵を用いて復号した平文データを作成し、当該平文データを前記平文データ記憶手段に記憶させ、前記平文データ計算手段は、前記平文データ記憶手段に記憶された平文データに対して指定された計算処理を行い、当該計算処理による計算結果を前記結果データ記憶手段に記憶させることを特徴とするセキュア計算システム。マルチコアプロセッサを用いたセキュア計算システムであって、一のコアは、他のコアからのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段と、暗号化されたデータを復号する復号手段と、前記復号手段が復号したデータである平文データに対して指定された計算処理を行う平文データ計算手段と、他のコアから指定された暗号鍵を用いてデータを暗号化する暗号化手段とを備え、前記他コアアクセス可能記憶手段は、他のコアから受信した暗号化データを記憶する暗号化データ記憶手段と、前記平文データ計算手段による計算結果を記憶する結果データ記憶手段と、他のコアから指定された暗号鍵を記憶する暗号鍵記憶手段とを含み、前記自コア内アクセス可能記憶手段は、前記平文データを記憶する平文データ記憶手段と、受信した暗号化データを復号する復号鍵を記憶する復号鍵記憶手段と、前記復号手段が復号した平文データを記憶する平文結果データ記憶手段とを含み、前記復号手段は、他のコアから受信した暗号化データを前記復号鍵を用いて復号した平文データを作成し、当該平文データを前記平文データ記憶手段に記憶させ、前記平文データ計算手段は、前記平文データ記憶手段に記憶された平文データに対して指定された計算処理を行い、当該計算処理による計算結果を前記平文結果データ記憶手段に記憶させ、前記暗号化手段は、前記暗号鍵記憶手段に記憶された暗号鍵を用いて前記平文結果データ記憶手段に記憶された計算結果を暗号化し、暗号化した計算結果を前記結果データ記憶手段に記憶させることを特徴とするセキュア計算システム。暗号化手段は、平文結果データ記憶手段に記憶された計算結果を削除する請求項2記載のセキュア計算システム。平文データ計算手段は、平文データ記憶手段に記憶された平文データを削除する請求項1から請求項3のうちのいずれか1項に記載のセキュア計算システム。他コアアクセス可能記憶手段は、一のコアにおけるキャッシュであり、自コア内アクセス可能記憶手段は、一のコアにおけるローカルメモリである請求項1から請求項4のうちのいずれか1項に記載のセキュア計算システム。他コアアクセス可能記憶手段は、一のコアにおけるキャッシュであり、自コア内アクセス可能記憶手段は、前記キャッシュにおいて他のコアにおけるキャッシュとの一貫性制御が停止された領域である請求項1から請求項4のうちのいずれか1項に記載のセキュア計算システム。少なくとも一のコアが、他のコアからのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段とを備えたマルチコアプロセッサを用いたセキュア計算方法であって、前記一のコアが、前記自コア内アクセス可能記憶手段に記憶された復号鍵を用いて、他のコアから受信した暗号化データを復号したデータである平文データを作成し、前記一のコアが、前記平文データを前記自コア内アクセス可能記憶手段に記憶させ、前記一のコアが、前記自コア内アクセス可能記憶手段に記憶された平文データに対して指定された計算処理を行い、前記一のコアが、前記計算処理による計算結果を前記他コアアクセス可能記憶手段に記憶させることを特徴とするセキュア計算方法。少なくとも一のコアが、他のコアからのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段とを備えたマルチコアプロセッサを用いたセキュア計算方法であって、前記一のコアが、前記自コア内アクセス可能記憶手段に記憶された復号鍵を用いて、他のコアから受信した暗号化データを復号したデータである平文データを作成し、前記一のコアが、前記平文データを前記自コア内アクセス可能記憶手段に記憶させ、前記一のコアが、前記自コア内アクセス可能記憶手段に記憶された平文データに対して指定された計算処理を行い、前記一のコアが、前記計算処理による計算結果を前記自コア内アクセス可能記憶手段に記憶させ、前記一のコアが、他のコアから指定された暗号鍵を用いて前記計算結果を暗号化し、前記一のコアが、暗号化した計算結果を前記他コアアクセス可能記憶手段に記憶させることを特徴とするセキュア計算方法。少なくとも一のコアが、他のコアからのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段とを備えたマルチコアプロセッサを有するコンピュータに適用されるセキュア計算用プログラムであって、前記コンピュータに、前記自コア内アクセス可能記憶手段に記憶された復号鍵を用いて、他のコアから受信した暗号化データを復号したデータである平文データを作成し、当該平文データを前記自コア内アクセス可能記憶手段に記憶させる復号処理、および、前記自コア内アクセス可能記憶手段に記憶された平文データに対して指定された計算処理を行い、当該計算処理による計算結果を前記他コアアクセス可能記憶手段に記憶させる平文データ計算処理を実行させるためのセキュア計算用プログラム。少なくとも一のコアが、他のコアからのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段とを備えたマルチコアプロセッサを有するコンピュータに適用されるセキュア計算用プログラムであって、前記コンピュータに、前記自コア内アクセス可能記憶手段に記憶された復号鍵を用いて、他のコアから受信した暗号化データを復号したデータである平文データを作成し、当該平文データを前記自コア内アクセス可能記憶手段に記憶させる復号処理、前記自コア内アクセス可能記憶手段に記憶された平文データに対して指定された計算処理を行い、当該計算処理による計算結果を前記自コア内アクセス可能記憶手段に記憶させる平文データ計算処理、および、前記他コアアクセス可能記憶手段に記憶された暗号鍵を用いて前記平文結果データ記憶手段に記憶された計算結果を暗号化し、暗号化した計算結果を前記他コアアクセス可能記憶手段に記憶させる暗号処理を実行させるためのセキュア計算用プログラム。しかし、特許文献1に記載されたプロセッサ装置は、セルアーキテクチャのように、プロセッサごとにセキュリティのモードを指定してデータを処理可能なセキュリティ回路を備えていることを前提にしている。すなわち、上述する特別なセキュリティ回路をプロセッサに実装しなければ、セキュアに計算処理を実行できないという問題がある。また、特許文献2に記載されたマルチプロセッサは、処理時間の短縮や処理効率の向上を図ることを目的として使用されるものであり、プロセッサ内のセキュリティについては考慮されていない。そのため、特許文献2に記載されたマルチプロセッサを用いても、セキュアに計算処理を実行できるとは言い難い。そこで、本発明は、マルチコアプロセッサを用いて計算処理を実行する際、プロセッサごとの動作を制御する特別なセキュリティ回路を備えていない場合であっても、セキュアに計算処理を実行できるセキュア計算システム、セキュア計算方法およびセキュア計算用プログラムを提供することを目的とする。本発明によるセキュア計算システムは、マルチコアプロセッサを用いたセキュア計算システムであって、一のコアが、他のコアからのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段と、暗号化されたデータを復号する復号手段と、復号手段が復号したデータである平文データに対して指定された計算処理を行う平文データ計算手段とを備え、他コアアクセス可能記憶手段が、他のコアから受信した暗号化データを記憶する暗号化データ記憶手段と、平文データ計算手段による計算結果を記憶する結果データ記憶手段とを含み、自コア内アクセス可能記憶手段が、平文データを記憶する平文データ記憶手段と、受信した暗号化データを復号する復号鍵を記憶する復号鍵記憶手段とを含み、復号手段が、他のコアから受信した暗号化データを復号鍵を用いて復号した平文データを作成し、その平文データを平文データ記憶手段に記憶させ、平文データ計算手段が、平文データ記憶手段に記憶された平文データに対して指定された計算処理を行い、その計算処理による計算結果を結果データ記憶手段に記憶させることを特徴とする。本発明による他のセキュア計算システムは、マルチコアプロセッサを用いたセキュア計算システムであって、一のコアが、他のコアからのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段と、暗号化されたデータを復号する復号手段と、復号手段が復号したデータである平文データに対して指定された計算処理を行う平文データ計算手段と、他のコアから指定された暗号鍵を用いてデータを暗号化する暗号化手段とを備え、他コアアクセス可能記憶手段が、他のコアから受信した暗号化データを記憶する暗号化データ記憶手段と、平文データ計算手段による計算結果を記憶する結果データ記憶手段と、他のコアから指定された暗号鍵を記憶する暗号鍵記憶手段とを含み、自コア内アクセス可能記憶手段が、平文データを記憶する平文データ記憶手段と、受信した暗号化データを復号する復号鍵を記憶する復号鍵記憶手段と、復号手段が復号した平文データを記憶する平文結果データ記憶手段とを含み、復号手段が、他のコアから受信した暗号化データを復号鍵を用いて復号した平文データを作成し、その平文データを平文データ記憶手段に記憶させ、平文データ計算手段は、平文データ記憶手段に記憶された平文データに対して指定された計算処理を行い、その計算処理による計算結果を平文結果データ記憶手段に記憶させ、暗号化手段が、暗号鍵記憶手段に記憶された暗号鍵を用いて平文結果データ記憶手段に記憶された計算結果を暗号化し、暗号化した計算結果を結果データ記憶手段に記憶させることを特徴とする。本発明によるセキュア計算方法は、少なくとも一のコアが、他のコアからのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段とを備えたマルチコアプロセッサを用いたセキュア計算方法であって、一のコアが、自コア内アクセス可能記憶手段に記憶された復号鍵を用いて、他のコアから受信した暗号化データを復号したデータである平文データを作成し、一のコアが、平文データを自コア内アクセス可能記憶手段に記憶させ、一のコアが、自コア内アクセス可能記憶手段に記憶された平文データに対して指定された計算処理を行い、一のコアが、計算処理による計算結果を他コアアクセス可能記憶手段に記憶させることを特徴とする。本発明による他のセキュア計算方法は、少なくとも一のコアが、他のコアからのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段とを備えたマルチコアプロセッサを用いたセキュア計算方法であって、一のコアが、自コア内アクセス可能記憶手段に記憶された復号鍵を用いて、他のコアから受信した暗号化データを復号したデータである平文データを作成し、一のコアが、平文データを自コア内アクセス可能記憶手段に記憶させ、一のコアが、自コア内アクセス可能記憶手段に記憶された平文データに対して指定された計算処理を行い、一のコアが、計算処理による計算結果を自コア内アクセス可能記憶手段に記憶させ、一のコアが、他のコアから指定された暗号鍵を用いて計算結果を暗号化し、一のコアが、暗号化した計算結果を他コアアクセス可能記憶手段に記憶させることを特徴とする。本発明によるセキュア計算用プログラムは、少なくとも一のコアが、他のコアからのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段とを備えたマルチコアプロセッサを有するコンピュータに適用されるセキュア計算用プログラムであって、コンピュータに、自コア内アクセス可能記憶手段に記憶された復号鍵を用いて、他のコアから受信した暗号化データを復号したデータである平文データを作成し、その平文データを自コア内アクセス可能記憶手段に記憶させる復号処理、および、自コア内アクセス可能記憶手段に記憶された平文データに対して指定された計算処理を行い、その計算処理による計算結果を他コアアクセス可能記憶手段に記憶させる平文データ計算処理を実行させることを特徴とする。本発明による他のセキュア計算用プログラムは、少なくとも一のコアが、他のコアからのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段とを備えたマルチコアプロセッサを有するコンピュータに適用されるセキュア計算用プログラムであって、コンピュータに、自コア内アクセス可能記憶手段に記憶された復号鍵を用いて、他のコアから受信した暗号化データを復号したデータである平文データを作成し、その平文データを自コア内アクセス可能記憶手段に記憶させる復号処理、自コア内アクセス可能記憶手段に記憶された平文データに対して指定された計算処理を行い、その計算処理による計算結果を自コア内アクセス可能記憶手段に記憶させる平文データ計算処理、および、他コアアクセス可能記憶手段に記憶された暗号鍵を用いて平文結果データ記憶手段に記憶された計算結果を暗号化し、暗号化した計算結果を他コアアクセス可能記憶手段に記憶させる暗号処理を実行させることを特徴とする。本発明によれば、マルチコアプロセッサを用いて計算処理を実行する際、プロセッサごとの動作を制御する特別なセキュリティ回路を備えていない場合であっても、セキュアに計算処理を実行できる。以下、本発明の実施形態を図面を参照して説明する。実施形態1.図1は、本発明の第1の実施形態におけるセキュア計算システムの例を示すブロック図である。本実施形態におけるセキュア計算システムは、コンピュータ1により実現される。コンピュータ1は、少なくとも、マルチコアプロセッサ2とメモリ3とを備えている。また、コンピュータ1は、プログラム制御により動作する。マルチコアプロセッサ2は、少なくとも2つのコアより詳しくは、コア4-1とコア4-2とを含む。さらに、この2つのコアは、それぞれキャッシュより詳しくは、キャッシュ5-1とキャッシュ5-2と、ローカルメモリより詳しくは、ローカルメモリ6-1とローカルメモリ6-2とを有する。マルチコアプロセッサ2は、メモリ3から読み込んだ命令列セキュア計算用プログラムを実行し、また、メモリ3からデータを読み込んで、何らかの計算処理を行い、その処理結果をメモリ3に記憶させる。以下、メモリ等にデータを記憶させることを、メモリにデータを書き出すと記し、メモリ等がデータを記憶することを、メモリがデータを保持すると記すこともある。各コアより詳しくは、コア4-1とコア4-2とでは、キャッシュに記憶されたデータを参照して処理が行われ、処理結果がキャッシュに一時的に記憶される。なお、キャッシュへのアクセス例えば、読み書きは、メモリ3へのアクセスの結果として同時に自動的に行われ、キャッシュに対する明示的なアクセス操作は行われない。キャッシュより詳しくは、キャッシュ5-1とキャッシュ5-2とは、コアがメモリ3に記憶された命令やデータなどの情報にアクセスする際に、それらの情報を一時的に保持する。キャッシュは、他のコアからのアクセスが可能な状態で情報を記憶する。ローカルメモリより詳しくは、ローカルメモリ6-1とローカルメモリ6-2は、各コアでのみアクセス可能なメモリである。ローカルメモリに対しては、メモリ3から読み込んだ情報の書き出し操作を各コアが明示的に行う。本実施形態では、計算処理の実行指示を行うプログラム以下、ユーザプログラムと記す。および計算処理の実行指示を受けて暗号化されたデータの復号および計算処理を行うプログラム以下、暗号化計算プログラムと記す。がそれぞれ実行されるものとする。また、本実施形態におけるセキュア計算システムでは、後述するコア4-1のユーザプログラム処理部9がユーザプログラムを実行し、コア4-2の暗号化計算プログラム処理部7が暗号化計算プログラムを実行する。各プログラムを実行するコアの割り当ては初期化時に行われ、その後、コアの割り当ては変化しない。さらに、暗号化計算プログラム処理部7が復号に用いる暗号鍵は、ローカルメモリの一部として、後述する暗号鍵保持部16へ初期化時に記憶される。次に、各コアの内容について具体的に説明する。コア4-1は、ユーザプログラム処理部9と、ローカルメモリ6-1と、キャッシュ5-1とを含む。なお、ローカルメモリ6-1およびキャッシュ5-1の内容は、上述するローカルメモリおよびキャッシュの説明の通りである。ユーザプログラム処理部9は、暗号化済みのデータを通信ネットワーク図示せずを介して受信する、または、磁気ディスク装置等図示せずから読み取ると、暗号化データを暗号化計算プログラム処理部7に送信し、計算指示を行う。そして、ユーザプログラム処理部9は、暗号化計算プログラム処理部7から計算結果を受け取る。ユーザプログラム処理部9は、例えば、数字の配列が暗号化された暗号化データを入手すると、その暗号化データを暗号化計算プログラム処理部7に送信して、配列内の数字の総和を計算させる。コア4-2は、暗号化計算プログラム処理部7と、ローカルメモリ6-2と、キャッシュ5-2とを含む。なお、ローカルメモリ6-2およびキャッシュ5-2の内容は、上述するローカルメモリおよびキャッシュの説明の通りである。暗号化計算プログラム処理部7は、暗号化済みのデータを受け取り、それを内部で復号した後で特定の計算を行い、計算終了の通知をユーザプログラム処理部9に行う。暗号化計算プログラム処理部7は、公開鍵暗号を用いて復号を行う。すなわち、受け取った暗号化データが公開鍵により暗号化されており、暗号化計算プログラム処理部7は、受け取った暗号化データを秘密鍵を使って復号する。なお、復号に必要な秘密鍵は、ローカルメモリ6-2に記憶されている。ここで、特定の計算とは、例えば、総和を求める計算である。この場合、暗号化計算プログラム処理部7は、数字の配列が暗号化された暗号化データを受け取り、それを復号した結果として得られた配列の各要素を加算する。次に、コア4-2の内容について、より詳細に説明する。図2は、本実施形態におけるコア4-2の例を示すブロック図である。キャッシュ5-2は、暗号化データ保持部11と、結果データ保持部12とを含み、ローカルメモリ6-2は、平文データ保持部15と、暗号鍵保持部16とを含み、暗号化計算プログラム処理部7は、復号化部13と、計算部17とを含む。暗号化データ保持部11は、別のコア本実施形態では、コア4-1から渡された暗号化済みデータを保持する。暗号化データ保持部11は、キャッシュ5-2の一部であるが、メモリ3の一部であってもよい。暗号化データ保持部11が記憶する暗号化済みデータは、別のコアからアクセス例えば、参照可能である。また、暗号化データ保持部11は、計算部17が使用する引数や環境変数などを記憶していてもよい。なお、引数や環境変数に関しては、必ずしも、暗号化しておく必要はない。結果データ保持部12は、計算部17による計算結果を保持する。結果データ保持部12は、キャッシュ5-2の一部であるが、メモリ3の一部であってもよい。暗号化データ保持部11と同様、結果データ保持部12が記憶する計算結果のデータは、別のコア本実施形態では、コア4-1からアクセス例えば、参照可能である。平文データ保持部15は、復号化部13により復号された暗号化データ以下、平文データと記す。を記憶する。また、暗号鍵保持部16は、受信した暗号化データを復号する暗号鍵を記憶する。なお、この暗号鍵のことを復号鍵と記すこともある。平文データ保持部15と、暗号鍵保持部16とは、ローカルメモリ6-2の一部であり、ローカルメモリ6-2に記憶されたデータは、他のコアからアクセス例えば、参照することはできない。復号化部13は、暗号化計算プログラム処理部7が別のコアから計算要求を受けとると、暗号鍵保持部16に記憶された暗号鍵を用いて、暗号化データ保持部11に保持されている暗号化済みデータを復号し、復号した結果の平文データを平文データ保持部15に記憶させる。計算部17は、特定の計算を行う機能を提供するものであり、平文データ保持部15に記憶された平文データを入力として、計算を実行する。具体的には、計算部17は、平文データ保持部15に記憶された平文データをもとに、特定の計算処理を行う。さらに、計算部17は、計算結果を結果データ保持部12に記憶させ、計算の要求元であるユーザプログラム処理部9に計算終了を通知する。そして、計算部17は、平文データ保持部15に記憶されたデータを計算終了の通知と合わせて消去する。なお、計算部17が計算中に利用するメモリ領域スタックやヒープには、ローカルメモリ6-2が使用される。図3は、キャッシュ、ローカルメモリおよびメモリの内容の一例を示す説明図である。キャッシュ5-1およびキャッシュ5-2には、暗号化データ保持部11に対応するキャッシュエントリおよび結果データ保持部12に対応するキャッシュエントリが確保される。また、メモリ3には、暗号化データ保持部11に対応するメモリ領域および結果データ保持部12に対応するメモリ領域が確保される。さらに、ローカルメモリ6-2には、平文データ保持部15および暗号鍵保持部16が含まれる。なお、本実施形態では、ローカルメモリ6-1に記憶させる情報がないため、図3に例示するローカルメモリ6-1には、記憶する内容を特に記載していない。次に、動作について説明する。図4は、第1の実施形態におけるセキュア計算システムの動作の例を示すフローチャートである。ユーザプログラム処理部9は、暗号化プログラム処理部7に計算要求を行い、合わせて、暗号化済みデータをキャッシュ52上の暗号化データ保持部11に記憶させるステップS1。このとき、暗号化済みデータは、キャッシュ5-1の中の暗号化データ保持部11に対応するキャッシュエントリを経由して、暗号化プログラム処理部7に渡される。暗号化計算プログラム処理部7が計算要求を受け取ると、復号化部13は、暗号鍵保持部16に記憶された暗号鍵を用いて、暗号化データ保持部11に保持されている暗号化済みデータを復号し、復号した結果の平文データを平文データ保持部15に記憶させるステップS2。計算部17は、平文データ保持部15に記憶された平文データを入力として計算処理を実行し、さらに、計算結果を結果データ保持部12に記憶させる。同時に、計算部17は、平文データ保持部15に記憶された平文データを消去するステップS3。そして、計算部17は、計算処理の要求元であるユーザプログラム処理部9に計算が終了した旨を通知するステップS4。ユーザプログラム処理部9は、計算部17からの通知を受け取ると、キャッシュ5-1の中の結果データ保持部12に対応するキャッシュエントリから、計算結果のデータを読み出すステップS5。具体的には、ユーザプログラム処理部9は、結果データ保持部12に対応するメモリ領域をアクセスすることで、結果的に、キャッシュ5-1の中の結果データ保持部12に対応するキャッシュエントリから、計算結果のデータを読み出す。以上のように、本実施形態によれば、コア4-2の復号化部13が、ローカルメモリ6-2の暗号鍵保持部16に記憶された復号鍵を用いて、コア4-1から受信した暗号化データを復号した平文データを作成し、その平文データをローカルメモリ6-2の平文データ保持部15に記憶させる。そして、コア4-2の計算部17が、平文データ保持部15に記憶された平文データに対して指定された計算処理を行い、その計算処理による計算結果をキャッシュ5-2の結果データ保持部12に記憶させる。すなわち、本実施形態では、他のコアからはアクセスできないローカルメモリ6-2を利用して暗号化計算プログラム処理部7が復号や計算処理を行うように構成されているため、特別なセキュリティ回路を備えていない場合であっても、セキュアな計算処理を実現できる。なお、第1の実施形態では、コアを対称にするため、コア4-1にローカルメモリ6-1が含まれる構成を例に説明した。ただし、本発明におけるセキュア計算システムでは、コア4-1がローカルメモリを含まない非対称な構成であってもよい。なお、この場合、ハードウェア構成すなわち、コア4-1にローカルメモリ6-1を含まない構成以外の構成および動作は、上述する内容と同様である。また、第1の実施形態では、ローカルメモリとキャッシュの両方がコアに含まれる構成を例に説明した。ただし、本発明におけるセキュア計算システムにおいて、キャッシュの一部の一貫性制御を停止できるマルチコアプロセッサであれば、ローカルメモリを含まない構成であってもよい。ここで、一貫性制御とは、キャッシュ上の一のデータが他のデータに変更されたことに伴い、そのキャッシュを含むコア以外のコアに含まれるキャッシュに記憶された一のデータを他のデータに変更する制御である。一貫性制御を停止されたキャッシュ領域に記憶されたデータがあるコアによって変更されたとしても、別のコアからはその変更内容を取得することはできず、その部分の領域をローカルメモリのように使うことが可能なためである。すなわち、一貫性制御が停止されたキャッシュの一部領域を自コアからのみアクセスが可能な領域として用いることができる。この場合、初期化時などに、キャッシュの一部の一貫性制御を停止させ、その停止させた部分を、第1の実施形態におけるローカルメモリと同様に利用すればよい。その場合の動作については、上述する内容と同様である。次に、第1の実施形態における変形例について説明する。第1の実施形態では、暗号化計算プログラム処理部7が、特定の1種類の計算処理を行う場合について説明した。本変形では、暗号化計算プログラム処理部7が複数の計算処理の中から1つを選択して計算処理を行う場合について説明する。この場合、ユーザプログラム処理部9は、暗号化計算プログラム処理部7への引数として、計算の種類を示す識別子を渡す。暗号化計算プログラム処理部7の計算部17は、複数の計算式を保持し、計算の種類を示す識別子に基づいて、計算式を選択し、計算処理を行う。すなわち、本実施形態の変形例では、特別なセキュリティ回路を備えていない場合であっても、セキュアな計算処理を実現できるという第1の実施形態の効果に加えて、複数の計算式から一つの計算式を選択して、暗号化計算を行うことができるという効果が得られる。実施形態2.図5は、本発明の第2の実施形態におけるセキュア計算システムの例を示すブロック図である。なお、第1の実施形態と同様の構成については、図1と同一の符号を付し、説明を省略する。本実施形態におけるセキュア計算システムも、コンピュータ1により実現され、コンピュータ1は、少なくとも、マルチコアプロセッサ2とメモリ3とを備えている。また、コンピュータ1は、プログラム制御により動作する。マルチコアプロセッサ2は、少なくとも2つのコアより詳しくは、コア4-1とコア4-3とを含む。さらに、この2つのコアは、それぞれキャッシュより詳しくは、キャッシュ5-1とキャッシュ5-3と、ローカルメモリより詳しくは、ローカルメモリ6-1とローカルメモリ6-3とを有する。本実施形態におけるセキュア計算システムでは、後述するコア4-1のユーザプログラム処理部9がユーザプログラムを実行し、コア4-3の暗号化計算プログラム処理部8が暗号化計算プログラムを実行する。次に、各コアの内容について具体的に説明する。コア4-1については、第1の実施形態と同様である。コア4-3は、暗号化計算プログラム処理部8と、ローカルメモリ6-3と、キャッシュ5-3とを含む。なお、ローカルメモリ6-3およびキャッシュ5-3の内容は、第1の実施形態におけるローカルメモリおよびキャッシュの説明の通りである。暗号化計算プログラム処理部8は、第1の実施形態における暗号化計算プログラム処理部7と同様、暗号化済みのデータを受け取り、それを内部で復号した後で特定の計算処理を行い、計算終了の通知をユーザプログラム処理部9に行う。次に、コア4-3の内容について、より詳細に説明する。図6は、本実施形態におけるコア4-3の例を示すブロック図である。キャッシュ5-3は、暗号化データ保持部11と、結果データ保持部12と、第2の暗号鍵保持部20とを含み、ローカルメモリ6-3は、平文データ保持部15と、暗号鍵保持部16と、平文結果データ保持部18とを含み、暗号化計算プログラム処理部8は、復号化部13と、暗号化部14と、計算部19とを含む。コア4-3は、暗号化部14、平文結果データ保持部18、計算部19および第2の暗号鍵保持部20を含んでいる点において第1の実施形態におけるコア4-2と異なる。それ以外の構成内容については、第1の実施形態の構成内容と同様である。すなわち、暗号化データ保持部11は、別のコアから渡された暗号化済みデータを保持し、暗号鍵保持部16は、暗号鍵を保持する。また、復号化部13は、暗号化データ保持部11に保持されている暗号化済みデータを復号し、平文データ保持部15は、復号後の平文データを保持する。また、結果データ保持部12は、計算結果のデータを保持する。また、暗号化データ保持部11と結果データ保持部12とは、キャッシュ5-3の一部であるが、メモリ3の一部であってもよい。また、平文データ保持部15と暗号鍵保持部16とは、ローカルメモリ6-3の一部である。計算部19は、特定の計算を行う機能を提供するものであり、平文データ保持部15に記憶された平文データを入力として、計算を実行する。具体的には、計算部19は、平文データ保持部15に記憶された平文データをもとに、特定の計算処理を行う。さらに、計算部19は、計算結果を平文結果データ保持部18に記憶させ、暗号化部14に計算結果の暗号化を指示する。なお、計算部19が計算中に利用するメモリ領域スタックやヒープには、ローカルメモリ6-3が使用される。平文結果データ保持部18は、計算部19による計算結果を一時的に記憶する。平文結果データ保持部18は、ローカルメモリ6-3の一部であり、ローカルメモリ6-3に記憶されたデータは、自コアからのみアクセス可能であり、他のコアからアクセス例えば、参照することはできない。第2の暗号鍵保持部20は、ユーザプログラム処理部9から送信される公開暗号鍵を記憶する。なお、第2の暗号鍵保持部20は、ローカルメモリ6-3の一部であってもよく、メモリ3の一部であってもよい。暗号化部14は、計算部19から暗号化の指示を受け取ると、平文結果データ保存部18から平文の計算結果のデータを読み取り、そのデータを第2の暗号鍵保持部20が記憶する暗号鍵を用いて暗号化する。そして、暗号化部14は、暗号化した結果を結果データ保持部12に記憶させる。同時に、暗号化部14は、平文結果データ保持部18に記憶されたデータを消去する。そして、暗号化部14は、計算処理の要求元であるユーザプログラム処理部9に計算が終了した旨を通知する。図7は、キャッシュ、ローカルメモリおよびメモリの内容の一例を示す説明図である。キャッシュ5-1およびキャッシュ5-3には、暗号化データ保持部11に対応するキャッシュエントリおよび結果データ保持部12に対応するキャッシュエントリが確保される。また、メモリ3には、暗号化データ保持部11に対応するメモリ領域および結果データ保持部12に対応するメモリ領域が確保される。さらに、ローカルメモリ6-3には、平文データ保持部15、暗号鍵保持部16および平文結果データ保持部18が含まれる。本実施形態でも、ローカルメモリ6-1に記憶させる情報がないため、図7に例示するローカルメモリ6-1には、記憶する内容を特に記載していない。次に、動作について説明する。図8は、第2の実施形態におけるセキュア計算システムの動作の例を示すフローチャートである。ユーザプログラム処理部9は、暗号化プログラム処理部8に計算要求を行い、合わせて、暗号化済みデータをキャッシュ5-3上の暗号化データ保持部11に記憶させるステップS11。このとき、暗号化済みデータは、キャッシュ5-1の中の暗号化データ保持部11に対応するキャッシュエントリを経由して、暗号化プログラム処理部8に渡される。暗号化計算プログラム処理部8が計算要求を受け取ると、復号化部13は、暗号鍵保持部16に記憶された暗号鍵を用いて、暗号化データ保持部11に保持されている暗号化済みデータを復号し、復号した結果の平文データを平文データ保持部15に記憶させるステップS12。計算部19は、平文データ保持部15に記憶された平文データを入力として計算処理を実行し、さらに、計算結果を平文結果データ保持部18に記憶させる。同時に、計算部19は、平文データ保持部15に記憶された平文データを消去するステップS13。暗号化部14は、平文結果データ保存部18から平文の計算結果のデータを読み取り、そのデータを第2の暗号鍵保持部20が記憶する暗号鍵を用いて暗号化する。そして、暗号化部14は、暗号化した結果を結果データ保持部12に記憶させる。同時に、暗号化部14は、平文結果データ保持部18に記憶されたデータを消去するステップS14。そして、暗号化部14は、計算処理の要求元であるユーザプログラム処理部9に計算が終了した旨を通知するステップS15。ユーザプログラム処理部9は、計算部17からの通知を受け取ると、キャッシュ5-1の中の結果データ保持部12に対応するキャッシュエントリから、計算結果のデータを読み出すステップS16。具体的には、ユーザプログラム処理部9は、結果データ保持部12に対応するメモリ領域をアクセスすることで、結果的に、キャッシュ5-1の中の結果データ保持部12に対応するキャッシュエントリから、計算結果のデータを読み出す。以上のように、本実施形態によれば、コア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に記憶させる。すなわち、本実施形態では、他のコアからはアクセスできないローカルメモリ6-3を利用して、暗号化計算プログラム処理部8が計算結果を暗号化し、暗号化されたデータをユーザプログラム処理部9が取得するように構成されている。よって、第1の実施形態よりも、さらに、セキュアな計算処理を実現できる。以下、具体的な実施例により本発明を説明するが、本発明の範囲は以下に説明する内容に限定されない。本発明によるセキュア計算システムは、セキュアな統計計算に適用できる。第1の実施例では、第1の実施形態におけるセキュア計算システムを用いて統計計算を行う動作について説明する。図9は、サーバごとに通信データ量の統計計算を行う動作の例を示す説明図である。コンピュータ1は、暗号化データとして、ユーザIDとアクセス先を示す情報と通信データ量とを含むアクセス履歴を定期的にサーバなど図示せずから受け取る。そして、ユーザプログラム処理部9が暗号化計算プログラム処理部7にアクセス履歴を送信し、計算指示を行う。暗号化計算プログラム処理部7は、アクセス履歴を受け取り、サーバごとにパケット量などを合算した結果をサーバごとの通信データ量として計算する。そして、コンピュータ1は、この通信データ量を要求されたサーバ等図示せずに返す。具体的には、暗号化データ保持部11に暗号化されたデータアクセス履歴が記憶されると、復号化部13がそのデータを復号し、復号された平文データを平文データ保持部15に記憶させる。図9に示す例では、平文データ保持部15は、復号化後の平文データアクセス履歴として、ユーザIDとアクセス先を示す情報アクセス先とデータ量とを対応付けて記憶する。次に、計算部17は、アクセス先を示す情報に含まれるサーバIDを検索キーにして、アクセス履歴を検索する。ここでは、サーバIDa.b.cを検索キーにしてアクセス履歴を検索するものとする。そして、計算部17は、検索の結果絞り込まれたエントリにおけるデータ量の総和を計算する。この場合、データ量の総和は、100010005000000=5002000バイトと計算される。計算部17は、他のサーバに関しても同様にデータ量の総和を計算する。そして、計算部17は、計算結果を結果データ保持部12に記憶させる。図9に示す例では、結果データ保持部12は、計算結果として、サーバごとのURLと合計データ量とを対応付けて記憶する。ユーザごとのアクセス履歴は、プライバシーにかかわる重大な情報であるため、秘匿すべきである。一方で、サーバごとの統計情報は、負荷分散などのために重要な指標である。本実施例では、復号後のアクセス履歴が他のコアからアクセスできないローカルメモリ上に記憶されて統計処理が行われるため、ユーザごとのアクセス履歴を知られることなく、サーバ単位のアクセス統計情報を取得することができる。すなわち、本発明におけるセキュア計算システムにより、プライバシー情報の秘匿と有益な情報の抽出という2点を両立できる。本発明によるセキュア計算システムは、課金システムにも適用できる。第2の実施例では、第2の実施形態におけるセキュア計算システムを用いて統計計算を行う動作について説明する。図10は、サーバごとに通信データ量の統計計算を行う動作の例を示す説明図である。コンピュータ1は、暗号化データとして、ユーザIDとアクセス先を示す情報と通信データ量とを含むアクセス履歴を定期的にサーバなど図示せずから受け取る。そして、ユーザプログラム処理部9が暗号化計算プログラム処理部8にアクセス履歴を送信し、計算指示を行う。暗号化計算プログラム処理部8は、アクセス履歴を受け取り、ユーザIDごとにパケット量などを合算した結果をユーザごとの課金データとして計算する。そして、コンピュータ1は、この課金データを要求されたサーバ等図示せずに返す。このとき、課金データは、暗号化された状態で返される。具体的には、暗号化データ保持部11に暗号化されたデータアクセス履歴が記憶されると、復号化部13がそのデータを復号し、復号された平文データを平文データ保持部15に記憶させる。図10に示す例では、平文データ保持部15は、復号化後の平文データアクセス履歴として、ユーザIDとアクセス先を示す情報アクセス先とデータ量とを対応付けて記憶する。次に、計算部19は、引数として与えられたユーザIDを検索キーにして、アクセス履歴を検索する。ここでは、ユーザIDtomが検索キーとして与えられたものとする。そして、計算部19は、検索の結果絞り込まれたエントリにおけるデータ量の総和を計算する。この場合、データ量の総和は、100050000002000=5003000バイトと計算される。そして、計算部19は、計算結果を平文結果データ保持部18に記憶させる。図10に示す例では、平文結果データ保持部18は、計算結果として、ユーザIDと合計データ量とを対応付けて記憶する。暗号化部14は、ユーザプログラム処理部9から送信された暗号鍵具体的には、第2の暗号鍵保持部20に記憶された公開暗号鍵を使って計算結果を暗号化し、暗号化した計算結果を結果データ保持部12に記憶させる。以降、ユーザプログラム処理部9は、暗号化された計算結果を結果データ保持部12を介して取得する。本実施例では、ユーザプログラム処理部9から送信された公開暗号鍵を使って計算結果を暗号化しているため、この公開暗号鍵に対応する秘密暗号鍵を知るものによってのみユーザごとのアクセス統計情報を処理できる。次に、本発明の最小構成の例を説明する。図11は、本発明によるセキュア計算システムの最小構成の例を示すブロック図である。本発明によるセキュア計算システムは、マルチコアプロセッサ99例えば、マルチコアプロセッサ2を用いたセキュア計算システムであって、一のコア80例えば、コア4-2は、他のコア90例えば、コア4-1からのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段81例えば、キャッシュ5-2と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段82例えば、ローカルメモリ6-2と、暗号化されたデータを復号する復号手段83例えば、復号化部13と、復号手段83が復号したデータである平文データに対して指定された計算処理例えば、通信データ量の統計計算を行う平文データ計算手段84例えば、計算部17とを備えている。他コアアクセス可能記憶手段81は、他のコアから受信した暗号化データを記憶する暗号化データ記憶手段85例えば、暗号化データ保持部11と、平文データ計算手段84による計算結果を記憶する結果データ記憶手段86例えば、結果データ保持部12とを含む。自コア内アクセス可能記憶手段82は、平文データを記憶する平文データ記憶手段87例えば、平文データ保持部15と、受信した暗号化データを復号する復号鍵を記憶する復号鍵記憶手段88例えば、暗号鍵保持部16とを含む。復号手段83は、他のコアから受信した暗号化データを復号鍵を用いて復号した平文データを作成し、その平文データを平文データ記憶手段87に記憶させる。平文データ計算手段84は、平文データ記憶手段87に記憶された平文データに対して指定された計算処理を行い、その計算処理による計算結果を結果データ記憶手段86に記憶させる。そのような構成により、マルチコアプロセッサを用いて計算処理を実行する際、プロセッサごとの動作を制御する特別なセキュリティ回路を備えていない場合であっても、セキュアに計算処理を実行できる。また、図12は、本発明によるセキュア計算システムの他の最小構成の例を示すブロック図である。本発明による他のセキュア計算システムは、マルチコアプロセッサ99例えば、マルチコアプロセッサ2を用いたセキュア計算システムであって、一のコア60例えば、コア4-3は、他のコア90例えば、コア4-1からのアクセスが可能な状態で情報を記憶する他コアアクセス可能記憶手段61例えば、キャッシュ5-3と、自コアからのみアクセスが可能な状態で情報を記憶する自コア内アクセス可能記憶手段62例えば、ローカルメモリ6-3と、暗号化されたデータを復号する復号手段63例えば、復号化部13と、復号手段63が復号したデータである平文データに対して指定された計算処理例えば、通信データ量の統計計算を行う平文データ計算手段64例えば、計算部19と、他のコアから指定された暗号鍵を用いてデータを暗号化する暗号化手段65例えば、暗号化部14を備えている。他コアアクセス可能記憶手段61は、他のコアから受信した暗号化データを記憶する暗号化データ記憶手段66例えば、暗号化データ保持部11と、平文データ計算手段64による計算結果を記憶する結果データ記憶手段67例えば、結果データ保持部12と、他のコアから指定された暗号鍵を記憶する暗号鍵記憶手段68例えば、第2の暗号鍵保持部20とを含む。自コア内アクセス可能記憶手段62は、平文データを記憶する平文データ記憶手段69例えば、平文データ保持部15と、受信した暗号化データを復号する復号鍵を記憶する復号鍵記憶手段70例えば、暗号鍵保持部16と、復号手段63が復号した平文データを記憶する平文結果データ記憶手段71例えば、平文結果データ保持部18とを含む。復号手段63は、他のコアから受信した暗号化データを復号鍵を用いて復号した平文データを作成し、その平文データを平文データ記憶手段69に記憶させる。平文データ計算手段64は、平文データ記憶手段69に記憶された平文データに対して指定された計算処理を行い、その計算処理による計算結果を平文結果データ記憶手段71に記憶させる。暗号化手段65は、暗号鍵記憶手段68に記憶された暗号鍵を用いて平文結果データ記憶手段71に記憶された計算結果を暗号化し、暗号化した計算結果を結果データ記憶手段67に記憶させる。そのような構成であっても、セキュアに計算処理を実行できる。また、暗号化手段65は、平文結果データ記憶手段71に記憶された計算結果を削除してもよい。また、平文データ計算手段84平文データ計算手段64は、平文データ記憶手段87平文データ記憶手段69に記憶された平文データを削除してもよい。また、他コアアクセス可能記憶手段81他コアアクセス可能記憶手段61は、一のコア80一のコア60におけるキャッシュであり、自コア内アクセス可能記憶手段82自コア内アクセス可能記憶手段62は、一のコア80一のコア60におけるローカルメモリであってもよい。また、他コアアクセス可能記憶手段81他コアアクセス可能記憶手段61は、一のコア80一のコア60におけるキャッシュであり、自コア内アクセス可能記憶手段82自コア内アクセス可能記憶手段62は、キャッシュにおいて他のコア80他のコア60におけるキャッシュとの一貫性制御が停止された領域であってもよい。