JP2023142597A - 秘密分散方法 - Google Patents

秘密分散方法 Download PDF

Info

Publication number
JP2023142597A
JP2023142597A JP2022049561A JP2022049561A JP2023142597A JP 2023142597 A JP2023142597 A JP 2023142597A JP 2022049561 A JP2022049561 A JP 2022049561A JP 2022049561 A JP2022049561 A JP 2022049561A JP 2023142597 A JP2023142597 A JP 2023142597A
Authority
JP
Japan
Prior art keywords
data
distributed
equation
data string
distribution
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
JP2022049561A
Other languages
English (en)
Other versions
JP7307429B1 (ja
Inventor
博資 山本
Hirosuke Yamamoto
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.)
Leading Edge Co Ltd
Original Assignee
Leading Edge Co Ltd
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 Leading Edge Co Ltd filed Critical Leading Edge Co Ltd
Priority to JP2022049561A priority Critical patent/JP7307429B1/ja
Application granted granted Critical
Publication of JP7307429B1 publication Critical patent/JP7307429B1/ja
Publication of JP2023142597A publication Critical patent/JP2023142597A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

【課題】簡単な演算で符号化・復号化できる秘密分散法を提供する。【解決手段】秘密情報システムにおいて、クライアント装置2の分散データ生成部14は、秘密情報Sを分散対象データとして分散総数に応じた分散データを生成する分散データ生成機能を備える。データ復元部15は、すべての分散データから元の分散対象データを再構成する再構成機能を備える。分散データ生成部14は、分散データ生成機能を使って分散対象データからn個の分散データを生成する。このときマルチプレックスシークレットシェリング「(n,n)―n―MSS」を用いる。データ復元部15の再構成機能は、基本的に分散データ生成機能と逆の処理を実行することで全ての分散データから元の分散対象データを再構成する。【選択図】図2

Description

特許法第30条第2項適用申請有り 「第44回情報理論とその応用シンポジウム(SITA2021)」の講演予稿集において、「多重秘密分散法」に関する研究を公開 公開日:2021年12月1日
特許法第30条第2項適用申請有り 「第44回情報理論とその応用シンポジウム(SITA2021)」において、「多重秘密分散法」に関する研究を公開 開催日:2021年12月9日
本発明は、分散対象データとなる秘密情報を複数の分散データ(分散片)に分散化し、分散データが揃うことで前記秘密情報を復元する秘密分散方法(以下、秘密分散法と省略する。)に関する。
秘密分散法(secret sharing scheme,SSS)は、重要な情報(秘密情報)を破壊や漏洩などの脅威から守るための符号化として広く使用されている。
例えば非特許文献1~3の(k,n)しきい値秘密分散法「(k,n)-SSS」によれば、秘密情報Sがn個の分散データ、即ちシェア「Wj,j=1,2,・・・,n」に分散符号化され、任意のk個のシェアから複合化できる一方、任意の「k-1」個のシェアからは秘密情報Sがまったく分からないという特性を持つ。
ところが、各「Wj」のビット長は、少なくとも秘密情報Sと同じビット長を必要とするため、全シェアのトータルのビット長は秘密情報Sのビット長のn倍となり、各シェアのサイズを秘密情報のサイズより小さくできず、符号化効率が悪い欠点がある。
このような欠点は、非特許文献4,5のしきい値ランプ(ramp)秘密分散法「(k,L,n)-RSS」を用いて改善することができる。この手法では、秘密情報Sが、「S=(S1,S2,…,SL)」に分割されて符号化され、任意のk個のシェアからはSの情報が全く分からないという特性を持つ。
このとき各シェア「Wj」のビット長は、秘密情報Sのビット長の「1/L」となり、前記欠点が解消される。ただし、シェアの個数「t」が「k-L≦t≦k」の場合は、秘密情報Sに関して「(k-t)/L」の割合のあいまいさが残り弱安全となってしまう。
秘密情報Sを分割した各Sjを個別の秘密情報と考えれば、「(k,L,n)-RSS」は、秘密情報(S1,S2,・・・,SL)をシェア「Wj,j=1,2,・・・,n」に多重に符号化する秘密分散法と考えることができる。しかし、「shamir」の「(k,n)-SSS」と同様にk次の多項式を用いる「(k,L,n)-RSS」では、すべての「Si」が(k,n)しきい値特性を満たすとは限らず、秘密情報(S1,S2,・・・,SL)の多重秘密分散法としては使用できない。そこで、非特許文献4により定義された強安全な「(k,L,n)-RSSS」が提案されている。
≪従来のしきい値秘密分散法≫
(k,n)しきい値秘密分散法「(k,n)-SSS」と、(k,L,n)しきい値ランプ秘密分散法「(k,L,n)-RSSS」と、強安全な「(k,L,n)-RSSS」とのそれぞれが満たすべき条件を説明する。
(1)(k,n)しきい値法
秘密情報Sは、有限離散集合上で一様分布するものとする。秘密情報Sを分散符号化したシェア「Wj,j=1,2,・・・,n」に対して、任意の「Wj1,Wj2,・・・,Wjk」が、以下に示す式(1)(2)の条件を満たすとき、その分散法を「(k,n)-SSS」という。
Figure 2023142597000002
Figure 2023142597000003
この条件を満たすためには、各シェア「Wj」は式(3)を満たさなければならない。
Figure 2023142597000004
式(3)を等号で満たす方式として、非特許文献1の(k-1)次の多項式を用いる「Shamir」の「(k,n)-SSS」がある。「S=GF(q)」とし、「U1,U2,・・・,Uk-1」を「S」上の値をとる互いに独立な一様乱とする。このとき式(4)に示す(k-1)次の多項式と、「αj∈GF(q),j=1,2,・・・,n」とに対して、シェア「Wj」は式(5)のように決まる。
Figure 2023142597000005
Figure 2023142597000006
(2)(k,L,n)しきい値法
任意の「Wj1,Wj2,・・・,Wjt」が、式(6)の条件を満たすとき「(k,L,n)-RSSS」という。
Figure 2023142597000007
秘密情報Sを,「S=(S1,S2,・・・,SL)とL分割し、「S=^SL(^S=GF(^q),q=^qL)とする。秘密情報Sが有限離散集合S上を一様分布するとき、各「Si」は「^S)」上を一様分布する。このとき各シェア「Wj」は式(7)を満たさなければならない。
Figure 2023142597000008
式(10)の符号化法を用いれば,式(7)を等号で達成できる。したがって、「(k,L,n)-RSSS」を用いれば、「(k,n)-SSS」に比べて、シェアのビット長を「1/L」にすることができる。「(k,L,n)-RSSS」は、「Shamirの(k,n)-SSS」と同様に、(k-1)次の多項式を用いて式(8)のように構成することができる。
Figure 2023142597000009
「Ul,l=1,2,・・・,k-L」は、「^S」上の値をとる互いに独立な一様乱数である。この「Shamir」型の「(k,L,n)-RSSS」は、式(6)の条件を満たすが、各「Si」は(k,n)しきい値特性を満たすとは限らない。
すなわち、一部の「Si」は、k個より少ないシェアで復号できる可能性がある(非特許文献6参照)。この安全性の問題点を解決したものが、非特許文献4のが「強安全ランプしきい値秘密分散法」である。これは任意の「Wj1,Wj2,・・・,Wjt」と任意の「Si1,Si2,・・・,Sik-t」に対して、式(6)に加えて式(9)の条件を満たす。
Figure 2023142597000010
上記の特性より、(k-1)個のシェアが集まっても、任意の「Si」に関して全く情報が漏洩しない。式(9)の特性を達成する符号化は、式(10)のように線形演算で実現できる(非特許文献4参照)。
Figure 2023142597000011
ここで「G」は、「k×n」の行列であり,G=[gij]は、式(11)の条件を満たすものする。
Figure 2023142597000012
「^G」を式(11)と定義したとき、「^G」の任意のk列が線形独立である。
≪(k,n)しきい値L多重秘密分散法≫
各「Si,i=1,2,・・・,L」を「^S」上の値をとる互いに独立な秘密情報と考えると、強安全な「(k,L,n)-RSSS」は式(9)に示すように、各「Si」が「(k,n)しきい値」の特性を満たすため、L個の独立な秘密情報「Si」を多重化して一度に「k,n)-RSSS」符号化を行っていると考えることができる。
しかしながら、式(9)は、個別の「Si」に対する「(k,n)しきい値特性」よりも強い安全性を要求しており、自由度が制限されている。
そこで、個別の「Si」に対する「(k,n)しきい値特性」のみを要求する多重秘密分散法「multiplex SSS」が定義された。
(1)定義内容
各「Si,i=1,2,・・・」,「L,1≦L≦k」に対して、任意の「Wj1,Wj2,・・・,Wjk」が、式(12)(13)を満たすとき、(k,n)しきい値L多重秘密分散法「(k,n)-L-MSSS」という。
「L=1」の場合は、通常の「(k,n)-SSS」となる。また、式(9)を満たせば、式(13)が成り立つ。
したがって,強安全な「(k,L,n)-RSSS」は、「(k,n)-L-MSSS」の条件を満たす。一方、「Shamir」型の「(k,L,n)-RSSS」は、「(k,n)-L-MSSS」の条件を満たすとは限らない。したがって、「RSSS」と「MSSS」は,図1に示す関係となる。式(12)(13)の条件を満たすとき、各シェア「Wj」のビット長は、式(3)と同様に,式(14)を満たさなければならない。
Figure 2023142597000013
Figure 2023142597000014
Figure 2023142597000015
式(14)式を等号で満たす「(k,n)-L-MSSS」を、式(10)の線形演算を用いて実現する場合を考える。
式(10)の行列G=[gij]と、式(15)に対して、k×(n+1)行列^Giを、「^Gi=[eiG]と定義する。このとき次の定理が成り立つ。
Figure 2023142597000016
(2)定理
A:定理内容
「i=1,2,・・・,L」の各々に対して、「^Gi」の任意のk列が線形独立なとき、式(11)で与えられる秘密分散法は、「(k,n)-L-MSSS」である。
B:証明
前記定理を次の通り証明する。
(a)まず、k個のシェア「Wj1,Wj2,・・・,Wjk」が与えられた場合を考える。このとき「Jk:={j1,j2,・・・,jk}」に対応したGの列からなる「k×k」行列を「^GJk」とすると、
「(Wj1,Wj2,・・・,Wjk)=(S1,・・・,SL,U1,・・・,Uk-L)^GJk」を満たす。前記定理(仮定)によれば、行列「^GJk」のすべての列が線形独立なため、その逆行列「^G-1 Jk」が存在し、
(S1,・・・,SL,U1,・・・,Uk-L)=(Wj1,Wj2,・・・,Wjk)^G-1 Jk
により、すべての「Si,i=1,2,・・・,L」がk個のシェアから復号でき、式(12)が成り立つ。
(b)つぎに(k-1)個のシェア「Wj1,Wj2,・・・,Wjk-1」が与えられた場合を考える。「Jk-1:={j1,j2,・・・,jk-1}」に対応したGの列からなる「k×(k-1)」行列を「^GJk-1」とし、「ei」と「^GJk-1」とから構成される「k×k」行列を「^Gi,Jk-1=[ei^GJk-1]」とする。
このとき前記定理(仮定)により、「^Gi,Jk-1」のすべての列が線形独立なため、「Jk-1」の列の線形結合で「ei」を作ることができない。すなわち、「Si」を「Wj1,Wj2,・・・,Wj-1」から構成することはできず、「Si,i=1,・・・,L,」および「Ul,l=1,・・,k-L」が「^S」上を一様分布することから、式(13)が成り立つ。
前記定理の条件を満たす行列Gを用いて、式(10)で符号化する「(k,n)-L-MSSS」では、各「Si」と各「Ul」が「^S」上を一様分布すれば、各「Wj」も「^S」上を一様分布する。
そのため、「(k,L,n)-RSSS」の場合と同様に(S1,S2,・・・,SL)に対するシェアのビット長は、(k,n)しきい値法をL回用いる場合に比べて、「1/L」に削減できる。
図1に示すように、「(k,L,n)-RSSS」は、「(k,n)-L-MSSS」でもあるため、新たに「(k,n)-L-MSSS」を考える必要がなく、「(k,n)-L-MSSS」を使用すればよいとも考えられる。
ところが、式(10)の行列Gが満たさなければならない条件についてみれば、「(k,L,n)-RSSS」より「(k,n)-L-MSSS」の方が緩いため、符号化・復号化の演算が「(k,L,n)-RSSS」より「(k,n)-L-MSSS」の方がシンプルとなり、実装化が容易となる。
そこで、「(n,n)-SSS」が提案されている。「(n,n)-SSS」は、「k<n」の「(k,n)-SSS」に比べて、式(16)(17)の符号化・式(18)の復号化を行うことができる特徴を有している。
Figure 2023142597000017
Figure 2023142597000018
Figure 2023142597000019
A. Shamir, "How to share a secret," Communicationsof the ACM, vol. 22, no. 11, pp. 612_613,1979. G. R. Blakley, "Safeguarding cryptographic keys,"Proc. of 1979 International Workshop on Managing Requirements Knowledge (MARK), pp.313_317, 1979 E. D. Karnin, J. W. Greemne, M. E. Hellman, "On secret sharing systems," IEEE Trans. on Information Theory, vol. IT-29, no. 1, pp. 35_41, 1983 山本博資, "(k, L, n) しきい値秘密分散システム,"電子通信学会論文誌, vol.J68-A, no.9, pp.945-952 Sep. 1985 G. R. Blakley and C. Meadows, "Security of ramp schemes," Advances in Cryptology-CRYPTO’84,LNCS 196, Springer-Verlag, pp. 242_269, 1985 M. Iwamoto and H. Yamamoto, "Strongly Secure Ramp Secret Sharing Schemes for General Access Structures," Information Processing Letters,vol. 97, issue 2, pp.52-57, 2006. 伊藤, 斎藤, 西関, "一般的なアクセス構造を実現する秘密共有法," 電子情報通信学会論文誌, vol. J71-A,no. 8, pp. 1592_1598, 1988 M. Itoh, A. Saito and T._Nishizeki, "Multiple assignmentscheme for sharing secret," J. of Cryptology,vol. 6, pp. 15_20, 1993 ISO/IEC, "Information technology _ Security techniques _ Secret sharing_, Part 2: Fundamental mechanisms," International Standard, ISO/IEC 1952-2, 2017 五十嵐大,露崎浩太,川原祐斗 "SHH:オブジェクトストレージ向けの超高速秘密分散ライブラリ"情報処理学会研究報告 Vol.2015-CSEC-70 No.26,Vol.2015-SPT-14 No.26,2015/7/3
「(n,n)-SSS」は、非特許文献7~9に示すように、一般アクセス構造を持つ秘密分散方式を簡単に構成することができるため、様々なところで利用されている。
しかしながら、一般の「(k,n)-SSS」と同様に、「(n,n)-SSS」の各シェアのビット長は秘密情報Sと同じビット長になり、シェア全体のビット長は「S」のn倍となってしまう。
この欠点を克服するために、「(n,n,n)-RSSS」を使えば、シェア全体のビット長を秘密情報Sと同じビット長まで減らすことができる。ところが、「(n,n,n)-RSSS」は,「(n,n)-SSS」のような簡単な演算で符号化・復号化ができる構成にはならないため、実装が容易ではない。
本発明は、このような従来の問題を解決するためになされ、簡単な演算で符号化・復号化できる秘密分散法を提供することを解決課題としている。
(1)コンピュータを用いて分散対象データを複数の分散データに分散し、前記分散データから前記分散対象データを復元する方法であって、
前記分散データを生成する分散ステップと、
前記分散対象データを再構成する復元ステップと、
を備え、
前記分散ステップは、前記分散対象データと、事前に設定された前記分散データの分散総数「n」と、前記分散対象データのデータ長(L)とを読み込む第1ステップと、
乱数を生成し、前記乱数と前記分散対象データのデータ長(L)と前記分散対象データとのデータ列を作成する第2ステップと、
前記データ列を独立一様分布化する第3ステップと、
前記独立一様分布化した前記データ列Sを「n×8」のブロックに分割し、分割された各ブロックに対して式(33)の演算を実行し、分散データ「Wzy」を求める第4ステップと、
Figure 2023142597000020
を有する一方、
前記復元ステップは、前記分散データをもとに式(37)の演算を実行し、分散対象データを復号する第5ステップと、
Figure 2023142597000021
前記復号したデータ列に対して第3ステップの独立一様化と逆の操作を実行する第6ステップと、
前記第6ステップの操作で生成されたデータ列から分散対象データを抽出することで分散対象データを復元する第7ステップと、
を有することを特徴としている。
(2)前記第3ステップの一態様は、事前に有限体上で適切なマトリクスをもって演算し、行列の要素で乱数を定める第8ステップと、
前記独立一様分布化前のデータ列Xに対し、前から順に前記行列の演算を施して新たなデータ列Yを生成する第9ステップと、
前記データ列Y中の隣り合うデータ間において、上位の任意ビットと下位の任意ビットとの置換を順に行って新たなデータ列Zを生成する第10ステップと、
前記データ列Zに対し、後ろから順に前記行列の演算を施して新たなデータ列Sを独立一様分布化されたデータとして生成する第11ステップと、
を有することを特徴としている。
(3)前記第8ステップの一態様は、式(34)により「法264」上で前記行列の要素を乱数で定め、その逆行列を求め、
Figure 2023142597000022
mod264:法264
前記第9ステップは、式(35)により前記データ列Yを生成し、
前記第11ステップは、式(36)により前記データ列Sを生成する
Figure 2023142597000023
Figure 2023142597000024
ことを特徴としている。
(4)前記分散ステップの一態様は、分散対象データのハッシュ値を求めて設定するステップをさらに有する一方、
前記復元ステップの一態様は、前記第7ステップで抽出された分散対象データのハッシュ値を求めて前記設定されたハッシュ値と比較し、復元された前記分散対象データの正否を判定するステップをさらに有する
ことを特徴としている。
本発明によれば、簡単な演算で符号化・復号化できる秘密分散法を提供できるため、実装化が容易である。
MSSとRSSとの関係図。 本発明の実施形態に係る秘密分散法を実現するシステム構成図。 同 コンピュータ構成図。 同 秘密分散法の概略図。 同 秘密分散機能の処理図。 同 独立一様分布化(S04)中のS12の処理図。 同 再構成機能の処理図。
以下、本発明の実施形態に係る秘密分散法を説明する。この秘密分散法は、マルチプレックスシークレットシェリング「multiplex SSS/(n,n)-n-MSS」を採用する。
この「(n,n)-n-MSS」は、
(1)分散データ(シェア「Wj,j=1,2,・・・,n」)の合計容量が、元の秘密情報Sのデータ容量とほぼ同じ
(2)計算量が少なく高速処理が可能
(3)分散データの漏洩に対する完全秘匿性
の利点を有している。
また、「(n,n)-n-MSSS」では乱数Ulを用いず、式(19)のような演算となる。
Figure 2023142597000025
ここでGは「n×n」行列であり、各「Gi=[ei G]」に対して「Gi」の任意のn列が線形独立でなければならない。「GF(q)」が素体の場合、例えばGとして、式(20)の行列を用いることができる(ただし、q≫nとする。)。
Figure 2023142597000026
このとき符号化は式(21)(22)の演算で行うことができる。
Figure 2023142597000027
Figure 2023142597000028
また、復号化は式(23)(24)の演算で行うことができる。
Figure 2023142597000029
Figure 2023142597000030
式(24)は、「^V=Σn j=1j=[Σn i=1]+nV=(n+1)Vの関係があることから成り立つ。GF(q)が「q=2m」の拡大体の場合は、例えば「G」として式(25)の行列を用いることができる。ただし、「q≫n」とし、「α」をGF(2m)の原始元とする。
Figure 2023142597000031
このとき符号化は、式(26)(27)の演算で行うことができる。
Figure 2023142597000032
Figure 2023142597000033
また、複合化は、式(28)(29)の演算で行うことができる。
Figure 2023142597000034
Figure 2023142597000035
式(29)の関係は、「式(26)-式(28)」により、式(30)の関係が成り立つことから得られる。
Figure 2023142597000036
このような「(n,n)-n-MSSS」の安全性について補足説明すれば、式(27)の関係により、2つのシェア(Wj1,Wj2)から「(Wj1-Wj2)(α-1)-1=Sj1-Sj2」の値が分かる。しかしながら、Sj1とSj2が互いに独立で、「^S」上で一様分布している場合には、式(31)(32)を満たす。
Figure 2023142597000037
Figure 2023142597000038
ただし、「H(Sj1j2|Wj1,Wj2)=log|^S|=m」となるため、「n≧4」のときは強安全な「(n,n,n)-RSSS」の条件を満たしていない。この点については、「m=64(q=264)」あるいは「m=128(q=2128)程度以上の「m」を用いれば十分な安全性を保つことができる。
このとき各「Si」が互いに独立でない場合や、「Si」が「^S」上で一様分布をしない場合(冗長性を含んでいる場合)は冗長性を取り除く処理を事前に行う必要がある。このような「(n,n)-n-MSSS」を多重割り当て法で利用すれば、一般アクセス構造に対する「n多重秘密分散法」を実現することができる。
前記秘密分散法の実施例を説明する。この実施例は、本発明を実施するための一例にすぎず、本発明の技術的範囲を限定するための解釈に用いてはならないものとする。
≪システム構成例≫
図2および図3に基づき本実施例の前記秘密分散法を実行する秘密分散システムの構成例を説明する。このシステム1は、クライアント装置2と複数の保管サーバ装置3とを備え、両者2,3をネットワーク経由で接続したコンピュータネットワークにより構成されている。
図2中の3-1,3-2,3-nは、クライアント装置2にネットワーク4を経由して接続されたn台の保管サーバ装置3を示している。この保管サーバ装置3は、その一部または全部が同一の組織によって運用されてもよく、あるいは全部が異なる組織に運用されてもよいものとする。
クライアント装置2は、通信部11,制御部12,入出力部13,分散データ生成部(秘密分散ライブラリ)14,データ復元部15,乱数生成部16を実装する。この通信部11は保管サーバ等の他の装置との通信を行い、制御部12はクライアント装置2の全体制御を行い、入出力部13は保管サーバ装置3への指示およびデータ等の入力・保管管理サーバ3からの指示およびデータ等の出力を行う。
分散データ生成部14は、分散対象データ(秘密情報S)を符号分散化した分散データ(シェア「Wj,j=1,2,・・・,n」)を生成するとともに、秘密情報分散装置として分散データのそれぞれを保管サーバ装置3に配布する。また、データ復元部15は、保管サーバ装置3から分散データを収集して分散対象データの復元を行う。なお、乱数生成部16は、分散データ生成部14の指示に応じて乱数を生成する。
保管サーバ装置3は、通信部21,分散データ保存部22を実装する。この通信部21はクライアント装置2等の他の装置との通信を行い、分散データ保存部22は分散データ生成部14の生成した分散データが保存される。
すなわち、分散データ生成部14の生成した分散データは、通信部11,21により保管サーバ装置3に送信されて分散データ保存部22に保存される。ここで保存された分散データは分散対象データの復元時にクライアント装置2に通信部11,12により送信され、データ復元部15により分散対象データが復元される。
このような保管サーバ装置3およびクライアント装置2は、それぞれ図3のコンピュータを主体に構成され、通信装置51,入出力装置52,メモリ(主記憶装置)53,補助記憶装置(SSD,HDDなど)54,CPU55,出力装置56を備え、各ハードウェア51~56がバス57を介して接続されており、各ハードウェアとソフトウェアとの協働により前記機能部13~16,21,22を実装する。以下、秘密分散法の主要構成である分散データ生成部14,データ復元部15の処理内容を説明する。
≪分散データ生成部14,データ復元部15の処理内容≫
分散データ生成部14は、秘密情報Sを分散対象データとして事前に定められた分散総数に応じた分散データを生成する分散データ生成機能(関数:mass_generate)を備える。一方、データ復元部15は、すべての分散データから元の分散対象データを再構成する再構成機能(関数:mass_reconstruct/)を備える。
(1)分散データ生成機能
分散データ生成部14は、図4中の矢印A,Bに示すように、分散データ生成機能を使って分散対象データからn個の分散データを生成する。このときマルチプレックスシークレットシェリング「(n,n)-n-MSS」を用いる。
また、前記関数の引数(入力)の1次元配列Siには、分散対象データなどが格納される。その際に分散総数(n:2~65535)および分散対象データ長(バイト)が指定される。以下、図5に基づき分散データ生成機能による処理内容を説明する。
S01:処理が開始されると、前記関数の引数(入力)の1次配列Si「unsigned char*Si」の先頭アドレスに設定された分散総数n(2バイト)・分散対象データ長L(8バイト)・分散対象データ(Lバイト)が読み込まれる。
S02:分散対象データのハッシュ値(OpenSSLのSHA-256)を求める。ここで求めたハッシュ値(32バイト)を前記関数の引数(出力)の2次元配列CS「unsigned char*CS」の先頭アドレスに設定する。
S03:乱数生成部16に指示を出力し、乱数(8バイト)を生成させる。ここで生成された乱数を取得して「乱数+分散対象データ長L+分散対象データ」のデータ列を作成する。その際、データ列のバイト数が「n×8」の倍数でない場合は、データ列の後ろに「x’00’」をパディングして「n×8」の倍数とすればよい。
S04:S03で生成したデータ列を後述のように独立一様分布化する。
S05:S04で独立一様化したデータ列Sを「n×8」のブロックに分割し、分割された各ブロックに対して、非特許文献10の「GF(2)64」上で式(33)の演算を実行し、分散データ「Wzy」を求める。
Figure 2023142597000039
S06:S05で求めた分散データ「Wzy」を、前記関数の引数(出力)の2次元配列スSniに設定する。このとき分散番号iの分散データは、前記2次元配列Sniのi行目に割り当てる。例えば分散番号1であれば1行目に割り当てられ、分散番号2であれば2行目に割り当てられる。
(2)S04の詳細
「(n,n)-n-MSS」によれば、安全性をクリアするためのアルゴリズム上の制約として、「S(秘密情報:分散対象データ)=(S1y,S2y,・・・,Sxy)」に対して、各「Sxy」が独立で一様分布する必要がある。そこで、S04では、以下に示す独立一様分布化の処理を行う。
S11:処理が開始されると、有限体上で適切なマトリクスをもって乗算を行う。例えば式(34)に示すように、「法264(1word 64bit)/GF(2)64」上で行列Aの要素を乱数で決め、その逆行列Bを求めておくものとする。逆行列Bは、行列式|A|の値が「264」と互いに素、即ち奇数であれば求めることができる。
Figure 2023142597000040
「mod264」=法264
S12:独立一様分布化する前のデータ列に対し、前から順に「法264」上で行列Aの演算を行って新たなデータ列を生成する。
Figure 2023142597000041
式(35)に基づき処理例を説明する。ここでは独立一様分布化する前のデータ列をデータ列X(X(1)(2)(3)(4)(5)(6))と示している。また、新たなデータ列をデータ列Y(Y(1)(2)(3)(4)(5)(6))と示している。なお、この処理例の各生成は、それぞれ「法264」上における行列Aの演算を利用しているものとする。
まず、式(35-1)に示すように、データ列X中の(X(1)(2)(3))に対し、前記演算を行って式(35-2)の(Y(1)(2)(3))を生成する。つぎに(35-3)に示すように、データ列X中の(X(2)(3)(4))に対し、前記演算を行って式(35-4)の(Y(2)(3)(4))を生成する。
このようにデータ列X中の(X(1)(2)(3)(4)(5)(6))の前から順に3個ずつ前記演算を行って、式(35-6)に示すように、(Y(1)(2)(3)(4)(5)(6))を生成する。
その後、式(35-7)に示すように、(Y(4)(5)(6))を乱数(X(M-2)(M-1)(M)にて暗号化し、(Y(M-2)(M-1)(M))を生成する。ここで生成された(Y(M-2)(M-1)(M))に対し、式(38-8)に示すように、前記演算を行って(Y(M-2)(M-1)(M))を生成し、データ列(Y(1)(2)(3)(4)(5)(6))を生成する。
S13:S12で生成したデータ列Yに対し、隣接するデータ間で上位32ビット(bit)と下位32ビットの置換を行って、新たなデータ列Zを生成する。
例えば図6に示すように、データY(1)の下位32ビットとデータY(2)の上位32ビットを置換し、データY(2)の下位32ビットとデータY(3)の上位32ビットを置換し、データY(3)の下位32ビットとデータY(4)の上位32ビットを置換し、データY(4)の下位32ビットとデータY(5)の上位32ビットを置換し、データY(5)の下位32ビットとデータY(6)の上位32ビットを置換し、データY(6)の下位32ビットとデータY(1)の上位32ビットを置換することでデータ列Zを生成する。
S14:S13で作成したデータ列Zに対し、後ろから順に「法264」上で行列Aの乗算を行って、新たなデータ列Sを生成する。
Figure 2023142597000042
式(36)に基づき処理例を説明する。この処理例の各生成も、それぞれ「法264」上における行列Aの演算を利用する。
まず、式(36-1)に示すように、データ列Z中の(Z(2)(3)(4)(5)(6))を乱数にて暗号化した(Z(M-4)(M-3)(M-2)(M-1)(M))を用意する。
つぎに式(36-2)(36-3)に示すように、(Z(M-4)(M-3)(M-2)(M-1)(M))中の(Z(M-2)(M-1)(M))に対し、前記演算を行って(S(M-2)(M-1)(M))を生成する。その後、式(36-4)(36-5)に示すように、(Z(M-3)(M-2)(M-1))に対し、前記演算を行って(S(M-3)(M-2)(M-1))を生成する。
このような演算処理を後ろから順に実行することで式(36-6)の(S(M-4)(M-3)(M-2)(M-1)(M))が生成され、これにより(Z(1)(2)(3)(4)(5)(6))が生成される。その後、(Z(1)(2)(3))から(S(1)(2)(3))を生成することで新たなデータ列S、即ち(S(1)(2)(3)(4)(5)(6))が生成される。
(3)再構成機能
図7に基づき再構成機能を説明する。ここでは基本的に分散データ生成機能と逆の処理を実行することにより、図4中の矢印C,Dに示すように、すべての分散データから元の分散対象データを再構成する。
S21:処理が開始されると、2次元配列Sniに設定された分散データを基に「GF(2)64」上で式(37)の演算を行い、分散対象データ「Sxy」を複合する。
Figure 2023142597000043
S22:S21で複合化した分散対象データ「Sxy」のデータ列に対し、S04の独立一様化の逆操作を実行する。具体的には
(a)行列Aの逆行列Bを用いて、前記データ列の前から順に「法264」上で行列Bの演算を行う(S12の逆操作)。
(b)前記逆行列Bの演算後のデータ列中、隣接するデータ間で上位32ビットと下位32ビットとの逆置換を行う(S13の逆操作)。
(c)前記逆置換後のデータ列に対して逆行列Bを用いて、後ろから順に「法264」上で逆行列Bの乗算を行う(S14の逆操作)。
S23:S22の逆操作に結果として生成されたデータ列から分散対象データを抽出し、ハッシュ値(OpenSSLのSHA-256)を求める。ここで求めたハッシュ値とS02のハッシュ値とを比較し、復元された分散対象データの正否確認を行う。
すなわち、両者のハッシュ値が同じであれば、正しく復元できたものとして、戻り値「0」を返す。一方、両者のハッシュ値が異なっていれば、正しく復元できなかったため、戻り値「5」を返す。この場合には再度の復元を試みる設定が好ましい。
このように前記秘密分散法によれば、簡単な演算で符号分散化・複合化を実現することができ、例えばユーザ認証システムなど採用すれば簡単な構成で分散対象の秘密情報(パスワードなど)の安全性を確保することができる。また、遺言や契約書などの画像データを分散対象の秘密情報とし、その安全性を確保することもできる。
1…秘密情報システム
2…クライアント装置
3(3-1,3-2,3-n)…保管サーバ装置
4…ネットワーク
11…通信部
12…制御部
13…入出力部
14…分散データ生成部
15…データ復元部
16…乱数生成部
21…通信部
22…保存部
23…分散データ

Claims (4)

  1. コンピュータを用いて分散対象データを複数の分散データに分散し、前記分散データから前記分散対象データを復元する方法であって、
    前記分散データを生成する分散ステップと、
    前記分散対象データを再構成する復元ステップと、
    を備え、
    前記分散ステップは、前記分散対象データと、事前に設定された前記分散データの分散総数「n」と、前記分散対象データのデータ長(L)とを読み込む第1ステップと、
    乱数を生成し、前記乱数と前記分散対象データのデータ長(L)と前記分散対象データとのデータ列を作成する第2ステップと、
    前記データ列を独立一様分布化する第3ステップと、
    前記独立一様分布化した前記データ列Sを「n×8」のブロックに分割し、分割された各ブロックに対して式(33)の演算を実行し、分散データ「Wzy」を求める第4ステップと、
    Figure 2023142597000044
    を有する一方、
    前記復元ステップは、前記分散データをもとに式(37)の演算を実行し、分散対象データを復号する第5ステップと、
    Figure 2023142597000045
    前記復号したデータ列に対して第3ステップの独立一様化と逆の操作を実行する第6ステップと、
    前記第6ステップの操作で生成されたデータ列から分散対象データを抽出することで分散対象データを復元する第7ステップと、
    を有することを特徴とする秘密分散方法。
  2. 前記第3ステップは、事前に有限体上で適切なマトリクスをもって演算し、行列の要素で乱数を定める第8ステップと、
    前記独立一様分布化前のデータ列Xに対し、前から順に前記行列の演算を施して新たなデータ列Yを生成する第9ステップと、
    前記データ列Y中の隣り合うデータ間において、上位の任意ビットと下位の任意ビットとの置換を順に行って新たなデータ列Zを生成する第10ステップと、
    前記データ列Zに対し、後ろから順に前記行列の演算を施して新たなデータ列Sを独立一様分布化されたデータとして生成する第11ステップと、
    を有することを特徴とする請求項1記載の秘密分散方法。
  3. 前記第8ステップにおいて、式(34)により「法264」上で前記行列の要素を乱数で定め、その逆行列を求め、
    Figure 2023142597000046
    mod264:法264
    前記第9ステップは、式(35)により前記データ列Yを生成し、
    前記第11ステップは、式(36)により前記データ列Sを生成する
    Figure 2023142597000047
    Figure 2023142597000048
    ことを特徴とする請求項2記載の秘密分散方法。
  4. 前記分散ステップは、分散対象データのハッシュ値を求めて設定するステップをさらに有する一方、
    前記復元ステップは、前記第7ステップで抽出された分散対象データのハッシュ値を求めて前記設定されたハッシュ値と比較し、復元された前記分散対象データの正否を判定するステップをさらに有する
    ことを特徴とする請求項1~3のいずれか記載の秘密分散方法。
JP2022049561A 2022-03-25 2022-03-25 秘密分散方法 Active JP7307429B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022049561A JP7307429B1 (ja) 2022-03-25 2022-03-25 秘密分散方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022049561A JP7307429B1 (ja) 2022-03-25 2022-03-25 秘密分散方法

Publications (2)

Publication Number Publication Date
JP7307429B1 JP7307429B1 (ja) 2023-07-12
JP2023142597A true JP2023142597A (ja) 2023-10-05

Family

ID=87072628

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022049561A Active JP7307429B1 (ja) 2022-03-25 2022-03-25 秘密分散方法

Country Status (1)

Country Link
JP (1) JP7307429B1 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012247575A (ja) 2011-05-26 2012-12-13 Kddi Corp 情報ベクトル符号化装置、情報ベクトル復元装置、情報ベクトル符号化方法、情報ベクトル復元方法およびプログラム
US11450439B2 (en) 2017-12-29 2022-09-20 Brian Hie Realizing private and practical pharmacological collaboration using a neural network architecture configured for reduced computation overhead

Also Published As

Publication number Publication date
JP7307429B1 (ja) 2023-07-12

Similar Documents

Publication Publication Date Title
Li et al. Secure deduplication with efficient and reliable convergent key management
Krawczyk Secret sharing made short
US9483656B2 (en) Efficient and secure data storage utilizing a dispersed data storage system
Resch et al. {AONT-RS}: Blending Security and Performance in Dispersed Storage Systems
JP3560860B2 (ja) 秘密分散システム、装置及び記憶媒体
US8484263B2 (en) Method for keyless protection of data using a local array of disks
JP3794457B2 (ja) データの暗号化復号化方法
US11108543B2 (en) Method for encrypting data for distributed storage
CN107592298B (zh) 一种基于单服务器模型的序列比较算法安全外包方法、用户终端和服务器
WO2016148281A1 (ja) 秘匿文字列計算システム及び方法と装置並びにプログラム
Chen et al. Light repository blockchain system with multisecret sharing for industrial big data
KR101553986B1 (ko) 분산 데이터 저장, 복원 시스템 및 방법
Li et al. Enabling secure and space-efficient metadata management in encrypted deduplication
Deryabin et al. Secure verifiable secret short sharing scheme for multi-cloud storage
JP7307429B1 (ja) 秘密分散方法
EP4080488B1 (en) Secret random number generation system, secret calculation device, secret random number generation method, and program
EP4186204A1 (en) Methods and systems for the implementation of ntru-like cryptosystem relying on optical fourier transforms
Marwan et al. A cloud solution for securing medical image storage
JP5388684B2 (ja) 分散情報生成装置、秘密情報復元装置、分散情報生成方法、秘密情報復元方法およびプログラム
Naskar et al. A novel image secret sharing scheme
Kapusta et al. A fast fragmentation algorithm for data protection in a multi-cloud environment
Beyene et al. Performance Analysis of Homomorphic Cryptosystem on Data Security in Cloud Computing
WO2023243141A1 (ja) 連合学習システム及び連合学習方法
JP7428335B1 (ja) 秘密分散方法、秘密分散システム、秘密分散プログラム
Therese et al. Mathematical Modelling of Cryptographic Approaches in Cloud Computing Scenario

Legal Events

Date Code Title Description
A80 Written request to apply exceptions to lack of novelty of invention

Free format text: JAPANESE INTERMEDIATE CODE: A80

Effective date: 20220331

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230328

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20230328

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230621

R150 Certificate of patent or registration of utility model

Ref document number: 7307429

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150