説明

情報漏洩のリスクを極小化しながらデータを外部で保管できるようにデータを処理する方法

【課題】情報漏洩のリスクを極小化しながらデータを外部で保管できるようにデータを処理すること
【解決手段】仮想計算機(VMs:Virtual Machines)を利用した基盤(仮想実行基盤)を、信頼できる機関の代替として利用する。結合されたデータを暗号化することで、情報漏洩のリスクを低減し、安全性を増すことができる。仮想実行基盤が通信の結線と向きを制御することができるので、各金融機関が独自の暗号化を施すことができ、外部で保管するにあたってはさらに都合がよい。また、各金融機関が独自の復号化を施すことができれば、2つの金融機関の一方の側が勝手に、外部で保管されたデータを仮想実行基盤に取り込むことを防止することができる。また、情報漏洩リスクに応じて動作主体に自由度を与えることができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ管理の方法に関し、より詳しくは、情報漏洩のリスクを極小化しながらデータを外部で保管できるようにデータを処理する方法に関する。
【背景技術】
【0002】
各金融機関が保持するデータや情報を、複数の金融機関にわたって取りまとめて、分析のための計算を行うというニーズがある。例えば、各金融機関における財務諸表が取りまとめて監査されたり、比較されたり、全体としての統計として算出されたりする。各金融機関における運営の内容を透明化して金融リスクを未然に防ぐ等、公の秩序を維持するという意味合いからも、このような分析はさらに推し進められていくことが期待されている。
【0003】
信頼できる機関によって分析のための計算が行われるのであれば、各金融機関は自分が保持するデータを限定的に公開してもよいと考えるであろう。信頼できる機関としては、日本の金融庁や米国のFRBなどが典型であろうが、こういった公的な機関の確立、運営、維持には多大なコストを要する。また、そもそも信頼できる機関といっても、情報漏洩のリスクが完全に払拭できるわけではない。
【0004】
また、各金融機関が独自に保持するデータを機密に保持しておきたい事情がある場合に、公開してもらうことに承諾してもらおうとすると、情報漏洩が生じないようにする安全性について十分な配慮が必要となってくる。特に、ポジションデータとか、損失算出モデルといった金融データは、各金融機関にとっては運営上のノウハウとして、他の金融機関に対して手の内を明かしたくないようなデータであることが多い。
【0005】
もっとも、各金融機関は、自分で独自に保持している状態の「元のデータ」さえ機密に保持されていればよい、または、その「元のデータ」の出所さえ分からないようになっていればよい、と考えることも少なくない。むしろ記憶しておくコストを軽減するために、自分で保持しないで済むのであれば、外部で保管しておきたい、と考えることも少なくない。
【0006】
例えば、統計として算出される結果が、たとえ2つの金融機関が保持するデータの単純平均にすぎない形での取りまとめの内容であったとしても、データが結合された状態になってさえいればよいという場合もある。他の(相手の)金融機関の側でも機密を保持したいと考えているのであれば、積極的に情報漏洩させようとはしないであろうことを期待できるからである。
【0007】
特許文献1は、電子情報の保存場所を一極に集中することなく複数に分割保存させるようにして、作成した電子情報を安全に保存し、その後に内部記憶装置に存在する元の対象電子情報を消去するが、分割保存された分割情報は、全て集めて統合することによって元の対象電子情報を復元するという技術を開示するものである。
【0008】
悪意を持った者による情報の持ち出しを防ぎ、安全にデータを管理しておくという点では本発明の目的に共通する部分が見られる。しかし、データを複数に分割して保管することについて正しい処理が行なわれることを前提としている。さらには、保存されたデータのサイズは、復元のための冗長度までを含め、記憶装置分に増えてしまう。データの一極管理を避けて、漏洩されるかもしれない対象を分割されたデータのみに限定しようとしている思想であるが、全体の処理も動作主体についての自由度がなく、中央集権的な仕組みに頼っている。
【0009】
非特許文献1は、仮想計算機(VMs:Virtual Machines)を利用して、通信の流れを強制する(enforce)ことができること、または、強制的アクセス制御(MAC:Mandatory Access Control)が、実現可能な一般的技術水準であることについて説明している。本発明を実施するにあたって基盤として利用される技術である。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開2006−301849号公報
【非特許文献】
【0011】
【非特許文献1】Shamon:A System for Distributed Mandatory Access Control,Jonathan M.McCune, Trent Jaeger, Stefan Berger Ramon Caceres Reiner Sailer
【発明の概要】
【発明が解決しようとする課題】
【0012】
本発明の目的は、第三者機関の計算基盤の上で、情報漏洩のリスクを極小化しながらデータを外部で保管できるようにデータを処理することにある。
【課題を解決するための手段】
【0013】
仮想計算機(VMs:Virtual Machines)を利用した基盤(仮想実行基盤)を、信頼できる機関の代替として利用する。結合されたデータを暗号化することで、情報漏洩のリスクを低減し、安全性を増すことができる。仮想実行基盤が通信の結線と向きを制御することができるので、各金融機関が独自の暗号化を施すことができ、外部で保管するにあたってはさらに都合がよい。また、各金融機関が独自の復号化を施すことができれば、2つの金融機関の一方の側が勝手に、外部で保管されたデータを仮想実行基盤に取り込むことを防止することができる。また、情報漏洩リスクに応じて動作主体について自由度を与えることができる。
【発明の効果】
【0014】
このようにデータが結合されて暗号化された状態になっていれば、第三者機関の計算基盤の上でデータ保護に対する高信頼を担保するために、通常は高価で小容量の記憶領域において揮発的なデータを独自に保持しておく必要がなくなる。一方で、通常は安価で大容量のストレージが提供されている外部のパブリッククラウドに永続的なデータを保管しておくことができる。
【図面の簡単な説明】
【0015】
【図1】図1は、本発明の方法が実行されるシステムの全体構成を示す図である。
【図2】図2は、本発明の方法が実行されるところの仮想実行基盤の制御下にあるメモリ空間の構成、および、複数のコンピュータ(コンピュータA、コンピュータB)の制御下にあるメモリ空間の構成を模式的に示す図である。
【図3】図3は、本発明の方法を実行するにあたって、データやモジュールをアップロードすることを模式的に示す図である。
【図4】図4は、本発明の方法を実行するにあたって、データAおよびデータBから結合データであるデータABを計算することを模式的に示す図である。
【図5】図5は、本発明の方法を実行するにあたって、結合データであるデータABを二重に暗号化することを模式的に示す図である。
【図6】図6は、本発明の方法を実行するにあたって、外部にあるストレージにおいて保管されているデータを復号化する方法を模式的に示す図である。
【図7】図7は、本発明の方法を実行するにあたって、外部にあるモジュールから内部にある代理モジュールへと、暗号化された情報を持ち込む具体的な手順を示す図である。
【図8】図8は、メモリ空間100においてアップロードまたはダウンロードされるデータまたはモジュールと、それらの動作主体との関係を一覧にした図である。
【発明を実施するための形態】
【0016】
図1は、本発明の方法が実行されるシステムの全体構成を示す図である。本発明の方法は、仮想計算機(VMs:Virtual Machines)を利用した基盤(仮想実行基盤10)を利用して実行される。仮想計算機(VMs:Virtual Machines)については、非特許文献1に詳しい。
【0017】
仮想実行基盤10は、コンピュータの一種であり、メモリ空間100を仮想実行基盤10の制御下に置いている、第三者機関の計算基盤である。コンピュータA20とコンピュータB30という複数のコンピュータが、それぞれ独自に、このメモリ空間100へデータやモジュールをアップロードし、またはこのメモリ空間100からデータやモジュール(コンピュータに実行させるためのプログラムまたはプログラム・コード)をダウンロードする。また、複数のコンピュータはそれぞれ独自に、または互いに協力して、このメモリ空間100からデータを外部にあるストレージ400へアップロードし、またはこのメモリ空間100へとデータを外部にあるストレージ400からダウンロードする。
【0018】
例えば、コンピュータA20が一つの金融機関が管理するコンピュータに相当しており、コンピュータB30が一つの別の金融機関が管理するコンピュータに相当している、という状況を想定することができる。また、メモリ空間100およびそれを制御している仮想実行基盤10は、信頼できる機関の代替になり得るコンピュータに相当している、という状況を想定することができる。
【0019】
第三者(監査法人など)のコンピュータ500も、このメモリ空間100へデータやモジュールをアップロードし、またはこのメモリ空間100からデータやモジュールをダウンロードすることができるコンピュータに相当している、という状況を想定することができる。第三者(監査法人など)500のコンピュータからこのメモリ空間100へのアクセス許容度は制限されるが、監査のためにたとえ一部であってもアクセスが許容されているという点では、やはり信頼できる機関の代替になり得るコンピュータであり、第三者機関の計算基盤である。
【0020】
外部にあるストレージ400という用語のうちの「外部」とは、メモリ空間100の外部に外出しすることを表現するためのものにすぎず、本発明においてはそれ以上に技術的に特別な意義は含んでおらず、「外部」という用語の意義は広く解釈されるべきである。メモリ空間100をファイアウォールの「内部」に位置させておき、(後述するところの)二重暗号化の後にファイアウォールの外部へと外出ししておく場合には、情報漏洩のリスクを極小化しながらパブリッククラウドをより効率的に活用することができる。
【0021】
図2は、本発明の方法が実行されるところの仮想実行基盤の制御下にあるメモリ空間の構成、および、複数のコンピュータ(コンピュータA、コンピュータB)の制御下にあるメモリ空間の構成を模式的に示す図である。メモリ空間100の(境界線の)内部へは、コンピュータA20およびコンピュータB30からデータやモジュールをアップロードすることができる。この図2の例では、点線で囲む四角によって12個の単位空間が示されている。12個の単位空間は、11、12、13、21、22、23、31、32、33、41、42、43、という行列としての位置番号をもって、模式的に示されている。
【0022】
さらに、これら12個の単位空間を貫くようにして一点鎖線が描かれている。これらの一点鎖線は、通信の「結線」と「向き」を制御することができることを潜在的に示している仮想的な線であり、アップロードされている状態にあるデータやモジュールとの間での通信を潜在的に描いている。以降の図面上の表現の約束として、実際の通信の「結線」があると、一点鎖線は実線となり、通信の「向き」には矢印を示すものとする。
【0023】
本明細書においては、仮想実行基盤10の制御によって通信の結線と向きを制御することを「強制」と呼ぶことにする。別の言い方をすると、「強制」された処理がなされるのであれば、それは限られた通信の結線と向きしか認められないということであり、コンピュータA20やコンピュータB30がお互いに合意や承諾をしていない動作はできないことになるので、お互いに仮想実行基盤10を信頼できる機関の代替として認めることに納得するであろうと期待しているものである。メモリ空間100の(境界線の)「内部」では、誰が動作主体になろうとも、または、誰が動作のきっかけになって処理が始まろうとも、仮想実行基盤10が処理を「強制」するのが原則である。通信の「向き」は「強制」される重要な制御要素の一つである。
【0024】
実際には、仮想実行基盤10は、ある物理的な計算機(ホスト計算機)上に構築される。ハードウエア若しくはソフトウエアまたはそれらの組合せとして実現される。仮想実行基盤10は、仮想計算機(VMs)の通信を次のように制御する。ホスト計算機外部と仮想計算機の間の通信は、外部からのホスト計算機への受信データを仮想実行基盤が仮想計算機に伝送することにより、また仮想計算機から外部へ送信データを仮想実行基盤が取得し、それをホスト計算機の外部へ伝送することによって、実現する。
【0025】
また、仮想計算機間のデータ送受信は、仮想実行基盤10がホスト計算機上のメモリ空間を介して伝送する。いずれの場合も仮想実行基盤10が通信の可否、及びその向きを一定の方針に従って「強制」することができる。
【0026】
なお、図2における一点鎖線は一例を模式的に示したにすぎず、一点鎖線が描かれていない複数の任意の単位空間の間においても、通信の結線と向きを制御することができるように構成することも可能である。例えば、図中では、単位空間11と、単位空間22との間とを貫くように、斜めの方向にはこれらの間にのみ、一点鎖線を描いて潜在的に示しているが、これらの単位空間の間で直接通信して結線と向きが制御できるように構成することも可能である。
【0027】
また、これらの複数の単位空間の各々に対しては、データやモジュールのアップロードをすることができ、それと同時に、またはアクセス制限が必要となった時点で後発的に、アクセス可能な動作主体を個別に設定することができる。アクセス可能な動作主体については、コンピュータA20、コンピュータB30、第三者(監査法人など)のコンピュータ500である。アクセス可能な動作主体は、仮想実行基盤10が総務的に設定してもよいし、コンピュータA20とコンピュータB30とが合意の上で互いに協力して、または第三者(監査法人)などに委託して、設定してもよい。
【0028】
また、メモリ空間100の(境界線の)内部から外部へまたがっても一点鎖線が延びている。図1との関係では、これらまたがって延びている箇所を通じてメモリ空間100の外部からデータやモジュールがアップロードされて(入って)きて、メモリ空間100の内部からデータやモジュールがダウンロードされて(出て)いく。
【0029】
コンピュータAの制御下にあるメモリ空間200には、2個の単位空間が、A1、A2という位置番号をもって、模式的に示されている。コンピュータBの制御下にあるメモリ空間300には、2個の単位空間が、B1、B2という位置番号をもって、模式的に示されている。これらの単位空間と、メモリ空間100の単位空間の各々との間でも通信することがあり得る。
【0030】
メモリ空間100の単位空間の各々と、コンピュータAの制御下にあるメモリ空間200の単位空間の各々との間、コンピュータBの制御下にあるメモリ空間300の単位空間の各々との間における通信の結線と向きについても、仮想実行基盤10によって「強制」することができる。ただし、コンピュータAの制御下にあるメモリ空間200と、コンピュータBの制御下にあるメモリ空間300とについては、仮想実行基盤10が(少なくとも)それらのメモリ空間にアップロードされている(状態にある)データやモジュールの内容までは見ることができないようにしておく方が、情報漏洩のリスクを低減するという点では、好ましい。
【0031】
ちなみに、コンピュータAの制御下にあるメモリ空間200と、外部にあるストレージのメモリ空間400との間における通信の結線と向きについても、仮想実行基盤10によって「強制」することができるようにすることもできるであろう。コンピュータBの制御下にあるメモリ空間300と、外部にあるストレージのメモリ空間400との間における通信の結線と向きについても、仮想実行基盤10によって「強制」することができるようにすることもできるであろう。しかし、情報漏洩のリスクを低減するという点では、仮想実行基盤10が制御できないようにしておく方が好ましいであろう。
【0032】
基本的に、仮想実行基盤10は、ダウンロードやアップロードをする動作主体になるというよりも、メモリ空間100を制御しているだけであって、コンピュータA20やコンピュータB30が、ダウンロードやアップロードができる空間(場)を提供しているにすぎない、という設定が好ましいことになる。
【0033】
図3は、本発明の方法を実行するにあたって、データやモジュールをアップロードすることを模式的に示す図である。ここでは、データAはコンピュータA20において独自に所有しているデータであって、コンピュータA20がデータAを(単位空間11に)アップロードする。また、データBはコンピュータB30において独自に所有しているデータであって、コンピュータB30がデータBを(単位空間41に)アップロードする。
【0034】
また、このアップロードと同時に、またはアクセス制限が必要となった時点で後発的に、単位空間ごとにアクセス可能な動作主体を個別に設定することができるので、データAはコンピュータB30からはアクセスできないように、データBはコンピュータA20からはアクセスできないように設定することもできる。コンピュータAとコンピュータBとが、それぞれ自分で保持するデータを機密に保持しておきたい場合に有効な設定となる。
【0035】
このように、情報漏洩のリスクを気にする関係者(ここでは、コンピュータAとコンピュータB)に対して、そのリスクを極小化する様々な設定のバリエーションをフレキシブルに設けることができる。
【0036】
代理復号化モジュールA(単位空間33)、暗号化モジュールA(単位空間A1)および復号化モジュールA(単位空間A2)はコンピュータAが独自に設定するモジュールであって、コンピュータAがそれらの両方またはいずれか一方を(処理に必要となる時点までに)アップロードする。暗号化モジュールA(単位空間33)はコンピュータAの公開鍵を、復号化モジュールA(単位空間A2)はコンピュータAの秘密鍵を保持する。
【0037】
また、暗号化モジュールB(単位空間13)および復号化モジュールB(単位空間B1)はコンピュータBが独自に設定するモジュールであって、コンピュータBがそれらの両方またはいずれか一方を(処理に必要となる時点までに)アップロードする。暗号化モジュールB(単位空間13)および代理復号化モジュールA(単位空間33)のアップロードは、仮想実行基盤10の制御下において、仮想実行基盤10を経由して行っている。暗号化モジュールB(単位空間13)及び代理復号化モジュールA(単位空間33)はコンピュータBの公開鍵を、復号化モジュールB(単位空間B1)はコンピュータBの秘密鍵を保持する。
【0038】
復号化モジュールA(単位空間A2)は、メモリ空間100にアップロードするべきではない。その理由は、仮想実行基盤10が外部から攻撃された場合に、その復号化モジュールを解読されてしまうためである。同様に、復号化モジュールB(単位空間B1)も、メモリ空間100にアップロードするべきではない。
【0039】
また、暗号化モジュールBをコンピュータA20からはアクセスできないように設定することもできる。暗号化の方法さえ他人に知られたくない場合に有効な設定となる。
【0040】
後述するが、メモリ空間の内部から外部に向かって、暗号化モジュールBの出力は、コンピュータAにしか向かうことができないように「強制」される。また、コンピュータBからメモリ空間内部に向かっての入力は、代理復号化モジュールAにしか入ってこないように「強制」される。
【0041】
計算モジュール(単位空間21)は、コンピュータA20およびコンピュータB30の合意の下にコンピュータA20とコンピュータB20とが協力してアップロードしてもよいし、何れか一方によってアップロードしてもよい。信頼できる機関(例えば、第三者(監査法人)のコンピュータ500)が調停者または仲裁者という中立的な立場として、またはコンピュータA20およびコンピュータB30から委託されて、アップロードしてもよい。
【0042】
図4は、本発明の方法を実行するにあたって、データAおよびデータBから結合データであるデータABを計算することを模式的に示す図である。計算モジュールは、データAとデータBとを入力として、結合データとしてのデータABを出力する。このように、矢印の起点を入力として、矢印の終点が出力先となるように、仮想実行基盤10によってデータ処理が「強制」されている。このデータ処理は、誰が動作主体になろうとも、または、誰が動作のきっかけになって処理が始まることになろうとも、「強制」されている
【0043】
データABの計算にあたって、計算モジュールが第三者(監査法人)のコンピュータ500からアップロードされたものであれば、データABを第三者(監査法人)のコンピュータ500に対してだけアクセスできるようにしてもよい。監査してもらうというだけを目的にする場合に有効な設定である。
【0044】
データABの計算が、データAとデータBとの単純平均にすぎない形での算出であったとしても、データが結合された状態になってさえいれば、データAであればコンピュータBに対して、データBであればコンピュータAに対して知られてしまっても問題ない、という場合も考えられる。このような場合には、互いにだけアクセスできるようにしてもよい。相手が積極的に情報漏洩させようとはしないであろうことを期待できる場合に有効な設定である。
【0045】
データABがコンピュータAからもコンピュータBからも、又は第三者からもアクセスできないように制御する場合もある。それは例えば、結合が十分でなく元のデータが結合されてもまだわかってしまう場合や、第三者に開示できるデータを生成する前段階の中間計算データ等が該当する。
【0046】
図5は、本発明の方法を実行するにあたって、結合データであるデータABを二重に暗号化することを模式的に示す図である。データABは、まず暗号化モジュールBによって暗号化され、次にそれに重ねて、暗号化モジュールAによって暗号化される。暗号化の順番として仮想実行基盤10によって「強制」されることになるが、かならずしもB→Aの順序である必要はなく、メモリ空間100の内部の暗号化モジュールX(X={A,B})からの通信は、外部の暗号化モジュールY(=Xではない方)にしか向かうことがないように、仮想実行基盤10によって「強制」されればよい。
【0047】
このように二重に暗号化されたデータは、外部にあるストレージ400にアップロードされる。コンピュータA若しくはコンピュータBの何れか一方またはそれらの両方によって、外部にあるストレージ400にアップロードされてもよい。このようにして、データが外部で保管される。データが結合された上にさらに暗号化された状態になっていれば、情報漏洩のリスクを気にせずに、パブリッククラウドのストレージを利用しやすくなる。パブリッククラウドのストレージは、通常は安価で大容量で提供されている。
【0048】
図6は、本発明の方法を実行するにあたって、外部にあるストレージにおいて保管されているデータを復号化する方法を模式的に示す図である。外部にあるストレージ400から保管されているデータがダウンロードされる。コンピュータA若しくはコンピュータBの何れか一方またはそれらの両方によってダウンロードされてもよい。保管されているデータは、まず復号化モジュールAによって復号化され、次にそれに重ねて、復号化モジュールBによって復号化される。復号化の順番としては仮想実行基盤10によって「強制」されることになる。
【0049】
最終的に元のデータAB(結合データ)に復元される前には、代理復号化モジュールAが介在する。
【0050】
図7は、本発明の方法を実行するにあたって、外部にあるモジュールから内部にある代理モジュールへと、暗号化された情報を持ち込む具体的な手順を示す図である。
【0051】
外部からの入力は、代理復号化モジュールAにしか入ってこないように仮想実行基盤10によって「強制」されるが、かならずしもB→Aの順序である必要はなく、メモリ空間100の内部にある代理復号化モジュールX(X={A,B})に入っていく通信は、復号化を処理する“代理”として、外部にある復号化モジュールY(=Xでない方)からのものしか入ってこないように、仮想実行基盤10によって「強制」されていればよい。
【0052】
ただし、代理復号化モジュールAが復号化モジュールAと同様の機能を果たすためには、暗号化モジュールAにおいて暗号のために用いられた暗号のための鍵が、代理復号化モジュールAへ正確に伝えられる必要がある。これは、仮想実行基盤10の制御下にあるメモリ空間100の外部から内部へと「必要な瞬間だけ持ち込まれる」ようにしておけば、仮想実行基盤10が自分だけでは暗号と復号との両方を処理することができないという点において安全である。
【0053】
データABを取り込む際の具体的な手順(1)〜(8)は次の通りである。
(1)暗号化モジュールBが、データdを処理するものとする。
(2)暗号化モジュールBが、代理復号化モジュールAに空の封筒を要求する。空の封筒とは、封筒内に入れるデータを暗号化するための鍵Rを指す。
(3)代理復号化モジュールAは、乱数発生によりRを生成して、それをコンピュータAの公開鍵pk_Aで暗号化することにより、封筒データ:E(pk_A,R)を生成する。(ここでE(k,m)はメッセージmを鍵kを用いて暗号化することによって得られる暗号文の意)
(4)代理復号化モジュールAは、封筒データを暗号化モジュールBへ返す。
(5)暗号化モジュールBからのデータ取得要求(封筒データが添付されている)が、暗号化モジュールAへと通信が強制される。
(6)暗号化モジュールAは、データABの二重暗号化を解くためのAの鍵(K_Aとする)を代理復号化モジュールAへ暗号化した形式で送信したい。そのため、封筒データを、復号化モジュールAが持つコンピュータAの秘密鍵sk_Aで復号しRを得る。そしてそのRを用いてK_Aを暗号化することにより、E(R,K_A)を得る。
(7)E(R,K_A)は、復号化モジュールBへ送られ、復号化モジュールBは、データABの二重暗号化を解くためのBの鍵(K_Bとする)を使って1回暗号を解く。(この段階では、データABはまだK_Aで暗号化された状態のままである。)
(8)復号化モジュールBは、1回暗号が解かれK_Aで暗号化された状態のデータABとE(R,K_A)とを併せて仮想実行基盤へ送信する。その送信先は、仮想実行基盤によって代理復号化モジュールAに強制される。Rは代理復号化モジュールAが(3)において生成し保持している。従って、それを鍵として用いて、E(R,K_A)を復号(封筒を開封)すると、K_Aが復元できる。すなわち、(6)において外部の復号化モジュールAが送信したかったところのK_Aは、今や無事に代理復号モジュールAの手にあるので、それを使って最後の復号化を施し、データABを得ることができる。
【0054】
これら手順を通じて、復号化モジュールAのみが封筒に鍵を詰めることができ、代理復号化モジュールAのみが封筒から鍵を取り出すことができる。
【0055】
本発明は、コンピュータによって実行される方法若しくはプロセスまたはこれらを実行するための装置という態様で実施することができる。コンピュータとしては、仮想実行基盤10、コンピュータA20、コンピュータB30、第三者(監査法人)のコンピュータ500、が動作を制御する主体として説明してきた。しかし、メモリ空間100が仮想実行基盤10の制御下にあって仮想実行基盤10が主体的に「強制」を司っていること以外のことについては本発明では必須の要件ではなく、これらの主体の何れかに限定されなければ本発明の動作ができないというわけではない。
【0056】
図8は、メモリ空間100においてアップロードまたはダウンロードされるデータまたはモジュールと、それらの動作主体との関係を一覧にした図である。今までの説明のまとめにもなるが、この関係が説明しようとしていることは、仮想実行基盤10による「強制」以外は動作主体の自由度があるということである。一方では、人間の行為そのものが動作の主体になる場合を全面的に許容しているものでもないので、各国の特許要件に応じて、特許請求の範囲における動作主体の記載が許容されるべきである。当業者であれば、本発明の範囲を逸脱せずに、これらの主体が単独で動作を制御するように、または、これらの主体が協力して動作を制御するように、様々な変更や応用を想到することが可能であろう。
【0057】
なお、メモリ空間100における仮想実行基盤10の制御を、コンピュータに実行させるためのコードを備えたプログラムによって実現して、仮想実行基盤10またはその制御下にあるメモリ空間100として機能するコンポーネントの一部を担うプログラムとしてロードすることも可能である。または、メモリ空間100またはその仮想実行基盤10による制御について、(高速化を主たる目的として)ハードウエア化したワイヤードロジック(論理回路)として実現することも可能である。
【0058】
メモリ空間100の提供は、サービス・プロバイダとしての行為として、クラウド・サービスとして行うことができる。
【0059】
外部にあるストレージ400の提供は、保管のための記憶メディアをプロビジョニングするシステム(の一部)として捉えることができる。このプロビジョニングは、コンピュータA20の記憶容量が所定の限界を超えたとき、または、コンピュータB30の記憶容量が所定の限界を超えたときにおいて、自動的に行うようにすることもできる。
【符号の説明】
【0060】
10 仮想実行基盤
100 メモリ空間(仮想実行基盤の制御下にある)
20 コンピュータA(一つの金融機関が管理するコンピュータに相当)
30 コンピュータB(一つの別の金融機関が管理するコンピュータに相当)
200 メモリ空間(コンピュータAの制御下にある)
300 メモリ空間(コンピュータBの制御下にある)
400 外部にあるストレージ
500 第三者(監査法人など)のコンピュータ

