JP2010049214A - Encryption device, decryption device, cryptography verifying device, encryption method, decryption method and program - Google Patents

Encryption device, decryption device, cryptography verifying device, encryption method, decryption method and program Download PDF

Info

Publication number
JP2010049214A
JP2010049214A JP2008216016A JP2008216016A JP2010049214A JP 2010049214 A JP2010049214 A JP 2010049214A JP 2008216016 A JP2008216016 A JP 2008216016A JP 2008216016 A JP2008216016 A JP 2008216016A JP 2010049214 A JP2010049214 A JP 2010049214A
Authority
JP
Japan
Prior art keywords
ciphertext
component
plaintext
unit
compressed
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.)
Pending
Application number
JP2008216016A
Other languages
Japanese (ja)
Inventor
Yasutomo Isotani
泰知 磯谷
Tomoko Yonemura
智子 米村
Hirobumi Muratani
博文 村谷
Atsushi Shinpo
淳 新保
Kenji Okuma
建司 大熊
Yuichi Komano
雄一 駒野
Kenichiro Furuta
憲一郎 古田
Kiichi Hanatani
嘉一 花谷
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2008216016A priority Critical patent/JP2010049214A/en
Publication of JP2010049214A publication Critical patent/JP2010049214A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide an encryption technique which can reduce the size of data while restraining increase in processing time in a public key cryptosystem, which has basis of safety on discrete logarithm problem on a sub-group of a multiplication group. <P>SOLUTION: An encryption device compresses some cryptography components of the respective cryptography components of a cryptography (c1, c2) and generates the other cryptography components at the same time. Meanwhile, a decryption device expands the compressed cryptography components of the respective cryptography components of the cryptography (c1, c2) and performs various operations such as exponentiation and multiplication using the non-compressed cryptography components or already expanded cryptography components and a private key at the same time to thereby obtain a plaintext. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、有限体上の乗法群の離散対数問題に安全性の根拠を置く暗号方式にかかる暗号化装置、復号装置、暗号文検証装置、暗号化方法、復号方法及びプログラムに関する。   The present invention relates to an encryption device, a decryption device, a ciphertext verification device, an encryption method, a decryption method, and a program according to an encryption method that bases security on the discrete logarithm problem of a multiplicative group on a finite field.

通信路を流れる情報を保護するために、暗号を用いる方法がある。暗号を用いる方法には、通信相手と事前に鍵を共有しておく必要があるものもある。このような方法では、鍵の共有や管理に大きな手間がかかる。一方、公開鍵暗号を用いる方法では、事前に鍵を共有することなしに安全な通信を実現できる。このため、ネットワーク・セキュリティの基盤技術として幅広く用いられている。また、情報端末の多様化が進み、小型機器においても方式や実装を工夫して公開鍵を用いた各種スキームやプロトコルが用いられるようになってきた。   There is a method using encryption in order to protect the information flowing through the communication path. Some methods using encryption require a key to be shared in advance with a communication partner. Such a method requires a great deal of time for key sharing and management. On the other hand, in the method using public key cryptography, secure communication can be realized without sharing a key in advance. For this reason, it is widely used as a basic technology for network security. In addition, with the diversification of information terminals, various schemes and protocols using public keys have been used in small devices by devising methods and implementations.

公開鍵暗号の暗号方式にはElGamal暗号やCramer−Shoup暗号のように離散対数問題の困難性を安全性の根拠とするものがある。離散対数問題とは、巡回群‘G=<g>’において‘y∈G’が与えられたときに、‘y=g^x’を満たすxを求める問題である。尚、‘^’はべき乗を表す。巡回群Gとしては、有限体の乗法群や楕円曲線の有理点のなす加法群(ヤコビ群)が用いられる。離散対数問題を解くアルゴリズムには、シャンクのアルゴリズムやポラードのρ法のようにいずれの巡回群上で定義された離散対数問題に対しても適用可能なものと、位数計算法にように有限体の乗法群上で定義された離散対数問題のみに適用可能なものとが存在する。   Some public-key cryptosystems, such as ElGamal cipher and Cramer-Shoop cipher, use the difficulty of the discrete logarithm problem as the basis of security. The discrete logarithm problem is a problem of finding x satisfying ‘y = g ^ x’ when ‘yεG’ is given in the cyclic group ‘G = <g>’. Note that '^' represents a power. As the cyclic group G, a multiplicative group of a finite field or an additive group (Jacobi group) formed by rational points of an elliptic curve is used. Algorithms that solve discrete logarithm problems can be applied to discrete logarithm problems defined on any cyclic group, such as Shank's algorithm or Pollard's rho method, and finite numbers like order calculation methods. Some are applicable only to discrete logarithm problems defined on field multiplicative groups.

位数計算法は効率的であるため、有限体の乗法群上の離散対数問題を用いた公開鍵暗号は解読されやすい。したがって、同じ安全性を確保するために、有限体の乗法群上の離散対数問題を用いた公開鍵暗号は、楕円曲線上の離散対数問題を用いた公開鍵暗号よりも鍵長や暗号文長を大きくする必要がある。   Since the order calculation method is efficient, public key cryptography using the discrete logarithm problem on the multiplicative group of finite fields is easily deciphered. Therefore, in order to ensure the same security, public key cryptography using the discrete logarithm problem on the multiplicative group of finite fields is more key length and ciphertext length than public key cryptography using the discrete logarithm problem on the elliptic curve. Need to be larger.

現在、公開鍵暗号において典型的なセキュリティパラメータは1024ビット〜2048ビットである。セキュリティパラメータとは、公開鍵サイズや暗号文サイズを決定するパラメータであり、暗号方式の安全性に影響を与えるパラメータである。このセキュリティパラメータが大きくなれば、公開鍵サイズや暗号文サイズも大きくなる。解読が困難とされるセキュリティパラメータは年々大きくなっている。これは、計算機の進歩に伴い攻撃者の能力も向上するためである。公開鍵暗号では公開鍵サイズや暗号文サイズは、暗号方式により異なるが、セキュリティパラメータの数倍となる。   Currently, typical security parameters in public key cryptography are 1024 bits to 2048 bits. The security parameter is a parameter that determines the public key size and the ciphertext size, and is a parameter that affects the security of the encryption method. As this security parameter increases, the public key size and ciphertext size also increase. Security parameters that are difficult to decipher are increasing year by year. This is because the attacker's ability improves with the progress of computers. In public key cryptography, the public key size and ciphertext size differ depending on the encryption method, but are several times the security parameters.

そこで、公開鍵暗号における公開鍵サイズや暗号文サイズを圧縮する方法が提案されている(例えば、非特許文献1参照)。この方法は、公開鍵暗号で用いる数の集合のうち代数的トーラスと呼ばれる部分集合を用いると、集合の成分を小さいビット数で表現できるという事実に基づいている。代数的トーラスの属する拡大体の次数nが高々二つの素数p,qの冪の積‘l=(p^m)・(q^n)’であるとき、圧縮率(=圧縮前のビット数/圧縮後のビット数)は、‘l/φ(l)’となることが知られている。ただし、φ(・)はオイラー関数である。p^mは、pのm乗である。小さいビット数の表現への変換は、拡大体表現を射影表現に変換する写像ρと射影表現をアフィン表現に変換する写像τによって行われる。暗号文を圧縮する場合の具体例を示す。拡大体表現の暗号文cを入力として計算を行い、圧縮暗号文γを得る(式1参照)。   Therefore, a method for compressing the public key size and ciphertext size in public key cryptography has been proposed (see, for example, Non-Patent Document 1). This method is based on the fact that using a subset called an algebraic torus out of a set of numbers used in public key cryptography, the components of the set can be expressed with a small number of bits. When the degree n of the extension field to which the algebraic torus belongs is the product of l of at most two prime numbers p and q 'l = (p ^ m) · (q ^ n)', the compression rate (= the number of bits before compression) / (Number of bits after compression) is known to be 'l / φ (l)'. Here, φ (·) is an Euler function. p ^ m is the mth power of p. The conversion to a representation with a small number of bits is performed by a mapping ρ that converts the extended field representation into a projective representation and a mapping τ that converts the projection representation into an affine representation. A specific example in the case of compressing a ciphertext is shown. Calculation is performed using the ciphertext c of the expanded field representation as an input to obtain a compressed ciphertext γ (see Equation 1).

ρ(c)=γ・・・(式1) ρ (c) = γ (Formula 1)

元のビット数の表現に戻すには、それぞれρ、τの逆写像を計算すればよい。ρの逆写像をψと書き、τの逆写像をτ−1と書くことにする。圧縮暗号文としてγが与えられたときに計算を行い、cを得る(式2参照)。   To return to the original representation of the number of bits, inverse mappings of ρ and τ may be calculated, respectively. The inverse mapping of ρ is written as ψ, and the inverse mapping of τ is written as τ−1. When γ is given as the compressed ciphertext, calculation is performed to obtain c (see Equation 2).

ψτ―1(γ)= c・・・(式2) ψτ−1 (γ) = c (Formula 2)

また、非特許文献1、2では、前記圧縮写像1、2と前記伸張写像1,2の構成法と、それらを用いて次のような拡大体表現をアフィン表現に圧縮する写像ρ6、アフィン表現を拡大体表現に伸張する写像‘ρ6^(−1)’の構成法が示されている。圧縮写像ρ6は、6次拡大体F{(p^m)^6}上の拡大体表現のトーラスTの任意の元tを入力として計算し、アフィン表現F{p^m}×F{p^m}^*の要素との組を得る(式3参照)。   Further, in Non-Patent Documents 1 and 2, the configuration methods of the compressed maps 1 and 2 and the extended maps 1 and 2 and the mapping ρ6 and the affine representation for compressing the following expanded field representation into the affine representation using them. A method of constructing a map 'ρ6 ^ (-1)' that expands to an expanded field representation is shown. The compression map ρ6 is calculated using an arbitrary element t of the torus T of the extension field representation on the sixth-order extension field F {(p ^ m) ^ 6} as an input, and the affine expression F {p ^ m} × F {p A set with the elements of ^ m} ^ * is obtained (see Equation 3).

ρ6(t)=(a,b)∈F{p^m}×F{p^m}^*・・・(式3) ρ6 (t) = (a, b) ∈F {p ^ m} × F {p ^ m} ^ * (Equation 3)

尚、ここで‘×’は直積を表すものとする。また、Aが集合であるとき、A^mはm個のAの直積集合となる。例えば、‘A^3=A×A×A’となる。具体的には例えば、‘{0,1、2}^2={(0,0),(0,1),(0,2),(1,0),(1,1),(1,2),(2,0),(2,1),(2,2)}’となる。ここで、F{p^m}は、素体F{p}のm次拡大体であり、 F{p^m}の要素はベクトル表現を用いると、{0,・・・,p−1}^mの要素で表現できる。F{p^m}^*は、F{p^m}の乗法群であり、F{p^m}^mの要素はベクトル表現を用いると、{0,・・・,p−1}\{0}^mの要素で表される。‘\’は集合の引き算を表す。
6^(−1)’は、(a,b)∈F{p^m}×F{p^m}^*を入力として計算し、6次拡大体F{(p^m)^6}上の拡大体表現のトーラスTの元tを得る(式4参照)。
Here, “×” represents a direct product. When A is a set, A ^ m is a direct product set of m A's. For example, “A ^ 3 = A × A × A”. Specifically, for example, '{0, 1, 2} ^ 2 = {(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1 , 2), (2, 0), (2, 1), (2, 2)} ′. Here, F {p ^ m} is an m-th order extension field of the prime field F {p}, and the elements of F {p ^ m} are {0,. } ^ M can be expressed as an element. F {p ^ m} ^ * is a multiplicative group of F {p ^ m}, and the elements of F {p ^ m} ^ m are {0,. It is represented by an element of \ {0} ^ m. '\' Represents a set subtraction.
6 ^ (− 1) ′ is calculated using (a, b) εF {p ^ m} × F {p ^ m} ^ * as an input, and a sixth-order extension field F {(p ^ m) ^ 6} The element t of the torus T in the above expanded field representation is obtained (see equation 4).

ρ−1(a,b)=t∈T・・・(式4) ρ-1 (a, b) = tεT (Expression 4)

また、非特許文献2では、F{p^m}の6次拡大体上のトーラスの要素の拡大体表現{0,・・・,p−1}^{6^m}と射影表現{0,・・・,p−1}^{6*m}とアフィン表現F{p^m}×F{p^m}^*に対して、上記のρ、ψ、τ、τ−1の構成法を示し、それを元に(式3)と(式4)との写像を構成している。このとき、拡大体表現と射影表現とに対する演算は、共にF{p^(6*m)}の演算で、非特許文献1、2ではF{p^(6*m)}の演算をF{((p^m)^3)^2}の演算として実現している。アフィン表現の要素は拡大体表現や射影表現よりも短いビット長で表現できる反面、演算することができない。   Further, in Non-Patent Document 2, an extension field expression {0,..., P−1} ^ {6 ^ m} of a torus element on a sixth extension field of F {p ^ m} and a projection expression {0 ,..., P−1} ^ {6 * m} and the affine expression F {p ^ m} × F {p ^ m} ^ *, the configuration of ρ, ψ, τ, and τ−1. Based on this, the mapping of (Equation 3) and (Equation 4) is constructed. At this time, the operations for the expanded field expression and the projective expression are both F {p ^ (6 * m)}. In Non-Patent Documents 1 and 2, the calculation of F {p ^ (6 * m)} is F. It is realized as an operation of {((p ^ m) ^ 3) ^ 2}. An affine element can be expressed with a bit length shorter than that of an extended field expression or projective expression, but cannot be calculated.

代数的トーラスを用いた圧縮や伸張は、公開鍵暗号における公開鍵や暗号文だけでなく、デジタル署名における署名や鍵交換スキームにおける交換メッセージにも適用できる。   Compression and decompression using an algebraic torus can be applied not only to public keys and ciphertexts in public key cryptography, but also to signatures in digital signatures and exchange messages in key exchange schemes.

近年では、離散対数問題の困難性に基づく様々な公開鍵暗号の暗号方式が提案されている。例えば、Cramer-Shoup暗号(非特許文献3参照)は、標準モデルでの安全性が証明されている方式であるが、公開鍵や暗号文の成分の数が多いという特徴がある。具体的には、Cramer-Shoup暗号の暗号文は4つの成分(c1, c2, c3, c4)からなり、公開鍵も5つの成分(g,g~,e,f,h)が含まれる。しかも、各成分は実際に暗号に用いられる群よりも大きな表現で表されるという問題がある。つまり、Cramer-Shoup暗号は有限群G~の素数位数部分群G上で定義されているが、公開鍵や暗号文の成分は有限群G~の表現で表されている。具体的には、Cramer-Shoup暗号は素体の乗法群の素数位数部分群で定義されているが、公開鍵や暗号文の成分は素体の表現で表されている。   In recent years, various public key cryptosystems based on the difficulty of the discrete logarithm problem have been proposed. For example, the Cramer-Shoup cipher (see Non-Patent Document 3) is a method that has been proven to be secure with a standard model, but has a feature that there are many public key and ciphertext components. Specifically, the ciphertext of the Cramer-Shoup cipher consists of four components (c1, c2, c3, c4), and the public key also includes five components (g, g˜, e, f, h). Moreover, there is a problem in that each component is represented by a larger expression than the group actually used for encryption. In other words, the Cramer-Shoup cipher is defined on the prime order subgroup G of the finite group G˜, but the public key and the components of the ciphertext are represented by the representation of the finite group G˜. Specifically, the Cramer-Shoup cipher is defined by the prime order subgroup of the multiplication group of the prime field, but the public key and the components of the ciphertext are represented by the representation of the prime field.

Cramer-Shoup暗号やその他の公開鍵暗号において、有限群G~の部分群であって実際に暗号に用いられる群Gを代数的トーラスTの部分群とすることにより、公開鍵や暗号文を有限群G~のサイズではなく代数的トーラスTのサイズ、すなわち群G~よりも小さなビット数で表現が可能となる。例えば、素体上の代数的トーラスを用いたElGamal暗号やDH鍵交換(非特許文献1、4参照)はこの概念を利用し、公開鍵や暗号文のサイズを小さくしたものである。   In the Cramer-Shoop cipher and other public key ciphers, the public key and the ciphertext are limited by making the group G that is a subgroup of the finite group G ~ and actually used for the cipher to be a subgroup of the algebraic torus T. It is possible to express not by the size of the group G˜ but by the size of the algebraic torus T, that is, by the number of bits smaller than the group G˜. For example, ElGamal encryption and a DH key exchange (see Non-Patent Documents 1 and 4) using an algebraic torus on a prime field use this concept and reduce the size of a public key or ciphertext.

ここで、Cramer-Shoup暗号の処理の概要を説明する。平文mを暗号化する暗号化装置には、鍵生成装置で生成された公開鍵(q,g,g~,e,f,h)が入力される。尚、qは素数で有限群G~の部分群Gの位数、gは暗号が定義される部分群Gの生成元、g~,e,f,hも部分群Gの元とする。平文mもGの元でなければならない。暗号化装置は、乱数の生成、べき乗計算、乗算、ハッシュ計算を行い、平文mに対応する暗号文(c1, c2, c3, c4)を計算する。この暗号文(c1, c2, c3, c4)は、復号装置に入力される。また、復号装置には、公開鍵に対応する秘密鍵(x1, x2, y1, y2, z1, z2)が入力される。この秘密鍵は‘1’から‘q−1’までの整数(又は‘0’から‘q-1’までの整数)とする。復号装置は、秘密鍵(x1, x2, y1, y2, z1, z2)と暗号文(c1, c2, c3, c4)とを用いて、正当な暗号文であるかのチェックを行い、平文mを計算する。   Here, an outline of the processing of Cramer-Shop encryption will be described. The public key (q, g, g˜, e, f, h) generated by the key generation device is input to the encryption device that encrypts the plaintext m. Note that q is a prime number and the order of the subgroup G of the finite group G˜, g is a generation source of the subgroup G in which the cipher is defined, and g˜, e, f, and h are also elements of the subgroup G. The plaintext m must also be an element of G. The encryption device performs random number generation, power calculation, multiplication, and hash calculation, and calculates ciphertexts (c1, c2, c3, c4) corresponding to the plaintext m. The ciphertext (c1, c2, c3, c4) is input to the decryption device. In addition, a secret key (x1, x2, y1, y2, z1, z2) corresponding to the public key is input to the decryption device. This secret key is an integer from '1' to 'q-1' (or an integer from '0' to 'q-1'). The decryption device uses the secret key (x1, x2, y1, y2, z1, z2) and the ciphertext (c1, c2, c3, c4) to check whether it is a valid ciphertext, and the plaintext m Calculate

K. Rubin and A. Silverberg, “Torus-Based Cryptography”, CRYPTO 2003, LNCS 2729, 349-365, 2003.K. Rubin and A. Silverberg, “Torus-Based Cryptography”, CRYPTO 2003, LNCS 2729, 349-365, 2003. Robert Granger, Dan Page, Martijn Stam: A Comparison of CEILIDH and XTR. ANTS 2004: 235-249Robert Granger, Dan Page, Martijn Stam: A Comparison of CEILIDH and XTR. ANTS 2004: 235-249 R. Cramer and V. Shoup, “A practical public key cryptosystem provably secure against adaptive chosen ciphertextattack”, CRYPTO'98, LNCS 1462, pp.13-25, 1998.R. Cramer and V. Shoup, “A practical public key cryptosystem provably secure against adaptive chosen ciphertextattack”, CRYPTO'98, LNCS 1462, pp.13-25, 1998. M. van Dijkand D. Woodruff, “Asymptotically Optimal Communication for Torus-Based Cryptography”, CRYPTO 2004, LNCS 3152, 157-178, 2004.M. van Dijkand D. Woodruff, “Asymptotically Optimal Communication for Torus-Based Cryptography”, CRYPTO 2004, LNCS 3152, 157-178, 2004.

しかしながら、例えばCramer-Shoup暗号のような乗法群の部分群上の離散対数問題を安全性の根拠とする公開鍵暗号の暗号方式において、暗号化や復号と圧縮や伸張とを行うことを考えた場合、通常、暗号化装置で暗号化して圧縮した後データを送信し、復号装置で受信したデータを伸張して復号するという手順で処理を行う。暗号化装置でこのような圧縮を行う場合、これを行わない場合と比べ、送信するデータのサイズを小さくすることができるため、通信コストが下がるものの、処理時間が増大する。復号装置で伸張を行う場合も、これを行わない場合に比べ、処理時間が増大する。   However, for example, encryption, decryption, compression, and decompression were considered in a public key cryptosystem based on a discrete logarithm problem on a subgroup of a multiplicative group such as Cramer-Shoup cipher. In this case, the processing is usually performed in a procedure in which data is transmitted after being encrypted and compressed by the encryption device, and the data received by the decryption device is decompressed and decrypted. When such compression is performed by the encryption device, the size of data to be transmitted can be reduced compared to a case where this is not performed, and thus the communication time is reduced, but the processing time is increased. When decompression is performed by the decoding device, the processing time increases as compared with the case where this is not performed.

本発明は、上記に鑑みてなされたものであって、乗法群の部分群上の離散対数問題に安全性の根拠を置く暗号方式において、処理時間の増大を抑制しつつ、データのサイズを低減可能な暗号化装置、復号装置、暗号化方法、復号方法及びプログラムを提供することを目的とする。   The present invention has been made in view of the above, and reduces the size of data while suppressing an increase in processing time in an encryption method based on the safety of a discrete logarithm problem on a subgroup of a multiplicative group. It is an object to provide a possible encryption device, decryption device, encryption method, decryption method, and program.

上述した課題を解決し、本発明は、有限体上の乗法群の離散対数問題に安全性の根拠を置く暗号方式により平文を暗号化し、複数の暗号文成分を含む暗号文を出力する暗号化装置であって、平文を受信する平文受信部と、1つ以上の公開鍵成分を含む公開鍵を受信する公開鍵受信部と、受信された前記平文と前記公開鍵成分とを用いて暗号文成分である第1の暗号文成分を少なくとも1つ以上生成する第1暗号文成分生成部と、少なくとも1つ以上の前記第1の暗号文成分を圧縮して、第1の圧縮暗号文成分を得る暗号文成分圧縮部と、受信された前記平文と、前記公開鍵成分と、前記第1の暗号文成分と、前記第1の圧縮暗号文成分とのうち、少なくとも1つ以上を用いて第2の暗号文成分を生成する第2暗号文成分生成部と、少なくとも前記第1の圧縮暗号文成分と前記第2の暗号文成分とを含む暗号文を出力する暗号文出力部とを備えることを特徴とする。   In order to solve the above-described problem, the present invention encrypts plaintext by an encryption method based on the safety of the discrete logarithm problem of a multiplicative group on a finite field, and outputs ciphertext including a plurality of ciphertext components. A plaintext receiving unit that receives plaintext, a public key receiving unit that receives a public key including one or more public key components, and a ciphertext using the received plaintext and the public key component A first ciphertext component generating unit that generates at least one first ciphertext component that is a component, and compressing at least one of the first ciphertext components to obtain a first compressed ciphertext component The ciphertext component compression unit to obtain, the received plaintext, the public key component, the first ciphertext component, and the first compressed ciphertext component using at least one or more. A second ciphertext component generation unit for generating two ciphertext components; and at least Characterized in that it comprises a ciphertext output unit for outputting the ciphertext that includes serial first compressed encrypted component and a second cipher text component.

また、本発明は、有限体上の乗法群の離散対数問題に安全性の根拠を置く暗号方式により暗号化され複数の暗号文成分を含む暗号文を復号して平文を得る復号装置であって、前記暗号文成分のうち少なくとも1つが圧縮された圧縮暗号文成分を含む暗号文を受信する暗号文受信部と、前記暗号文の暗号化に用いられた公開鍵に対応する1つ以上の秘密鍵成分を含む秘密鍵を受信する秘密鍵受信部と、受信された前記暗号文成分と前記秘密鍵成分とのうちいずれかを少なくとも用いて、前記暗号文の復号に用いる中間データを生成する中間データ生成部と、前記圧縮暗号文成分を演算可能な表現で表現した伸張済み圧縮暗号分成分に伸張する暗号文成分伸張部と、前記中間データの一部と、前記伸張済み圧縮暗号文成分と、前記暗号文成分とのいずれかを少なくとも用いて復号済みの平文を生成する復号済み平文生成部と、前記復号済みの平文を出力する復号済み平文出力部とを備えることを特徴とする。   The present invention also provides a decryption device for decrypting a ciphertext including a plurality of ciphertext components that has been encrypted by an encryption method based on the safety of the discrete logarithm problem of a multiplicative group over a finite field, and obtaining a plaintext. A ciphertext receiving unit that receives a ciphertext including a compressed ciphertext component in which at least one of the ciphertext components is compressed, and one or more secrets corresponding to a public key used for encrypting the ciphertext An intermediate for generating intermediate data used for decryption of the ciphertext using at least one of the received ciphertext component and the secret key component, and a secret key receiving unit that receives a secret key including a key component A data generation unit; a ciphertext component decompression unit that decompresses the compressed ciphertext component into a decompressed compressed ciphertext component expressed in an operable expression; a part of the intermediate data; and the decompressed compressed ciphertext component; , With the ciphertext component Characterized in that it comprises the decoded plaintext generation unit for generating at least using plaintext decoded by or displaced, the decoded plaintext output unit for outputting the decoded plaintext.

また、本発明は、有限体上の乗法群の離散対数問題に安全性の根拠を置く暗号方式により暗号化され複数の暗号文成分を含む暗号文を復号して平文を得る復号装置であって、前記暗号文成分のうち少なくとも1つが圧縮された圧縮暗号文成分を含む暗号文を受信する暗号文受信部と、前記暗号文の暗号化に用いられた公開鍵に対応する1つ以上の秘密鍵成分を含む秘密鍵を受信する秘密鍵受信部と、受信された前記暗号文成分と前記秘密鍵成分とのうちいずれかを少なくとも用いて、平文を計算する平文計算部と、受信された前記暗号文成分と前記秘密鍵成分とのうちいずれかを少なくとも用いて、前記暗号文の正当性を検証するための検証用データを生成する検証用データ生成部と、前記圧縮暗号文成分と前記検証用データとを少なくとも用いて、前記暗号文の正当性を検証する正当性検証部と、前記暗号文が正当であると検証された場合、前記平文を出力し、前記暗号文が正当でないと検証された場合、前記暗号文が正当ではない旨を出力する復号済み平文出力部とを備えることを特徴とする。   The present invention also provides a decryption device for decrypting a ciphertext including a plurality of ciphertext components that has been encrypted by an encryption method based on the safety of the discrete logarithm problem of a multiplicative group over a finite field, and obtaining a plaintext. A ciphertext receiving unit that receives a ciphertext including a compressed ciphertext component in which at least one of the ciphertext components is compressed, and one or more secrets corresponding to a public key used for encrypting the ciphertext A secret key receiving unit that receives a secret key including a key component, a plaintext calculation unit that calculates a plaintext using at least one of the received ciphertext component and the secret key component, and the received A verification data generation unit that generates verification data for verifying the validity of the ciphertext using at least one of the ciphertext component and the secret key component, the compressed ciphertext component, and the verification For data and at least A validity verification unit that verifies the validity of the ciphertext, and outputs the plaintext when the ciphertext is verified to be valid, and verifies that the ciphertext is invalid. And a decrypted plaintext output unit that outputs that the sentence is not valid.

また、本発明は、有限体上の乗法群の離散対数問題に安全性の根拠を置く暗号方式により暗号化され複数の暗号文成分を含む暗号文の正当性を検証する暗号文正当性検証装置であって、前記暗号文成分のうち少なくとも1つが圧縮された圧縮暗号文成分を含む暗号文を受信する暗号文受信部と、前記暗号文の暗号化に用いられた公開鍵に対応する1つ以上の秘密鍵成分を含む秘密鍵を受信する秘密鍵受信部と、受信された前記暗号文成分と前記秘密鍵成分とのうちいずれかを少なくとも用いて、前記暗号文の復号に用いる中間データを生成する中間データ生成部と、前記圧縮暗号文成分の表現を演算可能な表現である伸張済み圧縮暗号分成分に伸張する暗号文成分伸張部と、前記中間データの一部と、前記伸張済み圧縮暗号文成分と、前記暗号文成分とのいずれかを少なくとも用いて前記暗号文の正当性を検証する正当性検証部と、前記正当性検証部の検証結果を出力する検証結果出力部とを備えることを特徴とする。   The present invention also relates to a ciphertext validity verification device that verifies the validity of a ciphertext that is encrypted by a cryptosystem that has a basis of security for the discrete logarithm problem of a multiplicative group over a finite field and includes a plurality of ciphertext components. A ciphertext receiving unit that receives a ciphertext including a compressed ciphertext component in which at least one of the ciphertext components is compressed, and one corresponding to a public key used for encrypting the ciphertext Using at least one of the secret key receiving unit that receives a secret key including the secret key component and the received ciphertext component and the secret key component, intermediate data used for decrypting the ciphertext is obtained. An intermediate data generation unit to generate, a ciphertext component decompression unit that decompresses the compressed ciphertext component expression into an expanded compressed ciphertext component that is an expression that can be computed, a part of the intermediate data, and the decompressed compression The ciphertext component and the dark A validity verification unit using at least one of the sentences component to verify the validity of the ciphertext, characterized in that it comprises a verification result output unit for outputting a verification result of the validity verifying unit.

また、本発明は、有限体上の乗法群の離散対数問題に安全性の根拠を置く暗号方式により暗号化され複数の暗号文成分を含む暗号文の正当性を検証する暗号文検証装置であって、前記暗号文成分のうち少なくとも1つが圧縮された圧縮暗号文成分を含む暗号文を受信する暗号文受信部と、前記暗号文の暗号化に用いられた公開鍵に対応する1つ以上の秘密鍵成分を含む秘密鍵を受信する秘密鍵受信部と、受信された前記暗号文成分と前記秘密鍵成分とのうちいずれかを少なくとも用いて、平文を計算する平文計算部と、受信された前記暗号文成分と前記秘密鍵成分とのうちいずれかを少なくとも用いて、前記暗号文の正当性を検証するための検証用データを生成する検証用データ生成部と、前記圧縮暗号文成分と前記検証用データとを少なくとも用いて、前記暗号文の正当性を検証する正当性検証部と、前記正当性検証部の検証結果を出力する検証結果出力部とを備えることを特徴とする。   The present invention is also a ciphertext verification apparatus that verifies the validity of a ciphertext that is encrypted by an encryption method that lays the grounds of safety on the discrete logarithm problem of a multiplicative group over a finite field and includes a plurality of ciphertext components. A ciphertext receiving unit that receives a ciphertext containing a compressed ciphertext component in which at least one of the ciphertext components is compressed, and one or more public keys used for encrypting the ciphertext A secret key receiving unit that receives a secret key including a secret key component, a plaintext calculation unit that calculates a plaintext using at least one of the received ciphertext component and the secret key component, and received Using at least one of the ciphertext component and the secret key component, a verification data generation unit that generates verification data for verifying the validity of the ciphertext, the compressed ciphertext component, and the Less data for verification Be used, characterized in that it comprises a validity verifying part for verifying the validity of the ciphertext, the verification result output unit for outputting a verification result of the validity verifying unit.

また、本発明は、有限体上の乗法群の離散対数問題に安全性の根拠を置く暗号方式により平文を暗号化し、複数の暗号文成分を含む暗号文を出力する暗号化装置で実行される暗号化方法であって、平文を受信する平文受信ステップと、1つ以上の公開鍵成分を含む公開鍵を受信する公開鍵受信ステップと、受信された前記平文と前記公開鍵成分とを用いて暗号文成分である第1の暗号文成分を少なくとも1つ以上生成する第1暗号文成分生成ステップと、少なくとも1つ以上の前記第1の暗号文成分を圧縮して、第1の圧縮暗号文成分を得る第1暗号文成分圧縮ステップと、受信された前記平文と、前記公開鍵成分と、前記第1の暗号文成分と、前記第1の圧縮暗号文成分とのうち、少なくとも1つ以上を用いて第2の暗号文成分を生成する第2暗号文成分生成ステップと、少なくとも前記第1の圧縮暗号文成分と前記第2の暗号文成分とを含む暗号文を出力する暗号文出力ステップとを含むことを特徴とする。   Further, the present invention is executed by an encryption apparatus that encrypts plaintext by an encryption method that lays the grounds for safety on the discrete logarithm problem of the multiplicative group over a finite field, and outputs a ciphertext including a plurality of ciphertext components. A plaintext receiving step for receiving a plaintext, a public key receiving step for receiving a public key including one or more public key components, and the received plaintext and public key component. A first ciphertext component generating step for generating at least one first ciphertext component that is a ciphertext component; and compressing at least one of the first ciphertext components to obtain a first compressed ciphertext A first ciphertext component compression step for obtaining a component; at least one of the received plaintext, the public key component, the first ciphertext component, and the first compressed ciphertext component; Is used to generate the second ciphertext component 2 ciphertext component generating step, characterized in that it comprises a ciphertext output step of outputting the ciphertext including at least said first compressed encrypted component and the second ciphertext components.

また、本発明は、有限体上の乗法群の離散対数問題に安全性の根拠を置く暗号方式により暗号化され複数の暗号文成分を含む暗号文を復号して平文を得る復号装置で実行される復号方法であって、前記暗号文成分のうち少なくとも1つが圧縮された圧縮暗号文成分を含む暗号文を受信する暗号文受信ステップと、前記暗号文の暗号化に用いられた公開鍵に対応する1つ以上の秘密鍵成分を含む秘密鍵を受信する秘密鍵受信ステップと、受信された前記暗号文成分と前記秘密鍵成分とのうちいずれかを少なくとも用いて、前記暗号文の復号に用いる中間データを生成する中間データ生成ステップと、前記圧縮暗号文成分を演算可能な表現で表現した伸張済み圧縮暗号分成分に伸張する暗号文成分伸張ステップと、前記中間データの一部と、前記伸張済み圧縮暗号文成分と、前記暗号文成分とのいずれかを少なくとも用いて復号済みの平文を生成する復号済み平文生成ステップと、復号済みの前記平文を出力する復号済み平文出力ステップとを含むことを特徴とする。   Further, the present invention is executed by a decryption device that decrypts a ciphertext including a plurality of ciphertext components that is encrypted by an encryption method based on the safety of the discrete logarithm problem of the multiplicative group over a finite field, and obtains a plaintext. A ciphertext receiving step for receiving a ciphertext including a compressed ciphertext component in which at least one of the ciphertext components is compressed, and a public key used for encrypting the ciphertext A secret key receiving step for receiving a secret key including one or more secret key components, and at least one of the received ciphertext component and the secret key component is used for decrypting the ciphertext An intermediate data generation step for generating intermediate data; a ciphertext component decompression step for decompressing the compressed ciphertext component into a decompressed compressed ciphertext component expressed in an expressible expression; a part of the intermediate data; A decrypted plaintext generation step for generating a decrypted plaintext using at least one of the stretched compressed ciphertext component and the ciphertext component; and a decrypted plaintext output step for outputting the decrypted plaintext It is characterized by that.

また、本発明は、プログラムであって、上記の方法をコンピュータに実行させることを特徴とする。   In addition, the present invention is a program that causes a computer to execute the above method.

本発明によれば、乗法群の部分群上の離散対数問題に安全性の根拠を置く暗号方式において、処理時間の増大を抑制しつつ、データのサイズを低減可能になる。   According to the present invention, it is possible to reduce the size of data while suppressing an increase in processing time in an encryption method that bases security on the discrete logarithm problem on a subgroup of a multiplicative group.

以下に添付図面を参照して、この発明にかかる暗号化装置、復号装置、暗号文検証装置、暗号化方法、復号方法及びプログラムの最良な実施の形態を詳細に説明する。   Exemplary embodiments of an encryption device, a decryption device, a ciphertext verification device, an encryption method, a decryption method, and a program according to the present invention will be described below in detail with reference to the accompanying drawings.

[第1の実施の形態]
(1)構成
<一般的暗号方式の構成>
有限体上の乗法群の離散対数問題に安全性の根拠を置く暗号方式で複数の暗号文成分を含む暗号文の正当性を検証する基本的な構成について図1を用いて説明する。まず、公開鍵に含まれる公開鍵成分pk及び当該公開鍵成分に対応する秘密鍵に含まれる秘密鍵成分skが図示しない鍵生成装置で生成される。公開鍵成分pkが暗号化装置で受信され、当該公開鍵成分pkに対応する秘密鍵成分skが暗号文検証装置で受信される。暗号化装置は公開鍵成分pkを用いて平文mに対応する暗号文(c1、c2)を計算してこれを出力する。一方、暗号文検証装置20は暗号文(c1,c2)を受信すると、これと秘密鍵成分skを用いて暗号文(c1,c2)が正当なものであるか否かを検証する。なお、公開鍵成分pkおよび平文mが圧縮された表現、即ち、アフィン表現(pk*,m*)となっている場合、暗号化装置10への入力以前に拡大体表現や射影表現に伸張(変換)するものとする。
[First embodiment]
(1) Configuration <General Cryptographic Configuration>
A basic configuration for verifying the validity of a ciphertext including a plurality of ciphertext components using a cryptosystem based on the discrete logarithm problem of the multiplicative group over a finite field will be described with reference to FIG. First, the public key component pk included in the public key and the secret key component sk included in the secret key corresponding to the public key component are generated by a key generation device (not shown). The public key component pk is received by the encryption device, and the secret key component sk corresponding to the public key component pk is received by the ciphertext verification device. The encryption device calculates the ciphertext (c1, c2) corresponding to the plaintext m using the public key component pk and outputs it. On the other hand, when the ciphertext verification apparatus 20 receives the ciphertext (c1, c2), it verifies whether the ciphertext (c1, c2) is valid using this and the secret key component sk. Note that if the public key component pk and the plaintext m are compressed expressions, that is, affine expressions (pk *, m *), they are expanded into an expanded field expression and a projected expression before input to the encryption device 10 ( Conversion).

次に、本実施の形態にかかる暗号化装置及び暗号文検証装置の構成について説明する。暗号化装置及び暗号文検証装置は各々、装置全体を制御するCPU(Central Processing Unit)等の制御装置と、各種データや各種プログラムを記憶するROM(Read Only Memory)やRAM(Random Access Memory)等の記憶装置と、各種データや各種プログラムを記憶するHDD(Hard Disk Drive)やCD(Compact Disk)ドライブ装置等の外部記憶装置と、外部装置の通信を制御する通信I/F(interface)と、これらを接続するバスとを備えており、通常のコンピュータを利用したハードウェア構成となっている。   Next, configurations of the encryption device and the ciphertext verification device according to the present embodiment will be described. Each of the encryption device and the ciphertext verification device includes a control device such as a CPU (Central Processing Unit) that controls the entire device, a ROM (Read Only Memory) that stores various data and various programs, a RAM (Random Access Memory), and the like A storage device, an external storage device such as an HDD (Hard Disk Drive) or a CD (Compact Disk) drive device for storing various data and various programs, and a communication I / F (interface) for controlling communication of the external device, And a bus that connects them, and has a hardware configuration using a normal computer.

<暗号化装置の構成>
次に、本実施の形態にかかる暗号化装置の備えるCPUが記憶装置や外部記憶装置に記憶された各種プログラムを実行することにより実現される本実施の形態に特有の各種機能について説明する。図2は、本実施の形態にかかる暗号化装置の機能的構成を例示する図である。暗号化装置10は、平文受信部11と、公開鍵受信部12と、第1暗号文生成部13と、暗号文成分圧縮部14と、第2暗号文生成部15と、暗号文出力部16とを有する。これらの各部の実体は、暗号化装置10のCPUのプログラム実行時にRAMなどの記憶装置上に生成されるものである。
<Configuration of encryption device>
Next, various functions peculiar to the present embodiment that are realized when the CPU of the encryption apparatus according to the present embodiment executes various programs stored in the storage device or the external storage device will be described. FIG. 2 is a diagram illustrating a functional configuration of the encryption device according to this embodiment. The encryption device 10 includes a plaintext receiving unit 11, a public key receiving unit 12, a first ciphertext generation unit 13, a ciphertext component compression unit 14, a second ciphertext generation unit 15, and a ciphertext output unit 16. And have. The entities of these units are generated on a storage device such as a RAM when the CPU of the encryption device 10 executes a program.

平文受信部11は、平文mを受信する。公開鍵受信部12は、公開鍵成分pkを受信する。第1暗号文生成部13は、平文受信部11が受信した平文mと公開鍵受信部12が受信した公開鍵成分pkとを用いて、暗号文成分c1を生成する。暗号文成分圧縮部14は、第1暗号文生成部13が生成した暗号文成分c1をアフィン表現に変換して圧縮暗号文成分c1*を生成する。即ち、本実施の形態において暗号化装置10は、複数の暗号文成分のうち、暗号文成分c1を圧縮する。同時に第2暗号文生成部15は、第1暗号文生成部13が生成した暗号文成分c1と公開鍵受信部12が受信した公開鍵成分pkとを用いて暗号文成分c2を生成する。暗号文出力部16は、暗号文成分圧縮部14が生成した圧縮暗号文成分c1*と第2暗号文生成部15が生成した暗号文成分c2とを出力する。   The plaintext receiving unit 11 receives plaintext m. The public key receiving unit 12 receives the public key component pk. The first ciphertext generating unit 13 generates a ciphertext component c1 using the plaintext m received by the plaintext receiving unit 11 and the public key component pk received by the public key receiving unit 12. The ciphertext component compression unit 14 converts the ciphertext component c1 generated by the first ciphertext generation unit 13 into an affine expression, and generates a compressed ciphertext component c1 *. That is, in the present embodiment, the encryption device 10 compresses the ciphertext component c1 among the plurality of ciphertext components. At the same time, the second ciphertext generation unit 15 generates a ciphertext component c2 using the ciphertext component c1 generated by the first ciphertext generation unit 13 and the public key component pk received by the public key reception unit 12. The ciphertext output unit 16 outputs the compressed ciphertext component c1 * generated by the ciphertext component compression unit 14 and the ciphertext component c2 generated by the second ciphertext generation unit 15.

<暗号文検証装置の構成>
次に、本実施の形態にかかる暗号文検証装置の備えるCPUが記憶装置や外部記憶装置に記憶された各種プログラムを実行することにより実現される各種機能について具体的に説明する。図3は、本実施の形態にかかる暗号文検証装置の機能的構成を例示する図である。暗号文検証装置20は、暗号文受信部21と、秘密鍵受信部22と、中間データ生成部23と、暗号文成分伸張部24と、正当性検証部25と、検証結果出力部26とを有する。これらの各部は、暗号文検証装置20のCPUのプログラム実行時にRAMなどの記憶装置上に生成されるものである。
<Configuration of ciphertext verification device>
Next, various functions realized when the CPU included in the ciphertext verification apparatus according to the present embodiment executes various programs stored in the storage device or the external storage device will be specifically described. FIG. 3 is a diagram illustrating a functional configuration of the ciphertext verification apparatus according to the present embodiment. The ciphertext verification apparatus 20 includes a ciphertext reception unit 21, a secret key reception unit 22, an intermediate data generation unit 23, a ciphertext component decompression unit 24, a validity verification unit 25, and a verification result output unit 26. Have. Each of these units is generated on a storage device such as a RAM when the program of the CPU of the ciphertext verification apparatus 20 is executed.

暗号文受信部21は、暗号文(c1*,c2)を受信する。秘密鍵受信部22は、秘密鍵成分skを受信する。中間データ生成部23は、暗号文受信部21が受信した暗号文成分c2と秘密鍵受信部22が受信した秘密鍵成分skとを用いて、暗号文の復号に用いる中間データkを生成する。中間データ生成部23が中間データkを生成すると同時に、暗号文成分伸張部24は、暗号文受信部21が受信した圧縮暗号文成分c1*を拡大体表現である暗号文成分c1へと伸張(変換)する。正当性検証部25は、中間データ生成部23が生成した中間データkと暗号文成分伸張部24が伸張した暗号文成分c1とを用いて暗号文の正当性を検証する。検証結果出力部26は正当性検証部25の検証結果を出力する。   The ciphertext receiving unit 21 receives the ciphertext (c1 *, c2). The secret key receiving unit 22 receives the secret key component sk. The intermediate data generation unit 23 uses the ciphertext component c2 received by the ciphertext reception unit 21 and the secret key component sk received by the secret key reception unit 22 to generate intermediate data k used for decryption of the ciphertext. At the same time as the intermediate data generation unit 23 generates the intermediate data k, the ciphertext component decompression unit 24 decompresses the compressed ciphertext component c1 * received by the ciphertext reception unit 21 into a ciphertext component c1 that is an expanded field representation ( Convert. The validity verification unit 25 verifies the validity of the ciphertext using the intermediate data k generated by the intermediate data generation unit 23 and the ciphertext component c1 expanded by the ciphertext component expansion unit 24. The verification result output unit 26 outputs the verification result of the validity verification unit 25.

(2)動作
<暗号化処理>
次に、本実施の形態にかかる暗号化装置10の行う暗号化処理の手順について図4を用いて説明する。暗号化装置10は、公開鍵である公開鍵成分pkと平文mとを受信し、公開鍵成分pkと平文mとを用いて計算を行って、暗号文成分c1を生成する(ステップST1)。次に暗号化装置10は、c1の表現をアフィン表現へと圧縮(変換)する(ステップST2)。続いて、ステップST1で求めた暗号文成分c1と公開鍵成分pkとを用いて計算を行って、暗号文成分c2を生成する(ステップST3)。
(2) Operation <Encryption processing>
Next, the procedure of the encryption process performed by the encryption device 10 according to the present embodiment will be described with reference to FIG. The encryption device 10 receives the public key component pk and the plaintext m, which are public keys, performs calculation using the public key component pk and the plaintext m, and generates a ciphertext component c1 (step ST1). Next, the encryption device 10 compresses (converts) the expression of c1 into an affine expression (step ST2). Subsequently, calculation is performed using the ciphertext component c1 and the public key component pk obtained in step ST1, and a ciphertext component c2 is generated (step ST3).

<暗号文検証処理>
次に、本実施の形態にかかる暗号文検証装置20の行う暗号文検証処理の手順について図5を用いて説明する。暗号文検証装置20は、暗号文(c1*,c2)と秘密鍵に含まれる秘密鍵成分skとを受信し、暗号文成分c2と秘密鍵成分skとを用いて中間データkを生成する(ステップST11)。次に、暗号文検証装置20は、アフィン表現となっている圧縮暗号文成分c1*を拡大体表現である暗号文成分c1に伸張(変換)する(ステップST12)。次に、暗号文検証装置20は、暗号文成分c1と中間データkとを比較し、暗号文の正当性を検証する(ステップST13)。
<Ciphertext verification processing>
Next, the procedure of the ciphertext verification process performed by the ciphertext verification apparatus 20 according to the present embodiment will be described with reference to FIG. The ciphertext verification apparatus 20 receives the ciphertext (c1 *, c2) and the secret key component sk included in the secret key, and generates intermediate data k using the ciphertext component c2 and the secret key component sk ( Step ST11). Next, the ciphertext verification apparatus 20 expands (converts) the compressed ciphertext component c1 * in the affine representation into the ciphertext component c1 in the expanded field representation (step ST12). Next, the ciphertext verification apparatus 20 compares the ciphertext component c1 and the intermediate data k to verify the validity of the ciphertext (step ST13).

暗号文成分の生成に依存関係があり暗号文成分c1を用いて暗号文成分c2を生成する場合には、暗号文成分c2をアフィン表現へと圧縮すると、暗号文成分c2を圧縮する処理の分だけ暗号文成分c2を圧縮しない場合と比べ、処理時間が必要となる。暗号文成分圧縮部14と第2暗号文生成部15とが並列に動作可能であれば、第1暗号文生成部13が暗号文成分c1を生成した後、第2暗号文生成部15がc2を生成している間に暗号文成分圧縮部14が暗号文成分c1をアフィン表現に圧縮し、(c1*,c2)を暗号文とすれば、圧縮にかかる処理時間を隠蔽した上で、暗号文の一部を圧縮できる。   When the ciphertext component c2 is generated using the ciphertext component c1 due to the dependency on the generation of the ciphertext component, if the ciphertext component c2 is compressed into an affine expression, the process of compressing the ciphertext component c2 Compared to the case where only the ciphertext component c2 is not compressed, processing time is required. If the ciphertext component compression unit 14 and the second ciphertext generation unit 15 can operate in parallel, the second ciphertext generation unit 15 generates c2 after the first ciphertext generation unit 13 generates the ciphertext component c1. If the ciphertext component compression unit 14 compresses the ciphertext component c1 into an affine expression and generates (c1 *, c2) as a ciphertext, the encryption processing time is concealed, A part of a sentence can be compressed.

一方、暗号文検証装置20で暗号文成分c2を用いて中間データkを生成し、暗号文成分c1と比較する場合、暗号文成分c2がアフィン表現でなければ暗号文を受信した直後に中間データkを生成する処理を行うことができる。暗号文成分c2がアフィン表現であった場合にはアフィン表現では演算が行えないので、拡大体表現か射影表現への変換が必要になり(本実施の形態では拡大体表現に変換)、その分の処理時間が余計に必要になる。しかし、本実施の形態によれば、中間データkの生成に用いる成分を伸張する必要がないため、圧縮された成分の伸張にかかる処理時間を隠蔽することができる。   On the other hand, when the ciphertext verification apparatus 20 generates the intermediate data k using the ciphertext component c2 and compares it with the ciphertext component c1, the intermediate data immediately after receiving the ciphertext if the ciphertext component c2 is not an affine expression. A process of generating k can be performed. If the ciphertext component c2 is an affine expression, the affine expression cannot perform an operation, so conversion to an expanded field expression or a projected expression is necessary (in this embodiment, conversion to an expanded field expression). This requires extra processing time. However, according to the present embodiment, since it is not necessary to expand the component used for generating the intermediate data k, it is possible to conceal the processing time required to expand the compressed component.

尚、暗号文検証装置20に上述の実施の形態にかかる構成を適用したが、暗号文を復号する復号装置に適用しても良い。この場合、復号装置は、上述した暗号文受信部21と、秘密鍵受信部22と、中間データ生成部23と、暗号文成分伸張部24とに加え、復号済み平文生成部と、復号済み平文出力部とを有するように構成すれば良い。復号済み平文生成部は、中間データ生成部23が生成した中間データと暗号文成分伸張部24が伸張した暗号文成分c1とを用いて復号済みの平文を生成する。復号済み平文出力部は、復号済み平文生成部が生成した復号済みの平文を出力する。このような復号装置や上述の暗号文検証装置によれば、処理時間の増加を抑えながら、暗号文の圧縮や伸張が行えるため、処理時間を短縮したい場合に用いて好適である。   In addition, although the structure concerning the above-mentioned embodiment was applied to the ciphertext verification apparatus 20, you may apply to the decryption apparatus which decrypts a ciphertext. In this case, in addition to the ciphertext receiving unit 21, the secret key receiving unit 22, the intermediate data generating unit 23, and the ciphertext component decompressing unit 24 described above, the decrypting device includes a decrypted plaintext generating unit and a decrypted plaintext. What is necessary is just to comprise so that it may have an output part. The decrypted plaintext generation unit generates a decrypted plaintext using the intermediate data generated by the intermediate data generation unit 23 and the ciphertext component c1 expanded by the ciphertext component expansion unit 24. The decrypted plaintext output unit outputs the decrypted plaintext generated by the decrypted plaintext generation unit. According to such a decryption device and the above-described ciphertext verification device, ciphertext can be compressed and decompressed while suppressing an increase in processing time, and thus it is suitable for use when it is desired to shorten the processing time.

ここでは暗号化にかかる処理時間及び暗号文の正当性の検証にかかる処理時間の両方を変えることなく暗号文成分を圧縮する例を示したが、暗号化にかかる処理時間、暗号文の正当性の検証にかかる処理時間及び復号にかかる処理時間のいずれか一つのみに処理時間の短縮の効果をもたらすように構成することも可能である。また本実施の形態では、演算可能な表現として拡大体表現を採ったが、射影表現で演算しても上述した効果は変わらない。   In this example, ciphertext components are compressed without changing both the processing time required for encryption and the processing time required for verifying the validity of the ciphertext. However, the processing time required for encryption and the validity of the ciphertext are shown. It is also possible to configure so that only one of the processing time required for verification and the processing time required for decoding has the effect of reducing the processing time. Further, in the present embodiment, the expanded body expression is adopted as the expression that can be calculated, but the above-described effects are not changed even if the calculation is performed using the projective expression.

[第2の実施の形態]
次に、暗号化装置、復号装置、暗号文検証装置、暗号化方法、復号方法及びプログラムの第2の実施の形態について説明する。なお、上述の第1の実施の形態と共通する部分については、同一の符号を使用して説明したり、説明を省略したりする。
[Second Embodiment]
Next, a second embodiment of the encryption device, the decryption device, the ciphertext verification device, the encryption method, the decryption method, and the program will be described. In addition, about the part which is common in the above-mentioned 1st Embodiment, it demonstrates using the same code | symbol or abbreviate | omits description.

(1)構成
<ElGamal暗号>
復号処理を高速化する具体的な例としてElGamal暗号を取り上げる。図6は、ElGamal暗号において平文mを暗号化して暗号文を生成する暗号化装置と暗号文を復号する復号装置とを例示する図である。尚、図示しない鍵生成装置は、生成元gを選択し、xをランダムに選択して、‘h=g^x’を計算し、(q,g,h)を公開鍵とし、xを秘密鍵とする。尚、qは素数で群G~の部分群Gの位数とし、g,hは暗号が定義される部分群G(位数はq)の生成元とする。平文mも部分群Gの元でなければならない。暗号化装置には、鍵生成装置で生成された公開鍵(q,g,h)と平文mとが入力される。暗号化装置は、乱数rを生成し、べき乗計算及び乗算を行って、平文mに対応する暗号文(c1, c2)を出力する。この暗号文(c1, c2)は、復号装置に入力される。また、復号装置には、公開鍵に対応する秘密鍵成分xが秘密鍵として入力される。この秘密鍵成分xは‘1’から‘q’までの整数(又は‘0’から‘q-1’までの整数)とする。復号装置は、秘密鍵成分xと暗号文(c1, c2)とを用いて、復号済みの平文mを得る。
(1) Configuration <ElGamal encryption>
An ElGamal cipher will be taken up as a specific example of speeding up the decryption process. FIG. 6 is a diagram illustrating an encryption device that encrypts plaintext m and generates a ciphertext and a decryption device that decrypts the ciphertext in the ElGamal cipher. A key generation device (not shown) selects a generation source g, randomly selects x, calculates 'h = g ^ x', uses (q, g, h) as a public key, and secrets x Use as a key. Note that q is a prime number and the order of the subgroup G of the group G˜, and g and h are generation sources of the subgroup G (order is q) in which encryption is defined. The plaintext m must also be an element of the subgroup G. The encryption device receives the public key (q, g, h) generated by the key generation device and the plaintext m. The encryption device generates a random number r, performs exponentiation and multiplication, and outputs ciphertext (c1, c2) corresponding to the plaintext m. The ciphertext (c1, c2) is input to the decryption device. Further, the secret key component x corresponding to the public key is input to the decryption device as the secret key. The secret key component x is an integer from '1' to 'q' (or an integer from '0' to 'q-1'). The decryption device obtains the decrypted plaintext m using the secret key component x and the ciphertext (c1, c2).

次に、本実施の形態にかかる暗号化装置及び復号装置の構成について説明する。暗号化装置及び復号装置は各々、装置全体を制御するCPU(Central Processing Unit)等の制御装置と、各種データや各種プログラムを記憶するROM(Read Only Memory)やRAM(Random Access Memory)等の記憶装置と、各種データや各種プログラムを記憶するHDD(Hard Disk Drive)やCD(Compact Disk)ドライブ装置等の外部記憶装置と、外部装置の通信を制御する通信I/F(interface)と、これらを接続するバスとを備えており、通常のコンピュータを利用したハードウェア構成となっている。   Next, the configuration of the encryption device and the decryption device according to the present embodiment will be described. Each of the encryption device and the decryption device is a control device such as a CPU (Central Processing Unit) that controls the entire device, and a storage such as a ROM (Read Only Memory) or a RAM (Random Access Memory) that stores various data and various programs. Devices, external storage devices such as HDD (Hard Disk Drive) and CD (Compact Disk) drive devices that store various data and various programs, communication I / F (interface) that controls communication between external devices, and these And a hardware configuration using a normal computer.

<暗号化装置の構成>
次に、本実施の形態にかかる暗号化装置の備えるCPUが記憶装置や外部記憶装置に記憶された各種プログラムを実行することにより実現される本実施に特有の各種機能について説明する。図7は、本実施の形態にかかる暗号化装置の機能的構成を例示する図である。暗号化装置10´は、第1の実施の形態と同様に、平文受信部11と、公開鍵受信部12と、第1暗号文生成部13と、暗号文成分圧縮部14と、第2暗号文生成部15と、暗号文出力部16とを有する。これらの各部の実体は、暗号化装置10´のCPUのプログラム実行時にRAMなどの記憶装置上に生成されるものである。
<Configuration of encryption device>
Next, various functions unique to the present embodiment that are realized when the CPU of the encryption apparatus according to the present embodiment executes various programs stored in the storage device or the external storage device will be described. FIG. 7 is a diagram illustrating a functional configuration of the encryption device according to this embodiment. As in the first embodiment, the encryption device 10 ′ includes a plaintext receiving unit 11, a public key receiving unit 12, a first ciphertext generation unit 13, a ciphertext component compression unit 14, and a second ciphertext. A text generation unit 15 and a ciphertext output unit 16 are included. The entities of these units are generated on a storage device such as a RAM when the CPU of the encryption device 10 ′ executes a program.

平文受信部11は、平文mを受信する。公開鍵受信部12は、公開鍵(q,g,h)を受信する。第1暗号文生成部13は、‘0≦r<q’なる乱数rを生成し、平文受信部11が受信した平文mと公開鍵受信部12が受信した公開鍵に含まれる公開鍵成分hとを用いて、‘c2=m・h^r’を計算して、暗号文成分c2を生成する。暗号文成分圧縮部14は、第1暗号文生成部13が生成した暗号文成分c2をアフィン表現に変換して圧縮暗号文成分c2*を生成する。即ち、本実施の形態において暗号化装置10は、複数の暗号化成分のうち、暗号文成分c2を圧縮する。同時に第2暗号文生成部15は、第1暗号文生成部13が生成した乱数rと公開鍵受信部12が受信した公開鍵成分gとを用いて‘c1=g^r’を計算し、暗号文成分c1を生成する。暗号文出力部16は、暗号文成分圧縮部14が生成した圧縮暗号文成分c2*と第2暗号文生成部15が生成した暗号文成分c1とを出力する。   The plaintext receiving unit 11 receives plaintext m. The public key receiving unit 12 receives a public key (q, g, h). The first ciphertext generating unit 13 generates a random number r satisfying “0 ≦ r <q”, and the public key component h included in the plaintext m received by the plaintext receiving unit 11 and the public key received by the public key receiving unit 12. Then, 'c2 = m · h ^ r' is calculated to generate a ciphertext component c2. The ciphertext component compression unit 14 converts the ciphertext component c2 generated by the first ciphertext generation unit 13 into an affine representation, and generates a compressed ciphertext component c2 *. That is, in this embodiment, the encryption device 10 compresses the ciphertext component c2 among the plurality of encryption components. At the same time, the second ciphertext generation unit 15 calculates 'c1 = g ^ r' using the random number r generated by the first ciphertext generation unit 13 and the public key component g received by the public key reception unit 12, A ciphertext component c1 is generated. The ciphertext output unit 16 outputs the compressed ciphertext component c2 * generated by the ciphertext component compression unit 14 and the ciphertext component c1 generated by the second ciphertext generation unit 15.

<復号装置の構成>
次に、本実施の形態にかかる復号装置の備えるCPUが記憶装置や外部記憶装置に記憶された各種プログラムを実行することにより実現される各種機能について具体的に説明する。図8は、本実施の形態にかかる復号装置の機能的構成を例示する図である。復号装置30は、暗号文受信部31と、秘密鍵受信部32と、中間データ生成部33と、暗号文成分伸張部34と、復号済み平文生成部35と、復号済み平文出力部36とを有する。これらの各部は、復号装置30のCPUのプログラム実行時にRAMなどの記憶装置上に生成されるものである。
<Configuration of decoding device>
Next, specific description will be given of various functions realized by the CPU included in the decoding device according to the present embodiment executing various programs stored in the storage device or the external storage device. FIG. 8 is a diagram illustrating a functional configuration of the decoding device according to the present embodiment. The decryption device 30 includes a ciphertext receiving unit 31, a secret key receiving unit 32, an intermediate data generating unit 33, a ciphertext component decompressing unit 34, a decrypted plaintext generating unit 35, and a decrypted plaintext output unit 36. Have. Each of these units is generated on a storage device such as a RAM when the CPU of the decoding device 30 executes the program.

暗号文受信部31は、暗号文(c1,c2*)を受信する。秘密鍵受信部32は、秘密鍵成分xを受信する。中間データ生成部33は、暗号文受信部31が受信した暗号文成分c1と秘密鍵受信部32が受信した秘密鍵成分xとを用いて‘k=(c1^x)^(−1)’を計算して、中間データkを生成する。中間データ生成部33が中間データkを生成すると同時に、暗号文成分伸張部24は、暗号文受信部31が受信した圧縮暗号文成分c2*を拡大体表現である暗号文成分c2へと伸張(変換)する。復号済み平文生成部35は、中間データ生成部33が生成した中間データkと暗号文成分伸張部34が伸張した暗号文成分c2とを用いて、‘m=c2・k’を計算して、復号済みの平文を生成する。復号済み平文出力部36は、復号済み平文生成部35が生成した復号済みの平文を出力する。   The ciphertext receiving unit 31 receives the ciphertext (c1, c2 *). The secret key receiving unit 32 receives the secret key component x. The intermediate data generating unit 33 uses the ciphertext component c1 received by the ciphertext receiving unit 31 and the secret key component x received by the secret key receiving unit 32 to generate 'k = (c1 ^ x) ^ (-1)'. To generate intermediate data k. At the same time as the intermediate data generation unit 33 generates the intermediate data k, the ciphertext component decompression unit 24 decompresses the compressed ciphertext component c2 * received by the ciphertext reception unit 31 into a ciphertext component c2 that is an expanded field representation ( Convert. The decrypted plaintext generation unit 35 calculates 'm = c2 · k' using the intermediate data k generated by the intermediate data generation unit 33 and the ciphertext component c2 expanded by the ciphertext component expansion unit 34, Generate decrypted plaintext. The decrypted plaintext output unit 36 outputs the decrypted plaintext generated by the decrypted plaintext generation unit 35.

(2)動作
<暗号化処理>
次に、本実施の形態にかかる暗号化装置10´の行う暗号化処理の手順について図9を用いて説明する。暗号化装置10´は、公開鍵(q,g,h)と平文mとを受信し、乱数rを生成する(ステップST21)。次いで、暗号化装置10´は、乱数rと公開鍵成分hと平文mとを用いて暗号文成分c2を生成する(ステップST22)。次に暗号化装置10´は、暗号文成分c2の表現をアフィン表現へと変換することにより圧縮する(ステップST23)。続いて、暗号化装置10´は、乱数rと公開鍵成分gとを用いて暗号文成分c1を生成する(ステップST24)。
(2) Operation <Encryption processing>
Next, the procedure of the encryption process performed by the encryption device 10 ′ according to the present embodiment will be described with reference to FIG. The encryption device 10 ′ receives the public key (q, g, h) and the plaintext m, and generates a random number r (step ST21). Next, the encryption device 10 ′ generates a ciphertext component c2 using the random number r, the public key component h, and the plaintext m (step ST22). Next, the encryption device 10 ′ compresses the ciphertext component c2 by converting the expression of the ciphertext component c2 into an affine expression (step ST23). Subsequently, the encryption device 10 ′ generates a ciphertext component c1 using the random number r and the public key component g (step ST24).

<復号処理>
次に、本実施の形態にかかる復号装置30の行う暗号化処理の手順について図10を用いて説明する。復号装置30は、暗号文(c1,c2*)と秘密鍵に含まれる秘密鍵成分xとを受信し、暗号文成分c1と秘密鍵成分xとを用いて中間データkを生成する(ステップST31)。次に、復号装置30は、アフィン表現となっている圧縮暗号文成分c2*を拡大体表現である暗号文成分c2に伸張する(ステップST32)。次に、復号装置30は、ステップST32で伸張した暗号文成分c2とステップST31で生成した中間データkとを乗算し、復号済みの平文mを生成する(ステップST33)。
<Decryption process>
Next, the procedure of the encryption process performed by the decryption device 30 according to the present embodiment will be described with reference to FIG. Decryption apparatus 30 receives ciphertext (c1, c2 *) and secret key component x included in the secret key, and generates intermediate data k using ciphertext component c1 and secret key component x (step ST31). ). Next, the decryption apparatus 30 expands the compressed ciphertext component c2 * that is an affine representation into the ciphertext component c2 that is an expanded representation (step ST32). Next, the decryption device 30 multiplies the ciphertext component c2 expanded in step ST32 and the intermediate data k generated in step ST31 to generate a decrypted plaintext m (step ST33).

以上のような構成によれば、ステップST31で中間データkを生成している間に、ステップST32で圧縮暗号文成分c2*を暗号文成分c2に伸張できるので、圧縮暗号文成分c2*の伸張にかかる処理時間を隠蔽しつつ、圧縮暗号文成分を伸張することが可能である。   According to the above configuration, the compressed ciphertext component c2 * can be expanded to the ciphertext component c2 in step ST32 while the intermediate data k is generated in step ST31. Therefore, the compressed ciphertext component c2 * is expanded. It is possible to expand the compressed ciphertext component while concealing the processing time required for.

[第3の実施の形態]
次に、暗号化装置、復号装置、暗号文検証装置、暗号化方法、復号方法及びプログラムの第3の実施の形態について説明する。なお、上述の第1の実施の形態又は第2の実施の形態と共通する部分については、同一の符号を使用して説明したり、説明を省略したりする。
[Third embodiment]
Next, a third embodiment of an encryption device, a decryption device, a ciphertext verification device, an encryption method, a decryption method, and a program will be described. In addition, about the part which is common in the above-mentioned 1st Embodiment or 2nd Embodiment, it demonstrates using the same code | symbol or abbreviate | omits description.

(1)構成
<Cramer-Shoup暗号スキーム>
次に、もうひとつの具体的な実施例として、上述の従来技術欄で説明したCramer-Shoup暗号スキームの基本的な構成について図11を用いて説明する。まず、公開鍵及び当該公開鍵に対応する秘密鍵が鍵生成装置で生成される。公開鍵が暗号化装置に入力され、当該公開鍵に対応する秘密鍵が復号装置に入力される。公開鍵は上述の(q,g,g~,e,f,h)である。秘密鍵は上述の(x1, x2, y1, y2, z1, z2)である。暗号化装置は、公開鍵を用いて平文mに対応する暗号文(c1, c2, c3, c4)を計算する。具体的には、暗号化装置は、公開鍵成分qを用いて‘0≦r<q−1’なる乱数rを生成する。そして、暗号化装置は、乱数rと公開鍵成分gとを用いて暗号文の成分c1として‘g^r’を求める。また、暗号化装置は、乱数rと公開鍵成分g~とを用いて、暗号文成分c2として‘g~^r’を求める。また、暗号化装置は、乱数rと公開鍵成分hとを用いて係数bとして‘h^r’を求める。そして、暗号化装置は、係数bと平文mとを用いて、暗号文成分c3として‘b×m’を求める。次いで、暗号化装置は、各暗号文成分c1, c2, c3についてハッシュ関数を用いた計算により、ハッシュ値‘v=H(c1,c2,c3)’を求める。そして、暗号化装置は、乱数rと公開鍵成分e,fとハッシュ値vとを用いて、暗号文成分c4として‘e^r×f^(rv)’を求める。この結果、暗号文(c1, c2, c3, c4)が得られる。暗号化装置はこの暗号文(c1, c2, c3, c4)を出力する。
(1) Configuration <Cramer-Shoup encryption scheme>
Next, as another specific embodiment, a basic configuration of the Cramer-Shoup encryption scheme described in the above-mentioned prior art section will be described with reference to FIG. First, a public key and a secret key corresponding to the public key are generated by the key generation device. The public key is input to the encryption device, and the secret key corresponding to the public key is input to the decryption device. The public key is (q, g, g ~, e, f, h) described above. The secret key is (x1, x2, y1, y2, z1, z2) described above. The encryption device calculates the ciphertext (c1, c2, c3, c4) corresponding to the plaintext m using the public key. Specifically, the encryption device generates a random number r satisfying “0 ≦ r <q−1” using the public key component q. Then, the encryption apparatus obtains “g ^ r” as the ciphertext component c1 using the random number r and the public key component g. Further, the encryption apparatus obtains “g˜ ^ r” as the ciphertext component c2 using the random number r and the public key component g˜. Further, the encryption apparatus obtains “h ^ r” as the coefficient b using the random number r and the public key component h. Then, the encryption apparatus obtains “b × m” as the ciphertext component c3 using the coefficient b and the plaintext m. Next, the encryption apparatus obtains a hash value 'v = H (c1, c2, c3)' by calculation using a hash function for each ciphertext component c1, c2, c3. Then, the encryption apparatus uses the random number r, the public key components e and f, and the hash value v to obtain “e ^ r × f ^ (rv)” as the ciphertext component c4. As a result, ciphertexts (c1, c2, c3, c4) are obtained. The encryption device outputs this ciphertext (c1, c2, c3, c4).

一方、復号装置は、暗号文(c1, c2, c3, c4)を受信すると、これと秘密鍵(x1, x2, y1, y2, z1, z2)とから暗号文が正当であるか否かの判定を行い、当該判定結果が肯定的である場合、平文mを計算する。具体的には、復号装置は、各暗号文成分c1, c2, c3, c4が群G~の元であるか否か及び各暗号文成分c1,c2,c3が群Gの元であるか否かを判定する。当該判定結果が肯定的である場合、復号装置は、暗号文成分c1,c2と秘密鍵成分z1,z2とを用いて、係数bとして‘c1^z1×c2^z2’を求める。また、復号装置は、暗号文成分c1,c2,c3を用いてハッシュ関数による計算を行い、暗号文成分c1,c2と秘密鍵成分x1, x2, y1, y2とを用いてべき乗計算と乗算とにより検査式に用いる検証用データkとして‘c1^(x1+y1×v)×c2^(x2+y2×v)’を求める。検証用データとは、暗号文の正当性を検証するためのものである。そして、復号装置200は、検証用データkと暗号文成分c4とを用いた検査式‘c4=k’が成立するか否かを判定する。また、復号装置200は、暗号文成分c1,c2と秘密鍵成分z1,z2とを用いてべき乗計算を行い、当該計算結果の逆元を中間データとして導出した後、暗号文成分c3を用いて乗算を行うことにより、復号済みの平文mを得る。   On the other hand, when the decryption device receives the ciphertext (c1, c2, c3, c4), whether or not the ciphertext is valid from this and the secret key (x1, x2, y1, y2, z1, z2). If a determination is made and the determination result is affirmative, plaintext m is calculated. Specifically, the decryption apparatus determines whether each ciphertext component c1, c2, c3, c4 is an element of the group G˜ and whether each ciphertext component c1, c2, c3 is an element of the group G. Determine whether. If the determination result is affirmative, the decryption device uses the ciphertext components c1 and c2 and the secret key components z1 and z2 to obtain ‘c1 ^ z1 × c2′z2’ as the coefficient b. Further, the decryption apparatus performs calculation by a hash function using the ciphertext components c1, c2, and c3, and performs exponentiation and multiplication using the ciphertext components c1 and c2 and the secret key components x1, x2, y1, and y2. Thus, 'c1 ^ (x1 + y1 * v) * c2 ^ (x2 + y2 * v)' is obtained as the verification data k used in the check equation. The verification data is for verifying the validity of the ciphertext. Then, the decryption apparatus 200 determines whether or not the check expression “c4 = k” using the verification data k and the ciphertext component c4 is established. Also, the decryption device 200 performs power calculation using the ciphertext components c1 and c2 and the secret key components z1 and z2, derives the inverse element of the calculation result as intermediate data, and then uses the ciphertext component c3. By performing multiplication, a decrypted plaintext m is obtained.

尚、暗号文成分c3は、復号時に平文の生成に用いる平文生成用暗号文成分であり、暗号文成分c1〜c2は、復号時に平文の生成と暗号文の正当性の検証とに用いる総合暗号文成分であり、暗号文成分c4は、復号時に暗号文の正当性の検証に用いる検証用暗号文成分である。   The ciphertext component c3 is a plaintext generating ciphertext component used for generating plaintext during decryption, and the ciphertext components c1 and c2 are comprehensive ciphers used for generating plaintext and verifying the validity of the ciphertext during decryption. The ciphertext component c4 is a verification ciphertext component used for verifying the validity of the ciphertext at the time of decryption.

<公開鍵及び秘密鍵生成>
次に、鍵生成装置が公開鍵及び秘密鍵を生成する鍵生成処理の概要について図12を用いて説明する。鍵生成装置は、公開鍵成分gを群G~の元となるよう拡大体表現あるいは射影表現から選択し、0以外の乱数wを生成する(GS1)。次いで、鍵生成装置は、各秘密鍵成分x1,x2,y1,y2,z1,z2として各々乱数を生成する(GS2)。そして、鍵生成装置は、公開鍵成分g~として‘g^w’を求め、公開鍵成分eとして‘g^x1×g~^x2’を求め、公開鍵成分fとして‘g^y1×g~^y2’を求め、公開鍵成分hとして‘g^z1×g~^z2’を求める(GS3)。そして、鍵生成装置は、秘密鍵(x1,x2,y1,y2,z1,z2)と公開鍵(q,g,g~,e,f,h)とを出力する。
<Public key and secret key generation>
Next, an overview of key generation processing in which the key generation device generates a public key and a secret key will be described with reference to FIG. The key generation device selects the public key component g from the expanded field expression or the projection expression so as to be the basis of the group G˜, and generates a random number w other than 0 (GS1). Next, the key generation device generates a random number as each secret key component x1, x2, y1, y2, z1, z2 (GS2). Then, the key generation device obtains “g ^ w” as the public key component g˜, obtains “g ^ x1 × g˜ ^ 2” as the public key component e, and obtains “g ^ y1 × g” as the public key component f. ~ ^ y2 'is obtained, and' g ^ z1 × g ~ ^ z2 'is obtained as the public key component h (GS3). Then, the key generation device outputs the secret key (x1, x2, y1, y2, z1, z2) and the public key (q, g, g˜, e, f, h).

尚、この例では公開鍵成分g,g~,e,f,hの表現をアフィン表現に変換していないが、アフィン表現に変換する、即ち、圧縮することにより、鍵長を短くすることもできる。この場合は、暗号化処理や復号処理の前に公開鍵成分の表現を拡大体表現や射影表現に変換する、即ち、伸張する必要がある。平文についてもアフィン表現を用いることが可能である。   In this example, the expressions of the public key components g, g˜, e, f, h are not converted into affine expressions, but the key length may be shortened by converting into affine expressions, that is, by compressing. it can. In this case, it is necessary to convert the expression of the public key component into an expanded field expression or a projected expression before the encryption process or the decryption process. An affine expression can also be used for plain text.

以上のようなCramer-Shoup暗号において、本実施の形態においては、暗号化装置は、暗号文(c1, c2, c3, c4)の各成分のうち一部の成分を圧縮し、圧縮した成分の全部又は一部を、ハッシュ値を求める際に用いる。一方、復号装置は、暗号文(c1, c2, c3, c4)の各成分のうち圧縮された成分を伸張すると共に、圧縮されていない成分と秘密鍵成分とを用いてべき乗算や乗算などの各種演算を行うことにより、復号済みの平文を得る。   In the Cramer-Shoop cipher as described above, in the present embodiment, the encryption device compresses some of the components of the ciphertext (c1, c2, c3, c4) and All or part of it is used when obtaining a hash value. On the other hand, the decryption device expands the compressed component of each component of the ciphertext (c1, c2, c3, c4) and performs multiplication or multiplication using the uncompressed component and the secret key component. A decrypted plaintext is obtained by performing various operations.

尚、本実施の形態にかかる暗号化装置及び復号装置は各々、装置全体を制御するCPU(Central Processing Unit)等の制御装置と、各種データや各種プログラムを記憶するROM(Read Only Memory)やRAM(Random Access Memory)等の記憶装置と、各種データや各種プログラムを記憶するHDD(Hard Disk Drive)やCD(Compact Disk)ドライブ装置等の外部記憶装置と、外部装置の通信を制御する通信I/F(interface)と、これらを接続するバスとを備えており、通常のコンピュータを利用したハードウェア構成となっている。   Each of the encryption device and the decryption device according to the present embodiment includes a control device such as a CPU (Central Processing Unit) that controls the entire device, a ROM (Read Only Memory) and a RAM that store various data and various programs. (Random Access Memory) and other storage devices such as HDD (Hard Disk Drive) and CD (Compact Disk) drive devices that store various data and various programs, and communication I / that controls communication between the external devices An F (interface) and a bus for connecting them are provided, and a hardware configuration using a normal computer is employed.

<暗号化装置の構成>
次に、本実施の形態にかかる暗号化装置の備えるCPUが記憶装置や外部記憶装置に記憶された各種プログラムを実行することにより実現される本実施に特有の各種機能について説明する。図13は、本実施の形態にかかる暗号化装置の機能的構成を例示する図である。暗号化装置100は、乱数生成部101と、第1べき乗計算部102と、乗算部103と、暗号文成分圧縮部104と、ハッシュ値計算部105と、第2べき乗計算部106と、第2暗号文成分圧縮部107と、出力部(図示せず)とを有する。これらの各部の実体は、暗号化装置100のCPUのプログラム実行時にRAMなどの記憶装置上に生成されるものである。
<Configuration of encryption device>
Next, various functions unique to the present embodiment that are realized when the CPU of the encryption apparatus according to the present embodiment executes various programs stored in the storage device or the external storage device will be described. FIG. 13 is a diagram illustrating a functional configuration of the encryption device according to the present embodiment. The encryption apparatus 100 includes a random number generation unit 101, a first power calculation unit 102, a multiplication unit 103, a ciphertext component compression unit 104, a hash value calculation unit 105, a second power calculation unit 106, and a second power calculation unit 106. The ciphertext component compression unit 107 and an output unit (not shown) are included. The entities of these units are generated on a storage device such as a RAM when the CPU of the encryption device 100 executes a program.

乱数生成部101は、乱数uを生成する。第1べき乗計算部102は、乱数生成部101が生成した乱数uと、公開鍵成分g,g~,hとを用いて、暗号文成分c1として‘g^u’を求め、暗号文成分c2として‘g~^u’を求め、係数bとして‘h^u’を求める。乗算部103は、第1べき乗計算部102が求めたbと、平文mとを用いて、暗号文成分c3として‘m×b’を求める。暗号文成分圧縮部104は、乗算部103が求めた暗号文成分c3でありトーラス上の元となっている暗号文成分c3を圧縮することによりアフィン表現である圧縮暗号文成分c3*に変換する。即ち暗号文成分c3に対してトーラス圧縮が行われることになる。ハッシュ値計算部105は、第1べき乗計算部102が求めた暗号文成分c1,c2と、暗号文成分圧縮部104が変換したc3*とを用いてハッシュ関数による計算を行ってハッシュ値vを求める。尚、従来の暗号化装置はここでハッシュ計算を行う場合、暗号文成分c1,c2と共にc3を用いていた。しかし、本実施の形態の暗号化装置100は、c3がアフィン表現に変換された圧縮暗号文成分c3*をハッシュ計算に用いる。   The random number generation unit 101 generates a random number u. The first power calculation unit 102 uses the random number u generated by the random number generation unit 101 and the public key components g, g˜, h to obtain “g ^ u” as the ciphertext component c1, and the ciphertext component c2 'G ~ ^ u' is obtained, and 'h ^ u' is obtained as the coefficient b. The multiplication unit 103 obtains ‘m × b’ as the ciphertext component c <b> 3 using b obtained by the first power calculation unit 102 and the plaintext m. The ciphertext component compression unit 104 compresses the ciphertext component c3 obtained by the multiplication unit 103 and is the original ciphertext component c3 on the torus, thereby converting it into a compressed ciphertext component c3 * that is an affine expression. . That is, torus compression is performed on the ciphertext component c3. The hash value calculation unit 105 performs a calculation by a hash function using the ciphertext components c1 and c2 obtained by the first power calculation unit 102 and c3 * converted by the ciphertext component compression unit 104 to obtain the hash value v. Ask. Note that the conventional encryption apparatus uses c3 together with the ciphertext components c1 and c2 when performing hash calculation here. However, the encryption apparatus 100 according to the present embodiment uses the compressed ciphertext component c3 * obtained by converting c3 into an affine expression for hash calculation.

第2べき乗計算部106は、公開鍵成分e,fと、乱数生成部101が生成した乱数uと、ハッシュ値計算部105が求めたハッシュ値vとを用いて、暗号文の成分c4として‘e^u×f^(uv)’を求める。第2暗号文成分圧縮部107は、第2べき乗計算部106が求めた暗号文成分c4でありトーラス上の元となっている暗号文成分c4をアフィン表現である圧縮暗号文成分c4*に変換する。出力部は、暗号文(c1,c2,c3*,c4*)を出力する。ここで、乱数生成部101、第1べき乗計算部102及び乗算部103は第1暗号文生成部として機能し、ハッシュ値計算部105及び第2べき乗計算部106は第2暗号文生成部として機能している。   The second power calculation unit 106 uses the public key components e and f, the random number u generated by the random number generation unit 101, and the hash value v obtained by the hash value calculation unit 105 as the ciphertext component c4. e ^ u * f ^ (uv) 'is obtained. The second ciphertext component compression unit 107 converts the ciphertext component c4 obtained by the second power calculation unit 106 and the original ciphertext component c4 on the torus into a compressed ciphertext component c4 * that is an affine expression. To do. The output unit outputs the ciphertext (c1, c2, c3 *, c4 *). Here, the random number generation unit 101, the first power calculation unit 102, and the multiplication unit 103 function as a first ciphertext generation unit, and the hash value calculation unit 105 and the second power calculation unit 106 function as a second ciphertext generation unit. is doing.

以上のように、Cramer-Shoup暗号においてトーラス圧縮を行う場合、本実施の形態における暗号化装置100は、暗号文の4つの成分のうち、復号時に最初に演算を行う必要のない2つの暗号文成分c3,c4のみを圧縮すると、復号時の伸張にかかる処理時間を隠蔽できる。   As described above, when torus compression is performed in the Cramer-Shoup cipher, the encryption apparatus 100 according to the present embodiment uses two ciphertexts that do not need to be first calculated at the time of decryption among the four components of the ciphertext. If only the components c3 and c4 are compressed, the processing time required for decompression at the time of decoding can be concealed.

<復号装置の構成>
次に、本実施の形態にかかる復号装置の備えるCPUが記憶装置や外部記憶装置に記憶された各種プログラムを実行することにより実現される各種機能について具体的に説明する。図14は、本実施の形態にかかる復号装置の機能的構成を例示する図である。復号装置200は、受信部(図示せず)と、ハッシュ計算部201と、暗号文成分伸張部202と、第1べき乗計算部203と、第2べき乗計算部204と、逆元計算部205と、第1乗算部206と、第2乗算部207と、第3乗算部208と、トーラス元検証部209と、正当性検証部210と、復号済み平文出力部211とを有する。これらの各部は、復号装置200のCPUのプログラム実行時にRAMなどの記憶装置上に生成されるものである。
<Configuration of decoding device>
Next, specific description will be given of various functions realized by the CPU included in the decoding device according to the present embodiment executing various programs stored in the storage device or the external storage device. FIG. 14 is a diagram illustrating a functional configuration of the decoding apparatus according to the present embodiment. The decryption apparatus 200 includes a receiving unit (not shown), a hash calculation unit 201, a ciphertext component decompression unit 202, a first power calculation unit 203, a second power calculation unit 204, and an inverse element calculation unit 205. The first multiplication unit 206, the second multiplication unit 207, the third multiplication unit 208, the torus element verification unit 209, the validity verification unit 210, and the decrypted plaintext output unit 211. Each of these units is generated on a storage device such as a RAM when the CPU of the decoding device 200 executes a program.

復号装置200は、公開鍵(q,g,g~,e,f,h)に対応する秘密鍵(x1, x2, y1, y2, z1, z2)を受信する。受信部は、暗号文(c1,c2,c3*,c4*)を暗号化装置100から受信する。ハッシュ計算部201は、暗号文成分c1,c2と、圧縮暗号文成分c3*とを用いてハッシュ関数による計算を行って、ハッシュ値vを求める。尚、従来の復号装置はここでハッシュ計算を行う場合、暗号文成分c1,c2と共に暗号文成分c3を用いていた。しかし、本実施の形態の復号装置200は、暗号文成分c3がアフィン表現に変換された圧縮暗号文成分c3*をハッシュ計算に用いる。   The decryption device 200 receives the secret key (x1, x2, y1, y2, z1, z2) corresponding to the public key (q, g, g˜, e, f, h). The receiving unit receives the ciphertext (c1, c2, c3 *, c4 *) from the encryption device 100. The hash calculation unit 201 performs a calculation by a hash function using the ciphertext components c1 and c2 and the compressed ciphertext component c3 * to obtain a hash value v. The conventional decryption apparatus uses the ciphertext component c3 together with the ciphertext components c1 and c2 when performing the hash calculation here. However, the decryption apparatus 200 according to the present embodiment uses the compressed ciphertext component c3 * obtained by converting the ciphertext component c3 into the affine representation for the hash calculation.

第2べき乗計算部204は、ハッシュ計算部201が求めたハッシュ値vと、秘密鍵成分x1, x2, y1, y2とを用いて、係数k1として‘c1^(x1+y1×v)’を求め、係数k2として‘c2^(x2+y2×v)’を求める。第2乗算部207は、第2べき乗計算部204が求めた係数k1及びk2を用いて、検査式に用いる検証用データkとして‘k1×k2’を求める。暗号文成分伸張部202は、アフィン表現である圧縮暗号文成分c3*及びc4*を各々伸張することにより、拡大体表現である暗号文成分c3及びc4に各々変換する。第1べき乗計算部203は、暗号文成分c1,c2と、秘密鍵成分z1,z2とを用いて、係数b1として‘c1^z1’を求め、係数b2として‘c2^z2’を求める。第1乗算部206は、第1べき乗計算部203が求めた係数b1及びb2を用いて、係数bとして‘b1×b2’を求める。逆元計算部205は、第1乗算部206が求めた係数bの逆元‘b^(−1)’を中間データとして求める。第3乗算部208は、逆元計算部205が求めた中間データ‘b^(−1)’と、暗号文成分伸張部202が変換した暗号文成分c3とを用いて、復号済みの平文mとして‘c3×b^(−1)’を求める。   The second power calculation unit 204 uses the hash value v obtained by the hash calculation unit 201 and the secret key components x1, x2, y1, y2 to obtain “c1 ^ (x1 + y1 × v)” as the coefficient k1, 'C2 ^ (x2 + y2 × v)' is obtained as the coefficient k2. The second multiplication unit 207 uses the coefficients k1 and k2 obtained by the second power calculation unit 204 to obtain “k1 × k2” as the verification data k used in the check equation. The ciphertext component decompression unit 202 decompresses the compressed ciphertext components c3 * and c4 * that are affine expressions, respectively, thereby converting them into ciphertext components c3 and c4 that are expanded representations. The first power calculator 203 uses the ciphertext components c1 and c2 and the secret key components z1 and z2 to obtain ‘c1 ^ z1’ as the coefficient b1 and ‘c2 ^ z2’ as the coefficient b2. The first multiplication unit 206 obtains ‘b1 × b2’ as the coefficient b using the coefficients b1 and b2 obtained by the first power calculation unit 203. The inverse element calculation unit 205 obtains the inverse element ‘b ^ (− 1)’ of the coefficient b obtained by the first multiplication unit 206 as intermediate data. The third multiplication unit 208 uses the intermediate data 'b ^ (-1)' obtained by the inverse element calculation unit 205 and the ciphertext component c3 converted by the ciphertext component decompression unit 202 to decrypt the plaintext m 'C3 × b ^ (-1)' is obtained.

トーラス元検証部209は、暗号文(c1,c2,c3*,c4*)の各成分が正しい群の元となっているか否かを検査して、暗号文の正当性を検証する。具体的には、トーラス元検証部209は、各成分c1,c2,c3*,c4*が群G~の元であるか否か及び各成分c1,c2が群Gの元であるか否かを判定する。群Gの元であるか否かの判定は例えばc1,c2をそれぞれGの位数乗(q乗)が‘1’(単位元)となっているかを確認することで確かめられる。尚、従来では、各成分c1,c2,c3が群Gの元であるか否かを判定するが、ここでは、暗号文成分c3が変換された圧縮暗号文成分c3*については、圧縮により群Gの元となっていることが明らかなため、c3*に関する判定を行わない。そして、トーラス元検証部209は、当該判定結果が肯定的である場合、暗号文は正当であるという検証結果を出力し、当該判定結果が否定的である場合、暗号文は正当ではないという検証結果を出力する。   The torus element verification unit 209 verifies the validity of the ciphertext by checking whether each component of the ciphertext (c1, c2, c3 *, c4 *) is a correct group element. Specifically, the torus element verification unit 209 determines whether each component c1, c2, c3 *, c4 * is an element of the group G˜ and whether each component c1, c2 is an element of the group G. Determine. The determination of whether or not it is an element of the group G can be confirmed, for example, by confirming whether c1 and c2 are each ‘1’ (unit element). Conventionally, it is determined whether or not each component c1, c2, c3 is an element of the group G, but here, the compressed ciphertext component c3 * obtained by converting the ciphertext component c3 is subjected to compression to the group. Since it is clear that it is the origin of G, the determination regarding c3 * is not performed. The torus source verification unit 209 outputs a verification result that the ciphertext is valid if the determination result is affirmative, and verifies that the ciphertext is not correct if the determination result is negative. Output the result.

正当性検証部210は、第2乗算部207が求めた検証用データkと、暗号文成分伸張部202が変換した圧縮暗号文成分c4とを比較する。ここでは、正当性検証部210は、この比較によりこれらが等価であるか否かを判定する。即ち、正当性検証部210は、検査式‘k=c4’が成立するか否かを判定することにより、暗号文が正当であるか否かを検証する。そして、正当性検証部210は、当該検証結果を出力する。復号済み平文出力部211は、トーラス元検証部209が出力した検証結果と、正当性検証部210が出力した検証結果とが共に暗号文が正当であることを示す場合に、平文mを出力し、いずれか一方の検証結果が暗号文が正当でないことを示す場合に、エラーを出力する。なお、本実施の形態においては、第1べき乗計算部203、逆元計算部205及び第1乗算部206は中間データ生成部として機能し、ハッシュ値計算部201、第2べき乗計算部204及び第2乗算部207は検証用データ生成部として機能し、第3乗算部208は復号済み平文生成部として機能している。   The validity verification unit 210 compares the verification data k obtained by the second multiplication unit 207 with the compressed ciphertext component c4 converted by the ciphertext component decompression unit 202. Here, the validity verification unit 210 determines whether or not they are equivalent by this comparison. That is, the validity verification unit 210 verifies whether or not the ciphertext is valid by determining whether or not the check expression “k = c4” is satisfied. Then, the validity verification unit 210 outputs the verification result. The decrypted plaintext output unit 211 outputs the plaintext m when the verification result output by the torus source verification unit 209 and the verification result output by the validity verification unit 210 indicate that the ciphertext is valid. If any one of the verification results indicates that the ciphertext is invalid, an error is output. In the present embodiment, the first power calculation unit 203, the inverse element calculation unit 205, and the first multiplication unit 206 function as an intermediate data generation unit, and the hash value calculation unit 201, the second power calculation unit 204, and the first multiplication unit 206 The 2 multiplication unit 207 functions as a verification data generation unit, and the third multiplication unit 208 functions as a decrypted plaintext generation unit.

以上のように、Cramer-Shoup暗号においてトーラス圧縮を行う場合、本実施の形態における復号装置200は、暗号文の4つの成分のうち圧縮されている成分c3,c4のみを伸張して、平文を復号する。   As described above, when torus compression is performed in the Cramer-Shoop cipher, the decryption apparatus 200 in the present embodiment decompresses only the compressed components c3 and c4 out of the four components of the ciphertext, Decrypt.

(2)動作
<暗号化処理>
次に、本実施の形態にかかる暗号化装置100の行う暗号化処理の手順について図15を用いて説明する。暗号化装置100は、公開鍵(q,g,g~,e,f,h)と、平文mとを予め取得しているものとする。暗号化装置100は、乱数uを生成する(ステップS1)。次いで、暗号化装置100は、公開鍵成分g,g~,hとを用いて、暗号文成分c1として‘g^u’を求め、暗号文成分c2として‘g~^u’を求め、係数bとして‘h^u’を求める(ステップS2)。次いで、暗号化装置100は、ステップS2で求めたbと、平文mとを用いて、暗号文成分c3として‘m×b’を求めることにより、平文マスクを行う(ステップS3)。そして、暗号化装置100は、ステップS3で求めた暗号文成分c3でありトーラス上の元となっている暗号文成分c3をアフィン表現である圧縮暗号文成分c3*に変換する(ステップS4)。次いで、暗号化装置100は、ステップS2で求めた暗号文成分c1,c2と、ステップS4で得られた圧縮暗号文成分c3*とを用いてハッシュ関数による計算を行ってハッシュ値vを求める(ステップS5)。続いて、暗号化装置100は、公開鍵成分e,fと、ステップS1で生成した乱数uと、ステップS5で求めたハッシュ値vとを用いて、暗号文の成分c4として‘e^u×f^(uv)’を求める(ステップS6)。そして、暗号化装置100は、ステップS4が求めた暗号文成分c4でありトーラス上の元となっている暗号文成分c4をアフィン表現である圧縮暗号文成分c4*に変換する(ステップS7)。そして、暗号化装置100は、暗号文(c1,c2,c3*,c4*)を復号装置200に送信する。
(2) Operation <Encryption processing>
Next, the procedure of the encryption process performed by the encryption device 100 according to the present embodiment will be described with reference to FIG. It is assumed that the encryption device 100 has previously acquired the public key (q, g, g˜, e, f, h) and the plaintext m. The encryption device 100 generates a random number u (step S1). Next, using the public key components g, g˜, h, the encryption device 100 obtains “g ^ u” as the ciphertext component c1, obtains “g˜ ^ u” as the ciphertext component c2, and uses the coefficients “h ^ u” is obtained as b (step S2). Next, the encryption apparatus 100 performs plaintext masking by obtaining 'm × b' as the ciphertext component c3 using b obtained in step S2 and plaintext m (step S3). Then, the encryption apparatus 100 converts the ciphertext component c3 that is the ciphertext component c3 obtained in step S3 and is the original on the torus into a compressed ciphertext component c3 * that is an affine expression (step S4). Next, the encryption apparatus 100 calculates a hash value v by performing a calculation using a hash function using the ciphertext components c1 and c2 obtained in step S2 and the compressed ciphertext component c3 * obtained in step S4 ( Step S5). Subsequently, the encryption device 100 uses the public key components e and f, the random number u generated in step S1, and the hash value v obtained in step S5 as' e ^ u × as the ciphertext component c4. f ^ (uv) 'is obtained (step S6). Then, the encryption apparatus 100 converts the ciphertext component c4, which is the ciphertext component c4 obtained in step S4, and is the original on the torus, into a compressed ciphertext component c4 * that is an affine expression (step S7). Then, the encryption device 100 transmits the ciphertext (c1, c2, c3 *, c4 *) to the decryption device 200.

<復号処理>
次に、本実施の形態にかかる復号装置200の行う復号処理の手順について図16を用いて説明する。尚、復号装置200は、公開鍵(q,g,g~,e,f,h)に対応する秘密鍵(x1, x2, y1, y2, z1, z2)を予め取得しているものとする。復号装置200は、暗号化装置100から送信された暗号文(c1,c2,c3*,c4*)を受信すると、上述の構成欄で具体的に説明したように、暗号文の各成分が正しい群の元となっているか否かを検査して、暗号文の正当性を検証する。そして、復号装置200は、暗号文が正当であると判定した場合(ステップS20:YES)、次いで、暗号文成分c1,c2と、圧縮暗号文成分c3*とを用いてハッシュ関数による計算を行って、ハッシュ値vを求める(ステップS21)。
<Decryption process>
Next, the procedure of the decoding process performed by the decoding device 200 according to the present embodiment will be described with reference to FIG. It is assumed that the decryption apparatus 200 has previously obtained a secret key (x1, x2, y1, y2, z1, z2) corresponding to the public key (q, g, g˜, e, f, h). . When the decryption device 200 receives the ciphertext (c1, c2, c3 *, c4 *) transmitted from the encryption device 100, each component of the ciphertext is correct as specifically described in the configuration section above. The validity of the ciphertext is verified by checking whether it is a group member or not. If the decryption apparatus 200 determines that the ciphertext is valid (step S20: YES), the decryption apparatus 200 then performs a calculation using a hash function using the ciphertext components c1 and c2 and the compressed ciphertext component c3 *. Thus, the hash value v is obtained (step S21).

そして、復号装置200は、ステップS21で求めたハッシュ値vと、秘密鍵成分x1, x2, y1, y2とを用いて、係数k1として‘c1^(x1+y1×v)’を求め、係数k2として‘c2^(x2+y2×v)’を求める(ステップS22)。次いで、復号装置200は、検査式に用いる検証用データkとして、‘k1×k2’を求める(ステップS23)。   Then, using the hash value v obtained in step S21 and the secret key components x1, x2, y1, and y2, the decryption apparatus 200 obtains “c1 ^ (x1 + y1 × v)” as the coefficient k1 and sets it as the coefficient k2. 'c2 ^ (x2 + y2 × v)' is obtained (step S22). Next, the decoding apparatus 200 obtains “k1 × k2” as the verification data k used in the check equation (step S23).

また、復号装置200は、圧縮暗号文成分c4*を伸張し、拡大体表現である暗号文成分c4を得る(ステップS24)。また、復号装置200は、ステップS23で求めた検証用データkとステップS24で伸張した暗号文成分c4とを用いて、検査式‘k=c4’が成立するか否かを判定して、暗号文の正当性を検証する(ステップS25)。そして、復号装置200は、ステップS25の検査式が成立する、即ち、暗号文が正当であると判定した場合(ステップS25:YES)、暗号文成分c1,c2と、秘密鍵成分z1,z2とを用いて、係数b1として‘c1^z1’を求め、係数b2として‘c2^z2’を求める(ステップS26)。次いで復号装置200は、ステップS26が求めた係数b1及びb2を用いて、係数bとして‘b1×b2’を求める(ステップS27)。その後、復号装置200は、ステップS27で求めた係数bの逆元‘b^(−1)’を中間データとして求める(ステップS28)。また、復号装置200は、圧縮暗号文成分c3*を伸張し、c3を得る(ステップS29)。そして、復号装置200は、ステップS28で求めた中間データ‘b^(−1)’と、ステップS29で伸張したc3とを用いて、復号済みの平文mとして‘c3×b^(−1)’を求める(ステップS30)。ステップS20及びステップS25の判定結果が肯定的である場合には、復号装置200は、ステップS30で求めた復号済みの平文を出力することになる。ステップS20又はステップS25の判定結果が否定的である場合、復号装置200はエラーを出力し、復号済みの平文を出力しない。   Also, the decryption apparatus 200 expands the compressed ciphertext component c4 * to obtain a ciphertext component c4 that is an expanded field representation (step S24). In addition, the decryption apparatus 200 determines whether or not the check expression “k = c4” is satisfied by using the verification data k obtained in step S23 and the ciphertext component c4 expanded in step S24, and the ciphertext component c4 is encrypted. The validity of the sentence is verified (step S25). Then, when the decryption apparatus 200 determines that the check expression in step S25 is established, that is, the ciphertext is valid (step S25: YES), the ciphertext components c1 and c2 and the secret key components z1 and z2 Is used to determine 'c1 ^ z1' as the coefficient b1 and 'c2 ^ z2' as the coefficient b2 (step S26). Next, the decoding apparatus 200 uses the coefficients b1 and b2 obtained in step S26 to obtain ‘b1 × b2’ as the coefficient b (step S27). Thereafter, the decoding apparatus 200 obtains the inverse element ‘b ^ (− 1)’ of the coefficient b obtained in step S27 as intermediate data (step S28). Also, the decryption device 200 decompresses the compressed ciphertext component c3 * to obtain c3 (step S29). Then, the decryption apparatus 200 uses the intermediate data “b ^ (− 1)” obtained in step S28 and c3 expanded in step S29 as “c3 × b ^ (− 1) as the decrypted plaintext m. 'Is obtained (step S30). If the determination results in step S20 and step S25 are affirmative, the decryption apparatus 200 outputs the decrypted plaintext obtained in step S30. If the determination result in step S20 or step S25 is negative, the decryption apparatus 200 outputs an error and does not output the decrypted plaintext.

尚、ステップS20の処理と、ステップS21〜S23の処理と、ステップS24の処理と、ステップS26〜S28の処理と、ステップS29との処理とを並行して行うことができる。即ち、図6においては、各成分c1,c2,c3*,c4*が与えられたときに、破線で囲まれた各部分は即座に並行して実行することができる。また第1グループ、第2グループ及び第3グループはそれぞれ独立して処理を行うことができるため、これらの各グループの処理も並行して実行することが可能となる。このため、伸張にかかる処理時間を隠蔽することができる。   In addition, the process of step S20, the process of steps S21-S23, the process of step S24, the process of steps S26-S28, and the process of step S29 can be performed in parallel. That is, in FIG. 6, when each component c1, c2, c3 *, c4 * is given, each part surrounded by a broken line can be immediately executed in parallel. In addition, since the first group, the second group, and the third group can perform processing independently, the processing of each of these groups can be performed in parallel. For this reason, the processing time required for expansion can be concealed.

即ち、上述したようにCramer-Shoup暗号の場合、暗号文が4つの成分の組になっており、これらの成分を独立に扱うことは非常に容易であることに注目し、並行処理が可能な環境では、暗号文成分を選択的に圧縮する。これにより、処理時間の増加分の一部を隠蔽することができる。従って、圧縮や伸張にかかる処理時間を隠蔽しつつ、Cramer-Shoup暗号にトーラス圧縮を組み合わせた暗号化方式を実現することができる。   That is, as described above, in the case of Cramer-Shoop cipher, the ciphertext is a set of four components, and it is very easy to handle these components independently, and parallel processing is possible. In the environment, the ciphertext component is selectively compressed. Thereby, a part of increase of processing time can be concealed. Therefore, it is possible to realize an encryption method in which the Torus compression is combined with the Cramer-Shop cipher while concealing the processing time required for compression and expansion.

ただし、並行して処理を実行する場合には、ステップS20の判定結果やステップS25の判定結果が否定的となる不正な暗号文を取り除く機構が必要となる。このため、本実施の形態においては、図14に示したように、復号装置200が復号済み平文出力部211を有するように構成して、トーラス元検証部209の判定結果であるステップS20の判定結果と、正当性検証部210の判定結果であるステップS25の判定結果とを用いて、暗号文が正当であるか否かを最終的に判定する。復号装置200は、ステップS30で得られる復号済みの平文mを出力しないことにより、結果的に不正な暗号文を取り除くことができる。   However, in the case where the processes are executed in parallel, a mechanism for removing an illegal ciphertext in which the determination result in step S20 or the determination result in step S25 is negative is necessary. For this reason, in the present embodiment, as shown in FIG. 14, the decryption apparatus 200 is configured to have the decrypted plaintext output unit 211, and the determination in step S <b> 20 that is the determination result of the torus source verification unit 209. Using the result and the determination result of step S25, which is the determination result of the validity verification unit 210, finally determines whether or not the ciphertext is valid. The decryption apparatus 200 can remove illegal ciphertext as a result by not outputting the decrypted plaintext m obtained in step S30.

なお、本発明においては、暗号化装置100と復号装置200との間でハッシュ関数の出力が同じであれば暗号化や復号は可能である。このため、上述のステップS5とステップS21とでハッシュ値を求める際に用いられる成分と表現とが表現の変換を施すことなく同一であれば、圧縮する暗号文成分は限定されない。   In the present invention, if the output of the hash function is the same between the encryption device 100 and the decryption device 200, encryption and decryption are possible. For this reason, the ciphertext component to be compressed is not limited as long as the component and the expression used in obtaining the hash value in step S5 and step S21 described above are the same without performing the conversion of the expression.

また、本実施の形態において各演算は拡大体表現で行ったが、射影表現で行ってもよい。ただし、射影表現では同じデータに対し複数の値を取り得るので、ハッシュ関数への入力や復号済みの平文を導出する際や正当性検証部210で等価性の判定を行う際に注意が必要である。   Further, in the present embodiment, each calculation is performed using an expanded field expression, but may be performed using a projective expression. However, since the projection expression can take a plurality of values for the same data, it is necessary to be careful when deriving the input to the hash function or the decrypted plaintext or when determining the equivalence by the validity verification unit 210. is there.

[第4の実施の形態]
次に、暗号化装置、復号装置、暗号文検証装置、暗号化方法、復号方法及びプログラムの第4の実施の形態について説明する。なお、上述の第1の実施の形態乃至第3の実施の形態と共通する部分については、同一の符号を使用して説明したり、説明を省略したりする。
[Fourth embodiment]
Next, a fourth embodiment of the encryption device, the decryption device, the ciphertext verification device, the encryption method, the decryption method, and the program will be described. In addition, about the part which is common in the above-mentioned 1st Embodiment thru | or 3rd Embodiment, it demonstrates using the same code | symbol or abbreviate | omits description.

(1)構成
米国特許文献 USP7,221,758B2にCramer−Shoup暗号において暗号化方式のバリエーションが記載されており、この方式を用いると秘密鍵成分の個数を削減できる。このバリエーションに対しても、暗号文成分の一部を圧縮する構成を適用することが可能である。本実施の形態は、秘密鍵成分z1,z2の代わりにzひとつで暗号化や復号を行うものである。
(1) Configuration US Pat. No. 7,221,758 B2 describes a variation of the encryption method in the Cramer-Shoop cipher, and the number of secret key components can be reduced by using this method. A configuration in which a part of the ciphertext component is compressed can also be applied to this variation. In the present embodiment, encryption or decryption is performed with one z instead of the secret key components z1 and z2.

ここで、本実施の形態にかかる鍵生成装置が公開鍵及び秘密鍵を生成する鍵生成処理の概要について図17を用いて説明する。鍵生成装置は、公開鍵g(g∈G)を拡大体表現から選択し、0以外の乱数wを生成する(GS11)。次いで、鍵生成装置は、秘密鍵成分x1,x2,y1,y2,zとして各々乱数を生成する(GS12)。そして、鍵生成装置は、公開鍵成分g~として‘g^w’を求め、公開鍵成分eとして‘g^x1×g~^x2’を求め、公開鍵成分fとして‘g^y1×g~^y2’を求め、公開鍵成分hとして‘g^z’を求める(GS13)。そして、鍵生成装置は、秘密鍵(x1,x2,y1,y2,z)と公開鍵(q,g,g~,e,f,h)とを出力する。   Here, an outline of a key generation process in which the key generation apparatus according to the present embodiment generates a public key and a secret key will be described with reference to FIG. The key generation device selects the public key g (gεG) from the extended field representation, and generates a random number w other than 0 (GS11). Next, the key generation device generates random numbers as secret key components x1, x2, y1, y2, and z (GS12). Then, the key generation device obtains “g ^ w” as the public key component g˜, obtains “g ^ x1 × g˜ ^ 2” as the public key component e, and obtains “g ^ y1 × g” as the public key component f. ~ ^ y2 'is obtained, and "g ^ z" is obtained as the public key component h (GS13). Then, the key generation device outputs the secret key (x1, x2, y1, y2, z) and the public key (q, g, g˜, e, f, h).

暗号化装置100の構成は上述の第3の実施の形態と同様であるため、その説明を省略する。図18は本実施の形態にかかる復号装置200´の機能的構成を例示する図である。
本実施の形態にかかる復号装置200´の機能的構成が上述の第3の実施の形態の復号装置200の機能的構成と異なる点は以下の通りである。復号装置200´には秘密鍵(x1,x2,y1,y2,z)が入力される。復号装置200´は、第1乗算部206を有さない。第1べき乗計算部203は、暗号文成分c1と、秘密鍵成分zとを用いて、係数bとして‘c1^z’を求める。逆元計算部205は、第1べき乗計算部203が求めた係数bの逆元‘b^(−1)’を中間データとして求める。なお、本実施の形態においては第1べき乗計算部203及び逆元計算部205が中間データ生成部として機能している。
Since the configuration of the encryption device 100 is the same as that of the third embodiment described above, description thereof is omitted. FIG. 18 is a diagram illustrating a functional configuration of the decoding device 200 ′ according to the present embodiment.
The functional configuration of the decoding device 200 ′ according to the present embodiment is different from the functional configuration of the decoding device 200 according to the third embodiment described below. The secret key (x1, x2, y1, y2, z) is input to the decryption device 200 ′. The decoding device 200 ′ does not have the first multiplication unit 206. The first power calculation unit 203 uses the ciphertext component c1 and the secret key component z to obtain “c1 ^ z” as the coefficient b. The inverse element calculation unit 205 calculates the inverse element 'b ^ (-1)' of the coefficient b obtained by the first power calculation unit 203 as intermediate data. In the present embodiment, the first power calculation unit 203 and the inverse element calculation unit 205 function as an intermediate data generation unit.

(2)動作
<復号処理>
次に、本実施の形態にかかる復号装置200´の行う復号処理の手順について図19を用いて説明する。尚、暗号化装置100の行う暗号化処理の手順は上述の第3の実施の形態と同様であるため、その説明を省略する。復号装置200´は、公開鍵(q,g,g~,e,f,h)に対応する秘密鍵(x1, x2, y1, y2, z)を予め取得しているものとする。ステップS20〜S25は上述の第1の実施の形態と同様である。ステップS40では、復号装置200´は、暗号文成分c1と、秘密鍵成分zとを用いて、係数bとして‘c1^z’を求める。次いで、ステップS28では、復号装置200´は、ステップS40が求めた係数bの逆元‘b^(−1)’を中間データとして求める。S29〜S30の処理は上述の第3の実施の形態と同様である。
(2) Operation <Decoding process>
Next, the procedure of the decoding process performed by the decoding device 200 ′ according to the present embodiment will be described with reference to FIG. Note that the procedure of the encryption process performed by the encryption device 100 is the same as that in the third embodiment described above, and thus the description thereof is omitted. It is assumed that the decryption device 200 ′ has previously obtained a secret key (x1, x2, y1, y2, z) corresponding to the public key (q, g, g˜, e, f, h). Steps S20 to S25 are the same as those in the first embodiment. In step S40, the decryption apparatus 200 ′ obtains “c1 ^ z” as the coefficient b by using the ciphertext component c1 and the secret key component z. Next, in step S28, the decoding apparatus 200 ′ obtains the inverse element “b ^ (− 1)” of the coefficient b obtained in step S40 as intermediate data. The processes in S29 to S30 are the same as those in the third embodiment.

本実施の形態においては、ステップS20の処理と、ステップS21〜S23の処理と、ステップS24の処理と、ステップS40,S28の処理と、ステップS29との処理とを並行して行うことができる。即ち、図19においては、各成分c1,c2,c3*,c4*が与えられたときに、破線で囲まれた各部分は即座に並行して実行することができる。また第1グループ、第2グループ及び第3グループはそれぞれ独立して処理を行うことができるため、これらの各グループの処理も並行して実行することが可能となる。このため、Cramer−Shoup暗号において本実施の形態のようにして秘密鍵成分の個数を削減した場合であっても、伸張にかかる処理時間を隠蔽することができる。   In the present embodiment, the process of step S20, the processes of steps S21 to S23, the process of step S24, the processes of steps S40 and S28, and the process of step S29 can be performed in parallel. That is, in FIG. 19, when each component c1, c2, c3 *, c4 * is given, each part surrounded by a broken line can be immediately executed in parallel. In addition, since the first group, the second group, and the third group can perform processing independently, the processing of each of these groups can be performed in parallel. For this reason, even when the number of secret key components is reduced as in the present embodiment in the Cramer-Shoop cipher, the processing time required for expansion can be concealed.

また本実施の形態においては複数の暗号文成分のうちc3を圧縮したが、c1やc2を圧縮し、c1c2を圧縮している間にc3を生成すれば暗号化処理においても圧縮にかかる処理時間を隠蔽できる。どの暗号文成分を圧縮するかによって、暗号化、復号、あるいはその両方の圧縮にかかる処理時間や伸張にかかる処理時間を隠蔽できるのかが決まる。   In this embodiment, c3 is compressed among a plurality of ciphertext components, but if c1 and c2 are compressed and c3 is generated while c1c2 is being compressed, the processing time required for compression also in the encryption processing Can be concealed. Depending on which ciphertext component is compressed, it is determined whether the processing time required for encryption and decryption, or both, and the processing time required for expansion can be concealed.

[第5の実施の形態]
次に、暗号化装置、復号装置、暗号文検証装置、暗号化方法、復号方法及びプログラムの第5の実施の形態について説明する。なお、上述の第1の実施の形態乃至第4の実施の形態と共通する部分については、同一の符号を使用して説明したり、説明を省略したりする。
[Fifth embodiment]
Next, a fifth embodiment of an encryption device, a decryption device, a ciphertext verification device, an encryption method, a decryption method, and a program will be described. In addition, about the part which is common in the above-mentioned 1st Embodiment thru | or 4th Embodiment, it demonstrates using the same code | symbol or abbreviate | omits description.

(1)構成
上述の第4の実施の形態においては、秘密鍵成分z1,z2の代わりにzを用いて秘密鍵成分の個数を削減した。ここでは秘密鍵成分の個数を更に削減して、秘密鍵成分x1,x2の代わりにxを用い、秘密鍵成分y1,y2の代わりにyを用いる。ただし、公開鍵の生成に用いられた乱数wが秘密鍵成分として加わる。また、ここでは圧縮する対象の暗号文成分がc3,c4のみならずc2も含む場合について説明する。
(1) Configuration In the fourth embodiment described above, the number of secret key components is reduced by using z instead of the secret key components z1 and z2. Here, the number of secret key components is further reduced, and x is used instead of the secret key components x1 and x2, and y is used instead of the secret key components y1 and y2. However, the random number w used to generate the public key is added as a secret key component. Here, a case where the ciphertext component to be compressed includes not only c3 and c4 but also c2.

ここで、本実施の形態にかかる鍵生成装置が公開鍵及び秘密鍵を生成する鍵生成処理の概要について図20を用いて説明する。鍵生成装置は、公開鍵成分g(g∈G)を拡大体表現から選択し、‘0’以外の乱数wを生成する(GS21)。次いで、鍵生成装置は、秘密鍵成分x,y,zとして各々乱数を生成する(GS22)。そして、鍵生成装置は、公開鍵成分g~として‘g^w’を求め、公開鍵成分eとして‘g^x’を求め、公開鍵成分fとして‘g^y’を求め、公開鍵成分hとして‘g^z’を求める(GS23)。そして、鍵生成装置は、秘密鍵(x,y,z,w)と公開鍵(q,g,g~,e,f,h)とを出力する。   Here, an outline of a key generation process in which the key generation apparatus according to the present embodiment generates a public key and a secret key will be described with reference to FIG. The key generation device selects the public key component g (gεG) from the extended field representation, and generates a random number w other than “0” (GS21). Next, the key generation device generates random numbers as the secret key components x, y, and z (GS22). Then, the key generation device obtains “g ^ w” as the public key component g˜, obtains “g ^ x” as the public key component e, obtains “g ^ y” as the public key component f, and public key component “g ^ z” is obtained as h (GS23). Then, the key generation device outputs a secret key (x, y, z, w) and a public key (q, g, g˜, e, f, h).

次に、本実施の形態にかかる暗号化装置100´の機能的構成について図21を用いて説明する。暗号化装置100´の機能的構成が上述の第3の実施の形態の暗号化装置100の機能的構成と異なる点は以下の通りである。暗号文成分圧縮部104は、第1べき乗計算部102が求めた暗号文成分c2と、乗算部103が求めた暗号文成分c3とを圧縮することによりアフィン表現である圧縮暗号文成分c2*,c3*に各々変換する。ハッシュ値計算部105は、第1べき乗計算部102が求めた暗号文成分c1と、暗号文成分圧縮部104が変換した圧縮暗号文成分c2*及びc3*とを用いてハッシュ関数による計算を行ってハッシュ値vを求める。出力部は、暗号文(c1,c2*,c3*,c4*)を復号装置200”に送信する。   Next, the functional configuration of the encryption device 100 ′ according to the present embodiment will be described with reference to FIG. The functional configuration of the encryption device 100 ′ is different from the functional configuration of the encryption device 100 according to the third embodiment described above. The ciphertext component compression unit 104 compresses the ciphertext component c2 obtained by the first power calculation unit 102 and the ciphertext component c3 obtained by the multiplication unit 103, thereby compressing the ciphertext component c2 *, which is an affine expression. Convert each to c3 *. The hash value calculation unit 105 performs a calculation by a hash function using the ciphertext component c1 obtained by the first power calculation unit 102 and the compressed ciphertext components c2 * and c3 * converted by the ciphertext component compression unit 104. To obtain the hash value v. The output unit transmits the ciphertext (c1, c2 *, c3 *, c4 *) to the decryption device 200 ″.

次に、本実施の形態にかかる復号装置200”の機能的構成について図22を用いて説明する。本実施の形態にかかる復号装置200”の機能的構成が上述の第3の実施の形態の復号装置200の機能的構成と異なる点は以下の通りである。復号装置200”は、第1乗算部206と、第2乗算部207とを有さず、第3べき乗計算部212を更に有する。復号装置200”には秘密鍵(x,y,z,w)が入力される。受信部は、暗号文(c1,c2*,c3*,c4*)を暗号化装置100´から受信する。暗号文成分伸張部202は、アフィン表現である圧縮暗号文成分c2*,c3*,c4*を各々伸張することにより、拡大体表現である暗号文成分c2,c3,c4に各々変換する。第1べき乗計算部203は、上述の第2の実施の形態と同様にして、暗号文成分c1と、秘密鍵成分zとを用いて、係数bとして‘c1^z’を求める。逆元計算部205は、第1べき乗計算部203が求めた係数bの逆元‘b^(−1)’を求める。ハッシュ計算部201は、暗号文成分c1と、圧縮暗号文成分c2*,c3*とを用いてハッシュ関数による計算を行って、ハッシュ値vを求める。第2べき乗計算部204は、ハッシュ計算部201が求めたハッシュ値vと、秘密鍵成分x,yとを用いて、検証用データk2として‘c1^(x+y×v)’を求める。第3べき乗計算部212は、乱数wと暗号文成分c1とを用いて、検証用データk1として‘c1^w’を求める。   Next, the functional configuration of the decoding apparatus 200 ″ according to the present embodiment will be described with reference to FIG. 22. The functional configuration of the decoding apparatus 200 ″ according to the present embodiment is the same as that of the above-described third embodiment. Differences from the functional configuration of the decoding device 200 are as follows. The decryption device 200 ″ does not include the first multiplication unit 206 and the second multiplication unit 207, but further includes a third power calculation unit 212. The decryption device 200 ″ includes a secret key (x, y, z, w). ) Is entered. The receiving unit receives the ciphertext (c1, c2 *, c3 *, c4 *) from the encryption device 100 ′. The ciphertext component decompression unit 202 decompresses the compressed ciphertext components c2 *, c3 *, and c4 * that are affine expressions, respectively, thereby converting them into ciphertext components c2, c3, and c4 that are expanded field expressions. The first power calculation unit 203 obtains ‘c1 ^ z’ as the coefficient b using the ciphertext component c1 and the secret key component z in the same manner as in the second embodiment. The inverse element calculation unit 205 calculates an inverse element ‘b ^ (− 1)’ of the coefficient b obtained by the first power calculation unit 203. The hash calculation unit 201 performs a calculation by a hash function using the ciphertext component c1 and the compressed ciphertext components c2 * and c3 * to obtain a hash value v. The second power calculation unit 204 uses the hash value v obtained by the hash calculation unit 201 and the secret key components x and y to obtain “c1 ^ (x + y × v)” as verification data k2. The third power calculation unit 212 calculates ‘c1 ^ w’ as the verification data k1 using the random number w and the ciphertext component c1.

トーラス元検証部209は、暗号文(c1,c2*,c3*,c4*)の各成分が正しい群の元となっているか否かを検査して、暗号文の正当性を検証する。即ち、トーラス元検証部209は、暗号文成分c1と、圧縮暗号文成分c2*,c3*,c4*とが群G~の元であるか否か及び各成分c1が群Gの元であるか否かを判定し、当該判定結果を出力する。尚、圧縮暗号文成分c2*,c3*については、圧縮により群Gの元となっていることが明らかなため、ここではその判定を行わない。正当性検証部210は、第3べき乗計算部212が求めた検証用データk1と暗号文成分c2とを用いて検査式1‘k1=c2’が成立するか否かを判定すると共に、第2べき乗計算部204が求めた検証用データk2と成分c4とを用いて検査式2‘k2=c4’が成立するか否かを判定する。なお、本実施の形態においてはハッシュ値計算部201、第2べき乗計算部204及び第3べき乗計算部212が検証用データ生成部として機能している。   The torus element verification unit 209 verifies the validity of the ciphertext by checking whether each component of the ciphertext (c1, c2 *, c3 *, c4 *) is a correct group element. That is, the torus element verification unit 209 determines whether or not the ciphertext component c1 and the compressed ciphertext components c2 *, c3 *, and c4 * are elements of the group G˜, and each component c1 is an element of the group G. Or not, and outputs the determination result. Note that the compressed ciphertext components c2 * and c3 * are clearly determined to be the basis of the group G due to compression, and are not determined here. The validity verification unit 210 uses the verification data k1 obtained by the third power calculation unit 212 and the ciphertext component c2 to determine whether or not the check formula 1′k1 = c2 ′ is satisfied, and the second It is determined whether or not the check expression 2′k2 = c4 ′ is satisfied using the verification data k2 and the component c4 obtained by the power calculation unit 204. In the present embodiment, the hash value calculation unit 201, the second power calculation unit 204, and the third power calculation unit 212 function as a verification data generation unit.

(2)動作
<暗号化処理>
本実施の形態にかかる暗号化装置100´の行う暗号化処理の手順について図23を用いて説明する。ステップS1〜S3の処理は上述の第3の実施の形態と同様である。ステップS50では、暗号化装置100´は、ステップS2で求めた暗号文成分c2と、ステップS3で求めた暗号文成分c3とをアフィン表現である圧縮暗号文成分c2*,c3*に各々変換する。次いで、暗号化装置100´は、ステップS2で求めたc1と、ステップS50で変換した圧縮暗号文成分c2*及びc3*とを用いてハッシュ関数による計算を行ってハッシュ値vを求める(ステップS51)。ステップS6〜S7の処理は上述の第1の実施の形態と同様である。そして、暗号化装置100´は、暗号文(c1,c2*,c3*,c4*)を復号装置200”に送信する。
(2) Operation <Encryption processing>
The procedure of the encryption process performed by the encryption device 100 ′ according to the present embodiment will be described with reference to FIG. The processing in steps S1 to S3 is the same as that in the third embodiment described above. In step S50, the encryption device 100 ′ converts the ciphertext component c2 obtained in step S2 and the ciphertext component c3 obtained in step S3 into compressed ciphertext components c2 * and c3 * which are affine expressions, respectively. . Next, the encryption device 100 ′ calculates a hash value v by performing a calculation using a hash function using c1 obtained in step S2 and the compressed ciphertext components c2 * and c3 * converted in step S50 (step S51). ). The processing in steps S6 to S7 is the same as that in the first embodiment. Then, the encryption device 100 ′ transmits the ciphertext (c1, c2 *, c3 *, c4 *) to the decryption device 200 ″.

<復号処理>
次に、本実施の形態にかかる復号装置200”の行う復号処理の手順について図24を用いて説明する。復号装置200”は、公開鍵(q,g,g~,e,f,h)に対応する秘密鍵(x, y, z,w)を予め取得しているものとする。復号装置200”は、暗号化装置100´から送信された暗号文(c1,c2*,c3*,c4*)を受信すると、上述の構成欄で具体的に説明したように、暗号文の各成分が正しい群の元となっているか否かを検査して、暗号文の正当性を検証する。そして、復号装置200”は、暗号文が正当であると判定した場合(ステップS60:YES)、次いで、乱数wと暗号文成分c1とを用いて、検証用データk1として‘c1^w’を求める(ステップS61)。次いで、復号装置200”は、暗号文成分c1と圧縮暗号文成分c2*,c3*とを用いてハッシュ関数による計算を行って、ハッシュ値vを求める(ステップS62)。そして、復号装置200”は、ステップS62で求めたハッシュ値vと、秘密鍵成分x,yと、暗号文成分c1とを用いて、検証用データk2として‘c1^(x+y×v)’を求める(ステップS63)。また、復号装置200”は、圧縮暗号文成分c2*,c4*を伸張することにより、拡大体表現である暗号文成分c2,c4に各々変換する(ステップS64)。そして、復号装置200”は、検査式1‘k1=c2’及び検査式2‘k2=c4’が成立するか否かを判定する(ステップS65)。双方の検査式が成立する場合(ステップS65:YES)、上述の第4の実施の形態と同様にして、ステップS40の処理を行う。ステップS28〜S30の処理は上述の第3の実施の形態と同様である。ステップS60及びステップS65の判定結果が肯定的である場合には、復号装置200”は、ステップS30で求めた復号済みの平文を出力することになる。ステップS60又はステップS65の判定結果が否定的である場合、復号装置200”はエラーを出力し、復号済みの平文を出力しない。
<Decryption process>
Next, the procedure of the decryption process performed by the decryption apparatus 200 ″ according to the present embodiment will be described with reference to FIG. 24. The decryption apparatus 200 ″ has a public key (q, g, g˜, e, f, h). It is assumed that the secret key (x, y, z, w) corresponding to is previously acquired. When receiving the ciphertext (c1, c2 *, c3 *, c4 *) transmitted from the encryption device 100 ′, the decryption device 200 ″ receives each ciphertext as specifically described in the configuration section above. It is checked whether or not the component is an element of a correct group, and the validity of the ciphertext is verified. When the decryption device 200 ″ determines that the ciphertext is valid (step S60: YES). Then, 'c1 ^ w' is obtained as the verification data k1 using the random number w and the ciphertext component c1 (step S61). Next, the decryption device 200 ″ performs a calculation by a hash function using the ciphertext component c1 and the compressed ciphertext components c2 * and c3 * to obtain a hash value v (step S62). Uses the hash value v obtained in step S62, the secret key component x, y, and the ciphertext component c1 to obtain “c1 ^ (x + y × v)” as verification data k2 (step S63). Also, the decrypting device 200 ″ converts the compressed ciphertext components c2 * and c4 * into decompressed ciphertext components c2 and c4, respectively (step S64). Then, it is determined whether or not the check expression 1′k1 = c2 ′ and the check expression 2′k2 = c4 ′ are satisfied (step S65). If both inspection formulas are satisfied (step S65: YES), the process of step S40 is performed in the same manner as in the fourth embodiment described above. The processes in steps S28 to S30 are the same as those in the third embodiment described above. If the determination results in step S60 and step S65 are affirmative, the decryption apparatus 200 "outputs the decrypted plaintext obtained in step S30. The determination result in step S60 or step S65 is negative. The decryption device 200 ″ outputs an error and does not output the decrypted plaintext.

本実施の形態においては、ステップS60の処理と、ステップS61の処理と、ステップS62〜S63の処理と、ステップS64の処理と、ステップS40,S28の処理と、ステップS29との処理とを並行して行うことができる。即ち、図14においては、暗号文成分c1,c4と、圧縮暗号文c2*,c3*とが与えられたときに、破線で囲まれた各部分は即座に並行して実行することができる。また第1グループ、第2グループ及び第3グループはそれぞれ独立して処理を行うことができるため、これらの各グループの処理も並行して実行することが可能となる。このため、Cramer−Shoup暗号において本実施の形態のようにして秘密鍵成分の個数を削減した場合であっても、伸張にかかる処理時間を隠蔽することができる。   In the present embodiment, the processing in step S60, the processing in step S61, the processing in steps S62 to S63, the processing in step S64, the processing in steps S40 and S28, and the processing in step S29 are performed in parallel. Can be done. That is, in FIG. 14, when the ciphertext components c1 and c4 and the compressed ciphertexts c2 * and c3 * are given, the portions surrounded by the broken lines can be immediately executed in parallel. In addition, since the first group, the second group, and the third group can perform processing independently, the processing of each of these groups can be performed in parallel. For this reason, even when the number of secret key components is reduced as in the present embodiment in the Cramer-Shoop cipher, the processing time required for expansion can be concealed.

