JP6777816B2 - 秘密改ざん検知システム、秘密改ざん検知装置、秘密改ざん検知方法、およびプログラム - Google Patents

秘密改ざん検知システム、秘密改ざん検知装置、秘密改ざん検知方法、およびプログラム Download PDF

Info

Publication number
JP6777816B2
JP6777816B2 JP2019519571A JP2019519571A JP6777816B2 JP 6777816 B2 JP6777816 B2 JP 6777816B2 JP 2019519571 A JP2019519571 A JP 2019519571A JP 2019519571 A JP2019519571 A JP 2019519571A JP 6777816 B2 JP6777816 B2 JP 6777816B2
Authority
JP
Japan
Prior art keywords
share
vector
secret
integer
tampering detection
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.)
Active
Application number
JP2019519571A
Other languages
English (en)
Other versions
JPWO2018216512A1 (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2018216512A1 publication Critical patent/JPWO2018216512A1/ja
Application granted granted Critical
Publication of JP6777816B2 publication Critical patent/JP6777816B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • 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/002Countermeasures against attacks on cryptographic mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Description

この発明は秘密計算技術に関し、特に、秘匿性を保ったまま秘密計算中の改ざんを検知する技術に関する。
秘密計算において秘匿性を保ったまま改ざんを検知する技術には、例えば、非特許文献1に記載された技術がある。非特許文献1に記載された従来技術では、multiplication tripleと呼ばれる事前データを生成し、そのmultiplication tripleを用いて秘密計算中の改ざんを検知する技術が記載されている。
J. Furukawa, Y. Lindell, A. Nof, and O. Weinstein. "High-throughput secure three-party computation for malicious adversaries and an honest majority". IACR Cryptology ePrint Archive, 2016:944, 2016.
従来技術ではmultiplication tripleを事前に生成する必要があり、これにより通信量が増加する場合がある。
この発明の目的は、少ない通信量で秘匿性を保ったまま秘密計算中の改ざんを検知することができる秘密改ざん検知技術を提供することである。
上記の課題を解決するために、この発明の秘密改ざん検知システムは、σは1以上の任意の整数を表し、N, Dは所定の自然数を表し、iは0以上σ未満の各整数を表し、jは0以上D未満の各整数を表し、少なくとも3台の秘密改ざん検知装置を含み、復元すると要素数Nのベクトルxとなるシェア[x]と、復元すると要素数Nのベクトルyとなるシェア[y]とを入力とし、復元するとベクトルxとベクトルyとを要素ごとに乗算した結果のベクトルzとなるシェア[z]を出力する秘密改ざん検知システムであって、秘密改ざん検知装置は、各整数iについて、復元すると要素数N+Dの乱数ベクトルriとなるσ個のシェア[ri]と、復元すると要素数N+Dの乱数ベクトルsiとなるσ個のシェア[si]とを生成する乱数生成部と、各整数iについて、シェア[ri]とシェア[si]とを秘密計算により乗算して、復元するとベクトルriとベクトルsiとを要素ごとに乗算した結果のベクトルtiとなるσ個のシェア[ti]を生成する乱数乗算部と、シェア[x]とシェア[y]とを秘密計算により乗算して、シェア[z]を生成する秘密乗算部と、各整数iについて、0以上D+N未満の相異なるD個の整数pi,jをランダムに選択し、シェア[ri], [si], [ti]のうちpi,j番目の要素を公開して、シェア[ri], [si], [ti]それぞれに対応する公開した値の組が乗算として整合しているか否かを確認する乱数検証部と、各整数iについて、シェア[ri], [si], [ti]のうちpi,j番目以外の要素をランダム置換したシェア[r'i], [s'i], [t'i]を生成する乱数置換部と、各整数iについて、[x-r'i], [y-s'i]を計算して公開する減算値公開部と、各整数iについて、[ci]:=[z]-(x-r'i)[y]-(y-s'i)[r'i]-[t'i]を計算して、復元すると検証値ciのベクトルciとなるシェア[ci]を生成する検証値計算部と、各整数iについて、シェア[ci]を用いて、検証値ciがすべて0であることを確認する検証値確認部と、を含む。
この発明によれば、少ない通信量で秘匿性を保ったまま秘密計算中の改ざんを検知することができる。
図1は、秘密改ざん検知システムの機能構成を例示する図である。 図2は、秘密改ざん検知装置の機能構成を例示する図である。 図3は、秘密改ざん検知方法の処理フローを例示する図である。
以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
本明細書中で使用する、上付き添え字の右矢印「」は、ベクトルであることを表す。「」は、本来直後の文字の真上に記載されるべきものであるが、テキスト記法の制限により、当該文字の直前に記載する。数式中においては、これらの記号は本来の位置、すなわち当該文字の真上に記述する。例えば、「x」とのテキストは、数式中の次式と同じ意味である。
Figure 0006777816
[x]は、ある値xが秘密分散されていることを表す。[X]は、ある集合Xの元がすべて秘密分散されたデータの集合を表す。以下、秘密分散された値を「シェア」とも呼ぶ。xyは、ベクトルxとベクトルyとを要素ごとに乗算した結果のベクトルを表す。Fは、任意の体を表す。
この発明の実施形態は、非特許文献1に記載された改ざん検知技術を改良した改ざん検知付き乗算を行う秘密改ざん検知システムおよび方法である。実施形態の秘密改ざん検知システムおよび方法は、次式に示す改ざん検知付き乗算プロトコルを実行する。
Scheme 1: 改ざん検知付き乗算
入力: [x], [y]∈[F]N
出力: [xy]∈[F]N, ただし改ざん検知した場合は出力なし
パラメータ: σ≧1, D∈N
1: 乱数ベクトル[ri], [si]∈[F]N+Dを生成する
2: 各0≦i<σで、[ti]:=[ri si]を計算する
3: [z]:=[xy]を計算し、計算に係る通信が完了したことを確認する
4: 各0≦i<σで、位置pi,0, …, pi,D-1をランダムに選ぶ
ベクトル[ri], [si], [ti]のうち各0≦j<Dに対応するpi,j番目の要素を公開し、値が乗算として整合していることを確認する
整合していない場合、改ざんを検知して終了する
公開していない残りの要素をランダム置換πiにより置換し、ベクトル[r'i], [s'i], [t'i]∈[F]Nを得る
5: [x-r'i], [y-s'i]を公開する
6: [ci]:=[z]-(x-r'i)[y]-(y-s'i)[r'i]-[t'i]を計算する
7: 各0≦i<σで、[ci]の全要素が0であることを確認する
0以外が存在する場合、改ざんを検知して終了する
上記の改ざん検知付き乗算プロトコルでは、以下3つの秘密計算プロトコルを用いる。1つ目は、ステップ2、3で実行される改ざん検知無し乗算プロトコルである。既存の改ざん検知無し乗算プロトコルは、例えば、参考文献1などに記載されている。2つ目は、ステップ1で実行される改ざん検知付き乱数生成プロトコルである。既存の改ざん検知付き乱数生成プロトコルは、例えば、参考文献2などに記載されている。3つ目は、ステップ4、5で実行される改ざん検知付き公開プロトコルである。既存の改ざん検知付き公開プロトコルは、例えば、参考文献3などに記載されている。
〔参考文献1〕D. Ikarashi, R. Kikuchi, K. Hamada, and K. Chida. "Actively private and correctMPC scheme in t<n/2 from passively secure schemes with small overhead", IACR Cryptology ePrint Archive, 2014:304, 2014.
〔参考文献2〕R. Cramer, I. Damgard, and Y. Ishai. "Share conversion, pseudorandom secret-sharingand applications to secure computation", TCC, Vol. 3378 of Lecture Notes in Computer Science, pp. 342-362. Springer, 2005.
〔参考文献3〕特開2016−146530号公報
図1を参照して、実施形態の秘密改ざん検知システムの構成例を説明する。秘密改ざん検知システムは、K(≧3)台の秘密改ざん検知装置11, …, 1Kを含む。本形態では、秘密改ざん検知装置11, …, 1Kはそれぞれ通信網2へ接続される。通信網2は、接続される各装置が相互に通信可能なように構成された回線交換方式もしくはパケット交換方式の通信網であり、例えばインターネットやLAN(Local Area Network)、WAN(Wide Area Network)などを用いることができる。なお、各装置は必ずしも通信網2を介してオンラインで通信可能である必要はない。例えば、秘密改ざん検知装置11, …, 1Kへ入力する情報を磁気テープやUSBメモリなどの可搬型記録媒体に記憶し、その可搬型記録媒体から秘密改ざん検知装置11, …, 1Kへオフラインで入力するように構成してもよい。
図2を参照して、秘密改ざん検知システムに含まれる秘密改ざん検知装置1k(k=1, …, K)の構成例を説明する。秘密改ざん検知装置1kは、例えば、図2に示すように、入力部10、乱数生成部11、乱数乗算部12、秘密乗算部13、乱数検証部14、乱数置換部15、減算値公開部16、検証値計算部17、検証値確認部18、および出力部19を含む。この秘密改ざん検知装置1k(1≦k≦K)が他の秘密改ざん検知装置1k'(k'=1, …, K、ただしk≠k')と協調しながら後述する各ステップの処理を行うことにより実施形態の秘密改ざん検知方法が実現される。
秘密改ざん検知装置1kは、例えば、中央演算処理装置(CPU: Central Processing Unit)、主記憶装置(RAM: Random Access Memory)などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。秘密改ざん検知装置1kは、例えば、中央演算処理装置の制御のもとで各処理を実行する。秘密改ざん検知装置1kに入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて中央演算処理装置へ読み出されて他の処理に利用される。秘密改ざん検知装置1kの各処理部は、少なくとも一部が集積回路等のハードウェアによって構成されていてもよい。
図3を参照して、実施形態の秘密改ざん検知システムが実行する秘密改ざん検知方法の処理手続きを説明する。
ステップS1において、各秘密改ざん検知装置1kの入力部10へ、乗算対象とするシェア[x], [y]∈[F]Nが入力される。[x]は、復元すると要素数Nのベクトルxとなるシェアである。[y]は、復元すると要素数Nのベクトルyとなるシェアである。入力部10は、シェア[x], [y]を秘密乗算部13へ入力する。
ステップS2において、各秘密改ざん検知装置1kの乱数生成部11は、0≦i<σを満たす各整数iについて、改ざん検知付き乱数生成プロトコルを用いて、復元すると要素数N+Dの乱数ベクトルriとなるσ個のシェア[ri]と、復元すると要素数N+Dの乱数ベクトルsiとなるσ個のシェア[si]とを生成する。ここで、σはあらかじめ定めた1以上の整数である。σが大きいほど改ざん成功確率は低くなるが、計算量は増える。そのため、σの値は所望の安全性と利便性を鑑みて適宜設定すればよい。改ざん検知付き乱数生成プロトコルは、例えば、上記の参考文献2に記載されたプロトコルを適用することができる。乱数生成部11は、シェア[ri], [si]を乱数乗算部12へ入力する。
ステップS3において、各秘密改ざん検知装置1kの乱数乗算部12は、乱数生成部11からシェア[ri], [si]を受け取り、0≦i<σを満たす各整数iについて、改ざん検知無し乗算プロトコルを用いて、シェア[ri]とシェア[si]とを乗算し、復元するとベクトルriとベクトルsiとを要素ごとに乗算した結果のベクトルtiとなるσ個のシェア[ti]:=[ri si]を生成する。改ざん検知無し乗算プロトコルは、例えば、上記の参考文献1に記載されたプロトコルを適用することができる。乱数乗算部12は、シェア[ri], [si], [ti]を組にして乱数検証部14へ入力する。
ステップS4において、各秘密改ざん検知装置1kの秘密乗算部13は、入力部10からシェア[x], [y]を受け取り、改ざん検知無し乗算プロトコルを用いて、シェア[x]とシェア[y]とを乗算し、復元するとベクトルxとベクトルyとを要素ごとに乗算した結果のベクトルzとなるシェア[z]:=[xy]を計算する。秘密乗算部13は、シェア[x], [y]を減算値公開部16へ入力し、シェア[y], [z]を検証値計算部17へ入力する。
ステップS5において、各秘密改ざん検知装置1kの乱数検証部14は、乱数乗算部12からシェア[ri], [si], [ti]の組を受け取り、0≦i<σを満たす各整数iについて、0以上D+N未満の相異なるD個の整数pi,0, …, pi,D-1をランダムに選択する。ここで、Dは所定の自然数である。続いて、乱数検証部14は、改ざん検知付き公開プロトコルを用いて、シェア[ri], [si], [ti]のうち、0≦j<Dを満たす各整数jに対応するpi,j番目の要素を公開して、シェア[ri], [si], [ti]それぞれに対応する公開した値の組が乗算として整合しているか否かを確認する。改ざん検知付き公開プロトコルは、例えば、上記の参考文献3に記載されたプロトコルを適用することができる。乗算として整合していない値の組が存在した場合、改ざんを検知した旨を表す情報を出力部19から出力して処理を終了する。各値の組がすべて乗算として整合している場合、乱数検証部14は、シェア[ri], [si], [ti]および整数pi,jを乱数置換部15へ入力する。
ステップS6において、乱数置換部15は、乱数検証部14からシェア[ri], [si], [ti]および整数pi,jを受け取り、0≦i<σを満たす各整数iについて、シェア[ri], [si], [ti]のうち、公開していない要素(すなわち、pi,j番目以外の要素)を、あらかじめ定めたランダム置換πiにより置換して、シェア[r'i], [s'i], [t'i]∈[F]Nを生成する。乱数置換部15は、シェア[r'i], [s'i]を減算値公開部16へ入力し、シェア[r'i], [t'i]を検証値計算部17へ入力する。
ステップS7において、各秘密改ざん検知装置1kの減算値公開部16は、秘密乗算部13からシェア[x], [y]を、乱数置換部15からシェア[r'i], [s'i]を受け取り、0≦i<σを満たす各整数iについて、改ざん検知付き公開プロトコルを用いて、[x-r'i]および[y-s'i]を計算して公開する。減算値公開部16は、公開したベクトル(x-r'i), (y-s'i)を検証値計算部17へ入力する。
ステップS8において、各秘密改ざん検知装置1kの検証値計算部17は、秘密乗算部13からシェア[y], [z]を、乱数置換部15からシェア[r'i], [t'i]を、減算値公開部16からベクトル(x-r'i), (y-s'i)を受け取り、0≦i<σを満たす各整数iについて、式(1)を計算して、復元すると検証値ciのベクトルciとなるシェア[ci]を生成する。検証値計算部17は、シェア[z], [ci]を検証値確認部18へ入力する。
Figure 0006777816
ステップS9において、各秘密改ざん検知装置1kの検証値確認部18は、検証値計算部17からシェア[z], [ci]を受け取り、0≦i<σを満たす各整数iについて、改ざん検知付き公開プロトコルを用いて、シェア[ci]から検証値ciのベクトルciを公開する。そして、検証値確認部18は、公開したベクトルciの全要素が0であることを確認する。ここで、公開したベクトルciに0でない要素が含まれている場合、改ざんを検知した旨を表す情報を出力部19から出力して処理を終了する。公開したベクトルciの全要素が0である場合、検証値確認部18は、受け取ったベクトル[z]を出力部19へ入力する。
ステップS10において、各秘密改ざん検知装置1kの出力部19は、検証値確認部18から受け取ったベクトル[z]を出力する。
一般に、改ざん検知無し乗算プロトコルでは、攻撃者が改ざんを行うことができてしまう。しかしながら、実施形態の秘密改ざん検知システムでは、ステップS4で乗算を行った後、ステップS5で乱数ベクトルの検証を行うことで改ざんを防ぐ。攻撃者が改ざんに成功するためには、ステップS3でも改ざんを行い、検証に用いるシェア[ti]も辻褄が合うように改ざんしなければならない。しかしながら、改ざんを行う数が多いほど、ステップS5の公開により、改ざんが検知される確率が高くなる。逆に、改ざんを行う数が少ないと、検証を不正に通過する確率が低くなる。このような性質をもつ検証をσ回行うことで、改ざん成功確率をO(N)とすることができる。
上記実施形態は、以下のようにして、さらに効率化することができる。上記実施形態では、ステップS9における検証値ciがすべて0であるか否かの確認を、シェア[ci]から検証値ciを公開してそれぞれ確認することとした。ここで、検証値ciのベクトルciのシェア[ci]から乱数との積和からなるチェックサムを計算し、このチェックサムが0であることを確認することにより、Nの大きさに依存しない通信量で検証値の確認を行うことができる。このようなチェックサムとしては、例えば、下記参考文献4に記載されたチェックサムを用いることができる。
〔参考文献4〕国際公開2014/112550号
参考文献4に記載されたチェックサムは、以下のように計算する。以降の説明では、qを2以上の整数とし、ρを(N+D)/q以上の最小の整数とし、Rを環とする。検証値確認部18は、復元すると検証値ciのベクトルciとなるシェア[ci]を先頭からq個ずつに分割して、ρ個の値ベクトルA0, …, Aρ-1を生成する。分割した際に最後の値ベクトルAρ-1の要素数がqとならない場合には、要素数がqとなるように任意の値(例えば0)でパディングする。検証値確認部18は、乱数r∈Rqを選択し、式(2)によりチェックサムcを計算する。
Figure 0006777816
この際、ベクトルの乗算は、式(3)(4)で定義される関数fを用いて計算する。
Figure 0006777816
ここで、αi,j,k(i=0, …, q-1; j=0, …, q-1; k=0, …, q-1)は、2つの環Rqの要素から1つの環Rqの要素へ一様に対応させるためのパラメタである。パラメタαi,j,kは複数の種類があり得るが、計算の容易さなどを考慮して、パラメタαi,j,kに含まれるq3個の値に0が最も多く含まれるものをパラメタαi,j,kとして選択することが望ましい。例えば、Rが体であり、Rqが体Rの拡大体となるようにパラメタαi,j,kを決定すれば、効率的に改ざんを検知することが可能となる。
実施形態と従来技術とで通信量を比較した結果を示す。例えば、実施形態において体Fを位数が2の有限体GF(2)とした場合と、非特許文献1に記載された技術とを比較すると、同じ改ざん成功確率O(N-2)では、非特許文献1は各パーティの通信量が約10Nビットであるのに対して、実施形態では約7Nビットで済む。
この発明のポイントは以下のとおりである。従来技術である非特許文献1では、まず、multiplication tripleに対して改ざん検知を行う。一方、この発明では、はじめから、計算したい乗算に対してmultiplication tripleを使った改ざん検知を行う。また、非特許文献1では、計算したい乗算の数の整数倍を単位として処理を行う。一方、この発明では、計算したい乗算の数と同じ単位で並列に処理できる。そのため、従来よりも効率的に改ざん検知付き乗算を行うことができる。
以上、この発明の実施の形態について説明したが、具体的な構成は、これらの実施の形態に限られるものではなく、この発明の趣旨を逸脱しない範囲で適宜設計の変更等があっても、この発明に含まれることはいうまでもない。実施の形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
<プログラム、記録媒体>
上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。

Claims (6)

  1. σは1以上の任意の整数を表し、N, Dは所定の自然数を表し、iは0以上σ未満の各整数を表し、jは0以上D未満の各整数を表し、
    少なくとも3台の秘密改ざん検知装置を含み、復元すると要素数Nのベクトルxとなるシェア[x]と、復元すると要素数Nのベクトルyとなるシェア[y]とを入力とし、復元するとベクトルxとベクトルyとを要素ごとに乗算した結果のベクトルzとなるシェア[z]を出力する秘密改ざん検知システムであって、
    上記秘密改ざん検知装置は、
    各整数iについて、復元すると要素数N+Dの乱数ベクトルriとなるσ個のシェア[ri]と、復元すると要素数N+Dの乱数ベクトルsiとなるσ個のシェア[si]とを生成する乱数生成部と、
    各整数iについて、上記シェア[ri]と上記シェア[si]とを秘密計算により乗算して、復元するとベクトルriとベクトルsiとを要素ごとに乗算した結果のベクトルtiとなるσ個のシェア[ti]を生成する乱数乗算部と、
    上記シェア[x]と上記シェア[y]とを秘密計算により乗算して、上記シェア[z]を生成する秘密乗算部と、
    各整数iについて、0以上D+N未満の相異なるD個の整数pi,jをランダムに選択し、上記シェア[ri], [si], [ti]のうちpi,j番目の要素を公開して、上記シェア[ t i ]に対応する公開した値が上記シェア[ r i ]に対応する公開した値と上記シェア[ s i ]に対応する公開した値とを乗算した結果となっているか否かを確認する乱数検証部と、
    各整数iについて、上記シェア[ri], [si], [ti]のうちpi,j番目以外の要素をランダム置換したシェア[r'i], [s'i], [t'i]を生成する乱数置換部と、
    各整数iについて、[x-r'i], [y-s'i]を計算して公開する減算値公開部と、
    各整数iについて、[ci]:=[z]-(x-r'i)[y]-(y-s'i)[r'i]-[t'i]を計算して、復元すると検証値ciのベクトルciとなるシェア[ci]を生成する検証値計算部と、
    各整数iについて、上記シェア[ci]を用いて、上記検証値ciがすべて0であることを確認する検証値確認部と、
    を含む秘密改ざん検知システム。
  2. 請求項1に記載の秘密改ざん検知システムであって、
    上記乱数生成部は、改ざん検知付き乱数生成プロトコルを用いて、上記シェア[ri]および上記シェア[si]とを生成するものであり、
    上記乱数乗算部は、改ざん検知無し乗算プロトコルを用いて、上記シェア[ri]と上記シェア[si]とを乗算するものであり、
    上記秘密乗算部は、上記改ざん検知無し乗算プロトコルを用いて、上記シェア[x]と上記シェア[y]とを乗算するものであり、
    上記乱数検証部は、改ざん検知付き公開プロトコルを用いて、上記シェア[ri], [si], [ti]のうちpi,j番目の要素を公開するものであり、
    上記減算値公開部は、上記改ざん検知付き公開プロトコルを用いて、上記[x-r'i],[y-s'i]を公開するものである、
    秘密改ざん検知システム。
  3. 請求項1に記載の秘密改ざん検知システムであって、
    上記検証値確認部は、上記シェア[ci]の各要素と乱数rのべき乗との積和からなるチェックサムを計算し、上記チェックサムcが0であるか否かにより、上記検証値ciがすべて0であることを確認するものである、
    秘密改ざん検知システム。
  4. σは1以上の任意の整数を表し、N, Dは所定の自然数を表し、iは0以上σ未満の各整数を表し、jは0以上D未満の各整数を表し、
    復元すると要素数Nのベクトルxとなるシェア[x]と、復元すると要素数Nのベクトルyとなるシェア[y]とを入力とし、復元するとベクトルxとベクトルyとを要素ごとに乗算した結果のベクトルzとなるシェア[z]を出力する秘密改ざん検知装置であって、
    各整数iについて、復元すると要素数N+Dの乱数ベクトルriとなるσ個のシェア[ri]と、復元すると要素数N+Dの乱数ベクトルsiとなるσ個のシェア[si]とを生成する乱数生成部と、
    各整数iについて、上記シェア[ri]と上記シェア[si]とを秘密計算により乗算して、復元するとベクトルriとベクトルsiとを要素ごとに乗算した結果のベクトルtiとなるσ個のシェア[ti]を生成する乱数乗算部と、
    上記シェア[x]と上記シェア[y]とを秘密計算により乗算して、上記シェア[z]を生成する秘密乗算部と、
    各整数iについて、0以上D+N未満の相異なるD個の整数pi,jをランダムに選択し、上記シェア[ri], [si], [ti]のうちpi,j番目の要素を公開して、上記シェア[ t i ]に対応する公開した値が上記シェア[ r i ]に対応する公開した値と上記シェア[ s i ]に対応する公開した値とを乗算した結果となっているか否かを確認する乱数検証部と、
    各整数iについて、上記シェア[ri], [si], [ti]のうちpi,j番目以外の要素をランダム置換したシェア[r'i], [s'i], [t'i]を生成する乱数置換部と、
    各整数iについて、[x-r'i], [y-s'i]を計算して公開する減算値公開部と、
    各整数iについて、[ci]:=[z]-(x-r'i)[y]-(y-s'i)[r'i]-[t'i]を計算して、復元すると検証値ciのベクトルciとなるシェア[ci]を生成する検証値計算部と、
    各整数iについて、上記シェア[ci]を用いて、上記検証値ciがすべて0であることを確認する検証値確認部と、
    を含む秘密改ざん検知装置。
  5. σは1以上の任意の整数を表し、N, Dは所定の自然数を表し、iは0以上σ未満の各整数を表し、jは0以上D未満の各整数を表し、
    少なくとも3台の秘密改ざん検知装置を含む秘密改ざん検知システムが実行する、復元すると要素数Nのベクトルxとなるシェア[x]と、復元すると要素数Nのベクトルyとなるシェア[y]とを入力とし、復元するとベクトルxとベクトルyとを要素ごとに乗算した結果のベクトルzとなるシェア[z]を出力する秘密改ざん検知方法であって、
    上記秘密改ざん検知装置が、各整数iについて、復元すると要素数N+Dの乱数ベクトルriとなるσ個のシェア[ri]と、復元すると要素数N+Dの乱数ベクトルsiとなるσ個のシェア[si]とを生成し、
    上記秘密改ざん検知装置が、各整数iについて、上記シェア[ri]と上記シェア[si]とを秘密計算により乗算して、復元するとベクトルriとベクトルsiとを要素ごとに乗算した結果のベクトルtiとなるσ個のシェア[ti]を生成し、
    上記秘密改ざん検知装置が、上記シェア[x]と上記シェア[y]とを秘密計算により乗算して、上記シェア[z]を生成し、
    上記秘密改ざん検知装置が、各整数iについて、0以上D+N未満の相異なるD個の整数pi,jをランダムに選択し、上記シェア[ri], [si], [ti]のうちpi,j番目の要素を公開して、上記シェア[ t i ]に対応する公開した値が上記シェア[ r i ]に対応する公開した値と上記シェア[ s i ]に対応する公開した値とを乗算した結果となっているか否かを確認し、
    上記秘密改ざん検知装置が、各整数iについて、上記シェア[ri], [si], [ti]のうちpi,j番目以外の要素をランダム置換したシェア[r'i], [s'i], [t'i]を生成し、
    上記秘密改ざん検知装置が、各整数iについて、[x-r'i], [y-s'i]を計算して公開し、
    上記秘密改ざん検知装置が、各整数iについて、[ci]:=[z]-(x-r'i)[y]-(y-s'i)[r'i]-[t'i]を計算して、復元すると検証値ciのベクトルciとなるシェア[ci]を生成し、
    上記秘密改ざん検知装置が、各整数iについて、上記シェア[ci]を用いて、上記検証値ciがすべて0であることを確認する、
    秘密改ざん検知方法。
  6. 請求項4に記載の秘密改ざん検知装置としてコンピュータを機能させるためのプログラム。
JP2019519571A 2017-05-25 2018-05-11 秘密改ざん検知システム、秘密改ざん検知装置、秘密改ざん検知方法、およびプログラム Active JP6777816B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2017103292 2017-05-25
JP2017103292 2017-05-25
PCT/JP2018/018389 WO2018216512A1 (ja) 2017-05-25 2018-05-11 秘密改ざん検知システム、秘密改ざん検知装置、秘密改ざん検知方法、およびプログラム

Publications (2)

Publication Number Publication Date
JPWO2018216512A1 JPWO2018216512A1 (ja) 2020-03-19
JP6777816B2 true JP6777816B2 (ja) 2020-10-28

Family

ID=64395497

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019519571A Active JP6777816B2 (ja) 2017-05-25 2018-05-11 秘密改ざん検知システム、秘密改ざん検知装置、秘密改ざん検知方法、およびプログラム

Country Status (6)

Country Link
US (1) US11157612B2 (ja)
EP (1) EP3633656B1 (ja)
JP (1) JP6777816B2 (ja)
CN (1) CN110622232B (ja)
AU (1) AU2018271515B2 (ja)
WO (1) WO2018216512A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6713585B2 (ja) * 2017-07-05 2020-06-24 日本電信電話株式会社 秘密計算システム、秘密計算装置、秘密計算方法、プログラム、および記録媒体
US20220343027A1 (en) * 2019-09-26 2022-10-27 Nec Corporation Computation system and computation method
JPWO2022195799A1 (ja) * 2021-03-18 2022-09-22

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3604737B2 (ja) * 1994-07-29 2004-12-22 キヤノン株式会社 複数の情報処理装置を有する通信システムにおける秘密情報処理方法及びその通信システム
JP2001222218A (ja) * 2000-02-09 2001-08-17 Nippon Telegr & Teleph Corp <Ntt> 暗号化装置、方法、復号装置、方法、暗号システム及びプログラムを記憶した記憶媒体
KR20030085094A (ko) * 2001-04-03 2003-11-01 미쓰비시덴키 가부시키가이샤 암호화 장치
EP1475920A4 (en) * 2002-12-03 2005-03-02 Matsushita Electric Ind Co Ltd KEY SHARING SYSTEM, SHARED KEY CREATING DEVICE, AND SHARED KEY RESTORING DEVICE
US8302188B2 (en) * 2006-07-18 2012-10-30 Panasonic Corporation Instruction generation apparatus for generating a computer program resistant to unauthorized analyses and tampering
JP4859933B2 (ja) * 2007-01-19 2012-01-25 三菱電機株式会社 暗号文生成装置及び暗号通信システム及び群パラメータ生成装置
CN101729554B (zh) * 2008-11-27 2013-05-29 北京大学 一种分布式计算中基于密码学的除法协议构造方法
KR101336349B1 (ko) * 2009-11-20 2013-12-04 니폰덴신뎅와 가부시키가이샤 암호 처리 시스템, 키 생성 장치, 키 위양 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
EP2822217A4 (en) * 2012-03-02 2015-11-11 Sony Corp INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING METHOD, AND PROGRAM
EP2947642B1 (en) * 2013-01-17 2017-09-06 Nippon Telegraph and Telephone Corporation Secret computation system, arithmetic unit, secret computation method and program
CN104919754B (zh) 2013-01-17 2018-01-16 日本电信电话株式会社 篡改检测装置、篡改检测方法、以及程序
JP5907902B2 (ja) * 2013-01-21 2016-04-26 日本電信電話株式会社 秘密計算による表の等結合システム、方法
JP5937556B2 (ja) * 2013-09-30 2016-06-22 日本電信電話株式会社 秘密計算装置、秘匿検索システム、秘密計算方法、秘匿検索方法、プログラム
JP6009698B2 (ja) * 2014-01-17 2016-10-19 日本電信電話株式会社 秘密計算方法、秘密計算システム、ランダム置換装置及びプログラム
JP2016015072A (ja) * 2014-07-03 2016-01-28 雅紀 廣石 光子乱数生成器
JP5860557B1 (ja) * 2015-02-06 2016-02-16 日本電信電話株式会社 秘密公開方法、秘密公開システム、秘密公開装置、およびプログラム
JP5864004B1 (ja) * 2015-03-18 2016-02-17 日本電信電話株式会社 分散値変換システム、分散値変換装置、分散値変換方法、およびプログラム
US10972260B2 (en) * 2015-12-10 2021-04-06 Nec Corporation Pre-calculation device, method, computer-readable recording medium, vector multiplication device, and method
JP6053238B2 (ja) * 2016-01-13 2016-12-27 日本電信電話株式会社 秘密改ざん検知システム、秘密計算装置、秘密改ざん検知方法、およびプログラム

Also Published As

Publication number Publication date
US20200125724A1 (en) 2020-04-23
JPWO2018216512A1 (ja) 2020-03-19
CN110622232B (zh) 2023-01-13
US11157612B2 (en) 2021-10-26
AU2018271515B2 (en) 2020-09-10
CN110622232A (zh) 2019-12-27
AU2018271515A1 (en) 2019-12-05
EP3633656B1 (en) 2021-09-08
EP3633656A4 (en) 2021-02-24
EP3633656A1 (en) 2020-04-08
WO2018216512A1 (ja) 2018-11-29

Similar Documents

Publication Publication Date Title
CN107210006B (zh) 不一致检测方法、检测系统、检测装置以及记录介质
EP3096309B1 (en) Secret calculation method, secret calculation system, sorting device, and program
JP6016948B2 (ja) 秘匿計算システム、演算装置、秘匿計算方法、およびプログラム
CN111373401B (zh) 同态推理装置、同态推理方法、计算机能读取的存储介质和隐匿信息处理系统
CN104919754B (zh) 篡改检测装置、篡改检测方法、以及程序
JP6777816B2 (ja) 秘密改ざん検知システム、秘密改ざん検知装置、秘密改ざん検知方法、およびプログラム
CN110199338B (zh) 秘密计算系统、秘密计算装置、秘密计算方法、记录介质
JP6583970B2 (ja) 秘密乱数合成装置、秘密乱数合成方法、およびプログラム
WO2016104476A1 (ja) 秘密改ざん検知システム、秘密計算装置、秘密改ざん検知方法、およびプログラム
JP2016146530A (ja) 秘密公開方法、秘密公開システム、秘密公開装置、およびプログラム
JP6053238B2 (ja) 秘密改ざん検知システム、秘密計算装置、秘密改ざん検知方法、およびプログラム
JP5526284B2 (ja) 代理計算システム、方法、依頼装置及びプログラム
JP6585846B2 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム
JP2014137474A (ja) 改ざん検知装置、改ざん検知方法、およびプログラム
JP6933290B2 (ja) 秘密計算装置、秘密計算認証システム、秘密計算方法、およびプログラム
WO2019039383A1 (ja) シェア生成装置、復元装置、秘密計算システム、シェア生成方法、復元方法、プログラム、および記録媒体
JP6467063B2 (ja) 秘密認証符号付加装置、秘密認証符号付加方法、およびプログラム
JP6885467B2 (ja) シェア生成装置、シェア変換装置、秘密計算システム、シェア生成方法、シェア変換方法、プログラム、および記録媒体
EP3686870B1 (en) Secure reading apparatus, secure writing apparatus, method thereof, and program
Pandit et al. Compact Public-Key Encryption Using Learning with Rounding

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191108

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200407

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200526

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201008

R150 Certificate of patent or registration of utility model

Ref document number: 6777816

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150