WO2016056502A1 - 非減少列判定装置、非減少列判定方法及びプログラム - Google Patents

非減少列判定装置、非減少列判定方法及びプログラム Download PDF

Info

Publication number
WO2016056502A1
WO2016056502A1 PCT/JP2015/078184 JP2015078184W WO2016056502A1 WO 2016056502 A1 WO2016056502 A1 WO 2016056502A1 JP 2015078184 W JP2015078184 W JP 2015078184W WO 2016056502 A1 WO2016056502 A1 WO 2016056502A1
Authority
WO
WIPO (PCT)
Prior art keywords
vector
secret
sentence
key
unit
Prior art date
Application number
PCT/JP2015/078184
Other languages
English (en)
French (fr)
Inventor
浩気 濱田
大 五十嵐
直人 桐淵
Original Assignee
日本電信電話株式会社
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 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to US15/516,175 priority Critical patent/US10333697B2/en
Priority to CN201580053994.6A priority patent/CN106796765B/zh
Priority to JP2016553092A priority patent/JP6337133B2/ja
Priority to EP15849344.5A priority patent/EP3206201A4/en
Publication of WO2016056502A1 publication Critical patent/WO2016056502A1/ja

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/06Arrangements for sorting, selecting, merging, or comparing data on individual record carriers
    • G06F7/14Merging, i.e. combining at least two sets of record carriers each arranged in the same ordered sequence to produce a single set having the same ordered sequence
    • G06F7/16Combined merging and sorting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or 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

