WO2019180787A1 - 復号装置、復号方法及びプログラム記録媒体 - Google Patents

復号装置、復号方法及びプログラム記録媒体 Download PDF

Info

Publication number
WO2019180787A1
WO2019180787A1 PCT/JP2018/010836 JP2018010836W WO2019180787A1 WO 2019180787 A1 WO2019180787 A1 WO 2019180787A1 JP 2018010836 W JP2018010836 W JP 2018010836W WO 2019180787 A1 WO2019180787 A1 WO 2019180787A1
Authority
WO
WIPO (PCT)
Prior art keywords
bit
bits
vector
message
error
Prior art date
Application number
PCT/JP2018/010836
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 PCT/JP2018/010836 priority Critical patent/WO2019180787A1/ja
Publication of WO2019180787A1 publication Critical patent/WO2019180787A1/ja

Links

Images

Classifications

    • 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

Definitions

  • the present invention relates to a decoding device, a decoding method, and a program recording medium.
  • a function with a trapdoor is a procedure consisting of a key generation process, a function calculation process, and an inverse function calculation process, and is used particularly in public key cryptography and signatures.
  • Lattice ciphers and signatures have been studied intensively as ciphers that have efficiency based on the simplicity of computation, homomorphisms resulting from the linearity of basic operations, and security that has not found attacks by quantum computers. .
  • Non-Patent Document 1 in a one-way function with a trap door (lattice based trap-door one-way function), by reducing the lattice dimension and introducing a gadget vector, it is efficient and versatile. The algorithm is described.
  • Non-Patent Document 1 introduces a new concept of G-trap doors and discloses a new algorithm for inverse function calculation of LWE (Learning with Errors).
  • Non-Patent Document 1 the key generation process is configured as follows.
  • the key generation process for the trapdoor one-way function uses N (positive integer) as a security parameter, and the parameter Is accepted as input.
  • q 2 ⁇ 24, ⁇ ⁇ q ⁇ 2- ⁇ 16 ( ⁇ is a power operator).
  • Non-Patent Document 1 a public matrix G (N ⁇ N ⁇ K primitive matrix) is given by the following equation (1).
  • the vector g is a K-dimensional vector having a power of 2 as an element.
  • Matrix G is a fixed value and is public.
  • the matrix G is also called a gadget matrix, and the vector g is also called a gadget vector.
  • the key generation process outputs a matrix that becomes a public key and a matrix that becomes a trap door (secret key).
  • represents concatenation.
  • the concatenation of the matrices A1 and B1 is expressed as follows.
  • Matrix R Is the center of each column vector is 0 variance ⁇ Generated from the discrete Gaussian distribution above Matrix. That is, it is also expressed as follows.
  • Public key A is generated according to the following equation (8).
  • A is It is a matrix.
  • Matrix A has uniformly random distribution characteristics required by the lattice encryption method.
  • secret key is the matrix R in the above equation (5).
  • the function calculation process takes as input the public key A generated as described above, the parameter param, and the vector corresponding to the message: (Ten) Accept.
  • the vector s is an N-dimensional horizontal vector. (11)
  • the vector e ′ is an M-dimensional horizontal vector. (13)
  • the function f A () performs the following function calculation.
  • the vector b is an N ⁇ K-dimensional horizontal vector.
  • Equation (24) is specifically expressed as follows.
  • the vector bn and the vector en are K-dimensional horizontal vectors.
  • K bit x is (29) It is also written. However, x K-1 is MSB (Most Significant Bit), x 0 is the LSB (Least Significant Bit).
  • the components e n of the error vector e n, i (0 ⁇ n ⁇ N-1, 0 ⁇ i ⁇ K-1) is suitably an error vector e n with matrix R (secret matrix) is the private key
  • R secret matrix
  • s 0, K-1 MSB (Most Significant Bit)
  • s 0,0 LSB (Least Significant Bit).
  • s 0,0 is equal to the leftmost end of b 0, K ⁇ 1 in Expression (36). Therefore, the Inversion function can decode (decode) the rightmost bit s 0,0 of s 0 represented by Expression (33).
  • the above formula has the same structure as formula (35). Therefore, the Inversion function can decode s 0,1 .
  • Non-Patent Document 1 The second and subsequent components of vector s are obtained in the same manner.
  • the above is the inverse function calculation processing in Non-Patent Document 1.
  • Non-Patent Document 1 In the decoding process according to Non-Patent Document 1, there is a problem that it is impossible to increase the speed because a K-bit sequential decoding process is required to decode a K-bit message.
  • the present invention has been made in view of the above problems, and its purpose is to improve the efficiency and speed of decrypting a message encrypted by a one-way function with a trap door. To provide a medium.
  • a decryption device for decrypting a message encrypted by a one-way function with a trap door, wherein the product of each element of the message vector and a vector having a power of 2 as an element Receives an input vector obtained by adding an error vector generated based on a vector of elements sampled from a central distribution and a trapdoor matrix, and based on the input vector, the message is represented by L bits (L is 2 In the determination of the estimation unit for each predetermined integer) and the determination of the correctness of the L bit estimated by the estimation unit, the most significant bit in the L bit is not determined, but one lower order of the most significant bit.
  • a decoding device comprising: a confirmation unit that applies a bit determination result to the most significant bit as it is.
  • a decryption method for decrypting a message encrypted by a one-way function with a trap door, wherein each product of a vector of the message and a vector having a power of 2 as an element Receives an input vector obtained by adding an error vector generated based on a vector of elements sampled from a central distribution and a trapdoor matrix, and based on the input vector, the message is represented by L bits (L is 2 In the estimation process for each of the above-mentioned predetermined integers) and the determination of the correctness of the L bit estimated in the estimation process, the most significant bit in the L bit is not determined, and one lower order of the most significant bit is not performed.
  • a decoding method including a confirmation process in which a bit determination result is directly applied to the most significant bit.
  • a computer that executes a process of decrypting a message encrypted by a one-way function with a trap door is provided with each element of the message vector and a vector having a power of 2 as an element.
  • the product receives an input vector obtained by adding a vector of elements sampled from the central distribution and an error vector generated based on the trapdoor matrix, and based on the input vector, the message is represented by L bits (L is In the estimation process to be estimated every two or more (predetermined integers) and the correctness of the L bit estimated in the estimation process, the most significant bit in the L bit is not determined, and one lower order of the most significant bit And a confirmation process for applying the result of bit determination to the most significant bit as it is, and a program for recording the program Program recording medium is provided.
  • the recording medium may be a non-transitory computer-readable medium (a non-transitory computer readable medium) (eg, RAM (Random Access Memory), ROM (Read Only Memory), EEPROM (Electrically Erasable Memory). It may be a semiconductor memory such as Programmable (ROM), HDD (Hard Disk Drive), CD (Compact Disc), DVD (Digital Versatile Disc).
  • a non-transitory computer readable medium eg, RAM (Random Access Memory), ROM (Read Only Memory), EEPROM (Electrically Erasable Memory).
  • ROM Programmable
  • HDD Hard Disk Drive
  • CD Compact Disc
  • DVD Digital Versatile Disc
  • An information processing apparatus including a processor connected to a memory functions as a decryption apparatus that decrypts a message encrypted by a one-way function with a trap door, and includes an operation block that executes decryption processing.
  • the most significant bit in the L bits is determined as follows: A check unit 130 that applies the determination result of the bit lower than the most significant bit as it is to the most significant bit.
  • Non-Patent Document 1 a plurality of bits (s 0,0 ,..., S 0, K-1 ) constituting a message (for example, the first component s 0 of the message s) are sequentially decoded, thereby basically The message is decoded while the decoded bit does not contain an error.
  • the confirmation unit 130 may determine, for example, in parallel whether or not an error is included in a plurality of bits estimated by the estimation unit 120.
  • the estimation unit 120 estimates the L bits at a time, thereby reducing the number of decoding operations of the K-bit message to, for example, about K / L times.
  • the check result of the second most significant bit (judgment result of error) is the same as the check result of the L bit parallel decoding.
  • the probability of property 2 depends on L and other parameters (distribution characteristics, encryption parameters such as security parameters, etc.). For example, it is established with a probability of about 50% to 95%.
  • the estimation unit 120 receives a vector b (formula (46)) obtained by converting the vector v (formula (45)) generated by the function calculation process of the formula (16) according to the formula (23). .
  • Equation (46) is specifically expressed as follows.
  • the estimation unit 120 of the calculation block 110 estimates the next L bits from the c + 1-th bit of s n (0 ⁇ n ⁇ N ⁇ 1).
  • the check unit 130 checks whether the estimated value is correct (check).
  • the confirmation unit 130 confirms that the first l bits (1 ⁇ l ⁇ L) of the L-bit guess value are correct.
  • Negative numbers are expressed in 2's complement and -2 2 is expressed in 4 bits. Either [0
  • FIG. 2 is a diagram for explaining the 3-bit processing in the estimation unit 120.
  • the estimation unit 120 calculates the following equation (51) (S102).
  • the bit representation (2's complement representation) of q-2 K-3 is [1
  • 0]. This guess is reasonable because the following conditional expression (53) is satisfied with a probability that cannot be ignored by the centered distribution of e0, i (i 0, ..., K-1) (reasonable ).
  • the central distribution is not limited to the Gaussian distribution, and is a probability distribution in which the central (average) portion is distributed more than the other portions. Note that the central distribution may be, for example, the above-described discrete Gaussian distribution or a product obtained by multiplying a discrete Gaussian distribution by a uniform distribution (discrete uniform distribution) or the like.
  • equation (53) When conditional expression (53) holds, the guessed value is equal to the true value. If the fourth bit from the top of equation (51) is 0, equation (52) implies that the fourth bit from the top of e 0, Kc-3 is zero.
  • Bit confirmation processing in the confirmation unit 130 is performed in parallel. 3 bits from the c + 1 bit from the least significant bit of s 0 The estimated value by the estimation unit 120 of (56) And
  • conditional expression (53) does not hold, One of them will be incorrect.
  • the confirmation unit 130 detects, as a confirmation procedure (Checking Procedure), which bits are correctly estimated and which bits are incorrect as follows.
  • FIG. 3 is a diagram for explaining the processing of the confirmation unit 130.
  • the confirmation unit 130 calculates the equations (58)-(60) (S107).
  • Equation (64) From Equation (63) and Equation (41) (Property 1), the following Equation (64) is almost certainly established (with an overwhelming probability). (64)
  • v 1 is [-q / 4, q / 4) By checking that it is in the range of (S109), Can be determined to be equal to s 0, c .
  • the confirmation unit 130 The (S115), and the confirmation procedure is terminated.
  • the erroneous bits s0 and c are inverted, and the confirmation process ends with the bits concerned.
  • a 3-bit decoding process is performed from the c + 2 bit from the least significant bit.
  • conditional expression (65) holds (S109: Yes branch), a check is next bit v 2. in this case, (S110), It becomes.
  • the confirmation unit 130 (a) Calculate v1, v2, v3, (b) Determine whether v1, v2, v3 ⁇ [-q / 4, q / 4) holds.
  • the number of parallel calculation loops is K / I AVG .
  • FIG. 4 is a diagram for explaining a confirmation process according to an embodiment of the present invention. Differences from FIG. 3 will be described.
  • the confirmation unit 130 in S107, the calculation of v 3 of the formula (61) is not performed.
  • FIG. 5 is a diagram illustrating a configuration of the decoding device 100 according to the embodiment of this invention.
  • an operation block 110 corresponds to the operation block 110 in FIG. 1 and realizes an L-bit parallel computing environment in an L-1 bit parallel computing environment.
  • the operation block 110 restores c bits from the least significant message s n (0 ⁇ n ⁇ N ⁇ 1), and when c> KL, the remaining bit operation unit 140 decodes c + 1 to K bits.
  • Process (guess / confirm).
  • the input unit 150 inputs a vector v (formula (46)) obtained by converting the vector v (formula (45)) generated by the function calculation process of the formula (17) according to the formula (23).
  • 160 outputs the decoding result of the message s n (0 ⁇ n ⁇ N ⁇ 1).
  • FIG. 6 is a flowchart for explaining the operation of the decoding device 100 of FIG.
  • the decoding device 100 initializes the decoded message x and an index c indicating how many bits have been decoded (S201).
  • the calculation block 110 When c ⁇ K ⁇ L, the calculation block 110 is operated.
  • the calculation block 110 receives a vector b (expression (42)) w obtained by converting the vector v (expression (41)) generated by the function calculation process of the expression (12) according to the expression (18). (S203).
  • the arithmetic block 110 outputs a decoded message x and an index c indicating how many bits have been decoded.
  • the remaining bit calculation unit 140 performs Kc bit decoding (S204).
  • FIG. 7 is a diagram illustrating a configuration example of the computer apparatus 200 that executes the decoding process.
  • the computer device 200 includes a processor 201 connected to a memory 202 (RAM (Random Access Memory), ROM (Read Only Memory), EEPROM (Electrically® Erasable Programmable Read-Only Memory), etc.).
  • the processor 201 may have a configuration including a plurality of processors (multiprocessor), or may include a multicore processor in which a plurality of arithmetic cores are mounted on one chip.
  • the processor 201 is connected to a display device / input device 206, a storage 207, and a network 208 via corresponding interfaces 203, 204, and 205.
  • the display device / input device 206, the storage 207, and the network 208 may function as the input unit 150 and the output unit 160 in FIG.
  • the input device may be a keyboard, a mouse, or the like.
  • Storage 207 includes HDD (Hard Disk Drive), USB (Universal Serial Bus) memory, SSD (Solid State Drive), CD (Compact Disk) -RW, DVD (Digital Versatile Disk) -RW, DVD + RW, DVD-RAM, etc. It may be.
  • the network 208 may be a wired, wireless LAN (Local Area Network), mobile network, Internet, or the like.
  • the processor 201 may execute a group of instructions (program) stored in the memory 202 to realize part or all of the functions of the arithmetic block, the remaining bit arithmetic unit 140, and the like of the decoding device 100. .
  • L-bit confirmation processing (v i ⁇ ( ⁇ q / 2 L + 1 , q / 2 L + 1 ]) is performed by a plurality (L ⁇ 1) of CPUs (Central Processing Units), arithmetic cores, or By executing in parallel with hardware logic, it is possible to speed up the decoding process as compared with Non-Patent Document 1.
  • Non-Patent Document 1 is incorporated herein by reference. Within the scope of the entire disclosure (including claims) of the present invention, the embodiment can be changed and adjusted based on the basic technical concept. Further, various combinations or selections of various disclosed elements (including each element of each claim, each element of each embodiment, each element of each drawing, etc.) are possible within the framework of the entire disclosure of the present invention. is there. That is, the present invention of course includes various variations and modifications that could be made by those skilled in the art according to the entire disclosure including the claims and the technical idea.

Abstract

本発明はトラップドア関数により暗号化されたメッセージの復号処理を効率化、高速化する。トラップドア付き一方向関数により暗号化されたメッセージを復号する復号装置であって、前記メッセージのベクトルの各要素と、2のべき乗を要素とするベクトルとの積に、中心型分布からサンプルされた要素から成るベクトルとトラップドア行列とに基づき生成したエラーベクトルを足し合わせた入力ベクトルを受け、前記入力ベクトルに基づいて、前記メッセージを、Lビット(Lは2以上の所定の整数)毎に推測する推測部と、前記推測部で推測されたLビットの誤りの有無の判定にあたり、Lビットにおける最上位ビットの判定は行わず、前記最上位ビットの1つ下位のビットの判定結果を、そのまま前記最上位ビットに適用する確認部を備える。

Description

復号装置、復号方法及びプログラム記録媒体
 本発明は、復号装置、復号方法及びプログラム記録媒体に関する。
 トラップドア(trap door:落とし戸)付き関数は、鍵生成処理、関数計算処理、及び、逆関数計算処理から成る手続きであり、特に公開鍵暗号や署名において使用される。格子暗号や署名は、計算の簡潔性に基づく効率性と、基本演算の線形性から生じる準同型と、量子計算機による攻撃が発見されていない安全性を有する暗号として、鋭意研究が進められている。例えば非特許文献1には、トラップドア付き一方向性関数(lattice based trap-door one-way function)において、格子次元の減少、ガジェット(gadget)ベクトルの導入により、効率的で、汎用性の高いアルゴリズムが記載されている。非特許文献1ではG-トラップドアの新しい概念を導入し、LWE(Learning with Errors)の逆関数計算の新アルゴリズムが開示されている。
 以下では、非特許文献1におけるトラップドア関数の逆関数計算処理(inversion algorithm)について説明する。なお、以下では、演算はqを2のべき乗の整数q=2K(Kは自然数)としてモジュロqの整数環:
Figure JPOXMLDOC01-appb-I000001
  
において行うものとする。
 非特許文献1では、鍵生成処理を以下のように構成する。トラップドア一方向性関数の鍵生成処理は、N(正整数)をセキュリティパラメータとし、パラメータ
Figure JPOXMLDOC01-appb-I000002
 
を入力として受け付ける。
 ただし、
Figure JPOXMLDOC01-appb-I000003

Figure JPOXMLDOC01-appb-I000004

Figure JPOXMLDOC01-appb-I000005
,
Figure JPOXMLDOC01-appb-I000006
 
Figure JPOXMLDOC01-appb-I000007
  
 なお、O、ωはLandau記法である。
 非特許文献1では、N=284~2^8, q=2^24, α・q~2-^16(^は冪乗演算子)としている。
 非特許文献1において、公開行列(public matrix)G(N×N・Kの原始行列(primitive matrix)は次式(1)で与えられる。

Figure JPOXMLDOC01-appb-I000008
                      (1)
 ここで、ベクトルgは、2のべき乗を要素とするK次元ベクトルである。

Figure JPOXMLDOC01-appb-I000009
                      (2)
 行列Gは固定値であり、且つ、パブリックである。原始行列は、既約、周期=1、非負行列(irreducible aperiodic non-negative matrices)である。行列Gはガジェット(gadget)行列とも称され、ベクトルgはガジェット(gadget)ベクトルとも称される。
<鍵生成処理(GenTrap)>
 鍵生成処理は、公開鍵(public key)となる行列と、トラップドア(秘密鍵)となる行列を出力する。
 上記行列Gを用いて
Figure JPOXMLDOC01-appb-I000010
 
のセミランダム(semi-random)行列A'を、次式(3)にしたがって生成する。
Figure JPOXMLDOC01-appb-I000011
 
                      (3)
 ただし、行列
Figure JPOXMLDOC01-appb-I000012
は、
Figure JPOXMLDOC01-appb-I000013
から一様にサンプルしたものとする。
Figure JPOXMLDOC01-appb-I000014
 ここで記号|は連結(concatenation)を表す。例えば、
Figure JPOXMLDOC01-appb-I000015
,
Figure JPOXMLDOC01-appb-I000016
とすると、行列A1とB1の連結(concatenation)は以下で表される。
Figure JPOXMLDOC01-appb-I000017
 式(3)の行列A'に以下の行列Tを演算する。
Figure JPOXMLDOC01-appb-I000018
                      (4)
 行列Tの逆行列は、
Figure JPOXMLDOC01-appb-I000019
 行列R:
Figure JPOXMLDOC01-appb-I000020
 
は、各列ベクトルを、中心が0分散値σである
Figure JPOXMLDOC01-appb-I000021
 
上の離散ガウス分布から生成した
Figure JPOXMLDOC01-appb-I000022
 
の行列とする。すなわち、以下のようにも表記される。

Figure JPOXMLDOC01-appb-I000023
                      (5)
 ここで、中心が0、分散値がσの
Figure JPOXMLDOC01-appb-I000024
 
上の離散ガウス分布は、実数
Figure JPOXMLDOC01-appb-I000025
 
により定まる関数:
Figure JPOXMLDOC01-appb-I000026
 
                      (6)
を用いて、整数値
Figure JPOXMLDOC01-appb-I000027
 
を確率:

Figure JPOXMLDOC01-appb-I000028
  
                      (7)
で出力した分布をいう。この離散ガウス分布は 
Figure JPOXMLDOC01-appb-I000029
 
とも表記される。
 公開鍵Aは、次式(8)にしたがって生成される。
Figure JPOXMLDOC01-appb-I000030
 
                      (8)
Aは
Figure JPOXMLDOC01-appb-I000031
 
の行列である。
Figure JPOXMLDOC01-appb-I000032
 
 行列Aは、格子暗号方式で要求される一様にランダム分布特性を有する。
 また、秘密鍵(secret key)(秘密行列)は上式(5)の行列Rである。
 行列Gに関して以下が成り立つ。
Figure JPOXMLDOC01-appb-I000033
                      (9)
<関数計算処理>
 関数計算処理は、入力として、前述のように生成した公開鍵Aと、パラメータparamと、メッセージに相当するベクトル:
Figure JPOXMLDOC01-appb-I000034
 
                     (10)
を受け付ける。
 ベクトルsはN次元横ベクトルである。
Figure JPOXMLDOC01-appb-I000035
  
                     (11)
 また、関数計算処理は、離散ガウス分布から
Figure JPOXMLDOC01-appb-I000036
 
                      (12)
をサンプルする。
 ベクトルe'はM次元横ベクトルである。
Figure JPOXMLDOC01-appb-I000037
                      (13)
ただし、
Figure JPOXMLDOC01-appb-I000038
 
                      (14)
Figure JPOXMLDOC01-appb-I000039
                      (15)
 関数計算処理は次式(16)で定義される。

Figure JPOXMLDOC01-appb-I000040
                      (16)
 ただし、行列Aは、上式(8)により生成される。

Figure JPOXMLDOC01-appb-I000041
 
 関数f()は以下の関数計算を行う。
Figure JPOXMLDOC01-appb-I000042
 
<逆関数処理(Invert)>
 逆関数処理(復号演算)では、上式(16)の関数計算処理で生成されたベクトルv
Figure JPOXMLDOC01-appb-I000043
                      (17)
が入力される。
 この入力に対して、
Figure JPOXMLDOC01-appb-I000044
                      (18)
を演算する。
Figure JPOXMLDOC01-appb-I000045
 そして、n=0~n=N-1の繰り返しループ(forループ)で、後述されるInversion関数(g-vector-inversion関数:GVI)(引数:)を計算し、xnに代入する処理を行う。

Figure JPOXMLDOC01-appb-I000046
 
                      (19)
Figure JPOXMLDOC01-appb-I000047
 
から、
Figure JPOXMLDOC01-appb-I000048
 
                      (20)
を求め、
Figure JPOXMLDOC01-appb-I000049
 
とし(s:復号されたメッセージベクトル)、
Figure JPOXMLDOC01-appb-I000050
                      (21)
を返す。
 逆関数計算処理についてさらに詳細に説明する。関数計算処理で生成されたベクトルvを受け付ける。次に、式(17)のベクトルvに対して、行列
Figure JPOXMLDOC01-appb-I000051
 
                      (22)
を右から作用させる。Iは単位行列である。
 ここで、式(17)のベクトルvに上式(22)の行列を右から作用させた結果をベクトルbと表す。このとき、ベクトルbは以下で与えられる。

Figure JPOXMLDOC01-appb-I000052
 
                      (23)
 上式(23)の右辺は、式(8)及び式(9)より以下で与えられる。

Figure JPOXMLDOC01-appb-I000053
 

                      (24)
 ベクトルbはN・K次元の横ベクトルである。
Figure JPOXMLDOC01-appb-I000054
 
 式(24)の最右辺において
Figure JPOXMLDOC01-appb-I000055
 
                      (25)
としている。
 式(24)を具体的に表すと以下のようになる。
Figure JPOXMLDOC01-appb-I000056
 
                      (26)
 ベクトルbn、ベクトルenはK次元の横ベクトルである。

Figure JPOXMLDOC01-appb-I000057
 
Figure JPOXMLDOC01-appb-I000058
  
Figure JPOXMLDOC01-appb-I000059
 
                      (27)
 次にInversion関数について説明する。
整数x:
Figure JPOXMLDOC01-appb-I000060
 
は2進数展開(2冪乗展開)で
Figure JPOXMLDOC01-appb-I000061
 
                      (28)
と表される。ただし、
Figure JPOXMLDOC01-appb-I000062
  
 Kビットのxは、
Figure JPOXMLDOC01-appb-I000063
  
                      (29)
とも表記される。ただし、xK-1はMSB(Most Significant Bit)、x0はLSB(Least Significant Bit)である。
 ここで、エラーベクトルenの各成分en,i (0≦n≦N-1, 0≦i≦K-1)は、秘密鍵である行列R(secret matrix)とエラーベクトルenを適当な分布からとることで、ほぼ確実に(with an overwhelming probability for all 0≦n≦N-1, 0≦i≦K-1)、以下が成り立つ。ここで、「ほぼ確実」は、上記のとおり、暗号用語の"overwhelming"に対応する。

Figure JPOXMLDOC01-appb-I000064
 

(0≦n≦N-1, 0≦i≦K-1)
                      (30)
 式(26)、(27)からベクトルb0は以下で与えられる。

Figure JPOXMLDOC01-appb-I000065
 
                      (31)
 s0の二進数展開は、
Figure JPOXMLDOC01-appb-I000066
 
                      (32)
 なお、s0の2進数展開は以下のようなビット表現でも表される。
Figure JPOXMLDOC01-appb-I000067
 
                      (33)
 ここで、s0,K-1はMSB(Most Significant Bit)、s0,0はLSB(Least Significant Bit)である。
 式(31)のベクトルb0の各成分b0,0,…,b0,K-2, b0,K-1は以下で表される。
Figure JPOXMLDOC01-appb-I000068
 
                                                     (34)
Figure JPOXMLDOC01-appb-I000069
 
                                                     (35)
Figure JPOXMLDOC01-appb-I000070
 
                                                     (36)
 エラーベクトルeの各成分は、ほぼ確実に(with an overwhelming probability for all 0≦i≦K-1)、以下が成り立つ。

Figure JPOXMLDOC01-appb-I000071
 
(0≦i≦K-1)
                                                     (37)
 この場合、s0,0は、式(36)のb0,K-1の最左端と等しい。したがって、Inversion関数では、式(33)で表記されるs0の最右端のビットs0,0をデコード(復号)することができる。
 s0,0が得られると、

Figure JPOXMLDOC01-appb-I000072
 
                      (38)
が計算される。式(35)から、以下が得られる。

Figure JPOXMLDOC01-appb-I000073
 
                      (39)
 上式は式(35)と同一構造である。そこで、Inversion関数はs0,1をデコード(復号)することができる。
 この手順を繰り返すことで、ベクトルsの第1成分s0が得られる。

Figure JPOXMLDOC01-appb-I000074
 

                      (40)
 ベクトルsの第2成分以降も同様にして求められる。以上が、非特許文献1における逆関数計算処理である。
Daniele Micciancio, Chris Peikert, "Trapdoors for Lattices: Simpler, Tighter, Faster, Smaller," EUROCRYPT 2012: Advances in Cryptology - EUROCRYPT 2012 pp 700-718
 非特許文献1による復号処理では、Kビットのメッセージを復号するのに、K回のビットごとの逐次復号処理が必要であり、高速化ができないという問題がある。
 本発明は、かかる課題に鑑みて創案されたものであって、その目的はトラップドア付き一方向関数により暗号化されたメッセージの復号処理を効率化、高速化する復号装置、復号方法及びプログラム記録媒体を提供することにある。
 本発明の一形態によれば、トラップドア付き一方向関数により暗号化されたメッセージを復号する復号装置であって、前記メッセージのベクトルの各要素と、2のべき乗を要素とするベクトルとの積に、中心型分布からサンプルされた要素から成るベクトルとトラップドア行列とに基づき生成したエラーベクトルを足し合わせた入力ベクトルを受け、前記入力ベクトルに基づいて、前記メッセージを、Lビット(Lは2以上の所定の整数)毎に推測する推測部と、前記推測部で推測されたLビットの正誤の判定にあたり、Lビットにおける最上位ビットの判定は行わず、前記最上位ビットの1つ下位のビットの判定結果を、そのまま前記最上位ビットに適用する確認部と、を備えた復号装置が提供される。
 本発明の一形態によれば、トラップドア付き一方向関数により暗号化されたメッセージを復号する復号方法であって、前記メッセージのベクトルの各要素と、2のべき乗を要素とするベクトルとの積に、中心型分布からサンプルされた要素から成るベクトルとトラップドア行列とに基づき生成したエラーベクトルを足し合わせた入力ベクトルを受け、前記入力ベクトルに基づいて、前記メッセージを、Lビット(Lは2以上の所定の整数)毎に推測する推測処理と、前記推測処理で推測されたLビットの正誤の判定にあたり、Lビットにおける最上位ビットの判定は行わず、前記最上位ビットの1つ下位のビットの判定結果を、そのまま前記最上位ビットに適用する確認処理と含む復号方法が提供される。
 本発明の一形態によれば、トラップドア付き一方向関数により暗号化されたメッセージを復号する処理を実行するコンピュータに、前記メッセージのベクトルの各要素と、2のべき乗を要素とするベクトルとの積に、中心型分布からサンプルされた要素から成るベクトルとトラップドア行列とに基づき生成したエラーベクトルを足し合わせた入力ベクトルを受け、前記入力ベクトルに基づいて、前記メッセージを、Lビット(Lは2以上の所定の整数)毎に推測する推測処理と、前記推測処理で推測されたLビットの正誤の判定にあたり、Lビットにおける最上位ビットの判定は行わず、前記最上位ビットの1つ下位のビットの判定結果を、そのまま前記最上位ビットに適用する確認処理と、を実行させるプログラム、及び該プログラムを記録したプログラム記録媒体が提供される。本発明によれば、該記録媒体は、非一時的なコンピュータ可読可能な媒体(a non-transitory computer readable medium)(例えばRAM(Random Access Memory)、ROM(Read Only Memory)、EEPROM(Electrically Erasable and Programmable ROM)等の半導体メモリ、HDD(Hard Disk Drive)、CD(Compact Disc)、DVD(Digital Versatile Disc)としてもよい。
 本発明によれば、トラップドア付き一方向関数により暗号化されたメッセージの復号処理を効率化、高速化することができる。
本発明の一実施形態を説明する図である。 本発明の一実施形態(L=3)の推測処理を説明する流れ図である。 本発明の一実施形態(L=3)の確認処理を説明する流れ図である。 本発明の一実施形態の構成を説明する図である。 本発明の一実施形態を説明する図である。 本発明の一実施形態を説明する図である。 装置構成の一例を例示する図である。
 本発明の実施形態について説明する。メモリに接続されるプロセッサを備えた情報処理装置は、トラップドア付き一方向関数により暗号化されたメッセージを復号する復号装置として機能し、復号処理を実行する演算ブロックを含む。図1を参照すると、演算ブロック110は、前記メッセージ(s)のベクトルの各要素si(i=0,…,N-1)と、2のべき乗を要素とするベクトル(g=(1,2,…,2K-1))との積(si・g)、中心型分布(centered distribution)(確率分布)からサンプルされた要素から成るベクトルe' iと、トラップドア行列Rとの演算に基づき生成されたエラーベクトルeiを足し合わせた入力ベクトル(bi:=si・g+ei)(i=0,…,N-1)を受け、前記入力ベクトルに基づいて、前記メッセージを、Lビット(Lは2以上の所定の整数)毎に推測する推測部(Guess)120と、推測部120で推測されたLビットの正誤の判定にあたり、Lビットにおける最上位ビットの判定は行わず、前記最上位ビットの1つ下位のビットの判定結果を、そのまま前記最上位ビットに適用する確認(Check)部130と、を備える。
 非特許文献1では、メッセージ(例えばメッセージsの第1成分s0)を構成する複数のビット(s0,0, …, s0,K-1)を逐次的に復号することで、基本的には復号したビットに誤りが含まれないようにしつつ、メッセージを復号化する。
 一方、一実施形態では、メッセージ(例えばメッセージsの第1成分s0)を構成する複数のビット(例えばLビット:s0,0, …, s0,L-1)を復号する際に、推測したビットに誤りが含まれることを許容する。一実施形態では、推測部120で推測した複数のビットに誤りが含まれるか否かを、確認部130において、例えば並列に判定するようにしてもよい。一実施形態によると、推測部120で、Lビットごと一括して推測することで、Kビットのメッセージの復号演算の回数を、例えばK/L回程度にまで削減することができる。
 また、確認部130では、推測部120で推測されたLビットの正誤判定にあたり、Lビットにおける最上位ビットの判定は行わず、該最上位ビットの1つ下位のビットの判定結果を、前記最上位ビットにそのまま適用する。すなわち、確認部130では、Lビット(例えばL=3)のうち,最上位のビットの確認(Check)は行なわず、上から2番目のビットのチェック結果(誤りの有無の判定結果)を、そのまま最上位のビットのチェック結果とする。
 以下の<性質1>により、上から2番目のビットのチェック結果(誤りの有無の判定結果)をそのまま最上位のビットのチェック結果は、Lビットの並列復号によるチェック結果と一致する。
 Lビットの最上位のビットのチェックを最上位から2番目のビットのチェック結果を適用することで、L-1ビット(並列)計算環境で、Lビット(並列)計算環境と同等の機能を実現可能としている。すなわち、Lビット(並列)計算環境でlビット復号可能である場合、ほぼ l+1ビットの復号を可能としている。Lビットにおける正誤判定は、例えばL個の演算処理装置(例えばL個の比較演算回路)を用いた並列計算によってlビット相当の計算時間で処理することができる。したがって、一実施形態によると、トラップドア付き関数で暗号化されたメッセージの復号処理を、非特許文献1と比較して大幅に高速化することが可能となる。Lが、2≦L≦6程度であることを鑑みると,並列度を1つ増加させる効果は小さくない。L=2の場合、2ビットのうち上から2ビット目の1ビットのみのチェックで済み、演算処理装置、計算効率を、2ビット並列計算する場合と比べてほぼ半分としている。
 上式(34)-(36)において、次式(41)がほぼ確実に(with an overwhelming probability for all 0≦i≦K-1)成立する。
<性質1>

Figure JPOXMLDOC01-appb-I000075
 

(0≦i≦K-1)
                                                     (41)
 これは、2の補数表示で、
Figure JPOXMLDOC01-appb-I000076
 
Figure JPOXMLDOC01-appb-I000077
 
                                                     (42)
 すなわち、ほぼ確実に(with an overwhelming probability for all 0≦i≦K-1)、eo,iの最上位2ビットは同一である。
<性質2>
 また小さいLに対して大きな確率で以下が成り立つ。

Figure JPOXMLDOC01-appb-I000078
 

                                                     (43)
 すなわち、大きな確率で最上位L+1ビットは同一である。
Figure JPOXMLDOC01-appb-I000079

                                                     (44)
 ただし、性質2の確率は、Lやその他のパラメータ(分布特性やセキュリティパラメータ等の暗号パラメータ等)に依存する。例えば50%~95%程度の確率で成立する。
 推測部120には、上式(16)の関数計算処理で生成されたベクトルv(式(45))を、上式(23)にしたがって変換したベクトルb(式(46))が入力される。
Figure JPOXMLDOC01-appb-I000080
                   (45)
ただし、
Figure JPOXMLDOC01-appb-I000081
 

Figure JPOXMLDOC01-appb-I000082

Figure JPOXMLDOC01-appb-I000083
Figure JPOXMLDOC01-appb-I000084
 

                      (46)
 ただし、エラーベクトルeは、上式(25)にしたがって以下で与えられる。

Figure JPOXMLDOC01-appb-I000085
 
         
 式(46)を具体的に表すと以下のようになる。
Figure JPOXMLDOC01-appb-I000086
 
                      (47)
 ここで、メッセージs(0≦n≦N-1)の最下位からc≦Kビットが復元されたものとする。演算ブロック110の推測部120は、s(0≦n≦N-1)のc+1ビット目から次のLビットを推測(guess)する。次に確認部130は、推測した値が正しいか確認(check)する。確認部130は、Lビット推測値の最初のlビット(1≦l≦L)が正しいことを確認する。
 L=3を例として説明する。入力ベクトルをbとする。
整数x:
Figure JPOXMLDOC01-appb-I000087
 
は以下のように展開される。
Figure JPOXMLDOC01-appb-I000088
 
ただし、
Figure JPOXMLDOC01-appb-I000089
  
 展開は一意的ではない。なお、負数は2の補数表示とし、-22を4ビット表記すると、
[0|| - 1||0||0]、[1||1||0||0](2n補数表現)のいずれかが選択可能である。前述したように、sの最下位からcビット目(c≦Kビット)が復元されたもの(推測・確認処理済み)とする。
Figure JPOXMLDOC01-appb-I000090
   0≦i≦c-1
に対して、推測部120は、次の3ビット(c+1ビット目からc+3ビット目):

Figure JPOXMLDOC01-appb-I000091
  
を推測する。図2は、推測部120におけるこの3ビットの処理を説明する図である。
 0≦c≦K-3とし、格子用の3つのビットを入力する(S101)。
Figure JPOXMLDOC01-appb-I000092
    
                        (48)
Figure JPOXMLDOC01-appb-I000093
                             (49)
Figure JPOXMLDOC01-appb-I000094
                             (50)
 推測部120は次式(51)を計算する(S102)。

Figure JPOXMLDOC01-appb-I000095
  
                         (51)
 式(48)から式(51)は次式(52)で与えられる。

Figure JPOXMLDOC01-appb-I000096
  
                        (52)
 推測部は、sの最下位ビットからc+1ビット目から3ビット
Figure JPOXMLDOC01-appb-I000097
 
に関して、式(51)の上から4(=L+1)ビット目が0であれば、式(51)をそのまま推測値とする(S104)。
 式(51)の上から4(=L+1)ビット目が1であれば、式(51)から
Figure JPOXMLDOC01-appb-I000098
 
 を引いた値を推測値とする(S105)。
 なお、q-2K-3のビット表現(2の補数表現)は、[1||1||1||0…0||0]である。この推測は、e0,i(i=0,…,K-1)の中心型分布(Centered Distribution)により無視できない確率で次の条件式(53)が満たされるため、理に適っている(reasonable)。なお、中心型分布は、ガウス分布に制限されず、中心(平均)部が他の部分よりも多く分布する確率分布である。なお、中心型分布は、例えば、上記した離散ガウス分布や、離散ガウス分布に、一様分布(離散一様分布)等を掛け合わせたものであってもよい。

Figure JPOXMLDOC01-appb-I000099
   
                       (53)
 条件式(53)が成り立つとき、推測値(guessed value)は真値(true value)に等しい。式(51)の上から4ビット目が0の場合、式(52)は、e0,K-c-3 の上から4ビット目は0であることを含意(imply)する。
 条件式(53)により、これは、e0,iのビット表現は、
Figure JPOXMLDOC01-appb-I000100
 
                     (54)
の形式であることを意味する。
 したがって、式(52)から、推測値は、
Figure JPOXMLDOC01-appb-I000101
 
となる。
 一方、式(51)の上から4ビット目が1の場合、式(52)は、e0,K-c-3 の上から4ビット目は1であることを含意(imply)する。条件式(53)により、e0,iのビット表現は、
Figure JPOXMLDOC01-appb-I000102
 
                     (55)
の形式であることを意味する。
 したがって、式(52)から、推測値は、

Figure JPOXMLDOC01-appb-I000103
 

である。
 確認部130でのビットの正誤の確認処理は並列に行われる。sの最下位ビットからc+1ビット目から3ビット
Figure JPOXMLDOC01-appb-I000104
 
の推測部120による推測値を
Figure JPOXMLDOC01-appb-I000105
 
                   (56)
とする。
Figure JPOXMLDOC01-appb-I000106
  
                   (57)

を3ビットの推測値と、復号済みの正しいdビット(最下位ビットからcビット)の連接(concatenation)とする。
 条件式(53)が成立する場合、推測値3ビットは正しい。
 一方、条件式(53)が成立しない場合、
Figure JPOXMLDOC01-appb-I000107
  
のいずれかが正しくないことになる。
 確認部130は、確認手順(Checking Procedure)として、どのビットが正しく推測されたかどのビットが正しくないかを以下のようにして検出する。図3は、確認部130の処理を説明する図である。
 確認部130は式(58)-(60)を計算する(S107)。
Figure JPOXMLDOC01-appb-I000108
 
                (58)
Figure JPOXMLDOC01-appb-I000109
  
                 (59)
Figure JPOXMLDOC01-appb-I000110
  
                 (60)
 式(48)、(49)、(50)、(56)、(58)、(59)、(60)から、以下のように表される。
Figure JPOXMLDOC01-appb-I000111
  
                           (61)
Figure JPOXMLDOC01-appb-I000112
 
                            (62)
Figure JPOXMLDOC01-appb-I000113
 
                               (63)
 式(63)と式(41)(性質1)から、次式(64)がほぼ確実に(with an overwhelming probability)、成り立つ。

Figure JPOXMLDOC01-appb-I000114
 
                (64)
 したがって、確認部130では、v1
[-q/4, q/4)
の範囲にあることをチェックすることで(S109)、
Figure JPOXMLDOC01-appb-I000115
  
がs0,cに等しいか否かを決定することができる。
Figure JPOXMLDOC01-appb-I000116
 

                (65)
が成り立たない場合(S109のNo分岐:i=1)、
確認部130は、
Figure JPOXMLDOC01-appb-I000117
 
                (66)
であるとする(S114)。
 確認部130は、
Figure JPOXMLDOC01-appb-I000118

Figure JPOXMLDOC01-appb-I000119
として出力し(S115)、確認手順を終了する。すなわち、誤りのあったビットs0,cを反転し、当該ビットで確認処理を終了する。この場合、1ビットs0,cが復元できたことになる(L=3のうちl=1ビットが復号完了)。すなわち、最下位ビットからc+1ビット目までの復号が終わったことになり、次のLビット推測処理に進む。次のLビット推測処理では、最下位ビットからc+2ビット目から3ビットの復号処理を行う。
 条件式(65)が成り立つ場合(S109のYes分岐)、次のビットv2のチェックを行う。この場合、
Figure JPOXMLDOC01-appb-I000120
 
が成り立ち(S110)、

Figure JPOXMLDOC01-appb-I000121
 

となる。
 これは式(62)の形式と等しい。このため、
Figure JPOXMLDOC01-appb-I000122
 
がs0,c+1に等しいか否かを、同様にチェックすることができる。
Figure JPOXMLDOC01-appb-I000123
 

                (67)
が成り立たない場合(S109のNo分岐:i=2)、確認部130では、

Figure JPOXMLDOC01-appb-I000124
 
                (68)
として(S114)、確認手順を終了し、2ビット
Figure JPOXMLDOC01-appb-I000125
 
を戻り値として返す(S115)。
 条件式(67)が成り立つ場合(S109のYes分岐:i=2)、次のビットv3のチェックを行う。この場合、
Figure JPOXMLDOC01-appb-I000126
 
が成り立ち(S110)、
Figure JPOXMLDOC01-appb-I000127
 
となる。
 これは式(63)の形式と等しい。このため、
Figure JPOXMLDOC01-appb-I000128
 
がs0,c+2に等しいか否か同様にチェックできる。
Figure JPOXMLDOC01-appb-I000129
 
                (69)
 が成り立たない場合(S109のNo分岐:i=3)、確認部130では、
Figure JPOXMLDOC01-appb-I000130
 
                (70)
とし(S114)、確認手順を終了し、3ビット
Figure JPOXMLDOC01-appb-I000131
 
を戻り値として返す(S115)。
条件式(69)が成り立つ場合(S109のYes分岐:i=3)
Figure JPOXMLDOC01-appb-I000132
 
となる(S110)。この場合、次のビットは存在しないため(i=i+1=4>3)、確認手順を終了し、3ビット:
Figure JPOXMLDOC01-appb-I000133
 
を戻り値として返す。
 上記の通り、確認部130では、
(a) v1, v2, v3を計算し、
(b) v1, v2, v3∈[-q/4, q/4)が成り立つか否かを決定する。
 これら2つの処理は並列に実行可能である。全体の確認手順は並列化できる。なお、上記した例は、一般の場合に容易に拡張できる(Lビットを並列にチェック)。
 演算ブロック110で平均IAVGが復元できた場合、並列演算のループ回数はK/IAVGとなる。
 ところで、上記確認部130において.いま注目している3ビット(Lビット: L=3)のうち,最上位のビット(s0.c+2)のチェックを行なわず、上から2番目のビット(s0.c+1)のチェック結果をそのまま適用するようにしてもよい。上記性質1により、
Figure JPOXMLDOC01-appb-I000134
 
の上位2ビットは同一と考えて良い。
 Lビット=3ビットの場合、上記性質1により,
Figure JPOXMLDOC01-appb-I000135
  又は、
Figure JPOXMLDOC01-appb-I000136
 
である。
 このため、入力ベクトルb0とメッセージs0の最上位ビットが等しいことと、b0とs0の上から2番目のビットが等しい事は同値である。上記の例では、v1、v2、v3について、入力ベクトルb0とメッセージs0の最上位ビットs0,c+2に関する
Figure JPOXMLDOC01-appb-I000137
 
について、
Figure JPOXMLDOC01-appb-I000138
 
のチェックは行わず、v2のチェック結果をそのまま適用する。
 すなわち、v2に関し条件:
Figure JPOXMLDOC01-appb-I000139
 
が成立する場合、vに関する条件:
Figure JPOXMLDOC01-appb-I000140
 
も成立するものとする。
 v2に関し条件:
Figure JPOXMLDOC01-appb-I000141
 
が成立しない場合、vにする条件、
Figure JPOXMLDOC01-appb-I000142
 
も成立しないものとする。
 図4は、本発明の一実施形態の確認処理を説明する図である。図3との相違点について説明する。
 確認部130では、S107において、式(61)のv3の計算は行わない。
Figure JPOXMLDOC01-appb-I000143
 
のチェックは、i=1,2 (v1,v2)のみとなる。
 条件式(65):
Figure JPOXMLDOC01-appb-I000144
 

が成り立たない場合(S109のNo分岐:i=1)、確認部130は、
Figure JPOXMLDOC01-appb-I000145
 
                (72)
とし(S114)、
Figure JPOXMLDOC01-appb-I000146
を出力し(S115)、確認手順を終了する。
 条件式(65):
Figure JPOXMLDOC01-appb-I000147
 
は成り立ったが、
条件式(67):
Figure JPOXMLDOC01-appb-I000148
 
が成り立たない場合には(S109のNo分岐:i=2)、確認部130は、
Figure JPOXMLDOC01-appb-I000149
 
とし(S114)、さらに、v3に関する条件式(69):
Figure JPOXMLDOC01-appb-I000150
 
も成り立たないものとして、
Figure JPOXMLDOC01-appb-I000151
 
とし(S118)、
3ビット:
Figure JPOXMLDOC01-appb-I000152
 
を戻り値として返す(S119)。
条件式(67):
Figure JPOXMLDOC01-appb-I000153
 
が成立する場合、条件式(65):
Figure JPOXMLDOC01-appb-I000154
 
も成立するものとする。この場合、S110で
Figure JPOXMLDOC01-appb-I000155
 
とし、i=i+1が3になるため、S116で
Figure JPOXMLDOC01-appb-I000156
 
とし、
Figure JPOXMLDOC01-appb-I000157
 
を戻り値として返す(S113)。
 図5は、本発明の実施形態の復号装置100の構成を例示する図である。復号装置100において、演算ブロック110は、図1の演算ブロック110に対応し、L-1ビット並列計算環境でLビット並列計算環境を実現する。演算ブロック110により、メッセージs(0≦n≦N-1)の最下位からcビットまでが復元され、c>K-Lのとき、残りビット演算部140は、c+1からKビットまでの復号処理(推測・確認)を行う。入力部150は、上式(17)の関数計算処理で生成されたベクトルv(式(45)を、上式(23)にしたがって変換したベクトルb(式(46))を入力する。出力部160は、メッセージs(0≦n≦N-1)の復号結果を出力する。
 図6は、図5の復号装置100の動作を説明する流れ図である。復号装置100は復号メッセージxと何ビット目まで復号されたかを示すインデクスcを初期化する(S201)。
 c≦K-Lである場合、演算ブロック110を動作させる。演算ブロック110には、上式(12)の関数計算処理で生成されたベクトルv(式(41))を、上式(18)にしたがって変換したベクトルb(式(42))wが入力される(S203)。演算ブロック110は、復号したメッセージxと何ビット目まで復号されたか示すインデクスcを出力する。
 c>K-Lとなると、残りビット演算部140がK-cビットの復号演算を行う(S204)。
 c=Kの場合、復号メッセージxを戻り値として返す(S208)。
 c<Kであれば、例えば、非特許文献1の逆関数処理で説明した1ビット逐次型の復号演算を行う(S207)。c=Kとなると、復号メッセージxを戻り値として返す(S208)。
 図7は、復号処理を実行するコンピュータ装置200の構成例を説明する図である。コンピュータ装置200は、メモリ202(RAM(Random Access Memory)、ROM(Read Only Memory)、EEPROM(Electrically Erasable Programmable Read-Only Memory)等)に接続されたプロセッサ201を備えている。プロセッサ201は、複数のプロセッサを備えた構成としてもよいし(マルチプロセッサ)、複数の演算コアを1チップに搭載したマルチコアプロセッサを備えていてもよい。プロセッサ201は、対応するインタフェース203、204、205を介して、表示装置・入力装置206、ストレージ207、ネットワーク208に接続される。表示装置・入力装置206、ストレージ207、ネットワーク208は、図5の入力部150、出力部160として作用してもよい。入力装置は、キーボード、マウス等であってもよい。ストレージ207はHDD(Hard Disk Drive)、USB(Universal Serial Bus)メモリ、SSD(Solid State Drive)、CD(Compact Disc)-RW、DVD(Digital Versatile Disc)-RW、DVD+RW、DVD-RAM等であってもよい。ネットワーク208は有線、無線LAN(Local Area Network)、携帯網、インタネット等であってもよい。
 メモリ202に記憶されている命令群(プログラム)をプロセッサ201が実行することにより、上記復号装置100の演算ブロック、残りビット演算部140等の機能の一部又は全部を実現するようにしてもよい。この場合、Lビットの確認処理(vi∈(-q/2L+1, q/2L+1])を、複数(L-1個)のCPU(Central Processing Unit)、演算コア、又はハードウェアロジックで並列に実行することで、非特許文献1と比較して復号処理を高速化することが可能となる。
 なお、非特許文献1の全開示内容は、本書に引用をもって繰り込み記載されているものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素(各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
100 復号装置
110 演算ブロック(推測・確認演算ブロック)
120 推測部
130 確認部
140 残りビット演算部
150 入力部
160 出力部
200 コンピュータ装置
201 プロセッサ
202 メモリ
203、204 入出力インタフェース
205 通信インタフェース
206 表示装置・入力装置
207 ストレージ
208 ネットワーク

Claims (15)

  1.  トラップドア付き一方向関数により暗号化されたメッセージを復号する復号装置であって、
     前記メッセージのベクトルの各要素と、2のべき乗を要素とするベクトルとの積に、中心型分布からサンプルされた要素から成るベクトルとトラップドア行列とに基づき生成したエラーベクトルを足し合わせた入力ベクトルを受け、前記入力ベクトルに基づいて、前記メッセージを、Lビット(Lは2以上の所定の整数)毎に推測する推測部と、
     前記推測部で推測されたLビットの正誤の判定にあたり、Lビットにおける最上位ビットの判定は行わず、前記最上位ビットの1つ下位のビットの判定結果を、そのまま前記最上位ビットに適用する確認部と、
     を備えた、ことを特徴とする復号装置。
  2.  前記確認部は、前記エラーベクトルに含まれる要素がとり得る値の範囲に基づいて、推測された各ビットの正誤を判定する、ことを特徴とする請求項1に記載の復号装置。
  3.  前記確認部は、前記最上位ビットの1つ下位のビットが誤りと判定された場合、前記最上位ビットも誤りとして、前記最上位ビットの1つ下位のビットと前記最上位ビットをそれぞれ反転し、反転した2ビットを含むLビットを確認済みの復号結果とする、ことを特徴とする請求項1又は2に記載の復号装置。
  4.  前記確認部は、前記最上位ビットの2つ下位のビット又はより下位のビットが誤りと判定された場合、誤りと判定されたビットを反転し、推測された前記Lビットのうち前記反転したビットまでを確認済みの復号結果とする、ことを特徴とする請求項1乃至3のいずれか1項に記載の復号装置。
  5.  前記メッセージを構成するビットのうち、前記確認部で正誤が確認済みの復号結果の1ビット上位のビット位置からLビット上位のビット数が、前記メッセージのビット数(K)からLを差し引いた値以下であるとき、前記推測部は、前記誤りと判定されたビットの1ビット上位のビット位置からLビットを推測する、ことを特徴とする請求項3又は4に記載の復号装置。
  6.  前記メッセージを構成するビットのうち、前記誤りと判定されたビットの1ビット上位のビット位置からLビット上位のビット数cが、前記メッセージのビット数(K)からLを差し引いた値を越えるとき、上位ビットK-cに関して、Lビット未満の推測と確認を行う、ことを特徴とする請求項3乃至5のいずれか1項に記載の復号装置。
  7.  前記Lは、前記最上位2ビットが所望の確率で同一となる値から選択される、ことを特徴とする請求項1乃至6のいずれか1項に記載の復号装置。
  8.  トラップドア付き一方向関数により暗号化されたメッセージを復号する復号方法であって、
     前記メッセージのベクトルの各要素と、2のべき乗を要素とするベクトルとの積に、中心型分布からサンプルされた要素から成るベクトルとトラップドア行列とに基づき生成したエラーベクトルを足し合わせた入力ベクトルを受け、前記入力ベクトルに基づいて、前記メッセージを、Lビット(Lは2以上の所定の整数)毎に推測する推測処理と、前記推測処理で推測されたLビットの正誤の判定にあたり、Lビットにおける最上位ビットの判定は行わず、前記最上位ビットの1つ下位のビットの判定結果を、そのまま前記最上位ビットに適用する確認処理と、
     を含む、ことを特徴とする復号方法。
  9.  前記確認処理では、前記エラーベクトルに含まれる要素がとり得る値の範囲に基づいて、推測された各ビットが正しいか否かを判定する、ことを特徴とする請求項8に記載の復号方法。
  10.  前記確認処理では、前記確認部は、前記最上位ビットの1つ下位のビットが誤りと判定された場合、前記最上位ビットも誤りとして、前記最上位ビットの1つ下位のビットと前記最上位ビットをそれぞれ反転し、反転した2ビットを含むLビットを確認済みの復号結果とする、ことを特徴とする請求項8又は9に記載の復号方法。
  11.  前記確認処理では、前記最上位ビットの2つ下位のビット又はより下位のビットが誤りと判定された場合、誤りと判定されたビットを反転し、推測された前記Lビットのうち前記反転したビットまでを確認済みの復号結果とする、ことを特徴とする請求項8乃至10のいずれか1項に記載の復号方法。
  12.  前記メッセージを構成するビットのうち、前記確認処理で正誤が確認済みの復号結果の1ビット上位のビット位置からLビット上位のビット数が、前記メッセージのビット数(K)からLを差し引いた値以下であるとき、前記推測部は、前記誤りと判定されたビットの1ビット上位のビット位置からLビットを推測する、ことを特徴とする請求項10又は11に記載の復号方法。
  13.  前記メッセージを構成するビットのうち、前記誤りと判定されたビットの1ビット上位のビット位置からLビット上位のビット数cが、前記メッセージのビット数(K)からLを差し引いた値を越えるとき、上位ビットK-cに関して、Lビット未満の推測と確認を行う、ことを特徴とする請求項8乃至11のいずれか1項に記載の復号方法。
  14.  前記Lは、前記最上位2ビットが所望の確率で同一となる値から選択される、ことを特徴とする請求項8乃至12のいずれか1項に記載の復号方法。
  15.  トラップドア付き一方向関数により暗号化されたメッセージを復号する処理を実行するコンピュータに、
     前記メッセージのベクトルの各要素と、2のべき乗を要素とするベクトルとの積に、中心型分布からサンプルされた要素から成るベクトルとトラップドア行列とに基づき生成したエラーベクトルを足し合わせた入力ベクトルを受け、前記入力ベクトルに基づいて、前記メッセージを、Lビット(Lは2以上の所定の整数)毎に推測する推測処理と、
     前記推測処理で推測されたLビットの正誤の判定にあたり、Lビットにおける最上位ビットの判定は行わず、前記最上位ビットの1つ下位のビットの判定結果を、そのまま前記最上位ビットに適用する確認処理と、を実行させるプログラムを記録したプログラム記録媒体。
PCT/JP2018/010836 2018-03-19 2018-03-19 復号装置、復号方法及びプログラム記録媒体 WO2019180787A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/010836 WO2019180787A1 (ja) 2018-03-19 2018-03-19 復号装置、復号方法及びプログラム記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/010836 WO2019180787A1 (ja) 2018-03-19 2018-03-19 復号装置、復号方法及びプログラム記録媒体

Publications (1)

Publication Number Publication Date
WO2019180787A1 true WO2019180787A1 (ja) 2019-09-26

Family

ID=67986890

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/010836 WO2019180787A1 (ja) 2018-03-19 2018-03-19 復号装置、復号方法及びプログラム記録媒体

Country Status (1)

Country Link
WO (1) WO2019180787A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013524277A (ja) * 2010-03-30 2013-06-17 インターナショナル・ビジネス・マシーンズ・コーポレーション 双一次形式に関する効率的な準同形暗号方式のためのコンピュータ読み取り可能記憶媒体および装置
JP2014186097A (ja) * 2013-03-22 2014-10-02 Kddi Corp 公開鍵暗号化方式における並列GaussSieveアルゴリズムを用いた最短ベクトル問題の求解装置、求解方法およびプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013524277A (ja) * 2010-03-30 2013-06-17 インターナショナル・ビジネス・マシーンズ・コーポレーション 双一次形式に関する効率的な準同形暗号方式のためのコンピュータ読み取り可能記憶媒体および装置
JP2014186097A (ja) * 2013-03-22 2014-10-02 Kddi Corp 公開鍵暗号化方式における並列GaussSieveアルゴリズムを用いた最短ベクトル問題の求解装置、求解方法およびプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TANAKA, YUKI ET AL.: "High-Computational-Efficiency Reverse Image Computation Processing of Unidirectional Trapdoor Functions", PROCEEDINGS OF THE 2017 SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY, 24 January 2017 (2017-01-24), pages 1 - 8 *

Similar Documents

Publication Publication Date Title
JP5957120B1 (ja) 秘密分散方法、秘密分散システム、分散装置、およびプログラム
JP6534778B2 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム
Karmakar et al. Pushing the speed limit of constant-time discrete Gaussian sampling. A case study on the Falcon signature scheme
CN112805769B (zh) 秘密s型函数计算系统、装置、方法及记录介质
JP6044738B2 (ja) 情報処理装置、プログラム及び記憶媒体
CN114221766B (zh) 数据加密方法、解密方法及装置
JP2010530990A (ja) 公開行列に基づき、エラー補正コードのデコーディングを用いて認証を行う方法
JP7031682B2 (ja) 秘密計算装置、システム、方法、プログラム
JP2021086158A (ja) 格子ベースの暗号鍵生成方法及び電子署名方法
US20220413807A1 (en) Secure random number generation system, secure computation apparatus, secure random number generation method, and program
US9419789B2 (en) Method and apparatus for scalar multiplication secure against differential power attacks
JP6585846B2 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム
US11599681B2 (en) Bit decomposition secure computation apparatus, bit combining secure computation apparatus, method and program
JP6767933B2 (ja) パラメータ変換方法、パラメータ変換装置、パラメータ変換プログラム、ペアリング演算方法、ペアリング演算装置、及びペアリング演算プログラム
AU2018271515A1 (en) Secret tampering detection system, secret tampering detection apparatus, secret tampering detection method, and program
Albuainain et al. Experimental Implementation of Shor's Quantum Algorithm to Break RSA
Mounica et al. Implementation of 5-Qubit approach-based Shor's Algorithm in IBM Qiskit
WO2019180787A1 (ja) 復号装置、復号方法及びプログラム記録媒体
WO2018109809A1 (ja) 復号装置、復号方法およびプログラム
JP6885460B2 (ja) 逆像サンプリング装置、逆像サンプリング方法および逆像サンプリングプログラム
WO2018008541A1 (ja) フィッシャー正確検定計算装置、方法及びプログラム
JP7228287B1 (ja) 暗号処理装置、暗号処理方法、及び暗号処理プログラム
JP6904417B2 (ja) 乱数算出装置、乱数算出方法、暗号装置、及び、乱数算出プログラム
US20240039693A1 (en) Encryption processing device, encryption processing method, and encryption processing program
JP6293681B2 (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: 18911207

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18911207

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP