JP2015153288A - Data sharing system, data sharing method, and program - Google Patents

Data sharing system, data sharing method, and program Download PDF

Info

Publication number
JP2015153288A
JP2015153288A JP2014028375A JP2014028375A JP2015153288A JP 2015153288 A JP2015153288 A JP 2015153288A JP 2014028375 A JP2014028375 A JP 2014028375A JP 2014028375 A JP2014028375 A JP 2014028375A JP 2015153288 A JP2015153288 A JP 2015153288A
Authority
JP
Japan
Prior art keywords
data
shared data
read
address
storage area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014028375A
Other languages
Japanese (ja)
Other versions
JP6181573B2 (en
Inventor
清本 晋作
Shinsaku Kiyomoto
晋作 清本
有登 仲野
Aritaka Nakano
有登 仲野
三宅 優
Masaru Miyake
優 三宅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KDDI Corp
Original Assignee
KDDI Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by KDDI Corp filed Critical KDDI Corp
Priority to JP2014028375A priority Critical patent/JP6181573B2/en
Publication of JP2015153288A publication Critical patent/JP2015153288A/en
Application granted granted Critical
Publication of JP6181573B2 publication Critical patent/JP6181573B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

PROBLEM TO BE SOLVED: To provide a data sharing system, a data sharing method and a program for making it impossible to specify which data is shared between clients even when the state of data access is observed by a third person.SOLUTION: When pieces of writing shared data stored in a storage element are written in a virtual storage area, the pieces of data of generated addresses are read to an access area, and the read data are overwritten with the writing shared data, and the overwritten data are converted into the other data, and the pieces of converted data are written in the generated addresses. When the pieces of writing shared data registered in the virtual storage area are read, the pieces of data of the generated addresses are successively read to the access area, and inversely converted, and whether or not the pieces of converted data are desired writing shared data is confirmed until the desired writing shared data are detected such that the desired writing shared data are acquired, and at least reading shared data corresponding to the desired writing shared data are converted into the other data, and the converted data are written in the generated addresses.

Description

本発明は、パブリッククラウドを利用して2以上のクライアントがデータを共有するデータ共有システム、データ共有方法およびプログラムに関する。   The present invention relates to a data sharing system, a data sharing method, and a program in which two or more clients share data using a public cloud.

従来、あるデータを共有化する場合、例えば、まずグループ内で共有したいデータ(MG)を、暗号鍵(KM)を用いて共通鍵暗号方式で暗号化(EKM(MG))する。そして、当該グループの全メンバ(U1,...,UN)が所有する公開鍵(pk1,...,pkN)でKMを暗号化(Epk1(KM), ..., EpkN(KM))し、それをリスト化して、EKM(MG)と共にサーバ等に保存する。ここで、データを参照するグループメンバ(Ui)は、リスト内から自身の公開鍵(pki)で暗号化されたEpki(KM)とEKM(MG)を取得し、暗号化されたKMを自身の秘密鍵(ski)を用いて復号することにより、KMを得る。そして、KMでEKM(MG)を復号し、元データMGを得るという処理がなされていた(例えば、特許文献1参照。)。 Conventionally, when certain data is shared, for example, the data (M G ) to be shared within the group is first encrypted (E KM (M G )) with a common key encryption method using the encryption key (K M ). . Then, K M is encrypted (E pk1 (K M ),... With the public key (pk 1 , ..., pk N ) owned by all members (U 1 , ..., U N ) of the group. ., E pkN (K M )), list it, and store it on the server together with E KM (M G ). Here, the group member (U i ) who refers to the data acquires E pki (K M ) and E KM (M G ) encrypted with its own public key (pk i ) from the list, and encrypts it. by decoding using its own secret key (sk i) it has been K M, obtaining a K M. Then, decode the E KM (M G) in K M, the process of obtaining the original data M G has been made (for example, see Patent Document 1.).

特開2005−223953号公報Japanese Patent Application Laid-Open No. 2005-223953

しかしながら、特許文献1に記載の技術では、共有データを公開する際に、グループメンバの人数(N)分、すなわちN回公開鍵暗号処理を行う必要があり、データ公開者の処理負荷が大きくなる。又、グループメンバの所有する端末装置が盗難にあうなどして、悪意の第三者に使用された場合、共有データの暗号化に使用している秘密鍵が該端末装置から漏洩してしまう可能性がある。この場合、秘密鍵を更新することで漏えい被害を抑えることができるが、共有データ公開時と同様、N回公開鍵暗号処理を行うことになり処理負荷が大きい。   However, in the technique described in Patent Document 1, when sharing data is disclosed, it is necessary to perform public key encryption processing for the number of group members (N), that is, N times, and the processing load on the data publisher increases. . Also, if a terminal device owned by a group member is stolen or used by a malicious third party, the secret key used for encrypting shared data may be leaked from the terminal device There is sex. In this case, the leakage damage can be suppressed by updating the secret key, but the public key encryption process is performed N times as in the case of sharing data sharing, and the processing load is heavy.

また、より重要な問題として、クライアントのデータアクセスの様子を観察することによって、データが特定される可能性が高いという問題があった。この問題は、パブリッククラウドを利用したデータ共有において、深刻な問題となる。   Further, as a more important problem, there is a problem that there is a high possibility that data is specified by observing the state of data access by a client. This problem is a serious problem in data sharing using a public cloud.

そこで、本発明は、上述の課題に鑑みてなされたものであり、第三者にデータアクセスの様子を観察されても、どのデータをクライアント間で共有しているのかを特定できないデータ共有システム、データ共有方法およびプログラムを提供することを目的とする。   Therefore, the present invention has been made in view of the above-described problems, and even if a third party observes the state of data access, a data sharing system that cannot specify which data is shared between clients, It is an object to provide a data sharing method and program.

本発明は、上記の課題を解決するために、以下の事項を提案している。   The present invention proposes the following matters in order to solve the above problems.

(1)本発明は、データを格納する仮想保存領域を有するパブリッククラウドと、複数のクライアント端末とからなるデータ共有システムであって、前記複数のクライアント端末が、秘密鍵と初期ベクトルとを共有し、書き込み共有データおよび読み込み共有データを含むデータを一時的に格納するアクセス領域を有した記憶素子と、前記共有する秘密鍵と初期ベクトルとから鍵系列を構成するビット列を生成し、該生成したビット列を所定のビット単位で分割して、前記書き込み共有データおよび読み込み共有データに対するアドレスを生成するアドレス生成手段と、前記書き込み共有データおよび読み込み共有データを別のデータに変換するデータ変換手段と、前記書き込み共有データの書き込み処理および前記読み込み共有データの読み込み処理を制御する制御手段と、を備え、前記制御手段が、前記仮想保存領域に前記記憶素子に格納された書き込み共有データを書き込む際に、前記アドレス生成手段により生成された前記仮想保存領域のアドレスのデータを前記アクセス領域に読み出し、該読み出したデータを前記書き込み共有データで上書きし、該上書きしたデータを前記データ変換手段により別のデータに変換して、該変換したデータを前記アドレス生成手段により生成された前記仮想保存領域のアドレスに書き込む処理を行い、前記仮想保存領域内に書き込まれた書き込み共有データを読み出す際に、順次、前記アドレス生成手段により生成された前記仮想保存領域のアドレスのデータを前記アクセス領域に読み出し、前記データ変換手段の処理とは逆の処理を行ない、該逆の処理を行なったデータが所望の書き込み共有データであるか否かの確認を前記所望の書き込み共有データを検出するまで行なって、前記所望の書き込み共有データを取得し、少なくとも前記所望の書き込み共有データに対応する前記読み込み共有データを前記データ変換手段により別のデータに変換して、該変換されたデータをアドレス生成手段により生成された前記仮想保存領域のアドレスに書き込む処理を行うことを特徴とするデータ共有システムを提案している。   (1) The present invention is a data sharing system comprising a public cloud having a virtual storage area for storing data and a plurality of client terminals, wherein the plurality of client terminals share a secret key and an initial vector. Generating a bit string constituting a key sequence from a storage element having an access area for temporarily storing data including write shared data and read shared data, and the shared secret key and an initial vector, and the generated bit string Address generating means for generating addresses for the write shared data and read shared data, data converting means for converting the write shared data and read shared data into different data, and the write Shared data write processing and read shared data read Control means for controlling the write processing, and when the control means writes the write shared data stored in the storage element to the virtual storage area, the virtual storage area generated by the address generation means Read the address data to the access area, overwrite the read data with the write shared data, convert the overwritten data into another data by the data conversion means, and convert the converted data to the address generation means When the write shared data written in the virtual storage area is read out, the address of the virtual storage area generated by the address generation means is sequentially written. Data is read into the access area, and the reverse process of the data conversion means is performed. In addition, it is confirmed whether the data subjected to the reverse processing is the desired write shared data until the desired write shared data is detected, and the desired write shared data is obtained, and at least the desired The read shared data corresponding to the write shared data is converted into another data by the data converting means, and the converted data is written to the address of the virtual storage area generated by the address generating means We have proposed a data sharing system characterized by

(2)本発明は、(1)のデータ共有システムについて、前記複数のクライアント端末が、乱数を生成する乱数生成手段と、排他的論理和演算を行う排他的論理和演算手段とを備え、前記データ変換手段は、前記仮想保存領域に前記記憶素子に格納された書き込み共有データを書き込む際には、前記上書きしたデータを前記排他的論理和演算手段が演算する前記上書きしたデータと前記乱数生成手段が生成した乱数との排他的論理和演算値に変換し、前記仮想保存領域内の書き込み共有データを読み出す際には、前記取得した所望の書き込み共有データを前記排他的論理和演算手段が演算する前記取得した所望の書き込み共有データと前記乱数生成手段が生成した乱数との排他的論理和演算値に変換し、前記制御手段は、前記変換したデータである前記排他的論理和演算値に加えて、前記排他的論理和演算に用いた乱数を前記複数のクライアント端末のクライアントにのみ前記排他的論理和演算値との関連がわかるように、前記仮想保存領域に書き込むことを特徴とするデータ共有システムを提案している。   (2) The present invention provides the data sharing system according to (1), wherein the plurality of client terminals include a random number generation unit that generates a random number and an exclusive OR operation unit that performs an exclusive OR operation, The data conversion means, when writing the write shared data stored in the storage element in the virtual storage area, the overwritten data and the random number generation means that the exclusive OR operation means calculates the overwritten data Is converted into an exclusive OR operation value with the generated random number, and when reading the write shared data in the virtual storage area, the exclusive OR operation means calculates the desired write shared data obtained The acquired desired shared shared data and the random number generated by the random number generation means are converted into an exclusive OR operation value, and the control means converts the converted data In addition to the exclusive OR operation value, the virtual storage stores the random number used in the exclusive OR operation so that only the clients of the plurality of client terminals can know the relationship with the exclusive OR operation value. We have proposed a data sharing system characterized by writing to the area.

(3)本発明は、(1)または(2)のデータ共有システムについて、前記アクセス領域に格納される書き込み共有データおよび読み込み共有データが、難読化処理されていることを特徴とするデータ共有システムを提案している。   (3) The present invention relates to the data sharing system according to (1) or (2), wherein write shared data and read shared data stored in the access area are obfuscated. Has proposed.

(4)本発明は、データを格納する仮想保存領域を有するパブリッククラウドと、複数のクライアント端末とからなるデータ共有システムにおけるデータ共有方法であって、
前記複数のクライアント端末が、秘密鍵と初期ベクトルとを共有し、書き込み共有データおよび読み込み共有データを含むデータを一時的に格納するアクセス領域を有した記憶素子と、アドレス生成手段と、データ変換手段と、データ逆変換手段と、制御手段とを備え、前記仮想保存領域に前記記憶素子に格納された書き込み共有データを書き込み登録する際に、前記アドレス生成手段が、前記共有する秘密鍵と初期ベクトルとから鍵系列を構成するビット列を生成し、該生成したビット列を所定のビット単位で分割して、前記書き込み共有データのアドレスを生成する第1のステップと、前記制御手段が、前記第1のステップにより生成された前記仮想保存領域のアドレスのデータを前記アクセス領域に読み出す第2のステップと、前記制御手段が、前記読み出したデータを前記書き込み共有データで上書きする第3のステップと、前記データ変換手段が、前記上書きしたデータを別のデータに変換する第4のステップと、前記制御手段が、前記変換したデータを前記第1のステップにおいて生成された前記仮想保存領域のアドレスに書き込む処理を行う第5のステップと、前記仮想保存領域内に書き込まれた書き込み共有データを読み出す際に、前記アドレス生成手段が、前記共有する秘密鍵と初期ベクトルとから鍵系列を構成するビット列を生成し、該生成したビット列を所定のビット単位で分割して、前記読み込み共有データのアドレスを生成する第6のステップと、前記制御手段が、前記第6のステップにより生成された前記仮想保存領域のアドレスのデータを前記アクセス領域に読み出す第7のステップと、前記データ逆変換手段が、前記第7のステップにおいて読み出したデータに対して、前記データ変換手段の処理とは、逆の処理を行ない、データを復元する第8のステップと、前記制御手段が、前記復元したデータが所望の書き込み共有データであるか否かを確認する第9のステップと、前記制御手段が、前記所望の書き込み共有データを検出するまで前記第6のステップから第9のステップの処理を繰り返す第10のステップと、前記制御手段が、前記所望の書き込み共有データを前記読み込み共有データとして取得し、前記記憶素子に格納する第11のステップと、前記データ変換手段が、少なくとも前記所望の書き込み共有データに対応する前記読み込み共有データを別のデータに変換する第12のステップと、前記制御手段が、前記変換されたデータを前記第6のステップで生成された前記仮想保存領域のアドレスに書き込む処理を行う第13のステップと、を備えたことを特徴とするデータ共有方法を提案している。
(4) The present invention is a data sharing method in a data sharing system comprising a public cloud having a virtual storage area for storing data and a plurality of client terminals,
A storage element having an access area in which the plurality of client terminals share a secret key and an initial vector and temporarily store data including write shared data and read shared data; address generating means; and data converting means And a data reverse conversion unit and a control unit, and when the write shared data stored in the storage element is written and registered in the virtual storage area, the address generation unit includes the shared secret key and the initial vector. The first step of generating a bit string constituting a key sequence from the above, dividing the generated bit string in predetermined bit units to generate the address of the write shared data, and the control means includes the first A second step of reading data of the address of the virtual storage area generated in the step into the access area; Means for overwriting the read data with the write shared data; a fourth step for the data conversion means to convert the overwritten data into another data; and the control means, A fifth step of performing processing of writing the converted data to the address of the virtual storage area generated in the first step, and the address generation when reading the write shared data written in the virtual storage area Means for generating a bit string constituting a key sequence from the shared secret key and the initial vector, dividing the generated bit string in predetermined bit units, and generating an address of the read shared data; And the control means accesses the data of the address of the virtual storage area generated in the sixth step. A seventh step of reading data into the data area and a step of restoring the data by performing a process reverse to the process of the data conversion means on the data read by the data reverse conversion means in the seventh step. Step 8; a ninth step in which the control means confirms whether the restored data is desired write shared data; and the control means until the control means detects the desired write shared data. A tenth step that repeats the processing from the sixth step to the ninth step; an eleventh step in which the control means acquires the desired write shared data as the read shared data and stores it in the storage element; The data conversion means converts the read shared data corresponding to at least the desired write shared data into another data. And a thirteenth step in which the control means performs a process of writing the converted data to the address of the virtual storage area generated in the sixth step. A sharing method is proposed.

(5)本発明は、データを格納する仮想保存領域を有するパブリッククラウドと、複数のクライアント端末とからなるデータ共有システムにおけるデータ共有方法をコンピュータに実行させるためのプログラムであって、前記複数のクライアント端末が、秘密鍵と初期ベクトルとを共有し、書き込み共有データおよび読み込み共有データを含むデータを一時的に格納するアクセス領域を有した記憶素子と、アドレス生成手段と、データ変換手段と、データ逆変換手段と、制御手段とを備え、前記仮想保存領域に前記記憶素子に格納された書き込み共有データを書き込み登録する際に、前記アドレス生成手段が、前記共有する秘密鍵と初期ベクトルとから鍵系列を構成するビット列を生成し、該生成したビット列を所定のビット単位で分割して、前記書き込み共有データのアドレスを生成する第1のステップと、前記制御手段が、前記第1のステップにより生成された前記仮想保存領域のアドレスのデータを前記アクセス領域に読み出す第2のステップと、前記制御手段が、前記読み出したデータを前記書き込み共有データで上書きする第3のステップと、前記データ変換手段が、前記上書きしたデータを別のデータに変換する第4のステップと、前記制御手段が、前記変換したデータを前記第1のステップにおいて生成された前記仮想保存領域のアドレスに書き込む処理を行う第5のステップと、前記仮想保存領域内に書き込まれた書き込み共有データを読み出す際に、前記アドレス生成手段が、前記共有する秘密鍵と初期ベクトルとから鍵系列を構成するビット列を生成し、該生成したビット列を所定のビット単位で分割して、前記読み込み共有データのアドレスを生成する第6のステップと、前記制御手段が、前記第6のステップにより生成された前記仮想保存領域のアドレスのデータを前記アクセス領域に読み出す第7のステップと、前記データ逆変換手段が、前記第7のステップにおいて読み出したデータに対して、前記データ変換手段の処理とは、逆の処理を行ない、データを復元する第8のステップと、前記制御手段が、前記復元したデータが所望の書き込み共有データであるか否かを確認する第9のステップと、前記制御手段が、前記所望の書き込み共有データを検出するまで前記第6のステップから第9のステップの処理を繰り返す第10のステップと、前記制御手段が、前記所望の書き込み共有データを前記読み込み共有データとして取得し、前記記憶素子に格納する第11のステップと、前記データ変換手段が、少なくとも前記所望の書き込み共有データに対応する前記読み込み共有データを別のデータに変換する第12のステップと、前記制御手段が、前記変換されたデータを前記第6のステップで生成された前記仮想保存領域のアドレスに書き込む処理を行う第13のステップと、をコンピュータに実行させるためのプログラムを提案している。   (5) The present invention is a program for causing a computer to execute a data sharing method in a data sharing system including a public cloud having a virtual storage area for storing data and a plurality of client terminals, the plurality of clients A terminal shares a secret key and an initial vector, and has a storage element having an access area for temporarily storing data including write shared data and read shared data, an address generating means, a data converting means, and a data inverse Conversion means and control means, and when writing and registering the write shared data stored in the storage element in the virtual storage area, the address generation means uses a key sequence from the shared secret key and the initial vector. Is generated, and the generated bit string is divided into predetermined bit units. A first step of generating an address of the write shared data; a second step of the controller reading data of the address of the virtual storage area generated in the first step into the access area; A third step in which the control means overwrites the read data with the write shared data; a fourth step in which the data conversion means converts the overwritten data into another data; and the control means, A fifth step of performing a process of writing the converted data to the address of the virtual storage area generated in the first step; and when reading the write shared data written in the virtual storage area, the address A generating means generates a bit string constituting a key sequence from the shared secret key and the initial vector, and generates the generated A sixth step of dividing the read bit string by a predetermined bit unit to generate an address of the read shared data, and the control unit generates the address data of the virtual storage area generated by the sixth step. The seventh step of reading to the access area and the data reverse conversion means perform the reverse processing to the data read in the seventh step, and restore the data. An eighth step, a ninth step in which the control means confirms whether or not the restored data is desired write shared data, and until the control means detects the desired write shared data A tenth step for repeating the processes from the sixth step to the ninth step; and the control means stores the desired write shared data. An eleventh step of obtaining the read shared data and storing it in the storage element; and a twelfth step in which the data conversion means converts the read shared data corresponding to at least the desired write shared data into another data. Proposing a program for causing a computer to execute a step and a thirteenth step in which the control means performs a process of writing the converted data to the address of the virtual storage area generated in the sixth step doing.

本発明によれば、パブリッククラウドにおいても安全にデータの共有を行なうことができるという効果がある。   According to the present invention, there is an effect that data can be safely shared even in a public cloud.

本発明の実施形態に係るデータ共有システムの構成を示す図である。It is a figure which shows the structure of the data sharing system which concerns on embodiment of this invention. 本発明の実施形態に係るクライアント端末におけるデータ書き込み時の機能ブロック図である。It is a functional block diagram at the time of data writing in the client terminal according to the embodiment of the present invention. 本発明の実施形態に係るクライアント端末におけるデータ読み込み時の機能ブロック図である。It is a functional block diagram at the time of the data reading in the client terminal which concerns on embodiment of this invention. 本発明の実施形態に係るアドレス生成部の構成を示す図である。It is a figure which shows the structure of the address generation part which concerns on embodiment of this invention. 本発明の実施形態に係る鍵系列とアドレスの関係を示した図である。It is the figure which showed the relationship between the key series which concerns on embodiment of this invention, and an address. 本発明の実施形態に係るデータ書き込み時のデータ遷移の概念を示す図である。It is a figure which shows the concept of the data transition at the time of the data writing which concerns on embodiment of this invention. 本発明の実施形態に係るデータ書き込み時のデータ変換方式を示す図である。It is a figure which shows the data conversion system at the time of the data writing which concerns on embodiment of this invention. 本発明の実施形態に係るデータ書き込み時のデータ変換方式を示す図である。It is a figure which shows the data conversion system at the time of the data writing which concerns on embodiment of this invention. 本発明の実施形態に係るデータ書き込み時のデータ変換方式を示す図である。It is a figure which shows the data conversion system at the time of the data writing which concerns on embodiment of this invention. 本発明の実施形態に係るデータ書き込み時の処理を示す図である。It is a figure which shows the process at the time of the data writing which concerns on embodiment of this invention. 本発明の実施形態に係るアドレス生成部の構成を示す図である。It is a figure which shows the structure of the address generation part which concerns on embodiment of this invention. 本発明の実施形態に係る鍵系列とアドレスの関係を示した図である。It is the figure which showed the relationship between the key series which concerns on embodiment of this invention, and an address. 本発明の実施形態に係るデータ読み込み時のデータ遷移の概念を示す図である。It is a figure which shows the concept of the data transition at the time of the data reading which concerns on embodiment of this invention. 本発明の実施形態に係るデータ読み込み時のデータ変換方式を示す図である。It is a figure which shows the data conversion system at the time of the data reading which concerns on embodiment of this invention. 本発明の実施形態に係るデータ読み込み時のデータ変換方式を示す図である。It is a figure which shows the data conversion system at the time of the data reading which concerns on embodiment of this invention. 本発明の実施形態に係るデータ読み込み時のデータ変換方式を示す図である。It is a figure which shows the data conversion system at the time of the data reading which concerns on embodiment of this invention. 本発明の実施形態に係るデータ読み込み時の処理を示す図である。It is a figure which shows the process at the time of the data reading which concerns on embodiment of this invention.

以下、本発明の実施形態について、図面を用いて、詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組合せを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
Note that the constituent elements in the present embodiment can be appropriately replaced with existing constituent elements and the like, and various variations including combinations with other existing constituent elements are possible. Therefore, the description of the present embodiment does not limit the contents of the invention described in the claims.

<データ共有システムの構成>
図1を用いて、本発明の実施形態に係るデータ共有システムの構成について説明する。
<Configuration of data sharing system>
The configuration of the data sharing system according to the embodiment of the present invention will be described with reference to FIG.

本実施形態に係るデータ共有システムは、図1に示すように、パブリッククラウド100と、クライアント端末A200Aと、クライアント端末B200Bとから構成されている。   As shown in FIG. 1, the data sharing system according to the present embodiment includes a public cloud 100, a client terminal A 200A, and a client terminal B 200B.

パブリッククラウド100は、複数のクラウドサーバを備え、クラウド上に仮想のデータ保存領域を構築し、ダミーデータを含む巨大なデータを格納している。例えば、クライアント端末A200Aが、書き込み共有データをパブリッククラウド100内の仮想保存領域に書き込み、クライアント端末B200Bが、クライアント端末A200Aによってパブリッククラウド100内の仮想保存領域に書き込こまれた書き込み共有データをパブリッククラウド100内の仮想保存領域から読み出して取得する。これにより、クライアント端末A200Aとクライアント端末B200Bとの間で、データ共有が行なわれる。   The public cloud 100 includes a plurality of cloud servers, constructs a virtual data storage area on the cloud, and stores huge data including dummy data. For example, the client terminal A 200A writes the write shared data in the virtual storage area in the public cloud 100, and the client terminal B 200B publicly writes the write shared data written in the virtual storage area in the public cloud 100 by the client terminal A 200A. Read and acquire from the virtual storage area in the cloud 100. Thereby, data sharing is performed between the client terminal A 200A and the client terminal B 200B.

<クライアント端末のデータ書き込み時の機能ブロック構成>
本実施形態に係るクライアント端末200A、200Bのデータ書き込み時の機能ブロックは、図2に示すように、記憶素子210と、アドレス生成部220と、制御部230と、データ変換部240と、乱数生成部250とから構成されている。
<Functional block configuration when writing data to client terminal>
As shown in FIG. 2, the functional blocks at the time of data writing of the client terminals 200A and 200B according to the present embodiment include a storage element 210, an address generation unit 220, a control unit 230, a data conversion unit 240, and random number generation. Part 250.

記憶素子210は、書き込み共有データおよび読み込み共有データを含むデータを一時的に格納するアクセス領域を有した素子であり、例えば、ORAM(Oblivious RAM)等がこれに該当する。クライアント端末上のプログラムは、安全な領域内に確保された記憶素子210のアクセス領域のみアクセス(書き込み、読み込み処理)する。そして、クライアント端末上のプログラムがアクセス(書き込み、読み込み処理)を行うたびに、後述する制御部230が、記憶素子210のアクセス領域とパブリッククラウド100内の仮想保存領域との間でデータの交換を行い、必要なデータを記憶素子210のアクセス領域へと移動させる。なお、例えば、図1のクライアント端末A200Aとクライアント端末B200Bとは、秘密鍵と初期ベクトルとを共有するが、その保存先として、他の記憶素子を設けてもよい。   The storage element 210 is an element having an access area for temporarily storing data including write shared data and read shared data. For example, an ORAM (Obvious RAM) corresponds to this. The program on the client terminal accesses (writes and reads) only the access area of the storage element 210 secured in the safe area. Each time the program on the client terminal accesses (write and read processing), the control unit 230 described later exchanges data between the access area of the storage element 210 and the virtual storage area in the public cloud 100. The necessary data is moved to the access area of the storage element 210. For example, the client terminal A 200A and the client terminal B 200B in FIG. 1 share the secret key and the initial vector, but other storage elements may be provided as the storage destination.

アドレス生成部220は、パブリッククラウド100内の仮想保存領域において、書き込み共有データのアドレスを生成する。具体的には、アドレス生成部220は、図4に示すように、初期化処理部221と非線形関数器222とアドレス出力部223とから構成されている。この初期化処理部221は、他のクライアント端末と共有している秘密鍵および初期ベクトルを入力すると、初期化処理を実行する。そして、初期化処理後の内部状態を非線形関数器222に入力すると、図5に示すような鍵系列を構成するビット列が生成される。このビット列を所定のビット単位、例えば、2ビット単位に分割して、これをアドレスとして、書き込み共有データに割り当てる。後述する制御部230は、例えば、図5に示すアドレスを左から順に使用して書き込み共有データの書き込み処理を行なう。上記のようにアドレスを生成することにより、ランダムにアドレスを発生することができる。   The address generation unit 220 generates the address of the write shared data in the virtual storage area in the public cloud 100. Specifically, as shown in FIG. 4, the address generation unit 220 includes an initialization processing unit 221, a non-linear function unit 222, and an address output unit 223. The initialization processing unit 221 executes an initialization process when a secret key and an initial vector shared with other client terminals are input. Then, when the internal state after the initialization process is input to the non-linear function unit 222, a bit string constituting a key sequence as shown in FIG. 5 is generated. The bit string is divided into predetermined bit units, for example, 2 bit units, and assigned to write shared data as addresses. For example, the control unit 230, which will be described later, performs write processing of the write shared data by using the addresses shown in FIG. 5 in order from the left. By generating addresses as described above, addresses can be generated randomly.

制御部230は、図2に示すように、データ読み出し部231と、上書き部232と、データ書き込み部233とから構成されている。制御部230は、パブリッククラウド100内の仮想保存領域に、記憶素子210に一時格納された書き込み共有データを書き込む際に、データ読み出し部231により、アドレス生成部220によって生成されたアドレスに対応するデータを記憶素子210のアクセス領域に読み出す。次に、上書き部232により、読み出したデータを書き込み共有データで上書きして、上書きしたデータを後述するデータ変換部240により別のデータに変換して、その変換されたデータをデータ読み出し部231により読み出されたパブリッククラウド100内の仮想保存領域のアドレスに書き込む。   As illustrated in FIG. 2, the control unit 230 includes a data reading unit 231, an overwriting unit 232, and a data writing unit 233. When the control unit 230 writes the write shared data temporarily stored in the storage element 210 in the virtual storage area in the public cloud 100, the data corresponding to the address generated by the address generation unit 220 by the data reading unit 231. To the access area of the storage element 210. Next, the overwriting unit 232 overwrites the read data with the write shared data, the overwritten data is converted into another data by the data conversion unit 240 described later, and the converted data is converted by the data reading unit 231. Write to the address of the virtual storage area in the read public cloud 100.

データ変換部240は、書き込み共有データを別のデータに変換する処理を実行する。乱数生成部250は、データ変換部240において、変換処理に用いられる乱数を生成する。なお、データ変換の具体的事例に関しては、後述する。   The data conversion unit 240 executes a process of converting the write shared data into another data. The random number generation unit 250 generates random numbers used in the conversion process in the data conversion unit 240. Specific examples of data conversion will be described later.

<データ書き込み時のデータの遷移>
記憶素子におけるデータ書き込み時のデータ遷移について、図6を用いて、説明する。
<Data transition when writing data>
Data transition at the time of data writing in the memory element will be described with reference to FIG.

図6は、記憶素子210内のアクセス領域とパブリッククラウド100内の仮想保存領域との間におけるデータ書き込み時のデータ遷移を示している。今、パブリッククラウド100内の仮想保存領域において、データxが保存されているアドレスに書き込み共有データx‘を書き込む場合を考える。まず、書き込みを行うアドレスに保存されているデータxを記憶素子210内のアクセス領域に読み出す(図6の上の図)。次に、読み出したデータxを書き込み共有データx‘で上書きする。そして、書き込み共有データx‘をe(x‘)に変形して、元の読み出しアドレスに書き込む。これにより、読み出したデータを別のデータに変換して書き戻すため、どのデータに対して、読み出し、書き込みを行ったかを秘匿することができる。また、実際に、書き込むアドレスのデータ以外に、ランダムにアドレスを発生させて、その発生させた複数のアドレスのデータについても同様の処理を行なうことにより、さらに、秘匿性を高めることができる。   FIG. 6 shows data transition at the time of data writing between the access area in the storage element 210 and the virtual storage area in the public cloud 100. Consider a case where write shared data x ′ is written to an address where data x is stored in a virtual storage area in the public cloud 100. First, the data x stored at the address to be written is read to the access area in the storage element 210 (the upper diagram in FIG. 6). Next, the read data x is overwritten with the write shared data x ′. Then, the write shared data x ′ is transformed into e (x ′) and written to the original read address. Thus, since the read data is converted into another data and written back, it is possible to conceal which data has been read and written. Further, by actually generating an address at random in addition to the address data to be written, and performing the same processing on the generated data at a plurality of addresses, the confidentiality can be further improved.

<データ書き込み時のデータ変換方式>
図7から図9を用いて、データ書き込み時のデータ変換方式について説明する。
<Data conversion method when writing data>
A data conversion method at the time of data writing will be described with reference to FIGS.

図7の方式は、書き込み共有データx‘を書き込み共有データx‘と乱数生成部250において生成された乱数との排他的論理和演算値をe(x´)に変換するものである。なお、この方式の場合には、排他的論理和演算値から書き込み共有データx‘を取り出すために、ユーザ(本実施形態では、クライアント端末A、クライアント端末B)にのみ排他的論理和演算値との関連がわかるように、乱数生成部250において生成された乱数をパブリッククラウド100内の仮想保存領域に書き込んでおく必要がある。   The method in FIG. 7 converts the exclusive OR operation value between the write shared data x ′ and the write shared data x ′ and the random number generated by the random number generation unit 250 into e (x ′). In the case of this method, in order to extract the write shared data x ′ from the exclusive OR operation value, only the user (client terminal A, client terminal B in this embodiment) Therefore, it is necessary to write the random number generated by the random number generation unit 250 in the virtual storage area in the public cloud 100.

図8の方式は、書き込み共有データx‘を毎回異なる秘密鍵を用いて暗号化したe(x‘)に変換するものである。なお、この方式の場合には、e(x‘)から書き込み共有データx‘を復号化して取り出すために、ユーザ(本実施形態では、クライアント端末A、クライアント端末B)間で、e(x‘)との関連がわかるように、秘密鍵を共有する必要がある。   The method of FIG. 8 converts the write shared data x ′ into e (x ′) encrypted using a different secret key each time. In this method, in order to decrypt and extract the write shared data x ′ from e (x ′), e (x ′) between users (in this embodiment, client terminal A and client terminal B). ) Must be shared so that the relationship with

