Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4856909B2 - Data division / restoration system, terminal device, data division / restoration method, and computer program - Google Patents
[go: Go Back, main page]

JP4856909B2 - Data division / restoration system, terminal device, data division / restoration method, and computer program - Google Patents

Data division / restoration system, terminal device, data division / restoration method, and computer program Download PDF

Info

Publication number
JP4856909B2
JP4856909B2 JP2005228128A JP2005228128A JP4856909B2 JP 4856909 B2 JP4856909 B2 JP 4856909B2 JP 2005228128 A JP2005228128 A JP 2005228128A JP 2005228128 A JP2005228128 A JP 2005228128A JP 4856909 B2 JP4856909 B2 JP 4856909B2
Authority
JP
Japan
Prior art keywords
data
divided
storage means
random number
original
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.)
Expired - Fee Related
Application number
JP2005228128A
Other languages
Japanese (ja)
Other versions
JP2007042027A5 (en
JP2007042027A (en
Inventor
正樹 牧野
利彦 荻原
衛 石野
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.)
NTT Docomo Business Inc
Original Assignee
NTT Docomo Business Inc
NTT Communications 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 NTT Docomo Business Inc, NTT Communications Corp filed Critical NTT Docomo Business Inc
Priority to JP2005228128A priority Critical patent/JP4856909B2/en
Publication of JP2007042027A publication Critical patent/JP2007042027A/en
Publication of JP2007042027A5 publication Critical patent/JP2007042027A5/ja
Application granted granted Critical
Publication of JP4856909B2 publication Critical patent/JP4856909B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Description

本発明は、データの機密性および安全性を確保するためにデータを分割する技術に関する。   The present invention relates to a technique for dividing data in order to ensure confidentiality and security of the data.

重要な秘密データ(以下、元データという)を保管する場合、紛失、破壊、盗難やプライバシー侵害の脅威がある。このような脅威は秘密に保管すべきデータを単に暗号化しただけでは解決できず、紛失、破壊に備えてコピーを複数作ることが有効であるが、コピーを複数作ると盗難のリスクが増加してしまう。   When important confidential data (hereinafter referred to as original data) is stored, there is a threat of loss, destruction, theft and privacy infringement. Such threats cannot be solved by simply encrypting data that should be kept secret, and it is effective to make multiple copies in preparation for loss or destruction, but making multiple copies increases the risk of theft. End up.

このような問題を解決する手段として、従来、しきい値秘密分散法がある(非特許文献1参照)。この従来の方法は、元データSをn個のデータに分割し、そのうち任意のx個の分割データを集めれば元データSが復元できるが、任意のx-1個の分割データでは元データSは復元できないというものである。従って、x-1個まで分割データが盗まれても元データSが漏れず、またn-x個まで分割データを紛失したり破壊されたりしても、元データSを復元できる。   Conventionally, there is a threshold secret sharing method as means for solving such a problem (see Non-Patent Document 1). In this conventional method, the original data S can be restored by dividing the original data S into n pieces of data, and collecting any x pieces of divided data, but with any x-1 pieces of divided data, the original data S Cannot be restored. Therefore, even if up to x-1 pieces of divided data are stolen, the original data S does not leak, and even if up to nx pieces of divided data are lost or destroyed, the original data S can be restored.

この方法の代表的な実現例としてn-1次多項式と剰余演算により構成される方法がある(非特許文献2参照)。この従来の方法は、公開鍵暗号方式の秘密鍵の分割管理などで利用されており、データ量があまり多くないため、現状のコンピュータの演算処理能力、記憶装置・記憶媒体などのコストに対しては特に問題ない。   As a typical implementation example of this method, there is a method composed of an n-1 degree polynomial and a remainder operation (see Non-Patent Document 2). This conventional method is used for, for example, split key management of public key cryptography, and the amount of data is not so large, so the current computer processing capacity, the cost of storage devices and storage media, etc. There is no particular problem.

また、複数に分割された分割データは、安全性の確保のため、それぞれ異なる記憶装置に記憶し管理することが提案されている。この場合、記憶装置の1つはネットワークを介して接続可能に設置することが考えられる。
A. Shamir, "How to Share a Secret", Comm.Assoc.Comput.Mach., Vol. 22, no. 11, pp. 612-613(Nov.1979) Bruce Schneier, "Applied Cryptography", John Wiley&Sons, Inc., pp. 383-384(1994)
In addition, it has been proposed that divided data divided into a plurality of pieces is stored and managed in different storage devices in order to ensure safety. In this case, it is conceivable that one of the storage devices is installed so as to be connectable via a network.
A. Shamir, "How to Share a Secret", Comm. Assoc. Comput. Mach., Vol. 22, no. 11, pp. 612-613 (Nov. 1979) Bruce Schneier, "Applied Cryptography", John Wiley & Sons, Inc., pp. 383-384 (1994)

ところが、上記のように記憶装置の1つに対してネットワークを介してアクセスする場合には、その記憶装置に対して分割データを読み書きするときの処理速度が、ネットワークにおける伝送容量や他のデータの伝送状態によって制限を受けることになるため、分割データを利用する度にネットワークを介してアクセスしていたのでは、効率的な分割・復元の処理が困難であるという問題があった。   However, when accessing one of the storage devices via the network as described above, the processing speed when reading / writing the divided data from / to the storage device depends on the transmission capacity of the network and other data. Since there is a restriction depending on the transmission state, there is a problem that efficient division / restoration processing is difficult if the divided data is accessed via the network every time it is used.

本発明は、上記に鑑みてなされたものであり、その目的とするところは、分割データを保管しておく少なくとも1つの記憶装置に対してネットワークを介してアクセスする場合における効率的な分割、復元の処理を可能にすることにある。   The present invention has been made in view of the above, and an object of the present invention is to efficiently divide and restore when accessing at least one storage device that stores divided data via a network. It is to enable the processing.

第1の本発明に係るデータ分割・復元システムは、端末装置と、第1記憶手段と、第2記憶手段と、第3記憶手段とを備えたデータ分割・復元システムであって、元データを3つの分割データに分割するに際し、元データを処理単位ビット長で区分けした複数の元部分データの各々と、乱数を処理単位ビット長で区分けした乱数部分データとの排他的論理和によって、各分割データのみからでは元データを復元不能であるが、各分割データのうちの2つの分割データから元データが復元可能となるように、第1および第2の分割データを構成する各分割部分データが生成され、第3の分割データを構成する各分割部分データが各乱数部分データにより構成され第1記憶手段は、前記端末装置がネットワークを介することなくアクセス可能な記憶手段であって、第1分割データを記憶し、第2記憶手段は、前記端末装置がネットワークを介することなくアクセス可能な記憶手段であって、第2分割データを記憶し、第3記憶手段は、前記端末装置がネットワークを介してアクセス可能な記憶手段であって、第3分割データを記憶するものであって、前記端末装置は、第1記憶手段および第2記憶手段の双方が使用可能な場合には、第1記憶手段から第1分割データを読み出すとともに第2記憶手段から第2分割データを読み出し、それぞれの分割データを構成する各分割部分データ間の排他的論理和を演算することによって、前記元データとは別の元データを分割する際に利用可能であって、第3記憶手段に記憶された各乱数部分データと同一の各乱数部分データを取得する手段と、第1記憶手段又は第2記憶手段の一方が使用不能な場合には、使用可能な方の記憶手段から分割データを読み出すとともに、ネットワークを介して第3記憶手段へアクセスし、当該第3記憶手段から第3分割データを読み出して各乱数部分データを取得する手段と、取得した各乱数部分データと読み出した各分割部分データとの排他的論理和によって元データを復元する元データ復元手段と、を有することを特徴とする。 A data division / restoration system according to a first aspect of the present invention is a data division / restoration system comprising a terminal device, a first storage unit, a second storage unit, and a third storage unit, upon divided into three divided data, and each of the plurality of original partial data is divided original data in the processing unit bit length, and the random number partial data is divided random number processing unit bit length, the exclusive OR of, Although the original data cannot be restored only from each divided data, each divided portion constituting the first and second divided data so that the original data can be restored from two divided data of each divided data. data is generated, the divided partial data that constitute the third divided data is configured Ri by the respective random number partial data, first memory means, accessible without the terminal device via a network Storage means that stores the first divided data, and the second storage means is a storage means that the terminal device can access without going through the network, stores the second divided data, and stores the third storage The means is a storage means accessible by the terminal device via a network, and stores the third divided data. The terminal device is used by both the first storage means and the second storage means. If possible, the first divided data is read from the first storage means and the second divided data is read from the second storage means, and an exclusive OR between the divided partial data constituting the respective divided data is calculated. hand it allows the the original data be available when dividing the different original data, to obtain the same respective random number partial data and the random number partial data stored in the third memory means When one of the first storage means and the second storage means is unusable, the divided data is read from the usable storage means, and the third storage means is accessed via the network. Means for reading out the third divided data from the storage means to acquire each random number partial data; and original data restoring means for restoring the original data by exclusive OR of each acquired random number partial data and each read partial data; It is characterized by having.

本発明にあっては、第1記憶手段および第2記憶手段の双方が使用可能な場合には、それぞれから読み出した第1分割データと第2分割データとの排他的論理和により乱数を取得することで、乱数により構成される第3分割データをネットワークを介して第3記憶手段から取得する処理を不要にする。このようにして取得した乱数は、元データの復元に利用できるほか、別の元データを分割する際にも利用できるので、分割・復元処理の度にネットワークを使用することが不要になり、効率的な処理を実現することができる。また、分割処理の度に乱数発生手段によって乱数を発生させることが不要になるので、高速な分割処理を実現することができる。   In the present invention, when both the first storage means and the second storage means can be used, a random number is obtained by exclusive OR of the first divided data and the second divided data read from each. Thus, the process of acquiring the third divided data composed of random numbers from the third storage means via the network becomes unnecessary. The random numbers obtained in this way can be used to restore the original data, and can also be used to divide other original data, eliminating the need to use a network for each division and restoration process. Can be realized. In addition, since it is not necessary to generate random numbers by the random number generation means every time the dividing process is performed, a high-speed dividing process can be realized.

第2の本発明に係る端末装置は、第1記憶手段および第2記憶手段に対してはネットワークを介することなくアクセス可能で、かつ第3記憶手段に対してはネットワークを介してアクセス可能な端末装置であって、元データを3つの分割データに分割するに際し、元データを処理単位ビット長で区分けした複数の元部分データの各々と、乱数を処理単位ビット長で区分けした乱数部分データとの排他的論理和によって、各分割データのみからでは元データを復元不能であるが、各分割データのうちの2つの分割データから元データが復元可能となるように、第1および第2の分割データを構成する各分割部分データが生成され、第3の分割データを構成する各分割部分データが各乱数部分データにより構成され当該端末装置がネットワークを介することなくアクセス可能な第1記憶手段は、第1分割データを記憶し、当該端末装置がネットワークを介することなくアクセス可能な第2記憶手段は、第2分割データを記憶し、当該端末装置がネットワークを介してアクセス可能な第3記憶手段は、第3分割データを記憶するものであって、当該端末装置は、第1記憶手段および第2記憶手段の双方が使用可能な場合には、第1記憶手段から第1分割データを読み出すとともに第2記憶手段から第2分割データを読み出し、それぞれの分割データを構成する各分割部分データ間の排他的論理和を演算することによって、前記元データとは別の元データを分割する際に利用可能であって、第3記憶手段に記憶された各乱数部分データと同一の各乱数部分データを取得する手段と、第1記憶手段又は第2記憶手段の一方が使用不能な場合には、使用可能な方の記憶手段から分割データを読み出すとともに、ネットワークを介して第3記憶手段へアクセスし、当該第3記憶手段から第3分割データを読み出して各乱数部分データを取得する手段と、取得した各乱数部分データと読み出した各分割部分データとの排他的論理和によって元データを復元する元データ復元手段と、を有することを特徴とする。 The terminal device according to the second aspect of the present invention is a terminal capable of accessing the first storage means and the second storage means without going through the network and accessing the third storage means through the network. When dividing the original data into three divided data, each of the plurality of original partial data obtained by dividing the original data by the processing unit bit length, and each random number partial data obtained by dividing the random number by the processing unit bit length, , The original data cannot be restored only from each divided data, but the first and second data can be restored from two divided data of each divided data. each divided partial data constituting the divided data is generated, the divided partial data that constitute the third divided data is configured Ri by the respective random number partial data, the terminal device networks The first storage means accessible without going through the network stores the first divided data, the second storage means accessible by the terminal device without going through the network stores the second divided data, and the terminal The third storage means that the device can access via the network stores the third divided data, and when the terminal device can use both the first storage means and the second storage means, Reading the first divided data from the first storage means and reading the second divided data from the second storage means, and calculating the exclusive OR between the respective divided partial data constituting the respective divided data , data and is a available when dividing the different source data, means for obtaining the same respective random number partial data and the random number partial data stored in the third storage means, the When one of the storage means and the second storage means cannot be used, the divided data is read from the usable storage means, and the third storage means is accessed via the network, and the third storage means Means for reading the three-part data and obtaining each random number partial data, and original data restoration means for restoring the original data by exclusive OR of each obtained random number part data and each read partial data It is characterized by.

第3の本発明に係るデータ分割・復元方法は、端末装置と、第1記憶手段と、第2記憶手段と、第3記憶手段とを備えたシステムにより処理するデータ分割・復元方法であって、元データを3つの分割データに分割するに際し、元データを処理単位ビット長で区分けした複数の元部分データの各々と、乱数を処理単位ビット長で区分けした乱数部分データとの排他的論理和によって、各分割データのみからでは元データを復元不能であるが、各分割データのうちの2つの分割データから元データが復元可能となるように、第1および第2の分割データを構成する各分割部分データが生成され、第3の分割データを構成する各分割部分データが各乱数部分データにより構成され前記端末装置がネットワークを介することなくアクセス可能な第1記憶手段により、第1分割データを記憶し、前記端末装置がネットワークを介することなくアクセス可能な第2記憶手段により、第2分割データを記憶し、前記端末装置がネットワークを介してアクセス可能な第3記憶手段により、第3分割データを記憶し、前記端末装置により、第1記憶手段および第2記憶手段の双方が使用可能な場合には、第1記憶手段から第1分割データを読み出すとともに第2記憶手段から第2分割データを読み出し、それぞれの分割データを構成する各分割部分データ間の排他的論理和を演算することによって、前記元データとは別の元データを分割する際に利用可能であって、第3記憶手段に記憶された各乱数部分データと同一の各乱数部分データを取得し、第1記憶手段又は第2記憶手段の一方が使用不能な場合には、使用可能な方の記憶手段から分割データを読み出すとともに、ネットワークを介して第3記憶手段へアクセスし、当該第3記憶手段から第3分割データを読み出して各乱数部分データを取得し、取得した各乱数部分データと読み出した各分割部分データとの排他的論理和によって元データを復元することを特徴とする。 A data division / restoration method according to a third aspect of the present invention is a data division / restoration method processed by a system including a terminal device, a first storage unit, a second storage unit, and a third storage unit. , upon dividing the original data into three divided data, and each of the plurality of original partial data is divided original data in the processing unit bit length, and the random number partial data is divided random number processing unit bit length, exclusive of Although the original data cannot be restored only from each divided data by logical sum, the first and second divided data are configured so that the original data can be restored from two divided data of each divided data. each divided partial data is generated for each divided partial data that constitute the third divided data is configured Ri by the respective random number partial data, the terminal device is accessible without using the network First divided data is stored by the first storage means, and second divided data is stored by the second storage means that can be accessed without the terminal device via the network, and the terminal device can be accessed via the network. The third divided data is stored by the third storage means, and when both the first storage means and the second storage means are usable by the terminal device, the first divided data is read from the first storage means. In addition, when the second divided data is read from the second storage means and exclusive OR between the divided partial data constituting the respective divided data is calculated , the original data different from the original data is divided. be available, the same each random number partial data and the random number partial data stored in the third memory means to retrieve, one use of the first storage means or the second storage means If it is possible, the divided data is read from the usable storage means, and the third storage means is accessed via the network, and the third divided data is read from the third storage means to obtain each random number partial data. The original data is restored by exclusive OR of the acquired random number partial data and the read divided partial data.

第4の本発明に係るコンピュータプログラムは、第1記憶手段および第2記憶手段に対してはネットワークを介することなくアクセス可能で、かつ第3記憶手段に対してはネットワークを介してアクセス可能な端末装置に実行させるコンピュータプログラムであって、元データを3つの分割データに分割するに際し、元データを処理単位ビット長で区分けした複数の元部分データの各々と、乱数を処理単位ビット長で区分けした乱数部分データとの排他的論理和によって、各分割データのみからでは元データを復元不能であるが、各分割データのうちの2つの分割データから元データが復元可能となるように、第1および第2の分割データを構成する各分割部分データが生成され、第3の分割データを構成する各分割部分データが各乱数部分データにより構成され前記端末装置がネットワークを介することなくアクセス可能な第1記憶手段により、第1分割データを記憶し、前記端末装置がネットワークを介することなくアクセス可能な第2記憶手段により、第2分割データを記憶し、前記端末装置がネットワークを介してアクセス可能な第3記憶手段により、第3分割データを記憶した状態において、前記端末装置に、第1記憶手段および第2記憶手段の双方が使用可能な場合には、第1記憶手段から第1分割データを読み出すとともに第2記憶手段から第2分割データを読み出し、それぞれの分割データを構成する各分割部分データ間の排他的論理和を演算することによって、前記元データとは別の元データを分割する際に利用可能であって、第3記憶手段に記憶された各乱数部分データと同一の各乱数部分データを取得する処理と、第1記憶手段又は第2記憶手段の一方が使用不能な場合には、使用可能な方の記憶手段から分割データを読み出すとともに、ネットワークを介して第3記憶手段へアクセスし、当該第3記憶手段から第3分割データを読み出して各乱数部分データを取得する処理と、取得した各乱数部分データと読み出した各分割部分データとの排他的論理和によって元データを復元する処理と、を実行させる。 A computer program according to a fourth aspect of the present invention is a terminal capable of accessing the first storage means and the second storage means without going through the network, and accessing the third storage means through the network. A computer program to be executed by the apparatus, when dividing the original data into three divided data, each of the plurality of original partial data obtained by dividing the original data by the processing unit bit length and the random number by the processing unit bit length With the exclusive OR of each random number partial data , the original data cannot be restored only from each divided data, but the original data can be restored from two divided data of each divided data. Each divided partial data constituting the first and second divided data is generated, and each divided partial data constituting the third divided data is assigned to each random number. Configured Ri by the minute data, the the first storage means accessible without using a terminal device network, stores the first divided data, the terminal device can access the second storage means without passing through the network In the state where the second divided data is stored and the third divided data is stored by the third storage means accessible by the terminal device via the network, the first storage means and the second storage are stored in the terminal device. When both of the means are usable, the first divided data is read from the first storage means and the second divided data is read from the second storage means, and the exclusive data between the divided partial data constituting the respective divided data is read. by calculating the logical sum, the it is available when dividing the different original data from the original data, stored in the third memory means A process of acquiring the random number partial data of the same respective random number partial data, when one of the first storage means or the second storage unit is unavailable, reads the divided data from the storage means towards available, network The process of accessing the third storage unit via the third storage unit, reading the third divided data from the third storage unit to acquire each random number partial data, and exclusive of the obtained random number partial data and each read partial data And restoring the original data by logical OR.

本発明によれば、分割データを保管しておく少なくとも1つの記憶装置に対してネットワークを介してアクセスする場合に、効率的な分割、復元の処理を実現することができる。   According to the present invention, efficient division and restoration processing can be realized when accessing at least one storage device that stores divided data via a network.

図1は、本実施の形態におけるデータ分割・復元システムの構成を示すブロック図である。同図のシステムは、端末装置1に外付記憶装置2が接続されるとともに、端末装置1がネットワーク4を介してデータセンタ3と接続可能に構成される。端末装置1、データセンタ3は、それぞれコンピュータによって構成され、演算処理装置、メモリ等を備える。ネットワーク4は例えばインターネットで構成される。   FIG. 1 is a block diagram showing a configuration of a data division / restoration system in the present embodiment. The system shown in FIG. 1 is configured such that the external storage device 2 is connected to the terminal device 1 and the terminal device 1 can be connected to the data center 3 via the network 4. The terminal device 1 and the data center 3 are each configured by a computer, and include an arithmetic processing device, a memory, and the like. The network 4 is constituted by the Internet, for example.

端末装置1は、分割データ生成部11、元データ復元部12、乱数発生部13、記憶部14、データ送受信部15を備える。記憶部14には、分割する対象となる元データが格納される。   The terminal device 1 includes a divided data generation unit 11, an original data restoration unit 12, a random number generation unit 13, a storage unit 14, and a data transmission / reception unit 15. The storage unit 14 stores original data to be divided.

分割データ生成部11は、記憶部14から元データを読み出して、これを3つの分割データに分割する。ここでは、3つの分割データを分割データA(第1分割データ)、分割データB(第2分割データ)、分割データC(第3分割データ)と呼ぶ。分割データCは、乱数によって形成されるデータである。この分割処理の詳細については後述する。   The divided data generation unit 11 reads the original data from the storage unit 14 and divides it into three divided data. Here, the three divided data are referred to as divided data A (first divided data), divided data B (second divided data), and divided data C (third divided data). The divided data C is data formed by random numbers. Details of this division processing will be described later.

分割データ生成部11は、分割データAを記憶部14に記憶させ、分割データBを外付記憶装置2に記憶させる。分割データCについては、データ送受信部15によりネットワーク4を介してデータセンタ3へ送信する。データセンタでは受信した分割データCを記憶部31に記憶させる。   The divided data generation unit 11 stores the divided data A in the storage unit 14 and stores the divided data B in the external storage device 2. The divided data C is transmitted to the data center 3 via the network 4 by the data transmitter / receiver 15. The data center stores the received divided data C in the storage unit 31.

元データ復元部12は、3つの分割データのうちの2つを用いて元データを復元する。記憶部14および外付記憶装置2の双方が使用可能な場合には、記憶部14から分割データAを読み出すとともに外付記憶装置2から分割データBを読み出し、これら分割データA,Bを用いて元データを復元する。また、記憶部14又は外付記憶装置2の一方が使用不能な場合には、ネットワークを介してデータセンタ3へアクセスし、データセンタ3の記憶部31から分割データCを読み出して取得し、この分割データCと記憶部14又は外付記憶装置2の使用可能な方から読み出した分割データとを用いて元データを復元する。この処理の詳細についても後述する。   The original data restoration unit 12 restores the original data using two of the three divided data. When both the storage unit 14 and the external storage device 2 can be used, the divided data A is read from the storage unit 14 and the divided data B is read from the external storage device 2, and the divided data A and B are used. Restore the original data. Further, when one of the storage unit 14 and the external storage device 2 is unusable, the data center 3 is accessed via the network, and the divided data C is read out and acquired from the storage unit 31 of the data center 3. The original data is restored using the divided data C and the divided data read from the usable portion of the storage unit 14 or the external storage device 2. Details of this processing will also be described later.

乱数発生部13は、元データを3つの分割データに分割するに際し、元データを処理単位ビット長で区分けした複数の元部分データの各々に対応して、処理単位ビット長の複数の乱数部分データを発生させる。   When dividing the original data into three pieces of divided data, the random number generation unit 13 corresponds to each of a plurality of original partial data obtained by dividing the original data by the processing unit bit length, and a plurality of random number partial data having a processing unit bit length. Is generated.

記憶部14は、元データの他、コンピュータプログラムを格納しており、端末装置1が備える演算処理装置によりこのコンピュータプログラムを読み出して実行することで、上記各部における処理が実行される。上記各部が処理を実行する際には、各部の入力に用いるデータをメモリに一時的に格納してからこれを演算処理装置における演算に利用し、この演算結果についてはメモリに一時的に格納してから記憶部14に記憶させる。   The storage unit 14 stores a computer program in addition to the original data, and the processing in each of the above units is executed by reading and executing the computer program by the arithmetic processing device provided in the terminal device 1. When the above units execute processing, data used for input of each unit is temporarily stored in the memory and then used for calculation in the arithmetic processing unit, and the calculation result is temporarily stored in the memory. And then stored in the storage unit 14.

データ送受信部15は、分割データCをネットワーク4を介してデータセンタ3へ送信する。また、分割データCをデータセンタ3から受信する処理も行う。   The data transmitting / receiving unit 15 transmits the divided data C to the data center 3 via the network 4. In addition, a process of receiving the divided data C from the data center 3 is also performed.

データセンタ3は、記憶部31とデータ送受信部32を備えており、データ送受信部32によりネットワーク4を介して端末装置1と分割データCの送受信を行う。記憶部31は、受信した分割データCを読み出し可能に記憶する。   The data center 3 includes a storage unit 31 and a data transmission / reception unit 32. The data transmission / reception unit 32 transmits / receives the divided data C to / from the terminal device 1 via the network 4. The storage unit 31 stores the received divided data C so as to be readable.

本実施形態における元データの分割および復元では、元データを所望の処理単位ビット長に基づいて所望の分割数の分割データに分割するが、この場合の処理単位ビット長は任意の値に設定することができ、元データを処理単位ビット長毎に区分けして、この元部分データから分割部分データを分割数より1少ない数ずつ生成するので、元データのビット長が処理単位ビット長の(分割数-1)倍の整数倍に一致しない場合は、元データの末尾の部分に0を埋めるなどして元データのビット長を処理単位ビット長の(分割数-1)倍の整数倍に合わせることにより本実施形態を適用することができる。   In the division and restoration of the original data in this embodiment, the original data is divided into pieces of divided data having a desired number of divisions based on a desired processing unit bit length. In this case, the processing unit bit length is set to an arbitrary value. The original data is divided into processing unit bit lengths, and the divided partial data is generated from the original partial data by one less than the number of divisions. If it does not match an integer multiple of (number-1) times, the bit length of the original data is adjusted to an integer multiple of (number of divisions -1) times the processing unit bit length by, for example, filling the end of the original data with 0. Thus, the present embodiment can be applied.

また、上述した乱数も(分割数-1)個の元部分データの各々に対応して処理単位ビット長のビット長を有する(分割数-1)個の乱数部分データとして乱数発生部13から生成される。すなわち、乱数は処理単位ビット長毎に区分けされて、処理単位ビット長のビット長を有する(分割数-1)個の乱数部分データとして生成される。更に、元データは処理単位ビット長に基づいて所望の分割数の分割データに分割されるが、この分割データの各々も(分割数-1)個の元部分データの各々に対応して処理単位ビット長のビット長を有する(分割数-1)個の分割部分データとして生成される。すなわち、分割データの各々は、処理単位ビット長毎に区分けされて、処理単位ビット長のビット長を有する(分割数-1)個の分割部分データとして生成される。   The random numbers described above are also generated from the random number generator 13 as (partition number-1) random number partial data having a bit length of the processing unit bit length corresponding to each of the (partition number-1) original partial data. Is done. That is, the random numbers are divided into processing unit bit lengths, and are generated as (partition number-1) random number partial data having a bit length of the processing unit bit length. Further, the original data is divided into a desired number of divided data based on the processing unit bit length, and each of the divided data also corresponds to each of the (division number-1) original partial data. It is generated as (partition number -1) pieces of divided partial data having a bit length. That is, each piece of divided data is divided into processing unit bit lengths, and is generated as (partition number-1) pieces of divided partial data having a bit length of the processing unit bit length.

なお、以下の説明では、上述した元データ、乱数、分割データ、分割数および処理単位ビット長をそれぞれS,R,D,nおよびbで表すとともに、また複数のデータや乱数などのうちの1つを表わす変数としてi(=1〜n)およびj(=1〜n-1)を用い、(分割数n-1)個の元部分データ、(分割数n-1)個の乱数部分データ、および分割数n個の分割データDのそれぞれのうちの1つをそれぞれS(j),R(j)およびD(i)で表記し、更に各分割データD(i)を構成する複数(n-1)の分割部分データをD(i,j)で表記するものとする。すなわち、S(j)は、元データSの先頭から処理単位ビット長毎に区分けして1番から順に採番した時のj番目の元部分データを表すものである。   In the following description, the above-described original data, random numbers, divided data, number of divisions, and processing unit bit length are represented by S, R, D, n, and b, respectively, and one of a plurality of data, random numbers, and the like. I (= 1 to n) and j (= 1 to n-1) are used as variables to represent one, (division number n-1) original partial data, (division number n-1) random number partial data , And one of each of the divided data D with the number of divisions is represented by S (j), R (j) and D (i), respectively, and a plurality of ( The divided partial data of (n-1) is represented by D (i, j). That is, S (j) represents the j-th original partial data when the original data S is numbered in order from the top by dividing into processing unit bit lengths.

この表記を用いると、元データ、乱数データ、分割データとこれらをそれぞれ構成する元部分データ、乱数部分データ、分割部分データは、次のように表記される。   When this notation is used, the original data, random number data, and divided data, and the original partial data, random number partial data, and divided partial data that constitute these, respectively, are represented as follows.

元データS=(n-1)個の元部分データS(j)
=S(1),S(2),…,S(n-1)
乱数R=(n-1)個の乱数部分データR(j)
=R(1),R(2),…,R(n-1)
n個の分割データD(i)=D(1),D(2),…,D(n)
各分割部分データD(i,j)
=D(1,1),D(1,2),…,D(1,n-1)
D(2,1),D(2,2),…,D(2,n-1)
… … …
D(n,1),D(n,2),…,D(n,n-1)
(i=1〜n), (j=1〜n-1)
分割データ生成部11は、記憶部14から読み出した元データと、乱数発生部13により生成された乱数部分データとを用いて、各分割データのみからでは元データを復元不能であるが、各分割データのうちの2つの分割データから元データが復元可能となるように、分割データA,Bをそれぞれ構成する各分割部分データを元部分データと乱数部分データの排他的論理和(XOR)によって生成する。また、分割データCを構成する各分割部分データを各乱数部分データによって生成する。
Original data S = (n-1) original partial data S (j)
= S (1), S (2), ..., S (n-1)
Random number R = (n-1) random number partial data R (j)
= R (1), R (2), ..., R (n-1)
n divided data D (i) = D (1), D (2),..., D (n)
Each partial data D (i, j)
= D (1,1), D (1,2), ..., D (1, n-1)
D (2,1), D (2,2), ..., D (2, n-1)
………
D (n, 1), D (n, 2), ..., D (n, n-1)
(i = 1 ~ n), (j = 1 ~ n-1)
The divided data generation unit 11 uses the original data read from the storage unit 14 and the random number partial data generated by the random number generation unit 13, but the original data cannot be restored only from each divided data. Each partial data that constitutes each of the divided data A and B is generated by exclusive OR (XOR) of the original partial data and random number partial data so that the original data can be restored from the two divided data. To do. Further, each divided partial data constituting the divided data C is generated by each random number partial data.

一方、元データ復元部12は、記憶部14および外付記憶装置2の双方が使用可能で、分割データA,Bをそれぞれ読み出し可能な場合には、これら分割データA,B間の排他的論理和を演算することによって各乱数部分データを取得する。また、記憶部14又は外付記憶装置2の一方が使用不能な場合には、記憶部14又は外付記憶装置2のうちの使用可能な方から分割データを読み出すとともに、ネットワーク4を介して分割データCを受信し、各乱数部分データを取得する。そして、取得した各乱数部分データと読み出した各分割部分データとの排他的論理和によって元データを復元する。   On the other hand, when the original data restoration unit 12 can use both the storage unit 14 and the external storage device 2 and can read the divided data A and B, respectively, the exclusive logic between the divided data A and B can be read. Each random number partial data is obtained by calculating the sum. Further, when one of the storage unit 14 or the external storage device 2 is unusable, the divided data is read from the usable one of the storage unit 14 or the external storage device 2 and divided via the network 4. Data C is received and each random number partial data is acquired. Then, the original data is restored by exclusive OR of each acquired random number partial data and each read partial data.

この手法は、コンピュータ処理に適したビット演算である排他的論理和演算を用いるので、データ分割処理に多項式や剰余演算を用いる従来の方法に比較して、高速かつ高性能な演算処理能力を必要とせず、大容量のデータに対しても簡単な演算処理を繰り返して分割データを生成することができる。また、任意に定めた一定の長さ毎にデータの先頭から順に演算処理を行うストリーム処理により分割データを生成できる。   Since this method uses exclusive OR operation, which is a bit operation suitable for computer processing, it requires faster and higher-performance processing capability than conventional methods that use polynomial or remainder operations for data division processing. Instead, it is possible to generate divided data by repeating simple arithmetic processing even for large volumes of data. Further, the divided data can be generated by stream processing in which calculation processing is performed in order from the top of the data for each predetermined fixed length.

次に、データの分割・復元の処理を具体的に説明する前に、本システムにおける全体的な処理の流れについて図2のフローチャートを用いて説明する。   Next, before specifically explaining the data division / restoration processing, the overall processing flow in this system will be described with reference to the flowchart of FIG.

この処理は、実際の元データを用いて分割処理を行う通常利用処理と、元データを受け取る前にダミーデータを用いて予め処理しておく前処理とに分かれている。   This process is divided into a normal use process in which a division process is performed using actual original data, and a preprocess in which dummy data is used in advance before receiving the original data.

ステップ1(図2においてS1と示す。以下同じ)で、乱数発生部13により乱数Rと、ダミーデータR'を生成する。この乱数Rはそのまま分割データCとする。ダミーデータは乱数で構成される。   In step 1 (shown as S1 in FIG. 2, the same applies hereinafter), the random number generator 13 generates a random number R and dummy data R ′. This random number R is directly used as divided data C. The dummy data is composed of random numbers.

ステップ2では、このダミーデータを元データSの代わりに使用する。具体的には、分割データ生成部11により、ダミーデータR'と乱数Rとの排他的論理和を演算することで、分割データAおよび分割データBを生成する。分割データAについては、端末装置1が内蔵する記憶部14に保存させ、分割データBについては外付記憶装置2に保存させる。   In step 2, this dummy data is used in place of the original data S. Specifically, the divided data generation unit 11 calculates the exclusive OR of the dummy data R ′ and the random number R to generate the divided data A and the divided data B. The divided data A is stored in the storage unit 14 built in the terminal device 1, and the divided data B is stored in the external storage device 2.

ステップ3で、データ送受信部15により、分割データC(乱数データ)をネットワーク4を介してデータセンタ3に送信し、データセンタ3における記憶部31に記憶させる。この後、ネットワーク4との通信接続を切断しオフライン設定をする。   In step 3, the data transmission / reception unit 15 transmits the divided data C (random number data) to the data center 3 via the network 4 and stores it in the storage unit 31 in the data center 3. Thereafter, the communication connection with the network 4 is disconnected and the offline setting is performed.

ステップ4で、実際の元データSの分割処理が発生した時、分割データ生成部11は、分割データAと分割データBの排他的論理和を演算することによって、乱数Rを生成する。   When the actual division processing of the original data S occurs in step 4, the divided data generation unit 11 generates a random number R by calculating the exclusive OR of the divided data A and the divided data B.

ステップ5で、元データSと生成した乱数Rとの排他的論理和を演算することで、分割データAと分割データBを生成する。分割データAについては、端末装置1が内蔵する記憶部14に保存させ、分割データBについては外付記憶装置2に保存させる。   In step 5, the divided data A and the divided data B are generated by calculating the exclusive OR of the original data S and the generated random number R. The divided data A is stored in the storage unit 14 built in the terminal device 1, and the divided data B is stored in the external storage device 2.

一方、ステップ4において、記憶部14又は外付記憶装置2の一方が破損、盗難等により使用できない場合には、データ送受信部15により、ネットワーク4をオンライン設定し、データセンタ3にアクセスして分割データCを取得する。分割データCは乱数であるので、ステップ5において、分割データ生成部11は、この分割データCと元データSの排他的論理和を演算することで分割データAおよび分割データBを生成する。   On the other hand, in step 4, when one of the storage unit 14 or the external storage device 2 cannot be used due to damage, theft or the like, the data transmission / reception unit 15 sets the network 4 online, accesses the data center 3 and divides it. Get data C. Since the divided data C is a random number, the divided data generation unit 11 generates divided data A and divided data B by calculating an exclusive OR of the divided data C and the original data S in Step 5.

このような処理を行うことで、分割データをネットワークを介して送受信することはネットワークの伝送容量や他のデータの伝送状態によって伝送速度が抑制されるところ、通常利用処理においては、記憶部14及び外付記憶装置2の双方が使用可能な場合であれば、ネットワーク4を介して分割データCを取得する処理が不要となる。これにより、効率的な分割処理を実現することができる。   By performing such processing, transmission / reception of the divided data via the network suppresses the transmission speed depending on the transmission capacity of the network and the transmission state of other data. In normal use processing, the storage unit 14 and If both of the external storage devices 2 can be used, the process of acquiring the divided data C via the network 4 is not necessary. Thereby, efficient division processing can be realized.

また、乱数発生部13により乱数を発生させる処理は演算の負担が大きいところ、上記の処理を行うことで、乱数の発生は、前処理において1回行うだけで済むので、分割処理の度に乱数を発生させる必要がなく、高速な分割処理を実現することができる。   In addition, since the process of generating a random number by the random number generation unit 13 has a large calculation burden, by performing the above process, the generation of the random number only needs to be performed once in the pre-processing. Therefore, high-speed division processing can be realized.

続いて、データの分割・復元の処理について詳細に説明する。本実施形態で使用する排他的論理和演算(XOR)は、以下の説明では、「*」なる演算記号で表すことにする。この排他的論理和演算のビット毎の演算規則での各演算結果は下記のとおりである。   Next, data division / restoration processing will be described in detail. In the following description, the exclusive OR operation (XOR) used in the present embodiment is represented by an operation symbol “*”. Each calculation result in the calculation rule for each bit of this exclusive OR operation is as follows.

0 * 0 の演算結果は 0
0 * 1 の演算結果は 1
1 * 0 の演算結果は 1
1 * 1 の演算結果は 0
また、XOR演算は交換法則、結合法則が成り立つ。すなわち、
a*b=b*a
(a*b)*c=a*(b*c)
が成り立つことが数学的に証明される。
The operation result of 0 * 0 is 0
The result of 0 * 1 is 1
The result of 1 * 0 is 1
The result of 1 * 1 is 0
In addition, the XOR operation has an exchange law and a joint law. That is,
a * b = b * a
(a * b) * c = a * (b * c)
Is proved mathematically.

また、a*a=0,a*0=0*a=aが成り立つ。   Also, a * a = 0, a * 0 = 0 * a = a holds.

ここでa,b,cは同じ長さのビット列を表し、0はこれらと同じ長さですべて「0」からなるビット列を表す。 Here, a, b, and c represent bit strings having the same length, and 0 represents a bit string having the same length and consisting of all “0”.

次に、図3のフローチャートに示す記号の定義について説明する。

Figure 0004856909
Next, the definition of symbols shown in the flowchart of FIG. 3 will be described.
Figure 0004856909

は、A(1)*A(2)*…A(n)を意味するものとする。 Means A (1) * A (2) *... A (n).

(2)c(j,i,k)を、(n-1)×(n-1)行列であるU[n-1,n-1]×(P[n-1,n-1])^(j-1)のi行k列の値と定義する。   (2) c (j, i, k) is replaced by (n-1) × (n-1) matrix U [n-1, n-1] × (P [n-1, n-1]) It is defined as the value of i rows and k columns of ^ (j-1).

このときQ(j,i,k)を下記のように定義する。   At this time, Q (j, i, k) is defined as follows.

c(j,i,k)=1 のとき Q(j,i,k)=R((n-1)×m+k)
c(j,i,k)=0 のとき Q(j,i,k)=0
ただし、mはm≧0の整数を表す。
When c (j, i, k) = 1 Q (j, i, k) = R ((n-1) × m + k)
Q (j, i, k) = 0 when c (j, i, k) = 0
However, m represents an integer of m ≧ 0.

(3)U[n,n]とは、n×n行列であって、i行j列の値をu(i,j)で表すと、
i+j≦n+1 のとき u(i,j)=1
i+j>n+1 のとき u(i,j)=0
である行列を意味するものとし、「上三角行列」ということとする。具体的には下記のような行列である。

Figure 0004856909
(3) U [n, n] is an n × n matrix, and the value of i rows and j columns is represented by u (i, j).
When i + j ≦ n + 1 u (i, j) = 1
When i + j> n + 1, u (i, j) = 0
It means that the matrix is “upper triangular matrix”. Specifically, the matrix is as follows.
Figure 0004856909

(4)P[n,n]とは、n×n行列であって、i行j列の値をp(i,j)で表すと、
j=i+1 のとき p(i,j)=1
i=n,j=1 のとき p(i,j)=1
上記以外のとき p(i,j)=0
である行列を意味するものとし、「回転行列」ということとする。具体的には下記のような行列であり、他の行列の右側からかけると当該他の行列の1列目を2列目へ、2列目を3列目へ、…,n-1列目をn列目へ、n列目を1列目へ移動させる作用がある。つまり、行列Pを他の行列に右側から複数回かけると、その回数分だけ各列を右方向へ回転させるように移動させることができる。

Figure 0004856909
(4) P [n, n] is an n × n matrix, and the value of i rows and j columns is represented by p (i, j).
When j = i + 1, p (i, j) = 1
i = n, when j = 1 p (i, j ) = 1
For other cases p (i, j) = 0
It means that the matrix is “rotation matrix”. Specifically, the matrix is as follows, and when multiplied from the right side of another matrix, the first column of the other matrix is changed to the second column, the second column to the third column,. Is moved to the nth column, and the nth column is moved to the first column. That is, when the matrix P is applied to another matrix a plurality of times from the right side, each column can be moved so as to rotate rightward by that number of times.
Figure 0004856909

(5)A,Bをn×n行列とすると、A×Bとは行列AとBの積を意味するものとする
。行列の成分同士の計算規則は通常の数学で用いるものと同じである。
(5) If A and B are n × n matrices, A × B means the product of the matrices A and B. The calculation rules for the matrix components are the same as those used in normal mathematics.

(6)Aをn×n行列とし、iを整数とすると、A^iとは行列Aのi個の積を意味するものとする。また、A^0とは単位行列Eを意味するものとする。   (6) When A is an n × n matrix and i is an integer, A ^ i means i products of the matrix A. A ^ 0 means the unit matrix E.

(7)単位行列E[n,n]とは、n×n行列であって、i行j列の値をe(i,j)で表すと、
i=j のとき e(i,j)=1
上記以外のとき e(i,j)=0
である行列を意味するものとする。具体的には下記のような行列である。Aを任意のn×n行列とすると
A×E=E×A=A
となる性質がある。

Figure 0004856909
(7) The unit matrix E [n, n] is an n × n matrix, and the value of i rows and j columns is represented by e (i, j).
e (i, j) = 1 when i = j
For other cases e (i, j) = 0
Let's mean a matrix that is Specifically, the matrix is as follows. Let A be any n × n matrix
A × E = E × A = A
There is a property to become.
Figure 0004856909

次に、図3に示すフローチャートおよび図4、図5に示す具体的データを参照して、まず元データSの分割処理について説明する。   Next, with reference to the flowchart shown in FIG. 3 and the specific data shown in FIGS.

まず、元データSが端末装置1に与えられ、分割処理が開始される(図3のステップS201)。なお、本例では、元データSは、16ビットの「10110010 00110111」とする。   First, the original data S is given to the terminal device 1 and the dividing process is started (step S201 in FIG. 3). In this example, the original data S is 16 bits “10110010 00110111”.

次に、利用者は分割数nとして3を端末装置1に指示する(ステップS203)。この分割数nは端末装置1において予め定められた値を用いてもよい。なお、この分割数n=3に従って端末装置1で生成される3個の分割データをD(1),D(2),D(3)とする。この分割データD(1),D(2),D(3)は、すべて元データのビット長と同じ16ビット長のデータである。   Next, the user instructs the terminal device 1 to set the division number n to 3 (step S203). As the division number n, a value predetermined in the terminal device 1 may be used. Note that the three pieces of divided data generated by the terminal device 1 according to the number of divisions n = 3 are D (1), D (2), and D (3). The divided data D (1), D (2), and D (3) are all 16-bit data that is the same as the bit length of the original data.

それから、元データSを分割するために使用される処理単位ビット長bを8ビットと決定し、また元データと同じビット長である16ビットの乱数Rを乱数発生部13から取得して生成する(ステップS205)。この処理単位ビット長bは、利用者が端末装置1に対して指定してもよいし、または端末装置1において予め定められた値を用いてもよい。なお、処理単位ビット長bは、任意のビット数でよいが、ここでは元データSを割り切れることができる8ビットとしている。従って、上記16ビットの「10110010 00110111」の元データSは、8ビットの処理単位ビット長で区分けされた場合の2個の元分割データS(1)およびS(2)は、それぞれ「10110010」および「00110111」となる。   Then, the processing unit bit length b used to divide the original data S is determined to be 8 bits, and a 16-bit random number R having the same bit length as the original data is acquired from the random number generation unit 13 and generated. (Step S205). The processing unit bit length b may be designated by the user to the terminal device 1 or a value predetermined in the terminal device 1 may be used. The processing unit bit length b may be an arbitrary number of bits, but here it is 8 bits that can divide the original data S. Accordingly, the original data S of the above 16-bit “10110010 00110111” is divided into “10110010” when the two original divided data S (1) and S (2) are divided by the 8-bit processing unit bit length. And “00110111”.

次のステップS207では、元データSのビット長が8×2の整数倍であるか否かを判定し、整数倍でない場合には、元データSの末尾を0で埋めて、8×2の整数倍に合わせる。なお、本例のように処理単位ビット長bが8ビットおよび分割数nが3に設定された場合における分割処理は、元データSのビット長として16ビットに限られるものでなく、処理単位ビット長b×(分割数n-1)=8×2の整数倍の元データSに対して有効なものである。   In the next step S207, it is determined whether or not the bit length of the original data S is an integer multiple of 8 × 2, and if it is not an integer multiple, the end of the original data S is padded with zeros to obtain 8 × 2 Fit to an integer multiple. Note that the division processing when the processing unit bit length b is set to 8 bits and the division number n is set to 3 as in this example is not limited to 16 bits as the bit length of the original data S. This is effective for the original data S that is an integral multiple of the length b × (number of divisions n−1) = 8 × 2.

次に、ステップS209では、変数m、すなわち上述した整数倍を意味する変数mを0に設定する。本例のように、元データSが処理単位ビット長b×(分割数n-1)=8×2=16ビットである場合には、変数mは0であるが、2倍の32ビットの場合には、変数mは1となり、3倍の48ビットの場合には、変数mは2となる。   Next, in step S209, the variable m, that is, the variable m meaning the integer multiple described above is set to zero. As in this example, when the original data S has a processing unit bit length b × (number of divisions n−1) = 8 × 2 = 16 bits, the variable m is 0, but is doubled to 32 bits. In this case, the variable m is 1, and in the case of 3 times 48 bits, the variable m is 2.

次に、元データSの8×2×m+1ビット目から8×2ビット分のデータが存在するか否かが判定される(ステップS211)。これは、このステップS211以降に示す分割処理を元データSの変数mで特定される処理単位ビット長b×(分割数n-1)=8×2=16ビットに対して行った後、元データSとして次の16ビットがあるか否かを判定しているものである。本例のように元データSが16ビットである場合には、16ビットの元データSに対してステップS211以降の分割処理を1回行うと、後述するステップS219で変数mが+1されるが、本例の元データSでは変数mがm+1の場合に相当する17ビット以降のデータは存在しないので、ステップS211からステップS221に進むことになるが、今の場合は、変数mは0であるので、元データSの8×2×m+1ビット目は、8×2×0+1=1となり、元データSの16ビットの1ビット目から8×2ビット分にデータが存在するため、ステップS213に進む。   Next, it is determined whether or not there is data for 8 × 2 bits from the 8 × 2 × m + 1 bit of the original data S (step S211). This is because the division processing shown after step S211 is performed on the processing unit bit length b × (number of divisions n−1) = 8 × 2 = 16 bits specified by the variable m of the original data S, It is determined whether or not there is the next 16 bits as data S. In the case where the original data S is 16 bits as in this example, when the dividing process after step S211 is performed once on the 16-bit original data S, the variable m is incremented by 1 in step S219 described later. However, in the original data S of this example, there is no data of 17 bits or more corresponding to the case where the variable m is m + 1, so the process proceeds from step S211 to step S221. In this case, however, the variable m is Since it is 0, the 8 × 2 × m + 1 bit of the original data S is 8 × 2 × 0 + 1 = 1, and the data is 8 × 2 bits from the first 16 bits of the original data S. Since it exists, it progresses to step S213.

ステップS213では、変数jを1から2(=分割数n-1)まで変えて、元データSの8×(2×m+j-1)+1ビット目から8ビット分(=処理単位ビット長)のデータを元部分データS(2×m+j)に設定し、これにより元データSを処理単位ビット長で区分けした2(分割数n-1)個の元部分データS(1),S(2)を次のように生成する。   In step S213, the variable j is changed from 1 to 2 (= number of divisions n-1), and 8 bits (= processing unit bits) from the 8 × (2 × m + j-1) +1 bit of the original data S Data) is set to the original partial data S (2 × m + j), thereby dividing the original data S by the processing unit bit length 2 (number of divisions n-1) original partial data S (1) , S (2) is generated as follows.

元データS=S(1),S(2)
第1の元部分データS(1)=「10110010」
第2の元部分データS(2)=「00110111」
なお、前述した前処理においては、元部分データS(1),S(2)には乱数発生部13により生成された乱数R'が用いられる。
Original data S = S (1), S (2)
First original partial data S (1) = “10110010”
Second original partial data S (2) = “00110111”
In the pre-processing described above, the random number R ′ generated by the random number generator 13 is used for the original partial data S (1) and S (2).

次に、変数jを1から2(=分割数n-1)まで変えて、乱数部分データR(2×m+j)に乱数発生部13から発生する8ビットの長さの乱数を設定し、これにより乱数Rを処理単位ビット長で区分けした2(分割数n-1)個の乱数部分データR(1),R(2)を次のように生成する(ステップS215)。   Next, the variable j is changed from 1 to 2 (= division number n-1), and a random number of 8 bits generated from the random number generator 13 is set in the random number partial data R (2 × m + j). Thus, 2 (division number n-1) random number partial data R (1) and R (2) obtained by dividing the random number R by the processing unit bit length are generated as follows (step S215).

乱数R=R(1),R(2)
第1の乱数部分データR(1)=「10110001」
第2の乱数部分データR(2)=「00110101」
次に、ステップS217において、変数iを1から3(=分割数n)まで変えるとともに、更に各変数iにおいて変数jを1から2(=分割数n-1)まで変えながら、ステップS217に示す分割データを生成するための元部分データと乱数部分データの排他的論理和からなる定義式により複数の分割データD(i)の各々を構成する各分割部分データD(i,2×m+j) を生成する。この結果、次に示すような分割データDが生成される。
Random number R = R (1), R (2)
First random number partial data R (1) = “10110001”
Second random number partial data R (2) = “00110101”
Next, in step S217, the variable i is changed from 1 to 3 (= number of divisions n), and the variable j is further changed from 1 to 2 (= number of divisions n-1) in each variable i, as shown in step S217. Each divided partial data D (i, 2 × m + j) that constitutes each of the plurality of divided data D (i) by a definition formula consisting of exclusive OR of the original partial data and random number partial data for generating the divided data ) Is generated. As a result, the following divided data D is generated.

分割データD
=3個の分割データD(i)=D(1),D(2),D(3)
第1の分割データD(1)
=2個の分割部分データD(1,j)=D(1,1),D(1,2)
=「00110110」,「10110011」
第2の分割データD(2)
=2個の分割部分データD(2,j)=D(2,1),D(2,2)
=「00000011」,「00000010」
第3の分割データD(3)
=2個の分割部分データD(3,j)=D(3,1),D(3,2)
=「10110001」,「00110101」
なお、各分割部分データD(i,j)を生成するためのステップS217に示す定義式は、本例のように分割数n=3の場合には、具体的には図5に示す表に記載されているものとなる。図5に示す表から、分割部分データD(1,1)を生成するための定義式はS(1)*R(1)*R(2)であり、D(1,2)の定義式はS(2)*R(1)*R(2)であり、D(2,1)の定義式はS(1)*R(1)であり、D(2,2)の定義式はS(2)*R(2)であり、D(3,1)の定義式はR(1)であり、D(3,2)の定義式はR(2)である。また、図5に示す表にはm>0の場合の任意の整数についての一般的な定義式も記載されている。
Split data D
= 3 pieces of divided data D (i) = D (1), D (2), D (3)
First divided data D (1)
= 2 pieces of partial data D (1, j) = D (1,1), D (1,2)
= "00110110", "10110011"
Second divided data D (2)
= 2 pieces of partial data D (2, j) = D (2,1), D (2,2)
= "00000011", "00000010"
Third divided data D (3)
= 2 pieces of partial data D (3, j) = D (3,1), D (3,2)
= "10110001", "00110101"
The definition formula shown in step S217 for generating each divided partial data D (i, j) is specifically shown in the table shown in FIG. 5 when the division number n = 3 as in this example. It will be described. From the table shown in FIG. 5, the definition formula for generating the divided partial data D (1,1) is S (1) * R (1) * R (2), and the definition formula for D (1,2) Is S (2) * R (1) * R (2), the definition of D (2,1) is S (1) * R (1), and the definition of D (2,2) is S (2) * R (2), the defining formula for D (3,1) is R (1), and the defining formula for D (3,2) is R (2). The table shown in FIG. 5 also describes general definition formulas for arbitrary integers when m> 0.

このように整数倍を意味する変数m=0の場合について分割データDを生成した後、次に変数mを1増やし(ステップS219)、ステップS211に戻り、変数m+1に該当する元データSの17ビット以降について同様の分割処理を行おうとするが、本例の元データSは16ビットであり、17ビット以降のデータは存在しないので、ステップS211からステップS221に進み、上述したように、生成した分割データD(1)を端末装置1の記憶部14に保管し、分割データD(2)を外付記憶装置2に保管し、分割データD(3)をデータセンタの記憶部31に保管して、分割処理を終了する。   In this way, after the divided data D is generated for the variable m = 0 which means an integer multiple, the variable m is then incremented by 1 (step S219), the process returns to step S211 and the original data S corresponding to the variable m + 1 is returned. However, since the original data S in this example is 16 bits and there is no data after 17 bits, the process proceeds from step S211 to step S221. The generated divided data D (1) is stored in the storage unit 14 of the terminal device 1, the divided data D (2) is stored in the external storage device 2, and the divided data D (3) is stored in the storage unit 31 of the data center. Save and finish the split process.

ここで、上述した図3のフローチャートのステップS217における定義式による分割データの生成処理、具体的には分割数n=3の場合の分割データの生成処理について詳しく説明する。   Here, the divided data generation processing based on the definition formula in step S217 in the flowchart of FIG. 3 described above, specifically, the divided data generation processing when the division number n = 3 will be described in detail.

まず、整数倍を意味する変数m=0の場合には、ステップS217に示す定義式から各分割データD(i)=D(1)〜D(3)の各々を構成する各分割部分データD(i,2×m+j)=D(i,j)(i=1〜3,j=1〜2)は、次のようになる。   First, in the case of a variable m = 0 meaning an integer multiple, each divided partial data D constituting each of the divided data D (i) = D (1) to D (3) from the definition formula shown in step S217. (i, 2 × m + j) = D (i, j) (i = 1 to 3, j = 1 to 2) is as follows.

D(1,1)=S(1)*Q(1,1,1)*Q(1,1,2)
D(1,2)=S(2)*Q(2,1,1)*Q(2,1,2)
D(2,1)=S(1)*Q(1,2,1)*Q(1,2,2)
D(2,2)=S(2)*Q(2,2,1)*Q(2,2,2)
D(3,1)=R(1)
D(3,2)=R(2)
上記の6つの式のうち上から4つの式に含まれるQ(j,i,k)を具体的に求める。
D (1,1) = S (1) * Q (1,1,1) * Q (1,1,2)
D (1,2) = S (2) * Q (2,1,1) * Q (2,1,2)
D (2,1) = S (1) * Q (1,2,1) * Q (1,2,2)
D (2,2) = S (2) * Q (2,2,1) * Q (2,2,2)
D (3,1) = R (1)
D (3,2) = R (2)
Specifically, Q (j, i, k) included in the above four formulas among the above six formulas is obtained.

これはc(j,i,k)を2×2行列であるU[2,2]×(P[2,2])^(j-1)のi行k列の値としたとき下記のように定義される。 When c (j, i, k) is a value of i rows and k columns of U [2,2] × (P [2,2]) ^ (j-1) which is a 2 × 2 matrix, Is defined as

c(j,i,k)=1 のとき Q(j,i,k)=R(k)
c(j,i,k)=0 のとき Q(j,i,k)=0
ここで、
j=1のときは

Figure 0004856909
When c (j, i, k) = 1 Q (j, i, k) = R (k)
Q (j, i, k) = 0 when c (j, i, k) = 0
here,
When j = 1
Figure 0004856909

j=2のときは

Figure 0004856909
When j = 2
Figure 0004856909

これを用いると、各分割部分データD(i,j)は次のような定義式により生成される。   If this is used, each division | segmentation partial data D (i, j) is produced | generated by the following definitional expressions.

D(1,1)=S(1)*Q(1,1,1)*Q(1,1,2)=S(1)*R(1)*R(2)
D(1,2)=S(2)*Q(2,1,1)*Q(2,1,2)=S(2)*R(1)*R(2)
D(2,1)=S(1)*Q(1,2,1)*Q(1,2,2)=S(1)*R(1)*0=S(1)*R(1)
D(2,2)=S(2)*Q(2,2,1)*Q(2,2,2)=S(2)*0*R(2)=S(2)*R(2)
上述した各分割部分データD(i,j)を生成するための定義式は、図4にも図示されている。
D (1,1) = S (1) * Q (1,1,1) * Q (1,1,2) = S (1) * R (1) * R (2)
D (1,2) = S (2) * Q (2,1,1) * Q (2,1,2) = S (2) * R (1) * R (2)
D (2,1) = S (1) * Q (1,2,1) * Q (1,2,2) = S (1) * R (1) * 0 = S (1) * R (1 )
D (2,2) = S (2) * Q (2,2,1) * Q (2,2,2) = S (2) * 0 * R (2) = S (2) * R (2 )
The definition formula for generating each of the divided partial data D (i, j) described above is also illustrated in FIG.

図4は、上述したように16ビットの元データSを8ビットの処理単位ビット長に基づいて分割数n=3で3分割する場合の各データと定義式および各分割部分データから元データを復元する場合の計算式などを示す表である。   FIG. 4 shows the original data from the respective data, definition formulas, and divided partial data in the case where the 16-bit original data S is divided into three with the division number n = 3 based on the 8-bit processing unit bit length as described above. It is a table | surface which shows the calculation formula in the case of decompress | restoring.

ここで、上述した定義式により分割データD(1),D(2),D(3)および各分割部分データD(1,1),D(1,2),D(2,1),D(2,2),D(3,1),D(3,2)を生成する過程と定義式の一般形について説明する。   Here, the divided data D (1), D (2), D (3) and the respective divided partial data D (1,1), D (1,2), D (2,1), The process of generating D (2,2), D (3,1), and D (3,2) and the general form of the definition formula will be described.

まず、第1の分割データD(1)に対しては、第1の分割部分データD(1,1)は、上述した定義式S(1)*R(1)*R(2)で定義され、第2の分割部分データD(1,2)は定義式S(2)*R(1)*R(2)で定義される。なお、この定義式の一般形は、D(1,j)に対してはS(j)*R(j)*R(j+1)であり、D(1,j+1)に対してS(j+1)*R(j)*R(j+1)である(jは奇数とする)。定義式に従って計算すると、D(1,1)は00110110, D(1,2)は10110011となるので、D(1)は00110110 10110011である。なお、定義式の一般形は、図5にまとめて示されている。   First, for the first divided data D (1), the first divided partial data D (1,1) is defined by the definition formula S (1) * R (1) * R (2) described above. Then, the second divided partial data D (1, 2) is defined by the definition formula S (2) * R (1) * R (2). The general form of this defining formula is S (j) * R (j) * R (j + 1) for D (1, j), and for D (1, j + 1) S (j + 1) * R (j) * R (j + 1) (j is an odd number). When calculated according to the definition formula, D (1,1) is 00110110 and D (1,2) is 10110011, so D (1) is 00100110 10110011. The general form of the definition formula is collectively shown in FIG.

また、第2の分割データD(2)に対しては、D(2,1)はS(1)*R(1)で定義され、D(2,2)はS(2)*R(2)で定義される。この定義式の一般形は、D(2,j)に対してはS(j)*R(j)であり、D(2,j+1)に対してはS(j+1)*R(j+1)である(jは奇数とする)。定義式に従って計算すると、D(2,1)は00000011, D(2,2)は00000010となるので、D(2)は00000011 00000010である。   For the second divided data D (2), D (2,1) is defined by S (1) * R (1), and D (2,2) is S (2) * R ( Defined in 2). The general form of this definition is S (j) * R (j) for D (2, j) and S (j + 1) * R for D (2, j + 1) (j + 1) (j is an odd number). When calculated according to the definition formula, D (2,1) becomes 00000011 and D (2,2) becomes 00000010, so D (2) is 00000011 00000010.

更に第3の分割データD(3)に対しては、D(3,1)はR(1)で定義され、D(3,2)はR(2)で定義される。この定義式の一般形は、D(3,j)に対してはR(j)であり、D(3,j+1)に対してはR(3,j+1)である(jは奇数とする)。定義式に従って計算すると、D(3,1)は10110001, D(3,2)は00110101となるので、D(3)は10110001 00110101である。   Further, for the third divided data D (3), D (3,1) is defined by R (1) and D (3,2) is defined by R (2). The general form of this definition is R (j) for D (3, j) and R (3, j + 1) for D (3, j + 1) (j is Odd number). When calculated according to the definition formula, D (3,1) is 10110001, D (3,2) is 00110101, and D (3) is 10110001 00110101.

上記説明は、S,R,D(1),D(2),D(3)の長さを16ビットとしたが、データの先頭から上記分割処理を繰り返すことにより、どのような長さの元データSからでも分割データD(1),D(2),D(3)を生成することができる。また、処理単位ビット長bは任意にとることができ、元データSの先頭から順にb×2の長さ毎に上記分割処理を繰り返すことにより任意の長さの元データ、具体的には処理単位ビット長b×2の整数倍の長さの元データに対して適用することができる。なお、元データSの長さが処理単位ビット長b×2の整数倍でない場合は、例えば、データ末尾の部分を0で埋めるなどして元データSの長さを処理単位ビット長b×2の整数倍に合わせることにより上述した本実施形態の分割処理を適用することができる。   In the above description, the length of S, R, D (1), D (2), D (3) is 16 bits. Even from the original data S, the divided data D (1), D (2), and D (3) can be generated. In addition, the processing unit bit length b can be arbitrarily set, and the original data having an arbitrary length, specifically, processing is performed by repeating the above division processing for each length of b × 2 in order from the top of the original data S. The present invention can be applied to original data having an integral multiple of the unit bit length b × 2. If the length of the original data S is not an integral multiple of the processing unit bit length b × 2, for example, the length of the original data S is set to the processing unit bit length b × 2 by filling the end portion of the data with 0, for example. The division processing of this embodiment described above can be applied by adjusting to an integral multiple of.

次に、図4の右側に示す表を参照して、分割データから元データを復元する処理について説明する。   Next, processing for restoring original data from divided data will be described with reference to the table shown on the right side of FIG.

まず、元データSの復元要求が発生すると、端末装置1は、内蔵の記憶部14および外付記憶装置2が使用可能な場合には、分割データD(1),D(2)を読み出し、これら分割データD(1),D(2)を用いて元データSを復元する。   First, when a restoration request for the original data S is generated, the terminal device 1 reads the divided data D (1) and D (2) when the built-in storage unit 14 and the external storage device 2 are usable, The original data S is restored using the divided data D (1) and D (2).

この処理は、次のようになる。   This process is as follows.

D(1,1)*D(2,1)=(S(1)*R(1)*R(2))*(S(1)*R(1))
=(S(1)*S(1))*(R(1)*R(1))*R(2)
=0*0*R(2)
=R(2)
であるから、D(1,1)*D(2,1)を計算すれば、R(2)が求まる。具体的に計算すると、D(1,1)は00110110, D(2,1)は00000011なので、R(2)は00110101となる。
D (1,1) * D (2,1) = (S (1) * R (1) * R (2)) * (S (1) * R (1))
= (S (1) * S (1)) * (R (1) * R (1)) * R (2)
= 0 * 0 * R (2)
= R (2)
Therefore, R (2) is obtained by calculating D (1,1) * D (2,1). Specifically, since D (1,1) is 00110110 and D (2,1) is 00000011, R (2) is 00110101.

また同様に、
D(1,2)*D(2,2)=(S(2)*R(1)*R(2))*(S(2)*R(2))
=(S(2)*S(2))*R(1)*(R(2)*R(2))
=0*R(1)*0
=R(1)
であるから、D(1,2)*D(2,2)を計算すれば、R(1)が求まる。具体的に計算すると、D(1,2)は10110011, D(2,2)は00000010なので、R(1)は10110001となる。
Similarly,
D (1,2) * D (2,2) = (S (2) * R (1) * R (2)) * (S (2) * R (2))
= (S (2) * S (2)) * R (1) * (R (2) * R (2))
= 0 * R (1) * 0
= R (1)
Therefore, R (1) is obtained by calculating D (1,2) * D (2,2). Specifically, since D (1,2) is 10110011 and D (2,2) is 00000010, R (1) is 10110001.

このR(1),R(2)を使用してS(1),S(2)を求める。   Using these R (1) and R (2), S (1) and S (2) are obtained.

D(2,1)*R(1)=(S(1)*R(1))*R(1)
=S(1)*(R(1)*R(1))
=S(1)*0
=S(1)
であるから、D(2,1)*R(1)を計算すれば、S(1)が求まる。具体的に計算すると、D(2,1)は00000011, R(1)は10110001なので、S(1)は10110010となる。
D (2,1) * R (1) = (S (1) * R (1)) * R (1)
= S (1) * (R (1) * R (1))
= S (1) * 0
= S (1)
Therefore, S (1) can be obtained by calculating D (2,1) * R (1). Specifically, since D (2,1) is 00000011 and R (1) is 10110001, S (1) is 10110010.

また同様に、
D(2,2)*R(2)=(S(2)*R(2))*R(2)
=S(2)*(R(2)*R(2))
=S(2)*0
=S(2)
であるからD(2,2)*R(2)を計算すればS(2)が求まる。具体的に計算するとD(2,2)は00000010, R(2)は00110101なので、S(2)は00110111となる。
Similarly,
D (2,2) * R (2) = (S (2) * R (2)) * R (2)
= S (2) * (R (2) * R (2))
= S (2) * 0
= S (2)
Therefore, S (2) can be obtained by calculating D (2,2) * R (2). Specifically, since D (2,2) is 00000010 and R (2) is 00110101, S (2) is 00110111.

一般に、jを奇数として、
D(1,j)*D(2,j)=(S(j)*R(j)*R(j+1))*(S(j)*R(j))
=(S(j)*S(j))*(R(j)*R(j))*R(j+1)
=0*0*R(j+1)
=R(j+1)
であるからD(1,j)*D(2,j)を計算すればR(j+1)が求まる。
In general, let j be an odd number
D (1, j) * D (2, j) = (S (j) * R (j) * R (j + 1)) * (S (j) * R (j))
= (S (j) * S (j)) * (R (j) * R (j)) * R (j + 1)
= 0 * 0 * R (j + 1)
= R (j + 1)
Therefore, R (j + 1) can be obtained by calculating D (1, j) * D (2, j).

また同様に、
D(1,j+1)*D(2,j+1)=(S(j+1)*R(j)*R(j+1))*(S(j+1)*R(j+1))
=(S(j+1)*S(j+1))*R(j)*(R(j+1)*R(j+1))
=0*R(j)*0
=R(j)
であるからD(1,j+1)*D(2,j+1)を計算すればR(j)が求まる。
Similarly,
D (1, j + 1) * D (2, j + 1) = (S (j + 1) * R (j) * R (j + 1)) * (S (j + 1) * R (j +1))
= (S (j + 1) * S (j + 1)) * R (j) * (R (j + 1) * R (j + 1))
= 0 * R (j) * 0
= R (j)
Therefore, R (j) can be obtained by calculating D (1, j + 1) * D (2, j + 1).

このR(j),R(j+1)を使用してS(j),S(j+1)を求める。   Using these R (j) and R (j + 1), S (j) and S (j + 1) are obtained.

D(2,j)*R(j)=(S(j)*R(j))*R(j)
=S(j)*(R(j)*R(j))
=S(j)*0
=S(j)
であるからD(2,j)*R(j)を計算すればS(j)が求まる。
D (2, j) * R (j) = (S (j) * R (j)) * R (j)
= S (j) * (R (j) * R (j))
= S (j) * 0
= S (j)
Therefore, S (j) can be obtained by calculating D (2, j) * R (j).

また同様に、
D(2,j+1)*R(j+1)=(S(j+1)*R(j+1))*R(j+1)
=S(j+1)*(R(j+1)*R(j+1))
=S(j+1)*0
=S(j+1)
であるからD(2,j+1)*R(j+1)を計算すればS(j+1)が求まる。
Similarly,
D (2, j + 1) * R (j + 1) = (S (j + 1) * R (j + 1)) * R (j + 1)
= S (j + 1) * (R (j + 1) * R (j + 1))
= S (j + 1) * 0
= S (j + 1)
Therefore, S (j + 1) is obtained by calculating D (2, j + 1) * R (j + 1).

一方、端末装置1の記憶部14又は外付記憶装置2の一方が使用不能である場合には、端末装置1は、使用可能な方から分割データを読み出すとともに、ネットワーク4を介してデータセンタの記憶部31から第3の分割データD(3)を取得する。   On the other hand, when one of the storage unit 14 of the terminal device 1 or the external storage device 2 is unusable, the terminal device 1 reads out the divided data from the usable one, and the data center via the network 4 The third divided data D (3) is acquired from the storage unit 31.

ここでは、分割データD(2),D(3)を取得して元データSを復元する処理について説明する。まず、分割部分データD(2,1),D(3,1)から第1の元部分データS(1)を次のように生成することができる。   Here, a process of acquiring the divided data D (2) and D (3) and restoring the original data S will be described. First, the first original partial data S (1) can be generated from the divided partial data D (2,1) and D (3,1) as follows.

D(2,1)*D(3,1)=(S(1)*R(1))*R(1)
=S(1)*(R(1)*R(1))
=S(1)*0
=S(1)
具体的に計算すると、D(2,1)は00000011, D(3,1)は10110001なので、S(1)は10110010となる。
D (2,1) * D (3,1) = (S (1) * R (1)) * R (1)
= S (1) * (R (1) * R (1))
= S (1) * 0
= S (1)
Specifically, since D (2,1) is 00000011 and D (3,1) is 10110001, S (1) is 10110010.

また、別の分割部分データから次のように第2の元部分データS(2)を生成することができる。   Further, the second original partial data S (2) can be generated from the other divided partial data as follows.

D(2,2)*D(3,2)=(S(2)*R(2))*R(2)
=S(2)*(R(2)*R(2))
=S(2)*0
=S(2)
具体的に計算すると、D(2,2)は00000010, D(3,2)は00110101なので、S(2)は00110111となる。
D (2,2) * D (3,2) = (S (2) * R (2)) * R (2)
= S (2) * (R (2) * R (2))
= S (2) * 0
= S (2)
Specifically, since D (2,2) is 00000010 and D (3,2) is 00110101, S (2) is 00110111.

一般に、jを奇数として、
D(2,j)*D(3,j)=(S(j)*R(j))*R(j)
=S(j)*(R(j)*R(j))
=S(j)*0
=S(j)
であるから、D(2,j)*D(3,j)を計算すれば、S(j)が求まる。
In general, let j be an odd number
D (2, j) * D (3, j) = (S (j) * R (j)) * R (j)
= S (j) * (R (j) * R (j))
= S (j) * 0
= S (j)
Therefore, S (j) can be obtained by calculating D (2, j) * D (3, j).

また、一般に、jを奇数として、
D(2,j+1)*D(3,j+1)=(S(j+1)*R(j+1))*R(j+1)
=S(j+1)*(R(j+1)*R(j+1))
=S(j+1)*0
=S(j+1)
であるから、D(2,j+1)*D(3,j+1)を計算すれば、S(j+1)が求まる。
In general, j is an odd number,
D (2, j + 1) * D (3, j + 1) = (S (j + 1) * R (j + 1)) * R (j + 1)
= S (j + 1) * (R (j + 1) * R (j + 1))
= S (j + 1) * 0
= S (j + 1)
Therefore, S (j + 1) can be obtained by calculating D (2, j + 1) * D (3, j + 1).

次に、分割データD(1),D(3)を取得して元データSを復元する処理について説明する。   Next, a process for acquiring the divided data D (1) and D (3) and restoring the original data S will be described.

D(1,1)*D(3,1)*D(3,2)=(S(1)*R(1)*R(2))*R(1)*R(2)
=S(1)*(R(1)*R(1))*(R(2)*R(2))
=S(1)*0*0
=S(1)
であるから、D(1,1)*D(3,1)*D(3,2)を計算すれば、S(1)が求まる。具体的に計算すると、D(1,1)は00110110, D(3,1)は10110001, D(3,2)は00110101なので、S(1)は10110010となる。
D (1,1) * D (3,1) * D (3,2) = (S (1) * R (1) * R (2)) * R (1) * R (2)
= S (1) * (R (1) * R (1)) * (R (2) * R (2))
= S (1) * 0 * 0
= S (1)
Therefore, S (1) can be obtained by calculating D (1,1) * D (3,1) * D (3,2). Specifically, since D (1,1) is 00110110, D (3,1) is 1010001, and D (3,2) is 0110101, S (1) is 10110010.

また同様に、
D(1,2)*D(3,1)*D(3,2)=(S(2)*R(1)*R(2))*R(1)*R(2)
=S(2)*(R(1)*R(1))*(R(2)*R(2))
=S(2)*0*0
=S(2)
であるから、D(1,2)*D(3,1)*D(3,2)を計算すれば、S(2)が求まる。具体的に計算すると、D(1,2)は10110011, D(3,1)は10110001, D(3,2)は00110101なので、S(2)は00110111となる。
Similarly,
D (1,2) * D (3,1) * D (3,2) = (S (2) * R (1) * R (2)) * R (1) * R (2)
= S (2) * (R (1) * R (1)) * (R (2) * R (2))
= S (2) * 0 * 0
= S (2)
Therefore, S (2) can be obtained by calculating D (1,2) * D (3,1) * D (3,2). Specifically, since D (1,2) is 10110011, D (3,1) is 10110001, and D (3,2) is 00110101, S (2) is 00110111.

一般に、jを奇数として、
D(1,j)*D(3,j)*D(3,j+1)=(S(j)*R(j)*R(j+1))*R(j)*R(j+1)
=S(j)*(R(j)*R(j))*(R(j+1)*R(j+1))
=S(j)*0*0
=S(j)
であるから、D(1,j)*D(3,j)*D(3,j+1)を計算すれば、S(j)が求まる。
In general, let j be an odd number
D (1, j) * D (3, j) * D (3, j + 1) = (S (j) * R (j) * R (j + 1)) * R (j) * R (j +1)
= S (j) * (R (j) * R (j)) * (R (j + 1) * R (j + 1))
= S (j) * 0 * 0
= S (j)
Therefore, S (j) can be obtained by calculating D (1, j) * D (3, j) * D (3, j + 1).

また、一般に、jを奇数として、
D(1,j+1)*D(3,j)*D(3,j+1)=(S(j+1)*R(j)*R(j+1))*R(j)*R(j+1)
=S(j+1)*(R(j)*R(j))*(R(j+1)*R(j+1))
=S(j+1)*0*0
=S(j+1)
であるから、D(1,j+1)*D(3,j)*D(3,j+1)を計算すれば、S(j+1)が求まる。
In general, j is an odd number,
D (1, j + 1) * D (3, j) * D (3, j + 1) = (S (j + 1) * R (j) * R (j + 1)) * R (j) * R (j + 1)
= S (j + 1) * (R (j) * R (j)) * (R (j + 1) * R (j + 1))
= S (j + 1) * 0 * 0
= S (j + 1)
Therefore, S (j + 1) can be obtained by calculating D (1, j + 1) * D (3, j) * D (3, j + 1).

上述したように、元データの先頭から処理単位ビット長bに基づいて分割処理を繰り返し行って、分割データを生成した場合には、3つの分割データD(1),D(2),D(3)のすべてを用いなくても、3つの分割データのうち、2つの分割データを用いて上述したように元データを復元することができる。   As described above, when the divided data is repeatedly generated from the beginning of the original data based on the processing unit bit length b to generate divided data, the three divided data D (1), D (2), D ( Even if not all of 3) is used, the original data can be restored as described above using two divided data of the three divided data.

本発明の他の実施形態として、乱数Rのビット長を元データSのビット長よりも短いものを使用して、元データの分割処理を行うことができる。   As another embodiment of the present invention, the original data can be divided by using a random number R having a bit length shorter than that of the original data S.

すなわち、上述した乱数RはS,D(1),D(2),D(3)と同じビット長のデータとしたが、乱数Rを元データSのビット長より短いものとし、分割データD(1),D(2),D(3)の生成にこの短いビット長の乱数Rを繰り返し用いるものである。   That is, the random number R described above is data having the same bit length as S, D (1), D (2), D (3), but the random number R is shorter than the bit length of the original data S, and the divided data D This short bit length random number R is repeatedly used to generate (1), D (2), and D (3).

なお、分割データD(3)は乱数Rのみから生成されるので、分割データD(3)は乱数Rを繰り返して保管しておく必要はない。例えば、元データSのビット長を1600ビット(200バイト)としたとき、乱数Rは任意にとった160ビット(20バイト)のデータの繰り返しとする。つまり、R(1)〜R(20)はランダムに生成し、R(21)〜R(200)はR(21)=R(1),R(22)=R(2),…,R(40)=R(20),R(41)=R(1),R(42)=R(2),…,R(60)=R(20),R(61)=R(1),R(62)=R(2),…,R(80)=R(20),………,R(181)=R(1),R(182)=R(2),…,R(200)=R(20)とする。   Since the divided data D (3) is generated only from the random number R, the divided data D (3) need not be stored repeatedly with the random number R. For example, when the bit length of the original data S is 1600 bits (200 bytes), the random number R is a repetition of arbitrarily selected 160 bits (20 bytes) of data. That is, R (1) to R (20) are randomly generated, and R (21) to R (200) are R (21) = R (1), R (22) = R (2), ..., R (40) = R (20), R (41) = R (1), R (42) = R (2), ..., R (60) = R (20), R (61) = R (1) , R (62) = R (2), ..., R (80) = R (20), ... ……, R (181) = R (1), R (182) = R (2), ..., R (200) = R (20).

先の説明では、分割部分データD(3,j)を乱数部分データR(j)と定義してD(3)を生成しているが、D(3,20)まで保管すれば十分である。つまり、D(3)の長さはD(1),D(2)の10分の1となる。従って、保管すべきデータの総量は先の実施形態では元データSの3倍であるが、この実施形態では2.1倍とすることができる。乱数Rにおける繰り返し部分のデータの長さは、短すぎると、D(1)またはD(2)のみからRが解読されてしまうことも考えられるため、適切な長さを選択することが望ましい。   In the above description, D (3) is generated by defining divided part data D (3, j) as random part data R (j), but it is sufficient to store up to D (3,20). . That is, the length of D (3) is 1/10 of D (1) and D (2). Therefore, the total amount of data to be stored is three times the original data S in the previous embodiment, but can be 2.1 times in this embodiment. If the length of the data of the repetitive part in the random number R is too short, it is possible that R is decoded only from D (1) or D (2). Therefore, it is desirable to select an appropriate length.

この実施形態では例えば乱数Rを生成するために疑似乱数生成アルゴリズムを使用する。乱数には自然界の物理現象などを使って乱数を発生させる真性乱数と、コンピュータのアルゴリズムなどで乱数を発生させる疑似乱数がある、真性乱数は、サイコロを何回も振ったり、雑音などの物理現象を利用したりして生成することができるが、手間や装置がたいへんであるため、その代わりに、適当な長さの種(乱数生成の種となる情報(seeds))から決定的なアルゴリズムに基づいて生成される疑似乱数が用いられる。例えば短い乱数を種とすれば長い乱数を得ることができる。種の長さは、例えば128ビット、160ビットまたはそれ以上のものがある。決定的なアルゴリズムに基づいて生成されるといっても、統計的一様性、無相関性など乱数として必要な性質を一定のレベルで満たしている。具体例としては、ANSI X9,42、FIPS 186−2など標準化されたものがある
(http://www.ipa.go.jp/security/enc/CRYPTREC/fy15/cryptrec20030425_spec01.html)。
In this embodiment, for example, a pseudo-random number generation algorithm is used to generate the random number R. There are true random numbers that generate random numbers using physical phenomena in nature, and pseudo-random numbers that generate random numbers using computer algorithms, etc. True random numbers are physical phenomena such as rolling dice and noise. However, since it takes a lot of time and equipment, instead of using a seed of appropriate length (seeds for generating random numbers (seeds)), it becomes a definitive algorithm. A pseudo-random number generated based on this is used. For example, if a short random number is used as a seed, a long random number can be obtained. Seed lengths are, for example, 128 bits, 160 bits or more. Even if it is generated based on a definitive algorithm, it satisfies the properties required for random numbers such as statistical uniformity and uncorrelation at a certain level. Specific examples include those standardized as ANSI X9, 42, FIPS 186-2 (http://www.ipa.go.jp/security/enc/CRYPTREC/fy15/cryptrec20030425_spec01.html).

これらを用いれば、乱数生成の種を入力として長い疑似乱数の列を生成することができる。例えば、160ビットの種を与えて元データSのビット長と同じ長さの乱数Rを生成し、上述したようにして元データSと乱数RからD(1),D(2)を生成し、D(3)にはRを格納するのではなく160ビットの種を格納して保管することにより、元データSのビット長が大きくなってもD(3)に格納して保管すべきビット数は160ビットで済み、保管すべきデータの総量を押さえることができる。元データSを復元する場合には、D(3)に格納された160ビットの種から元データSのビット長と同じ長さの乱数Rを再度生成し、上述したようにして、これとD(1)またはD(2)を用いて元データSを復元することができる。   By using these, it is possible to generate a long sequence of pseudo-random numbers by using the seed of random number generation as an input. For example, a random number R having the same length as the bit length of the original data S is generated by giving a 160-bit seed, and D (1) and D (2) are generated from the original data S and the random number R as described above. D (3) does not store R, but stores and stores a 160-bit seed, so that the bit to be stored and stored in D (3) even if the bit length of the original data S increases The number is 160 bits, and the total amount of data to be stored can be suppressed. When restoring the original data S, a random number R having the same length as the bit length of the original data S is generated again from the 160-bit seed stored in D (3), and as described above, this and D The original data S can be restored using (1) or D (2).

ここで、上述したように図3のステップS217で示した定義式に基づいて元データを分割する分割規則について一般的な表現で記載する。   Here, as described above, the division rule for dividing the original data based on the definition formula shown in step S217 of FIG.

まず、元データ、乱数、分割データ、分割数および処理単位ビット長をそれぞれS,R,D,nおよびbで表すとともに、複数n個のうちの1つを表わす変数としてi(=1〜n)およびj(=1〜n-1)を用いて複数(n-1)個の元部分データ、複数(n-1)個の乱数部分データ、複数(n)個の分割データおよび各分割データの複数(n-1)個の分割部分データのそれぞれのうちの1つをそれぞれS(j),R(j),D(i)およびD(i,j)で表わす。   First, original data, random numbers, divided data, the number of divisions, and the processing unit bit length are represented by S, R, D, n, and b, respectively, and i (= 1 to n as a variable representing one of a plurality of n pieces ) And j (= 1 to n-1), multiple (n-1) original partial data, multiple (n-1) random number partial data, multiple (n) divided data, and each divided data One of each of the plurality (n-1) divided partial data is represented by S (j), R (j), D (i), and D (i, j), respectively.

それから、上記変数jを1からn-1まで変えて、各元部分データS(j)を元データSのb×(j-1)+1ビット目からbビット分のデータとして作成する。次に、U[n,n]をn×n行列である上三角行列とし、P[n,n]をn×n行列である回転行列としたとき、c(j,i,k)を(n-1)×(n-1)行列であるU[n-1,n-1]×P[n-1,n-1]^(j-1)のi行k列の値と定義する。そして、c(j,i,k)=1のとき、Q(j,i,k)=R(k), c(j,i,k)=0のとき、Q(j,i,k)=0と定義したとき、変数iを1からnまで変えながら、各変数iにおいて変数jを1からn-1まで変えた場合において、
i<nのとき、各分割部分データD(i,j)を次のように設定する。

Figure 0004856909
Then, the variable j is changed from 1 to n−1, and each original partial data S (j) is created as data of b bits from the b × (j−1) +1 bit of the original data S. Next, when U [n, n] is an upper triangular matrix that is an n × n matrix and P [n, n] is a rotation matrix that is an n × n matrix, c (j, i, k) is expressed as ( n-1) × (n-1) matrix defined as U [n-1, n-1] × P [n-1, n-1] ^ (j-1) i rows and k columns . And when c (j, i, k) = 1, Q (j, i, k) = R (k), when c (j, i, k) = 0, Q (j, i, k) When = 0 is defined, variable i is changed from 1 to n, and variable j is changed from 1 to n-1 for each variable i.
When i <n, each divided partial data D (i, j) is set as follows.
Figure 0004856909

ただし、

Figure 0004856909
However,
Figure 0004856909

またi=nのとき、各分割部分データD(i,j)を
D(i,j)=R(j)
と設定する。上記処理を元データSの先頭から末尾まで繰り返し行うことにより元データSから分割数nの分割データを生成することができる。
When i = n, each divided partial data D (i, j) is
D (i, j) = R (j)
And set. By repeating the above process from the beginning to the end of the original data S, it is possible to generate divided data of the number n of divisions from the original data S.

上述したように、本実施の形態によれば、端末装置1が内蔵する記憶部14および外付記憶装置2の双方が使用可能な場合には、それぞれから読み出した分割データAと分割データBとの排他的論理和により乱数(分割データC)を取得することで、分割データCをネットワーク4を介してデータセンタ3の記憶部31から取得する処理を不要にできる。   As described above, according to the present embodiment, when both the storage unit 14 and the external storage device 2 built in the terminal device 1 are usable, the divided data A and the divided data B read from each By acquiring the random number (divided data C) by the exclusive OR, it is possible to eliminate the process of acquiring the divided data C from the storage unit 31 of the data center 3 via the network 4.

このようにして取得した乱数は、元データの復元に利用できるほか、別の元データを分割する際にも利用できるので、分割・復元処理の度にネットワークを使用することが不要になり、効率的な処理を実現することができる。   The random numbers obtained in this way can be used to restore the original data, and can also be used to divide other original data, eliminating the need to use a network for each division and restoration process. Can be realized.

また、分割処理の度に乱数発生手段によって乱数を発生させる負担の大きい処理が不要になるので、高速な分割処理を実現することができる。この点について、本実施の形態では、乱数発生部13により乱数を発生させる処理を前処理において1回だけ行うようにして高速な分割処理を実現した。   In addition, since a heavy processing for generating random numbers by the random number generation means is not required each time the division processing is performed, high-speed division processing can be realized. In this regard, in the present embodiment, a high-speed division process is realized by performing the process of generating a random number by the random number generation unit 13 only once in the preprocess.

なお、本実施の形態においては、端末装置1に乱数発生部13、分割データ生成部11を備えることとしたが、これに限るものではない。例えば、ネットワーク4に接続可能な分割処理専用のサーバ装置を配置し、このサーバ装置に乱数発生部13、分割データ生成部11を備えるようにしてもよい。この場合、サーバ装置により元データの分割処理を行い、分割データA,Bを端末装置1へ送信し、分割データCをデータセンタ3へ送信する。このような構成とすることで、端末装置1では、上記の手法により元データを復元する処理を行うだけにすることもできる。   In the present embodiment, the terminal device 1 includes the random number generation unit 13 and the divided data generation unit 11, but is not limited thereto. For example, a server device dedicated to division processing that can be connected to the network 4 may be arranged, and the server device may be provided with a random number generation unit 13 and a divided data generation unit 11. In this case, the original data is divided by the server device, the divided data A and B are transmitted to the terminal device 1, and the divided data C is transmitted to the data center 3. With such a configuration, the terminal device 1 can only perform the process of restoring the original data by the above method.

データ分割・復元システムの構成を示すブロック図である。It is a block diagram which shows the structure of a data division / restoration system. データ分割・復元システムにおける全体的な処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the whole process in a data division | segmentation / decompression | restoration system. 分割数n=3の場合の分割処理を示すフローチャートである。It is a flowchart which shows the division | segmentation process in case the division number n = 3. 16ビットの元データSを8ビットの処理単位ビット長に基づいて分割数n=3で3分割する場合の各データと定義式および各分割部分データから元データを復元する場合の計算式などを示す表である。Each data and definition formula when 16-bit original data S is divided into three with a division number n = 3 based on the 8-bit processing unit bit length, and a calculation formula when restoring the original data from each divided partial data, etc. It is a table | surface which shows. 分割数n=3の場合の分割データ、分割部分データ、各分割部分データを生成する定義式を示す表である。It is a table | surface which shows the definition formula which produces | generates the division data, division | segmentation partial data, and each division | segmentation partial data in case division number n = 3.

符号の説明Explanation of symbols

1…端末装置
2…外付記憶装置
3…データセンタ
4…ネットワーク
11…分割データ生成部
12…元データ復元部
13…乱数発生部
14…記憶部
15…データ送受信部
31…記憶部
32…データ送受信部
DESCRIPTION OF SYMBOLS 1 ... Terminal device 2 ... External storage device 3 ... Data center 4 ... Network 11 ... Divided data generation part 12 ... Original data restoration part 13 ... Random number generation part 14 ... Storage part 15 ... Data transmission / reception part 31 ... Storage part 32 ... Data Transceiver

Claims (5)

端末装置と、第1記憶手段と、第2記憶手段と、第3記憶手段とを備えたデータ分割・復元システムであって、
元データを3つの分割データに分割するに際し、元データを処理単位ビット長で区分けした複数の元部分データの各々と、乱数を処理単位ビット長で区分けした乱数部分データとの排他的論理和によって、各分割データのみからでは元データを復元不能であるが、各分割データのうちの2つの分割データから元データが復元可能となるように、第1および第2の分割データを構成する各分割部分データが生成され、
第3の分割データを構成する各分割部分データが各乱数部分データにより構成され
第1記憶手段は、前記端末装置がネットワークを介することなくアクセス可能な記憶手段であって、第1分割データを記憶し、
第2記憶手段は、前記端末装置がネットワークを介することなくアクセス可能な記憶手段であって、第2分割データを記憶し、
第3記憶手段は、前記端末装置がネットワークを介してアクセス可能な記憶手段であって、第3分割データを記憶するものであって、
前記端末装置は、
第1記憶手段および第2記憶手段の双方が使用可能な場合には、第1記憶手段から第1分割データを読み出すとともに第2記憶手段から第2分割データを読み出し、それぞれの分割データを構成する各分割部分データ間の排他的論理和を演算することによって、前記元データとは別の元データを分割する際に利用可能であって、第3記憶手段に記憶された各乱数部分データと同一の各乱数部分データを取得する手段と、
第1記憶手段又は第2記憶手段の一方が使用不能な場合には、使用可能な方の記憶手段から分割データを読み出すとともに、ネットワークを介して第3記憶手段へアクセスし、当該第3記憶手段から第3分割データを読み出して各乱数部分データを取得する手段と、
取得した各乱数部分データと読み出した各分割部分データとの排他的論理和によって元データを復元する元データ復元手段と、
を有することを特徴とするデータ分割・復元システム。
A data division / restoration system comprising a terminal device, a first storage means, a second storage means, and a third storage means,
Upon dividing the original data into three divided data, and each of the plurality of original partial data is divided original data in the processing unit bit length, and the random number partial data is divided random number processing unit bit length, exclusive of Although the original data cannot be restored only from each of the divided data due to the sum, the first and second divided data are configured so that the original data can be restored from two pieces of the divided data. Each split partial data is generated,
Each divided partial data that constitute the third divided data is configured Ri by the respective random number partial data,
The first storage means is storage means accessible by the terminal device without going through a network, and stores the first divided data,
The second storage means is storage means accessible by the terminal device without going through a network, and stores the second divided data.
Third storage means is storage means accessible by the terminal device via a network, and stores third divided data,
The terminal device
When both the first storage means and the second storage means can be used, the first divided data is read from the first storage means and the second divided data is read from the second storage means to form the respective divided data. By calculating an exclusive OR between the respective divided partial data, it can be used when dividing original data different from the original data, and is the same as each random number partial data stored in the third storage means It means for obtaining a respective random number partial data,
When one of the first storage means and the second storage means is unusable, the divided data is read from the usable storage means, and the third storage means is accessed via the network. Means for reading out the third divided data and obtaining each random number partial data,
Original data restoring means for restoring original data by exclusive OR of each obtained random number partial data and each read partial data;
A data division / restoration system characterized by comprising:
第1記憶手段および第2記憶手段に対してはネットワークを介することなくアクセス可能で、かつ第3記憶手段に対してはネットワークを介してアクセス可能な端末装置であって、
元データを3つの分割データに分割するに際し、元データを処理単位ビット長で区分けした複数の元部分データの各々と、乱数を処理単位ビット長で区分けした乱数部分データとの排他的論理和によって、各分割データのみからでは元データを復元不能であるが、各分割データのうちの2つの分割データから元データが復元可能となるように、第1および第2の分割データを構成する各分割部分データが生成され、
第3の分割データを構成する各分割部分データが各乱数部分データにより構成され
当該端末装置がネットワークを介することなくアクセス可能な第1記憶手段は、第1分割データを記憶し、
当該端末装置がネットワークを介することなくアクセス可能な第2記憶手段は、第2分割データを記憶し、
当該端末装置がネットワークを介してアクセス可能な第3記憶手段は、第3分割データを記憶するものであって、
当該端末装置は、
第1記憶手段および第2記憶手段の双方が使用可能な場合には、第1記憶手段から第1分割データを読み出すとともに第2記憶手段から第2分割データを読み出し、それぞれの分割データを構成する各分割部分データ間の排他的論理和を演算することによって、前記元データとは別の元データを分割する際に利用可能であって、第3記憶手段に記憶された各乱数部分データと同一の各乱数部分データを取得する手段と、
第1記憶手段又は第2記憶手段の一方が使用不能な場合には、使用可能な方の記憶手段から分割データを読み出すとともに、ネットワークを介して第3記憶手段へアクセスし、当該第3記憶手段から第3分割データを読み出して各乱数部分データを取得する手段と、
取得した各乱数部分データと読み出した各分割部分データとの排他的論理和によって元データを復元する元データ復元手段と、
を有することを特徴とする端末装置。
The first storage means and the second storage means are accessible without going through a network, and the third storage means is a terminal device accessible through the network,
Upon dividing the original data into three divided data, and each of the plurality of original partial data is divided original data in the processing unit bit length, and the random number partial data is divided random number processing unit bit length, exclusive of Although the original data cannot be restored only from each of the divided data due to the sum, the first and second divided data are configured so that the original data can be restored from two pieces of the divided data. Each split partial data is generated,
Each divided partial data that constitute the third divided data is configured Ri by the respective random number partial data,
The first storage means accessible by the terminal device without going through the network stores the first divided data,
The second storage means accessible by the terminal device without going through the network stores the second divided data,
The third storage means accessible by the terminal device via the network stores the third divided data,
The terminal device
When both the first storage means and the second storage means can be used, the first divided data is read from the first storage means and the second divided data is read from the second storage means to form the respective divided data. By calculating an exclusive OR between the respective divided partial data, it can be used when dividing original data different from the original data, and is the same as each random number partial data stored in the third storage means It means for obtaining a respective random number partial data,
When one of the first storage means and the second storage means is unusable, the divided data is read from the usable storage means, and the third storage means is accessed via the network. Means for reading out the third divided data and obtaining each random number partial data,
Original data restoring means for restoring original data by exclusive OR of each obtained random number partial data and each read partial data;
The terminal device characterized by having.
元データを3つの分割データに分割するに際し、元データを処理単位ビット長で区分けした複数の元部分データの各々に対応して、処理単位ビット長の複数の乱数部分データを発生させる乱数発生手段と、
各分割データのみからでは元データを復元不能であるが、各分割データのうちの2つの分割データから元データが復元可能となるように、第1および第2の分割データを構成する各分割部分データを元部分データと乱数部分データの排他的論理和によって生成し、第3分割データを構成する各分割部分データを各乱数部分データとする分割データ生成手段と、
第1分割データを第1記憶手段に記憶させ、第2分割データを第2記憶手段に記憶させる手段と、第3分割データをネットワークを介して第3記憶手段へ記憶させる手段と、
を有することを特徴とする請求項2記載の端末装置。
Random number generating means for generating a plurality of random part data having a processing unit bit length corresponding to each of a plurality of original part data obtained by dividing the original data into three divided data when dividing the original data into three divided data When,
Although the original data cannot be restored only from each divided data, each divided portion constituting the first and second divided data so that the original data can be restored from two divided data of each divided data. data, generated by exclusive OR of the original partial data and the random number partial data, and the divided data generating means for each of the divided partial data that constitute the third divided data to the random number partial data,
Means for storing the first divided data in the first storage means, storing the second divided data in the second storage means, means for storing the third divided data in the third storage means via the network,
The terminal device according to claim 2, further comprising:
端末装置と、第1記憶手段と、第2記憶手段と、第3記憶手段とを備えたシステムにより処理するデータ分割・復元方法であって、
元データを3つの分割データに分割するに際し、元データを処理単位ビット長で区分けした複数の元部分データの各々と、乱数を処理単位ビット長で区分けした乱数部分データとの排他的論理和によって、各分割データのみからでは元データを復元不能であるが、各分割データのうちの2つの分割データから元データが復元可能となるように、第1および第2の分割データを構成する各分割部分データが生成され、
第3の分割データを構成する各分割部分データが各乱数部分データにより構成され
前記端末装置がネットワークを介することなくアクセス可能な第1記憶手段により、第1分割データを記憶し、
前記端末装置がネットワークを介することなくアクセス可能な第2記憶手段により、第2分割データを記憶し、
前記端末装置がネットワークを介してアクセス可能な第3記憶手段により、第3分割データを記憶し、
前記端末装置により、
第1記憶手段および第2記憶手段の双方が使用可能な場合には、第1記憶手段から第1分割データを読み出すとともに第2記憶手段から第2分割データを読み出し、それぞれの分割データを構成する各分割部分データ間の排他的論理和を演算することによって、前記元データとは別の元データを分割する際に利用可能であって、第3記憶手段に記憶された各乱数部分データと同一の各乱数部分データを取得し、
第1記憶手段又は第2記憶手段の一方が使用不能な場合には、使用可能な方の記憶手段から分割データを読み出すとともに、ネットワークを介して第3記憶手段へアクセスし、当該第3記憶手段から第3分割データを読み出して各乱数部分データを取得し、
取得した各乱数部分データと読み出した各分割部分データとの排他的論理和によって元データを復元することを特徴とするデータ分割・復元方法。
A data division / restoration method for processing by a system including a terminal device, a first storage unit, a second storage unit, and a third storage unit,
Upon dividing the original data into three divided data, and each of the original partial data is divided original data in the processing unit bit length, and the random number partial data is divided random number processing unit bit length, exclusive of Although the original data cannot be restored only from each of the divided data due to the sum, the first and second divided data are configured so that the original data can be restored from two pieces of the divided data. Each split partial data is generated,
Each divided partial data that constitute the third divided data is configured Ri by the respective random number partial data,
Storing the first divided data by the first storage means accessible by the terminal device without going through the network;
Storing the second divided data by the second storage means accessible by the terminal device without going through the network;
Third terminal data is stored by third storage means accessible by the terminal device via a network,
By the terminal device,
When both the first storage means and the second storage means can be used, the first divided data is read from the first storage means and the second divided data is read from the second storage means to form the respective divided data. By calculating an exclusive OR between the respective divided partial data, it can be used when dividing original data different from the original data, and is the same as each random number partial data stored in the third storage means Get each random number partial data of
When one of the first storage means and the second storage means is unusable, the divided data is read from the usable storage means, and the third storage means is accessed via the network. To read the third divided data to obtain each random number partial data,
A data division / restoration method characterized by restoring original data by exclusive OR of each acquired random number partial data and each read partial data.
第1記憶手段および第2記憶手段に対してはネットワークを介することなくアクセス可能で、かつ第3記憶手段に対してはネットワークを介してアクセス可能な端末装置に実行させるコンピュータプログラムであって、
元データを3つの分割データに分割するに際し、元データを処理単位ビット長で区分けした複数の元部分データの各々と、乱数を処理単位ビット長で区分けした乱数部分データとの排他的論理和によって、各分割データのみからでは元データを復元不能であるが、各分割データのうちの2つの分割データから元データが復元可能となるように、第1および第2の分割データを構成する各分割部分データが生成され、
第3の分割データを構成する各分割部分データが各乱数部分データにより構成され
前記端末装置がネットワークを介することなくアクセス可能な第1記憶手段により、第1分割データを記憶し、
前記端末装置がネットワークを介することなくアクセス可能な第2記憶手段により、第2分割データを記憶し、
前記端末装置がネットワークを介してアクセス可能な第3記憶手段により、第3分割データを記憶した状態において、
前記端末装置に、
第1記憶手段および第2記憶手段の双方が使用可能な場合には、第1記憶手段から第1分割データを読み出すとともに第2記憶手段から第2分割データを読み出し、それぞれの分割データを構成する各分割部分データ間の排他的論理和を演算することによって、前記元データとは別の元データを分割する際に利用可能であって、第3記憶手段に記憶された各乱数部分データと同一の各乱数部分データを取得する処理と、
第1記憶手段又は第2記憶手段の一方が使用不能な場合には、使用可能な方の記憶手段から分割データを読み出すとともに、ネットワークを介して第3記憶手段へアクセスし、当該第3記憶手段から第3分割データを読み出して各乱数部分データを取得する処理と、
取得した各乱数部分データと読み出した各分割部分データとの排他的論理和によって元データを復元する処理と、
を実行させるためのコンピュータプログラム。
A computer program that can be executed by a terminal device that can access the first storage unit and the second storage unit without going through the network, and that can access the third storage unit through the network,
Upon dividing the original data into three divided data, and each of the plurality of original partial data is divided original data in the processing unit bit length, and the random number partial data is divided random number processing unit bit length, exclusive of Although the original data cannot be restored only from each of the divided data due to the sum, the first and second divided data are configured so that the original data can be restored from two pieces of the divided data. Each split partial data is generated,
Each divided partial data that constitute the third divided data is configured Ri by the respective random number partial data,
Storing the first divided data by the first storage means accessible by the terminal device without going through the network;
Storing the second divided data by the second storage means accessible by the terminal device without going through the network;
In a state where the third divided data is stored by the third storage means accessible by the terminal device via the network,
In the terminal device,
When both the first storage means and the second storage means can be used, the first divided data is read from the first storage means and the second divided data is read from the second storage means to form the respective divided data. By calculating an exclusive OR between the respective divided partial data, it can be used when dividing original data different from the original data, and is the same as each random number partial data stored in the third storage means a process of acquiring the respective random number partial data,
When one of the first storage means and the second storage means is unusable, the divided data is read from the usable storage means, and the third storage means is accessed via the network. A process of reading out the third divided data from each of the random number partial data,
Processing to restore the original data by exclusive OR of each acquired random number partial data and each read partial data;
A computer program for running.
JP2005228128A 2005-08-05 2005-08-05 Data division / restoration system, terminal device, data division / restoration method, and computer program Expired - Fee Related JP4856909B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005228128A JP4856909B2 (en) 2005-08-05 2005-08-05 Data division / restoration system, terminal device, data division / restoration method, and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005228128A JP4856909B2 (en) 2005-08-05 2005-08-05 Data division / restoration system, terminal device, data division / restoration method, and computer program

Publications (3)

Publication Number Publication Date
JP2007042027A JP2007042027A (en) 2007-02-15
JP2007042027A5 JP2007042027A5 (en) 2008-06-05
JP4856909B2 true JP4856909B2 (en) 2012-01-18

Family

ID=37799919

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005228128A Expired - Fee Related JP4856909B2 (en) 2005-08-05 2005-08-05 Data division / restoration system, terminal device, data division / restoration method, and computer program

Country Status (1)

Country Link
JP (1) JP4856909B2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4789536B2 (en) * 2005-08-02 2011-10-12 エヌ・ティ・ティ・コミュニケーションズ株式会社 Data division apparatus, data division method, and computer program
JP5134303B2 (en) * 2007-08-03 2013-01-30 Kddi株式会社 Distributed information generating apparatus, secret information restoring apparatus, shared information generating method, secret information restoring method, and program
JP5065802B2 (en) * 2007-08-06 2012-11-07 Kddi株式会社 Distributed information generating apparatus, secret information restoring apparatus, shared information generating method with authority information, secret information access control method and program
JP2010011109A (en) * 2008-06-27 2010-01-14 Kddi Corp Authentication unit, authentication terminal, authentication system, authentication method, and program
JP2010231404A (en) * 2009-03-26 2010-10-14 Ntt Communications Kk Secret information management system, secret information management method, and secret information management program
JP7801842B2 (en) * 2020-02-14 2026-01-19 株式会社野村総合研究所 Apparatus for secret sharing-based multi-party computation

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3943388B2 (en) * 2001-12-20 2007-07-11 日本電信電話株式会社 Secret information distributed sharing method, apparatus and program thereof
JP4676695B2 (en) * 2002-12-19 2011-04-27 エヌ・ティ・ティ・コミュニケーションズ株式会社 Data division method, data division apparatus, and computer program

Also Published As

Publication number Publication date
JP2007042027A (en) 2007-02-15

Similar Documents

Publication Publication Date Title
JP5194094B2 (en) Data division method, data division apparatus, and computer program
Yasser et al. A new image encryption scheme based on hybrid chaotic maps
CN110337649B (en) Methods and systems for search pattern-unaware dynamic symmetric searchable encryption
KR101246437B1 (en) Cryptographic system including a random number generator using finite field arithmetics
CN107210006B (en) Inconsistency detection method, detection system, detection device, and recording medium
JP4610176B2 (en) Data originality ensuring method and system, and data originality ensuring program
CN107220923B (en) Digital picture feedback encryption method based on image network
JPH08505275A (en) Device and method for generating a cipher stream
KR101829267B1 (en) Homomorphic Encryption Method by Which Ciphertext Size Is Reduced
Sokouti et al. Medical image encryption: an application for improved padding based GGH encryption algorithm
JP4676695B2 (en) Data division method, data division apparatus, and computer program
JP7594839B2 (en) Apparatus and method for performing statistical operations on homomorphic encrypted text
CN116488814A (en) FPGA-based data encryption secure computing method
JPWO2016148281A1 (en) Secret string calculation system, method, apparatus, and program
Ahmed et al. A hybrid medical image cryptosystem based on 4D-hyperchaotic S-boxes and logistic maps
Iqbal et al. An efficient hybrid encryption model based on deep convolutional neural networks, deoxyribonucleic acid computing and chaotic system
JP5749368B2 (en) Data originality ensuring method and system, and data originality ensuring program
JP4856909B2 (en) Data division / restoration system, terminal device, data division / restoration method, and computer program
Fatma et al. Secure medical images sharing over cloud computing environment
CN113630250A (en) Model training method and system based on data encryption
JP7334798B2 (en) Shuffle system, shuffle method and program
JP4789536B2 (en) Data division apparatus, data division method, and computer program
Prasad et al. A combined encryption compression scheme using chaotic maps
CN117318909A (en) Homomorphic encryption system and method based on integer polynomial ring and homomorphic encryption device
US10902144B2 (en) Method and apparatus for securing data

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080421

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080421

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110125

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110412

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110711

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110714

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110816

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111003

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: 20111025

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111031

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141104

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4856909

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees