(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-01-06
(45)【発行日】2023-01-17
(54)【発明の名称】情報提供システム、情報提供方法及び情報提供プログラム
(51)【国際特許分類】
G06F 21/10 20130101AFI20230110BHJP
G06F 21/44 20130101ALI20230110BHJP
G06F 21/62 20130101ALI20230110BHJP
【FI】
G06F21/10
G06F21/44
G06F21/62 309
(21)【出願番号】P 2021054441
(22)【出願日】2021-03-27
【審査請求日】2022-04-25
【早期審査対象出願】
(73)【特許権者】
【識別番号】521131030
【氏名又は名称】セーラ・ネットワークス株式会社
(74)【代理人】
【識別番号】100207066
【氏名又は名称】米山 毅
(74)【代理人】
【識別番号】110002343
【氏名又は名称】弁理士法人 東和国際特許事務所
(72)【発明者】
【氏名】小塚 真啓
(72)【発明者】
【氏名】相澤 亮
【審査官】小林 秀和
(56)【参考文献】
【文献】特開2005-010829(JP,A)
【文献】特開2014-010598(JP,A)
【文献】特開2019-047334(JP,A)
【文献】特開2012-234362(JP,A)
【文献】特開2003-044297(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/10
G06F 21/44
G06F 21/62
(57)【特許請求の範囲】
【請求項1】
情報を記憶し、演算処理装置からの要求に応じて情報を提供する情報提供装置と、
前記情報提供装置から提供された
提供情報に基づいて所定の演算処理プログラムにより演算処理を行う演算処理装置と、
を少なくとも含む情報提供システムであって、
前記情報提供装置が、前記演算処理装置から要求された要求データを使用するための情報使用条件及び検証用データを含む付加情報を生成し、前記提供情報に、前記要求データに加え、
前記付加情報
を付加し、
前記演算処理装置が、前記演算処理プログラムに前記検証用データを用いた検証用演算を実行させた場合に、前記検証用演算が前記情報使用条件を満たすか否かを検証するプログラム検証部を備え、前記プログラム検証部により前記演算処理プログラムが前記付加情報に含まれる前記情報使用条件を満たす適正なプログラムとして認証された場合に限り、前記演算処理プログラムに前記要求データが提供され、
前記演算処理装置では、
提供された前記要求データを用いて前記演算処理プログラムによる演算処理が行われることを特徴とする情報提供システム。
【請求項2】
前記付加情報には
さらに前記検証
用演算に用いられる検証用演算結果データが含まれていることを特徴とする請求項
1に記載の情報提供システム。
【請求項3】
前記提供情報の中、少なくとも前記要求データ、前記検証用データ及び前記検証用演算結果データは
前記情報提供装置において暗号化されて前記演算処理装置に送信され、
前記演算処理装置において前記プログラム検証部は暗号化された前記提供情報を復
号することを特徴とする請求項
2に記載の情報提供システム。
【請求項4】
前記プログラム検証部は、前記検証用データを用いた前記演算処理プログラムによる演算処理の結果が、前記検証用演算結果データと一致した否かにより、前記演算処理プログラムを検証することを特徴とする請求項
2又は3に記載の情報提供システム。
【請求項5】
前記付加情報には少なくとも前記演算処理装置において前記演算処理プログラムに許容される演算処理の範囲を規定した権限情報が含まれていることを特徴とする請求項
1~4のいずれか1項に記載の情報提供システム。
【請求項6】
前記プログラム検証部
は、前記演算処理装置において前記演算処理プログラムが前記検証用データを用いた
前記検証用演算を実行した場合に、当該
検証用演算が前記権限情報に規定された演算処理の範囲内であるか否かにより、前記演算処理プログラムが検証されることを特徴とする請求項5に記載の情報提供システム。
【請求項7】
前記演算処理装置では、前記付加情報によって規定された前記情報使用条件の範囲内で、前記演算処理プログラムによる演算処理が行われることを特徴とする請求項1~6のいずれか1項に記載の情報提供システム。
【請求項8】
情報提供装置に対する要求に応じて提供された提供情報に基づいて演算処理装置において所定の演算処理プログラムにより演算処理を行う情報提供方法であって、
前記情報提供装置に対して
前記提供情報を要求する
要求ステップと、
前記情報提供装置が、前記演算処理装置から要求された要求データを使用するための情報使用条件及び検証用データを含む付加情報を生成し、前記提供情報に、前記要求データに加え、
前記付加情報
を付加する付加情報ステップと、
前記演算処理装置が、前記演算処理プログラムに前記検証用データを用いた検証用演算を実行させた場合に、前記検証用演算が前記情報使用条件を満たすか否かを検証するプログラム検証ステップと、
前記プログラム検証ステップにより前記演算処理プログラムが前記付加情報に含まれる前記情報使用条件を満たす演算処理を行う適正なプログラムとして認証された場合に限り、前記演算処理プログラムに前記要求データが提供される提供ステップと、
提供された前記要求データを用いて前記演算処理プログラムにより演算処理を行うステップと、
を含むことを特徴とする情報提供方法。
【請求項9】
請求項
8に記載の情報提供方法の各ステップをコンピュータ装置により実行することを特徴とする情報提供プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報提供システム、情報提供方法及びプログラムに関する。
【背景技術】
【0002】
ビッグデータを用いた回帰分析や機械学習、ビッグデータから関係性を見つけ出す分析等、大規模なデータ処理は、独立した大規模なコンピュータシステムで処理されている。近年ではネットワーク技術の進展と共に、分散処理による演算処理が普及してきおり、他者が管理するパーソナルコンピュータ(以下「PC」という。)等の演算装置に情報を提供するためのシステムとして、特許文献1や特許文献2のものが知られている。
【0003】
特許文献1には、ユーザデバイスに対してサービスプロバイダから提供するコンテンツの利用管理を行うシステムにおいて、前記ユーザデバイスは、前記サービスプロバイダから受信したコンテンツ利用権限証明書に格納された暗号化コンテンツ鍵に対するユーザデバイス内の格納鍵を適用した復号処理を実行することによりコンテンツ鍵を取得し、取得したコンテンツ鍵を適用した暗号化コンテンツの復号化処理を実行してコンテンツを取得するコンテンツ利用管理システムが記載されている。
【0004】
また、特許文献1のコンテンツ利用権限証明書は、当該コンテンツ利用権限証明書の発行エンティテイの電子署名が付加された構成であり、前記コンテンツ利用権限証明書内の暗号化コンテンツ鍵の復号化処理は、前記電子署名の検証によりデータ改竄のないことの確認を条件として実行する構成となっている。
【0005】
特許文献2には、データベースへのアクセス制御方法において、プログラムの安全性を検証する安全性検証処理を含むとともに、上記安全性検証処理での検証結果に基づいて、上記プログラムに対して上記データアクセス権限を設定する技術が記載されている。
【0006】
また、特許文献2では、プログラムの安全性の検証は、外部の認証機関による認証を確認してもよいし、プログラムに記録されている作成者の署名等を確認してもよいし、プログラムのコードを解析して動作内容を確認してもよいとされている。
【先行技術文献】
【特許文献】
【0007】
【文献】特開2003-087237号公報
【文献】特開2002-182983号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
従来は、参加者が多数でかつ、個人情報を含む秘匿性の高い情報を対象とした分散処理はこれまで行われていない。すなわち、上記特許文献1に記載のコンテンツ利用管理システムでは、ユーザのコンテンツ利用権限を、サービスプロバイダ側でユーザ毎に管理することなく、正当なユーザにおいてのみコンテンツ利用を可能とし、さらに、期間制限、回数制限等、ユーザに対応した様々な利用制限を設定することが可能ではあるが、取り扱うコンテンツは、まんがや映像であり、ユーザがコンテンツを用いて演算処理できるようなシステムとはなっていない。
【0009】
また、上記特許文献2には、プログラムの安全性の検証について開示されているが、自己のPCでのプログラム処理に関する検証であり、他のPCに対してデータベース内の情報を提供することを前提とするものではない。
【0010】
そこで、本発明の目的は、情報提供者から提供された情報を演算処理装置においてプログラムにより演算処理する際に、情報提供者がプログラムに対する情報の使用制限やプログラムの検証を行うことができる情報提供システム、情報提供方法及び情報提供プログラムを提供することにある。
【0011】
本発明の上記目的は、以下の構成によって達成できる。すなわち、本発明の第1の態様の情報提供システムは、情報を記憶し、演算処理装置からの要求に応じて情報を提供する情報提供装置と、前記情報提供装置から提供された提供情報に基づいて所定の演算処理プログラムにより演算処理を行う演算処理装置と、を少なくとも含む情報提供システムであって、前記情報提供装置が、前記演算処理装置から要求された要求データを使用するための情報使用条件及び検証用データを含む付加情報を生成し、前記提供情報に、前記要求データに加え、前記付加情報を付加し、前記演算処理装置が、前記演算処理プログラムに前記検証用データを用いた検証用演算を実行させた場合に、前記検証用演算が前記情報使用条件を満たすか否かを検証するプログラム検証部を備え、前記プログラム検証部により前記演算処理プログラムが前記付加情報に含まれる前記情報使用条件を満たす適正なプログラムとして認証された場合に限り、前記演算処理プログラムに前記要求データが提供され、前記演算処理装置では、提供された前記要求データを用いて前記演算処理プログラムによる演算処理が行われることを特徴とする。
【0014】
本発明の第2の態様の情報提供システムは、第1の態様の情報提供システムにおいて、前記付加情報にはさらに前記検証用演算に用いられる検証用演算結果データが含まれていることを特徴とする。
【0015】
本発明の第3の態様の情報提供システムは、第2の態様の情報提供システムにおいて、前記提供情報の中、少なくとも前記要求データ、前記検証用データ及び前記検証用演算結果データは前記情報提供装置において暗号化されて前記演算処理装置に送信され、前記演算処理装置において前記プログラム検証部は暗号化された前記提供情報を復号することを特徴とする。
【0016】
本発明の第4の態様の情報提供システムは、第2又は第3の態様の情報提供システムにおいて、前記プログラム検証部は、前記検証用データを用いた前記演算処理プログラムによる演算処理の結果が、前記検証用演算結果データと一致した否かにより、前記演算処理プログラムを検証することを特徴とする。
本発明の第5の態様の情報提供システムは、第1~第4のいずれか態様の情報提供システムにおいて、前記付加情報には少なくとも前記演算処理装置において前記演算処理プログラムに許容される演算処理の範囲を規定した権限情報が含まれていることを特徴とする。
【0017】
本発明の第6の態様の情報提供システムは、第5の態様の情報提供システムにおいて、前記プログラム検証部は、前記演算処理装置において前記演算処理プログラムが前記検証用データを用いた前記検証用演算を実行した場合に、当該検証用演算が前記権限情報に規定された演算処理の範囲内であるか否かにより、前記演算処理プログラムが検証されることを特徴とする。
本発明の第7の態様の情報提供システムは、第1~第6のいずれかの態様の情報提供システムにおいて、前記プログラム検証部は、前記演算処理装置において前記演算処理プログラムが前記検証用データを用いた前記検証用演算を実行した場合に、当該検証用演算が前記権限情報に規定された演算処理の範囲内であるか否かにより、前記演算処理プログラムが検証されることを特徴とする。
【0018】
本発明の第8の態様の情報提供方法は、情報提供装置に対する要求に応じて提供された提供情報に基づいて演算処理装置において所定の演算処理プログラムにより演算処理を行う情報提供方法であって、前記情報提供装置に対して前記提供情報を要求する要求ステップと、前記情報提供装置が、前記演算処理装置から要求された要求データを使用するための情報使用条件及び検証用データを含む付加情報を生成し、前記提供情報に、前記要求データに加え、前記付加情報を付加する付加情報ステップと、前記演算処理装置が、前記演算処理プログラムに前記検証用データを用いた検証用演算を実行させた場合に、前記検証用演算が前記情報使用条件を満たすか否かを検証するプログラム検証ステップと、前記プログラム検証ステップにより前記演算処理プログラムが前記付加情報に含まれる前記情報使用条件を満たす演算処理を行う適正なプログラムとして認証された場合に限り、前記演算処理プログラムに前記要求データが提供される提供ステップと、提供された前記要求データを用いて前記演算処理プログラムにより演算処理を行うステップと、を含むことを特徴とする。
【0020】
本発明の第9の態様の情報提供プログラムは、第8の態様の情報提供方法の各ステップをコンピュータ装置により実行することを特徴とする。
【発明の効果】
【0021】
本発明の実施形態によれば、情報提供者から提供された情報を演算処理装置においてプログラムにより演算処理する際に、情報提供者がプログラムに対する情報の使用制限やプログラムの検証を行うことができる情報提供システム、情報提供方法及び情報提供プログラムを提供することができる。
【図面の簡単な説明】
【0022】
【
図5】電子投票システムに適用した場合の説明図である。
【発明を実施するための形態】
【0023】
以下、図面を参照して本発明の実施形態に係る情報提供システム、情報提供方法及び情報提供プログラムを説明する。但し、以下に示す実施形態は本発明の技術思想を具体化するための情報提供システム、情報提供方法及び情報提供プログラムを例示するものであって、本発明をこれらに特定するものではなく、特許請求の範囲に含まれるその他の実施形態のものにも等しく適用し得るものである。
【0024】
[第1実施形態]
本発明の第1実施形態に係る情報提供システム、情報提供方法及び情報提供プログラムについて、
図1及び
図2を参照して説明する。
【0025】
図1は、情報提供システムの全体ブロック図である。情報提供システムは、情報提供装置10、演算処理装置20及び管理サーバ30を備えており、情報提供装置10、演算処理装置20及び管理サーバ30はそれぞれ情報ネットワーク40により相互に接続されている。情報提供装置10及び演算処理装置20は1個以上設けられている。
【0026】
図2は、情報提供システムの動作説明図である。情報提供装置10は、検証データ作成部11及びデータベース12を備えている。検証データ作成部11とデータベース12とは相互に接続され、検証データ作成部11を介してデータベース12の情報は、演算処理装置20に提供可能とされている。
【0027】
検証データ作成部11は演算処理装置20のデータ要求部22からのデータ要求情報に応じて、情報提供プラットフォームプログラム管理部31から提供された情報提供装置用プログラムに基づくCPU(図示省略)による演算により、後述のように検証用データ、及び、演算処理検証に用いられる検証用演算結果データを出力する。また、検証データ作成部11は、同様に、予め入出力手段(図示省略)等により設定されたデータ利用制限情報に基づき、情報提供装置用プログラムに従ったCPUによる演算により、演算処理装置に対する権限リストのデータを作成する。さらに、検証データ作成部11は、情報提供装置用プログラムに従って、データベース12にアクセスして要求データ、すなわち、実際に演算処理装置20の演算に用いられるデータを取得する。そして、検証データ作成部11は、これらのデータを提供情報として、演算処理装置20のプログラム検証部23に送信する。
【0028】
演算処理装置20は、演算処理プログラム実行部21、データ要求部22、プログラム検証部23を有している。演算処理プログラム実行部21、データ要求部22、プログラム検証部23はいずれもスーパバイザ24により管理されている。ここで、スーパバイザ24とは、OSが管理している資源を排他的に、例えば閲覧をはじめとする他者の利用をそのままでは許さないように管理するプログラム、別の表現では、OSを統制が取れた環境の下で管理するプログラムを意味する。例えば情報提供プラットフォームプログラム管理部31から提供された演算処理装置用プログラムに基づき、カーネルによってOSが管理している資源を排他的に管理することができる。
【0029】
演算処理プログラム実行部21からデータ要求部22に対して、演算処理プログラムが要求するデータを情報提供装置10に対して要求し、この要求に応じて情報提供装置10からプログラム検証部23へ要求データを含む提供情報が送信される。プログラム検証部23においては、演算処理プログラムが検証され、適正であった場合には、演算処理プログラム実行部21に要求データが提供される。
【0030】
データ要求部22及びプログラム検証部23はいずれも、演算処理装置用プログラムに従ってスーパバイザ24により管理されており、セキュアなOS環境の中で、データ要求部22によるデータ要求情報の演算処理や、プログラム検証部23によるプログラム検証及び演算処理プログラムへの要求データの提供処理等の各種演算処理が演算処理装置20のCPU(図示省略)により実行される。同様に、演算処理プログラム実行部21における処理も同様に、セキュアなOS環境の中でCPUにより実行される。
【0031】
情報提供装置10及び演算処理装置20は、管理サーバ30に接続されており、情報提供装置10の検証データ作成部11及び演算処理装置20のスーパバイザ24のプログラムは、管理サーバ30の情報提供プラットフォームプログラム管理部31から提供され、これらのプログラムは情報提供プラットフォームプログラム管理部31により管理されている。これにより、情報提供システムは、情報提供プラットフォーム上で統制がとれた環境の中で情報の提供及び情報の利用が行われる。情報提供装置10と演算処理装置20との通信を行う際のデータの暗号化、復号化及び電子署名のアルゴリズムも、この情報提供プラットフォームプログラム管理部31により管理されている。
【0032】
演算処理装置20に対して、情報提供装置10から要求データが提供される手順について説明する。
【0033】
(1)演算処理プログラム実行部21からの要求に応じて、データ要求部22において、演算処理プログラムが必要とする要求データを各情報提供装置10に対して要求するためのデータ要求情報を作成する。
【0034】
(2)データ要求部22から情報提供装置10の検証データ作成部11に対して、データ要求情報が送信される。
【0035】
(3)検証データ作成部11において、対象とする演算処理プログラムを検証するための検証データを作成する。
【0036】
(4)検証データ作成部11から演算処理装置20のプログラム検証部23へ要求データ及び演算処理プログラムに許容される演算処理の範囲や使用制限の条件を規定した付加情報が含まれる提供情報が送信される。
【0037】
(5)プログラム検証部23において、対象とする演算処理プログラムが認証された場合には、演算処理プログラム実行部21に要求データが提供され、演算処理プログラムによる演算処理が実行される。
【0038】
上記(1)のデータ要求情報の作成について詳しく説明する。演算処理プログラム実行部21で実行される処理対象の演算処理プログラムは、例えば次の演算処理プログラムP1のようなRustのプログラムである。演算処理プログラムP1は、線形回帰分析の例であり、要求データ(データ群)に対して、最小二乗法(OLS)を用いた線形回帰を行う。
【0039】
【0040】
データ要求情報には、要求データに関する指示である、最小二乗法を用いた線形回帰を行うための要求データの情報に加え、処理対象となる演算プログラムとしての演算処理プログラムP1の情報、例えばソースプログラムの情報が含まれる。なお、演算処理プログラムの情報としては、ソースプログラムだけに限られるものではなく、入力に対する出力の関係を特定できる情報、例えば、処理内容が事前に検証され、確認されている専用ハードウェアを直接に接続する、そのようなハードウェアを直列したものに接続する等、演算処理プログラムの処理内容が把握できるものであればどのような情報であってもかまわない。
【0041】
上記(2)においては、データ要求部22から情報提供装置10の検証データ作成部11に対して、データ要求情報が送信される。データ要求情報は情報提供プラットフォームプログラム管理部31で管理されるプロトコルに従って暗号化されることが望ましい。
【0042】
上記(3)の検証データ作成部11における検証データ作成について詳しく説明する。検証データ作成部11では、データ要求情報が暗号化されている場合には、情報提供プラットフォームプログラム管理部31で管理されるプロトコルに従って復号化される。次に、検証データ作成部11では、演算処理装置20において処理対象の演算処理プログラムに許容する演算処理の範囲を規定するための情報を生成する。
【0043】
検証データ作成部11では、データ要求情報に付与された演算処理プログラムの処理内容を解析し、演算処理プログラムが適正であるかどうかを検証するために必要な情報を生成し、提供情報に付加する。このため検証データ作成部11からプログラム検証部23に送信される提供情報には、次の情報が含まれている。
(a)演算処理装置において前記演算処理プログラムに許容される演算処理の範囲や使用制限の条件を規定した権限情報、例えば権限リスト
(b)検証用データ
(c)演算処理検証に用いられる検証用演算結果データ
(d)要求データ(実際の演算に用いられるデータ)
【0044】
上記(4)では、検証データ作成部11から演算処理装置20のプログラム検証部23へ要求データ及び演算処理プログラムに許容される演算処理の範囲を規定した付加情報が含まれる提供情報が送信される。提供情報の中、少なくとも上記(b)(c)及び(d)は情報提供プラットフォームプログラム管理部31で管理されるプロトコルに従って暗号化されることが望ましい。上記(a)も併せて暗号化を行ってもよい。さらに、提供情報に電子署名を付加することにより、より確実に改ざんを防ぐことができる。
【0045】
上記(5)のプログラム検証部23の処理について詳細に説明する。プログラム検証部23においては、提供情報に含まれている上記(b)及び(c)を用いて、上記(b)の検証用データを用いてデータ処理対象の処理プログラムを実行した場合の結果が、上記(c)の演算処理検証に用いられる検証用演算結果データと一致するかどうかを検証する。
【0046】
さらに、上記(b)の検証用データを用いてデータ処理対象の処理プログラムを実行した場合に、処理プログラムが上記(a)の権限情報で許される範囲を超えた処理をしていないかどうかが判定される。
【0047】
例えば、権限情報としての権限リストに、データ保存に関し、演算結果の保存が許可されているが、要求データ自体の保存は許可されていない場合には、演算処理装置20が、演算結果を保存することは許可されるが、要求データ自体を別途保存しておくことは許可されない。このため、上記(b)の検証用データを用いてデータ処理対象の処理プログラムを実行した場合に、データ保存が権限リストの範囲にあるかどうかが検証される。
【0048】
演算処理装置20のスーパバイザ24は、情報提供プラットフォームプログラム管理部31により提供されたプログラムにより、常に統制された環境で動作されている。このため、演算処理装置20のプログラム検証部23及び演算処理プログラム実行部21において実行される演算処理プログラムの演算処理はスーパバイザ24により常に監視することが可能であり、データの保存、転送、削除等の処理内容は常に把握されている。このために、本実施例の情報提供システムにおいては、上記(b)の検証用データを用いてデータ処理対象の処理プログラムを実行した場合に、データ保存が権限リストの範囲にあるかどうかを適切に検証することが可能である。
【0049】
上記(b)の検証用データを用いてプログラム検証部23にて処理対象の演算処理プログラムを実行した場合の結果が、上記(c)の演算処理検証に用いられる検証用演算結果データと一致し、かつ、上記(b)の検証用データを用いてデータ処理対象の処理プログラムを実行した場合に、処理プログラムが上記(a)の権限情報で許される範囲を越えた処理をしていないと判定された場合に、処理対象の演算処理プログラムは適正であると判断され、すなわち、適正な演算処理プログラムとして認証される。
【0050】
演算処理プログラムが適正なプログラムとして認証されると、上記(d)の要求データが演算処理プログラムに提供され、演算処理プログラム実行部21において、演算処理プログラムは要求データを用いて実際の演算を行う。
【0051】
図3は、演算処理装置20の動作説明図である。データ要求部22、プログラム検証部23、演算処理プログラム実行部21、メモリ25及びそれ以外の入出力装置(図示省略)等は、全てスーパバイザ24により管理された環境の中で処理されている。これによりスーパバイザ24によりOSの全ての動作を管理できる状態、すなわち、OSのセキュアな実行環境を実現することができる。なお、
図3の演算処理装置20の動作説明図は、本実施形態の一例であり、他の様々な構成によって、OSのセキュア化を実現することもできる。
【0052】
演算処理プログラム実行部21において関数28は、全てのデータを、ライブラリ27を介して送受している。メモリ25内には、ライブラリ27だけがアクセス可能なライブラリ専用領域が仮想的に設けられており、例えば、プログラム検証部23を介して入手された要求データはメモリ25内のライブラリ専用領域に格納される。また、例えば
図3において、データ29はメモリ25内のライブラリ専用領域に記憶されているものである。関数28は、メモリ25内のライブラリ専用領域に格納された要求データにアクセスできる。そして、関数28は、メモリ25のデータ29を、ライブラリ27を経由して受け取る。関数28は受け取ったデータを用いて、演算処理装置20のCPUにより関数28に従って演算を行う。関数28の演算の終了後、演算処理プログラムによる最終的な演算結果リストだけがユーザに提供され、メモリ25内のデータ29の領域にある演算途中に用いられたデータは完全に削除される。データを完全に削除する方法としては、特に限定されるものではないが、例えばデータを全て「0」で埋めること等の適宜の方法を採用可能である。また、関数28は、演算結果のリストのみをユーザに提供する。
【0053】
このように、関数28は、スーパバイザ24の完全な管理のもと、ライブラリ27を介して全てのデータの送受を行っているため、演算処理装置20内におけるメモリ25内のライブラリ専用領域以外の領域に要求データや演算途中のデータを残すことがなく、要求データはライブラリ27内にのみスーパバイザ24が管理可能な状態で格納されている。したがって、スーパバイザ24は、情報提供装置10から受信した権限リストに規定された権限の範囲内で要求データを使用し、ライブラリ内で要求データを確実に管理することができる。また、上述のとおり、メモリ25内のライブラリ専用領域のデータは完全に削除することが可能である。
【0054】
ここでは、OSをセキュア化する例を説明したが、演算処理プログラム実行部21の演算で用いられるアプリケーションを仮想化することにより、演算処理装置の動作をスーパバイザ24により管理することも可能である。この場合には、アプリケーションによる演算が開始された後、アプリケーションにより要求データが呼び出される前に、スーパバイザ24が全ての動作を管理する仮想的な環境(以下「セキュア環境」という。)内でアプリケーションを動作させる。次に、アプリケーションから演算結果を出力されると、スーパバイザ24は、ユーザに対して演算結果のリストだけを提供すると共に、要求データ及び演算途中のデータを削除した後に、アプリケーションはセキュア環境から演算処理装置20の通常演算環境での動作に戻される。したがって、アプリケーション仮想化の場合にも、スーパバイザ24は、アプリケーションをセキュア環境において管理するため、情報提供装置10から受信した権限リストに規定された権限の範囲内であることを監視する。すわなち、権限リストの規定に応じて、コンソールへの出力を制限すること、ファイルに書き込むこと、ネットワーク通信を行うこと等を禁止する。また、例えば認証されたGPUを用いることにより、スーパバイザ24の管理のもとでユーザに対して演算結果のみを提示することができる。
【0055】
[変形例]
本実施形態の上記実施例では、1つのプログラム毎に認証する例を示したが、ここでは変形例として、複数のプログラムを予め認証しておき、認証済みの複数のプログラムを組み合わせて演算を行う例を説明する。
図4を参照して本実施形態の変形例について説明する。
図4は、組み合わせプログラムの説明図である。変形例では、プログラム検証部23において事前に認証済みの複数のプログラムを組み合わせ、要求データを用いて所定の演算を行うプログラム(以下「組み合わせプログラム」という。)について説明する。
【0056】
データ受領プログラム50は、インターネット等の通信ネットワークを介して受信した要求データを受け取り、演算処理可能な状態として出力するプログラムである。データ受領プログラム50の出力部51から、要求データが出力される。
【0057】
傾向スコアマッチング52は、要求データを用いて傾向スコアマッチングの演算を行うプログラムである。傾向スコアマッチング52では、要求データを用いて、例えば、学歴の近い人のマッチングや所得の近い人のマッチング等が可能である。傾向スコアマッチング52の入力部53は、データ受領プログラム50の出力から要求データを受け取り、傾向スコアマッチング52において傾向スコアマッチング演算が行われ、出力部54は傾向スコアマッチングの結果を出力する。
【0058】
重回帰分析55では、傾向スコアマッチング52の出力部54からの傾向スコアマッチングの結果を入力部56により受け取り、重回帰分析を行い、例えば、学歴と所得との関連性を分析することができる。
【0059】
このように、
図4に示された組み合わせプログラムでは、要求データに基づいて傾向スコアマッチングのデータを重回帰分析することにより得られた結果リストは、ユーザに提供されるが、前述のようにスーパバイザ24の完全な管理のもと、要求データ及び演算途中のデータは削除されて、演算処理装置に残されることはない。ただし、部分プログラムは、演算処理装置の中の演算処理プログラム実行部の中で動作するものであり、出力部と入力部との間に連携を設定することにより、その出力データは削除されることなく、後続の入力データとして利用できる。この場合にも、組み合わせプログラムにおいて最終的に得られた結果リストだけがユーザに提供され、途中経過のデータは演算終了後には全て削除される。
【0060】
次に、組み合わせプログラムによる演算を行うための、事前の認証の手順について説明する。
【0061】
(1)実行する予定のn個の組み合わせプログラムPi(i=1~n)の中の1つである部分プログラムPiについて、対象とする部分プログラムPiが処理できる入力の種類と、対象とする部分プログラムPiが結果として返す出力の種類が事前に登録される。
【0062】
(2)演算処理装置20において、対象とする部分プログラムPiの事前の認証を行うための事前認証プログラムAi(i=1~n)が、スーパバイザ24の管理のもと自動的に生成される。事前認証プログラムAiは、スーパバイザ24の権限を利用するプログラムであって、また、対象とする部分プログラムPiを内部的に呼び出す関数である。事前認証プログラムAiは、データ要求部22を通じて、対象とする部分プログラムPiが処理できる入力の種類と、対象とする部分プログラムPiが結果として返す出力の種類とに対応した事前承認要求を各情報提供装置10に対して送信する。
【0063】
(3)情報提供装置10の検証データ作成部11において、事前認証プログラムAiの対象である部分プログラムPiを検証するための検証データが作成される。
【0064】
(4)情報提供装置10の検証データ作成部11から演算処理装置20のプログラム検証部23へ、検証データ、演算処理検証に用いられる検証用演算結果データ、及び、演算処理プログラムに許容される演算処理の範囲や使用制限の条件を規定した付加情報等が含まれる部分プログラム検証用情報が送信される。
【0065】
(5)プログラム検証部23において、事前認証プログラムAiが対応する部分プログラムPiを適正な演算処理プログラムとして認証した場合、部分プログラムPiは事前認証済みの部分プログラムPiとして演算処理装置20に格納され、演算処理プログラム実行部21から呼び出せるようになる。より具体的には、事前認証プログラムAiは、検証用データを用いて部分プログラムPiを実行した場合の結果が、検証用演算結果データと一致するかどうかを検証する。さらに、事前認証プログラムAiは、部分プログラムPiを実行した場合に、付加情報で規定された演算処理の範囲や使用制限の条件で許される範囲を超えた処理をしていないかどうかを判定する。
【0066】
(6)上記(1)~(5)の部分プログラム事前検証の手順が、必要な数nの部分プログラムPi(i=1~n)について、繰り返される。
(7)演算処理プログラム実行部21において、事前認証済みの部分プログラムPiを複数組み合わせた組み合わせプログラムが構成される。組み合わせプログラムが実行されると、データ要求部22からの要求に応じて、情報提供装置10から要求データが、演算処理装置20のプログラム検証部23に送信される。プログラム検証部23では、各部分プログラムが許容される演算処理の範囲として規定された範囲内で、組み合わせプログラムに対して要求データが提供され、目的の演算が行われる。演算処理プログラム実行部21で得られた演算処理の結果リストがユーザに提供されると共に、上述のとおりスーパバイザ24により完全に管理された環境により演算が実行されるため、要求データや演算途中のデータは使用制限の条件に応じて削除され、演算処理装置20には残されることはない。
【0067】
単に重回帰分析をしても意味のある分析結果が得られない場合があるが、このような場合には傾向スコアマッチングした上でその結果に対して重回帰分析をすると意味のある結果が得られやすい。したがって、本変形例にように、各分析処理を順に組み合わせることで意味のある結果が得られやすくなる。
【0068】
[第2実施形態]
本発明の第2実施形態に係る情報提供システム、情報提供方法及び情報提供プログラムについて、
図5を参照して説明する。
図5は、電子投票システムへ適用した場合の説明図であり、第1実施形態で説明した情報提供システムを電子投票システムへ適用した場合の説明図である。
図5において、第1実施形態と同様の構成については同じ符号を用い、その説明は省略する。
【0069】
演算処理装置20において、投票用紙集計プログラムが投票結果を示す投票用紙(A,B,・・・,N)の投票用紙情報(IDリスト)を集計する場合について説明する。
【0070】
(1)通信ネットワークを通じて、演算処理装置20は有権者一覧に対応する各情報提供装置S1、S2~Snに対して、投票用紙情報を提供するようにデータ要求情報を送信する。
(2)情報提供装置S1、S2~Snからは演算処理装置20の要求に応じて各投票用紙情報が提供される。
(3)投票用紙集計プログラムが認証された場合には、演算処理装置20では、投票用紙集計プログラムに有権者一覧が入力され、次に、投票用紙集計プログラムは、各投票用紙情報(B,C, ・・・, M)を用いて投票結果を集計する。なお、
図5では、情報提供装置S1は投票用紙情報A及びBを記憶しているが、投票者は投票用紙情報Aを取消し、最終的に投票用紙情報Bを有効な投票とした例が示されている。
(4)投票用紙集計プログラムは、投票結果リストをユーザに提供すると共に、第1実施形態と同様に、スーパバイザ24による完全に管理された環境において演算が行われているため、要求データである各投票用紙情報や演算途中のデータは削除され、演算処理装置20に残されることはない。
【0071】
本実施形態では、情報提供装置S1、S2~Snに保存されている投票用紙情報は変更履歴を記録し、改ざんを防止するようなデータベースに記憶される。なお、投票用紙情報が記憶されるデータベースはとしてブロックチェーンを採用することができるが、データベースはブロックチェーンに限定されるものではなく、他の分散記憶形式等であってもよい。ブロックチェーンを採用した場合には、演算処理装置20は各情報提供装置10にデータ要求情報を送信することにより、所望の投票用紙情報を取得することが可能であり、かつ、変更履歴が記録されることにより改ざんを防止することができる。
【0072】
以上、本発明のいくつかの実施形態について説明したが、これらの実施形態は本発明の技術思想を具体化するための情報提供システム、情報提供方法及び情報提供プログラムを例示するものであって、本発明をこれらに特定するものではなく、その他の実施形態のものにも等しく適用し得るものであり、また、これらの実施形態の一部を省略、追加、変更することや、各実施形態の態様を組み合わせることが可能である。
【符号の説明】
【0073】
10…情報提供装置
11…検証データ作成部
12…データベース
20…演算処理装置
21…演算処理プログラム実行部
22…データ要求部
23…プログラム検証部
24…スーパバイザ
25…メモリ
27…ライブラリ
28…関数
29…データ
30…管理サーバ
31…情報提供プラットフォームプログラム管理部
40…情報ネットワーク
50…データ受領プログラム
51…出力部
52…傾向スコアマッチング
53…入力部
54…出力部
55…重回帰分析
56…入力部
Ai…事前認証プログラム
P1…演算処理プログラム
Pi…部分プログラム