Definitions

  • the present invention relates to a cryptographic application technique, and more particularly to a method for determining the presence of a non-decreasing sequence without revealing input data.
  • Non-Patent Document 1 As a method for obtaining a specific calculation result without restoring the encrypted numerical value, there is a method called secret calculation (see, for example, Non-Patent Document 1).
  • encryption is performed such that numerical fragments are distributed to three secret calculation devices, and the three secret calculation devices perform cooperative calculation, thereby performing addition / subtraction, constant sum without restoring the numerical values.
  • Multiplication, constant multiplication, logical operation (negation, logical product, logical sum, exclusive logical sum), data format conversion (integer, binary number) results distributed to three secret computing devices, ie encrypted Can be held as is.
  • Non-Patent Document 2 There is a method described in Non-Patent Document 2 as a method for realizing pattern matching of character strings on a secret calculation.
  • pattern matching is realized by evaluating a nondeterministic finite automaton represented by a pattern for each character of input text.
  • Non-Patent Document 2 requires multiplication of ⁇ (n) stages when the input text length of pattern matching is n.
  • pattern matching is performed, whether the text matches the pattern after the position of the partial character string in the pattern is known. Is it possible to create a non-decreasing sequence by selecting each element from the set sequence? It can be abstracted into the problem of determining whether or not.
  • An object of the present invention is to efficiently determine the existence of a non-decreasing column selected element by element from a set column.
  • the merging unit includes a stable sorting unit that generates a vector e that is stably sorted in ascending order by concatenating the vectors b i, j and t j, k, and e [ ⁇ ] from the vector e is b i, j [x] Yes, search all pairs of ( ⁇ , x, y) for which e [ ⁇ + 1] is t j, k [y], and include all the found sets X and all found y a search unit for generating a set Y, the vector t i, the elements t i of the j, j [x] vector t i obtained by arranging (x ⁇ X) in ascending order, k and the vector b j, k elements b j , k [y] (y ⁇ Y) arranged in ascending order, and an extraction unit that generates a vector b i, k .
  • the existence of non-decreasing sequences selected one element at a time from m sets can be determined in O (log m) stages. Therefore, the existence of the non-decreasing column can be determined efficiently. This also makes it possible to efficiently process pattern matching for text.
  • FIG. 1 is a diagram illustrating a functional configuration of the non-decreasing column determination device according to the first embodiment.
  • FIG. 2 is a diagram illustrating a processing flow of the non-decreasing sequence determination method of the first embodiment.
  • FIG. 3 is a diagram illustrating a functional configuration of the non-decreasing column determination device according to the third embodiment.
  • FIG. 4 is a diagram illustrating a processing flow of the non-decreasing column determination method of the third embodiment.
  • a value obtained by concealing a value a by encryption, secret sharing, or the like is referred to as a concealed text of a, and is represented as [a].
  • a concealed text of a When the concealment is secret sharing, a set of secret sharing fragments of each secret computing device is referred to by [a].
  • the i-th row of the matrix X is X [i].
  • the i-th element of the vector u is denoted as u [i].
  • the entire matrix in which each element of the matrix X is concealed is denoted as [X], and is called the secret sentence of X.
  • the entire vector in which each element of the vector u is concealed is denoted as [u], and is called u concealment text.
  • ⁇ T represents transposition of ⁇ .
  • Sorting is an operation for outputting a vector obtained by rearranging vector elements in ascending order.
  • This is a vector in which k elements satisfying “[0] ⁇ ... ⁇ k” [n ⁇ 1] are rearranged.
  • the stable sort is an operation that preserves the order of elements having the same value when the same value exists in the sort operation.
  • the following equation holds for stable sorting.
  • the stable sorting operation in the secret calculation described below takes a plurality of vectors as input and rearranges the elements of other vectors according to the rearrangement of the elements of the vector as a key. That is, a vector k of size n as a key for stable sorting and secret texts [k], [k] of vectors a (0) ,..., A ( ⁇ 1) of ⁇ (1 ⁇ ⁇ ) size n a (0) ], ..., [a ( ⁇ -1) ] as input, the elements of each vector a (0) , ..., a ( ⁇ -1) are arranged according to the rearrangement when vector k is stably sorted. instead of the vector b (0), ..., confidential statement of b ( ⁇ -1) [b (0)], ..., to calculate the [b ( ⁇ -1)].
  • the execution of this operation is described as follows:
  • the key release sort is a process in which keys are released in a stable sort operation. It is more efficient than sorting that performs processing while keeping the key secret, and there is no fear of leaking unnecessary information when the configuration of the value included in the key is known. The execution of this operation is described as follows:
  • Non-Patent Document 1 For the concealment, restoration, addition, subtraction, and multiplication, for example, the method described in Non-Patent Document 1 may be used. Also, stable sort and key public sort are, for example, “Koki Hamada, Dai Ikarashi, Koji Chida, and Katsumi Takahashi,“ Oblivious radix sort: An efficient sorting algorithm for practical secure multi-party computation ”, IACR Cryptology .2014, p. 121, 2014. (Reference 1) ”may be used.
  • the non-decreasing sequence determination technique is a vector p (where p [i] ⁇ P i that is a non-decreasing sequence of size m for m sets P 0 , P 1 ,..., P m ⁇ 1 . (0 ⁇ i ⁇ m) and p [0] ⁇ p [1] ⁇ ... ⁇ p [m-1]).
  • the vector p 0 (0,8,2,4,6) satisfies p 0 [i] ⁇ P i (0 ⁇ i ⁇ m), but p 0 [1]> p 0 [ 2], it does not satisfy p 0 [0] ⁇ p 0 [1] ⁇ p 0 [2] ⁇ p 0 [3] ⁇ p 0 [4] and is not a non-decreasing sequence.
  • the vector p 1 (0,2,4,4,6) satisfies p 1 [i] ⁇ P i (0 ⁇ i ⁇ m) and p 1 [0] ⁇ p 1 [ Since 1] ⁇ p 1 [2] ⁇ p 1 [3] ⁇ p 1 [4], it is a non-decreasing sequence.
  • the non-decreasing row determination apparatus 1 of the first embodiment includes an alignment unit 10, a merge unit 20, and a determination unit 30, as illustrated in FIG.
  • the merging unit 20 includes, for example, a stable sorting unit 21, a searching unit 22, and an extracting unit 23.
  • the non-decreasing sequence determination device 1 is configured, for example, by loading a special program into a known or dedicated computer having a central processing unit (Central Processing Unit) and a main storage device (Random Access Memory, RAM). Special equipment.
  • the non-decreasing column determination device 1 executes each process under the control of the central processing unit.
  • the data input to the non-decreasing column determination device 1 and the data obtained in each process are stored in, for example, the main storage device, and the data stored in the main storage device is read out as necessary to perform other processing. Used for
  • m sets P 0 ,..., P m ⁇ 1 are input, and if there is a vector p that is a non-decreasing sequence of size m, 1 is set. Returns 0 if it does not exist.
  • the elements of the set P m-1 are arranged in ascending order to generate vectors t m-1, m and b m-1, m .
  • step S20a the merging unit 20 selects vectors (t i, j , b i, j ) and (t j, k , b j, k ) satisfying 0 ⁇ i ⁇ j ⁇ k ⁇ m, and step S21 Through the process of S23, the vector (t i, j , b i, j ) and (t j, k , b j, k ) are merged to generate the vector (t i, k , b i, k ). .
  • Combining unit 20 by repeating this recursively vector t 0, 1, ..., and the vector t 0, m with annexed t m-1, m, vector b 0,1, ..., b m- 1 , m merged into a vector b 0, m .
  • step S21 the stable sorting unit 21 generates a vector e that is stably sorted in ascending order by concatenating the vectors b i, j and t j, k .
  • step S22 the search unit 22 determines that e [ ⁇ ] from the vector e is b i, j [x] and e [ ⁇ + 1] is t j, k [y] ( ⁇ , x, y). Are searched, and a set X including all the found x and a set Y including all the found y are generated.
  • step S23 the extraction unit 23 arranges vectors t i, k in which t i, j [x] (x ⁇ X) are arranged in ascending order and b j, k [y] (y ⁇ Y) in ascending order. Generate vectors b i, k .
  • step S20b combining unit 20, the vector t 0,1, ..., t m- 1, m and vector b 0,1, ..., b m- 1, m to determine whether the merged all. That is, it is confirmed whether the vector (t 0, m , b 0, m ) has been generated. If the merge has not been completed, the process returns to step S20a. If the merge is complete, the process proceeds to step S30.
  • step S30 the determination unit 30 outputs 0 indicating that there is no non-decreasing sequence if the length of the vector t0 , m is 0, as a determination result. If the length of the vector t 0, m is 1 or more, 1 indicating that a non-decreasing sequence exists is output as a determination result.
  • the non-decreasing sequence is p [i] ⁇ P i (0 ⁇ i ⁇ m) and p 1 [0] ⁇ p 1 [1] ⁇ p 1 [2] ⁇ p 1 [3] ⁇ p 1 [4] Therefore, the sets P 0 , P 1 ,..., P 4 include, for example, (0,2,2,4,6), (0,2,2,4,7), (0,2,4,4, 6), (0,2,4,4,7), (0,2,4,7,7) etc. non-decreasing sequences exist.
  • step S10 the following vector t 0,1, ..., t 4,5 and b 0,1, ..., b 4,5 are produced.
  • the merged vector (t 0,2 , b 0,2 ) is generated in S23.
  • step S21 the following vector e is generated from the vectors b 0,1 and t 1,2 .
  • step S23 the following vector (t 0,2 , b 0,2 ) is generated.
  • step S20b since the vectors t 0,5 and b 0,5 do not exist, the process returns to step S20a.
  • the merged vector (t 2,4 , b 2,4 ) is generated.
  • the merged vector (t 2,5 , b 2,5 ) is generated.
  • the merged vector (t 0,5 , b 0,5 ) is generated.
  • step S20b since the vectors t 0,5 and b 0,5 exist, the process proceeds to step S30.
  • step S30 since the length of t 0,5 is not 0, 1 indicating that a non-decreasing sequence exists is output as the determination result.
  • the merging unit 20 is A vector (t 0, m , b 0, m ) can be obtained by a staged recursive procedure.
  • the third embodiment is a method for realizing determination of a non-decreasing sequence by a secret calculation.
  • each recursive procedure can be realized by O (1) stage calculation, the entire processing can be realized by O (log m) stage.
  • the non-decreasing column determination device 2 of the third embodiment includes an alignment unit 10, a concealment unit 40, a merge unit 50, and a determination unit 60, as illustrated in FIG.
  • the merging unit 50 includes, for example, a first stable sort unit 51, a first key public sort unit 52, a second stable sort unit 53, and a second key public sort unit 54.
  • step S50a the merging unit 50 performs a secret sentence ([t ′ i, j ], [b ′ i, j ]) and a secret sentence ([t ′ j, k ]) satisfying 0 ⁇ i ⁇ j ⁇ k ⁇ m. , [B ′ j, k ]) and the processing of steps S51 to S54, the confidential text ([t ′ i, j ], [b ′ i, j ]) and the confidential text ([t ′ j, k] ] And [b ′ j, k ]) are merged to generate a secret text ([t ′ i, k ], [b ′ i, k ]).
  • Combining unit 50 by repeating this recursively, confidential statement [t '0, 1], ..., [t' and confidentiality statement annexed m-1, m] [t '0, m], concealment A secret sentence [b ′ 0, m ] is generated by merging the sentences [b ′ 0,1 ],..., [B ′ m ⁇ 1, m ].
  • the first stable sorting unit 51 uses (0,1) n as a vector of length 2n obtained by repeating 0 and 1, and uses ⁇ [a] as a key ([(0,1) n ], [a] , [(0,..., 2n-1)]) is generated in a stable sort ([f ′], [a ′], [p]). That is, the stable sort shown in the following equation is executed.
  • the first key public sort unit 52 generates a secret text [m ′] obtained by sorting the secret text [m] using the secret text [p] as a key. That is, the key disclosure sort shown in the following formula is executed.
  • the second stable sorting unit 53 ⁇ [t 'i, j] as a key ([t' i, j], [(0, ..., n-1)]) stable sorted confidential statement ( [T " 0 ], [p 0 ]) is generated, and a secret sentence [m" 0 ] is generated by stably sorting the secret sentence [m 0 ] using ⁇ [b ' i, j ] as a key, and ⁇ [b A secret sentence ([b " 1 ], [p 1 ]) is generated by stably sorting ([b ' j, k ], [(0, ..., n-1)]) using' j, k ] as a key. Then, the secret sentence [m " 1 ] is generated by stably sorting the secret sentence [m 1 ] using ⁇ [t ′ j, k ] as a key. That is, four stable sorts shown in the following formula are executed.
  • step S54 the second key public sorting unit 54 generates a secret text [t "], [b”] by the following equation.
  • the second key public sorting unit 54 generates a secret sentence [t ′ i, k ] obtained by publicly sorting the secret sentence [t ′′] using the secret sentence [p 0 ] as a key, and the secret sentence [p 1 ] Is used as a key to generate a secret sentence [b ′ i, k ] in which the secret sentence [b ′′] is publicly sorted. That is, two key public sorts shown in the following formula are executed.
  • step S50b the merging unit 50 executes the secret text [t ' 0,1 ], ..., [t' m-1, m ] and the secret text [b ' 0,1 ], ..., [b' m-1, m ] is merged. That is, it is confirmed whether or not a secret text ([t ′ 0, m ], [b ′ 0, m ]) is generated. If the merge has not been completed, the process returns to step S50a. If the merge has been completed, the process proceeds to step S60.
  • step S60 the determination unit 60, 'with [0, m, [t confidential statement t]' 0, m [0]] ⁇ [t '0, m [1]] ⁇ ... ⁇ [t' 0 , m [m-1]] and outputs the calculation result as a determination result.
  • the merging unit 50 of the third embodiment when the secret sentence ([t ′ i, k ], [b ′ i, k ]) is generated by applying the concept of the second embodiment described above, I, j, k are set so as to satisfy the secret text ([t ' i, j ], [b' i, j ]) and the secret text ([t ' j, k ], [b' j, k ]) ) May be selected.
  • the determination of the existence of a non-decreasing sequence in which values are selected one by one from m sets can be realized by an O (log m) stage recursive procedure.
  • O (log m) stage recursive procedure when implemented by secret computation, each recursive procedure can be implemented by O (1) stages of computation, so that the entire process can be implemented by O (log m) stages.
  • the program describing the processing contents can be recorded on a computer-readable recording medium.
  • a computer-readable recording medium for example, any recording medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, and a semiconductor memory may be used.
  • this program is distributed by selling, transferring, or lending a portable recording medium such as a DVD or CD-ROM in which the program is recorded. Furthermore, the program may be distributed by storing the program in a storage device of the server computer and transferring the program from the server computer to another computer via a network.
  • a computer that executes such a program first stores a program recorded on a portable recording medium or a program transferred from a server computer in its own storage device. When executing the process, this computer reads the program stored in its own recording medium and executes the process according to the read program.
  • the computer may directly read the program from a portable recording medium and execute processing according to the program, and the program is transferred from the server computer to the computer. Each time, the processing according to the received program may be executed sequentially.
  • the program is not transferred from the server computer to the computer, and the above-described processing is executed by a so-called ASP (Application Service Provider) type service that realizes a processing function only by an execution instruction and result acquisition. It is good.
  • the program in this embodiment includes information that is used for processing by an electronic computer and that conforms to the program (data that is not a direct command to the computer but has a property that defines the processing of the computer).
  • the present apparatus is configured by executing a predetermined program on a computer.
  • a predetermined program on a computer.
  • at least a part of these processing contents may be realized by hardware.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Complex Calculations (AREA)

Abstract

 非減少列の存在を効率よく判定する。整列部10は、集合Piの要素を昇順に並べたベクトルti,i+1とbi,i+1を生成する。併合部20は、ベクトル(ti,j,bi,j)と(tj,k,bj,k)とを併合してベクトル(ti,k,bi,k)を生成することを繰り返すことでベクトルt0,mとb0,mとを生成する。安定ソート部21は、ベクトルbi,jとtj,kを連結して安定ソートしたベクトルeを生成する。探索部22は、e[λ]がbi,j[x]であり、e[λ+1]がtj,k[y]である(λ,x,y)の組を探索し、xをすべて含む集合Xとyをすべて含む集合Yとを生成する。抽出部23は、ti,j[x](x∈X)を昇順に並べたベクトルti,kと、bj,k[y](y∈Y)を昇順に並べたベクトルbi,kとを生成する。判定部30は、ベクトルt0,mの長さが0であれば非減少列が存在しないことを示す判定結果を出力する。

Description

非減少列判定装置、非減少列判定方法及びプログラム
 この発明は、暗号応用技術に関し、特に、入力データを明かすことなく非減少列の存在を判定する方法に関する。
 暗号化された数値を復元することなく特定の演算結果を得る方法として、秘密計算と呼ばれる方法がある(例えば、非特許文献1参照)。非特許文献1の方法では、3つの秘密計算装置に数値の断片を分散させるという暗号化を行い、3つの秘密計算装置が協調計算を行うことにより、数値を復元することなく、加減算、定数和、乗算、定数倍、論理演算(否定、論理積、論理和、排他的論理和)、データ形式変換(整数、二進数)の結果を3つの秘密計算装置に分散された状態、すなわち暗号化されたまま保持させることができる。
 秘密計算上で文字列のパターンマッチングを実現した方法として、非特許文献2の方法がある。非特許文献2の方法では、パターンの表す非決定性有限オートマトンを入力テキスト1文字ごとに評価することによってパターンマッチングを実現している。
千田浩司、濱田浩気、五十嵐大、高橋克巳、"軽量検証可能3パーティ秘匿関数計算の再考"、CSS、2010年 原田弘毅、笹川裕人、有村博紀、佐久間淳、"多項式時間・領域秘密正規表現照合アルゴリズム"、 SCIS、pp. 1-8、2014年
 しかしながら、非特許文献2の従来技術はパターンマッチングの入力テキスト長をnとすると、Ω(n)段の乗算を要していた。パターンマッチングを行う場合にパターン中の部分文字列の位置が判明した後にテキストがパターンにマッチしているかを判定する処理は、集合の列から一要素ずつ選んで非減少列を作ることができるかどうかを判定する問題に抽象化できる。
 この発明の目的は、集合の列から一要素ずつ選んだ非減少列の存在を効率よく判定することである。
 上記の課題を解決するために、この発明の非減少列判定装置は、m個の集合P0,…,Pm-1を入力として、i=0,…,m-1について、集合Piの要素を昇順に並べたベクトルti,i+1とベクトルbi,i+1を生成する整列部と、0≦i<j<k≦mを満たすベクトル(ti,j,bi,j)とベクトル(tj,k,bj,k)とを併合してベクトル(ti,k,bi,k)を生成することを繰り返すことで、ベクトルt0,1,…,tm-1,mを併合したベクトルt0,mと、ベクトルb0,1,…,bm-1,mを併合したベクトルb0,mとを生成する併合部と、ベクトルt0,mの長さが0であれば非減少列が存在しないことを示し、ベクトルt0,mの長さが1以上であれば非減少列が存在することを示す判定結果を出力する判定部と、を含む。併合部は、ベクトルbi,jとベクトルtj,kを連結して昇順に安定ソートしたベクトルeを生成する安定ソート部と、ベクトルeからe[λ]がbi,j[x]であり、e[λ+1]がtj,k[y]である(λ,x,y)の組をすべて探索し、発見されたxをすべて含む集合Xと、発見されたyをすべて含む集合Yとを生成する探索部と、ベクトルti,jの要素ti,j[x](x∈X)を昇順に並べたベクトルti,kと、ベクトルbj,kの要素bj,k[y](y∈Y)を昇順に並べたベクトルbi,kとを生成する抽出部と、を含む。
 この発明の非減少列判定技術によれば、m個の集合から一要素ずつ選んだ非減少列の存在をO(log m)段で判定することができる。したがって、非減少列の存在を効率よく判定することができる。また、これにより、テキストに対するパターンマッチングを効率よく処理することが可能となる。
図1は、第一実施形態の非減少列判定装置の機能構成を例示する図である。 図2は、第一実施形態の非減少列判定方法の処理フローを例示する図である。 図3は、第三実施形態の非減少列判定装置の機能構成を例示する図である。 図4は、第三実施形態の非減少列判定方法の処理フローを例示する図である。
 実施形態の説明に先立ち、この明細書における表記方法および用語の定義について説明する。
<表記方法>
 ある値aを暗号化や秘密分散などにより秘匿化した値をaの秘匿文と呼び、〔a〕と表記する。秘匿化が秘密分散である場合は、〔a〕により各秘密計算装置が持つ秘密分散の断片の集合を参照する。
 行列Xの第i行をX[i]と表記する。ベクトルuの第i要素をu[i]と表記する。行列Xの各要素を秘匿化した行列全体を〔X〕と表記し、Xの秘匿文と呼ぶ。ベクトルuの各要素を秘匿化したベクトル全体を〔u〕と表記し、uの秘匿文と呼ぶ。
Figure JPOXMLDOC01-appb-M000003
は天井関数であり、・以上の最小の整数を意味する。
Figure JPOXMLDOC01-appb-M000004
は床関数であり、・以下の最大の整数を意味する。
 ・Tは・の転置を表す。
<加算、減算、乗算>
 加算、減算、乗算の各演算は二つの値a, bの秘匿文〔a〕,〔b〕を入力とし、それぞれa+b, a-b, abの計算結果c1, c2, c3の秘匿文〔c1〕,〔c2〕,〔c3〕を計算する。これらの演算の実行をそれぞれ次式のように記述する。
Figure JPOXMLDOC01-appb-M000005
 なお、誤解を招く恐れのない場合は、Add(〔a〕,〔b〕),Sub(〔a〕,〔b〕),Mul(〔a〕,〔b〕)をそれぞれ〔a〕+〔b〕,〔a〕-〔b〕,〔a〕×〔b〕と略記する。
<論理演算>
 論理和、論理積、否定の各演算は二つの値a, b∈{0, 1}の秘匿文〔a〕,〔b〕を入力とし、それぞれaとbの論理和, aとbの論理積, aの否定の計算結果c1, c2, c3の秘匿文〔c1〕,〔c2〕,〔c3〕を計算する。これらの演算の実行をそれぞれ次式のように記述する。
Figure JPOXMLDOC01-appb-M000006
 これらの論理演算は、次式の計算により実現される。
Figure JPOXMLDOC01-appb-M000007
<ソート演算>
 ソートはベクトルの要素を昇順に並べ替えたベクトルを出力する演算である。入力のベクトルk=(k[0],…,k[n-1])に対して出力されるベクトルk’=(k’[0],…,k’[n-1])は、k’[0]≦…≦k’[n-1]を満たすkの要素を並べ替えたベクトルである。
 安定ソートは、ソート演算で同じ値が存在した場合に同じ値の要素同士の順序を保存する演算である。ベクトルkとk’の各要素はある全単射πs:{0,…,n-1}→{0,…,n-1}についてk’[πs(i)]=k[i]を満たしており、安定ソートでは次式が成り立つ。
Figure JPOXMLDOC01-appb-M000008
 以下で扱う秘密計算上の安定ソート演算は、複数のベクトルを入力とし、キーとするベクトルの要素の並べ替えに従って他のベクトルの要素の並べ替えを行う。すなわち、安定ソートのキーとする大きさnのベクトルkと、λ個(1≦λ)の大きさnのベクトルa(0),…,a(λ-1)の秘匿文〔k〕,〔a(0)〕,…,〔a(λ-1)〕を入力とし、ベクトルkを安定ソートしたときの並べ替えに従って各ベクトルa(0),…,a(λ-1)の要素を並べ替えたベクトルb(0),…,b(λ-1)の秘匿文〔b(0)〕,…,〔b(λ-1)〕を計算する。この演算の実行を次式のように記述する。
Figure JPOXMLDOC01-appb-M000009
 キー公開ソートは安定ソート演算でキーが公開される処理である。キーを秘匿したまま処理をするソートよりも効率がよく、キーに含まれる値の構成が既知の場合には余計な情報を漏らす心配がない。この演算の実行を次式のように記述する。
Figure JPOXMLDOC01-appb-M000010
 秘匿化、復元、加算、減算、乗算は、例えば、非特許文献1に記載の方法を用いればよい。また、安定ソート、キー公開ソートは、例えば、「Koki Hamada, Dai Ikarashi, Koji Chida, and Katsumi Takahashi, “Oblivious radix sort: An efficient sorting algorithm for practical secure multi-party computation”, IACR Cryptology ePrint Archive, vol. 2014, p. 121, 2014.(参考文献1)」に記載の方法を用いればよい。
<非減少列>
 非減少列判定技術は、m個の集合P0,P1,…,Pm-1に対して、大きさmの非減少列となっているベクトルp(ただし、p[i]∈Pi(0≦i<m)、かつ、p[0]≦p[1]≦…≦p[m-1])が存在するかどうかを判定する方法である。
 例えば、集合P0,P1,…,P4が以下であるとする。
   P0={0,3,7,8,10},
   P1={2,5,8,9},
   P2={2,4,8},
   P3={0,4,7,9},
   P4={0,6,7}
 このとき、例えば、ベクトルp0=(0,8,2,4,6)は、p0[i]∈Pi(0≦i<m)を満たすが、p0[1]>p0[2]であるのでp0[0]≦p0[1]≦p0[2]≦p0[3]≦p0[4]を満たさず、非減少列ではない。
 一方、例えば、ベクトルp1=(0,2,4,4,6)は、p1[i]∈Pi(0≦i<m)を満たし、かつ、p1[0]≦p1[1]≦p1[2]≦p1[3]≦p1[4]を満たすため、非減少列である。
 以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
[第一実施形態]
 第一実施形態の非減少列判定装置1は、図1に例示するように、整列部10、併合部20及び判定部30を含む。併合部20は、例えば、安定ソート部21、探索部22及び抽出部23を含む。
 非減少列判定装置1は、例えば、中央演算処理装置(Central Processing Unit、CPU)、主記憶装置(Random Access Memory、RAM)などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。非減少列判定装置1は、例えば、中央演算処理装置の制御のもとで各処理を実行する。非減少列判定装置1に入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて読み出されて他の処理に利用される。
 以下、図2を参照して、第一実施形態の非減少列判定方法を説明する。
 第一実施形態の非減少列判定方法は、m個の集合P0,…,Pm-1を入力として、大きさmの非減少列となっているベクトルpが存在するならば1を、存在しないならば0を返す。
 ステップS10において、整列部10は、i=0,…,m-1について、集合Piの要素を昇順に並べたベクトルti,i+1とbi,i+1を生成する。つまり、集合P0の要素を昇順に並べてベクトルt0,1とb0,1を生成し、集合P1の要素を昇順に並べてベクトルt1,2とb1,2を生成し、…、集合Pm-1の要素を昇順に並べてベクトルtm-1,mとbm-1,mを生成する。
 ステップS20aにおいて、併合部20は、0≦i<j<k≦mを満たすベクトル(ti,j,bi,j)と(tj,k,bj,k)を選択し、ステップS21~S23の処理により、ベクトル(ti,j,bi,j)と(tj,k,bj,k)とを併合してベクトル(ti,k,bi,k)を生成する。併合部20は、これを再帰的に繰り返すことで、ベクトルt0,1,…,tm-1,mを併合したベクトルt0,mと、ベクトルb0,1,…,bm-1,mを併合したベクトルb0,mとを生成する。
 ステップS21において、安定ソート部21は、ベクトルbi,jとベクトルtj,kを連結して昇順に安定ソートしたベクトルeを生成する。
 ステップS22において、探索部22は、ベクトルeからe[λ]がbi,j[x]であり、e[λ+1]がtj,k[y]である(λ,x,y)の組をすべて探索し、発見されたxをすべて含む集合Xと、発見されたyをすべて含む集合Yとを生成する。
 ステップS23において、抽出部23は、ti,j[x](x∈X)を昇順に並べたベクトルti,kと、bj,k[y](y∈Y)を昇順に並べたベクトルbi,kとを生成する。
 ステップS20bにおいて、併合部20は、ベクトルt0,1,…,tm-1,mとベクトルb0,1,…,bm-1,mがすべて併合されたかを判断する。すなわち、ベクトル(t0,m,b0,m)が生成されたかを確認する。併合が完了していなければステップS20aへ処理を戻す。併合が完了していればステップS30へ処理を進める。
 ステップS30において、判定部30は、ベクトルt0,mの長さが0であれば非減少列が存在しないことを示す0を判定結果として出力する。ベクトルt0,mの長さが1以上であれば非減少列が存在することを示す1を判定結果として出力する。
 上述の方法により非減少列の存在を判定できることを、具体例を用いて示す。
 集合P0,P1,…,P4が以下であるとする。
   P0={0,3,7,8,10},
   P1={2,5,8,9},
   P2={2,4,8},
   P3={0,4,7,9},
   P4={0,6,7}
 非減少列はp[i]∈Pi(0≦i<m)かつp1[0]≦p1[1]≦p1[2]≦p1[3]≦p1[4]であるため、集合P0,P1,…,P4には、例えば(0,2,2,4,6), (0,2,2,4,7), (0,2,4,4,6), (0,2,4,4,7), (0,2,4,7,7)などの非減少列が存在する。
 ステップS10において、以下のベクトルt0,1,…,t4,5及びb0,1,…,b4,5が生成される。
   t0,1=b0,1=(0,3,7,8,10)
   t1,2=b1,2=(2,5,8,9)
   t2,3=b2,3=(2,4,8)
   t3,4=b3,4=(0,4,7,9)
   t4,5=b4,5=(0,6,7)
 ステップS20aにおいて、i=0, j=1, k=2として、ベクトル(t0,1,b0,1)と(t1,2,b1,2)を選択し、以下のステップS21~S23により併合したベクトル(t0,2,b0,2)を生成する。
 ステップS21において、ベクトルb0,1とt1,2から以下のベクトルeが生成される。
   e=(0,2,3,5,7,8,8,9,10)
    =(b0,1[0],t1,2[0],b0,1[1],t1,2[1],b0,1[2],b0,1[3],t1,2[2],t1,2[3],b0,1[4])
 ステップS22において、以下の(λ,x,y)の組が発見される。
   (λ=0,x=0,y=0),
   (λ=2,x=1,y=1),
   (λ=5,x=3,y=2)
 したがって、集合X={0,1,3}、集合Y={0,1,2}である。
 ステップS23において、以下のベクトル(t0,2,b0,2)が生成される。
   t0,2=(t0,1[0],t0,1[1],t0,1[3])=(0,3,8)
   b0,2=(b1,2[0],b1,2[1],b1,2[2])=(2,5,8)
 ステップS20bにおいて、ベクトルt0,5とb0,5が存在しないため、ステップS20aに処理が戻る。
 二度目のステップS20aにおいて、i=2, j=3, k=4として、ベクトル(t2,3,b2,3)と(t3,4,b3,4)を選択し、同様にして併合したベクトル(t2,4,b2,4)を生成する。
 ベクトルb2,3=(2,4,8)とベクトルt3,4=(0,4,7,9)を連結して安定ソートすると以下のベクトルeが生成される。
   e=(0,2,4,4,7,8,9)
    =(t3,4[0],b2,3[0],b2,3[1],t3,4[1],t3,4[2],b2,3[2],t3,4[3])
 すると、(λ=2,x=1,y=1),(λ=5,x=2,y=3)が発見されるため、X=(1,2)、Y=(1,3)である。したがって、ベクトル(t2,4,b2,4)は以下のようになる。
   t2,4=(t2,3[1],t2,3[2])=(4,8)
   b2,4=(b3,4[1],b3,4[3])=(4,9)
 三度目のステップS20aにおいて、i=2, j=4, k=5として、ベクトル(t2,4,b2,4)と(t4,5,b4,5)を選択し、同様にして併合したベクトル(t2,5,b2,5)を生成する。
 ベクトルb2,4=(4,9)とベクトルt4,5=(0,6,7)を連結して安定ソートすると以下のベクトルeが生成される。
   e=(0,4,6,7,9)
    =(t4,5[0],b2,4[0],t4,5[1],t4,5[2],b2,4[1])
 すると、(λ=1,x=0,y=1)が発見されるため、X=(0)、Y=(1)である。したがって、ベクトル(t2,5,b2,5)は以下のようになる。
   t2,5=(t2,4[0])=(4)
   b2,5=(b4,5[1])=(6)
 四度目のステップS20aにおいて、i=0, j=2, k=5として、ベクトル(t0,2,b0,2)と(t2,5,b2,5)を選択し、同様にして併合したベクトル(t0,5,b0,5)を生成する。
 ベクトルb0,2=(2,5,8)とベクトルt2,5=(4)を連結して安定ソートすると以下のベクトルeが生成される。
   e=(2,4,5,8)
    =(b0,2[0],t2,5[0],b0,2[1],b0,2[2])
 すると、(λ=0,x=0,y=0)が発見されるため、X=(0)、Y=(0)である。したがって、ベクトル(t2,5,b2,5)は以下のようになる。
   t0,5=(t0,2[0])=(0)
   b0,5=(b2,5[0])=(6)
 ステップS20bにおいて、ベクトルt0,5とb0,5が存在するため、ステップS30に処理を進める。
 ステップS30では、t0,5の長さが0ではないため、非減少列が存在することを示す1が判定結果として出力される。
[第二実施形態]
 第二実施形態の非減少列判定装置は、併合部20において、ベクトル(ti,k,bi,k)を生成する際に、次式を満たすようにi,j,kを設定してベクトル(ti,j,bi,j)とベクトル(tj,k,bj,k)を選択する。
Figure JPOXMLDOC01-appb-M000011
 このように構成することで、併合部20は、
Figure JPOXMLDOC01-appb-M000012
段の再帰手続きでベクトル(t0,m,b0,m)を求めることができる。
[第三実施形態]
 第三実施形態は非減少列の判定を秘密計算で実現する方法である。第三実施形態では各再帰手続きがO(1)段の計算で実現できるため、全体の処理がO(log m)段で実現できる。
 第三実施形態の非減少列判定装置2は、図3に例示するように、整列部10、秘匿化部40、併合部50及び判定部60を含む。併合部50は、例えば、第一安定ソート部51、第一キー公開ソート部52、第二安定ソート部53及び第二キー公開ソート部54を含む。
 以下、図4を参照して、第三実施形態の非減少列判定方法を説明する。以下では、上述の第一実施形態との相違点を中心に説明する。
 ステップS40において、秘匿化部40は、i=0,…,m-1について、集合Piの各要素が0以上n未満であるとして、ベクトルti,i+1を次式によりベクトルt'i,i+1へ変換して秘匿化した暗号文〔t'i,i+1〕を生成する。
Figure JPOXMLDOC01-appb-M000013
 また同様に、ベクトルbi,i+1を次式によりベクトルb'i,i+1へ変換して秘匿化した暗号文〔b'i,i+1〕を生成する。
Figure JPOXMLDOC01-appb-M000014
 以下に、ベクトルt'i,i+1とb'i,i+1の具体例を示す。例えば、集合P0,P1,…,P4が以下であるとする。
   P0={0,3,7,8,10},
   P1={2,5,8,9},
   P2={2,4,8},
   P3={0,4,7,9},
   P4={0,6,7}
 n=12とすると、ベクトルt’i,i+1とb'i,i+1は以下のようになる。
   t’0,1=b’0,1=(1,0,0,1,0,0,0,1,1,0,1,0),
   t’1,2=b’1,2=(0,0,1,0,0,1,0,0,1,1,0,0),
   t’2,3=b’2,3=(0,0,1,0,1,0,0,0,1,0,0,0),
   t’3,4=b’3,4=(1,0,0,0,1,0,0,1,0,1,0,0),
   t’4,5=b’4,5=(1,0,0,0,0,0,1,1,0,0,0,0)
 ステップS50aにおいて、併合部50は、0≦i<j<k≦mを満たす秘匿文(〔t'i,j〕,〔b'i,j〕)と秘匿文(〔t'j,k〕,〔b'j,k〕)を選択し、ステップS51~S54の処理により、秘匿文(〔t'i,j〕,〔b'i,j〕)と秘匿文(〔t'j,k〕,〔b'j,k〕)とを併合して秘匿文(〔t'i,k〕,〔b'i,k〕)を生成する。併合部50は、これを再帰的に繰り返すことで、秘匿文〔t'0,1〕,…,〔t'm-1,m〕を併合した秘匿文〔t'0,m〕と、秘匿文〔b'0,1〕,…,〔b'm-1,m〕を併合した秘匿文〔b'0,m〕とを生成する。
 ステップS51において、第一安定ソート部51は、秘匿文〔b'i,j〕と秘匿文〔t'j,k〕の各要素を交互に配列して秘匿文〔a〕を生成する。すなわち、h=0,…,n-1について、次式により秘匿文〔a〕を生成する。
