Movatterモバイル変換


[0]ホーム

URL:


JP4934010B2 - Public key encryption system, public key encryption method, encryption device, decryption device, encryption program, and decryption program - Google Patents

Public key encryption system, public key encryption method, encryption device, decryption device, encryption program, and decryption program
Download PDF

Info

Publication number
JP4934010B2
JP4934010B2JP2007306081AJP2007306081AJP4934010B2JP 4934010 B2JP4934010 B2JP 4934010B2JP 2007306081 AJP2007306081 AJP 2007306081AJP 2007306081 AJP2007306081 AJP 2007306081AJP 4934010 B2JP4934010 B2JP 4934010B2
Authority
JP
Japan
Prior art keywords
session key
information
encryption
key
generating
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
Application number
JP2007306081A
Other languages
Japanese (ja)
Other versions
JP2009128792A (en
Inventor
正幸 阿部
龍明 岡本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
NTT Inc
Original Assignee
Nippon Telegraph and Telephone Corp
NTT Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp, NTT IncfiledCriticalNippon Telegraph and Telephone Corp
Priority to JP2007306081ApriorityCriticalpatent/JP4934010B2/en
Publication of JP2009128792ApublicationCriticalpatent/JP2009128792A/en
Application grantedgrantedCritical
Publication of JP4934010B2publicationCriticalpatent/JP4934010B2/en
Expired - Fee Relatedlegal-statusCriticalCurrent
Anticipated expirationlegal-statusCritical

Links

Images

Description

Translated fromJapanese

この発明は、いわゆるハイブリッド方式の公開鍵暗号システム、公開鍵暗号方法、暗号化装置、復号化装置、暗号化プログラム及び復号化プログラムに関する。  The present invention relates to a so-called hybrid public key encryption system, public key encryption method, encryption apparatus, decryption apparatus, encryption program, and decryption program.

第一の従来の公開鍵暗号方法について説明をする。この方法は、非特許文献1に記載されているDHIESと呼ばれるハイブリッド暗号方式における秘密鍵暗号を、任意長の入力を扱える強擬似ランダム置換に置き換えたものである(例えば、非特許文献2参照。)。強擬似ランダム置換の構成例については、非特許文献3に詳しい。
qを素数、Gを生成元gが作る位数qの群とする。Gの元の最大ビット長をlとする。Zを0以上q−1以下の整数の集合とする。ZをZから0を除いた集合とする。Hをハッシュ関数とする。E,Dをそれぞれセッション鍵kにより定まる強擬似ランダム置換とその逆関数とする。
The first conventional public key encryption method will be described. In this method, the secret key encryption in the hybrid encryption method called DHIES described in Non-PatentDocument 1 is replaced with strong pseudo-random replacement that can handle an input of any length (see Non-PatentDocument 2, for example). ). A configuration example of strong pseudo-random substitution is detailed inNon-Patent Document 3.
Let q be a prime number and G be a group of orders q created by the generator g. Let the original maximum bit length of G be l. Let Zq be a set of integers between 0 and q-1. Let Zq* be a set obtained by subtracting 0 from Zq . Let H be a hash function. Let Ek and Dk be strong pseudo-random replacement determined by the session key k and its inverse function, respectively.

鍵生成手順:
・xをランダムにZから選択する。
・y=gを計算する。
・xを秘密鍵、yを公開鍵とする。
暗号化手順:
・rをランダムにZから選ぶ。
・R=g,k=H(R),c=E(m),u=y
・(u,c)を暗号文として出力する。
復号化手順:
・R=u(1/x),k=H(R),m=D(c)
・mをメッセージとして出力する。
Key generation procedure:
· X is selected fromZ q at random.
Calculate y = gx
X is a private key and y is a public key.
Encryption procedure:
・ R is selected from Zq* at random.
R = gr , k = H (R), c = Ek (m), u = yr
Output (u, c) as ciphertext.
Decryption procedure:
R = u(1 / x) , k = H (R), m = Dk (c)
-Output m as a message.

第二の従来の公開鍵暗号方法について説明をする(例えば、非特許文献4参照。)。
qを素数、Gを生成元gが作る位数qの群とする。Gの元の最大ビット長をlとする。Zを0以上q−1以下の整数の集合とする。ZをZqから0を除いた集合とする。H,Hをハッシュ関数とする。E,Dをそれぞれセッション鍵kにより定まるlength-preservingな暗号化関数、復号化関数とする。length-preservingな関数とは、出力されるビットの長さが、入力されるビットの長さと等しい関数のことである。
A second conventional public key encryption method will be described (for example, see Non-Patent Document 4).
Let q be a prime number and G be a group of orders q created by the generator g. Let the original maximum bit length of G be l. Let Zq be a set of integers between 0 and q-1. Let Zq* be a set obtained by subtracting 0 from Zq. Let H1 and H2 be hash functions. Let Ek and Dk be a length-preserving encryption function and decryption function determined by the session keyk , respectively. A length-preserving function is a function in which the output bit length is equal to the input bit length.

鍵生成手順:
・x,xをそれぞれランダムにZから選ぶ。
・y=gx1,y=gx2を計算する。x1,x2はそれぞれx,xを意味する。以下、同様である。
・xを第一の秘密鍵,xを第二の秘密鍵,yを第一の公開鍵,yを第二の公開鍵とする。
暗号化手順:
・rをランダムにZから選ぶ。
・R=g,k=H(R),c=E(m),a=G(c),u=yra
・(u,c)を暗号文として出力する。
復号化手順:
・a=G(c),R=u(1/(x1+ax2)),k=H(R),m=D(c)
・mをメッセージとして出力する。
Key generation procedure:
• x1 and x2 are each selected from Zq at random.
Calculate y1 = gx1 and y2 = gx2 x1 and x2 mean x1 and x2 , respectively. The same applies hereinafter.
• The x1 first of the secret key, the x2 second of the secret key, the y1 first public key, the y2 and the second public key.
Encryption procedure:
・ R is selected from Zq* at random.
R = gr , k = H (R), c = Ek (m), a = G (c), u = y1r y2ra
Output (u, c) as ciphertext.
Decryption procedure:
A = G (c), R = u(1 / (x1 + ax2)) , k = H (R), m = Dk (c)
-Output m as a message.

第一の従来の公開鍵方法と第二の従来の公開鍵方法はいずれも、ハッシュ関数が完全なである場合には、適応的選択暗号文攻撃に対して安全であると考えられている。また、いずれの方法も、暗号文がuとcの2つの要素からなり、uは、Gの元であるためlビットであり、cは、強擬似ランダム置換又はlength-preservingな暗号化関数にメッセージmを入力した場合の出力値であるため、|m|ビットである。ここで、|・|は、・のビット長を表す。したがって、いずれの方法においても、暗号文の長さは、l+|m|ビットとなる。
Michel Abdalla, Mihir Bellare and Phillip Rogaway, “The Oracle Diffie-Hellman Assumptions and an Analysis of DHIES”, Topics in Cryptology - CT-RSA 2001, LNCS 2020, Springer-Verlag, 2001, pp.143-158Kaoru Kurosawa and Toshiki Matsuo, “How to Remove MAC from DHIES”, Information Security and Privacy: 9th Australasian Conference, ACISP 2004, LNCS 3108, Springer-Verlag, 2004, pp.236-247Shai Halevi, “EME*:Extending EME to Handle Arbitary-Length Messages with Associated Data”, INDOCRYPT 2004, LNCS 3348, Springer-Verlag, 2004, pp.315-327Xianhui Lu, Xuejia Lai and Dake He, “Efficient chosen ciphertext secure PKE scheme with short ciphertext”, IACR ePrint archive, 2007/210
Both the first conventional public key method and the second conventional public key method are considered to be secure against an adaptive selection ciphertext attack if the hash function is complete. In both methods, the ciphertext is composed of two elements u and c. Since u is an element of G, l is 1 bit, and c is a strong pseudo-random replacement or length-preserving encryption function. Since it is an output value when the message m is input, it is | m | bits. Here, | · | represents the bit length of •. Therefore, in either method, the length of the ciphertext is l + | m | bits.
Michel Abdalla, Mihir Bellare and Phillip Rogaway, “The Oracle Diffie-Hellman Assumptions and an Analysis of DHIES”, Topics in Cryptology-CT-RSA 2001, LNCS 2020, Springer-Verlag, 2001, pp.143-158 Kaoru Kurosawa and Toshiki Matsuo, “How to Remove MAC from DHIES”, Information Security and Privacy: 9th Australasian Conference, ACISP 2004, LNCS 3108, Springer-Verlag, 2004, pp.236-247 Shai Halevi, “EME *: Extending EME to Handle Arbitary-Length Messages with Associated Data”, INDOCRYPT 2004, LNCS 3348, Springer-Verlag, 2004, pp.315-327 Xianhui Lu, Xuejia Lai and Dake He, “Efficient chosen ciphertext secure PKE scheme with short ciphertext”, IACR ePrint archive, 2007/210

第一の従来の公開鍵暗号方法においては、暗号化関数、復号化関数として、セッション鍵kにより定まる強擬似ランダム置換E、Dを用いている。このため、セッション鍵kのビット長(以下、セキュリティパラメータλとする。)よりも短いメッセージを暗号化することができないという問題があった。例えば、セキュリティパラメータλ=128ビットの場合、128ビットよりも短い長さのメッセージを暗号化することができず、暗号化しても安全性が保障されないという問題があった。
また、第二の従来の公開鍵暗号方法においては、2つの公開鍵y,yを用いており、公開鍵の数が多いという問題があった。
In the first conventional public key encryption method, strong pseudo-random replacement Ek and Dk determined by the session keyk are used as the encryption function and the decryption function. For this reason, there is a problem that a message shorter than the bit length of the session key k (hereinafter referred to as a security parameter λ) cannot be encrypted. For example, when the security parameter λ = 128 bits, there is a problem that a message having a length shorter than 128 bits cannot be encrypted, and security is not guaranteed even if the message is encrypted.
In addition, the second conventional public key encryption method uses two public keys y1 and y2 and has a problem that the number of public keys is large.

この発明は、任意の長さのメッセージを暗号化することができ、かつ、公開鍵の数が少ない公開鍵暗号システム、公開鍵暗号方法、暗号化装置、復号化装置、暗号化プログラム及び復号化プログラムを提供することを目的とする。  The present invention can encrypt a message having an arbitrary length and has a small number of public keys, a public key encryption system, a public key encryption method, an encryption device, a decryption device, an encryption program, and a decryption The purpose is to provide a program.

請求項1に記載された発明によれば、メッセージmをセッション鍵kを用いて暗号化して対称暗号情報cを生成すると共に、セッション鍵kを公開鍵yを用いて暗号化して非対称暗号情報uを生成する暗号化装置と、非対称暗号情報uと秘密鍵xとを用いてセッション鍵kを生成すると共に、そのセッション鍵kと対称暗号情報cとを用いてメッセージmを生成する復号化装置とを備えるハイブリット型の公開鍵暗号システムにおいて、秘密鍵xは、0以上q−1以下の整数からなる第一の集合Zから1つの元を選択することにより生成されたものであり、公開鍵yは、秘密鍵xに対応しており、位数q(qは素数)の群Gの元であり、その群Gの生成元gと秘密鍵xとを用いて生成された1つの公開鍵yである。According to the first aspect of the invention, the message m is encrypted using the session key k to generate the symmetric cipher information c, and the session key k is encrypted using the public key y to obtain the asymmetric cipher information u. An encryption device that generates a session key k using the asymmetric encryption information u and the secret key x, and a decryption device that generates the message m using the session key k and the symmetric encryption information c. The secret key x is generated by selecting one element from a first set Zq consisting of integers of 0 or more and q−1 or less, and is a public key. y corresponds to the secret key x, is an element of the group G of order q (q is a prime number), and one public key generated using the generator g of the group G and the secret key x y.

上記暗号化装置は、第一の集合Zqから0を除いた第二の集合Zq*から1つの元をランダムに選択することにより乱数rを生成する乱数生成手段と、生成元gと乱数rとから、群Gの元であるベアセッション鍵Rを生成する第一ベアセッション鍵生成手段と、予め定められたビット長のハッシュ値を出力するハッシュ関数H1に、ベアセッション鍵Rを入力することにより、セッション鍵kを生成する第一セッション鍵生成手段と、セッション鍵kによって定まり、入力されるメッセージと同じビット長の対称暗号情報を出力する暗号化関数Ek(m)に、メッセージmを入力することにより対称暗号情報cを生成する対称暗号情報生成手段と、群Gの元を出力するハッシュ関数H2に、対称暗号情報cを入力することにより、検証情報aを生成する第一検証情報生成手段と、生成される非対称暗号情報uと秘密鍵xと検証情報aとを用いて上記暗号化装置がベアセッション鍵Rを生成することができるように、検証情報aと生成元gと公開鍵yとを用いて、群Gの元である非対称暗号情報uを生成する非対称暗号情報生成手段と、を備える。The encryption apparatus includes a random number generating means for generating a random number r by randomly selecting one element from a second set Zq * obtained by removing 0 from the first set Zq, a generator g, a random number r, By inputting the bare session key R to the first bare session key generating means for generating the bare session key R that is an element of the group G and the hash function H1 that outputs a hash value having a predetermined bit length. The message m is input to the first session key generating means for generating the session key k and the encryption function Ek (m) that is determined by the session key k and outputs symmetric encryption information having the same bit length as the input message. By inputting the symmetric encryption information c to the symmetric encryption information generation means for generating the symmetric encryption information c and the hash function H2 that outputs the elements of the group G, the verification information a A first verification information generating means for generating, using an asymmetric encryption information u and a secret key x and the verification information a that are generated asthe encrypted device cangenerate a bare session key R, the verification information a provided withusing a generator g and the public key y, and asymmetric encryption information generating means for generating asymmetric cryptographic information u is the original group G, a.

上記復号化装置は、ハッシュ関数Hに対称暗号情報cを入力することにより、検証情報aを生成する第二検証情報生成手段と、非対称暗号情報uと、秘密鍵xと、第二検証情報生成手段が生成した検証情報aとを用いて、ベアセッション鍵Rを生成する第二ベアセッション鍵生成手段と、ハッシュ関数Hに、第二非対称暗号情報生成手段が生成したベアセッション鍵Rを入力することにより、セッション鍵kを生成する第二セッション鍵生成手段と、セッション鍵kによって定まり、暗号化関数Eに対応し、入力される対称暗号情報と同じビット長のメッセージを出力する復号化関数Dに、対称暗号情報cを入力することによりメッセージmを生成するメッセージ生成手段と、を備える。The decoding device, by inputting a symmetric encryption information c to the hash function H2, and the second verification information generating means for generating verification information a, and asymmetric encryption information u, and the private key x, the second verification information Using the verification information a generated by the generating means, the second bare session key generating means for generating the bare session key R, and the bare session key R generated by the second asymmetric encryption information generating means to the hash function H1 A second session key generation unit that generates a session key k by inputting and a decryption that is determined by the session key k and that corresponds to the encryption function Ek and outputs a message having the same bit length as the input symmetric encryption information Message generating means for generating a message m by inputting the symmetric encryption information c into the conversion function Dk .

秘密鍵xと公開鍵yの数がそれぞれ1つであり、秘密鍵と公開鍵の数が十分に少ない。また、暗号化関数E、復号化関数Dとして、強擬似ランダム置換ではなく、秘密鍵暗号(共通鍵暗号ともいう。)で通常用いられるlength-preservingな任意の関数を用いているため、1ビット以上の任意のメッセージを暗号化することができる。There are one secret key x and one public key y, and the number of secret keys and public keys is sufficiently small. In addition, as the encryption function Ek and the decryption function Dk , not a strong pseudo-random replacement, but an arbitrary length-preserving function that is normally used in secret key cryptography (also referred to as common key cryptography) is used. Any message of 1 bit or more can be encrypted.

[理論]
qを素数、群Gを生成元gが作る位数qの群とする。以下、群Gを乗法群として記述する。群Gの元の最大ビット長をlとする。群Gは、Gap Diffie-Hellman計算問題が難しいと考えられる群ならばどのような群でも良い。例えば、楕円曲線が作る群等が考えられる(例えば、参考文献参照。)。
≪参考文献≫Tatsuaki Okamoto and David Pointcheval, “The Gap-Problems: A New Class of Problems for the Security of Cryptographic Schemes”, PKC 2001, LNCS 1992, Springer-Verlag, 2001, pp.104-118
[theory]
Let q be a prime number and group G be a group of orders q created by the generator g. Hereinafter, the group G is described as a multiplicative group. Let the original maximum bit length of group G be l. The group G may be any group as long as the Gap Diffie-Hellman calculation problem is considered difficult. For example, a group formed by an elliptic curve is conceivable (for example, see the reference).
≪Reference≫Tatsuaki Okamoto and David Pointcheval, “The Gap-Problems: A New Class of Problems for the Security of Cryptographic Schemes”, PKC 2001, LNCS 1992, Springer-Verlag, 2001, pp.104-118

を0以上q−1以下の整数の集合とする。ZをZから0を除いた集合とする。Hは、セキュリティパラメータλで定まるビット長(例えば128ビット)のビット列を出力するハッシュ関数である。Hは、値域が群Gであるハッシュ関数である。
,Dをそれぞれ、セッション鍵kで定まる、length-preservingな暗号化関数、復号化関数とする。length-preservingな関数とは、出力されるビットの長さが、入力されるビットの長さと等しい関数のことである。
ベアセッション鍵R、検証情報a及び非対称暗号情報uは群Gの元であり、セッション鍵kはセキュリティパラメータλで定まるビット長であり、メッセージm及び対称暗号情報cは任意のビット長である。
Let Zq be a set of integers between 0 and q-1. Let Zq* be a set obtained by subtracting 0 from Zq . H1 is a hash function that outputs a bit string having a bit length (for example, 128 bits) determined by the security parameter λ. H2 is a hash function whose range is the group G.
Let Ek and Dk be a length-preserving encryption function and decryption function determined by the session key k, respectively. A length-preserving function is a function in which the output bit length is equal to the input bit length.
The bare session key R, the verification information a, and the asymmetric encryption information u are elements of the group G, the session key k has a bit length determined by the security parameter λ, and the message m and the symmetric encryption information c have an arbitrary bit length.

〔手順1〕
鍵生成手順:
・xをランダムにZから選ぶ。
・y=gを計算する。
・xを秘密鍵、yを公開鍵とする。
暗号化手順:
・rをランダムにZから選ぶ。
・R=g,k=H(R),c=E(m),a=G(c),u=yra
・(u,c)を暗号文として出力する。
復号化手順:
・a=G(c),R=u(1/(x+a)),k=H(R),m=D(c)
・mをメッセージとして出力する。
鍵生成手順において秘密鍵xと公開鍵yをそれぞれ1つだけ生成し、それらを用いて上記ように暗号化手順と復号化手順を行うことにより、秘密鍵と公開鍵の数を少なくすることができる。また、暗号化関数E、復号化関数Dとして、強擬似ランダム置換ではなく、秘密鍵暗号(共通鍵暗号ともいう。)で通常用いられるlength-preservingな任意の関数を用いているため、1ビット以上の任意のメッセージを暗号化することができる。
[Procedure 1]
Key generation procedure:
• Choose x from Zq at random.
Calculate y = gx
X is a private key and y is a public key.
Encryption procedure:
・ R is selected from Zq* at random.
R = gr , k = H1 (R), c = Ek (m), a = G (c), u = yrgra
Output (u, c) as ciphertext.
Decryption procedure:
A = G (c), R = u(1 / (x + a)) , k = H1 (R), m = Dk (c)
-Output m as a message.
In the key generation procedure, only one secret key x and one public key y are generated, and the encryption procedure and the decryption procedure are performed using them, thereby reducing the number of secret keys and public keys. it can. In addition, as the encryption function Ek and the decryption function Dk , not a strong pseudo-random replacement, but an arbitrary length-preserving function that is normally used in secret key cryptography (also referred to as common key cryptography) is used. Any message of 1 bit or more can be encrypted.

〔手順2〕
また、暗号化手順と復号化手順を下記のように行ってもよい。暗号化手順におけるベアセッション鍵Rの計算方法、復号化手順におけるベアセッション鍵Rの計算方法のみが、上記の手順1とは異なる。
鍵生成手順:
・xをランダムにZから選ぶ。
・y=gを計算する。
・xを秘密鍵、yを公開鍵とする。
暗号化手順:
・rをランダムにZから選ぶ。
・R=y,k=H(R),c=E(m),a=G(c),u=yra
・(u,c)を暗号文として出力する。
復号化手順:
・a=G(c),R=u(x/(x+a)),k=H(R),m=D(c)
・mをメッセージとして出力する。
手順2においては、暗号化手順で、非対称暗号情報u=yraを、u=Rgraと計算できる。このため、手順1に比べて計算量を小さくすることができるというメリットがある。
[Procedure 2]
Further, the encryption procedure and the decryption procedure may be performed as follows. Only the calculation method of the bare session key R in the encryption procedure and the calculation method of the bare session key R in the decryption procedure are different from theabove procedure 1.
Key generation procedure:
• Choose x from Zq at random.
Calculate y = gx
X is a private key and y is a public key.
Encryption procedure:
・ R is selected from Zq* at random.
R = yr , k = H1 (R), c = Ek (m), a = G (c), u = yrgra
Output (u, c) as ciphertext.
Decryption procedure:
A = G (c), R = u(x / (x + a)) , k = H1 (R), m = Dk (c)
-Output m as a message.
In theprocedure 2, the asymmetric encryption information u = yr gra can be calculated as u = Rgra by the encryption procedure. For this reason, there is a merit that the amount of calculation can be reduced as compared with theprocedure 1.

手順1においては、復号化手順で、1/(x+a) modqを計算しているのに対して、手順2においては、復号化手順で、x/(x+a) modqを計算している。分子が1ではなくxである点において、手順2の方が計算量が多いとも考えられる。しかし、mod qにおける除算又は逆数算の計算効率は、分子が1であるか任意の数xであるかにほとんど依存しないので、分子がxであっても計算量は増加しない。  Inprocedure 1, 1 / (x + a) modq is calculated in the decoding procedure, whereas inprocedure 2, x / (x + a) modq is calculated in the decoding procedure. In terms of the fact that the numerator is x instead of 1,procedure 2 is considered to be more computationally intensive. However, since the calculation efficiency of division or reciprocal calculation in mod q hardly depends on whether the numerator is 1 or an arbitrary number x, the calculation amount does not increase even if the numerator is x.

[装置構成]
図1から図5を参照して、公開鍵暗号システム1の一実施例について説明をする。
図1に例示するように、公開鍵暗号システム1は、秘密鍵xとそれに対応する公開鍵yを生成する鍵生成装置100と、公開鍵yを用いてメッセージmを暗号化して暗号文(u,c)を生成する暗号化装置200と、秘密鍵xを用いて暗号文(u,c)を復号してメッセージmを得る復号化装置300とからなる。
図5にそれぞれ示す、ステップS1からステップS2が上記[理論]の鍵生成手順に対応し、ステップS3からステップS9が上記[理論]の暗号化手順に対応し、ステップS10からステップS13が上記[理論]の復号化手順に対応する。
[Device configuration]
An embodiment of the publickey cryptosystem 1 will be described with reference to FIGS.
As illustrated in FIG. 1, the publickey cryptosystem 1 includes akey generation device 100 that generates a secret key x and a public key y corresponding to the secret key x, and a ciphertext (u , C) and adecryption device 300 that decrypts the ciphertext (u, c) using the secret key x to obtain the message m.
Steps S1 to S2 shown in FIG. 5 correspond to the [theory] key generation procedure, steps S3 to S9 correspond to the [theory] encryption procedure, and steps S10 to S13 correspond to the above [ This corresponds to the decoding procedure of [Theory].

以下、各ステップについて順に説明をする。
<ステップS1>
図2に例示するように、鍵生成装置100は、秘密鍵生成部11と公開鍵生成部12とを含む。
秘密鍵生成部11は、集合Zから1つの元を選択して、秘密鍵xとする(ステップS1)。秘密鍵xは、公開鍵生成部12に送られる。また、この例では、秘密鍵xは、復号化装置300に送られる。
Hereinafter, each step will be described in order.
<Step S1>
As illustrated in FIG. 2, thekey generation device 100 includes a secretkey generation unit 11 and a publickey generation unit 12.
The secretkey generation unit 11 selects one element from the set Zq and sets it as a secret key x (step S1). The secret key x is sent to the publickey generation unit 12. In this example, the secret key x is sent to thedecryption device 300.

<ステップS2>
公開鍵生成部12は、y=gを計算することにより、群Gの元である1つの公開鍵yを生成する(ステップS2)。公開鍵yは、暗号化装置200に送られる。
y=gを計算するとは、群G上定義された演算を生成元gについてx回行った場合の演算結果を求めることを意味する。言い換えれば、式によって定義される演算結果を求めさえすれば良く、必ずしも群G上定義された演算を生成元gについて実際にx回行う必要はない。このことは、群G上の他の計算についても同様である。例えば、後述する非対称暗号情報生成部26は、非対称暗号情報u=yraを計算するが、R=yという第一ベアセッション鍵生成部22において既に得られた計算結果を用いて、非対称暗号情報uを、u=Rgraを計算することにより求めてもよい。
<Step S2>
The publickey generation unit 12 generates one public key y that is an element of the group G by calculating y = gx (step S2). The public key y is sent to theencryption device 200.
The calculation of y = gx means that a calculation result when the calculation defined on the group G is performed x times for the generation source g is obtained. In other words, it is only necessary to obtain the calculation result defined by the equation, and it is not always necessary to actually perform the calculation defined on the group G x times for the generation source g. The same applies to other calculations on the group G. For example, the asymmetric cipherinformation generation unit 26 described later calculates the asymmetric cipher information u = yr gra , but uses the calculation result already obtained in the first bare sessionkey generation unit 22 with R = yr , The asymmetric encryption information u may be obtained by calculating u = Rgra .

<ステップS3>
ステップS3からステップS9が上記[理論]の暗号化手順に対応する。
図3に例示するように、暗号化装置200は、乱数生成部21、第一ベアセッション鍵生成部22、第一セッション鍵生成部23、対称暗号情報生成部24、第一検証情報生成部25、非対称暗号情報生成部26、記憶部27、送信部28を含む。
乱数生成部21は、集合Zから1つの元をランダム選択することにより、乱数rを生成する(ステップS3)。生成された乱数rは、第一ベアセッション鍵生成部22に送られる。
<Step S3>
Steps S3 to S9 correspond to the [theory] encryption procedure.
As illustrated in FIG. 3, theencryption device 200 includes a randomnumber generation unit 21, a first bare sessionkey generation unit 22, a first sessionkey generation unit 23, a symmetric encryptioninformation generation unit 24, and a first verificationinformation generation unit 25. Asymmetric encryptioninformation generation unit 26,storage unit 27, andtransmission unit 28.
The randomnumber generation unit 21 generates a random number r by randomly selecting one element from the set Zq* (step S3). The generated random number r is sent to the first bare sessionkey generation unit 22.

<ステップS4>
第一ベアセッション鍵生成部22は、R=gを計算することにより、ベアセッション鍵Rを求める(ステップS4)。生成されたベアセッション鍵Rは、第一セッション鍵生成部23に送られる。
<Step S4>
First bare sessionkey generation unit 22, by calculating R =g r, determine the bare session key R (Step S4). The generated bare session key R is sent to the first sessionkey generation unit 23.

<ステップS5>
第一セッション鍵生成部23は、予め定められたビット長のハッシュ値を出力するハッシュ関数Hに、ベアセッション鍵Rを入力することにより、セッション鍵kを生成する(ステップS5)。すなわち、k=H(R)を計算する。生成されたセッション鍵kは、対称暗号情報生成部24に送られる。
セッション鍵kのビット長は、セキュリティパラメータλとして予め定められている。ハッシュ関数Hが出力するハッシュ値のビット長は、セキュリティパラメータλと等しい。
<Step S5>
The first sessionkey generation unit 23, the hash function H1 outputs a hash value of a predetermined bit length, by entering a bare session key R, generates a session key k (step S5). That is, k = H1 (R) is calculated. The generated session key k is sent to the symmetric cipherinformation generation unit 24.
The bit length of session key k is predetermined as security parameter λ. Bit length of the hash value hash function H1 outputs is equal to the security parameter lambda.

<ステップS6>
対称暗号情報生成部24は、暗号化関数Eに、記憶部27から読み込んだメッセージmを入力することにより、対称暗号情報cを生成する(ステップS6)。すなわち、c=E(m)を計算する。生成された対称暗号情報cは、第一検証情報生成部25と送信部28に送られる。
メッセージmのビット長は任意でよい。暗号化関数Eは、セッション鍵kをパラメータとして持ち、セッション鍵kによって定まる関数である。また、暗号化関数Eは、length-preservingな関数であるため、対称暗号情報cのビット長は、メッセージmのビット長と同じである。
<Step S6>
The symmetric encryptioninformation generation unit 24 generates the symmetric encryption information c by inputting the message m read from thestorage unit 27 to the encryption function Ek (step S6). That is, c = Ek (m) is calculated. The generated symmetric encryption information c is sent to the first verificationinformation generation unit 25 and thetransmission unit 28.
The bit length of the message m may be arbitrary. The encryption function Ek has a session key k as a parameter and is a function determined by the session key k. Further, since the encryption function Ek is a length-preserving function, the bit length of the symmetric encryption information c is the same as the bit length of the message m.

<ステップS7>
第一検証情報生成部25は、ハッシュ関数Hに、対称暗号情報cを入力することにより、検証情報aを生成する(ステップS7)。すなわち、a=H(c)を計算する。生成された検証情報aは、非対称暗号情報生成部26に送られる。
ハッシュ関数Hは、群Gの元を出力するハッシュ関数である。
<Step S7>
The first verificationinformation generator unit 25, the hash function H2, by inputting a symmetric encryption information c, generates verification information a (Step S7). That is, a = H2 (c) is calculated. The generated verification information a is sent to the asymmetric encryptioninformation generation unit 26.
Hash function H2 is a hash function that outputs the original group G.

<ステップS8>
非対称暗号情報生成部26は、生成される非対称暗号情報uと秘密鍵xと検証情報aとを用いてベアセッション鍵Rを復号することができるように、検証情報aと生成元gと公開鍵yとを混合して、群Gの元である非対称暗号情報uを生成する。
具体的には、この例では、u=yraを計算することにより、非対称暗号情報uを求める。この際、u=yra=yであるため、第一ベアセッション鍵生成部22において既に得られた計算結果R=gを用いることにより、非対称暗号情報uの計算量を低減してもよい。生成された非対称暗号情報uは、送信部28に送られる。
<Step S8>
The asymmetric cipherinformation generation unit 26 uses the generated asymmetric cipher information u, the secret key x, and the verification information a to decrypt the bare session key R so that the verification information a, the generation source g, and the public key can be decrypted. y is mixed to generate asymmetric encryption information u which is an element of the group G.
Specifically, in this example, asymmetric encryption information u is obtained by calculating u = yrgra . At this time, since u = yr gra = yr gr ga , the calculation result R = gr already obtained in the first bare sessionkey generation unit 22 is used to calculate the asymmetric encryption information u. The amount may be reduced. The generated asymmetric encryption information u is sent to thetransmission unit 28.

<ステップS9>
送信部28は、非対称暗号情報uと対称暗号情報cとを含む情報である暗号文(u,c)を、復号化装置300に送信する。復号化装置300に対して、直接的ではなく、第三者のサーバー装置等を介して間接的に送信してもよい。
<ステップS10>
ステップS10からステップS13が上記[理論]の復号化手順に対応する。
図4に例示するように、復号化装置300は、第二検証情報生成部31、第二ベアセッション鍵生成部32、第二セッション鍵生成部33、メッセージ生成部34、記憶部35を含む。
<Step S9>
Thetransmission unit 28 transmits the ciphertext (u, c), which is information including the asymmetric cipher information u and the symmetric cipher information c, to thedecryption device 300. You may transmit to thedecoding apparatus 300 not indirectly but indirectly via a third party server apparatus.
<Step S10>
Steps S10 to S13 correspond to the [theory] decoding procedure.
As illustrated in FIG. 4, thedecryption device 300 includes a second verificationinformation generation unit 31, a second bare sessionkey generation unit 32, a second sessionkey generation unit 33, amessage generation unit 34, and astorage unit 35.

復号化装置300の第二検証情報生成部31は、ハッシュ関数Hに、暗号化装置200から送られた暗号文(u,c)から取り出された対称暗号情報cを入力することにより、検証情報aを生成する。すなわち、a=H(c)を計算する。この例では、暗号化装置200から送られた暗号文(u,c)は、まず記憶部35に格納される。第二検証情報生成部31は、記憶部35から非対称暗号情報cを読み込み、ハッシュ関数Hに入力する。生成された検証情報aは、第二ベアセッション鍵生成部32に送られる。
ハッシュ関数Hは、暗号化装置200の第一検証情報生成部25の処理で登場したハッシュ関数Hと同じものである。
The second verificationinformation generator unit 31 of thedecoding device 300, the hash function H2, by inputting a symmetric encryption information c retrieved from the ciphertext sent from the encryption device 200 (u, c), verification Information a is generated. That is, a = H2 (c) is calculated. In this example, the ciphertext (u, c) sent from theencryption device 200 is first stored in thestorage unit 35. The second verificationinformation generator unit 31 reads the asymmetric encryption information c from thestorage unit 35, and inputs to the hash function H2. The generated verification information a is sent to the second bare sessionkey generation unit 32.
The hash function H2 is the same as the hash function H2 that appeared in the process of the first verificationinformation generation unit 25 of theencryption device 200.

<ステップS11>
第二ベアセッション鍵生成部32は、R=u(1/(x+a))を計算することにより、ベアセッション鍵Rを求める。生成されたベアセッション鍵Rは、第二セッション鍵生成部33に送られる。
<ステップS12>
第二セッション鍵生成部33は、ハッシュ関数Hに、ベアセッション鍵Rを入力することにより、セッション鍵kを計算する。すなわち、k=H(R)を計算する。生成されたセッション鍵kは、メッセージ生成部34に送られる。
ハッシュ関数Hは、暗号化装置200の第一セッション鍵生成部23の処理で登場したハッシュ関数Hと同じものである。
<Step S11>
The second bare sessionkey generation unit 32 calculates the bare session key R by calculating R = u(1 / (x + a)) . The generated bare session key R is sent to the second sessionkey generation unit 33.
<Step S12>
Second sessionkey generation unit 33, the hash function H1, by inputting a bare session key R, to calculate the session key k. That is, k = H1 (R) is calculated. The generated session key k is sent to themessage generator 34.
The hash function H1 is the same as the hash function H1 that appeared in the processing of the first sessionkey generation unit 23 of theencryption device 200.

<ステップS13>
メッセージ生成部34は、復号化関数Dに、暗号化装置200から送られた暗号文(u,c)から取り出された対称暗号情報cを入力することにより、メッセージmを復号する。すなわち、m=D(c)を計算する。
length-preservingな関数である復号化関数Dは、暗号化関数Eに対応する復号化関数であり、両関数には、D(E(m))=mの関係が成立している。
<Step S13>
Themessage generator 34 decrypts the message m by inputting the symmetric encryption information c extracted from the ciphertext (u, c) sent from theencryption device 200 to the decryption functionDk . That is, m = Dk (c) is calculated.
The decryption function Dk that is a length-preserving function is a decryption function corresponding to the encryption function Ek , and the relationship of Dk (Ek (m)) = m is established between the two functions. Yes.

上記〔手順2〕を行う場合には、第一ベアセッション鍵生成部22が、R=gに代えて、R=yを計算することにより、ベアセッション鍵Rを求め、第二ベアセッション鍵生成部32が、R=u(1/(x+a))に代えて、R=u(x/(x+a))を計算することにより、ベアセッション鍵Rを求めればよい。When performing the above-mentioned [step 2], the first bare sessionkey generation unit 22, instead of the R = gr, by calculating R = yr, obtains a bare session key R, the second bare session Thekey generation unit 32 may calculate the bare session key R by calculating R = u(x / (x + a)) instead of R = u(1 / (x + a)) .

[変形例等]
図3に破線で例示するように、また、図5のステップS8’に例示するように、暗号化装置200の判定部29が、非対称暗号情報生成部26が生成した非対称暗号情報uが、群Gの単位元eであるか否かを判定して、非対称暗号情報uが単位元eである場合には、暗号化装置200が、ステップS3の乱数rを生成する処理からやり直して、再度非対称暗号情報uを生成してもよい。非対称暗号情報uが単位元eである場合には、検証情報aの値によらず、ベアセッション鍵R及びセッション鍵kの値が同じになるため、対称暗号情報cが改ざんされたかどうかを復号化装置が判定することができないためである。
[Modifications, etc.]
As illustrated by a broken line in FIG. 3 and as illustrated in step S8 ′ of FIG. 5, thedetermination unit 29 of theencryption device 200 includes the group of asymmetric encryption information u generated by the asymmetric encryptioninformation generation unit 26. It is determined whether or not the unit element e is G. If the asymmetric cipher information u is the unit element e, theencryption device 200 starts again from the process of generating the random number r in step S3, and again asymmetric. The encryption information u may be generated. When the asymmetric encryption information u is the unit element e, the values of the bare session key R and the session key k are the same regardless of the value of the verification information a, so that it is decrypted whether the symmetric encryption information c has been tampered with. This is because the information processing apparatus cannot make the determination.

上記の例では、公開鍵暗号システム1の処理がステップS1から始まるとしているが、既に生成された1つの秘密鍵x及び1つの公開鍵yを元にして、ステップS3から公開鍵暗号システム1の処理を始めてもよい。
上記の例では、図1に例示するように、鍵生成装置100は、暗号化装置200及び復号化装置300とは異なる別の装置となっているが、鍵生成装置100が暗号化装置200に含まれていてもよい。この場合には、暗号化装置200内の鍵生成装置100において生成された秘密鍵xは暗号化装置200に送られ、同鍵生成装置100において生成された公開鍵yは復号化装置300に送られる。
In the above example, the process of the publickey cryptosystem 1 starts from step S1, but based on one private key x and one public key y that have already been generated, the process of the publickey cryptosystem 1 from step S3 is performed. Processing may begin.
In the above example, as illustrated in FIG. 1, thekey generation device 100 is a different device from theencryption device 200 and thedecryption device 300, but thekey generation device 100 is different from theencryption device 200. It may be included. In this case, the secret key x generated in thekey generation device 100 in theencryption device 200 is sent to theencryption device 200, and the public key y generated in thekey generation device 100 is sent to thedecryption device 300. It is done.

図1から4に例示した公開鍵暗号システム1、鍵生成装置100、暗号化装置200、復号化装置300においては、装置の各部から各部へデータが直接送られている箇所があるが、図示していない記憶部を介して、間接的にデータが送られてもよい。
上述の構成をコンピュータによって実現する場合、鍵生成装置100、暗号化装置200、復号化装置300の各部が有すべき機能の処理内容はそれぞれプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各部の機能がコンピュータ上で実現される。
In the publickey encryption system 1, thekey generation device 100, theencryption device 200, and thedecryption device 300 illustrated in FIGS. 1 to 4, there are locations where data is directly sent from each part of the device to each part. Data may be sent indirectly through a storage unit that is not.
When the configuration described above is realized by a computer, the processing contents of the functions that each unit of thekey generation device 100, theencryption device 200, and thedecryption device 300 should have are described by a program. By executing this program on a computer, the functions of the above-described units are realized on the computer.

すなわち、CPUが各プログラムを逐次読み込んで実行することにより、秘密鍵生成部11、公開鍵生成部12、第一ベアセッション鍵生成部22、第一セッション鍵生成部23、対称暗号情報生成部24、第一検証情報生成部25、非対称暗号情報生成部26、送信部28、判定部29、第二検証情報生成部31、第二ベアセッション鍵生成部32、第二セッション鍵生成部33、メッセージ生成部34等の機能が実現される。また、記憶部27、記憶部35及び図示していない記憶部等の記憶部は、メモリ、ハードディスク等記憶手段により実現される。  That is, when the CPU sequentially reads and executes each program, the secretkey generation unit 11, the publickey generation unit 12, the first bare sessionkey generation unit 22, the first sessionkey generation unit 23, and the symmetric encryptioninformation generation unit 24. , First verificationinformation generation unit 25, asymmetric encryptioninformation generation unit 26,transmission unit 28,determination unit 29, second verificationinformation generation unit 31, second bare sessionkey generation unit 32, second sessionkey generation unit 33, message Functions such as thegeneration unit 34 are realized. Storage units such as thestorage unit 27, thestorage unit 35, and a storage unit (not shown) are realized by storage units such as a memory and a hard disk.

この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよいが、具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、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. The computer-readable recording medium may be any medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, or a semiconductor memory. Specifically, for example, the magnetic recording device may be a hard disk device or a flexible Discs, magnetic tapes, etc. as optical disks, DVD (Digital Versatile Disc), DVD-RAM (Random Access Memory), CD-ROM (Compact Disc Read Only Memory), CD-R (Recordable) / RW (ReWritable), etc. As the magneto-optical recording medium, MO (Magneto-Optical disc) or the like can be used, and as the semiconductor memory, EEP-ROM (Electronically Erasable and Programmable-Read Only Memory) or the like 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)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を基底する性質を有するデータ等)を含むものとする。  As an execution form different from the above-described embodiment, the computer may read the program directly from the portable recording medium and execute processing according to the program. Each time is transferred, 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 a computer but has a property that is based on computer processing).

また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
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.
In addition, the various processes described above are not only executed in time series according to the description, but may be executed in parallel or individually according to the processing capability of the apparatus that executes the processes or as necessary. Needless to say, other modifications are possible without departing from the spirit of the present invention.

公開鍵暗号システムの機能構成を例示する図。The figure which illustrates the function structure of a public key encryption system.鍵生成装置の機能構成を例示する図。The figure which illustrates the function structure of a key generation apparatus.暗号化装置の機能構成を例示する図。The figure which illustrates the function structure of an encryption apparatus.復号化装置の機能構成を例示する図。The figure which illustrates the function structure of a decoding apparatus.公開鍵暗号システムの処理の流れを例示するフローチャート。The flowchart which illustrates the flow of a process of a public key encryption system.

符号の説明Explanation of symbols

1 公開鍵暗号システム
11 秘密鍵生成部
12 公開鍵生成部
21 乱数生成部
22 第一ベアセッション鍵生成部
23 第一セッション鍵生成部
24 対称暗号情報生成部
25 第一検証情報生成部
26 非対称暗号情報生成部
29 判定部
31 第二検証情報生成部
32 第二ベアセッション鍵生成部
33 第二セッション鍵生成部
34 メッセージ生成部
100 鍵生成装置
200 暗号化装置
300 復号化装置
DESCRIPTION OFSYMBOLS 1 Publickey encryption system 11 Secretkey generation part 12 Publickey generation part 21 Randomnumber generation part 22 First bare sessionkey generation part 23 First sessionkey generation part 24 Symmetric encryptioninformation generation part 25 First verificationinformation generation part 26 Asymmetric encryptionInformation generation unit 29Determination unit 31 Second verificationinformation generation unit 32 Second bare sessionkey generation unit 33 Second sessionkey generation unit 34Message generation unit 100Key generation device 200Encryption device 300 Decryption device

Claims (10)

Translated fromJapanese
メッセージmをセッション鍵kを用いて暗号化して対称暗号情報cを生成すると共に、セッション鍵kを公開鍵yを用いて暗号化して非対称暗号情報uを生成する暗号化装置と、非対称暗号情報uと秘密鍵xとを用いてセッション鍵kを生成すると共に、そのセッション鍵kと対称暗号情報cとを用いてメッセージmを生成する復号化装置とを備えるハイブリット型の公開鍵暗号システムにおいて、
上記秘密鍵xは、0以上q−1以下の整数からなる第一の集合Zから1つの元を選択することにより生成されたものであり、
上記公開鍵yは、上記秘密鍵xに対応しており、位数q(qは素数)の群Gの生成元gと上記秘密鍵xとを用いて生成された、群Gに属する1つの公開鍵yであり、
上記暗号化装置は、
上記第一の集合Zから0を除いた第二の集合Zから1つの元をランダムに選択することにより乱数rを生成する乱数生成手段と、
上記生成元gと上記乱数rとから、上記群Gの元であるベアセッション鍵Rを生成する第一ベアセッション鍵生成手段と、
予め定められたビット長のハッシュ値を出力するハッシュ関数Hに、上記ベアセッション鍵Rを入力することにより、セッション鍵kを生成する第一セッション鍵生成手段と、
上記セッション鍵kによって定まり、入力されるメッセージと同じビット長の対称暗号情報を出力する暗号化関数Eに、メッセージmを入力することにより対称暗号情報cを生成する対称暗号情報生成手段と、
上記群Gの元を出力するハッシュ関数Hに、上記対称暗号情報cを入力することにより、検証情報aを生成する第一検証情報生成手段と、
生成される非対称暗号情報uと上記秘密鍵xと上記検証情報aとを用いて上記暗号化装置がベアセッション鍵Rを生成することができるように、上記検証情報aと上記生成元gと上記公開鍵yとを用いて、上記群Gの元である非対称暗号情報uを生成する非対称暗号情報生成手段と、
を備え、
上記復号化装置は、
上記ハッシュ関数Hに上記対称暗号情報cを入力することにより、検証情報aを生成する第二検証情報生成手段と、
上記非対称暗号情報uと、上記秘密鍵xと、上記第二検証情報生成手段が生成した検証情報aとを用いて、上記ベアセッション鍵Rを生成する第二ベアセッション鍵生成手段と、
上記ハッシュ関数Hに、上記第二ベアセッション鍵生成手段が生成した上記ベアセッション鍵Rを入力することにより、セッション鍵kを生成する第二セッション鍵生成手段と、
上記セッション鍵kによって定まり、上記暗号化関数Eに対応し、入力される対称暗号情報と同じビット長のメッセージを出力する復号化関数Dに、上記対称暗号情報cを入力することによりメッセージmを生成するメッセージ生成手段と、
を備える、
ことを特徴とする公開鍵暗号システム。
An encryption device that encrypts a message m using a session key k to generate symmetric encryption information c, and encrypts the session key k using a public key y to generate asymmetric encryption information u; and asymmetric encryption information u A hybrid public key cryptosystem including a decryption device that generates a message key using the session key k and the symmetric cipher information c, and generates a session key k using the key and the secret key x
The secret key x is generated by selecting one element from a first set Zq composed of integers of 0 or more and q-1 or less,
The public key y corresponds to the secret key x, and is generated by using the generator g of the group G of order q (q is a prime number) and the secret key x, and belongs to the group G. Public key y,
The encryption device is
A random number generating means for generating a random number r by selecting from the second set Zq* excluding 0 from the first set Zq one original randomly,
First bare session key generation means for generating a bare session key R that is an element of the group G from the generation source g and the random number r;
A first session key generating means for generating a session key k by inputting the bare session key R into a hash function H1 that outputs a hash value having a predetermined bit length;
Symmetric cipher information generating means for generating symmetric cipher information c by inputting a message m to an encryption function Ek that is determined by the session key k and outputs symmetric cipher information having the same bit length as the input message;
First verification information generating means for generating verification information a by inputting the symmetric encryption information c to the hash function H2 that outputs the element of the group G;
The verification information a, the generation source g, and the above aregenerated so that theencryption device cangenerate the bare session key R using thegenerated asymmetric encryption information u, the secret key x, and the verification information a. Asymmetric cipher information generating means for generating asymmetric cipher information u which is an element of the group Gusing the public key y;
With
The decryption device
Second verification information generating means for generating verification information a by inputting the symmetric encryption information c to the hash function H2 ;
Second bare session key generation means for generating the bare session key R using the asymmetric encryption information u, the secret key x, and the verification information a generated by the second verification information generation means;
A secondsession key generating means for generating a session key k by inputting the bare session key R generated by the secondbare session key generating means to the hash function H1 ;
The message is obtained by inputting the symmetric encryption information c to the decryption function Dk which is determined by the session key k and corresponds to the encryption function Ek and outputs a message having the same bit length as the input symmetric encryption information. message generating means for generating m,
Comprising
A public key cryptosystem characterized by that.
請求項1に記載された公開鍵暗号システムにおいて、
上記公開鍵yは、y=gであり、
上記第一ベアセッション鍵生成手段は、R=gを計算することにより、ベアセッション鍵Rを生成する手段であり、
上記非対称暗号情報生成手段は、u=yraを計算することにより、非対称暗号情報uを生成する手段であり、
上記第二ベアセッション鍵生成手段は、R=u(1/(x+a))を計算することにより、ベアセッション鍵Rを生成する手段である、
ことを特徴とする公開鍵暗号システム。
In the public key cryptosystem described in claim 1,
The public key y is y = gx ,
The first bare session key generation means, by calculating R = gr, a means for generating a bare session key R,
The asymmetric cipher information generation means is means for generating asymmetric cipher information u by calculating u = yrgra .
The second bare session key generation means is means for generating a bare session key R by calculating R = u(1 / (x + a)) .
A public key cryptosystem characterized by that.
請求項1に記載された公開鍵暗号システムにおいて、
上記第一ベアセッション鍵生成手段は、上記生成元gと上記乱数rとに代えて、上記公開鍵yと上記乱数rとから、上記群Gの元であるベアセッション鍵Rを生成する手段である、
ことを特徴とする公開鍵暗号システム。
In the public key cryptosystem described in claim 1,
The first bare session key generation means is means for generating a bare session key R that is an element of the group G from the public key y and the random number r instead of the generation source g and the random number r. is there,
A public key cryptosystem characterized by that.
請求項2に記載された公開鍵暗号システムにおいて、
上記第一ベアセッション鍵生成手段は、R=gに代えて、R=yを計算することにより、ベアセッション鍵Rを生成する手段であり、
上記第二ベアセッション鍵生成手段は、R=u(1/(x+a))に代えて、R=u(x/(x+a))を計算することにより、ベアセッション鍵Rを生成する手段である、
ことを特徴とする公開鍵暗号システム。
In the public key cryptosystem described in claim 2,
The first bare session key generation means, instead of the R = gr, by calculating R = yr, a means for generating a bare session key R,
The second bare session key generation means is means for generating a bare session key R by calculating R = u(x / (x + a)) instead of R = u(1 / (x + a)). ,
A public key cryptosystem characterized by that.
請求項1から4に記載された公開鍵暗号システムにおいて、
上記非対称暗号情報生成手段が生成した非対称暗号情報uが、上記群Gの単位元eであるかどうかを判定する判定手段を更に備え、
非対称暗号情報uが単位元eであると判定された場合には、上記暗号化装置は再度非対称暗号情報uを生成する、
ことを特徴とする公開鍵暗号システム。
In the public key cryptosystem described in claims 1 to 4,
A determination means for determining whether the asymmetric encryption information u generated by the asymmetric encryption information generation means is a unit element e of the group G;
When it is determined that the asymmetric encryption information u is the unit element e, the encryption device generates the asymmetric encryption information u again.
A public key cryptosystem characterized by that.
暗号化装置が、メッセージmをセッション鍵kを用いて暗号化して対称暗号情報cを生成すると共に、セッション鍵kを公開鍵yを用いて暗号化して非対称暗号情報uを生成する暗号化ステップと、復号化装置が、非対称暗号情報uと秘密鍵xとを用いてセッション鍵kを生成すると共に、そのセッション鍵kと対称暗号情報cとを用いてメッセージmを生成する復号化ステップとを備えるハイブリット型の公開鍵暗号方法において、
上記秘密鍵xは、0以上q−1以下の整数からなる第一の集合Zから1つの元を選択することにより生成されたものであり、
上記公開鍵yは、上記秘密鍵xに対応しており、位数q(qは素数)の群Gの生成元gと上記秘密鍵xとを用いて生成された、群Gに属する1つの公開鍵yであり、
上記暗号化ステップは、
乱数生成手段が、上記第一の集合Zから0を除いた第二の集合Zから1つの元をランダムに選択することにより乱数rを生成する乱数生成ステップと、
鍵生成手段が、上記生成元gと上記乱数rとから、上記群Gの元であるベアセッション鍵Rを生成する第一ベアセッション鍵生成ステップと、
第一セッション鍵生成手段が、予め定められたビット長のハッシュ値を出力するハッシュ関数Hに、上記ベアセッション鍵Rを入力することにより、セッション鍵kを生成する第一セッション鍵生成ステップと、
対称暗号情報生成手段が、上記セッション鍵kによって定まり、入力されるメッセージと同じビット長の対称暗号情報を出力する暗号化関数Eに、メッセージmを入力することにより対称暗号情報cを生成する対称暗号情報生成ステップと、
第一検証情報生成手段が、上記群Gの元を出力するハッシュ関数Hに、上記対称暗号情報cを入力することにより、検証情報aを生成する第一検証情報生成ステップと、
非対称暗号情報生成手段が、生成される非対称暗号情報uと上記秘密鍵xと上記検証情報aとを用いて上記暗号化装置がベアセッション鍵Rを生成することができるように、上記検証情報aと上記生成元gと上記公開鍵yとを用いて、上記群Gの元である非対称暗号情報uを生成する非対称暗号情報生成ステップと、
を有し、
上記復号化ステップは、
第二検証情報生成手段が、上記ハッシュ関数Hに上記対称暗号情報cを入力することにより、検証情報aを生成する第二検証情報生成ステップと、
第二ベアセッション鍵生成手段が、上記非対称暗号情報uと、上記秘密鍵xと、上記第二検証情報生成手段が生成した検証情報aとを用いて、上記ベアセッション鍵Rを生成する第二ベアセッション鍵生成ステップと、
第二セッション鍵生成手段が、上記ハッシュ関数Hに、上記第二ベアセッション鍵生成ステップにおいて生成された上記ベアセッション鍵Rを入力することにより、セッション鍵kを生成する第二セッション鍵生成ステップと、
メッセージ生成手段が、上記セッション鍵kによって定まり、上記暗号化関数Eに対応し、入力される対称暗号情報と同じビット長のメッセージを出力する復号化関数Dに、上記対称暗号情報cを入力することによりメッセージmを生成するメッセージ生成ステップと、
を有する、
ことを特徴とする公開鍵暗号方法。
An encryption step in which the encryption device encrypts the message m using the session key k to generate symmetric encryption information c, and encrypts the session key k using the public key y to generate asymmetric encryption information u; The decryption apparatus includes a decryption step of generating a session key k using the asymmetric encryption information u and the secret key x, and generating a message m using the session key k and the symmetric encryption information c. In the hybrid type public key encryption method,
The secret key x is generated by selecting one element from a first set Zq composed of integers of 0 or more and q-1 or less,
The public key y corresponds to the secret key x, and is generated by using the generator g of the group G of order q (q is a prime number) and the secret key x, and belongs to the group G. Public key y,
The encryption step is
Random number generating means comprises a random number generation step of generating a random number r by selecting from said second set Zq* excluding 0 from the first set Zq one original randomly,
A first bare session key generation step in which key generation means generates a bare session key R that is an element of the group G from the generation source g and the random number r;
A first session key generating step in which a first session key generating means generates a session key k by inputting the bare session key R into a hash function H1 that outputs a hash value having a predetermined bit length; ,
Symmetric cipher information generation means generates the symmetric cipher information c by inputting the message m to the encryption function Ek that is determined by the session key k and outputs symmetric cipher information having the same bit length as the input message. A symmetric encryption information generation step;
Is first verification information generator unit, to the hash function H2 for outputting the original of the group G, by inputting the symmetric encryption information c, the first verification information generating step of generating verification information a,
Asymmetric encryption information generating means, as by using an asymmetric encryption information u generated and the above secret key x and the verification information ais theencryption apparatus cangenerate a bare session key R, the verification information a Asymmetric cipher information generating step for generating asymmetric cipher information u that is an element of the group Gusing the generator g and the public key y;
Have
The decoding step is
The second verification information generator unit, by inputting the symmetric cipher information c to the hash function H2, and the second verification information generating step of generating verification information a,
A second bare session key generation unit generates a second bare session key R using the asymmetric encryption information u, the secret key x, and the verification information a generated by the second verification information generation unit. A bare session key generation step;
A second session key generation step in which a second session key generation means generates a session key k by inputting the bare session key R generated in the secondbare session key generation step to the hash function H1 When,
A message generating means determines the symmetric encryption information c in a decryption function Dk that is determined by the session key k and that outputs a message corresponding to the encryption function Ek and having the same bit length as the input symmetric encryption information. A message generation step for generating a message m by inputting;
Having
A public key encryption method characterized by the above.
メッセージmをセッション鍵kを用いて暗号化して対称暗号情報cを生成すると共に、セッション鍵kを公開鍵yを用いて暗号化して非対称暗号情報uを生成する暗号化装置と、非対称暗号情報uと秘密鍵xとを用いてセッション鍵kを生成すると共に、そのセッション鍵kと対称暗号情報cとを用いてメッセージmを生成する復号化装置とを備えるハイブリット型の公開鍵暗号システムに用いられる暗号化装置において、
上記秘密鍵xは、0以上q−1以下の整数からなる第一の集合Zから1つの元を選択することにより生成されたものであり、
上記公開鍵yは、上記秘密鍵xに対応しており、位数q(qは素数)の群Gの生成元gと上記秘密鍵xとを用いて生成された、群Gに属する1つの公開鍵yであり、
上記暗号化装置は、
上記第一の集合Zから0を除いた第二の集合Zから1つの元をランダムに選択することにより乱数rを生成する乱数生成手段と、
上記生成元gと上記乱数rとから、上記群Gの元であるベアセッション鍵Rを生成する第一ベアセッション鍵生成手段と、
予め定められたビット長のハッシュ値を出力するハッシュ関数Hに、上記ベアセッション鍵Rを入力することにより、セッション鍵kを生成する第一セッション鍵生成手段と、
上記セッション鍵kによって定まり、入力されるメッセージと同じビット長の対称暗号情報を出力する暗号化関数E(m)に、メッセージmを入力することにより対称暗号情報cを生成する対称暗号情報生成手段と、
上記群Gの元を出力するハッシュ関数Hに、上記対称暗号情報cを入力することにより、検証情報aを生成する第一検証情報生成手段と、
生成される非対称暗号情報uと上記秘密鍵xと上記検証情報aとを用いて上記暗号化装置がベアセッション鍵Rを生成することができるように、上記検証情報aと上記生成元gと上記公開鍵yとを用いて、上記群Gの元である非対称暗号情報uを生成する非対称暗号情報生成手段と、
を備える、
ことを特徴とする暗号化装置。
An encryption device that encrypts a message m using a session key k to generate symmetric encryption information c, and encrypts the session key k using a public key y to generate asymmetric encryption information u; and asymmetric encryption information u And a secret key x are used to generate a session key k, and a hybrid public key encryption system including a decryption device that generates a message m using the session key k and symmetric encryption information c. In the encryption device,
The secret key x is generated by selecting one element from a first set Zq composed of integers of 0 or more and q-1 or less,
The public key y corresponds to the secret key x, and is generated by using the generator g of the group G of order q (q is a prime number) and the secret key x, and belongs to the group G. Public key y,
The encryption device is
A random number generating means for generating a random number r by selecting from the second set Zq* excluding 0 from the first set Zq one original randomly,
First bare session key generation means for generating a bare session key R that is an element of the group G from the generation source g and the random number r;
A first session key generating means for generating a session key k by inputting the bare session key R into a hash function H1 that outputs a hash value having a predetermined bit length;
Symmetric cipher information generation for generating symmetric cipher information c by inputting message m to encryption function Ek (m) that is determined by session key k and outputs symmetric cipher information having the same bit length as the input message Means,
First verification information generating means for generating verification information a by inputting the symmetric encryption information c to the hash function H2 that outputs the element of the group G;
The verification information a, the generation source g, and the above aregenerated so that theencryption device cangenerate the bare session key R using thegenerated asymmetric encryption information u, the secret key x, and the verification information a. Asymmetric cipher information generating means for generating asymmetric cipher information u which is an element of the group Gusing the public key y;
Comprising
An encryption device characterized by that.
メッセージmをセッション鍵kを用いて暗号化して対称暗号情報cを生成すると共に、セッション鍵kを公開鍵yを用いて暗号化して非対称暗号情報uを生成する暗号化装置と、非対称暗号情報uと秘密鍵xとを用いてセッション鍵kを生成すると共に、そのセッション鍵kと対称暗号情報cとを用いてメッセージmを生成する復号化装置とを備えるハイブリット型の公開鍵暗号システムに用いられる暗号化装置において、
上記秘密鍵xは、0以上q−1以下の整数からなる第一の集合Zから1つの元を選択することにより生成されたものであり、
上記公開鍵yは、上記秘密鍵xに対応しており、位数q(qは素数)の群Gの生成元gと上記秘密鍵xとを用いて生成された、群Gに属する1つの公開鍵yであり、
上記復号化装置は、
上記ハッシュ関数Hに、上記暗号化装置において生成された対称暗号情報cを入力することにより、検証情報aを生成する第二検証情報生成手段と、
上記非対称暗号情報uと、上記秘密鍵xと、上記検証情報aとを用いて、上記ベアセッション鍵Rを生成する第二ベアセッション鍵生成手段と、
上記ハッシュ関数Hに、上記ベアセッション鍵Rを入力することにより、セッション鍵kを生成する第二セッション鍵生成手段と、
上記セッション鍵kによって定まり、上記暗号化装置が用いた暗号化関数Eに対応し、入力される対称暗号情報と同じビット長のメッセージを出力する復号化関数Dに、上記対称暗号情報cを入力することによりメッセージmを生成するメッセージ生成手段と、
を備える、
ことを特徴とする復号化装置。
An encryption device that encrypts a message m using a session key k to generate symmetric encryption information c, and encrypts the session key k using a public key y to generate asymmetric encryption information u; and asymmetric encryption information u And a secret key x are used to generate a session key k, and a hybrid public key encryption system including a decryption device that generates a message m using the session key k and symmetric encryption information c. In the encryption device,
The secret key x is generated by selecting one element from a first set Zq composed of integers of 0 or more and q-1 or less,
The public key y corresponds to the secret key x, and is generated by using the generator g of the group G of order q (q is a prime number) and the secret key x, and belongs to the group G. Public key y,
The decryption device
Second verification information generating means for generating verification information a by inputting the symmetric encryption information c generated in the encryption device to the hash function H2 ;
Second bare session key generation means for generating the bare session key R using the asymmetric encryption information u, the secret key x, and the verification information a;
A second session key generating means for generating a session key k by inputting the bare session key R into the hash function H1 ;
The symmetric encryption information c is determined by the decryption function Dk which is determined by the session key k and corresponds to the encryption function Ek used by the encryption device and outputs a message having the same bit length as the input symmetric encryption information. Message generating means for generating a message m by inputting
Comprising
A decoding device characterized by the above.
請求項7に記載された暗号化装置の各手段としてコンピュータを機能させるための暗号化プログラム。  The encryption program for functioning a computer as each means of the encryption apparatus described in Claim 7. 請求項8に記載された復号化装置の各手段としてコンピュータを機能させるための復号化プログラム。  A decoding program for causing a computer to function as each unit of the decoding device according to claim 8.
JP2007306081A2007-11-272007-11-27 Public key encryption system, public key encryption method, encryption device, decryption device, encryption program, and decryption programExpired - Fee RelatedJP4934010B2 (en)

Priority Applications (1)

Application NumberPriority DateFiling DateTitle
JP2007306081AJP4934010B2 (en)2007-11-272007-11-27 Public key encryption system, public key encryption method, encryption device, decryption device, encryption program, and decryption program

Applications Claiming Priority (1)

Application NumberPriority DateFiling DateTitle
JP2007306081AJP4934010B2 (en)2007-11-272007-11-27 Public key encryption system, public key encryption method, encryption device, decryption device, encryption program, and decryption program

Publications (2)

Publication NumberPublication Date
JP2009128792A JP2009128792A (en)2009-06-11
JP4934010B2true JP4934010B2 (en)2012-05-16

Family

ID=40819745

Family Applications (1)

Application NumberTitlePriority DateFiling Date
JP2007306081AExpired - Fee RelatedJP4934010B2 (en)2007-11-272007-11-27 Public key encryption system, public key encryption method, encryption device, decryption device, encryption program, and decryption program

Country Status (1)

CountryLink
JP (1)JP4934010B2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
KR101435813B1 (en)2007-11-272014-08-29엘지전자 주식회사 Laundry processing apparatus and control method thereof
KR102013841B1 (en)2012-08-062019-08-23삼성전자주식회사Method of managing key for secure storage of data, and and apparatus there-of
US9935768B2 (en)2012-08-062018-04-03Samsung Electronics Co., Ltd.Processors including key management circuits and methods of operating key management circuits
WO2020101325A1 (en)*2018-11-132020-05-22(주)블루팝콘Encryption system and method employing permutation group-based encryption technology
AU2019381522A1 (en)*2018-11-132021-07-01Bluepopcon Inc.Encryption system and method employing permutation group-based encryption technology

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
JP4150328B2 (en)*2003-12-082008-09-17日本電信電話株式会社 Hybrid encryption apparatus and hybrid encryption / decryption method

Also Published As

Publication numberPublication date
JP2009128792A (en)2009-06-11

Similar Documents

PublicationPublication DateTitle
US20110307698A1 (en)Masking the output of random number generators in key generation protocols
Hrestak et al.Homomorphic encryption in the cloud
NguyenCan we trust cryptographic software? Cryptographic flaws in GNU Privacy Guard v1. 2.3
WO2015078533A1 (en)Method and system for encrypting data
WO2018043049A1 (en)Encryption system, encryption method, and encryption program
WuFully homomorphic encryption: Cryptography's holy grail
Mahesh et al.Design of new security algorithm: Using hybrid Cryptography architecture
JP4934010B2 (en) Public key encryption system, public key encryption method, encryption device, decryption device, encryption program, and decryption program
CN111865555B (en) A Homomorphic Encryption Method Based on k-Lin Assumption
WO2019220900A1 (en)Encryption system, encryption device, decryption device, encryption method, decryption method, and program
Ahila et al.State of art in homomorphic encryption schemes
JP5038866B2 (en) Encryption communication method, encryption device, decryption device, and program thereof
EP2395698A1 (en)Implicit certificate generation in the case of weak pseudo-random number generators
Liao et al.Cryptanalysis of an identity-based encryption scheme with equality test and improvement
Xu et al.Attack and improvement on a symmetric fully homomorphic encryption scheme
JP6563857B2 (en) Commitment system, common reference information generation device, commit generation device, commit reception device, commitment method, program
Luma et al.Using elliptic curve encryption and decryption for securing audio messages
JP2005084568A (en) Security method, security device, and security program
JP4685621B2 (en) Key generation apparatus, encryption apparatus, decryption apparatus, multiplicative knapsack cryptosystem, multiplicative knapsack cipher decryption method and program
JP7486688B2 (en) Ciphertext conversion system, ciphertext conversion method, and ciphertext conversion program
RoyA homomorphism based zero knowledge proof of authentication for chinese remainder theorem based secret sharing
JP7486693B2 (en) Ciphertext conversion system, ciphertext conversion method, and ciphertext conversion program
JP2020053772A (en)Communication system, server device, communication terminal, communication method and program
JP7520255B2 (en) CONFIDENTIAL INFORMATION PROCESSING SYSTEM, CONFIDENTIAL INFORMATION PROCESSING METHOD, AND CONFIDENTIAL INFORMATION PROCESSING PROGRAM
JP7632486B2 (en) Encryption device, encrypted communication system, encryption method, and program

Legal Events

DateCodeTitleDescription
A621Written request for application examination

Free format text:JAPANESE INTERMEDIATE CODE: A621

Effective date:20100114

RD03Notification of appointment of power of attorney

Free format text:JAPANESE INTERMEDIATE CODE: A7423

Effective date:20110812

A977Report on retrieval

Free format text:JAPANESE INTERMEDIATE CODE: A971007

Effective date:20111102

A131Notification of reasons for refusal

Free format text:JAPANESE INTERMEDIATE CODE: A131

Effective date:20111115

A521Written amendment

Free format text:JAPANESE INTERMEDIATE CODE: A523

Effective date:20120113

TRDDDecision of grant or rejection written
A01Written decision to grant a patent or to grant a registration (utility model)

Free format text:JAPANESE INTERMEDIATE CODE: A01

Effective date:20120207

A01Written decision to grant a patent or to grant a registration (utility model)

Free format text:JAPANESE INTERMEDIATE CODE: A01

A61First payment of annual fees (during grant procedure)

Free format text:JAPANESE INTERMEDIATE CODE: A61

Effective date:20120217

R150Certificate of patent or registration of utility model

Free format text:JAPANESE INTERMEDIATE CODE: R150

FPAYRenewal fee payment (event date is renewal date of database)

Free format text:PAYMENT UNTIL: 20150224

Year of fee payment:3

S531Written request for registration of change of domicile

Free format text:JAPANESE INTERMEDIATE CODE: R313531

R350Written notification of registration of transfer

Free format text:JAPANESE INTERMEDIATE CODE: R350

LAPSCancellation because of no payment of annual fees

[8]ページ先頭

©2009-2025 Movatter.jp