【特許請求の範囲】
【請求項1】
複数のコンピュータ(コンピュータA,コンピュータB)の両方が仮想実行基盤にアクセス可能であって、この仮想実行基盤を利用することによって、複数のコンピュータ(コンピュータA,コンピュータB)の各々が独自に所有している複数のデータの両方から処理された結合データを、外部にあるストレージにおいて保管する方法であって、
コンピュータAが、コンピュータAにおいて独自に所有しているデータAを、仮想実行基盤による制御下にあるメモリ空間へとアップロードするステップと、
コンピュータBが、コンピュータBにおいて独自に所有しているデータBを、仮想実行基盤による制御下にあるメモリ空間へとアップロードするステップと、
仮想実行基盤の制御下において、コンピュータA若しくはコンピュータBによって、または、第三者のコンピュータによって、計算モジュールを、仮想実行基盤による制御下にあるメモリ空間へとアップロードするステップと、
仮想実行基盤の制御下において、コンピュータAまたはコンピュータBに対して、または、第三者のコンピュータに対して、データAとデータBから計算モジュールによってデータABを計算することを強制するステップと、
コンピュータAが、コンピュータAによってのみ制御可能な暗号化モジュールAを、コンピュータAの制御下にあるメモリ空間にアップロードするステップと、
コンピュータBが、コンピュータBによってのみ制御可能な暗号化モジュールBを、仮想実行基盤による制御下にあるメモリ空間へとアップロードするステップと、
仮想実行基盤の制御下において、コンピュータBに対して、データABを暗号化モジュールBによって暗号化することを強制するステップと、
コンピュータAが、暗号化モジュールBによって暗号化されたデータABをさらに、暗号化モジュールAによって二重に暗号化するステップと、
コンピュータAまたはコンピュータBが、二重に暗号化されたデータを外部にあるストレージにアップロードするステップと、
を有する、
方法。
【請求項2】
コンピュータAが、コンピュータAによってのみ制御可能な復号化モジュールAを、コンピュータAの制御下にあるメモリ空間にアップロードするステップと、
コンピュータBが、コンピュータBによってのみ制御可能な復号化モジュールBを、コンピュータBの制御下にあるメモリ空間にアップロードするステップと、
コンピュータAまたはコンピュータBが、二重に暗号化されたデータを外部にあるストレージからダウンロードするステップと、
コンピュータAが、ダウンロードされたデータを復号化モジュールAによって復号化するステップと、
コンピュータBが、ダウンロードされたデータを復号化モジュールBによって復号化するステップと、
仮想実行基盤の制御下において、コンピュータAに対して、復号化モジュールBによって復号化されたデータを処理することを強制するステップと、
を有する
請求項1に記載の方法。
【請求項3】
コンピュータAが、コンピュータAによってのみ制御可能な代理復号化モジュールAを、仮想実行基盤による制御下にあるメモリ空間へとアップロードするステップと、
代理復号化モジュールAによって、処理が強制されているデータを復号化する、
請求項2に記載の方法。
【請求項4】
暗号化モジュールAにおいて暗号のために用いられた暗号のための鍵が、代理復号化モジュールAへ暗号化されて送信される、
請求項3に記載の方法。
【請求項5】
仮想実行基盤による制御下において、データAがアップロードされている単位空間へはコンピュータBがアクセスすることができないように設定するステップと、
仮想実行基盤による制御下において、データBがアップロードされている単位空間へはコンピュータAがアクセスすることができないように設定するステップと、
を有する、
請求項1に記載の方法。
【請求項6】
メモリ空間を有し、メモリ空間を制御する仮想実行基盤であって、
複数のコンピュータ(コンピュータA、コンピュータB)からのデータやモジュールをアップロードまたはダウンロードすることができる複数の単位空間を提供し、
複数の単位空間の各々についてアクセス可能な主体を設定することができ、
ある単位空間にアップロードされている状態にあるデータやモジュールから、別の単位空間にアップロードされている状態にあるデータやモジュールへの通信の結線と向きを制御することができる、
仮想実行基盤。
【請求項7】
さらに、
複数のコンピュータ(コンピュータA、コンピュータB)の制御下にある単位空間に対しても、仮想実行基盤が制御するメモリ空間を含め、ある単位空間にアップロードされている状態にあるデータやモジュールから、別の単位空間にアップロードされている状態にあるデータやモジュールへの通信の結線と向きを制御することができる、
請求項6に記載の仮想実行基盤。
【請求項8】
仮想実行基盤または仮想実行基盤により制御されるメモリ空間にロードされるコンピュータ・プログラムであって、
コンピュータに実行させるコードとして、
複数のコンピュータ(コンピュータA、コンピュータB)からのデータやモジュールをアップロードまたはダウンロードすることができる複数の単位空間を提供するコードと、
複数の単位空間の各々についてアクセス可能な主体を設定するコードと、
ある単位空間にアップロードされている状態にあるデータやモジュールから、別の単位空間にアップロードされている状態にあるデータやモジュールへの通信の結線と向きを制御することができるコードと、
を有する、
コンピュータ・プログラム。
【請求項9】
複数のコンピュータ(コンピュータA,コンピュータB)の両方が仮想実行基盤にアクセス可能であって、この仮想実行基盤を利用することによって、複数のコンピュータ(コンピュータA,コンピュータB)の各々が独自に所有している複数のデータの両方から処理された結合データを、第三者にのみいて保管する方法であって、
コンピュータAが、コンピュータAにおいて独自に所有しているデータAを、仮想実行基盤による制御下にあるメモリ空間へとアップロードするステップと、
コンピュータBが、コンピュータBにおいて独自に所有しているデータBを、仮想実行基盤による制御下にあるメモリ空間へとアップロードするステップと、
仮想実行基盤の制御下において、コンピュータA若しくはコンピュータBによって、または、第三者のコンピュータによって、計算モジュールを、仮想実行基盤による制御下にあるメモリ空間へとアップロードするステップと、
仮想実行基盤の制御下において、コンピュータAまたはコンピュータBに対して、または、第三者のコンピュータに対して、データAとデータBから計算モジュールによってデータABを計算することを強制するステップと、
仮想実行基盤による制御下において、データABがアップロードされている単位空間へは第三者のコンピュータのみがアクセスすることができるように設定するステップと、
を有する、
方法。
【請求項10】
第三者のコンピュータによって、計算モジュールを、仮想実行基盤による制御下にあるメモリ空間へとアップロードするステップと、
仮想実行基盤の制御下において、第三者のコンピュータに対して、データAとデータBから計算モジュールによってデータABを計算することを強制するステップと、
を有する、
請求項9に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−14403(P2012−14403A)
【公開日】平成24年1月19日(2012.1.19)
【国際特許分類】
【出願番号】特願2010−149939(P2010−149939)
【出願日】平成22年6月30日(2010.6.30)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】