JP5530025B2 - データ分割装置およびデータ分割プログラム - Google Patents

データ分割装置およびデータ分割プログラム Download PDF

Info

Publication number
JP5530025B2
JP5530025B2 JP2013500690A JP2013500690A JP5530025B2 JP 5530025 B2 JP5530025 B2 JP 5530025B2 JP 2013500690 A JP2013500690 A JP 2013500690A JP 2013500690 A JP2013500690 A JP 2013500690A JP 5530025 B2 JP5530025 B2 JP 5530025B2
Authority
JP
Japan
Prior art keywords
data
divided
secret
matrix
restoration
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2013500690A
Other languages
English (en)
Other versions
JPWO2013080290A1 (ja
Inventor
勉 松本
武暢 清藤
敦 佐藤
昭輝 鴨志田
敏文 新谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nomura Research Institute Ltd
Yokohama National University NUC
Original Assignee
Nomura Research Institute Ltd
Yokohama National University NUC
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 Nomura Research Institute Ltd, Yokohama National University NUC filed Critical Nomura Research Institute Ltd
Application granted granted Critical
Publication of JP5530025B2 publication Critical patent/JP5530025B2/ja
Publication of JPWO2013080290A1 publication Critical patent/JPWO2013080290A1/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Description

本発明は、電子データを秘匿化する技術に関し、特に、重要データを秘密分散技術により複数の非重要データに分割して秘匿化する際のデータ分割装置およびデータ分割プログラムに適用して有効な技術に関するものである。
情報システムを有する企業等においては、情報漏洩などの情報セキュリティ事故を防止するため、機密性の高いデータなどの重要なデータを保護する手段を講じる必要がある。これに対し、これらを実現するための様々な手段も提案されている。
重要データを保護するための手段として、例えば、企業等が重要データをセキュリティ対策が多重に施されたデータセンターに保管することが考えられる。しかしながら、外部からアクセス可能なプライベートなデータセンターを独自に構築・運用するのは技術面・コスト面等で多大な負荷を要し、容易に実現できるものではない。
これに対して第三者が運用してサービスとして外部に提供しているデータセンターを利用することも考えられる。しかし、第三者が運用管理するデータセンターに自社の重要データを保管することはセキュリティ面で高いリスクが伴う。ましてや近年利用が拡大しているクラウドコンピューティング環境における仮想データセンターや仮想サーバに重要データを保管することは非常にリスクが高いことから、重要データを取り扱う業務を行う情報システムをクラウドコンピューティング環境を利用して構築するということがなかなか普及しない一因ともなっている。
一方、重要データを保管する際に、データを秘匿化したり改竄を防止したりする手段を講じて保管することも行われている。一般的には、暗号鍵を用いて重要データを暗号化して保管することが行われているが、この場合、暗号化されたデータには重要データの情報が全て含まれている。従って、例えば暗号化データが第三者に取得されたような場合、何らかの理由で当該第三者に暗号鍵も取得、解読された場合は容易に重要データが復元されてしまう。また、暗号鍵を取得されなくとも、暗号鍵が有限長であることから、理論上は有限回数の試行によって暗号化されたデータから重要データが復元されてしまう可能性を有する。
これに対し、重要データを強固に秘匿化する手法として、いわゆる秘密分散の技術も用いられている。秘密分散では、重要データを、それだけでは意味のない(重要データを復元・推測できない)複数の非重要データに分割・分散することで、一部の非重要データが第三者に取得された場合でも、第三者による重要データの復元を理論上も不可能とすることができる。
秘密分散の手法としては種々のものが提案されているが、例えば、非特許文献1に記載されているような(k,n)閾値秘密分散の手法が従来から用いられている。(k,n)閾値秘密分散では、秘匿すべき秘密データを、n個の分割データに分割する。このn個の分割データのうち、少なくともk個(k≦n)以上を集めることにより、これらの分割データから秘密データを復元することができる。一方で、集めた分割データの数がk個未満の場合は、これらの分割データから秘密データを復元したり内容を推測したりする(秘密データに関する情報を得る)ことができないというものである。
従って、例えばいくつかの分割データが第三者により不正に集められたような場合であっても、その数がk個未満である場合には秘密データが復元・推測されることがなく、秘密データを強固に秘匿化することができる。また、例えばいくつかの分割データが毀損・滅失等したような場合であっても、その数が(n−k)個以下である(k個以上の分割データが残っている)場合には秘密データを復元することができるため、秘密データの可用性を高めることもできる。
この(k,n)閾値秘密分散の手法では、一般的に、多項式演算や剰余演算を用いて秘密データの分割や復元の演算が行われる。しかしながら、これらの演算をコンピュータでの情報処理によって行う場合、演算負荷が大きくなってしまうため、秘密データのデータ量が大きくなるとCPU(Central Processing Unit)のリソースを大量に消費し、処理性能が悪化するという問題を有している。これに対し、(k,n)閾値秘密分散の処理を、コンピュータでのビット演算に適したビット単位の排他的論理和(eXclusive OR:以下では「XOR」と記載し、「+」の演算子で表す)演算により実現するという手法も提案されている。
例えば、特開2011−41326号公報(特許文献1)には、元データ(秘密データ)を所定の長さ毎に区切って、複数の元部分データ(秘密部分データ)を生成し、複数の秘密部分データの各々に対応して、秘密データと同じ長さの乱数または秘密データより短い長さの乱数を前記所定の長さ毎に区切って、複数の乱数部分データを生成し、所定の定義式に基づく、秘密部分データと乱数部分データとの排他的論理和演算を行い、複数の分割データを生成することにより、比較的簡単な処理により秘密データを効率的に分割する技術が開示されている。
さらに、一般的な(k,n)閾値秘密分散の手法では、秘密データのサイズと、秘密分散を行って生成されたn個の各分割データのサイズとがそれぞれ同じとなるため、秘密分散を行った後のn個の分割データ全体のデータ量は、秘密データのデータ量のn倍となってしまい、データを保管する際の記憶容量やネットワーク帯域などのリソースを浪費してしまうという問題も有している。これに対し、実システムでの利用を考慮して、秘密分散によって生成される分割データのデータ量を小さくするための技術も提案されている。
例えば、非特許文献2に記載されているような、いわゆるランプ型と呼ばれる(k,L,n)閾値秘密分散の手法が提案されている。ランプ型の秘密分散法では、データの秘匿性に対する安全性の条件を緩める代わりに、生成されたn個の各分割データのサイズをそれぞれ秘密データのサイズの1/Lに縮小することができる。すなわち、n個の分割データ全体のデータ量を、(k,n)閾値秘密分散の場合の1/Lに縮小することができる。
なお、ランプ型の秘密分散の場合、n個の分割データのうち、少なくともk個以上を集めることにより秘密データを復元することができる点は、(k,n)閾値秘密分散の場合と同様である。一方で、集められた分割データの数が(k−L)個以下(1≦L≦k)である場合には秘密データが復元・推測されることはないものの、k個未満であっても(k−L)個より多い数の分割データが集められた場合には、部分的に秘密データの情報が得られてしまうという特性を有し、この点で(k,n)閾値秘密分散とは異なる。なお、L=1の場合は、(k,n)閾値秘密分散と同じことになる(いわゆるパーフェクト型)。
特開2011−41326号公報
A.Shamir、"How to Share a Secret"、Communications of the ACM、vol.22、No.11、pp.612-613、1979 山本博資、"(k,L,n)しきい値秘密分散システム"、電子通信学会論文誌、vol.168-A、No.9、pp.945-952、1985
近年、ノート型PC(Personal Computer)やタブレット型PC、いわゆるスマートフォンなどの携帯可能な情報処理端末が広く利用されるに従って、これらの端末自体の盗難や紛失等に伴う情報漏洩のリスクが高まっている。これに対して、端末内の重要データを含むデータを外部のサーバ等に保管することで端末の紛失等に伴う情報漏洩のリスクを低減することが考えられる。このとき、重要データをそのまま外部のサーバ等に保管するのではなく、例えば、上述した秘密分散の技術を利用して重要データを非重要データに分割・分散して分割データとし、これを外部のサーバ等に分散保管することで、例えば、クラウドコンピューティング環境における仮想データセンターや仮想サーバなどに保管するような場合においても情報漏洩のリスクを低減させることが可能である。
しかしながら、これらの携帯端末では、デスクトップ型のPC等に比べて演算処理能力に余裕がないことが通常であり、また、分割データを保管する先のサーバ等にアクセスするためのネットワークについても、無線通信など、帯域幅に余裕がないものであることが多い。従って、秘密分散の処理には、特に効率的かつ高速な処理が求められ、また、生成される分割データのデータ量も小さいものであることが求められる。
この点、上述の特許文献1に記載された技術では、秘密部分データと乱数部分データとのXOR演算により複数の分割データを生成することで、処理の効率化・高速化を図るとともに、ランプ型の閾値秘密分散ではないものの、n個の分割データ全体のデータ量を一般的な(k,n)閾値秘密分散法の場合よりも小さくすることが可能である。
特許文献1に記載された技術では、XOR演算の対象として、複数の秘密部分データの各々に対応して、原則として秘密データと同じ長さの乱数から秘密部分データと同じ長さに区切った秘密部分データと同数の乱数部分データを必要とする。一方で、秘密データより短い長さの乱数に対しては、同様に秘密部分データと同じ長さに区切って乱数部分データを生成した上で、足りない分は既に生成されている乱数部分データを再利用することで、複数の秘密部分データの各々に対応させるものとしている。このとき、生成される分割データの1つを乱数部分データのみからなるようにし、当該分割データを生成する際に、再利用している乱数部分データの保持を省略して重複を回避することで、乱数部分データのみからなる分割データのデータ量を小さくすることを可能とする。
しかしながら、特許文献1に記載された手法では、n個の分割データ全体でのデータ量は小さくなるものの、実際にサイズが小さくなるのは乱数部分データのみからなる1つの分割データのみであり、他の分割データのサイズは秘密データと同じサイズとなる。従って、全体でのデータ量の縮小効果はそれほど大きくならず、また、他の分割データについては送信・保管する際のリソースの消費量が全く削減されないことになる。また、乱数部分データのみからなる分割データがサイズから識別可能となってしまうというリスクが生じるなど、実システムでの利用に際しては課題を有する。
一方で、上述したランプ型の(k,L,n)閾値秘密分散の手法によれば、安全性の条件は若干緩められるものの、n個の各分割データのサイズを1/Lに縮小して、全体でのデータ量を1/Lに縮小することができる。また、実際の演算処理についても、秘密データを分割したデータと乱数とのXOR演算とすることにより、コンピュータでの演算処理による分割データの生成を効率化・高速化する手法が提案されている。
しかしながら、XOR演算により(k,L,n)閾値秘密分散を行う際の具体的な計算方法(実際の計算式)としては種々のものが考えられ、計算式次第で処理性能は大きく変わる。また、秘密データから秘密分散により分割データを生成する際の処理性能だけでなく、複数の分割データから秘密データを復元する際の処理性能についても合わせて、全体としての処理の効率化・高速化が求められる。
そこで本発明の目的は、秘密データを(k,L,n)ランプ型閾値秘密分散によりn個の分割データに分割して秘匿化する際、およびk個以上の分割データから(k,L,n)ランプ型閾値秘密分散により秘密データを復元する際のXOR演算の処理を全体として効率化および高速化することを可能とするデータ分割装置およびデータ分割プログラムを提供することにある。本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
本発明の代表的な実施の形態によるデータ分割装置は、秘密データを(k,L,n)ランプ型閾値秘密分散によりn個の分割データに分割して、n個の前記分割データをそれぞれ異なる記憶装置に分散保管するデータ分割装置であって、以下の特徴を有するものである。
すなわち、データ分割装置は、前記秘密データから抽出した長さSの単位秘密データを複数の秘密部分データに分割し、前記秘密部分データと同じ長さで、前記秘密部分データの数の半数の乱数部分データを生成し、前記秘密部分データ、前記乱数部分データ、および前記秘密部分データのうちの1個以上と前記乱数部分データのうちの1個から分割部分データを生成するためのXOR演算を定義した分割行列に基づいて、複数の前記分割部分データを生成し、それぞれ異なる前記乱数部分データを含むXOR演算により生成された複数の前記分割部分データを連結してn種類の長さS/Lの単位分割データを生成し、前記単位分割データを種類毎に連結してn個の分割データを生成する分割処理部を有することを特徴とする。
また、本発明は、コンピュータを上記のようなデータ分割装置として機能させるプログラムにも適用することができる。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
本発明の代表的な実施の形態によれば、秘密データを(k,L,n)ランプ型閾値秘密分散によりn個の分割データに分割して秘匿化する際、およびk個以上の分割データから(k,L,n)ランプ型閾値秘密分散により秘密データを復元する際のXOR演算の処理を全体として効率化および高速化することが可能となる。
本発明の一実施の形態であるデータ分割装置の構成例について概要を示した図である。 本発明の一実施の形態における秘密データから秘密分散により分割データを生成する分割処理の流れの例について概要を示したフローチャートである。 本発明の一実施の形態における秘密データから(3,2,4)ランプ型閾値秘密分散により4つの分割データを生成する処理の例について概要を示した図である。 本発明の一実施の形態における秘密部分データと乱数部分データから分割部分データを算出する際の例について概要を示した図である。 本発明の一実施の形態における分割データから秘密分散により秘密データを生成する復元処理の流れの例について概要を示したフローチャートである。 本発明の一実施の形態における3つの分割データから(3,2,4)ランプ型閾値秘密分散により秘密データを生成する処理の例について概要を示した図である。 本発明の一実施の形態における分割データ(a、b、c)から秘密データを復元するために用いる復元行列を分割行列から得る処理の例を示した図である。 本発明の一実施の形態における分割データ(a、b、d)から秘密データを復元するために用いる復元行列を分割行列から得る処理の例を示した図である。 本発明の一実施の形態における分割データ(a、c、d)から秘密データを復元するために用いる復元行列を分割行列から得る処理の例を示した図である。 本発明の一実施の形態における分割データ(b、c、d)から秘密データを復元するために用いる復元行列を分割行列から得る処理の例を示した図である。 本発明の一実施の形態における分割部分データ(a1〜a3、b1〜b3、c1〜c3)から秘密部分データを算出する際の例について概要を示した図である。 本発明の一実施の形態における分割部分データ(a1〜a3、b1〜b3、d1〜d3)から秘密部分データを算出する際の例について概要を示した図である。 本発明の一実施の形態における分割部分データ(a1〜a3、c1〜c3、d1〜d3)から秘密部分データを算出する際の例について概要を示した図である。 本発明の一実施の形態における分割部分データ(b1〜b3、c1〜c3、d1〜d3)から秘密部分データを算出する際の例について概要を示した図である。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
本発明の一実施の形態であるデータ分割装置は、秘密データを(k,L,n)ランプ型閾値秘密分散によりn個の分割データに分割して、これらの分割データをそれぞれ異なるサーバ等の記憶装置に分散保管するものである。これにより、分割データの紛失・盗難・不正取得等に対する秘密データの秘匿性を高めるとともに、分割データの毀損・滅失等に対する秘密データの可用性を高めることを可能とする。また、ランプ型の秘密分散を用いることから、安全性の条件は若干緩められるものの、n個の各分割データのサイズを1/Lに縮小して、全体でのデータ量を(k,n)閾値秘密分散の場合と比べて1/Lに縮小する。これにより、各分割データを送信・保管する際のネットワーク帯域や記憶領域などのリソース使用量を低減させる。
また、本実施の形態では、(k,L,n)ランプ型閾値秘密分散において、処理を効率化・高速化してCPUリソースの使用量を低減させるため、公知の技術と同様に、コンピュータでのビット演算に適するよう、秘密データを分割した秘密部分データと、これと同じ長さの乱数部分データとのXOR演算に基づいて分割データを生成する。さらに、本実施の形態では、具体的に、(3,2,4)ランプ型閾値秘密分散において、XOR演算を行うための計算式および計算手順を調整して、秘密データから秘密分散により複数の分割データを生成する際、および複数の分割データから秘密データを復元する際の処理性能を全体として向上させる。
<システム構成>
図1は、本発明の一実施の形態であるデータ分割装置の構成例について概要を示した図である。データ分割装置100は、例えば、ユーザが利用するPCや携帯端末などの情報処理端末、もしくはこれら複数の情報処理端末が接続されるファイルサーバ等、ユーザにより秘密分散の対象の秘密データ400が作成され、もしくはこれを保持する一般的なコンピュータ機器からなる。
データ分割装置100は、インターネット等のネットワーク300を介して複数のサーバ200に接続可能となっている。サーバ200の数は、(k,L,n)ランプ型閾値秘密分散におけるn個(本実施の形態では(3,2,4)ランプ型閾値秘密分散であるため4個)以上であることが望ましい。これらのサーバ200は、それぞれ、データ分割装置100によって秘密データ400から秘密分散により生成されネットワーク300を介して送信されてきた分割データ410を、HDD(Hard Disk Drive)等の記憶装置に保管することができるファイルサーバやストレージ機器等からなる。
データ分割装置100は、上述した機能を実現するため、例えば、図示しないOS(Operating System)上で稼働するソフトウェアプログラムとして実装される分割処理部110、分散管理部120、復元処理部130、およびインタフェース部140などの各部を有する。
分割処理部110は、例えば、後述するインタフェース部140を介してユーザからセキュアな保管を指示された秘密データ400から、後述するXORによる演算式を定義した分割行列111、および分割中間式112に基づいて、所定の手順に従って(k,L,n)ランプ型閾値秘密分散(本実施の形態では(3,2,4)ランプ型閾値秘密分散)により各サーバ200に分散保管するn個(本実施の形態では4個)の分割データ410を生成する。また、上記のXORによる演算の際に用いる乱数を生成する乱数生成部113を有する。なお、乱数生成の手法は特に限定されず、所定の長さ以上の乱数を生成することができるものであれば、任意の公知の技術を用いることができる。
分散管理部120は、例えば、分割処理部110により秘密データ400から生成された各分割データ410について、設定情報122の設定内容に基づく所定の条件に従って各サーバ200に送信して分散保管するとともに、各分割データ410がいずれのサーバ200に保管されているかの対応に係る情報を分散状況121に記録して管理する。設定情報122には、例えば、分散保管先となる各サーバ200に対するアクセス情報(IPアドレスやホスト名等)、n個(本実施の形態では4個)より多数のサーバ200が存在する場合にn個のサーバ200を選択するための基準や条件(例えばサーバ200の優先順位や順序付けされたリスト、ローテーションする際の方法等)などを予め設定しておくことができる。
また、分散管理部120は、後述する復元処理部130による秘密データ400の復元の際に、復元処理部130からの要求に基づいて、分散状況121の内容、および設定情報122の設定内容に基づく所定の条件に従って、各サーバ200から、秘密データ400を復元するためのm個の分割データ410を収集して復元処理部130に受け渡す。
なお、収集する分割データ410の個数mの値は、秘密データ400を復元するために必要な分割データ410の数k以上である必要があり、また、n個全ての分割データ410を収集するものとしてもよい(すなわちk≦m≦n。本実施の形態ではm=3もしくは4)。設定情報122には、例えば、mの値や、m<nである場合に、対象となるm個のサーバ200を選択するための基準や条件、障害等により対象のサーバ200から分割データ410を取得できなかった場合の代替となるサーバ200の決定方法などを予め設定しておくことができる。
なお、サーバ200の障害等により、分割データ410の分散保管時にn個の分割データ410のうちいずれかを各サーバ200に保管できなかった場合や、分割データ410の収集時にk個以上収集できなかった場合は、ユーザに対してエラーを応答するようにしてもよい。また、各サーバ200との間で分割データ410の送受信を行う際に、データ分割装置100および各サーバ200がそれぞれ分割データ410に対して所定の暗号化を施した上で送受信することで、情報漏洩のリスクをさらに低減させるようにしてもよい。
復元処理部130は、例えば、インタフェース部140を介してユーザから参照や編集等の利用を指示された秘密データ400について、これを復元するために必要な数以上の分割データ410を分散管理部120に要求して取得する。さらに、取得した分割データ410から、後述するXORによる演算式を定義した復元行列131、および復元中間式132に基づいて、所定の手順に従って(k,L,n)ランプ型閾値秘密分散(本実施の形態では(3,2,4)ランプ型閾値秘密分散)により秘密データ400を復元する。
インタフェース部140は、データ分割装置100(もしくはデータ分割装置100に対する図示しないクライアント端末)における画面表示等のユーザインタフェースやデータの送受信などの入出力機能を有する。ユーザは、例えば、一般的なOSが有するファイル管理用の画面等を利用して、データ分割装置100の機能を利用することができる。
例えば、ファイル管理用の画面においてユーザが重要データを特定のフォルダ等にドラッグ&ドロップなどの簡易な操作により移動する。これをトリガとして、分割処理部110および分散管理部120によって、自動的に当該重要データを秘密データ400としてn個(本実施の形態では4個)の分割データ410を生成し、各分割データ410をユーザに意識させずに各サーバ200に分散保管することができる。なお、このとき秘密データ400はデータ分割装置100(およびデータ分割装置100に対するユーザのクライアント端末)から削除するが、ファイル管理用の画面上では、ユーザに意識させないよう、例えば、秘密データ400に対応するダミーファイル等を作成して残しておく。
また、例えば、ユーザは、ファイル管理用の画面において特定のフォルダにて管理されている秘密データ400のダミーファイル等に対して操作を行うことで、秘密データ400に対する参照や編集等の操作を行うことができる。すなわち、ダミーファイル等に対する操作をトリガとして、分散管理部120および復元処理部130によって、ダミーファイル等に対応する秘密データ400について、自動的に各サーバ200からm個(k≦m≦n、本実施の形態では3個もしくは4個)の分割データ410を収集し、秘密データ400を復元してユーザに利用可能とすることができる。
<処理フロー(分割処理)>
図2は、データ分割装置100の分割処理部110における、秘密データ400から秘密分散により分割データ410を生成する分割処理の流れの例について概要を示したフローチャートである。なお、本実施の形態では、上述したように、(3,2,4)ランプ型閾値秘密分散により秘密分散処理を行うものとする。また、図3は、秘密データ400から(3,2,4)ランプ型閾値秘密分散により4個の分割データ410を生成する処理の例について概要を示した図である。
インタフェース部140を介してユーザから秘密分散の対象となる重要データが指定されると、分割処理部110は、まず、当該重要データを秘密データ400とし、秘密データ400の先頭から所定の長さSの単位秘密データを抽出する(S01)。この単位秘密データは、XOR演算による秘密分散処理を行う際の処理単位となるデータであり、本実施の形態では、長さSは6の倍数ビットの任意の長さであるものとする。なお、秘密データ400の長さがSに満たない場合は、例えば、秘密データ400に対してSに満たない分をゼロ等の所定のデータでパディングして長さSの単位秘密データを得るものとする。
次に、抽出した単位秘密データ401を分割して秘密部分データを6個生成する(S02)。具体的には、図3に示すように、秘密データ400から抽出した長さSの単位秘密データ401を6等分して、長さS/6の秘密部分データ402を6個(s1〜s6)生成する。
さらに、乱数生成部113により、秘密部分データ402と同じ長さ(S/6)の乱数部分データ403を秘密部分データ402の数の半数である3個生成する(S03)。具体的には、図3に示すように、秘密部分データ402と同じ長さS/6の乱数部分データ403を3個(r1〜r3)生成する。乱数部分データ403の生成に際しては、例えば、乱数生成部113がr1〜r3の3個をそれぞれ個別に生成してもよいし、乱数生成部113がS/2より長い乱数を1個生成して、分割処理部110がこれを区切ってS/6の長さの乱数を3個抽出するようにしてもよい。
次に、後述する分割部分データを生成するためのXOR演算を行う際に用いるために予め定義された複数の分割中間式112のそれぞれについて、秘密部分データ402(s1〜s6)と乱数部分データ403(r1〜r3)に基づいてXOR演算を行って値を算出しておく(S04)。この分割中間式112は、後述する分割部分データを生成するためのXOR演算の全体において、複数回繰り返し現れるXOR演算の式を分割中間式112として抽出したものである。この分割中間式112の値を予め計算して保持しておき、後述する分割行列111に基づくXOR演算の際に計算結果を利用することで、内容が重複するXOR演算を極力廃し、処理の効率化・高速化を図る。なお、分割中間式112の詳細については後述する。
次に、秘密部分データ402(s1〜s6)と乱数部分データ403(r1〜r3)に基づいて、分割行列111に定義された内容に基づいてXOR演算を行い、12個の分割部分データ412を生成する(S05)。具体的には、図3に示すように、XOR演算を定義した分割行列111と、乱数部分データ403(r1〜r3)および秘密部分データ402(s1〜s6)を要素とする9行1列の秘密データ行列114との乗算によって、それぞれが長さS/6の12個の分割部分データ412(a1〜a3、b1〜b3、c1〜c3、d1〜d3)を得る。
すなわち、分割行列111と秘密データ行列114との乗算によって得られる以下の各式によって12個の分割部分データ412を得る。
a1=r1+s1+s2 …式1
a2=r2+s3+s4 …式2
a3=r3+s5+s6 …式3
b1=r1+s3+s5 …式4
b2=r2+s1+s3+s5+s6 …式5
b3=r3+s2+s4+s6 …式6
c1=r1+s3+s4+s6 …式7
c2=r2+s2+s3+s4+s5 …式8
c3=r3+s1+s3+s3+s5+s6 …式9
d1=r1+s1+s2+s3+s5 …式10
d2=r2+s1+s4+s5+s6 …式11
d3=r3+s2+s4+s5 …式12
なお、上記各式における演算子の“+”はXORを意味する。また、実際の計算の際には、後述するように、上記各式において各分割中間式112と一致するXOR演算の部分に、ステップS04で予め計算しておいた各分割中間式112の値を代入することで、全体でのXOR演算の数を低減させる。
次に、12個の分割部分データ412から4個(4種類)の単位分割データを生成する(S06)。具体的には、図3に示すように、a1〜a3の分割部分データ412を連結して、長さS/2の単位分割データ411aを生成する。同様に、b1〜b3、c1〜c3、d1〜d3の分割部分データ412をそれぞれ連結して、単位分割データ411b〜dを生成する。次に、生成した4個の単位分割データ411をそれぞれ対応する種類の分割データ410の末尾等に連結する(S07)。具体的には、図3に示すように、長さS/2の単位分割データ411a〜dを、それぞれ分割データA(410a)〜分割データD(410d)の末尾に連結する。なお、連結すべき分割データ410が存在しない場合は、各単位分割データ411自身をそれぞれ分割データ410とする。
なお、各分割データ410には、自身が分割データA(410a)、分割データB(410b)、分割データC(410c)、もしくは分割データD(410d)のいずれの種類であるかを識別する情報をヘッダ等に付加するものとする。これにより、復元時に取得した各分割データ410について、これを構成する単位分割データ411が、a1〜a3、b1〜b3、c1〜c3、もしくはd1〜d3のいずれの分割部分データ412により構成されているのかをヘッダ等の情報から知ることができる。この他にも、例えば、ステップS01において、秘密データ400の長さがSに満たないためにゼロ等のデータをパディングして単位秘密データ401を抽出した場合の、末尾の単位秘密データ401の有効な長さの情報などを付加してもよい。
その後、秘密データ400にまだ処理していない残部があるか否かを判定し(S08)、残部がある場合にはステップS01に戻って上記の一連の処理を秘密データ400に残部がなくなるまで繰り返す。秘密データ400に未処理の残部がない場合は、分割処理を終了する。
なお、図3に示した分割行列111を用いて上記の処理により得られる4個の分割データ410(分割データA〜D)は、(3,2,4)ランプ型閾値秘密分散の要件を満たすものである。すなわち、各分割データ410を構成する各単位分割データ411のそれぞれからは、秘密データ400を構成する単位秘密データ401の情報(s1〜s6の秘密部分データ402の情報)を全く得ることはできない。
例えば、第三者が、分割データA(410a)を取得した場合、これを構成する単位分割データ411aからはa1〜a3の分割部分データ412の情報を得ることができる。仮に、これらの分割部分データ412が、上記の式1〜式3の3個の式から生成されたものであることを当該第三者が知ったとしても、式1〜式3からなる、r1〜r3、およびs1〜s6を変数とする連立方程式を解くことはできない。
また、式1〜式3からなる連立方程式からは、乱数成分であるr1〜r3を消去することができないため、s1〜s6の秘密部分データ402のいずれの情報(解)も得ることができない(すなわち、正規化した情報エントロピーは1である)。従って、秘密データ400(s1〜s6の秘密部分データ402からなる単位秘密データ401)の秘匿性は保たれる。これは、分割データB(410b)〜分割データD(410d)の各分割データ410についても同様である。
換言すれば、4個の異なる単位分割データ411(例えば、単位分割データ411a)をそれぞれ構成する3個の分割部分データ412(例えば、a1〜a3)をそれぞれ得るための3個の計算式(例えば、上記の式1〜式3)において、各式が、「1個または相異なる2個以上の秘密部分データ402(s1〜s6)と1個または相異なる2個以上の乱数部分データ403(r1〜r3)のXOR演算」として表されるように分割行列111を構成すれば、各分割データ410(単位分割データ411)は乱数データと同等の乱数性を有することになるため、1個の分割データ410からは秘密データ400(単位秘密データ401)の情報を得ることはできないことになる。なお、本実施の形態では、3個の各計算式がそれぞれ互いに異なる1個の乱数部分データ403のみ(例えば、式1はr1のみ、式2はr2のみ、式3はr3のみ)を有するものとしている。
一方、3個の異なる分割データ410があれば、秘密データ400を復元することができる。すなわち、3個の異なる分割データ410を構成する各単位分割データ411からは、秘密データ400を構成する単位秘密データ401の情報(s1〜s6の秘密部分データ402の情報)の全てを得ることができる。例えば、ユーザが分割データA(410a)、分割データB(410b)、分割データC(410c)の3個の分割データ410を集めた場合、上記と同様に、式1〜式9の9個の独立した式からなる連立方程式が得られることになる。これを解くことにより、r1〜r3、およびs1〜s3の9個の変数の情報(解)を得ることができ、s1〜s6の秘密部分データ402の情報から単位秘密データ401および秘密データ400を復元することができる(すなわち、正規化した情報エントロピーはゼロである)。
なお、2個の異なる分割データ410がある場合には、秘密データ400の情報の一部を得ることが可能である。例えば、ユーザが分割データA(410a)、分割データB(410b)の2個の分割データ410を集めた場合、上記と同様に、式1〜式6の6個の式からなる連立方程式が得られることになる。この連立方程式では、r1〜r3、s1〜s6の全ての情報(解)を得ることはできないが、例えば、式1と式4、式2と式5、式3と式6によりそれぞれ乱数成分であるr1〜r3を消去することができるため、s1〜s6の間の関係を簡易な一次式として得ることができる。理論上は、これらの式からs1〜s6のうち半分の情報を得ることが可能である(正規化した情報エントロピーは0.5である)。
本実施の形態では、図3に示した(3,2,4)ランプ型閾値秘密分散での分割処理に用いる分割行列111は、後述する分割データ410からの秘密データ400の復元処理に用いる復元行列131と合わせて、分割・復元の秘密分散処理全体でのXOR演算の数が少なくなるよう調整している。具体的には、分割行列111として成立し得る行列の各パターン(およびこれに対して得られる復元行列131)について、後述する中間式による影響も考慮して、分割・復元の秘密分散処理全体でのXOR演算の数を解析し、数が少なくなる、すなわち全体として処理効率のよいパターンを得た。図3に示した分割行列111は、上記の手順により得た調整された分割行列111である。
さらに本実施の形態では、図2のステップS05において上記の式1〜式12に基づいて分割部分データ412(a1〜a3、b1〜b3、c1〜c3、d1〜d3)を算出する際に実行されるXOR演算(式1〜式12における“+”演算子)の回数が少なくなるよう、分割中間式112を利用する。すなわち、上記の式1〜式12において複数回繰り返し現れるXOR演算の式を予め分割中間式112として定義しておき、図2のステップS04において、各分割中間式112の値を予め計算しておく。その後、ステップS05で式1〜式12におけるXOR演算により分割部分データ412(a1〜a3、b1〜b3、c1〜c3、d1〜d3)を算出する際に、各分割中間式112と一致する部分については、予め計算された分割中間式112の計算結果を利用することで、重複するXOR演算を極力廃し、処理の効率化・高速化を図る。
<分割中間式>
図4は、秘密部分データ402(s1〜s6)と乱数部分データ403(r1〜r3)から分割部分データ412(a1〜a3、b1〜b3、c1〜c3、d1〜d3)を算出する際の例について概要を示した図である。図4の上段の図は、図3に示した分割行列111の内容を模式的に表として示しており、表の行・列は、図3に示した分割行列111の行・列に対応している。各行で、“1”が立っている列に対応する要素(例えば、1行目の場合はr1、s1、およびs2)についてXOR演算する(例えば、1行目の場合はr1+s1+s2)ことで、各行に対応する分割部分データ412(例えば、1行目の場合はa1)を得ることができることを示している。すなわち、図4に示す分割行列111の表の各行は、それぞれ上記の式1〜式12に示したXOR演算の内容を示している。
ここで、本実施の形態では、図4の下段に示すように、t1〜t7の7個の分割中間式112を定義しており、これらはそれぞれ“1”が立っている列(図4の上段に示す分割行列111の列に対応する)により、以下の式の演算を表している。
t1=s3+s4 …式13
t2=s1+s2 …式14
t3=s3+s5 …式15
t4=s5+s6 …式16
t5=r3+s2+s4 …式17
t6=t2+t3 …式18
t7=r2+s1+t4 …式19
また、上記のt1〜t7の分割中間式112を用いることにより、上記の式1〜式12がそれぞれ以下の式により簡略化されることを表している。
a1=r1+t2 …式1’
a2=r2+t1 …式2’
a3=r3+t4 …式3’
b1=r1+t3 …式4’
b2=s3+t7 …式5’
b3=s6+t5 …式6’
c1=r1+s6+t1 …式7’
c2=r2+s2+s5+t1 …式8’
c3=r3+s6+t6 …式9’
d1=r1+t6 …式10’
d2=s4+t7 …式11’
d3=s5+t5 …式12’
ここで、簡略化する前の上記の式1〜式12では、2入力のXOR演算の数(すなわち“+”演算子の数)は38個であるが、上記の式1’〜式12’(および分割中間式112である式13〜式19)では、XOR演算の数は25個に大きく低減されている(低減率34.2%)。従って、分割行列111に基づくXOR演算を直接実行する(上記の式1〜式12)よりも、分割中間式112(上記の式13〜式19)を予め計算した上で、分割中間式112を利用して分割行列111に基づくXOR演算を実行する(上記の式1’〜式12’)ことで、XOR演算に係る処理の効率化・高速化することができる。
なお、分割行列111の内容を調整することで、分割処理時のXOR演算の数を25個からさらに低減させることも可能であるが、この場合は、後述する復元処理時のXOR演算の回数が増え、分割・復元の処理全体としてはXOR演算の数は必ずしも最小とはならない。分割・復元の処理全体として考えた場合に、解析により処理効率がよい(XOR演算の数が少ない)ものとして得られたものが、図3に示した分割行列111である。
<処理フロー(復元処理)>
図5は、データ分割装置100の復元処理部130における、分割データ410から秘密分散により秘密データ400を生成する復元処理の流れの例について概要を示したフローチャートである。なお、本実施の形態では、上述したように、(3,2,4)ランプ型閾値秘密分散により秘密分散処理を行うものとする。また、図6は、3個の分割データ410から(3,2,4)ランプ型閾値秘密分散により秘密データ400を生成(復元)する処理の例について概要を示した図である。
まず、復元処理の前処理として、インタフェース部140を介してユーザから参照や編集等の利用を行う重要データ、すなわち復元の対象となる重要データが指定されると、復元処理部130は、この重要データを秘密データ400として、これを復元するために必要な数以上(本実施の形態では3個以上)の分割データ410を分散管理部120に要求して取得する。
図6の例では、分割データ410a、410b、410cの3個の分割データ410を復元に用いる場合を示している。これには、分散管理部120を介して分割データ410a、410b、410cの3個の分割データ410を取得し、これらを復元に用いる場合、および、分散管理部120を介して4個全ての分割データ410を取得し、そのうちの分割データ410a、410b、410cの3個を復元に用いる場合が含まれる。
復元処理部130は、3個の分割データ410を取得すると、まず、3個の分割データ410の先頭からそれぞれ所定の長さS/2の単位分割データ411(a、b、c)を抽出する(S11)。この単位分割データ411は、XOR演算による秘密分散処理を行う際の処理単位となるデータである。次に、抽出した各単位分割データ411について、それぞれいずれの種類のものであるかを特定する(S12)。図6の例では、各分割データ410(a、b、c)から抽出した各単位分割データ411(a、b、c)について、ヘッダ等に付加された情報等に基づき、それぞれが単位分割データ411a、411b、411c(もしくは単位分割データ411d)のいずれであるかを特定する。
次に、抽出した各単位分割データ411からそれぞれ、3個の分割部分データ412を抽出する(S13)。具体的には、図6に示すように、長さS/2の3個の単位分割データ411(a、b、c)をそれぞれ3等分して、長さS/6の分割部分データ412を3個ずつ(a1〜a3、b1〜b3、c1〜c3)生成する。
次に、後述する秘密部分データ402を生成するためのXOR演算を行う際に用いるために、ステップS12で特定した各単位分割データ411の種類の組み合わせ毎に定義された複数の復元中間式132のそれぞれについて、ステップS13で抽出した分割部分データ412に基づいてXOR演算を行って値を算出しておく(S14)。この復元中間式132は、上記の分割中間式112と同様に、後述する秘密部分データ402を生成するためのXOR演算の全体において、複数回繰り返し現れるXOR演算の式を復元中間式132として抽出したものである。この復元中間式132の値を予め計算して保持しておき、復元行列131に基づくXOR演算の際に計算結果を利用することで、内容が重複するXOR演算を極力廃し、処理の効率化・高速化を図る。なお、復元中間式132の詳細については後述する。
次に、ステップS13で抽出した分割部分データ412に基づいて、ステップS12で特定した各単位分割データ411の種類の組み合わせ毎に定義された復元行列131に定義された内容に従ってXOR演算を行い、6個の秘密部分データ402を生成する(S15)。具体的には、図6に示すように、単位分割データ411の種類の組み合わせ(図6の例では、a、b、cの3個の単位分割データ411)毎にXOR演算を定義した復元行列131(図6の例では復元行列131a)と、分割部分データ412(図6の例ではa1〜a3、b1〜b3、c1〜c3)を要素とする9行1列の分割データ行列133aとの乗算によって、それぞれが長さS/6の6個の秘密部分データ402(s1〜s6)を得る。
すなわち、図6の例に示すように、分割データ410a、410b、410cの3個の分割データ410に基づく場合は、復元行列131aと、分割データ行列133aとの乗算によって得られる以下の各式によって6個の秘密部分データ402を得る。
s1=a2+b1+b2+c1 …式20
s2=a1+a2+a3+b1+c2+c3 …式21
s3=a1+b2+c1+c2 …式22
s4=a2+a3+b3+c2 …式23
s5=a1+a3+b1+c3 …式24
s6=a1+a2+b3+c1+c2+c3 …式25
なお、上記の行列の乗算からは、乱数部分データ403(r1〜r3)も得ることができるが、秘密データ400の復元に際しては不要であるため処理を省略する。また、分割処理時と同様に、実際の計算の際には、後述するように、式20〜式25の各式において各復元中間式132と一致するXOR演算の部分に、ステップS14で予め計算しておいた各復元中間式132の値を代入することで、全体でのXOR演算の数を低減させる。
次に、6個の秘密部分データ402から単位秘密データ401を生成する(S16)。具体的には、図6に示すように、s1〜s6の秘密部分データ402を連結して、長さSの単位秘密データ401を生成する。次に、生成した単位秘密データ401を秘密データ400の末尾等に連結する(S17)。具体的には、図6に示すように、長さSの単位秘密データ401を秘密データ400の末尾に連結する。なお、連結すべき秘密データ400が存在しない場合は、単位秘密データ401自身を秘密データ400とする。
その後、各分割データ410にまだ処理していない残部があるか否かを判定し(S18)、残部がある場合にはステップS11に戻って上記の一連の処理を各分割データ410に残部がなくなるまで繰り返す。各分割データ410に未処理の残部がない場合は、復元処理を終了する。
なお、上述した手順によって、図6に示したような復元行列131に基づいて得られる秘密データ400(s1〜s6の秘密部分データ402からなる単位秘密データ401)は、元の重要データの内容と同じものである。これは、ステップS12で特定した各単位分割データ411の種類の組み合わせ毎に定義された複数の復元行列131が、上記の分割行列111における当該組み合わせに係る部分から求められた逆行列であるためである。
図7は、分割データ410(a、b、c)から秘密データ400を復元するために用いる復元行列131aを分割行列111から得る処理の例を示した図である。復元行列131aを得るためには、図7の上段に示すように、分割行列111のうち、復元の際に用いられる分割データ410(a、b、c)に対応する行、すなわちこれに対応する分割部分データ412(a1〜a3、b1〜b3、c1〜c3)を得ることができる9行(図中の網掛け部分)を抽出して、図7の下段左側に示すような9行9列の部分行列を得る。
この部分行列から、例えば掃き出し法などにより、図7の下段右側に示すような逆行列を求める。この逆行列が復元行列131aとなる。なお、分割行列111における要素の値の“1”は、数値の1ではなくXORの対象となる要素を決定するビットを示している。従って、例えば掃き出し法を用いて逆行列を求める際に、手順の課程での減算処理により要素の値が−1になった場合でも“1”として取り扱うことにより、復元行列131を得ることができる。
同様に、図8は、分割データ410(a、b、d)から秘密データ400を復元するために用いる復元行列131bを分割行列111から得る処理の例を示した図である。図8の上段に示すように、分割行列111のうち、復元の際に用いられる分割データ410(a、b、d)に対応する行、すなわちこれに対応する分割部分データ412(a1〜a3、b1〜b3、d1〜d3)を得ることができる9行(図中の網掛け部分)を抽出して、図8の下段左側に示すような9行9列の部分行列を得る。この部分行列から求めた逆行列が復元行列131bとなる。
同様に、図9は、分割データ410(a、c、d)から秘密データ400を復元するために用いる復元行列131cを分割行列111から得る処理の例を示した図である。図9の上段に示すように、分割行列111のうち、復元の際に用いられる分割データ410(a、c、d)に対応する行、すなわちこれに対応する分割部分データ412(a1〜a3、c1〜c3、d1〜d3)を得ることができる9行(図中の網掛け部分)を抽出して、図9の下段左側に示すような9行9列の部分行列を得る。この部分行列から求めた逆行列が復元行列131cとなる。
同様に、図10は、分割データ410(b、c、d)から秘密データ400を復元するために用いる復元行列131dを分割行列111から得る処理の例を示した図である。図10の上段に示すように、分割行列111のうち、復元の際に用いられる分割データ410(b、c、d)に対応する行、すなわちこれに対応する分割部分データ412(b1〜b3、c1〜c3、d1〜d3)を得ることができる9行(図中の網掛け部分)を抽出して、図10の下段左側に示すような9行9列の部分行列を得る。この部分行列から求めた逆行列が復元行列131dとなる。
<復元中間式>
図11は、分割部分データ412(a1〜a3、b1〜b3、c1〜c3)から秘密部分データ402(s1〜s6)を算出する際の例について概要を示した図である。上述の図4と同様に、図11の上段の図は、図7に示した復元行列131aの内容を模式的に表として示しており、表の行・列は、図7に示した復元行列131aの行・列に対応している。
ここで、本実施の形態では、図11の下段に示すように、w1〜w5の5個の復元中間式132aを定義しており、これらはそれぞれ“1”が立っている列(図11の上段に示す復元行列131aの列に対応する)により、以下の式の演算を表している。
w1=b2+c1 …式26
w2=a3+b1 …式27
w3=a1+c3 …式28
w4=a2+c2 …式29
w5=w3+w4 …式30
また、上記のw1〜w5の復元中間式132aを用いることにより、上記の式20〜式25がそれぞれ以下の式により簡略化されることを表している。
s1=a2+b1+w1 …式20’
s2=w2+w5 …式21’
s3=a1+c2+w1 …式22’
s4=a3+b3+w4 …式23’
s5=w2+w3 …式24’
s6=b3+c1+w5 …式25’
ここで、簡略化する前の上記の式20〜式25では、2入力のXOR演算の数は22個であるが、上記の式20’〜式25’(および復元中間式132aである式26〜式30)では、XOR演算の数は15個に大きく低減されている(低減率31.8%)。従って、復元行列131aに基づくXOR演算を直接実行する(上記の式20〜式25)よりも、復元中間式132aを予め計算した上で(上記の式26〜式30)、復元中間式132aを利用して復元行列131aに基づくXOR演算を実行する(上記の式20’〜式25’)ことで、XOR演算に係る処理の効率化・高速化することができる。
同様に、図12は、分割部分データ412(a1〜a3、b1〜b3、d1〜d3)から秘密部分データ402(s1〜s6)を算出する際の例について概要を示した図である。図12の上段の図は、図8に示した復元行列131bの内容を模式的に表として示しており、表の行・列は、図8に示した復元行列131bの行・列に対応している。ここで、本実施の形態では、図12の下段に示すように、x1〜x5の5個の復元中間式132bを定義しており、これらはそれぞれ“1”が立っている列(図12の上段に示す復元行列131bの列に対応する)により、以下の式の演算を表している。
x1=a1+a3 …式31
x2=a2+b1 …式32
x3=b2+b3+d2+x1 …式33
x4=d3+x1+x2 …式34
x5=a3+b2+d1+x2 …式35
また、上記のx1〜x5の復元中間式132bを用いることにより、復元行列131bと、分割部分データ412(a1〜a3、b1〜b3、d1〜d3)を要素とする分割データ行列との乗算によって6個の秘密部分データ402(s1〜s6)を得る式(記載は省略)が、それぞれ以下の簡略化された式によって表されることを示している。
s1=b1+x3 …式36’
s2=d1+x3 …式37’
s3=b2+x4 …式38’
s4=d2+x4 …式39’
s5=d3+x5 …式40’
s6=b3+x5 …式41’
ここで、簡略化する前では、XOR演算の数は30個であるが、上記の式36’〜式41’(および復元中間式132bである式31〜式35)では、XOR演算の数は16個に大きく低減されている(低減率46.6%)。
同様に、図13は、分割部分データ412(a1〜a3、c1〜c3、d1〜d3)から秘密部分データ402(s1〜s6)を算出する際の例について概要を示した図である。図13の上段の図は、図9に示した復元行列131cの内容を模式的に表として示しており、表の行・列は、図9に示した復元行列131cの行・列に対応している。ここで、本実施の形態では、図13の下段に示すように、y1〜y5の5個の復元中間式132cを定義しており、これらはそれぞれ“1”が立っている列(図13の上段に示す復元行列131cの列に対応する)により、以下の式の演算を表している。
y1=a2+c2 …式42
y2=a3+c3 …式43
y3=c2+d2 …式44
y4=a1+c1 …式45
y5=c3+d3 …式46
また、上記のy1〜y5の復元中間式132cを用いることにより、復元行列131cと、分割部分データ412(a1〜a3、c1〜c3、d1〜d3)を要素とする分割データ行列との乗算によって6個の秘密部分データ402(s1〜s6)を得る式(記載は省略)が、それぞれ以下の簡略化された式によって表されることを示している。
s1=a1+d1+y1+y2 …式47’
s2=y4+y5 …式48’
s3=c1+d1+y1+y5 …式49’
s4=y3+y4 …式50’
s5=s2+y1 …式51’
s6=y2+y3 …式52’
ここで、簡略化する前では、XOR演算の数は24個であるが、上記の式47’〜式52’(および復元中間式132cである式42〜式46)では、XOR演算の数は15個に大きく低減されている(低減率37.5%)。
同様に、図14は、分割部分データ412(b1〜b3、c1〜c3、d1〜d3)から秘密部分データ402(s1〜s6)を算出する際の例について概要を示した図である。図14の上段の図は、図10に示した復元行列131dの内容を模式的に表として示しており、表の行・列は、図10に示した復元行列131dの行・列に対応している。ここで、本実施の形態では、図14の下段に示すように、z1〜z2の2個の復元中間式132dを定義しており、これらはそれぞれ“1”が立っている列(図14の上段に示す復元行列131dの列に対応する)により、以下の式の演算を表している。
z1=a1+a3 …式53
z2=a2+b1 …式54
また、上記のz1〜z2の復元中間式132dを用いることにより、復元行列131dと、分割部分データ412(b1〜b3、c1〜c3、d1〜d3)を要素とする分割データ行列との乗算によって6個の秘密部分データ402(s1〜s6)を得る式(記載は省略)が、それぞれ以下の簡略化された式によって表されることを示している。
s1=d1+z2 …式55’
s2=b1+z2 …式56’
s3=b2+d2+s4 …式57’
s4=b1+d3+z1 …式58’
s5=b2+c1+c2+d1 …式59’
s6=b3+d3+s5 …式60’
ここで、簡略化する前では、XOR演算の数は26個であるが、上記の式55’〜式60’(および復元中間式132dである式53〜式54)では、XOR演算の数は15個に大きく低減されている(低減率42.3%)。
なお、本実施の形態では、(3,2,4)ランプ型閾値秘密分散を用いる場合における、調整された分割行列111や分割中間式112、および復元行列131や復元中間式132について具体的に説明したが、(3,2,4)型に限らず、他の(k,L,n)型の場合であっても同様の思想で分割行列111や復元行列131を求め、また、分割中間式112や復元中間式132を定義してXOR演算の数を低減させ、処理を効率化・高速化させることが可能である。
以上に説明したように、本発明の一実施の形態であるデータ分割装置100およびデータ分割装置100上で稼働するデータ分割プログラムによれば、秘密データ400を(k,L,n)ランプ型閾値秘密分散によりn個の分割データ410に分割して、これらの分割データ410をそれぞれ異なるサーバ200等に分散保管する。これにより、分割データ410の紛失・盗難・不正取得等に対する秘密データ400の秘匿性を高めるとともに、分割データ410の毀損・滅失等に対する秘密データ400の可用性を高めることが可能となる。
また、ランプ型の秘密分散を用いることから、安全性の条件は若干緩められるものの、n個の各分割データ410のサイズを1/Lに縮小して、全体でのデータ量を(k,n)閾値秘密分散の場合と比べて1/Lに縮小する。これにより、各分割データ410を送信・保管する際のネットワーク300の帯域や記憶領域などのリソース使用量を低減させることが可能となる。
また、(k,L,n)ランプ型閾値秘密分散において、コンピュータでのビット演算に適するよう、XOR演算により秘密分散処理を行う。すなわち、秘密データ400を分割した秘密部分データ402のうちの1個以上と、秘密部分データ402と同じ長さで秘密部分データ402の半数の乱数部分データ403のうちの1個とのXOR演算に基づいて複数の分割部分データ412を生成し、それぞれ異なる乱数部分データ403を含むXOR演算により生成された複数の分割部分データ412を連結して単位分割データ411および分割データ400を生成する。これにより、秘密分散処理を効率化・高速化することが可能となる。
さらに、本実施の形態では、具体的に(3,2,4)ランプ型閾値秘密分散において、XOR演算を行うための計算式(分割行列111、および復元行列131)を調整し、また、中間式(分割中間式112、および復元中間式132)を用いて計算手順を調整することで、XOR演算の数を大きく低減させる(上述の分割中間式および復元中間式の例では中間式による低減率は平均すると40.2%)ことを実現している。これにより、秘密データ400から(3,2,4)ランプ型閾値秘密分散により複数の分割データ410を生成し、また複数の分割データ410から秘密データ400を復元することを実際に可能とし、さらにそれらの際の処理性能を全体として向上させることが可能となる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
本発明は、重要データを秘密分散技術により複数の非重要データに分割して秘匿化する際のデータ分割装置およびデータ分割プログラムに利用可能である。
100…データ分割装置、110…分割処理部、111…分割行列、112…分割中間式、113…乱数生成部、114…秘密データ行列、120…分散管理部、121…分散状況、122…設定情報、130…復元処理部、131、131a〜d…復元行列、132、132a〜d…復元中間式、133a…分割データ行列、140…インタフェース部、
200…サーバ、
300…ネットワーク、
400…秘密データ、401…単位秘密データ、402…秘密部分データ、403…乱数部分データ、410、410a〜d…分割データ、411、411a〜d…単位分割データ、412…分割部分データ。


Claims (12)

  1. 秘密データを(3,2,4)ランプ型閾値秘密分散により4個の分割データに分割して、4個の前記分割データをそれぞれ異なる記憶装置に分散保管するデータ分割装置であって、
    前記秘密データから抽出した長さSの単位秘密データを長さS/6の6個の秘密部分データに分割し、
    長さS/6の3個の乱数部分データを生成し、
    前記秘密部分データ、前記乱数部分データ、および前記秘密部分データのうちの1個以上と前記乱数部分データのうちの1個から分割部分データを生成するためのXOR演算を定義した分割行列に基づいて、12個の前記分割部分データを生成し、
    それぞれ異なる前記乱数部分データを含むXOR演算により生成された3個の前記分割部分データを連結して4種類の長さS/2の単位分割データを生成し、
    前記単位分割データを種類毎に連結して4個の分割データを生成する分割処理部を有することを特徴とするデータ分割装置。
  2. 請求項1に記載のデータ分割装置において、
    3個の前記分割データのそれぞれから抽出した長さS/2の前記単位分割データから3個の前記分割部分データをそれぞれ抽出し、
    前記分割データの種類の組み合わせに対応した前記分割行列の部分行列に対する逆行列である復元行列に基づく、抽出した前記分割部分データのXOR演算により、6個の前記秘密部分データを生成し、
    生成した前記秘密部分データを連結して長さSの前記単位秘密データを生成し、
    生成した前記単位秘密データを連結して前記秘密データを生成する復元処理部を有することを特徴とするデータ分割装置。
  3. 請求項2に記載のデータ分割装置において、
    前記分割行列により定義された、前記秘密部分データ(s1〜s6)のうちの1個以上と前記乱数部分データ(r1〜r3)のうちの1個から、12個の前記分割部分データを生成するためのXOR演算の式は、
    a1=r1+s1+s2
    a2=r2+s3+s4
    a3=r3+s5+s6
    b1=r1+s3+s5
    b2=r2+s1+s3+s5+s6
    b3=r3+s2+s4+s6
    c1=r1+s3+s4+s6
    c2=r2+s2+s3+s4+s5
    c3=r3+s1+s3+s3+s5+s6
    d1=r1+s1+s2+s3+s5
    d2=r2+s1+s4+s5+s6
    d3=r3+s2+s4+s5
    で表され、a1〜a3、b1〜b3、c1〜c3、d1〜d3の各3個の前記分割部分データをそれぞれ連結して、A〜Dの4種類の前記単位部分データを生成することを特徴とするデータ分割装置。
  4. 請求項3に記載のデータ分割装置において、
    前記復元行列に基づく、前記分割部分データから前記秘密部分データを生成するためのXOR演算の式は、前記分割データの種類がA、B、Cの場合は、
    s1=a2+b1+b2+c1
    s2=a1+a2+a3+b1+c2+c3
    s3=a1+b2+c1+c2
    s4=a2+a3+b3+c2
    s5=a1+a3+b1+c3
    s6=a1+a2+b3+c1+c2+c3
    で表され、前記分割データの種類がA、B、Dの場合は、
    s1=a1+a3+b1+b2+b3+d2
    s2=a1+a3+b2+b3+d1+d2
    s3=a1+a2+a3+b1+b2+d3
    s4=a1+a2+a3+b1+d2+d3
    s5=a2+a3+b1+b2+d1+d3
    s6=a2+a3+b1+b2+b3+d1
    で表され、前記分割データの種類がA、C、Dの場合は、
    s1=a1+a2+a3+c2+c3+d1
    s2=a1+c1+c3+d3
    s3=a2+c1+c2+c3+d1+d3
    s4=a1+c1+c2+d2
    s5=a1+a2+c1+c2+c3+d3
    s6=a3+c2+c3+d2
    で表され、前記分割データの種類がB、C、Dの場合は、
    s1=b3+c1+c2+c3+d1+d2
    s2=b1+b3+c1+c2+c3+d2
    s3=b1+b2+b3+c1+d2+d3
    s4=b1+b3+c1+d3
    s5=b2+c1+c2+d1
    s6=b2+b3+c1+c2+d1+d3
    で表され、s1〜s6の6個の前記秘密部分データを連結して前記単位部分データを生成することを特徴とするデータ分割装置。
  5. 請求項3に記載のデータ分割装置において、
    前記分割処理部は、前記分割行列に基づくXOR演算の式において、
    t1=s3+s4
    t2=s1+s2
    t3=s3+s5
    t4=s5+s6
    t5=r3+s2+s4
    t6=t2+t3
    t7=r2+s1+t4
    の各式を分割中間式として、前記各分割中間式の値を予め算出しておき、前記分割行列に基づくXOR演算の際に、前記分割中間式と一致する部分に前記分割中間式の値を代入することを特徴とするデータ分割装置。
  6. 請求項4に記載のデータ分割装置において、
    前記復元処理部は、前記復元行列に基づくXOR演算の式において、前記分割データの種類がA、B、Cの場合は、
    w1=b2+c1
    w2=a3+b1
    w3=a1+c3
    w4=a2+c2
    w5=w3+w4
    の各式を復元中間式とし、前記分割データの種類がA、B、Dの場合は、
    x1=a1+a3
    x2=a2+b1
    x3=b2+b3+d2+x1
    x4=d3+x1+x2
    x5=a3+b2+d1+x2
    の各式を復元中間式とし、前記分割データの種類がA、C、Dの場合は、
    y1=a2+c2
    y2=a3+c3
    y3=c2+d2
    y4=a1+c1
    y5=c3+d3
    の各式を復元中間式とし、前記分割データの種類がB、C、Dの場合は、
    z1=a1+a3
    z2=a2+b1
    の各式を復元中間式として、前記各復元中間式の値を予め算出しておき、前記復元行列に基づくXOR演算の際に、前記復元中間式と一致する部分に前記復元中間式の値を代入することを特徴とするデータ分割装置。
  7. 秘密データを(3,2,4)ランプ型閾値秘密分散により4個の分割データに分割するデータ分割装置として機能するよう、コンピュータに処理を実行させるデータ分割プログラムであって、
    前記コンピュータの分割処理部に、
    入力された前記秘密データから抽出した長さSの単位秘密データを長さS/6の6個の秘密部分データに分割するステップと、
    長さS/6の3個の乱数部分データを生成するステップと、
    予め保持されている、前記秘密部分データのうちの1個以上と前記乱数部分データのうちの1個から分割部分データを生成するためのXOR演算を定義した分割行列を読み込み、読み込んだ前記分割行列と、前記秘密部分データおよび前記乱数部分データとに基づいて、12個の前記分割部分データを生成するステップと、
    それぞれ異なる前記乱数部分データを含むXOR演算により生成された3個の前記分割部分データを連結して4種類の長さS/2の単位分割データを生成するステップと、
    前記単位分割データを種類毎に連結して4個の分割データを生成するステップと、を実行させ、
    前記コンピュータの分散管理部に、
    前記分割データをそれぞれ異なる記憶装置へ出力するステップを実行させることを特徴とするデータ分割プログラム。
  8. 請求項7に記載のデータ分割プログラムにおいて、
    前記コンピュータの復元処理部に、
    入力された3個の前記分割データのそれぞれから抽出した長さS/2の前記単位分割データから3個の前記分割部分データをそれぞれ抽出するステップと、
    前記分割データの種類の組み合わせを特定するステップと、
    予め保持されている、前記分割データの種類の組み合わせに対応した前記分割行列の部分行列に対する逆行列である復元行列を読み込み、読み込んだ前記復元行列に基づく、抽出した前記分割部分データのXOR演算により、6個の前記秘密部分データを生成するステップと、
    生成した前記秘密部分データを連結して長さSの前記単位秘密データを生成するステップと、
    生成した前記単位秘密データを連結して前記秘密データを生成して出力するステップとを実行させることを特徴とするデータ分割プログラム。
  9. 請求項8に記載のデータ分割プログラムにおいて、
    前記分割行列により定義された、前記秘密部分データ(s1〜s6)のうちの1個以上と前記乱数部分データ(r1〜r3)のうちの1個から、12個の前記分割部分データを生成するためのXOR演算の式は、
    a1=r1+s1+s2
    a2=r2+s3+s4
    a3=r3+s5+s6
    b1=r1+s3+s5
    b2=r2+s1+s3+s5+s6
    b3=r3+s2+s4+s6
    c1=r1+s3+s4+s6
    c2=r2+s2+s3+s4+s5
    c3=r3+s1+s3+s3+s5+s6
    d1=r1+s1+s2+s3+s5
    d2=r2+s1+s4+s5+s6
    d3=r3+s2+s4+s5
    で表され、前記コンピュータに、a1〜a3、b1〜b3、c1〜c3、d1〜d3の各3個の前記分割部分データをそれぞれ連結して、A〜Dの4種類の前記単位部分データを生成させることを特徴とするデータ分割プログラム。
  10. 請求項9に記載のデータ分割プログラムにおいて、
    前記復元行列に基づく、前記分割部分データから前記秘密部分データを生成するためのXOR演算の式は、前記分割データの種類がA、B、Cの場合は、
    s1=a2+b1+b2+c1
    s2=a1+a2+a3+b1+c2+c3
    s3=a1+b2+c1+c2
    s4=a2+a3+b3+c2
    s5=a1+a3+b1+c3
    s6=a1+a2+b3+c1+c2+c3
    で表され、前記分割データの種類がA、B、Dの場合は、
    s1=a1+a3+b1+b2+b3+d2
    s2=a1+a3+b2+b3+d1+d2
    s3=a1+a2+a3+b1+b2+d3
    s4=a1+a2+a3+b1+d2+d3
    s5=a2+a3+b1+b2+d1+d3
    s6=a2+a3+b1+b2+b3+d1
    で表され、前記分割データの種類がA、C、Dの場合は、
    s1=a1+a2+a3+c2+c3+d1
    s2=a1+c1+c3+d3
    s3=a2+c1+c2+c3+d1+d3
    s4=a1+c1+c2+d2
    s5=a1+a2+c1+c2+c3+d3
    s6=a3+c2+c3+d2
    で表され、前記分割データの種類がB、C、Dの場合は、
    s1=b3+c1+c2+c3+d1+d2
    s2=b1+b3+c1+c2+c3+d2
    s3=b1+b2+b3+c1+d2+d3
    s4=b1+b3+c1+d3
    s5=b2+c1+c2+d1
    s6=b2+b3+c1+c2+d1+d3
    で表され、前記コンピュータに、s1〜s6の6個の前記秘密部分データを連結して前記単位部分データを生成させることを特徴とするデータ分割プログラム。
  11. 請求項9に記載のデータ分割プログラムにおいて、
    前記コンピュータに、前記分割行列に基づくXOR演算により前記分割部分データを生成するステップの前に、前記分割行列に基づくXOR演算の式において、
    t1=s3+s4
    t2=s1+s2
    t3=s3+s5
    t4=s5+s6
    t5=r3+s2+s4
    t6=t2+t3
    t7=r2+s1+t4
    の各式を分割中間式として、前記各分割中間式の値を予め算出しておくステップを実行させ、
    前記分割行列に基づくXOR演算により前記分割部分データを生成するステップにおいて、前記分割中間式と一致する部分に前記分割中間式の値を代入することを特徴とするデータ分割プログラム。
  12. 請求項10に記載のデータ分割プログラムにおいて、
    前記コンピュータに、前記復元行列に基づくXOR演算により前記秘密部分データを生成するステップの前に、前記復元行列に基づくXOR演算の式において、前記分割データの種類がA、B、Cの場合は、
    w1=b2+c1
    w2=a3+b1
    w3=a1+c3
    w4=a2+c2
    w5=w3+w4
    の各式を復元中間式とし、前記分割データの種類がA、B、Dの場合は、
    x1=a1+a3
    x2=a2+b1
    x3=b2+b3+d2+x1
    x4=d3+x1+x2
    x5=a3+b2+d1+x2
    の各式を復元中間式とし、前記分割データの種類がA、C、Dの場合は、
    y1=a2+c2
    y2=a3+c3
    y3=c2+d2
    y4=a1+c1
    y5=c3+d3
    の各式を復元中間式とし、前記分割データの種類がB、C、Dの場合は、
    z1=a1+a3
    z2=a2+b1
    の各式を復元中間式として、前記各復元中間式の値を予め算出しておくステップを実行させ、
    前記復元行列に基づくXOR演算により前記秘密部分データを生成するステップにおいて、前記復元中間式と一致する部分に前記復元中間式の値を代入することを特徴とするデータ分割プログラム。
JP2013500690A 2011-11-28 2011-11-28 データ分割装置およびデータ分割プログラム Expired - Fee Related JP5530025B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/077431 WO2013080290A1 (ja) 2011-11-28 2011-11-28 データ分割装置およびデータ分割プログラム

Publications (2)

Publication Number Publication Date
JP5530025B2 true JP5530025B2 (ja) 2014-06-25
JPWO2013080290A1 JPWO2013080290A1 (ja) 2015-04-27

Family

ID=48534818

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013500690A Expired - Fee Related JP5530025B2 (ja) 2011-11-28 2011-11-28 データ分割装置およびデータ分割プログラム

Country Status (2)

Country Link
JP (1) JP5530025B2 (ja)
WO (1) WO2013080290A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6373237B2 (ja) * 2015-08-21 2018-08-15 富士フイルム株式会社 秘密分散装置,データ復元装置,秘密分散方法,データ復元方法およびそれらの制御プログラム
JP6300293B1 (ja) * 2017-07-07 2018-03-28 株式会社Asj エンコード・デコード構造およびこれを用いた分散データシステム
WO2019008748A1 (ja) 2017-07-07 2019-01-10 株式会社Asj データ処理システムおよびこれを用いた分散データシステム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005303776A (ja) * 2004-04-14 2005-10-27 Nippon Telegr & Teleph Corp <Ntt> 電子データ暗号化装置、電子データ復元装置及びプログラム
JP2006352357A (ja) * 2005-06-14 2006-12-28 Fujitsu Ltd 通信制御装置および通信制御方法
JP2009037093A (ja) * 2007-08-03 2009-02-19 Kddi Corp 分散情報生成装置、秘密情報復元装置、分散情報生成方法、秘密情報復元方法およびプログラム
JP2009182375A (ja) * 2008-01-29 2009-08-13 Kddi Corp 分散情報生成装置、秘密情報復元装置、分散情報生成方法、秘密情報復元方法およびプログラム
JP2011004206A (ja) * 2009-06-19 2011-01-06 Kddi Corp 分散情報生成装置、秘密情報復元装置、分散情報生成方法、秘密情報復元方法およびプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005303776A (ja) * 2004-04-14 2005-10-27 Nippon Telegr & Teleph Corp <Ntt> 電子データ暗号化装置、電子データ復元装置及びプログラム
JP2006352357A (ja) * 2005-06-14 2006-12-28 Fujitsu Ltd 通信制御装置および通信制御方法
JP2009037093A (ja) * 2007-08-03 2009-02-19 Kddi Corp 分散情報生成装置、秘密情報復元装置、分散情報生成方法、秘密情報復元方法およびプログラム
JP2009182375A (ja) * 2008-01-29 2009-08-13 Kddi Corp 分散情報生成装置、秘密情報復元装置、分散情報生成方法、秘密情報復元方法およびプログラム
JP2011004206A (ja) * 2009-06-19 2011-01-06 Kddi Corp 分散情報生成装置、秘密情報復元装置、分散情報生成方法、秘密情報復元方法およびプログラム

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CSNG201000073057; 高荒 亮 他: 'XORを用いた高速な(k,L,n)ランプ型秘密分散法に関する研究' コンピュータセキュリティシンポジウム2009 論文集 [第二分冊] , 20091019, p.949〜954, 社団法人情報処理学会 *
CSNJ200710012134; 永村 建索 他: '排他的論理和を用いたランプ型秘密分散法' 電子情報通信学会2006年基礎・境界ソサイエティ大会講演論文集 , 20060907, p.134, 社団法人電子情報通信学会 *
JPN6013052761; 永村 建索 他: '排他的論理和を用いたランプ型秘密分散法' 電子情報通信学会2006年基礎・境界ソサイエティ大会講演論文集 , 20060907, p.134, 社団法人電子情報通信学会 *
JPN6013052762; 高荒 亮 他: 'XORを用いた高速な(k,L,n)ランプ型秘密分散法に関する研究' コンピュータセキュリティシンポジウム2009 論文集 [第二分冊] , 20091019, p.949〜954, 社団法人情報処理学会 *

Also Published As

Publication number Publication date
JPWO2013080290A1 (ja) 2015-04-27
WO2013080290A1 (ja) 2013-06-06

Similar Documents

Publication Publication Date Title
RU2691874C2 (ru) Способ защиты информации в облачных вычислениях с использованием гомоморфного шифрования
US10608813B1 (en) Layered encryption for long-lived data
US9209971B2 (en) Method and system for shielding data in untrusted environments
CN104520873A (zh) 用于保护和恢复虚拟机的系统和方法
CN110235409A (zh) 使用同态加密被保护的rsa签名或解密的方法
US10601580B2 (en) Secure order preserving string compression
WO2019114122A1 (zh) 登录信息的加密方法、装置、电子设备及介质
CN110391895B (zh) 数据预处理方法、密文数据获取方法、装置和电子设备
US10476663B1 (en) Layered encryption of short-lived data
CN104618096A (zh) 保护密钥授权数据的方法、设备和tpm密钥管理中心
Sivakumar et al. Securing data and reducing the time traffic using AES encryption with dual cloud
KR20200143197A (ko) 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치 및 그 동작 방법
JP2023008395A (ja) マルチパーティ型準同型暗号によるセキュアでロバストな連合学習システム及び連合学習方法
EP4374542A1 (en) Hybrid public-key and private-key cryptographic systems based on iso-rsa encryption scheme
CN109544164A (zh) 一种基于互联网支付的加密系统、方法和存储介质
JP5530025B2 (ja) データ分割装置およびデータ分割プログラム
JP6844897B2 (ja) ビット分解秘密計算装置、ビット結合秘密計算装置、方法およびプログラム
US10929151B2 (en) Computer-implemented method for replacing a data string by a placeholder
US11200346B2 (en) Secure computation for reading multiple elements from a secure text array
US11356254B1 (en) Encryption using indexed data from large data pads
EP4080488B1 (en) Secret random number generation system, secret calculation device, secret random number generation method, and program
US9336363B2 (en) Method and system for secure deployment of information technology (IT) solutions in untrusted environments
JP6693503B2 (ja) 秘匿検索システム、サーバ装置、秘匿検索方法、検索方法、およびプログラム
KR20150002821A (ko) 복수의 저장 서비스 제공자들에 분산 및 저장된 파일의 기밀성을 보호하기 위한 방법
JP6091394B2 (ja) 情報処理装置、暗号化方法

Legal Events

Date Code Title Description
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: 20140401

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140417

R150 Certificate of patent or registration of utility model

Ref document number: 5530025

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

LAPS Cancellation because of no payment of annual fees