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 PDFInfo
- 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
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つはネットワークを介して接続可能に設置することが考えられる。
ところが、上記のように記憶装置の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
端末装置1は、分割データ生成部11、元データ復元部12、乱数発生部13、記憶部14、データ送受信部15を備える。記憶部14には、分割する対象となる元データが格納される。
The
分割データ生成部11は、記憶部14から元データを読み出して、これを3つの分割データに分割する。ここでは、3つの分割データを分割データA(第1分割データ)、分割データB(第2分割データ)、分割データC(第3分割データ)と呼ぶ。分割データCは、乱数によって形成されるデータである。この分割処理の詳細については後述する。
The divided
分割データ生成部11は、分割データAを記憶部14に記憶させ、分割データBを外付記憶装置2に記憶させる。分割データCについては、データ送受信部15によりネットワーク4を介してデータセンタ3へ送信する。データセンタでは受信した分割データCを記憶部31に記憶させる。
The divided
元データ復元部12は、3つの分割データのうちの2つを用いて元データを復元する。記憶部14および外付記憶装置2の双方が使用可能な場合には、記憶部14から分割データAを読み出すとともに外付記憶装置2から分割データBを読み出し、これら分割データA,Bを用いて元データを復元する。また、記憶部14又は外付記憶装置2の一方が使用不能な場合には、ネットワークを介してデータセンタ3へアクセスし、データセンタ3の記憶部31から分割データCを読み出して取得し、この分割データCと記憶部14又は外付記憶装置2の使用可能な方から読み出した分割データとを用いて元データを復元する。この処理の詳細についても後述する。
The original
乱数発生部13は、元データを3つの分割データに分割するに際し、元データを処理単位ビット長で区分けした複数の元部分データの各々に対応して、処理単位ビット長の複数の乱数部分データを発生させる。
When dividing the original data into three pieces of divided data, the random
記憶部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
データ送受信部15は、分割データCをネットワーク4を介してデータセンタ3へ送信する。また、分割データCをデータセンタ3から受信する処理も行う。
The data transmitting / receiving unit 15 transmits the divided data C to the
データセンタ3は、記憶部31とデータ送受信部32を備えており、データ送受信部32によりネットワーク4を介して端末装置1と分割データCの送受信を行う。記憶部31は、受信した分割データCを読み出し可能に記憶する。
The
本実施形態における元データの分割および復元では、元データを所望の処理単位ビット長に基づいて所望の分割数の分割データに分割するが、この場合の処理単位ビット長は任意の値に設定することができ、元データを処理単位ビット長毎に区分けして、この元部分データから分割部分データを分割数より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
なお、以下の説明では、上述した元データ、乱数、分割データ、分割数および処理単位ビット長をそれぞれ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
一方、元データ復元部12は、記憶部14および外付記憶装置2の双方が使用可能で、分割データA,Bをそれぞれ読み出し可能な場合には、これら分割データA,B間の排他的論理和を演算することによって各乱数部分データを取得する。また、記憶部14又は外付記憶装置2の一方が使用不能な場合には、記憶部14又は外付記憶装置2のうちの使用可能な方から分割データを読み出すとともに、ネットワーク4を介して分割データCを受信し、各乱数部分データを取得する。そして、取得した各乱数部分データと読み出した各分割部分データとの排他的論理和によって元データを復元する。
On the other hand, when the original
この手法は、コンピュータ処理に適したビット演算である排他的論理和演算を用いるので、データ分割処理に多項式や剰余演算を用いる従来の方法に比較して、高速かつ高性能な演算処理能力を必要とせず、大容量のデータに対しても簡単な演算処理を繰り返して分割データを生成することができる。また、任意に定めた一定の長さ毎にデータの先頭から順に演算処理を行うストリーム処理により分割データを生成できる。 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
ステップ2では、このダミーデータを元データSの代わりに使用する。具体的には、分割データ生成部11により、ダミーデータR'と乱数Rとの排他的論理和を演算することで、分割データAおよび分割データBを生成する。分割データAについては、端末装置1が内蔵する記憶部14に保存させ、分割データBについては外付記憶装置2に保存させる。
In
ステップ3で、データ送受信部15により、分割データC(乱数データ)をネットワーク4を介してデータセンタ3に送信し、データセンタ3における記憶部31に記憶させる。この後、ネットワーク4との通信接続を切断しオフライン設定をする。
In
ステップ4で、実際の元データSの分割処理が発生した時、分割データ生成部11は、分割データAと分割データBの排他的論理和を演算することによって、乱数Rを生成する。
When the actual division processing of the original data S occurs in step 4, the divided
ステップ5で、元データSと生成した乱数Rとの排他的論理和を演算することで、分割データAと分割データBを生成する。分割データAについては、端末装置1が内蔵する記憶部14に保存させ、分割データBについては外付記憶装置2に保存させる。
In
一方、ステップ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
このような処理を行うことで、分割データをネットワークを介して送受信することはネットワークの伝送容量や他のデータの伝送状態によって伝送速度が抑制されるところ、通常利用処理においては、記憶部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
また、乱数発生部13により乱数を発生させる処理は演算の負担が大きいところ、上記の処理を行うことで、乱数の発生は、前処理において1回行うだけで済むので、分割処理の度に乱数を発生させる必要がなく、高速な分割処理を実現することができる。
In addition, since the process of generating a random number by the random
続いて、データの分割・復元の処理について詳細に説明する。本実施形態で使用する排他的論理和演算(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のフローチャートに示す記号の定義について説明する。
は、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
である行列を意味するものとし、「上三角行列」ということとする。具体的には下記のような行列である。
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.
(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を他の行列に右側から複数回かけると、その回数分だけ各列を右方向へ回転させるように移動させることができる。
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.
(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
となる性質がある。
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.
次に、図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
次に、利用者は分割数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
それから、元データ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
次のステップ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
次に、変数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
乱数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
ここで、上述した図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のときは
Q (j, i, k) = 0 when c (j, i, k) = 0
here,
When j = 1
j=2のときは
これを用いると、各分割部分データ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
この処理は、次のようになる。 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
ここでは、分割データ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)を次のように設定する。
When i <n, each divided partial data D (i, j) is set as follows.
ただし、
また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
このようにして取得した乱数は、元データの復元に利用できるほか、別の元データを分割する際にも利用できるので、分割・復元処理の度にネットワークを使用することが不要になり、効率的な処理を実現することができる。 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
なお、本実施の形態においては、端末装置1に乱数発生部13、分割データ生成部11を備えることとしたが、これに限るものではない。例えば、ネットワーク4に接続可能な分割処理専用のサーバ装置を配置し、このサーバ装置に乱数発生部13、分割データ生成部11を備えるようにしてもよい。この場合、サーバ装置により元データの分割処理を行い、分割データA,Bを端末装置1へ送信し、分割データCをデータセンタ3へ送信する。このような構成とすることで、端末装置1では、上記の手法により元データを復元する処理を行うだけにすることもできる。
In the present embodiment, the
1…端末装置
2…外付記憶装置
3…データセンタ
4…ネットワーク
11…分割データ生成部
12…元データ復元部
13…乱数発生部
14…記憶部
15…データ送受信部
31…記憶部
32…データ送受信部
DESCRIPTION OF
Claims (5)
元データを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:
元データを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.
各分割データのみからでは元データを復元不能であるが、各分割データのうちの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:
元データを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.
元データを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.
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)
| 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)
| 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 |
-
2005
- 2005-08-05 JP JP2005228128A patent/JP4856909B2/en not_active Expired - Fee Related
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 |