Figure JPOXMLDOC01-appb-M000015
 そして、第一安定ソート部51は、(0,1)nは0と1を繰り返した長さ2nのベクトルとし、¬〔a〕をキーとして(〔(0,1)n〕,〔a〕,〔(0,…,2n-1)〕)を安定ソートした秘匿文(〔f'〕,〔a'〕,〔p〕)を生成する。すなわち、次式に示す安定ソートを実行する。
Figure JPOXMLDOC01-appb-M000016
 ステップS52において、第一キー公開ソート部52は、h=0,…,n-1について、次式により秘匿文〔m〕を生成する。
Figure JPOXMLDOC01-appb-M000017
 続いて、第一キー公開ソート部52は、秘匿文〔p〕をキーとして秘匿文〔m〕をキー公開ソートした秘匿文〔m'〕を生成する。すなわち、次式に示すキー公開ソートを実行する。
Figure JPOXMLDOC01-appb-M000018
 ステップS53において、第二安定ソート部53は、秘匿文〔m'〕の各要素を交互に分解し、秘匿文〔m0〕,〔m1〕を生成する。すなわち、h=0,…,n-1について、次式により秘匿文〔m0〕,〔m1〕を生成する。
Figure JPOXMLDOC01-appb-M000019
 続いて、第二安定ソート部53は、¬〔t'i,j〕をキーとして(〔t'i,j〕,〔(0,…,n-1)〕)を安定ソートした秘匿文(〔t"0〕,〔p0〕)を生成し、¬〔b'i,j〕をキーとして秘匿文〔m0〕を安定ソートした秘匿文〔m"0〕を生成し、¬〔b'j,k〕をキーとして(〔b'j,k〕,〔(0,…,n-1)〕)を安定ソートした秘匿文(〔b"1〕,〔p1〕)を生成し、¬〔t'j,k〕をキーとして秘匿文〔m1〕を安定ソートした秘匿文〔m"1〕を生成する。すなわち、次式に示す四つの安定ソートを実行する。
Figure JPOXMLDOC01-appb-M000020
 ステップS54において、第二キー公開ソート部54は、次式により秘匿文〔t"〕,〔b"〕を生成する。
Figure JPOXMLDOC01-appb-M000021
 続いて、第二キー公開ソート部54は、秘匿文〔p0〕をキーとして秘匿文〔t"〕をキー公開ソートした秘匿文〔t'i,k〕を生成し、秘匿文〔p1〕をキーとして秘匿文〔b"〕をキー公開ソートした秘匿文〔b'i,k〕を生成する。すなわち、次式に示す二つのキー公開ソートを実行する。
Figure JPOXMLDOC01-appb-M000022
 ステップS50bにおいて、併合部50は、秘匿文〔t'0,1〕,…,〔t'm-1,m〕と秘匿文〔b'0,1〕,…,〔b'm-1,m〕がすべて併合されたか否かを判断する。すなわち、秘匿文(〔t'0,m〕,〔b'0,m〕)が生成されたか否かを確認する。併合が完了していなければステップS50aへ処理を戻す。併合が完了していればステップS60へ処理を進める。
 ステップS60において、判定部60は、秘匿文〔t'0,m〕を用いて、〔t'0,m[0]〕∨〔t'0,m[1]〕∨…∨〔t'0,m[m-1]〕を計算し、その計算結果を判定結果として出力する。
 第三実施形態の併合部50において、上述の第二実施形態の考え方を適用し、秘匿文(〔t'i,k〕,〔b'i,k〕)を生成する際に、次式を満たすようにi,j,kを設定して秘匿文(〔t'i,j〕,〔b'i,j〕)と秘匿文(〔t'j,k〕,〔b'j,k〕)を選択するように構成してもよい。
Figure JPOXMLDOC01-appb-M000023
<発明の効果>
 この発明の非減少列判定技術によれば、m個の集合から一つずつ値を選んだ非減少列の存在の判定をO(log m)段の再帰手続きで実現できる。特に秘密計算で実現する場合には、各再帰手続きがO(1)段の計算で実現できるため、全体の処理がO(log m)段で実現できる。
<発明のポイント>
 この発明では、m個の集合から一つずつ値を選んだ非減少列の存在の判定を行う際に、分割統治により再帰的に非減少列の集合を構築することで、O(log m)段で非減少列の存在の判定を行う。分割統治を行う際には、すべての非減少列を保持する代わりに効率よく計算可能なよい性質を持つ非減少列の集合のみを維持して計算を行い、非減少列の集合の併合を秘密計算でO(1)段で実現している。その結果、全体の計算がO(log m)段の秘密計算で実現できている。
 この発明は上述の実施形態に限定されるものではなく、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。上記実施形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
[プログラム、記録媒体]
 上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
 この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
 また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
 このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
 また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。

Claims (7)

  1.  m個の集合P0,…,Pm-1を入力として、i=0,…,m-1について、集合Piの要素を昇順に並べたベクトルti,i+1とベクトルbi,i+1を生成する整列部と、
     0≦i<j<k≦mを満たすベクトル(ti,j,bi,j)とベクトル(tj,k,bj,k)とを併合してベクトル(ti,k,bi,k)を生成することを繰り返すことで、ベクトルt0,1,…,tm-1,mを併合したベクトルt0,mと、ベクトルb0,1,…,bm-1,mを併合したベクトルb0,mとを生成する併合部と、
     ベクトルt0,mの長さが0であれば非減少列が存在しないことを示し、ベクトルt0,mの長さが1以上であれば非減少列が存在することを示す判定結果を出力する判定部と、
     を含み、
     上記併合部は、
     ベクトルbi,jとベクトルtj,kを連結して昇順に安定ソートしたベクトルeを生成する安定ソート部と、
     ベクトルeからe[λ]がbi,j[x]であり、e[λ+1]がtj,k[y]である(λ,x,y)の組をすべて探索し、発見されたxをすべて含む集合Xと、発見されたyをすべて含む集合Yとを生成する探索部と、
     ベクトルti,jの要素ti,j[x](x∈X)を昇順に並べたベクトルti,kと、ベクトルbj,kの要素bj,k[y](y∈Y)を昇順に並べたベクトルbi,kとを生成する抽出部と、
     を含む非減少列判定装置。
  2.  (0,1)nは0と1を繰り返した長さ2nのベクトルとし、¬・は・の否定を表し、
     m個の集合P0,…,Pm-1を入力として、i=0,…,m-1について、集合Piの要素を昇順に並べたベクトルti,i+1とベクトルbi,i+1を生成する整列部と、
     集合P0,…,PM-1の各要素が0以上n未満であるとして、k=0,…,n-1、λ=0,…,m-1について、ti,i+1[λ]=kを満たすλが存在すればt'i,i+1[k]=1を設定し、それ以外はt'i,i+1[k]=0を設定したベクトルt'i,i+1を秘匿化した暗号文〔t'i,i+1〕と、bi,i+1[λ]=kを満たすλが存在すればb'i,i+1[k]=1を設定し、それ以外はb'i,i+1[k]=0を設定したベクトルb'i,i+1を秘匿化した暗号文〔b'i,i+1〕とを生成する秘匿化部と、
     0≦i<j<k≦mを満たす秘匿文(〔t'i,j〕,〔b'i,j〕)と(〔t'j,k〕,〔b'j,k〕)とを併合して秘匿文(〔t'i,k〕,〔b'i,k〕)を生成することを繰り返すことで、秘匿文〔t'0,1〕,…,〔t'm-1,m〕を併合した秘匿文〔t'0,m〕と、秘匿文〔b'0,1〕,…,〔b'm-1,m〕を併合した秘匿文〔b'0,m〕とを生成する併合部と、
     秘匿文〔t'0,m〕を用いて、〔t'0,m[0]〕∨〔t'0,m[1]〕∨…∨〔t'0,m[m-1]〕を計算し、その計算結果を判定結果として出力する判定部と、
     を含み、
     上記併合部は、
     秘匿文〔b'i,j〕と〔t'j,k〕の各要素を交互に配列して秘匿文〔a〕を生成し、¬〔a〕をキーとして秘匿文(〔(0,1)n〕,〔a〕,〔(0,…,2n-1)〕)を安定ソートした秘匿文(〔f'〕,〔a'〕,〔p〕)を生成する第一安定ソート部と、
     h=0,…,n-1について、〔a[h]〕×(¬〔f'[h]〕×〔f'[h+1]〕+〔f'[h]〕׬〔f'[h-1]〕)を計算して秘匿文〔m〕を生成し、秘匿文〔p〕をキーとして秘匿文〔m〕をキー公開ソートした秘匿文〔m'〕を生成する第一キー公開ソート部と、
     秘匿文〔m〕の各要素を交互に分解して秘匿文〔m0〕,〔m1〕を生成し、¬〔t'i,j〕をキーとして(〔t'i,j〕,〔(0,…,n-1)〕)を安定ソートした秘匿文(〔t"0〕,〔p0〕)と、¬〔b'i,j〕をキーとして秘匿文〔m0〕を安定ソートした秘匿文〔m"0〕と、¬〔b'j,k〕をキーとして(〔b'j,k〕,〔(0,…,n-1)〕)を安定ソートした秘匿文(〔b"1〕,〔p1〕)と、¬〔t'j,k〕をキーとして秘匿文〔m1〕を安定ソートした秘匿文〔m"1〕とを生成する第二安定ソート部と、
     秘匿文〔t"0〕と秘匿文〔m"0〕の積である秘匿文〔t"〕と、秘匿文〔b"1〕と秘匿文〔m"1〕の積である秘匿文〔b"〕とを生成し、秘匿文〔p0〕をキーとして秘匿文〔t"〕をキー公開ソートした秘匿文〔t'i,k〕と、秘匿文〔p1〕をキーとして秘匿文〔b"〕をキー公開ソートした秘匿文〔b'i,k〕とを生成する第二キー公開ソート部と、
     を含む非減少列判定装置。
  3.  請求項1または2に記載の非減少列判定装置であって、
     上記併合部は、次式を満たすi,j,kを選択するものである
    Figure JPOXMLDOC01-appb-M000001

     非減少列判定装置。
  4.  整列部が、m個の集合P0,…,Pm-1を入力として、i=0,…,m-1について、集合Piの要素を昇順に並べたベクトルti,i+1とベクトルbi,i+1を生成する整列ステップと、
     併合部が、0≦i<j<k≦mを満たすベクトル(ti,j,bi,j)とベクトル(tj,k,bj,k)とを併合してベクトル(ti,k,bi,k)を生成することを繰り返すことで、ベクトルt0,1,…,tm-1,mを併合したベクトルt0,mと、ベクトルb0,1,…,bm-1,mを併合したベクトルb0,mとを生成する併合ステップと、
     判定部が、ベクトルt0,mの長さが0であれば非減少列が存在しないことを示し、ベクトルt0,mの長さが1以上であれば非減少列が存在することを示す判定結果を出力する判定ステップと、
     を含み、
     上記併合ステップは、
     安定ソート部が、ベクトルbi,jとベクトルtj,kを連結して昇順に安定ソートしたベクトルeを生成する安定ソートステップと、
     探索部が、ベクトルeからe[λ]がbi,j[x]であり、e[λ+1]がtj,k[y]である(λ,x,y)の組をすべて探索し、発見されたxをすべて含む集合Xと、発見されたyをすべて含む集合Yとを生成する探索ステップと、
     抽出部が、ベクトルti,jの要素ti,j[x](x∈X)を昇順に並べたベクトルti,kと、ベクトルbj,kの要素bj,k[y](y∈Y)を昇順に並べたベクトルbi,kとを生成する抽出ステップと、
     を含む非減少列判定方法。
  5.  (0,1)nは0と1を繰り返した長さ2nのベクトルとし、¬・は・の否定を表し、
     整列部が、m個の集合P0,…,Pm-1を入力として、i=0,…,m-1について、集合Piの要素を昇順に並べたベクトルti,i+1とベクトルbi,i+1を生成する整列ステップと、
     秘匿化部が、集合P0,…,PM-1の各要素が0以上n未満であるとして、k=0,…,n-1、λ=0,…,m-1について、ti,i+1[λ]=kを満たすλが存在すればt'i,i+1[k]=1を設定し、それ以外はt'i,i+1[k]=0を設定したベクトルt'i,i+1を秘匿化した暗号文〔t'i,i+1〕と、bi,i+1[λ]=kを満たすλが存在すればb'i,i+1[k]=1を設定し、それ以外はb'i,i+1[k]=0を設定したベクトルb'i,i+1を秘匿化した暗号文〔b'i,i+1〕とを生成する秘匿化ステップと、
     併合部が、0≦i<j<k≦mを満たす秘匿文(〔t'i,j〕,〔b'i,j〕)と(〔t'j,k〕,〔b'j,k〕)とを併合して秘匿文(〔t'i,k〕,〔b'i,k〕)を生成することを繰り返すことで、秘匿文〔t'0,1〕,…,〔t'm-1,m〕を併合した秘匿文〔t'0,m〕と、秘匿文〔b'0,1〕,…,〔b'm-1,m〕を併合した秘匿文〔b'0,m〕とを生成する併合ステップと、
     判定部が、秘匿文〔t'0,m〕を用いて、〔t'0,m[0]〕∨〔t'0,m[1]〕∨…∨〔t'0,m[m-1]〕を計算し、その計算結果を判定結果として出力する判定ステップと、
     を含み、
     上記併合ステップは、
     第一安定ソート部が、秘匿文〔b'i,j〕と〔t'j,k〕の各要素を交互に配列して秘匿文〔a〕を生成し、¬〔a〕をキーとして秘匿文(〔(0,1)n〕,〔a〕,〔(0,…,2n-1)〕)を安定ソートした秘匿文(〔f'〕,〔a'〕,〔p〕)を生成する第一安定ソートステップと、
     第一キー公開ソート部が、h=0,…,n-1について、〔a[h]〕×(¬〔f'[h]〕×〔f'[h+1]〕+〔f'[h]〕׬〔f'[h-1]〕)を計算して秘匿文〔m〕を生成し、秘匿文〔p〕をキーとして秘匿文〔m〕をキー公開ソートした秘匿文〔m'〕を生成する第一キー公開ソートステップと、
     第二安定ソート部が、秘匿文〔m〕の各要素を交互に分解して秘匿文〔m0〕,〔m1〕を生成し、¬〔t'i,j〕をキーとして(〔t'i,j〕,〔(0,…,n-1)〕)を安定ソートした秘匿文(〔t"0〕,〔p0〕)と、¬〔b'i,j〕をキーとして秘匿文〔m0〕を安定ソートした秘匿文〔m"0〕と、¬〔b'j,k〕をキーとして(〔b'j,k〕,〔(0,…,n-1)〕)を安定ソートした秘匿文(〔b"1〕,〔p1〕)と、¬〔t'j,k〕をキーとして秘匿文〔m1〕を安定ソートした秘匿文〔m"1〕とを生成する第二安定ソートステップと、
     第二キー公開ソート部が、秘匿文〔t"0〕と秘匿文〔m"0〕の積である秘匿文〔t"〕と、秘匿文〔b"1〕と秘匿文〔m"1〕の積である秘匿文〔b"〕とを生成し、秘匿文〔p0〕をキーとして秘匿文〔t"〕をキー公開ソートした秘匿文〔t'i,k〕と、秘匿文〔p1〕をキーとして秘匿文〔b"〕をキー公開ソートした秘匿文〔b'i,k〕とを生成する第二キー公開ソートステップと、
     を含む非減少列判定方法。
  6.  請求項4または5に記載の非減少列判定方法であって、
     上記併合ステップは、次式を満たすi,j,kを選択するものである
    Figure JPOXMLDOC01-appb-M000002

     非減少列判定方法。
  7.  請求項1から3のいずれかに記載の非減少列判定装置としてコンピュータを機能させるためのプログラム。
PCT/JP2015/078184 2014-10-08 2015-10-05 非減少列判定装置、非減少列判定方法及びプログラム WO2016056502A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US15/516,175 US10333697B2 (en) 2014-10-08 2015-10-05 Nondecreasing sequence determining device, method and program
CN201580053994.6A CN106796765B (zh) 2014-10-08 2015-10-05 非减序列判定装置、非减序列判定方法以及记录介质
JP2016553092A JP6337133B2 (ja) 2014-10-08 2015-10-05 非減少列判定装置、非減少列判定方法及びプログラム
EP15849344.5A EP3206201A4 (en) 2014-10-08 2015-10-05 Non-decreasing sequence determining device, non-decreasing sequence determining method, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014206942 2014-10-08
JP2014-206942 2014-10-08

Publications (1)

Publication Number Publication Date
WO2016056502A1 true WO2016056502A1 (ja) 2016-04-14

Family

ID=55653113

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/078184 WO2016056502A1 (ja) 2014-10-08 2015-10-05 非減少列判定装置、非減少列判定方法及びプログラム

Country Status (5)

Country Link
US (1) US10333697B2 (ja)
EP (1) EP3206201A4 (ja)
JP (1) JP6337133B2 (ja)
CN (1) CN106796765B (ja)
WO (1) WO2016056502A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112861145A (zh) * 2021-01-06 2021-05-28 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和用于数据处理的装置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019188320A1 (ja) * 2018-03-26 2019-10-03 日本電信電話株式会社 秘密重複排除フィルタ生成システム、秘密重複排除システム、これらの方法、秘密計算装置及びプログラム
WO2019203262A1 (ja) * 2018-04-20 2019-10-24 日本電信電話株式会社 秘密集約順位システム、秘密計算装置、秘密集約順位方法、およびプログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101242652B (zh) * 2008-02-29 2012-05-23 中兴通讯股份有限公司 随机接入信道的zc序列排序方法和装置
FR2931963A1 (fr) * 2008-06-02 2009-12-04 Centre Nat Rech Scient Procede de traitement de donnees numeriques
US9654280B2 (en) * 2009-03-10 2017-05-16 Irdeto B.V. White-box cryptographic system with input dependent encodings
CN103150214A (zh) * 2012-12-31 2013-06-12 吴立新 一种针对空间度量及方向关系并行计算的矢量目标集均衡划分方法
JP5907902B2 (ja) * 2013-01-21 2016-04-26 日本電信電話株式会社 秘密計算による表の等結合システム、方法
CN103487819A (zh) * 2013-09-06 2014-01-01 哈尔滨工程大学 一种基于升序排列优化的整周模糊度去相关方法
US9524510B2 (en) * 2013-10-02 2016-12-20 Turn Inc. Adaptive fuzzy fallback stratified sampling for fast reporting and forecasting
US20160350520A1 (en) * 2015-05-29 2016-12-01 Nxp, B.V. Diversifying Control Flow of White-Box Implementation

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
HIROKI HAMADA ET AL.: "A Round-Efficient Pattern Matching Algorithm for Secure Multi-Party Computation", CSS2014 COMPUTER SECURITY SYMPOSIUM 2014 RONBUNSHU, vol. 2014, no. 2, 15 October 2014 (2014-10-15), pages 674 - 681, XP003032484 *
HIROKI HARADA ET AL.: "Secure Pattern Matching Using Homomorphic Encryption for Extended String Patterns", CSS2013 COMPUTER SECURITY SYMPOSIUM 2013 RONBUNSHU, vol. 2013, no. 4, 14 October 2013 (2013-10-14), pages 801 - 808, XP055428401 *
KOKI HAMADA ET AL.: "Oblivious Radix Sort: An Efficient Sorting Algorithm for Practical Secure Multi-party Computation", CRYPTOLOGY EPRINT ARCHIVE: REPORT 2014/121, VERSION: 20140228:105846, 28 February 2014 (2014-02-28), XP061015636, Retrieved from the Internet <URL:https://eprint.iacr.org/2014/121.pdf> [retrieved on 20151130] *
See also references of EP3206201A4 *
YUJI WATANABE ET AL.: "Cloud no Log Kanri ni Okeru Hitokugata Event Kenshutsu", 2013 NEN SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY SCIS2013, vol. 4B2-2, 25 January 2013 (2013-01-25), pages 1 - 5, XP009501887 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112861145A (zh) * 2021-01-06 2021-05-28 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和用于数据处理的装置
CN112861145B (zh) * 2021-01-06 2023-12-12 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和用于数据处理的装置

Also Published As

Publication number Publication date
JPWO2016056502A1 (ja) 2017-07-13
EP3206201A1 (en) 2017-08-16
CN106796765B (zh) 2020-10-20
US20170302437A1 (en) 2017-10-19
CN106796765A (zh) 2017-05-31
EP3206201A4 (en) 2018-06-06
JP6337133B2 (ja) 2018-06-06
US10333697B2 (en) 2019-06-25

Similar Documents

Publication Publication Date Title
Alabdulatif et al. Towards secure big data analytic for cloud-enabled applications with fully homomorphic encryption
EP3096309B1 (en) Secret calculation method, secret calculation system, sorting device, and program
KR20160132943A (ko) 단열 양자 계산을 통한 디지털 로직 제한 문제 해결
JP2009010531A (ja) 秘密分散装置、方法及びプログラム
JP5860378B2 (ja) 秘密計算システム、集約関数装置、秘密計算方法、およびプログラム
Fang et al. Secure function evaluation using an fpga overlay architecture
JP7031682B2 (ja) 秘密計算装置、システム、方法、プログラム
JP6337133B2 (ja) 非減少列判定装置、非減少列判定方法及びプログラム
JP6367959B2 (ja) 部分文字列位置検出装置、部分文字列位置検出方法及びプログラム
JP6585846B2 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム
JP6844897B2 (ja) ビット分解秘密計算装置、ビット結合秘密計算装置、方法およびプログラム
JP6494893B2 (ja) 暗号化タグ生成装置、検索クエリ生成装置及び秘匿検索システム
JP6321216B2 (ja) 行列・キー生成装置、行列・キー生成システム、行列結合装置、行列・キー生成方法、プログラム
JP2014203182A (ja) フーリエ変換計算方法、量子回路
JP2019057181A (ja) 設計支援装置、設計支援方法およびコンピュータプログラム
US11797540B2 (en) Secret joining system, method, secret calculation apparatus and program
Babenko et al. Modeling of algebraic analysis of GOST+ cipher in SageMath
JP6509719B2 (ja) 構造データ生成装置、検索装置、構造データ生成方法及び構造データ生成プログラム
CN117581227A (zh) 秘密计算系统、装置、方法以及程序
Salman Feedback Shift Registers As Cellular Automata Boundary Conditions
SHANTHI et al. VLSI Design of a Large-Number Multiplier for Fully Homomorphic Encryption
Liu et al. High performance of RSA simulation system based on modified montgomery algorithm
JP2014029358A (ja) 演算装置、その方法およびプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15849344

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016553092

Country of ref document: JP

Kind code of ref document: A

REEP Request for entry into the european phase

Ref document number: 2015849344

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2015849344

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 15516175

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE