(57)【要約】【課題】処理対象データと処理プログラムを取得し、処理対象データに対して処理プログラムを実行する場合において、仮想計算機を利用し、当該処理の実行単位で処理対象データの暗号化処理と復号処理を制御できる情報処理装置を提供する。【解決手段】情報処理装置の仮想計算機の鍵対生成手段は、秘密鍵Ａと公開鍵Ａを生成し、公開鍵出力手段は、公開鍵Ａを出力し、処理対象データ取得手段は、公開鍵Ａで暗号化された処理対象データを外部から取得し、復号手段は、処理対象データを秘密鍵Ａで復号し、処理プログラム取得手段は、処理プログラムを外部から取得し、実行手段は、復号された処理対象データを対象に処理プログラムを実行し、公開鍵取得手段は、公開鍵Ｂを外部から取得し、暗号化手段は、処理プログラムの処理結果として生成された処理結果データを、公開鍵Ｂで暗号化し、出力手段は、暗号化された処理結果データを外部へ出力する。【選択図】図２
2013058006.tif 000002
【特許請求の範囲】
【請求項１】
本情報処理装置の仮想計算機内でのみ利用される仮想計算機秘密鍵と該仮想計算機秘密鍵に対応する仮想計算機公開鍵とを有する非対称鍵暗号の鍵対を生成する鍵対生成手段と、
前記鍵対生成手段によって生成された鍵対のうち仮想計算機公開鍵を出力する公開鍵出力手段と、
前記仮想計算機公開鍵で暗号化された処理対象データを外部から取得する処理対象データ取得手段と、
前記処理対象データ取得手段で取得された前記仮想計算機公開鍵で暗号化された処理対象データを前記仮想計算機秘密鍵で復号する復号手段と、
処理プログラムを外部から取得する処理プログラム取得手段と、
前記復号手段によって復号された処理対象データを対象にして、前記処理プログラム取得手段によって取得された処理プログラムを実行する実行手段と、
処理依頼者公開鍵を外部から取得する公開鍵取得手段と、
前記実行手段による処理プログラムの処理結果として生成された処理結果データを、前記公開鍵取得手段によって取得された依頼者公開鍵で暗号化する暗号化手段と、
前記暗号化手段によって暗号化された処理結果データを外部へ出力する処理結果データ出力手段
を有する仮想計算機
を具備することを特徴とする情報処理装置。
【請求項２】
処理依頼者が用いている計算機である処理依頼者計算機から前記仮想計算機公開鍵で暗号化された処理対象データと前記依頼者公開鍵を取得する処理対象データ取得手段と、
処理プログラム提供手段から処理プログラムを取得する処理プログラム取得手段と、
前記仮想計算機の前記公開鍵出力手段により出力された仮想計算機公開鍵と、仮想計算機の前記処理結果データ出力手段により出力された前記依頼者公開鍵で暗号化された処理結果データを前記処理依頼者計算機に送信する処理結果データ送信手段と、
前記仮想計算機の起動、削除、該削除の場合に該仮想計算機が用いたデータを消去する制御を行う仮想計算機制御手段
をさらに具備することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
計算機を、
該計算機の仮想計算機内でのみ利用される仮想計算機秘密鍵と該仮想計算機秘密鍵に対応する仮想計算機公開鍵とを有する非対称鍵暗号の鍵対を生成する鍵対生成手段と、
前記鍵対生成手段によって生成された鍵対のうち仮想計算機公開鍵を出力する公開鍵出力手段と、
前記仮想計算機公開鍵で暗号化された処理対象データを外部から取得する処理対象データ取得手段と、
前記処理対象データ取得手段で取得された前記仮想計算機公開鍵で暗号化された処理対象データを前記仮想計算機秘密鍵で復号する復号手段と、
処理プログラムを外部から取得する処理プログラム取得手段と、
前記復号手段によって復号された処理対象データを対象にして、前記処理プログラム取得手段によって取得された処理プログラムを実行する実行手段と、
処理依頼者公開鍵を外部から取得する公開鍵取得手段と、
前記実行手段による処理プログラムの処理結果として生成された処理結果データを、前記公開鍵取得手段によって取得された依頼者公開鍵で暗号化する暗号化手段と、
前記暗号化手段によって暗号化された処理結果データを外部へ出力する処理結果データ出力手段
を有する仮想計算機
として機能させるための情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理プログラムに関する。
【背景技術】
【０００２】
情報処理を依頼する場合に、情報処理が依頼される処理側の正当性を確認する技術がある。
これに関連する技術として、例えば、特許文献１には、サーバシステムがクライアント装置からの送信要求に適切に対応することが可能な情報処理システムを提供することを課題とし、情報処理システムは、クライアント装置とサーバシステムとを備え、クライアント装置は、機密情報に基づいて処理を行うための機密プロセスとしてアプリケーションプログラムを実行し、クライアント装置は、実行中のアプリケーションプログラムにより、機密情報の送信を要求する送信要求が生成された場合、当該送信要求と、当該送信要求を生成したプロセスが機密プロセスであることを表す機密プロセス情報と、をサーバシステムへ送信し、サーバシステムは、クライアント装置から、送信要求及び機密プロセス情報を受信した場合、受信した送信要求に応じて、記憶されている機密情報をクライアント装置へ送信することが開示されている。
【０００３】
また、例えば、特許文献２には、情報処理要求元の情報処理装置のセキュリティ条件を反映した情報処理要求を他の情報処理装置に対して行うことを課題とし、データサーバがデータサーバからのデータに対する処理要求を取得すると、処理要求に基づいて、データに対するセキュリティ要求を作成し、作成されたセキュリティ要求をデータサーバに送信し、次に、データサーバは、セキュリティ要求に基づいて、データサーバが作成するセキュリティ設定情報を取得し、そして、取得するセキュリティ設定情報と、前記セキュリティ要求とに基づいてデータに対する処理要求の可否を判断し、そして、判断された判断結果を伴って処理要求に対する可否と、データと、データのセキュリティ指示情報とをデータサーバに送信することが開示されている。
【０００４】
また、例えば、特許文献３には、サーバとクライアントが接続されるネットワークシステムにおける第三者への情報漏洩を防ぐことを課題とし、第三者がサービス利用者であるクライアントは、ＳｅｃｕｒｉｔｙＴａｇを付与したサービス検索要求を送信せず、要求を受信したサーバはＳｅｃｕｒｉｔｙＴａｇが無い要求は破棄するため、第三者のクライアントへサービス検索要求に対する応答が行われないことにより、第三者のクライアントに対してサービス情報の漏洩を防ぎ、サービス利用に制限をかけられることが開示されている。
【０００５】
また、例えば、特許文献４には、管理装置を用いて端末間で処理されるデータを管理する管理システムにおいて、端末間及び管理装置において大きな処理負担を与えず、且つ端末間においては安全性の確認されたデータのやり取りを行うことができる管理システムを提供することを課題とし、管理システムは、他の端末装置からのファイル情報の取得を要求して管理装置に対して処理依頼のための依頼信号を発行する処理依頼端末、ファイル情報を保持している依頼先端末、及び処理依頼端末と依頼先端末と間でのやり取りされるファイル情報の管理を行う管理装置がネットワークバスを介して相互に接続されて構成されることが開示されている。
【０００６】
また、例えば、特許文献５には、メッセージの信託システムに関し、ネットワーク経由で送受信される機密度の高いメッセージについてのセキュリティ業務の信頼性を向上させることを目的とし、身分証明ＩＤ発行サーバ及び身分証明ＩＤ管理サーバは、ユーザからの要求に応じて当該ユーザ固有の身分証明ＩＤＰを発行及び交付し、ユーザは、身分証明ＩＤＰを用いてセキュリティ業務管理サーバにメッセージについての信託条件を提示し、これに基づいてセキュリティ業務管理サーバは、メッセージの保管，公開，破棄などのセキュリティ業務を行い、ネットワークを介したデータ通信では、公開鍵暗号方式によって身分証明ＩＤＰやメッセージの機密保護を図り、また、信託するメッセージには、作成者がユーザであることを示す証拠情報や、原本であることを証明する証拠情報を付加することが開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１０−１０８２３７号公報
【特許文献２】特開２００８−２５７３４０号公報
【特許文献３】特開２００５−１５０８２９号公報
【特許文献４】特開２００４−１５７９９３号公報
【特許文献５】特開平０８−１８５３７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、処理対象データと処理プログラムを取得し、処理対象データに対して処理プログラムを実行する場合において、仮想計算機を利用し、当該処理の実行単位で処理対象データの暗号化処理と復号処理を制御できる情報処理装置及び情報処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００９】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項１の発明は、本情報処理装置の仮想計算機内でのみ利用される仮想計算機秘密鍵と該仮想計算機秘密鍵に対応する仮想計算機公開鍵とを有する非対称鍵暗号の鍵対を生成する鍵対生成手段と、前記鍵対生成手段によって生成された鍵対のうち仮想計算機公開鍵を出力する公開鍵出力手段と、前記仮想計算機公開鍵で暗号化された処理対象データを外部から取得する処理対象データ取得手段と、前記処理対象データ取得手段で取得された前記仮想計算機公開鍵で暗号化された処理対象データを前記仮想計算機秘密鍵で復号する復号手段と、処理プログラムを外部から取得する処理プログラム取得手段と、前記復号手段によって復号された処理対象データを対象にして、前記処理プログラム取得手段によって取得された処理プログラムを実行する実行手段と、処理依頼者公開鍵を外部から取得する公開鍵取得手段と、前記実行手段による処理プログラムの処理結果として生成された処理結果データを、前記公開鍵取得手段によって取得された依頼者公開鍵で暗号化する暗号化手段と、前記暗号化手段によって暗号化された処理結果データを外部へ出力する処理結果データ出力手段を有する仮想計算機を具備することを特徴とする情報処理装置である。
【００１０】
請求項２の発明は、処理依頼者が用いている計算機である処理依頼者計算機から前記仮想計算機公開鍵で暗号化された処理対象データと前記依頼者公開鍵を取得する処理対象データ取得手段と、処理プログラム提供手段から処理プログラムを取得する処理プログラム取得手段と、前記仮想計算機の前記公開鍵出力手段により出力された仮想計算機公開鍵と、仮想計算機の前記処理結果データ出力手段により出力された前記依頼者公開鍵で暗号化された処理結果データを前記処理依頼者計算機に送信する処理結果データ送信手段と、前記仮想計算機の起動、削除、該削除の場合に該仮想計算機が用いたデータを消去する制御を行う仮想計算機制御手段をさらに具備することを特徴とする請求項１に記載の情報処理装置である。
【００１１】
請求項３の発明は、計算機を、該計算機の仮想計算機内でのみ利用される仮想計算機秘密鍵と該仮想計算機秘密鍵に対応する仮想計算機公開鍵とを有する非対称鍵暗号の鍵対を生成する鍵対生成手段と、前記鍵対生成手段によって生成された鍵対のうち仮想計算機公開鍵を出力する公開鍵出力手段と、前記仮想計算機公開鍵で暗号化された処理対象データを外部から取得する処理対象データ取得手段と、前記処理対象データ取得手段で取得された前記仮想計算機公開鍵で暗号化された処理対象データを前記仮想計算機秘密鍵で復号する復号手段と、処理プログラムを外部から取得する処理プログラム取得手段と、前記復号手段によって復号された処理対象データを対象にして、前記処理プログラム取得手段によって取得された処理プログラムを実行する実行手段と、処理依頼者公開鍵を外部から取得する公開鍵取得手段と、前記実行手段による処理プログラムの処理結果として生成された処理結果データを、前記公開鍵取得手段によって取得された依頼者公開鍵で暗号化する暗号化手段と、前記暗号化手段によって暗号化された処理結果データを外部へ出力する処理結果データ出力手段を有する仮想計算機として機能させるための情報処理プログラムである。
【発明の効果】
【００１２】
請求項１の情報処理装置によれば、処理対象データと処理プログラムを取得し、処理対象データに対して処理プログラムを実行する場合において、処理対象データが処理プログラムによる処理以外の処理には使用されないようにすることができる。
【００１３】
請求項２の情報処理装置によれば、仮想計算機を削除する場合にその仮想計算機が用いたデータを消去することができる。
【００１４】
請求項３の情報処理プログラムによれば、処理対象データと処理プログラムを取得し、処理対象データに対して処理プログラムを実行する場合において、処理対象データが処理プログラムによる処理以外の処理には使用されないようにすることができる。
【図面の簡単な説明】
【００１５】
【図１】本実施の形態の構成例についての概念的なモジュール構成図である。
【図２】仮想計算機モジュール内の構成例についての概念的なモジュール構成図である。
【図３】本実施の形態による処理例を示すフローチャートである。
【図４】本実施の形態による処理例を示すフローチャートである。
【図５】計算機内の構成例についての概念的なモジュール構成図である。
【図６】本実施の形態による処理例を示すフローチャートである。
【図７】本実施の形態による処理例を示すフローチャートである。
【図８】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００１６】
以下、図面に基づき本発明を実現するにあたっての好適な一実施の形態の例を説明する。
図１は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア（コンピュータ・プログラム、以下、単にプログラムともいう）、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム（計算機にそれぞれの手順を実行させるためのプログラム、計算機をそれぞれの手段として機能させるためのプログラム、計算機にそれぞれの機能を実現させるためのプログラム）、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、「保存する」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、１モジュールを１プログラムで構成してもよいし、複数モジュールを１プログラムで構成してもよく、逆に１モジュールを複数プログラムで構成してもよい。また、複数モジュールは１つの計算機によって実行されてもよいし、分散又は並列環境における計算機によって１モジュールが複数の計算機で実行されてもよい。なお、１つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続（データの授受、指示、データ間の参照関係等）の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じて定まることの意を含めて用いる。
また、システム又は装置とは、複数の計算機、ハードウェア、装置等がネットワーク（一対一対応の通信接続を含む）等の通信手段で接続されて構成されるほか、１つの計算機、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」（社会システム）にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、外部記憶媒体、通信回線を介した記憶装置、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）内のレジスタ等を含んでいてもよい。
【００１７】
本実施の形態である情報処理装置（計算機１１２）は、機密性を有する処理対象データと処理プログラムを取得し、処理対象データに対して処理プログラムを実行する（以下、処理代行ともいう）ものであって、図１の例に示すように、計算機１１２は、通信回線１５０を介して計算機１６０、計算機１７０と接続されている。計算機１１２、計算機１６０、計算機１７０は、物理的な実体を有している計算機であるが、１つの機器で構成されていてもよいし、複数の機器によって構成されていてもよい。通信回線１５０は、インターネット等であってもよい。
【００１８】
例えば、インターネットを経由してデータ処理を有償又は無償で実施するサービスが普及しており、一般的にウェブ・サービスなどと呼ばれる。本実施の形態は、例えばウェブ・サービスで用いられる。
ウェブ・サービスにおいて、処理を依頼する側は、処理に必要な計算機やプログラムを用意すること無しに、処理を行いたいデータをウェブ・サービスに送信し、処理の結果となるデータを受信するのみで所望の処理結果が得られる。ウェブ・サービスにおけるデータのやり取りには、ＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）と呼ばれる技術などが用いられ、さらにデータを第三者から秘匿する目的では、ＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔ  Ｌａｙｅｒ）と呼ばれる技術を用いることが一般的に行われている。さらに、特許文献１には、データを用いるプロセス（アプリケーションプログラムがメモリ上で実行されている各々の実体）を特定し、クライアントは、そのプロセスに特有の情報とともにサーバに対してデータの送信要求を行うとともに、要求されたサーバはプロセスに特有の情報に基づいて機密性を持つデータの送信の可否判断を行う技術が開示されている。
ウェブ・サービスの形態で提供されるデータ処理はさまざまであり、多くの提供主体により提供される。ここではデータ処理を提供しようとする提供主体を、処理提供者と呼ぶ。また、自らが持つデータに対するデータ処理を依頼する主体を、処理依頼者と呼ぶ。
例えば企業活動において、業務内において必要なデータ処理はさまざまであり、ウェブ・サービスを利用してそれらのデータ処理を実施しようとする場合、多数の処理提供者による処理が必要となる。
【００１９】
計算機１６０は、通信回線１５０を介して、計算機１１２の処理対象データ取得モジュール１０２、処理結果データ送信モジュール１０４と接続されている。計算機１６０は、処理依頼者が使用する計算機である。計算機１１２に対して、処理代行を要求して、その処理対象となるデータ（以下、処理対象データともいう）を送信する。そして、処理結果であるデータ（以下、処理結果データともいう）を受信する。
計算機１７０は、通信回線１５０を介して、計算機１１２の処理プログラム取得モジュール１０６と接続されている。計算機１７０は、処理代行用の処理プログラムを提供する計算機である。計算機１１２に対して、処理代行用の処理プログラムを送信する。処理プログラムの提供者（以下、処理提供者ともいう）が使用する計算機である。
計算機１１２は、処理代行の処理を行う計算機である。計算機１１２は、計算機１６０から処理代行の要求を受け取り、処理対象データを受け取る。そして、その処理対象データを処理する処理プログラムを計算機１７０から受け取り（予め計算機１７０から処理プログラムを受け取っており蓄積していてもよい）、処理対象データを対象にして、処理プログラムを実行する。計算機１１２の所有者は、処理提供者であってもよいし、他の者であってもよい。
【００２０】
計算機１１２は、処理対象データ取得モジュール１０２、処理結果データ送信モジュール１０４、処理プログラム取得モジュール１０６、仮想計算機制御モジュール１０８、仮想計算機モジュール１１０を有している。各モジュールは、計算機１１２の上で実行されるプログラムとして実施される。
処理対象データ取得モジュール１０２は、仮想計算機制御モジュール１０８と接続されており、通信回線１５０を介して、計算機１６０と接続されている。
処理結果データ送信モジュール１０４は、仮想計算機制御モジュール１０８と接続されており、通信回線１５０を介して、計算機１６０と接続されている。
処理プログラム取得モジュール１０６は、仮想計算機制御モジュール１０８と接続されており、通信回線１５０を介して、計算機１７０と接続されている。
【００２１】
処理対象データ取得モジュール１０２、処理結果データ送信モジュール１０４、処理プログラム取得モジュール１０６の各プログラムは、ＨＴＴＰサービス・プログラムを用いることが好ましい。この場合、データ、処理プログラム等の取得、送信は、ＨＴＴＰプロトコルによるリクエストとそれに対する応答として実現される。すなわち、処理対象データの取得については、処理依頼者が使用する計算機１６０から処理対象データをＨＴＴＰプロトコルにより送信し、処理代行の処理を行う計算機１１２が受信することにより実現される。処理対象データの取得の取得手順の詳細は、後述する。また、処理結果データの送信については、処理代行の処理を行う計算機１１２から処理結果データをＨＴＴＰプロトコルにより送信し、処理依頼者が使用する計算機１６０が受信することにより実現される。処理プログラムの取得については、処理提供者が使用する計算機１７０から処理プログラムをＨＴＴＰプロトコルにより送信し、処理代行の処理を行う計算機１１２が受信することにより実現される。取得した処理プログラムは繰り返し利用されることが想定されるので、処理代行の処理を行う計算機１１２内の記憶装置に保存する。
【００２２】
仮想計算機制御モジュール１０８は、処理対象データ取得モジュール１０２、処理結果データ送信モジュール１０４、処理プログラム取得モジュール１０６、仮想計算機モジュール１１０と接続されている。仮想計算機制御モジュール１０８は、仮想計算機モジュール１１０の起動、削除（仮想計算機モジュール１１０の処理終了に伴う削除）、その削除の場合に仮想計算機モジュール１１０が用いたデータを消去する制御を行う。この他に、データ、処理プログラムの入出力、仮想計算機モジュール１１０の状態データの管理を行う。具体的な処理の手順は後述する。なお、仮想計算機とは、計算機の動作をエミュレートするプログラムである。また、エミュレートされた仮想の計算機そのものも仮想計算機という。仮想計算機によって、１つの計算機上で複数の計算機やＯＳを動作させたり、別のアーキテクチャである計算機用のプログラムを動作させたりすることができる。つまり、物理的な計算機において、１つ以上の仮想計算機を動作させ、各々の仮想計算機の上で、例えばデータの加工を行うような計算処理を実施させることが可能である。仮想計算機においては、仮想計算機内の状態すべてを一つ又は複数のファイルにより保存することができる。このファイル群をここでは状態データと呼ぶ。同じ内容の状態データを用いて仮想計算機を動作させることにより、同じ状態から仮想計算機の動作を始めたりすること、また、状態データを削除することにより、仮想計算機内に含まれていたすべての情報を削除したりすること等ができる。
仮想計算機制御モジュール１０８は、仮想計算機モジュール１１０の初期化から削除までの間に、仮想計算機モジュール１１０に対しては、処理対象データと処理プログラムの入力、仮想計算機公開鍵と処理結果データの出力を除いて、入出力が無いように制御する。又は、仮想計算機モジュール１１０は、処理対象データと処理プログラムの入力、仮想計算機公開鍵と処理結果データの出力を除いて、入出力が無いように構成している。
【００２３】
仮想計算機モジュール１１０は、仮想計算機制御モジュール１０８と接続されている。仮想計算機モジュール１１０内のモジュール構成例、処理内容については、次に詳述する。
図２は、仮想計算機モジュール１１０内の構成例についての概念的なモジュール構成図である。
仮想計算機モジュール１１０は、仮想計算機鍵対生成モジュール２０２、仮想計算機公開鍵出力モジュール２０４、暗号化処理対象データ取得モジュール２０６、処理対象データ復号モジュール２０８、処理プログラム取得モジュール２１０、処理プログラム実行モジュール２１２、処理結果データ暗号化モジュール２１４、暗号化処理結果データ出力モジュール２１６、処理依頼者公開鍵取得モジュール２１８を有している。各モジュールは、仮想計算機モジュール１１０内で実行されるプログラムとして実施される。なお、仮想計算機モジュール１１０は、仮想計算機制御モジュール１０８によって起動（生成）されるものであり、１つであってもよいし、複数あってもよい。複数ある場合は、各仮想計算機モジュール１１０は、独立して並列的に実施され、相互に干渉しない。もちろんのことながら、仮想計算機モジュール１１０が用いるデータの入力、仮想計算機モジュール１１０によるデータ出力、仮想計算機モジュール１１０で実施される処理プログラムの入力は、仮想計算機制御モジュール１０８のみが制御し、仮想計算機モジュール１１０内で用いたデータ等について、仮想計算機モジュール１１０の外部からアクセスすることはできない。
なお、仮想計算機モジュール１１０が内部に保持するデータを外部から秘匿する技術は広く知られており、それらの技術を本実施の形態でも用いることが好ましい。例えば、仮想計算機モジュール１１０の状態を保持する状態データは仮想計算機モジュール１１０が保持する鍵（後述する非対称鍵暗号の鍵であってもよいし、他の暗号化手法に用いられる鍵であってもよい）により暗号化する技術が知られている。
【００２４】
仮想計算機鍵対生成モジュール２０２は、仮想計算機公開鍵出力モジュール２０４、処理対象データ復号モジュール２０８と接続されている。仮想計算機鍵対生成モジュール２０２は、計算機１１２の仮想計算機モジュール１１０内でのみ利用される仮想計算機秘密鍵とその仮想計算機秘密鍵に対応する仮想計算機公開鍵とを有する非対称鍵暗号の鍵対を生成する。
仮想計算機公開鍵出力モジュール２０４は、仮想計算機鍵対生成モジュール２０２と接続されている。仮想計算機公開鍵出力モジュール２０４は、仮想計算機鍵対生成モジュール２０２によって生成された鍵対のうち仮想計算機公開鍵を出力する。
仮想計算機鍵対生成モジュール２０２と仮想計算機公開鍵出力モジュール２０４の処理について説明する。仮想計算機鍵対生成モジュール２０２は、非対称鍵暗号に用いることができる鍵対、すなわち２つの対になった数値を生成する。２つの数値のうち一方は、公開鍵として仮想計算機公開鍵出力モジュール２０４により外部、すなわち本実施の形態では仮想計算機制御モジュール１０８へ出力する。もう一方の数値は秘密鍵として、仮想計算機モジュール１１０内の秘密鍵記憶モジュール（図示せず）に保持する。
【００２５】
暗号化処理対象データ取得モジュール２０６は、処理対象データ復号モジュール２０８と接続されている。暗号化処理対象データ取得モジュール２０６は、仮想計算機公開鍵で暗号化された処理対象データを外部から取得する。
処理対象データ復号モジュール２０８は、仮想計算機鍵対生成モジュール２０２、暗号化処理対象データ取得モジュール２０６、処理プログラム実行モジュール２１２と接続されている。処理対象データ復号モジュール２０８は、暗号化処理対象データ取得モジュール２０６で取得された仮想計算機公開鍵で暗号化された処理対象データを仮想計算機秘密鍵で復号する。
暗号化処理対象データ取得モジュール２０６と処理対象データ復号モジュール２０８の処理について説明する。暗号化処理対象データ取得モジュール２０６は、仮想計算機モジュール１１０の外部、すなわち仮想計算機制御モジュール１０８から処理対象データを取得する。取得した暗号化処理対象データは、前述の仮想計算機公開鍵で暗号化されており、処理対象データ復号モジュール２０８は仮想計算機モジュール１１０内の秘密鍵記憶モジュールに保持している仮想計算機秘密鍵により復号する。
【００２６】
処理プログラム取得モジュール２１０は、処理プログラム実行モジュール２１２と接続されている。処理プログラム取得モジュール２１０は、処理プログラムを外部から取得する。
処理プログラム実行モジュール２１２は、処理対象データ復号モジュール２０８、処理プログラム取得モジュール２１０、処理結果データ暗号化モジュール２１４と接続されている。処理プログラム実行モジュール２１２は、処理対象データ復号モジュール２０８によって復号された処理対象データを対象にして、処理プログラム取得モジュール２１０によって取得された処理プログラムを実行する。
処理プログラム取得モジュール２１０と処理プログラム実行モジュール２１２の処理について説明する。処理プログラム取得モジュール２１０は、仮想計算機モジュール１１０の外部、すなわち仮想計算機制御モジュール１０８から処理プログラムを取得する。処理プログラム実行モジュール２１２は、前述の復号された処理対象データを対象に、処理プログラムを実行し、処理結果データを得る。
【００２７】
処理依頼者公開鍵取得モジュール２１８は、処理結果データ暗号化モジュール２１４と接続されている。処理依頼者公開鍵取得モジュール２１８は、処理依頼者公開鍵を外部から取得する。
処理結果データ暗号化モジュール２１４は、処理プログラム実行モジュール２１２、暗号化処理結果データ出力モジュール２１６、処理依頼者公開鍵取得モジュール２１８と接続されている。処理結果データ暗号化モジュール２１４は、処理プログラム実行モジュール２１２による処理プログラムの処理結果として生成された処理結果データを、処理依頼者公開鍵取得モジュール２１８によって取得された依頼者公開鍵で暗号化する。
暗号化処理結果データ出力モジュール２１６は、処理結果データ暗号化モジュール２１４と接続されている。暗号化処理結果データ出力モジュール２１６は、処理結果データ暗号化モジュール２１４によって暗号化された処理結果データを外部へ出力する。
処理依頼者公開鍵取得モジュール２１８と処理結果データ暗号化モジュール２１４と暗号化処理結果データ出力モジュール２１６の処理について説明する。処理依頼者公開鍵取得モジュール２１８は、仮想計算機モジュール１１０の外部、すなわち仮想計算機制御モジュール１０８から処理依頼者公開鍵を取得する。処理結果データ暗号化モジュール２１４は、処理依頼者公開鍵により処理結果データを暗号化する。暗号化処理結果データ出力モジュール２１６は、暗号化された処理結果データを仮想計算機モジュール１１０の外部、すなわち仮想計算機制御モジュール１０８へ出力する。
【００２８】
図３は、本実施の形態による処理例を示すフローチャートである。処理代行の処理を行う計算機１１２が一回の処理依頼に対する動作を行う手順例を説明する。なお、この処理代行は、サービスの形態で実現され、一つの処理依頼が行われるまでは待機しており、処理依頼に応じて、図３に例示する処理を実施する。処理依頼は複数回、サービスに対して行われることが可能であり、各々の処理依頼に対して同じ処理を繰り返す。また、異なる処理依頼に対する動作を並行して行うようにしてもよい。なお、この処理例では、予め一つ以上の処理プログラムを、処理プログラム取得モジュール１０６により処理提供者の計算機１７０から受信し、処理代行を実施する計算機１１２内の記憶モジュール（図示せず）に、処理種別と対応付けて保存してあるものとする。
【００２９】
待機状態として、計算機１１２は既に処理プログラムを取得しており、未だ処理要求は受信していないとする。
ステップＳ３０２では、処理対象データ取得モジュール１０２が、処理依頼者の計算機１６０から処理要求を受信する。
ステップＳ３０４では、受信が完了したら、仮想計算機制御モジュール１０８が、仮想計算機モジュール１１０を起動する。つまり、仮想計算機モジュール１１０を生成する。したがって、仮想計算機モジュール１１０は初期状態（仮想計算機モジュール１１０内には、処理プログラム、処理対象データがない状態）である。
ステップＳ３０６では、仮想計算機制御モジュール１０８が、仮想計算機モジュール１１０から仮想計算機公開鍵を取得する。前述のように、仮想計算機鍵対生成モジュール２０２が生成し、仮想計算機公開鍵出力モジュール２０４が出力した仮想計算機公開鍵である。
ステップＳ３０８では、処理対象データ取得モジュール１０２が、処理依頼者の計算機１６０へ仮想計算機公開鍵を送信する。
【００３０】
ステップＳ３１０では、処理対象データ取得モジュール１０２が、処理依頼者の計算機１６０から処理種別を受信する。処理種別とは、処理対象データに対して行う処理を示すインデックスであり、この処理種別に対応して処理プログラムが決定される。
ステップＳ３１２では、処理対象データ取得モジュール１０２が、処理依頼者の計算機１６０から処理対象データを受信する。
ステップＳ３１４では、処理対象データ取得モジュール１０２が、処理依頼者の計算機１６０から処理依頼者公開鍵を受信する。
ステップＳ３１０からステップＳ３１４までの処理は、この順番に限らず、いずれの処理を先に行ってもよい。
【００３１】
ステップＳ３１６では、仮想計算機制御モジュール１０８が、仮想計算機モジュール１１０へ処理種別に対応する処理プログラムを渡す。
ステップＳ３１８では、仮想計算機制御モジュール１０８が、仮想計算機モジュール１１０へ処理対象データを渡す。
ステップＳ３２０では、仮想計算機制御モジュール１０８が、仮想計算機モジュール１１０へ処理依頼者公開鍵を渡す。
ステップＳ３１６からステップＳ３２０までの処理は、この順番に限らず、いずれの処理を先に行ってもよい。
その後、仮想計算機モジュール１１０内での処理完了を待ち、以下の処理を行う。
【００３２】
ステップＳ３２２では、仮想計算機制御モジュール１０８が、仮想計算機モジュール１１０から処理結果データを取得する。
ステップＳ３２４では、処理結果データ送信モジュール１０４が、処理依頼者の計算機１６０へ処理結果データを送信する。
ステップＳ３２６では、仮想計算機制御モジュール１０８が、仮想計算機モジュール１１０を終了する。
ステップＳ３２８では、仮想計算機制御モジュール１０８が、仮想計算機モジュール１１０の状態データを破棄（具体的には削除）する。ここでの状態データとは、仮想計算機モジュール１１０が今回の処理で必要としたデータであり、ステップＳ３２２で仮想計算機モジュール１１０から出力された処理結果データ以外のデータである。また、ステップＳ３２４で処理結果データを送信した場合は、その処理結果データを含めてもよい。
【００３３】
したがって、処理対象データ取得モジュール１０２は、処理依頼者が用いている計算機１６０（処理依頼者計算機）から仮想計算機公開鍵で暗号化された処理対象データと依頼者公開鍵を取得する。
処理プログラム取得モジュール１０６は、計算機１７０から処理プログラムを取得する。
処理結果データ送信モジュール１０４は、仮想計算機モジュール１１０の仮想計算機公開鍵出力モジュール２０４により出力された仮想計算機公開鍵と、仮想計算機モジュール１１０の暗号化処理結果データ出力モジュール２１６により出力された依頼者公開鍵で暗号化された処理結果データを計算機１６０（処理依頼者計算機）に送信する。もちろんのことながら、仮想計算機制御モジュール１０８を介して仮想計算機モジュール１１０との入出力が行われる。
【００３４】
図４は、本実施の形態による処理例を示すフローチャートである。仮想計算機モジュール１１０が一回の処理依頼に対する動作を行う手順例を説明する。仮想計算機制御モジュール１０８によって仮想計算機モジュール１１０が起動された後の処理例である。
ステップＳ４０２では、仮想計算機鍵対生成モジュール２０２が、非対称鍵暗号に用いるための一対の鍵を生成する。
ステップＳ４０４では、仮想計算機公開鍵出力モジュール２０４が、鍵のうち一方を仮想計算機公開鍵として仮想計算機制御モジュール１０８へ出力する。鍵のもう一方は仮想計算機秘密鍵として仮想計算機モジュール１１０内の秘密鍵記憶モジュールに保持する。
【００３５】
ステップＳ４０６では、処理プログラム取得モジュール２１０が、仮想計算機制御モジュール１０８から処理プログラムを取得する。
ステップＳ４０８では、暗号化処理対象データ取得モジュール２０６が、仮想計算機制御モジュール１０８から暗号化された処理対象データを取得する。
ステップＳ４１０では、処理依頼者公開鍵取得モジュール２１８が、仮想計算機制御モジュール１０８から処理依頼者公開鍵を取得する。
ステップＳ４０６からステップＳ４１０までの処理は、この順番に限らず、いずれの処理を先に行ってもよい。
【００３６】
ステップＳ４１２では、処理対象データ復号モジュール２０８が、処理対象データを仮想計算機秘密鍵で復号する。
ステップＳ４１４では、処理プログラム実行モジュール２１２が、復号された処理対象データを対象として処理プログラムを実行する。
ステップＳ４１６では、処理結果データ暗号化モジュール２１４が、処理の結果として得られる処理結果データを、ステップＳ４１０で取得した処理依頼者公開鍵で暗号化する。
ステップＳ４１８では、暗号化処理結果データ出力モジュール２１６が、暗号化された処理結果データを仮想計算機制御モジュール１０８へ出力する。
【００３７】
図５は、処理依頼用の計算機１６０内の構成例についての概念的なモジュール構成図である。
計算機１６０は、処理要求出力モジュール５０２、仮想計算機公開鍵取得モジュール５０４、処理対象データ暗号化モジュール５０６、処理種別出力モジュール５０８、暗号化処理対象データ出力モジュール５１０、処理依頼者鍵生成モジュール５１２、処理依頼者公開鍵出力モジュール５１４、暗号化処理結果データ取得モジュール５１６、処理結果データ復号モジュール５１８を有している。各モジュールは、計算機１６０の上で実行されるプログラムとして実施される。
【００３８】
処理要求出力モジュール５０２は、計算機１１２に対して処理要求を出力する。
処理種別出力モジュール５０８は、計算機１１２に対して処理種別を出力する。
仮想計算機公開鍵取得モジュール５０４は、処理対象データ暗号化モジュール５０６と接続されている。仮想計算機公開鍵取得モジュール５０４は、計算機１１２から仮想計算機公開鍵を取得する。
処理対象データ暗号化モジュール５０６は、仮想計算機公開鍵取得モジュール５０４、暗号化処理対象データ出力モジュール５１０と接続されている。処理対象データ暗号化モジュール５０６は、仮想計算機公開鍵取得モジュール５０４によって取得された仮想計算機公開鍵を用いて、処理対象データを暗号化する。
暗号化処理対象データ出力モジュール５１０は、処理対象データ暗号化モジュール５０６と接続されている。暗号化処理対象データ出力モジュール５１０は、処理対象データ暗号化モジュール５０６で暗号化された処理対象データを計算機１１２へ出力する。
【００３９】
処理依頼者鍵生成モジュール５１２は、処理依頼者公開鍵出力モジュール５１４、処理結果データ復号モジュール５１８と接続されている。処理依頼者鍵生成モジュール５１２は、処理依頼用の計算機１６０内でのみ利用される処理依頼者秘密鍵とその処理依頼者秘密鍵に対応する処理依頼者公開鍵とを有する非対称鍵暗号の鍵対を生成する。
処理依頼者公開鍵出力モジュール５１４は、処理依頼者鍵生成モジュール５１２と接続されている。処理依頼者公開鍵出力モジュール５１４は、処理依頼者鍵生成モジュール５１２によって生成された鍵対のうち処理依頼者公開鍵を計算機１１２へ出力する。処理依頼者秘密鍵は、計算機１６０内の秘密鍵記憶モジュール（図示せず）に保持する。
暗号化処理結果データ取得モジュール５１６は、処理結果データ復号モジュール５１８と接続されている。暗号化処理結果データ取得モジュール５１６は、計算機１１２から処理結果データを受信する。
処理結果データ復号モジュール５１８は、処理依頼者鍵生成モジュール５１２、暗号化処理結果データ取得モジュール５１６と接続されている。処理結果データ復号モジュール５１８は、暗号化処理結果データ取得モジュール５１６によって取得された処理結果データを計算機１６０の秘密鍵記憶モジュール内の処理依頼者秘密鍵で復号する。
【００４０】
図６は、本実施の形態による処理例を示すフローチャートである。これは、計算機１６０の処理例を示すものである。
ステップＳ６０２では、処理要求出力モジュール５０２が、計算機１１２へ処理要求を出力する。
ステップＳ６０４では、仮想計算機公開鍵取得モジュール５０４が、計算機１１２から仮想計算機公開鍵を取得する。
ステップＳ６０６では、処理依頼者鍵生成モジュール５１２が、処理依頼者公開鍵と処理依頼者秘密鍵との鍵対を生成する。
ステップＳ６０８では、処理対象データ暗号化モジュール５０６が、仮想計算機公開鍵で処理対象データを暗号化する。
【００４１】
ステップＳ６１０では、処理種別出力モジュール５０８が、計算機１１２へ処理種別を出力する。
ステップＳ６１２では、暗号化処理対象データ出力モジュール５１０が、計算機１１２へ暗号化された処理対象データを出力する。
ステップＳ６１４では、処理依頼者公開鍵出力モジュール５１４が、計算機１１２へ依頼者公開鍵を出力する。
ステップＳ６１０からステップＳ６１４までの処理は、この順番に限らず、いずれの処理を先に行ってもよい。
【００４２】
ステップＳ６１６では、暗号化処理結果データ取得モジュール５１６が、計算機１１２から処理結果データを取得したか否かを判断し、取得した場合はステップＳ６１８へ進み、それ以外の場合（処理結果データを取得するまでの待機状態）はステップＳ６１６の処理を行う。
ステップＳ６１８では、処理結果データ復号モジュール５１８が、処理結果データを依頼者秘密鍵で復号する。
なお、図６に例示した処理を行うプログラムを予め作成しておき、計算機１１２が計算機１６０へ提供する構成としてもよい。
【００４３】
図７は、本実施の形態による処理例を示すフローチャートである。仮想計算機モジュール１１０、仮想計算機制御モジュール１０８、計算機１６０の３者間の関係を用いた処理例を示す。
ステップＳ７０２では、計算機１６０が、処理要求を計算機１１２に送信する。
ステップＳ７０４では、仮想計算機制御モジュール１０８が、仮想計算機モジュール１１０を起動する。
ステップＳ７０６では、仮想計算機モジュール１１０が、仮想計算機公開鍵と仮想計算機秘密鍵との鍵対を生成する。
ステップＳ７０８では、仮想計算機モジュール１１０が、仮想計算機公開鍵を仮想計算機制御モジュール１０８に出力する。
【００４４】
ステップＳ７１０では、仮想計算機制御モジュール１０８が、仮想計算機公開鍵を仮想計算機モジュール１１０から受信し、計算機１６０に送信する。
ステップＳ７１２では、計算機１６０が、処理依頼者公開鍵と処理依頼者秘密鍵とを生成する。
ステップＳ７１４では、計算機１６０が、処理種別、仮想計算機公開鍵で暗号化した暗号化処理対象データ、処理依頼者公開鍵を計算機１１２に送信する。
ステップＳ７１６では、仮想計算機制御モジュール１０８が、処理種別、暗号化処理対象データ及び処理依頼者公開鍵を、処理対象データ取得モジュール１０２を介して計算機１６０から受信し、そのうち暗号化処理対象データ及び処理依頼者公開鍵を仮想計算機モジュール１１０に送信する。
【００４５】
ステップＳ７１８では、仮想計算機モジュール１１０が、暗号化処理対象データ及び処理依頼者公開鍵を受信する。
ステップＳ７２０では、仮想計算機モジュール１１０が、暗号化処理対象データを仮想計算機秘密鍵で復号する。
ステップＳ７２２では、仮想計算機モジュール１１０が、仮想計算機制御モジュール１０８から処理プログラムを取得する。
ステップＳ７２４では、仮想計算機モジュール１１０が、取得した処理プログラムを用いて復号した処理対象データを処理する。
【００４６】
ステップＳ７２６では、仮想計算機モジュール１１０が、処理結果データを処理依頼者公開鍵で暗号化する。
ステップＳ７２８では、仮想計算機モジュール１１０が、仮想計算機制御モジュール１０８に暗号化処理結果データを送信する。
ステップＳ７３０では、仮想計算機制御モジュール１０８が、暗号化処理結果データを、処理結果データ送信モジュール１０４を介して計算機１６０に送信する。
【００４７】
ステップＳ７３２では、仮想計算機制御モジュール１０８が、仮想計算機モジュール１１０を終了する。
ステップＳ７３４では、計算機１６０が、受信した暗号化処理結果データを処理依頼者秘密鍵で復号する。
ステップＳ７３６では、仮想計算機制御モジュール１０８が、仮想計算機モジュール１１０の状態データを破棄する。
【００４８】
処理依頼者から送信される処理対象データは、仮想計算機公開鍵により暗号化されており、復号を可能とするための仮想計算機秘密鍵は仮想計算機モジュール１１０内に保持されるため、仮想計算機モジュール１１０の外部では復号することができない。また、処理結果データは仮想計算機モジュール１１０内で処理依頼者公開鍵により暗号化されるため、処理依頼者が保持する処理依頼者秘密鍵によってのみ復号可能である。仮想計算機モジュール１１０は、暗号化された処理対象データ、処理プログラム、処理依頼者公開鍵のみが入力され、仮想計算機公開鍵、暗号化された処理結果データのみが出力されるように構成されている。したがって、計算機１７０によって提供されている処理プログラムの機密性に関する動作が信頼できないような場合であっても、処理対象データに関する情報が秘匿されない状態で仮想計算機モジュール１１０の外部に出ることはない。また、仮想計算機モジュール１１０による処理の完了後に、仮想計算機モジュール１１０の内部状態を保持する状態データを、仮想計算機制御モジュール１０８が破棄するため、処理対象データに関する情報を利用されることはなくなる。
【００４９】
なお、本実施の形態としてのプログラムが実行される計算機（計算機１１２、計算機１６０、計算機１７０）のハードウェア構成は、図８に例示するように、一般的な計算機であり、具体的にはパーソナルコンピュータ、サーバとなり得るコンピュータ等である。つまり、具体例として、処理部（演算部）としてＣＰＵ８０１を用い、記憶装置としてＲＡＭ８０２、ＲＯＭ８０３、ＨＤ８０４を用いている。ＨＤ８０４として、例えばハードディスクを用いてもよい。処理対象データ取得モジュール１０２、処理結果データ送信モジュール１０４、処理プログラム取得モジュール１０６、仮想計算機制御モジュール１０８、仮想計算機モジュール１１０、仮想計算機鍵対生成モジュール２０２、仮想計算機公開鍵出力モジュール２０４、暗号化処理対象データ取得モジュール２０６、処理対象データ復号モジュール２０８、処理プログラム取得モジュール２１０、処理プログラム実行モジュール２１２、処理結果データ暗号化モジュール２１４、暗号化処理結果データ出力モジュール２１６、処理依頼者公開鍵取得モジュール２１８、処理要求出力モジュール５０２、仮想計算機公開鍵取得モジュール５０４、処理対象データ暗号化モジュール５０６、処理種別出力モジュール５０８、暗号化処理対象データ出力モジュール５１０、処理依頼者鍵生成モジュール５１２、処理依頼者公開鍵出力モジュール５１４、暗号化処理結果データ取得モジュール５１６、処理結果データ復号モジュール５１８等のプログラムを実行するＣＰＵ８０１と、そのプログラムやデータを記憶するＲＡＭ８０２と、本計算機を起動するためのプログラム等が格納されているＲＯＭ８０３と、補助記憶装置であるＨＤ８０４と、キーボード、マウス、タッチパネル等に対する利用者の操作に基づいてデータを受け付ける受付装置８０６と、ＣＲＴ、液晶ディスプレイ等の出力装置８０５と、ネットワークインタフェースカード等の通信ネットワークと接続するための通信回線インタフェース８０７、そして、それらをつないでデータのやり取りをするためのバス８０８により構成されている。これらの計算機が複数台互いにネットワークによって接続されていてもよい。
【００５０】
前述の実施の形態のうち、コンピュータ・プログラムによるものについては、本ハードウェア構成のシステムにソフトウェアであるコンピュータ・プログラムを読み込ませ、ソフトウェアとハードウェア資源とが協働して、前述の実施の形態が実現される。
なお、図８に示すハードウェア構成は、１つの構成例を示すものであり、本実施の形態は、図８に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア（例えばＡＳＩＣ等）で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続しているような形態でもよく、さらに図８に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、特に、パーソナルコンピュータの他、情報家電、複写機、ファックス、スキャナ、プリンタ、複合機（スキャナ、プリンタ、複写機、ファックス等のいずれか２つ以上の機能を有している画像処理装置）などに組み込まれていてもよい。
なお、各モジュールの処理内容として背景技術として説明した技術を採用してもよい。
【００５１】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録した計算機読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録した計算機読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録された計算機で読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク（ＤＶＤ）であって、ＤＶＤフォーラムで策定された規格である「ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ等」、ＤＶＤ＋ＲＷで策定された規格である「ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等」、コンパクトディスク（ＣＤ）であって、読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）等、ブルーレイ・ディスク（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ（登録商標））、光磁気ディスク（ＭＯ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去及び書換可能な読出し専用メモリ（ＥＥＰＲＯＭ（登録商標））、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して
記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。
【符号の説明】
【００５２】
１０２…処理対象データ取得モジュール
１０４…処理結果データ送信モジュール
１０６…処理プログラム取得モジュール
１０８…仮想計算機制御モジュール
１１０…仮想計算機モジュール
１１２…計算機
１５０…通信回線
１６０…計算機
１７０…計算機
２０２…仮想計算機鍵対生成モジュール
２０４…仮想計算機公開鍵出力モジュール
２０６…暗号化処理対象データ取得モジュール
２０８…処理対象データ復号モジュール
２１０…処理プログラム取得モジュール
２１２…処理プログラム実行モジュール
２１４…処理結果データ暗号化モジュール
２１６…暗号化処理結果データ出力モジュール
２１８…処理依頼者公開鍵取得モジュール
５０２…処理要求出力モジュール
５０４…仮想計算機公開鍵取得モジュール
５０６…処理対象データ暗号化モジュール
５０８…処理種別出力モジュール
５１０…暗号化処理対象データ出力モジュール
５１２…処理依頼者鍵生成モジュール
５１４…処理依頼者公開鍵出力モジュール
５１６…暗号化処理結果データ取得モジュール
５１８…処理結果データ復号モジュール
【図１】
2013058006.tif 000003
【図２】
2013058006.tif 000004
【図３】
2013058006.tif 000005
【図４】
2013058006.tif 000006
【図５】
2013058006.tif 000007
【図６】
2013058006.tif 000008
【図７】
2013058006.tif 000009
【図８】
2013058006.tif 000010