図9の方式は、書き込み共有データx‘にシーケンス番号cを付加したデータx‘//cを毎回同じ秘密鍵を用いて暗号化したe(x‘//c)に変換するものである。ここで、シーケンス番号cは、データx’にプログラムが何度読み出しを行ったかを示すものである。図8の例では、毎回、秘密鍵を変えることから、多くの秘密鍵を予め保持する必要があるためにメモリサイズが増加するという問題があるが、本例の場合には、メモリサイズの増加分は、シーケンス番号を付加する分だけで済むため、メモリサイズのサイズを小さく抑えることができる。
<アクセス領域のデータの保護および処理の高速化>
The method of FIG. 9 converts the data x ′ // c obtained by adding the sequence number c to the write shared data x ′ into e (x ′ // c) encrypted using the same secret key every time. Here, the sequence number c indicates how many times the program has read the data x ′. In the example of FIG. 8, since the secret key is changed every time, there is a problem that the memory size increases because it is necessary to hold a large number of secret keys in advance. In this example, the memory size increases. Since only the sequence number is added, the memory size can be reduced.
<Access area data protection and processing speedup>

データの書き込み処理を秘匿化するためには、アクセス領域のデータを保護することも重要な要素となる。アクセス領域のデータの保護については、いくつかの方法が考えられるが、以下では、アクセス領域のデータを難読化して保護する具体例について説明する。   In order to conceal the data writing process, it is also important to protect the data in the access area. Several methods are conceivable for protecting the data in the access area, but a specific example of obfuscating and protecting the data in the access area will be described below.

ここでは、アクセス領域のデータを数1に示すような数式により難読化する方法を示す。   Here, a method of obfuscating the data in the access area using the mathematical formula shown in Equation 1 will be shown.

数1は、変数による難読化を例示しており、ここで、v、v、vは、難読化前の変数であり、x、x、x、x、xは、難読化後の変数を表す。また、dは乱数、y、y、y、y、yは、所定の定数である。数1に表されるように、乱数dと乗算される行列の列は常に1になっており、これによって難読化前の変数vの変更が難読化後の変数全体に及ぶようになっている。このような難読化を適用することによって、1つの変数を変更すれば、それが5つの変数に影響を及ぼすことになる。 Equation 1 exemplifies obfuscation with variables, where v 1 , v 2 , v 3 are variables before obfuscation, and x 1 , x 2 , x 3 , x 4 , x 5 are Represents variables after obfuscation. D is a random number, and y 1 , y 2 , y 3 , y 4 , and y 5 are predetermined constants. As shown in Equation 1, the matrix column multiplied by the random number d is always 1, so that the change of the variable v before obfuscation extends to the entire variable after obfuscation. . By applying such obfuscation, changing one variable will affect five variables.

また、上記の例においては、アクセス領域に保管されているデータを管理することが重要であり、最新のデータが1つだけ保持されていなければならない。そのため、パブリッククラウド100内の仮想保存領域からアクセス領域にデータを移動する際に、選択したデータがアクセス領域に保持されていないことを確認する必要がある。ここで、簡便な解決策としてスキャンによるものがある。しかし、スキャンを使用した場合、多くのオーバーヘッドが生じる。そこで、パブリッククラウド100内の仮想保存領域の全ブロックに1ビットの値を割り当て、ビットの1、0によって各データがアクセス領域に保持されているかどうかを判定する。これによって、アクセス領域のデータの管理を高速に行うことが可能である。   In the above example, it is important to manage the data stored in the access area, and only the latest data must be held. Therefore, when moving data from the virtual storage area in the public cloud 100 to the access area, it is necessary to confirm that the selected data is not held in the access area. Here, a simple solution is based on scanning. However, when scanning is used, a lot of overhead occurs. Therefore, a 1-bit value is assigned to all blocks in the virtual storage area in the public cloud 100, and whether or not each data is held in the access area is determined by bits 1 and 0. As a result, it is possible to manage the data in the access area at high speed.

また、上記の例においては、各ブロックのサイズは一定である。そのため、大きなサイズのデータブロックに対応するためには、各ブロックをCPUのワードサイズに合わせて32ビットあるいは64ビットで記憶素子210のアクセス領域およびパブリッククラウド100内の仮想保存領域を構成する必要がある。しかし、プログラムが扱う変数はこれよりも小さい場合が多く、大きなブロックを使用すると必要となるメモリが増加するという問題がある。そこで、1ブロックのサイズを32ビットあるいは64ビットとし、1つのブロックに複数の小さいデータを格納する。例えば、short int型変数の場合、1つのデータは2バイト(16ビット)であるので、64ビット環境では、1つのブロックに4つのshort int型変数を格納することが可能となる。これによって、必要なメモリサイズの削減が可能となる。同時に、4つのshort int型変数を1度に取得することが可能となるので、連続してアクセスするデータが同一のブロックに格納されている場合は書き込み速度、読み出し速度の向上も実現できる。   In the above example, the size of each block is constant. Therefore, in order to support a large data block, it is necessary to configure each block as an access area of the storage element 210 and a virtual storage area in the public cloud 100 with 32 bits or 64 bits according to the word size of the CPU. is there. However, the variables handled by the program are often smaller than this, and there is a problem that the required memory increases when a large block is used. Therefore, the size of one block is 32 bits or 64 bits, and a plurality of small data are stored in one block. For example, in the case of a short int type variable, since one data is 2 bytes (16 bits), in a 64-bit environment, it is possible to store four short int type variables in one block. As a result, the required memory size can be reduced. At the same time, it is possible to acquire four short int type variables at a time. Therefore, when data to be continuously accessed is stored in the same block, it is possible to improve the writing speed and the reading speed.

<データ書き込み時の処理>
図10を用いて、データ書き込み時の処理について説明する。
<Process when writing data>
A process at the time of data writing will be described with reference to FIG.

まず、初期状態では、パブリッククラウド上のすべての領域は、ダミーデータで占有されている。   First, in the initial state, all areas on the public cloud are occupied by dummy data.

アドレス生成部220は、共有する秘密鍵と初期ベクトルとから鍵系列を構成するビット列を生成し、その生成したビット列を所定のビット単位で分割して、書き込み共有データのアドレスを生成する(ステップS101)。   The address generation unit 220 generates a bit string that constitutes a key sequence from the shared secret key and the initial vector, divides the generated bit string in predetermined bit units, and generates an address of write shared data (step S101). ).

制御部230は、ステップS101により生成された仮想保存領域のアドレスのデータをアクセス領域に読み出し(ステップS102)、読み出したデータを書き込み共有データで上書きする(ステップS103)。   The control unit 230 reads the data at the address of the virtual storage area generated in step S101 into the access area (step S102), and overwrites the read data with the write shared data (step S103).

そして、データ変換部240が、上書きしたデータを別のデータに変換し(ステップS104)、制御部230が、変換したデータをステップS101において生成された仮想保存領域のアドレスに書き込む処理を行う(ステップS105)。なお、変換したデータは、(書き込み共有データXOR乱数)の形で登録され、別途乱数も登録される。すなわち、(書き込み共有データXOR乱数)と乱数の両方を正しく入手しなければデータを復元することはできない。また、本実施形態における乱数はダミーデータとしても機能する。ダミーデータが十分でない場合には別途ダミーデータを追加してもよい。また、ダミーデータは定期的に書き込む仕様としても良い。   Then, the data conversion unit 240 converts the overwritten data into another data (step S104), and the control unit 230 performs a process of writing the converted data to the address of the virtual storage area generated in step S101 (step S104). S105). The converted data is registered in the form of (write shared data XOR random number), and a random number is also registered separately. In other words, the data cannot be restored unless both the (write shared data XOR random number) and the random number are obtained correctly. Further, the random number in the present embodiment also functions as dummy data. If the dummy data is not sufficient, additional dummy data may be added. The dummy data may be written periodically.

<クライアント端末のデータ読み込み時の機能ブロック構成>
本実施形態に係るクライアント端末のデータ読み込み時の機能ブロックは、図3に示すように、記憶素子210と、アドレス生成部220と、制御部230と、データ変換部240と、乱数生成部250と、データ逆変換部260とから構成されている。なお、記憶素子210については、データ書き込み時の記憶ブロックでの説明と同様であるため、その詳細な説明は、省略する。
<Functional block configuration when reading data from client terminal>
As shown in FIG. 3, functional blocks at the time of data reading of the client terminal according to the present embodiment include a storage element 210, an address generation unit 220, a control unit 230, a data conversion unit 240, and a random number generation unit 250. , The data reverse conversion unit 260. Note that the storage element 210 is the same as that described in the storage block at the time of data writing, and thus detailed description thereof is omitted.

アドレス生成部220は、パブリッククラウド100内の仮想保存領域において、読み込み共有データのアドレスを生成する。具体的には、アドレス生成部220は、図11に示すように、初期化処理部221と非線形関数器222とアドレス出力部223とから構成されている。この初期化処理部221は、他のクライアント端末と共有している秘密鍵および初期ベクトルを入力すると、初期化処理を実行する。そして、初期化処理後の内部状態を非線形関数器222に入力すると、図12に示すような鍵系列を構成するビット列が生成される。このビット列を所定のビット単位、例えば、2ビット単位に分割して、これをアドレスとする。   The address generation unit 220 generates an address of read shared data in the virtual storage area in the public cloud 100. Specifically, the address generation unit 220 includes an initialization processing unit 221, a non-linear function device 222, and an address output unit 223, as shown in FIG. The initialization processing unit 221 executes an initialization process when a secret key and an initial vector shared with other client terminals are input. Then, when the internal state after the initialization process is input to the nonlinear function unit 222, a bit string constituting a key sequence as shown in FIG. 12 is generated. This bit string is divided into predetermined bit units, for example, 2 bit units, and this is used as an address.

制御部230は、図3に示すように、データ読み出し部231と、データ書き込み部233と、データ検出部234とから構成されている。制御部230は、パブリッククラウド100内の仮想保存領域からデータを読み出す際に、データ読み出し部231により、アドレス生成部220によって生成されたアドレスに対応するデータを記憶素子210のアクセス領域に読み出す。次に、データ逆変換部260により、データ変換部240とは逆の処理を行なって、データを復元し、データ検出部234により、復元したデータが所望の書き込み共有データであるか否かを検出する処理を所望の書き込み共有データを検出するまで行なう。そして、所望の書き込み共有データが検出されると、その所望の書き込み共有データを読み込み共有データとして記憶素子210に格納する。次いで、所望の書き込み共有データに対応する読み込み共有データをデータ変換部240により別のデータに変換して、その変換されたデータをデータ読み出し部231により読み出されたパブリッククラウド100内の仮想保存領域におけるアドレスに書き込む。なお、所望の書き込み共有データがあったアドレスを記憶しておけば、処理を重ねるごとに、検索の処理負荷が軽くなる。   As shown in FIG. 3, the control unit 230 includes a data reading unit 231, a data writing unit 233, and a data detection unit 234. When the control unit 230 reads data from the virtual storage area in the public cloud 100, the data reading unit 231 reads data corresponding to the address generated by the address generation unit 220 into the access area of the storage element 210. Next, the data reverse conversion unit 260 performs processing reverse to that of the data conversion unit 240 to restore the data, and the data detection unit 234 detects whether or not the restored data is desired write shared data. This process is performed until the desired write shared data is detected. When desired write shared data is detected, the desired write shared data is read and stored in the storage element 210 as shared data. Next, the virtual shared area in the public cloud 100 in which the read shared data corresponding to the desired write shared data is converted into another data by the data converting unit 240 and the converted data is read by the data reading unit 231. Write to address at. If the address where the desired write shared data is stored is stored, the processing load of the search is reduced each time the processing is repeated.

データ変換部240は、読み込み共有データを別のデータに変換する処理を実行する。乱数生成部250は、データ変換部240において、変換処理に用いられる乱数を生成する。なお、データ変換の具体的事例に関しては、後述する。   The data conversion unit 240 executes a process of converting the read shared data into another data. The random number generation unit 250 generates random numbers used in the conversion process in the data conversion unit 240. Specific examples of data conversion will be described later.

<データ読み込み時のデータの遷移>
記憶素子におけるデータ読み込み時のデータ遷移について、図13を用いて、説明する。
<Data transition when reading data>
Data transition at the time of data reading in the memory element will be described with reference to FIG.

図13は、記憶素子210内のアクセス領域とパブリッククラウド100内の仮想保存領域との間におけるデータ読み込み時のデータ遷移を示している。今、パブリッククラウド100内の仮想保存領域において、データxを読み込む場合を考える。まず、読み込みを行うアドレスに保存されているデータe(x)(データxに対して変換処理を行なったデータ)を記憶素子210内のアクセス領域に読み出し(図13の上の図)、読み出したデータe(x)に対して、逆変換処理を行なって、データxを復元する。次に、復元したデータxが所望の書き込み共有データであった場合には、復元した読み込み共有データxをE(x)に変形して、元の読み出しアドレスに書き込む。これにより、読み出したデータを一旦、復元し、復元したデータを別のデータに変換して書き戻すため、どのデータに対して、読み出し、書き込みを行ったかを秘匿することができる。また、最初の読み出し処理で、所望の書き込み共有データを取得できた場合には、ランダムに選択した他のデータに対しても、同様の処理を行なうことにより、さらに、秘匿性を高めることができる。また、複数回の読み出し処理において、所望の書き込み共有データを取得できた場合でも、所望の書き込み共有データのみでなく、読み出したすべてのデータについて、変換処理を行なって、書き戻す処理を行なってもよい。このような処理を行なうことにより、秘匿性を高めることができる。   FIG. 13 shows data transition at the time of data reading between the access area in the storage element 210 and the virtual storage area in the public cloud 100. Consider a case where data x is read in a virtual storage area in the public cloud 100. First, the data e (x) stored at the address to be read (data obtained by converting the data x) is read to the access area in the storage element 210 (the upper diagram in FIG. 13). The data e (x) is subjected to an inverse transformation process to restore the data x. Next, when the restored data x is desired write shared data, the restored read shared data x is transformed into E (x) and written to the original read address. As a result, the read data is temporarily restored, and the restored data is converted into another data and written back. Therefore, it is possible to conceal which data has been read and written. In addition, when desired write shared data can be obtained in the first read process, the confidentiality can be further improved by performing the same process on other randomly selected data. . Further, even if desired write shared data can be obtained in a plurality of read processes, not only desired write shared data but also all read data may be converted and written back. Good. By performing such processing, confidentiality can be enhanced.

<データ読み込み時のデータ変換方式>
図14から図16を用いて、データ読み込み時のデータ変換方式について説明する。
<Data conversion method when reading data>
A data conversion method at the time of data reading will be described with reference to FIGS.

図14の方式は、読み込み共有データxを読み込み共有データxと乱数生成部250において生成された乱数との排他的論理和演算値E(x)に変換するものである。なお、この方式の場合には、排他的論理和演算値から読み込み共有データxを取り出すために、ユーザ(本実施形態では、クライアント端末A、クライアント端末B)にのみ排他的論理和演算値との関連がわかるように、乱数生成部250において生成された乱数をパブリッククラウド100内の仮想保存領域に書き込んでおく必要がある。   14 converts the read shared data x into an exclusive OR operation value E (x) of the read shared data x and the random number generated by the random number generator 250. In the case of this method, in order to read the read shared data x from the exclusive OR operation value, only the user (client terminal A, client terminal B in this embodiment) In order to understand the relationship, it is necessary to write the random number generated by the random number generation unit 250 in the virtual storage area in the public cloud 100.

図15の方式は、読み込み共有データxを毎回異なる秘密鍵を用いて暗号化したE(x)に変換するものである。なお、この方式の場合には、E(x)から読み込み共有データxを復号化して取り出すために、ユーザ(本実施形態では、クライアント端末A、クライアント端末B)間で、E(x)との関連がわかるように、秘密鍵を共有する必要がある。   The method shown in FIG. 15 converts the read shared data x into E (x) encrypted using a different secret key each time. In the case of this method, in order to decrypt the read shared data x from E (x) and extract it, the user (client terminal A, client terminal B in this embodiment) communicates with E (x). It is necessary to share the secret key so that the relationship can be understood.

図16の方式は、読み込み共有データxにシーケンス番号cを付加したデータx//cを毎回同じ秘密鍵を用いて暗号化したE(x//c)に変換するものである。ここで、シーケンス番号cは、データxにプログラムが何度読み出しを行ったかを示すものである。図15の例では、毎回、秘密鍵を変えることから、多くの秘密鍵を予め保持する必要があるためにメモリサイズが増加するという問題があるが、本例の場合には、メモリサイズの増加分は、シーケンス番号を付加する分だけで済むため、メモリサイズのサイズを小さく抑えることができる。
<アクセス領域のデータの保護および処理の高速化>
The system of FIG. 16 converts the data x // c with the sequence number c added to the read shared data x into E (x // c) encrypted using the same secret key each time. Here, sequence number c indicates how many times the program has read data x. In the example of FIG. 15, since the secret key is changed every time, there is a problem that the memory size increases because it is necessary to hold a large number of secret keys in advance, but in this example, the memory size increases. Since only the sequence number is added, the memory size can be reduced.
<Access area data protection and processing speedup>

データの読み込み処理を秘匿化するためには、アクセス領域のデータを保護することも重要な要素となる。アクセス領域のデータの保護については、いくつかの方法が考えられるが、以下では、アクセス領域のデータを難読化して保護する具体例について説明する。   In order to conceal the data reading process, it is also important to protect the data in the access area. Several methods are conceivable for protecting the data in the access area, but a specific example of obfuscating and protecting the data in the access area will be described below.

ここでは、アクセス領域のデータを数2に示すような数式により難読化する方法を示す。   Here, a method of obfuscating the data in the access area using a mathematical formula as shown in Equation 2 is shown.

数2は、変数による難読化を例示しており、ここで、v、v、vは、難読化前の変数であり、x、x、x、x、xは、難読化後の変数を表す。また、dは乱数、y、y、y、y、yは、所定の定数である。数2に表されるように、乱数dと乗算される行列の列は常に1になっており、これによって難読化前の変数vの変更が難読化後の変数全体に及ぶようになっている。このような難読化を適用することによって、1つの変数を変更すれば、それが5つの変数に影響を及ぼすことになる。 Equation 2 exemplifies obfuscation by variables, where v 1 , v 2 , v 3 are variables before obfuscation, and x 1 , x 2 , x 3 , x 4 , x 5 are Represents variables after obfuscation. D is a random number, and y 1 , y 2 , y 3 , y 4 , and y 5 are predetermined constants. As shown in Equation 2, the matrix column multiplied by the random number d is always 1, so that the change of the variable v before obfuscation extends to the entire variable after obfuscation. . By applying such obfuscation, changing one variable will affect five variables.

また、上記の例においては、アクセス領域に保管されているデータを管理することが重要であり、最新のデータが1つだけ保持されていなければならない。そのため、パブリッククラウド100内の仮想保存領域からアクセス領域にデータを移動する際に、選択したデータがアクセス領域に保持されていないことを確認する必要がある。ここで、簡便な解決策としてスキャンによるものがある。しかし、スキャンを使用した場合、多くのオーバーヘッドが生じる。そこで、パブリッククラウド100の仮想保存領域の全ブロックに1ビットの値を割り当て、ビットの1、0によって各データがアクセス領域に保持されているかどうかを判定する。これによって、アクセス領域のデータの管理を高速に行うことが可能である。   In the above example, it is important to manage the data stored in the access area, and only the latest data must be held. Therefore, when moving data from the virtual storage area in the public cloud 100 to the access area, it is necessary to confirm that the selected data is not held in the access area. Here, a simple solution is based on scanning. However, when scanning is used, a lot of overhead occurs. Therefore, a 1-bit value is assigned to all blocks in the virtual storage area of the public cloud 100, and whether or not each data is held in the access area is determined by bits 1 and 0. As a result, it is possible to manage the data in the access area at high speed.

また、上記の例においては、各ブロックのサイズは一定である。そのため、大きなサイズのデータブロックに対応するためには、各ブロックをCPUのワードサイズに合わせて32ビットあるいは64ビットで記憶素子210のアクセス領域およびパブリッククラウド100内の仮想保存領域を構成する必要がある。しかし、プログラムが扱う変数はこれよりも小さい場合が多く、大きなブロックを使用すると必要となるメモリが増加するという問題がある。そこで、1ブロックのサイズを32ビットあるいは64ビットとし、1つのブロックに複数の小さいデータを格納する。例えば、short int型変数の場合、1つのデータは2バイト(16ビット)であるので、64ビット環境では、1つのブロックに4つのshort int型変数を格納することが可能となる。これによって、必要なメモリサイズの削減が可能となる。同時に、4つのshort int型変数を1度に取得することが可能となるので、連続してアクセスするデータが同一のブロックに格納されている場合は書き込み速度、読み出し速度の向上も実現できる。   In the above example, the size of each block is constant. Therefore, in order to support a large data block, it is necessary to configure each block as an access area of the storage element 210 and a virtual storage area in the public cloud 100 with 32 bits or 64 bits according to the word size of the CPU. is there. However, the variables handled by the program are often smaller than this, and there is a problem that the required memory increases when a large block is used. Therefore, the size of one block is 32 bits or 64 bits, and a plurality of small data are stored in one block. For example, in the case of a short int type variable, since one data is 2 bytes (16 bits), in a 64-bit environment, it is possible to store four short int type variables in one block. As a result, the required memory size can be reduced. At the same time, it is possible to acquire four short int type variables at a time. Therefore, when data to be continuously accessed is stored in the same block, it is possible to improve the writing speed and the reading speed.

<データ読み出し時の処理>
図17を用いて、データ読み出し時の処理について説明する。
<Process when reading data>
The processing at the time of data reading will be described with reference to FIG.

まず、アドレス生成部220が、共有する秘密鍵と初期ベクトルとから鍵系列を構成するビット列を生成し、生成したビット列を所定のビット単位で分割して、読み込み共有データのアドレスを生成する(ステップS201)。   First, the address generation unit 220 generates a bit string that forms a key sequence from the shared secret key and the initial vector, and divides the generated bit string in predetermined bit units to generate an address of the read shared data (step) S201).

制御部230は、ステップS201により生成された仮想保存領域のアドレスのデータをアクセス領域に読み出し(ステップS202)、データ逆変換部260が、ステップS202において読み出したデータに対して、データ変換手段の処理とは、逆の処理を行ない、データを復元する(ステップS203)。   The control unit 230 reads the data of the virtual storage area address generated in step S201 into the access area (step S202), and the data conversion unit 260 processes the data read in step S202 by the data conversion unit. The reverse process is performed to restore the data (step S203).

制御部230は、復元したデータが所望の書き込み共有データであるか否かを確認し(ステップS204)、所望の書き込み共有データを検出するまでステップS201からステップS204の処理を繰り返す(ステップS205)。   The control unit 230 checks whether or not the restored data is desired write shared data (step S204), and repeats the processing from step S201 to step S204 until the desired write shared data is detected (step S205).

制御部230は、所望の書き込み共有データを読み込み共有データとして取得し、記憶素子に格納し(ステップS206)、データ変換部240が、少なくとも所望の書き込み共有データに対応する読み込み共有データを別のデータに変換して(ステップS207)、制御部230が、変換されたデータをステップS201で生成された仮想保存領域のアドレスに書き込む処理を行う(ステップS208)。   The control unit 230 acquires the desired write shared data as read shared data, stores it in the storage element (step S206), and the data conversion unit 240 sets at least the read shared data corresponding to the desired write shared data to another data. (Step S207), the control unit 230 writes the converted data at the address of the virtual storage area generated in Step S201 (Step S208).

なお、変換したデータは、(読み込み共有データXOR乱数)の形で登録され、別途乱数も登録される。すなわち、(読み込み共有データXOR乱数)と乱数の両方を正しく入手しなければデータを復元することはできない。また、本実施形態における乱数はダミーデータとしても機能する。ダミーデータが十分でない場合には別途ダミーデータを追加してもよい。また、ダミーデータは定期的に書き込む仕様としても良い。   The converted data is registered in the form of (read shared data XOR random number), and a random number is also registered separately. That is, the data cannot be restored unless both the (read shared data XOR random number) and the random number are obtained correctly. Further, the random number in the present embodiment also functions as dummy data. If the dummy data is not sufficient, additional dummy data may be added. The dummy data may be written periodically.

以上、説明したように、本実施形態によれば、パブリッククラウドにおいても安全にデータの共有を行なうことができる。   As described above, according to the present embodiment, data can be safely shared even in a public cloud.

なお、データ共有システムの処理をコンピュータシステムが読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムをデータ共有システムの構成要素であるクライアント端末A、Bに読み込ませ、実行することによって本発明のデータ共有システムを実現することができる。ここでいうコンピュータシステムとは、OSや周辺装置等のハードウェアを含む。   The processing of the data sharing system is recorded on a recording medium readable by the computer system, and the program recorded on the recording medium is read by the client terminals A and B, which are components of the data sharing system, and executed. The data sharing system of the present invention can be realized. The computer system here includes an OS and hardware such as peripheral devices.

また、「コンピュータシステム」は、WWW(World Wide Web)システムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。   Further, the “computer system” includes a homepage providing environment (or display environment) if a WWW (World Wide Web) system is used. The program may be transmitted from a computer system storing the program in a storage device or the like to another computer system via a transmission medium or by a transmission wave in the transmission medium. Here, the “transmission medium” for transmitting the program refers to a medium having a function of transmitting information, such as a network (communication network) such as the Internet or a communication line (communication line) such as a telephone line.

また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。   The program may be for realizing a part of the functions described above. Furthermore, what can implement | achieve the function mentioned above in combination with the program already recorded on the computer system, what is called a difference file (difference program) may be sufficient.

以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。   The embodiments of the present invention have been described in detail with reference to the drawings. However, the specific configuration is not limited to the embodiments, and includes designs and the like that do not depart from the gist of the present invention.

100;パブリッククラウド
200A;クライアント端末A
200B;クライアント端末B
210;記憶素子
220;アドレス生成部
230;制御部
231;データ読み出し部
232;上書き部
233;データ書き込み部
234;データ検出部
240;データ変換部
250;乱数生成部
260;データ逆変換部
100; Public cloud 200A; Client terminal A
200B; Client terminal B
210; storage element 220; address generation unit 230; control unit 231; data reading unit 232; overwrite unit 233; data writing unit 234; data detection unit 240; data conversion unit 250; random number generation unit 260;

Claims (5)

データを格納する仮想保存領域を有するパブリッククラウドと、複数のクライアント端末とからなるデータ共有システムであって、
前記複数のクライアント端末が、
秘密鍵と初期ベクトルとを共有し、
書き込み共有データおよび読み込み共有データを含むデータを一時的に格納するアクセス領域を有した記憶素子と、
前記共有する秘密鍵と初期ベクトルとから鍵系列を構成するビット列を生成し、該生成したビット列を所定のビット単位で分割して、前記書き込み共有データおよび読み込み共有データに対するアドレスを生成するアドレス生成手段と、
前記書き込み共有データおよび読み込み共有データを別のデータに変換するデータ変換手段と、
前記書き込み共有データの書き込み処理および前記読み込み共有データの読み込み処理を制御する制御手段と、
を備え、
前記制御手段が、
前記仮想保存領域に前記記憶素子に格納された書き込み共有データを書き込む際に、前記アドレス生成手段により生成された前記仮想保存領域のアドレスのデータを前記アクセス領域に読み出し、該読み出したデータを前記書き込み共有データで上書きし、該上書きしたデータを前記データ変換手段により別のデータに変換して、該変換したデータを前記アドレス生成手段により生成された前記仮想保存領域のアドレスに書き込む処理を行い、
前記仮想保存領域内に書き込まれた書き込み共有データを読み出す際に、順次、前記アドレス生成手段により生成された前記仮想保存領域のアドレスのデータを前記アクセス領域に読み出し、前記データ変換手段の処理とは逆の処理を行ない、該逆の処理を行なったデータが所望の書き込み共有データであるか否かの確認を前記所望の書き込み共有データを検出するまで行なって、前記所望の書き込み共有データを取得し、少なくとも前記所望の書き込み共有データに対応する前記読み込み共有データを前記データ変換手段により別のデータに変換して、該変換されたデータをアドレス生成手段により生成された前記仮想保存領域のアドレスに書き込む処理を行うことを特徴とするデータ共有システム。
A data sharing system comprising a public cloud having a virtual storage area for storing data and a plurality of client terminals,
The plurality of client terminals are
Share the secret key and the initial vector,
A storage element having an access area for temporarily storing data including write shared data and read shared data;
Address generation means for generating a bit string constituting a key sequence from the shared secret key and the initial vector, dividing the generated bit string in predetermined bit units, and generating addresses for the write shared data and the read shared data When,
Data conversion means for converting the write shared data and read shared data into different data;
Control means for controlling the write shared data write process and the read shared data read process;
With
The control means is
When writing shared write data stored in the storage element to the virtual storage area, the address data of the virtual storage area generated by the address generation unit is read to the access area, and the read data is written to the virtual storage area Overwriting with shared data, converting the overwritten data into another data by the data conversion means, and performing the process of writing the converted data to the address of the virtual storage area generated by the address generation means,
When reading the write shared data written in the virtual storage area, the data of the address of the virtual storage area generated by the address generation means is sequentially read to the access area, and the processing of the data conversion means The reverse process is performed, and it is confirmed whether the data subjected to the reverse process is the desired write shared data until the desired write shared data is detected, and the desired write shared data is obtained. The read shared data corresponding to at least the desired write shared data is converted into another data by the data conversion means, and the converted data is written to the address of the virtual storage area generated by the address generation means A data sharing system characterized by performing processing.
前記複数のクライアント端末が、乱数を生成する乱数生成手段と、排他的論理和演算を行う排他的論理和演算手段とを備え、
前記データ変換手段は、
前記仮想保存領域に前記記憶素子に格納された書き込み共有データを書き込む際には、前記上書きしたデータを前記排他的論理和演算手段が演算する前記上書きしたデータと前記乱数生成手段が生成した乱数との排他的論理和演算値に変換し、
前記仮想保存領域内の書き込み共有データを読み出す際には、前記取得した所望の書き込み共有データを前記排他的論理和演算手段が演算する前記取得した所望の書き込み共有データと前記乱数生成手段が生成した乱数との排他的論理和演算値に変換し、
前記制御手段は、前記変換したデータである前記排他的論理和演算値に加えて、前記排他的論理和演算に用いた乱数を前記複数のクライアント端末のクライアントにのみ前記排他的論理和演算値との関連がわかるように、前記仮想保存領域に書き込むことを特徴とする請求項1に記載のデータ共有システム。
The plurality of client terminals comprise random number generating means for generating random numbers, and exclusive OR operation means for performing exclusive OR operations,
The data conversion means includes
When writing the write shared data stored in the storage element in the virtual storage area, the overwritten data calculated by the exclusive OR operation means and the random number generated by the random number generation means To the exclusive OR operation value of
When reading the write shared data in the virtual storage area, the acquired desired write shared data calculated by the exclusive OR calculating means and the random number generating means are generated. Convert to exclusive OR operation value with random number,
In addition to the exclusive OR operation value that is the converted data, the control means uses the random number used for the exclusive OR operation as the exclusive OR operation value only for the clients of the plurality of client terminals. The data sharing system according to claim 1, wherein the data is written in the virtual storage area so that the relationship between the two can be understood.
前記アクセス領域に格納される書き込み共有データおよび読み込み共有データが、難読化処理されていることを特徴とする請求項1または請求項2に記載のデータ共有システム。   3. The data sharing system according to claim 1, wherein the write shared data and the read shared data stored in the access area are obfuscated. データを格納する仮想保存領域を有するパブリッククラウドと、複数のクライアント端末とからなるデータ共有システムにおけるデータ共有方法であって、
前記複数のクライアント端末が、秘密鍵と初期ベクトルとを共有し、書き込み共有データおよび読み込み共有データを含むデータを一時的に格納するアクセス領域を有した記憶素子と、アドレス生成手段と、データ変換手段と、データ逆変換手段と、制御手段とを備え、
前記仮想保存領域に前記記憶素子に格納された書き込み共有データを書き込む際に、
前記アドレス生成手段が、前記共有する秘密鍵と初期ベクトルとから鍵系列を構成するビット列を生成し、該生成したビット列を所定のビット単位で分割して、前記書き込み共有データのアドレスを生成する第1のステップと、
前記制御手段が、前記第1のステップにより生成された前記仮想保存領域のアドレスのデータを前記アクセス領域に読み出す第2のステップと、
前記制御手段が、前記読み出したデータを前記書き込み共有データで上書きする第3のステップと、
前記データ変換手段が、前記上書きしたデータを別のデータに変換する第4のステップと、
前記制御手段が、前記変換したデータを前記第1のステップにおいて生成された前記仮想保存領域のアドレスに書き込む処理を行う第5のステップと、
前記仮想保存領域内に書き込まれた書き込み共有データを読み出す際に、
前記アドレス生成手段が、前記共有する秘密鍵と初期ベクトルとから鍵系列を構成するビット列を生成し、該生成したビット列を所定のビット単位で分割して、前記読み込み共有データのアドレスを生成する第6のステップと、
前記制御手段が、前記第6のステップにより生成された前記仮想保存領域のアドレスのデータを前記アクセス領域に読み出す第7のステップと、
前記データ逆変換手段が、前記第7のステップにおいて読み出したデータに対して、前記データ変換手段の処理とは、逆の処理を行ない、データを復元する第8のステップと、
前記制御手段が、前記復元したデータが所望の書き込み共有データであるか否かを確認する第9のステップと、
前記制御手段が、前記所望の書き込み共有データを検出するまで前記第6のステップから第9のステップの処理を繰り返す第10のステップと、
前記制御手段が、前記所望の書き込み共有データを前記読み込み共有データとして取得し、前記記憶素子に格納する第11のステップと、
前記データ変換手段が、少なくとも前記所望の書き込み共有データに対応する前記読み込み共有データを別のデータに変換する第12のステップと、
前記制御手段が、前記変換されたデータを前記第6のステップで生成された前記仮想保存領域のアドレスに書き込む処理を行う第13のステップと、
を備えたことを特徴とするデータ共有方法。
A data sharing method in a data sharing system comprising a public cloud having a virtual storage area for storing data and a plurality of client terminals,
A storage element having an access area in which the plurality of client terminals share a secret key and an initial vector and temporarily store data including write shared data and read shared data; address generating means; and data converting means And data reverse conversion means and control means,
When writing the write shared data stored in the storage element in the virtual storage area,
The address generation means generates a bit string constituting a key sequence from the shared secret key and an initial vector, divides the generated bit string in predetermined bit units, and generates an address of the write shared data 1 step,
A second step in which the control means reads data of the address of the virtual storage area generated in the first step into the access area;
A third step in which the control means overwrites the read data with the write shared data;
A fourth step in which the data conversion means converts the overwritten data into another data;
A fifth step in which the control means performs a process of writing the converted data to the address of the virtual storage area generated in the first step;
When reading the write shared data written in the virtual storage area,
The address generation means generates a bit string constituting a key sequence from the shared secret key and an initial vector, divides the generated bit string in predetermined bit units, and generates an address of the read shared data 6 steps,
A seventh step in which the control means reads data of the address of the virtual storage area generated in the sixth step into the access area;
An eighth step of restoring the data by performing a process reverse to the process of the data conversion unit on the data read by the data reverse conversion unit in the seventh step;
A ninth step in which the control means confirms whether or not the restored data is desired write shared data;
A tenth step in which the control means repeats the processing from the sixth step to the ninth step until the desired write shared data is detected;
An eleventh step in which the control means acquires the desired write shared data as the read shared data and stores it in the storage element;
A twelfth step in which the data conversion means converts the read shared data corresponding to at least the desired write shared data into another data;
A thirteenth step in which the control means performs a process of writing the converted data to the address of the virtual storage area generated in the sixth step;
A data sharing method characterized by comprising:
データを格納する仮想保存領域を有するパブリッククラウドと、複数のクライアント端末とからなるデータ共有システムにおけるデータ共有方法をコンピュータに実行させるためのプログラムであって、前記複数のクライアント端末が、秘密鍵と初期ベクトルとを共有し、書き込み共有データおよび読み込み共有データを含むデータを一時的に格納するアクセス領域を有した記憶素子と、アドレス生成手段と、データ変換手段と、データ逆変換手段と、制御手段とを備え、
前記仮想保存領域に前記記憶素子に格納された書き込み共有データを書き込む際に、
前記アドレス生成手段が、前記共有する秘密鍵と初期ベクトルとから鍵系列を構成するビット列を生成し、該生成したビット列を所定のビット単位で分割して、前記書き込み共有データのアドレスを生成する第1のステップと、
前記制御手段が、前記第1のステップにより生成された前記仮想保存領域のアドレスのデータを前記アクセス領域に読み出す第2のステップと、
前記制御手段が、前記読み出したデータを前記書き込み共有データで上書きする第3のステップと、
前記データ変換手段が、前記上書きしたデータを別のデータに変換する第4のステップと、
前記制御手段が、前記変換したデータを前記第1のステップにおいて生成された前記仮想保存領域のアドレスに書き込む処理を行う第5のステップと、
前記仮想保存領域内に書き込まれた書き込み共有データを読み出す際に、
前記アドレス生成手段が、前記共有する秘密鍵と初期ベクトルとから鍵系列を構成するビット列を生成し、該生成したビット列を所定のビット単位で分割して、前記読み込み共有データのアドレスを生成する第6のステップと、
前記制御手段が、前記第6のステップにより生成された前記仮想保存領域のアドレスのデータを前記アクセス領域に読み出す第7のステップと、
前記データ逆変換手段が、前記第7のステップにおいて読み出したデータに対して、前記データ変換手段の処理とは、逆の処理を行ない、データを復元する第8のステップと、
前記制御手段が、前記復元したデータが所望の書き込み共有データであるか否かを確認する第9のステップと、
前記制御手段が、前記所望の書き込み共有データを検出するまで前記第6のステップから第9のステップの処理を繰り返す第10のステップと、
前記制御手段が、前記所望の書き込み共有データを前記読み込み共有データとして取得し、前記記憶素子に格納する第11のステップと、
前記データ変換手段が、少なくとも前記所望の書き込み共有データに対応する前記読み込み共有データを別のデータに変換する第12のステップと、
前記制御手段が、前記変換されたデータを前記第6のステップで生成された前記仮想保存領域のアドレスに書き込む処理を行う第13のステップと、
をコンピュータに実行させるためのプログラム。
A program for causing a computer to execute a data sharing method in a data sharing system including a public cloud having a virtual storage area for storing data and a plurality of client terminals, wherein the plurality of client terminals include a secret key and an initial A storage element sharing an vector and having an access area for temporarily storing data including write shared data and read shared data; an address generating means; a data converting means; a data reverse converting means; a control means; With
When writing the write shared data stored in the storage element in the virtual storage area,
The address generation means generates a bit string constituting a key sequence from the shared secret key and an initial vector, divides the generated bit string in predetermined bit units, and generates an address of the write shared data 1 step,
A second step in which the control means reads data of the address of the virtual storage area generated in the first step into the access area;
A third step in which the control means overwrites the read data with the write shared data;
A fourth step in which the data conversion means converts the overwritten data into another data;
A fifth step in which the control means performs a process of writing the converted data to the address of the virtual storage area generated in the first step;
When reading the write shared data written in the virtual storage area,
The address generation means generates a bit string constituting a key sequence from the shared secret key and an initial vector, divides the generated bit string in predetermined bit units, and generates an address of the read shared data 6 steps,
A seventh step in which the control means reads data of the address of the virtual storage area generated in the sixth step into the access area;
An eighth step of restoring the data by performing a process reverse to the process of the data conversion unit on the data read by the data reverse conversion unit in the seventh step;
A ninth step in which the control means confirms whether or not the restored data is desired write shared data;
A tenth step in which the control means repeats the processing from the sixth step to the ninth step until the desired write shared data is detected;
An eleventh step in which the control means acquires the desired write shared data as the read shared data and stores it in the storage element;
A twelfth step in which the data conversion means converts the read shared data corresponding to at least the desired write shared data into another data;
A thirteenth step in which the control means performs a process of writing the converted data to the address of the virtual storage area generated in the sixth step;
A program that causes a computer to execute.
JP2014028375A 2014-02-18 2014-02-18 Data sharing system, data sharing method and program Expired - Fee Related JP6181573B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014028375A JP6181573B2 (en) 2014-02-18 2014-02-18 Data sharing system, data sharing method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014028375A JP6181573B2 (en) 2014-02-18 2014-02-18 Data sharing system, data sharing method and program

Publications (2)

Publication Number Publication Date
JP2015153288A true JP2015153288A (en) 2015-08-24
JP6181573B2 JP6181573B2 (en) 2017-08-16

Family

ID=53895424

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014028375A Expired - Fee Related JP6181573B2 (en) 2014-02-18 2014-02-18 Data sharing system, data sharing method and program

Country Status (1)

Country Link
JP (1) JP6181573B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018167466A (en) * 2017-03-29 2018-11-01 ブラザー工業株式会社 Communication device and recording apparatus with the same

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07162408A (en) * 1993-12-07 1995-06-23 Hitachi Software Eng Co Ltd Data delivery method
JP2013156798A (en) * 2012-01-30 2013-08-15 Kddi Corp Storage device, method for concealing access pattern, and program
US20150106888A1 (en) * 2013-10-10 2015-04-16 International Business Machines Corporation Trust/value/risk-based access control policy

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07162408A (en) * 1993-12-07 1995-06-23 Hitachi Software Eng Co Ltd Data delivery method
JP2013156798A (en) * 2012-01-30 2013-08-15 Kddi Corp Storage device, method for concealing access pattern, and program
US20150106888A1 (en) * 2013-10-10 2015-04-16 International Business Machines Corporation Trust/value/risk-based access control policy

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018167466A (en) * 2017-03-29 2018-11-01 ブラザー工業株式会社 Communication device and recording apparatus with the same

Also Published As

Publication number Publication date
JP6181573B2 (en) 2017-08-16

Similar Documents

Publication Publication Date Title
EP3058678B1 (en) System and method for dynamic, non-interactive, and parallelizable searchable symmetric encryption
EP3174238B1 (en) Protecting white-box feistel network implementation against fault attack
US9602273B2 (en) Implementing key scheduling for white-box DES implementation
JP7076474B2 (en) Cryptographic devices and methods
US9584315B2 (en) Order-preserving encryption system, encryption device, decryption device, encryption method, decryption method, and programs thereof
JP6877889B2 (en) Cryptographic device, encryption method, decryption device, and decryption method
JP2016523391A (en) Method and apparatus for encrypting plaintext data
WO2017000726A1 (en) Key transformation method, apparatus, and terminal
CN110505054B (en) Data processing method, device and equipment based on dynamic white box
US8699702B2 (en) Securing cryptographic process keys using internal structures
CN106209346B (en) White-box cryptography interleaving lookup table
CN105978680A (en) Implementing padding in a white-box implementation
JP2017501447A (en) Safe data conversion
CN112805704A (en) Method and system for protecting data
Xu et al. A white-box AES-like implementation based on key-dependent substitution-linear transformations
JP6181573B2 (en) Data sharing system, data sharing method and program
EP3413509B1 (en) Cmac computation using white-box implementations with external encodings
JP5945525B2 (en) KEY EXCHANGE SYSTEM, KEY EXCHANGE DEVICE, ITS METHOD, AND PROGRAM
Vijayaraghavan et al. A study on the analysis of Hill’s Cipher in cryptography
Ofosu et al. A Cryptographic Algorithm Based On Aes Cipher Andnondeterministic Algorithm Approach For Key Generation
JP7215245B2 (en) Information processing device, information processing method and program
CN107343008A (en) A kind of data safety isolation of anti-access module leakage is with sharing implementation method
Budzik et al. Encryption-based Security in Wearable Devices
Anitha et al. Metadata driven efficient key generation and distribution in cloud security
ArulKarthick et al. Improved Security of Hidden Data Based on Steganography Using ECC Method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160727

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170629

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170718

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170720

R150 Certificate of patent or registration of utility model

Ref document number: 6181573

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees