JP4528114B2 - Key generation device, encryption device, inspection device, decryption device, key generation program, encryption program, inspection program, decryption program - Google Patents
Key generation device, encryption device, inspection device, decryption device, key generation program, encryption program, inspection program, decryption program Download PDFInfo
- Publication number
- JP4528114B2 JP4528114B2 JP2004381445A JP2004381445A JP4528114B2 JP 4528114 B2 JP4528114 B2 JP 4528114B2 JP 2004381445 A JP2004381445 A JP 2004381445A JP 2004381445 A JP2004381445 A JP 2004381445A JP 4528114 B2 JP4528114 B2 JP 4528114B2
- Authority
- JP
- Japan
- Prior art keywords
- key
- encryption
- stored
- program
- inspection
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
- H04L9/3073—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
- H04L2209/463—Electronic voting
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
Abstract
Description
本発明は,情報セキュリティ技術に関し,特に計算量理論に基づく情報セキュリティ技術に関する。 The present invention relates to information security technology, and more particularly to information security technology based on the computational complexity theory.
近時,公衆電気通信網の発達に伴い,情報セキュリティ技術の重要性が高まっている。情報セキュリティ技術には,計算量理論に基づくもの,計算可能性理論に基づくもの,情報理論に基づくものなどがある。これらの中でも,計算量理論に基づくものが計算効率などの観点から実用性が高いと言える。 Recently, with the development of public telecommunications networks, the importance of information security technology is increasing. Information security technologies include those based on computational complexity theory, those based on computability theory, and those based on information theory. Among these, the one based on the computational complexity theory is said to be highly practical from the viewpoint of calculation efficiency.
ところで現在,実用化されている情報セキュリティ技術として,RSA暗号がある(下記非特許文献1参照)。このRSA暗号は公開鍵を用いるものであり,公開鍵暗号である。公開鍵暗号は,暗号化と復号化において用いる鍵が異なることが特徴の暗号系である。
By the way, RSA cryptography is currently used as an information security technology (see Non-Patent
以下,RSA暗号の鍵生成,暗号化及び復号化について概略を説明する。ここで,暗号化される情報を平文mとし,これが暗号化されたものを暗号文cとする。なお,mはZnの元とする(この明細書において特に断りの無い限り,Znは0以上n未満の整数集合を表す。)。
<鍵生成>
十分に大きい2つの素数p,qを選択し,n=pqとする。また,λ(n)=LCM(p−1,q−1)を演算する(LCM(α,β)は,αとβの最小公倍数を表す。)。Zλ(n)の元であり且つGCD(e,λ(n))を満足する適当なeを定め(GCD(α,β)は,αとβの最大公約数を表す。),d=e−1 mod λ(n)を演算する。ここで得られたdを秘密鍵とし,e,nを公開鍵とする。
<暗号化>
平文mは公開鍵e,nを用いて暗号化される。具体的には暗号文cは,c=me mod nとして得られる。
<復号化>
暗号文cは,秘密鍵dを用いて復号化される。具体的には平文mは,m=cdmod nとして得られる。
The outline of RSA encryption key generation, encryption, and decryption will be described below. Here, it is assumed that the information to be encrypted is plaintext m, and the encrypted information is ciphertext c. Incidentally, m is an original Z n (unless otherwise stated in this specification, Z n represents an integer set from 0 to less than n.).
<Key generation>
Two sufficiently large prime numbers p and q are selected, and n = pq. Further, λ (n) = LCM (p−1, q−1) is calculated (LCM (α, β) represents the least common multiple of α and β). An appropriate e that is an element of Z λ (n) and satisfies GCD (e, λ (n)) is determined (GCD (α, β) represents the greatest common divisor of α and β), d = e −1 mod λ (n) is calculated. Here, d obtained is a secret key, and e and n are public keys.
<Encryption>
The plaintext m is encrypted using the public keys e and n. Specifically, the ciphertext c is obtained as c = m e mod n.
<Decryption>
The ciphertext c is decrypted using the secret key d. Specifically, the plaintext m is obtained as m = c d mod n.
このRSA暗号には,2つの平文m0,m1のそれぞれに対応する暗号文c0,c1に関して,c0c1=(m0m1)e mod nとなる性質がある。即ち,暗号文に対応する平文の内容を知らなくても,暗号文さえ知っていれば,平文同士の演算結果に対応する暗号文を生成することができる。暗号のこうような性質を準同型性という。 This RSA cipher has the property that c 0 c 1 = (m 0 m 1 ) e mod n for cipher texts c 0 and c 1 corresponding to two plaintexts m 0 and m 1 , respectively. That is, even if the plaintext corresponding to the ciphertext is not known, the ciphertext corresponding to the operation result between the plaintexts can be generated as long as the ciphertext is known. This property of cryptography is called homomorphism.
ところで,RSA暗号のような公開鍵暗号において,1bitの情報m∈{m0,m1}(記号∈は,mが集合{m0,m1}の元であることを表す。)を暗号化して,この暗号文cを,公衆電気通信網を介して秘密鍵の持ち主に伝達する場合を考える。この場合,誰でも公開鍵e,nと1bitの情報m∈{m0,m1}を利用できるので,平文m0,m1のそれぞれに対応する暗号文c0,c1を演算できてしまう。従って例えば,ある暗号文cが暗号文c0に対応するかを判定することで,暗号化されて伝達された平文がm0であったか否かを判定できてしまうことになる。 By the way, in public key cryptography such as RSA cryptography, 1-bit information mε {m 0 , m 1 } (the symbol ε represents that m is an element of the set {m 0 , m 1 }). Consider the case where the ciphertext c is transmitted to the owner of the secret key via the public telecommunication network. In this case, since anyone can use the public key e, n and 1-bit information mε {m 0 , m 1 }, the ciphertexts c 0 and c 1 corresponding to the plaintexts m 0 and m 1 can be calculated. End up. Thus, for example, by determining whether a ciphertext c corresponds to the ciphertext c 0, so that the plaintext has been transmitted is encrypted she can determine whether a m 0.
RSA暗号のような公開鍵暗号の弱点を解決するには,暗号文から平文の部分情報が漏出しない公開鍵暗号を構築すれば良い。これは,暗号化の手続きが確率的に行われることによって実現され,一般には,同一の平文から生成される暗号文は異なる。このような暗号を確率暗号と呼び,RSA暗号のように,同一の平文からは同一の暗号文が生成される公開鍵暗号を確定暗号と呼ぶ。そして,確率暗号としてはElGamal暗号が挙げられる(下記非特許文献1参照)。ElGamal暗号は,Diffie-Hellman鍵配送の一種の変形であって,Diffie-Hellman判定問題の困難性の下に確率暗号と言うことができる。
In order to solve the weaknesses of public key cryptography such as RSA cryptography, public key cryptography in which plaintext partial information is not leaked from the ciphertext may be constructed. This is realized by performing the encryption procedure stochastically. Generally, ciphertexts generated from the same plaintext are different. Such a cipher is called a stochastic cipher, and a public key cipher in which the same ciphertext is generated from the same plaintext, like the RSA cipher, is called a definite cipher. An example of the stochastic encryption is ElGamal encryption (see Non-Patent
以下,ElGamal暗号の鍵生成,暗号化及び復号化について概略を説明する。ここで,暗号化される情報を平文mとし,これが暗号化されたものを暗号文cとする。なお,mはZp *の元とする(この明細書において特に断りの無い限り,Zp *はZpかつpと互いに素な整数集合を表す。)。
<鍵生成>
十分に大きい素数pを選択し,乗法群Zp *の生成元gを求める。また,乱数xを求め(xは,Zp−1の元とする。),y=gx mod pを演算する。ここで得られたxを秘密鍵とし,y,g,pを公開鍵とする(g,pは,暗号システム上共通のものでも良い。)。
<暗号化>
平文mは乱数t(但し乱数tは,Zp−1の元とする。)と公開鍵y,g,pを用いて暗号化される。具体的には暗号文cは,c=(G,Y)として得られ,G=gt mod p,Y=m×yt mod pである。
<復号化>
暗号文c=(G,Y)は,秘密鍵xを用いて復号化される。具体的には平文mは,m=Y/Gx mod pとして得られる。
Hereinafter, an outline of key generation, encryption, and decryption of ElGamal encryption will be described. Here, it is assumed that the information to be encrypted is plaintext m, and the encrypted information is ciphertext c. Note that m is an element of Z p * (unless otherwise specified in this specification, Z p * represents a set of integers relatively prime to Z p and p).
<Key generation>
A sufficiently large prime p is selected, and a generator g of the multiplicative group Z p * is obtained. Further, a random number x is obtained (x is an element of Z p-1 ), and y = g x mod p is calculated. X obtained here is a secret key, and y, g, and p are public keys (g and p may be common on the cryptographic system).
<Encryption>
The plaintext m is encrypted using a random number t (where random number t is an element of Z p-1 ) and public keys y, g, and p. Specifically, the ciphertext c is obtained as c = (G, Y), and G = g t mod p, Y = m × y t mod p.
<Decryption>
The ciphertext c = (G, Y) is decrypted using the secret key x. Specifically, the plaintext m is obtained as m = Y / G x mod p.
このElGamal暗号には,2つの平文m0,m1のそれぞれに対応する暗号文c0=(G0,Y0),c1=(G1,Y1)に関して,m0m1に対応する暗号文がc0c1=(G0G1,Y0Y1)となる性質がある。即ち,暗号文に対応する平文の内容を知らなくても,暗号文さえ知っていれば,平文同士の演算結果に対応する暗号文を生成することができる(準同型性)。 This ElGamal cipher corresponds to m 0 m 1 with respect to cipher texts c 0 = (G 0 , Y 0 ) and c 1 = (G 1 , Y 1 ) corresponding to the two plaintexts m 0 and m 1 , respectively. The ciphertext is such that c 0 c 1 = (G 0 G 1 , Y 0 Y 1 ). That is, without knowing the contents of the plaintext corresponding to the ciphertext, the ciphertext corresponding to the operation result between the plaintexts can be generated as long as the ciphertext is known (homogeneity).
以上のような公開鍵暗号において,所定の者に対しては確定暗号として機能し,その他の者に対しては確率暗号として機能する機能暗号を考えると,確定暗号に確率暗号を関連付けて適用することで実現可能になる。そして一般の確率暗号において,暗号文に対応する平文が一致するかを判定するためには,確率暗号の秘密鍵を持つ必要があるので,この秘密鍵を,所定の者に対して確定暗号として機能するための機能暗号における検査鍵とすればよい。この検査鍵を用いると,検査鍵を持つ所定の者には,機能暗号が確定暗号として機能することになり,平文そのものを秘匿したまま2つの暗号文に対応する平文の一致性を検査することができることになる。 In the public key cryptography as described above, if a functional cipher that functions as a definite cipher for a predetermined person and functions as a stochastic cipher for others, a stochastic cipher is associated with the definitive cipher and applied. It becomes feasible. In general stochastic encryption, in order to determine whether the plaintext corresponding to the ciphertext matches, it is necessary to have a secret key for the stochastic encryption. What is necessary is just to use the inspection key in the functional encryption for functioning. If this check key is used, the function cipher will function as a definite cipher for a given person with the check key, and the plaintext corresponding to the two ciphertexts will be checked for consistency while keeping the plaintext itself secret. Will be able to.
例えば,確定暗号E1について,
<鍵生成>
kをセキュリティパラメータとして(d1,e1)=Gen1(k)によって,秘密鍵d1,公開鍵e1を生成する(Gen1は適当な関数である。),
<暗号化>
平文mに対して,暗号文c=Enc1(m,e1)を得る(Enc1は適当な暗号化関数である。),
<復号化>
暗号文cに対して,平文m=Dec1(c,d1)を得る(Dec1は適当な暗号化関数である。)
ものとし,確率暗号E2について,
<鍵生成>
kをセキュリティパラメータとして(d2,e2)=Gen2(k)によって,秘密鍵d2,公開鍵e2を生成する(Gen1は適当な関数である。),
<暗号化>
平文mに対して,暗号文c=Enc2(m,e2)を得る(Enc2は適当な暗号化関数である。),
<復号化>
暗号文cに対して,平文m=Dec2(c,d2)を得る(Dec2は適当な暗号化関数である。)
ものとする。この場合に,確定暗号E1に確率暗号E2を関連付けて適用することで,
<鍵生成>
kをセキュリティパラメータ,k’をkによって定めるパラメータとして,(d1,e1)=Gen1(k),(d2,e2)=Gen2(k’)によって,公開鍵e1,e2,秘密鍵d1,検査鍵d2を生成する,
<暗号化>
平文mに対して,暗号文c=Enc2(Enc1(m,e1),e2)を得る,
<復号化>
暗号文cに対して,平文m=Dec1(Dec2(c,d2),d1)を得る,
<検査>
検査鍵d2を用いて,2つの暗号文c0,c1に対して,Dec2(c0,d2)=Dec2(c1,d2)の成立(平文の一致性)を検査することができる機能暗号とすることができる。
しかし,このような機能暗号では,一般に準同型性を持たない。
<Key generation>
Using k as a security parameter, (d 1 , e 1 ) = Gen 1 (k) is used to generate a secret key d 1 and a public key e 1 (Gen 1 is an appropriate function).
<Encryption>
For plaintext m, ciphertext c = Enc 1 (m, e 1 ) is obtained (Enc 1 is an appropriate encryption function).
<Decryption>
For the ciphertext c, the plaintext m = Dec 1 (c, d 1 ) is obtained (Dec 1 is an appropriate encryption function).
Suppose that the stochastic cipher E 2
<Key generation>
Using k as a security parameter, (d 2 , e 2 ) = Gen 2 (k) is used to generate a secret key d 2 and a public key e 2 (Gen 1 is an appropriate function).
<Encryption>
For plaintext m, ciphertext c = Enc 2 (m, e 2 ) is obtained (Enc 2 is a suitable encryption function),
<Decryption>
Against ciphertext c, the plaintext m = Dec 2 (c, d 2) obtaining (Dec 2 is a suitable encryption function.)
Shall. In this case, by applying the stochastic cipher E 2 in association with the definitive cipher E 1 ,
<Key generation>
With k being a security parameter and k ′ being a parameter determined by k, the public keys e 1 , e are expressed by (d 1 , e 1 ) = Gen 1 (k), (d 2 , e 2 ) = Gen 2 (k ′). 2 , generating a secret key d 1 and a check key d 2 ,
<Encryption>
For plaintext m, obtain ciphertext c = Enc 2 (Enc 1 (m, e 1 ), e 2 ),
<Decryption>
For ciphertext c, obtain plaintext m = Dec 1 (Dec 2 (c, d 2 ), d 1 ),
<Inspection>
Using the inspection key d 2 , the establishment of Dec 2 (c 0 , d 2 ) = Dec 2 (c 1 , d 2 ) is checked for the two ciphertexts c 0 and c 1 (plain text consistency). Function encryption that can be performed.
However, such functional encryption generally does not have homomorphism.
そこで本発明は,以上の点に鑑みて、準同型性を有する機能暗号を実現する鍵生成装置、暗号化装置、検査装置、復号化装置並びに各装置をコンピュータ上で機能させる鍵生成プログラム、暗号化プログラム、検査プログラム、復号化プログラムを提供することを目的とする。 Therefore, in view of the above points, the present invention provides a key generation apparatus, encryption apparatus, inspection apparatus, decryption apparatus, and key generation program that causes each apparatus to function on a computer, a cipher that realizes functional encryption having homomorphism. An object of the present invention is to provide an encryption program, an inspection program, and a decryption program.
本発明の鍵生成装置は,上記の問題点を解決するものとして,少なくともE[L](有限体上定義された楕円曲線E上の点Rであって、LR=O〔Lは素数とし、Oは無限遠点とする。〕を満たす点Rの集合)の元P(但し元Pは、E[L]のフロベニウス〔Frobenius〕写像φn〔nは正整数〕の非固有空間上における位数Lの巡回群の元とする。)を記憶する元記憶手段と、乱数(0以上L未満の整数)を秘密鍵xとして出力する秘密鍵生成手段と、秘密鍵生成手段において出力された秘密鍵xと、元記憶手段において記憶された元Pとで楕円スカラー倍演算J=xPを行い、この演算結果を検査鍵Jとして出力する検査鍵生成手段と、元記憶手段において記憶された元Pに対して線形変換Ψ(但し線形変換Ψは、E[L]から、フロベニウス写像φnの固有値λnに関する固有空間Ψ(E[L])への準同型写像であって、Ψ=const×(φn−λn)〔constは定数〕で定義される。)の演算を行い、この演算結果を公開鍵gとして出力する第1公開鍵生成手段と、検査鍵生成手段において出力された検査鍵Jに対して線形変換Ψの演算を行い、この演算結果を公開鍵yとして出力する第2公開鍵生成手段とを備えることを特徴としている。 The key generation device of the present invention solves the above-described problems by at least E [L] (the point R on the elliptic curve E defined on the finite field, LR = O [L is a prime number, O is a set of points R satisfying an infinite point], where the element P is a position on a non-eigenspace of a Frobenius map φ n [n is a positive integer] of E [L]. Original storage means for storing a number L of cyclic groups), a secret key generation means for outputting a random number (an integer of 0 or more and less than L) as a secret key x, and a secret output by the secret key generation means An ellipse scalar multiplication operation J = xP is performed on the key x and the element P stored in the original storage means, and an inspection key generation means for outputting the result of the calculation as the inspection key J, and an element P stored in the original storage means Linear transformation Ψ (however, linear transformation Ψ A homomorphism to eigenspace Ψ (E [L]) about the eigenvalues lambda n of the mapping φ n, Ψ = const × ( φ n -λ n) [const is a constant] is defined.) Operation The first public key generation means for outputting the calculation result as the public key g, and the linear transformation Ψ is calculated for the check key J output from the check key generation means, and the calculation result is calculated as the public key y. And a second public key generating means for outputting as a feature.
この構成によれば、上記説明した機能暗号における鍵は次のように与えられる。秘密鍵xは、乱数(0以上L未満の整数)をもって与えられる。また、上記説明した機能暗号における検査鍵Jは、秘密鍵xと元記憶手段に記憶されるE[L]の元Pとから、楕円スカラー倍演算J=xPをもって与えられる。さらに公開鍵の1つである公開鍵gは、元記憶手段に記憶されるE[L]の元Pに線形変換Ψを施す演算g=Ψ(P)によって与えられる。加えて公開鍵の1つである公開鍵yは、検査鍵Jに線形変換Ψを施す演算g=Ψ(J)によって与えられる。 According to this configuration, the key in the functional encryption described above is given as follows. The secret key x is given with a random number (an integer greater than or equal to 0 and less than L). Also, the check key J in the functional encryption described above is given with the elliptic scalar multiplication J = xP from the secret key x and the element P of E [L] stored in the original storage means. Further, the public key g, which is one of the public keys, is given by an operation g = Ψ (P) that performs a linear transformation Ψ on the element P of E [L] stored in the original storage means. In addition, the public key y, which is one of the public keys, is given by an operation g = Ψ (J) that performs a linear transformation Ψ on the check key J.
また、本発明の鍵生成装置において、好ましくは、E[L]上の元Pに対して、演算φnP−λi nP(但しi=1、2とし、λ1 n、λ2 nは、それぞれE[L]のフロベニウス写像φnの固有値とする。)を行い、各演算結果を出力する元演算手段と、元演算手段によって出力された各演算結果の少なくとも1つが無限遠点であるかを判定する元演算結果判定手段とを備え、鍵生成装置の元記憶手段が、元演算結果判定手段において、元演算手段によって出力された各演算結果がともに無限遠点Oにならないと判定された上記元Pを記憶するものとする。 In the key generation device of the present invention, it is preferable that the operation φ n P−λ i n P (where i = 1, 2 and λ 1 n , λ 2 n for the element P on E [L]. Are each an eigenvalue of the Frobenius map φ n of E [L]), and at least one of the operation results output by the original operation means is an infinite point. Original calculation result determination means for determining whether or not there is an original storage means of the key generation device, wherein the original calculation result determination means determines that each of the calculation results output by the original calculation means is not the infinity point O. It is assumed that the generated element P is stored.
この構成において記憶される元Pは、必ずE[L]のフロベニウス写像φの非固有空間上の元として与えられる。 The element P stored in this configuration is always given as an element on the non-eigenspace of the F [11] Frobenius map φ.
次に本発明の暗号化装置は,上記の問題点を解決するものとして,少なくとも平文m(但し平文mは、E[L]のフロベニウス写像φnの固有空間上の元とする。)と、上記記載の鍵生成装置で出力された公開鍵g及び公開鍵yとを記憶する暗号化要素記憶手段と、乱数t(但し、0以上L未満の整数とする。)を出力する乱数生成手段と、暗号化要素記憶手段に記憶された公開鍵gと、乱数生成手段において出力された乱数tとで楕円スカラー倍演算G=tgを行い、暗号化要素記憶手段に記憶された公開鍵yと、乱数生成手段において出力された乱数tと、暗号化要素記憶手段に記憶された平文mとで楕円加算及び楕円スカラー倍による演算Y=m+δty(但しδは、1または−1とする。)を行い、これらの演算結果Gと演算結果Yとを暗号文c=(G、Y)として出力する暗号化手段とを備えることを特徴としている。 Encrypting device of the present invention then, as to solve the above problems, (the proviso plaintext m, the original eigenspace Frobenius mapping phi n of E [L].) At least the plaintext m and, An encryption element storage means for storing the public key g and the public key y output by the key generation apparatus described above, and a random number generation means for outputting a random number t (provided that the integer is 0 or more and less than L). The elliptic key multiplication operation G = tg is performed on the public key g stored in the encryption element storage unit and the random number t output in the random number generation unit, and the public key y stored in the encryption element storage unit is obtained. An operation Y = m + δty (where δ is set to 1 or −1) by elliptic addition and elliptic scalar multiplication is performed on the random number t output from the random number generation unit and the plaintext m stored in the encryption element storage unit. These calculation result G and calculation result Y And ciphertext c = (G, Y).
この構成によれば、上記説明した機能暗号における暗号文は次のように与えられる。暗号文cを構成する2つの要素のうち、一方の要素Gは、乱数tと公開鍵gとの楕円スカラー倍演算G=tgによって与えられる。また、他方の要素Yは、平文m、公開鍵y及び乱数tとの間において楕円加算と楕円スカラー倍による演算Y=m+δtyによって与えられる。なおδは、楕円加算される演算子の符号を与えるパラメータであり、1または−1である。即ち、楕円加算と楕円スカラー倍による演算Y=m+δtyは、演算Y=m+(ty)または演算Y=m+(−ty)のいずれか一方である。 According to this configuration, the ciphertext in the functional cipher described above is given as follows. Of the two elements constituting the ciphertext c, one element G is given by an elliptic scalar multiplication G = tg of the random number t and the public key g. The other element Y is given by the operation Y = m + δty by elliptic addition and elliptic scalar multiplication between the plaintext m, the public key y and the random number t. Note that δ is a parameter that gives the sign of the operator to be elliptically added, and is 1 or -1. In other words, the calculation Y = m + δty by ellipse addition and elliptic scalar multiplication is either the calculation Y = m + (ty) or the calculation Y = m + (− ty).
さらに本発明の検査装置は,上記の問題点を解決するものとして,少なくとも同一または別個の上記暗号化装置で出力された2つの暗号文c1=(G1、Y1)及びc2=(G2、Y2)と、上記記載の鍵生成装置において記憶された元P及び上記記載の鍵生成装置において出力された検査鍵Jとを記憶する検査要素記憶手段と、検査要素記憶手段に記憶された暗号文c1、c2との間において、検査要素記憶手段に記憶された元P、検査鍵Jを用いて、ペアリングeL(δ(G1−G2)、J)及びペアリングeL(Y1−Y2、P)を演算し、各演算結果をそれぞれ出力するペアリング演算手段と、ペアリング演算手段によって出力された各演算結果の一致を判定し、この判定結果を出力するペアリング演算結果判定手段とを備えることを特徴としている。 Furthermore, in order to solve the above-described problem, the inspection device of the present invention is configured to at least two ciphertexts c 1 = (G 1 , Y 1 ) and c 2 = (( 2 ) output by the same or different encryption devices. G 2 , Y 2 ), the element P stored in the key generation apparatus described above and the inspection key J output in the key generation apparatus described above, and stored in the inspection element storage means Paired e L (δ (G 1 -G 2 ), J) and a pair using the original P and the inspection key J stored in the inspection element storage means between the encrypted ciphertexts c 1 and c 2 The ring e L (Y 1 −Y 2 , P) is calculated, and a pairing calculation unit that outputs each calculation result and a match between the calculation results output by the pairing calculation unit are determined. Judgment result judgment for output It is characterized in that it comprises a stage.
この構成によれば、上記説明した機能暗号における検査は次のように処理される。2つの暗号文c1=(G1、Y1)及びc2=(G2、Y2)を構成する各要素G1、Y1、G2、Y2及び元P、検査鍵Jを用いて、ペアリングeL(δ(G1−G2)、J)及びペアリングeL(Y1−Y2、P)を演算し、この各演算結果が一致するか否かを判定する。この判定によって2つの暗号文に対応する2つの平文が一致するかが検査されることになる。なお、パラメータδは、上記暗号化装置で説明したδに対応する。従って、δ=1の場合はペアリングeL(G1−G2、J)であり、δ=−1の場合はペアリングeL(−(G1−G2)、J)である。 According to this configuration, the check in the functional encryption described above is processed as follows. Using each of the elements G 1 , Y 1 , G 2 , Y 2 and the element P and the check key J that constitute two ciphertexts c 1 = (G 1 , Y 1 ) and c 2 = (G 2 , Y 2 ) Then, the pairing e L (δ (G 1 -G 2 ), J) and the pairing e L (Y 1 -Y 2 , P) are calculated, and it is determined whether or not the respective calculation results match. By this determination, it is checked whether two plaintexts corresponding to the two ciphertexts match. The parameter δ corresponds to δ described in the encryption apparatus. Therefore, when δ = 1, it is pairing e L (G 1 -G 2 , J), and when δ = −1, it is pairing e L (-(G 1 -G 2 ), J).
また、本発明の検査装置において、好ましくは、検査要素記憶手段がE[L]の無限遠点O以外の元Sを記憶し、検査要素記憶手段に記憶された元Sと検査要素記憶手段に記憶された元Pとの間のペアリングeL(S、P)を演算し、この演算結果を出力する検査ペアリング演算手段と、検査ペアリング演算手段で演算されたペアリングeL(S、P)の値が単位元1であるかを判定し、この判定結果を出力する部分群上元判定手段とを備えるものとする。
In the inspection apparatus of the present invention, preferably, the inspection element storage means stores elements S other than the infinity point O of E [L], and the element S stored in the inspection element storage means and the inspection element storage means pairing e L between the stored original P (S, P) is calculated and a test pairing computation means for outputting the operation result, the inspection paired calculated by the pairing computation means e L (S , P) is determined to include a
この構成とすることで、公開鍵として公開される元Pが、E[L]上の非固有空間上の元が生成する位数Lの巡回群に属するか否かが判定される。 With this configuration, it is determined whether or not the element P disclosed as a public key belongs to a cyclic group of order L generated by elements in the non-unique space on E [L].
加えて本発明の復号化装置は、少なくとも上記記載の鍵生成装置において出力された秘密鍵xと、上記記載の暗号化装置において出力された暗号文c=(G、Y)とを記憶する復号化要素記憶手段と、復号化要素記憶手段に記憶された秘密鍵x及び暗号文c=(G、Y)の間で楕円スカラー倍及び楕円減算による演算m=Y−δxGを行い、この演算結果を平文mとして出力する復号化手段とを備えることを特徴としている。 In addition, the decryption device of the present invention stores at least the secret key x output from the key generation device described above and the ciphertext c = (G, Y) output from the encryption device described above. The calculation result m = Y−δxG by elliptic scalar multiplication and ellipse subtraction is performed between the encryption element storage means and the secret key x and ciphertext c = (G, Y) stored in the decryption element storage means. And decryption means for outputting as plaintext m.
この構成によれば、上記説明した機能暗号における平文mは、暗号文cの要素G、Yと秘密鍵xとの間で楕円スカラー倍及び楕円減算による演算m=Y−δxGによって与えられる。なお、パラメータδは、上記暗号化装置で説明したδに対応する。従って、δ=1の場合は演算m=Y−xGであり、δ=−1の場合は、演算m=Y−(−xG)である。 According to this configuration, the plaintext m in the functional cipher described above is given by the operation m = Y−δxG by elliptic scalar multiplication and elliptic subtraction between the elements G and Y of the ciphertext c and the secret key x. The parameter δ corresponds to δ described in the encryption apparatus. Accordingly, the calculation m = Y−xG when δ = 1, and the calculation m = Y − (− xG) when δ = −1.
また、上記各装置をコンピュータ上で機能させる鍵生成プログラム、暗号化プログラム、検査プログラム、復号化プログラムによって、コンピュータを上記各装置として作動処理させることができる。 Further, the computer can be operated as each device by a key generation program, an encryption program, an inspection program, and a decryption program that cause the devices to function on the computer.
本発明の鍵生成装置によれば、上記記載の機能暗号における公開鍵、秘密鍵、検査鍵を生成することができる。また、本発明の暗号化装置によれば、鍵生成装置において生成された公開鍵などを用いることによって、機能暗号における平文から暗号文への暗号化ができる。また、この暗号化について、2つの平文m0,m1のそれぞれに対応する暗号文c1=(G1,Y1),c2=(G2,Y2)に関して,c1+c2=(G1+G2,Y1+Y2)となる性質がある。即ち,暗号文に対応する平文の内容を知らなくても,暗号文さえ知っていれば,平文同士の演算結果に対応する暗号文を生成することができる。従って、準同型性を有する機能暗号が実現される。さらに、本発明の検査装置によれば、暗号化装置によって暗号化された2つの暗号文の間において、平文そのものを秘匿したまま2つの暗号文に対応する平文の一致性を検査することができることになる。加えて、本発明の復号化装置によれば、鍵生成装置において生成された秘密鍵を用いることによって、機能暗号における暗号文から平文への復号化ができる。 According to the key generation device of the present invention, it is possible to generate a public key, a secret key, and a check key in the functional encryption described above. Further, according to the encryption apparatus of the present invention, encryption from plaintext to ciphertext in functional encryption can be performed by using a public key generated by the key generation apparatus. Also, for this encryption, c 1 + c 2 = for cipher text c 1 = (G 1 , Y 1 ), c 2 = (G 2 , Y 2 ) corresponding to each of the two plaintexts m 0 and m 1. (G 1 + G 2 , Y 1 + Y 2 ) That is, even if the plaintext corresponding to the ciphertext is not known, the ciphertext corresponding to the operation result between the plaintexts can be generated as long as the ciphertext is known. Therefore, functional encryption having homomorphism is realized. Furthermore, according to the inspection apparatus of the present invention, it is possible to inspect the coincidence of plaintexts corresponding to two ciphertexts while keeping the plaintext itself secret between the two ciphertexts encrypted by the encryption device. become. In addition, according to the decryption apparatus of the present invention, the ciphertext in the functional cipher can be decrypted into the plaintext by using the secret key generated in the key generation apparatus.
まず、本発明の各装置において上記構成をとる理論背景を説明する。その上で、本発明の各装置の実施形態を説明する。
<理論背景>
まず,体K上に定義された楕円曲線について説明する。
一般に,体K上に定義された楕円曲線とは,a1,a2,a3,a4,a6∈Kとして,
<Theoretical background>
First, the elliptic curve defined on the body K will be described.
In general, an elliptic curve defined on a field K is defined as a 1 , a 2 , a 3 , a 4 , a 6 ∈K,
[1]体K上に定義された楕円曲線上の任意の2点R1,R2に対して,R1+R2は楕円曲線上の点である。 [1] For any two points R 1 and R 2 on the elliptic curve defined on the body K, R 1 + R 2 is a point on the elliptic curve.
[2]体K上に定義された楕円曲線上の任意の3点R1,R2,R3に対して,R1+(R2+R3)=(R1+R2)+R3が成り立つ(結合律)。 [2] R 1 + (R 2 + R 3 ) = (R 1 + R 2 ) + R 3 holds for any three points R 1 , R 2 , R 3 on the elliptic curve defined on the field K (Combination law).
[3]無限遠点Oに関して,体K上に定義された楕円曲線上の任意の点R1に対して,R1+O=O+R1=R1が成り立つ(単位元の存在)。 [3] For an infinite point O, R 1 + O = O + R 1 = R 1 holds for an arbitrary point R 1 on the elliptic curve defined on the field K (existence of unit element).
[4]体K上に定義された楕円曲線上の任意の点R1に対して逆元(−R1)が存在してR1+(−R1)=(−R1)+R1=Oが成立する(逆元の存在)。 [4] An inverse element (−R 1 ) exists for an arbitrary point R 1 on the elliptic curve defined on the body K, and R 1 + (− R 1 ) = (− R 1 ) + R 1 = O is established (inverse existence).
[5]体K上に定義された楕円曲線上の任意の2点R1,R2に対して,R1+R2=R2+R1が成り立つ(交換律)。 [5] R 1 + R 2 = R 2 + R 1 holds for any two points R 1 and R 2 on the elliptic curve defined on the body K (exchange rule).
体K上に定義された楕円曲線上の1点Rがあれば,楕円加算を用いて2R=R+Rとなる体K上に定義された楕円曲線上の点2Rを作ることができる。同様にして,3R=2R+Rなどとすることにより,任意の正整数hに対してhRを定義することができる。また,任意の正整数hに対して(−h)R=h(−R)及び0R=Oと定義すると,結局任意の整数hに対してhRを定義することができる。このように整数hと体K上に定義された楕円曲線上の点Rから点hRを求めることを楕円スカラー倍と呼ぶ。また,二項演算−をR1−R2=R1+(−R2)として定義し,これを楕円減算と呼ぶ。 If there is one point R on the elliptic curve defined on the field K, the point 2R on the elliptic curve defined on the field K such that 2R = R + R can be created using ellipse addition. Similarly, by setting 3R = 2R + R, etc., hR can be defined for any positive integer h. If (−h) R = h (−R) and 0R = O are defined for an arbitrary positive integer h, hR can be defined for an arbitrary integer h. Thus, obtaining the point hR from the integer h and the point R on the elliptic curve defined on the field K is called elliptic scalar multiplication. Further, the binary operation − is defined as R 1 −R 2 = R 1 + (− R 2 ), and this is called elliptic subtraction.
特に体Kが有限体であってK上の点,あるいは体Kの有限次拡大上の点Rが数1に表される楕円曲線上の点であるとき,点Rは有限巡回群を形成し,これを用いて暗号系など(例えば、楕円ElGamal暗号)を構成することが可能になる。このような暗号系などでは,楕円加算や楕円スカラー倍が効率的に計算可能な楕円曲線を用いる。
In particular, when the field K is a finite field and a point on K, or a point R on the finite degree expansion of the field K is a point on the elliptic curve expressed by
ここでLを素数とし,有限体上定義された楕円曲線E(以下、特に断りなく楕円曲線といえば、有限体上に定義された楕円曲線をいうものとする。)上の点Rのうち,LR=Oを満たす点Rの集合をE[L]とする。集合E[L]は以下の性質を有するので,集合E[L]は楕円加算を加法とし楕円スカラー倍をスカラー倍とする体ZL上の線形空間である。 Here, L is a prime number, and among the points R on the elliptic curve E defined on the finite field (hereinafter, the elliptic curve defined on the finite field is referred to as the elliptic curve unless otherwise specified). A set of points R satisfying LR = O is defined as E [L]. Since the set E [L] has the following properties, the set E [L] is a linear space on the field Z L in which the addition of ellipse is added and the elliptic scalar multiplication is the scalar multiplication.
楕円加算に関しては,
[1]E[L]の任意の2点R1,R2に対して,楕円加算R1+R2はE[L]上の点である。
For ellipse addition:
[1] for any two
[2]楕円加算の結合律は,E[L]でも成り立つ。 [2] The coupling rule of ellipse addition also holds for E [L].
[3]楕円加算の交換律は,E[L]でも成り立つ。 [3] The exchange rule of ellipse addition also holds for E [L].
[4]無限遠点OはE[L]上の点であり,E[L]上の任意の点R1に対して,R1+O=O+R1=R1が成り立つ。
[4] point at infinity O is a point on E [L], with respect to any point R 1 on E [L], R 1 + O = O +
[5]E[L]上の任意の点R1に対して逆元(−R1)はE[L]上に唯一存在する。 [5] For any point R 1 on E [L], the inverse element (−R 1 ) exists only on E [L].
楕円スカラー倍に関しては,
[1]E[L]上の任意の点R1及び体ZLの任意の元h1に対して,楕円スカラー倍h1R1はE[L]上の点である。
For elliptic scalar multiplication,
[1] For an arbitrary point R 1 on E [L] and an arbitrary element h 1 of the field Z L , the elliptic scalar multiplication h 1 R 1 is a point on E [L].
[2]E[L]上の任意の点R1及び体ZLの任意の2元h1,h2に対して,(h1+h2)R1=h1R1+h2R1が成り立つ。
[2] with respect to E [L] Any
[3]E[L]上の任意の2点R1,R2及び体ZLの任意の元h1に対して,h1(R1+R2)=h1R1+h1R2が成り立つ。 [3] For any two points R 1 and R 2 on E [L] and any element h 1 of the body Z L , h 1 (R 1 + R 2 ) = h 1 R 1 + h 1 R 2 is It holds.
[4]E[L]上の任意の点R1及び体ZLの任意の2元h1,h2に対して,(h1h2)R1=h1(h2 R1)が成り立つ。 [4] For any point R 1 on E [L] and any binary h 1 , h 2 of the field Z L , (h 1 h 2 ) R 1 = h 1 (h 2 R 1 ) It holds.
[5]E[L]上の任意の点R1及び体ZLの任意の乗法単位元1に対して,1R1=R1が成り立つ。 [5] For any point R 1 on E [L] and any multiplicative unit element 1 of the field Z L , 1R 1 = R 1 holds.
なお、点RがE[L]上の点であるという場合、点Rが集合E[L]に属するという側面から、E[L]の元Rと表現することもある。この明細書では、説明の都合として点Rと元Rという表現を適宜用いることにする。また、双方の表現で意味内容が格別異なるものではなく、本発明の本質には全く影響するものではない。 When the point R is a point on E [L], it may be expressed as an element R of E [L] from the aspect that the point R belongs to the set E [L]. In this specification, the expressions R and R are used as appropriate for convenience of explanation. In addition, the meanings and contents of the two expressions are not particularly different, and the essence of the present invention is not affected at all.
次に,有限体のフロベニウス写像を説明する。
ここでqを素数またはその冪とする。有限体GF(qm)上の元xを表現するのに,有限体GF(q)上のm個の元の組xi(0≦i<m)を用いることができる。m個のxi∈GF(q)(0≦i<m)の組をGF(qm)上の元に対応させる代表的な方法は,m個のαi∈GF(qm)(0≦i<m)を使って,
Here, q is a prime number or its power. A set of m elements x i (0 ≦ i <m) on the finite field GF (q) can be used to represent the element x on the finite field GF (q m ). A typical method for associating a set of m x i εGF (q) (0 ≦ i <m) with an element on GF (q m ) is m α i εGF (q m ) (0 ≦ i <m),
ところで二項定理によれば,
一般に,α1,α2,・・・,αnを不定元とする任意のGF(q)係数有利式f(α1,α2,・・・,αn)に対して,
この演算コストは,一般には,GF(qm)上の乗算1回分の演算コストとほぼ等しい。また,行列(cij)n(n=2,3,・・・)を事前に求めておけば,行列(cij)nを掛けるだけで,xw(但しw=qnとする。)を表現するベクトルを求めることができる。あるいは逆行列(cij)−1を事前に求めておけば,逆行列(cij)−1を掛けるだけでx1/qを表現するベクトルを得られる。従って,一般の整数nに対して,xwの演算コストは一般にGF(qm)上の乗算1回分の演算コストに等しくなる。さらに,行列(cij)が簡潔に表現できる特別な基底が存在し,この基底を採用した場合,xwの演算コストはGF(qm)上の乗算と比較して無視できるほどに小さいものとなる。
なお、GF(qm)上の元xからxqへの写像をフロベニウス写像と呼び,整数nに関して,xからxwへの写像をqn乗フロベニウス写像と呼ぶ。
This calculation cost is generally almost equal to the calculation cost for one multiplication on GF (q m ). In addition, the
Incidentally, it referred to as Frobenius mapping mapping to x q from the original x on GF (q m), with respect to the integer n, is referred to as q n-th power Frobenius map mapping to x w from x.
次に,楕円曲線のフロベニウス写像について説明する。
mを整数,qを素数またはその冪とする。有限体GF(q)上に定義された楕円曲線
Let m be an integer and q be a prime number or its power. Elliptic curve defined on finite field GF (q)
[1]楕円曲線のフロベニウス写像は,E/GF(q)上の自己準同型写像であり,φ(R1+R2)=(φR1)+(φR2)が成り立つ。 [1] The Frobenius map of an elliptic curve is a self-homogeneous map on E / GF (q), and φ (R 1 + R 2 ) = (φR 1 ) + (φR 2 ) holds.
[2]楕円スカラー倍と楕円曲線のフロベニウス写像は可換であり,φ(hR)=h(φR)が成り立つ。 [2] The Frobenius map of the elliptic scalar multiplication and the elliptic curve is commutative, and φ (hR) = h (φR) holds.
[3]特に,E[L]上の点はフロベニウス写像によってE[L]の点に移る。つまり,∀R∈E[L],L(φR)=φ(LR)=Oである(記号∀αは、任意のαを表す。)。 [3] In particular, the point on E [L] moves to the point of E [L] by the Frobenius map. That is, ∀RεE [L], L (φR) = φ (LR) = O (the symbol ∀α represents an arbitrary α).
nを整数として,一般にqn乗フロベニウス写像φnは,
次に,フロベニウス写像の固有空間と射影について説明する。
(参考文献1) イアン・F・ブラケ、ガディエル・セロッシ、ナイジェル・P・スマート=著、鈴木治郎=訳、「楕円曲線暗号」、出版=ピアソン・エデュケーション、ISBN4-89471-431-0、p112
Next, the eigenspace and projection of the Frobenius map are explained.
(Reference 1) Ian F. Brake, Gadiel Selossi, Nigel P. Smart = Author, Jiro Suzuki = Translation, "Elliptic Curve Cryptography", Publishing = Pearson Education, ISBN4-89471-431-0, p112
参考文献1において示されるように、フロベニウス写像φは数10で表される楕円曲線上の任意のGF(qm)有理点Rに対して、
ここで楕円曲線をE[L](但しLは素数とする。)に限定すると、楕円スカラー倍はZLで考えればよい。ZL係数の特性多項式は分解体上で、
線形空間E[L]の線形変換Ψλ1による像Ψλ1(E[L])を、フロベニウス写像φの固有値λ1に関する固有空間と呼び、固有空間Ψλ1(E[L])上の任意の点Pに関して、
同様に、線形空間E[L]の線形変換Ψλ2による像Ψλ2(E[L])を、フロベニウス写像φの固有値λ2に関する固有空間と呼び、固有空間Ψλ2(E[L])上の任意の点Qに関して、
一般に、qn乗フロベニウス写像φnに関しても、E[L]に関するZL係数の特性多項式
続いて、ペアリングについて説明する。
(参考文献2) Alfred.J.Menezes, ELLIPTIC CURVE PUBLIC KEY CRYPTOSYSTEMS, KLUWER ACADEMIC PUBLISHERS, ISBN0-7923-9368-6,pp.61-81
Subsequently, pairing will be described.
(Reference 2) Alfred. J. Menezes, ELLIPTIC CURVE PUBLIC KEY CRYPTOSYSTEMS, KLUWER ACADEMIC PUBLISHERS, ISBN0-7923-9368-6, pp.61-81
μLを楕円曲線の定義体Kの代数閉体上の乗法単位元1のL乗根の作る乗法群とする。このとき、参考文献2において示されるように、ペアリングeLとは、
[1]E[L]上の任意の点R1に対して、eL(R1、R1)=1が成り立つ。 [1] e L (R 1 , R 1 ) = 1 holds for an arbitrary point R 1 on E [L].
[2]E[L]上の任意の2点R1、R2に対して、eL(R1、R2)=eL(R2、R1)−1が成り立つ。 [2] For any two points R 1 and R 2 on E [L], e L (R 1 , R 2 ) = e L (R 2 , R 1 ) −1 holds.
[3]E[L]上の任意の3点R1、R2、R3に対して、eL(R1+R2、R3)=eL(R1、R3)eL(R2、R3)であり、eL(R1、R2+R3)=eL(R1、R2)eL(R1、R3)が成り立つ。 [3] For any three points R 1 , R 2 , R 3 on E [L], e L (R 1 + R 2 , R 3 ) = e L (R 1 , R 3 ) e L (R 2 , R 3 ), and e L (R 1 , R 2 + R 3 ) = e L (R 1 , R 2 ) e L (R 1 , R 3 ) holds.
[4]E[L]上の任意の点R1に対して、eL(R1、O)=1が成り立つ。 [4] For any point R 1 on E [L], e L (R 1 , O) = 1 holds.
[5]E[L]上のある点R1がE[L]上の全ての点R2に対して、eL(R1、R2)=1を満たすなら、R1=Oが成り立つ。 [5] If a certain point R 1 on E [L] satisfies e L (R 1 , R 2 ) = 1 for all points R 2 on E [L], then R 1 = O holds. .
本発明におけるペアリングは、例えば、参考文献2に示されるWeilペアリングやTateペアリングなどを用いることができる。
For the pairing in the present invention, for example, Weil pairing or Tate pairing described in
次に、射影を用いた一方向性関数について説明する。
ここでLが十分に大きい素数であるとして、E[L]に関して、フロベニウス写像φの固有値λ1、λ2がλ1、λ2∈ZLかつλ1≠λ2なる場合を考える。固有空間Ψλ1(E[L])の任意の生成元P及び固有空間Ψλ2(E[L])の任意の生成元Qを用いて、E[L]上の任意の点Rはh1、h2∈ZLとして、
Here, suppose that L is a sufficiently large prime number, and the eigenvalues λ 1 and λ 2 of the Frobenius map φ are λ 1 , λ 2 εZ L and λ 1 ≠ λ 2 with respect to E [L]. Using an arbitrary generator P of the eigenspace Ψ λ1 (E [L]) and an arbitrary generator Q of the eigenspace Ψ λ2 (E [L]), an arbitrary point R on E [L] is h 1 , H 2 ∈Z L ,
[1]GF(q)上定義された非超特異楕円曲線E/GF(q)(上記の特別な場合の楕円曲線ではないものである。)に関して、E(GF(q))をE/GF(q)のGF(q)有理点とし、E(GF(qm))をE/GF(q)のGF(qm)有理点とする。また、L|#E(GF(q))かつL¬|#E(GF(q))とし、L2|#E(GF(qm))とする。なお、記号|は、A|Bと表記する場合にAはBを割り切ることを表し、記号¬|は、A¬|Bと表記する場合にAはBを割り切らないことを表し、#は位数を表す。このとき、例えばλ1=1、λ2=q mod Lとすることができる。ここで、mがLよりも十分に小さいとすると、効率的に演算できるペアリングeLが存在する(例えば、参考文献2)。
[1] With respect to the non-super singular elliptic curve E / GF (q) defined on GF (q) (which is not the elliptic curve in the above special case), E (GF (q)) is changed to E / Let GF (q) rational point of GF (q) be E, and let GF (q m ) rational point of E / GF (q) be E (GF (q m )). Further, L | and #E (GF (q)),
[2]GF(q)上定義された非超特異楕円曲線E/GF(q)に関して、固有空間Ψλ1(E[L])あるいは固有空間Ψλ2(E[L])のいずれか一方から巡回群〈R〉への同型写像で単一の有理写像で記述できるものは存在しない。 [2] With respect to the non-super singular elliptic curve E / GF (q) defined on GF (q), from either the eigenspace Ψ λ1 (E [L]) or eigenspace Ψ λ2 (E [L]) There is no isomorphic mapping to the cyclic group <R> that can be described by a single rational mapping.
[3]GF(q)上定義された非超特異楕円曲線E/GF(q)に関して、十分に大きい素数位数部分群でのDiffie-Hellman判定問題を効率的に解決することは困難といえる。 [3] Regarding the non-super singular elliptic curve E / GF (q) defined on GF (q), it can be said that it is difficult to efficiently solve the Diffie-Hellman decision problem with a sufficiently large prime order subgroup. .
[4]GF(q)上定義された非超特異楕円曲線E/GF(q)に関して、E[L]上の無限遠点O以外の任意の点R1が生成する巡回群〈R1〉及びE[L]上の任意の点R2について、R2∈〈R1〉であるか否かは、ペアリングeLを用いて効率的に判定できる。即ち、ペアリングeL(R1、R2)の演算結果が単位元1になる場合、R2∈〈R1〉であるといえる。
[4] A cyclic group <R 1 > generated by any point R 1 other than the infinity point O on E [L] with respect to the non-super singular elliptic curve E / GF (q) defined on GF (q). And for any point R 2 on E [L], whether or not R 2 ε <R 1 > can be efficiently determined using the pairing e L. That is, when the calculation result of pairing e L (R 1 , R 2 ) is
以上の理論背景に基づく具体的な機能暗号の構成例は次のとおりである。
まず、E[L]のフロベニウス写像φnの非固有空間上の元P(位数Lの巡回群の元であり、位数Lの巡回群の生成元も含む。)を1つ選択する。他方、x∈ZLなる乱数xを1つ決める。そして、楕円スカラー倍演算によってJ=xPを求める。また、線形変換Ψによる演算によってg=Ψ(P)、y=Ψ(J)を求める。なお、平文mは、E[L]の線形変換Ψによる固有空間上の元、つまり、m∈Ψ(E[L])とする(E[L]、元P及びgは、機能暗号システムに共通のものとしてよい。)。
Specific configuration examples of functional encryption based on the above theoretical background are as follows.
First, (a cyclic group of order L based, also origin of the cyclic group of order L contains.) Original P on non eigenspace Frobenius mapping phi n of E [L] one selection to. On the other hand, one random number x satisfying xεZ L is determined. Then, J = xP is obtained by elliptic scalar multiplication. Further, g = Ψ (P) and y = Ψ (J) are obtained by calculation using linear transformation Ψ. The plaintext m is an element on the eigenspace by the linear transformation Ψ of E [L], that is, m∈Ψ (E [L]) (E [L], elements P and g are stored in the functional cryptographic system. It may be common.)
このとき、機能暗号における公開鍵は、g、y、元P、線形変換Ψ、E[L]であり、秘密鍵はx、検査鍵はJである。 At this time, the public keys in the functional encryption are g, y, element P, linear transformation Ψ, E [L], the secret key is x, and the check key is J.
そして、平文mが暗号化された暗号文cは、乱数t(但し、t∈ZLとする。)を用いて、楕円スカラー倍及び楕円加算による演算c=(G、Y)=(tg、m+δty)で与えられる。乱数tを用いて暗号文cを生成するため、平文mと暗号文cとの間に1対1の関係は存在しない。 The ciphertext c plaintext m is encrypted, a random number t (where the t∈Z L.) Using a calculation by elliptic scalar multiplication and elliptic curve addition c = (G, Y) = (tg, m + δty). Since the ciphertext c is generated using the random number t, there is no one-to-one relationship between the plaintext m and the ciphertext c.
以上の暗号化に対して、暗号文cから復号化される平文mは、秘密鍵xを用いて、楕円スカラー倍及び楕円減算による演算m=Y−δxGで与えられる(より詳細には、Y−δxG=(m+δty)−δx(tg)=(m+δtxΨ(P))−δxtΨ(P)=mとなる。)。 For the above encryption, the plaintext m decrypted from the ciphertext c is given by the operation m = Y−δxG by elliptic scalar multiplication and elliptic subtraction using the secret key x (more specifically, Y −δxG = (m + δty) −δx (tg) = (m + δtxψ (P)) − δxtψ (P) = m.
また、検査鍵Jを用いた、2つの暗号文に対応するそれぞれの平文の一致性の検査は、ペアリングeL(δ(G1−G2)、J)及びペアリングeL(Y1−Y2、P)の演算結果が一致するか否かによる。より詳細には、ペアリングの性質を利用することで、eL(δ(G1−G2)、J)の演算は、
以上の理論を基礎として本発明の各装置等は構成されるものであり、有限体上定義された楕円曲線の上記諸性質を利用することで機能暗号に準同型性を与え、さらに、射影Ψの一方向性から機能暗号の安全性を保障している。 Based on the above theory, each device of the present invention is configured, and by using the above properties of the elliptic curve defined on the finite field, the function encryption is given homomorphism, and the projection Ψ The security of functional encryption is guaranteed from the one-way direction.
次に、本発明の実施の形態を、図面を参照して説明する。
なお、ここでは本実施形態の各装置(鍵生成装置、暗号化装置、検査装置、復号化装置)の構成及び処理を順次説明し、最後に各装置を用いた機能暗号システムについて説明する。
Next, embodiments of the present invention will be described with reference to the drawings.
Here, the configuration and processing of each device (key generation device, encryption device, inspection device, decryption device) of this embodiment will be described sequentially, and finally a functional encryption system using each device will be described.
<鍵生成装置>
図1は、鍵生成装置(1)のハードウェア構成を例示した構成ブロック図である。図1に例示するように、鍵生成装置(1)は、キーボードなどが接続可能な入力部(11)、液晶ディスプレイなどが接続可能な出力部(12)、鍵生成装置(1)外部に通信可能な通信装置(例えば通信ケーブル)が接続可能な通信部(13)、CPU(Central Processing Unit)(14)、メモリであるRAM(15)、ROM(16)やハードディスクである外部記憶装置(17)並びにこれらの入力部(11)、出力部(12)、通信部(13)、CPU(14)、RAM(15)、ROM(16)、外部記憶装置(17)間のデータのやり取りが可能なように接続するバス(18)を有している。また必要に応じて、鍵生成装置(1)に、CD−ROMなどの記憶媒体を読み書きできる装置(ドライブ)などを設けるとしてもよい。
<Key generation device>
FIG. 1 is a configuration block diagram illustrating a hardware configuration of the key generation device (1). As illustrated in FIG. 1, the key generation device (1) communicates with an input unit (11) to which a keyboard or the like can be connected, an output unit (12) to which a liquid crystal display or the like can be connected, and the key generation device (1) outside. A communication unit (13) to which a connectable communication device (for example, a communication cable) can be connected, a CPU (Central Processing Unit) (14), a RAM (15) as a memory, a ROM (16), and an external storage device (17) as a hard disk ) And the input unit (11), the output unit (12), the communication unit (13), the CPU (14), the RAM (15), the ROM (16), and the external storage device (17). It has the bus (18) which connects like this. If necessary, the key generation device (1) may be provided with a device (drive) that can read and write a storage medium such as a CD-ROM.
鍵生成装置(1)の外部記憶装置(17)には、後述する鍵を生成するためのプログラムが保存記憶され、このプログラムの処理において必要となるデータ及びプログラムの処理によって得られた鍵の値などを保存記憶するデータ格納領域が確保されている。より具体的には、鍵を生成するためのプログラムは、E[L]から元Pを選択するための元P選択プログラム(171)、元Pの線形変換Ψを演算するための元演算プログラム(172)、元演算結果について所定の判定を行うための元演算結果判定プログラム(173)、秘密鍵xを生成するための秘密鍵生成プログラム(174)、検査鍵Jを生成するための検査鍵生成プログラム(175)、公開鍵gを生成するための第1公開鍵生成プログラム(176)、公開鍵yを生成するための第2公開鍵生成プログラム(177)、各プログラムの処理などを制御する制御プログラム(178)である。これらのプログラムの処理において必要となるデータとして、集合E[L]のデータ、線形変換Ψ=const×(φn−λn)を演算するための演算係数がある。これらのデータに加え、各プログラムの処理によって得られる秘密鍵x、検査鍵J、公開鍵g、公開鍵y及び元Pは、外部記憶装置(17)のデータ格納領域(179)に保存記憶される。
鍵生成装置(1)では、外部記憶装置(17)に記憶されたプログラムとこのプログラムの処理に必要なデータが必要に応じてRAM(15)に呼び出されて、順次CPU(14)で処理されることで鍵が生成される。
The external storage device (17) of the key generation device (1) stores and stores a program for generating a key, which will be described later, and data necessary for the processing of the program and the key value obtained by the processing of the program. A data storage area for storing and storing such data is secured. More specifically, a program for generating a key includes an element P selection program (171) for selecting an element P from E [L], and an element operation program for calculating a linear transformation Ψ of the element P ( 172), an original calculation result determination program (173) for making a predetermined determination on the original calculation result, a secret key generation program (174) for generating the secret key x, and a check key generation for generating the check key J Program (175), first public key generation program (176) for generating public key g, second public key generation program (177) for generating public key y, control for controlling the processing of each program, etc. Program (178). As data necessary for the processing of these programs, there is an operation coefficient for calculating data of the set E [L] and linear transformation Ψ = const × (φ n −λ n ). In addition to these data, the private key x, inspection key J, public key g, public key y, and source P obtained by the processing of each program are stored and stored in the data storage area (179) of the external storage device (17). The
In the key generation device (1), the program stored in the external storage device (17) and the data necessary for the processing of this program are called to the RAM (15) as necessary, and sequentially processed by the CPU (14). To generate a key.
図2は、鍵生成装置(1)のCPU(14)において上記所定のプログラムが処理されることにより、機能暗号における鍵が生成される処理機能を示す機能ブロック図である。
以下、機能暗号における鍵が生成される処理の流れを順次説明する。
FIG. 2 is a functional block diagram showing a processing function for generating a key in functional encryption by processing the predetermined program in the CPU (14) of the key generation device (1).
Hereinafter, the flow of processing for generating a key in functional encryption will be sequentially described.
十分に大きい素数Lにおける集合E[L]は、予めデータとして外部記憶装置(17)のデータ格納領域(179)に記憶されているとする。数10で表される楕円曲線を具体的に1つ定めると、この楕円曲線における集合E[L]を求めるアルゴリズムは、例えば下記の参考文献3、参考文献4において公知とされている。そこで、鍵生成装置とは別の装置(コンピュータ)においてE[L]のデータを求め、このデータを外部記憶装置(17)のデータ格納領域(179)に記憶させるとする。なお、このアルゴリズムをプログラムとして鍵生成装置(1)で処理し、鍵生成装置(1)においてE[L]のデータを得るものとしてもよい。
(参考文献3) Generating more MNT elliptic curves, Michael Scott and Paulo S.L.M Barreto,http://eprint.iacr.org/2004/058/,(Cryptology ePrint Archive: Report 2004/058)
(参考文献4) Characterization of Elliptic Curves Traces under FG-Reduction, Atsuko Miyaji, Masaki Nakabayashi, and Shunzo Takano, ICISC 2000, LNCS 2015, pp.90-108, 2001, Springer-Verlag Berlin Heidelberg 2001
Assume that the set E [L] in a sufficiently large prime L is stored in advance in the data storage area (179) of the external storage device (17). When one elliptic curve represented by Equation 10 is specifically determined, an algorithm for obtaining the set E [L] in this elliptic curve is known in, for example,
(Reference 3) Generating more MNT elliptic curves, Michael Scott and Paulo SLM Barreto, http://eprint.iacr.org/2004/058/, (Cryptology ePrint Archive: Report 2004/058)
(Reference 4) Characterization of Elliptic Curves Traces under FG-Reduction, Atsuko Miyaji, Masaki Nakabayashi, and Shunzo Takano, ICISC 2000, LNCS 2015, pp.90-108, 2001, Springer-Verlag Berlin Heidelberg 2001
次に、元Rに対する線形変換Ψの演算は、本実施形態において具体的に、Ψ(R)=(λ1−λ2)Ψλ1(R)=φR−λ2Rで与えられるとする。つまり、本実施形態では、上記理論背景で説明したフロベニウス写像φをq乗フロベニウス写像φ1(n=1)とした線形変換Ψ=const×(φ−λ)においてconst=1としている。さらに、上記理論背景において説明したように、本実施形態における固有値λ1、固有値λ2は、λ1=1、λ2=q mod Lとする。そうすると、上記理論背景で説明した素数またはその冪であるq、基底αi、行列cijを求めておくことで、フロベニウス写像φとλ2が演算可能になる。つまり、基底αi、行列cij、固有値λ1、固有値λ2を予めデータとして外部記憶装置(17)のデータ格納領域(179)に記憶しておくことで、本実施形態における上記線形変換Ψが演算できることになる。以下、予めデータとして外部記憶装置(17)のデータ格納領域(179)に記憶された基底αi、行列cij、固有値λ1、固有値λ2を「線形変換Ψの演算係数」という。 Next, the calculation of the linear transformation Ψ with respect to the element R is specifically given by Ψ (R) = (λ 1 −λ 2 ) Ψ λ1 (R) = φR−λ 2 R in the present embodiment. That is, in the present embodiment, const = 1 is set in the linear transformation Ψ = const × (φ−λ) in which the Frobenius map φ described in the above theoretical background is the qth power Frobenius map φ 1 (n = 1). Furthermore, as explained in the above theoretical background, the eigenvalue λ 1 and the eigenvalue λ 2 in the present embodiment are λ 1 = 1 and λ 2 = q mod L. Then, by previously obtained q is prime or power of the described above theory background, basal alpha i, the matrix c ij, Frobenius mapping φ and lambda 2 becomes possible operation. That is, by storing the base α i , the matrix c ij , the eigenvalue λ 1 , and the eigenvalue λ 2 in advance in the data storage area (179) of the external storage device (17), the linear transformation Ψ in this embodiment is performed. Can be calculated. Hereinafter, the base α i , matrix c ij , eigenvalue λ 1 , and eigenvalue λ 2 stored in advance in the data storage area (179) of the external storage device (17) are referred to as “calculation coefficients of the linear transformation Ψ”.
まず、予め外部記憶装置(17)に記憶されている集合E[L]のデータが、メモリ(ここではRAM(15)とする。)上に読み込まれ、RAM(15)上のE[L]格納領域(152)に格納される。この集合E[L]のデータから1つの元Pが元P選択部(141)によって選択され、RAM(15)上の元P格納領域(153)に格納される。選択方法は、例えば乱数を発生させて、それに対応する集合E[L]のデータを1つ抽出するものとする。乱数の発生は、公知の汎用コンピュータにおける疑似乱数生成方法でよい(例えば、SHA−1などの一方向性ハッシュ関数〔one-way hash function〕を用いて構成される、計算量理論に基づく擬似乱数生成アルゴリズム等)。 First, the data of the set E [L] stored in advance in the external storage device (17) is read into a memory (here, RAM (15)) and E [L] on the RAM (15) is read. It is stored in the storage area (152). One element P is selected from the data of the set E [L] by the element P selection unit (141) and stored in the element P storage area (153) on the RAM (15). As a selection method, for example, a random number is generated and one piece of data of the set E [L] corresponding to the random number is extracted. The generation of the random number may be performed by a known general-purpose computer using a pseudo-random number generation method (for example, a pseudo-random number based on a computational complexity theory configured using a one-way hash function such as SHA-1. Generation algorithm).
次に、元演算部(142)において、元P格納領域(153)に格納された元P及び、予め外部記憶装置(17)から読み込まれてRAM(15)上の線形変換演算係数格納領域(154)に格納される線形変換Ψの演算係数を読み出し、演算φP−λ1P及びφP−λ2Pを行う。この各演算結果は、RAM(15)上の元演算結果格納領域(151)に格納される。 Next, in the element calculation unit (142), the element P stored in the element P storage area (153) and the linear conversion calculation coefficient storage area (in the RAM (15) read in advance from the external storage device (17)). The calculation coefficient of the linear transformation Ψ stored in 154) is read, and the calculations φP-λ 1 P and φP-λ 2 P are performed. Each calculation result is stored in the original calculation result storage area (151) on the RAM (15).
続いて、元演算結果判定部(143)において、上記演算結果φP−λ1P及びφP−λ2Pについて、(φP−λ1P=O)、(φP−λ2P=O)の論理値(真または偽)の少なくとも1つが真になるかを判定する。もし論理値が真であれば、制御部(140)による制御の下、改めて元P選択部においてE[L]から新たな元Pの選択を行う。そしてこの処理を、元演算結果判定部(143)において論理値が偽になるまで繰り返す。この処理は、選択された元PがE[L]のフロベニウス写像φの非固有空間上の点ではないことを保障するためのものである。もし論理値が偽であれば、制御部(140)の制御の下、選択された元Pを基に鍵生成の処理を順次実行していく。 Subsequently, in the original calculation result determination unit (143), for the calculation results φP−λ 1 P and φP−λ 2 P, the logic of (φP−λ 1 P = O) and (φP−λ 2 P = O). Determine if at least one of the values (true or false) is true. If the logical value is true, a new source P is selected from E [L] again in the source P selection unit under the control of the control unit (140). This process is repeated until the logical value becomes false in the original calculation result determination unit (143). This process is to ensure that the selected element P is not a point on the non-eigenspace of the F [11] Frobenius map φ. If the logical value is false, the key generation processing is sequentially executed based on the selected element P under the control of the control unit (140).
なお、元Pは、E[L]と同様に予め与えられて外部記憶装置(17)に記憶されるものとしてもよい。要は、E[L]上の(かつ、フロベニウス写像φの非固有空間上の)元Pを用いて鍵が生成されるのであればよく、元Pの選択は本発明の本質ではない。また、E[L]から任意に選択した元がE[L]のフロベニウス写像φの固有空間上の点である確率は、およそ1/Lのオーダーなので、素数Lが十分に大きい場合にこの確率は十分に小さくなる。そこで、元P選択部(141)で選択された元Pを基に、(この元PがE[L]のフロベニウス写像φの固有空間上の点ではないという十分な信頼度をもって)元演算部(142)及び元演算結果判定部(143)での処理を省略して鍵生成の処理を順次進めるとすることもできる。 The source P may be given in advance and stored in the external storage device (17) in the same manner as E [L]. In short, it is sufficient that the key is generated using the element P on E [L] (and on the non-eigenspace of the Frobenius map φ), and the selection of the element P is not the essence of the present invention. The probability that the element arbitrarily selected from E [L] is a point on the eigenspace of the Frobenius map φ of E [L] is on the order of 1 / L, and this probability is obtained when the prime number L is sufficiently large. Is sufficiently small. Therefore, based on the element P selected by the element P selection unit (141), the element calculation unit (with sufficient reliability that this element P is not a point on the eigenspace of the Frobenius map φ of E [L]) It is also possible to omit the processing in (142) and the original calculation result determination unit (143) and sequentially proceed with the key generation processing.
上記のようにして元Pが定まると、第1公開鍵生成部(144)において、元P格納領域(153)に格納された元P及び線形変換演算係数格納領域(154)に格納された線形変Ψの演算係数を読み出して、演算g=φP−λ2P(=Ψ(P))を行い、この演算結果をRAM(15)上の第1公開鍵格納領域(155)に格納する。この演算結果が公開鍵gである。 When the element P is determined as described above, in the first public key generation unit (144), the element P stored in the element P storage area (153) and the linear transformation stored in the linear transformation calculation coefficient storage area (154) are stored. The calculation coefficient of the variable Ψ is read out, the calculation g = φP−λ 2 P (= Ψ (P)) is performed, and the calculation result is stored in the first public key storage area (155) on the RAM (15). This calculation result is the public key g.
また、秘密鍵生成部(145)において、乱数を発生させることで0以上L未満の整数を1つ生成し、この整数をRAM(15)上の秘密鍵格納領域(156)に格納する。乱数の発生は、公知の汎用コンピュータにおける疑似乱数生成方法でよい(例えば、SHA−1などの一方向性ハッシュ関数〔one-way hash function〕を用いて構成される、計算量理論に基づく擬似乱数生成アルゴリズム等)。ここで生成された整数が秘密鍵xである。 The secret key generation unit (145) generates a random number to generate one integer less than or equal to 0 and less than L, and stores this integer in the secret key storage area (156) on the RAM (15). The generation of the random number may be performed by a known general-purpose computer using a pseudo-random number generation method (for example, a pseudo-random number based on a computational complexity theory configured using a one-way hash function such as SHA-1. Generation algorithm). The integer generated here is the secret key x.
秘密鍵xが求められると、検査鍵生成部(146)において、元P格納領域(153)に格納された元P及び秘密鍵格納領域(156)に格納された秘密鍵xを読み出して、楕円スカラー倍演算J=xPを行い、この演算結果をRAM(15)上の検査鍵格納領域(157)に格納する。この演算結果が検査鍵Jである。 When the secret key x is obtained, the inspection key generation unit (146) reads the source P stored in the source P storage area (153) and the secret key x stored in the secret key storage area (156), A scalar multiplication operation J = xP is performed, and the calculation result is stored in the inspection key storage area (157) on the RAM (15). This calculation result is the inspection key J.
検査鍵Jが求められると、第2公開鍵生成部(147)において、線形変換演算係数格納領域(154)に格納された線形変Ψの演算係数及び検査鍵格納領域(157)に格納された検査鍵Jを読み出して、演算y=φJ−λ2J(=Ψ(J))を行い、この演算結果をRAM(15)上の第2公開鍵格納領域(158)に格納する。この演算結果が公開鍵yである。 When the check key J is obtained, the second public key generation unit (147) stores the calculation coefficient of the linear transformation Ψ stored in the linear transformation calculation coefficient storage area (154) and the check key storage area (157). The inspection key J is read out, the calculation y = φJ−λ 2 J (= Ψ (J)) is performed, and the calculation result is stored in the second public key storage area (158) on the RAM (15). This calculation result is the public key y.
本実施形態では、元Pの選択、公開鍵gの生成、秘密鍵xの生成、検査鍵Jの生成、公開鍵yの生成の順に鍵が生成されるとして説明したが、この順によってのみ鍵が生成されるものではない。要は、公開鍵gの生成の前に元Pが選択されていること、検査鍵Jの生成の前に元P及び秘密鍵xが生成されていること、公開鍵yの生成の前に検査鍵Jが生成されていることの条件下で適宜変更可能であり、例えば、制御部(140)の制御の下、秘密鍵xの生成、元Pの選択、検査鍵Jの生成、公開鍵yの生成、公開鍵gの生成という順で鍵の生成を行うこととしてもよい。 In the present embodiment, it has been described that the keys are generated in the order of the selection of the source P, the generation of the public key g, the generation of the secret key x, the generation of the inspection key J, and the generation of the public key y. Is not generated. In short, the element P is selected before the generation of the public key g, the element P and the secret key x are generated before the generation of the inspection key J, and the inspection before the generation of the public key y. It can be changed as appropriate under the condition that the key J is generated. For example, under the control of the control unit (140), generation of the secret key x, selection of the source P, generation of the inspection key J, public key y The key may be generated in the order of generating the public key g and generating the public key g.
以上のようにして最終的には、RAM(15)の所定の格納領域に、元P、秘密鍵x、検査鍵J、公開鍵g、公開鍵yが格納される。さらに、このようにして生成された元P、秘密鍵x、検査鍵J、公開鍵g、公開鍵yを、外部記憶装置(17)のデータ格納領域(179)に書き込みを行って保存記憶する。結局、外部記憶装置(17)の所定のデータ格納領域(179)には、E[L]、元P、線形変換Ψの演算係数、秘密鍵x、検査鍵J、公開鍵g、公開鍵yが格納されることになる。 Eventually, the original P, the secret key x, the inspection key J, the public key g, and the public key y are stored in a predetermined storage area of the RAM (15) as described above. Further, the source P, the secret key x, the inspection key J, the public key g, and the public key y generated in this way are written and stored in the data storage area (179) of the external storage device (17). . After all, in the predetermined data storage area (179) of the external storage device (17), E [L], element P, calculation coefficient of linear transformation Ψ, secret key x, check key J, public key g, public key y Will be stored.
鍵生成装置(1)は、通信部(13)に通信装置(例えば、同軸ケーブルや光ファイバなどの通信ケーブル)を接続することで外部(インターネットなどのネットワーク)と通信可能である。従って、鍵生成装置(1)の外部記憶装置(17)に保存されるE[L]、元P、線形変換Ψの演算係数、公開鍵g、公開鍵yの各データを、ネットワークを介して配布することができる。 The key generation device (1) can communicate with the outside (a network such as the Internet) by connecting a communication device (for example, a communication cable such as a coaxial cable or an optical fiber) to the communication unit (13). Therefore, the E [L], the element P, the operation coefficient of the linear transformation Ψ, the public key g, and the public key y stored in the external storage device (17) of the key generation device (1) are transmitted via the network. Can be distributed.
<暗号化装置>
図3は、暗号化装置(2)のハードウェア構成を例示した構成ブロック図である。図3に例示するように、暗号化装置(2)は、キーボードなどが接続可能な入力部(21)、液晶ディスプレイなどが接続可能な出力部(22)、暗号化装置(2)外部に通信可能な通信装置(例えば通信ケーブル)が接続可能な通信部(23)、CPU(Central Processing Unit)(24)、メモリであるRAM(25)、ROM(26)やハードディスクである外部記憶装置(27)並びにこれらの入力部(21)、出力部(22)、通信部(23)、CPU(24)、RAM(25)、ROM(26)、外部記憶装置(27)間のデータのやり取りが可能なように接続するバス(28)を有している。また必要に応じて、暗号化装置(2)に、CD−ROMなどの記憶媒体を読み書きできる装置(ドライブ)などを設けるとしてもよい。
<Encryption device>
FIG. 3 is a configuration block diagram illustrating the hardware configuration of the encryption device (2). As illustrated in FIG. 3, the encryption device (2) includes an input unit (21) to which a keyboard or the like can be connected, an output unit (22) to which a liquid crystal display or the like can be connected, and the encryption device (2) to communicate with the outside. A communication unit (23) to which a connectable communication device (for example, a communication cable) can be connected, a CPU (Central Processing Unit) (24), a RAM (25) as a memory, a ROM (26), and an external storage device (27) as a hard disk ) And the input unit (21), the output unit (22), the communication unit (23), the CPU (24), the RAM (25), the ROM (26), and the external storage device (27). The bus (28) is connected in such a manner. If necessary, the encryption device (2) may be provided with a device (drive) that can read and write a storage medium such as a CD-ROM.
暗号化装置(2)の外部記憶装置(27)には、後述する暗号文を生成するためのプログラムが保存記憶され、このプログラムの処理において必要となるデータ及びプログラムの処理によって得られた暗号文などを保存記憶するデータ格納領域が確保されている。より具体的には、暗号文を生成するためのプログラムは、乱数tを生成する乱数生成プログラム(271)、公開鍵g、公開鍵y及び乱数tを用いて平文から暗号文を生成する暗号化プログラム(272)である。これらのプログラムの処理において必ず必要となるデータとして、公開鍵g、公開鍵y、平文mがある。これらのデータに加え、各プログラムの処理によって得られる暗号文は、外部記憶装置(27)のデータ格納領域(273)に保存記憶される。
暗号化装置(2)では、外部記憶装置(27)に記憶されたプログラムとこのプログラムの処理に必要なデータが必要に応じてRAM(25)に呼び出されて、順次CPU(24)で処理されることで暗号文が生成される。
The external storage device (27) of the encryption device (2) stores and stores a program for generating a ciphertext, which will be described later, and data necessary for the processing of the program and ciphertext obtained by the processing of the program A data storage area for storing and storing such data is secured. More specifically, the program for generating the ciphertext includes a random number generation program (271) that generates a random number t, an encryption that generates a ciphertext from plaintext using the public key g, the public key y, and the random number t. The program (272). As data that is absolutely necessary in the processing of these programs, there are a public key g, a public key y, and a plaintext m. In addition to these data, the ciphertext obtained by the processing of each program is stored and stored in the data storage area (273) of the external storage device (27).
In the encryption device (2), the program stored in the external storage device (27) and the data necessary for the processing of this program are called to the RAM (25) as necessary, and sequentially processed by the CPU (24). By doing so, a ciphertext is generated.
図4は、暗号化装置(2)のCPU(24)において上記所定のプログラムが処理されることにより、機能暗号における暗号文が生成される処理機能を示す機能ブロック図である。
以下、機能暗号における暗号文が生成される処理の流れを順次説明する。
FIG. 4 is a functional block diagram showing processing functions for generating a ciphertext in the functional cipher by processing the predetermined program in the CPU (24) of the encryption device (2).
Hereinafter, a process flow for generating a ciphertext in the functional encryption will be sequentially described.
暗号化される平文mは、予めデータとして外部記憶装置(27)のデータ格納領域(273)に記憶されているとする。ここで平文mは、E[L]に対する線形変換Ψによって得られる空間上の点であることを要し、ここでのE[L]及び線形変換Ψは、上記鍵生成装置(1)で用いられたものと同じものであることを要する。 It is assumed that the plaintext m to be encrypted is stored in advance in the data storage area (273) of the external storage device (27). Here, the plaintext m needs to be a point on the space obtained by the linear transformation Ψ for E [L], and the E [L] and the linear transformation Ψ here are used in the key generation device (1). It must be the same as the one given.
また、外部記憶装置(27)のデータ格納領域(273)には、上記鍵生成装置(1)で得られた鍵である公開鍵g、公開鍵yが予め記憶されているとする。 Further, it is assumed that a public key g and a public key y, which are keys obtained by the key generation device (1), are stored in advance in the data storage area (273) of the external storage device (27).
まず、乱数生成部(241)において、乱数を発生させることで0以上L未満の整数を1つ生成し、この整数をRAM(25)上の乱数格納領域(254)に格納する。乱数の発生は、公知の汎用コンピュータにおける疑似乱数生成方法などでよい(例えば、SHA−1などの一方向性ハッシュ関数〔one-way hash function〕を用いて構成される、計算量理論に基づく擬似乱数生成アルゴリズム等)。ここで生成された整数が乱数tである。 First, in the random number generation unit (241), a random number is generated to generate one integer of 0 or more and less than L, and this integer is stored in a random number storage area (254) on the RAM (25). The generation of random numbers may be a pseudo random number generation method in a known general-purpose computer or the like (for example, pseudo random number generation based on a computational complexity theory configured using a one-way hash function such as SHA-1. Random number generation algorithm). The integer generated here is a random number t.
次いで、暗号化部(242)において、RAM(25)からg、y、m及びtを読み出して、2つの演算G=tg、Y=m+tyを行い、この演算結果G及びYをRAM(25)上の暗号文格納領域(255)に格納する。ここで、g、y、m及びtはそれぞれ、予め外部記憶装置(27)から読み込まれてRAM(25)上の第1公開鍵格納領域(252)に格納される公開鍵g、同様に第2公開鍵格納領域(253)に格納される公開鍵y、同様に平文格納領域(251)に格納される平文m及び乱数格納領域(254)に格納された乱数tである。暗号文cは、2つの演算結果G及びYから構成される。また、本実施形態では、演算Y=m+δtyにおけるδを+1とした。 Next, the encryption unit (242) reads g, y, m, and t from the RAM (25), performs two operations G = tg, Y = m + ty, and stores the calculation results G and Y in the RAM (25). It stores in the upper ciphertext storage area (255). Here, g, y, m, and t are public keys g that are read in advance from the external storage device (27) and stored in the first public key storage area (252) on the RAM (25), respectively. 2 public key y stored in the public key storage area (253), similarly plaintext m stored in the plaintext storage area (251) and random number t stored in the random number storage area (254). The ciphertext c is composed of two calculation results G and Y. In this embodiment, δ in the calculation Y = m + δty is set to +1.
以上のようにしてRAM(25)の所定の格納領域に、暗号文cの要素G及び要素Yが格納されるが、さらに、暗号文cの要素G及び要素Yを、外部記憶装置(27)のデータ格納領域(273)に書き込みを行って保存記憶する。 As described above, the elements G and Y of the ciphertext c are stored in the predetermined storage area of the RAM (25). Further, the elements G and Y of the ciphertext c are further stored in the external storage device (27). The data storage area (273) is written and stored.
暗号化装置(2)は、通信部(23)に通信装置(例えば、同軸ケーブルや光ファイバなどの通信ケーブル)を接続することで外部(インターネットなどのネットワーク)と通信可能である。従って、暗号化装置(2)の外部記憶装置(27)に保存される暗号文cの要素G及び要素Yであるデータを、ネットワークを介して他のコンピュータなどに送信することができる。 The encryption device (2) can communicate with the outside (network such as the Internet) by connecting a communication device (for example, a communication cable such as a coaxial cable or an optical fiber) to the communication unit (23). Therefore, the data that is the element G and the element Y of the ciphertext c stored in the external storage device (27) of the encryption device (2) can be transmitted to another computer or the like via the network.
この実施形態では、上記鍵生成装置(1)で得られた鍵である公開鍵g、公開鍵yは、予めデータとして外部記憶装置(27)のデータ格納領域(273)に記憶されているとしたが、より具体的には、例えば暗号化装置(2)が、ネットワークを介して、鍵生成装置(1)から公開鍵g及び公開鍵yの各データを受信して、これらのデータを外部記憶装置(27)のデータ格納領域(273)に記憶するものである。また、このような形態に限定されず、鍵生成装置(1)で得られた公開鍵g及び公開鍵yをCD−ROMなどの記憶媒体に記憶して、この記憶媒体から暗号化装置(2)の外部記憶装置(27)に記憶させるものとしてもよい。 In this embodiment, the public key g and the public key y, which are keys obtained by the key generation device (1), are stored in advance in the data storage area (273) of the external storage device (27). However, more specifically, for example, the encryption device (2) receives each data of the public key g and the public key y from the key generation device (1) via the network, and externally transmits these data. The data is stored in the data storage area (273) of the storage device (27). Further, the present invention is not limited to such a form, and the public key g and the public key y obtained by the key generation device (1) are stored in a storage medium such as a CD-ROM, and the encryption device (2 ) May be stored in the external storage device (27).
また、暗号化される平文mについても、鍵生成装置(1)から集合E[L]、線形変換Ψの演算係数の各データを受信して、これらのデータを外部記憶装置(27)のデータ格納領域(273)に記憶し、暗号化装置(2)においてE[L]の線形変換Ψを求め、この空間上の点から1つ選択されるものとしてもよい。また、入力部(22)から入力されたテキストについても、適宜バイナリコードに改めるなどして、平文mに対応させるとしてもよい。 Also for the plaintext m to be encrypted, each data of the set E [L] and the coefficient of linear transformation Ψ is received from the key generation device (1), and these data are stored in the data in the external storage device (27). The data may be stored in the storage area (273), the linear transformation Ψ of E [L] may be obtained in the encryption device (2), and one of the points on this space may be selected. Also, the text input from the input unit (22) may be changed to a binary code as appropriate to correspond to the plaintext m.
<検査装置>
図5は、検査装置(3)のハードウェア構成を例示した構成ブロック図である。図5に例示するように、検査装置(3)は、キーボードなどが接続可能な入力部(31)、液晶ディスプレイなどが接続可能な出力部(32)、検査装置(3)外部に通信可能な通信装置(例えば通信ケーブル)が接続可能な通信部(33)、CPU(Central Processing Unit)(34)、メモリであるRAM(35)、ROM(36)やハードディスクである外部記憶装置(37)並びにこれらの入力部(31)、出力部(32)、通信部(33)、CPU(34)、RAM(35)、ROM(36)、外部記憶装置(37)間のデータのやり取りが可能なように接続するバス(38)を有している。また必要に応じて、検査装置(3)に、CD−ROMなどの記憶媒体を読み書きできる装置(ドライブ)などを設けるとしてもよい。
<Inspection device>
FIG. 5 is a configuration block diagram illustrating a hardware configuration of the inspection apparatus (3). As illustrated in FIG. 5, the inspection device (3) can communicate with an input unit (31) to which a keyboard or the like can be connected, an output unit (32) to which a liquid crystal display or the like can be connected, and the inspection device (3). A communication unit (33) to which a communication device (for example, a communication cable) can be connected, a CPU (Central Processing Unit) (34), a RAM (35) as a memory, a ROM (36), an external storage device (37) as a hard disk, and It is possible to exchange data among these input unit (31), output unit (32), communication unit (33), CPU (34), RAM (35), ROM (36), and external storage device (37). A bus (38) connected to If necessary, the inspection device (3) may be provided with a device (drive) that can read and write a storage medium such as a CD-ROM.
検査装置(3)の外部記憶装置(37)には、後述する検査結果を得るためのプログラムが保存記憶され、このプログラムの処理において必要となるデータ及びプログラムの処理によって得られた検査結果などを保存記憶するデータ格納領域が確保されている。より具体的には、検査結果を得るためのプログラムは、2つの暗号文の間でのペアリングを演算するペアリング演算プログラム(371)、ペアリング演算結果について所定の判定を行うためのペアリング演算結果判定プログラム(372)、2つの元の間でのペアリングを演算するための検査ペアリング演算プログラム(373)、検査ペアリング演算結果について所定の判定を行うための部分群上元判定プログラム(374)である。これらのプログラムの処理において必要となるデータとして、2つの暗号文の各要素、元P、検査鍵J及びE[L]の無限遠点O以外の元Sがある。これらのデータに加え、各プログラムの処理によって得られる検査結果などは、外部記憶装置(37)のデータ格納領域(375)に保存記憶される。
検査装置(3)では、外部記憶装置(37)に記憶されたプログラムとこのプログラムの処理に必要なデータが必要に応じてRAM(35)呼び出されて、順次CPU(34)で処理されることで所定の検査結果が得られる。
The external storage device (37) of the inspection device (3) stores and stores a program for obtaining an inspection result, which will be described later, and stores the data necessary for the processing of the program and the inspection result obtained by the processing of the program. A data storage area for saving and storing is secured. More specifically, the program for obtaining the inspection result is a pairing operation program (371) for calculating pairing between two ciphertexts, and a pairing for making a predetermined determination on the pairing operation result. Calculation result determination program (372), inspection pairing calculation program (373) for calculating pairing between two elements, and subgroup element determination program for performing predetermined determination on the inspection pairing calculation result (374). As data necessary for processing of these programs, there are elements S other than the infinity point O of each element of the two ciphertexts, element P, check key J and E [L]. In addition to these data, the inspection results obtained by the processing of each program are stored and stored in the data storage area (375) of the external storage device (37).
In the inspection device (3), the program stored in the external storage device (37) and the data necessary for the processing of this program are called as needed by the RAM (35) and sequentially processed by the CPU (34). A predetermined test result can be obtained.
図6は、検査装置(3)のCPU(34)において上記所定のプログラムが処理されることにより、機能暗号における暗号文に対応する平文の一致性の検査結果が得られる処理機能を示す機能ブロック図である。
以下、機能暗号における暗号文に対応する平文の一致性の検査結果が得られる処理の流れを順次説明する。
FIG. 6 is a functional block showing a processing function in which a plaintext consistency check result corresponding to a ciphertext in the functional ciphertext is obtained by processing the predetermined program in the CPU (34) of the checker (3). FIG.
In the following, the flow of processing for obtaining the plaintext consistency check result corresponding to the ciphertext in the functional cipher will be described in sequence.
2つの暗号文の各要素、即ち、暗号文c1の要素G1及び要素Y1、並びに暗号文c2の要素G2及び要素Y2は、予めデータとして外部記憶装置(37)のデータ格納領域(375)に記憶されているとする。なお、2つの暗号文c1及び暗号文c2は、それぞれ別々の暗号化装置で生成されたものでもよいし、あるいは同じ暗号化装置で生成されたものでもよい。また、暗号文c1と暗号文c2は異なる内容のものでも同じものでもよい。 Two of each element of the ciphertext, i.e., elements G 1 and element Y 1 of the ciphertext c 1, as well as elements G 2 and element Y 2 of the ciphertext c 2, the data stored in the external storage device (37) as data in advance It is assumed that it is stored in the area (375). Note that two ciphertext c 1 and the ciphertext c 2 may be one or may be one generated by each separate encryption device, or generated by the same encryption device. Also, the ciphertext c 1 and the ciphertext c 2 may have different contents or the same.
また、外部記憶装置(37)のデータ格納領域(375)には、上記鍵生成装置(1)で得られた検査鍵J及び元Pが予め記憶されているとする。さらに、上記鍵生成装置(1)で用いられたE[L]のうち無限遠点O以外の元Sも、外部記憶装置(37)のデータ格納領域(375)に予め記憶されているとする。 Further, it is assumed that the inspection key J and the element P obtained by the key generation device (1) are stored in advance in the data storage area (375) of the external storage device (37). Further, it is assumed that elements S other than the infinity point O among E [L] used in the key generation device (1) are also stored in advance in the data storage area (375) of the external storage device (37). .
まず、検査ペアリング演算部(341)において、RAM(35)からS及びPを読み出して、ペアリングの演算eL(S、P)を行い、この演算結果を検査ペアリング演算結果格納領域(356)に格納する。ここで、S及びPはそれぞれ、予め外部記憶装置(37)から読み込まれてRAM(35)上の元S格納領域(355)に格納される元S及び同様に元P格納領域(353)に格納される元Pである。 First, in the inspection pairing calculation unit (341), S and P are read from the RAM (35), the pairing calculation e L (S, P) is performed, and the calculation result is stored in the check pairing calculation result storage area ( 356). Here, S and P are respectively stored in the original S storage area (353) and the original S storage area (353) stored in the original S storage area (355) on the RAM (35) in advance from the external storage device (37). The original P to be stored.
続いて、部分群上元判定部(342)において、検査ペアリング演算結果格納領域(356)から読み出した検査ペアリング演算結果が単位元1に等しいか否かの判定を行い、この判定結果の論理値をRAM(35)上の部分群上元判定結果格納領域(358)に格納する。
Subsequently, the subgroup upper element determination unit (342) determines whether or not the inspection pairing calculation result read from the inspection pairing calculation result storage area (356) is equal to the
さらに、ペアリング演算部(343)において、RAM(35)からG1、Y1、G2、Y2、J、Pを読み出して、2つのペアリングの演算eL(G1−G2、J)及びeL(Y1−Y2、P)を行い、これらの演算結果をペアリング演算結果格納領域(357)に格納する。ここで、G1、Y1、G2、Y2、J、Pはそれぞれ、予め外部記憶装置(37)から読み込まれてRAM(35)上の暗号文c1格納領域(351)に格納される暗号文c1の要素G1及び要素Y1、同様に暗号文c2格納領域(352)に格納される暗号文c2の要素G2及び要素Y2、同様に検査鍵格納領域(354)に格納される検査鍵J、同様に元P格納領域(353)に格納される元Pである。また、本実施形態では、演算eL(δ(G1−G2)、J)において、上記暗号化装置(2)に対応した検査装置(3)であるためにδを+1とした。 Further, in the pairing calculation unit (343), G 1 , Y 1 , G 2 , Y 2 , J, P are read from the RAM (35), and two pairing calculations e L (G 1 -G 2 , J) and e L (Y 1 -Y 2 , P) are performed, and these calculation results are stored in the pairing calculation result storage area (357). Here, G 1 , Y 1 , G 2 , Y 2 , J, and P are read in advance from the external storage device (37) and stored in the ciphertext c 1 storage area (351) on the RAM (35). elements G 1 and element Y 1 of the ciphertext c 1 that, similarly elements G 2 and element Y 2 of ciphertext c 2 which is stored in the ciphertext c 2 storage area (352), similarly inspected key storage area (354 ) Stored in the original P storage area (353). Further, in the present embodiment, in the calculation e L (δ (G 1 −G 2 ), J), δ is set to +1 because it is the inspection device (3) corresponding to the encryption device (2).
続いて、ペアリング演算結果判定部(344)において、ペアリング演算結果格納領域(357)から読み出した上記2つのペアリング演算結果が等しいか否かの判定を行い、この判定結果の論理値をRAM(35)上のペアリング演算結果判定結果格納領域(359)に格納する。ここで、判定結果が真であれば、2つの暗号文に対応するそれぞれの平文が一致することを意味する。逆に、判定結果が偽であれば、2つの暗号文に対応するそれぞれの平文が一致しないことを意味する。 Subsequently, in the pairing calculation result determination unit (344), it is determined whether or not the two pairing calculation results read from the pairing calculation result storage area (357) are equal, and the logical value of this determination result is determined. The data is stored in the pairing calculation result determination result storage area (359) on the RAM (35). Here, if the determination result is true, it means that the plaintexts corresponding to the two ciphertexts match. Conversely, if the determination result is false, it means that the plaintexts corresponding to the two ciphertexts do not match.
以上のようにしてRAM(35)の所定の格納領域に、部分群上元判定結果及びペアリング演算結果判定結果が格納されるが、さらに、部分群上元判定結果及びペアリング演算結果判定結果を、外部記憶装置(37)のデータ格納領域(375)に書き込みを行って保存記憶する。 As described above, the partial group element determination result and the pairing calculation result determination result are stored in the predetermined storage area of the RAM (35). Is stored in the data storage area (375) of the external storage device (37).
本実施形態では、検査ペアリング演算および部分群上元判定に続き、ペアリング演算及びペアリング演算結果の判定を処理するとして説明したが、この順に限定されるものではない。例えば、ペアリング演算及びペアリング演算結果の判定に続き、検査ペアリング演算および部分群上元判定を処理するとしてもよい。ところで、部分群上元判定結果によって、元PがE[L]の元Sが生成する巡回群〈S〉上の元であるかを判定できることになる。もし、元PがE[L]の元Sが生成する巡回群〈S〉上の元ではないと判定された場合には、ペアリング演算及びペアリング演算結果の判定が正しいものとはならないため、ペアリング演算及びペアリング演算結果の判定の前処理として、検査ペアリング演算および部分群上元判定を処理しておくことが好ましいといえる。従って、例えば図示しない制御部による制御の下、元PがE[L]の元Sが生成する巡回群〈S〉上の元ではないと判定された場合には、後続するペアリング演算及びペアリング演算結果の判定を行わないように処理することも可能である。 Although the present embodiment has been described as processing the pairing calculation and the determination of the pairing calculation result following the inspection pairing calculation and the partial group element determination, the present invention is not limited to this order. For example, after the pairing calculation and the determination of the pairing calculation result, the inspection pairing calculation and the partial group element determination may be processed. By the way, it is possible to determine whether the element P is an element on the cyclic group <S> generated by the element S of E [L] based on the partial group element determination result. If it is determined that the element P is not an element on the cyclic group <S> generated by the element S of E [L], the pairing calculation and the determination of the pairing calculation result are not correct. In addition, it can be said that it is preferable to process the inspection pairing calculation and the subgroup upper element determination as pre-processing of the pairing calculation and the determination of the pairing calculation result. Therefore, for example, when it is determined that the element P is not an element on the cyclic group <S> generated by the element S of E [L] under the control of the control unit (not shown), the subsequent pairing operation and pair It is also possible to perform processing so as not to determine the ring operation result.
検査装置(3)は、通信部(33)に通信装置(例えば、同軸ケーブルや光ファイバなどの通信ケーブル)を接続することで外部(インターネットなどのネットワーク)と通信可能である。従って、この実施形態では、2つの暗号文の各要素である暗号文c1の要素G1及び要素Y1、並びに暗号文c2の要素G2及び要素Y2は、予めデータとして外部記憶装置(37)のデータ格納領域(375)に記憶されているとしたが、より具体的には、例えば検査装置(3)が、ネットワークを介して、同じあるいは異なる暗号化装置(2)から暗号文c1の要素G1及び要素Y1、並びに暗号文c2の要素G2及び要素Y2を受信して、これらのデータを外部記憶装置(37)のデータ格納領域(375)に記憶するものとすることができる。また、このような形態に限定されず、同じあるいは異なる暗号化装置(2)で得られた2つの暗号文cの各要素をCD−ROMなどの記憶媒体に記憶して、この記憶媒体から検査装置(3)の外部記憶装置(37)に記憶させるものとしてもよい。 The inspection device (3) can communicate with the outside (network such as the Internet) by connecting a communication device (for example, a communication cable such as a coaxial cable or an optical fiber) to the communication unit (33). Thus, in this embodiment, elements G 1 and element Y 1 of the ciphertext c 1 a each element of the two ciphertexts, and elements G 2 and element Y 2 of the ciphertext c 2 is an external storage device in advance as data (37) is stored in the data storage area (375). More specifically, for example, the inspection device (3) transmits the ciphertext from the same or different encryption device (2) via the network. receiving element G 1 and element Y 1 of c 1 and element G 2 and element Y 2 of ciphertext c 2 and storing these data in the data storage area (375) of the external storage device (37) It can be. Further, the present invention is not limited to such a form, and each element of two ciphertexts c obtained by the same or different encryption device (2) is stored in a storage medium such as a CD-ROM, and an inspection is performed from this storage medium. It may be stored in the external storage device (37) of the device (3).
また、この実施形態では、上記鍵生成装置(1)で得られた元Pは、予めデータとして外部記憶装置(37)のデータ格納領域(375)に記憶されているとしたが、暗号文と同様にして、例えば検査装置(3)が、ネットワークを介して、鍵生成装置(1)から元Pのデータを受信して、このデータを外部記憶装置(37)のデータ格納領域(375)に記憶するものとすることができる。また、このような形態に限定されず、上記鍵生成装置(1)で得られた元PをCD−ROMなどの記憶媒体に記憶して、この記憶媒体から検査装置(3)の外部記憶装置(37)に記憶させるものとしてもよい。 In this embodiment, the element P obtained by the key generation device (1) is stored in advance in the data storage area (375) of the external storage device (37). Similarly, for example, the inspection device (3) receives the original P data from the key generation device (1) via the network, and stores this data in the data storage area (375) of the external storage device (37). It can be memorized. Further, the present invention is not limited to such a form, and the original P obtained by the key generation device (1) is stored in a storage medium such as a CD-ROM, and the external storage device of the inspection device (3) is stored from this storage medium. (37) may be stored.
さらに、この実施形態では、検査鍵Jは、予めデータとして外部記憶装置(37)のデータ格納領域(375)に記憶されているとしたが、検査鍵Jはその秘匿性が相当程度に要求されるのが通常である(検査鍵が公開鍵と同程度に容易に入手可能であれば、機能暗号が確率暗号としての機能を有することの意味が失われる。)。従って、通信傍受の可能性のあるネットワークを経由して検査装置(3)に送信されるのではなく、別途記憶媒体に記憶して、この記憶媒体を郵送などの手段で検査装置(3)の下に送り、この記憶媒体から検査装置(3)の外部記憶装置(37)に予め記憶させるのが好ましい。 Furthermore, in this embodiment, the inspection key J is stored in advance in the data storage area (375) of the external storage device (37), but the inspection key J is required to have a considerable degree of confidentiality. (If the inspection key can be obtained as easily as the public key, the meaning that the functional cipher has a function as a stochastic cipher is lost). Therefore, it is not transmitted to the inspection apparatus (3) via a network with the possibility of interception of communication, but is stored separately in a storage medium, and this storage medium is sent to the inspection apparatus (3) by means such as mailing. It is preferable that the data is sent down and stored in advance in the external storage device (37) of the inspection device (3) from this storage medium.
また、この実施形態では、上記鍵生成装置(1)で用いられたE[L]のうち無限遠点O以外の元Sも、外部記憶装置(37)のデータ格納領域(375)に予め記憶されているとした。しかし、このような実施形態に限定されるものではなく、例えば図示しないものの、上記鍵生成装置(1)における元P選択部と同様の処理を行う元S選択部を備えてE[L]から1つの元を抽出し、この元が無限遠点であるか否かを判定する判定部を備えることで、検査装置(3)において元Sを1つ決定するようにしてもよい。この場合、上記鍵生成装置(1)からE[L]のデータを受信して、これらのデータを外部記憶装置(37)のデータ格納領域に記憶する。 In this embodiment, the element S other than the infinity point O among E [L] used in the key generation device (1) is also stored in advance in the data storage area (375) of the external storage device (37). It has been said. However, the present invention is not limited to such an embodiment. For example, although not shown, an element S selection unit that performs the same processing as the element P selection unit in the key generation device (1) includes an element S selection unit from E [L]. One element S may be determined in the inspection apparatus (3) by including a determination unit that extracts one element and determines whether or not the element is a point at infinity. In this case, E [L] data is received from the key generation device (1), and these data are stored in the data storage area of the external storage device (37).
<復号化装置>
図7は、復号化装置(4)のハードウェア構成を例示した構成ブロック図である。図7に例示するように、復号化装置(4)は、キーボードなどが接続可能な入力部(41)、液晶ディスプレイなどが接続可能な出力部(42)、復号化装置(4)外部に通信可能な通信装置(例えば通信ケーブル)が接続可能な通信部(43)、CPU(Central Processing Unit)(44)、メモリであるRAM(45)、ROM(46)やハードディスクである外部記憶装置(47)並びにこれらの入力部(41)、出力部(42)、通信部(43)、CPU(44)、RAM(45)、ROM(46)、外部記憶装置(47)間のデータのやり取りが可能なように接続するバス(48)を有している。また必要に応じて、復号化装置(4)に、CD−ROMなどの記憶媒体を読み書きできる装置(ドライブ)などを設けるとしてもよい。
<Decryption device>
FIG. 7 is a block diagram illustrating the hardware configuration of the decoding device (4). As illustrated in FIG. 7, the decoding device (4) communicates with an input unit (41) to which a keyboard or the like can be connected, an output unit (42) to which a liquid crystal display or the like can be connected, and the decoding device (4) to the outside. A communication unit (43) to which a connectable communication device (for example, a communication cable) can be connected, a CPU (Central Processing Unit) (44), a RAM (45) as a memory, a ROM (46), and an external storage device (47) as a hard disk ) And the input unit (41), the output unit (42), the communication unit (43), the CPU (44), the RAM (45), the ROM (46), and the external storage device (47). It has the bus (48) which connects like this. If necessary, the decryption device (4) may be provided with a device (drive) that can read and write a storage medium such as a CD-ROM.
復号化装置(4)の外部記憶装置(47)には、後述する平文を生成するためのプログラムが保存記憶され、このプログラムの処理において必要となるデータ及びプログラムの処理によって得られた平文などを保存記憶するデータ格納領域が確保されている。より具体的には、平文を生成するためのプログラムは、秘密鍵xを用いて暗号文から平文を生成する復号化プログラム(471)である。これらのプログラムの処理において必要となるデータとして、秘密鍵xおよび暗号文の2つの要素がある。これらのデータに加え、各プログラムの処理によって得られる平文は、外部記憶装置(47)のデータ格納領域(472)に保存記憶される。
復号化装置(4)では、外部記憶装置(47)に記憶されたプログラムとこのプログラムの処理に必要なデータが必要に応じてRAM(45)呼び出されて、順次CPU(44)で処理されることで暗号文が生成される。
The external storage device (47) of the decryption device (4) stores and stores a program for generating plaintext, which will be described later, and stores data necessary for the processing of this program and plaintext obtained by the processing of the program. A data storage area for saving and storing is secured. More specifically, the program for generating plaintext is a decryption program (471) that generates plaintext from ciphertext using the secret key x. As data necessary for the processing of these programs, there are two elements: a secret key x and a ciphertext. In addition to these data, plain text obtained by the processing of each program is stored and stored in the data storage area (472) of the external storage device (47).
In the decryption device (4), the program stored in the external storage device (47) and the data necessary for the processing of this program are called up as needed by the RAM (45) and sequentially processed by the CPU (44). Thus, a ciphertext is generated.
図8は、復号化装置(4)のCPU(44)において上記所定のプログラムが処理されることにより、機能暗号における平文が生成される処理機能を示す機能ブロック図である。
以下、機能暗号における平文が生成される処理の流れを順次説明する。
FIG. 8 is a functional block diagram showing processing functions for generating plaintext in the functional encryption by processing the predetermined program in the CPU (44) of the decryption device (4).
Hereinafter, the flow of processing for generating plaintext in the functional encryption will be sequentially described.
復号化される暗号文cの要素G及び要素Yは、予めデータとして外部記憶装置(47)のデータ格納領域(472)に記憶されているとする。 It is assumed that the elements G and Y of the ciphertext c to be decrypted are stored in advance in the data storage area (472) of the external storage device (47).
また、外部記憶装置(47)のデータ格納領域(472)には、上記鍵生成装置(1)で得られた鍵である秘密鍵xが予め記憶されているとする。 Further, it is assumed that a secret key x, which is a key obtained by the key generation device (1), is stored in advance in the data storage area (472) of the external storage device (47).
復号化部(441)において、RAM(45)からG、Y、xを読み出して、演算m=Y−xGを行い、この演算結果をRAM(45)上の平文格納領域(453)に格納する。この演算結果が平文mである。なお、G、Y、xはそれぞれ、外部記憶装置(47)から読み込まれてRAM(45)上の暗号文格納格納領域(451)に格納される暗号文cの要素G及び要素Yと、同様に秘密鍵格納領域(452)に格納される秘密鍵xである。また、本実施形態では、演算m=Y−δxGにおいて、暗号化装置(2)に対応した復号化装置(4)であるためにδを+1とした。 In the decryption unit (441), G, Y, and x are read from the RAM (45), the calculation m = Y−xG is performed, and the calculation result is stored in the plaintext storage area (453) on the RAM (45). . The calculation result is plaintext m. G, Y, and x are the same as the elements G and Y of the ciphertext c read from the external storage device (47) and stored in the ciphertext storage area (451) on the RAM (45). Is the secret key x stored in the secret key storage area (452). Further, in the present embodiment, in the calculation m = Y−δxG, δ is set to +1 because it is a decryption device (4) corresponding to the encryption device (2).
以上のようにしてRAM(45)の所定の格納領域に、平文mが格納されるが、さらに平文mを、外部記憶装置(47)のデータ格納領域(472)に書き込みを行って保存記憶する。 As described above, the plaintext m is stored in the predetermined storage area of the RAM (45), and the plaintext m is further written and stored in the data storage area (472) of the external storage device (47). .
復号化装置(4)は、通信部(43)に通信装置(例えば、同軸ケーブルや光ファイバなどの通信ケーブル)を接続することで外部(インターネットなどのネットワーク)と通信可能である。従って、この実施形態では、暗号文cの要素G及び要素Yは、予めデータとして外部記憶装置(47)のデータ格納領域(472)に記憶されているとしたが、より具体的には、例えば復号化装置(4)が、ネットワークを介して、暗号化装置(2)から暗号文cの要素G及び要素Yを受信して、これらのデータを外部記憶装置(47)のデータ格納領域(472)に記憶するものとすることができる。また、このような形態に限定されず、暗号化装置(2)で得られた暗号文cの要素G及び要素YをCD−ROMなどの記憶媒体に記憶して、この記憶媒体から復号化装置(4)の外部記憶装置(47)に記憶させるものとしてもよい。 The decoding device (4) can communicate with the outside (network such as the Internet) by connecting a communication device (for example, a communication cable such as a coaxial cable or an optical fiber) to the communication unit (43). Therefore, in this embodiment, the element G and the element Y of the ciphertext c are stored in advance in the data storage area (472) of the external storage device (47), but more specifically, for example, The decryption device (4) receives the elements G and Y of the ciphertext c from the encryption device (2) via the network, and stores these data in the data storage area (472) of the external storage device (47). ). Further, the present invention is not limited to such a form, and the elements G and Y of the ciphertext c obtained by the encryption apparatus (2) are stored in a storage medium such as a CD-ROM, and the decryption apparatus is stored from this storage medium. It may be stored in the external storage device (47) of (4).
また、この実施形態では、秘密鍵xは、予めデータとして外部記憶装置(47)のデータ格納領域(472)に記憶されているとしたが、秘密鍵xはその秘匿性が高度に要求されるのが通常である。従って、通信傍受の可能性のあるネットワークを経由して復号化装置(4)に送信されるのではなく、別途記憶媒体に記憶して、この記憶媒体を郵送などの手段で復号化装置(4)の下に送り、この記憶媒体から復号化装置(4)の外部記憶装置(47)に予め記憶させるのが好ましい。 In this embodiment, the secret key x is stored in advance in the data storage area (472) of the external storage device (47). However, the secret key x is highly required to be confidential. It is normal. Therefore, it is not transmitted to the decryption device (4) via a network with the possibility of communication interception, but is stored in a separate storage medium, and this storage medium is sent by means such as mailing to the decryption device (4 ) And stored in advance in the external storage device (47) of the decryption device (4) from this storage medium.
<上記各装置全般について>
本発明である上記各装置は上述の実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記各装置において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
また、上記各装置における処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における処理機能がコンピュータ上で実現される。
また、上記各装置は、異なるコンピュータとして独立に構成される場合はもちろん、例えば1つのコンピュータにおいて、検査装置の有すべき機能の処理内容が記述されたプログラムと、暗号化装置の有すべき機能の処理内容が記述されたプログラムとを有することによって、1つのコンピュータが暗号化装置としても検査装置としても機能するように、コンピュータを複合的に機能させることもできる。
<About the above devices in general>
Each of the above devices according to the present invention is not limited to the above-described embodiment, and can be appropriately changed without departing from the spirit of the present invention. In addition, the processing described in each of the above devices may be executed not only in time series according to the order of description but also in parallel or individually as required by the processing capability of the device that executes the processing. .
Further, when the processing functions in the above devices are realized by a computer, the processing contents of the functions that each device should have are described by a program. Then, by executing this program on a computer, the processing functions in the above-described devices are realized on the computer.
In addition, each of the above devices may be configured independently as different computers, for example, in one computer, a program in which processing contents of functions that the inspection device should have and a function that the encryption device should have By having a program in which the processing contents of the above are described, the computer can be made to function in a complex manner so that one computer functions as both an encryption device and an inspection device.
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。 The program describing the processing contents can be recorded on a computer-readable recording medium. As the computer-readable recording medium, for example, any recording medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, and a semiconductor memory may be used. Specifically, for example, as a magnetic recording device, a hard disk device, a flexible disk, a magnetic tape or the like, and as an optical disk, a DVD (Digital Versatile Disc), a DVD-RAM (Random Access Memory), a CD-ROM (Compact Disc Read Only). Memory), CD-R (Recordable) / RW (ReWritable), etc., magneto-optical recording medium, MO (Magneto-Optical disc), etc., semiconductor memory, EEP-ROM (Electronically Erasable and Programmable-Read Only Memory), etc. Can be used.
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。 The program is distributed by selling, transferring, or lending a portable recording medium such as a DVD or CD-ROM in which the program is recorded. Furthermore, the program may be distributed by storing the program in a storage device of the server computer and transferring the program from the server computer to another computer via a network.
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。 A computer that executes such a program first stores, for example, a program recorded on a portable recording medium or a program transferred from a server computer in its own storage device. When executing the process, the computer reads a program stored in its own recording medium and executes a process according to the read program. As another execution form of the program, the computer may directly read the program from the portable recording medium and execute processing according to the program, and the program is transferred from the server computer to the computer. Each time, the processing according to the received program may be executed sequentially. Also, the program is not transferred from the server computer to the computer, and the above-described processing is executed by a so-called ASP (Application Service Provider) type service that realizes the processing function only by the execution instruction and result acquisition. It is good. Note that the program in this embodiment includes information that is used for processing by an electronic computer and that conforms to the program (data that is not a direct command to the computer but has a property that defines the processing of the computer).
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。 In this embodiment, the present apparatus is configured by executing a predetermined program on a computer. However, at least a part of these processing contents may be realized by hardware.
<機能暗号システム>
続いて、図9を参照して、上記の鍵生成装置(1)、暗号化装置(2)、検査装置(3)、復号化装置(4)を利用した機能暗号システムの一例を説明する。
図9は、鍵生成装置(1)、暗号化装置(2)、検査装置(3)、復号化装置(4)を利用した機能暗号システムの構成例を示す図である。
<Functional cryptographic system>
Next, an example of a functional encryption system using the above key generation device (1), encryption device (2), inspection device (3), and decryption device (4) will be described with reference to FIG.
FIG. 9 is a diagram illustrating a configuration example of a functional encryption system using the key generation device (1), the encryption device (2), the inspection device (3), and the decryption device (4).
鍵生成装置(1)、暗号化装置(2)、検査装置(3)、復号化装置(4)は、それぞれインターネットやLAN(Local Area Network)などのネットワーク(6)に通信可能に接続される。また、ネットワーク(6)には複数の暗号化装置(2)が接続されている。さらに、ネットワーク(6)には、公開鍵登録サーバ(5)が接続されている。 The key generation device (1), the encryption device (2), the inspection device (3), and the decryption device (4) are communicably connected to a network (6) such as the Internet or a LAN (Local Area Network). . A plurality of encryption devices (2) are connected to the network (6). Furthermore, a public key registration server (5) is connected to the network (6).
鍵生成装置(1)において生成された公開鍵g、公開鍵yはいずれも機能暗号システムにおいて公開される。また、この機能暗号システムでは、鍵生成装置(1)において得られた元P、元Pを得るに利用した集合E[L]、線形変換Ψの演算係数も公開される。機能暗号システムにおいて公開される公開鍵g、公開鍵y、元P、集合E[L]、線形変換Ψの演算係数は、鍵生成装置(1)の外部記憶装置(17)に保存記憶されるとし、ネットワーク(6)を経由して暗号化装置(2)などからアクセスされることによって配布されるものとしてもよい。しかし、鍵生成装置(1)では、秘密鍵x及び検査鍵Jも生成されるため、不正アクセスによる秘密鍵xなどの漏洩に対処するため、公開鍵登録サーバ(5)の外部記憶装置に、機能暗号システムにおいて公開される公開鍵g、公開鍵y、元P、集合E[L]、線形変換Ψの演算係数を保存しておくのがよい。つまり機能暗号システムでは、公開鍵登録サーバ(5)が暗号化装置(2)からのアクセスを受けることで、公開鍵gなどの提供がなされる。 Both the public key g and the public key y generated in the key generation device (1) are disclosed in the functional encryption system. In this functional encryption system, the element P obtained in the key generation device (1), the set E [L] used to obtain the element P, and the arithmetic coefficient of the linear transformation Ψ are also disclosed. The public key g, the public key y, the element P, the set E [L], and the arithmetic coefficient of the linear transformation Ψ are publicly stored in the function storage system in the external storage device (17) of the key generation device (1). It may be distributed by being accessed from the encryption device (2) or the like via the network (6). However, since the secret key x and the check key J are also generated in the key generation device (1), in order to deal with leakage of the secret key x and the like due to unauthorized access, the external storage device of the public key registration server (5) The public key g, the public key y, the element P, the set E [L], and the calculation coefficient of the linear transformation Ψ, which are disclosed in the functional encryption system, may be stored. That is, in the functional encryption system, the public key g and the like are provided when the public key registration server (5) receives access from the encryption device (2).
鍵生成装置(1)において生成された秘密鍵xは、その秘匿性が高度に要求される。従って、通信傍受の可能性のあるネットワーク(6)を経由して復号化装置(4)に送信されるのではなく、別途記憶媒体に記憶して、この記憶媒体を郵送などの手段で復号化装置(4)の下に送り、この記憶媒体から復号化装置(4)の外部記憶装置(47)に記憶させるのが好ましい。 The secret key x generated in the key generation device (1) is highly required to be confidential. Therefore, it is not sent to the decryption device (4) via the network (6) with the possibility of intercepting communication, but is stored in a separate storage medium, and this storage medium is decrypted by means such as mailing. It is preferably sent under the device (4) and stored from this storage medium in the external storage device (47) of the decoding device (4).
鍵生成装置(1)において生成された検査鍵Jは、その秘匿性が相当程度に要求される。従って、通信傍受の可能性のあるネットワーク(6)を経由して検査装置(3)に送信されるのではなく、別途記憶媒体に記憶して、この記憶媒体を郵送などの手段で検査装置(3)の下に送り、この記憶媒体から検査装置(3)の外部記憶装置(37)に記憶させるのが好ましい。 The inspection key J generated in the key generation device (1) is required to have a high degree of confidentiality. Therefore, it is not transmitted to the inspection device (3) via the network (6) with the possibility of intercepting communication, but is stored in a separate storage medium, and this storage medium is sent by means such as mailing to the inspection device ( 3), and it is preferable that the storage medium is stored in the external storage device (37) of the inspection device (3).
複数の暗号化装置(2)は、それぞれ公開鍵登録サーバ(5)にアクセスして公開鍵gなどを入手し、各暗号化装置(2)において平文mから暗号文cを生成する。各暗号化装置(2)において生成された暗号文cは、ネットワーク(6)を介して復号化装置(4)に送信される。また、検査装置(3)は、暗号化装置(2)で生成された暗号文cの受信を行う。 The plurality of encryption devices (2) each access the public key registration server (5) to obtain the public key g and the like, and the encryption device (2) generates the ciphertext c from the plaintext m. The ciphertext c generated in each encryption device (2) is transmitted to the decryption device (4) via the network (6). The inspection device (3) receives the ciphertext c generated by the encryption device (2).
復号化装置(4)では、秘密鍵xをもって、ネットワーク(6)経由で受信された、各暗号化装置(2)で生成された暗号文の復号化を行う。また、検査装置(3)では、検査鍵Jをもって、ネットワーク経由で受信された、各暗号化装置(2)で生成された2つの暗号文の間で上記のペアリングの演算を行い、平文が一致するかの検査を行う。 The decryption device (4) decrypts the ciphertext generated by each encryption device (2) received via the network (6) with the secret key x. The inspection device (3) performs the above pairing operation between the two ciphertexts generated by each encryption device (2) received via the network with the inspection key J, and the plaintext is Check for a match.
このような機能暗号システムにおいては、例えばネットワーク(6)上における不正アクセス者が、暗号化装置(2)で生成された暗号文を傍受しても、当該暗号文は平文と1対1の関係にないため、傍受された暗号文からそれに対応する平文が何であったかを判別することはできない。つまりこの場合、この機能暗号システムは確率暗号として機能しているといえる。このことは、検査鍵Jを持たない正当なアクセス者でも同様である。しかし、検査鍵Jを持つ(正当な)アクセス者ならば、検査装置によって受信した2つの暗号文からそれぞれに対応する平文の一致性を検査することができる。つまりこの場合、この機能暗号システムは確定暗号として機能するといえる。 In such a functional encryption system, even if an unauthorized access person on the network (6) intercepts a ciphertext generated by the encryption device (2), the ciphertext has a one-to-one relationship with the plaintext. Therefore, it is impossible to determine what the plaintext corresponding to the intercepted ciphertext was. That is, in this case, it can be said that this functional encryption system functions as a stochastic encryption. The same applies to a legitimate accessor who does not have the inspection key J. However, a (legitimate) accessor having the inspection key J can inspect the matching of the plaintext corresponding to each of the two ciphertexts received by the inspection device. That is, in this case, it can be said that this functional encryption system functions as a definite encryption.
本発明である鍵生成装置、暗号化装置、復号化装置及び検査装置によって機能暗号を実現できるので、例えば、投票者と票との対応関係を不明にし(無記名性)、さらに投票所における不正の有無を検査できること(透明性)などが要求される電子投票などに利用できる。 Since the functional encryption can be realized by the key generation device, the encryption device, the decryption device, and the inspection device according to the present invention, for example, the correspondence relationship between the voter and the vote is unclear (anonymity), and the illegal It can be used for electronic voting that requires inspection (transparency).
1 鍵生成装置
2 暗号化装置
3 検査装置
4 復号化装置
DESCRIPTION OF
Claims (10)
乱数(0以上L未満の整数)を秘密鍵xとして出力する秘密鍵生成手段と、
秘密鍵生成手段において出力された秘密鍵xと、元記憶手段において記憶された元Pとで楕円スカラー倍演算J=xPを行い、この演算結果を検査鍵Jとして出力する検査鍵生成手段と、
元記憶手段において記憶された元Pに対して線形変換Ψ(但し線形変換Ψは、E[L]から、フロベニウス写像φnの固有値λnに関する固有空間Ψ(E[L])への準同型写像であって、Ψ=const×(φn−λn)〔constは定数〕で定義される。)の演算を行い、この演算結果を公開鍵gとして出力する第1公開鍵生成手段と、
検査鍵生成手段において出力された検査鍵Jに対して線形変換Ψの演算を行い、この演算結果を公開鍵yとして出力する第2公開鍵生成手段と、
を備えることを特徴とする鍵生成装置。 Element of at least E [L] (a set of points R satisfying LR = O [L is a prime number and O is a point at infinity] on an elliptic curve E defined on a finite field) P (where the original P is [n is a positive integer] Frobenius mapping phi n of E [L]. to position the original number of cyclic groups L on the non-specific space) and the original storage means for storing,
Secret key generation means for outputting a random number (an integer of 0 or more and less than L) as a secret key x;
A check key generating means for performing an elliptic scalar multiplication J = xP on the secret key x output in the secret key generating means and the element P stored in the original storage means, and outputting the calculation result as the check key J;
Linear transformation Ψ (where linear transformation Ψ is the homomorphism from E [L] to eigenspace Ψ (E [L]) for eigenvalue λ n of Frobenius map φ n with respect to element P stored in the original storage means. A first public key generating means that performs an operation of Ψ = const × (φ n −λ n ) (const is a constant) and outputs the operation result as a public key g.
A second public key generating means for performing a linear transformation Ψ on the check key J output in the check key generating means, and outputting the calculation result as a public key y;
A key generation device comprising:
元演算手段によって出力された各演算結果の少なくとも1つが無限遠点であるかを判定する元演算結果判定手段とを備え、
元記憶手段が、元演算結果判定手段において、元演算手段によって出力された各演算結果がともに無限遠点Oにならないと判定された上記元Pを記憶するものである
ことを特徴とする請求項1記載の鍵生成装置。 E the original P on [L], and calculating φ n P-λ i n P ( where i = 1,2, λ 1 n, λ 2 n is the Frobenius mapping phi n each E [L] An original value calculating unit), and outputting each calculation result;
Original calculation result determination means for determining whether at least one of the calculation results output by the original calculation means is a point at infinity,
The original storage means stores the element P determined by the original calculation result determination means that both of the calculation results output by the original calculation means are not the infinity point O. The key generation device according to 1.
乱数t(但し、0以上L未満の整数とする。)を出力する乱数生成手段と、
暗号化要素記憶手段に記憶された公開鍵gと、乱数生成手段において出力された乱数tとで楕円スカラー倍演算G=tgを行い、
暗号化要素記憶手段に記憶された公開鍵yと、乱数生成手段において出力された乱数tと、暗号化要素記憶手段に記憶された平文mとで楕円加算及び楕円スカラー倍による演算Y=m+δty(但しδは、1または−1とする。)を行い、
これらの演算結果Gと演算結果Yとを暗号文c=(G、Y)として出力する暗号化手段と、
を備えることを特徴とする暗号化装置。 At least the plaintext m (where plaintext m is, E and Frobenius mapping phi n original eigenspace of [L].) And the public key g output by the key generation device according to claim 1 or claim 2 And an encryption element storage means for storing the public key y,
Random number generation means for outputting a random number t (provided that the integer is 0 or more and less than L);
An elliptic scalar multiplication G = tg is performed on the public key g stored in the encryption element storage unit and the random number t output from the random number generation unit,
An operation Y = m + δty (with elliptic addition and elliptic scalar multiplication) using the public key y stored in the encryption element storage means, the random number t output from the random number generation means, and the plaintext m stored in the encryption element storage means Where δ is 1 or -1.)
Encryption means for outputting these calculation result G and calculation result Y as ciphertext c = (G, Y);
An encryption device comprising:
検査要素記憶手段に記憶された暗号文c1、c2との間において、検査要素記憶手段に記憶された元P、検査鍵Jを用いて、ペアリングeL(δ(G1−G2)、J)及びペアリングeL(Y1−Y2、P)を演算し、各演算結果をそれぞれ出力するペアリング演算手段と、
ペアリング演算手段によって出力された各演算結果の一致を判定し、この判定結果を出力するペアリング演算結果判定手段と、
を備えることを特徴とする検査装置。 At least two ciphertexts c 1 = (G 1 , Y 1 ) and c 2 = (G 2 , Y 2 ) output by the same or separate encryption device according to claim 3, and claim 1 or claim Check element storage means for storing the element P stored in the key generation device according to claim 2 and the check key J output in the key generation device according to claim 1 or claim 2;
A pairing e L (δ (G 1 -G 2) is used between the ciphertexts c 1 and c 2 stored in the test element storage unit and the source P and the test key J stored in the test element storage unit. ), J) and pairing e L (Y 1 -Y 2 , P), and pairing calculation means for outputting each calculation result,
A pairing calculation result determining means for determining a match between the calculation results output by the pairing calculating means and outputting the determination result;
An inspection apparatus comprising:
検査要素記憶手段に記憶された元Sと検査要素記憶手段に記憶された元Pとの間のペアリングeL(S、P)を演算し、この演算結果を出力する検査ペアリング演算手段と、
検査ペアリング演算手段で演算されたペアリングeL(S、P)の値が単位元1であるかを判定し、この判定結果を出力する部分群上元判定手段と、
を備えたことを特徴とする請求項4記載の検査装置。 The inspection element storage means stores an element S other than the infinity point O of E [L],
A check pairing calculating means for calculating a pairing e L (S, P) between the element S stored in the test element storage means and the element P stored in the check element storage means, and outputting the calculation result; ,
Determining whether the value of the pairing e L (S, P) calculated by the inspection pairing calculation means is the unit element 1, and outputting the determination result;
The inspection apparatus according to claim 4, further comprising:
復号化要素記憶手段に記憶された秘密鍵x及び暗号文c=(G、Y)の間で楕円スカラー倍及び楕円減算による演算m=Y−δxGを行い、この演算結果を平文mとして出力する復号化手段と、
を備えることを特徴とする復号化装置。 A decryption that stores at least the secret key x output by the key generation device according to claim 1 or 2 and the ciphertext c = (G, Y) output by the encryption device according to claim 2 Element storage means;
An operation m = Y−δxG by elliptic scalar multiplication and ellipse subtraction is performed between the secret key x and the ciphertext c = (G, Y) stored in the decryption element storage means, and the operation result is output as plaintext m. Decryption means;
A decoding device comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004381445A JP4528114B2 (en) | 2004-12-28 | 2004-12-28 | Key generation device, encryption device, inspection device, decryption device, key generation program, encryption program, inspection program, decryption program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004381445A JP4528114B2 (en) | 2004-12-28 | 2004-12-28 | Key generation device, encryption device, inspection device, decryption device, key generation program, encryption program, inspection program, decryption program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006184831A JP2006184831A (en) | 2006-07-13 |
JP4528114B2 true JP4528114B2 (en) | 2010-08-18 |
Family
ID=36737963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004381445A Expired - Fee Related JP4528114B2 (en) | 2004-12-28 | 2004-12-28 | Key generation device, encryption device, inspection device, decryption device, key generation program, encryption program, inspection program, decryption program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4528114B2 (en) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010061951A1 (en) * | 2008-11-28 | 2010-06-03 | 国立大学法人岡山大学 | Scalar multiplier and scalar multiplication program |
JP2010164904A (en) * | 2009-01-19 | 2010-07-29 | Fujitsu Ltd | Elliptic curve arithmetic processing unit and elliptic curve arithmetic processing program and method |
JP5246796B2 (en) * | 2009-09-30 | 2013-07-24 | 国立大学法人 岡山大学 | Scalar multiplication arithmetic unit and power multiplication arithmetic unit |
JP2009301071A (en) * | 2009-09-30 | 2009-12-24 | Okayama Univ | Operating program for scalar multiplication and operating program for exponentiation |
CN108476136B (en) | 2016-01-18 | 2021-01-05 | 三菱电机株式会社 | Ciphertext conversion apparatus, computer-readable recording medium, and ciphertext conversion method |
CN113821807B (en) * | 2021-08-18 | 2023-11-14 | 北京中电飞华通信有限公司 | Encryption method and device, decryption method and device and security system for RFID asset information |
CN116684066B (en) * | 2023-07-06 | 2023-10-20 | 北京隐算科技有限公司 | Homomorphic encryption method, system and storage medium supporting integer operation |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002026892A (en) * | 2000-05-02 | 2002-01-25 | Murata Mach Ltd | Key sharing method, private key generating method, common key generating method, encryption communication method, private key generator, common key generator, encryption communication system and recording medium |
JP2004201124A (en) * | 2002-12-19 | 2004-07-15 | Murata Mach Ltd | Public key ciphering method, signature method, cipher communication system, and computer program |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005500740A (en) * | 2001-08-13 | 2005-01-06 | ザ ボード オブ トラスティーズ オブ ザ リーランド スタンフォード ジュニア ユニバーシティ | ID-based encryption and related cryptosystem systems and methods |
-
2004
- 2004-12-28 JP JP2004381445A patent/JP4528114B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002026892A (en) * | 2000-05-02 | 2002-01-25 | Murata Mach Ltd | Key sharing method, private key generating method, common key generating method, encryption communication method, private key generator, common key generator, encryption communication system and recording medium |
JP2004201124A (en) * | 2002-12-19 | 2004-07-15 | Murata Mach Ltd | Public key ciphering method, signature method, cipher communication system, and computer program |
Also Published As
Publication number | Publication date |
---|---|
JP2006184831A (en) | 2006-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2376651C2 (en) | Using isogenies to design cryptosystems | |
JP4575283B2 (en) | ENCRYPTION DEVICE, DECRYPTION DEVICE, PROGRAM, AND METHOD | |
US7688973B2 (en) | Encryption apparatus, decryption apparatus, key generation apparatus, program, and method | |
US7787623B2 (en) | Key generating apparatus, program, and method | |
Dartois et al. | SQISignHD: new dimensions in cryptography | |
US11979492B2 (en) | Computer-implemented system and method for distributing shares of digitally signed data | |
EP0936776B1 (en) | A network system using a threshold secret sharing method | |
Jayapandian et al. | Secure and efficient online data storage and sharing over cloud environment using probabilistic with homomorphic encryption | |
US20220045840A1 (en) | Methods and systems for somewhat homomorphic encryption and key updates based on geometric algebra for distributed ledger/blockchain technology | |
JP2021523620A (en) | Methods and systems for communicating secrets | |
Azarderakhsh et al. | How not to create an isogeny-based PAKE | |
Lee et al. | Tightly CCA-secure encryption scheme in a multi-user setting with corruptions | |
CN112395636B (en) | Power grid data encryption model training method, system, storage medium and equipment | |
JP4528114B2 (en) | Key generation device, encryption device, inspection device, decryption device, key generation program, encryption program, inspection program, decryption program | |
CN115865531B (en) | Proxy re-encryption digital asset authorization method | |
JP4875448B2 (en) | Key generation apparatus, anonymous signature system, management apparatus, anonymous signature method, and program | |
JP4758814B2 (en) | Anonymous ciphertext communication system, key generation device, communication device, method thereof, program, and recording medium | |
JP4773941B2 (en) | Proxy signature device, signer device, signature verification device, and programs thereof | |
CN114422130B (en) | Quantum encryption method based on quantum power function confusion | |
US20220094532A1 (en) | Methods and systems for homomorphic data representation and concealment powered by clifford geometric algebra | |
Sadi | Homomorphic encryption | |
Roy | A homomorphic computational model for Chinese remainder theorem-based secret sharing | |
JP2007124612A (en) | Key generation program | |
Oosterhout | Formal Verification of Lightweight Decentralized Attribute-based Encryption | |
JP6528560B2 (en) | Index calculation system, index calculation method, index calculation program, and collation system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20061225 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070126 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100525 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100604 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130611 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140611 Year of fee payment: 4 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |