JP2014142651A - Method and system for securing data originality, and program for securing data originality - Google Patents

Method and system for securing data originality, and program for securing data originality Download PDF

Info

Publication number
JP2014142651A
JP2014142651A JP2014046667A JP2014046667A JP2014142651A JP 2014142651 A JP2014142651 A JP 2014142651A JP 2014046667 A JP2014046667 A JP 2014046667A JP 2014046667 A JP2014046667 A JP 2014046667A JP 2014142651 A JP2014142651 A JP 2014142651A
Authority
JP
Japan
Prior art keywords
data
divided
original
originality
divided data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014046667A
Other languages
Japanese (ja)
Other versions
JP5749368B2 (en
Inventor
Toshihiko Ogiwara
利彦 荻原
Katsutoshi Watabe
勝年 渡部
Susumu Nomura
進 野村
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 Communications Corp
Original Assignee
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 Communications Corp filed Critical NTT Communications Corp
Priority to JP2014046667A priority Critical patent/JP5749368B2/en
Publication of JP2014142651A publication Critical patent/JP2014142651A/en
Application granted granted Critical
Publication of JP5749368B2 publication Critical patent/JP5749368B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes

Abstract

PROBLEM TO BE SOLVED: To provide a method and a system for securing data originality and a program for securing data originality capable of preserving data while more easily securing its originality.SOLUTION: A system 1 for securing data originality comprises: a divided data generation part 13 which uses a secret dispersion method to divide source data into a plurality of pieces of division data D(1) to D(4) respectively from which the source data can be restored; and a plurality of storage servers 3a1 to 3a4 which are independent in a hardware manner to respectively store the plurality of pieces of divided division data D(1) to D(4).

Description

本発明は、データを、その原本性を確保して保管するためのデータ原本性確保方法およびシステム、ならびにデータ原本性確保用プログラムに関する。   The present invention relates to a data originality ensuring method and system for storing data while ensuring its originality, and a data originality ensuring program.

ITの発展に伴って、自らの端末をインターネット等の通信ネットワークに接続し、この通信ネットワークに接続されている他端末に対して通信ネットワークを介してデータを通信する機会が非常に増えている。   Along with the development of IT, there is a great increase in opportunities to connect one's own terminal to a communication network such as the Internet, and to communicate data to another terminal connected to the communication network via the communication network.

このとき、端末は通信ネットワークに接続されているため、悪意を持った第三者(ハッカー等)が通信ネットワークに接続された第三者側の端末を介して端末にアクセスし、端末に保管されているデータを改竄する恐れが生じており、改竄されたデータの原本性(故意または過失による改竄がなく、内容が完全であること)を確保する必要が生じていた。   At this time, since the terminal is connected to the communication network, a malicious third party (such as a hacker) accesses the terminal via the third party terminal connected to the communication network and is stored in the terminal. There is a risk of falsifying existing data, and it is necessary to ensure the originality of the falsified data (no intentional or negligent falsification and complete content).

この点、従来では、電子署名を用いてデータの改竄を検出可能にして、原本性を確保する技術が導入されている(例えば、非特許文献1参照)。   In this regard, conventionally, a technique has been introduced in which data alteration can be detected using an electronic signature to ensure originality (see, for example, Non-Patent Document 1).

すなわち、電子署名技術を用いた原本性確保方法によれば、データ送信元のA氏は、予め認証局(CA;Certification Authority)により保証された公開鍵入りの電子証明書を受取る。   That is, according to the originality ensuring method using the electronic signature technique, Mr. A who is a data transmission source receives an electronic certificate containing a public key guaranteed in advance by a certification authority (CA).

そして、A氏は、送信したいデータ(データ本体とも呼ぶ)について電子署名を作成し、作成した電子署名を含むデータ(データ本体+電子署名+電子証明書)をB氏に送信する。   Then, Mr. A creates an electronic signature for data to be transmitted (also referred to as a data body), and transmits data (data body + electronic signature + electronic certificate) including the created electronic signature to Mr. B.

B氏は、受信したデータのうち、データ本体から生成したハッシュ値と、A氏から受け取ったA氏の電子証明書に含まれる公開鍵で電子署名を復号化して得た値とを比較することにより、データが改竄されたか否かを判断している。   Mr. B compares the hash value generated from the data body of the received data with the value obtained by decrypting the electronic signature with the public key included in Mr. A's electronic certificate received from Mr. A. Thus, it is determined whether or not the data has been falsified.

”PKI関連技術説明”、[online]、平成14年12月12日、情報処理振興事業協会、[平成15年4月11日検索]、インターネット<URL:http://www.ipa.go.jp/security/pki/index.html>"PKI-related technical explanation", [online], December 12, 2002, Information processing promotion business association, [April 11, 2003 search], Internet <URL: http: //www.ipa.go. jp / security / pki / index.html>

しかしながら、電子署名技術を用いた原本性確保方法によれば、B氏側において受け取ったデータを長期間保管する場合、秘密鍵の危殆化等からデータが改竄される恐れが生じている。   However, according to the originality ensuring method using the electronic signature technique, when the data received on Mr. B side is stored for a long period of time, there is a risk that the data is falsified due to the compromise of the secret key.

そこで、電子署名技術を用いた原本性確保方法において、認証局から発行される電子証明書には予め有効期限が定められており、有効期限到来前にA氏側において改めて秘密鍵と公開鍵とを生成し、公開鍵について電子証明書を認証局から発行してもらい、新しい秘密鍵を用いて再度電子署名付きのデータを作成する必要がある。   Therefore, in the method of ensuring originality using the electronic signature technology, an electronic certificate issued from the certificate authority has a predetermined expiration date, and Mr. A revisits the private key and public key before the expiration date. Is generated, and an electronic certificate is issued from the certificate authority for the public key, and data with an electronic signature is generated again using a new private key.

しかしながら、上述した電子証明書の有効期限に基づく認証局からの電子証明書の再発行処理、および新しい秘密鍵を用いた電子署名付きデータ作成処理は非常に手間および時間がかかり、また、有効期限毎に上述した電子証明書の再発行処理および電子署名付きデータ作成処理を繰り返し行わなければならず、データを、その原本性をより簡易に確保しながら保管できる方法の開発が待望されていた。   However, the above-described reissue process of the electronic certificate from the certificate authority based on the validity period of the electronic certificate and the process for creating the data with the electronic signature using the new private key are very time-consuming and time-consuming. Every time, the above-described re-issuance processing of the electronic certificate and data creation processing with the electronic signature must be repeatedly performed, and development of a method that can store data while ensuring its originality more easily has been awaited.

本発明は、上述した事情に鑑みてなされたものであり、データを、その原本性をより簡易に確保して保管することのできるデータ原本性確保方法およびシステム、ならびにデータ原本性確保用プログラムを提供することをその目的とする。   The present invention has been made in view of the circumstances described above, and provides a data originality ensuring method and system, and a data originality ensuring program capable of storing data with its originality more easily secured. Its purpose is to provide.

上述した目的を達成するため、本発明は、請求項1に記載したように、データを、その原本性を確保して保管するデータ原本性確保システムであって、前記データを秘密分散法を用いて該データが復元できる複数の分割データにそれぞれ分割するデータ分割部と、分割された複数の分割データをそれぞれ記憶するハードウェア的に独立した複数の保管部と、を備えたことを要旨とする。   In order to achieve the above-described object, the present invention provides a data originality ensuring system for storing data while ensuring its originality, as described in claim 1, wherein the data is stored using a secret sharing method. The data division unit for dividing the data into a plurality of divided data that can be restored, and a plurality of hardware independent storage units for storing the plurality of divided data, respectively, are provided. .

請求項2に記載した発明は、前記データ分割部は、原本性確保対象となるデータ本体から、該データ本体をユニークに識別できる識別データを生成する識別データ生成部と、生成された識別データと前記データ本体とを結合した前記データを秘密分散法を用いて分割する分割部とを備えたことを要旨とする。   The invention described in claim 2 is characterized in that the data dividing unit generates an identification data generating unit that generates identification data that can uniquely identify the data main body from the data main body that is an originality assurance target; A gist is provided with a dividing unit that divides the data combined with the data body using a secret sharing method.

請求項3に記載した発明は、前記識別データ生成部は、前記識別データとして、前記データ本体を所定のハッシュ関数を用いてハッシュ値を生成する生成部を備えたことを要旨とする。   The gist of the invention described in claim 3 is that the identification data generation unit includes a generation unit that generates a hash value of the data body using a predetermined hash function as the identification data.

請求項4に記載した発明は、前記データ分割部は、分割された各分割データに、データ分割に関する管理情報を合わせたデータ全体から、該データ全体をユニークに識別できる分割識別データをそれぞれ生成し、前記複数の保管部は、前記分割データ、前記データ分割に関する管理情報、および前記分割識別データをそれぞれ記憶することを要旨とする。   According to a fourth aspect of the present invention, the data dividing unit generates division identification data that can uniquely identify the entire data from the entire data obtained by adding management information related to data division to each divided data. The gist of the plurality of storage units is to store the divided data, management information related to the data division, and the division identification data, respectively.

請求項5に記載した発明は、前記複数の保管部から前記複数の分割データをそれぞれ読み出し、読み出した複数の分割データから秘密分散法により前記データ本体および前記識別データをそれぞれ復元するデータ復元部と、復元されたデータ本体から前記識別データを再生成し、再生成された識別データと前記復元された識別データとが一致するか否かを確認する確認部と、を備えたことを要旨とする。   The invention described in claim 5 is a data restoration unit that reads the plurality of divided data from the plurality of storage units, respectively, and restores the data body and the identification data from the plurality of read divided data by a secret sharing method, And a confirmation unit that regenerates the identification data from the restored data body and confirms whether the regenerated identification data matches the restored identification data. .

請求項6に記載した発明は、前記複数の保管部から前記分割データ、前記データ分割に関する管理情報、および前記分割識別データをそれぞれ読み出し、読み出した複数の分割データから秘密分散法により前記データ本体および前記識別データをそれぞれ復元するデータ復元部と、復元されたデータ本体から前記識別データを再生成し、再生成された識別データと前記復元された識別データとが一致するか否かを確認する第1の確認部と、前記複数の分割データそれぞれに対して、読み出した分割データおよびデータ分割に関する管理情報とを合わせたデータ全体から、前記分割識別データを再生成し、再生成された分割識別データと、読み出した前記分割識別データとが一致するか否かを確認する第2の確認部と、を備えたことを要旨とする。   The invention described in claim 6 reads the divided data, the management information related to the data division, and the division identification data from the plurality of storage units, respectively, and the data body and the data by the secret sharing method from the plurality of read divided data A data restoring unit for restoring each of the identification data, and regenerating the identification data from the restored data body, and confirming whether or not the regenerated identification data and the restored identification data match. The division identification data is regenerated from the entire data including the read data divided and the management information related to the data division for each of the plurality of pieces of divided data, and the regenerated division identification data And a second confirmation unit that confirms whether or not the read division identification data matches. .

請求項7に記載した発明は、前記複数の保管部から前記複数の分割データをそれぞれ読み出し、読み出した複数の分割データを、異なる組合せにより組み合わせて複数のデータを復元し、復元した複数のデータがそれぞれ一致するか否かを確認する復元確認部をさらに備えたことを要旨とする。   The invention described in claim 7 reads the plurality of pieces of divided data from the plurality of storage units, restores the plurality of pieces of data by combining the read pieces of divided data in different combinations, and the restored pieces of data The gist of the present invention is that it further includes a restoration confirmation unit for confirming whether or not they match each other.

請求項8に記載した発明は、データを、その原本性を確保して保管するデータ原本性確保方法であって、前記データを秘密分散法を用いて該データが復元できる複数の分割データにそれぞれ分割するステップと、分割された複数の分割データをハードウェア的に独立した複数の保管装置にそれぞれ記憶するステップと、を備えたことを要旨とする。   The invention described in claim 8 is a data originality ensuring method for storing data while ensuring its originality, and each of the data is divided into a plurality of divided data that can be restored using a secret sharing method. The gist of the invention is that the method includes a step of dividing, and a step of storing a plurality of divided pieces of divided data in a plurality of storage devices independent in hardware.

請求項9に記載した発明は、前記分割ステップは、原本性確保対象となるデータ本体から、該データ本体をユニークに識別できる識別データを生成するステップと、生成された識別データと前記データ本体とを結合した前記データを秘密分散法を用いて分割するステップと、を備えたことを要旨とする。   The invention described in claim 9 is characterized in that the dividing step generates identification data that can uniquely identify the data body from the data body that is an object of securing originality, the generated identification data, and the data body. And a step of dividing the data obtained by combining the two using a secret sharing method.

請求項10に記載した発明は、データを、その原本性を確保して保管するためのコンピュータが読み取り可能なデータ原本性確保用プログラムであって、前記コンピュータに、前記データを秘密分散法を用いて該データが復元できる複数の分割データにそれぞれ分割するデータ分割処理と、分割された複数の分割データを、該コンピュータが通信可能なハードウェア的に独立した複数の保管装置にそれぞれ記憶する保管処理と、をそれぞれ実行させることを要旨とする。   The invention described in claim 10 is a computer-readable data originality ensuring program for ensuring the originality of the data and storing the data, wherein the data is stored in the computer using a secret sharing method. Data division processing for dividing the data into a plurality of divided data that can be restored, and storage processing for storing the divided pieces of divided data in a plurality of hardware independent storage devices that can communicate with the computer The gist is to execute each of the above.

請求項11に記載した発明は、前記分割処理は、原本性確保対象となるデータ本体から、該データ本体をユニークに識別できる識別データを生成する識別データ生成処理と、生成された識別データと前記データ本体とを結合した前記データを秘密分散法を用いて分割する分割処理と、を備えたことを要旨とする。   According to an eleventh aspect of the present invention, the division processing includes identification data generation processing for generating identification data that can uniquely identify the data main body, from the data main body that is an originality assurance target, the generated identification data, A gist of the present invention is that it includes a division process for dividing the data combined with the data body using a secret sharing method.

請求項12に記載した発明は、前記識別データ生成処理は、前記識別データとして、前記データ本体を所定のハッシュ関数を用いてハッシュ値を生成することを要旨とする。   The gist of the invention described in claim 12 is that the identification data generation process generates a hash value as the identification data by using a predetermined hash function for the data body.

請求項13に記載した発明は、前記データ分割処理は、分割された各分割データに、データ分割に関する管理情報を合わせたデータ全体から、該データ全体をユニークに識別できる分割識別データをそれぞれ生成し、前記保管処理は、前記複数の保管装置に、前記分割データ、前記データ分割に関する管理情報、および前記分割識別データをそれぞれ記憶することを要旨とする。   According to a thirteenth aspect of the present invention, the data division process generates division identification data that can uniquely identify the entire data from the entire data obtained by combining each divided data with management information related to data division. The gist of the storage process is to store the divided data, management information related to the data division, and the division identification data in the plurality of storage devices, respectively.

請求項14に記載した発明は、前記複数の保管装置から前記複数の分割データをそれぞれ読み出し、読み出した複数の分割データから秘密分散法により前記データ本体および前記識別データをそれぞれ復元するデータ復元処理と、復元されたデータ本体から前記識別データを再生成し、再生成された識別データと前記復元された識別データとが一致するか否かを確認する確認処理と、を前記コンピュータに実行させることを要旨とする。   According to a fourteenth aspect of the present invention, there is provided a data restoration process in which the plurality of divided data are read from the plurality of storage devices, respectively, and the data body and the identification data are restored from the plurality of read divided data by a secret sharing method. Regenerating the identification data from the restored data body, and causing the computer to execute a confirmation process for confirming whether the regenerated identification data matches the restored identification data. The gist.

請求項15に記載した発明は、前記複数の保管装置から前記分割データ、前記データ分割に関する管理情報、および前記分割識別データをそれぞれ読み出し、読み出した複数の分割データから秘密分散法により前記データ本体および前記識別データをそれぞれ復元するデータ復元処理と、復元されたデータ本体から前記識別データを再生成し、再生成された識別データと前記復元された識別データとが一致するか否かを確認する第1の確認処理と、前記複数の分割データそれぞれに対して、読み出した分割データおよびデータ分割に関する管理情報とを合わせたデータ全体から、前記分割識別データを再生成し、再生成された分割識別データと、読み出した前記分割識別データとが一致するか否かを確認する第2の確認処理と、を前記コンピュータに実行させることを要旨とする。   The invention described in claim 15 reads the divided data, the management information related to the data division, and the division identification data from the plurality of storage devices, respectively, and the data body and the data by the secret sharing method from the plurality of read divided data A data restoration process for restoring each of the identification data, regenerating the identification data from the restored data body, and confirming whether or not the regenerated identification data matches the restored identification data The division identification data is regenerated from the entire data obtained by combining the confirmation processing of 1 and the read divided data and management information related to data division for each of the plurality of divided data, and the regenerated division identification data And a second confirmation process for confirming whether or not the read division identification data matches. And summarized in that to execute the over data.

請求項16に記載した発明は、前記複数の保管装置から前記複数の分割データをそれぞれ読み出し、読み出した複数の分割データを、異なる組合せにより組み合わせて複数のデータを復元し、復元した複数のデータがそれぞれ一致するか否かを確認する復元確認処理をさらに前記コンピュータに実行させることを要旨とする。   The invention described in claim 16 reads the plurality of pieces of divided data from the plurality of storage devices, restores the plurality of pieces of data by combining the read pieces of divided data in different combinations, and the restored pieces of data The gist is to further cause the computer to execute a restoration confirmation process for confirming whether or not they match each other.

本発明に係わるデータ原本性確保方法およびシステム、ならびにデータ原本性確保用プログラムによれば、データを、秘密分散法を用いて複数の分割データに分割してハードウェア的に独立した複数の保管部(保管装置)にそれぞれ保管しているため、そのデータの内の少なくとも一部が改竄された場合でも、改竄データを含む分割データから、その分割データに対する改竄の有無を容易に確認することができる。   According to the data originality ensuring method and system and the data originality ensuring program according to the present invention, the data is divided into a plurality of divided data using the secret sharing method, and a plurality of storage units independent in hardware. Since each data is stored in the (storage device), even if at least a part of the data is falsified, it is possible to easily check whether the divided data is falsified from the divided data including the falsified data. .

この結果、例えばデータを長期間に亘って保管する場合であっても、電子署名のように、電子証明書の再発行処理および電子署名付きデータ作成処理を繰り返し行うことなく、簡易にデータを保管することができる。   As a result, for example, even when data is stored for a long period of time, data is easily stored without repeating the reissue process of the electronic certificate and the data creation process with the electronic signature, as in the case of an electronic signature. can do.

本発明の第1の実施の形態に係わるデータ原本性確保システムの概略構成を示すブロック図。1 is a block diagram showing a schematic configuration of a data originality ensuring system according to a first embodiment of the present invention. 本発明の第1の実施の形態に係わるデータ原本性確保システムにおけるデータ原本性確保用プログラムに基づくデータ原本性確保処理の一例を示す概略フローチャート。3 is a schematic flowchart showing an example of data originality ensuring processing based on a data originality ensuring program in the data originality ensuring system according to the first embodiment of the present invention. 図2に示すデータ原本性確保処理におけるデータシーケンスを概略的に示す図。The figure which shows roughly the data sequence in the data originality ensuring process shown in FIG. 本発明の第2の実施の形態に係わるデータ原本性確保システムの概略構成を示すブロック図。The block diagram which shows schematic structure of the data originality ensuring system concerning the 2nd Embodiment of this invention. 本発明の第3の実施の形態に係わるデータ原本性確保システムの概略構成を示すブロック図。The block diagram which shows schematic structure of the data originality ensuring system concerning the 3rd Embodiment of this invention. 本発明の第3の実施の形態に係わるデータ原本性確保システムにおけるデータ原本性確保用プログラムに基づくデータ原本性確保処理の一例を示す概略フローチャート。The schematic flowchart which shows an example of the data originality ensuring process based on the data originality ensuring program in the data originality ensuring system concerning the 3rd Embodiment of this invention. 図6に示すデータ原本性確保処理におけるデータシーケンスを概略的に示す図。The figure which shows roughly the data sequence in the data originality ensuring process shown in FIG. 本発明の第3の実施の形態における分割データの構成を示す図。The figure which shows the structure of the division | segmentation data in the 3rd Embodiment of this invention. 本発明の第3の実施の形態における分割数n=3の場合の分割処理を示すフローチャート。The flowchart which shows the division | segmentation process in case the division | segmentation number n = 3 in the 3rd Embodiment of this invention. 本発明の第3の実施の形態において、16ビットの元データを8ビットの処理単位ビット長に基づいて分割数n=3で3分割する場合の各データと定義式および各分割部分データから元データを復元する場合の計算式などを示す表。In the third embodiment of the present invention, 16-bit original data is divided into three parts with the number of divisions n = 3 based on the 8-bit processing unit bit length, and the original data is obtained from the definition formulas and the divided partial data. A table showing the formulas for restoring data. 本発明の第3の実施の形態において、分割数n=3の場合の分割データ、分割部分データ、各分割部分データを生成する定義式を示す表。The table | surface which shows the defining formula which produces | generates the division data, division | segmentation partial data, and each division | segmentation partial data in the case of the division | segmentation number n = 3 in the 3rd Embodiment of this invention. 本発明の第3の実施の形態における分割数がnで単位ビット長がbである場合の一般的な分割処理を示すフローチャート。The flowchart which shows the general division | segmentation process in case the division number in the 3rd Embodiment of this invention is n and unit bit length is b. 本発明の変形例に係わるデータ原本性確保システムの概略構成を示すブロック図。The block diagram which shows schematic structure of the data originality ensuring system concerning the modification of this invention.

本発明に係わるデータ原本性確保方法およびシステム、ならびにデータ原本性確保用プログラムの実施の形態について、添付図面を参照して説明する。   Embodiments of a data originality securing method and system and a data originality securing program according to the present invention will be described with reference to the accompanying drawings.

(第1の実施の形態)
図1は、本発明の第1の実施の形態に係わるデータ原本性確保システム1の概略構成を示すブロック図である。
(First embodiment)
FIG. 1 is a block diagram showing a schematic configuration of a data originality ensuring system 1 according to the first embodiment of the present invention.

図1に示すように、データ原本性確保システム1は、インターネット等の通信用ネットワークNに対して接続して通信できるクライアントコンピュータ(以下、単にクライアントとする)2と、ネットワークNに対して通信可能に接続されており、互いにハードウェア的に独立した複数(本実施の形態では4とする)のデータ保管用サーバコンピュータ(以下、単に保管サーバとする)3a1〜3a4とを備えている。   As shown in FIG. 1, the data originality ensuring system 1 can communicate with a network N and a client computer (hereinafter simply referred to as a client) 2 that can connect to and communicate with a communication network N such as the Internet. And a plurality of (4 in this embodiment) data storage server computers (hereinafter simply referred to as storage servers) 3a1 to 3a4 that are independent of each other in terms of hardware.

クライアント2は、演算処理部であるCPU、このCPUに接続され該CPUおよびネットワークN間の通信を可能にするインタフェース、CPUに接続されたデータ入力用の入力部およびCPUに接続されたメモリ10をそれぞれ備えている。   The client 2 includes a CPU as an arithmetic processing unit, an interface connected to the CPU and enabling communication between the CPU and the network N, an input unit for data input connected to the CPU, and a memory 10 connected to the CPU. Each has.

メモリ10には、原本性を確保して保管する対象となるデータ{例えば、M(Mは自然数)バイトのデジタルデータ;以下、元データとも呼ぶ}Bが格納されている。また、メモリ10には、クライアント2(そのCPU)が読み取り可能であり、後述する図2および図3に示す原本性確保処理(データ保管処理)をクライアント2(そのCPU)に実行させるためのデータ原本性確保用プログラムPが搭載されている。   The memory 10 stores data (for example, digital data of M (M is a natural number) bytes; hereinafter also referred to as original data) B to be stored with originality secured. The memory 10 is readable by the client 2 (its CPU), and data for causing the client 2 (its CPU) to execute an originality ensuring process (data storage process) shown in FIGS. 2 and 3 to be described later. An originality ensuring program P is installed.

なお、このデータ原本性確保用プログラムPは、磁気メモリや半導体メモリ等の各種記録媒体に搭載され、必要に応じてその記録媒体からクライアント2に読み出されてメモリ10にロードされるように構成することも可能である。   The data originality securing program P is mounted on various recording media such as a magnetic memory and a semiconductor memory, and is read from the recording media to the client 2 and loaded into the memory 10 as necessary. It is also possible to do.

クライアント2は、データ原本性確保用プログラムPにより実現される機能として、メモリ10に格納された元データBから、その元データBをユニークに識別できる例えばハッシュ値を生成するハッシュ値生成部11と、元データBおよびハッシュ値Hを含むデータを秘密分散法を用いて分割して分割データD(1)〜D(4)(本実施形態では、分割数を4とする)を生成する分割データ生成部13と、分割データD(1)〜D(4)から元データBおよびハッシュ値Hを生成する元データ復元部15と、分割データD(1)〜D(4)をネットワークNを介して通信する通信部17とを備えている。   The client 2 has, as a function realized by the data originality ensuring program P, a hash value generation unit 11 that generates, for example, a hash value that can uniquely identify the original data B from the original data B stored in the memory 10. The divided data for dividing the data including the original data B and the hash value H using the secret sharing method to generate divided data D (1) to D (4) (in this embodiment, the number of divisions is 4). The generation unit 13, the original data restoration unit 15 that generates the original data B and the hash value H from the divided data D (1) to D (4), and the divided data D (1) to D (4) via the network N And a communication unit 17 for communication.

各保管サーバ3a1〜3a4は、演算処理部であるCPU、このCPUに接続され該CPUおよびネットワークN間の通信を可能にするインタフェース、CPUに接続されたデータ入力用の入力部、CPUに接続されたメモリおよびハードディスク等の記憶装置をそれぞれ備えている。   Each of the storage servers 3a1 to 3a4 is connected to the CPU as an arithmetic processing unit, an interface connected to the CPU and enabling communication between the CPU and the network N, an input unit for data input connected to the CPU, and the CPU. And storage devices such as a memory and a hard disk.

次に、本実施の形態に係わるデータ原本性確保システム1の全体処理について説明する。   Next, the entire process of the data originality ensuring system 1 according to the present embodiment will be described.

図2および図3に示すように、クライアント2は、データ原本性確保用プログラムPに従って動作し、ハッシュ値生成部11の機能として、メモリ10に記憶された、原本性を確保して保管したい元データBをメモリ10から読み込み、読み込んだ元データBを、所定のハッシュ関数を用いてその元データBのハッシュ値Hを生成する(ステップS1)。   As shown in FIG. 2 and FIG. 3, the client 2 operates according to the data originality ensuring program P, and stores the originality stored in the memory 10 as the function of the hash value generation unit 11 while ensuring the originality. Data B is read from the memory 10, and a hash value H of the original data B is generated from the read original data B using a predetermined hash function (step S1).

このハッシュ値Hは、その元データBが1ビットでも変更されると全く異なる値を示す性質、すなわち、元データBをユニークに識別できる性質を有している。   This hash value H has the property of showing a completely different value when the original data B is changed even by 1 bit, that is, the property of uniquely identifying the original data B.

次いで、クライアント2は、分割データ生成部13の機能として、生成したハッシュ値Hを含む元データBを秘密分散法を用いて4つのデータ(分割データ)D(1)〜D(4)に分割する(ステップS2)。   Next, as a function of the divided data generation unit 13, the client 2 divides the original data B including the generated hash value H into four data (divided data) D (1) to D (4) using the secret sharing method. (Step S2).

以下、ステップS2の秘密分散法に基づく分割データD(1)〜D(4)生成処理について詳細に説明する。   Hereinafter, the divided data D (1) to D (4) generation processing based on the secret sharing method in step S2 will be described in detail.

例えば、2次多項式F(x)=ax2+bx+B(mod p;pで割った時の余りを表す)を基にしたShamirの秘密分散法{(k、n)閾値法;但し、分割数を表すnを4とし、復元できる数を表すkを3とする}で考える。ここでBは元データ、F(x)は分割データである。a、b、pは、元データBの分割に際して任意に決定される。但し、pは、a、b、Bよりも大きい素数とする。   For example, Shamir's secret sharing method ((k, n) threshold method based on quadratic polynomial F (x) = ax2 + bx + B (mod p; represents the remainder when divided by p); where n represents the number of divisions Is assumed to be 4, and k representing the number that can be restored is assumed to be 3}. Here, B is the original data, and F (x) is the divided data. a, b, and p are arbitrarily determined when the original data B is divided. However, p is a prime number larger than a, b, and B.

このとき、クライアント2の分割データ生成処理により、分割データF(1)〜F(4){上記分割データD(1)〜D(4)に対応}は、次式(1)〜(4)のように作成される。   At this time, the divided data F (1) to F (4) {corresponding to the divided data D (1) to D (4)} is expressed by the following equations (1) to (4) by the divided data generation processing of the client 2. It is created like this.

F(1)=a+b+B(mod p) ・・・(1)
F(2)=4a+2b+B(mod p) ・・・(2)
F(3)=9a+3b+B(mod p) ・・・(3)
F(4)=16a+4b+B(mod p) ・・・(4)
この分割データF(1)〜F(4)の内、k=3以上の分割データ{例えば、F(1)、F(2)、F(4)}が集まれば、この分割データ
F(1)=a+b+B(mod p) ・・・(1)
F(2)=4a+2b+B(mod p) ・・・(2)
F(4)=16a+4b+B(mod p) ・・・(4)
を連立して元データBを求めることができる。
F (1) = a + b + B (mod p) (1)
F (2) = 4a + 2b + B (mod p) (2)
F (3) = 9a + 3b + B (mod p) (3)
F (4) = 16a + 4b + B (mod p) (4)
Among the divided data F (1) to F (4), if divided data of k = 3 or more {for example, F (1), F (2), F (4)} is collected, the divided data F (1 ) = A + b + B (mod p) (1)
F (2) = 4a + 2b + B (mod p) (2)
F (4) = 16a + 4b + B (mod p) (4)
To obtain the original data B.

そして、k−1以下の分割データが集まっても、元データBを復元することはできない。   And even if the divided data of k-1 or less gather, the original data B cannot be restored.

なお、元データBが長いデータ列である場合には、クライアント2は、例えば元データBの先頭から1バイト毎にF(1)からF(4)を順次作成して分割データD(1)(F(1))〜D(4)(F(4))を作成する。   When the original data B is a long data string, the client 2 sequentially creates F (1) to F (4) for each byte from the beginning of the original data B, for example, and generates divided data D (1). (F (1)) to D (4) (F (4)) are created.

そして、クライアント2は、通信部17の機能として、作成した分割データD(1)〜D(4)を保管サーバ3a1〜3a4にネットワークNを介してそれぞれ送信する(ステップS3)。   Then, the client 2 transmits the created divided data D (1) to D (4) as functions of the communication unit 17 to the storage servers 3a1 to 3a4 via the network N (step S3).

各保管サーバ3a1〜3a4は、ネットワークNを介して送信されてきた分割データD(1)〜D(4)を、それぞれのハードディスク等の記憶装置に記憶する(ステップS5)。   Each storage server 3a1 to 3a4 stores the divided data D (1) to D (4) transmitted via the network N in a storage device such as a hard disk (step S5).

このようにして、元データBを、そのハッシュ値Hを含んで分割された分割データD(1)〜D(4)として保管サーバ3a1〜3a4に保管することができる。   In this way, the original data B can be stored in the storage servers 3a1 to 3a4 as the divided data D (1) to D (4) divided including the hash value H.

次に、保管サーバ3a1〜3a4に保管された分割データD(1)〜D(4)が改竄されているか否かを確認する場合、クライアント2は、分割データD(1)〜D(4)のダウンロード要求を保管サーバ3a1〜3a4にそれぞれ送信する(ステップS10)。   Next, when confirming whether or not the divided data D (1) to D (4) stored in the storage servers 3a1 to 3a4 has been falsified, the client 2 uses the divided data D (1) to D (4). Are transmitted to the storage servers 3a1 to 3a4 (step S10).

各保管サーバ3a1〜3a4は、送信されてきたダウンロード要求に応じて、それぞれのハードディスク等の記憶装置に保管された各分割データD(1)〜D(4)を各記憶装置から読み出し、読み出した各分割データD(1)〜D(4)をネットワークNを介してクライアント2に送信する(ステップS11)。   Each of the storage servers 3a1 to 3a4 reads and reads the respective divided data D (1) to D (4) stored in each storage device such as a hard disk from each storage device in response to the transmitted download request. Each divided data D (1) to D (4) is transmitted to the client 2 via the network N (step S11).

クライアント2は、データ原本性確保用プログラムPに従って動作し、元データ復元部15の機能として、ネットワークNを介して送信されてきた分割データD(1)〜D(4)を受信し、受信した分割データD(1)〜D(4)に基づいて秘密分散法により元データB1およびハッシュ値H1をそれぞれ復元する(ステップS12)。   The client 2 operates according to the data originality ensuring program P, and receives and receives the divided data D (1) to D (4) transmitted via the network N as a function of the original data restoration unit 15. Based on the divided data D (1) to D (4), the original data B1 and the hash value H1 are respectively restored by the secret sharing method (step S12).

次いで、クライアント2は、元データ復元部15の機能として、復元した元データB1からハッシュ値H2を再生成し、再生成したハッシュ値H2と復元したハッシュ値H1とを比較して一致するか否かを確認する(ステップS13)。   Next, as a function of the original data restoration unit 15, the client 2 regenerates the hash value H2 from the restored original data B1, compares the regenerated hash value H2 with the restored hash value H1, and determines whether or not they match. (Step S13).

このステップS12およびS13の処理を具体的に説明する。   The processing of steps S12 and S13 will be specifically described.

例えば、上記分割データF(1)、F(2)、F(3)、F(4)の内、一部の分割データが改竄{例えば、F(2)〜F(4)がFa(2)〜Fa(4)に改竄}されたと仮定する。   For example, some of the divided data F (1), F (2), F (3), and F (4) are altered {for example, F (2) to F (4) are Fa (2 ) To Fa (4)}.

このとき、クライアント2は、下式
F(1) =a+b+B(mod p) ・・・(1)
Fa(2)=4a+2b+B(mod p) ・・・(2)
Fa(3)=9a+3b+B(mod p) ・・・(3)
Fa(4)=16a+4b+B(mod p)・・・(4)
の中から少なくとも3つの式を連立させてハッシュ値Hを含む元データBを復元することになる。
At this time, the client 2 uses the following formula F (1) = a + b + B (mod p) (1)
Fa (2) = 4a + 2b + B (mod p) (2)
Fa (3) = 9a + 3b + B (mod p) (3)
Fa (4) = 16a + 4b + B (mod p) (4)
The original data B including the hash value H is restored by combining at least three expressions from among the two.

しかしながら、分割データF(2)〜F(4)が分割データFa(2)〜Fa(4)に改竄されているため、この分割データFa(2)〜Fa(4)を連立しても、復元された元データB1は、原本性確保対象となる元データBとは異なるため、その元データB1から再生成されたハッシュ値H2も、復元されたハッシュ値H1とは異なる。この結果、保管サーバ3a1〜3a4に保管されている分割データD(1)〜D(4)の少なくとも一部が改竄されていることをクライアント2側において確認することができる。   However, since the divided data F (2) to F (4) are altered to the divided data Fa (2) to Fa (4), even if the divided data Fa (2) to Fa (4) are combined, Since the restored original data B1 is different from the original data B that is the object of securing the originality, the hash value H2 regenerated from the original data B1 is also different from the restored hash value H1. As a result, it is possible to confirm on the client 2 side that at least a part of the divided data D (1) to D (4) stored in the storage servers 3a1 to 3a4 has been falsified.

以上述べたように、本実施形態によれば、元データBを、秘密分散法を用いて複数の分割データD(1)〜D(4)に分割して保管サーバ3a1〜3a4にそれぞれ保管しているため、その分割データD(1)〜D(4)の内の少なくとも一部が改竄された場合でも、改竄データを含む分割データD(1)〜D(4)から、その分割データD(1)〜D(4)に対する改竄の有無を容易に確認することができる。   As described above, according to the present embodiment, the original data B is divided into a plurality of divided data D (1) to D (4) using the secret sharing method and stored in the storage servers 3a1 to 3a4, respectively. Therefore, even when at least a part of the divided data D (1) to D (4) is falsified, the divided data D is divided from the divided data D (1) to D (4) including the falsified data. The presence or absence of tampering with respect to (1) to D (4) can be easily confirmed.

この結果、例えば元データBを長期間に亘って保管する場合であっても、電子署名のように、電子証明書の再発行処理および電子署名付きデータ作成処理を繰り返し行うことなく、簡易に元データBを保管することができる。   As a result, for example, even when the original data B is stored for a long period of time, it is possible to easily perform the original data without repeating the reissue process of the electronic certificate and the data creation process with the electronic signature as in the case of the electronic signature. Data B can be stored.

また、本実施形態によれば、元データBを分割データD(1)〜D(4)に分割して保管サーバ3a1〜3a4に保管しているため、例えば、分割データD(1)〜D(4)の内の1つの分割データが改竄された場合でも、残りの分割データを用いて元データBを復元することができる。   Further, according to the present embodiment, the original data B is divided into divided data D (1) to D (4) and stored in the storage servers 3a1 to 3a4. For example, the divided data D (1) to D Even when one divided data in (4) is falsified, the original data B can be restored using the remaining divided data.

この結果、元データBの原本性をより確実に確保することができる。   As a result, the originality of the original data B can be ensured more reliably.

(第2の実施の形態)
図4は、本発明の第2の実施の形態に係わるデータ原本性確保システムにおけるデータ原本性確保用プログラムに基づく原本性確保処理の一例を示す概略フローチャートである。なお、本実施の形態におけるデータ原本性確保システムの構成については、そのデータ原本性確保用プログラムの内容およびクライアントの処理が異なり、他の構成については、図1に示す構成と略同等であるため、その説明は省略する。
(Second Embodiment)
FIG. 4 is a schematic flowchart showing an example of an originality ensuring process based on a data originality ensuring program in the data originality ensuring system according to the second embodiment of the present invention. Note that the configuration of the data originality ensuring system in the present embodiment is different in the contents of the data originality ensuring program and the processing of the client, and the other configurations are substantially the same as the configuration shown in FIG. The description is omitted.

本実施の形態において、クライアント2は、分割データ生成部13の機能として、メモリ10に記憶された、原本性を確保して保管したい元データBをメモリ10から読み込み、読み込んだ元データBを秘密分散法を用いて4つのデータ(分割データ)D(1)〜D(4)に分割する(ステップS21)。   In the present embodiment, the client 2 reads, as a function of the divided data generation unit 13, the original data B stored in the memory 10, which is to be stored with the originality secured, from the memory 10, and the read original data B is secretly stored. The data is divided into four data (divided data) D (1) to D (4) using a distribution method (step S21).

なお、ステップS21の処理は、ステップS2の処理と略同等である。   Note that the process of step S21 is substantially the same as the process of step S2.

次いで、クライアント2は、通信部17の機能として、作成した分割データD(1)〜D(4)を保管サーバ3a1〜3a4にネットワークNを介してそれぞれ送信する(ステップS22)。   Next, as a function of the communication unit 17, the client 2 transmits the created divided data D (1) to D (4) to the storage servers 3a1 to 3a4 via the network N (step S22).

各保管サーバ3a1〜3a4は、ネットワークNを介して送信されてきた分割データD(1)〜D(4)を、それぞれのハードディスク等の記憶装置に記憶する(ステップS23)。   Each storage server 3a1 to 3a4 stores the divided data D (1) to D (4) transmitted via the network N in a storage device such as a hard disk (step S23).

このようにして、元データBを、分割データD(1)〜D(4)として保管サーバ3a1〜3a4に保管することができる。   In this way, the original data B can be stored in the storage servers 3a1 to 3a4 as the divided data D (1) to D (4).

次に、保管サーバ3a1〜3a4に保管された分割データD(1)〜D(4)が改竄されているか否かを確認する場合、クライアント2は、分割データD(1)〜D(4)のダウンロード要求を保管サーバ3a1〜3a4にそれぞれ送信する(ステップS30)。   Next, when confirming whether or not the divided data D (1) to D (4) stored in the storage servers 3a1 to 3a4 has been falsified, the client 2 uses the divided data D (1) to D (4). Are transmitted to the storage servers 3a1 to 3a4 (step S30).

各保管サーバ3a1〜3a4は、送信されてきたダウンロード要求に応じて、それぞれのハードディスク等の記憶装置に保管された各分割データD(1)〜D(4)を、その記憶装置から読み出し、読み出した各分割データD(1)〜D(4)をネットワークNを介してクライアント2に送信する(ステップS31)。   Each of the storage servers 3a1 to 3a4 reads out and reads each of the divided data D (1) to D (4) stored in the storage device such as the hard disk from the storage device in response to the transmitted download request. The divided data D (1) to D (4) are transmitted to the client 2 via the network N (step S31).

クライアント2は、元データ復元部15の機能として、ネットワークNを介して送信されてきた分割データD(1)〜D(4)を受信し、受信した分割データD(1)〜D(4)を秘密分散法により異なる組合せにより組み合わせて複数の元データB1〜Bm(本実施の形態では、m=2)を復元し、復元した元データB1〜B2が互いに一致するか否かを確認する(ステップS32)。   The client 2 receives the divided data D (1) to D (4) transmitted via the network N as a function of the original data restoration unit 15, and receives the received divided data D (1) to D (4). Are combined in different combinations by the secret sharing method to restore a plurality of original data B1 to Bm (in this embodiment, m = 2), and check whether the restored original data B1 to B2 match each other ( Step S32).

このステップS32の処理を具体的に説明する。   The process of step S32 will be specifically described.

クライアント2は、上記分割データF(1)、F(2)、F(3)、F(4)の内、例えば、所定の組合せ、例えば分割データF(1)〜F(3)を用いて秘密分散法により元データB1を復元し、次いで、上記組合せとは異なる組合せ、例えば、分割データF(2)〜F(4)を用いて秘密分散法により元データB2を復元する。   The client 2 uses, for example, a predetermined combination of the divided data F (1), F (2), F (3), and F (4), for example, divided data F (1) to F (3). The original data B1 is restored by the secret sharing method, and then the original data B2 is restored by the secret sharing method using a combination different from the above combination, for example, the divided data F (2) to F (4).

このとき、上記分割データF(1)〜F(4)の内の一部に改竄が発生した場合、上述したように、復元された元データB1およびB2は、原本性確保対象となる元データBとは異なり、かつ元データB1およびB2は分割データF(1)〜F(4)を互いに異なる組合せにより組み合わせているため、復元した元データB1およびB2は互いに異なる。   At this time, when falsification occurs in a part of the divided data F (1) to F (4), as described above, the restored original data B1 and B2 are the original data to be secured for originality. Unlike B, and the original data B1 and B2 combine the divided data F (1) to F (4) in different combinations, the restored original data B1 and B2 are different from each other.

したがって、クライアント2は、復元した元データB1および元データB2との不一致により、保管サーバ3a1〜3a4に保管されている分割データD(1)〜D(4)の少なくとも一部が改竄されていることをクライアント2側において確認することができる。   Therefore, in the client 2, at least part of the divided data D (1) to D (4) stored in the storage servers 3a1 to 3a4 has been falsified due to a mismatch between the restored original data B1 and original data B2. This can be confirmed on the client 2 side.

なお、本実施の形態では、分割データF(1)〜F(4)の中から異なる組合せとして、分割データF(1)〜F(3)と分割データF(2)〜F(4)とをそれぞれ選択したが、本発明はこの組合せに限定されるものではなく、4つの分割データD(1)〜D(4)それぞれが少なくとも1回復元に使用される複数の組合せを選択すればよく、互いの組合せに基づいて復元された元データが一致しているか否かを確認することができる。   In the present embodiment, divided data F (1) to F (3) and divided data F (2) to F (4) are combined as different combinations from the divided data F (1) to F (4). However, the present invention is not limited to this combination, and it is sufficient to select a plurality of combinations in which each of the four divided data D (1) to D (4) is used at least once for restoration. It is possible to confirm whether or not the original data restored based on the combination of each other matches.

(第3の実施の形態)
図5は、本発明の第3の実施の形態に係わるデータ原本性確保システム4の概略構成を示すブロック図である。
(Third embodiment)
FIG. 5 is a block diagram showing a schematic configuration of a data originality ensuring system 4 according to the third embodiment of the present invention.

図5に示すように、データ原本性確保システム4は、インターネット等の通信用ネットワークNに対して接続して通信できる端末5および分割装置6と、ネットワークNに対して通信可能に接続されており、互いにハードウェア的に独立した複数(本実施の形態では3とする)のデータ保管用サーバコンピュータ(以下、単に保管サーバとする)3a1〜3a3とを備えている。そして、上記システム構成により、分割装置6は、ネットワークNを介して端末5からのデータ保管要求に応じてデータを複数の分割データに分割し、この分割した複数の分割データをネットワークNを介して複数の保管サーバ3a1〜3a3に保管するようになっている。尚、端末5と分割装置6との間の通信、および分割装置6と各保管サーバ3a1〜3a3との間の通信は、通信内容の漏洩を防止するため、SSL(Secure Socket Layer)、IP−VPN(Virtual Private Network)などにより、通信データが暗号化されている。   As shown in FIG. 5, the data originality ensuring system 4 is communicably connected to a network N and a terminal 5 and a dividing device 6 that can connect to and communicate with a communication network N such as the Internet. A plurality of (3 in this embodiment) data storage server computers (hereinafter simply referred to as storage servers) 3a1 to 3a3 independent of each other in terms of hardware. With the above system configuration, the dividing device 6 divides the data into a plurality of divided data in response to a data storage request from the terminal 5 via the network N, and the divided plurality of divided data via the network N. The information is stored in a plurality of storage servers 3a1 to 3a3. The communication between the terminal 5 and the dividing device 6 and the communication between the dividing device 6 and each of the storage servers 3a1 to 3a3 are performed in order to prevent leakage of communication contents, such as SSL (Secure Socket Layer), IP- Communication data is encrypted by VPN (Virtual Private Network) or the like.

端末5および分割装置6は、演算処理部であるCPU、このCPUに接続され該CPUおよびネットワークN間の通信を可能にするインタフェース、CPUに接続されたデータ入力用の入力部およびCPUに接続されたメモリをそれぞれ備えている。   The terminal 5 and the dividing device 6 are connected to a CPU as an arithmetic processing unit, an interface connected to the CPU and enabling communication between the CPU and the network N, an input unit for data input connected to the CPU, and the CPU. Each with its own memory.

端末5は、利用者が原本性を確保して保管するデータ{例えば、M(Mは自然数)バイトのデジタルデータ;以下、元データとも呼ぶ}Bを分割装置6に送信するとともに、保管したデータを分割装置6から受信するデータ送受信部31を備えている。   The terminal 5 transmits the data {for example, digital data of M (M is a natural number) bytes; hereinafter referred to as original data} B to be stored by the user while ensuring the originality, and the stored data Is received from the dividing device 6.

分割装置6のメモリ10には、端末5から送信された元データBが格納される。また、メモリ10には、分割装置6(そのCPU)が読み取り可能であり、後述する図6および図7に示すデータ原本性確保処理を分割装置6(そのCPU)に実行させるためのデータ原本性確保用プログラムP3が搭載されている。   The memory 10 of the dividing device 6 stores the original data B transmitted from the terminal 5. The memory 10 can be read by the dividing device 6 (its CPU), and the data originality for causing the dividing device 6 (its CPU) to execute data originality ensuring processing shown in FIGS. 6 and 7 to be described later. The securing program P3 is installed.

なお、このデータ原本性確保用プログラムP3は、磁気メモリや半導体メモリ等の各種記録媒体に搭載され、必要に応じてその記録媒体から分割装置6に読み出されてメモリにロードされるように構成することも可能である。   The data originality ensuring program P3 is mounted on various recording media such as a magnetic memory and a semiconductor memory, and is read from the recording medium to the dividing device 6 and loaded into the memory as necessary. It is also possible to do.

分割装置6は、データ原本性確保用プログラムP3により実現される機能として、メモリ10に格納された元データBから、その元データBをユニークに識別できる例えばハッシュ値Hを生成するとともに、後述するハッシュ値h1〜h3を生成するハッシュ値生成部32と、元データBおよびハッシュ値Hを含むデータを後述する秘密分散法(第1および第2の実施の形態とは異なる秘密分散法)Sを用いて分割して分割データ(以下、分割データ本体ともよぶ)D(1)〜D(3)(本実施形態では、分割数を3とする)を生成するとともに、該分割データ本体D(1)〜D(3)、ヘッダ情報、および分割データ本体とヘッダ情報の内容全体から生成されたハッシュ値h1〜h3から構成された分割データ(以下、送信分割データともよぶ)DD(1)〜DD(3)を生成する分割データ生成部33と、分割データ本体D(1)〜D(3)を生成する際に用いられる乱数データを発生させる乱数発生部34と、保管サーバ3a1〜3a3から取得した分割データ本体D(1)〜D(3)およびそのヘッダ情報からハッシュ値h1〜h3を再生成するとともに、復元された元データBからハッシュ値Hを再生成し、データの真正性を確認するハッシュ値確認部35と、分割データ本体D(1)〜D(3)から元データBおよびハッシュ値Hを秘密分散法Sを用いて生成する元データ復元部36と、元データBおよび送信分割データDD(1)〜DD(3)をネットワークNを介して送受信するデータ送受信部37とを備えている。   As a function realized by the data originality ensuring program P3, the dividing device 6 generates, for example, a hash value H that can uniquely identify the original data B from the original data B stored in the memory 10, and will be described later. A hash value generation unit 32 that generates the hash values h1 to h3, and a secret sharing method (secret sharing method different from the first and second embodiments) S described below for data including the original data B and the hash value H The divided data (hereinafter also referred to as a divided data main body) D (1) to D (3) (in this embodiment, the number of divisions is 3) is generated by dividing the generated data, and the divided data main body D (1 ) To D (3), header information, and divided data composed of hash values h1 to h3 generated from the entire content of the divided data body and the header information (hereinafter referred to as transmission divided data). (B) a divided data generating unit 33 for generating DD (1) to DD (3), and a random number generating unit 34 for generating random data used when generating the divided data bodies D (1) to D (3). The hash values h1 to h3 are regenerated from the divided data bodies D (1) to D (3) acquired from the storage servers 3a1 to 3a3 and the header information, and the hash value H is regenerated from the restored original data B. And a hash value confirmation unit 35 that confirms the authenticity of the data, and an original data restoration unit that generates the original data B and the hash value H from the divided data bodies D (1) to D (3) using the secret sharing method S 36 and a data transmission / reception unit 37 that transmits and receives the original data B and the transmission divided data DD (1) to DD (3) via the network N.

各保管サーバ3a1〜3a3は、演算処理部であるCPU、このCPUに接続され該CPUおよびネットワークN間の通信を可能にするインタフェース、CPUに接続されたデータ入力用の入力部およびCPUに接続されたメモリおよびハードディスク等の記憶装置をそれぞれ備えている。   Each of the storage servers 3a1 to 3a3 is connected to a CPU which is an arithmetic processing unit, an interface connected to the CPU and enabling communication between the CPU and the network N, an input unit for data input connected to the CPU, and the CPU. And storage devices such as a memory and a hard disk.

次に、本実施の形態に係わるデータ原本性確保システム4の全体処理を図6および図7を用いて説明する。ここで、図6は、本実施の形態におけるデータ原本性確保用プログラムP3に基づくデータ原本性確保処理を示すフローチャートであり、図7は、図6に示すデータ原本性確保処理のデータシーケンスである。   Next, the entire process of the data originality ensuring system 4 according to the present embodiment will be described with reference to FIGS. Here, FIG. 6 is a flowchart showing a data originality ensuring process based on the data originality ensuring program P3 in the present embodiment, and FIG. 7 is a data sequence of the data originality ensuring process shown in FIG. .

図6および図7に示すように、利用者が保管したい元データBを指定し、端末5から分割装置6に該元データBを送信すると、分割装置6は、データ原本性確保用プログラムP3に従って動作し、ハッシュ値生成部32の機能として、メモリ10に記憶された、原本性を確保して保管したい元データBをメモリ10から読み込み、読み込んだ元データBを、所定のハッシュ関数を用いてその元データBのハッシュ値Hを生成する(ステップS101,S102)。   As shown in FIGS. 6 and 7, when the user specifies the original data B that the user wants to store and transmits the original data B from the terminal 5 to the dividing device 6, the dividing device 6 follows the data originality ensuring program P3. As a function of the hash value generation unit 32, the original data B, which is stored in the memory 10 and is to be stored with the originality secured, is read from the memory 10, and the read original data B is read using a predetermined hash function. A hash value H of the original data B is generated (steps S101 and S102).

このハッシュ値Hは、その元データBが1ビットでも変更されると全く異なる値を示す性質、すなわち、元データBをユニークに識別できる性質を有している。   This hash value H has the property of showing a completely different value when the original data B is changed even by 1 bit, that is, the property of uniquely identifying the original data B.

次いで、分割装置6は、分割データ生成部33の機能として、生成したハッシュ値Hを含む元データBを秘密分散法Sを用いて3つのデータ(分割データ)D(1)〜D(3)に分割する(ステップS103)。そして、各分割データD(i)(i=1,2,3)について、図8に示す形式のデータ、即ち、ハッシュ値hi(i=1,2,3)、データ分割に関する管理情報を含むヘッダ情報Ai(i=1,2,3)、および分割データD(i)(i=1,2,3)から構成される送信分割データDD(i)を生成する(ステップS104,S105)。   Next, the dividing device 6 uses the secret sharing method S to convert the original data B including the generated hash value H into three data (divided data) D (1) to D (3) as a function of the divided data generation unit 33. (Step S103). Each piece of divided data D (i) (i = 1, 2, 3) includes data in the format shown in FIG. 8, that is, hash value hi (i = 1, 2, 3), and management information related to data division. Transmission division data DD (i) composed of header information Ai (i = 1, 2, 3) and division data D (i) (i = 1, 2, 3) is generated (steps S104 and S105).

ここで、ハッシュ値hiは、ハッシュ値生成部32の機能として、ヘッダ情報Aiおよび分割データD(i)を合わせた内容全体から、所定のハッシュ関数を用いて生成されるものである。尚、ヘッダ情報Aiのデータ識別子Ai1には、本実施の形態の秘密分散法Sにより分割されたデータであることを示す情報、バージョン情報Ai2には、データフォーマットのバージョンを識別する情報、およびヘッダサイズAi3には、元データサイズから分割データサイズまでの領域の合計データの長さを示す情報が格納されるようになっている。また、元データサイズAi4は、元データ(ハッシュ値Hを含む元データB)の長さを示す情報、分割数Ai5には、データの分割数(本実施の形態においては3)を示す情報、および処理単位ビット長Ai6には、秘密分散法Sによる分割処理において用いられる後述する処理単位ビット長を示す情報が格納されるようになっている。また、乱数データサイズAi7には、秘密分散法Sによる分割処理において用いられる乱数データの長さを示す情報、分割データタイプAi8には、いくつ目の分割データであるかを示す情報(例えば、3分割の場合は、分割データがD(1),D(2),D(3)のいずれかであるかを示す情報)、および分割データサイズAi9には、分割データD(i)の長さを示す情報が格納されるようになっている。   Here, the hash value hi is generated as a function of the hash value generation unit 32 from the entire content including the header information Ai and the divided data D (i) using a predetermined hash function. The data identifier Ai1 of the header information Ai is information indicating that the data is divided by the secret sharing method S of the present embodiment, the version information Ai2 is information identifying the version of the data format, and the header In the size Ai3, information indicating the total data length of the area from the original data size to the divided data size is stored. The original data size Ai4 is information indicating the length of the original data (original data B including the hash value H), the division number Ai5 is information indicating the number of data divisions (3 in the present embodiment), In the processing unit bit length Ai6, information indicating a processing unit bit length (described later) used in the division processing by the secret sharing method S is stored. The random data size Ai7 includes information indicating the length of random data used in the division processing by the secret sharing method S, and the divided data type Ai8 includes information indicating the number of divided data (for example, 3 In the case of division, information indicating whether the divided data is D (1), D (2), or D (3)) and the divided data size Ai9 include the length of the divided data D (i). Is stored.

そして、分割装置6は、データ送受信部37の機能として、作成した送信分割データDD(1)〜DD(3)を保管サーバ3a1〜3a3にネットワークNを介してそれぞれ送信する(ステップS106)。   Then, the dividing device 6 transmits the created transmission divided data DD (1) to DD (3) to the storage servers 3a1 to 3a3 via the network N as functions of the data transmitting / receiving unit 37 (step S106).

各保管サーバ3a1〜3a3は、ネットワークNを介して送信されてきた送信分割データDD(1)〜DD(3)を、それぞれのハードディスク等の記憶装置に記憶する(ステップS107)。   Each of the storage servers 3a1 to 3a3 stores the transmission divided data DD (1) to DD (3) transmitted via the network N in a storage device such as a hard disk (step S107).

このようにして、元データBをそのハッシュ値Hを含んで分割した分割データD(1)〜D(3)、ヘッダ情報A1〜A3、およびハッシュ値h1〜h3から構成される送信分割データDD(1)〜DD(3)をそれぞれ保管サーバ3a1〜3a3に保管することができる。   In this way, transmission divided data DD composed of divided data D (1) to D (3) obtained by dividing the original data B including the hash value H, header information A1 to A3, and hash values h1 to h3. (1) to DD (3) can be stored in the storage servers 3a1 to 3a3, respectively.

次に、保管サーバ3a1〜3a3に保管された送信分割データDD(1)〜DD(3)を取り出す場合には、利用者が取り出したい元データBを指定し、端末5から分割装置6に取り出し指示を送信すると、分割装置6は、送信分割データDD(1)〜DD(3)のダウンロード要求を保管サーバ3a1〜3a3にそれぞれ送信する(ステップS108,S109)。   Next, when the transmission divided data DD (1) to DD (3) stored in the storage servers 3a1 to 3a3 are taken out, the original data B that the user wants to take out is specified and taken out from the terminal 5 to the dividing device 6. When the instruction is transmitted, the dividing device 6 transmits download requests for the transmission divided data DD (1) to DD (3) to the storage servers 3a1 to 3a3, respectively (steps S108 and S109).

各保管サーバ3a1〜3a3は、送信されてきたダウンロード要求に応じて、それぞれのハードディスク等の記憶装置に保管された各送信分割データDD(1)〜DD(3)を各記憶装置から読み出し、読み出した各送信分割データDD(1)〜DD(3)をネットワークNを介して分割装置6に送信する(ステップS110)。   Each of the storage servers 3a1 to 3a3 reads out each read divided data DD (1) to DD (3) stored in a storage device such as a hard disk from each storage device in response to the transmitted download request. Each transmission division data DD (1) to DD (3) is transmitted to the division device 6 via the network N (step S110).

分割装置6は、データ原本性確保用プログラムP3に従って動作し、ハッシュ値確認部35の機能として、ネットワークNを介して送信されてきた送信分割データDD(1)〜DD(3)を受信し、受信した送信分割データDD(1)〜DD(3)の分割データ本体D(1)〜D(3)およびヘッダ情報A1〜A3からハッシュ値h1’〜h3’を再生成する(ステップS111)。そして、再生成されたハッシュ値h1’〜h3’と受信した送信分割データDD(1)〜DD(3)のハッシュ値h1〜h3とを比較して一致するか否かを確認する(ステップS112)。これにより、各保管サーバ3a1〜3a3から取得したデータの内容が欠落したり、改竄されていないことを確認することができる。   The dividing device 6 operates according to the data originality ensuring program P3, receives the transmission divided data DD (1) to DD (3) transmitted via the network N as a function of the hash value confirmation unit 35, The hash values h1 ′ to h3 ′ are regenerated from the divided data bodies D (1) to D (3) and the header information A1 to A3 of the received transmission divided data DD (1) to DD (3) (step S111). Then, the regenerated hash values h1 ′ to h3 ′ are compared with the hash values h1 to h3 of the received transmission divided data DD (1) to DD (3) to confirm whether or not they match (step S112). ). Thereby, it is possible to confirm that the contents of the data acquired from the storage servers 3a1 to 3a3 are missing or not tampered with.

次に、ステップS112でハッシュ値が一致する送信分割データDD(1)〜DD(3)が少なくとも2以上ある場合には、元データ復元部36の機能として、分割データD(1)〜D(3)およびヘッダ情報A1〜A3に基づいて秘密分散法Sにより元データB1およびハッシュ値H1をそれぞれ復元する(ステップS113)。これは、保管サーバ3a1〜3a3から分割データを取得できない場合やハッシュ値の一致が確認できない場合があっても、データが取得でき、ハッシュ値の一致が確認できたものがデータの復元に必要な個数以上(本実施の形態においては、後述するように2つ以上)あった場合には、後続処理(データ復元処理)を行うものである。   Next, when there are at least two transmission divided data DD (1) to DD (3) having the same hash value in step S112, the original data restoring unit 36 functions as the divided data D (1) to D ( 3) and the original data B1 and the hash value H1 are respectively restored by the secret sharing method S based on the header information A1 to A3 (step S113). This is because data can be acquired even if the divided data cannot be acquired from the storage servers 3a1 to 3a3 or the hash value match cannot be confirmed. When the number is greater than or equal to the number (in the present embodiment, two or more as will be described later), subsequent processing (data restoration processing) is performed.

次いで、分割装置6は、ハッシュ値確認部35の機能として、復元した元データB1からハッシュ値H2を再生成し、再生成したハッシュ値H2と復元したハッシュ値H1とを比較して一致するか否かを確認する(ステップS114,S115)。これにより、復元された元データBおよびハッシュ値Hの内容が欠落したり、改竄されていないことを確認することができる。また、ヘッダ情報A1〜A3および分割データ本体D(1)〜D(3)の内容を改竄した後、改竄した内容に合わせてハッシュ値h1〜h3を算出し、書き換えた場合においても(この場合、ステップS112においてハッシュ値は一致してしまう)、改竄を検出をすることが可能となる。   Next, the dividing device 6 regenerates the hash value H2 from the restored original data B1 as a function of the hash value confirmation unit 35, and compares the regenerated hash value H2 with the restored hash value H1 to determine whether they match. It is confirmed whether or not (steps S114 and S115). Thereby, it can be confirmed that the contents of the restored original data B and the hash value H are missing or have not been tampered with. Further, even when the contents of the header information A1 to A3 and the divided data bodies D (1) to D (3) are falsified, the hash values h1 to h3 are calculated according to the falsified contents and rewritten (in this case) In step S112, the hash values match), and tampering can be detected.

そして、分割装置6は、復元された元データBをネットワークNを介して端末5に送信し、これにより、端末5は元データBを取得する(ステップS116,S117)。   Then, the dividing device 6 transmits the restored original data B to the terminal 5 via the network N, whereby the terminal 5 acquires the original data B (steps S116 and S117).

ここで、本実施の形態における秘密分散法Sについて詳しく説明する。尚、以後の説明における元データとは、データ分割の対象となる元データ、即ち、本実施の形態においては、ハッシュ値生成部33で生成されたハッシュ値Hを含む元データBをいう。   Here, the secret sharing method S in the present embodiment will be described in detail. Note that the original data in the following description refers to original data that is a target of data division, that is, original data B that includes the hash value H generated by the hash value generation unit 33 in the present embodiment.

本実施形態における元データの分割および復元では、元データを所望の処理単位ビット長に基づいて所望の分割数の分割データに分割するが、この場合の処理単位ビット長は任意の値に設定することができ、元データを処理単位ビット長毎に区分けして、この元部分データから分割部分データを分割数より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)個の乱数部分データとして乱数発生部34から生成される。すなわち、乱数は処理単位ビット長毎に区分けされて、処理単位ビット長のビット長を有する(分割数-1)個の乱数部分データとして生成される。更に、元データは処理単位ビット長に基づいて所望の分割数の分割データに分割されるが、この分割データの各々も(分割数-1)個の元部分データの各々に対応して処理単位ビット長のビット長を有する(分割数-1)個の分割部分データとして生成される。すなわち、分割データの各々は、処理単位ビット長毎に区分けされて、処理単位ビット長のビット長を有する(分割数-1)個の分割部分データとして生成される。   The random numbers described above are also generated from the random number generator 34 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.

なお、以下の説明では、上述した元データ、乱数、分割データ、分割数および処理単位ビット長をそれぞれB,R,D,nおよびbで表すとともに、また複数のデータや乱数などのうちの1つを表わす変数としてi(=1〜n)およびj(=1〜n-1)を用い、(分割数n-1)個の元部分データ、(分割数n-1)個の乱数部分データ、および分割数n個の分割データDのそれぞれのうちの1つをそれぞれB (j),R(j)およびD(i)で表記し、更に各分割データD(i)を構成する複数(n-1)の分割部分データをD(i,j)で表記するものとする。すなわち、B (j)は、元データBの先頭から処理単位ビット長毎に区分けして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 B, 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 B (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, B (j) represents the j-th original partial data when the original data B is numbered in order from the top by dividing the processing unit bit length from the top.

この表記を用いると、元データ、乱数データ、分割データとこれらをそれぞれ構成する元部分データ、乱数部分データ、分割部分データは、次のように表記される。   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.

元データB=(n-1)個の元部分データB(j)
=B(1),B(2),…,B(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)
本実施形態は、上述したように処理単位ビット長毎に区分けされる複数の部分データに対して元部分データと乱数部分データの排他的論理和演算(XOR)を行って、詳しくは、元部分データと乱数部分データの排他的論理和演算(XOR)からなる定義式を用いて、元データの分割を行うことを特徴とするものであり、上述したデータ分割処理に多項式や剰余演算を用いる方法(第1および第2の実施の形態における方法)に比較して、コンピュータ処理に適したビット演算である排他的論理和(XOR)演算を用いることにより高速かつ高性能な演算処理能力を必要とせず、大容量のデータに対しても簡単な演算処理を繰り返して分割データを生成することができるとともに、また分割データの保管に必要となる記憶容量も分割数に比例した倍数の容量よりも小さくすることができる。更に、任意に定めた一定の長さ毎にデータの先頭から順に演算処理を行うストリーム処理により分割データが生成される。
Original data B = (n-1) original partial data B (j)
= B (1), B (2), ..., B (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)
In the present embodiment, an exclusive OR operation (XOR) of the original partial data and the random number partial data is performed on the plurality of partial data divided for each processing unit bit length as described above. The original data is divided using a definition formula consisting of exclusive OR (XOR) of data and random number partial data, and a method of using a polynomial or a remainder operation for the above data division processing Compared to the (methods in the first and second embodiments), the use of exclusive OR (XOR) operation, which is a bit operation suitable for computer processing, requires high-speed and high-performance processing capability. In addition, it is possible to generate divided data by repeating simple arithmetic processing even for large-capacity data, and the storage capacity required for storing the divided data is a multiple that is proportional to the number of divisions. It can be made smaller than that. Further, the divided data is generated by stream processing in which calculation processing is performed in order from the top of the data for each predetermined fixed length.

なお、本実施形態で使用する排他的論理和演算(XOR)は、以下の説明では、「*」なる演算記号で表すことにするが、この排他的論理和演算のビット毎の演算規則での各演算結果は下記のとおりである。   In the following description, the exclusive OR operation (XOR) used in the present embodiment is expressed by an operation symbol “*”. However, in the bitwise operation rule of this exclusive OR operation, Each calculation result 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
It is mathematically proved that (a * b) * c = a * (b * c) holds.

また、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”.

次に、フローチャートなどの図面も参照して、本実施の形態における秘密分散法Sの作用について説明するが、この説明の前に図9乃至12のフローチャートに示す記号の定義について説明する。   Next, the operation of the secret sharing method S according to the present embodiment will be described with reference to drawings such as flowcharts. Prior to this description, definitions of symbols shown in the flowcharts of FIGS. 9 to 12 will be described.

(1)Πi=1nA(i)は、A(1)*A(2)*…A(n)を意味するものとする。   (1) Πi = 1nA (i) 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 (n-1) × (n-1) matrix U [n-1, n-1] × (P [n-1, n-1]) ^ It is defined as the value of i row and k column 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
(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 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
(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 2014142651

(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 2014142651

(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
p (i, j) = 1 when i = n, 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 2014142651

(5)A,Bをn×n行列とすると、A×Bとは行列AとBの積を意味するものとする。行列の成分同士の計算規則は通常の数学で用いるものと同じである。
Figure 2014142651

(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
となる性質がある。
(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 2014142651

次に、図9に示すフローチャートおよび図10および図11に示す具体的データなどを参照して、まず元データBの分割処理について説明する。
Figure 2014142651

Next, with reference to the flowchart shown in FIG. 9, the specific data shown in FIGS. 10 and 11, etc., the original data B dividing process will be described first.

まず、元データBを分割装置6に供給する(図9のステップS201)。なお、本例では、元データBは、16ビットの「10110010 00110111」とする。   First, the original data B is supplied to the dividing device 6 (step S201 in FIG. 9). In this example, the original data B is 16 bits “10110010 00110111”.

次に、利用者は端末5から分割数nとして3を分割装置6に指示する(ステップS203)。この分割数nは分割装置6において予め定められた値を用いてもよい。なお、この分割数n=3に従って分割装置6で生成される3個の分割データをD(1),D(2),D(3)とする。この分割データD(1),D(2),D(3)は、すべて元データのビット長と同じ16ビット長のデータである。   Next, the user instructs the dividing device 6 to 3 as the division number n from the terminal 5 (step S203). A predetermined value in the dividing device 6 may be used as the division number n. Note that the three pieces of divided data generated by the dividing device 6 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.

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

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

次に、ステップS209では、変数m、すなわち上述した整数倍を意味する変数mを0に設定する。本例のように、元データBが処理単位ビット長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 B 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.

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

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

元データB=B(1),B(2)
第1の元部分データB(1)=「10110010」
第2の元部分データB(2)=「00110111」
次に、変数jを1から2(=分割数n-1)まで変えて、乱数部分データR(2×m+j)に乱数発生部34から発生する8ビットの長さの乱数を設定し、これにより乱数Rを処理単位ビット長で区分けした2(分割数n-1)個の乱数部分データR(1),R(2)を次のように生成する(ステップS215)。
Original data B = B (1), B (2)
First original partial data B (1) = “10110010”
Second original partial data B (2) = “00110111”
Next, the variable j is changed from 1 to 2 (= number of divisions n-1), and a random number of 8 bits generated from the random number generator 34 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」
なお、各分割部分データ(i,j)を生成するためのステップS217に示す定義式は、本例のように分割数n=3の場合には、具体的には図11に示す表に記載されているものとなる。図11に示す表から、分割部分データD(1,1)を生成するための定義式はB(1)*R(1)*R(2)であり、D(1,2)の定義式はB(2)*R(1)*R(2)であり、D(2,1)の定義式はB(1)*R(1)であり、D(2,2)の定義式はB(2)*R(2)であり、D(3,1)の定義式はR(1)であり、D(3,2)の定義式はR(2)である。また、図11に示す表には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"
Note that the definition formula shown in step S217 for generating each divided partial data (i, j) is specifically described in the table shown in FIG. 11 when the number of divisions n = 3 as in this example. Will be. From the table shown in FIG. 11, the definition formula for generating the divided partial data D (1,1) is B (1) * R (1) * R (2), and the definition formula for D (1,2) Is B (2) * R (1) * R (2), D (2,1) is defined as B (1) * R (1), and D (2,2) is defined as B (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. 11 also describes general definition formulas for arbitrary integers when m> 0.

このように整数倍を意味する変数m=0の場合について分割データDを生成した後、次に変数mを1増やし(ステップS219)、ステップS211に戻り、変数m+1に該当する元データBの17ビット以降について同様の分割処理を行おうとするが、本例の元データBは16ビットであり、17ビット以降のデータは存在しないので、ステップS211からステップS221に進み、上述したように生成した分割データD(1),D(2),D(3)を分割装置6のメモリ10に一時保存して、分割処理を終了する。なお、このように保管された分割データD(1),D(2),D(3)はそれぞれ単独では元データが推測できない。   In this way, after the divided data D is generated for the variable m = 0 meaning an integer multiple, the variable m is then incremented by 1 (step S219), and the process returns to step S211 to return to the original data B corresponding to the variable m + 1 However, since the original data B in this example is 16 bits and there is no data after 17 bits, the process proceeds from step S211 to step S221 and is generated as described above. The divided data D (1), D (2), and D (3) are temporarily stored in the memory 10 of the dividing device 6, and the dividing process is terminated. The divided data D (1), D (2), D (3) stored in this way cannot be estimated as original data alone.

ここで、上述した図9のフローチャートのステップS217における定義式による分割データの生成処理、具体的には分割数n=3の場合の分割データの生成処理について詳しく説明する。   Here, the divided data generation process based on the definition formula in step S217 in the flowchart of FIG. 9 described above, specifically, the divided data generation process when the number of divisions 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)=B(1)*Q(1,1,1)*Q(1,1,2)
D(1,2)=B(2)*Q(2,1,1)*Q(2,1,2)
D(2,1)=B(1)*Q(1,2,1)*Q(1,2,2)
D(2,2)=B(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)を具体的に求める。
これはc(j,i,k)を2×2行列であるU[2,2]×(P[2,2])^(j-1)のi行k列の値としたとき下記のように定義される。
D (1,1) = B (1) * Q (1,1,1) * Q (1,1,2)
D (1,2) = B (2) * Q (2,1,1) * Q (2,1,2)
D (2,1) = B (1) * Q (1,2,1) * Q (1,2,2)
D (2,2) = B (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.
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のときは
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 2014142651

j=2のときは
Figure 2014142651

When j = 2

Figure 2014142651

これを用いると、各分割部分データD(i,j)は次のような定義式により生成される。
Figure 2014142651

If this is used, each division | segmentation partial data D (i, j) is produced | generated by the following definitional expressions.

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

図10は、上述したように16ビットの元データBを8ビットの処理単位ビット長に基づいて分割数n=3で3分割する場合の各データと定義式および各分割部分データから元データを復元する場合の計算式などを示す表である。   FIG. 10 shows the original data from the respective data and definition formulas and the divided partial data when the 16-bit original data B 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)は、上述した定義式B(1)*R(1)*R(2)で定義され、第2の分割部分データD(1,2)は定義式B(2)*R(1)*R(2)で定義される。なお、この定義式の一般形は、D(1,j)に対してはB(j)*R(j)*R(j+1)であり、D(1,j+1)に対してB(j+1)*R(j)*R(j+1)である(jは奇数とする)。定義式に従って計算すると、D(1,1)は00110110, D(1,2)は10110011となるので、D(1)は00110110 10110011である。なお、定義式の一般形は、図11にまとめて示されている。   First, for the first divided data D (1), the first divided partial data D (1,1) is defined by the definition formula B (1) * R (1) * R (2) described above. Then, the second divided partial data D (1, 2) is defined by the definition formula B (2) * R (1) * R (2). The general form of this defining formula is B (j) * R (j) * R (j + 1) for D (1, j), and for D (1, j + 1) B (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)はB(1)*R(1)で定義され、D(2,2)はB(2)*R(2)で定義される。この定義式の一般形は、D(2,j)に対してはB(j)*R(j)であり、D(2,j+1)に対してはB(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 B (1) * R (1), and D (2,2) is B (2) * R ( Defined in 2). The general form of this definition is B (j) * R (j) for D (2, j) and B (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.

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

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

まず、分割装置6に元データBの復元を要求する。分割装置6は、この元データBの復元要求を受け取ると、この元データBに対応する分割データD(1),D(2),D(3)が保管サーバ3a1,3a2,3a3に保管されていることを記憶しているので、ネットワークNを介して保管サーバ3a1,3a2,3a3から分割データD(1),D(2),D(3)を取得し、この取得した分割データD(1),D(2),D(3)から次に示すように元データBを復元する。   First, it requests the dividing device 6 to restore the original data B. When receiving the restoration request for the original data B, the dividing device 6 stores the divided data D (1), D (2), D (3) corresponding to the original data B in the storage servers 3a1, 3a2, 3a3. Therefore, the divided data D (1), D (2), D (3) are acquired from the storage servers 3a1, 3a2, 3a3 via the network N, and the acquired divided data D ( 1) Restore original data B from D (2) and D (3) as follows.

まず、分割部分データD(2,1),D(3,1)から第1の元部分データB(1)を次のように生成することができる。   First, the first original partial data B (1) can be generated from the divided partial data D (2,1) and D (3,1) as follows.

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

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

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

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

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

次に、D(1),D(3)を取得してBを復元する場合には、次のようになる。
D(1,1)*D(3,1)*D(3,2)=(B(1)*R(1)*R(2))*R(1)*R(2) =B(1)*(R(1)*R(1))*(R(2)*R(2))
=B(1)*0*0
=B(1)
であるから、D(1,1)*D(3,1)*D(3,2)を計算すれば、B(1)が求まる。具体的に計算すると、D(1,1)は00110110, D(3,1)は10110001, D(3,2)は00110101なので、B(1)は10110010となる。
Next, when D (1) and D (3) are acquired and B is restored, it is as follows.
D (1,1) * D (3,1) * D (3,2) = (B (1) * R (1) * R (2)) * R (1) * R (2) = B ( 1) * (R (1) * R (1)) * (R (2) * R (2))
= B (1) * 0 * 0
= B (1)
Therefore, B (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, B (1) is 10110010.

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

一般に、jを奇数として、
D(1,j)*D(3,j)*D(3,j+1)=(B(j)*R(j)*R(j+1))*R(j)*R(j+1)
=B(j)*(R(j)*R(j))*(R(j+1)*R(j+1))
=B(j)*0*0
=B(j)
であるから、D(1,j)*D(3,j)*D(3,j+1)を計算すれば、B(j)が求まる。
In general, let j be an odd number
D (1, j) * D (3, j) * D (3, j + 1) = (B (j) * R (j) * R (j + 1)) * R (j) * R (j +1)
= B (j) * (R (j) * R (j)) * (R (j + 1) * R (j + 1))
= B (j) * 0 * 0
= B (j)
Therefore, B (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)=(B(j+1)*R(j)*R(j+1))*R(j)*R(j+1)
=B(j+1)*(R(j)*R(j))*(R(j+1)*R(j+1))
=B(j+1)*0*0
=B(j+1)
であるから、D(1,j+1)*D(3,j)*D(3,j+1)を計算すれば、B(j+1)が求まる。
In general, j is an odd number,
D (1, j + 1) * D (3, j) * D (3, j + 1) = (B (j + 1) * R (j) * R (j + 1)) * R (j) * R (j + 1)
= B (j + 1) * (R (j) * R (j)) * (R (j + 1) * R (j + 1))
= B (j + 1) * 0 * 0
= B (j + 1)
Therefore, if D (1, j + 1) * D (3, j) * D (3, j + 1) is calculated, B (j + 1) is obtained.

次に、D(1),D(2)を取得してBを復元する場合には、次のようになる。   Next, when D (1) and D (2) are acquired and B is restored, it is as follows.

D(1,1)*D(2,1)=(B(1)*R(1)*R(2))*(B(1)*R(1))
=(B(1)*B(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) = (B (1) * R (1) * R (2)) * (B (1) * R (1))
= (B (1) * B (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)=(B(2)*R(1)*R(2))*(B(2)*R(2))
=(B(2)*B(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) = (B (2) * R (1) * R (2)) * (B (2) * R (2))
= (B (2) * B (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)を使用してB(1),B(2)を求める。   Using these R (1) and R (2), B (1) and B (2) are obtained.

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

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

一般に、jを奇数として、
D(1,j)*D(2,j)=(B(j)*R(j)*R(j+1))*(B(j)*R(j))
=(B(j)*B(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) = (B (j) * R (j) * R (j + 1)) * (B (j) * R (j))
= (B (j) * B (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)=(B(j+1)*R(j)*R(j+1))*(B(j+1)*R(j+1))
=(B(j+1)*B(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) = (B (j + 1) * R (j) * R (j + 1)) * (B (j + 1) * R (j +1))
= (B (j + 1) * B (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)を使用してB(j),B(j+1)を求める。   Using these R (j) and R (j + 1), B (j) and B (j + 1) are obtained.

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

また同様に、
D(2,j+1)*R(j+1)=(B(j+1)*R(j+1))*R(j+1)
=B(j+1)*(R(j+1)*R(j+1))
=B(j+1)*0
=B(j+1)
であるからD(2,j+1)*R(j+1)を計算すればB(j+1)が求まる。
Similarly,
D (2, j + 1) * R (j + 1) = (B (j + 1) * R (j + 1)) * R (j + 1)
= B (j + 1) * (R (j + 1) * R (j + 1))
= B (j + 1) * 0
= B (j + 1)
Therefore, B (j + 1) can be obtained by calculating D (2, j + 1) * R (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のビット長を元データBのビット長よりも短いものを使用して、元データの分割処理を行うことができる。   As another method of the present invention, the original data can be divided by using the random number R having a bit length shorter than that of the original data B.

すなわち、上述した乱数RはB,D(1),D(2),D(3)と同じビット長のデータとしたが、乱数Rを元データBのビット長より短いものとし、分割データD(1),D(2),D(3)の生成にこの短いビット長の乱数Rを繰り返し用いるものである。   That is, the random number R described above is data having the same bit length as B, D (1), D (2), D (3), but the random number R is shorter than the bit length of the original data B, 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を繰り返して保管しておく必要はない。例えば、元データBのビット長を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 B 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となる。従って、保管すべきデータの総量は先の実施形態では元データBの3倍であるが、この実施形態では2.1倍とすることができる。   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 B in the previous embodiment, but can be 2.1 times in this embodiment.

乱数Rにおける繰り返し部分のデータの長さは、短すぎると、D(1)またはD(2)のみからRが解読されてしまうことも考えられるため、適切な長さを選択することが望ましい。   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.

次に、図12に示すフローチャートを参照して、分割数がnで、処理単位ビット長がbである場合の一般的な分割処理について説明する。   Next, a general division process when the number of divisions is n and the processing unit bit length is b will be described with reference to the flowchart shown in FIG.

まず、元データBを分割装置6に供給する(ステップS401)。また、利用者は端末5から分割数n(n≧3である任意の整数)を分割装置6に指示する(ステップS403)。この分割数nは分割装置6において予め定められた値を用いてもよい。処理単位ビット長bを決定する(ステップS405)。なお、bは0より大きい任意の整数である。次に、元データBのビット長がb×(n-1)の整数倍であるか否かを判定し、整数倍でない場合には、元データBの末尾を0で埋める(ステップS407)。また、整数倍を意味する変数mを0に設定する(ステップS409)。   First, the original data B is supplied to the dividing device 6 (step S401). Further, the user instructs the dividing device 6 from the terminal 5 about the division number n (an arbitrary integer satisfying n ≧ 3) (step S403). A predetermined value in the dividing device 6 may be used as the division number n. The processing unit bit length b is determined (step S405). Note that b is an arbitrary integer greater than 0. Next, it is determined whether or not the bit length of the original data B is an integer multiple of b × (n−1). If it is not an integer multiple, the end of the original data B is filled with 0 (step S407). Further, a variable m meaning an integer multiple is set to 0 (step S409).

次に、元データBのb×(n-1)×m+1ビット目からb×(n-1)ビット分のデータが存在するか否かが判定される(ステップS411)。この判定の結果、データが存在しない場合は、ステップS421に進むことになるが、今の場合は、ステップS409で変数mは0に設定された場合であるので、データが存在するため、ステップS413に進む。   Next, it is determined whether or not data of b × (n−1) bits from the b × (n−1) × m + 1 bit of the original data B exists (step S411). As a result of this determination, if there is no data, the process proceeds to step S421. However, in this case, since the variable m is set to 0 in step S409, the data exists, so step S413. Proceed to

ステップS413では、変数jを1からn-1まで変えて、元データBのb×(n-1)×m+j-1)+1ビット目からbビット分のデータを元部分データB((n-1)×m+j)に設定する処理を繰り返し、これにより元データBを処理単位ビット長bで区分けした(n-1)個の元部分データB(1),B(2),…B(n-1)が生成される。   In step S413, the variable j is changed from 1 to n-1, and b × (n−1) × m + j−1) +1 bit of the original data B is converted into the original partial data B ( (n-1) × m + j) is repeated, whereby (n-1) pieces of original partial data B (1), B (2) obtained by dividing the original data B by the processing unit bit length b , ... B (n-1) is generated.

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

次に、ステップS417において、変数iを1からnまで変えるとともに、更に各変数iにおいて変数jを1からn-1まで変えながら、ステップS417に示す分割データを生成するための定義式により複数の分割データD(i)の各々を構成する各分割部分データD(i,(n-1)×m+j)を生成する。この結果、次に示すような分割データDが生成される。   Next, in step S417, while changing the variable i from 1 to n and further changing the variable j from 1 to n-1 in each variable i, a plurality of definition expressions for generating the divided data shown in step S417 are used. Each divided partial data D (i, (n−1) × m + j) constituting each of the divided data D (i) is generated. As a result, the following divided data D is generated.

分割データD
=n個の分割データD(i)=D(1),D(2),…D(n)
第1の分割データD(1)
=n-1個の分割部分データD(1,j)=D(1,1),D(1,2),…D(1,n-1)
第2の分割データD(2)
=n-1個の分割部分データD(2,j)=D(2,1),D(2,2),…D(2,n-1)
… … …
… … …
第nの分割データD(n)
=n-1個の分割部分データD(n,j)=D(n,1),D(n,2),…D(n,n-1)
このように変数m=0の場合について分割データDを生成した後、次に変数mを1増やし(ステップS419)、ステップS411に戻り、変数m=1に該当する元データBのb×(n-1)ビット以降について同様の分割処理を行う。最後にステップS411の判定の結果、元データBにデータがなくなった場合、ステップS411からステップS421に進み、上述したように生成した分割データD(1), …,D(n)を分割装置6のメモリ10に一時保存して、分割処理を終了する。
Split data D
= n pieces of divided data D (i) = D (1), D (2), ... D (n)
First divided data D (1)
= n-1 divided partial data D (1, j) = D (1,1), D (1,2), ... D (1, n-1)
Second divided data D (2)
= n-1 divided partial data D (2, j) = D (2,1), D (2,2), ... D (2, n-1)
………
………
N-th divided data D (n)
= n-1 divided partial data D (n, j) = D (n, 1), D (n, 2), ... D (n, n-1)
As described above, after generating the divided data D for the variable m = 0, the variable m is then incremented by 1 (step S419), and the process returns to step S411 to return b × (n of the original data B corresponding to the variable m = 1. -1) Similar division processing is performed for the bits after the bit. Finally, if there is no data in the original data B as a result of the determination in step S411, the process proceeds from step S411 to step S421, and the divided data D (1),. Are temporarily stored in the memory 10, and the dividing process is terminated.

以上述べたように、本実施形態によれば、元データBを、元データBのハッシュ値Hを含めて秘密分散法Sにより複数の分割データD(1)〜D(3)に分割し、また、分割データD(1)〜D(3)、ヘッダ情報A1〜A3、並びに分割データD(1)〜D(3)およびヘッダ情報A1〜A3から算出されたハッシュ値h1〜h3から構成される送信分割データDD(1)〜DD(3)を生成し、該送信分割データDD(1)〜DD(3)を保管サーバ3a1〜3a3にそれぞれ保管しているため、その送信分割データDD(1)〜DD(3)の内の少なくとも一部が改竄された場合でも、改竄データを含む送信分割データDD(1)〜DD(3)から、その送信分割データDD(1)〜DD(3)に対する改竄の有無を容易に確認することができる。   As described above, according to the present embodiment, the original data B is divided into a plurality of divided data D (1) to D (3) by the secret sharing method S including the hash value H of the original data B, Moreover, it consists of the hash values h1 to h3 calculated from the divided data D (1) to D (3), the header information A1 to A3, and the divided data D (1) to D (3) and the header information A1 to A3. Transmission division data DD (1) to DD (3) and the transmission division data DD (1) to DD (3) are stored in the storage servers 3a1 to 3a3, respectively. 1) to DD (3), even if at least a part of the transmission divided data DD (1) to DD (3) including the falsified data is tampered with, the transmission divided data DD (1) to DD (3) ) Can be easily checked for tampering Can.

この結果、例えば元データBを長期間に亘って保管する場合であっても、電子署名のように、電子証明書の再発行処理および電子署名付きデータ作成処理を繰り返し行うことなく、簡易に元データBを保管することができる。   As a result, for example, even when the original data B is stored for a long period of time, it is possible to easily perform the original data without repeating the reissue process of the electronic certificate and the data creation process with the electronic signature as in the case of the electronic signature. Data B can be stored.

また、本実施形態によれば、元データBを送信分割データDD(1)〜DD(3)に分割して保管サーバ3a1〜3a3に保管しているため、例えば、送信分割データDD(1)〜DD(3)の内の1つの分割データが改竄された場合でも、残りの分割データを用いて元データBを復元することができる。   Further, according to the present embodiment, the original data B is divided into the transmission divided data DD (1) to DD (3) and stored in the storage servers 3a1 to 3a3. Therefore, for example, the transmission divided data DD (1) Even when one of the divided data of ~ DD (3) is falsified, the original data B can be restored using the remaining divided data.

この結果、元データBの原本性をより確実に確保することができる
また、第1および第2の実施の形態における秘密分散法は、公開鍵暗号方式の秘密鍵の分割管理などで利用されており、比較的データ容量の小さいデータに対して実用的な方法であるが、本実施の形態における秘密分散法Sは、多項式演算・剰余演算などを含む多倍長整数の演算処理を必要としないので、大容量データを多数処理する場合においても簡単かつ迅速にデータの分割および復元を行うことができるという効果を得ることができる。
As a result, the originality of the original data B can be more reliably ensured. Further, the secret sharing method in the first and second embodiments is used for secret key division management of the public key cryptosystem. Although this is a practical method for data with a relatively small data capacity, the secret sharing method S in the present embodiment does not require arithmetic processing of multiple-precision integers including polynomial arithmetic and remainder arithmetic. Therefore, even when a large amount of large volume data is processed, it is possible to obtain an effect that data can be divided and restored easily and quickly.

なお、第1および第2の実施の形態では、元データBを分割した分割データD(1)〜D(4)を、クライアント2に対してネットワークNを介して接続された保管サーバ3a1〜3a4に保管し、第3の実施の形態では、元データBを分割した送信分割データDD(1)〜DD(3)を、分割装置6に対してネットワークNを介して接続された保管サーバ3a1〜3a3に保管するように構成したが、本発明はこの構成に限定されるものではない。   In the first and second embodiments, the storage servers 3a1 to 3a4 in which the divided data D (1) to D (4) obtained by dividing the original data B are connected to the client 2 via the network N. In the third embodiment, the transmission divided data DD (1) to DD (3) obtained by dividing the original data B are stored in the storage servers 3a1 to 3a1 connected to the dividing device 6 via the network N. Although it is configured to store in 3a3, the present invention is not limited to this configuration.

例えば、データ原本性確保システム1の変形例を図13に示す。   For example, a modification of the data originality ensuring system 1 is shown in FIG.

図13に示すように、変形例に係わるデータ原本性確保システム1Aは、クライアント側単独でのクライアントシステム25として構成されており、このクライアントシステム25は、クライアント2と、このクライアント2に対してLAN等を介して接続された互いにハードウェア的に独立した複数の保管用記憶装置20a1〜20a4とを備えている。   As shown in FIG. 13, the data originality ensuring system 1 </ b> A according to the modification is configured as a client system 25 alone on the client side, and the client system 25 is connected to the client 2 and the client 2 with a LAN. And a plurality of storage devices 20a1 to 20a4 that are independent of each other in hardware.

図13に示すようにデータ原本性確保システム1Aを構成しても、元データBを分割データD(1)〜D(4)として複数の保管用記憶装置20a1〜20a4に保管することができ、元データBの原本性を簡易かつ確実に確保しながら保管することができる。   Even if the data originality ensuring system 1A is configured as shown in FIG. 13, the original data B can be stored in the plurality of storage devices 20a1 to 20a4 as the divided data D (1) to D (4), The original data B can be stored while ensuring the originality of the original data B easily and reliably.

また、同様に、データ原本性確保システム4の変形例として、端末5、分割装置6、および保管サーバ3a1〜3a3をクライアント側単独でのクライアントシステムとして構成してもよいものである。   Similarly, as a modified example of the data originality ensuring system 4, the terminal 5, the dividing device 6, and the storage servers 3a1 to 3a3 may be configured as a client system alone on the client side.

さらに、上記実施の形態で説明した各システム構成は、あくまでも好適な一具体例を示したものであり、機能的に同一であるのならば、他のシステム構成、例えば、データ原本性確保システム1のシステム構成をデータ原本性確保システム4に示すようなシステム構成としてもよい。これは、データ原本性確保システム1のクライアント2の機能を端末5と分割装置6に機能分散したシステム構成とするものである。同様にして、例えば、データ原本性確保システム4のシステム構成をデータ原本性確保システム1に示すようなシステム構成としてもよい。これは、データ原本性確保システム4の端末5と分割装置6の機能を集約してクライアント2の機能とするものである。   Furthermore, each system configuration described in the above embodiment is merely a preferable specific example, and if it is functionally the same, other system configurations, for example, the data originality ensuring system 1 This system configuration may be a system configuration as shown in the data originality ensuring system 4. This is a system configuration in which the function of the client 2 of the data originality ensuring system 1 is distributed to the terminal 5 and the dividing device 6. Similarly, for example, the system configuration of the data originality ensuring system 4 may be a system configuration as shown in the data originality ensuring system 1. This is a function of the client 2 by integrating the functions of the terminal 5 and the dividing device 6 of the data originality ensuring system 4.

また、上記実施の形態、ならびにその変形例によれば、秘密分散法としてShamirの秘密分散法{(k、n)閾値法;但し、分割数を表すnを4とし、復元できる数を表すkを3とする}、および秘密分散法Sを用いたが、本発明はこの構成に限定されるものではなく、上記実施の形態で述べた秘密分散法以外の他の秘密分散法を用いることも可能である。   In addition, according to the above-described embodiment and its modification, Shamir's secret sharing method {(k, n) threshold method as a secret sharing method; provided that n representing the number of divisions is 4 and k represents the number that can be restored. And the secret sharing method S are used, but the present invention is not limited to this configuration, and other secret sharing methods other than the secret sharing method described in the above embodiment may be used. Is possible.

さらに、上記実施の形態、ならびにその変形例によれば、元データのユニークに識別できる識別データとしてハッシュ値を用いたが、ハッシュ値以外の識別データ、例えばパリティ、チェックサム(元データをブロックに分割し、分割されたブロックを数値とみなして全てのブロックを合計した値)等であってもよい。   Furthermore, according to the above-described embodiment and the modification thereof, the hash value is used as identification data that can uniquely identify the original data. However, identification data other than the hash value, for example, parity, checksum (original data in a block) It may be a value obtained by dividing, and regarding the divided blocks as numerical values, and adding up all the blocks.

1、1A、4…データ原本性確保システム
2…クライアント
3a1〜3a4…保管サーバ
5…端末
6…分割装置
10…メモリ
11…ハッシュ値生成部
13…分割データ生成部
15…元データ復元部
17…通信部
20a1〜20a4…保管用記憶装置
25…クライアントシステム
31、37…データ送受信部
32…ハッシュ値生成部
33…分割データ生成部
34…乱数発生部
35…ハッシュ値確認部
36…元データ復元部
37…データ送受信部
DESCRIPTION OF SYMBOLS 1, 1A, 4 ... Data originality ensuring system 2 ... Client 3a1-3a4 ... Storage server 5 ... Terminal 6 ... Dividing device 10 ... Memory 11 ... Hash value generation part 13 ... Divided data generation part 15 ... Original data restoration part 17 ... Communication unit 20a1 to 20a4 ... Storage device 25 ... Client system 31, 37 ... Data transmission / reception unit 32 ... Hash value generation unit 33 ... Divided data generation unit 34 ... Random number generation unit 35 ... Hash value confirmation unit 36 ... Original data restoration unit 37 ... Data transmitter / receiver

Claims (4)

データを、その原本性を確保して保管するデータ原本性確保システムであって、
前記データから、秘密分散法を用いて該データが復元できるn個(n≧3)の分割データを生成するデータ生成部と、
前記n個の分割データをそれぞれ記憶する複数の保管部と、を備え、
前記n個の分割データは、1個の分割データからは前記データが復元できず、m個(2≦m≦n−1)の分割データを組み合わせることにより前記データが復元可能であること
を特徴とするデータ原本性確保システム。
A data originality ensuring system for storing data while ensuring its originality,
A data generation unit that generates n (n ≧ 3) divided data from which the data can be restored using a secret sharing method;
A plurality of storage units each storing the n pieces of divided data,
The n pieces of divided data cannot be restored from one piece of divided data, and the data can be restored by combining m pieces (2 ≦ m ≦ n−1) of divided data. Data originality ensuring system.
請求項1記載のデータ原本性確保システムであって、
前記n個の分割データは、前記データと乱数データとの排他的論理和演算により生成されること
を特徴とするデータ原本性確保システム。
The data originality ensuring system according to claim 1,
The n pieces of divided data are generated by an exclusive OR operation between the data and random number data.
コンピュータシステムが行う、データを、その原本性を確保して保管するデータ原本性確保方法であって、
前記コンピュータシステムは、
生成されたn個(n≧3)の分割データをそれぞれ記憶する複数の保管部を備え、
前記データから、秘密分散法を用いて該データが復元できるn個の分割データを生成するデータ生成ステップと、
前記n個の分割データを、前記複数の保管部にそれぞれ記憶する保管ステップと、を行い、
前記n個の分割データは、1個の分割データからは前記データが復元できず、m個(2≦m≦n−1)の分割データを組み合わせることにより前記データが復元可能であること
を特徴とするデータ原本性確保方法。
A data originality securing method for storing data while ensuring its originality, performed by a computer system,
The computer system includes:
A plurality of storage units each storing the generated n pieces (n ≧ 3) of divided data;
A data generation step of generating n pieces of divided data from which the data can be restored using a secret sharing method;
Storing each of the n pieces of divided data in the plurality of storage units, and
The n pieces of divided data cannot be restored from one piece of divided data, and the data can be restored by combining m pieces (2 ≦ m ≦ n−1) of divided data. Data originality ensuring method.
コンピュータシステムを、
前記データから、秘密分散法を用いて該データが復元できるn個(n≧3)の分割データを生成するデータ生成部、および、
前記n個の分割データをそれぞれ記憶する複数の保管部として機能させ、
前記n個の分割データは、1個の分割データからは前記データが復元できず、m個(2≦m≦n−1)の分割データを組み合わせることにより前記データが復元可能であること
を特徴とする、データ原本性確保用プログラム。
Computer system,
A data generation unit that generates n (n ≧ 3) divided data from which the data can be restored using a secret sharing method; and
Function as a plurality of storage units for storing the n pieces of divided data,
The n pieces of divided data cannot be restored from one piece of divided data, and the data can be restored by combining m pieces (2 ≦ m ≦ n−1) of divided data. A data integrity program.
JP2014046667A 2003-04-15 2014-03-10 Data originality ensuring method and system, and data originality ensuring program Expired - Lifetime JP5749368B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014046667A JP5749368B2 (en) 2003-04-15 2014-03-10 Data originality ensuring method and system, and data originality ensuring program

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2003110876 2003-04-15
JP2003110876 2003-04-15
JP2014046667A JP5749368B2 (en) 2003-04-15 2014-03-10 Data originality ensuring method and system, and data originality ensuring program

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2013013208A Division JP5592513B2 (en) 2003-04-15 2013-01-28 Data originality ensuring method and system, and data originality ensuring program

Publications (2)

Publication Number Publication Date
JP2014142651A true JP2014142651A (en) 2014-08-07
JP5749368B2 JP5749368B2 (en) 2015-07-15

Family

ID=43593781

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2010196212A Expired - Lifetime JP5396352B2 (en) 2003-04-15 2010-09-01 Data originality ensuring method and system, and data originality ensuring program
JP2013013208A Expired - Lifetime JP5592513B2 (en) 2003-04-15 2013-01-28 Data originality ensuring method and system, and data originality ensuring program
JP2014046667A Expired - Lifetime JP5749368B2 (en) 2003-04-15 2014-03-10 Data originality ensuring method and system, and data originality ensuring program

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2010196212A Expired - Lifetime JP5396352B2 (en) 2003-04-15 2010-09-01 Data originality ensuring method and system, and data originality ensuring program
JP2013013208A Expired - Lifetime JP5592513B2 (en) 2003-04-15 2013-01-28 Data originality ensuring method and system, and data originality ensuring program

Country Status (1)

Country Link
JP (3) JP5396352B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5860557B1 (en) * 2015-02-06 2016-02-16 日本電信電話株式会社 Secret disclosure method, secret disclosure system, secret disclosure device, and program

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5396352B2 (en) * 2003-04-15 2014-01-22 エヌ・ティ・ティ・コミュニケーションズ株式会社 Data originality ensuring method and system, and data originality ensuring program
JP5214748B2 (en) * 2011-01-25 2013-06-19 株式会社東芝 Power consumption calculation system, energy management device and program
JP5712797B2 (en) * 2011-06-03 2015-05-07 大日本印刷株式会社 Content playback system, playback device, and semiconductor media
EP2887575B1 (en) 2013-12-18 2020-09-02 Laurenz Vorderwülbecke Distributed data file storage method and apparatus

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60247683A (en) * 1984-05-23 1985-12-07 三菱電機株式会社 Data protection managing system
JPH0816104A (en) * 1994-06-28 1996-01-19 Internatl Business Mach Corp <Ibm> Method and device for verifying information security with dispersed collator
JPH11134259A (en) * 1997-10-29 1999-05-21 Oki Electric Ind Co Ltd Management method and device for information
WO2000045358A1 (en) * 1999-01-28 2000-08-03 Yutaka Yasukura Method for securing safety of electronic information
JP2001086110A (en) * 1999-09-13 2001-03-30 Toyo Commun Equip Co Ltd Packet communication system for encrypted information
JP2001285277A (en) * 2000-04-03 2001-10-12 Toshiba Information Systems (Japan) Corp Encryption generator, electronic device using encryption generating program, storage medium, and encrypted text decoder
JP2002135247A (en) * 2000-10-20 2002-05-10 Sangikyou:Kk Digital information storing method
JP2004213650A (en) * 2002-12-19 2004-07-29 Ntt Communications Kk Data fragmentation method, data fragmentation device and computer program
JP2004336702A (en) * 2003-04-15 2004-11-25 Ntt Communications Kk Data originality securing method and system, and program for securing data originality
JP2011015429A (en) * 2003-04-15 2011-01-20 Ntt Communications Kk Data originality securing method and system, and program for securing data originality

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3027988B2 (en) * 1991-01-31 2000-04-04 松下電器産業株式会社 Secret key generation method based on identification information
JP3604737B2 (en) * 1994-07-29 2004-12-22 キヤノン株式会社 Secret information processing method in communication system having a plurality of information processing devices and communication system thereof
JP4097773B2 (en) * 1998-04-20 2008-06-11 オリンパス株式会社 Digital image editing system
JP2002217891A (en) * 2001-01-22 2002-08-02 Toshiba Corp Program and system for secrecy dispersion management
JP2003032239A (en) * 2001-04-26 2003-01-31 Fujitsu Ltd Contents distribution system tamper-resistant apparatus, server, computer program and contents distributing method

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60247683A (en) * 1984-05-23 1985-12-07 三菱電機株式会社 Data protection managing system
JPH0816104A (en) * 1994-06-28 1996-01-19 Internatl Business Mach Corp <Ibm> Method and device for verifying information security with dispersed collator
JPH11134259A (en) * 1997-10-29 1999-05-21 Oki Electric Ind Co Ltd Management method and device for information
WO2000045358A1 (en) * 1999-01-28 2000-08-03 Yutaka Yasukura Method for securing safety of electronic information
JP2001086110A (en) * 1999-09-13 2001-03-30 Toyo Commun Equip Co Ltd Packet communication system for encrypted information
JP2001285277A (en) * 2000-04-03 2001-10-12 Toshiba Information Systems (Japan) Corp Encryption generator, electronic device using encryption generating program, storage medium, and encrypted text decoder
JP2002135247A (en) * 2000-10-20 2002-05-10 Sangikyou:Kk Digital information storing method
JP2004213650A (en) * 2002-12-19 2004-07-29 Ntt Communications Kk Data fragmentation method, data fragmentation device and computer program
JP2004336702A (en) * 2003-04-15 2004-11-25 Ntt Communications Kk Data originality securing method and system, and program for securing data originality
JP2011015429A (en) * 2003-04-15 2011-01-20 Ntt Communications Kk Data originality securing method and system, and program for securing data originality
JP2013102526A (en) * 2003-04-15 2013-05-23 Ntt Communications Kk Method and system for securing data originality, and program for securing data originality

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
尾形 わかは,岡田 光司,黒澤 馨: ""ネットワークシステムと暗号:電子化社会の危機管理 秘密分散共有法"", COMPUTER TODAY, vol. 第15巻,第4号, JPN6013063486, 1 July 1998 (1998-07-01), JP, pages 18 - 23, ISSN: 0002902316 *
池野 信一、小山 謙二, "現代暗号理論", vol. 初版第6刷, JPN6015005310, 15 November 1997 (1997-11-15), JP, pages 235 - 236, ISSN: 0003005659 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5860557B1 (en) * 2015-02-06 2016-02-16 日本電信電話株式会社 Secret disclosure method, secret disclosure system, secret disclosure device, and program

Also Published As

Publication number Publication date
JP5749368B2 (en) 2015-07-15
JP2013102526A (en) 2013-05-23
JP5396352B2 (en) 2014-01-22
JP2011015429A (en) 2011-01-20
JP5592513B2 (en) 2014-09-17

Similar Documents

Publication Publication Date Title
JP4610176B2 (en) Data originality ensuring method and system, and data originality ensuring program
TWI810410B (en) Systems and methods for efficient and secure processing, accessing and transmission of data via a blockchain network
JP5194094B2 (en) Data division method, data division apparatus, and computer program
JP5749368B2 (en) Data originality ensuring method and system, and data originality ensuring program
EP1876748A2 (en) Privacy-preserving concatenation of strings
JP4676695B2 (en) Data division method, data division apparatus, and computer program
JP2006060722A (en) Certification method for authenticity of electronic document and publication system thereof
Shatilov et al. Solution for secure private data storage in a cloud
JP2006018850A (en) Data storing system
JP4856909B2 (en) Data division / restoration system, terminal device, data division / restoration method, and computer program
JP4789536B2 (en) Data division apparatus, data division method, and computer program
JP2011175578A (en) System and method for data backup
JP4619045B2 (en) Data concealment device, data concealment method, and data concealment program
Thakur et al. Data integrity techniques in cloud computing: an analysis
US11809588B1 (en) Protecting membership in multi-identification secure computation and communication
Warhade et al. Enhancing Cloud Security Using Multicloud Architecture and Device Based Identity
Sugumar et al. Enhancing Data Security in Cloud Computing Environment.

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140924

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150415

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150513

R150 Certificate of patent or registration of utility model

Ref document number: 5749368

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

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

EXPY Cancellation because of completion of term