JP6881588B2 - 秘密計算装置、秘密計算方法、プログラム、および記録媒体 - Google Patents

秘密計算装置、秘密計算方法、プログラム、および記録媒体 Download PDF

Info

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
Application number
JP2019537589A
Other languages
English (en)
Other versions
JPWO2019039381A1 (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 JPWO2019039381A1 publication Critical patent/JPWO2019039381A1/ja
Application granted granted Critical
Publication of JP6881588B2 publication Critical patent/JP6881588B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus 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
    • 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/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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)
  • 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

本発明はブロック暗号の秘密計算技術に関する。
共通鍵暗号方式の一つにAES(Advanced Encryption Standard)がある(例えば、非特許文献1等参照)。AESでは、要素の置換と行の巡回シフトと列の線形和とラウンド鍵の加算とを繰り返すラウンド処理によって暗号化を行う。また、平文を所定長のブロックごとに暗号化する暗号利用モードの一つにCTRモードがある。AESがCTRモードで実装された場合、各ブロックでラウンド処理が行われ、それによって得られた各ブロックの鍵の暗号文が各ブロックの平文に加算される。
Daniel J. Bernstein, Peter Schwabe, "New AES software speed records," INDOCRYPT 2008, Progress in Cryptology - INDOCRYPT 2008 pp. 322 - 336.
本発明の目的は、要素の置換と行の巡回シフトと列の線形和とラウンド鍵の加算とを繰り返すラウンド処理を秘密計算によって効率的に実行することである。
Bが1以上の整数であり、Rが3以上の整数であり、Sが2以上の整数であり、U=Sであり、Fが有限体である。b=0,…,B−1であり、r=1,…,Rであり、j=2,…,Rであり、1ラウンド目のラウンド処理が処理P1,4を含み、処理P1,4が1ラウンド目のラウンド鍵k∈Fの要素からなる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ラウンド目のラウンド鍵kの各要素を加算して行列Mb,j,4を得る処理を含む。
秘密計算装置は、何れかのラウンド鍵k,…,kの秘匿情報を用い、秘密計算により、変数i=i,…,iS−1に対する一変数関数値を要素に持つ表M(i,…,iS−1)の秘匿情報{M(i,…,iS−1)}を得る前段処理を行う。ただし、表M(i,…,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(i,…,iS−1)}を用い、秘密計算によってb=0,…,B−1についての行列Mb,γ,μの秘匿情報{Mb,γ,μ}を得、何れかのラウンド鍵k,…,kR+1の秘匿情報および秘匿情報{Mb,γ,μ}を用い、秘密計算により、j=2,…,Rについての処理Pj,1、処理Pj,2、処理Pj,3、および処理Pj,4のうち、処理Pγ,μよりも後に行われる各処理を含む残存処理を実行して得られる行列Mb,Γ,MUの秘匿情報{Mb,Γ,MU}を得る後段処理を行う。
本発明では、要素の置換と行の巡回シフトと列の線形和とラウンド鍵の加算とを繰り返すラウンド処理を秘密計算によって効率的に実行できる。
図1は実施形態の秘密計算システムを例示したブロック図である。 図2は実施形態の秘密計算装置の機能構成を例示したブロック図である。 図3Aは実施形態の表生成部の機能構成を例示したブロック図である。図3Bは実施形態のラウンド処理部の機能構成を例示したブロック図である。 図4は実施形態の処理全体を説明するための概念図である。 図5は通常のブロック暗号化を説明するための概念図である。 図6は実施形態の暗号化処理を説明するためのフロー図である。 図7は実施形態の表生成処理の詳細を説明するためのフロー図である。 図8は実施形態のラウンド処理の詳細を説明するためのフロー図である。 図9は実施形態のラウンド処理の詳細を説明するためのフロー図である。
以下、図面を参照して本発明の実施形態を説明する。
[第1実施形態]
まず、第1実施形態を説明する。
<構成>
図1に例示するように、本形態の秘密計算システム1はN個の秘密計算装置10−0〜10−(N−1)を有する。Nは1以上の整数である。例えば、秘密分散によって得られたシェアを用いて秘密計算を行う場合にはN≧2であり、準同型暗号文を用いて秘密計算を行う場合にはN≧1である。N≧2の場合、秘密計算装置10−0〜10−(N−1)はネットワークを通じて通信可能に構成される。
図2に例示するように、本形態の秘密計算装置10−n(ただし、n=0,…,N−1)は、初期記憶部1001−n、表記憶部1002−n、カウンタ更新部1003−n、表生成部1010−n、表計算部1020−n、ラウンド処理部1030−n、加算部1041−n、および制御部1051−nを有する。秘密計算装置10−nは制御部1051−nの制御の下で各処理を実行する。各処理で得られたデータは図示していないメモリに記憶される。メモリに格納されたデータは必要に応じて読み出され、各処理に利用される。
図3Aに例示するように、表生成部1010−nは、秘密計算部1011−nおよび制御部1012−nを有する。図3Bに例示するように、ラウンド処理部1030−nは、秘密計算部1031−nおよび制御部1032−nを有する。
<処理の概要>
図4および図5に例示するように、本形態の秘密計算装置10−nは、1,…,R+1ラウンド目のラウンド鍵k,…,kR+1∈Fの秘匿情報{k},…,{kR+1}∈{F}、および各ブロック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個のブロックに分割して得られた平文ブロックP,…,PB−1∈Fの秘匿情報{P},…,{PB−1}∈{F}とを秘密計算によって加算(例えば、排他的論理和)する。ただし、Bは1以上の整数であり、Rは3以上の整数であり、Sは2以上の整数であり、U=Sであり、Fは有限体である。有限体Fの例は基礎体に基づく拡大体である。基礎体の例は素数を法とした剰余からなる集合であり、当該基礎体での演算結果は当該素数を法とした剰余として得られる。例えば、Fは位数2の基礎体を8次拡大した拡大体GF(2)である。例えば、基礎体の元が2バイトのデータである場合、拡大体GF(2)の元は1バイト(=8ビット)のデータとなる。この場合、拡大体GF(2)によって256通りの値を表現できる。Fαはα個の有限体Fの元を要素とする集合を意味する。また、α∈βはαがβに属することを意味する。{β}はα∈βの秘匿情報{α}が属する集合を意味する。
≪ブロック暗号化≫
本形態のブロック暗号化では、表を用い、通常のブロック暗号化処理を効率化する。図5に例示するように、通常のブロック暗号化処理は、1〜R+1ラウンドのラウンド処理を含む。例えば、AESをCTRモードで実装したブロック暗号化処理は、鍵長が128ビットの場合には1〜11ラウンドの処理を、鍵長が192ビットの場合には1〜13ラウンドの処理を、鍵長が256ビットの場合には1〜15ラウンドの処理をそれぞれ含む。
1ラウンド目のラウンド処理は加算処理P1,4(処理P1,4)を含む。加算処理P1,4は1ラウンド目のラウンド鍵k∈Fの要素からなるS×S行列の1つの列のS個の要素にS個のカウンタ値ib,0,…,ib,S−1をそれぞれ加算して行列Mb,1,4を得る処理を含む。AESの場合、加算処理P1,4は1ラウンド目のAddRoundKeyに相当する。
jラウンド目(ただし、j=2,…,R)のラウンド処理は、要素の置換を行う置換処理Pj,1(処理Pj,1)と、行の巡回シフトを行うシフト処理Pj,2(処理Pj,2)と、列の線形和を行う混合処理Pj,3(処理Pj,3)と、ラウンド鍵の加算を行う加算処理Pj,4(処理Pj,4)とを含む。AESの場合、置換処理Pj,1はSubBytesに相当し、シフト処理Pj,2はShiftRowsに相当し、混合処理Pj,3MixColumnsに相当し、加算処理Pj,4はAddRoundKeyに相当する。置換処理Pj,1は、行列Mb,j−1,4の各要素を置換して行列Mb,j,1を得る処理を含む。例えば、置換処理Pj,1は行列Mb,j−1,4の各要素を予め定められた手順(例えば、S−box)に則って置換して行列Mb,j,1を得る処理である。AESの場合、行列Mb,j−1,4の各要素に対し、既約多項式x+x+x+x+1による拡大体GF(2)上の乗法逆元演算を行い、さらにアフィン変換を行った結果によって各要素を置換して行列Mb,j,1を得る(参考文献1:情報セキュリティ対策基盤整備事業「電子政府推奨暗号の実装」,独立行政法人情報処理推進機構)。シフト処理Pj,2は、行列Mb,j,1の各要素を行ごとに巡回シフトして行列Mb,j,2を得る処理を含む。例えば、シフト処理Pj,2は、行列Mb,j,1のι+1(ただし、ι=0,…,P−1)行目の行を所定の方向(例えば、左方向)にι要素分だけ巡回シフトする処理である。混合処理Pj,3は、行列Mb,j,2の各列のS個の要素の線形和を当該列のS個の要素とした行列Mb,j,3を得る処理を含む。これらの線形和の各項の係数は行ごとに相違する。加算処理Pj,4は、行列Mb,j,3の各要素にjラウンド目のラウンド鍵kの各要素を加算して行列Mb,j,4を得る処理を含む。
R+1ラウンド目のラウンド処理は、要素の置換を行う置換処理PR+1,1と、行の巡回シフトを行うシフト処理PR+1,2と、ラウンド鍵の加算を行う加算処理PR+1,4とを含む。
≪本形態のブロック暗号化≫
本形態のブロック暗号化の特徴を説明する。前述のように、1ラウンド目の加算処理P1,4では、ラウンド鍵kの要素からなるS×S行列の1つの列のS個の要素にS個のカウンタ値ib,0,…,ib,S−1をそれぞれ加算して行列Mb,1,4を得る。S=4、U=16、ラウンド鍵k=(k1,0,…,k1,15)の場合、行列Mb,1,4は例えば以下のようになる。
Figure 0006881588

ただし、n,…,n11∈Fは任意値である。n=…=n11=0であってもよい。AESではn,…,n11はnonceに相当する。
2ラウンド目の置換処理P2,1は、行列Mb,1,4の各要素を予め定められた手順に則って置換して行列Mb,j,1を得る。この処理は行列Mb,1,4の要素ごとに行われる。そのため、各要素の置換処理を関数f:F→Fで表現できる。S=4、U=16、ラウンド鍵k=(k1,0,…,k1,15)の場合、行列Mb,2,1は以下のようになる。
Figure 0006881588
ラウンド鍵kおよび任意値n,…,n12は全ブロックb=0,…,B−1で共通であり、定数とみなせる。ブロックb=0,…,B−1ごとに異なるのはカウンタ値ib,0,…,ib,3である。カウンタ値ib,0,…,ib,3をカウンタ値の変数i,…,iとすると、式(2)は以下のように変形できる。
Figure 0006881588

ここで、f1,0,…,f1,11は全ブロックb=0,…,B−1に共通であるため定数とみなせ、f1,12(i),…,f1,15(i)は変数i=i,…,iに対する一変数関数値である。つまり、各ブロックb=0,…,B−1の行列Mb,2,1は、変数i=i,…,iに対する一変数関数値を要素に持つ表M(i,…,i)として一般化できる。このことはS=4の場合のみならず、その他のSの場合も同様である。すなわち、各ブロックb=0,…,B−1の行列Mb,2,1は、変数i=i,…,iS−1に対する一変数関数値を要素に持つ表として一般化できる。
2ラウンド目のシフト処理P2,2は、行列Mb,2,1の各要素を行ごとに巡回シフトして行列Mb,2,2を得る処理である。式(3)の行列Mb,2,1のι+1行目の行を左方向にι要素分だけ巡回シフトすると以下の行列Mb,2,2が得られる。
Figure 0006881588

このように、各ブロックb=0,…,B−1の行列Mb,2,2も、変数i=i,…,iS−1に対する一変数関数値を要素に持つ表として一般化できる。
2ラウンド目の混合処理P2,3は、行列Mb,2,2の各列のS個の要素の線形和を当該列のS個の要素とした行列Mb,2,3を得る処理である。式(4)の行列Mb,2,2に対して混合処理P2,3を行うと例えば以下のようになる。
Figure 0006881588

ただし、
Figure 0006881588

である。x,…,x11は全ブロックb=0,…,B−1で共通であるため定数とみなせ、x12,…,x15は変数i=i,…,iS−1に対する一変数関数値である。そのため、式(5)は以下のように変形できる。
Figure 0006881588

ただし、f2,s(i)(ただし、s=0,…,S−1、i=i,…,iS−1)は一変数関数値である。つまり、行列Mb,2,3も、変数i=i,…,iS−1に対する一変数関数値を要素に持つ表として一般化できる。
その後の2ラウンド目の加算処理P2,4および3ラウンド目の置換処理P3,1は要素ごとの処理であるため、加算処理P2,4によって得られる行列Mb,2,4および置換処理P3,1によって得られる行列Mb,3,1も変数i=i,…,iS−1に対する一変数関数値を要素に持つ表として一般化できる。さらに、3ラウンド目のシフト処理P3,2は要素を巡回シフトするだけであるため、それによって得られる行列Mb,3,2も変数i=i,…,iS−1に対する一変数関数値を要素に持つ表として一般化できる。例えば、行列Mb,3,2は以下のようになる。
Figure 0006881588

すなわち、行列Mb,2,1,…,Mb,3,2は変数i=i,…,iS−1に対する一変数関数値を要素に持つ表として一般化できる。ここで、変数i=i,…,iS−1に対する一変数関数値を要素に持つ表M(i,…,iS−1)に、各ブロックbのカウンタ値ib,0,…,ib,S−1を代入すると、各ブロックbでの行列M(ib,0,…,ib,S−1)が得られる。表M(i,…,iS−1)の要素は一変数関数値または定数とみなせる。そのため、表M(i,…,iS−1)の各要素は有限体Fの元のデータ量以下で表現でき、表M(i,…,iS−1)全体はそのU倍のデータ量以下で表現できる。例えば、S=4であり、有限体FがGF(2)であってその元のとり得る値の数が256通りである場合、表M(i,…,iS−1)の各要素のとり得る値の数は256通り以下となり、表全体では1バイト×256通り×16個=4096バイト以下のデータ量となる。一方、3ラウンド目の混合処理P3,3以降では、得られる行列を変数i=i,…,iS−1に対する一変数関数値を要素に持つ表として表現できず(多変数関数値を要素に持つ表となってしまい)、表のサイズが大きくなってしまう。
以上の特徴を利用し、秘密計算装置10−nは、まず、何れかのラウンド鍵k,…,kの秘匿情報を用い、秘密計算により、変数i=i,…,iS−1に対する一変数関数値を要素に持つ表M(i,…,iS−1)の秘匿情報{M(i,…,iS−1)}を得る。ただし、表M(i,…,iS−1)にカウンタ値ib,0,…,ib,S−1を代入したM(ib,0,…,ib,S−1)が行列Mb,γ,μである。行列Mb,γ,μはMb,2,1,…,Mb,3,2の何れかである(γ=2,3、μ=1,…,4)。次に、秘密計算装置10−nは、カウンタ値ib,0,…,ib,S−1の秘匿情報{ib,0},…,{ib,S−1}および秘匿情報{M(i,…,iS−1)}を用い、秘密計算によってb=0,…,B−1についての行列Mb,γ,μの秘匿情報{Mb,γ,μ}を得る。これにより、少ない演算量で行列Mb,γ,μの秘匿情報{Mb,γ,μ}を得ることができる。特に、秘密計算で置換処理を行う場合には、秘密計算装置10−0〜10−(N−1)間で通信を行う必要がある。秘匿情報{M(i,…, S−1 )}を用いればこの通信を削減できる。特にMb,γ,μがMb,3,1またはMb,3,2である場合、2回の処理P2,1,P2,2に必要な通信を削減できる。鍵長を128ビットとすると、この削減は20%の通信量の削減となり、25%の高速化を実現できる。
その後、秘密計算装置10−nは、何れかのラウンド鍵k,…,kR+1の秘匿情報および秘匿情報{Mb,γ,μ}を用い、秘密計算により、残存処理を実行して得られる行列Mb,Γ,MUの秘匿情報{Mb,Γ,MU}を得る後段処理を行う。後段処理は、j=2,…,Rについての置換処理Pj,1、シフト処理Pj,2、混合処理Pj,3、および加算処理Pj,4のうち、処理Pγ,μよりも後に行われる各処理を含む。例えば、Γ=R+1,MU=4である場合、秘密計算装置10−nは、後段処理によって秘匿情報{Mb,R+1,4}を得て出力する。
<処理の詳細>
図6から図11を用い、処理の詳細を説明する。
≪前提≫
前提として、初期記憶部1001−nにラウンド鍵k,…,kR+1の秘匿情報{k},…,{kR+1}、カウンタ値i0,0,…,i0,S−1の秘匿情報{i0,0},…,{i0,S−1}、平文ブロックP,…,PB−1の秘匿情報{P},…,{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)等に記載されている。
≪ステップS1010−n≫
表生成部1010−nは、何れかのラウンド鍵k,…,kの秘匿情報を用い、秘密計算により、変数i=i,…,iS−1に対する一変数関数値を要素に持つ表M(i,…,iS−1)の秘匿情報{M(i,…,iS−1)}を得る前段処理を行う。ただし、表M(i,…,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を変数i,…,iS−1とし、制御部1012−nの制御の下、必要となるラウンド鍵k,…,kの秘匿情報を用い、加算処理P1,4から何れかの処理Pγ,μ(ただし、Pγ,μはP2,1,…,P3,2の何れか)までを秘密計算によって実行して(ステップS1011−n)、秘匿情報{M(i,…,iS−1)}を得る。例えば、Mb,γ,μ=Mb,2,1の場合、表生成部1010−nの秘密計算部1011−nは、カウンタ値ib,0,…,ib,S−1を変数i,…,iS−1とし、秘匿情報{k},{k}を用い、1ラウンド目の加算処理P1,4と2ラウンド目の置換処理P2,1とを秘密計算によって実行し、置換処理P2,1によって得られる行列の秘匿情報を秘匿情報{M(i,…,iS−1)}として得て出力する(例えば、式(3)の秘匿情報)。例えば、Mb,γ,μ=Mb,3,1の場合、表生成部1010−nの秘密計算部1011−nは、カウンタ値ib,0,…,ib,S−1を変数i,…,iS−1とし、秘匿情報{k},{k},{k}を用い、1ラウンド目の加算処理P1,4、2ラウンド目の置換処理P2,1、シフト処理P2,2、混合処理P2,3、加算処理P2,4、3ラウンド目の置換処理P3,1を秘密計算によって実行し、置換処理P3,1によって得られる行列の秘匿情報を秘匿情報{M(i,…,iS−1)}として得て出力する。例えば、Mb,γ,μ=Mb,3,2の場合、表生成部1010−nの秘密計算部1011−nは、カウンタ値ib,0,…,ib,S−1を変数i,…,iS−1とし、秘匿情報{k},{k},{k}を用い、1ラウンド目の加算処理P1,4、2ラウンド目の置換処理P2,1、シフト処理P2,2、混合処理P2,3、加算処理P2,4、3ラウンド目の置換処理P3,1、シフト処理P3,2を秘密計算によって実行し、シフト処理P3,2によって得られる行列の秘匿情報を秘匿情報{M(i,…,iS−1)}として得て出力する(例えば、式(8)の秘匿情報)。秘匿情報{M(i,…,iS−1)}は表記憶部1002−nに格納される。
≪ステップS1020−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 b’−1,S−1+1を表現する値をカウンタ値ib’,0,…,ib’,S−1とする。表計算部1020−nは、初期記憶部1001−nから読み出したか、または、カウンタ更新部1003−nから出力された秘匿情報{ib,0},…,{ib,S−1}、および表記憶部1002−nから読み出した秘匿情報{M(i,…,iS−1)}を用い、秘密計算によって、b=0,…,B−1について、行列Mb,γ,μの秘匿情報{Mb,γ,μ}={M(ib,0,…,ib,S−1)}を得て出力する。
≪ステップS1030−n≫
ラウンド処理部1030−nは、何れかのラウンド鍵k,…,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は、秘匿情報{k},…{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}を得て出力する。
≪ステップS1041−n≫
加算部1041−nは、各ブロックb=0,…,B−1について、秘匿情報{Mb,R+1,4}および秘匿情報{P}を入力とし、秘密計算によってC=Mb,R+1,4+P∈Fの秘匿情報{C}を得て出力する。
<本形態の特徴>
以上のように、本形態では表M(i,…,iS−1)の秘匿情報{M(i,…,iS−1)}を生成し、秘匿情報{M(i,…,iS−1)}を用いて秘密計算によって各ブロックb=0,…,B−1の秘匿情報{Mb,γ,μ}を得る。表M(i,…,iS−1)のサイズはFのU倍のデータ量以下で表現でき、秘匿情報{M(i,…,iS−1)}を用いて各ブロックb=0,…,B−1の処理を行うことで演算量を削減できる。さらに、Mb,γ,μがMb,3,1またはMb,3,2である場合には、2回の処理P2,1,P2,2の秘密計算に必要な通信を削減できる。このように、本形態では、要素の置換と行の巡回シフトと列の線形和とラウンド鍵の加算とを繰り返すラウンド処理を秘密計算によって効率的に実行できる。
[第2実施形態]
第2実施形態は第1実施形態の変形例であり、改ざん検知を行うためのチェックサムを生成し、改ざん検知を行う。ただし、前述のように、表M(i,…,iS−1)の秘匿情報{M(i,…,iS−1)}を得るまでの前段処理で処理されるデータ量は小さい。一方、前段処理の後に行われる後段処理で処理されるデータ量は格段に大きくなる。本形態では、これらの違いに応じ、異なる方式でチェックサムを生成する。これにより、安全に効率的な暗号化を行うことができる。以下では第1実施形態との相違点を中心に説明し、既に説明した事項については、同じ参照番号を用いて説明を簡略化する。
<構成>
図1に例示するように、本形態の秘密計算システム2はN個の秘密計算装置20−0〜20−(N−1)を有する。Nは1以上の整数である。N≧2の場合、秘密計算装置20−0〜20−(N−1)はネットワークを通じて通信可能に構成される。
図2に例示するように、本形態の秘密計算装置20−n(ただし、n=0,…,N−1)は、初期記憶部1001−n、表記憶部1002−n、カウンタ更新部1003−n、表生成部2010−n、表計算部1020−n、ラウンド処理部2030−n、加算部1041−n、同期部2042−n、正当性検証部2043−n,2044−n、および制御部1051−nを有する。秘密計算装置20−nは制御部1051−nの制御の下で各処理を実行する。各処理で得られたデータは図示していないメモリに記憶される。メモリに格納されたデータは必要に応じて読み出され、各処理に利用される。
図3Aに例示するように、表生成部2010−nは、秘密計算部1011−n、制御部1012−n、乱数生成部2015−n、およびチェックサム更新部2016−nを有する。図3Bに例示するように、ラウンド処理部2030−nは、秘密計算部1031−n、制御部1032−n、ダミーブロック生成部2035a−n、秘匿化部2035b−n、結合部2035c−n、ランダム置換部2036−n、およびチェックサム更新部2037−n,2038−nを有する。
<処理の概要>
本形態では、処理データ量が小さい前段処理と処理データ量が格段に大きくなる後段処理とで互いに異なる方式によってチェックサムを生成する。すなわち、表生成部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方式は、改ざん検知対象である秘匿情報の復元値のデータ量がαであるときの安全性が、改ざん検知対象である秘匿情報の復元値のデータ量がαであるときの安全性よりも高い方式である。ただし、αがαよりも大きい。例えば、第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実施形態と同じである。
≪ステップS2010−n≫
第1実施形態と同様、表生成部2010−nは、何れかのラウンド鍵k,…,kの秘匿情報を用い、秘密計算により、変数i=i,…,iS−1に対する一変数関数値を要素に持つ表M(i,…,iS−1)の秘匿情報{M(i,…,iS−1)}を得る前段処理を行う。さらに本形態では、表生成部2010−nが当該前段処理での改ざんを検知するための第1チェックサムを第1方式に則って生成する。以下に、第1方式として参考文献4,5の方式を採用した例を示す。
ステップS2010−nの詳細:
図7を用いてステップS2010−nの詳細を例示する。この例の秘匿情報は秘密分散方式に則ったシェアである。前段処理はT種類の秘密分散方式meth,…,methT−1に則った秘匿情報を用いた秘密計算を含む。当該秘密計算は前述のステップS1010−nの過程で実行される各秘密計算である。
表生成部2010−nの乱数生成部2015−n(図A)は、t=0,…,T−1について乱数r∈Fを秘密分散した秘匿情報{r}を得て出力する。ただし、Tは1以上の整数であり、t=0,…,T−1である。秘匿情報{r}の生成方法の具体例は参考文献5に開示されている。例えば、まず、秘密計算装置20−nの乱数生成部2015−nそれぞれが乱数r’∈Fを生成する。次に、各乱数生成部2015−nは、上記の参考文献2に記載された秘匿方法により乱数r’のシェア{r’}を生成して他の乱数生成部2015−n’(ただし、n’=0,…,N−1)に送る。そして、乱数生成部2015−nはそれぞれ{r}=Σn<N{r’}を計算し、乱数rの秘匿情報{r}を得る。これにより、いずれの秘密計算装置20−1〜20−(N−1)も乱数rを知ることなく、乱数生成部2015−nが乱数rの秘匿情報{r}を得ることができる(ステップS2015−n)。
次に、チェックサム更新部2016−nは、第1チェックサムに含まれるC1,tをヌル(空集合)に初期化する。第1チェックサムはC1,tのみから構成されてもよいし、C1,tとその他の情報とから構成されてもよい(ステップS2016−n)。
前述の前段処理で秘匿情報{M(i,…,iS−1)}を得るためにΨ個の秘密計算Com,…,ComΨ−1が行われるとする。ただし、Ψは1以上の整数である。秘密分散方式methに則った秘匿情報{aλ}∈{F}を用いる秘密計算Comψ(ただし、ψ=0,…,Ψ−1)が行われる際、チェックサム更新部2016−nは、秘匿情報{aλ}と秘匿情報{r}とを用いた秘密計算によって秘匿情報{aλ}を生成する。ただし、Λは1以上の整数であり、λ=0,…,Λ−1である。さらにチェックサム更新部2016−nは、秘匿情報{aλ}と秘匿情報{aλ}との組であるランダム化分散値<aλ>=<{aλ},{aλ}>を得、ランダム化分散値<aλ>の追加によってC1,tを更新する。秘密計算Comψに複数の秘匿情報が用いられる場合、チェックサム更新部2016−nは、それぞれの秘匿情報についてランダム化分散値を生成し、それらの追加によってC1,tを更新する(ステップS2016a−n)。
秘密計算部1011−nは秘密計算Comψを実行する(ステップS1011−n)。
秘密計算Comψの実行により、秘密分散方式methに則った秘密計算結果である秘匿情報{h}が得られる。この際、チェックサム更新部2016−nは、秘匿情報{h}と秘匿情報{r}とを用いた秘密計算によって秘匿情報{h}を得る。ただし、Wは1以上の整数であり、w=0,…,W−1である。さらに、チェックサム更新部2016−nは、秘匿情報{h}と秘匿情報{h}との組であるランダム化分散値<h>=<{h},{h}>を得、ランダム化分散値<h>の追加によってC1,tを更新する。秘密計算結果が複数の秘匿情報を含む場合、チェックサム更新部2016−nは、それぞれの秘匿情報についてランダム化分散値を生成し、それらの追加によってC1,tを更新する(ステップS2016b−n)。
ステップS2016a−n〜S2016b−nの処理は、Ψ個の秘密計算Com,…,ComΨ−1が実行され、秘匿情報{M(i,…,iS−1)}が得られるまで繰り返される。秘匿情報{M(i,…,iS−1)}が得られると、チェックサム更新部2016−nは、C1,t=<φ>,…,<φΔ−1>を含む第1チェックサムを出力する。ただし、δ=0,…,Δ−1であり、<φδ>はランダム化分散値である。
≪ステップS1020−n≫
秘密計算装置10−nに代えて秘密計算装置20−nが実行する以外、第1実施形態と同じである。
≪ステップS2030−n≫
第1実施形態と同様、ラウンド処理部2030−nは、何れかのラウンド鍵k,…,kR+1の秘匿情報および秘匿情報{Mb,γ,μ}を用い、秘密計算により、残存処理を実行して得られる行列Mb,Γ,MUの秘匿情報{Mb,Γ,MU}を得る後段処理を行う。さらに本形態では、ラウンド処理部2030−nが当該後段処理での改ざんを検知するための第2チェックサムを第2方式に則って生成する。以下に、第2方式として参考文献6,7の方式の変更方式を採用した例を示す。
ステップS2030−nの具体例:
図8および図9を用いてステップS2030−nの具体例を説明する。この例の秘匿情報は秘密分散方式に則ったシェアである。
まず、ダミーブロック生成部2035a−nは、Y個のダミーブロックD,…,DY−1∈Fの秘匿情報{D},…,{DY−1}を生成して出力する。ただし、Yは1以上の整数であり、y=0,…,Y−1である。前述のように、好ましくはY=p−Bである。ただし、pはBより大きな素数である。ダミーブロックD,…,DY−1のうち何れかが要処理ダミーブロックDPとされる。要処理ダミーブロックDPは1個であってもよいし、2個以上であってもよい。要処理ダミーブロックDP以外のダミーブロックDy’は公開値である。ダミーブロック生成部2035a−nは、公開値であるダミーブロックDy’を、正当性を持つ方法で秘匿して秘匿情報{Dy’}を得る。要処理ダミーブロックDPは公開値であってもよいし、公開値でなくてもよい。前者の場合、ダミーブロック生成部2035a−nが、公開値であるダミーブロックDPを秘匿して秘匿情報{DP}を得る。後者の場合、ダミーブロック生成部2035a−nは、例えば、前述の秘匿情報{M(i,…,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)。
次に、ラウンド処理部2030−nは、必要な何れかのラウンド鍵k,…,kR+1の秘匿情報および要処理ダミーブロックDPの秘匿情報{DP}を用い、行列MDP,Γ,MUの秘匿情報{MDP,Γ,MU}を得るダミー後段処理を行う。ただし、行列MDP,Γ,MUは要処理ダミーブロックDPに前述の残存処理を行って得られる処理結果である。ここではΓ=R+1かつMU=4の例を説明する。この際、ダミー後段処理での改ざんを検知するための第3チェックサムを第3方式に則って生成する。第3方式は、安全性がダミー後段処理の対象となる秘匿情報の復元値のデータ量に依存しない方式である。第3方式は、第1方式と同一であってもなくてもよい。ここでは第3方式と第1方式とが互いに同一である例を示す。
まず、チェックサム更新部2038−nは、第3チェックサムに含まれるC3,tをヌル(空集合)に初期化する。第3チェックサムはC3,tのみから構成されてもよいし、C3,tとその他の情報とから構成されてもよい(ステップS2038−n)。
前述の残存処理でΨ’個の秘密計算Com3,…,Com3Ψ’−1が行われるとする。ただし、Ψ’は1以上の整数である。秘密分散方式methに則った秘匿情報{dλ}∈{F}を用いる秘密計算Com3ψ’(ただし、ψ’=0,…,Ψ’−1)が行われる際、チェックサム更新部2038−nは、秘匿情報{dλ}と秘匿情報{r}とを用いた秘密計算によって秘匿情報{dλ}を生成する。ただし、Λは1以上の整数であり、λ=0,…,Λ−1である。さらにチェックサム更新部2038−nは、秘匿情報{dλ}と秘匿情報{dλ}との組であるランダム化分散値<dλ>=<{dλ},{dλ}>を得、ランダム化分散値<dλ>の追加によってC3,tを更新する(ステップS2038a−n)。
秘密計算部1031−nは秘密計算Com3ψ’を実行する(ステップS2031a−n)。
秘密計算Com3ψ’の実行により、秘密分散方式methに則った秘密計算結果である秘匿情報{h’}が得られる。この際、チェックサム更新部2038−nは、秘匿情報{h’}と秘匿情報{r}とを用いた秘密計算によって秘匿情報{h’}を得る。ただし、Wは1以上の整数であり、w=0,…,W−1である。さらに、チェックサム更新部2038−nは、秘匿情報{h’}と秘匿情報{h’}との組であるランダム化分散値<h’>=<{h’},{h’}>を得、ランダム化分散値<h’>の追加によってC3,tを更新する。秘密計算結果が複数の秘匿情報を含む場合、チェックサム更新部2038−nは、それぞれの秘匿情報についてランダム化分散値を生成し、それらの追加によってC3,tを更新する(ステップS2038b−n)。
ステップS2038a−n〜S2038b−nの処理は、Ψ’個の秘密計算Com3,…,Com3Ψ’−1が実行され、秘匿情報{MDP,Γ,MU}が得られるまで繰り返される。Γ=R+1かつMU=4の場合、R+1ラウンドが終了するまで、ステップS2038a−n〜S2038b−nの処理が繰り返される。秘匿情報{MDP,Γ,MU}が得られると、チェックサム更新部2038−nは、C3,t=<φ3>,…,<φ3Δ’−1>を含む第3チェックサムを出力する。ただし、δ’=0,…,Δ’−1であり、<φ3δ’>はランダム化分散値である。
次に、チェックサム更新部2037−nが、第2チェックサムに含まれるC2,A,C2,Π_q,C2,Dをヌル(空集合)に初期化する。第2チェックサムはC2,A,C2,Π_q,C2,Dのみから構成されてもよいし、C2,A,C2,Π_q,C2,Dとその他の情報とから構成されてもよい(ステップS2037−n)。
ランダム置換部2036−nが、ランダム置換の内容を表すランダム置換情報πの秘匿情報{π}を生成する。ただし、Qは1以上の整数であり、q=0,…,Q−1である。好ましくは、ランダム置換情報πはランダム巡回シフトを表す情報である(ステップS2036−n)。
結合部2035c−nには、ステップS1020−nで得られたb=0,…,B−1についての秘匿情報{Mb,γ,μ}、および、ステップS2035−nで得られた秘匿情報{D},…,{DY−1}が入力される。結合部2035c−nは、これらを用い、秘密計算により、行列M0,γ,μ,…,MB−1,γ,μの要素からなる非ランダム化列A∈FUBの秘匿情報{A}とY個のダミーブロックD,…,DY−1∈Fの秘匿情報{D},…,{DY−1}とを結合した秘匿情報{A|D}={A|D|…|DY−1}を得る。ただし、α|βはαとβとの結合(連結)を表す(ステップS2035c−n)。
ランダム置換部2036−nは、秘匿情報{π}および秘匿情報{A|D}を用い、A|Dをランダム置換して得られるランダム化列Π=π(A|D)∈FU(B+Y)の秘匿情報{Π}={π(A|D)}を秘密計算によって得て出力する。この処理は各q=0,…,Q−1について実行される(ステップS2036b−n)。
前述の残存処理でΘ個のサブ処理Sub,…,SubΘ−1の秘密計算が行われるとする。ただし、Θが1以上の整数であり、θ=0,…,Θ−1である。秘密計算部1031−nは、秘匿情報{A}を用い、非ランダム化列Aを構成する行列Mb,γ,μのU個の要素に対応する秘匿情報{Mb,γ,μ}ごとに各サブ処理Sub θ の秘密計算を実行する。すなわち、秘密計算部1031−nは、各秘匿情報{Mb,γ,μ}に対して各サブ処理Sub θ の秘密計算を実行する。これにより、秘密計算部1031−nは、非ランダム化列Aを構成する各行列Mb,γ,μに残存処理を適用して得られる行列Mb,Γ,MUの秘匿情報{Mb,Γ,MU}を得る。また秘密計算部1031−nは、q=0,…,Q−1について、秘匿情報{Π}を用い、ランダム化列Π∈FU(B+Y)を構成するU個の要素Πq,b”,γ,μ∈Fに対応する秘匿情報{Πq,b”,γ,μ}∈{F}ごとに、各サブ処理Sub θ の秘密計算を実行する。すなわち、秘密計算部1031−nは、各秘匿情報{Πq,b”,γ,μ}に対して各サブ処理Sub θ の秘密計算を実行する。ただし、b”=0,…,B−1,…,B+Y−1であり、Π=Πq,0,γ,μ|…|Πq,B+Y−1,γ,μである。これにより、秘密計算部1031−nは、各サブ処理Subθの秘密計算結果である秘匿情報{Πq,b”,Γ,MU}∈{F}を得る。さらに秘密計算部1031−nは、少なくとも一部のダミーブロックD(例えば、要処理ダミーブロックDPを除くダミーブロックD)に対して各サブ処理Sub θ を実行することで、各サブ処理Subθの演算結果Dy,Γ,MU∈Fを得る(ステップS2031b−n)。
秘匿化部2035b−nは、演算結果Dy,Γ,MUを正当性を持つ方法で秘匿し、秘匿情報{Dy,Γ,MU}を得て出力する(ステップS2035b−n)。
チェックサム更新部2037−nは、秘匿情報{Mb,Γ,MU}を得るまでの過程で得られる各サブ処理Subθの秘密計算結果である秘匿情報{Mb,θ,Γ,MU}∈{F}でC2,Aを更新する。例えば、C2,A=(C0,2,A,…,CB−1,2,A)の場合、チェックサム更新部2037−nは(C0,2,A|{M0,θ,Γ,MU},…,CB−1,2,A|{MB−1,θ,Γ,MU})を新たなC2,Aとする(ステップS2037b−n)。
また、チェックサム更新部2037−nは、q=0,…,Q−1について、各サブ処理Subθの秘密計算結果である秘匿情報{Πq,b”,θ,Γ,MU}∈{F}でC2,Π_qを更新する。例えば、C2,Π_q=(C0,2,Π_q,…,CB+Y−1,2,Π_q)の場合、チェックサム更新部2037−nは(C0,2,Π_q|{Πq,0,θ,Γ,MU},…,CB+Y−1,2,Π_q|{Πq,B+Y−1,θ,Γ,MU})を新たなC2,Π_qとする(ステップS2037c−n)。
さらに、チェックサム更新部2037−nは、各サブ処理Subθの演算結果の秘匿情報{Dy,θ,Γ,MU}∈{F}でC2,Dを更新する。例えば、C2,D=(C0,2,D,…,CY−1,2,D)の場合、チェックサム更新部2037−nは(C0,2,D|{D0,θ,Γ,MU},…,CY−1,2,D|{DY−1,θ,Γ,MU})を新たなC2,Dとする(ステップS2037d−n)。
ステップS2031b−n〜S2037d−nの処理は、Θ個のサブ処理Sub,…,SubΘ−1のすべてについて実行される。その後、チェックサム更新部2037−nは、C2,A,C2,Π_q,C2,Dを含む第2チェックサムを出力する。
≪ステップS1041−n≫
秘密計算装置10−nに代えて秘密計算装置20−nが実行する以外、第1実施形態と同じである。
≪ステップS2042−n≫
同期部2042−nは、すべての秘密計算装置20−1〜20−(N−1)でのすべての秘密計算が終了するまで待機する同期処理を実行する。N=1の場合には同期処理は実行されない。
≪ステップS2043−n≫
正当性検証部2043−nには、C1,t=<φ>,…,<φΔ−1>を含む第1チェックサムおよびC3,t=<φ3>,…,<φ3Δ’−1>を含む第3チェックサムが入力される。正当性検証部2043−nは、参考文献4,5に記載されているように、C1,tおよびC3,tの正当性を検証する。
1,tの正当性を検証する場合、正当性検証部2043−nは、<φ>=<{φ},{φ}>,…,<φΔ―1>=<{φΔ―1},{φΔ―1}>の{φ},…,{φΔ―1}および{r}を用い、秘密計算によって、φ,…,φΔ―1の総和にrを乗じて得られる結果の秘匿情報{r(φ+…+φΔ―1)}を求める。さらに正当性検証部2043−nは、{φ},…,{φΔ―1}を用い、秘密計算によって、φ,…,φΔ―1の総和の秘匿情報{φ+…+φΔ―1}を求める。正当性検証部2043−nは、秘匿情報{r(φ+…+φΔ―1)}および{φ+…+φΔ―1}を用いて、秘密計算によって、DC1,t=r(φ+…+φΔ―1)−(φ+…+φΔ―1)の秘匿情報{DC1,t}を得てDC1,tを復元する。正当性検証部2043−nは、すべてのt=0,…,T−1についてDC1,t=0であれば前段処理に改ざんが無かったと判定し、そうでなければ前段処理に改ざんがあったと判定する。
3,tの正当性を検証する場合、正当性検証部2043−nは、<φ3>=<{φ3},{φ3}>,…,<φ3Δ’―1>=<{φ3Δ’―1},{φ3Δ’―1}>の{φ3},…,{φ3Δ’―1}および{r}を用い、秘密計算によって、φ3,…,φ3Δ’―1の総和にrを乗じて得られる結果の秘匿情報{r(φ3+…+φ3 Δ’―1)}を求める。さらに正当性検証部2043−nは、{φ3},…,{φ3Δ’―1}を用い、秘密計算によって、φ3,…,φ3Δ’―1の総和の秘匿情報{φ3+…+φ3Δ’―1}を求める。正当性検証部2043−nは、秘匿情報{r(φ3+…+φ3Δ’―1)}および{φ3+…+φ3Δ’―1}を用いて、秘密計算によって、DC3,t=r(φ3+…+φ3Δ’―1)−(φ3+…+φ3Δ’―1)の秘匿情報{DC3,t}を得てDC3,tを復元する。正当性検証部2043−nは、すべてのt=0,…,T−1についてDC3,t=0であれば後段処理に改ざんが無かったと判定し、そうでなければ後段処理に改ざんがあったと判定する。
≪ステップS2044−n≫
正当性検証部2044−nには、C2,A,C2,Π_q,C2,Dを含む第2チェックサムおよび秘匿情報{π}が入力される。正当性検証部2044−nは、参考文献5,6に記載されているように、C2,A,C2,Π_q,C2,Dの正当性を検証する。すなわち、正当性検証部2044−nは、秘匿情報{π}を公開してランダム置換情報πを得、π,C2,A,C2,Π_q,C2,Dを用い、秘密計算によって、C2,Π_qの復元値から、πに従ってC2,A|C2,Dをランダム置換した列の復元値を減じた列の秘匿情報{ζ}={ζ0,q},…,{ζB+Y−1,q}を得る。正当性検証部2044−nは、秘匿情報{ζ}={ζ0,q},…,{ζB+Y−1,q}の各要素{ζb”,q}(ただし、b”=0,…,B+Y−1)を{F}の元ごとに分割し、{ζ’b”,q,0},…,{ζ’b”,q,M”−1}∈{F}の列を得る。ただし、M”は正の整数である。{F}に満たない要素には{0}がパディングされる。正当性検証部2044−nは、秘密計算によって、乱数ranの秘匿情報{ran}と{ζ’b”,q,0},…,{ζ’b”,q,M”−1}との積和演算を行い、その結果{ζ}を公開してζを得る。正当性検証部2044−nは、ζが0であれば後段処理に改ざんが無かったと判定し、そうでなければ後段処理に改ざんがあったと判定する。
<本形態の特徴>
第1実施形態と同様、本形態でも要素の置換と行の巡回シフトと列の線形和とラウンド鍵の加算とを繰り返すラウンド処理を秘密計算によって効率的に実行できる。特に本形態では、前段処理での改ざんを検知するための第1チェックサムを第1方式に則って生成し、後段処理での改ざんを検知するための第2チェックサムを第2方式に則って生成した。前段処理に比べて後段処理では処理データ量が格段に多い。第2方式は処理データ量が多いほど安全性が高い方式であり、後段処理での改ざんを検知に適している。一方、前段処理では処理データ量が少ないため、第2方式を用いても効率が悪い。本形態では、前段処理と後段処理とでチェックサムの生成方式を変更することで、安全性の高い通信を効率よく実現できる。なお、前段処理で改ざんが検知された場合にはすべての処理が破棄される。一方、後段処理で改ざんが検知された場合にはすべての処理が破棄されてもよいし、後段処理のみが破棄されてもよい。
[第2実施形態の変形例]
第2実施形態では、Ψ個の秘密計算Com,…,ComΨ−1のすべてについてランダム化分散値が生成され、C1,tが更新される例を説明した(図7)。しかしながら、Ψ個の秘密計算Com,…,ComΨ−1の一部のみについてランダム化分散値が生成され、C1,tが更新されてもよい。例えば、Ψ個の秘密計算Com,…,ComΨ−1のうち、通信を必要とする最後の秘密計算までについてランダム化分散値が生成され、C1,tが更新されてもよい。例えば、秘匿情報{M(i,…,iS−1)}が秘匿情報{Mb,3,1}または{Mb,3,2}である場合に、置換処理P3,1の通信を必要とする秘密計算(例えば、SubBytesの乗法逆元演算の秘密計算)までについてランダム化分散値が生成され、C1,tが更新されてもよい。
また、ステップS1020−nで行われる各秘密計算の前後においてランダム化分散値が生成され、C1,tが更新されてもよい。すなわち、ステップS1020−nにおいて、秘密分散方式methに則った秘匿情報{aλ}を用いた秘密計算を行う際に、秘匿情報{aλ}と秘匿情報{r}とを用いた秘密計算によって秘匿情報{aλ}を得、秘匿情報{aλ}と秘匿情報{aλ}との組であるランダム化分散値<aλ>=<{aλ},{aλ}>を得、ランダム化分散値<aλ>の追加によってC1,tを更新してもよい。さらに、ステップS1020−nにおいて、秘密分散方式methに則った秘密計算結果である秘匿情報{h}が得られた際に、秘匿情報{h}と秘匿情報{r}とを用いた秘密計算によって秘匿情報{h}を得、秘匿情報{h}と秘匿情報{h}との組であるランダム化分散値<h>=<{h},{h}>を得、ランダム化分散値<h>の追加によってC1,tを更新することで、C1,tを含む第1チェックサムを更新してもよい。
また、ステップS1041−nでの改ざんを検知するためのチェックサムが生成され、検証されてもよい。このチェックサムは、第2方式に則って生成されることが望ましい。
[その他の変形例等]
なお、本発明は上述の実施形態に限定されるものではない。上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
上記の各装置は、例えば、CPU(central processing unit)等のプロセッサ(ハードウェア・プロセッサ)およびRAM(random-access memory)・ROM(read-only memory)等のメモリ等を備える汎用または専用のコンピュータが所定のプログラムを実行することで構成される。このコンピュータは1個のプロセッサやメモリを備えていてもよいし、複数個のプロセッサやメモリを備えていてもよい。このプログラムはコンピュータにインストールされてもよいし、予めROM等に記録されていてもよい。また、CPUのようにプログラムが読み込まれることで機能構成を実現する電子回路(circuitry)ではなく、プログラムを用いることなく処理機能を実現する電子回路を用いて一部またはすべての処理部が構成されてもよい。1個の装置を構成する電子回路が複数のCPUを含んでいてもよい。
上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は、非一時的な(non-transitory)記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。
このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。
コンピュータ上で所定のプログラムを実行させて本装置の処理機能が実現されるのではなく、これらの処理機能の少なくとも一部がハードウェアで実現されてもよい。
1,2 秘密計算システム
10−n,20−n 秘密計算装置

Claims (11)

  1. Bが1以上の整数であり、Rが3以上の整数であり、Sが2以上の整数であり、U=Sであり、Fが有限体であり、b=0,…,B−1であり、r=1,…,Rであり、j=2,…,Rであり、
    1ラウンド目のラウンド処理が処理P1,4を含み、前記処理P1,4が1ラウンド目のラウンド鍵k∈Fの要素からなる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ラウンド目のラウンド鍵kの各要素を加算して行列Mb,j,4を得る処理を含み、
    何れかのラウンド鍵k,…,kの秘匿情報を用い、秘密計算により、変数i=i,…,iS−1に対する一変数関数値を要素に持つ表M(i,…,iS−1)の秘匿情報{M(i,…,iS−1)}を得る前段処理を行う表生成部と、
    前記表M(i,…,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(i,…,iS−1)}を用い、秘密計算によってb=0,…,B−1についての前記行列Mb,γ,μの秘匿情報{Mb,γ,μ}を得る表計算部と、
    何れかのラウンド鍵k,…,kR+1の秘匿情報および前記秘匿情報{Mb,γ,μ}を用い、秘密計算により、j=2,…,Rについての前記処理Pj,1、前記処理Pj,2、前記処理Pj,3、および前記処理Pj,4のうち、処理Pγ,μよりも後に行われる各処理を含む残存処理を実行して得られる行列Mb,Γ,MUの秘匿情報{Mb,Γ,MU}を得る後段処理を行うラウンド処理部と、
    を有する秘密計算装置。
  2. 請求項1の秘密計算装置であって、
    前記表生成部は、前記前段処理での改ざんを検知するための第1チェックサムを第1方式に則って生成し、
    前記ラウンド処理部は、前記後段処理での改ざんを検知するための第2チェックサムを第2方式に則って生成し、
    前記第1方式は、改ざん検知対象である秘匿情報の復元値のデータ量に、安全性の高さが依存しない方式であり、
    前記第2方式は、改ざん検知対象である秘匿情報の復元値のデータ量がαであるときの安全性が、改ざん検知対象である秘匿情報の復元値のデータ量がαであるときの安全性よりも高い方式であり、αがαよりも大きい、秘密計算装置。
  3. 請求項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種類の秘密分散方式meth,…,methT−1に則った秘匿情報を用いた秘密計算を含み、
    (1)前記第1チェックサムを前記第1方式に則って生成する処理は、
    (1−1)乱数rを秘密分散した秘匿情報{r}を得る処理と、
    (1−2)前記秘密分散方式methに則った秘匿情報{aλ}を用いた秘密計算を行う際に、前記秘匿情報{aλ}と前記秘匿情報{r}とを用いた秘密計算によって秘匿情報{aλ}を得、前記秘匿情報{aλ}と前記秘匿情報{aλ}との組であるランダム化分散値<aλ>=<{aλ},{aλ}>を得、前記ランダム化分散値<aλ>の追加によってC1,tを更新し、
    前記秘密分散方式methに則った秘密計算結果である秘匿情報{h}が得られた際に、前記秘匿情報{h}と前記秘匿情報{r}とを用いた秘密計算によって秘匿情報{h}を得、前記秘匿情報{h}と前記秘匿情報{h}との組であるランダム化分散値<h>=<{h},{h}>を得、前記ランダム化分散値<h>の追加によってC1,tを更新することで、
    1,tを含む前記第1チェックサムを更新する処理と、を含み、
    (2)前記第2チェックサムを前記第2方式に則って生成する処理は、
    (2−1)行列M0,γ,μ,…,MB−1,γ,μの要素からなる非ランダム化列A∈FUBの秘匿情報{A}とY個のダミーブロックD,…,DY−1∈Fの秘匿情報{D},…,{DY−1}とを結合した秘匿情報{A|D}={A|D|…|DY−1}を得る処理と、
    (2−2)前記秘匿情報{A|D}を用い、A|Dをランダム置換して得られるランダム化列Π=π(A|D)∈FU(B+Y)の秘匿情報{Π}={π(A|D)}を秘密計算によって得る処理と、
    (2−3)前記秘匿情報{A}を用い、前記非ランダム化列Aを構成する前記行列Mb,γ,μのU個の要素に対応する秘匿情報{Mb,γ,μ}ごとにサブ処理Sub,…,SubΘ−1の秘密計算を実行して、前記非ランダム化列Aを構成する前記行列Mb,γ,μの要素に前記残存処理を適用して得られる前記行列Mb,Γ,MUの前記秘匿情報{Mb,Γ,MU}を得、前記秘匿情報{Mb,Γ,MU}を得るまでの過程で得られるサブ処理Subθの秘密計算結果でC2,Aを更新し、
    前記秘匿情報{Π}を用い、前記ランダム化列Πを構成するU個の要素に対応する秘匿情報ごとに前記サブ処理Sub,…,SubΘ−1の秘密計算を実行することで得られる各サブ処理Subθの秘密計算結果でC2,Π_qを更新し、
    少なくとも一部の前記ダミーブロックDに対して前記サブ処理Sub,…,SubΘ−1を実行することで得られる各サブ処理Subθの演算結果の秘匿情報でC2,Dを更新することで、
    2,A,C2,Π_q,C2,Dを含む前記第2チェックサムを更新する処理と、を含む秘密計算装置。
  4. 請求項3の秘密計算装置であって、
    前記ラウンド処理部は、何れかのラウンド鍵k,…,kR+1の秘匿情報および前記ダミーブロックD,…,DY−1の何れかである要処理ダミーブロックDPの秘匿情報{DP}を用い、前記要処理ダミーブロックDPに前記残存処理を行って得られる処理結果の秘匿情報を得るダミー後段処理をさらに行い、前記ダミー後段処理での改ざんを検知するための第3チェックサムを第3方式に則って生成し、
    前記第3方式は、改ざん検知対象である秘匿情報の復元値のデータ量に、安全性の高さが依存しない方式である、秘密計算装置。
  5. 請求項4の秘密計算装置であって、
    (3)前記第3チェックサムを前記第3方式に則って生成する処理は、
    前記秘密分散方式methに則った秘匿情報{dλ}を用いた秘密計算を行う際に、前記秘匿情報{dλ}と前記秘匿情報{r}とを用いた秘密計算によって秘匿情報{dλ}を得、前記秘匿情報{dλ}と前記秘匿情報{dλ}との組であるランダム化分散値<dλ>=<{dλ},{dλ}>を得、前記ランダム化分散値<dλ>の追加によってC3,tを更新し、
    前記秘密分散方式methに則った秘密計算結果である秘匿情報{h’}が得られた際に、前記秘匿情報{h’}と前記秘匿情報{r}とを用いた秘密計算によって秘匿情報{h’}を得、前記秘匿情報{h’}と前記秘匿情報{h’}との組であるランダム化分散値<h’>=<{h’},{h’}>を得、前記ランダム化分散値<h’>の追加によってC3,tを更新することで、
    3,tを含む前記第3チェックサムを更新する処理を含む、秘密計算装置。
  6. 請求項3から5の何れかの秘密計算装置であって、
    pがBより大きな素数であり、Y=p−Bである、秘密計算装置。
  7. 請求項3から6の何れかの秘密計算装置であって、
    前記ランダム置換はランダム巡回シフトである、秘密計算装置。
  8. 請求項1から7の何れかの秘密計算装置であって、
    前記行列Mb,γ,μはMb,3,1またはMb,3,2である、秘密計算装置。
  9. Bが1以上の整数であり、Rが3以上の整数であり、Sが2以上の整数であり、U=Sであり、Fが体であり、b=0,…,B−1であり、r=1,…,Rであり、j=2,…,Rであり、
    1ラウンド目のラウンド処理が処理P1,4を含み、前記処理P1,4が1ラウンド目のラウンド鍵k∈Fの要素からなる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ラウンド目のラウンド鍵kの各要素を加算して行列Mb,j,4を得る処理を含み、
    表生成部が、何れかのラウンド鍵k,…,kの秘匿情報を用い、秘密計算により、変数i=i,…,iS−1に対する一変数関数値を要素に持つ表M(i,…,iS−1)の秘匿情報{M(i,…,iS−1)}を得る前段処理を行う表生成ステップと、
    前記表M(i,…,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(i,…,iS−1)}を用い、秘密計算によってb=0,…,B−1についての前記行列Mb,γ,μの秘匿情報{Mb,γ,μ}を得る表計算ステップと、
    ラウンド処理部が、何れかのラウンド鍵k,…,kR+1の秘匿情報および前記秘匿情報{Mb,γ,μ}を用い、秘密計算により、j=2,…,Rについての前記処理Pj,1、前記処理Pj,2、前記処理Pj,3、および前記処理Pj,4のうち、処理Pγ,μよりも後に行われる各処理を含む残存処理を実行して得られる行列Mb,Γ,MUの秘匿情報{Mb,Γ,MU}を得る後段処理を行うラウンド処理ステップと、
    を有する秘密計算方法。
  10. 請求項1から8の何れかの秘密計算装置としてコンピュータを機能させるためのプログラム。
  11. 請求項1から8の何れかの秘密計算装置としてコンピュータを機能させるためのプログラムを格納したコンピュータ読み取り可能な記録媒体。
JP2019537589A 2017-08-22 2018-08-16 秘密計算装置、秘密計算方法、プログラム、および記録媒体 Active JP6881588B2 (ja)

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)

* Cited by examiner, † Cited by third party
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

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