(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024118257
(43)【公開日】2024-08-30
(54)【発明の名称】情報処理システム、情報処理装置、及び情報処理プログラム
(51)【国際特許分類】
G06F 21/60 20130101AFI20240823BHJP
G09C 1/00 20060101ALI20240823BHJP
【FI】
G06F21/60 320
G09C1/00 660D
G09C1/00 650Z
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023024599
(22)【出願日】2023-02-20
(71)【出願人】
【識別番号】500302552
【氏名又は名称】株式会社IHIエアロスペース
(74)【代理人】
【識別番号】100147485
【弁理士】
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】230118913
【弁護士】
【氏名又は名称】杉村 光嗣
(74)【代理人】
【識別番号】100195534
【弁理士】
【氏名又は名称】内海 一成
(72)【発明者】
【氏名】高橋 吉郎
(72)【発明者】
【氏名】山▲崎▼ 知康
(72)【発明者】
【氏名】若松 秀樹
(57)【要約】
【課題】格納したデータの安全性を高める情報処理システム、情報処理装置、及び情報処理プログラムを提供する。
【解決手段】情報処理システム1は、複数の情報処理装置2を備える。第1情報処理装置は、対象データを符号化する指示を、1以上の第2情報処理装置に出力する。第2情報処理装置は、第1情報処理装置からの指示に基づいて対象データを符号化する処理の少なくとも一部を実行し、符号化済データを、2以上の第3情報処理装置のそれぞれに格納する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数の情報処理装置を備え、
前記複数の情報処理装置のうちの1台の情報処理装置である第1情報処理装置は、対象データを符号化する指示を、前記複数の情報処理装置のうちの1以上の情報処理装置である第2情報処理装置に出力し、
前記第2情報処理装置は、前記第1情報処理装置からの指示に基づいて前記対象データを符号化する処理の少なくとも一部を実行し、符号化済データを、前記複数の情報処理装置のうちの2以上の情報処理装置である第3情報処理装置のそれぞれに格納する、
情報処理システム。
【請求項2】
前記第1情報処理装置は、
前記対象データを分割して複数の分割データを生成し、
前記対象データを符号化する指示と前記複数の分割データのうち少なくとも1つの分割データとを合わせて、前記第2情報処理装置に出力する、
請求項1に記載の情報処理システム。
【請求項3】
前記第2情報処理装置は、
前記対象データの符号化を、3以上のアプリケーションそれぞれで並列に実行させ、
前記3以上のアプリケーションのそれぞれによって得られた符号化済データのうち、最も多くのアプリケーションで一致した符号化済データを前記第3情報処理装置に格納する、請求項1に記載の情報処理システム。
【請求項4】
複数の情報処理装置を備え、
前記複数の情報処理装置のうちの1台の情報処理装置である第1情報処理装置は、符号化済データから対象データを復元する指示を、前記複数の情報処理装置のうちの1以上の情報処理装置である第2情報処理装置に出力し、
前記第2情報処理装置は、前記複数の情報処理装置のうちの2以上の情報処理装置である第3情報処理装置のそれぞれに格納されている前記符号化済データを取得し、前記符号化済データから前記対象データを復元する処理の少なくとも一部を実行する、
情報処理システム。
【請求項5】
前記第2情報処理装置は、
前記対象データの復元を、3以上のアプリケーションそれぞれで並列に実行させ、
前記3以上のアプリケーションによって復元された復元データのうち、最も多くのアプリケーションで一致した復元データを前記対象データの復元結果として出力する、
請求項4に記載の情報処理システム。
【請求項6】
前記第1情報処理装置は、前記第2情報処理装置としての1台以上の情報処理装置を、前記複数の情報処理装置の中から、前記複数の情報処理装置それぞれの状態に基づいて選択する、請求項1から5までのいずれか一項に記載の情報処理システム。
【請求項7】
クライアント装置から対象データを符号化する指示を取得するインタフェースと、
前記クライアント装置からの指示に基づいて前記対象データを符号化する処理の少なくとも一部を実行するプロセッサと
を備え、
前記プロセッサは、符号化済データを、前記インタフェースを介して、2以上のデータ格納装置のそれぞれに格納する、情報処理装置。
【請求項8】
クライアント装置から、符号化済データから対象データを復元する指示を取得するインタフェースと、
前記クライアント装置からの指示に基づいて、前記インタフェースを介して、2以上のデータ格納装置のそれぞれに格納されている前記符号化済データを取得し、
前記符号化済データから前記対象データを復元する処理の少なくとも一部を実行するプロセッサと
を備える、情報処理装置。
【請求項9】
クライアント装置から対象データを符号化する指示を、インタフェースを介して取得することと、
前記クライアント装置からの指示に基づいて、前記対象データを符号化する処理の少なくとも一部を実行することと、
符号化済データを、2以上のデータ格納装置のそれぞれに、前記インタフェースを介して格納することと
をプロセッサに実行させる情報処理プログラム。
【請求項10】
クライアント装置から、符号化済データから対象データを復元する指示を、インタフェースを介して取得することと、
前記クライアント装置からの指示に基づいて、2以上のデータ格納装置のそれぞれに格納されている前記符号化済データを、前記インタフェースを介して取得することと、
前記符号化済データから前記対象データを復元する処理の少なくとも一部を実行することと
をプロセッサに実行させる情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理システム、情報処理装置、及び情報処理プログラムに関する。
【背景技術】
【0002】
従来、メインコントローラがデータを分散処理して分散データを生成して分散して保管するシステムが知られている。例えば特許文献1には、分散データを復元するために用いる分散情報を、分散データと対応づけてシェアホルダに保管するシステムが開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載されているシステムにおいて、各シェアホルダから分散データと分散情報とがまとめて不正に取得されることによって、元のデータが不正に復元されて流出するリスクが高まる。データの安全性の向上が求められる。
【0005】
かかる事情に鑑みてなされた本開示の目的は、格納したデータの安全性を高めることにある。
【課題を解決するための手段】
【0006】
本開示の一実施形態に係る情報処理システムは、複数の情報処理装置を備える。前記複数の情報処理装置のうちの1台の情報処理装置である第1情報処理装置は、対象データを符号化する指示を、前記複数の情報処理装置のうちの1以上の情報処理装置である第2情報処理装置に出力する。前記第2情報処理装置は、前記第1情報処理装置からの指示に基づいて前記対象データを符号化する処理の少なくとも一部を実行し、符号化済データを、前記複数の情報処理装置のうちの2以上の情報処理装置である第3情報処理装置のそれぞれに格納する。
【0007】
本開示の一実施形態に係る情報処理システムは、複数の情報処理装置を備える。前記複数の情報処理装置のうちの1台の情報処理装置である第1情報処理装置は、符号化済データから対象データを復元する指示を、前記複数の情報処理装置のうちの1以上の情報処理装置である第2情報処理装置に出力する。前記第2情報処理装置は、前記複数の情報処理装置のうちの2以上の情報処理装置である第3情報処理装置のそれぞれに格納されている前記符号化済データを取得し、前記符号化済データから前記対象データを復元する処理の少なくとも一部を実行する。
【0008】
本開示の一実施形態に係る情報処理装置は、クライアント装置から対象データを符号化する指示を取得するインタフェースと、前記クライアント装置からの指示に基づいて前記対象データを符号化する処理の少なくとも一部を実行するプロセッサとを備える。前記プロセッサは、符号化済データを、前記インタフェースを介して、2以上のデータ格納装置のそれぞれに格納する。
【0009】
本開示の一実施形態に係る情報処理装置は、クライアント装置から、符号化済データから対象データを復元する指示を取得するインタフェースと、プロセッサとを備える。前記プロセッサは、前記クライアント装置からの指示に基づいて、前記インタフェースを介して、2以上のデータ格納装置のそれぞれに格納されている前記符号化済データを取得し、前記符号化済データから前記対象データを復元する処理の少なくとも一部を実行する。
【0010】
本開示の一実施形態に係る情報処理プログラムは、クライアント装置から対象データを符号化する指示を、インタフェースを介して取得することと、前記クライアント装置からの指示に基づいて、前記対象データを符号化する処理の少なくとも一部を実行することと、符号化済データを、2以上のデータ格納装置のそれぞれに、前記インタフェースを介して格納することとをプロセッサに実行させる。
【0011】
本開示の一実施形態に係る情報処理プログラムは、クライアント装置から、符号化済データから対象データを復元する指示を、インタフェースを介して取得することと、前記クライアント装置からの指示に基づいて、2以上のデータ格納装置のそれぞれに格納されている前記符号化済データを、前記インタフェースを介して取得することと、前記符号化済データから前記対象データを復元する処理の少なくとも一部を実行することとをプロセッサに実行させる。
【発明の効果】
【0012】
本開示の一実施形態に係る情報処理システム、情報処理装置、及び情報処理プログラムによれば、格納したデータの安全性が高められる。
【図面の簡単な説明】
【0013】
【
図1】本開示の一実施形態に係る情報処理システムの概略構成例を示すブロック図である。
【
図3】情報を記録するブロックを含むブロックチェーンの模式図である。
【
図4】プロキシアプリケーションによって対象データを符号化する手順例を示すフローチャートである。
【
図5】プロキシアプリケーションによって対象データを復元する手順例を示すフローチャートである。
【
図6】複数のプロキシアプリケーションを動作させる情報処理システムの構成例を示すブロック図である。
【
図7】管理アプリケーションを動作させる情報処理システムの構成例を示すブロック図である。
【
図8】管理アプリケーションによって符号化処理を分散する手順例を示すフローチャートである。
【
図9】3つ以上のプロキシアプリケーションの処理結果の多数決をとる処理の手順例を示すフローチャートである。
【発明を実施するための形態】
【0014】
(情報処理システム1の概要)
一実施形態に係る情報処理システム1(
図1参照)は、対象となるデータを秘匿して格納できる。秘匿の対象となるデータは、対象データとも称される。具体的に、情報処理システム1は、所定のアルゴリズムに基づいて対象データを符号化する。所定のアルゴリズムは、符号化情報とも称される。符号化情報は、対象データを符号化するプログラムそのものを含んでもよい。対象データを符号化するプログラムは、スマートコントラクトとも称される。符号化されたデータは、符号化済データとも称される。情報処理システム1は、符号化済データを複数の情報処理装置2(
図1参照)に分散して格納する。また、情報処理システム1は、符号化情報を、複数の情報処理装置2が管理するブロックチェーンに記録する。このようにすることで、対象データを秘匿して格納する際に、格納した対象データの安全性を高めることができる。以下、情報処理システム1の構成例及び動作例が説明される。
【0015】
(情報処理システム1の構成例)
図1に示されるように、一実施形態に係る情報処理システム1は、複数の情報処理装置2を備える。情報処理装置2は、情報処理装置2A、2B、2C、2D及び2Eを含むとする。情報処理装置2A~2Eは、互いに区別する必要がない場合、単に情報処理装置2と称される。情報処理装置2の数は、5台に限られず4台以下であってもよいし6台以上であってもよい。
【0016】
情報処理装置2は、ネットワーク10(
図2参照)を介して互いに通信可能に接続されてよい。ネットワーク10は、例えばインターネット又はイントラネット等であってよい。各情報処理装置2は、分散型ネットワークのピアとして機能する。言い換えれば、情報処理システム1は、各々が分散型ネットワークのピアとして機能する複数の情報処理装置2を備える。以下、本実施形態に係る情報処理システム1が実現する分散型ネットワークは、ブロックチェーンネットワークであるとして説明される。ブロックチェーンネットワークを用いた説明は一例である。分散型ネットワークは、ブロックチェーンネットワークに限られず、例えば分散型データベース又は分散型台帳等を実現するネットワークであってよい。
【0017】
本実施形態において、ブロックチェーンネットワークは、コンソーシアム型ブロックチェーンであるとするが他の形式であってもよい。情報処理装置2は、互いにP2P(Peer to Peer)通信で接続されるが他の通信方式で接続されてもよい。情報処理装置2は、P2P通信におけるノードとも称される。
【0018】
図2に示されるように、情報処理装置2は、制御部21と、記憶部22と、通信部23と、出力部24と、入力部25とを備える。通信部23、出力部24及び入力部25は、インタフェースとも総称される。
【0019】
制御部21は、1つ以上のプロセッサ、1つ以上のプログラマブル回路、1つ以上の専用回路、又はこれらの組合せを含んで構成されてよい。プロセッサは、例えばCPU(Central Processing Unit)若しくはGPU(Graphics Processing Unit)等の汎用プロセッサ、又は所定の処理に特化した専用プロセッサであってよいがこれらに限られない。プログラマブル回路は、例えばFPGA(Field-Programmable Gate Array)であってよいがこれに限られない。専用回路は、例えばASIC(Application Specific Integrated Circuit)であってよいがこれに限られない。
【0020】
記憶部22は、1つ以上のメモリを含んで構成されてよい。メモリは、例えば半導体メモリ、磁気メモリ、又は光メモリ等を含んでよいがこれらに限られない。記憶部22は、磁気ディスク等の電磁記憶媒体を含んで構成されてもよい。記憶部22は、例えば、制御部21の主記憶装置、補助記憶装置又はキャッシュメモリ等として機能してよい。記憶部22は、情報処理装置2の動作に用いられる任意の情報を記憶する。例えば、記憶部22は、システムプログラム及びアプリケーションプログラム等を記憶してもよい。
【0021】
通信部23は、ネットワーク10を介して他の情報処理装置2と通信する1つ以上の通信インタフェースを含んで構成されてよい。通信インタフェースは、例えば4G(4th Generation)若しくは5G(5th Generation)等の移動体通信規格、有線LAN(Local Area Network)規格、又は無線LAN規格等の種々の通信規格に基づいて通信可能に構成されてよい。
【0022】
出力部24は、情報をユーザが認識可能となるように出力する1つ以上の出力デバイスを含んで構成されてよい。出力デバイスは、例えば情報を画像又は文字若しくは記号等として表示するディスプレイ、又は、情報を音声として出力するスピーカ等を含んでよい。出力デバイスは、これらに限られず他の種々のデバイスを含んでよい。
【0023】
入力部25は、情報処理装置2においてユーザの操作入力を受け付ける1つ以上の入力デバイスを含んで構成されてよい。入力デバイスは、例えば物理キー、静電容量キー、出力部24のディスプレイと一体的に設けられたタッチスクリーン、音声入力を受け付けるマイク、又はカメラ等を含んでよい。入力デバイスは、これらに限られず他の種々のデバイスを含んでよい。
【0024】
情報処理システム1は、記憶装置5を更に備える。記憶装置5は、磁気ディスク等の電磁記憶媒体を含んで構成されてよい。記憶装置5は、1つ以上のメモリを含んで構成されてよい。メモリは、情報処理装置2の記憶部22と同一又は類似に構成されてよい。記憶装置5は、情報処理装置2の記憶部22と一体に構成されてもよいし、記憶部22と別体として構成されてもよい。情報処理装置2の記憶部22が記憶装置5の機能を実現してもよい。
【0025】
情報処理装置2は、記憶装置5に接続される。情報処理装置2は、ブロックチェーンに関する情報を記憶装置5に格納する。例えば
図3に示されるように、記憶装置5は、ブロックチェーンに関する情報として、ブロックチェーンに連結されるブロック4A~4Cの情報を格納する。ブロック4A~4Cは、互いに区別する必要がない場合、単にブロック4と称される。
【0026】
記憶装置5は、第1記憶領域51と第2記憶領域52とを有してよい。第1記憶領域51と第2記憶領域52とは、記憶装置5内で物理的に分離された領域であってもよいし、論理的に分離された領域であってもよい。第1記憶領域51と第2記憶領域52とは、記憶装置5が複数のメモリ又は媒体を含んで構成される場合に、それぞれ異なるメモリ又は媒体に対応づけられてよい。本実施形態において、記憶装置5は、第1記憶領域51にブロック4の情報を格納し、第2記憶領域52に後述する符号化済データを格納する。つまり、本実施形態において、記憶装置5は、ブロック4の情報と符号化済データとをそれぞれ記憶する領域を分ける。記憶装置5は、ブロック4の情報と符号化済データとを記憶する領域を分けなくてもよい。
【0027】
図1に例示される情報処理システム1において、情報処理装置2C、2D及び2Eのそれぞれは、ブロックチェーンに関する情報としてブロック4の情報を情報処理装置2C、2D及び2Eのそれぞれに接続される記憶装置5に格納する。つまり、情報処理装置2C、2D及び2Eのそれぞれは、ブロックチェーンネットワークのストレージとして機能する。情報処理装置2Cと記憶装置5とを組み合わせた構成は、チャネル3Cとも称される。情報処理装置2Dと記憶装置5とを組み合わせた構成は、チャネル3Dとも称される。情報処理装置2Eと記憶装置5とを組み合わせた構成は、チャネル3Eとも称される。チャネル3C、3D及び3Eは、互いに区別されない場合、単にチャネル3とも称される。1つのチャネル3は、1台の情報処理装置2とその情報処理装置2に接続される記憶装置5との組み合わせとして構成されてもよいし、複数の情報処理装置2と各情報処理装置2に接続される記憶装置5との組み合わせとして構成されてもよい。情報処理装置2A又は2Bが記憶装置5とともにチャネル3として機能してもよい。また、他の情報処理装置2が記憶装置5とともにチャネル3として機能してもよい。言い換えれば、情報処理システム1において、各情報処理装置2は、ブロックチェーンネットワークのピアとして機能するだけでなく、符号化済データを格納するストレージとしても機能する。
【0028】
各情報処理装置2は、
図3に示されるように記憶装置5に格納したブロック4A~4Cに新たなブロック4Dを連結する場合、ブロック4Dのハッシュ値を計算することによって互いに新たなブロック4Dの連結を承認する。また、各情報処理装置2は、記憶装置5に格納した各ブロック4のハッシュ値を計算することによって各ブロック4の情報が改ざんされていないことを確認する。各情報処理装置2は、以上のように動作することによって、ブロックチェーンを管理するブロックチェーンネットワークのピアとして機能する。
【0029】
(情報処理システム1の動作例)
情報処理システム1は、対象データを符号化した符号化済データを格納する格納動作と、格納した符号化済データを復号することによって対象データを復元して読み出す読み出し動作とを実行する。情報処理システム1は、格納動作において、対象データの符号化の指示と、対象データを符号化する処理の少なくとも一部とを、それぞれ別の情報処理装置2によって実行し、符号化済データを更に別の情報処理装置2に格納する。情報処理システム1は、読み出し動作において、対象データの復元の指示と、符号化済データを復号する処理の少なくとも一部とを、それぞれ別の情報処理装置2によって実行することによって対象データを復元する。対象データの符号化又は復元を指示する情報処理装置2は、第1情報処理装置、又は、クライアント装置とも称される。対象データを符号化する処理の少なくとも一部又は符号化済データを復号する処理の少なくとも一部を実行する情報処理装置2は、第2情報処理装置とも称される。符号化済データを格納する情報処理装置2は、第3情報処理装置、又は、データ格納装置とも称される。
【0030】
<格納動作の構成例>
図1に示されるように、情報処理装置2Aの制御部21は、クライアントアプリケーション32を動作させる。情報処理装置2Aの制御部21において、クライアントアプリケーション32は、操作者8(
図1参照)から対象データを秘匿して格納する指示に関する操作入力を入力部25によって受け付ける。クライアントアプリケーション32は、操作者8の操作入力に応じて、対象データを符号化する指示を情報処理装置2Bに出力する。この場合、情報処理装置2Aが第1情報処理装置に対応する。情報処理装置2Bが第2情報処理装置に対応する。
【0031】
情報処理装置2Bの制御部21は、対象データの符号化を実行するプロキシアプリケーション42(
図1参照)を起動する。プロキシアプリケーション42は、単にアプリケーションとも称される。情報処理装置2Bの制御部21において、プロキシアプリケーション42は、対象データを符号化する処理の少なくとも一部を実行する。プロキシアプリケーション42は、対象データを符号化する処理の全てを実行してよいし、対象データを符号化する処理の一部だけを実行してよい。プロキシアプリケーション42が対象データを符号化する処理の一部だけを実行する場合、対象データを符号化する処理の残りの部分は、情報処理装置2Aの制御部21のクライアントアプリケーション32によって実行されてよいし、他の情報処理装置2の制御部21のプロキシアプリケーション42によって実行されてよい。
【0032】
プロキシアプリケーション42は、情報処理装置2Bだけで、又は、情報処理装置2Bと他の情報処理装置2との分散処理で対象データを符号化することによって、複数の符号化済データを生成する。プロキシアプリケーション42は、生成した複数の符号化済データを、複数の情報処理装置2C、2D及び2Eに分けて出力する。情報処理装置2C、2D及び2Eのそれぞれの制御部21は、情報処理装置2Bによって生成された複数の符号化済データの一部を記憶装置5に格納する。つまり、複数の符号化済データは、情報処理装置2C、2D及び2Eのそれぞれに接続される記憶装置5に分散して格納される。
【0033】
情報処理装置2Bの制御部21は、情報処理装置2Aからの指示に応じて対象データを符号化するために、例えば
図4にフローチャートとして示される情報処理方法の各手順を実行してよい。情報処理方法は、情報処理装置2Bの制御部21が実行する情報処理プログラムとして実現されてもよい。情報処理プログラムは、非一時的なコンピュータ読み取り可能媒体に格納されてもよい。
【0034】
情報処理装置2Bの制御部21は、情報処理装置2Aから対象データを符号化する指示を取得した場合、対象データを符号化するプロキシアプリケーション42を起動する(ステップS1)。
【0035】
情報処理装置2Bの制御部21において、プロキシアプリケーション42は、対象データを符号化するために用いる符号化情報を生成する(ステップS2)。具体的に、符号化情報は、制御部21が対象データを符号化して対象データの秘匿性を高めるために用いるアルゴリズムを特定する情報に対応する。つまり、プロキシアプリケーション42は、対象データを符号化するために用いるアルゴリズムを生成する。対象データを符号化するために用いるアルゴリズムは、符号化アルゴリズムとも称される。
【0036】
符号化アルゴリズムは、対象データの秘匿性を高めることができる種々の方式のアルゴリズムを含んでよい。符号化アルゴリズムは、例えば、対象データを分割するアルゴリズムを含んでよい。符号化アルゴリズムは、例えば、対象データを所定のマスクデータでマスクするアルゴリズムを含んでよい。符号化アルゴリズムは、例えば、対象データを暗号化するアルゴリズムを含んでよい。対象データを暗号化するアルゴリズムは、暗号化に用いられる鍵データを含んでもよい。
【0037】
情報処理装置2Bの制御部21は、符号化アルゴリズムをランダムに生成してよい。例えば、情報処理装置2Bの制御部21は、アルゴリズムの方式そのものをランダムに生成してもよい。情報処理装置2Bの制御部21は、あらかじめ定められた方式の中からどの方式のアルゴリズムを採用するかランダムに決定することによって、符号化アルゴリズムをランダムに生成してもよい。また、情報処理装置2Bの制御部21は、各方式のアルゴリズムにおいて、対象データを符号化する具体的なルールをランダムに決定してよい。情報処理装置2Bの制御部21は、符号化アルゴリズムが対象データを暗号化するアルゴリズムを含む場合、暗号化に用いられる鍵データをランダムに決定してよい。情報処理装置2Bの制御部21は、擬似乱数を発生させ、擬似乱数に基づいて符号化アルゴリズムをランダムに決定してもよい。情報処理装置2Bの制御部21は、熱雑音等に基づく乱数発生器で生成された乱数に基づいて符号化アルゴリズムをランダムに決定してもよい。
【0038】
情報処理装置2Bの制御部21において、プロキシアプリケーション42は、生成した符号化情報に基づいて対象データを符号化する(ステップS3)。符号化された対象データは、符号化済データとも称される。本実施形態に係る情報処理システム1において、プロキシアプリケーション42は、符号化済データを複数に分割した、複数の符号化済データを生成する。
【0039】
対象データが所定のマスクデータでマスクされた場合、符号化済データは、マスクしたデータと、マスクされたデータとを含む。マスクデータの数は、1個であってもよいし、2個以上であってもよい。
【0040】
対象データが暗号化された場合、符号化済データは、暗号化したデータを含む。暗号化したデータは、1個であってもよいし、2個以上であってもよい。符号化済データは、暗号化に用いられる鍵データの一部を含んでよい。暗号化に用いられる鍵データの少なくとも一部は、符号化情報に含まれてよい。
【0041】
情報処理装置2Bの制御部21において、プロキシアプリケーション42は、情報処理システム1において符号化済データを格納する単位として、チャネル3を設定する(ステップS4)。プロキシアプリケーション42は、対象データを符号化することによって生成した符号化済データの数と同じ数又は多い数のチャネル3を設定してよい。プロキシアプリケーション42は、例えば3つの符号化済データを生成した場合、3つのチャネル3を設定してよい。
【0042】
情報処理装置2Bの制御部21において、プロキシアプリケーション42は、各チャネル3への情報処理装置2の所属を決定する(ステップS5)。各チャネル3に所属する情報処理装置2の数は、1台であってもよいし2台以上であってもよい。各チャネル3に所属する情報処理装置2の数は、後述するように、3以上の奇数台であってもよい。情報処理装置2Bの制御部21は、情報処理装置2B自身をチャネル3に割り当ててもよい。
図1に例示される構成において、情報処理装置2Bの制御部21は、情報処理装置2Cをチャネル3Cに所属させ、情報処理装置2Dをチャネル3Dに所属させ、情報処理装置2Eをチャネル3Eに所属させる。各チャネル3に所属する情報処理装置2の組み合わせは、
図1に例示された組み合わせに限られず、他の種々の組み合わせであってよい。
【0043】
情報処理装置2Bの制御部21において、プロキシアプリケーション42は、各チャネル3に所属する情報処理装置2に符号化済データを出力する(ステップS6)。プロキシアプリケーション42は、1つの符号化済データを少なくとも1つのチャネル3に出力してよい。各チャネル3に所属する情報処理装置2は、取得した符号化済データを記憶装置5に格納する。記憶装置5は、符号化済データを第2記憶領域52に格納する。ブロックチェーンのブロック4が第1記憶領域51に格納されている場合、情報処理装置2は、ブロックチェーンネットワークと分離して符号化済データを記憶装置5に格納する。
【0044】
情報処理装置2Bの制御部21において、プロキシアプリケーション42は、符号化情報をブロックチェーンに記録する(ステップS7)。具体的に、プロキシアプリケーション42は、符号化情報を記録するブロック4を生成し、各情報処理装置2に出力する。例えば、
図3に示されるようにブロック4A、4B及び4Cがブロックチェーンにつなげられている場合、プロキシアプリケーション42は、符号化情報を記録する新たなブロック4Dを生成して各情報処理装置2に出力してよい。各情報処理装置2は、ブロック4Dをブロック4Cにつなぐ。各情報処理装置2の記憶装置5は、第1記憶領域51にブロック4Dを記憶し、ブロックチェーンにブロック4Dをつなぐ。符号化情報を記録したブロック4Dをブロックチェーンにつなぐことによって、符号化情報がブロックチェーンに記録される。
【0045】
情報処理装置2Bの制御部21は、対象データ及び符号化済データを消去して秘匿性を高めるために、プロキシアプリケーション42を消去する(ステップS8)。情報処理装置2Bの制御部21は、ステップS8の手順の終了後、
図4のフローチャートの手順の実行を終了する。
【0046】
情報処理装置2Bの制御部21が
図4のフローチャートの手順を実行することによって、情報処理システム1は、対象データを符号化し、符号化済データをチャネル3に分散して格納し、符号化情報をブロックチェーンに記録できる。つまり、
図4のフローチャートの各手順は、対象データを符号化して格納するまでの手順に対応する。
【0047】
以上述べてきたように、対象データを符号化する処理の少なくとも一部が、対象データの符号化を指示する情報処理装置2と異なる情報処理装置2によって実行されることによって、符号化処理が分散される。符号化処理の分散によって符号化情報又は符号化済データが第三者に不正に取得されるリスクが低減され得る。その結果、対象データの秘匿性又は安全性が向上し得る。
【0048】
<読み出し動作の構成例>
情報処理システム1の少なくとも1台の情報処理装置2は、情報処理システム1の各情報処理装置2の記憶装置5が記憶している符号化済データを取得して復号することによって対象データを復元して読み出し得る。以下、情報処理装置2Aが符号化済データを復号する動作例が説明される。
【0049】
情報処理装置2Aの制御部21は、クライアントアプリケーション32を動作させる。情報処理装置2Aの制御部21において、クライアントアプリケーション32は、操作者8(
図1参照)から対象データを復元して読み出す指示に関する操作入力を入力部25によって受け付ける。クライアントアプリケーション32は、操作者8の操作入力に応じて、対象データを復元する指示を情報処理装置2Bに出力する。この場合、情報処理装置2Aが第1情報処理装置に対応する。情報処理装置2Bが第2情報処理装置に対応する。
【0050】
情報処理装置2Bの制御部21は、符号化済データを復号して対象データを復元するプロキシアプリケーション42(
図1参照)を起動する。情報処理装置2Bの制御部21において、プロキシアプリケーション42は、符号化済データを復号する処理の少なくとも一部を実行する。プロキシアプリケーション42は、対象データを復号する処理の全てを実行してよいし、符号化済データを復号して対象データを復元する処理の一部だけを実行してよい。プロキシアプリケーション42が符号化済データを復号して対象データを復元する処理の一部だけを実行する場合、符号化済データを復号して対象データを復元する処理の残りの部分は、情報処理装置2Aの制御部21のクライアントアプリケーション32によって実行されてよいし、他の情報処理装置2の制御部21のプロキシアプリケーション42によって実行されてよい。
【0051】
情報処理装置2Bの制御部21は、情報処理装置2Aからの指示に応じて符号化済データを復号するために、例えば
図5にフローチャートとして示される情報処理方法の各手順を実行してよい。情報処理方法は、情報処理装置2Bの制御部21が実行する情報処理プログラムとして実現されてもよい。情報処理プログラムは、非一時的なコンピュータ読み取り可能媒体に格納されてもよい。
【0052】
情報処理装置2Bの制御部21は、情報処理装置2Aから符号化済データを復号して対象データを復元する指示を取得した場合、符号化済データを復号するプロキシアプリケーション42を起動する(ステップS11)。
【0053】
情報処理装置2Bの制御部21においてプロキシアプリケーション42は、ブロックチェーンに記録されている符号化情報を取得する(ステップS12)。プロキシアプリケーション42は、復元する対象データを符号化するときに用いられた符号化情報を特定する。符号化情報を特定する情報は、情報処理装置2Aによって操作者8が対象データの取得を指示するときに操作者8によって指定されてよい。
【0054】
情報処理装置2Bの制御部21において、プロキシアプリケーション42は、対象データを復元するために必要な符号化済データを取得するために、符号化済データを識別するための識別データを生成して各情報処理装置2に通知する(ステップS13)。符号化済データは、それ単体で符号化情報との関係がわからないように構成されている。識別データは、対象データを復元するために必要な符号化済データを識別できるように符号化済データに対応づけられている。各情報処理装置2の制御部21は、識別データに対応づけられている符号化済データを、情報処理装置2Bから要求される符号化済データとして特定して出力できる。具体的に、各情報処理装置2の制御部21は、通知された識別データに対応づけられている符号化済データが記憶装置5に記憶されているか確認する。各情報処理装置2の制御部21は、識別データに対応づけられている符号化済データが記憶装置5に記憶されている場合、その符号化済データを記憶装置5から読み出して情報処理装置2Bに出力する。言い換えれば、識別データを認識した情報処理装置2が識別データに対応する符号化済データを出力する。各情報処理装置2の制御部21は、識別データに対応づけられている符号化済データを記憶装置5に格納していない場合、符号化済データを出力しなくてよい。
【0055】
情報処理装置2Bの制御部21において、プロキシアプリケーション42は、識別データを認識した情報処理装置2から符号化済データを取得する(ステップS14)。プロキシアプリケーション42は、各チャネル3に所属する複数の情報処理装置2から同一の符号化済データを取得する場合、1つのチャネル3に所属する各情報処理装置2から取得した符号化済データに基づいて、そのチャネル3の符号化済データを取得する。仮に1つのチャネル3に所属する一部の情報処理装置2から取得した符号化済データが他の情報処理装置2と異なる場合、プロキシアプリケーション42は、多数の情報処理装置2から取得した符号化済データをそのチャネル3の符号化済データとして採用してよい。プロキシアプリケーション42は、少数の情報処理装置2から取得した符号化済データを破棄してもよい。
【0056】
情報処理装置2Bの制御部21において、プロキシアプリケーション42は、符号化情報に基づいて、各情報処理装置2から取得した符号化済データを復号し、対象データを復元する(ステップS15)。具体的に、プロキシアプリケーション42は、符号化情報で特定される符号化アルゴリズムに基づいて符号化済データを復号するアルゴリズムを生成する。プロキシアプリケーション42は、符号化情報に含まれるスマートコントラクトを解析して符号化済データを復号するプログラムを生成してもよい。プロキシアプリケーション42は、符号化済データを復号するアルゴリズムを用いて各情報処理装置2から取得した符号化済データを復号することによって対象データを復元する。
【0057】
情報処理装置2Bの制御部21は、復元した対象データを情報処理装置2Aに出力し、対象データ及び符号化済データを消去して秘匿性を高めるために、プロキシアプリケーション42を消去する(ステップS16)。情報処理装置2Bの制御部21は、ステップS16の手順の終了後、
図5のフローチャートの手順の実行を終了する。
【0058】
情報処理装置2Bの制御部21が
図5のフローチャートの手順を実行することによって、情報処理システム1は、対象データを復元できる。つまり、
図5のフローチャートの各手順は、対象データを復元する手順に対応する。
【0059】
以上述べてきたように、符号化済データを復号して対象データを復元する処理の少なくとも一部が、対象データの復元を指示する情報処理装置2と異なる情報処理装置2によって実行されることによって、復元処理が分散される。復元処理の分散によって第三者によって不正に復元されるリスクが低減され得る。その結果、対象データの秘匿性又は安全性が向上し得る。
【0060】
<小括>
以上説明してきたように、本実施形態に係る情報処理システム1において、第1情報処理装置が対象データを符号化する指示、又は、復元する指示を第2情報処理装置に出力する。第2情報処理装置は、対象データを符号化する処理、又は、対象データを復元する処理の少なくとも一部を実行する。符号化の処理又は復元の処理が分散して実行されることによって、対象データが第三者によって不正に取得されるリスクが低減され得る。その結果、対象データの秘匿性又は安全性が向上し得る。
【0061】
また、本実施形態に係る情報処理システム1において、第2情報処理装置は、1つの対象データから複数の符号化済データを生成し、2以上の第3情報処理装置のそれぞれに格納する。このようにすることで、符号化済データが第三者によって不正に取得されるリスクが低減され得る。その結果、対象データの秘匿性又は安全性が向上し得る。
【0062】
情報処理システム1において、チャネル3に割り当てられる情報処理装置2の数は、3以上の奇数にされてよい。情報処理装置2の数が3以上の奇数にされることによって、符号化済データを格納した各情報処理装置2は、符号化済データが正しく格納されているかチェックできる。例えば、各情報処理装置2の制御部21は、同一のチャネル3に所属する情報処理装置2に格納されている符号化済データが一致していない場合に、一致する符号化済データの数を算出し、多数派となる符号化済データを正しい符号化済データとみなしてよい。このようにすることで符号化済データが第三者によって不正に改変されるリスクが低減され得る。その結果、対象データ又は符号化済データの安全性が向上し得る。
【0063】
(他の実施形態)
以下、情報処理システム1の他の種々の実施形態が説明される。
【0064】
<複数のプロキシアプリケーション42による分散処理の動作例>
図6に例示されるように、一実施形態に係る情報処理システム1は、プロキシアプリケーション42を動作させる情報処理装置2として情報処理装置2Fを更に備えてよい。つまり、情報処理システム1は、複数の情報処理装置2のそれぞれでプロキシアプリケーション42を動作させるように構成されてよい。
【0065】
情報処理装置2Aの制御部21は、対象データを符号化する場合、対象データを分割して複数の情報処理装置2に対して符号化の指示を出力してよい。分割した対象データは分割データとも称される。情報処理装置2Aの制御部21は、対象データを符号化する指示と複数の分割データのそれぞれとを合わせて、プロキシアプリケーション42を動作させる複数の情報処理装置2のそれぞれに出力してよい。
図6に例示される構成において、情報処理装置2Aの制御部21は、分割データの一部を情報処理装置2Bに出力し、分割データの他の一部を情報処理装置2Fに出力してよい。情報処理装置2Bの制御部21、及び、情報処理装置2Fの制御部21のそれぞれは、情報処理装置2Aから取得した分割データを符号化する処理を実行し、符号化済データを情報処理装置2C、2D及び2Eに出力して各チャネル3に格納してよい。分割データを符号化する各情報処理装置2の制御部21は、情報処理装置2毎に異なる符号化情報、又は、分割データ毎に異なる符号化情報によって分割データを符号化してよい。
【0066】
言い換えれば、
図6に例示される構成において、情報処理システム1は、第1情報処理装置としての情報処理装置2Aによって対象データを分割して分割データを生成する。情報処理システム1は、複数の第2情報処理装置としての情報処理装置2B及び2Fのそれぞれによって分割データを符号化し、複数の第3情報処理装置としての情報処理装置2C、2D及び2Eに出力する。第1情報処理装置が分割データを第2情報処理装置に出力することによって、第1情報処理装置と第2情報処理装置との間における通信を第三者に不正に傍受されることによる対象データ全体の窃取のリスクが低減され得る。その結果、対象データの安全性が向上し得る。
【0067】
情報処理装置2Aの制御部21は、分割データを復元する指示を、プロキシアプリケーション42を動作させる複数の情報処理装置2のそれぞれに出力してよい。各情報処理装置2の制御部21において、プロキシアプリケーション42は、分割データの符号化済データをチャネル3から取得し、分割データを復元し、情報処理装置2Aに出力してよい。情報処理装置2Aの制御部21は、各情報処理装置2で復元された分割データを合成することによって対象データを復元してよい。言い換えれば、情報処理システム1は、複数の第2情報処理装置によって別々の分割データを復元し、第1情報処理装置によって分割データを合成して対象データを復元してよい。複数の第2情報処理装置のそれぞれが別々の分割データを復元して第1情報処理装置に出力することによって、第1情報処理装置と第2情報処理装置との間における通信を第三者に不正に傍受されることによる対象データ全体の窃取のリスクが低減され得る。その結果、対象データの安全性が向上し得る。
【0068】
以上述べてきたように、複数の情報処理装置2のそれぞれがプロキシアプリケーション42を動作させてよい。1台の情報処理装置2が複数のプロキシアプリケーション42を動作させてもよい。1台の情報処理装置2の中でプロセスを分けることによっても、対象データの安全性が向上し得る。
【0069】
<管理アプリケーション44の動作例>
図7に例示されるように、一実施形態に係る情報処理システム1は、管理アプリケーション44を動作させる情報処理装置2Gを更に備えてよい。情報処理装置2Gは、第1情報処理装置に含まれてよい。また、情報処理システム1は、情報処理装置2B及び2Fを含む複数の情報処理装置2においてプロキシアプリケーション42を動作させてよい。
【0070】
情報処理装置2Aの制御部21においてクライアントアプリケーション32は、対象データを符号化する場合、対象データを符号化する指示を情報処理装置2Gに出力してよい。情報処理装置2Gの制御部21において、管理アプリケーション44は、対象データを符号化する処理を、情報処理装置2B及び2Fを含む複数の情報処理装置2のそれぞれに分散して実行させてよい。情報処理装置2B及び2Fを含む複数の情報処理装置2のそれぞれの制御部21において、プロキシアプリケーション42は、対象データを符号化する処理の一部を実行する。各情報処理装置2のプロキシアプリケーション42は、符号化済データを各チャネル3に出力する。各チャネル3の情報処理装置2は、取得した符号化済データを記憶装置5に格納する。管理アプリケーション44は、対象データを分割し、分割データを各情報処理装置2のプロキシアプリケーション42に出力してもよい。管理アプリケーション44は、情報処理装置2Aから分割データを取得してもよい。
【0071】
情報処理装置2Aの制御部21においてクライアントアプリケーション32は、対象データを復元する場合、対象データを復元する指示を情報処理装置2Gに出力してよい。情報処理装置2Gの制御部21において、管理アプリケーション44は、対象データを復元する処理を、情報処理装置2B及び2Fを含む複数の情報処理装置2のそれぞれに分散して実行させてよい。情報処理装置2B及び2Fを含む複数の情報処理装置2のそれぞれの制御部21において、プロキシアプリケーション42は、対象データを復元する処理の一部を実行する。各情報処理装置2のプロキシアプリケーション42は、符号化済データを各チャネル3から取得し、符号化済データを復元して分割データを生成し、分割データを情報処理装置2Gに出力する。管理アプリケーション44は、分割データを合成して対象データを復元し、情報処理装置2Aに出力する。管理アプリケーション44は、分割データを情報処理装置2Aに出力してもよい。情報処理装置2Aにおいてクライアントアプリケーション32が分割データを合成して対象データを復元してよい。
【0072】
管理アプリケーション44は、各情報処理装置2におけるプロキシアプリケーション42の動作状況、又は、各情報処理装置2の処理負荷の大きさ等の各情報処理装置2の状態を監視してよい。管理アプリケーション44は、各情報処理装置2の状態の監視結果に基づいて、対象データを符号化する処理を実行させる情報処理装置2を決定してよい。
【0073】
例えば、処理負荷が多くなっている情報処理装置2は、処理が不安定になるリスク、又は、外部から攻撃を受けているリスクを有し得る。そこで、管理アプリケーション44は、処理負荷が多くなっている情報処理装置2に対して対象データを符号化する指示を出力しないことを決定してよい。
【0074】
また、管理アプリケーション44は、外部から不正にアクセスされている可能性のある情報処理装置2を検出してよい。管理アプリケーション44は、検出した情報処理装置2に対して対象データを符号化する指示を出力しないことを決定してよい。管理アプリケーション44は、他の種々の条件に基づいて、対象データを符号化する指示を出力しない情報処理装置2を決定してよい。
【0075】
情報処理システム1は、管理アプリケーション44を情報処理装置2Aで動作させてもよい。この場合、情報処理装置2Aの制御部21において、管理アプリケーション44は、プロキシアプリケーション42を動作させる各情報処理装置2の状態を監視し、対象データを符号化する指示を出力する情報処理装置2を決定してよい。言い換えれば、第1情報処理装置は、第2情報処理装置として機能させる1台以上の情報処理装置2を、複数の情報処理装置2の中から、各情報処理装置2の状態に基づいて選択してよい。
【0076】
図6及び
図7に例示される構成において、情報処理装置2B及び2Fは、両方とも、チャネル3C、3D及び3Eのそれぞれと接続するように構成されている。つまり、情報処理装置2Bが符号化済データを出力するチャネル3と、情報処理装置2Fが符号化済データを出力するチャネル3とは、全て重複するように構成されている。情報処理装置2Bが符号化済データを出力するチャネル3と、情報処理装置2Fが符号化済データを出力するチャネル3とは、一部だけ重複してもよいし、全く重複しなくてもよい。
【0077】
情報処理システム1において、プロキシアプリケーション42は、必要なときに起動され、必要な処理を完了したときに消去される。このようにすることで、対象データ、符号化済データ又は符号化情報の秘匿性が高められ得る。一方で、管理アプリケーション44は、常時動作するように構成されてよい。情報処理システム1は、管理アプリケーション44の動作を継続させるために、複数の情報処理装置2で管理アプリケーション44を動作させてよい。情報処理装置2Aの制御部21は、1つの情報処理装置2で動作する管理アプリケーション44をアクティブ状態とみなし、アクティブ状態の管理アプリケーション44に対して対象データを符号化する指示を出力してよい。情報処理装置2Aの制御部21は、他の情報処理装置2で動作する管理アプリケーション44をスタンバイ状態とみなし、アクティブ状態の管理アプリケーション44に不具合が生じた場合に、スタンバイ状態の管理アプリケーション44をアクティブ状態に切り替えて管理アプリケーション44の動作を継続させてよい。情報処理装置2Aの制御部21は、情報処理装置2Gとの通信状態に基づいて、情報処理装置2Gにおいて管理アプリケーション44が動作しているか確認してよい。情報処理装置2Aの制御部21は、情報処理装置2Gとの通信が途絶えたり遅かったりする場合、他の情報処理装置2のスタンバイ状態の管理アプリケーション44をアクティブ状態に切り替えてよい。
【0078】
情報処理システム1は、対象データを符号化する処理を複数のプロキシアプリケーション42に分散して実行するように、例えば
図8にフローチャートとして示される情報処理方法の各手順を実行してよい。情報処理方法は、情報処理システム1の各情報処理装置2の制御部21が実行する情報処理プログラムとして実現されてもよい。情報処理プログラムは、非一時的なコンピュータ読み取り可能媒体に格納されてもよい。
【0079】
管理アプリケーション44を動作させる情報処理装置2(情報処理装置2A又は2G)の制御部21は、符号化指示及び対象データを取得する(ステップS21)。管理アプリケーション44を動作させる情報処理装置2の制御部21は、対象データを符号化する処理を分散させ、符号化処理の分散先の情報処理装置2(情報処理装置2B及び2F等)に対して符号化処理の指示を出力する(ステップS22)。
【0080】
符号化処理の分散先の各情報処理装置2の制御部21は、プロキシアプリケーション42を起動させる(ステップS23)。各情報処理装置2の制御部21は、プロキシアプリケーション42によって、対象データ又は分割データを符号化し、符号化済データを生成する(ステップS24)。各情報処理装置2の制御部21は、プロキシアプリケーション42によって、符号化済データを各チャネルに出力する(ステップS25)。各情報処理装置2の制御部21は、プロキシアプリケーション42を消去する(ステップS26)。情報処理システム1は、ステップS26の手順の実行後、
図8のフローチャートの手順の実行を終了する。
【0081】
情報処理システム1は、対象データを復元する処理を複数のプロキシアプリケーション42に分散して実行するために、例えば以下の各手順を実行してよい。管理アプリケーション44を動作させる情報処理装置2(情報処理装置2A又は2G)の制御部21は、復元指示及び符号化情報又は識別データを取得する。管理アプリケーション44を動作させる情報処理装置2の制御部21は、対象データを復元する処理を分散させ、復元処理の分散先の情報処理装置2(情報処理装置2B及び2F等)に対して復元処理の指示を出力する。復元処理の分散先の各情報処理装置2の制御部21は、プロキシアプリケーション42を起動させ、プロキシアプリケーション42によって、符号化済データを取得して復号し、対象データ又は分割データを生成し、管理アプリケーション44を動作させる情報処理装置2に出力する。各情報処理装置2の制御部21は、プロキシアプリケーション42を消去する。
【0082】
以上述べてきたように、情報処理システム1において、管理アプリケーション44は、処理が不安定になるリスク、又は、例えばDoS(Denial of Service)攻撃又はDDoS(Distributed Denial of Service)攻撃等を外部から受けるリスク等を含む種々のリスクを有し得る情報処理装置2に対して対象データを符号化したり復元したりする処理を実行させないように動作し得る。このようにすることで対象データが第三者によって窃取されたり改変されたり破壊されたりするリスクが低減され得る。その結果、対象データの安全性が向上し得る。
【0083】
<3以上のプロキシアプリケーション42の処理結果の多数決をとる動作例>
一実施形態に係る情報処理システム1は、3以上のプロキシアプリケーション42を動作させ、各プロキシアプリケーション42で並列に同一の符号化処理を実行させてよい。管理アプリケーション44又はクライアントアプリケーション32は、各プロキシアプリケーション42で得られた符号化済データが一致するか判定してよい。管理アプリケーション44又はクライアントアプリケーション32は、全てのプロキシアプリケーション42で得られた符号化済データが一致する場合、その符号化済データを符号化処理の結果として採用して出力する。
【0084】
管理アプリケーション44又はクライアントアプリケーション32は、一部のプロキシアプリケーション42で得られた符号化済データが他のプロキシアプリケーション42で得られた符号化済データに一致しない場合、一致する符号化済データの数を算出する。管理アプリケーション44又はクライアントアプリケーション32は、最も多くのプロキシアプリケーション42で一致した符号化済データを、符号化処理の結果として採用する。つまり、管理アプリケーション44又はクライアントアプリケーション32は、3以上のプロキシアプリケーション42で実行した同一の符号化処理の結果を、多数決で決定してよい。
【0085】
情報処理システム1は、符号化済データとして採用する符号化処理の結果を多数決で決定するために、例えば
図9にフローチャートとして示される情報処理方法の各手順を実行してよい。情報処理方法は、情報処理システム1の各情報処理装置2の制御部21が実行する情報処理プログラムとして実現されてもよい。情報処理プログラムは、非一時的なコンピュータ読み取り可能媒体に格納されてもよい。
【0086】
管理アプリケーション44又はクライアントアプリケーション32を動作させる情報処理装置2の制御部21は、対象データを符号化する同一の処理を実行させる3以上のプロキシアプリケーション42を起動させる(ステップS31)。3以上のプロキシアプリケーション42は、1台の情報処理装置2の中で起動されてよいし、2台以上の情報処理装置2に分かれて起動されてもよい。
【0087】
プロキシアプリケーション42を動作させる情報処理装置2の制御部21は、各プロキシアプリケーション42によって符号化処理を実行し、管理アプリケーション44又はクライアントアプリケーション32に符号化処理の結果として得られた符号化済データを出力する(ステップS32)。
【0088】
管理アプリケーション44又はクライアントアプリケーション32を動作させる情報処理装置2の制御部21は、各プロキシアプリケーション42によって得られた符号化済データが一致するか判定する(ステップS33)。
【0089】
管理アプリケーション44又はクライアントアプリケーション32を動作させる情報処理装置2の制御部21は、各プロキシアプリケーション42による符号化済データが一致しない場合(ステップS33:NO)、一致する符号化済データの数を算出して多数派の符号化済データを決定する(ステップS34)。管理アプリケーション44又はクライアントアプリケーション32を動作させる情報処理装置2の制御部21は、ステップS34で決定した多数派の符号化済データを、チャネル3に出力して格納する(ステップS35)。
【0090】
管理アプリケーション44又はクライアントアプリケーション32を動作させる情報処理装置2の制御部21は、各プロキシアプリケーション42による符号化済データが一致する場合(ステップS33:YES)、各プロキシアプリケーション42で一致した符号化済データをチャネル3に出力して格納する(ステップS35)。
【0091】
プロキシアプリケーション42を動作させる情報処理装置2の制御部21は、プロキシアプリケーション42を消去する(ステップS36)。情報処理システム1は、ステップS36の手順の実行後、
図9のフローチャートの手順の実行を終了する。
【0092】
各プロキシアプリケーション42で得られた符号化済データが一致するかの判定は、管理アプリケーション44又はクライアントアプリケーション32によって実行されてよいがこれに限られず、各プロキシアプリケーション42によって相互に実行されてよい。
【0093】
一実施形態に係る情報処理システム1は、3以上のプロキシアプリケーション42を動作させ、各プロキシアプリケーション42で並列に同一の復元処理を実行させてよい。管理アプリケーション44又はクライアントアプリケーション32は、各プロキシアプリケーション42で得られた復元データが一致するか判定してよい。管理アプリケーション44又はクライアントアプリケーション32は、全てのプロキシアプリケーション42で得られた復元データが一致する場合、その復元データを対象データの復元結果として採用して出力する。
【0094】
管理アプリケーション44又はクライアントアプリケーション32は、一部のプロキシアプリケーション42で得られた復元データが他のプロキシアプリケーション42で得られた復元データに一致しない場合、一致する復元データの数を算出する。管理アプリケーション44又はクライアントアプリケーション32は、最も多くのプロキシアプリケーション42で一致した復元データを、対象データの復元結果として採用して出力する。つまり、管理アプリケーション44又はクライアントアプリケーション32は、3以上のプロキシアプリケーション42で実行した同一の復元処理の結果を、多数決で決定してよい。
【0095】
情報処理システム1は、復元したデータとして採用する復元処理の結果を多数決で決定するために、例えば以下の各手順を実行してよい。管理アプリケーション44又はクライアントアプリケーション32を動作させる情報処理装置2の制御部21は、対象データを復元する同一の処理を実行させる3以上のプロキシアプリケーション42を起動させる。プロキシアプリケーション42を動作させる情報処理装置2の制御部21は、各プロキシアプリケーション42によって復元処理を実行し、管理アプリケーション44又はクライアントアプリケーション32に復元処理の結果として得られた復元データを出力する。管理アプリケーション44又はクライアントアプリケーション32を動作させる情報処理装置2の制御部21は、各プロキシアプリケーション42によって得られた復元データが一致する場合、その復元データを採用する。管理アプリケーション44又はクライアントアプリケーション32を動作させる情報処理装置2の制御部21は、各プロキシアプリケーション42によって得られた復元データが一致しない場合、多数派の復元データを採用する。プロキシアプリケーション42を動作させる情報処理装置2の制御部21は、プロキシアプリケーション42を消去する。
【0096】
各プロキシアプリケーション42で得られた復元データが一致するかの判定は、管理アプリケーション44又はクライアントアプリケーション32によって実行されてよいがこれに限られず、各プロキシアプリケーション42によって相互に実行されてよい。
【0097】
プロキシアプリケーション42の動作に不具合が生じた場合、プロキシアプリケーション42による処理時間が長くなりすぎることがある。また、プロキシアプリケーション42による処理が中断することがある。管理アプリケーション44又はクライアントアプリケーション32は、あるプロキシアプリケーション42から、所定時間内に符号化又は復元の処理結果を取得できない場合、他のプロキシアプリケーション42で得られた処理結果の中から、出力する処理結果を決定してよい。逆に、プロキシアプリケーション42による処理時間が短すぎる場合に、処理の中断によって異常な処理結果が出力されている可能性がある。管理アプリケーション44又はクライアントアプリケーション32は、処理時間が短すぎる処理結果を破棄してもよい。
【0098】
管理アプリケーション44又はクライアントアプリケーション32は、処理負荷が異常に高くなったり処理時間が異常に長くなったりするような不具合が生じたプロキシアプリケーション42を再起動させてよい。管理アプリケーション44又はクライアントアプリケーション32は、不具合が生じたプロキシアプリケーション42を動作させている情報処理装置2を再起動させてもよい。管理アプリケーション44又はクライアントアプリケーション32は、プロキシアプリケーション42の再起動後の処理結果を取得し、他のプロキシアプリケーション42の処理結果と一致するか判定してもよい。
【0099】
以上述べてきたように、情報処理システム1は、符号化又は復元の同一の処理を3以上のプロキシアプリケーション42に分散して実行させてよい。このようにすることで、プロキシアプリケーション42における不具合の発生、又は、プロキシアプリケーション42に対する攻撃等によって対象データ又は符号化済データ窃取されたり改変されたり破損したりするリスクが低減され得る。その結果、対象データの安全性が向上し得る。
【0100】
<対象データを分割する構成例>
上述したように、情報処理システム1は、対象データの符号化として、対象データを分割した分割済データを生成し、分割済データを各チャネル3に分散して格納してよい。情報処理装置2Bがプロキシアプリケーション42によって対象データを符号化する場合、情報処理装置2Bの制御部21は、対象データを分割するアルゴリズムを特定する分割情報を生成してよい。分割情報は、符号化情報に含まれる。情報処理装置2Bの制御部21は、対象データを分割情報で特定されるアルゴリズムで分割し、分割済データを生成する。分割済データは、符号化済データに含まれる。本構成例において、情報処理装置2Bの制御部21は、対象データを第1分割済データと第2分割済データとに分割する。
【0101】
情報処理装置2Bの制御部21は、第1分割済データを格納する第1チャネルと、第2分割済データを格納する第2チャネルとを設定する。情報処理装置2Bの制御部21は、各チャネル3に少なくとも1台の情報処理装置2を割り当てる。つまり、少なくとも1台の情報処理装置2が各チャネル3に所属する。情報処理装置2Bの制御部21は、第1分割済データを第1チャネルに所属する情報処理装置2に格納し、第2分割済データを第2チャネルに所属する情報処理装置2に格納する。
【0102】
情報処理装置2Bの制御部21は、符号化情報として分割情報をブロックチェーンに記録する。具体的に、情報処理装置2Bの制御部21は、分割情報を記録したブロック4を新たに生成し、ブロックチェーンの既存のブロック4につなげる。
【0103】
分割情報は、各分割済データをどのチャネル3に格納したかを特定する情報を含んでもよい。各情報処理装置2は、対象データを復元する際に、分割情報に基づいて分割済データを各チャネル3から取得できる。
【0104】
分割情報は、複数の分割済データのうち1つの分割済データを格納したチャネル3だけを特定する情報を含んでもよい。この場合、1つの分割済データに、次の分割済データを格納したチャネル3を特定する情報が含まれる。各情報処理装置2は、対象データを復元する際に、分割情報に基づいて最初の分割済データを取得し、2個目以降の分割済データを連鎖的に取得できる。
【0105】
分割情報は、これらの例に限られず、種々の態様で分割済データが格納されているチャネル3を特定してよい。
【0106】
情報処理装置2Bの制御部21は、例えば対象データのビット列をシュレッダーにかけたようにバラバラに分割してよい。情報処理装置2Bの制御部21は、対象データのビット列をマトリックス等の所定のパターンで分割してよい。情報処理装置2Bの制御部21は、対象データをパケットに分割してよい。情報処理装置2Bの制御部21は、これらの例に限られず他の種々のパターンで対象データを分割してよい。情報処理装置2Bの制御部21は、分割するパターンをランダムに決定してよい。
【0107】
<チャネル3の構成例>
情報処理システム1は、1つの対象データを格納する際にチャネル3を設定し、各チャネル3に符号化済データを分散して格納する。情報処理システム1は、別の対象データを格納する際に、チャネル3の設定を異ならせてよい。例えば、同一のチャネル3に所属する情報処理装置2の組み合わせは、対象データ毎に異なってよい。情報処理装置2Bの制御部21は、符号化する対象データ毎に、符号化済データを格納する各チャネル3に所属する情報処理装置2の組み合わせを適宜定めてよい。
【0108】
<符号化済データの移動>
情報処理システム1に対して、対象データを窃取するために外部から攻撃を受けることがある。情報処理システム1は、外部からの攻撃の成功率を低くするために、符号化済データの格納先である情報処理装置2を変更してもよい。つまり、情報処理システム1は、各情報処理装置2に分散して格納した符号化済データを、ずっと同じ情報処理装置2に格納し続けずに情報処理装置2間で移動させてよい。
【0109】
例えば、情報処理装置2Bの制御部21は、各チャネル3に所属する情報処理装置2を変更し、各チャネル3の所属の変更前後の情報処理装置2で符号化済データを移動してよい。情報処理装置2Bの制御部21は、各チャネル3に所属する情報処理装置2の変更に基づいて符号化情報を更新し、更新した符号化情報をブロックチェーンに記録してよい。このようにすることで、情報処理システム1は、符号化済データを移動させることができる。情報処理システム1は、外部からの攻撃等の不正な操作を検出した場合に、対象データを窃取される前に符号化済データを移動させることによって、対象データが窃取される可能性を低減してもよい。その結果、格納した対象データの安全性が向上し得る。
【0110】
<対象データの再符号化>
情報処理システム1は、対象データを符号化した後、対象データを一旦復元して、再度符号化してもよい。このようにすることで、対象データを窃取しようとする不正な操作に対する対象データの安全性が高められ得る。情報処理システム1においてピアとして機能する情報処理装置2が対象データの再符号化を実行してもよい。以下、情報処理装置2Bが対象データの再符号化を実行する構成例が説明される。
【0111】
情報処理装置2Bの制御部21は、プロキシアプリケーション42によって上述した
図5のフローチャートの手順を実行し、対象データを復元する。情報処理装置2Bの制御部21は、プロキシアプリケーション42によって上述した
図4のフローチャートの手順を実行し、対象データを再符号化する。対象データを再符号化したデータは、再符号化済データとも称される。
【0112】
情報処理装置2Bの制御部21は、再符号化する前の符号化済データの数と、再符号化済データの数とを異ならせるとする。情報処理装置2Bの制御部21は、再符号化済データの数に基づいてチャネル3を新たに設定し、新たに設定した各チャネル3に少なくとも1台の情報処理装置2を割り当てる。つまり、少なくとも1台の情報処理装置2が新たに設定された各チャネル3に所属する。情報処理装置2Bの制御部21は、再符号化済データを、新たに設定した各チャネル3に格納する。
【0113】
情報処理装置2Bの制御部21は、再符号化される前に設定していた第1チャネルに所属する情報処理装置2と、再符号化に際して新たに設定した第1チャネルに所属する情報処理装置2とを異ならせてよい。つまり、制御部21は、第1チャネルに所属する情報処理装置2を他の情報処理装置2に入れ替えてよい。
【0114】
以上述べてきたように、情報処理システム1は、対象データを一旦復元して再度符号化してよい。情報処理システム1は、外部からの攻撃等の不正な操作を検出した場合に、対象データを窃取される前に再符号化を実行することによって、対象データが窃取される可能性を低減してもよい。その結果、格納した対象データの安全性が高められる。
【0115】
情報処理システム1は、対象データを再符号化する前に、対象データの内容を変更してから再符号化してもよい。
【0116】
<符号化情報の読み取りを制限する構成例>
情報処理システム1は、ブロックチェーンに符号化情報を記録する。ブロックチェーンは、原則として、記録した情報が改ざんされにくいように構成されるものの、記録した情報が読み取られにくいように構成されていない。情報処理システム1は、ブロックチェーンに記録された情報の読み取りを制限する手段を採用することによって、情報処理システム1に対する外部からの攻撃等の不正な操作の成功率を低下させ得る。
【0117】
例えば、情報処理システム1は、符号化情報を暗号化してブロックチェーンに記録してもよい。このようにすることで、暗号化した符号化情報が外部からの攻撃等の不正な操作によって窃取された場合でも、少なくとも符号化情報を復号するためにかかる時間だけ符号化済データの窃取の開始が遅れる。情報処理システム1は、時間を稼いでいる間に不正な操作を検出し、後述するように符号化済データを移動させることによって符号化済データの窃取を阻止することが可能になる。
【0118】
例えば、情報処理システム1は、符号化情報そのものを符号化してブロックチェーンに記録してもよい。例えば情報処理システム1は、符号化情報を分割して複数のブロック4に分散して記録してもよい。このようにすることで、外部からの攻撃等の不正な操作によって符号化情報が窃取されにくくなる。
【0119】
<<承認機能>>
例えば、情報処理システム1は、ブロックチェーンから情報を読み出すために承認が必要となるように構成されてよい。例えば、少なくとも一部の情報処理装置2が情報の読み出しを承認する機能を有してよい。情報の読み出しを承認する機能を有する情報処理装置2は、承認装置とも称される。ブロックチェーンから情報を読み出そうとする情報処理装置2は、承認装置に情報を読み出す要求を送信し、承認装置から承認された場合にブロックチェーンから情報を読み出せるとする。承認装置は、情報を読み出す要求が外部からの攻撃に基づく要求等の不正な要求である場合、情報を読み出す要求を拒否する。承認装置は、複数の情報処理装置2で構成されてよい。承認装置は、例えば、情報を読み出す要求が不正な要求であるかを多数決で判定してもよい。承認装置は、例えば3分の1等の所定の比率以上の承認装置において情報を読み出す要求が不正な要求であると判定された場合に、情報を読み出す要求が不正な要求であると判定してもよい。
【0120】
具体的に、情報処理装置2Aが符号化情報をブロックチェーンから読み出すと仮定する。この場合、他の情報処理装置2B~2Eの少なくとも1台が承認装置として機能して情報処理装置2Aによる符号化情報の読み出しを承認した場合に、情報処理装置2Aが符号化情報を読み出すことができるように構成されてよい。
【0121】
情報処理装置2Aがブロックチェーンからの符号化情報の読み出しを要求した場合、情報処理システム1の他の情報処理装置2B~2Eは、どの情報処理装置2が情報処理装置2Aからの要求を承認するか決定する。ブロックチェーンからの符号化情報の読み出しを要求する情報処理装置2Aは、第4情報処理装置とも称される。第4情報処理装置からの要求を承認する情報処理装置2は、第5情報処理装置とも称される。
【0122】
第5情報処理装置は、第4情報処理装置からの要求が外部からの攻撃等の不正な操作に基づく要求であるか判定する。第5情報処理装置は、第4情報処理装置からの要求が不正な操作に基づく要求であると判定した場合、要求を拒否する。第5情報処理装置は、第4情報処理装置からの要求が不正な操作に基づく要求でないと判定した場合、要求を承認する。
【0123】
第5情報処理装置の数は、1台であってもよいし2台以上であってもよい。第5情報処理装置は、複数の情報処理装置2で構成される場合、多数決で第4情報処理装置からの要求を承認してもよい。
【0124】
以上述べてきたように、情報処理システム1は、符号化情報の読み出しの要求が不正な操作に基づく要求か判定することによって、対象データが窃取される可能性を低くできる。その結果、格納した対象データの安全性が高められる。
【0125】
情報処理システム1は、これらの例に限られず、他の種々の手段によって、各情報処理装置2によるブロックチェーンからの符号化情報の読み取りを制限してよい。
【0126】
各情報処理装置2は、操作者8を認証した上で、認証できた操作者8からの操作だけを受け付けるように構成されてよい。例えば、各情報処理装置2は、操作者8をパスワードの入力、生体情報の入力、又は、位置情報の照合等によって認証してよい。情報処理システム1は、認証の対象となる各操作者8に、操作の権限を与える項目を特定する権限情報を対応づけて管理してよい。各情報処理装置2は、権限情報に基づいて、操作者8からの操作の入力を受け付けてよい。また、1台の情報処理装置2において操作者8が対象データを復元する操作を入力した場合、他の情報処理装置2は、操作者8の権限情報に基づいて、対象データを復元するために符号化情報を読み出す要求を承認するか判定してよい。
【0127】
本開示を諸図面及び実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形及び改変を行ってもよいことに注意されたい。したがって、これらの変形及び改変は本開示の範囲に含まれることに留意されたい。例えば、各構成部又は各ステップ等に含まれる機能等は論理的に矛盾しないように再配置可能であり、複数の構成部又はステップ等を1つに組み合わせたり、或いは分割したりすることが可能である。例えば、本開示に係る情報処理システム1の実施形態の一例として、ブロックチェーンネットワークが説明されてきたが、これに限られない。情報処理システム1は、分散型データベース又は分散型台帳等を実現する他の態様のネットワークを実現するように構成されてもよい。
【0128】
また、例えば汎用のコンピュータを、上述した実施形態に係る情報処理装置2として機能させる実施形態も可能である。具体的には、上述した実施形態に係る情報処理装置2の各機能を実現する処理内容を記述したプログラムを、汎用のコンピュータのメモリに格納し、プロセッサによって当該プログラムを読み出して実行させる。したがって、本実施形態に係る発明は、プロセッサが実行可能なプログラム、又は当該プログラムを記憶する非一時的なコンピュータ読み取り可能媒体としても実現可能である。
【0129】
本開示において「第1」及び「第2」等の記載は、当該構成を区別するための識別子である。本開示における「第1」及び「第2」等の記載で区別された構成は、当該構成における番号を交換することができる。例えば、第1情報処理装置は、第2情報処理装置と識別子である「第1」と「第2」とを交換することができる。識別子の交換は同時に行われる。識別子の交換後も当該構成は区別される。識別子は削除してよい。識別子を削除した構成は、符号で区別される。本開示における「第1」及び「第2」等の識別子の記載のみに基づいて、当該構成の順序の解釈、小さい番号の識別子が存在することの根拠に利用してはならない。
【符号の説明】
【0130】
1 情報処理システム
2、2A~2G 情報処理装置(21:制御部、22:記憶部、23:通信部、24:出力部、25:入力部)
3、3C、3D、3E チャネル
4、4A~4D ブロック
5 記憶装置(51:第1記憶領域、52:第2記憶領域)
6 符号化済データ
8 操作者
10 ネットワーク
32 クライアントアプリケーション
42 プロキシアプリケーション
44 管理アプリケーション