[第6の実施形態]
次に、暗号化装置、復号装置、暗号文検証装置、暗号化方法、復号方法及びプログラムの第6の実施の形態について説明する。なお、上述の第1の実施の形態乃至第5の実施の形態と共通する部分については、同一の符号を使用して説明したり、説明を省略したりする。
[Sixth Embodiment]
Next, a sixth embodiment of the encryption device, the decryption device, the ciphertext verification device, the encryption method, the decryption method, and the program will be described. In addition, about the part which is common in the above-mentioned 1st Embodiment thru | or 5th Embodiment, it demonstrates using the same code | symbol or abbreviate | omits description.

上述の第1の実施の形態で説明した暗号文検証装置20の正当性検証部25や、第3の実施の形態乃至第5の実施の形態において説明した復号装置の正当性検証部210では、圧縮暗号成分が拡大体表現に伸張された後の暗号文成分を用いて、暗号文の正当性の検証を行った、しかし、異なる表現間で暗号文成分の同一性が判定できる場合、圧縮暗号文成分の伸張が不要となる場合がある。本実施の形態においてはその一例を説明する。尚、本実施の形態にかかる暗号方式は第5の実施の形態と同じであるものとし、圧縮する対象の暗号文成分はc2とc4とであるものとする。   In the validity verification unit 25 of the ciphertext verification device 20 described in the first embodiment and the validity verification unit 210 of the decryption device described in the third to fifth embodiments, The validity of the ciphertext is verified using the ciphertext component after the compressed ciphertext component has been expanded to an expanded representation, but if the ciphertext component identity between different representations can be determined, the compressed ciphertext In some cases, it is not necessary to stretch sentence components. In the present embodiment, an example will be described. Note that the encryption method according to the present embodiment is the same as that of the fifth embodiment, and the ciphertext components to be compressed are c2 and c4.

本実施の形態にかかる鍵生成装置が公開鍵及び秘密鍵を生成する鍵生成処理は第5の実施の形態と同一であるので省略するが、鍵生成装置は秘密鍵(x,y,z,w)と公開鍵(q,g,g~,e,f,h)とを出力する。   Since the key generation processing for generating the public key and the secret key by the key generation device according to the present embodiment is the same as that of the fifth embodiment, a description thereof will be omitted. However, the key generation device does not include the secret key (x, y, z, w) and public key (q, g, g ~, e, f, h) are output.

次に、本実施の形態にかかる暗号化装置100”の機能的構成について図25を用いて説明する。暗号化装置100”の機能的構成が上述の第5の実施の形態の暗号化装置100´の機能的構成と異なる点は以下の通りである。暗号文成分圧縮部104は、第1べき乗計算部102が求めた暗号文成分c2をアフィン表現である暗号文成分c2*に変換する。ハッシュ値計算部105は、第1べき乗計算部102が求めた暗号文成分c1と、第1の暗号文成分圧縮部104が圧縮した圧縮暗号文成分c2*と、乗算部103が求めた暗号文成分c3とを用いてハッシュ関数による計算を行ってハッシュ値vを求める。出力部は、暗号文(c1,c2*,c3,c4*)を復号装置200’’’に送信する。   Next, the functional configuration of the encryption device 100 ″ according to the present embodiment will be described with reference to FIG. 25. The functional configuration of the encryption device 100 ″ is the encryption device 100 according to the fifth embodiment described above. Differences from the functional configuration of ′ are as follows. The ciphertext component compression unit 104 converts the ciphertext component c2 obtained by the first power calculation unit 102 into a ciphertext component c2 * that is an affine expression. The hash value calculation unit 105 includes a ciphertext component c1 obtained by the first power calculation unit 102, a compressed ciphertext component c2 * compressed by the first ciphertext component compression unit 104, and a ciphertext obtained by the multiplication unit 103. A hash value v is obtained by performing a calculation by a hash function using the component c3. The output unit transmits the ciphertext (c1, c2 *, c3, c4 *) to the decryption device 200 ′ ″.

次に、本実施の形態にかかる復号装置200’’’の機能的構成について図26を用いて説明する。本実施の形態にかかる復号装置200’’’の機能的構成が上述の第5の実施の形態の復号装置200”の機能的構成と異なる点は以下の通りである。復号装置200’’’は、暗号文成分伸張部202を有さない。復号装置200’’’には秘密鍵(x,y,z,w)が入力される。受信部は、圧縮暗号文(c1,c2*,c3,c4*)を暗号化装置100”から受信する。第1べき乗計算部203は、上述の第5の実施の形態と同様にして、暗号文成分c1と、秘密鍵成分zとを用いて、係数bとして‘c1^z’を求める。逆元計算部205は、第1べき乗計算部203が求めた係数bの逆元‘b^(−1)’を中間データとして求める。ハッシュ計算部201は、暗号文成分c1,c3と、圧縮暗号文成分c2*とを用いてハッシュ関数による計算を行って、ハッシュ値vを求める。第2べき乗計算部204は、ハッシュ計算部201が求めたハッシュ値vと、秘密鍵成分x,yとを用いて、検証用データk2として‘c1^(x+y×v)’を求める。第3べき乗計算部212は、乱数wと暗号文成分c1とを用いて、検証用データk1として‘c1^w’を求める。   Next, a functional configuration of the decoding device 200 ″ ″ according to the present embodiment will be described with reference to FIG. The functional configuration of the decoding device 200 ′ ″ according to the present embodiment is different from the functional configuration of the decoding device 200 ″ according to the fifth embodiment described above. The decoding device 200 ′ ″ is as follows. Does not have the ciphertext component decompression unit 202. The decryption device 200 ′ ″ receives the secret key (x, y, z, w). The receiving unit receives the compressed ciphertext (c1, c2 *, c3, c4 *) are received from the encryption device 100 ″. The first power calculation unit 203 obtains ‘c1 ^ z’ as the coefficient b using the ciphertext component c1 and the secret key component z in the same manner as in the fifth embodiment described above. The inverse element calculation unit 205 obtains the inverse element ‘b ^ (− 1)’ of the coefficient b obtained by the first power calculation unit 203 as intermediate data. The hash calculation unit 201 performs a calculation by a hash function using the ciphertext components c1 and c3 and the compressed ciphertext component c2 * to obtain a hash value v. The second power calculation unit 204 uses the hash value v obtained by the hash calculation unit 201 and the secret key components x and y to obtain “c1 ^ (x + y × v)” as verification data k2. The third power calculation unit 212 calculates ‘c1 ^ w’ as the verification data k1 using the random number w and the ciphertext component c1.

トーラス元検証部209は、暗号文(c1,c2*,c3,c4*)の各成分が正しい群の元となっているか否かを検査して、暗号文の正当性を検証する。即ち、トーラス元検証部209は、各成分c1,c2*,c3,c4*が群Gの元であるか否か及び各成分c1,c3が群Gの元であるか否かを判定し、当該判定結果を出力する。尚、圧縮暗号文成分c2*については、圧縮により群Gの元となっていることが明らかなため、ここではその判定を行わない。正当性検証部210は、第3べき乗計算部212が求めた検証用データk1と圧縮暗号文成分c2*とを用いてk1とc2*とが等価であるか否かを判定すると共に、第2べき乗計算部204が求めた検証用データk2と圧縮暗号文成分c4*とを用いてk2とc4*とが等価であるか否かを判定することにより、暗号文の正当性を検証する。即ち、本実施の形態においては、正当性検証部210は、圧縮暗号文成分c2*,c4*が伸張された拡大体表現である暗号文成分c2,c4を用いるのではなく、圧縮暗号文成分c2*,c4*自体を用いて、暗号文の正当性を検証する。なお、本実施の形態においては、第1べき乗計算部203、逆元計算部205及び第3乗算部208が復号済み平文生成部として機能している。   The torus element verification unit 209 verifies the validity of the ciphertext by checking whether each component of the ciphertext (c1, c2 *, c3, c4 *) is a correct group element. That is, the torus element verification unit 209 determines whether each component c1, c2 *, c3, c4 * is an element of the group G and whether each component c1, c3 is an element of the group G, The determination result is output. Since it is clear that the compressed ciphertext component c2 * is an element of the group G by compression, the determination is not performed here. The validity verification unit 210 uses the verification data k1 obtained by the third power calculation unit 212 and the compressed ciphertext component c2 * to determine whether k1 and c2 * are equivalent, and the second The validity of the ciphertext is verified by determining whether k2 and c4 * are equivalent using the verification data k2 obtained by the power calculation unit 204 and the compressed ciphertext component c4 *. That is, in the present embodiment, the validity verification unit 210 does not use the ciphertext components c2 and c4 that are the expanded field representations obtained by expanding the compressed ciphertext components c2 * and c4 *, but instead uses the compressed ciphertext components. The validity of the ciphertext is verified using c2 * and c4 * itself. In the present embodiment, the first power calculation unit 203, the inverse element calculation unit 205, and the third multiplication unit 208 function as a decrypted plaintext generation unit.

(2)動作
<暗号化処理>
本実施の形態にかかる暗号化装置100”の行う暗号化処理の手順について図27を用いて説明する。ステップS1〜S3の処理は上述の第5の実施の形態と同様である。ステップS70では、暗号化装置100”は、ステップS2で求めた暗号文成分c2をアフィン表現である圧縮暗号文成分c2*に変換する。次いで、暗号化装置100”は、ステップS2で求めた暗号文成分c1と、ステップS70で変換した圧縮暗号文成分c2*と、ステップS3で生成した暗号文成分c3とを用いてハッシュ関数による計算を行ってハッシュ値vを求める(ステップS71)。ステップS6〜S7の処理は上述の第5の実施の形態と同様である。そして、暗号化装置100”は、暗号文(c1,c2*,c3,c4*)を復号装置200に送信する。
(2) Operation <Encryption processing>
The procedure of the encryption process performed by the encryption apparatus 100 ″ according to the present embodiment will be described with reference to FIG. 27. The processes in steps S1 to S3 are the same as those in the fifth embodiment. In step S70. The encryption device 100 ″ converts the ciphertext component c2 obtained in step S2 into a compressed ciphertext component c2 * that is an affine expression. Next, the encryption device 100 ″ uses the ciphertext component c1 obtained in step S2, the compressed ciphertext component c2 * converted in step S70, and the ciphertext component c3 generated in step S3 to calculate by the hash function. To obtain the hash value v (step S71) The processing of steps S6 to S7 is the same as that of the fifth embodiment described above, and the encryption device 100 ″ uses the ciphertext (c1, c2 *, c3, c4 *) are transmitted to the decoding device 200.

<復号処理>
次に、本実施の形態にかかる復号装置200’’’の行う復号処理の手順について図28を用いて説明する。復号装置200’’’は、公開鍵(q,g,g~,e,f,h)に対応する秘密鍵(x, y, z,w)を予め取得しているものとする。復号装置200’’’は、暗号化装置100”から送信された圧縮暗号文(c1,c2*,c3,c4*)を受信すると、上述の構成欄で具体的に説明したように、圧縮暗号文の各成分が正しい群の元となっているか否かを検査して、暗号文の正当性を検証する(ステップS80)。そして、復号装置200’’’は、暗号文が正当であると判定した場合(ステップS80:YES)、次いで、第5の実施の形態と同様に乱数wと暗号文成分c1とを用いて、検証用データk1として‘c1^w’を求める(ステップS61)。次いで、復号装置200’’’は、暗号文成分c1,c3と、圧縮暗号文c2*とを用いてハッシュ関数による計算を行って、ハッシュ値vを求める(ステップS81)。そして、復号装置200’’’は、ステップS81で求めたハッシュ値vと、秘密鍵成分x,yと、暗号文成分c1とを用いて、検証用データk2として‘c1^(x+y×v)’を求める(ステップS63)。また、復号装置200’’’は、検証用データk1とc圧縮暗号文成分c2*とが等価であるか否か及び検証用データk2と圧縮暗号文成分c4*とが等価であるか否かを判定する(ステップS82)。双方とも同値である場合(ステップS82:YES)、上述の第5の実施の形態と同様にして、復号装置200’’’は、ステップS40、ステップ28の処理を行い、ステップ28の計算の結果得られた中間データと暗号文成分c3とを用いて‘m=b^(−1)・c3’を計算して(ステップS30)、復号済み平文mを得る。ステップS80及びステップS82の判定結果が肯定的である場合には、復号装置200’’’は、ステップS30で求めた復号済みの平文を出力することになる。ステップS80又はステップS82の判定結果が否定的である場合、復号装置200’’’はエラーを出力し、復号済みの平文を出力しない。
<Decryption process>
Next, the procedure of the decoding process performed by the decoding device 200 ′ ″ according to the present embodiment will be described with reference to FIG. It is assumed that the decryption device 200 ′ ″ has previously acquired a secret key (x, y, z, w) corresponding to the public key (q, g, g˜, e, f, h). When receiving the compressed ciphertext (c1, c2 *, c3, c4 *) transmitted from the encryption device 100 ″, the decryption device 200 ′ ″ receives the compressed cipher as described in the configuration section above. It is checked whether or not each component of the sentence is a correct group element to verify the validity of the ciphertext (step S80), and the decryption apparatus 200 ′ ″ determines that the ciphertext is valid. If it is determined (step S80: YES), then “c1 ^ w” is obtained as the verification data k1 using the random number w and the ciphertext component c1 as in the fifth embodiment (step S61). Next, the decryption device 200 ′ ″ performs a calculation by a hash function using the ciphertext components c1 and c3 and the compressed ciphertext c2 * to obtain a hash value v (step S81). “” Indicates the value obtained in step S81. 'C1 ^ (x + y × v)' is obtained as verification data k2 using the cache value v, the secret key components x, y, and the ciphertext component c1 (step S63). 'Determines whether the verification data k1 and the c-compressed ciphertext component c2 * are equivalent, and whether the verification data k2 and the compressed ciphertext component c4 * are equivalent (step S82). If both values are the same (step S82: YES), the decoding device 200 ′ ″ performs the processing of step S40 and step 28 in the same manner as in the fifth embodiment described above. Using the obtained intermediate data and the ciphertext component c3, 'm = b ^ (-1) · c3' is calculated (step S30) to obtain the decrypted plaintext m, which is determined in step S80 and step S82. If the result is positive, The device 200 ′ ″ outputs the decrypted plaintext obtained in step S30. If the determination result in step S80 or step S82 is negative, the decryption device 200 ′ ″ outputs an error, Do not output decrypted plaintext.

以上のようにして、異なる表現間で暗号文成分の同一性が判定できる場合、圧縮暗号文成分の伸張を行わないことにより、伸張にかかる処理時間を削減することができる。   As described above, when the identity of the ciphertext component can be determined between different expressions, the processing time for decompression can be reduced by not decompressing the compressed ciphertext component.

[変形例]
なお、本発明は前記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成成分を変形して具体化できる。また、前記実施形態に開示されている複数の構成成分の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成成分から幾つかの構成成分を削除してもよい。さらに、異なる実施形態にわたる構成成分を適宜組み合わせてもよい。また、以下に例示するような種々の変形が可能である。
[Modification]
Note that the present invention is not limited to the above-described embodiment as it is, and can be embodied by modifying the constituent components without departing from the scope of the invention in the implementation stage. In addition, various inventions can be formed by appropriately combining a plurality of components disclosed in the embodiment. For example, some components may be deleted from all the components shown in the embodiment. Furthermore, constituent components over different embodiments may be appropriately combined. Further, various modifications as exemplified below are possible.

<変形例1>
上述した各実施の形態において、暗号化装置10で各々実行される各種プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また当該各種プログラムを、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成しても良い。暗号化装置10´、100、100´,100”,復号装置30,200,200´,200”、200’’’及び暗号文検証装置20で各々実行される各種プログラムについても同様である。
<Modification 1>
In each of the above-described embodiments, various programs executed by the encryption apparatus 10 may be stored on a computer connected to a network such as the Internet and provided by being downloaded via the network. good. The various programs are recorded in a computer-readable recording medium such as a CD-ROM, a flexible disk (FD), a CD-R, and a DVD (Digital Versatile Disk) in a file in an installable or executable format. May be configured to be provided. The same applies to various programs executed by the encryption devices 10 ′, 100, 100 ′, 100 ″, the decryption devices 30, 200, 200 ′, 200 ″, 200 ′ ″ and the ciphertext verification device 20, respectively.

また、上述した実施の形態において、暗号化装置10の有する各部は、CPUのプログラム実行時にRAMなどの記憶装置上に生成されるものとしたが、これらの全部又は一部をハードウェアにより構成するようにしても良い。暗号化装置10´、100、100´,100”,復号装置30,200,200´,200”、200’’’ 及び暗号文検証装置20の有する各部についても同様である。   Further, in the above-described embodiment, each unit of the encryption device 10 is generated on a storage device such as a RAM when the CPU program is executed, but all or a part thereof is configured by hardware. You may do it. The same applies to the units included in the encryption devices 10 ′, 100, 100 ′, 100 ″, the decryption devices 30, 200, 200 ′, 200 ″, 200 ″ ″ and the ciphertext verification device 20.

また、上述の各実施の形態の暗号化装置及び復号装置においては、べき乗計算及び乗算をべき乗計算部及び乗算部が各々行うように構成したが、べき乗計算部及び乗算部を1つの計算部として取り扱い、計算部がべき乗計算及び乗算を行うように構成しても良い。   In the encryption device and the decryption device of each of the above embodiments, the power calculation unit and the multiplication unit are configured to perform the power calculation and multiplication, respectively. However, the power calculation unit and the multiplication unit are used as one calculation unit. The handling and calculation unit may be configured to perform power calculation and multiplication.

<変形例2>
上述の第4の実施の形態においては、暗号化装置100は、暗号文成分のうちc3,c4のみならずc2を圧縮するように構成したが、第3の実施の形態と同様にして、暗号文成分c3,c4のみを圧縮するようにしても良い。
<Modification 2>
In the above-described fourth embodiment, the encryption device 100 is configured to compress not only c3 and c4 but also c2 out of the ciphertext components, but in the same manner as in the third embodiment, Only the sentence components c3 and c4 may be compressed.

また、各実施の形態においては、圧縮する対象の暗号文成分の数は、2つ又は3つに限らず1つであっても4つであっても良い。また、いずれの暗号文成分を圧縮するかは上述の例に限らない。   In each embodiment, the number of ciphertext components to be compressed is not limited to two or three, but may be one or four. Further, which ciphertext component is compressed is not limited to the above example.

尚、第3の実施の形態乃至第6の実施の形態においては、暗号文は(c1,c2,c3,c4)の4つの暗号文成分を含むように構成したが、暗号文成分の数はこれに限らない。   In the third to sixth embodiments, the ciphertext is configured to include four ciphertext components (c1, c2, c3, c4), but the number of ciphertext components is as follows. Not limited to this.

また、上述の第3の実施の形態乃至第6の実施の形態の暗号化処理においては、ハッシュ値vと公開鍵成分とを用いて暗号文成分c4を求める方法としてべき乗計算を行うこととしたが、その方法はべき乗計算に限らない。   Further, in the encryption processing of the third to sixth embodiments, power calculation is performed as a method for obtaining the ciphertext component c4 using the hash value v and the public key component. However, the method is not limited to power calculation.

有限体上の乗法群の離散対数問題に安全性の根拠を置く暗号方式で複数の暗号文成分を含む暗号文の正当性を検証する基本的な構成を例示する図である。It is a figure which illustrates the basic composition which verifies the legitimacy of the ciphertext containing a some ciphertext component by the encryption system which makes the grounds of security the discrete logarithm problem of the multiplicative group on a finite field. 第1の実施の形態にかかる暗号化装置の機能的構成を例示する図である。It is a figure which illustrates the functional structure of the encryption apparatus concerning 1st Embodiment. 同実施の形態にかかる暗号文検証装置の機能的構成を例示する図である。It is a figure which illustrates the functional structure of the ciphertext verification apparatus concerning the embodiment. 同実施の形態にかかる暗号化装置10の行う暗号化処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the encryption process which the encryption apparatus 10 concerning the embodiment performs. 同実施の形態にかかる暗号文検証装置20の行う暗号文検証処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the ciphertext verification process which the ciphertext verification apparatus 20 concerning the embodiment performs. ElGamal暗号において平文mを暗号化して暗号文を生成する暗号化装置と暗号文を復号する復号装置とを例示する図である。It is a figure which illustrates the encryption apparatus which encrypts plaintext m in ElGamal encryption, and produces | generates a ciphertext, and the decryption apparatus which decrypts a ciphertext. 第2の実施の形態にかかる暗号化装置の機能的構成を例示する図である。It is a figure which illustrates the functional structure of the encryption apparatus concerning 2nd Embodiment. 同実施の形態にかかる復号装置の機能的構成を例示する図である。It is a figure which illustrates the functional structure of the decoding apparatus concerning the embodiment. 同実施の形態にかかる暗号化装置10´の行う暗号化処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the encryption process which encryption apparatus 10 'concerning the embodiment performs. 同実施の形態にかかる復号装置30の行う暗号化処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the encryption process which the decoding apparatus 30 concerning the embodiment performs. Cramer-Shoup暗号スキームの基本的な構成を例示する図である。It is a figure which illustrates the basic composition of a Cramer-Shoup encryption scheme. 第3の実施の形態にかかる鍵生成装置が公開鍵及び秘密鍵を生成する鍵生成処理の概要を例示する図である。It is a figure which illustrates the outline | summary of the key production | generation process in which the key production | generation apparatus concerning 3rd Embodiment produces | generates a public key and a secret key. 同実施の形態にかかる暗号化装置100の機能的構成を例示する図である。It is a figure which illustrates the functional structure of the encryption apparatus 100 concerning the embodiment. 同実施の形態にかかる復号装置200の機能的構成を例示する図である。It is a figure which illustrates the functional structure of the decoding apparatus 200 concerning the embodiment. 同実施の形態にかかる暗号化装置100の行う暗号化処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the encryption process which the encryption apparatus 100 concerning the embodiment performs. 同実施の形態にかかる復号装置200の行う復号処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the decoding process which the decoding apparatus 200 concerning the embodiment performs. 第4の実施の形態にかかる鍵生成装置が公開鍵及び秘密鍵を生成する鍵生成処理の概要を例示する図である。It is a figure which illustrates the outline | summary of the key production | generation process in which the key production | generation apparatus concerning 4th Embodiment produces | generates a public key and a secret key. 同実施の形態にかかる復号装置200´の機能的構成を例示する図である。It is a figure which illustrates the functional structure of decoding apparatus 200 'concerning the embodiment. 同実施の形態にかかる復号装置200´の行う復号処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the decoding process which decoding apparatus 200 'concerning the embodiment performs. 第5の実施の形態にかかる鍵生成装置が公開鍵及び秘密鍵を生成する鍵生成処理の概要を例示する図である。It is a figure which illustrates the outline | summary of the key production | generation process in which the key production | generation apparatus concerning 5th Embodiment produces | generates a public key and a secret key. 同実施の形態にかかる暗号化装置100の機能的構成を例示する図である。It is a figure which illustrates the functional structure of the encryption apparatus 100 concerning the embodiment. 同実施の形態にかかる復号装置200”の機能的構成を例示する図である。It is a figure which illustrates the functional structure of the decoding apparatus 200 '' concerning the embodiment. 同実施の形態にかかる暗号化装置100の行う暗号化処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the encryption process which the encryption apparatus 100 concerning the embodiment performs. 同実施の形態にかかる復号装置200”の行う復号処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the decoding process which the decoding apparatus 200 '' concerning the embodiment performs. 第6の実施の形態にかかる暗号化装置100”の機能的構成を例示する図である。It is a figure which illustrates the functional structure of encryption apparatus 100 '' concerning 6th Embodiment. 同実施の形態にかかる復号装置200’’’の機能的構成を例示する図である。It is a figure which illustrates the functional structure of the decoding apparatus 200 '' '' concerning the embodiment. 同実施の形態にかかる暗号化装置100”の行う暗号化処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the encryption process which encryption apparatus 100 '' concerning the embodiment performs. 同実施の形態にかかる復号装置200’’’の行う復号処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the decoding process which the decoding apparatus 200 '' '' concerning the embodiment performs.

符号の説明Explanation of symbols

10,10´,100,100´,100” 暗号化装置
11 平文受信部
12 公開鍵受信部
13 第1暗号文生成部
14 暗号文成分圧縮部
15 第1暗号文生成部
16 暗号文出力部
20 暗号文検証装置
21 暗号文受信部
22 秘密鍵受信部
23 中間データ生成部
24 暗号文成分伸張部
25 正当性検証部
26 検証結果出力部
30 復号装置
31 暗号文受信部
32 秘密鍵受信部
33 中間データ生成部
34 暗号文成分伸張部
35 復号済み平文生成部
36 復号済み平文出力部
101 乱数生成部
102 第1べき乗計算部
103 乗算部
104 暗号文成分圧縮部
105 ハッシュ値計算部
106 第2べき乗計算部
107 第2暗号文成分圧縮部
200,200´,200”,200’’’ 復号装置
201 ハッシュ計算部
202 圧縮暗号文成分伸張部
203 第1べき乗計算部
204 第2べき乗計算部
205 逆元計算部
206 第1乗算部
207 第2乗算部
208 第3乗算部
209 トーラス元検証部
210 正当性検証部
211 復号済み平文出力部
212 第3べき乗計算部
10, 10 ', 100, 100', 100 "encryption device 11 plaintext receiving unit 12 public key receiving unit 13 first ciphertext generation unit 14 ciphertext component compression unit 15 first ciphertext generation unit 16 ciphertext output unit 20 Ciphertext verification device 21 Ciphertext reception unit 22 Secret key reception unit 23 Intermediate data generation unit 24 Ciphertext component decompression unit 25 Validity verification unit 26 Verification result output unit 30 Decryption device 31 Ciphertext reception unit 32 Private key reception unit 33 Intermediate Data generation unit 34 Ciphertext component decompression unit 35 Decrypted plaintext generation unit 36 Decrypted plaintext output unit 101 Random number generation unit 102 First power calculation unit 103 Multiplication unit 104 Ciphertext component compression unit 105 Hash value calculation unit 106 Second power calculation Unit 107 second ciphertext component compression unit 200, 200 ′, 200 ″, 200 ′ ″ decryption device 201 hash calculation unit 202 compression ciphertext component decompression unit 203 first Power calculation unit 204 Second power calculation unit 205 Inverse element calculation unit 206 First multiplication unit 207 Second multiplication unit 208 Third multiplication unit 209 Torus element verification unit 210 Validity verification unit 211 Decoded plaintext output unit 212 Third power calculation Part

Claims (24)

有限体上の乗法群の離散対数問題に安全性の根拠を置く暗号方式により平文を暗号化し、複数の暗号文成分を含む暗号文を出力する暗号化装置であって、
平文を受信する平文受信部と、
1つ以上の公開鍵成分を含む公開鍵を受信する公開鍵受信部と、
受信された前記平文と前記公開鍵成分とを用いて暗号文成分である第1の暗号文成分を少なくとも1つ以上生成する暗号文成分生成部と、
少なくとも1つ以上の前記第1の暗号文成分を圧縮して、第1の圧縮暗号文成分を得る第1暗号文成分圧縮部と、
受信された前記平文と、前記公開鍵成分と、前記第1の暗号文成分と、前記第1の圧縮暗号文成分とのうち、少なくとも1つ以上を用いて第2の暗号文成分を生成する第2暗号文成分生成部と、
少なくとも前記第1の圧縮暗号文成分と前記第2の暗号文成分とを含む暗号文を出力する暗号文出力部とを備える
ことを特徴とする暗号化装置。
An encryption device that encrypts plaintext by an encryption method based on the safety of a discrete logarithm problem of a multiplicative group on a finite field and outputs a ciphertext including a plurality of ciphertext components,
A plaintext receiver for receiving plaintext;
A public key receiving unit that receives a public key including one or more public key components;
A ciphertext component generation unit that generates at least one first ciphertext component that is a ciphertext component using the received plaintext and the public key component;
A first ciphertext component compression section that compresses at least one first ciphertext component to obtain a first compressed ciphertext component;
A second ciphertext component is generated using at least one of the received plaintext, the public key component, the first ciphertext component, and the first compressed ciphertext component. A second ciphertext component generation unit;
An encryption apparatus comprising: a ciphertext output unit that outputs a ciphertext including at least the first compressed ciphertext component and the second ciphertext component.
有限体上の乗法群の離散対数問題に安全性の根拠を置く暗号方式により平文を暗号化し、複数の暗号文成分を含む暗号文を出力する暗号化装置であって、
平文を受信する平文受信部と、
1つ以上の公開鍵成分を含む公開鍵を受信する公開鍵受信部と、
受信された前記平文と前記公開鍵成分とを用いて暗号文成分である第1の暗号文成分を少なくとも1つ以上生成する第1暗号文成分生成部と、
少なくとも1つ以上の前記第1の暗号文成分を圧縮して、第1の圧縮暗号文成分を得る第1暗号文成分圧縮部と、
受信された前記平文と、前記公開鍵成分と、前記第1の暗号文成分と、前記第1の圧縮暗号文成分とのうち、少なくとも1つ以上を用いて第2の暗号文成分を生成する第2暗号文成分生成部と、
前記第2の暗号文成分のうち少なくとも1つ以上を圧縮して、第2の圧縮暗号文成分を得る第2暗号文成分圧縮部と、
少なくとも前記第1の圧縮暗号文成分と第2の圧縮暗号文成分とを含む暗号文を出力する暗号文出力部とを備える
ことを特徴とする暗号化装置。
An encryption device that encrypts plaintext by an encryption method based on the safety of a discrete logarithm problem of a multiplicative group on a finite field and outputs a ciphertext including a plurality of ciphertext components,
A plaintext receiver for receiving plaintext;
A public key receiving unit that receives a public key including one or more public key components;
A first ciphertext component generation unit that generates at least one first ciphertext component that is a ciphertext component using the received plaintext and the public key component;
A first ciphertext component compression section that compresses at least one first ciphertext component to obtain a first compressed ciphertext component;
A second ciphertext component is generated using at least one of the received plaintext, the public key component, the first ciphertext component, and the first compressed ciphertext component. A second ciphertext component generation unit;
A second ciphertext component compression unit that compresses at least one of the second ciphertext components to obtain a second compressed ciphertext component;
An encryption apparatus comprising: a ciphertext output unit that outputs a ciphertext including at least the first compressed ciphertext component and the second compressed ciphertext component.
前記第2暗号文生成部は、
少なくとも1つ以上の前記第1の圧縮暗号文成分を用いてハッシュ値を計算するハッシュ計算部と、
前記ハッシュ値を用いて前記第2の暗号文成分を生成する生成部とを有する
ことを特徴とする請求項1又は2に記載の暗号化装置。
The second ciphertext generation unit
A hash calculation unit that calculates a hash value using at least one of the first compressed ciphertext components;
The encryption apparatus according to claim 1, further comprising: a generation unit that generates the second ciphertext component using the hash value.
前記暗号文は、復号時に平文の生成に用いる平文生成用暗号文成分又は前記平文生成用暗号文を前記第1の暗号文成分圧縮部あるいは前記第2の暗号文成分圧縮部で圧縮した圧縮平文生成用暗号文成分と、復号時に平文の生成と暗号文の正当性の検証とに用いる総合暗号文成分又は前記総合暗号文成分を前記第1の暗号文成分圧縮部あるいは前記第2の暗号文成分圧縮部で圧縮した圧縮総合暗号文成分と、復号時に暗号文の正当性の検証に用いる検証用暗号文成分又は前記検証用暗号文成分を前記第1の暗号文成分圧縮部あるいは前記第2の暗号文成分圧縮部で圧縮した圧縮検証用暗号文成分とを含み、
前記第1の暗号文成分は、前記平文生成用暗号文成分と、前記総合暗号文成分とを少なくとも含み、
前記第1暗号文生成部は、前記公開鍵を用いたべき乗算を行うことにより第1の暗号化係数を計算し、前記第1の暗号化係数と前記平文との乗算を行うことにより前記平文生成用暗号文成分を計算し、前記公開鍵を用いたべき乗算を行うことにより前記総合暗号文成分を計算し、
前記ハッシュ値計算部は、前記平文生成用暗号文成分又は前記圧縮平文生成用暗号文成分と、前記総合暗号文成分又は前記圧縮総合暗号文成分とを少なくとも用いてハッシュ値を計算し、
前記生成部は、前記ハッシュ値と前記公開鍵とを用いて、乗算とべき乗算とを行うことにより、前記検証用暗号文成分を含む前記第2の暗号文成分を生成する
ことを特徴とする請求項3に記載の暗号化装置。
The ciphertext is a compressed plaintext obtained by compressing a plaintext generating ciphertext component used for generating a plaintext at the time of decryption or the plaintext generating ciphertext by the first ciphertext component compressing unit or the second ciphertext component compressing unit. The ciphertext component for generation and the general ciphertext component or the general ciphertext component used for generating the plaintext and verifying the validity of the ciphertext at the time of decryption are used as the first ciphertext component compression unit or the second ciphertext. The compressed overall ciphertext component compressed by the component compression unit, the verification ciphertext component used for verifying the validity of the ciphertext at the time of decryption, or the verification ciphertext component are used as the first ciphertext component compression unit or the second ciphertext component compression unit. A ciphertext component for compression verification compressed by the ciphertext component compression section of
The first ciphertext component includes at least the plaintext generating ciphertext component and the general ciphertext component,
The first ciphertext generation unit calculates a first encryption coefficient by performing multiplication using the public key, and performs multiplication of the first encryption coefficient and the plaintext to perform the plaintext. Calculate a ciphertext component for generation, calculate the overall ciphertext component by performing multiplication using the public key,
The hash value calculation unit calculates a hash value using at least the plaintext generation ciphertext component or the compressed plaintext generation ciphertext component, and the general ciphertext component or the compression general ciphertext component,
The generating unit generates the second ciphertext component including the verification ciphertext component by performing multiplication and exponentiation using the hash value and the public key. The encryption device according to claim 3.
前記第1暗号文生成部は、
乱数を生成する乱数生成部と、
前記公開鍵に含まれる第1の公開鍵成分を用いてべき指数が前記乱数であるべき乗算を行うことにより第1の暗号化係数を計算し、前記第1の暗号化係数と前記平文との乗算を行うことにより前記平文生成用暗号文成分を計算し、前記公開鍵に含まれる第2の公開鍵成分を用いてべき指数が前記乱数であるべき乗算を行うことにより前記総合暗号文成分を計算する計算部とを有し、
前記生成部は、前記公開鍵に含まれる第3の公開鍵成分を用いてべき指数が前記乱数であるべき乗算を行うことにより第2の暗号化係数を計算し、前記公開鍵に含まれる第4の公開鍵成分を用いてべき指数が前記乱数と前記ハッシュ値との積であるべき乗算を行うことにより第3の暗号化係数を計算し、前記第2の暗号化係数と前記第3の暗号化係数とを乗算することにより、前記検証用暗号文成分を含む前記第2の暗号文成分を生成する
ことを特徴とする請求項4に記載の暗号化装置。
The first ciphertext generation unit
A random number generator for generating random numbers;
A first encryption coefficient is calculated by performing multiplication by which an exponent should be the random number using the first public key component included in the public key, and the first encryption coefficient and the plaintext are calculated. The plaintext generation ciphertext component is calculated by performing multiplication, and the overall ciphertext component is calculated by performing multiplication in which the exponent should be the random number using the second public key component included in the public key. A calculation unit for calculating,
The generation unit calculates a second encryption coefficient by performing multiplication by which an exponent should be the random number using a third public key component included in the public key, and includes a second encryption coefficient included in the public key. A third encryption coefficient is calculated by multiplying the exponent that should be the product of the random number and the hash value using the public key component of 4, and the second encryption coefficient and the third encryption coefficient The encryption apparatus according to claim 4, wherein the second ciphertext component including the verification ciphertext component is generated by multiplying an encryption coefficient.
前記計算部は、前記公開鍵に含まれる第1の公開鍵成分を用いてべき指数が前記乱数であるべき乗算を行うことにより第1の暗号化係数を計算し、前記第1の暗号化係数と前記平文との乗算を行うことにより前記平文生成用暗号文成分を計算し、前記公開鍵に含まれる少なくとも2つの第2の公開鍵成分を用いてべき指数が前記乱数であるべき乗算を各々行うことにより、少なくとも2つの前記総合暗号文成分を計算する
ことを特徴とする請求項5に記載の暗号化装置。
The calculation unit calculates a first encryption coefficient by performing a multiplication in which an exponent should be the random number using a first public key component included in the public key, and the first encryption coefficient The plaintext generation ciphertext component is calculated by multiplying the plaintext by multiplying the plaintext by using the at least two second public key components included in the public key. 6. The encryption apparatus according to claim 5, wherein at least two of the total ciphertext components are calculated by performing.
前記第1暗号文成分圧縮部は、少なくとも1つ以上の前記第1の暗号文成分を圧縮して、アフィン表現で表現された第1の圧縮暗号文成分を得る
ことを特徴とする請求項1乃至6のいずれか一項に記載の暗号化装置。
The first ciphertext component compression unit compresses at least one of the first ciphertext components to obtain a first compressed ciphertext component expressed in an affine expression. The encryption apparatus as described in any one of thru | or 6.
前記第2暗号文成分圧縮部は、前記第2の暗号文成分のうち少なくとも1つ以上を圧縮して、アフィン表現で表現された第2の圧縮暗号文成分を得る
ことを特徴とする請求項2乃至7のいずれか一項に記載の暗号化装置。
The second ciphertext component compression unit compresses at least one of the second ciphertext components to obtain a second compressed ciphertext component expressed in an affine expression. The encryption device according to any one of 2 to 7.
前記第1暗号文成分圧縮部と前記第2暗号文生成部とは並行して動作可能である
ことを特徴とする請求項2乃至8のいずれか一項に記載の暗号化装置。
The encryption apparatus according to any one of claims 2 to 8, wherein the first ciphertext component compression unit and the second ciphertext generation unit are operable in parallel.
有限体上の乗法群の離散対数問題に安全性の根拠を置く暗号方式により暗号化され複数の暗号文成分を含む暗号文を復号して平文を得る復号装置であって、
前記暗号文成分のうち少なくとも1つが圧縮された圧縮暗号文成分を含む暗号文を受信する暗号文受信部と、
前記暗号文の暗号化に用いられた公開鍵に対応する1つ以上の秘密鍵成分を含む秘密鍵を受信する秘密鍵受信部と、
受信された前記暗号文成分と前記秘密鍵成分とのうちいずれかを少なくとも用いて、前記暗号文の復号に用いる中間データを生成する中間データ生成部と、
前記圧縮暗号文成分を演算可能な表現で表現した伸張済み圧縮暗号分成分に伸張する暗号文成分伸張部と、
前記中間データの一部と、前記伸張済み圧縮暗号文成分と、前記暗号文成分とのいずれかを少なくとも用いて復号済みの平文を生成する復号済み平文生成部と、
復号済みの前記平文を出力する復号済み平文出力部とを備える
ことを特徴とする復号装置。
A decryption device that obtains a plaintext by decrypting a ciphertext including a plurality of ciphertext components that is encrypted by a cryptosystem based on the safety of the discrete logarithm problem of a multiplicative group on a finite field,
A ciphertext receiving unit that receives a ciphertext including a compressed ciphertext component in which at least one of the ciphertext components is compressed;
A secret key receiving unit that receives a secret key including one or more secret key components corresponding to the public key used for encrypting the ciphertext;
An intermediate data generation unit that generates intermediate data used for decryption of the ciphertext using at least one of the received ciphertext component and the secret key component;
A ciphertext component decompression unit that decompresses the compressed ciphertext component into a decompressed compressed ciphertext component that is expressed in an operable expression;
A decrypted plaintext generation unit that generates a decrypted plaintext using at least one of the intermediate data, the decompressed compressed ciphertext component, and the ciphertext component;
And a decrypted plaintext output unit that outputs the decrypted plaintext.
前記中間データの一部と、前記伸張済み圧縮暗号文成分と、前記暗号文成分とのいずれかを少なくとも用いて、前記暗号文の正当性を検証するための検証用データを生成する検証用データ生成部と、
前記検証用データと前記検証用暗号文成分の少なくとも一部を用いて前記暗号文の正当性を検証する正当性検証部とを更に備え、
前記復号済み平文出力部は、前記暗号文が正当であると検証された場合、前記平文を出力し、前記暗号文が正当でないと検証された場合、前記暗号文が正当ではない旨を出力する
ことを特徴とする請求項10に記載の復号装置。
Verification data for generating verification data for verifying the validity of the ciphertext using at least one of the part of the intermediate data, the decompressed compressed ciphertext component, and the ciphertext component A generator,
A validity verification unit that verifies the validity of the ciphertext using at least a part of the verification data and the ciphertext component for verification,
The decrypted plaintext output unit outputs the plaintext when the ciphertext is verified as valid, and outputs that the ciphertext is not valid when the ciphertext is verified as invalid. The decoding device according to claim 10.
前記暗号文は、前記平文の生成に用いる暗号文成分である平文生成用暗号文成分又は前記平文生成用暗号文成分を圧縮した圧縮平文生成用暗号文成分と、前記平文の生成と前記暗号文の正当性の検証とに用いる暗号文成分である総合暗号文成分又は前記総合暗号文成分を圧縮した圧縮総合暗号文成分と、前記暗号文の正当性の検証に用いる暗号文成分である検証用暗号文成分又は前記検証用暗号文成分を圧縮した圧縮検証用暗号文成分とを含む4つの暗号文成分を含み、
前記中間データ生成部は、
前記平文生成用暗号文成分又は前記圧縮平文生成用暗号文成分と、前記総合暗号文成分又は前記圧縮総合暗号文成分とを少なくとも用いてハッシュ値を計算するハッシュ値計算部と、
前記ハッシュ値と、受信された前記暗号文成分と前記秘密鍵成分とのうちいずれかを少なくとも用いて前記中間データを生成する生成部とを有する
ことを特徴とする請求項10又は11に記載の復号装置。
The ciphertext includes a plaintext generating ciphertext component which is a ciphertext component used for generating the plaintext, or a compressed plaintext generating ciphertext component obtained by compressing the plaintext generating ciphertext component, and the generation of the plaintext and the ciphertext. A ciphertext component that is a ciphertext component used for verifying the validity of the ciphertext, or a compressed general ciphertext component that is a compression of the total ciphertext component, and a ciphertext component that is used for verifying the validity of the ciphertext Including four ciphertext components including a ciphertext component or a compressed verification ciphertext component obtained by compressing the verification ciphertext component,
The intermediate data generation unit
A hash value calculation unit that calculates a hash value using at least the plaintext generation ciphertext component or the compressed plaintext generation ciphertext component, and the total ciphertext component or the compression total ciphertext component;
The generation unit that generates the intermediate data using at least one of the hash value and the received ciphertext component and the secret key component. Decoding device.
前記暗号文成分伸張部は、前記圧縮暗号文成分を演算可能な表現である拡大体表現又は射影表現で表現した伸張済み圧縮暗号分成分に伸張する
ことを特徴とする請求項10乃至12のいずれか一項に記載の復号装置。
13. The ciphertext component decompression unit decompresses the compressed ciphertext component into an expanded compressed ciphertext component expressed by an expanded field expression or a projective expression that is an expression that can be calculated. The decoding device according to claim 1.
前記正当性検証部は、前記検証用データと、前記検証用暗号文成分又は前記圧縮検証用暗号文成分との等価性を検証することにより、前記暗号文の正当性を検証する
ことを特徴とする請求項12に記載の復号装置。
The validity verification unit verifies the validity of the ciphertext by verifying the equivalence between the verification data and the verification ciphertext component or the compressed verification ciphertext component. The decoding device according to claim 12.
前記ハッシュ値計算部、前記暗号文成分伸張部、前記検証用データ生成部及び前記復号済み平文生成部は並列に動作可能である
ことを特徴とする請求項12乃至14のいずれか一項に記載の復号装置。
15. The hash value calculation unit, the ciphertext component decompression unit, the verification data generation unit, and the decrypted plaintext generation unit can operate in parallel. Decoding device.
前記ハッシュ値計算部、前記暗号文成分伸張部、前記検証用データ生成部、前記復号済み平文生成部及び前記生成部は並列に動作可能である
ことを特徴とする請求項12乃至14のいずれか一項に記載の復号装置。
15. The hash value calculation unit, the ciphertext component decompression unit, the verification data generation unit, the decrypted plaintext generation unit, and the generation unit can operate in parallel. The decoding device according to one item.
有限体上の乗法群の離散対数問題に安全性の根拠を置く暗号方式により暗号化され複数の暗号文成分を含む暗号文を復号して平文を得る復号装置であって、
前記暗号文成分のうち少なくとも1つが圧縮された圧縮暗号文成分を含む暗号文を受信する暗号文受信部と、
前記暗号文の暗号化に用いられた公開鍵に対応する1つ以上の秘密鍵成分を含む秘密鍵を受信する秘密鍵受信部と、
受信された前記暗号文成分と前記秘密鍵成分とのうちいずれかを少なくとも用いて、平文を計算する平文計算部と、
受信された前記暗号文成分と前記秘密鍵成分とのうちいずれかを少なくとも用いて、前記暗号文の正当性を検証するための検証用データを生成する検証用データ生成部と、
前記圧縮暗号文成分と前記検証用データとを少なくとも用いて、前記暗号文の正当性を検証する正当性検証部と、
前記暗号文が正当であると検証された場合、前記平文を出力し、前記暗号文が正当でないと検証された場合、前記暗号文が不正である旨を出力する復号済み平文出力部とを備える
ことを特徴とする復号装置。
A decryption device that obtains a plaintext by decrypting a ciphertext including a plurality of ciphertext components that is encrypted by a cryptosystem based on the safety of the discrete logarithm problem of a multiplicative group on a finite field,
A ciphertext receiving unit that receives a ciphertext including a compressed ciphertext component in which at least one of the ciphertext components is compressed;
A secret key receiving unit that receives a secret key including one or more secret key components corresponding to the public key used for encrypting the ciphertext;
A plaintext calculation unit for calculating a plaintext using at least one of the received ciphertext component and the secret key component;
A verification data generation unit that generates verification data for verifying the validity of the ciphertext using at least one of the received ciphertext component and the secret key component;
A validity verification unit that verifies the validity of the ciphertext using at least the compressed ciphertext component and the verification data;
A decrypted plaintext output unit that outputs the plaintext when the ciphertext is verified as valid and outputs that the ciphertext is invalid when the ciphertext is verified as invalid A decoding device characterized by the above.
前記暗号文は、前記平文の生成に用いる平文生成用暗号文成分と、前記平文の生成と前記暗号文の正当性の検証に用いる総合暗号文成分と、前記暗号文の正当性の検証に用いる検証用暗号文成分又は前記検証用暗号文成分を圧縮した圧縮検証用暗号文成分とを含む4つの暗号文成分を含み、
前記検証用データ生成部は、
前記平文生成用暗号文成分と、前記総合暗号文成分とを少なくとも用いて、ハッシュ値を計算するハッシュ値計算部と、
前記ハッシュ値と受信された前記暗号文成分と前記秘密鍵成分とのうちいずれかを少なくとも用いて、前記検証用データを生成する生成部とを有する
ことを特徴とする請求項17に記載の復号装置。
The ciphertext is used for plaintext generation ciphertext components used for generation of the plaintext, a general ciphertext component used for generation of the plaintext and verification of the validity of the ciphertext, and verification of the validity of the ciphertext. Including four ciphertext components including a verification ciphertext component or a compressed verification ciphertext component obtained by compressing the verification ciphertext component,
The verification data generation unit includes:
A hash value calculation unit that calculates a hash value using at least the plaintext generation ciphertext component and the general ciphertext component;
The decryption according to claim 17, further comprising: a generation unit that generates the verification data using at least one of the hash value, the received ciphertext component, and the secret key component. apparatus.
各前記暗号文成分が正しくトーラスの元となっているか否かを検証するトーラス元検証部を更に備える
ことを特徴とする請求項10乃至18のいずれか一項に記載の復号装置。
The decryption apparatus according to any one of claims 10 to 18, further comprising a torus element verification unit that verifies whether each ciphertext component is a correct torus element.
有限体上の乗法群の離散対数問題に安全性の根拠を置く暗号方式により暗号化され複数の暗号文成分を含む暗号文の正当性を検証する暗号文正当性検証装置であって、
前記暗号文成分のうち少なくとも1つが圧縮された圧縮暗号文成分を含む暗号文を受信する暗号文受信部と、
前記暗号文の暗号化に用いられた公開鍵に対応する1つ以上の秘密鍵成分を含む秘密鍵を受信する秘密鍵受信部と、
受信された前記暗号文成分と前記秘密鍵成分とのうちいずれかを少なくとも用いて、前記暗号文の復号に用いる中間データを生成する中間データ生成部と、
前記圧縮暗号文成分の表現を演算可能な表現である伸張済み圧縮暗号分成分に伸張する暗号文成分伸張部と、
前記中間データの一部と、前記伸張済み圧縮暗号文成分と、前記暗号文成分とのいずれかを少なくとも用いて前記暗号文の正当性を検証する正当性検証部と、
前記正当性検証部の検証結果を出力する検証結果出力部とを備える
ことを特徴とする暗号文検証装置。
A ciphertext validity verification device that verifies the validity of a ciphertext that is encrypted by a cryptosystem that is based on the safety of the discrete logarithm problem of a multiplicative group on a finite field and includes a plurality of ciphertext components,
A ciphertext receiving unit that receives a ciphertext including a compressed ciphertext component in which at least one of the ciphertext components is compressed;
A secret key receiving unit that receives a secret key including one or more secret key components corresponding to the public key used for encrypting the ciphertext;
An intermediate data generation unit that generates intermediate data used for decryption of the ciphertext using at least one of the received ciphertext component and the secret key component;
A ciphertext component decompression unit that decompresses the compressed ciphertext component expression into an expanded compressed ciphertext component that is an operable expression;
A validity verification unit that verifies the validity of the ciphertext using at least one of the intermediate data, the decompressed compressed ciphertext component, and the ciphertext component;
A ciphertext verification apparatus comprising: a verification result output unit that outputs a verification result of the validity verification unit.
有限体上の乗法群の離散対数問題に安全性の根拠を置く暗号方式により暗号化され複数の暗号文成分を含む暗号文の正当性を検証する暗号文検証装置であって、
前記暗号文成分のうち少なくとも1つが圧縮された圧縮暗号文成分を含む暗号文を受信する暗号文受信部と、
前記暗号文の暗号化に用いられた公開鍵に対応する1つ以上の秘密鍵成分を含む秘密鍵を受信する秘密鍵受信部と、
受信された前記暗号文成分と前記秘密鍵成分とのうちいずれかを少なくとも用いて、平文を計算する平文計算部と、
受信された前記暗号文成分と前記秘密鍵成分とのうちいずれかを少なくとも用いて、前記暗号文の正当性を検証するための検証用データを生成する検証用データ生成部と、
前記圧縮暗号文成分と前記検証用データとを少なくとも用いて、前記暗号文の正当性を検証する正当性検証部と、
前記正当性検証部の検証結果を出力する検証結果出力部とを備える
ことを特徴とする暗号文検証装置。
A ciphertext verification apparatus that verifies the validity of a ciphertext that is encrypted by a cryptosystem that is based on the safety of the discrete logarithm problem of a multiplicative group on a finite field and includes a plurality of ciphertext components,
A ciphertext receiving unit that receives a ciphertext including a compressed ciphertext component in which at least one of the ciphertext components is compressed;
A secret key receiving unit that receives a secret key including one or more secret key components corresponding to the public key used for encrypting the ciphertext;
A plaintext calculation unit for calculating a plaintext using at least one of the received ciphertext component and the secret key component;
A verification data generation unit that generates verification data for verifying the validity of the ciphertext using at least one of the received ciphertext component and the secret key component;
A validity verification unit that verifies the validity of the ciphertext using at least the compressed ciphertext component and the verification data;
A ciphertext verification apparatus comprising: a verification result output unit that outputs a verification result of the validity verification unit.
有限体上の乗法群の離散対数問題に安全性の根拠を置く暗号方式により平文を暗号化し、複数の暗号文成分を含む暗号文を出力する暗号化装置で実行される暗号化方法であって、
平文を受信する平文受信ステップと、
1つ以上の公開鍵成分を含む公開鍵を受信する公開鍵受信ステップと、
受信された前記平文と前記公開鍵成分とを用いて暗号文成分である第1の暗号文成分を少なくとも1つ以上生成する第1暗号文成分生成ステップと、
少なくとも1つ以上の前記第1の暗号文成分を圧縮して、第1の圧縮暗号文成分を得る第1暗号文成分圧縮ステップと、
受信された平文と、前記公開鍵成分と、前記第1の暗号文成分と、前記第1の圧縮暗号文成分とのうち、少なくとも1つ以上を用いて第2の暗号文成分を生成する第2暗号文成分生成ステップと、
少なくとも前記第1の圧縮暗号文成分と前記第2の暗号文成分とを含む暗号文を出力する暗号文出力ステップとを含む
ことを特徴とする暗号化方法。
An encryption method that is executed by an encryption device that encrypts plaintext by an encryption method that lays the grounds for safety in a discrete logarithm problem of a multiplicative group over a finite field and outputs a ciphertext containing a plurality of ciphertext components ,
A plaintext receiving step for receiving plaintext;
A public key receiving step of receiving a public key including one or more public key components;
A first ciphertext component generation step of generating at least one first ciphertext component that is a ciphertext component using the received plaintext and the public key component;
A first ciphertext component compression step of compressing at least one of the first ciphertext components to obtain a first compressed ciphertext component;
A second ciphertext component is generated using at least one of the received plaintext, the public key component, the first ciphertext component, and the first compressed ciphertext component. 2 ciphertext component generation step;
A ciphertext output step of outputting a ciphertext including at least the first compressed ciphertext component and the second ciphertext component.
有限体上の乗法群の離散対数問題に安全性の根拠を置く暗号方式により暗号化され複数の暗号文成分を含む暗号文を復号して平文を得る復号装置で実行される復号方法であって、
前記暗号文成分のうち少なくとも1つが圧縮された圧縮暗号文成分を含む暗号文を受信する暗号文受信ステップと、
前記暗号文の暗号化に用いられた公開鍵に対応する1つ以上の秘密鍵成分を含む秘密鍵を受信する秘密鍵受信ステップと、
受信された前記暗号文成分と前記秘密鍵成分とのうちいずれかを少なくとも用いて復号に必要な中間データを生成する中間データ生成ステップと、
前記圧縮暗号文成分を演算可能な表現で表現した伸張済み圧縮暗号分成分に伸張する暗号文成分伸張ステップと、
前記中間データの一部と、前記伸張済み圧縮暗号文成分と、前記暗号文成分とのいずれかを少なくとも用いて復号済みの平文を生成する復号済み平文生成ステップと、
復号済みの前記平文を出力する復号済み平文出力ステップとを含む
ことを特徴とする復号方法。
A decryption method executed by a decryption device that decrypts a ciphertext containing a plurality of ciphertext components encrypted by a cryptosystem based on the safety of the discrete logarithm problem of a multiplicative group over a finite field, and obtains plaintext ,
A ciphertext receiving step of receiving a ciphertext including a compressed ciphertext component in which at least one of the ciphertext components is compressed;
A secret key receiving step of receiving a secret key including one or more secret key components corresponding to the public key used for encrypting the ciphertext;
An intermediate data generation step of generating intermediate data necessary for decryption using at least one of the received ciphertext component and the secret key component;
A ciphertext component decompression step for decompressing the compressed ciphertext component into a decompressed compressed ciphertext component expressed in an operable expression;
A decrypted plaintext generation step for generating a decrypted plaintext using at least one of the intermediate data, the decompressed compressed ciphertext component, and the ciphertext component;
A decrypted plaintext output step for outputting the decrypted plaintext.
請求項22又は23に記載の方法をコンピュータに実行させることを特徴とするプログラム。   24. A program for causing a computer to execute the method according to claim 22 or 23.
JP2008216016A 2008-08-25 2008-08-25 Encryption device, decryption device, cryptography verifying device, encryption method, decryption method and program Pending JP2010049214A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008216016A JP2010049214A (en) 2008-08-25 2008-08-25 Encryption device, decryption device, cryptography verifying device, encryption method, decryption method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008216016A JP2010049214A (en) 2008-08-25 2008-08-25 Encryption device, decryption device, cryptography verifying device, encryption method, decryption method and program

Publications (1)

Publication Number Publication Date
JP2010049214A true JP2010049214A (en) 2010-03-04

Family

ID=42066315

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008216016A Pending JP2010049214A (en) 2008-08-25 2008-08-25 Encryption device, decryption device, cryptography verifying device, encryption method, decryption method and program

Country Status (1)

Country Link
JP (1) JP2010049214A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013003968A (en) * 2011-06-20 2013-01-07 Nippon Telegr & Teleph Corp <Ntt> Log management device, log management method and log management program
CN112235098A (en) * 2020-09-17 2021-01-15 成都万江港利科技股份有限公司 Simple and rapid communication encryption and decryption algorithm

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013003968A (en) * 2011-06-20 2013-01-07 Nippon Telegr & Teleph Corp <Ntt> Log management device, log management method and log management program
CN112235098A (en) * 2020-09-17 2021-01-15 成都万江港利科技股份有限公司 Simple and rapid communication encryption and decryption algorithm

Similar Documents

Publication Publication Date Title
JP6964688B2 (en) Devices and methods for performing approximation operations on ciphertext
JP4384056B2 (en) ENCRYPTION DEVICE, DECRYPTION DEVICE, KEY GENERATION DEVICE, PROGRAM, AND METHOD
JP4575283B2 (en) ENCRYPTION DEVICE, DECRYPTION DEVICE, PROGRAM, AND METHOD
JP6083234B2 (en) Cryptographic processing device
JP4786531B2 (en) Encryption system, encryption device, decryption device, program, and integrated circuit
JP4197710B2 (en) ENCRYPTION DEVICE, DECRYPTION DEVICE, PROGRAM, AND METHOD
JP2016012111A (en) Encryption processing method, encryption processing device, and encryption processing program
KR101608515B1 (en) Computation Method of encrypted data using Homomorphic Encryption and Public Key Encryption and Server using the same
JPH09230786A (en) Encoding method of data and device therefor
JP2010204466A (en) Encryption device, decryption device, key generating device and program
JP2010049213A (en) Encrypting device, decrypting device, cipher communication system, method and program
JP2005331656A (en) Encryption device, decoding device, key production system, program, and method
WO2007011071A1 (en) Time apparatus, encrypting apparatus, decrypting apparatus, and encrypting/decrypting system
JP2009175197A (en) Encryption device, decryption device, key generation device and program
JP2009193024A (en) Decryption processing apparatus, encryption processing system, decryption processing method and program
JP2009199068A (en) Secret calculation system, secret calculation method, secret calculation device, verification device, and program
JP2010049212A (en) Apparatus, method, and program for decrypting, and apparatus, method, and program for encrypting
JP2010049214A (en) Encryption device, decryption device, cryptography verifying device, encryption method, decryption method and program
JP5300373B2 (en) Apparatus and program for performing data compression processing using algebraic torus
JP5300374B2 (en) Expression conversion device, arithmetic device, expression conversion method, and program
JP4715748B2 (en) How to apply padding to ensure the security of cryptography
JP5354994B2 (en) Apparatus and program for performing data compression processing using algebraic torus
WO2014141907A1 (en) Encrypted data computation system, device, and program
JP2006227563A (en) Method, system, and program for secret calculation
JP2011119985A (en) Encryption and decryption method