JP6881588B2 - 秘密計算装置、秘密計算方法、プログラム、および記録媒体 - Google Patents
秘密計算装置、秘密計算方法、プログラム、および記録媒体 Download PDFInfo
- Publication number
- JP6881588B2 JP6881588B2 JP2019537589A JP2019537589A JP6881588B2 JP 6881588 B2 JP6881588 B2 JP 6881588B2 JP 2019537589 A JP2019537589 A JP 2019537589A JP 2019537589 A JP2019537589 A JP 2019537589A JP 6881588 B2 JP6881588 B2 JP 6881588B2
- Authority
- JP
- Japan
- Prior art keywords
- secret
- processing
- information
- confidential information
- matrix
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- 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
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- 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
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Complex Calculations (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
[第1実施形態]
まず、第1実施形態を説明する。
<構成>
図1に例示するように、本形態の秘密計算システム1はN個の秘密計算装置10−0〜10−(N−1)を有する。Nは1以上の整数である。例えば、秘密分散によって得られたシェアを用いて秘密計算を行う場合にはN≧2であり、準同型暗号文を用いて秘密計算を行う場合にはN≧1である。N≧2の場合、秘密計算装置10−0〜10−(N−1)はネットワークを通じて通信可能に構成される。
図4および図5に例示するように、本形態の秘密計算装置10−nは、1,…,R+1ラウンド目のラウンド鍵k1,…,kR+1∈FUの秘匿情報{k1},…,{kR+1}∈{FU}、および各ブロックb=0,…,B−1のカウンタ値ib,0,…,ib,S−1∈Fの秘匿情報{ib,0},…,{ib,S−1}∈{F}を用い、秘密計算により、各ブロックb=0,…,B−1でブロック暗号化を行う。次に秘密計算装置10−nは、各ブロックb=0,…,B−1のブロック暗号化で得られた秘匿情報と、暗号化対象の平文PをB個のブロックに分割して得られた平文ブロックP0,…,PB−1∈FUの秘匿情報{P0},…,{PB−1}∈{FU}とを秘密計算によって加算(例えば、排他的論理和)する。ただし、Bは1以上の整数であり、Rは3以上の整数であり、Sは2以上の整数であり、U=S2であり、Fは有限体である。有限体Fの例は基礎体に基づく拡大体である。基礎体の例は素数を法とした剰余からなる集合であり、当該基礎体での演算結果は当該素数を法とした剰余として得られる。例えば、Fは位数2の基礎体を8次拡大した拡大体GF(28)である。例えば、基礎体の元が2バイトのデータである場合、拡大体GF(28)の元は1バイト(=8ビット)のデータとなる。この場合、拡大体GF(28)によって256通りの値を表現できる。Fαはα個の有限体Fの元を要素とする集合を意味する。また、α∈βはαがβに属することを意味する。{β}はα∈βの秘匿情報{α}が属する集合を意味する。
本形態のブロック暗号化では、表を用い、通常のブロック暗号化処理を効率化する。図5に例示するように、通常のブロック暗号化処理は、1〜R+1ラウンドのラウンド処理を含む。例えば、AESをCTRモードで実装したブロック暗号化処理は、鍵長が128ビットの場合には1〜11ラウンドの処理を、鍵長が192ビットの場合には1〜13ラウンドの処理を、鍵長が256ビットの場合には1〜15ラウンドの処理をそれぞれ含む。
本形態のブロック暗号化の特徴を説明する。前述のように、1ラウンド目の加算処理P1,4では、ラウンド鍵k1の要素からなるS×S行列の1つの列のS個の要素にS個のカウンタ値ib,0,…,ib,S−1をそれぞれ加算して行列Mb,1,4を得る。S=4、U=16、ラウンド鍵k1=(k1,0,…,k1,15)の場合、行列Mb,1,4は例えば以下のようになる。
ただし、n0,…,n11∈Fは任意値である。n0=…=n11=0であってもよい。AESではn0,…,n11はnonceに相当する。
ここで、f1,0,…,f1,11は全ブロックb=0,…,B−1に共通であるため定数とみなせ、f1,12(i3),…,f1,15(i0)は変数i=i0,…,i3に対する一変数関数値である。つまり、各ブロックb=0,…,B−1の行列Mb,2,1は、変数i=i0,…,i3に対する一変数関数値を要素に持つ表M(i0,…,i3)として一般化できる。このことはS=4の場合のみならず、その他のSの場合も同様である。すなわち、各ブロックb=0,…,B−1の行列Mb,2,1は、変数i=i0,…,iS−1に対する一変数関数値を要素に持つ表として一般化できる。
ただし、
である。x0,…,x11は全ブロックb=0,…,B−1で共通であるため定数とみなせ、x12,…,x15は変数i=i0,…,iS−1に対する一変数関数値である。そのため、式(5)は以下のように変形できる。
ただし、f2,s(i)(ただし、s=0,…,S−1、i=i0,…,iS−1)は一変数関数値である。つまり、行列Mb,2,3も、変数i=i0,…,iS−1に対する一変数関数値を要素に持つ表として一般化できる。
すなわち、行列Mb,2,1,…,Mb,3,2は変数i=i0,…,iS−1に対する一変数関数値を要素に持つ表として一般化できる。ここで、変数i=i0,…,iS−1に対する一変数関数値を要素に持つ表M(i0,…,iS−1)に、各ブロックbのカウンタ値ib,0,…,ib,S−1を代入すると、各ブロックbでの行列M(ib,0,…,ib,S−1)が得られる。表M(i0,…,iS−1)の要素は一変数関数値または定数とみなせる。そのため、表M(i0,…,iS−1)の各要素は有限体Fの元のデータ量以下で表現でき、表M(i0,…,iS−1)全体はそのU倍のデータ量以下で表現できる。例えば、S=4であり、有限体FがGF(28)であってその元のとり得る値の数が256通りである場合、表M(i0,…,iS−1)の各要素のとり得る値の数は256通り以下となり、表全体では1バイト×256通り×16個=4096バイト以下のデータ量となる。一方、3ラウンド目の混合処理P3,3以降では、得られる行列を変数i=i0,…,iS−1に対する一変数関数値を要素に持つ表として表現できず(多変数関数値を要素に持つ表となってしまい)、表のサイズが大きくなってしまう。
図6から図11を用い、処理の詳細を説明する。
≪前提≫
前提として、初期記憶部1001−nにラウンド鍵k1,…,kR+1の秘匿情報{k1},…,{kR+1}、カウンタ値i0,0,…,i0,S−1の秘匿情報{i0,0},…,{i0,S−1}、平文ブロックP0,…,PB−1の秘匿情報{P0},…,{PB−1}が格納されているものとする。秘匿情報は、秘密分散方式に則ったシェア(秘密分散値)であってもよいし、準同型暗号方式に則った暗号文(RSA暗号方式やElGamal暗号方式などの暗号文)であってもよい。なお、秘密分散方式に則った秘匿情報を用いた秘密計算の方法は、例えば、千田浩司、濱田浩気、五十嵐大、高橋克巳、“軽量検証可能3パーティ秘匿関数計算の再考”,CSS2010,2010年(参考文献2)、「Michael Ben-Or, Shafi Goldwasser, Avi Wigderson: Completeness Theorems for Non-Cryptographic Fault-Tolerant Distributed Computation (Extended Abstract). STOC 1988: 1-10」(参考文献3)等に記載されている。
表生成部1010−nは、何れかのラウンド鍵k1,…,k3の秘匿情報を用い、秘密計算により、変数i=i0,…,iS−1に対する一変数関数値を要素に持つ表M(i0,…,iS−1)の秘匿情報{M(i0,…,iS−1)}を得る前段処理を行う。ただし、表M(i0,…,iS−1)にカウンタ値ib,0,…,ib,S−1を代入したM(ib,0,…,ib,S−1)が何れかの行列Mb,γ,μ=Mb,2,1,…,Mb,3,2となる。すなわち、表生成部1010−nの秘密計算部1011−nが、カウンタ値ib,0,…,ib,S−1を変数i0,…,iS−1とし、制御部1012−nの制御の下、必要となるラウンド鍵k1,…,kRの秘匿情報を用い、加算処理P1,4から何れかの処理Pγ,μ(ただし、Pγ,μはP2,1,…,P3,2の何れか)までを秘密計算によって実行して(ステップS1011−n)、秘匿情報{M(i0,…,iS−1)}を得る。例えば、Mb,γ,μ=Mb,2,1の場合、表生成部1010−nの秘密計算部1011−nは、カウンタ値ib,0,…,ib,S−1を変数i0,…,iS−1とし、秘匿情報{k1},{k2}を用い、1ラウンド目の加算処理P1,4と2ラウンド目の置換処理P2,1とを秘密計算によって実行し、置換処理P2,1によって得られる行列の秘匿情報を秘匿情報{M(i0,…,iS−1)}として得て出力する(例えば、式(3)の秘匿情報)。例えば、Mb,γ,μ=Mb,3,1の場合、表生成部1010−nの秘密計算部1011−nは、カウンタ値ib,0,…,ib,S−1を変数i0,…,iS−1とし、秘匿情報{k1},{k2},{k3}を用い、1ラウンド目の加算処理P1,4、2ラウンド目の置換処理P2,1、シフト処理P2,2、混合処理P2,3、加算処理P2,4、3ラウンド目の置換処理P3,1を秘密計算によって実行し、置換処理P3,1によって得られる行列の秘匿情報を秘匿情報{M(i0,…,iS−1)}として得て出力する。例えば、Mb,γ,μ=Mb,3,2の場合、表生成部1010−nの秘密計算部1011−nは、カウンタ値ib,0,…,ib,S−1を変数i0,…,iS−1とし、秘匿情報{k1},{k2},{k3}を用い、1ラウンド目の加算処理P1,4、2ラウンド目の置換処理P2,1、シフト処理P2,2、混合処理P2,3、加算処理P2,4、3ラウンド目の置換処理P3,1、シフト処理P3,2を秘密計算によって実行し、シフト処理P3,2によって得られる行列の秘匿情報を秘匿情報{M(i0,…,iS−1)}として得て出力する(例えば、式(8)の秘匿情報)。秘匿情報{M(i0,…,iS−1)}は表記憶部1002−nに格納される。
カウンタ更新部1003−nは、初期記憶部1001−nに格納されたカウンタ値i0,0,…,i0,S−1の秘匿情報{i0,0},…,{i0,S−1}を用い、秘密計算によって、ブロックb’=2,…,B−1のカウンタ値ib’,0,…,ib’,S−1の秘匿情報{ib’,0},…,{ib’,S−1}を得て出力する。カウンタ値ib’,0,…,ib’,S−1は、カウンタ値i0,0,…,i0,S−1に予め定められた規則を適用することで得られる値である。例えば、カウンタ値ib’−1,0,…,ib’−1,S−1によって表現される値ib’−1,0…ib’−1,S−1を所定値(例えば、1)だけ増加させた値ib’−1,0 , …, ib’−1,S−1+1を表現する値をカウンタ値ib’,0,…,ib’,S−1とする。表計算部1020−nは、初期記憶部1001−nから読み出したか、または、カウンタ更新部1003−nから出力された秘匿情報{ib,0},…,{ib,S−1}、および表記憶部1002−nから読み出した秘匿情報{M(i0,…,iS−1)}を用い、秘密計算によって、b=0,…,B−1について、行列Mb,γ,μの秘匿情報{Mb,γ,μ}={M(ib,0,…,ib,S−1)}を得て出力する。
ラウンド処理部1030−nは、何れかのラウンド鍵k2,…,kR+1の秘匿情報および秘匿情報{Mb,γ,μ}を用い、秘密計算(ステップS1031b−n)により、残存処理を実行して得られる行列Mb,Γ,MUの秘匿情報{Mb,Γ,MU}を得る後段処理を行う。残存処理は、j=2,…,Rについての置換処理Pj,1、シフト処理Pj,2、混合処理Pj,3、および加算処理Pj,4のうち、処理Pγ,μよりも後に行われる各処理を含む処理である。処理Pγ,μは、表計算部1020−nで得られた秘匿情報{Mb,γ,μ}={M(ib,0,…,ib,S−1)}に対応する。例えば、Mb,γ,μ=Mb,3,2かつΓ=R+1,MU=4の場合、ラウンド処理部1030−nは、秘匿情報{k3},…,{kR+1}および秘匿情報{Mb,3,2}を用い、秘密計算により、3ラウンド目の混合処理P3,3からRラウンド目の加算処理PR,4までを実行し、さらにR+1ラウンド目の置換処理PR+1,1、シフト処理PR+1,2、加算処理PR+1,4を実行して得られる行列Mb,R+1,4の秘匿情報{Mb,R+1,4}を得て出力する。
加算部1041−nは、各ブロックb=0,…,B−1について、秘匿情報{Mb,R+1,4}および秘匿情報{Pb}を入力とし、秘密計算によってCb=Mb,R+1,4+Pb∈FUの秘匿情報{Cb}を得て出力する。
以上のように、本形態では表M(i0,…,iS−1)の秘匿情報{M(i0,…,iS−1)}を生成し、秘匿情報{M(i0,…,iS−1)}を用いて秘密計算によって各ブロックb=0,…,B−1の秘匿情報{Mb,γ,μ}を得る。表M(i0,…,iS−1)のサイズはFのU倍のデータ量以下で表現でき、秘匿情報{M(i0,…,iS−1)}を用いて各ブロックb=0,…,B−1の処理を行うことで演算量を削減できる。さらに、Mb,γ,μがMb,3,1またはMb,3,2である場合には、2回の処理P2,1,P2,2の秘密計算に必要な通信を削減できる。このように、本形態では、要素の置換と行の巡回シフトと列の線形和とラウンド鍵の加算とを繰り返すラウンド処理を秘密計算によって効率的に実行できる。
第2実施形態は第1実施形態の変形例であり、改ざん検知を行うためのチェックサムを生成し、改ざん検知を行う。ただし、前述のように、表M(i0,…,iS−1)の秘匿情報{M(i0,…,iS−1)}を得るまでの前段処理で処理されるデータ量は小さい。一方、前段処理の後に行われる後段処理で処理されるデータ量は格段に大きくなる。本形態では、これらの違いに応じ、異なる方式でチェックサムを生成する。これにより、安全に効率的な暗号化を行うことができる。以下では第1実施形態との相違点を中心に説明し、既に説明した事項については、同じ参照番号を用いて説明を簡略化する。
図1に例示するように、本形態の秘密計算システム2はN個の秘密計算装置20−0〜20−(N−1)を有する。Nは1以上の整数である。N≧2の場合、秘密計算装置20−0〜20−(N−1)はネットワークを通じて通信可能に構成される。
本形態では、処理データ量が小さい前段処理と処理データ量が格段に大きくなる後段処理とで互いに異なる方式によってチェックサムを生成する。すなわち、表生成部2010が、前段処理での改ざんを検知するための第1チェックサムを第1方式に則って生成し、ラウンド処理部2030が、後段処理での改ざんを検知するための第2チェックサムを第2方式に則って生成する。ここで、第1方式は、改ざん検知対象である秘匿情報の復元値のデータ量に、安全性の高さが依存しない方式である。第1方式の例としては、「Dai Ikarashi, Ryo Kikuchi, Koki Hamada, and Koji Chida, “Actively Private and Correct MPC Scheme in t < n/2 from Passively Secure Schemes with Small Overhead,” Cryptology ePrint Archive, Report 2014/304, 2014.(参考文献4)」および国際公開第WO/2016/104476号(参考文献5)に記載された方式を例示できる。一方、第2方式は、改ざん検知対象である秘匿情報の復元値のデータ量に、安全性の高さが依存する方式である。すなわち、第2方式は、改ざん検知対象である秘匿情報の復元値のデータ量がα1であるときの安全性が、改ざん検知対象である秘匿情報の復元値のデータ量がα2であるときの安全性よりも高い方式である。ただし、α1がα2よりも大きい。例えば、第2方式は、改ざん検知対象である秘匿情報の復元値のデータ量が多いほど安全性が高い方式である。第2方式の例としては、「五十嵐大,菊池亮,濱田浩気,千田浩司,“少パーティ数の秘密分散ベース秘密計算における効率的なmaliciousモデル上SIMD計算の構成法,”コンピュータセキュリティシンポジウム2013論文集 2013(4), 793-800, 2013-10-14(参考文献6)」および国際公開第WO/2015/053184号(参考文献7)に記載された方式を例示できる。ただし、参考文献6,7には明記されていないが、さらなる高速化のためにはランダム置換としてランダム巡回シフト(ランダムローテーション)が用いられることが望ましい。同様に、参考文献6,7には明記されていないが、さらなる高速化のためには、生成されるダミーブロックの個数Yとブロック数Bとの合計がブロック数Bよりも大きな素数pであることが望ましい。すなわち、Y=p−Bであることが望ましい。より好ましくは、pがブロック数Bよりも大きな最小の素数であることが望ましい。また、参考文献6,7の方式は、ダミーブロックが秘匿化されずに計算可能であることを前提としている。しかし、本形態ではダミーブロックも秘匿情報として処理される。そのため、本形態ではダミーブロックの何れかを要処理ダミーブロックとし、要処理ダミーブロックに対するチェックサムを第3方式によって生成する。これによってより高い安全性を担保する。なお、第3方式は、改ざん検知対象である秘匿情報の復元値のデータ量に、安全性の高さが依存しない方式である。例えば、第3方式は第1方式と同じ方式である。
図6から図11を用い、処理の詳細を説明する。
≪前提≫
第1実施形態と同じである。
第1実施形態と同様、表生成部2010−nは、何れかのラウンド鍵k1,…,k3の秘匿情報を用い、秘密計算により、変数i=i0,…,iS−1に対する一変数関数値を要素に持つ表M(i0,…,iS−1)の秘匿情報{M(i0,…,iS−1)}を得る前段処理を行う。さらに本形態では、表生成部2010−nが当該前段処理での改ざんを検知するための第1チェックサムを第1方式に則って生成する。以下に、第1方式として参考文献4,5の方式を採用した例を示す。
図7を用いてステップS2010−nの詳細を例示する。この例の秘匿情報は秘密分散方式に則ったシェアである。前段処理はT種類の秘密分散方式meth0,…,methT−1に則った秘匿情報を用いた秘密計算を含む。当該秘密計算は前述のステップS1010−nの過程で実行される各秘密計算である。
秘密計算装置10−nに代えて秘密計算装置20−nが実行する以外、第1実施形態と同じである。
第1実施形態と同様、ラウンド処理部2030−nは、何れかのラウンド鍵k2,…,kR+1の秘匿情報および秘匿情報{Mb,γ,μ}を用い、秘密計算により、残存処理を実行して得られる行列Mb,Γ,MUの秘匿情報{Mb,Γ,MU}を得る後段処理を行う。さらに本形態では、ラウンド処理部2030−nが当該後段処理での改ざんを検知するための第2チェックサムを第2方式に則って生成する。以下に、第2方式として参考文献6,7の方式の変更方式を採用した例を示す。
図8および図9を用いてステップS2030−nの具体例を説明する。この例の秘匿情報は秘密分散方式に則ったシェアである。
まず、ダミーブロック生成部2035a−nは、Y個のダミーブロックD0,…,DY−1∈FUの秘匿情報{D0},…,{DY−1}を生成して出力する。ただし、Yは1以上の整数であり、y=0,…,Y−1である。前述のように、好ましくはY=p−Bである。ただし、pはBより大きな素数である。ダミーブロックD0,…,DY−1のうち何れかが要処理ダミーブロックDPとされる。要処理ダミーブロックDPは1個であってもよいし、2個以上であってもよい。要処理ダミーブロックDP以外のダミーブロックDy’は公開値である。ダミーブロック生成部2035a−nは、公開値であるダミーブロックDy’を、正当性を持つ方法で秘匿して秘匿情報{Dy’}を得る。要処理ダミーブロックDPは公開値であってもよいし、公開値でなくてもよい。前者の場合、ダミーブロック生成部2035a−nが、公開値であるダミーブロックDPを秘匿して秘匿情報{DP}を得る。後者の場合、ダミーブロック生成部2035a−nは、例えば、前述の秘匿情報{M(i0,…,iS−1)}と任意のカウンタ値idp,0,…,idp,S−1の秘匿情報{idp,0},…,{idp,S−1}とを用い、秘密計算によって秘匿情報{M(idp,0,…,idp,S−1)}を得、秘匿情報{DP}={M(idp,0,…,idp,S−1)}を得る(ステップS2035−n)。
秘密計算装置10−nに代えて秘密計算装置20−nが実行する以外、第1実施形態と同じである。
同期部2042−nは、すべての秘密計算装置20−1〜20−(N−1)でのすべての秘密計算が終了するまで待機する同期処理を実行する。N=1の場合には同期処理は実行されない。
正当性検証部2043−nには、C1,t=<φ0>,…,<φΔ−1>を含む第1チェックサムおよびC3,t=<φ30>,…,<φ3Δ’−1>を含む第3チェックサムが入力される。正当性検証部2043−nは、参考文献4,5に記載されているように、C1,tおよびC3,tの正当性を検証する。
正当性検証部2044−nには、C2,A,C2,Π_q,C2,Dを含む第2チェックサムおよび秘匿情報{πq}が入力される。正当性検証部2044−nは、参考文献5,6に記載されているように、C2,A,C2,Π_q,C2,Dの正当性を検証する。すなわち、正当性検証部2044−nは、秘匿情報{πq}を公開してランダム置換情報πqを得、πq,C2,A,C2,Π_q,C2,Dを用い、秘密計算によって、C2,Π_qの復元値から、πqに従ってC2,A|C2,Dをランダム置換した列の復元値を減じた列の秘匿情報{ζq}={ζ0,q},…,{ζB+Y−1,q}を得る。正当性検証部2044−nは、秘匿情報{ζq}={ζ0,q},…,{ζB+Y−1,q}の各要素{ζb”,q}(ただし、b”=0,…,B+Y−1)を{FU}の元ごとに分割し、{ζ’b”,q,0},…,{ζ’b”,q,M”−1}∈{FU}の列を得る。ただし、M”は正の整数である。{FU}に満たない要素には{0}がパディングされる。正当性検証部2044−nは、秘密計算によって、乱数ranの秘匿情報{ran}と{ζ’b”,q,0},…,{ζ’b”,q,M”−1}との積和演算を行い、その結果{ζ}を公開してζを得る。正当性検証部2044−nは、ζが0であれば後段処理に改ざんが無かったと判定し、そうでなければ後段処理に改ざんがあったと判定する。
第1実施形態と同様、本形態でも要素の置換と行の巡回シフトと列の線形和とラウンド鍵の加算とを繰り返すラウンド処理を秘密計算によって効率的に実行できる。特に本形態では、前段処理での改ざんを検知するための第1チェックサムを第1方式に則って生成し、後段処理での改ざんを検知するための第2チェックサムを第2方式に則って生成した。前段処理に比べて後段処理では処理データ量が格段に多い。第2方式は処理データ量が多いほど安全性が高い方式であり、後段処理での改ざんを検知に適している。一方、前段処理では処理データ量が少ないため、第2方式を用いても効率が悪い。本形態では、前段処理と後段処理とでチェックサムの生成方式を変更することで、安全性の高い通信を効率よく実現できる。なお、前段処理で改ざんが検知された場合にはすべての処理が破棄される。一方、後段処理で改ざんが検知された場合にはすべての処理が破棄されてもよいし、後段処理のみが破棄されてもよい。
第2実施形態では、Ψ個の秘密計算Com0,…,ComΨ−1のすべてについてランダム化分散値が生成され、C1,tが更新される例を説明した(図7)。しかしながら、Ψ個の秘密計算Com0,…,ComΨ−1の一部のみについてランダム化分散値が生成され、C1,tが更新されてもよい。例えば、Ψ個の秘密計算Com0,…,ComΨ−1のうち、通信を必要とする最後の秘密計算までについてランダム化分散値が生成され、C1,tが更新されてもよい。例えば、秘匿情報{M(i0,…,iS−1)}が秘匿情報{Mb,3,1}または{Mb,3,2}である場合に、置換処理P3,1の通信を必要とする秘密計算(例えば、SubBytesの乗法逆元演算の秘密計算)までについてランダム化分散値が生成され、C1,tが更新されてもよい。
なお、本発明は上述の実施形態に限定されるものではない。上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
10−n,20−n 秘密計算装置
Claims (11)
- Bが1以上の整数であり、Rが3以上の整数であり、Sが2以上の整数であり、U=S2であり、Fが有限体であり、b=0,…,B−1であり、r=1,…,Rであり、j=2,…,Rであり、
1ラウンド目のラウンド処理が処理P1,4を含み、前記処理P1,4が1ラウンド目のラウンド鍵k1∈FUの要素からなるS×S行列の1つの列のS個の要素にS個のカウンタ値ib,0,…,ib,S−1をそれぞれ加算して行列Mb,1,4を得る処理を含み、
jラウンド目のラウンド処理が処理Pj,1と処理Pj,2と処理Pj,3と処理Pj,4とを含み、前記処理Pj,1が前記行列Mb,j−1,4の各要素を置換して行列Mb,j,1を得る処理を含み、前記処理Pj,2が前記行列Mb,j,1の各要素を行ごとに巡回シフトして行列Mb,j,2を得る処理を含み、前記処理Pj,3が前記行列Mb,j,2の各列のS個の要素の線形和を当該列のS個の要素とした行列Mb,j,3を得る処理を含み、前記処理Pj,4が前記行列Mb,j,3の各要素にjラウンド目のラウンド鍵kjの各要素を加算して行列Mb,j,4を得る処理を含み、
何れかのラウンド鍵k1,…,k3の秘匿情報を用い、秘密計算により、変数i=i0,…,iS−1に対する一変数関数値を要素に持つ表M(i0,…,iS−1)の秘匿情報{M(i0,…,iS−1)}を得る前段処理を行う表生成部と、
前記表M(i0,…,iS−1)に前記カウンタ値ib,0,…,ib,S−1を代入したM(ib,0,…,ib,S−1)がMb,2,1,…,Mb,3,2の何れかである行列Mb,γ,μであり、前記カウンタ値ib,0,…,ib,S−1の秘匿情報{ib,0},…,{ib,S−1}および前記秘匿情報{M(i0,…,iS−1)}を用い、秘密計算によってb=0,…,B−1についての前記行列Mb,γ,μの秘匿情報{Mb,γ,μ}を得る表計算部と、
何れかのラウンド鍵k2,…,kR+1の秘匿情報および前記秘匿情報{Mb,γ,μ}を用い、秘密計算により、j=2,…,Rについての前記処理Pj,1、前記処理Pj,2、前記処理Pj,3、および前記処理Pj,4のうち、処理Pγ,μよりも後に行われる各処理を含む残存処理を実行して得られる行列Mb,Γ,MUの秘匿情報{Mb,Γ,MU}を得る後段処理を行うラウンド処理部と、
を有する秘密計算装置。 - 請求項1の秘密計算装置であって、
前記表生成部は、前記前段処理での改ざんを検知するための第1チェックサムを第1方式に則って生成し、
前記ラウンド処理部は、前記後段処理での改ざんを検知するための第2チェックサムを第2方式に則って生成し、
前記第1方式は、改ざん検知対象である秘匿情報の復元値のデータ量に、安全性の高さが依存しない方式であり、
前記第2方式は、改ざん検知対象である秘匿情報の復元値のデータ量がα1であるときの安全性が、改ざん検知対象である秘匿情報の復元値のデータ量がα2であるときの安全性よりも高い方式であり、α1がα2よりも大きい、秘密計算装置。 - 請求項2の秘密計算装置であって、
T,Λ,W,Y,Q,Θが1以上の整数であり、t=0,…,T−1であり、λ=0,…,Λ−1であり、w=0,…,W−1であり、y=0,…,Y−1であり、q=0,…,Q−1であり、θ=0,…,Θ−1であり、前記前段処理はT種類の秘密分散方式meth0,…,methT−1に則った秘匿情報を用いた秘密計算を含み、
(1)前記第1チェックサムを前記第1方式に則って生成する処理は、
(1−1)乱数rtを秘密分散した秘匿情報{rt}を得る処理と、
(1−2)前記秘密分散方式methtに則った秘匿情報{aλ}を用いた秘密計算を行う際に、前記秘匿情報{aλ}と前記秘匿情報{rt}とを用いた秘密計算によって秘匿情報{aλrt}を得、前記秘匿情報{aλ}と前記秘匿情報{aλrt}との組であるランダム化分散値<aλ>=<{aλ},{aλrt}>を得、前記ランダム化分散値<aλ>の追加によってC1,tを更新し、
前記秘密分散方式methtに則った秘密計算結果である秘匿情報{hw}が得られた際に、前記秘匿情報{hw}と前記秘匿情報{rt}とを用いた秘密計算によって秘匿情報{hwrt}を得、前記秘匿情報{hw}と前記秘匿情報{hwrt}との組であるランダム化分散値<hw>=<{hw},{hwrt}>を得、前記ランダム化分散値<hw>の追加によってC1,tを更新することで、
C1,tを含む前記第1チェックサムを更新する処理と、を含み、
(2)前記第2チェックサムを前記第2方式に則って生成する処理は、
(2−1)行列M0,γ,μ,…,MB−1,γ,μの要素からなる非ランダム化列A∈FUBの秘匿情報{A}とY個のダミーブロックD0,…,DY−1∈FUの秘匿情報{D0},…,{DY−1}とを結合した秘匿情報{A|D}={A|D0|…|DY−1}を得る処理と、
(2−2)前記秘匿情報{A|D}を用い、A|Dをランダム置換して得られるランダム化列Πq=πq(A|D)∈FU(B+Y)の秘匿情報{Πq}={πq(A|D)}を秘密計算によって得る処理と、
(2−3)前記秘匿情報{A}を用い、前記非ランダム化列Aを構成する前記行列Mb,γ,μのU個の要素に対応する秘匿情報{Mb,γ,μ}ごとにサブ処理Sub0,…,SubΘ−1の秘密計算を実行して、前記非ランダム化列Aを構成する前記行列Mb,γ,μの要素に前記残存処理を適用して得られる前記行列Mb,Γ,MUの前記秘匿情報{Mb,Γ,MU}を得、前記秘匿情報{Mb,Γ,MU}を得るまでの過程で得られるサブ処理Subθの秘密計算結果でC2,Aを更新し、
前記秘匿情報{Πq}を用い、前記ランダム化列Πqを構成するU個の要素に対応する秘匿情報ごとに前記サブ処理Sub0,…,SubΘ−1の秘密計算を実行することで得られる各サブ処理Subθの秘密計算結果でC2,Π_qを更新し、
少なくとも一部の前記ダミーブロックDyに対して前記サブ処理Sub0,…,SubΘ−1を実行することで得られる各サブ処理Subθの演算結果の秘匿情報でC2,Dを更新することで、
C2,A,C2,Π_q,C2,Dを含む前記第2チェックサムを更新する処理と、を含む秘密計算装置。 - 請求項3の秘密計算装置であって、
前記ラウンド処理部は、何れかのラウンド鍵k2,…,kR+1の秘匿情報および前記ダミーブロックD0,…,DY−1の何れかである要処理ダミーブロックDPの秘匿情報{DP}を用い、前記要処理ダミーブロックDPに前記残存処理を行って得られる処理結果の秘匿情報を得るダミー後段処理をさらに行い、前記ダミー後段処理での改ざんを検知するための第3チェックサムを第3方式に則って生成し、
前記第3方式は、改ざん検知対象である秘匿情報の復元値のデータ量に、安全性の高さが依存しない方式である、秘密計算装置。 - 請求項4の秘密計算装置であって、
(3)前記第3チェックサムを前記第3方式に則って生成する処理は、
前記秘密分散方式methtに則った秘匿情報{dλ}を用いた秘密計算を行う際に、前記秘匿情報{dλ}と前記秘匿情報{rt}とを用いた秘密計算によって秘匿情報{dλrt}を得、前記秘匿情報{dλ}と前記秘匿情報{dλrt}との組であるランダム化分散値<dλ>=<{dλ},{dλrt}>を得、前記ランダム化分散値<dλ>の追加によってC3,tを更新し、
前記秘密分散方式methtに則った秘密計算結果である秘匿情報{h’w}が得られた際に、前記秘匿情報{h’w}と前記秘匿情報{rt}とを用いた秘密計算によって秘匿情報{h’wrt}を得、前記秘匿情報{h’w}と前記秘匿情報{h’wrt}との組であるランダム化分散値<h’w>=<{h’w},{h’wrt}>を得、前記ランダム化分散値<h’w>の追加によってC3,tを更新することで、
C3,tを含む前記第3チェックサムを更新する処理を含む、秘密計算装置。 - 請求項3から5の何れかの秘密計算装置であって、
pがBより大きな素数であり、Y=p−Bである、秘密計算装置。 - 請求項3から6の何れかの秘密計算装置であって、
前記ランダム置換はランダム巡回シフトである、秘密計算装置。 - 請求項1から7の何れかの秘密計算装置であって、
前記行列Mb,γ,μはMb,3,1またはMb,3,2である、秘密計算装置。 - Bが1以上の整数であり、Rが3以上の整数であり、Sが2以上の整数であり、U=S2であり、Fが体であり、b=0,…,B−1であり、r=1,…,Rであり、j=2,…,Rであり、
1ラウンド目のラウンド処理が処理P1,4を含み、前記処理P1,4が1ラウンド目のラウンド鍵k1∈FUの要素からなるS×S行列の1つの列のS個の要素にS個のカウンタ値ib,0,…,ib,S−1をそれぞれ加算して行列Mb,1,4を得る処理を含み、
jラウンド目のラウンド処理が処理Pj,1と処理Pj,2と処理Pj,3と処理Pj,4とを含み、前記処理Pj,1が前記行列Mb,j−1,4の各要素を置換して行列Mb,j,1を得る処理を含み、前記処理Pj,2が前記行列Mb,j,1の各要素を行ごとに巡回シフトして行列Mb,j,2を得る処理を含み、前記処理Pj,3が前記行列Mb,j,2の各列のS個の要素の線形和を当該列のS個の要素とした行列Mb,j,3を得る処理を含み、前記処理Pj,4が前記行列Mb,j,3の各要素にjラウンド目のラウンド鍵kjの各要素を加算して行列Mb,j,4を得る処理を含み、
表生成部が、何れかのラウンド鍵k1,…,k3の秘匿情報を用い、秘密計算により、変数i=i0,…,iS−1に対する一変数関数値を要素に持つ表M(i0,…,iS−1)の秘匿情報{M(i0,…,iS−1)}を得る前段処理を行う表生成ステップと、
前記表M(i0,…,iS−1)に前記カウンタ値ib,0,…,ib,S−1を代入したM(ib,0,…,ib,S−1)がMb,2,1,…,Mb,3,2の何れかである行列Mb,γ,μであり、表計算部が、前記カウンタ値ib,0,…,ib,S−1の秘匿情報{ib,0},…,{ib,S−1}および前記秘匿情報{M(i0,…,iS−1)}を用い、秘密計算によってb=0,…,B−1についての前記行列Mb,γ,μの秘匿情報{Mb,γ,μ}を得る表計算ステップと、
ラウンド処理部が、何れかのラウンド鍵k2,…,kR+1の秘匿情報および前記秘匿情報{Mb,γ,μ}を用い、秘密計算により、j=2,…,Rについての前記処理Pj,1、前記処理Pj,2、前記処理Pj,3、および前記処理Pj,4のうち、処理Pγ,μよりも後に行われる各処理を含む残存処理を実行して得られる行列Mb,Γ,MUの秘匿情報{Mb,Γ,MU}を得る後段処理を行うラウンド処理ステップと、
を有する秘密計算方法。 - 請求項1から8の何れかの秘密計算装置としてコンピュータを機能させるためのプログラム。
- 請求項1から8の何れかの秘密計算装置としてコンピュータを機能させるためのプログラムを格納したコンピュータ読み取り可能な記録媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017159344 | 2017-08-22 | ||
JP2017159344 | 2017-08-22 | ||
PCT/JP2018/030440 WO2019039381A1 (ja) | 2017-08-22 | 2018-08-16 | 秘密計算装置、秘密計算方法、プログラム、および記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2019039381A1 JPWO2019039381A1 (ja) | 2020-09-03 |
JP6881588B2 true JP6881588B2 (ja) | 2021-06-02 |
Family
ID=65439815
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019537589A Active JP6881588B2 (ja) | 2017-08-22 | 2018-08-16 | 秘密計算装置、秘密計算方法、プログラム、および記録媒体 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11515998B2 (ja) |
EP (1) | EP3675089B1 (ja) |
JP (1) | JP6881588B2 (ja) |
CN (1) | CN111052206B (ja) |
AU (1) | AU2018320434B2 (ja) |
WO (1) | WO2019039381A1 (ja) |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4875448B2 (ja) * | 2006-10-11 | 2012-02-15 | 日本電信電話株式会社 | 鍵生成装置、匿名署名システム、管理装置、匿名署名方法及びプログラム |
RU2530349C1 (ru) * | 2010-10-27 | 2014-10-10 | Нтт Докомо, Инк. | Устройство для оценивания количества терминалов и способ оценивания количества терминалов |
JP5657128B2 (ja) * | 2011-09-27 | 2015-01-21 | 株式会社日立製作所 | 秘匿計算システム、秘匿計算方法、および秘匿計算プログラム |
US9860058B2 (en) * | 2013-01-17 | 2018-01-02 | Nippon Telegraph And Telephone Corporation | Secret computation system, arithmetic unit, secret computation method and program |
JP5972181B2 (ja) * | 2013-01-17 | 2016-08-17 | 日本電信電話株式会社 | 改ざん検知装置、改ざん検知方法、およびプログラム |
CN105593918B (zh) | 2013-10-10 | 2019-06-14 | 日本电信电话株式会社 | 秘密并行处理装置、秘密并行处理方法、程序 |
US20160306973A1 (en) * | 2013-12-05 | 2016-10-20 | Koninklijke Philips N.V. | A computing device for iterative appilcation of table networks |
US10950144B2 (en) | 2014-12-26 | 2021-03-16 | Nippon Telegraph And Telephone Corporation | Secret falsification detecting system, secret computation apparatus, secret falsification detecting method, and program |
JP5860557B1 (ja) * | 2015-02-06 | 2016-02-16 | 日本電信電話株式会社 | 秘密公開方法、秘密公開システム、秘密公開装置、およびプログラム |
US20160269175A1 (en) * | 2015-03-09 | 2016-09-15 | Qualcomm Incorporated | Cryptographic cipher with finite subfield lookup tables for use in masked operations |
US10089508B2 (en) * | 2015-05-28 | 2018-10-02 | Graphiclead LLC | System and method of embedding a two dimensional code with concealed secure message |
JP6578814B2 (ja) * | 2015-08-20 | 2019-09-25 | 株式会社ソシオネクスト | プロセッサ及びプロセッサシステム |
NL2015745B1 (en) * | 2015-11-09 | 2017-05-26 | Koninklijke Philips Nv | A cryptographic device arranged to compute a target block cipher. |
JP6053238B2 (ja) * | 2016-01-13 | 2016-12-27 | 日本電信電話株式会社 | 秘密改ざん検知システム、秘密計算装置、秘密改ざん検知方法、およびプログラム |
GB2557577A (en) * | 2016-10-21 | 2018-06-27 | Cygnetise Ltd | Methods and apparatus for recording a change of authorisation state of one or more authorisation agents |
-
2018
- 2018-08-16 EP EP18847701.2A patent/EP3675089B1/en active Active
- 2018-08-16 WO PCT/JP2018/030440 patent/WO2019039381A1/ja unknown
- 2018-08-16 CN CN201880054049.1A patent/CN111052206B/zh active Active
- 2018-08-16 JP JP2019537589A patent/JP6881588B2/ja active Active
- 2018-08-16 AU AU2018320434A patent/AU2018320434B2/en active Active
- 2018-08-16 US US16/638,987 patent/US11515998B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN111052206A (zh) | 2020-04-21 |
AU2018320434B2 (en) | 2020-12-17 |
WO2019039381A1 (ja) | 2019-02-28 |
EP3675089A1 (en) | 2020-07-01 |
JPWO2019039381A1 (ja) | 2020-09-03 |
US11515998B2 (en) | 2022-11-29 |
EP3675089B1 (en) | 2023-05-03 |
EP3675089A4 (en) | 2021-05-05 |
US20200228314A1 (en) | 2020-07-16 |
CN111052206B (zh) | 2023-06-06 |
AU2018320434A1 (en) | 2020-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108965258B (zh) | 一种基于全同态加密的云环境数据完整性验证方法 | |
Bootle et al. | Arya: Nearly linear-time zero-knowledge proofs for correct program execution | |
RU2376651C2 (ru) | Использование изогений для разработки криптосистем | |
US20060251247A1 (en) | Encryption apparatus, decryption apparatus, key generation apparatus, program and method therefor | |
EP3596876B1 (en) | Elliptic curve point multiplication device and method for signing a message in a white-box context | |
Ambrose et al. | Differential attacks on deterministic signatures | |
JP4776906B2 (ja) | 署名生成方法及び情報処理装置 | |
CN111162912B (zh) | 一种适用于区块链的验证方法、装置及存储介质 | |
TW201320701A (zh) | 資訊處理裝置、資訊處理方法及程式 | |
WO2019110399A1 (en) | Two-party signature device and method | |
WO2017063986A1 (en) | A cryptographic device and an encoding device | |
JPWO2020165932A1 (ja) | 情報処理装置、秘密計算方法及びプログラム | |
TW202318833A (zh) | 臨界簽章方案 | |
KR100699836B1 (ko) | 스칼라 곱에서 dfa 대책을 위한 장치 및 방법 | |
WO2018216512A1 (ja) | 秘密改ざん検知システム、秘密改ざん検知装置、秘密改ざん検知方法、およびプログラム | |
JP6881588B2 (ja) | 秘密計算装置、秘密計算方法、プログラム、および記録媒体 | |
JP2003255831A (ja) | 楕円曲線スカラー倍計算方法及び装置 | |
Dachman-Soled et al. | Local non-malleable codes in the bounded retrieval model | |
JP4598269B2 (ja) | 楕円曲線上の高速有限体演算 | |
Xagawa | Practical cryptanalysis of a public-key encryption scheme based on non-linear indeterminate equations at SAC 2017 | |
Tang et al. | Fragile watermarking based proofs of retrievability for archival cloud data | |
Shim et al. | Lite-Rainbow: lightweight signature schemes based on multivariate quadratic equations and their secure implementations | |
CN113475034A (zh) | 电路编译设备和电路评估设备 | |
Anisimov et al. | Verifiable Arithmetic Computations Using Additively Homomorphic Tags | |
CN116260572B (zh) | 数据杂凑处理方法、数据验证方法及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200218 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200218 |
|
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: 20210406 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210419 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6881588 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |