JP5957126B1 - 秘密計算装置、秘密計算方法、およびプログラム - Google Patents
秘密計算装置、秘密計算方法、およびプログラム Download PDFInfo
- Publication number
- JP5957126B1 JP5957126B1 JP2015126179A JP2015126179A JP5957126B1 JP 5957126 B1 JP5957126 B1 JP 5957126B1 JP 2015126179 A JP2015126179 A JP 2015126179A JP 2015126179 A JP2015126179 A JP 2015126179A JP 5957126 B1 JP5957126 B1 JP 5957126B1
- Authority
- JP
- Japan
- Prior art keywords
- value
- bit string
- bit
- secret
- secret sharing
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
【課題】秘密計算による空値検査を効率化する。【解決手段】秘密計算装置は、分散装置が生成した、対象ビット列1100が表す値の秘密分散値を用い、秘密計算により、対象ビット列1100をローテーションし、最上位ビットの値を最上位ビットよりも下位の検査ビット1201の値とした検査ビット列1200が表す値の秘密分散値を得る。ただし、対象ビット列1100は、最上位ビットが1の場合に空値に対応し、最上位ビットが0の場合に実数値に対応する。次に、秘密計算装置は検査ビット列1200が表す値の秘密分散値を用い、秘密計算により、検査ビット列1200の最下位ビットから検査ビット1201または1211までのビット値の秘密分散値を得る。【効果】検査ビットが最下位に近いほど秘密計算の対象となるビット数を小さくでき、通信量および/または通信段数を削減できる。【選択図】図5
Description
本発明は、秘密計算技術に関し、特に、秘密計算で空値検査を行う技術に関する。
秘密計算を用いて符号付き数を扱う技術が知られている(例えば、「非特許文献1」等参照)。
D. Bogdanov, M. Niitsoo, T. Toft, and J. Willemson, "High-performance secure multi-party computation for data mining applications," Int. J. Inf. Sec., 11(6):403-418, 2012.
上記の従来技術には、通信量・通信段数が大きいという課題がある。また秘密計算で空値検査を行うことには言及がない。
本発明の課題は、秘密計算による空値検査を効率化することである。
「第1対象ビット列」が表す値の秘密分散値を用い、「第1対象ビット列」の最上位ビットの値を最上位ビットよりも下位の「第1検査ビット」の値とした「第1検査ビット列」が表す値の秘密分散値を得る。ただし、「第1対象ビット列」は、最上位ビットが1の場合に空値に対応し、最上位ビットが0の場合に実数値に対応する。次に、「第1検査ビット列」が表す値の秘密分散値を用い、「第1検査ビット列」の最下位ビットから「第1検査ビット」までのビット値の秘密分散値を得る。
以上により、秘密計算による空値検査を効率化できる。
以下、本発明の実施形態を説明する。
[概要]
まず、概要を説明する。各実施形態の秘密計算装置は、「第1対象ビット列」が表す値の秘密分散値を用い、「第1対象ビット列」の最上位ビットの値を最上位ビットよりも下位の「第1検査ビット」の値とした「第1検査ビット列」が表す値の秘密分散値を得る。ただし、「第1対象ビット列」は、最上位ビットが1の場合に空値に対応し、最上位ビットが0の場合に実数値に対応する。なお、「第1検査ビット列」は、例えば「第1対象ビット列」のローテーションによって得られる。ローテーションは剰余環上の乗算で実現できる。秘密計算での剰余環上の乗算方法に限定はなく、公知の方法で実現できる(例えば、参考文献1「千田浩司,濱田浩気,五十嵐大,高橋克巳,“軽量検証可能3パーティ秘匿関数計算の再考”,CSS2010,2010年」等参照)。ただし、これは一例であって、「第1対象ビット列」の最上位ビットの値を「第1検査ビット」の値とできるのであれば、その他の方法が用いられてもよい。次に秘密計算装置は、「第1検査ビット列」が表す値の秘密分散値を用い、「第1検査ビット列」の最下位ビットから「第1検査ビット」までのビット値の秘密分散値を得る。ここで、「第1対象ビット列」が空値に対応する場合には「第1検査ビット」の値は「1」となり、「第1対象ビット列」が実数値に対応する場合には「第1検査ビット」の値は「0」となる。そのため、「第1検査ビット」の値の秘密分散値は、空値検査結果を表す値の秘密分散値となる。また、「第1検査ビット列」の最下位ビットから「第1検査ビット」までのビット値の秘密分散値のみを求めればよいため、すべてのビットの秘密分散値を求めて空値検査結果を表す値の秘密分散値を得る場合に比べ、通信量および/または通信段数を削減できる。また「第1検査ビット」が最下位ビットに近いほど秘密計算の対象となるビット数を小さくでき、通信量および/または通信段数をより削減できる。そのため、「第1検査ビット」が最下位ビットであることがより望ましい。なお、「第1検査ビット列」の最下位ビットから「第1検査ビット」までのビット値の秘密分散値を得るための公知の方法としては、例えば参考文献2「五十嵐大,濱田浩気,菊池亮,千田浩司,“少パーティの秘密分散ベース秘密計算のためのO(l)ビット通信ビット分解およびO(p’)ビット通信modulus変換法”,CSS2013,2013年」の「商転移を用いたビット分解」がある。この方法では、最下位ビット(0ビット目)から所望のビットまでの各ビット値の秘密分散値を効率的に得ることができる。なお、最下位ビットから所望のビットまでの各ビット値の秘密分散値のみを効率的に得る方法は知られているが、最上位ビットから所望のビットまでの各ビット値の秘密分散値のみを効率的に得る方法や、最上位ビットと最下位ビットとの間に位置するビット値の秘密分散値のみを効率的に得る方法は知られていない。本形態の方式は、このことに着目して秘密計算での空値検査の効率を向上するものである。
[概要]
まず、概要を説明する。各実施形態の秘密計算装置は、「第1対象ビット列」が表す値の秘密分散値を用い、「第1対象ビット列」の最上位ビットの値を最上位ビットよりも下位の「第1検査ビット」の値とした「第1検査ビット列」が表す値の秘密分散値を得る。ただし、「第1対象ビット列」は、最上位ビットが1の場合に空値に対応し、最上位ビットが0の場合に実数値に対応する。なお、「第1検査ビット列」は、例えば「第1対象ビット列」のローテーションによって得られる。ローテーションは剰余環上の乗算で実現できる。秘密計算での剰余環上の乗算方法に限定はなく、公知の方法で実現できる(例えば、参考文献1「千田浩司,濱田浩気,五十嵐大,高橋克巳,“軽量検証可能3パーティ秘匿関数計算の再考”,CSS2010,2010年」等参照)。ただし、これは一例であって、「第1対象ビット列」の最上位ビットの値を「第1検査ビット」の値とできるのであれば、その他の方法が用いられてもよい。次に秘密計算装置は、「第1検査ビット列」が表す値の秘密分散値を用い、「第1検査ビット列」の最下位ビットから「第1検査ビット」までのビット値の秘密分散値を得る。ここで、「第1対象ビット列」が空値に対応する場合には「第1検査ビット」の値は「1」となり、「第1対象ビット列」が実数値に対応する場合には「第1検査ビット」の値は「0」となる。そのため、「第1検査ビット」の値の秘密分散値は、空値検査結果を表す値の秘密分散値となる。また、「第1検査ビット列」の最下位ビットから「第1検査ビット」までのビット値の秘密分散値のみを求めればよいため、すべてのビットの秘密分散値を求めて空値検査結果を表す値の秘密分散値を得る場合に比べ、通信量および/または通信段数を削減できる。また「第1検査ビット」が最下位ビットに近いほど秘密計算の対象となるビット数を小さくでき、通信量および/または通信段数をより削減できる。そのため、「第1検査ビット」が最下位ビットであることがより望ましい。なお、「第1検査ビット列」の最下位ビットから「第1検査ビット」までのビット値の秘密分散値を得るための公知の方法としては、例えば参考文献2「五十嵐大,濱田浩気,菊池亮,千田浩司,“少パーティの秘密分散ベース秘密計算のためのO(l)ビット通信ビット分解およびO(p’)ビット通信modulus変換法”,CSS2013,2013年」の「商転移を用いたビット分解」がある。この方法では、最下位ビット(0ビット目)から所望のビットまでの各ビット値の秘密分散値を効率的に得ることができる。なお、最下位ビットから所望のビットまでの各ビット値の秘密分散値のみを効率的に得る方法は知られているが、最上位ビットから所望のビットまでの各ビット値の秘密分散値のみを効率的に得る方法や、最上位ビットと最下位ビットとの間に位置するビット値の秘密分散値のみを効率的に得る方法は知られていない。本形態の方式は、このことに着目して秘密計算での空値検査の効率を向上するものである。
上述の構成はメルセンヌ数P=2N−1を法とした剰余環上で実現できる。例えば、各秘密計算装置に入力値Wの秘密分散値[W]が入力されるとする。ただし、Nは2以上の整数であり、Pはメルセンヌ数P=2N−1であり、Nの値によってはメルセンヌ素数となる。空値に対応する値WがW=(P+1)/2 mod Pであり、0以上の整数Xに対応する値WがW=X mod Pであり、負の整数Xに対応する値WがW=(P+X) mod Pである。Lは0≦L≦N−u’の整数であり、Xは−2L≦X≦2N−1−2L−1の整数である。ただし、u’は秘密分散方式に応じた2以上N以下の正の整数である。例えば、2-out-of-3のShamirの秘密分散方式の場合、u’=2となる。この場合、0以上の整数Xは小さな入力値Wに対応し、負の整数Xは大きな入力値Wに対応し、「Xが空値であること」はそれらの間の入力値Wに対応する。各秘密計算装置は、入力値Wの秘密分散値[W]を用い、Y=(W+2L) mod Pの秘密分散値[Y]を得る。この演算は秘密計算での剰余環上の加算である。秘密計算での剰余環上の加算方法に限定はなく、公知の方法で実現できる(例えば「参考文献1」等参照)。Yは空値に対してY={2L+(P+1)/2} mod Pとなり、0以上の整数Xに対してY=(2L+X) mod Pとなり、負の整数Xに対してY=(P+2L+X) mod Pとなる。ここでメルセンヌ数P=2N−1の性質から、空値に対応するYを表すNビットのビット列の最上位ビットは1となり、実数値X(0以上の整数Xまたは負の整数X)に対応するYを表すNビットのビット列の最上位ビットは0となる。−2L≦X≦2N−1−2L−1の条件を満たす限り、異なる実数値Xが同じYに対応することはない。このようなYを表すNビットのビット列を「第1対象ビット列」とすることができる。この場合、「第1検査ビット列」が表す値をV=2T×Y mod Pとでき、下位からTビット目のビットを「第1検査ビット」とできる。ただし、Tは1≦T<Nの整数である。好ましくはT=1であり、この場合には「第1検査ビット」が最下位ビットとなる(「第1対象ビット列」および「第1検査ビット列」のフォーマットの具体例)。
上述した秘密計算での空値検査に加え、秘密計算で大小比較が行われてもよい。この場合、各秘密計算装置は、「比較結果値」の秘密分散値を得、「比較結果値」を表すビット列の下位からKビット目の値の秘密分散値を得る。ただし、「比較結果値」は、「第1対象ビット列」が表す値から「第2対象ビット列」が表す値を減じた値に2K−1を加算した値を表す。「第2対象ビット列」は、最上位ビットが1の場合に空値に対応し、最上位ビットが0の場合に実数値に対応するビット列である。また、Kが2以上の整数であり、最上位ビットが0の第1対象ビット列が表す値および最上位ビットが0の第2対象ビット列が表す値の大きさは0以上2K−1未満である。なお、秘密計算での加減算およびビット値の抽出は公知の方法で実現できる(例えば「参考文献1,2」等参照)。ここで、「第1対象ビット列」が表す値が「第2対象ビット列」が表す値以上である場合、「比較結果値」を表すビット列の下位からKビット目の値は「1」となる。一方、「第1対象ビット列」が表す値が「第2対象ビット列」が表す値未満である場合、「比較結果値」を表すビット列の下位からKビット目の値は「0」となる。すなわち、「比較結果値」を表す下位からKビット目の値は、「第1対象ビット列」が表す値と「第2対象ビット列」が表す値との大小比較結果を表す。
「第2対象ビット列」に対して秘密計算での空値検査が行われてもよい。すなわち、各秘密計算装置が、「第2対象ビット列」が表す値の秘密分散値を用い、「第2対象ビット列」の最上位ビットの値を最上位ビットよりも下位の「第2検査ビット」の値とした「第2検査ビット列」が表す値の秘密分散値を得、「第2検査ビット列」が表す値の秘密分散値を用い、「第2検査ビット」の値の秘密分散値を得てもよい。「第2対象ビット列」および「第2検査ビット列」のフォーマットの具体例は、前述の「第1対象ビット列」および「第1検査ビット列」のフォーマットの具体例と同じである。
上述した秘密計算での空値検査に加え、秘密計算でのソートが行われてもよい。この場合、各秘密計算装置は、「対象ビット列A(d)」が表す値の秘密分散値を用い、「対象ビット列A(d)」の最上位ビットの値を最上位ビットよりも下位の「検査ビット」の値r(d)とした「検査ビット列C(d)」が表す値の秘密分散値を得る。ただし、d=0,…,D−1であり、Dが2以上の整数である。「対象ビット列A(d)」は、最上位ビットが1の場合に空値に対応し、最上位ビットが0の場合に実数値に対応する。各秘密計算装置は、「検査ビット列C(d)」が表す値の秘密分散値を用い、「検査ビット列C(d)」の最下位ビットから「対象ビット列A(d)」までのビット値の秘密分散値を得る。さらに、各秘密計算装置は、「対象ビット列A(d)」が表す値の大きさに応じたソート結果の秘密分散値を得る。ただし、最上位ビットが0の「対象ビット列A(d)」が表す値は、「対象ビット列A(d)」が表す値が大きいほど大きな実数値に対応する。各秘密計算装置は、「検査ビット列C(d)」が表す値の大きさに応じたソート結果の秘密分散値を得てもよい。ただし、最上位ビットが0の「対象ビット列A(d)」に対応する「検査ビット列C(d)」が表す値は、「検査ビット列C(d)」が表す値が大きいほど大きな実数値に対応する。さらに、この秘密計算でのソート結果を用い、最大値、最小値、および中央値の少なくとも何れかの秘密分散値を得てもよい。なお、秘密計算でのソート方法には限定はなく、公知の方法でよい(例えば、参考文献3「五十嵐大,濱田浩気,菊池亮,千田浩司,“インターネット環境レスポンス1秒の統計処理を目指した,秘密計算基数ソートの改良”,SCIS2014,2014年」、参考文献4「濱田浩気,五十嵐大,千田浩司,高橋克巳,“秘匿関数計算上の線形時間ソート”,CSS2011,2011年」等参照)。
[第1実施形態]
以降、図面を参照しつつ、各実施形態を説明する。
<構成>
図1に例示するように、第1実施形態の秘密計算システム1は、分散装置11およびM個の秘密計算装置120−12M−1を有し、これらはインターネット等のネットワーク経由で通信可能に構成される。ただし、Mは2以上の整数である。説明の便宜上、秘密計算システム1が1個の分散装置11のみを有することにするが、複数個の分散装置11が存在してもよい。あるいは、その他の秘密計算装置が存在してもよい。
以降、図面を参照しつつ、各実施形態を説明する。
<構成>
図1に例示するように、第1実施形態の秘密計算システム1は、分散装置11およびM個の秘密計算装置120−12M−1を有し、これらはインターネット等のネットワーク経由で通信可能に構成される。ただし、Mは2以上の整数である。説明の便宜上、秘密計算システム1が1個の分散装置11のみを有することにするが、複数個の分散装置11が存在してもよい。あるいは、その他の秘密計算装置が存在してもよい。
図2に例示するように、本形態の秘密計算装置12m(ただし、m=0,…,M−1)は、通信部121m、記憶部122m、制御部123m、入力演算部124m、検査ビット列取得部125m、および空値検査部126mを有する。秘密計算装置12mは、制御部123mの制御の下で各処理を実行する。各部で得られたデータは、一時メモリ(図示せず)に格納され、必要に応じて読み出されて使用される。
各装置は、例えば、CPU(central processing unit)等のプロセッサ(ハードウェア・プロセッサ)およびRAM(random-access memory)・ROM(read-only memory)等のメモリ等を備える汎用または専用のコンピュータが所定のプログラムを実行することで構成される。このコンピュータは1個のプロセッサやメモリを備えていてもよいし、複数個のプロセッサやメモリを備えていてもよい。このプログラムはコンピュータにインストールされてもよいし、予めROM等に記録されていてもよい。また、CPUのようにプログラムが読み込まれることで機能構成を実現する電子回路(circuitry)ではなく、プログラムを用いることなく処理機能を実現する電子回路を用いて一部またはすべての処理部が構成されてもよい。また、1個の装置を構成する電子回路が複数のCPUを含んでいてもよい。
<処理>
次に、図3を参照して本形態の処理を説明する。分散装置11が入力値Wの秘密分散値[W]mを生成して秘密計算装置12m(ただし、m=0,…,M−1)に送信する。本形態の入力値Wのフォーマットは以下の通りである(図4参照)。
(1)空値に対応する値がW=(P+1)/2 mod Pである。
(2)0以上の整数であるXに対応する値がW=X mod Pである。
(3)負の整数であるXに対応する値がW=(P+X) mod Pである。
ただし、Nが2以上の整数であり、Pがメルセンヌ数P=2N−1であり、Lが0≦L≦N−u’の整数であり、Xが−2L≦X≦2N−1−2L−1の整数である。Pは素数(メルセンヌ素数)であってもよいし、素数でなくてもよい。入力値WをN桁2進数で表したビット列を入力ビット列と呼ぶ。N=7、u’=2、およびL=5の場合、入力ビット列は以下のようになる。
なお、秘密分散方式に限定はなく、Shamirの秘密分散方式等の線形秘密分散方式、複製秘密分散方式、その他どのような方式(例えば、「参考文献2」等参照)であってもよい。秘密分散値[W]mは、秘密計算装置12m(図2)の通信部121mで受信され、入力演算部124mに送られる(ステップS11m)。
次に、図3を参照して本形態の処理を説明する。分散装置11が入力値Wの秘密分散値[W]mを生成して秘密計算装置12m(ただし、m=0,…,M−1)に送信する。本形態の入力値Wのフォーマットは以下の通りである(図4参照)。
(1)空値に対応する値がW=(P+1)/2 mod Pである。
(2)0以上の整数であるXに対応する値がW=X mod Pである。
(3)負の整数であるXに対応する値がW=(P+X) mod Pである。
ただし、Nが2以上の整数であり、Pがメルセンヌ数P=2N−1であり、Lが0≦L≦N−u’の整数であり、Xが−2L≦X≦2N−1−2L−1の整数である。Pは素数(メルセンヌ素数)であってもよいし、素数でなくてもよい。入力値WをN桁2進数で表したビット列を入力ビット列と呼ぶ。N=7、u’=2、およびL=5の場合、入力ビット列は以下のようになる。
入力演算部124mは、秘密計算により、入力値Wの秘密分散値[W]mを用い、Y=(W+2L) mod Pの秘密分散値[Y]mを得て出力する。空値に対応するYは{2L+(P+1)/2} mod Pであり、0以上の整数であるXに対応するYは(2L+X) mod Pであり、負の整数であるXに対応するYは(P+2L+X) mod Pである(図4)。YをN桁2進数で表したビット列を対象ビット列と呼ぶ。図5Aに例示するように、Yが空値に対応する場合、対象ビット列1100の最上位ビット1101はaN−1=1となる。Yが実数値X(−2L≦X≦2N−1−2L−1の整数)に対応する場合、対象ビット列1100の最上位ビット1101はaN−1=0となる。この特徴はPがメルセンヌ数であることに基づく。例えば、N=7およびL=5の場合、対象ビット列1100は以下のようになる。
検査ビット列取得部125mは、Yの秘密分散値[Y]mを入力とし、秘密計算により、V=2T×Y mod Pの秘密分散値[V]mを得て出力する。ただし、Tは1≦T<Nの整数である。VをN桁2進数で表したビット列を検査ビット列と呼ぶ。検査ビット列は、対象ビット列1100をTビット左ローテーションしたビット列である。対象ビット列1100の最上位ビット1101の値aN−1は、検査ビット列の最上位ビットよりも下位のビット(検査ビット)の値となる。図5BはT=1の例であり、検査ビット列1200の最下位ビットが検査ビット1201となる。図5CはT=2の例であり、検査ビット列1200の最下位から2ビット目が検査ビット1211となる。例えば、N=7およびL=5の場合、検査ビットは以下のようになる。
このように、検査ビット列1200の最下位からTビット目の値が「Xが空値であるか否か」を表している(ステップS13m)。
空値検査部126mは、Vの秘密分散値[V]mを入力とし、検査ビット列1200の最下位ビットから検査ビットまでの各ビット値の秘密分散値[r]mを得て出力する。例えば、T=1の場合、空値検査部126mは、最下位ビットである検査ビットの値の秘密分散値[r]mを得て出力する。
《参考文献2のビット分解を用いる例》
参考文献2のビット分解を用いる例を示す。この例では、複製秘密分散方式に則った秘密分散値[V]mを用いる。ただし、任意の線形秘密分散方式に則った秘密分散値を、複製秘密分散方式の秘密分散値に変換することが可能である(例えば、参考文献5「R. Cramer, I. Damg_ard, and Y. Ishai, “Share conversion, pseudorandom secret-sharing and applications to secure computation,” In J. Kilian ed., TCC, Vol. 3378 of Lecture Notes in Computer Science, pp. 342-362. Springer, 2005.」等参照)。そのため、複製秘密分散方式への限定は利用上の制限とはならない。
参考文献2のビット分解を用いる例を示す。この例では、複製秘密分散方式に則った秘密分散値[V]mを用いる。ただし、任意の線形秘密分散方式に則った秘密分散値を、複製秘密分散方式の秘密分散値に変換することが可能である(例えば、参考文献5「R. Cramer, I. Damg_ard, and Y. Ishai, “Share conversion, pseudorandom secret-sharing and applications to secure computation,” In J. Kilian ed., TCC, Vol. 3378 of Lecture Notes in Computer Science, pp. 342-362. Springer, 2005.」等参照)。そのため、複製秘密分散方式への限定は利用上の制限とはならない。
この例では、Vの線形秘密分散値を[V]と表記し、Vの複製秘密分散値を{V}と表記する。Vのサブシェアの個数をνとし、自然数である境界値uをlog ν以上の最小の整数とする。νはν≦2uを満たす整数である。Vが2uを法として0と合同となり、VがPを法としてサブシェアx0,…,xν-1の和x0+…+xν-1と合同であるとする。この例のPはメルセンヌ素数であるが、Pがその他のメルセンヌ数であってもよい。この例では2uV<Pとする。iをi=0,1,…,ν−1を満たす整数とし、jをj=0,1,…,ν−1を満たす整数とする。任意の命題PROに対して、〔PRO〕は、PROの真偽を整数に変換する演算子である。
この例の空値検査部126mの公開値倍秘密計算部は、複製秘密分散値{V}ZPを取得して、公開値倍の秘密計算により変形秘密分散値{V’}ZP=2u×ZP{V}ZPを計算する。ただし、{・}ZPはZPの元である複製秘密分散値を表し、「×ZP」はZP上での乗算を表す。空値検査部126mの下位ビット分散部は、i<νを満たすすべてのiについて、変形秘密分散値{V’}ZPのj番目のサブシェア{V’}ZP〈j〉の0ビット目からuビットをビットごとに分散して下位ビット分散値
を取得する。ただし、[・]αはαの元である線形秘密分散値を表す。空値検査部126mの上位ビット分散部は、i<νを満たすすべてのiについて、変形秘密分散値のj番目のサブシェア{V’}ZP〈j〉のuビット目からTビットをビットごとに分散して上位ビット分散値
を取得する。空値検査部126mの下位ビット加算部は、加算回路の秘密計算により下位ビット加算値
を計算する。この下位ビット加算値のうち下位uビットを
上位uビットを
と表す。空値検査部126mの零判定部は、下位ビット加算値の下位uビットを取得して、零判定回路の秘密計算により、零判定値[〔ηu≠0〕]Z2を計算する。空値検査部126mの上位ビット加算部は、i<νを満たすすべてのiについて、上位ビット加算値と、下位ビット加算値の上位uビットと、零判定値を取得して、加算回路の秘密計算により、ビットの秘密分散列
を計算して出力する。ただし
はZ2 T上での総和を表し、
はZ2 T上での加算を表す。式(1)の演算により、VをN桁2進数表記した場合の最下位ビットからTビット目(すなわち、検査ビット)までの各ビット値の秘密分散値[r]mが得られる。式(1)の演算は最下位ビットからTビット目までのみについて実行され、その通信量および演算量は全体のビット数Nに依存しない。T=1の場合、最下位ビットのみについて式(1)の演算を行えばよく、大変効率がよい。特に3パーティの秘密計算では数ビットの通信量と2ラウンドで処理可能である(ステップS14m)。
を取得する。ただし、[・]αはαの元である線形秘密分散値を表す。空値検査部126mの上位ビット分散部は、i<νを満たすすべてのiについて、変形秘密分散値のj番目のサブシェア{V’}ZP〈j〉のuビット目からTビットをビットごとに分散して上位ビット分散値
を取得する。空値検査部126mの下位ビット加算部は、加算回路の秘密計算により下位ビット加算値
を計算する。この下位ビット加算値のうち下位uビットを
上位uビットを
と表す。空値検査部126mの零判定部は、下位ビット加算値の下位uビットを取得して、零判定回路の秘密計算により、零判定値[〔ηu≠0〕]Z2を計算する。空値検査部126mの上位ビット加算部は、i<νを満たすすべてのiについて、上位ビット加算値と、下位ビット加算値の上位uビットと、零判定値を取得して、加算回路の秘密計算により、ビットの秘密分散列
を計算して出力する。ただし
はZ2 T上での総和を表し、
はZ2 T上での加算を表す。式(1)の演算により、VをN桁2進数表記した場合の最下位ビットからTビット目(すなわち、検査ビット)までの各ビット値の秘密分散値[r]mが得られる。式(1)の演算は最下位ビットからTビット目までのみについて実行され、その通信量および演算量は全体のビット数Nに依存しない。T=1の場合、最下位ビットのみについて式(1)の演算を行えばよく、大変効率がよい。特に3パーティの秘密計算では数ビットの通信量と2ラウンドで処理可能である(ステップS14m)。
秘密計算装置12mは秘密分散値[r]mを出力する(ステップS15m)。
[第1実施形態の変形例1]
第1実施形態では、秘密計算装置12mが秘密分散値[r]mを出力した。しかしながら、T≧2の場合であっても、秘密分散値[r]mに代えて検査ビット列Cの各検査ビットの値の秘密分散値のみが出力されてもよい。
第1実施形態では、秘密計算装置12mが秘密分散値[r]mを出力した。しかしながら、T≧2の場合であっても、秘密分散値[r]mに代えて検査ビット列Cの各検査ビットの値の秘密分散値のみが出力されてもよい。
[第1実施形態の変形例2]
第1実施形態では各秘密計算装置12mに入力値Wの秘密分散値[W]mが入力され、各秘密計算装置12mがY=(W+2L) mod Pの秘密分散値[Y]mを得た。しかしながら、各秘密計算装置12mに秘密分散値[Y]mが入力され、ステップS13mからS15mの処理が実行されてもよい。
第1実施形態では各秘密計算装置12mに入力値Wの秘密分散値[W]mが入力され、各秘密計算装置12mがY=(W+2L) mod Pの秘密分散値[Y]mを得た。しかしながら、各秘密計算装置12mに秘密分散値[Y]mが入力され、ステップS13mからS15mの処理が実行されてもよい。
[第2実施形態]
第2実施形態では、秘密計算での空値検査に加え、秘密計算での大小比較を行う。以下では、これまでに説明した事項との相違点を中心に説明し、既に説明した事項についてはこれまでに用いた参照番号を流用して説明を簡略化する。
第2実施形態では、秘密計算での空値検査に加え、秘密計算での大小比較を行う。以下では、これまでに説明した事項との相違点を中心に説明し、既に説明した事項についてはこれまでに用いた参照番号を流用して説明を簡略化する。
<構成>
図1に例示するように、第2実施形態の秘密計算システム2は、分散装置11およびM個の秘密計算装置220−22M−1を有し、これらはインターネット等のネットワーク経由で通信可能に構成される。図2に例示するように、本形態の秘密計算装置22m(ただし、m=0,…,M−1)は、通信部121m、記憶部122m、制御部123m、入力演算部224m、検査ビット列取得部225m、空値検査部226m、大小比較ビット列取得部227m、および大小比較部228mを有する。秘密計算装置22mは、制御部123mの制御の下で各処理を実行する。
図1に例示するように、第2実施形態の秘密計算システム2は、分散装置11およびM個の秘密計算装置220−22M−1を有し、これらはインターネット等のネットワーク経由で通信可能に構成される。図2に例示するように、本形態の秘密計算装置22m(ただし、m=0,…,M−1)は、通信部121m、記憶部122m、制御部123m、入力演算部224m、検査ビット列取得部225m、空値検査部226m、大小比較ビット列取得部227m、および大小比較部228mを有する。秘密計算装置22mは、制御部123mの制御の下で各処理を実行する。
<処理>
次に、図3を参照して本形態の処理を説明する。
分散装置11は入力値W(0)の秘密分散値[W(0)]mおよび入力値W(1)の秘密分散値[W(1)]mを生成して秘密計算装置22m(ただし、m=0,…,M−1)に送信する。入力値W(0)は空値または実数値X(0)に対応し、入力値W(1)は空値または実数値X(1)に対応する。入力値W(0),W(1)のフォーマットは前述した入力値Wのフォーマットと同じである。秘密分散値[W(0)]m,[W(1)]mは、秘密計算装置22m(図2)の通信部121mで受信され、入力演算部124mに送られる(ステップS21m)。
次に、図3を参照して本形態の処理を説明する。
分散装置11は入力値W(0)の秘密分散値[W(0)]mおよび入力値W(1)の秘密分散値[W(1)]mを生成して秘密計算装置22m(ただし、m=0,…,M−1)に送信する。入力値W(0)は空値または実数値X(0)に対応し、入力値W(1)は空値または実数値X(1)に対応する。入力値W(0),W(1)のフォーマットは前述した入力値Wのフォーマットと同じである。秘密分散値[W(0)]m,[W(1)]mは、秘密計算装置22m(図2)の通信部121mで受信され、入力演算部124mに送られる(ステップS21m)。
入力演算部224mは、秘密計算により、入力値W(0)の秘密分散値[W(0)]mを用いてY(0)=(W(0)+2L) mod Pの秘密分散値[Y(0)]mを得て出力する。また、入力演算部224mは、秘密計算により、入力値W(1)の秘密分散値[W(1)]mを用い、Y(1)=(W(1)+2L) mod Pの秘密分散値[Y(1)]mを得て出力する。Y(0)は「対象ビット列A(0)が表す値」に相当し、Y(1)は「対象ビット列A(1)が表す値」に相当する。対象ビット列A(0)およびA(1)は、最上位ビットが1の場合に空値に対応し、最上位ビットが0の場合に実数値に対応するビット列である(ステップS22m)。
検査ビット列取得部225mは、秘密分散値[Y(0)]mおよび[Y(1)]mを入力とし、秘密計算により、V(0)=2T×Y(0) mod Pの秘密分散値[V(0)]mおよびV(1)=2T×Y(0) mod Pの秘密分散値[V(0)]mを得て出力する。V(0)は「検査ビット列C(0)が表す値」に相当し、V(1)は「検査ビット列C(1)が表す値」に相当する(ステップS23m)。
空値検査部226mは、秘密分散値[V(0)]mを入力とし、検査ビット列C(0)の最下位ビットから検査ビットまでの各ビット値の秘密分散値[r(0)]mを得て出力する。また空値検査部226mは、秘密分散値[V(1)]mを入力とし、検査ビット列C(1)の最下位ビットから検査ビットまでの各ビット値の秘密分散値[r(1)]mを得て出力する。例えば、T=1の場合、空値検査部226mは、最下位ビットである検査ビットの値の秘密分散値[r(0)]mおよび[r(1)]mを得て出力する(ステップS24m)。
大小比較ビット列取得部227mは、秘密分散値[Y(0)]mおよび[Y(1)]mを入力とし、秘密計算により、比較結果値(Y(0)−Y(1)+2K−1) mod P(対象ビット列A(0)が表す値から対象ビット列A(1)が表す値を減じた値に2K−1を加算した値)の秘密分散値[(Y(0)−Y(1)+2K−1) mod P]mを得て出力する。ただし、Kは2以上の整数であり、最上位ビットが0の対象ビット列A(0)が表す値Y(0)および最上位ビットが0の対象ビット列A(1)が表す値Y(1)の大きさは0以上2K−1未満である。ここで、比較結果値(Y(0)−Y(1)+2K−1) mod PのN桁2進数表現であるビット列を大小比較ビット列と呼ぶ。図7AはN=Kの場合の大小比較ビット列2210を例示した概念図であり、最上位ビットが検査ビット2211となっている。図7AはN>Kの場合の大小比較ビット列2220を例示した概念図であり、最上位ビットよりも下位のビットが検査ビット2221となっている。
2K−1 mod PのN桁2進数表現値の下位からKビット目の値は1である。ここでY(0)−Y(1)の大きさは0以上2K−1未満であるため、X(0)≧X(1)である場合、(Y(0)−Y(1)+2K−1) mod PのN桁2進数表現値は2K−1 mod PのN桁2進数表現値以上となり、下位からKビット目の値は必ず1となる。一方、X(0)<X(1)である場合、(Y(0)−Y(1)+2K−1) mod PのN桁2進数表現値は2K−1 mod PのN桁2進数表現値未満となり、下位からKビット目の値は必ず0となる。そのため、X(0)≧X(1)である場合、大小比較ビット列の下位からKビット目の値は1となり、X(0)<X(1)である場合、大小比較ビット列の下位からKビット目の値は0となる。N=K=7およびL=5の場合の具体例を示す。例えば、X(0)=0,X(1)=−1の場合、Y(0)=32,Y(1)=31であり、大小比較ビット列が1000001となり、下位から7ビット目の値が1となる。例えば、X(0)=−10,X(1)=−5の場合、Y(0)=22,Y(1)=27であり、大小比較ビット列が0111011となり、下位から7ビット目の値が0となる(ステップS25m)。
大小比較部228mは、秘密分散値[(Y(0)−Y(1)+2K−1) mod P]mを入力とし、秘密計算により、比較結果値(Y(0)−Y(1)+2K−1) mod Pを表す大小比較ビット列の下位からKビット目の値qの秘密分散値[q]mを得て出力する。この処理は、例えば参考文献2のビット分解を用いて実行できる。ただし、その他のビット分解方法が用いられてもよい(例えば、参考文献6「I. Damgard, M. Fitzi, E. Kiltz, J. B. Nielsen, and T. Toft, “Unconditionally secure constant-rounds multi-party computation for equality, comparison, bits and exponentiation,” In S. Halevi and T. Rabin eds., TCC, Vol. 3876 of Lecture Notes in Computer Science, pp. 285-304. Springer, 2006.」等参照)(ステップS26m)。
秘密計算装置22mは、秘密分散値[r(0)]m,[r(1)]m,[q]mを出力する(ステップS27m)。
[第2実施形態の変形例1]
第2実施形態では、(Y(0)−Y(1)+2K−1) mod Pを比較結果値(対象ビット列A(0)が表す値から対象ビット列A(1)が表す値を減じた値に2K−1を加算した値)とした。しかしながら、Y(0)=(W(0)+2L) mod PおよびY(1)=(W(1)+2L) mod Pであり、(Y(0)−Y(1)+2K−1) mod P=(W(0)−W(1)+2K−1) mod Pである。そのため、(W(0)−W(1)+2K−1) mod Pを比較結果値(対象ビット列A(0)が表す値から対象ビット列A(1)が表す値を減じた値に2K−1を加算した値)としてもよい。この場合には、図8に例示するように、第2実施形態のステップS21m−S24mの実行後、大小比較ビット列取得部227mが秘密分散値[W(0)]mおよび[W(1)]mを入力とし、秘密計算により、比較結果値(W(0)−W(1)+2K−1) mod Pの秘密分散値[(W(0)−W(1)+2K−1) mod P]mを得て出力する(ステップS25’m)。その後、秘密分散値[(Y(0)−Y(1)+2K−1) mod P]mに代えて秘密分散値[(W(0)−W(1)+2K−1) mod P]mを用い、第2実施形態のステップS26m−S27mを実行する。
第2実施形態では、(Y(0)−Y(1)+2K−1) mod Pを比較結果値(対象ビット列A(0)が表す値から対象ビット列A(1)が表す値を減じた値に2K−1を加算した値)とした。しかしながら、Y(0)=(W(0)+2L) mod PおよびY(1)=(W(1)+2L) mod Pであり、(Y(0)−Y(1)+2K−1) mod P=(W(0)−W(1)+2K−1) mod Pである。そのため、(W(0)−W(1)+2K−1) mod Pを比較結果値(対象ビット列A(0)が表す値から対象ビット列A(1)が表す値を減じた値に2K−1を加算した値)としてもよい。この場合には、図8に例示するように、第2実施形態のステップS21m−S24mの実行後、大小比較ビット列取得部227mが秘密分散値[W(0)]mおよび[W(1)]mを入力とし、秘密計算により、比較結果値(W(0)−W(1)+2K−1) mod Pの秘密分散値[(W(0)−W(1)+2K−1) mod P]mを得て出力する(ステップS25’m)。その後、秘密分散値[(Y(0)−Y(1)+2K−1) mod P]mに代えて秘密分散値[(W(0)−W(1)+2K−1) mod P]mを用い、第2実施形態のステップS26m−S27mを実行する。
[第2実施形態の変形例2]
第2実施形態およびその変形例1では、秘密計算装置22mが秘密分散値[r(0)]m,[r(1)]m,秘密分散値[q]mを出力した。しかしながら、T≧2の場合であっても、[r(0)]m,[r(1)]mに代えて検査ビット列C(0),C(1)の各検査ビットの値の秘密分散値のみが出力されてもよい。また、秘密計算装置22mが、各検査ビットの値がともに0の場合に秘密分散値[q]mとなり、何れかの検査ビットの値が1の場合にエラーを表す秘密分散値となる値を生成して出力してもよい。
第2実施形態およびその変形例1では、秘密計算装置22mが秘密分散値[r(0)]m,[r(1)]m,秘密分散値[q]mを出力した。しかしながら、T≧2の場合であっても、[r(0)]m,[r(1)]mに代えて検査ビット列C(0),C(1)の各検査ビットの値の秘密分散値のみが出力されてもよい。また、秘密計算装置22mが、各検査ビットの値がともに0の場合に秘密分散値[q]mとなり、何れかの検査ビットの値が1の場合にエラーを表す秘密分散値となる値を生成して出力してもよい。
[第2実施形態の変形例3]
各秘密計算装置22mに秘密分散値[Y(0)]mおよび[Y(1)]mが入力され、ステップS23mからS27mの処理が実行されてもよい。
各秘密計算装置22mに秘密分散値[Y(0)]mおよび[Y(1)]mが入力され、ステップS23mからS27mの処理が実行されてもよい。
[第3実施形態]
第3実施形態では、秘密計算での空値検査に加え、秘密計算でのソートを行う。
<構成>
図1に例示するように、第3実施形態の秘密計算システム3は、分散装置11およびM個の秘密計算装置320−32M−1を有し、これらはインターネット等のネットワーク経由で通信可能に構成される。図2に例示するように、本形態の秘密計算装置32m(ただし、m=0,…,M−1)は、通信部121m、記憶部122m、制御部123m、入力演算部224m、検査ビット列取得部225m、空値検査部226m、ソート部327m、およびソート結果利用演算部328mを有する。秘密計算装置32mは、制御部123mの制御の下で各処理を実行する。
第3実施形態では、秘密計算での空値検査に加え、秘密計算でのソートを行う。
<構成>
図1に例示するように、第3実施形態の秘密計算システム3は、分散装置11およびM個の秘密計算装置320−32M−1を有し、これらはインターネット等のネットワーク経由で通信可能に構成される。図2に例示するように、本形態の秘密計算装置32m(ただし、m=0,…,M−1)は、通信部121m、記憶部122m、制御部123m、入力演算部224m、検査ビット列取得部225m、空値検査部226m、ソート部327m、およびソート結果利用演算部328mを有する。秘密計算装置32mは、制御部123mの制御の下で各処理を実行する。
<処理>
次に、図3を参照して本形態の処理を説明する。
分散装置11は入力値W(d)の秘密分散値[W(d)]mを生成して秘密計算装置22m(ただし、m=0,…,M−1、d=0,…,D−1であり、Dが2以上の整数である)に送信する。入力値W(d)は空値または実数値X(d)に対応する。入力値W(d)のフォーマットは前述した入力値Wのフォーマットと同じである。秘密分散値[W(d)]mmは、秘密計算装置32m(図2)の通信部121mで受信され、入力演算部124mに送られる(ステップS31m)。
次に、図3を参照して本形態の処理を説明する。
分散装置11は入力値W(d)の秘密分散値[W(d)]mを生成して秘密計算装置22m(ただし、m=0,…,M−1、d=0,…,D−1であり、Dが2以上の整数である)に送信する。入力値W(d)は空値または実数値X(d)に対応する。入力値W(d)のフォーマットは前述した入力値Wのフォーマットと同じである。秘密分散値[W(d)]mmは、秘密計算装置32m(図2)の通信部121mで受信され、入力演算部124mに送られる(ステップS31m)。
入力演算部324mは、秘密計算により、入力値W(d)の秘密分散値[W(d)]mを用いてY(d)=(W(d)+2L) mod Pの秘密分散値[Y(d)]mを得て出力する。Y(d)は「対象ビット列A(d)が表す値」に相当する。対象ビット列A(d)は、最上位ビットが1の場合に空値に対応し、最上位ビットが0の場合に実数値に対応するビット列である(ステップS32m)。
検査ビット列取得部325mは、秘密分散値[Y(d)]mを入力とし、秘密計算により、V(d)=2T×Y(d) mod Pの秘密分散値[V(d)]mを得て出力する。V(d)は「検査ビット列C(d)が表す値」に相当する(ステップS33m)。
空値検査部326mは、秘密分散値[V(d)]mを入力とし、検査ビット列C(d)の最下位ビットから検査ビットまでの各ビット値の秘密分散値[r(d)]mを得て出力する。例えば、T=1の場合、空値検査部326mは、最下位ビットである検査ビットの値の秘密分散値[r(d)]mを得て出力する(ステップS34m)。
ソート部327mは、対象ビット列A(d)(ただし、d=0,…,D−1)が表すY(d)の秘密分散値[Y(d)]を入力とし、秘密計算により、Y(d)の大きさに応じたソートを行い、そのソート結果の秘密分散値[θ]mを得て出力する。Y(d)はY(d)が大きいほど大きな実数値X(d)に対応している。なお、秘密計算によるソート方法に限定はなく、公知の方法によって実行すればよい。例えば、ソート部327mは、参考文献2のビット分解により、象ビット列A(d)の各ビット値の秘密分散値からなるベクトル[BitA(d)]の列を得、ベクトル[BitA(d)]の列を参考文献3,4等の方法でソートし、その結果の秘密分散値[θ]mを出力する。秘密分散値[θ]mは、例えばソートされた[BitA(d)]の列である(ステップS35m)。
ソート結果利用演算部328mは、ソート結果の秘密分散値[θ]mを得、最大値、最小値、中央値の少なくとも何れの秘密分散値[Φ]mを得て出力する。最大値の秘密分散値を得る場合、ソート結果利用演算部328mは、例えばソートされた[BitA(d)]の列のうち最後の要素を選択して出力する。最小値の秘密分散値を得る場合、ソート結果利用演算部328mは、例えばソートされた[BitA(d)]の列のうち最初の要素を選択して出力する。中央値の秘密分散値を得る場合には、例えば次のような処理を行う。Dが奇数のとき、ソート結果利用演算部328mは、ソートされた[BitA(d)]の列の中央の列の各要素の2倍値を要素とする列の秘密分散値を出力する。Dが偶数のとき、ソート結果利用演算部328mは、ソートされた[BitA(d)]の列の中央に最も近い2列を加算した列の秘密分散値を出力する(ステップS36m)。
秘密計算装置32mは、秘密分散値[r(d)]m(ただし、d=0,…,D−1)および[Φ]mを出力する(ステップS37m)。
[第3実施形態の変形例1]
第3実施形態では、ソート部327mが、対象ビット列A(d)(ただし、d=0,…,D−1)が表すY(d)の秘密分散値[Y(d)]を入力とし、秘密計算により、Y(d)の大きさに応じたソートを行い、そのソート結果の秘密分散値[θ]mを得て出力した(ステップS35m)。これに代え、図10に示すように、ソート部327mが、秘密分散値[V(d)]mを入力とし、秘密計算により、検査ビット列C(d)が表す値V(d)の大きさに応じたソートを行い、そのソート結果の秘密分散値[θ]mを得て出力してもよい(ステップS35’m)。
第3実施形態では、ソート部327mが、対象ビット列A(d)(ただし、d=0,…,D−1)が表すY(d)の秘密分散値[Y(d)]を入力とし、秘密計算により、Y(d)の大きさに応じたソートを行い、そのソート結果の秘密分散値[θ]mを得て出力した(ステップS35m)。これに代え、図10に示すように、ソート部327mが、秘密分散値[V(d)]mを入力とし、秘密計算により、検査ビット列C(d)が表す値V(d)の大きさに応じたソートを行い、そのソート結果の秘密分散値[θ]mを得て出力してもよい(ステップS35’m)。
[第3実施形態の変形例2]
第3実施形態およびその変形例1では、秘密計算装置32mが、秘密分散値[r(d)]m(ただし、d=0,…,D−1)および[Φ]mを出力した。しかしながら、T≧2の場合であっても、[r(d)]m(ただし、d=0,…,D−1)に代えて、検査ビット列C(d)の各検査ビットの値の秘密分散値のみが出力されてもよい。[Φ]mに代えて[θ]mが出力されてもよい。また、秘密計算装置32mが、各検査ビットの値がすべて0の場合に秘密分散値[Φ]mまたは[θ]mとなり、何れかの検査ビットの値が1の場合にエラーを表す秘密分散値となる値を生成して出力してもよい。
第3実施形態およびその変形例1では、秘密計算装置32mが、秘密分散値[r(d)]m(ただし、d=0,…,D−1)および[Φ]mを出力した。しかしながら、T≧2の場合であっても、[r(d)]m(ただし、d=0,…,D−1)に代えて、検査ビット列C(d)の各検査ビットの値の秘密分散値のみが出力されてもよい。[Φ]mに代えて[θ]mが出力されてもよい。また、秘密計算装置32mが、各検査ビットの値がすべて0の場合に秘密分散値[Φ]mまたは[θ]mとなり、何れかの検査ビットの値が1の場合にエラーを表す秘密分散値となる値を生成して出力してもよい。
[第3実施形態の変形例3]
各秘密計算装置32mに秘密分散値[Y(d)]mが入力され、ステップS33mからS37mの処理が実行されてもよい。
各秘密計算装置32mに秘密分散値[Y(d)]mが入力され、ステップS33mからS37mの処理が実行されてもよい。
[第4実施形態]
第1から第3実施形態を組み合わせた形態であってもよいし、それらの少なくとも一部が前述の変形例に置き換えられた形態であってもよい。図1に例示するように、このような形態の計算システム4は、分散装置11およびM個の秘密計算装置420−42M−1を有し、これらはインターネット等のネットワーク経由で通信可能に構成される。秘密計算装置42m(ただし、m=0,…,M−1)は、通信部121m、記憶部122m、制御部123m、入力演算部124m、検査ビット列取得部125m、空値検査部126m、大小比較ビット列取得部227m、大小比較部228m、ソート部327m、およびソート結果利用演算部328mを有する。秘密計算装置42mは、制御部123mの制御の下で各処理を実行する。各部の処理は第1から第3実施形態およびそれらの変形例で説明した通りである。
第1から第3実施形態を組み合わせた形態であってもよいし、それらの少なくとも一部が前述の変形例に置き換えられた形態であってもよい。図1に例示するように、このような形態の計算システム4は、分散装置11およびM個の秘密計算装置420−42M−1を有し、これらはインターネット等のネットワーク経由で通信可能に構成される。秘密計算装置42m(ただし、m=0,…,M−1)は、通信部121m、記憶部122m、制御部123m、入力演算部124m、検査ビット列取得部125m、空値検査部126m、大小比較ビット列取得部227m、大小比較部228m、ソート部327m、およびソート結果利用演算部328mを有する。秘密計算装置42mは、制御部123mの制御の下で各処理を実行する。各部の処理は第1から第3実施形態およびそれらの変形例で説明した通りである。
[その他の変形例等]
本発明は上述の実施の形態に限定されるものではない。例えば、秘密分散値[W]mがその他の秘密計算装置での秘密計算結果であってもよい。また、各装置がネットワークを通じて情報をやり取りするのではなく、少なくとも一部の組の装置が可搬型記録媒体を介して情報をやり取りしてもよい。あるいは、少なくとも一部の組の装置が非可搬型の記録媒体を介して情報をやり取りしてもよい。これらの装置の一部からなる組み合わせが、同一の装置であってもよい。
本発明は上述の実施の形態に限定されるものではない。例えば、秘密分散値[W]mがその他の秘密計算装置での秘密計算結果であってもよい。また、各装置がネットワークを通じて情報をやり取りするのではなく、少なくとも一部の組の装置が可搬型記録媒体を介して情報をやり取りしてもよい。あるいは、少なくとも一部の組の装置が非可搬型の記録媒体を介して情報をやり取りしてもよい。これらの装置の一部からなる組み合わせが、同一の装置であってもよい。
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は、非一時的な(non-transitory)記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。
このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。処理の実行時、このコンピュータは、自己の記録装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。
上記実施形態では、コンピュータ上で所定のプログラムを実行させて本装置の処理機能が実現されたが、これらの処理機能の少なくとも一部がハードウェアで実現されてもよい。
1−4 秘密計算システム
11 分散装置
12m−42m 秘密計算装置
11 分散装置
12m−42m 秘密計算装置
Claims (8)
- 最上位ビットが1の場合に空値に対応し、最上位ビットが0の場合に実数値に対応する第1対象ビット列が表す値の秘密分散値を用い、前記第1対象ビット列の最上位ビットの値を最上位ビットよりも下位の第1検査ビットの値とした第1検査ビット列が表す値の秘密分散値を得る第1検査ビット列取得部と、
前記第1検査ビット列が表す値の秘密分散値を用い、前記第1検査ビット列の最下位ビットから前記第1検査ビットまでのビット値の秘密分散値を得る第1空値検査部と、
を有する秘密計算装置。 - 請求項1の秘密計算装置であって、
Nが2以上の整数であり、P=2N−1であり、Lが0≦L≦N−u’の整数であり、u’が2以上N以下の正の整数であり、Xが−2L≦X≦2N−1−2L−1の整数であり、
前記第1対象ビット列がN個のビットからなる列であり、
空値に対応する前記第1対象ビット列が表す値は、Y={2L+(P+1)/2} mod Pであり、
0以上の整数であるXに対応する前記第1対象ビット列が表す値は、Y=(2L+X) mod Pであり、
負の整数であるXに対応する前記第1対象ビット列が表す値は、Y=(P+2L+X) mod Pである、秘密計算装置。 - 請求項2の秘密計算装置であって、
空値に対応する値がW=(P+1)/2 mod Pであり、0以上の整数であるXに対応する値がW=X mod Pであり、負の整数であるXに対応する値がW=(P+X) mod Pである入力値Wの秘密分散値を用い、前記第1対象ビット列が表す値Y=(W+2L) mod Pの秘密分散値を得る入力演算部を有する、秘密計算装置。 - 請求項1から3の何れかの秘密計算装置であって、
第2対象ビット列が、最上位ビットが1の場合に空値に対応し、最上位ビットが0の場合に実数値に対応するビット列であり、
前記第1対象ビット列が表す値から前記第2対象ビット列が表す値を減じた値に2K−1を加算した値を表す比較結果値の秘密分散値を得る大小比較ビット列取得部と、
前記比較結果値を表すビット列の下位からKビット目の値の秘密分散値を得る大小比較部と、を有し、
Kが2以上の整数であり、最上位ビットが0の前記第1対象ビット列が表す値および最上位ビットが0の前記第2対象ビット列が表す値の大きさは0以上2K−1未満である、秘密計算装置。 - 請求項4の秘密計算装置であって、
前記第2対象ビット列が表す値の秘匿値を用い、前記第2対象ビット列の最上位ビットの値を最上位ビットよりも下位の第2検査ビットの値とした第2検査ビット列が表す値の秘密分散値を得る第2検査ビット列取得部と、
前記第2検査ビット列が表す値の秘密分散値を用い、前記第1検査ビット列の最下位ビットから前記第2検査ビットまでのビット値の秘密分散値を得る第2空値検査部と、
を有する、秘密計算装置。 - d=0,…,D−1であり、Dが2以上の整数であり、最上位ビットが1の場合に空値に対応し、最上位ビットが0の場合に実数値に対応する対象ビット列A(d)が表す値の秘密分散値を用い、前記対象ビット列A(d)の最上位ビットの値を最上位ビットよりも下位の検査ビットの値r(d)とした検査ビット列C(d)が表す値の秘密分散値を得る検査ビット列取得部と、
前記検査ビット列C(d)が表す値の秘密分散値を用い、前記第1検査ビット列C(d)の最下位ビットから前記検査ビットまでのビット値の秘密分散値を得る空値検査部と、
前記対象ビット列A(d)が表す値の大きさに応じたソート結果の秘密分散値、または検査ビット列C(d)が表す値の大きさに応じたソート結果の秘密分散値を得るソート部と、
を有し、
前記ソート部で前記対象ビット列A(d)が表す値の大きさに応じたソート結果の秘密分散値を得る場合には、最上位ビットが0の前記対象ビット列A(d)が表す値が、前記対象ビット列A(d)が表す値が大きいほど大きな実数値に対応しており、
前記ソート部で検査ビット列C(d)が表す値の大きさに応じたソート結果の秘密分散値を得る場合には、最上位ビットが0の前記対象ビット列A(d)に対応する前記検査ビット列C(d)が表す値が、前記検査ビット列C(d)が表す値が大きいほど大きな実数値に対応している、秘密計算装置。 - 第1検査ビット列取得部において、最上位ビットが1の場合に空値に対応し、最上位ビットが0の場合に実数値に対応する第1対象ビット列が表す値の秘密分散値を用い、前記第1対象ビット列の最上位ビットの値を最上位ビットよりも下位の第1検査ビットの値とした第1検査ビット列が表す値の秘密分散値を得るステップと、
第1空値検査部において、前記第1検査ビット列が表す値の秘密分散値を用い、前記第1検査ビット列の最下位ビットから前記第1検査ビットまでのビット値の秘密分散値を得るステップと、
を有する秘密計算方法。 - 請求項1から6の何れかの秘密計算装置としてコンピュータを機能させるためのプログラム。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015126179A JP5957126B1 (ja) | 2015-06-24 | 2015-06-24 | 秘密計算装置、秘密計算方法、およびプログラム |
CN201680033336.5A CN107735830B (zh) | 2015-06-24 | 2016-06-13 | 秘密计算装置、秘密计算方法和记录介质 |
US15/737,915 US10679522B2 (en) | 2015-06-24 | 2016-06-13 | Secure computation apparatus, secure computation method and program |
EP16814208.1A EP3316235B1 (en) | 2015-06-24 | 2016-06-13 | Device, method and program for secure multiparty comparison |
PCT/JP2016/067529 WO2016208437A1 (ja) | 2015-06-24 | 2016-06-13 | 秘密計算装置、秘密計算方法、およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015126179A JP5957126B1 (ja) | 2015-06-24 | 2015-06-24 | 秘密計算装置、秘密計算方法、およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5957126B1 true JP5957126B1 (ja) | 2016-07-27 |
JP2017009840A JP2017009840A (ja) | 2017-01-12 |
Family
ID=56513738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015126179A Active JP5957126B1 (ja) | 2015-06-24 | 2015-06-24 | 秘密計算装置、秘密計算方法、およびプログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US10679522B2 (ja) |
EP (1) | EP3316235B1 (ja) |
JP (1) | JP5957126B1 (ja) |
CN (1) | CN107735830B (ja) |
WO (1) | WO2016208437A1 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018212015A1 (ja) * | 2017-05-18 | 2018-11-22 | 日本電気株式会社 | 秘密計算装置、比較方法、比較プログラム記録媒体、および秘密計算システム |
WO2019208486A1 (ja) * | 2018-04-26 | 2019-10-31 | 日本電信電話株式会社 | 秘密集約中央値システム、秘密計算装置、秘密集約中央値方法、およびプログラム |
WO2019208485A1 (ja) * | 2018-04-25 | 2019-10-31 | 日本電信電話株式会社 | 秘密集約最大値システム、秘密集約最小値システム、秘密計算装置、秘密集約最大値方法、秘密集約最小値方法、およびプログラム |
WO2023233622A1 (ja) * | 2022-06-02 | 2023-12-07 | 日本電信電話株式会社 | 秘密計算装置、秘密計算方法、プログラム |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11599681B2 (en) | 2017-05-18 | 2023-03-07 | Nec Corporation | Bit decomposition secure computation apparatus, bit combining secure computation apparatus, method and program |
WO2019073858A1 (ja) * | 2017-10-12 | 2019-04-18 | 日本電信電話株式会社 | 置換装置、置換方法、およびプログラム |
TWI692743B (zh) * | 2018-01-08 | 2020-05-01 | 國立高雄科技大學 | 以調色盤壓縮為基礎的彩色影像驗證方法與電腦程式產品 |
JP6973629B2 (ja) * | 2018-04-20 | 2021-12-01 | 日本電信電話株式会社 | 秘密集約順位システム、秘密計算装置、秘密集約順位方法、およびプログラム |
JP7067624B2 (ja) * | 2018-08-13 | 2022-05-16 | 日本電信電話株式会社 | 秘密強写像計算システム、これらの方法、秘密計算装置及びプログラム |
WO2020075273A1 (ja) * | 2018-10-11 | 2020-04-16 | 日本電気株式会社 | 情報処理装置、秘密計算方法及びプログラム |
BR112021023407A2 (pt) | 2019-05-24 | 2022-01-04 | Lummus Technology Inc | Produção flexível de gasolina e combustível de aviação em reator de alquilação |
US11290264B2 (en) * | 2019-11-06 | 2022-03-29 | Robert Bosch Gmbh | Secure and efficient multi-server oblivious random access machine in a malicious execution environment |
WO2021149105A1 (ja) * | 2020-01-20 | 2021-07-29 | 日本電信電話株式会社 | 秘密計算装置、秘密計算方法、およびプログラム |
CN114981864B (zh) * | 2020-01-20 | 2025-01-07 | 日本电信电话株式会社 | 秘密选择积计算系统、秘密选择积计算方法、秘密计算装置以及程序产品 |
US20220407682A1 (en) * | 2020-01-20 | 2022-12-22 | Nippon Telegraph And Telephone Corporation | Secure computation apparatus, secure computation method, and program |
CN114981860A (zh) * | 2020-01-20 | 2022-08-30 | 日本电信电话株式会社 | 秘密计算装置、秘密计算方法、以及程序 |
EP4095826A4 (en) * | 2020-01-20 | 2023-10-25 | Nippon Telegraph And Telephone Corporation | SECURE CALCULATION DEVICE, SECURE CALCULATION METHOD AND PROGRAM |
JP7380843B2 (ja) * | 2020-03-24 | 2023-11-15 | 日本電気株式会社 | 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム |
CN116324933A (zh) * | 2020-10-16 | 2023-06-23 | 日本电信电话株式会社 | 隐匿msb标准化系统、分散处理装置、隐匿msb标准化方法以及程序 |
JP7451445B2 (ja) * | 2021-02-10 | 2024-03-18 | 株式会社東芝 | 秘匿演算方法、秘匿演算システム及び秘匿演算管理装置 |
CN114760055B (zh) * | 2022-06-15 | 2022-09-09 | 山东区块链研究院 | 基于梅森素数的秘密分享方法、系统、存储介质及设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015053185A1 (ja) * | 2013-10-10 | 2015-04-16 | 日本電信電話株式会社 | 秘密商転移装置、秘密ビット分解装置、秘密モジュラス変換装置、秘密商転移方法、秘密ビット分解方法、秘密モジュラス変換方法、プログラム |
WO2015107951A1 (ja) * | 2014-01-17 | 2015-07-23 | 日本電信電話株式会社 | 秘密計算方法、秘密計算システム、ソート装置及びプログラム |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7899184B2 (en) * | 2004-09-02 | 2011-03-01 | Pisaramedia Oy | Ends-messaging protocol that recovers and has backward security |
JP2007189517A (ja) * | 2006-01-13 | 2007-07-26 | Nec Corp | 量子暗号装置 |
EP1835657B1 (en) * | 2006-03-16 | 2014-11-12 | Sap Se | Methods and systems for multi-party sorting of private values |
JP4901311B2 (ja) * | 2006-06-01 | 2012-03-21 | 株式会社東芝 | データ処理装置、データ処理方法、およびデータ処理プログラム |
JP5424974B2 (ja) * | 2010-04-27 | 2014-02-26 | 三菱電機株式会社 | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置 |
JP5411994B2 (ja) * | 2010-10-06 | 2014-02-12 | 日本電信電話株式会社 | 秘密分散システム、秘密分散装置、秘密分散方法、秘密ソート方法、秘密分散プログラム |
CN103329185B (zh) * | 2011-01-24 | 2015-07-15 | 日本电信电话株式会社 | 隐匿积和计算方法、隐匿积和计算系统、计算装置 |
JP5480828B2 (ja) * | 2011-01-24 | 2014-04-23 | 日本電信電話株式会社 | 秘密ソートシステム、秘密ソート装置、秘密ソート方法、秘密ソートプログラム |
JP5826934B2 (ja) * | 2012-07-05 | 2015-12-02 | 日本電信電話株式会社 | 秘密分散システム、データ分散装置、分散データ変換装置、秘密分散方法、およびプログラム |
EP2947642B1 (en) * | 2013-01-17 | 2017-09-06 | Nippon Telegraph and Telephone Corporation | Secret computation system, arithmetic unit, secret computation method and program |
JP6034927B1 (ja) * | 2015-07-27 | 2016-11-30 | 日本電信電話株式会社 | 秘密計算システム、秘密計算装置、およびプログラム |
-
2015
- 2015-06-24 JP JP2015126179A patent/JP5957126B1/ja active Active
-
2016
- 2016-06-13 WO PCT/JP2016/067529 patent/WO2016208437A1/ja active Application Filing
- 2016-06-13 EP EP16814208.1A patent/EP3316235B1/en active Active
- 2016-06-13 US US15/737,915 patent/US10679522B2/en active Active
- 2016-06-13 CN CN201680033336.5A patent/CN107735830B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015053185A1 (ja) * | 2013-10-10 | 2015-04-16 | 日本電信電話株式会社 | 秘密商転移装置、秘密ビット分解装置、秘密モジュラス変換装置、秘密商転移方法、秘密ビット分解方法、秘密モジュラス変換方法、プログラム |
WO2015107951A1 (ja) * | 2014-01-17 | 2015-07-23 | 日本電信電話株式会社 | 秘密計算方法、秘密計算システム、ソート装置及びプログラム |
Non-Patent Citations (2)
Title |
---|
JPN6016022282; 加藤遼,他: '小さい法を用いたセキュアマルチパーティ計算のビット演算の効率化' コンピュータセキュリティシンポジウム2013論文集 , 20131014, pp. 419-426, 一般社団法人情報処理学会 * |
JPN6016022285; 五十嵐大: '少パーティの秘密分散ベース秘密計算のためのO(l)ビット通信ビット分解およびO(|p'|)ビット通信' コンピュータセキュリティシンポジウム2013論文集 , 20131014, pp. 785-792, 一般社団法人情報処理学会 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018212015A1 (ja) * | 2017-05-18 | 2018-11-22 | 日本電気株式会社 | 秘密計算装置、比較方法、比較プログラム記録媒体、および秘密計算システム |
JPWO2018212015A1 (ja) * | 2017-05-18 | 2020-03-12 | 日本電気株式会社 | 秘密計算装置、比較方法、比較プログラム、および秘密計算システム |
JP7047838B2 (ja) | 2017-05-18 | 2022-04-05 | 日本電気株式会社 | 秘密計算装置、比較方法、比較プログラム、および秘密計算システム |
US11314506B2 (en) | 2017-05-18 | 2022-04-26 | Nec Corporation | Secure computation device, comparison method, comparison program recording medium, and secure computation system |
WO2019208485A1 (ja) * | 2018-04-25 | 2019-10-31 | 日本電信電話株式会社 | 秘密集約最大値システム、秘密集約最小値システム、秘密計算装置、秘密集約最大値方法、秘密集約最小値方法、およびプログラム |
CN112074890A (zh) * | 2018-04-25 | 2020-12-11 | 日本电信电话株式会社 | 秘密聚合最大值系统、秘密聚合最小值系统、秘密计算装置、秘密聚合最大值方法、秘密聚合最小值方法以及程序 |
JPWO2019208485A1 (ja) * | 2018-04-25 | 2021-04-22 | 日本電信電話株式会社 | 秘密集約最大値システム、秘密集約最小値システム、秘密計算装置、秘密集約最大値方法、秘密集約最小値方法、およびプログラム |
CN112074890B (zh) * | 2018-04-25 | 2024-03-22 | 日本电信电话株式会社 | 秘密聚合最大值系统和方法、秘密聚合最小值系统和方法、秘密计算装置、以及记录介质 |
WO2019208486A1 (ja) * | 2018-04-26 | 2019-10-31 | 日本電信電話株式会社 | 秘密集約中央値システム、秘密計算装置、秘密集約中央値方法、およびプログラム |
JPWO2019208486A1 (ja) * | 2018-04-26 | 2021-04-22 | 日本電信電話株式会社 | 秘密集約中央値システム、秘密計算装置、秘密集約中央値方法、およびプログラム |
WO2023233622A1 (ja) * | 2022-06-02 | 2023-12-07 | 日本電信電話株式会社 | 秘密計算装置、秘密計算方法、プログラム |
Also Published As
Publication number | Publication date |
---|---|
EP3316235A1 (en) | 2018-05-02 |
CN107735830A (zh) | 2018-02-23 |
US20180158377A1 (en) | 2018-06-07 |
JP2017009840A (ja) | 2017-01-12 |
EP3316235A4 (en) | 2019-01-30 |
EP3316235B1 (en) | 2020-04-29 |
US10679522B2 (en) | 2020-06-09 |
CN107735830B (zh) | 2020-10-20 |
WO2016208437A1 (ja) | 2016-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5957126B1 (ja) | 秘密計算装置、秘密計算方法、およびプログラム | |
Bauer et al. | Clear and compress: Computing persistent homology in chunks | |
JP6095792B2 (ja) | 秘密ビット分解装置、秘密モジュラス変換装置、秘密ビット分解方法、秘密モジュラス変換方法、プログラム | |
JP2017515195A (ja) | 断熱量子計算を介してデジタル論理制約問題を解く | |
JP7031682B2 (ja) | 秘密計算装置、システム、方法、プログラム | |
WO2019208484A1 (ja) | 秘密集約総和システム、秘密計算装置、秘密集約総和方法、およびプログラム | |
CN112805770B (zh) | 秘密右移位运算系统及方法、秘密除法运算系统及方法、秘密计算装置以及记录介质 | |
JP5872085B1 (ja) | 分散値変換システム、分散値変換装置、分散値変換方法、およびプログラム | |
JPWO2019208485A1 (ja) | 秘密集約最大値システム、秘密集約最小値システム、秘密計算装置、秘密集約最大値方法、秘密集約最小値方法、およびプログラム | |
JP2014081475A (ja) | 秘密計算システム、集約関数装置、秘密計算方法、およびプログラム | |
CN112434317A (zh) | 数据处理方法、装置、设备及存储介质 | |
JP7327510B2 (ja) | 秘密乱数生成システム、秘密計算装置、秘密乱数生成方法、およびプログラム | |
US10469257B2 (en) | Matrix and key generation device, matrix and key generation system, matrix coupling device, matrix and key generation method, and program | |
JP6367959B2 (ja) | 部分文字列位置検出装置、部分文字列位置検出方法及びプログラム | |
CN106796765B (zh) | 非减序列判定装置、非减序列判定方法以及记录介质 | |
CN112417478A (zh) | 数据处理方法、装置、设备及存储介质 | |
JP5875717B1 (ja) | 乱数生成装置、乱数生成方法、およびプログラム | |
JP2014137740A (ja) | 計算装置、計算システム、計算方法 | |
JP7331952B2 (ja) | 秘密平方根逆数計算システム、秘密正規化システム、それらの方法、秘密計算装置、およびプログラム | |
JP5875719B1 (ja) | 乱数生成装置、乱数生成方法、およびプログラム | |
Xu et al. | High-efficiency realization of SRT division on ternary optical computers | |
JP7331951B2 (ja) | 秘密平方根計算システム、秘密正規化システム、それらの方法、秘密計算装置、およびプログラム | |
JP7331953B2 (ja) | 秘密逆数計算システム、秘密正規化システム、それらの方法、秘密計算装置、およびプログラム | |
WO2023233622A1 (ja) | 秘密計算装置、秘密計算方法、プログラム | |
Tchinda et al. | A Polynomial Algorithm for Solving the Closest Vector Problem in Tensored Root Lattices of Type D |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160608 |
|
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: 20160614 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160617 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5957126 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |