JP4685621B2 - Key generation apparatus, encryption apparatus, decryption apparatus, multiplicative knapsack cryptosystem, multiplicative knapsack cipher decryption method and program - Google Patents
Key generation apparatus, encryption apparatus, decryption apparatus, multiplicative knapsack cryptosystem, multiplicative knapsack cipher decryption method and program Download PDFInfo
- Publication number
- JP4685621B2 JP4685621B2 JP2005367021A JP2005367021A JP4685621B2 JP 4685621 B2 JP4685621 B2 JP 4685621B2 JP 2005367021 A JP2005367021 A JP 2005367021A JP 2005367021 A JP2005367021 A JP 2005367021A JP 4685621 B2 JP4685621 B2 JP 4685621B2
- Authority
- JP
- Japan
- Prior art keywords
- integer
- calculating
- key
- rational
- encryption
- 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.)
- Active
Links
Images
Description
本発明は、情報セキュリティ技術に関し、より詳しくはナップザック問題を拠り所とする公開鍵暗号に関する。 The present invention relates to information security technology, and more particularly to public key cryptography based on the knapsack problem.
公開鍵暗号は、その安全性の拠り所とする問題によって類別される。安全性の拠り所となる問題としては、素因数分解問題、離散対数問題などがある。そして具体的には、素因数分解問題を拠り所にした公開鍵暗号としてはRSA暗号、離散対数問題を拠り所とした公開鍵暗号としてはPSEC暗号などが挙げられる。 Public key cryptography is categorized according to the problem that it is based on. Problems that are the basis of safety include a prime factorization problem and a discrete logarithm problem. More specifically, public key cryptography based on the prime factorization problem includes RSA cryptography, and public key cryptography based on the discrete logarithm problem includes PSEC cryptography.
ところで、いわゆる量子計算機が実現すると、Shorによって提案されたアルゴリズムを用いることで、素因数分解問題や離散対数問題を非常に効率的に解くことが可能となることが知られている。従って、これら問題に基づく公開鍵暗号は完全に解読されてしまう。 By the way, when a so-called quantum computer is realized, it is known that the prime factorization problem and the discrete logarithm problem can be solved very efficiently by using the algorithm proposed by Shor. Therefore, the public key encryption based on these problems is completely decrypted.
これに対し、量子計算機が実現しても解読が困難であると考えられているナップザック問題を安全性の拠り所とした公開鍵暗号として、西暦2000年に岡本龍明、田中圭介、内山成憲が提案した公開鍵暗号(以下、「OTU暗号」と呼ぶ。)がある(特許文献1、特許文献2、特許文献3、非特許文献1参照。)。
OTU暗号は、鍵生成の過程において、有限体上の離散対数問題に関する複数回の計算を必要とする。離散対数問題は量子計算機を用いることで容易に計算可能であるが、既存の計算機を用いた場合、剰余計算の法である素数pのビット長が長いとき(例えば素数pが1024ビットの場合など)の離散対数問題を解くことは、現状の計算機能力や技術においては容易なものではない。 The OTU cipher requires a plurality of calculations related to the discrete logarithm problem over a finite field in the key generation process. The discrete logarithm problem can be easily calculated by using a quantum computer. However, when an existing computer is used, when the bit length of the prime p, which is a remainder calculation method, is long (for example, when the prime p is 1024 bits) It is not easy to solve the discrete logarithm problem of () with the current computational capability and technology.
そのため、OTU暗号は、量子計算機が実現した後に有効的な公開鍵暗号と言えるが、反面、現在の計算機で利用することが容易なものとは言い難い。 Therefore, the OTU cipher can be said to be an effective public key cipher after the realization of the quantum computer, but on the other hand, it is difficult to say that it is easy to use with the current computer.
そこで本発明は、既存の計算機でも比較的容易に利用可能でありながら、量子計算機が実現しても解読できないナップザック問題を安全性の拠り所とした公開鍵暗号(鍵生成、暗号化および復号化を実現する各装置、これら装置で構成されるシステムおよびその方法)を提供することを目的とする。 Therefore, the present invention is a public key cryptosystem (key generation, encryption and decryption) based on the knapsack problem that can be used with existing computers relatively easily but cannot be decrypted even when the quantum computer is realized. It is an object to provide each device to be realized, a system constituted by these devices, and a method thereof.
上記課題を解決するために、本発明では、鍵生成装置は、s個の素数冪qj〔1≦j≦s〕、正の有理整数nおよびkを記憶する記憶手段と、s個の素数冪qj〔1≦j≦s〕の積を演算して合成数Nを算出する合成数算出手段と、各既約剰余類群(Z/qjZ)×〔1≦j≦s〕の生成元となる有理整数gを算出する生成元算出手段と、どの2つも互いに素である有理整数pi〔1≦i≦n;但し、各有理整数piは合成数Nと互いに素である。〕を算出する秘密鍵集合算出手段と、各i〔1≦i≦n〕に対してgai≡pi(mod N)〔但し、gの指数aiを記号aiで表している。〕を満たす有理整数aiを算出するナップザック生成因子算出手段と、乱数dを生成して、これを出力する乱数生成手段と、各有理整数ai〔1≦i≦n〕に乱数dを加算して有理整数bi〔1≦i≦n〕を生成するナップザック生成手段とを備え、公開鍵は少なくとも正の有理整数k、有理整数bi〔1≦i≦n〕、秘密鍵は合成数N、正の有理整数k、有理整数g、乱数d、有理整数pi〔1≦i≦n〕であるとする。また、暗号化装置は、公開鍵(少なくとも正の有理整数k、有理整数bi〔1≦i≦n〕)および平文Mを記憶する記憶手段と、平文を符号列に変換し(符号変換)、符号列を平文に変換する(逆符号変換)ことが可能な符号変換方式によって、平文Mを長さn、重みkの符号列m={mi}〔1≦i≦n;但し、Σi=1 nmi=kとする。〕に変換する符号変換手段と、符号列miおよび公開鍵biから暗号文c=Σi=1 nmibiを生成する暗号化手段とを備える。そして、復号化装置は、秘密鍵(合成数N、有理整数g、乱数d、有理整数pi〔1≦i≦n〕)および暗号文cを記憶する記憶手段と、暗号文cから秘密鍵kと秘密鍵dとの積を減算して指数rを算出する指数算出手段と、指数r、秘密鍵gおよびNからu≡gr(mod N)を演算した冪乗剰余演算結果uを算出する冪乗剰余演算手段と、冪乗剰余演算結果uを各秘密鍵pi〔1≦i≦n〕で除し、割り切れた場合と割り切れなかった場合とでそれぞれ異なる符号値wiを与え、符号列w={wi}〔1≦i≦n〕を算出する符号再生手段と、上記暗号化装置における符号変換手段で用いた符号変換方式によって、符号列wを平文に変換してこの平文を出力する復号化手段とを備える。これら鍵生成装置、暗号化装置および復号化装置がそれぞれデータ送信可能に接続されて乗法型ナップザック暗号システムが構成される。
このように、素数冪の積である合成数Nを法とした、既約剰余類群(Z/NZ)×の部分巡回群において乗法型ナップザック暗号を構成する。
In order to solve the above-described problem, in the present invention, the key generation device includes a storage unit that stores s prime numbers 冪 q j [1 ≦ j ≦ s], positive rational integers n and k, and s prime numbers. A composite number calculating means for calculating a composite number N by calculating a product of 冪 q j [1 ≦ j ≦ s] and generation of each irreducible residue class group (Z / q j Z) × [1 ≦ j ≦ s] A generator calculation means for calculating a rational integer g as a base, and a rational integer p i [1 ≦ i ≦ n; both of which are relatively prime; each rational integer p i is relatively prime with the composite number N. And private key set calculating means for calculating a] represents the i [1 ≦ i ≦ n] with respect to g ai ≡p i (mod N) [where the index a i in g by the symbol ai. ], A knapsack generation factor calculating means for calculating a rational integer a i satisfying the above, a random number generating means for generating and outputting a random number d, and adding the random number d to each rational integer a i [1 ≦ i ≦ n] And knapsack generating means for generating a rational integer b i [1 ≦ i ≦ n], the public key is at least a positive rational integer k, the rational integer b i [1 ≦ i ≦ n], and the secret key is a composite number N, a positive rational integer k, a rational integer g, a random number d, and a rational integer p i [1 ≦ i ≦ n]. Also, the encryption device converts the public key (at least positive rational integer k, rational integer b i [1 ≦ i ≦ n]) and plaintext M, and converts the plaintext into a code string (code conversion). , By means of a code conversion method capable of converting a code string into plain text (reverse code conversion), plain text M is a code string m of length n and weight k = {m i } [1 ≦ i ≦ n; Let i = 1 n m i = k. And a cipher means for generating ciphertext c = Σ i = 1 n m i b i from the code string mi and the public key b i . The decryption apparatus includes a storage unit that stores a secret key (composite number N, rational integer g, random number d, rational integer p i [1 ≦ i ≦ n]) and ciphertext c, and a secret key from ciphertext c. an exponent calculation means for calculating an exponent r by subtracting the product of k and the secret key d, and calculating a power-residue calculation result u by calculating u≡g r (mod N) from the exponent r, the secret key g, and N Dividing the power-residue calculation means and the power-residue calculation result u by each secret key p i [1 ≦ i ≦ n] to give different code values w i when divided and not divided, a code sequence w = {w i} symbol recovery means for calculating the [1 ≦ i ≦ n], the code conversion method used in the code conversion means in the encryption device, the plaintext to convert the code sequence w plaintext Decoding means for outputting. These key generation device, encryption device, and decryption device are connected to each other so as to be able to transmit data to form a multiplicative knapsack encryption system.
In this way, the multiplicative knapsack cipher is constructed in a partial cyclic group of irreducible residue class group (Z / NZ) × modulo the composite number N which is the product of prime numbers.
また、上記課題を解決するために、本発明では、鍵生成装置は、正の有理整数n、kを記憶する記憶手段と、少なくとも代数体Kの整数環ZKのイデアルνを設定する基底設定手段と、各既約剰余類群(ZK/τj)×〔1≦j≦s;τjはイデアルνを構成するどの2つのノルムも互いに素な素イデアルである。〕の生成元となる整数環ZKの整数gを算出する生成元算出手段と、どの2つのノルムも互いに素である整数環ZKの整数pi〔1≦i≦n;但し、各整数piのノルムはイデアルνのノルムと互いに素である。〕を算出する秘密鍵集合算出手段と、各i〔1≦i≦n〕に対してgai≡pi(mod ν)を満たす有理整数aiを算出するナップザック生成因子算出手段と、乱数dを生成して、これを出力する乱数生成手段と、各有理整数ai〔1≦i≦n〕に乱数dを加算して有理整数bi〔1≦i≦n〕を生成するナップザック生成手段とを備え、公開鍵は少なくとも正の有理整数k、有理整数bi〔1≦i≦n〕、秘密鍵は少なくともイデアルν、正の有理整数k、整数環ZKの整数g、乱数d、整数環ZKの整数pi〔1≦i≦n〕であるとする。また、暗号化装置は、公開鍵(少なくとも正の有理整数k、有理整数bi〔1≦i≦n〕)および平文Mを記憶する記憶手段と、平文を符号列に変換し(符号変換)、符号列を平文に変換する(逆符号変換)ことが可能な符号変換方式によって、平文Mを長さn、重みkの符号列m={mi}〔1≦i≦n;但し、Σi=1 nmi=kとする。〕に変換する符号変換手段と、符号列miおよび公開鍵biから暗号文c=Σi=1 nmibiを生成する暗号化手段とを備える。そして、復号化装置は、秘密鍵(少なくともイデアルν、正の有理整数k、整数環ZKの整数g、乱数d、整数環ZKの整数pi〔1≦i≦n〕)および暗号文cを記憶する記憶手段と、暗号文cから秘密鍵kと秘密鍵dとの積を減算して指数rを算出する指数算出手段と、指数r、秘密鍵gおよびνからu≡gr(mod ν)を演算した冪乗剰余演算結果uを算出する冪乗剰余演算手段と、冪乗剰余演算結果uを各秘密鍵pi〔1≦i≦n〕で除し、割り切れた場合と割り切れなかった場合とでそれぞれ異なる符号値wiを与え、符号列w={wi}〔1≦i≦n〕を算出する符号再生手段と、上記暗号化装置における符号変換手段で用いた符号変換方式によって、符号列wを平文に変換してこの平文を出力する復号化手段とを備える。これら鍵生成装置、暗号化装置および復号化装置がそれぞれデータ送信可能に接続されて乗法型ナップザック暗号システムが構成される。
このように、代数体Kの整数環ZKにおける複数の素イデアルの積νを法とした、既約剰余類群(ZK/ν)×の巡回部分群において乗法型ナップザック暗号を構成する。
In order to solve the above-described problem, in the present invention, the key generation device includes a storage unit that stores positive rational integers n and k, and a base setting that sets an ideal ν of the integer ring Z K of the algebraic field K Means and each irreducible residue class group (Z K / τ j ) × [1 ≦ j ≦ s; τ j is a prime ideal in which any two norms constituting the ideal ν are disjoint. Integer p i [1 ≦ i ≦ n integer ring Z K and generating element calculation unit, any two norms is also relatively prime to calculate the integer g of the ring of integers Z K as a generator of]; however, each integer The norm of p i is relatively prime with the norm of ideal ν. And private key set calculating means for calculating a], and Knapsack generation factor calculation means for calculating a rational integer a i satisfying g ai ≡p i (mod ν) for each i [1 ≦ i ≦ n], the random number d And a knapsack generating means for generating a rational integer b i [1 ≦ i ≦ n] by adding a random number d to each rational integer a i [1 ≦ i ≦ n]. The public key is at least a positive rational integer k, the rational integer b i [1 ≦ i ≦ n], the secret key is at least an ideal ν, a positive rational integer k, an integer g of an integer ring Z K , a random number d, It is assumed that an integer p i [1 ≦ i ≦ n] of the integer ring Z K is satisfied. Also, the encryption device converts the public key (at least positive rational integer k, rational integer b i [1 ≦ i ≦ n]) and plaintext M, and converts the plaintext into a code string (code conversion). , By means of a code conversion method capable of converting a code string into plain text (reverse code conversion), plain text M is a code string m of length n and weight k = {m i } [1 ≦ i ≦ n; Let i = 1 n m i = k. And a cipher means for generating ciphertext c = Σ i = 1 n m i b i from the code string mi and the public key b i . Then, the decoding apparatus, the secret key (at least ideal [nu, positive rational integer k, an integer g integer ring Z K, the random number d, the integer p i integer ring Z K [1 ≦ i ≦ n]) and ciphertext storage means for storing c, exponent calculation means for calculating the index r by subtracting the product of the secret key k and the secret key d from the ciphertext c, u≡g r (from the index r, the secret key g and ν) mod ν) is a power residue calculation means for calculating a power residue calculation result u, and the power residue remainder operation result u is divided by each secret key p i [1 ≦ i ≦ n]. A code reproduction unit that gives different code values w i and a code string w = {w i } [1 ≦ i ≦ n], and a code conversion used in the code conversion unit in the encryption device Decoding means for converting the code string w into plaintext and outputting the plaintext according to the system . These key generation device, encryption device, and decryption device are connected to each other so as to be able to transmit data to form a multiplicative knapsack encryption system.
Thus, a multiplicative knapsack cipher is constructed in a cyclic subgroup of irreducible residue class group (Z K / ν) × modulo a product ν of a plurality of prime ideals in integer ring Z K of algebraic field K.
本発明は、素数冪の積である合成数Nを法とした既約剰余類群(Z/NZ)×の部分巡回群、あるいは、代数体Kの整数環ZKにおける複数の素イデアルの積νを法とした既約剰余類群(ZK/ν)×の巡回部分群において乗法型ナップザック暗号を構成することで、合成数を構成するより小さい素数冪あるいはイデアルνを構成するノルムがより小さい素イデアルを法として、乗法型ナップザック暗号で必要な離散対数計算を既存の計算機でも演算可能となるから、既存の計算機でも比較的容易に利用可能である。また、ナップザック問題を安全性の拠り所とするから、量子計算機が実現しても解読の虞がない。 The present invention relates to a partial cyclic group of an irreducible residue class group (Z / NZ) × modulo a composite number N that is a product of prime numbers 積, or a product ν of a plurality of prime ideals in an integer ring Z K of an algebraic field K By constructing a multiplicative knapsack cipher in a cyclic subgroup of irreducible residue classes (Z K / ν) modulo x, a prime with a smaller norm that constitutes a composite number 冪 or an ideal ν Since the logarithm of the ideal is used for the discrete logarithm calculation necessary for the multiplicative knapsack cryptography, it can be used even with an existing computer. In addition, since the knapsack problem is based on safety, there is no risk of decoding even if the quantum computer is realized.
一例として合成数Nが1024ビットの場合を考えると、従来は、1024ビットの素数を法とした離散対数計算をしなければならなかったが、本発明では、合成数Nを128ビットの素数冪8個q1、q2、・・・、q8の積とすれば、各qi(1≦i≦8)を法とした離散対数を計算すればよく、128ビット程度の離散対数計算は、現在の計算機環境においても、数体ふるい法などを利用することで、実用的な時間で解を得ることができる。 Considering the case where the composite number N is 1024 bits as an example, conventionally, the discrete logarithm calculation using the 1024-bit prime number as a modulus has been performed. If the product of 8 q 1 , q 2 ,..., Q 8 is used, a discrete logarithm modulo each q i (1 ≦ i ≦ 8) may be calculated. Even in the current computer environment, a solution can be obtained in a practical time by using a number field sieving method or the like.
各実施形態で説明する本発明である鍵生成装置、暗号化装置および復号化装置の細部においては、整数論における数値計算処理が必要となる場合があるが、整数論における数値計算処理自体は、公知技術と同様にして達成されるので、その演算処理方法などの詳細な説明は省略する(この点の技術水準を示す整数論における数値計算処理が可能なソフトウェアとしては、例えばPARI/GP、KANT/KASHなどが挙げられる。PARI/GPについては、例えばインターネット〈URL: http://pari.math.u-bordeaux.fr/〉[平成17年12月14日検索]を参照のこと。KANT/KASHについては、例えばインターネット〈URL: http://www.math.tu-berlin.de/algebra/〉[平成17年12月14日検索]を参照のこと。)。
また、この点に関する文献として、参考文献1を挙げることができる。
(参考文献1) H. Cohen, "A Course in Computational Algebraic Number Theory", GTM 138, Springer-Verlag, 1993.
In the details of the key generation device, the encryption device, and the decryption device of the present invention described in each embodiment, numerical calculation processing in number theory may be required, but numerical calculation processing in number theory itself is Since it is achieved in the same manner as in the known technique, detailed description of the arithmetic processing method and the like will be omitted. / KASH etc. For PARI / GP, see the Internet <URL: http://pari.math.u-bordeaux.fr/> [searched on December 14, 2005] KANT / For KASH, for example, refer to the Internet <URL: http://www.math.tu-berlin.de/algebra/> [searched on December 14, 2005].
(Reference 1) H. Cohen, "A Course in Computational Algebraic Number Theory", GTM 138, Springer-Verlag, 1993.
《第1実施形態》
本発明の第1実施形態を、図面を参照して説明する。
ここでは、第1実施形態の各装置(鍵生成装置、暗号化装置、復号化装置)の構成および処理、各装置で構成する乗法型ナップザック暗号システム、そのシステムにおける処理を叙述的に説明する。
第1実施形態における乗法型ナップザック暗号システムは、必要に応じて「鍵生成装置」「暗号化装置」「復号化装置」の各装置で構成される。
なお、第1実施形態では、下記の処理に係わる集合が有理整数環であることに留意しなければならない(第1実施形態で、「整数」とは「有理整数」を意味する。)。
<< First Embodiment >>
A first embodiment 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, and decryption device) of the first embodiment, the multiplicative knapsack encryption system configured by each device, and the processing in that system will be described descriptively.
The multiplicative knapsack encryption system according to the first embodiment is configured by devices “key generation device”, “encryption device”, and “decryption device” as necessary.
In the first embodiment, it should be noted that the set related to the following processing is a rational integer ring (in the first embodiment, “integer” means “rational integer”).
[鍵生成装置]
(ハードウェア構成並びにハードウェア資源とソフトウェアとの協働による情報処理の実現)
図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 generator]
(Realization of information processing through cooperation between hardware configuration and hardware resources and software)
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) includes an input unit (11) to which an input unit such as a keyboard or a pointing device can be connected, an output unit (12) to which an output unit such as a liquid crystal display can be connected, Key generation device (1) A communication unit (13) to which a communication device (for example, a communication cable) that can communicate with the outside can be connected, and a CPU (Central Processing Unit) (14) [may include a cache memory or the like. ] RAM (15) as a memory, ROM (16), external storage device (17) as a hard disk, and these input unit (11), output unit (12), communication unit (13), CPU (14), A bus (18) is provided to connect the RAM (15), ROM (16), and external storage device (17) so that data can be exchanged between them. 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. A physical entity having such hardware resources includes a general-purpose computer.
鍵生成装置(1)の外部記憶装置(17)には、後述する鍵(公開鍵、秘密鍵)を生成するためのプログラムおよびこのプログラムの処理において必要となるデータなどが保存記憶されている。また、プログラムの処理によって得られるデータなどは、RAM(15)や外部記憶装置(17)などに適宜に保存記憶される。 The external storage device (17) of the key generation device (1) stores and stores a program for generating a key (public key, secret key) to be described later, data necessary for processing of the program, and the like. Further, data obtained by the program processing is appropriately stored in the RAM (15), the external storage device (17), or the like.
より具体的に外部記憶装置(17)〔あるいはROMなど〕には、合成数Nを生成するためのプログラム、既約剰余類群の生成元となる(合成数Nを法とする)整数gを求めるためのプログラム、ナップザック問題を解くために用いられる秘密鍵となる元の集合(以下、「秘密鍵集合」とも云う。)を生成するためのプログラム、合成数Nを法とし整数gを底として秘密鍵となる各元の指数(以下、「ナップザック生成因子」と云う。)を与えるためのプログラム、乱数を生成するためのプログラム、ナップザックを生成するためのプログラム、これらのプログラムに基づく処理を制御するための制御プログラムなどが保存記憶されている。
また、これらのプログラムの処理において必要となるデータとして、正の整数nおよびk(但し、n>kとする。)、合成数Nを与える素数冪qj(1≦j≦s)が予め外部記憶装置(17)に保存記憶されているとする。なお、これらのデータは、予め鍵生成装置(1)の外部記憶装置(17)に保存記憶しておくのではなく、例えば、入力部(11)から入力されるとしてもよいし、あるいは、これらのデータを格納した記録媒体からドライブを駆動して読み込むようにしてもよく、適宜に変更可能である。
More specifically, in the external storage device (17) [or ROM, etc.], a program for generating the composite number N, and an integer g (modulo the composite number N) that is the generation source of the irreducible residue class group are obtained. A program for generating an original set (hereinafter also referred to as a “secret key set”) which is a secret key used to solve the knapsack problem, a secret with the composite number N as the base and the integer g as the base A program for giving each key element index (hereinafter referred to as “knapsack generation factor”), a program for generating random numbers, a program for generating knapsack, and a process based on these programs are controlled. For example, a control program is stored and stored.
Further, as data necessary for the processing of these programs, positive integers n and k (where n> k) and a prime number 冪 q j (1 ≦ j ≦ s) giving a composite number N are externally provided in advance. It is assumed that the data is stored in the storage device (17). These data may not be stored in advance in the external storage device (17) of the key generation device (1), but may be input from the input unit (11), for example. The data may be read by driving the drive from the recording medium storing the data.
鍵生成装置(1)では、外部記憶装置(17)〔あるいはROMなど〕に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてRAM(15)に読み込まれて、適宜にCPU(14)で解釈実行・処理される。その結果、CPU(14)が所定の機能(合成数算出部、生成元算出部、秘密鍵集合算出部、ナップザック生成因子算出部、乱数生成部、ナップザック生成部、制御部)を実現する。 In the key generation device (1), each program stored in the external storage device (17) [or ROM, etc.] and data necessary for the processing of each program are read into the RAM (15) as necessary, and appropriately. The CPU (14) interprets and executes them. As a result, the CPU (14) realizes predetermined functions (composite number calculation unit, generation source calculation unit, secret key set calculation unit, knapsack generation factor calculation unit, random number generation unit, knapsack generation unit, control unit).
(鍵生成処理)
次に、図2および図3を参照して、鍵生成装置(1)における鍵生成処理の流れを叙述的に説明する。
(Key generation process)
Next, with reference to FIG. 2 and FIG. 3, the flow of the key generation processing in the key generation device (1) will be described descriptively.
まず、制御部(140)が、外部記憶装置(17)から、正の整数nおよびk、素数冪qj(1≦j≦s)を読み込み、それぞれをRAM(15)の所定の格納領域に格納しておく。以後、「RAMから○○を読み込む」旨の説明をした場合は、「RAMにおいて○○が格納されている所定の格納領域から○○を読み込む」ことを意味するとする。
なお、素数冪とは素数の冪乗を表し、冪数が1の場合も含むとする。
First, the control unit (140) reads the positive integers n and k and the prime number 冪 q j (1 ≦ j ≦ s) from the external storage device (17), and stores them in a predetermined storage area of the RAM (15). Store it. Hereinafter, when the description “reads XX from RAM” is used, it means “read XX from a predetermined storage area in which XX is stored in the RAM”.
Note that the prime number 冪 represents the power of the prime number and includes the case where the power number is 1.
〔ステップS12〕
次に、合成数算出部(141)が、RAM(15)から素数冪qj(1≦j≦s)を読み込み、式(1)に従った演算を行って合成数Nを算出し、この算出した合成数NをRAM(15)の所定の格納領域に格納する。
Next, the composite number calculation unit (141) reads the prime number 冪 q j (1 ≦ j ≦ s) from the RAM (15), performs an operation according to the equation (1), and calculates the composite number N. The calculated composite number N is stored in a predetermined storage area of the RAM (15).
〔ステップS13〕
次に、生成元算出部(142)が、RAM(15)から素数冪qj(1≦j≦s)を読み込み、全てのj(1≦j≦s)について既約剰余類群(Z/qjZ)×の生成元となる(合成数Nを法とする)整数gを算出して、この算出した整数gをRAM(15)の所定の格納領域に格納する。
この整数gの算出は、公知の方法によって可能であり、例えば次のような方法による。即ち、まず、既約剰余類群(Z/q1Z)×の生成元となる整数g1、既約剰余類群(Z/q2Z)×の生成元となる整数g2、…、既約剰余類群(Z/qsZ)×の生成元となる整数gsをそれぞれの既約剰余類群ごとに総当りで求め、次いで、これらの整数g1、g2、…、gsに対して中国人剰余定理を適用して整数gを求めればよい。
より具体的に説明すると、中国人剰余定理に拠れば、互いに素な各qj(1≦j≦s)について、g≡g1(mod q1)、g≡g2(mod q2)、・・・、g≡gs(mod qs)なる連立方程式を満たす整数gがN=Πj=1 sqj〔式(1)〕を法として一意に決まるので、全てのj(1≦j≦s)について既約剰余類群(Z/qjZ)×の生成元となる(合成数Nを法とする)整数gを算出できる〔この場合、整数gは法qjに関するgjの類に一致する。〕。
[Step S13]
Next, the generator calculation unit (142) reads the prime number 冪 q j (1 ≦ j ≦ s) from the RAM (15), and the irreducible residue class group (Z / q) for all j (1 ≦ j ≦ s). An integer g (modulo the composite number N) that is a generator of jZ) × is calculated, and the calculated integer g is stored in a predetermined storage area of the RAM (15).
The integer g can be calculated by a known method, for example, by the following method. That is, first, an integer g 1 that is a generator of the irreducible residue class group (Z / q 1 Z) × , an integer g 2 that is a generator of the irreducible residue class group (Z / q 2 Z) × ,. An integer g s that is a generator of the residue class group (Z / q s Z) × is obtained for each irreducible residue class group, and then, for these integers g 1 , g 2 ,..., G s An integer g may be obtained by applying the Chinese remainder theorem.
More specifically, according to the Chinese remainder theorem, for each disjoint q j (1 ≦ j ≦ s), g≡g 1 (mod q 1 ), g≡g 2 (mod q 2 ), ..., an integer g satisfying the simultaneous equations g≡g s (mod q s ) is uniquely determined by modulo N = Π j = 1 s q j [Equation (1)]. an integer g that is a generator of the irreducible residue class group (Z / q j Z) x for j ≦ s) (modulo the composite number N) can be calculated [in this case, the integer g is the value of g j with respect to the modulus q j Matches the class. ].
〔ステップS14〕
次に、秘密鍵集合算出部(143)が、RAM(15)から正の整数nおよびk、合成数Nを読み込み、以下の条件を満たす、互いに素である元の集合{p1,p2,・・・,pn}を生成して、この集合{p1,p2,・・・,pn}をRAM(15)の所定の格納領域に格納する。この集合{p1,p2,・・・,pn}が秘密鍵集合である。
・条件(a):各pi(1≦i≦n)は合成数Nと互いに素である。
・条件(b):集合{p1,p2,・・・,pn}の部分集合であり、要素数がkである任意の部分集合{ph1,ph2,…,phk}が、式(2)を満たす。
Then, the secret key set calculating section (143), reads from the RAM (15) positive integer n and k, the composite number N, the following conditions are satisfied, the original set disjoint {p 1, p 2 ,..., P n }, and this set {p 1 , p 2 ,..., P n } is stored in a predetermined storage area of the RAM (15). This set {p 1 , p 2 ,..., P n } is a secret key set.
Condition (a): Each p i (1 ≦ i ≦ n) is relatively prime to the composite number N.
Condition (b): the set {p 1, p 2, ··· , p n} is a subset of, any subset number of elements is k {p h1, p h2, ..., p hk} is The expression (2) is satisfied.
条件(a)は、元piが既約剰余類群(Z/NZ)×の元となることの条件である。
また、条件(b)は、後述の復号化処理において復号の一意性を保証するための条件である。但し、式(2)は、後述する暗号化処理において平文Mを数え上げ符号方式でビット列に変換する場合に対応したものであり、例えば平文Mをパワーライン符号方式で自然数列に変換する場合には当該方式に適応した条件式になることに留意しなければならない。
いずれの符号変換方式でも満たすべき条件(b)は、式(3)で表すことができる〔式(3)は、パワーライン符号方式における条件式でもある。〕。
The condition (b) is a condition for guaranteeing the uniqueness of decoding in the decoding process described later. However, equation (2) corresponds to the case where plaintext M is counted and converted to a bit string by the encoding method in the encryption processing described later. For example, when plaintext M is converted to a natural number sequence by the powerline encoding method It should be noted that the conditional expression is adapted to the method.
The condition (b) to be satisfied in any code conversion method can be expressed by the following expression (3) [Expression (3) is also a conditional expression in the power line coding method. ].
集合{p1,p2,・・・,pn}の生成は、公知の方法によって可能であり、例えば次のような方法による。即ち、p1<p2<・・・<pnとして、既約剰余類群(Z/NZ)×の元の集合から、pn−k+1×pn−k+2×・・・×pn−1×pn<Nを満たすようなn個の元を選択すればよい。なお、既約剰余類群(Z/NZ)×の元の集合の要素数は、nより大きいとする。 The generation of the set {p 1 , p 2 ,..., P n } is possible by a known method, for example, by the following method. That, p 1 <p 2 <··· < as p n, from the original set of irreducible coset group (Z / NZ) ×, p n-k + 1 × p n-k + 2 × ··· × p n-1 It is only necessary to select n elements that satisfy xpn <N. Note that the number of elements in the original set of irreducible residue class group (Z / NZ) × is greater than n.
〔ステップS15〕
次に、ナップザック生成因子算出部(144)が、RAM(15)から合成数N、整数g、秘密鍵集合{p1,p2,・・・,pn}を読み込み、式(4)を満たす整数ai(1≦i≦n)を算出し、この算出した整数ai(1≦i≦n)をRAM(15)の所定の格納領域に格納する。この整数ai(1≦i≦n)がナップザック生成因子である。
Next, the knapsack generation factor calculation unit (144) reads the composite number N, the integer g, and the secret key set {p 1 , p 2 ,..., P n } from the RAM (15), and formula (4) is obtained. A satisfying integer a i (1 ≦ i ≦ n) is calculated, and the calculated integer a i (1 ≦ i ≦ n) is stored in a predetermined storage area of the RAM (15). This integer a i (1 ≦ i ≦ n) is a knapsack generating factor.
式(4)はいわゆる離散対数問題であり、一般的には整数aiを求めることは困難とされる。
しかし、合成数Nの素因子qjが或る程度小さい場合(現在の技術水準では上限400ビット程度であるが、例えば64ビット〜256ビット程度でよい。)には、容易に整数aiを求めることが可能である。例えば、各i(1≦i≦n)について、以下の処理を行えばよい。
Equation (4) is a so-called discrete logarithm problem, and it is generally difficult to obtain the integer a i .
However, if the prime factor q j of the composite number N is small to some extent (the current technology level has an upper limit of about 400 bits, for example, it may be about 64 bits to 256 bits), the integer a i can be easily set. It is possible to ask. For example, the following processing may be performed for each i (1 ≦ i ≦ n).
〔ステップS15−1〕
各j(1≦j≦s)について、式(5)を満たす整数ai,jを計算する。素因子qjが短いビット長の素数冪であれば、ai,jを求めるためには、数体ふるい法やPollardのρと呼ばれる方式(モンテカルロ法)を用いることによって、容易に計算することが可能である。
For each j (1 ≦ j ≦ s), an integer a i, j that satisfies Equation (5) is calculated. If the prime factor q j is a short bit-length prime number 冪, ai, j can be easily calculated by using a number field sieving method or a method called Pollard's ρ (Monte Carlo method). Is possible.
〔ステップS15−2〕
全てのj(1≦j≦s)について、式(6)を満たす整数aiを計算する。なお、φはオイラー関数である。
For all j (1 ≦ j ≦ s), an integer a i satisfying Expression (6) is calculated. Note that φ is an Euler function.
〔ステップS16〕
次に、乱数生成部(145)が、乱数dを生成して、この生成した乱数dをRAM(15)の所定の格納領域に格納する。
[Step S16]
Next, the random number generation unit (145) generates a random number d and stores the generated random number d in a predetermined storage area of the RAM (15).
〔ステップS17〕
次に、ナップザック生成部(146)が、RAM(15)から乱数d、整数ai(1≦i≦n)を読み込み、各i(1≦i≦n)について、整数aiに乱数dを加算して整数bi〔1≦i≦n〕を算出し、この算出されたbiをRAM(15)の所定の格納領域に格納する。このbi(1≦i≦n)がナップザックである。
ここで、「整数aiに乱数dを加算して整数bi〔1≦i≦n〕を算出」する具体的な方法としては、例えば、bi=ai+dを演算して行う。なお、ナップザックであるbi(1≦i≦n)の算出方法は、bi=ai+dなる演算に限定されるものではない。要はナップザックとして利用可能なn個の元の集合を生成できればよく、例えば次のような方法でナップザックを生成してもよい。即ち、ナップザック生成部(146)が、RAM(15)から乱数d、整数ai(1≦i≦n)、合成数Nを読み込み、各i(1≦i≦n)について、bi=ai+d mod φ(N)を演算してbiを算出し、この算出されたbiをRAM(15)の所定の格納領域に格納する。
[Step S17]
Next, the knapsack generation unit (146) reads the random number d and the integer a i (1 ≦ i ≦ n) from the RAM (15), and for each i (1 ≦ i ≦ n), the random number d is added to the integer a i. The integer b i [1 ≦ i ≦ n] is calculated by addition, and the calculated b i is stored in a predetermined storage area of the RAM (15). This b i (1 ≦ i ≦ n) is a knapsack.
Here, as a specific method of “calculating the integer b i [1 ≦ i ≦ n] by adding the random number d to the integer a i ”, for example, b i = a i + d is calculated. The calculation method of b i (1 ≦ i ≦ n), which is a knapsack, is not limited to the calculation b i = a i + d. In short, it is only necessary to generate n original sets that can be used as a knapsack. For example, a knapsack may be generated by the following method. That is, the knapsack generation unit (146) reads the random number d, the integer a i (1 ≦ i ≦ n), and the composite number N from the RAM (15), and for each i (1 ≦ i ≦ n), b i = a i + d mod φ (N) is calculated to calculate b i, and the calculated b i is stored in a predetermined storage area of the RAM (15).
〔ステップS18〕
以上の処理を経てRAM(15)に格納されている合成数N、正の整数k、整数g、乱数dおよび秘密鍵集合{p1,p2,・・・,pn}が秘密鍵となり、ナップザックbi(1≦i≦n)、正の整数nおよびkが公開鍵となる。なお、公開鍵のうちnについてはナップザックbi(1≦i≦n)の個数から得られるから、nを公開鍵に含めることは必須ではない。本明細書では、説明の便宜上、このnを含めて公開鍵とする。
制御部(140)は、通信部(13)を制御して、公開鍵(n,k,b1,b2,・・・,bn)を暗号化装置に送信し、秘密鍵(N,k,g,d,p1,p2,・・・,pn)を復号化装置に送信する。なお、少なくとも秘密鍵を送信する通信路は安全性が保証されたものであることが望ましい。なお、鍵生成装置(1)が復号化装置を兼ねる場合には、秘密鍵を送信する必要がない。また、公開鍵を暗号化装置に送信するのではなく、例えば公開鍵登録サーバ装置などに送信して、公開鍵登録サーバ装置がこれにアクセスした暗号化装置に公開鍵を送信する構成としてもよい。結局のところ、秘密鍵が安全に復号化装置に供給されること、公開鍵が暗号化装置に供給されること、の2点を満たせば、その供給方法に限定はない。
[Step S18]
Through the above processing, the composite number N, positive integer k, integer g, random number d, and secret key set {p 1 , p 2 ,..., P n } stored in the RAM (15) become secret keys. , Knapsack b i (1 ≦ i ≦ n), positive integers n and k are public keys. Since n of the public keys is obtained from the number of knapsacks b i (1 ≦ i ≦ n), it is not essential to include n in the public key. In this specification, for convenience of explanation, this n is used as a public key.
The control unit (140) controls the communication unit (13) to transmit the public key (n, k, b 1 , b 2 ,..., B n ) to the encryption device, and the secret key (N, k, g, d, p 1 , p 2 ,..., pn ) are transmitted to the decoding device. In addition, it is desirable that at least the communication path for transmitting the secret key has a guaranteed safety. When the key generation device (1) also serves as a decryption device, it is not necessary to transmit a secret key. Further, instead of transmitting the public key to the encryption device, the public key registration server device may transmit the public key to the encryption device that has accessed the public key registration server device, for example. . After all, as long as the secret key is securely supplied to the decryption device and the public key is supplied to the encryption device, the supply method is not limited.
[暗号化装置]
(ハードウェア構成並びにハードウェア資源とソフトウェアとの協働による情報処理の実現)
図4は、暗号化装置(2)のハードウェア構成を例示した構成ブロック図である。図4に例示するように、暗号化装置(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]
(Realization of information processing through cooperation between hardware configuration and hardware resources and software)
FIG. 4 is a block diagram illustrating the hardware configuration of the encryption device (2). As illustrated in FIG. 4, the encryption device (2) includes an input unit (21) to which an input unit such as a keyboard and a pointing device can be connected, an output unit (22) to which an output unit such as a liquid crystal display can be connected, Encryption unit (2) A communication unit (23) to which a communication device (for example, a communication cable) that can communicate with the outside can be connected, and a CPU (Central Processing Unit) (24) [may include a cache memory or the like. ] RAM (25) as a memory, ROM (26), external storage device (27) as a hard disk, and these input unit (21), output unit (22), communication unit (23), CPU (24), A bus (28) is provided to connect the RAM (25), ROM (26), and external storage device (27) so that data can be exchanged between them. 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. A physical entity having such hardware resources includes a general-purpose computer.
暗号化装置(2)の外部記憶装置(27)には、平文を暗号化するためのプログラムおよびこのプログラムの処理において必要となるデータなどが保存記憶されている。また、プログラムの処理によって得られるデータなどは、RAM(25)や外部記憶装置(27)などに適宜に保存記憶される。 The external storage device (27) of the encryption device (2) stores and stores a program for encrypting plaintext, data necessary for processing of this program, and the like. Data obtained by the program processing is appropriately stored in the RAM (25), the external storage device (27), or the like.
より具体的に外部記憶装置(27)〔あるいはROMなど〕には、平文Mを所定のビット長に符号化するためのプログラム、符号化された平文を暗号化するためのプログラム、これらのプログラムに基づく処理を制御するための制御プログラムなどが保存記憶されている。
また、これらのプログラムの処理において必要となるデータとして、平文M、公開鍵(n,k,b1,b2,・・・,bn)が予め外部記憶装置(27)に保存記憶されているとする。なお、平文Mは、予め暗号化装置(2)の外部記憶装置(27)に保存記憶しておくのではなく、例えば、入力部(21)から入力されるとしてもよいし、あるいは、これらのデータを格納した記録媒体からドライブを駆動して読み込むようにしてもよく、適宜に変更可能である。また、公開鍵(n,k,b1,b2,・・・,bn)は、暗号化装置(2)の通信部(23)によって、鍵生成装置(1)から受信して外部記憶装置(27)に保存記憶されたものである。
More specifically, the external storage device (27) [or ROM, etc.] includes a program for encoding the plaintext M into a predetermined bit length, a program for encrypting the encoded plaintext, and these programs. A control program for controlling the processing based on the data is stored and stored.
Further, as data necessary for processing of these programs, plaintext M and public keys (n, k, b 1 , b 2 ,..., B n ) are stored and stored in the external storage device (27) in advance. Suppose that The plaintext M may not be stored and stored in advance in the external storage device (27) of the encryption device (2), but may be input from the input unit (21), or these The drive may be read from the recording medium storing the data, and can be changed as appropriate. The public key (n, k, b 1 , b 2 ,..., B n ) is received from the key generation device (1) by the communication unit (23) of the encryption device (2) and externally stored. It is stored in the device (27).
暗号化装置(2)では、外部記憶装置(27)〔あるいはROMなど〕に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてRAM(25)に読み込まれて、適宜にCPU(24)で解釈実行・処理される。その結果、CPU(24)が所定の機能(符号変換部、暗号化部、制御部)を実現する。 In the encryption device (2), each program stored in the external storage device (27) [or ROM, etc.] and data necessary for the processing of each program are read into the RAM (25) as necessary, and appropriately. The CPU (24) interprets and executes the processing. As a result, the CPU (24) realizes predetermined functions (code conversion unit, encryption unit, control unit).
(暗号化処理)
次に、図5および図6を参照して、暗号化装置(2)における暗号化処理の流れを叙述的に説明する。
(Encryption processing)
Next, with reference to FIG. 5 and FIG. 6, the flow of the encryption process in the encryption device (2) will be described descriptively.
まず、制御部(240)が、外部記憶装置(27)から、平文Mおよび公開鍵(n,k,b1,b2,・・・,bn)を読み込み、それぞれをRAM(25)の所定の格納領域に格納しておく。以後、「RAMから○○を読み込む」旨の説明をした場合は、「RAMにおいて○○が格納されている所定の格納領域から○○を読み込む」ことを意味するとする。 First, the control unit (240) reads the plaintext M and the public key (n, k, b 1 , b 2 ,..., B n ) from the external storage device (27), and stores them in the RAM (25). Store in a predetermined storage area. Hereinafter, when the description “reads XX from RAM” is used, it means “read XX from a predetermined storage area in which XX is stored in the RAM”.
〔ステップS22〕
次に、符号変換部(241)が、RAM(25)から平文M、公開鍵nおよびkを読み込み、平文Mを、長さnビット、ハミング(Hamming)重みkの符号列m=(m1,m2,・・・,mn)に変換し、変換された平文をRAM(25)の所定の格納領域に格納する。
ここで、平文Mのビット長は、┗log2 nCk┛ビットとする(後述の数え上げ符号方式の場合に相当する。)。また、mi(1≦i≦n)∈{0,1}、Σi=1 nmi=kである。つまり、ビット列mの中では、値1のものがk個、値0のものがn−k個である。
なお、記号┗*┛は、*を超えない最大の整数を表し、nCkは、n個のものからk個のものを取り出す組み合わせの総数(いわゆる二項係数に相当する。)を表す。
[Step S22]
Next, the code conversion unit (241) reads the plaintext M and the public keys n and k from the RAM (25), and the plaintext M is a code string m = (m 1 ) having a length n bits and a Hamming weight k. , M 2 ,..., M n ), and the converted plaintext is stored in a predetermined storage area of the RAM (25).
Here, the bit length of the plaintext M is set to ┗ log 2 n C k ┛ bits (corresponding to the case of the counting code method described later). In addition, m i (1 ≦ i ≦ n) ∈ {0, 1} and Σ i = 1 n m i = k. That is, in the bit string m, the
The symbol ┗ * ┛ represents the maximum integer that does not exceed *, and n C k represents the total number of combinations in which k items are extracted from n items (corresponding to so-called binomial coefficients).
平文Mを、長さnビット、ハミング(Hamming)重みkのビット列mに変換する方法は公知の方法によればよく、「数え上げ符号(enumerable encoding)」という方式を用いればよい(参考文献2参照。)。なお、この方式に限定する趣旨ではなく、後述する復号化処理が可能となるためには、符号列mがΣi=1 nmi=kという条件を満たしていれば十分であるため、符号列m=(m1,m2,・・・,mn)はビット列ではなく自然数列でもよい。平文Mをこのような自然数列に変換する方法として、「パワーライン符号(powerline encoding)」と呼ばれる方式がある(参考文献3参照。)。このパワーライン符号方式を用いる場合には、平文Mをこの方式に適合したビット長にすればよい。パワーライン符号方式の場合には、ビット長を┗log2 nHk┛=┗log2 n+k-1Ck┛とする。パワーライン符号方式の場合、符号化できる整数の総数は「n個のものから重複を許してk個のものを取り出す組み合わせの総数(重複組み合わせ)nHk」に一致する。
(参考文献2) T. M. Cover, "Enumerable source encoding", IEEE Trans. Inform. Theory, vol.IT-19, pp.73-77, 1973.
(参考文献3) P. Camion, H. Chabanne, "On the Powerline system", AAECC, vo1 9, pp.405-432, Springer-Verlag, 1999.
A method of converting the plaintext M into a bit string m having a length of n bits and a Hamming weight k may be a known method, and a method called “enumerable encoding” may be used (see Reference 2). .) It is not intended to be limited to this method, but it is sufficient that the code string m satisfies the condition of Σ i = 1 n m i = k so that the decoding process described later can be performed. The sequence m = (m 1 , m 2 ,..., M n ) may be a natural number sequence instead of a bit sequence. As a method for converting the plaintext M into such a natural number sequence, there is a method called “powerline encoding” (see Reference 3). When this power line coding method is used, the plaintext M may be set to a bit length adapted to this method. In the case of the power line coding method, the bit length is set to ┗ log 2 n H k = = ┗ log 2 n + k-1 C k ┛ . In the case of the power line coding method, the total number of integers that can be encoded is equal to “the total number of combinations (overlapping combinations) n H k that allows duplication from n items to allow duplication”.
(Reference 2) TM Cover, "Enumerable source encoding", IEEE Trans. Inform. Theory, vol.IT-19, pp.73-77, 1973.
(Reference 3) P. Camion, H. Chabanne, "On the Powerline system", AAECC, vo1 9, pp.405-432, Springer-Verlag, 1999.
なお、第1実施形態では数え上げ符号方式を用いることから、平文Mのビット長を┗log2 nCk┛ビットとしたが、このようなビット長の平文Mに限定する趣旨ではない。あるビット長の平文をビット長┗log2 nCk┛ごとに分割し、分割された平文(分割平文)ごとに符号化を行うようにしてもよい。分割でビット長┗log2 nCk┛よりも短い分割平文ができた場合には、足りないビット長を0で埋めてビット長を┗log2 nCk┛に揃えればよい。このことは、パワーライン符号方式の場合でも同様である。 In the first embodiment, since the counting coding method is used, the bit length of the plaintext M is set to ┗ log 2 n C k ┛ bits. However, this is not intended to limit the plaintext M to such a bit length. A plaintext with a certain bit length may be divided into bit lengths ┗ log 2 n C k 、, and encoding may be performed for each divided plaintext (divided plaintext). If the split plaintext shorter than the bit length ┗ log 2 n C k で is created by the division, the insufficient bit length may be filled with 0 and the bit length may be aligned to ┗ log 2 n C k ┛ . The same applies to the case of the power line coding method.
〔ステップS23〕
次に、暗号化部(242)が、RAM(25)からビット列m、公開鍵b1,b2,・・・,bnを読み込み、c=Σi=1 nmibiなる演算を行って暗号文cを算出し、この算出した暗号文cをRAM(25)の所定の格納領域に格納する。
[Step S23]
Next, the encryption unit (242) is a bit string m from RAM (25), the public key b 1, b 2, · · ·, reads the b n, the c = Σ i = 1 n m i b i becomes operational Then, the ciphertext c is calculated, and the calculated ciphertext c is stored in a predetermined storage area of the RAM (25).
〔ステップS24〕
制御部(240)は、通信部(23)を制御して、RAM(25)に格納されている暗号文cを復号化装置に送信する。
[Step S24]
The control unit (240) controls the communication unit (23) to transmit the ciphertext c stored in the RAM (25) to the decryption device.
[復号化装置]
(ハードウェア構成並びにハードウェア資源とソフトウェアとの協働による情報処理の実現)
図7は、復号化装置(3)のハードウェア構成を例示した構成ブロック図である。図7に例示するように、復号化装置(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などの記憶媒体を読み書きできる装置(ドライブ)などを設けるとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
[Decryption device]
(Realization of information processing through cooperation between hardware configuration and hardware resources and software)
FIG. 7 is a block diagram illustrating the hardware configuration of the decoding device (3). As illustrated in FIG. 7, the decoding device (3) includes an input unit (31) to which an input unit such as a keyboard and a pointing device can be connected, an output unit (32) to which an output unit such as a liquid crystal display can be connected, Decryption device (3) A communication unit (33) to which a communication device (for example, a communication cable) that can communicate with the outside can be connected, and a CPU (Central Processing Unit) (34) [may include a cache memory or the like. ], A memory (RAM) 35, a ROM (36), a hard disk external storage device (37), an input unit (31), an output unit (32), a communication unit (33), a CPU (34), A bus (38) is provided to connect the RAM (35), ROM (36), and external storage device (37) so that data can be exchanged between them. If necessary, the decryption device (3) may be provided with a device (drive) that can read and write a storage medium such as a CD-ROM. A physical entity having such hardware resources includes a general-purpose computer.
復号化装置(3)の外部記憶装置(37)には、暗号文を復号化するためのプログラムおよびこのプログラムの処理において必要となるデータなどが保存記憶されている。また、プログラムの処理によって得られるデータなどは、RAM(35)や外部記憶装置(37)などに適宜に保存記憶される。 The external storage device (37) of the decryption device (3) stores and stores a program for decrypting the ciphertext, data necessary for processing of this program, and the like. Further, data obtained by the program processing is appropriately stored in the RAM (35), the external storage device (37), or the like.
より具体的に外部記憶装置(37)〔あるいはROMなど〕には、暗号文cおよび秘密鍵から暗号処理に用いる指数を求めるためのプログラム、秘密鍵および前記指数から冪乗剰余演算を行うためのプログラム、冪乗剰余演算結果から符号列を再生するためのプログラム、再生された符号列を平文に変換するためのプログラム、これらのプログラムに基づく処理を制御するための制御プログラムなどが保存記憶されている。
また、これらのプログラムの処理において必要となるデータとして、秘密鍵(N,k,g,d,p1,p2,・・・,pn)、暗号文cが予め外部記憶装置(37)に保存記憶されているとする。秘密鍵(N,k,g,d,p1,p2,・・・,pn)は、復号化装置(3)の通信部(33)によって、鍵生成装置(1)から受信して外部記憶装置(37)に保存記憶されたものである。また、暗号文cは、復号化装置(3)の通信部(33)によって、暗号化装置(2)から受信して外部記憶装置(37)に保存記憶されたものである。なお、これらのデータを格納した記録媒体からドライブを駆動して読み込むようにしてもよく、適宜に変更可能である。
More specifically, in the external storage device (37) [or ROM, etc.], a program for obtaining an exponent used for cryptographic processing from the ciphertext c and the secret key, and a power-residue calculation from the secret key and the exponent A program, a program for reproducing a code string from a power residue calculation result, a program for converting the reproduced code string into plain text, a control program for controlling processing based on these programs, and the like are stored and stored. Yes.
Further, as data necessary for the processing of these programs, a secret key (N, k, g, d, p 1 , p 2 ,..., P n ) and a ciphertext c are stored in advance in the external storage device (37). Is stored and stored in The secret key (N, k, g, d, p 1 , p 2 ,..., P n ) is received from the key generation device (1) by the communication unit (33) of the decryption device (3). It is stored and stored in the external storage device (37). The ciphertext c is received from the encryption device (2) and stored in the external storage device (37) by the communication unit (33) of the decryption device (3). It should be noted that the drive may be read from a recording medium storing these data, and can be changed as appropriate.
復号化装置(3)では、外部記憶装置(37)〔あるいはROMなど〕に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてRAM(35)に読み込まれて、適宜にCPU(34)で解釈実行・処理される。その結果、CPU(34)が所定の機能(指数算出部、冪乗剰余演算部、符号列再生部、復号化部、制御部)を実現する。 In the decryption device (3), each program stored in the external storage device (37) [or ROM, etc.] and data necessary for the processing of each program are read into the RAM (35) as necessary, and appropriately. The CPU (34) interprets and executes the processing. As a result, the CPU (34) realizes predetermined functions (an exponent calculation unit, a power residue calculation unit, a code string reproduction unit, a decoding unit, and a control unit).
(復号化処理)
次に、図8および図9を参照して、復号化装置(3)における復号化処理の流れを叙述的に説明する。
(Decryption process)
Next, with reference to FIG. 8 and FIG. 9, the flow of the decoding process in the decoding device (3) will be described descriptively.
まず、制御部(340)が、外部記憶装置(37)から、秘密鍵(N,k,g,d,p1,p2,・・・,pn)、暗号文cを読み込み、それぞれをRAM(35)の所定の格納領域に格納しておく。以後、「RAMから○○を読み込む」旨の説明をした場合は、「RAMにおいて○○が格納されている所定の格納領域から○○を読み込む」ことを意味するとする。 First, the control unit (340) reads the secret key (N, k, g, d, p 1 , p 2 ,..., P n ) and the ciphertext c from the external storage device (37). The data is stored in a predetermined storage area of the RAM (35). Hereinafter, when the description “reads XX from RAM” is used, it means “read XX from a predetermined storage area in which XX is stored in the RAM”.
〔ステップS32〕
次に、指数算出部(341)が、RAM(35)から暗号文c、秘密鍵kおよびdを読み込み、r=c−kdなる演算を行って指数rを算出し、この算出した指数rをRAM(35)の所定の格納領域に格納する。
なお、ここで指数rの算出方法は、鍵生成装置(1)における鍵生成処理のステップS17に対応しており、ナップザックbi(1≦i≦n)をbi=ai+dなる演算をして算出した場合には、r=c−kdなる演算を行って指数rを算出するが、例えばナップザックbi(1≦i≦n)をbi=ai+d mod φ(N)を演算して算出した場合には、r=c−kd mod φ(N)なる演算を行って指数rを算出することに留意しなければならない。
[Step S32]
Next, the exponent calculation unit (341) reads the ciphertext c and the secret keys k and d from the RAM (35), performs an operation of r = c−kd, calculates the index r, and calculates the calculated index r. The data is stored in a predetermined storage area of the RAM (35).
Here, the calculation method of the index r corresponds to step S17 of the key generation process in the key generation device (1), and the knapsack b i (1 ≦ i ≦ n) is calculated as b i = a i + d. In this case, the index r is calculated by calculating r = c−kd. For example, knapsack b i (1 ≦ i ≦ n) is calculated by b i = a i + d mod φ (N). Therefore, it should be noted that the index r is calculated by performing the operation r = c−kd mod φ (N).
〔ステップS33〕
次に、冪乗剰余演算部(342)が、RAM(35)から指数r、秘密鍵Nおよびgを読み込み、u=gr mod Nなる演算を行って冪乗剰余演算結果uを算出し、この算出した冪乗剰余演算結果uをRAM(35)の所定の格納領域に格納する。
[Step S33]
Next, the power residue calculation unit (342) reads the exponent r and the secret keys N and g from the RAM (35), calculates u = g r mod N, and calculates the power residue calculation result u. The calculated power residue calculation result u is stored in a predetermined storage area of the RAM (35).
〔ステップS34〕
次に、符号列再生部(343)が、RAM(35)から冪乗剰余演算結果u、秘密鍵p1,p2,・・・,pnを読み込み、各i(1≦i≦n)について、冪乗剰余演算結果uを秘密鍵piで除し、冪乗剰余演算結果uが秘密鍵piで割り切れる場合にはmi=1とし、冪乗剰余演算結果uが秘密鍵piで割り切れない場合にはmi=0として、符号列(ビット列)m=(m1,m2,・・・,mn)を求める。そして、符号列再生部(343)は、求めた符号列(ビット列)m=(m1,m2,・・・,mn)をRAM(35)の所定の格納領域に格納する。
[Step S34]
Next, the code string reproduction unit (343) reads the power residue calculation result u and the secret keys p 1 , p 2 ,..., Pn from the RAM (35), and each i (1 ≦ i ≦ n). Is divided by the secret key p i , and when the power residue calculation result u is divisible by the secret key p i , m i = 1, and the power residue calculation result u is the secret key p i. If it is not divisible by m i = 0, a code string (bit string) m = (m 1 , m 2 ,..., M n ) is obtained. Then, the code string reproduction unit (343) stores the obtained code string (bit string) m = (m 1 , m 2 ,..., M n ) in a predetermined storage area of the RAM (35).
ステップS32〜S34の処理について補足説明をする。
鍵生成処理のステップS17において、ナップザックbi(1≦i≦n)をbi=ai+dなる演算をして算出した場合に対応して、ステップS32において、r=c−kdなる演算を行って指数rを算出した場合で説明すると、r=c−kdなる演算は、次のような演算であることを意味する。即ち、r=Σi=1 nmibi−kd=Σi=1 nmi(ai+d)−kd=Σi=1 nmiai+d×Σi=1 nmi−kd=Σi=1 nmiai+kd−kd=Σi=1 nmiaiである(∵Σi=1 nmi=k)。
従って冪乗剰余演算は、u=gr mod N=g^(Σi=1 nmiai) mod N=g^(m1a1)×g^(m2a2)×・・・×g^(mnan) mod Nとなる〔但し、記号^は冪乗を表す。〕。ここで式(4)および秘密鍵集合{p1,p2,・・・,pn}のどの2つの元も互いに素であることに留意すれば、冪乗剰余演算結果uが秘密鍵piで割り切れる場合とは、冪乗剰余演算結果uがg^aiを素因子として有していることに他ならず、さらに、mi(1≦i≦n)∈{0,1}であることに留意すれば、mi=1であることが判明する。一方、冪乗剰余演算結果uが秘密鍵piで割り切れない場合とは、冪乗剰余演算結果uがg^aiを素因子として有していないことに他ならず、さらに、mi(1≦i≦n)∈{0,1}であることに留意すれば、mi=0であることが判明する。
A supplementary description will be given of the processing in steps S32 to S34.
Corresponding to the case where the knapsack b i (1 ≦ i ≦ n) is calculated by calculating b i = a i + d in step S17 of the key generation process, the operation r = c−kd is performed in step S32. If the index r is calculated by performing the calculation, the calculation r = c−kd means the following calculation. That is, r = Σ i = 1 n m i b i −kd = Σ i = 1 n m i (a i + d) −kd = Σ i = 1 n m i a i + d × Σ i = 1 n n m i − kd = Σ i = 1 n m i a i + kd−kd = Σ i = 1 n m i a i (∵Σ i = 1 n m i = k).
Therefore, the power-residue operation is as follows: u = g r mod N = g ^ (Σ i = 1 n mi a i ) mod N = g ^ (m 1 a 1 ) × g ^ (m 2 a 2 ) × * G ^ (m n a n ) mod N [where symbol ^ represents a power. ]. Here, it should be noted that any two elements of the equation (4) and the secret key set {p 1 , p 2 ,..., P n } are relatively prime. The case of being divisible by i is that the power-residue result u has g ^ a i as a prime factor, and m i (1 ≦ i ≦ n) ∈ {0, 1}. Note that there are m i = 1. On the other hand, the case where the power residue calculation result u is not divisible by the secret key p i is that the power residue calculation result u does not have g ^ a i as a prime factor, and mi ( Note that 1 ≦ i ≦ n) ε {0,1}, it turns out that m i = 0.
〔ステップS35〕
次に、復号化部(344)が、RAM(35)から符号列(ビット列)m=(m1,m2,・・・,mn)を読み込み、暗号化装置(2)における暗号化処理のステップS22と対応した逆変換を行い(参考文献2参照。)、平文Mを復元してこれをRAM(35)の所定の格納領域に格納する。
[Step S35]
Next, the decryption unit (344) reads the code string (bit string) m = (m 1 , m 2 ,..., M n ) from the RAM (35), and performs encryption processing in the encryption device (2). The inverse transformation corresponding to step S22 is performed (see Reference 2), and the plaintext M is restored and stored in a predetermined storage area of the RAM (35).
なお、分割平文の場合には、分割平文ごとに暗号化された各分割暗号文に対してステップS31〜S35の処理を行って、得られた分割平文を結合することで平文全体を得ることができる。 In the case of split plaintext, the entire plaintext can be obtained by performing the processes of steps S31 to S35 on each split ciphertext encrypted for each split plaintext and combining the obtained split plaintexts. it can.
[乗法型ナップザック暗号システムとその処理]
第1実施形態の乗法型ナップザック暗号システムは、種々のシステム構成が考えられ、ここでは代表的な2形態について説明する。
[Multiplicative knapsack cryptosystem and its processing]
The multiplicative knapsack cryptosystem of the first embodiment can have various system configurations. Here, two typical configurations will be described.
(システムその1)
乗法型ナップザック暗号システム(1000)は、上記鍵生成装置(1)、暗号化装置(2)、復号化装置(3)、公開鍵登録サーバ装置(4)で構成される。図10は、乗法型ナップザック暗号システム(1000)の構成例を示す図である。
(System 1)
The multiplicative knapsack encryption system (1000) is composed of the key generation device (1), the encryption device (2), the decryption device (3), and the public key registration server device (4). FIG. 10 is a diagram illustrating a configuration example of the multiplicative knapsack encryption system (1000).
鍵生成装置(1)、暗号化装置(2)、復号化装置(3)、公開鍵登録サーバ装置(4)は、それぞれインターネットやLAN(Local Area Network)などのネットワーク(5)に通信可能に接続される。なお、ネットワーク(5)には複数の暗号化装置(2)が接続されるとしてもよい。 The key generation device (1), the encryption device (2), the decryption device (3), and the public key registration server device (4) can communicate with a network (5) such as the Internet or a LAN (Local Area Network). Connected. A plurality of encryption devices (2) may be connected to the network (5).
鍵生成装置(1)によって生成された公開鍵(n,k,b1,b2,・・・,bn)は、いずれも乗法型ナップザック暗号システム(1000)において公開される。乗法型ナップザック暗号システム(1000)において公開される公開鍵は、鍵生成装置(1)の外部記憶装置(17)に保存記憶されるとし、ネットワーク(5)を経由して暗号化装置(2)などからアクセスされることによって配布されるものとしてもよい。しかし、鍵生成装置(1)では、秘密鍵(N,g,k,d,p1,p2,・・・,pn)も生成されるため、不正アクセスによる秘密鍵などの漏洩に対処するため、公開鍵登録サーバ装置(4)の外部記憶装置に、乗法型ナップザック暗号システム(1000)において公開される公開鍵を保存しておくのがよい。つまり乗法型ナップザック暗号システム(1000)では、公開鍵登録サーバ装置(4)が暗号化装置(2)からのアクセスを受けることで、公開鍵の提供がなされる。
The public keys (n, k, b 1 , b 2 ,..., B n ) generated by the key generation device (1) are all disclosed in the multiplicative knapsack encryption system (1000). The public key disclosed in the multiplicative knapsack encryption system (1000) is stored and stored in the external storage device (17) of the key generation device (1), and the encryption device (2) is transmitted via the network (5). It is good also as what is distributed by accessing from. However, since the key generation device (1), a private key (N, g, k, d ,
鍵生成装置(1)において生成された秘密鍵は、その秘匿性が高度に要求される。従って、少なくとも秘密鍵を送信する通信路は安全性が保証されたものであることが望ましい。もし、ネットワーク(5)が通信傍受の可能性のあるものである場合には、これを経由して復号化装置(3)に秘密鍵が送信されるのではなく、別途記憶媒体に記憶して、この記憶媒体を郵送などの手段で復号化装置(3)の下に送り、この記憶媒体から復号化装置(3)の外部記憶装置(37)に記憶させるとしてもよい。 The secret key generated in the key generation device (1) is highly required to be confidential. Therefore, it is desirable that at least the communication channel for transmitting the secret key is guaranteed to be secure. If the network (5) has a possibility of intercepting communication, the private key is not sent to the decryption device (3) via this, but is stored separately in a storage medium. The storage medium may be sent to the decryption device (3) by mail or the like and stored in the external storage device (37) of the decryption device (3) from the storage medium.
1つあるいは複数の暗号化装置(2)は、公開鍵登録サーバ装置(4)にアクセスして公開鍵を入手し、平文Mから暗号文cを生成する。暗号化装置(2)は生成した暗号文cを、ネットワーク(5)を介して復号化装置(3)に送信する。 One or a plurality of encryption devices (2) access the public key registration server device (4) to obtain a public key, and generate a ciphertext c from the plaintext M. The encryption device (2) transmits the generated ciphertext c to the decryption device (3) via the network (5).
復号化装置(3)は、秘密鍵を用いて、ネットワーク(5)経由で受信した、暗号化装置(2)で生成された暗号文cの復号化を行う。 The decryption device (3) decrypts the ciphertext c generated by the encryption device (2) received via the network (5) using the secret key.
図11は、乗法型ナップザック暗号システム(1000)における乗法型ナップザック暗号復号方法の処理フローを示す図である。
まず、鍵生成装置(1)が公開鍵および秘密鍵を生成する(ステップS100)。ステップS100の具体的な処理は、上記ステップS12〜S17を参照のこと。次に、鍵生成装置(1)の通信部(13)が、公開鍵登録サーバ装置(4)に公開鍵を送信する(ステップS101)。そして公開鍵登録サーバ装置(4)の通信部(図示しない。)が、鍵生成装置(1)から公開鍵を受信する(ステップS102)。また、鍵生成装置(1)の通信部(13)が、復号化装置(3)に秘密鍵を送信する(ステップS103)。そして復号化装置(3)の通信部(33)が、鍵生成装置(1)から秘密鍵を受信する(ステップS104)。暗号化装置(2)は、暗号化装置(2)の通信部(23)によって公開鍵登録サーバ装置(4)にアクセスし、公開鍵を取得する(ステップS105)。次いで、暗号化装置(2)は、平文Mおよび公開鍵を用いて暗号文cを生成する(ステップS106)。ステップS106の具体的な処理は、上記ステップS22、S23を参照のこと。そして、暗号化装置(2)の通信部(23)は、復号化装置(3)に暗号文cを送信する(ステップS107)。復号化装置(3)の通信部(33)は、暗号化装置(2)から暗号文cを受信する(ステップS108)。復号化装置(3)は、秘密鍵を用いて暗号文cから平文Mを得る(ステップS109)。ステップS109の具体的な処理は、上記ステップS32〜S35を参照のこと。
なお、乗法型ナップザック暗号システム(1000)が公開鍵登録サーバ装置(4)を備えない場合は、ステップS101、S102は不要となり、ステップS105の処理は、暗号化装置(2)が、暗号化装置(2)の通信部(23)によって鍵生成装置(1)にアクセスし、公開鍵を取得するものとなる。
FIG. 11 is a diagram showing a processing flow of the multiplicative knapsack encryption / decryption method in the multiplicative knapsack encryption system (1000).
First, the key generation device (1) generates a public key and a secret key (step S100). For the specific processing of step S100, see steps S12 to S17 above. Next, the communication unit (13) of the key generation device (1) transmits the public key to the public key registration server device (4) (step S101). Then, the communication unit (not shown) of the public key registration server device (4) receives the public key from the key generation device (1) (step S102). Further, the communication unit (13) of the key generation device (1) transmits the secret key to the decryption device (3) (step S103). Then, the communication unit (33) of the decryption device (3) receives the secret key from the key generation device (1) (step S104). The encryption device (2) accesses the public key registration server device (4) through the communication unit (23) of the encryption device (2), and acquires the public key (step S105). Next, the encryption device (2) generates a ciphertext c using the plaintext M and the public key (step S106). For the specific processing in step S106, see steps S22 and S23 above. Then, the communication unit (23) of the encryption device (2) transmits the ciphertext c to the decryption device (3) (step S107). The communication unit (33) of the decryption device (3) receives the ciphertext c from the encryption device (2) (step S108). The decryption device (3) obtains the plaintext M from the ciphertext c using the secret key (step S109). For the specific processing of step S109, see steps S32 to S35 above.
When the multiplicative knapsack encryption system (1000) does not include the public key registration server device (4), steps S101 and S102 are not necessary, and the processing of step S105 is performed by the encryption device (2). The key generation device (1) is accessed by the communication unit (23) of (2), and the public key is acquired.
(システムその2)
乗法型ナップザック暗号システム(1001)は、上記暗号化装置(2)、鍵生成装置を兼ねる復号化装置(3’)で構成される。図12は、乗法型ナップザック暗号システム(1001)の構成例を示す図である。
(System 2)
A multiplicative knapsack encryption system (1001) is composed of the encryption device (2) and a decryption device (3 ′) that also serves as a key generation device. FIG. 12 is a diagram illustrating a configuration example of the multiplicative knapsack encryption system (1001).
暗号化装置(2)、鍵生成装置兼復号化装置(3’)は、それぞれインターネットやLAN(Local Area Network)などのネットワーク(5)に通信可能に接続される。なお、ネットワーク(5)には複数の暗号化装置(2)が接続されるとしてもよい。 The encryption device (2) and the key generation / decryption device (3 ') are communicably connected to a network (5) such as the Internet or a LAN (Local Area Network). A plurality of encryption devices (2) may be connected to the network (5).
鍵生成装置兼復号化装置(3’)によって生成された公開鍵(n,k,b1,b2,・・・,bn)および秘密鍵(N,g,k,d,p1,p2,・・・,pn)は、鍵生成装置兼復号化装置(3’)の外部記憶装置(37’)に保存記憶されるとし、例えば鍵生成装置兼復号化装置(3’)と暗号化装置(2)とのネットワーク(5)を介したpeer to peerな通信によって、鍵生成装置兼復号化装置(3’)が公開鍵を暗号化装置(2)に送信する。 The public key (n, k, b 1 , b 2 ,..., B n ) and the secret key (N, g, k, d, p 1 ) generated by the key generator / decryptor (3 ′) p 2 ,..., p n ) are stored and stored in the external storage device (37 ′) of the key generation / decryption device (3 ′), for example, the key generation / decryption device (3 ′). And the encryption device (2) through peer-to-peer communication via the network (5), the key generation device / decryption device (3 ′) transmits the public key to the encryption device (2).
1つあるいは複数の暗号化装置(2)は、鍵生成装置兼復号化装置(3’)から受信した公開鍵を用いて平文Mから暗号文cを生成する。暗号化装置(2)は生成した暗号文cを、ネットワーク(5)を介して鍵生成装置兼復号化装置(3’)に送信する。 One or a plurality of encryption devices (2) generate a ciphertext c from the plaintext M using the public key received from the key generation device / decryption device (3 '). The encryption device (2) transmits the generated ciphertext c to the key generation device / decryption device (3 ') via the network (5).
鍵生成装置兼復号化装置(3’)は、秘密鍵を用いて、ネットワーク(5)経由で受信した、暗号化装置(2)で生成された暗号文cの復号化を行う。 The key generation device / decryption device (3 ') uses the secret key to decrypt the ciphertext c received by the encryption device (2) received via the network (5).
ところで、鍵生成装置兼復号化装置(3’)は、一般的に物理的実体という視点からは1つの筐体として存在する。しかし、このことは、鍵生成装置兼復号化装置(3’)が、鍵生成装置(1)や復号化装置(3)とは全く異なる装置であることを意味しない。例えば1つの汎用コンピュータが、処理するプログラムによって鍵生成装置(1)としても復号化装置(3)としても機能し、さらに、両者のプログラムを有することで、1つの汎用コンピュータが鍵生成装置(1)および復号化装置(3)としての役割を演じることを考慮すれば、1つの汎用コンピュータが機能的側面において二面性(多面性)を有していると考えることができる。この「機能」に対応して「装置」を定義すれば、物理的実体として1個の汎用コンピュータが、鍵生成装置(1)且つ復号化装置(3)であると云える。換言して言えば、1個の汎用コンピュータで実現される鍵生成装置兼復号化装置(3’)は、鍵生成装置(1)且つ復号化装置(3)であり、あたかも鍵生成装置(1)および復号化装置(3)という2つの物理的実体が存在することと同視できる。従って、システムその2で述べたシステム構成は、(秘密鍵の送信が不要という異なる点があるものの)システムその1のシステム構成と実質的に異なるものではないことに留意しなければならない。 By the way, the key generation device / decryption device (3 ') generally exists as one casing from the viewpoint of a physical entity. However, this does not mean that the key generation device / decryption device (3 ') is completely different from the key generation device (1) and the decryption device (3). For example, one general-purpose computer functions as both the key generation device (1) and the decryption device (3) depending on the program to be processed, and further, by having both programs, one general-purpose computer can operate the key generation device (1 ) And playing the role as the decoding device (3), it can be considered that one general-purpose computer has two-sidedness (multi-facetedness) in terms of functional aspects. If “device” is defined corresponding to this “function”, it can be said that one general-purpose computer as a physical entity is the key generation device (1) and the decryption device (3). In other words, the key generation device / decryption device (3 ′) realized by one general-purpose computer is the key generation device (1) and the decryption device (3), as if the key generation device (1 ) And the decryption device (3) can be regarded as having two physical entities. Therefore, it should be noted that the system configuration described in System No. 2 is not substantially different from the system configuration of System No. 1 (although there is a difference that transmission of a secret key is not necessary).
図13は、乗法型ナップザック暗号システム(1001)における乗法型ナップザック暗号復号方法の処理フローを示す図である。
まず、鍵生成装置兼復号化装置(3’)が公開鍵および秘密鍵を生成する(ステップS200)。ステップS200の具体的な処理は、上記ステップS12〜S17を参照のこと。次に、鍵生成装置兼復号化装置(3’)の通信部が、暗号化装置(2)に公開鍵を送信する(ステップS201)。暗号化装置(2)は、鍵生成装置兼復号化装置(3’)から公開鍵を受信する(ステップS202)。次いで、暗号化装置(2)は、平文Mおよび公開鍵を用いて暗号文cを生成する(ステップS203)。ステップS203の具体的な処理は、上記ステップS22、S23を参照のこと。そして、暗号化装置(2)の通信部(23)は、鍵生成装置兼復号化装置(3’)に暗号文cを送信する(ステップS204)。鍵生成装置兼復号化装置(3’)の通信部は、暗号化装置(2)から暗号文cを受信する(ステップS205)。鍵生成装置兼復号化装置(3’)は、秘密鍵を用いて暗号文cから平文Mを得る(ステップS206)。ステップS206の具体的な処理は、上記ステップS32〜S35を参照のこと。
FIG. 13 is a diagram showing a processing flow of the multiplicative knapsack encryption / decryption method in the multiplicative knapsack encryption system (1001).
First, the key generation device / decryption device (3 ′) generates a public key and a secret key (step S200). For the specific processing of step S200, see steps S12 to S17 above. Next, the communication unit of the key generation device / decryption device (3 ′) transmits the public key to the encryption device (2) (step S201). The encryption device (2) receives the public key from the key generation device / decryption device (3 ′) (step S202). Next, the encryption device (2) generates a ciphertext c using the plaintext M and the public key (step S203). For the specific processing in step S203, see steps S22 and S23 above. Then, the communication unit (23) of the encryption device (2) transmits the ciphertext c to the key generation device / decryption device (3 ′) (step S204). The communication unit of the key generation device / decryption device (3 ′) receives the ciphertext c from the encryption device (2) (step S205). The key generation device / decryption device (3 ′) obtains the plaintext M from the ciphertext c using the secret key (step S206). For the specific processing in step S206, see steps S32 to S35 above.
《第2実施形態》
本発明の第2実施形態を、図面を参照して説明する。なお、第1実施形態に対応するハードウェア構成要素などについては、同一参照符号を付けるなどして重複説明を省略する。
<< Second Embodiment >>
A second embodiment of the present invention will be described with reference to the drawings. In addition, about the hardware component etc. corresponding to 1st Embodiment, the duplicate description is abbreviate | omitted by attaching | subjecting the same referential mark.
第1実施形態では、各処理に係わる集合が有理整数環であったが、第2実施形態における各処理に係わる集合は、代数体の整数環である。このことに伴い、第1実施形態との対比を容易にするためできるだけ同じ記号(例えばg、pi、ai、biなど)を用いて説明するが、これらの記号が第1実施形態で用いたときの意味と同一であるわけではないことに留意しなければならない(第2実施形態における各処理に係わる集合が代数体の整数環であることを無視してはならない。)。
以下では、Kを代数体、ZKをその整数環とする。また、「整数」とはZKの要素を表し、「有理整数」は、有理整数集合Zの要素を表す。
In the first embodiment, the set related to each process is a rational integer ring, but the set related to each process in the second embodiment is an integer ring of an algebraic field. Accordingly, in order to facilitate comparison with the first embodiment, the same symbols (for example, g, p i , a i , b i, etc.) will be used as much as possible. It should be noted that the meaning is not the same as when used (do not ignore that the set related to each processing in the second embodiment is an algebraic integer ring).
In the following, algebraic and K, and the ring of integers of Z K. Also, it represents an element of Z K is the "integer", "rational integer" represents an element of rational integers set Z.
[鍵生成装置]
(ハードウェア構成並びにハードウェア資源とソフトウェアとの協働による情報処理の実現)
第2実施形態に係わる鍵生成装置(1s)のハードウェア構成・資源は、第1実施形態の鍵生成装置(1)と同様である(図1参照。)。
[Key generator]
(Realization of information processing through cooperation between hardware configuration and hardware resources and software)
The hardware configuration and resources of the key generation device (1s) according to the second embodiment are the same as those of the key generation device (1) of the first embodiment (see FIG. 1).
鍵生成装置(1s)の外部記憶装置(17)には、後述する鍵(公開鍵、秘密鍵)を生成するためのプログラムおよびこのプログラムの処理において必要となるデータなどが保存記憶されている。また、プログラムの処理によって得られるデータなどは、RAM(15)や外部記憶装置(17)などに適宜に保存記憶される。 The external storage device (17) of the key generation device (1s) stores and stores a program for generating a key (public key, secret key) to be described later, data necessary for processing of the program, and the like. Further, data obtained by the program processing is appropriately stored in the RAM (15), the external storage device (17), or the like.
より具体的に鍵生成装置(1s)の外部記憶装置(17)〔あるいはROMなど〕には、既約剰余類群の生成元となる整数gを求めるためのプログラム、ナップザック問題を解くために用いられる秘密鍵となる元の集合(以下、「秘密鍵集合」とも云う。)を生成するためのプログラム、イデアルνを法とし整数gを底として秘密鍵となる各元の指数(以下、「ナップザック生成因子」と云う。)を与えるためのプログラム、乱数を生成するためのプログラム、ナップザックを生成するためのプログラム、これらのプログラムに基づく処理の制御や代数体の設定などをするための制御プログラムなどが保存記憶されている。
また、これらのプログラムの処理において必要となるデータとして、正の有理整数n、kおよびf(但し、n>kとする。)が予め鍵生成装置(1s)の外部記憶装置(17)に保存記憶されているとする。なお、これらのデータは、予め鍵生成装置(1s)の外部記憶装置(17)に保存記憶しておくのではなく、例えば、鍵生成装置(1s)の入力部(11)から入力されるとしてもよいし、あるいは、これらのデータを格納した記録媒体からドライブを駆動して読み込むようにしてもよく、適宜に変更可能である。
More specifically, the external storage device (17) [or ROM, etc.] of the key generation device (1s) is used to solve the knapsack problem, a program for obtaining the integer g that is the generation source of the irreducible residue class group. A program for generating an original set of secret keys (hereinafter also referred to as a “secret key set”), an exponent of each element that becomes a secret key with the integer ν as the base and an ideal ν (hereinafter referred to as “knapsack generation”) A program for generating a random number, a program for generating a random number, a program for generating a knapsack, a control program for controlling processing based on these programs, setting an algebraic field, etc. Stored and stored.
Further, as data necessary for processing of these programs, positive rational integers n, k, and f (where n> k) are stored in advance in the external storage device (17) of the key generation device (1s). Suppose that it is remembered. Note that these data are not stored in advance in the external storage device (17) of the key generation device (1s), but are input from the input unit (11) of the key generation device (1s), for example. Alternatively, the drive may be read from a recording medium storing these data, and can be changed as appropriate.
鍵生成装置(1s)では、外部記憶装置(17)〔あるいはROMなど〕に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてRAM(15)に読み込まれて、適宜にCPU(14)で解釈実行・処理される。その結果、CPU(14)が所定の機能(生成元算出部、秘密鍵集合算出部、ナップザック生成因子算出部、乱数生成部、ナップザック生成部、制御部)を実現する。 In the key generation device (1s), each program stored in the external storage device (17) [or ROM, etc.] and data necessary for the processing of each program are read into the RAM (15) as necessary, and appropriately. The CPU (14) interprets and executes them. As a result, the CPU (14) realizes predetermined functions (generator calculation unit, secret key set calculation unit, knapsack generation factor calculation unit, random number generation unit, knapsack generation unit, control unit).
(鍵生成処理)
次に、図14および図15を参照して、鍵生成装置(1s)における鍵生成処理の流れを叙述的に説明する。
(Key generation process)
Next, with reference to FIG. 14 and FIG. 15, the flow of the key generation processing in the key generation device (1s) will be described descriptively.
まず、制御部(140s)が、外部記憶装置(17)から、正の有理整数n、k、fを読み込み、それぞれをRAM(15)の所定の格納領域に格納しておく。以後、「RAMから○○を読み込む」旨の説明をした場合は、「RAMにおいて○○が格納されている所定の格納領域から○○を読み込む」ことを意味するとする。 First, the control unit (140s) reads positive rational integers n, k, and f from the external storage device (17), and stores them in a predetermined storage area of the RAM (15). Hereinafter, when the description “reads XX from RAM” is used, it means “read XX from a predetermined storage area in which XX is stored in the RAM”.
〔ステップS12s〕
次に、制御部(140s)が、RAM(15)から正の有理整数fを読み込み、f次代数体として代数体Kを、さらに、式(7)で表される代数体Kの整数環ZKのイデアルνを設定する。そして制御部(140s)は、代数体Kおよびイデアルνの設定に必要な情報(例えばf次有理係数多項式などである。)をRAM(15)の所定の格納領域に格納する。なお、式(7)のτj(1≦j≦s)はどの2つのノルムも互いに素な素イデアルである。また、制御部(140s)は、剰余環ZK/νの完全代表系を1つ固定し、その集合をR(ν)として設定して、R(ν)をRAM(15)の所定の格納領域に格納する。
Next, the control unit (140s) reads the positive rational integer f from the RAM (15), sets the algebraic field K as the f-order algebraic field, and further the integer ring Z of the algebraic field K expressed by the equation (7). Set K 's ideal ν. Then, the control unit (140s) stores information necessary for setting the algebraic field K and the ideal ν (for example, f-th order rational coefficient polynomial) in a predetermined storage area of the RAM (15). Note that τ j (1 ≦ j ≦ s) in the equation (7) is a prime ideal in which any two norms are disjoint. The control unit (140s) fixes one complete representative system of the remainder ring Z K / ν, sets the set as R (ν), and stores R (ν) in the RAM (15) as a predetermined storage. Store in the area.
なお、代数体やイデアルの設定に必要な情報などについて簡単な説明を加えておく。
f次代数体は、モニック(monic)な有理整数係数f次既約多項式F(x)=xf+cf−1xf−1+・・・+c1x+c0〔cは有理整数係数〕として設定される。f次代数体の元は、次数がf次未満の有理数係数多項式として表される。また、整数環やイデアルは、有理整数環上の基底ω1、ω2、・・・、ωf〔ωはf次未満の有理数係数多項式〕によって表される(整数環やイデアルは、Zω1+Zω2+・・・+Zωfと表すことができるため。但し、Zは有理整数集合。)。
A brief description of the information necessary for setting the algebraic field and ideal is added.
The f-order algebraic field is a monic rational integer coefficient f-th irreducible polynomial F (x) = x f + c f−1 x f−1 +... + c 1 x + c 0 [c is a rational integer coefficient] Is set. The element of the f-order algebraic field is expressed as a rational coefficient polynomial whose degree is less than f-order. An integer ring or an ideal is represented by a basis ω 1 , ω 2 ,..., Ω f on a rational integer ring (where ω is a rational coefficient polynomial of less than f order) (an integer ring or an ideal is Zω 1 + Zω 2 +... + Zω f , where Z is a rational integer set.
第2実施形態では代数体Kを設定するとしたが、必ず代数体Kを設定しなければならないということではない。予め、鍵生成装置(1s)および後述の復号化装置(3s)において、代数体Kにおいて演算を行うことを規約しておけば(つまり、予め両装置の外部記憶装置に代数体Kの設定に必要な情報を保存記憶しておけばよい。)、代数体Kを設定する必要がなく、また、代数体Kの設定に必要な情報を公開鍵にする必要がなくなる。 Although the algebraic field K is set in the second embodiment, it does not necessarily mean that the algebraic field K must be set. If the key generation device (1s) and the decryption device (3s), which will be described later, are preliminarily designated to perform operations on the algebraic field K (that is, the algebraic field K is set in the external storage devices of both devices in advance). It is only necessary to store and store necessary information.), It is not necessary to set the algebraic field K, and it is not necessary to use information necessary for setting the algebraic field K as a public key.
〔ステップS13s〕
次に、生成元算出部(142s)が、全てのj(1≦j≦s)について既約剰余類群(ZK/τj)×の生成元となる(イデアルνを法とする)整数gを算出して、この算出した整数gをRAM(15)の所定の格納領域に格納する。
この整数gの算出は、公知の方法によって可能であり、例えば次のような方法による。即ち、まず、既約剰余類群(ZK/τ1)×の生成元となる整数g1、既約剰余類群(ZK/τ2)×の生成元となる整数g2、…、既約剰余類群(ZK/τs)×の生成元となる整数gsをそれぞれの既約剰余類群ごとに総当りで求め、これらの整数g1、g2、…、gsに対して中国人剰余定理を適用して整数gを求めればよい。詳細は第1実施形態で述べたとおりであるが、第2実施形態では法がイデアルνであることに留意しなければならない。
ここで、代数体のイデアルνを法とする合同式a≡b(mod ν)は、(a−b)∈νを意味する。
[Step S13s]
Next, the generator calculation unit (142s) is the generator of the irreducible remainder class group (Z K / τ j ) × for all j (1 ≦ j ≦ s) (modulo the ideal ν). And the calculated integer g is stored in a predetermined storage area of the RAM (15).
The integer g can be calculated by a known method, for example, by the following method. That is, first, an integer g 1 that is a generator of the irreducible residue class group (Z K / τ 1 ) × , an integer g 2 that is a generator of the irreducible residue class group (Z K / τ 2 ) × , irreducible coset group (Z K / τ s) determined by brute × of origin as made integral g s a for each irreducible coset group, these integers g 1, g 2, Chinese ... for g s The integer g may be obtained by applying the remainder theorem. Although details are as described in the first embodiment, it should be noted that in the second embodiment, the modulo is ideal ν.
Here, the congruence a≡b (mod ν) modulo the ideal ν of the algebraic field means (ab) ∈ν.
〔ステップS14s〕
次に、秘密鍵集合算出部(143s)が、RAM(15)から正の有理整数nおよびkを読み込み、以下の条件を満たす、各ノルムが互いに素である元の集合{p1,p2,・・・,pn}⊂ZKを生成して、この集合{p1,p2,・・・,pn}⊂ZKをRAM(15)の所定の格納領域に格納する。この集合{p1,p2,・・・,pn}⊂ZKが秘密鍵集合である。
・条件(c):各整数pi(1≦i≦n)のノルムはイデアルνのノルムと互いに素である。
・条件(d):集合{p1,p2,・・・,pn}の部分集合であり、要素数がkである任意の部分集合{ph1,ph2,…,phk}が、式(8)を満たす。
Next, the secret key set calculation unit (143s) reads the positive rational integers n and k from the RAM (15), and satisfies the following conditions. The original sets {p 1 , p 2 , each norm being relatively prime ,..., P n } ⊂Z K is generated, and this set {p 1 , p 2 ,..., P n } ⊂Z K is stored in a predetermined storage area of the RAM (15). This set {p 1 , p 2 ,..., P n } ⊂Z K is a secret key set.
Condition (c): The norm of each integer p i (1 ≦ i ≦ n) is relatively prime with the norm of the ideal ν.
Condition (d): the set {p 1, p 2, ··· , p n} is a subset of, any subset number of elements is k {p h1, p h2, ..., p hk} is The expression (8) is satisfied.
条件(c)は、整数piがR(ν)の元となることの条件である。
また、条件(d)は、復号化処理において復号の一意性を保証するための条件である。但し、式(8)は、暗号化処理において平文Mを数え上げ符号方式でビット列に変換する場合に対応したものであり、例えば平文Mをパワーライン符号方式で自然数列に変換する場合には当該方式に適応した条件式になることに留意しなければならない。
The condition (c) is a condition that the integer p i is an element of R (ν).
The condition (d) is a condition for guaranteeing the uniqueness of decoding in the decoding process. However, Expression (8) corresponds to the case where plain text M is counted and converted into a bit string by the encoding method in the encryption process. It should be noted that the conditional expression is adapted to.
集合{p1,p2,・・・,pn}⊂ZKの生成は、公知の方法によって可能であり、例えば次のような方法による。素イデアルτj(1≦j≦s)のノルムが素数qjの冪〔但し、第1実施形態の合成数Nを構成する素数冪qjと必ずしも同じではない。〕で表されるときN1=Πj=1 sqjとすると、N1と互いに素であり、1以上N1未満の整数で、次の条件(e)を満たす、どの2元も互いに素な整数p1,p2,・・・,pnを選べばよい(0以上N1未満の有理整数は、ZK/νの完全代表系に含めることができる。)。
・条件(e):集合{p1,p2,・・・,pn}の部分集合であり、要素数がkである任意の部分集合{ph1,ph2,…,phk}が、式(9)を満たす。
Condition (e): A subset {p 1 , p 2 ,..., P n }, and an arbitrary subset {p h1 , p h2 ,..., P hk } having k elements. The expression (9) is satisfied.
〔ステップS15s〕
次に、ナップザック生成因子算出部(144s)が、RAM(15)から整数g、秘密鍵集合{p1,p2,・・・,pn}を読み込み、式(10)を満たす有理整数ai(1≦i≦n)を算出し、この算出した有理整数ai(1≦i≦n)をRAM(15)の所定の格納領域に格納する。この有理整数ai(1≦i≦n)がナップザック生成因子である。
Next, the knapsack generation factor calculation unit (144s) reads the integer g and the secret key set {p 1 , p 2 ,..., P n } from the RAM (15) and satisfies the expression (10). i (1 ≦ i ≦ n) is calculated, and the calculated rational integer a i (1 ≦ i ≦ n) is stored in a predetermined storage area of the RAM (15). This rational integer a i (1 ≦ i ≦ n) is a knapsack generating factor.
式(10)はいわゆる離散対数問題であり、一般的には有理整数aiを求めることは困難とされる。
しかし、τjのノルムが或る程度小さい(現在の技術水準では上限400ビット程度であるが、例えば64ビット〜256ビット程度でよい。)素イデアルのノルムの冪となるようにイデアルνを選択することによって、容易に有理整数aiを求めることが可能である。例えば、各i(1≦i≦n)について、以下の処理を行えばよい。
Equation (10) is a so-called discrete logarithm problem, and it is generally difficult to find the rational integer a i .
However, the ideal ν j is selected so that the norm of τ j is small to some extent (the upper limit is about 400 bits in the current state of the art, but it may be, for example, about 64 to 256 bits). By doing so, it is possible to easily find the rational integer a i . For example, the following processing may be performed for each i (1 ≦ i ≦ n).
〔ステップS15s−1〕
各j(1≦j≦s)について、式(11)を満たす有理整数ai,jを計算する。素イデアルτjのノルムが短いビット長の素数冪であれば、ai,jを求めるためには、数体ふるい法やPollardのρと呼ばれる方式(モンテカルロ法)を用いることによって、容易に計算することが可能である。
For each j (1 ≦ j ≦ s), a rational integer a i, j that satisfies equation (11) is calculated. If the norm of the prime ideal τ j is a short bit-length prime number 冪, ai, j can be easily calculated by using a number field sieving method or a method called Pollard's rho (Monte Carlo method). Is possible.
〔ステップS15s−2〕
全てのj(1≦j≦s)について、式(12)を満たす有理整数aiを計算する。なお、N(τj)はτjのノルムを表す。
For all j (1 ≦ j ≦ s), the rational integer a i satisfying the equation (12) is calculated. N (τ j ) represents the norm of τ j .
〔ステップS16s〕
次に、乱数生成部(145s)が、有理整数である乱数dを生成して、この生成した乱数dをRAM(15)の所定の格納領域に格納する。
[Step S16s]
Next, the random number generation unit (145s) generates a random number d which is a rational integer, and stores the generated random number d in a predetermined storage area of the RAM (15).
〔ステップS17s〕
次に、ナップザック生成部(146s)が、RAM(15)から乱数d、有理整数ai(1≦i≦n)を読み込み、各i(1≦i≦n)について、有理整数aiに乱数dを加算して有理整数bi〔1≦i≦n〕を算出し、この算出されたbiをRAM(15)の所定の格納領域に格納する。このbi(1≦i≦n)がナップザックである。
ここで、「有理整数aiに乱数dを加算して有理整数bi〔1≦i≦n〕を算出」する具体的な方法としては、例えば、bi=ai+dを演算して行う。なお、ナップザックであるbi(1≦i≦n)の算出方法は、bi=ai+dなる演算に限定されるものではない。要はナップザックとして利用可能なn個の元の集合を生成できればよく、例えば次のような方法でナップザックを生成してもよい。即ち、ナップザック生成部(146s)が、RAM(15)から乱数d、有理整数ai(1≦i≦n)を読み込み、各i(1≦i≦n)について、bi=ai+d mod Πj=1 s(N(τj)−1)を演算してbiを算出し、この算出されたbiをRAM(15)の所定の格納領域に格納する。
[Step S17s]
Next, the knapsack generation unit (146s) reads the random number d and the rational integer a i (1 ≦ i ≦ n) from the RAM (15), and for each i (1 ≦ i ≦ n), the random number a i is a random number. The rational integer b i [1 ≦ i ≦ n] is calculated by adding d, and the calculated b i is stored in a predetermined storage area of the RAM (15). This b i (1 ≦ i ≦ n) is a knapsack.
Here, as a specific method of “calculating the rational integer b i [1 ≦ i ≦ n] by adding the random number d to the rational integer a i ”, for example, b i = a i + d is performed. . The calculation method of b i (1 ≦ i ≦ n), which is a knapsack, is not limited to the calculation b i = a i + d. In short, it is only necessary to generate n original sets that can be used as a knapsack. For example, a knapsack may be generated by the following method. That is, the knapsack generation unit (146s) reads the random number d and the rational integer a i (1 ≦ i ≦ n) from the RAM (15), and for each i (1 ≦ i ≦ n), b i = a i + d mod J j = 1 s (N (τ j ) −1) is calculated to calculate b i, and the calculated b i is stored in a predetermined storage area of the RAM (15).
〔ステップS18s〕
以上の処理を経てRAM(15)に格納されている正の有理整数k、整数g、乱数d、秘密鍵集合{p1,p2,・・・,pn}、代数体Kおよびイデアルνを設定するための情報が秘密鍵となり、ナップザックbi(1≦i≦n)、正の有理整数nおよびkが公開鍵となる。なお、公開鍵のうちnについてはナップザックbi(1≦i≦n)の個数から得られるから、nを公開鍵に含めることは必須ではない。本明細書では、説明の便宜上、このnを含めて公開鍵とする。また、秘密鍵のうち代数体Kを設定するための情報については、既述のとおり、代数体Kを設定するための情報を予め復号化装置に保存記憶しておく場合には、秘密鍵に含めることは必須ではない。本明細書では、説明の便宜上、代数体Kを設定するための情報を含めて秘密鍵とする。以下、代数体Kおよびイデアルνを設定するための情報を単に記号K、νで表す。
制御部(140s)は、通信部(13)を制御して、公開鍵(n,k,b1,b2,・・・,bn)を暗号化装置に送信し、秘密鍵(K,ν,g,k,d,p1,p2,・・・,pn)を復号化装置に送信する。なお、少なくとも秘密鍵を送信する通信路は安全性が保証されたものであることが望ましい。なお、鍵生成装置(1s)が復号化装置を兼ねる場合には、秘密鍵を送信する必要がない。また、公開鍵を暗号化装置に送信するのではなく、例えば公開鍵登録サーバ装置などに送信して、公開鍵登録サーバ装置がこれにアクセスした暗号化装置に公開鍵を送信する構成としてもよい。結局のところ、秘密鍵が安全に復号化装置に供給されること、公開鍵が暗号化装置に供給されること、の2点を満たせば、その供給方法に限定はない。
[Step S18s]
Through the above processing, the positive rational integer k, integer g, random number d, secret key set {p 1 , p 2 ,..., P n }, algebraic field K and ideal ν stored in the RAM (15). Is a secret key, and knapsack b i (1 ≦ i ≦ n) and positive rational integers n and k are public keys. Since n of the public keys is obtained from the number of knapsacks b i (1 ≦ i ≦ n), it is not essential to include n in the public key. In this specification, for convenience of explanation, this n is used as a public key. In addition, as described above, the information for setting the algebraic field K in the secret key is stored in the decryption device when the information for setting the algebraic field K is stored in advance in the decryption device. Inclusion is not mandatory. In this specification, for convenience of explanation, the secret key including information for setting the algebraic field K is used. Hereinafter, information for setting the algebraic field K and the ideal ν is simply represented by symbols K and ν.
The control unit (140s) controls the communication unit (13) to transmit the public key (n, k, b 1 , b 2 ,..., B n ) to the encryption device, and the secret key (K, ν, g, k, d, p 1 , p 2 ,..., pn ) are transmitted to the decoding device. In addition, it is desirable that at least the communication path for transmitting the secret key has a guaranteed safety. When the key generation device (1s) also serves as a decryption device, it is not necessary to transmit a secret key. Further, instead of transmitting the public key to the encryption device, the public key registration server device may transmit the public key to the encryption device that has accessed the public key registration server device, for example. . After all, as long as the secret key is securely supplied to the decryption device and the public key is supplied to the encryption device, the supply method is not limited.
[暗号化装置および暗号化処理]
第2実施形態に係わる暗号化装置(2s)のハードウェア構成・資源は、第1実施形態の暗号化装置(2)と同様であり、また、暗号化装置(2s)における暗号化処理も第1実施形態の暗号化処理と同様であるから、第1実施形態における暗号化装置(2)および暗号化処理の説明を援用し、第2実施形態における暗号化装置(2s)および暗号化処理の説明を省略する(図4、5、6参照。)。なお、暗号化装置(2s)の暗号化処理に用いる公開鍵は、鍵生成装置(1s)によって生成された公開鍵(n,k,b1,b2,・・・,bn)であり、暗号化装置(2s)の通信部によって、鍵生成装置(1s)から受信して外部記憶装置(27)に保存記憶されたものである。また、第2実施形態においても、数え上げ符号方式によって平文Mを符号化してビット長n、ハミング重みkのビット列mを生成するとする。
[Encryption device and encryption processing]
The hardware configuration and resources of the encryption device (2s) according to the second embodiment are the same as those of the encryption device (2) of the first embodiment, and the encryption processing in the encryption device (2s) is also the first. Since it is the same as the encryption processing of the first embodiment, the description of the encryption device (2) and the encryption processing in the first embodiment is used, and the encryption device (2s) and the encryption processing in the second embodiment are used. The description is omitted (see FIGS. 4, 5, and 6). The public key used for the encryption process of the encryption device (2s) is a public key (n, k, b 1 , b 2 ,..., B n ) generated by the key generation device (1s). The communication unit of the encryption device (2s) receives the data from the key generation device (1s) and stores it in the external storage device (27). Also in the second embodiment, it is assumed that plaintext M is encoded by the counting encoding method to generate a bit string m having a bit length n and a Hamming weight k.
[復号化装置]
(ハードウェア構成並びにハードウェア資源とソフトウェアとの協働による情報処理の実現)
第2実施形態に係わる復号化装置(3s)のハードウェア構成・資源や機能構成並びにプログラムは、第1実施形態の復号化装置(3)と同様である(図7参照。)。
[Decryption device]
(Realization of information processing through cooperation between hardware configuration and hardware resources and software)
The hardware configuration / resource, functional configuration, and program of the decoding device (3s) according to the second embodiment are the same as those of the decoding device (3) of the first embodiment (see FIG. 7).
(復号化処理)
次に、図16および図17を参照して、復号化装置(3s)における復号化処理の流れを叙述的に説明する。
なお、下記の復号化処理では、秘密鍵Kを明示的に用いていないが、これは秘密鍵として代数体Kが不要という趣旨ではない。一般的に、(代数)体Kは、既約多項式F(x)によって規定される。そして、(代数)体Kの元はxの多項式として表されるものの、xの多項式のみでは(代数)体Kの元を表現することができないので、(代数)体Kの情報が必要になる(上記PARI/GPでは、体Kの元は、xの多項式を既約多項式F(x)で除した余りとして表される。)。つまり、下記の復号化処理は、代数体Kにおける演算として行われる。
(Decryption process)
Next, with reference to FIG. 16 and FIG. 17, the flow of the decoding process in the decoding device (3s) will be described descriptively.
In the decryption process described below, the secret key K is not explicitly used, but this does not mean that the algebraic field K is not required as the secret key. In general, the (algebraic) field K is defined by the irreducible polynomial F (x). The element of the (algebraic) field K is expressed as a polynomial of x. However, since the element of the (algebraic) field K cannot be expressed only by the polynomial of x, information on the (algebraic) field K is required. (In the PARI / GP, the element of the field K is expressed as the remainder of dividing the polynomial of x by the irreducible polynomial F (x)). That is, the following decoding process is performed as an operation in the algebraic field K.
まず、制御部(340s)が、外部記憶装置(37)から、秘密鍵(K,ν,g,k,d,p1,p2,・・・,pn)、暗号文cを読み込み、それぞれをRAM(35)の所定の格納領域に格納しておく。秘密鍵は、復号化装置(3s)の通信部によって、鍵生成装置(1s)から受信して外部記憶装置(37)に保存記憶されたものである。また、暗号文cは、復号化装置(3)の通信部によって、暗号化装置(2)から受信して外部記憶装置(37)に保存記憶されたものである。なお、これらのデータを格納した記録媒体からドライブを駆動して読み込むようにしてもよく、適宜に変更可能である。以後、「RAMから○○を読み込む」旨の説明をした場合は、「RAMにおいて○○が格納されている所定の格納領域から○○を読み込む」ことを意味するとする。 First, the control unit (340s) reads the secret key (K, ν, g, k, d, p 1 , p 2 ,..., P n ) and the ciphertext c from the external storage device (37). Each is stored in a predetermined storage area of the RAM (35). The secret key is received from the key generation device (1s) by the communication unit of the decryption device (3s) and stored and stored in the external storage device (37). The ciphertext c is received from the encryption device (2) and stored in the external storage device (37) by the communication unit of the decryption device (3). It should be noted that the drive may be read from a recording medium storing these data, and can be changed as appropriate. Hereinafter, when the description “reads XX from RAM” is used, it means “read XX from a predetermined storage area in which XX is stored in the RAM”.
〔ステップS32s〕
次に、指数算出部(341s)が、RAM(35)から暗号文c、秘密鍵kおよびdを読み込み、r=c−kdなる演算を行って指数rを算出し、この算出した指数rをRAM(35)の所定の格納領域に格納する。
なお、ここで指数rの算出方法は、鍵生成装置(1s)における鍵生成処理のステップS17sに対応しており、ナップザックbi(1≦i≦n)をbi=ai+dなる演算をして算出した場合には、r=c−kdなる演算を行って指数rを算出するが、例えばナップザックbi(1≦i≦n)をbi=ai+d mod Πj=1 s(N(τj)−1)を演算して算出した場合には、r=c−kd mod Πj=1 s(N(τj)−1)なる演算を行って指数rを算出することに留意しなければならない。
[Step S32s]
Next, the exponent calculation unit (341s) reads the ciphertext c and the secret keys k and d from the RAM (35), performs an operation of r = c−kd, calculates the index r, and calculates the calculated index r. The data is stored in a predetermined storage area of the RAM (35).
The method of calculating the herein index r corresponds to the step S17s of the key generation process in the key generation device (1s), a knapsack b i a (1 ≦ i ≦ n) b i = a i + d becomes operational when calculated by the, r = c-kd comprising performing an operation to calculate the index r in. for example Knapsack b i (1 ≦ i ≦ n ) to b i = a i + d mod Π j = 1 s ( When N (τ j ) -1) is calculated, r = c−kd mod j j = 1 s (N (τ j ) −1) is calculated to calculate the index r. You have to be careful.
〔ステップS33s〕
次に、冪乗剰余演算部(342s)が、RAM(35)から指数r、秘密鍵νおよびgを読み込み、u=gr mod νなる演算を行って冪乗剰余演算結果uを算出し、この算出した冪乗剰余演算結果uをRAM(35)の所定の格納領域に格納する。
[Step S33s]
Next, the power residue calculation unit (342s) reads the exponent r, the secret keys ν and g from the RAM (35), performs the operation u = g r mod v, and calculates the power residue calculation result u. The calculated power residue calculation result u is stored in a predetermined storage area of the RAM (35).
〔ステップS34s〕
次に、符号列再生部(343s)が、RAM(35)から冪乗剰余演算結果u、秘密鍵p1,p2,・・・,pnを読み込み、各i(1≦i≦n)について、冪乗剰余演算結果uを秘密鍵piで除し、冪乗剰余演算結果uが秘密鍵piで割り切れる場合にはmi=1とし、冪乗剰余演算結果uが秘密鍵piで割り切れない場合にはmi=0として、符号列(ビット列)m=(m1,m2,・・・,mn)を求める。そして、符号列再生部(343s)は、求めた符号列(ビット列)m=(m1,m2,・・・,mn)をRAM(35)の所定の格納領域に格納する。
[Step S34s]
Next, the code string reproduction section (343s) is, RAM (35) modular exponentiation operation result from u, the secret key p 1, p 2, · · ·, reads p n, each i (1 ≦ i ≦ n) Is divided by the secret key p i , and when the power residue calculation result u is divisible by the secret key p i , m i = 1, and the power residue calculation result u is the secret key p i. If it is not divisible by m i = 0, a code string (bit string) m = (m 1 , m 2 ,..., M n ) is obtained. The code string reproducing unit (343s) stores the obtained code string (bit string) m = (m 1 , m 2 ,..., M n ) in a predetermined storage area of the RAM (35).
ステップS32〜S34の処理について補足説明をする。
鍵生成処理のステップS17sにおいて、ナップザックbi(1≦i≦n)をbi=ai+dなる演算をして算出した場合に対応して、ステップS32sにおいて、r=c−kdなる演算を行って指数rを算出した場合で説明すると、r=c−kdなる演算は、次のような演算であることを意味する。即ち、r=Σi=1 nmibi−kd=Σi=1 nmi(ai+d)−kd=Σi=1 nmiai+d×Σi=1 nmi−kd=Σi=1 nmiai+kd−kd=Σi=1 nmiaiである(∵Σi=1 nmi=k)。
従って冪乗剰余演算は、u=gr mod N=g^Σi=1 nmiai mod ν=g^(m1a1)×g^(m2a2)×・・・×g^(mnan) mod νとなる。ここで式(10)および秘密鍵集合{p1,p2,・・・,pn}のどの2つの元も互いに素であることに留意すれば、冪乗剰余演算結果uが秘密鍵piで割り切れる場合とは、冪乗剰余演算結果uがg^aiを素因子として有していることに他ならず、さらに、mi(1≦i≦n)∈{0,1}であることに留意すれば、mi=1であることが判明する。一方、冪乗剰余演算結果uが秘密鍵piで割り切れない場合とは、冪乗剰余演算結果uがg^aiを素因子として有していないことに他ならず、さらに、mi(1≦i≦n)∈{0,1}であることに留意すれば、mi=0であることが判明する。
A supplementary description will be given of the processing in steps S32 to S34.
Corresponding to the case where the knapsack b i (1 ≦ i ≦ n) is calculated by calculating b i = a i + d in step S17s of the key generation process, an operation r = c−kd is performed in step S32s. If the index r is calculated by performing the calculation, the calculation r = c−kd means the following calculation. That is, r = Σ i = 1 n m i b i −kd = Σ i = 1 n m i (a i + d) −kd = Σ i = 1 n m i a i + d × Σ i = 1 n n m i − kd = Σ i = 1 n m i a i + kd−kd = Σ i = 1 n m i a i (∵Σ i = 1 n m i = k).
Therefore, the power-residue operation is as follows: u = g r mod N = g ^ Σ i = 1 n mi a i mod v = g ^ (m 1 a 1 ) × g ^ (m 2 a 2 ) ×. g ^ (m n a n ) mod ν. Here, it should be noted that any two elements of the equation (10) and the secret key set {p 1 , p 2 ,..., P n } are relatively prime. The case of being divisible by i is that the power-residue result u has g ^ a i as a prime factor, and m i (1 ≦ i ≦ n) ∈ {0, 1}. Note that there are m i = 1. On the other hand, the case where the power residue calculation result u is not divisible by the secret key p i is that the power residue calculation result u does not have g ^ a i as a prime factor, and mi ( Note that 1 ≦ i ≦ n) ε {0,1}, it turns out that m i = 0.
〔ステップS35s〕
次に、復号化部(344s)が、RAM(35)から符号列(ビット列)m=(m1,m2,・・・,mn)を読み込み、暗号化装置(2s)における暗号化処理と対応した逆変換を行い(参考文献2参照。)、平文Mを復元してこれをRAM(35)の所定の格納領域に格納する。
[Step S35s]
Next, the decoding unit (344S) is, RAM (35) from the bit stream (
[乗法型ナップザック暗号システムとその処理]
第2実施形態の乗法型ナップザック暗号システムは、システムを構成する物理的実体が鍵生成装置(1)→鍵生成装置(1s)、暗号化装置(2)→暗号化装置(2s)、復号化装置(3)→復号化装置(3s)に変更(これは上記システムその1に相当する場合であり、上記システムその2に相当する場合も同様である。)となる以外は、第1実施形態と同様のシステム構成であり、また当該システムでの処理も第1実施形態と同様であるから、第1実施形態における乗法型ナップザック暗号システムおよびその処理の説明を援用し、第2実施形態における乗法型ナップザック暗号システムおよびその処理の説明を省略する(図10〜図13参照。)。
[Multiplicative knapsack cryptosystem and its processing]
In the multiplicative knapsack cryptosystem of the second embodiment, the physical entities constituting the system are: key generation device (1) → key generation device (1s), encryption device (2) → encryption device (2s), decryption The first embodiment except that the device (3) is changed to the decryption device (3s) (this corresponds to the
<第1実施形態と第2実施形態との相違について>
○実装の容易性・演算速度について。
第1実施形態では、各処理に係わる集合が有理整数環であるため、各処理に係わる集合を代数体の整数環とする第2実施形態の場合に比して、既存の計算機を本発明の鍵生成装置などとして機能させることが比較的容易であり、また、比較的高速に演算処理が行える。
○安全性について。
第1実施形態の場合は、秘密鍵は(N,k,g,d,p1,p2,・・・,pn)であるところ、公開鍵であるb1,b2,・・・,bnからNおよびdのビット長の上限を得ることができる。ここで、Nおよびdのビット長から推測される秘密鍵の総数は有限である。従って、“理論的には”秘密鍵を推測できないわけではない(実際は、実時間で推測困難になるように合成数Nのビット長などを設定する。)。
第2実施形態の場合は、秘密鍵は(K,ν,g,d,p1,p2,・・・,pn)であるところ、公開鍵であるb1,b2,・・・,bnからイデアルνのノルムおよびdのビット長の上限を得ることができる。しかし、代数体Kは、(次数fを固定したとしても)無限に構成することができ、単なる整数であるb1,b2,・・・,bnから代数体Kの情報を得ることはできない。このことは、代数体Kを秘密鍵に含めない場合でも同様である。代数体Kが不明であると、イデアルνやp1,p2,・・・,pnの決定が極めて困難であり、秘密鍵(K,ν,g,d,p1,p2,・・・,pn)を推測できる可能性は無いと言っても過言ではない。従って、第2実施形態の場合は、第1実施形態に比して安全性が高いものとなっている。
<Difference between the first embodiment and the second embodiment>
○ Easy implementation and calculation speed.
In the first embodiment, since the set related to each process is a rational integer ring, the existing computer is compared with the case of the second embodiment where the set related to each process is an integer ring of an algebraic field. It is relatively easy to function as a key generation device or the like, and arithmetic processing can be performed at a relatively high speed.
○ About safety.
In the case of the first embodiment, the secret key is (N, k, g, d, p 1 , p 2 ,..., P n ), but b 1 , b 2 ,. , B n can obtain the upper limit of the bit length of N and d. Here, the total number of secret keys estimated from the bit lengths of N and d is finite. Therefore, “theoretically” the secret key cannot be estimated (actually, the bit length of the composite number N is set so that it is difficult to estimate in real time).
In the case of the second embodiment, the secret key is (K, ν, g, d, p 1 , p 2 ,..., P n ), but b 1 , b 2 ,. , B n can obtain the norm of the ideal ν and the upper limit of the bit length of d. However, algebraic K may be configured in an infinite (even fixed the order f), b 1, b 2 are merely integer, ..., to obtain information algebraic K from b n is Can not. This is the same even when the algebraic field K is not included in the secret key. If the algebraic field K is unknown, it is extremely difficult to determine the ideal ν, p 1 , p 2 ,..., Pn , and the secret key (K, ν, g, d, p 1 , p 2 ,. It is not an exaggeration to say that there is no possibility of guessing pn ). Therefore, in the case of the second embodiment, the safety is higher than that of the first embodiment.
<上記各装置全般について>
本発明である上記各装置は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記各装置において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
<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 gist 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.
また、上記各装置は、異なるコンピュータとして独立に構成される場合はもちろん、例えば1つのコンピュータにおいて、鍵生成装置の有すべき機能の処理内容が記述されたプログラムと、復号化装置の有すべき機能の処理内容が記述されたプログラムとを有することによって、1つのコンピュータが鍵生成装置としても復号化装置としても機能するように、コンピュータを複合的に機能させることもできる。 In addition, each of the above devices may be configured independently as a different computer, for example, in one computer, a program in which processing contents of functions that the key generation device should have and a decryption device should exist. By having a program in which the processing content of the function is described, the computer can be made to function in a complex manner so that one computer functions as both a key generation device and a decryption 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, this computer reads the program stored in its own recording medium and executes the process according to the read program. As another execution form of the program, the computer may directly read the program from a portable recording medium and execute processing according to the program, and the program is transferred from the server computer to the computer. Each time, the processing according to the received program may be executed sequentially. 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, each of the above devices is configured by executing a predetermined program on a computer. However, at least a part of these processing contents may be realized by hardware.
本発明は、現在の計算機環境において実用的でありながら、量子計算機が実現した場合でも解読困難な公開鍵暗号であるから、量子計算機実現後も社会基盤の中枢であり続けると考えられる(量子通信路に比較して古典的な)インターネットのような通信網における公開鍵暗号として用いることができる。 Since the present invention is a public key cryptosystem that is practical in the current computer environment but difficult to decipher even when realized by a quantum computer, it is considered that it will continue to be the center of social infrastructure even after the realization of the quantum computer (quantum communication). It can be used as a public key encryption in a communication network such as the Internet (classical compared to the road).
1 鍵生成装置
1s 鍵生成装置
2 暗号化装置
3 復号化装置
3’ 鍵生成装置兼復号化装置
3s 復号化装置
4 公開鍵登録サーバ装置
5 ネットワーク
140 制御部
140s 制御部
141 合成数算出部
142 生成元算出部
142s 生成元算出部
143 秘密鍵集合算出部
143s 秘密鍵集合算出部
144 ナップザック生成因子算出部
144s ナップザック生成因子算出部
145 乱数生成部
145s 乱数生成部
146 ナップザック生成部
146s ナップザック生成部
241 符号変換部
242 暗号化部
341 指数算出部
341s 指数算出部
342 冪乗剰余演算部
342s 冪乗剰余演算部
343 符号再生部
343s 符号再生部
344 復号化部
344s 復号化部
1000 乗法型ナップザック暗号システム
1001 乗法型ナップザック暗号システム
DESCRIPTION OF
Claims (13)
s個の素数冪qj〔1≦j≦s〕の積を演算して合成数Nを算出する合成数算出手段と、
各既約剰余類群(Z/qjZ)×〔1≦j≦s〕の生成元となる有理整数gを算出する生成元算出手段と、
どの2つも互いに素である有理整数pi〔1≦i≦n;但し、各有理整数piは合成数Nと互いに素である。〕を算出する秘密鍵集合算出手段と、
各i〔1≦i≦n〕に対してgai≡pi(mod N)を満たす有理整数aiを算出するナップザック生成因子算出手段と、
乱数dを生成して、これを出力する乱数生成手段と、
各有理整数ai〔1≦i≦n〕に乱数dを加算して有理整数bi〔1≦i≦n〕を生成するナップザック生成手段と
を備え、
公開鍵は少なくとも正の有理整数k、有理整数bi〔1≦i≦n〕、
秘密鍵は合成数N、正の有理整数k、有理整数g、乱数d、有理整数pi〔1≦i≦n〕である
ことを特徴とする鍵生成装置。 storage means for storing s prime numbers 冪 q j [1 ≦ j ≦ s], positive rational integers n and k;
a composite number calculating means for calculating a composite number N by calculating a product of s prime numbers 冪 q j [1 ≦ j ≦ s];
Generator calculating means for calculating a rational integer g that is a generator of each irreducible residue class group (Z / q j Z) × [1 ≦ j ≦ s];
Rational integers p i [1 ≦ i ≦ n; where each two are relatively prime, where each rational integer p i is relatively prime with the composite number N. A secret key set calculating means for calculating
And Knapsack generation factor calculation means for calculating a rational integer a i satisfying g ai ≡p i (mod N) for each i [1 ≦ i ≦ n],
Random number generating means for generating a random number d and outputting it;
Knapsack generating means for generating a rational integer b i [1 ≦ i ≦ n] by adding a random number d to each rational integer a i [1 ≦ i ≦ n],
The public key is at least a positive rational integer k, a rational integer b i [1 ≦ i ≦ n],
The key generation apparatus characterized in that the secret key is a composite number N, a positive rational integer k, a rational integer g, a random number d, and a rational integer p i [1 ≦ i ≦ n].
平文を符号列に変換し(符号変換)、符号列を平文に変換する(逆符号変換)ことが可能な符号変換方式によって、平文Mを長さn、重みkの符号列m={mi}〔1≦i≦n;但し、Σi=1 nmi=kとする。〕に変換する符号変換手段と、
符号列miおよび公開鍵biから暗号文c=Σi=1 nmibiを生成する暗号化手段と
を備えたことを特徴とする暗号化装置。 Storage means for storing a public key (at least a positive rational integer k, a rational integer b i [1 ≦ i ≦ n]) and plaintext M generated by the key generation device according to claim 1;
Convert plaintext into code sequence (code conversion) by converting the code sequence into plaintext (inverse code conversion) can a code conversion scheme, the length of the plaintext M n, weight k code sequence m = {m i } [1 ≦ i ≦ n; where Σ i = 1 n m i = k. Code conversion means for converting to
Encrypting apparatus comprising the encryption means for generating a code string m i and the ciphertext from the public key b i c = Σ i = 1 n m i b i.
暗号文cから秘密鍵kと秘密鍵dとの積を減算して指数rを算出する指数算出手段と、
指数r、秘密鍵gおよびNからu≡gr(mod N)を演算した冪乗剰余演算結果uを算出する冪乗剰余演算手段と、
冪乗剰余演算結果uを各秘密鍵pi〔1≦i≦n〕で除し、割り切れた場合と割り切れなかった場合とでそれぞれ異なる符号値wiを与え、符号列w={wi}〔1≦i≦n〕を算出する符号再生手段と、
請求項2に記載の暗号化装置における符号変換手段で用いた符号変換方式によって、符号列wを平文に変換してこの平文を出力する復号化手段と
を備えたことを特徴とする復号化装置。 Storage means for storing a secret key (combined number N, rational integer g, random number d, rational integer p i [1 ≦ i ≦ n]) and ciphertext c generated by the key generation device according to claim 1;
Exponent calculating means for calculating an index r by subtracting the product of the secret key k and the secret key d from the ciphertext c;
A power residue calculating means for calculating a power residue operation result u obtained by calculating u≡g r (mod N) from the index r, the secret key g, and N;
The power-residue calculation result u is divided by each secret key p i [1 ≦ i ≦ n] to give different code values w i when divided and not divided, and the code string w = {w i } Code reproducing means for calculating [1 ≦ i ≦ n];
3. A decoding apparatus comprising: a decoding means for converting the code string w into plain text by the code conversion method used in the code conversion means in the encryption apparatus according to claim 2 and outputting the plain text. .
鍵生成装置は、
s個の素数冪qj〔1≦j≦s〕、正の有理整数nおよびkを記憶する記憶手段と、
s個の素数冪qj〔1≦j≦s〕の積を演算して合成数Nを算出する合成数算出手段と、
各既約剰余類群(Z/qjZ)×〔1≦j≦s〕の生成元となる有理整数gを算出する生成元算出手段と、
どの2つも互いに素である有理整数pi〔1≦i≦n;但し、各有理整数piは合成数Nと互いに素である。〕を算出する秘密鍵集合算出手段と、
各i〔1≦i≦n〕に対してgai≡pi(mod N)を満たす有理整数aiを算出するナップザック生成因子算出手段と、
乱数dを生成して、これを出力する乱数生成手段と、
各有理整数ai〔1≦i≦n〕に乱数dを加算して有理整数bi〔1≦i≦n〕を生成するナップザック生成手段と、
公開鍵は少なくとも正の有理整数k、有理整数bi〔1≦i≦n〕、秘密鍵は合成数N、正の有理整数k、有理整数g、乱数d、有理整数pi〔1≦i≦n〕であるとして、
公開鍵を暗号化装置に送信可能な対暗号化装置送信手段と、
秘密鍵を復号化装置に送信可能な対復号化装置送信手段とを備え、
暗号化装置は、
鍵生成装置から公開鍵を受信可能な対鍵生成装置受信手段と、
暗号化装置の対鍵生成装置受信手段によって受信した公開鍵(少なくとも正の有理整数k、有理整数bi〔1≦i≦n〕)および平文Mを記憶する記憶手段と、
平文を符号列に変換し(符号変換)、符号列を平文に変換する(逆符号変換)ことが可能な符号変換方式によって、平文Mを長さn、重みkの符号列m={mi}〔1≦i≦n;但し、Σi=1 nmi=kとする。〕に変換する符号変換手段と、
符号列miおよび公開鍵biから暗号文c=Σi=1 nmibiを生成する暗号化手段と、
暗号文cを復号化装置に送信可能な対復号化装置送信手段とを備え、
復号化装置は、
鍵生成装置から秘密鍵を受信可能な対鍵生成装置受信手段と、
暗号文cを暗号化装置から受信可能な対暗号化装置受信手段と、
復号化装置の対鍵生成装置受信手段によって受信した秘密鍵(合成数N、有理整数g、乱数d、有理整数pi〔1≦i≦n〕)および復号化装置の対暗号化装置受信手段によって受信した暗号文cを記憶する記憶手段と、
暗号文cから秘密鍵kと秘密鍵dとの積を減算して指数rを算出する指数算出手段と、
指数r、秘密鍵gおよびNからu≡gr(mod N)を演算した冪乗剰余演算結果uを算出する冪乗剰余演算手段と、
冪乗剰余演算結果uを各秘密鍵pi〔1≦i≦n〕で除し、割り切れた場合と割り切れなかった場合とでそれぞれ異なる符号値wiを与え、符号列w={wi}〔1≦i≦n〕を算出する符号再生手段と、
上記暗号化装置における符号変換手段で用いた符号変換方式によって、符号列wを平文に変換してこの平文を出力する復号化手段とを備えた
ことを特徴とする乗法型ナップザック暗号システム。 A key generation device, an encryption device, and a decryption device are connected to each other so that data transmission is possible,
The key generator is
storage means for storing s prime numbers 冪 q j [1 ≦ j ≦ s], positive rational integers n and k;
a composite number calculating means for calculating a composite number N by calculating a product of s prime numbers 冪 q j [1 ≦ j ≦ s];
Generator calculating means for calculating a rational integer g that is a generator of each irreducible residue class group (Z / q j Z) × [1 ≦ j ≦ s];
Rational integers p i [1 ≦ i ≦ n; where each two are relatively prime, where each rational integer p i is relatively prime with the composite number N. A secret key set calculating means for calculating
And Knapsack generation factor calculation means for calculating a rational integer a i satisfying g ai ≡p i (mod N) for each i [1 ≦ i ≦ n],
Random number generating means for generating a random number d and outputting it;
A knapsack generating means for generating a rational integer b i [1 ≦ i ≦ n] by adding a random number d to each rational integer a i [1 ≦ i ≦ n];
The public key is at least a positive rational integer k, a rational integer b i [1 ≦ i ≦ n], the secret key is a composite number N, a positive rational integer k, a rational integer g, a random number d, a rational integer p i [1 ≦ i ≦ n],
An encryption device transmitting means capable of transmitting the public key to the encryption device;
A pair decryption device transmitting means capable of transmitting a secret key to the decryption device,
The encryption device
A key generation device receiving means capable of receiving a public key from the key generation device;
Storage means for storing a public key (at least positive rational integer k, rational integer b i [1 ≦ i ≦ n]) and plaintext M received by the pair-key generating device receiving means of the encryption device;
Convert plaintext into code sequence (code conversion) by converting the code sequence into plaintext (inverse code conversion) can a code conversion scheme, the length of the plaintext M n, weight k code sequence m = {m i } [1 ≦ i ≦ n; where Σ i = 1 n m i = k. Code conversion means for converting to
Encryption means for generating a ciphertext c = Σ i = 1 n m i b i from the code string mi and the public key b i ;
A pair decryption device transmitting means capable of transmitting the ciphertext c to the decryption device;
The decryption device
A key generation device receiving means capable of receiving a secret key from the key generation device;
An encryption device receiving means capable of receiving the ciphertext c from the encryption device;
Secret key (combined number N, rational integer g, random number d, rational integer p i [1 ≦ i ≦ n]) received by the pair key generation device reception unit of the decryption device and the pair encryption device reception unit of the decryption device Storage means for storing the ciphertext c received by
Exponent calculating means for calculating an index r by subtracting the product of the secret key k and the secret key d from the ciphertext c;
A power residue calculating means for calculating a power residue operation result u obtained by calculating u≡g r (mod N) from the index r, the secret key g, and N;
The power-residue calculation result u is divided by each secret key p i [1 ≦ i ≦ n] to give different code values w i when divided and not divided, and the code string w = {w i } Code reproducing means for calculating [1 ≦ i ≦ n];
A multiplicative knapsack encryption system comprising: a decoding means for converting a code string w into plain text by the code conversion method used in the code conversion means in the encryption apparatus and outputting the plain text.
鍵生成装置の記憶手段には、s個の素数冪qj〔1≦j≦s〕、正の有理整数nおよびkが記憶されており、
暗号化装置の記憶手段には、平文Mが記憶されており、
鍵生成装置の合成数算出手段が、s個の素数冪qj〔1≦j≦s〕の積を演算して合成数Nを算出する合成数算出ステップと、
鍵生成装置の生成元算出手段が、各既約剰余類群(Z/qjZ)×〔1≦j≦s〕の生成元となる有理整数gを算出する生成元算出ステップと、
鍵生成装置の秘密鍵集合算出手段が、どの2つも互いに素である有理整数pi〔1≦i≦n;但し、各有理整数piは合成数Nと互いに素である。〕を算出する秘密鍵集合算出ステップと、
鍵生成装置のナップザック生成因子算出手段が、各i〔1≦i≦n〕に対してgai≡pi(mod N)を満たす有理整数aiを算出するナップザック生成因子算出ステップと、
鍵生成装置の乱数生成手段が、乱数dを生成して、これを出力する乱数生成ステップと、
鍵生成装置のナップザック生成手段が、各有理整数ai〔1≦i≦n〕に乱数dを加算して有理整数bi〔1≦i≦n〕を生成するナップザック生成ステップと、
公開鍵は少なくとも正の有理整数k、有理整数bi〔1≦i≦n〕、秘密鍵は合成数N、正の有理整数k、有理整数g、乱数d、有理整数pi〔1≦i≦n〕であるとして、
鍵生成装置の対暗号化装置送信手段が、公開鍵を暗号化装置に送信可能な対暗号化装置送信ステップと、
鍵生成装置の対復号化装置送信手段が、秘密鍵を復号化装置に送信可能な対復号化装置送信ステップと、
暗号化装置の対鍵生成装置受信手段が、鍵生成装置から公開鍵を受信する対鍵生成装置受信ステップと、
暗号化装置の符号変換手段が、平文を符号列に変換し(符号変換)、符号列を平文に変換する(逆符号変換)ことが可能な符号変換方式によって、平文Mを長さn、重みkの符号列m={mi}〔1≦i≦n;但し、Σi=1 nmi=kとする。〕に変換する符号変換ステップと、
暗号化装置の暗号化手段が、符号列miおよび公開鍵biから暗号文c=Σi=1 nmibiを生成する暗号化手段と、
暗号化装置の対復号化装置送信手段が、暗号文cを復号化装置に送信する対復号化装置送信ステップと、
復号化装置の対鍵生成装置受信手段が、鍵生成装置から秘密鍵を受信する対鍵生成装置受信ステップと、
復号化装置の対暗号化装置受信手段が、暗号文cを暗号化装置から受信する対暗号化装置受信ステップと、
復号化装置の指数算出手段が、暗号文cから秘密鍵kと秘密鍵dとの積を減算して指数rを算出する指数算出ステップと、
復号化装置の冪乗剰余演算手段が、指数r、秘密鍵gおよびNからu≡gr(mod N)を演算した冪乗剰余演算結果uを算出する冪乗剰余演算ステップと、
復号化装置の符号再生手段が、冪乗剰余演算結果uを各秘密鍵pi〔1≦i≦n〕で除し、割り切れた場合と割り切れなかった場合とでそれぞれ異なる符号値wiを与え、符号列w={wi}〔1≦i≦n〕を算出する符号再生ステップと、
復号化装置の復号化手段が、上記符号変換ステップで用いた符号変換方式によって、符号列wを平文に変換してこの平文を出力する復号化ステップとを有する
ことを特徴とする乗法型ナップザック暗号復号方法。 A key generation device, an encryption device, and a decryption device are connected to each other so that data transmission is possible,
The storage means of the key generation device stores s prime numbers 冪 q j [1 ≦ j ≦ s], positive rational integers n and k,
The plaintext M is stored in the storage means of the encryption device,
A composite number calculating step in which a composite number calculating means of the key generation device calculates a composite number N by calculating a product of s prime numbers 合成 q j [1 ≦ j ≦ s];
A generation source calculation step in which a generation source calculation unit of the key generation device calculates a rational integer g that is a generation source of each irreducible residue class group (Z / q j Z) × [1 ≦ j ≦ s];
The secret key set calculation means of the key generation device is a rational integer p i [1 ≦ i ≦ n; any two are relatively prime; where each rational integer p i is relatively prime with the composite number N. A secret key set calculating step for calculating
Knapsack generation factor calculation means of the key generation device, a knapsack generation factor calculation step of calculating a rational integer a i satisfying g ai ≡p i (mod N) for each i [1 ≦ i ≦ n],
A random number generating means of the key generation device generates a random number d and outputs the random number d;
A knapsack generating step of generating a rational integer b i [1 ≦ i ≦ n] by adding a random number d to each rational integer a i [1 ≦ i ≦ n];
The public key is at least a positive rational integer k, a rational integer b i [1 ≦ i ≦ n], the secret key is a composite number N, a positive rational integer k, a rational integer g, a random number d, a rational integer p i [1 ≦ i ≦ n],
The encryption device transmission means of the key generation device is capable of transmitting the public key to the encryption device.
A pair decryption device transmitting means of the key generation device, wherein the pair decryption device transmission step is capable of transmitting the secret key to the decryption device;
A key generation device reception step in which the key generation device reception means of the encryption device receives a public key from the key generation device; and
The code conversion means of the encryption device converts the plaintext into a code string (code conversion) and converts the code string into a plaintext (reverse code conversion), and the plaintext M has a length n and a weight. Code sequence m of k = {m i } [1 ≦ i ≦ n; where Σ i = 1 n m i = k. A code conversion step for converting to
An encryption means for generating an encrypted text c = Σ i = 1 n m i b i from a code string m i and a public key b i ;
A pair decryption device transmission unit in which the pair decryption device transmission means of the encryption device transmits the ciphertext c to the decryption device;
A key generation device receiving means for receiving a secret key from the key generation device by the key generation device reception means of the decryption device; and
A receiving device for encrypting device of the decrypting device receives the ciphertext c from the encrypting device;
An exponent calculation step in which the exponent calculation means of the decryption device subtracts the product of the secret key k and the secret key d from the ciphertext c to calculate the exponent r;
A power-residue calculating step in which a power-residue calculating unit of the decryption device calculates a power-residue calculating result u obtained by calculating u≡g r (mod N) from the exponent r, the secret key g, and N;
The code reproduction means of the decryption device divides the power residue calculation result u by each secret key p i [1 ≦ i ≦ n], and gives different code values w i depending on whether the result is divisible or not divisible. A code reproduction step of calculating a code string w = {w i } [1 ≦ i ≦ n];
The multiplicative knapsack cryptography characterized in that the decoding means of the decoding apparatus has a decoding step of converting the code string w into plain text by the code conversion method used in the code conversion step and outputting the plain text Decryption method.
少なくとも代数体Kの整数環ZKのイデアルνを設定する基底設定手段と、
各既約剰余類群(ZK/τj)×〔1≦j≦s;τjはイデアルνを構成するどの2つのノルムも互いに素な素イデアルである。〕の生成元となる整数環ZKの整数gを算出する生成元算出手段と、
どの2つのノルムも互いに素である整数環ZKの整数pi〔1≦i≦n;但し、各有理整数piのノルムはイデアルνのノルムと互いに素である。〕を算出する秘密鍵集合算出手段と、
各i〔1≦i≦n〕に対してgai≡pi(mod ν)を満たす有理整数aiを算出するナップザック生成因子算出手段と、
乱数dを生成して、これを出力する乱数生成手段と、
各有理整数ai〔1≦i≦n〕に乱数dを加算して有理整数bi〔1≦i≦n〕を生成するナップザック生成手段と
を備え、
公開鍵は少なくとも正の有理整数k、有理整数bi〔1≦i≦n〕、
秘密鍵は少なくともイデアルν、正の有理整数k、整数環ZKの整数g、乱数d、整数環ZKの整数pi〔1≦i≦n〕である
ことを特徴とする鍵生成装置。 Storage means for storing positive rational integers n and k;
Base setting means for setting an ideal ν of an integer ring Z K of at least an algebraic field K;
Each irreducible residue class group (Z K / τ j ) × [1 ≦ j ≦ s; τ j is a disjoint prime ideal of any two norms constituting the ideal ν. A generating element calculation means for calculating the integer g of the ring of integers Z K as a generator of]
Integer p i [1 ≦ i ≦ n of integer ring Z K in which any two norms are mutually prime; provided that the norm of each rational integer p i is mutually prime with the norm of ideal ν. A secret key set calculating means for calculating
And Knapsack generation factor calculation means for calculating a rational integer a i satisfying g ai ≡p i (mod ν) for each i [1 ≦ i ≦ n],
Random number generating means for generating a random number d and outputting it;
Knapsack generating means for generating a rational integer b i [1 ≦ i ≦ n] by adding a random number d to each rational integer a i [1 ≦ i ≦ n],
The public key is at least a positive rational integer k, a rational integer b i [1 ≦ i ≦ n],
The private key is least ideal [nu, positive rational integer k, an integer g integer ring Z K, the random number d, the key generation device, characterized in that an integer p i [1 ≦ i ≦ n] integer ring Z K.
平文を符号列に変換し(符号変換)、符号列を平文に変換する(逆符号変換)ことが可能な符号変換方式によって、平文Mを長さn、重みkの符号列m={mi}〔1≦i≦n;但し、Σi=1 nmi=kとする。〕に変換する符号変換手段と、
符号列miおよび公開鍵biから暗号文c=Σi=1 nmibiを生成する暗号化手段と
を備えたことを特徴とする暗号化装置。 Storage means for storing a public key (at least positive rational integer k, rational integer b i [1 ≦ i ≦ n]) and plaintext M generated by the key generation device according to claim 6;
Convert plaintext into code sequence (code conversion) by converting the code sequence into plaintext (inverse code conversion) can a code conversion scheme, the length of the plaintext M n, weight k code sequence m = {m i } [1 ≦ i ≦ n; where Σ i = 1 n m i = k. Code conversion means for converting to
Encrypting apparatus comprising the encryption means for generating a code string m i and the ciphertext from the public key b i c = Σ i = 1 n m i b i.
暗号文cから秘密鍵kと秘密鍵dとの積を減算して指数rを算出する指数算出手段と、
指数r、秘密鍵gおよびνからu≡gr(mod ν)を演算した冪乗剰余演算結果uを算出する冪乗剰余演算手段と、
冪乗剰余演算結果uを各秘密鍵pi〔1≦i≦n〕で除し、割り切れた場合と割り切れなかった場合とでそれぞれ異なる符号値wiを与え、符号列w={wi}〔1≦i≦n〕を算出する符号再生手段と、
請求項7に記載の暗号化装置における符号変換手段で用いた符号変換方式によって、符号列wを平文に変換してこの平文を出力する復号化手段と
を備えたことを特徴とする復号化装置。 A secret key (at least an ideal ν, a positive rational integer k, an integer g of an integer ring Z K , a random number d, an integer p i of an integer ring Z K [1 ≦ i ≦ n]) and the ciphertext c,
Exponent calculating means for calculating an index r by subtracting the product of the secret key k and the secret key d from the ciphertext c;
A power residue calculating means for calculating a power residue operation result u obtained by calculating u≡g r (mod v) from the index r, the secret key g and ν;
The power-residue calculation result u is divided by each secret key p i [1 ≦ i ≦ n] to give different code values w i when divided and not divided, and the code string w = {w i } Code reproducing means for calculating [1 ≦ i ≦ n];
8. A decoding apparatus comprising: a decoding means for converting the code string w into plain text and outputting the plain text by the code conversion method used in the code conversion means in the encryption apparatus according to claim 7. .
鍵生成装置は、
正の有理整数n、kを記憶する記憶手段と、
少なくとも代数体Kの整数環ZKのイデアルνを設定する基底設定手段と、
各既約剰余類群(ZK/τj)×〔1≦j≦s;τjはイデアルνを構成するどの2つのノルムも互いに素な素イデアルである。〕の生成元となる整数環ZKの整数gを算出する生成元算出手段と、
どの2つのノルムも互いに素である整数環ZKの整数pi〔1≦i≦n;但し、各整数piのノルムはイデアルνのノルムと互いに素である。〕を算出する秘密鍵集合算出手段と、
各i〔1≦i≦n〕に対してgai≡pi(mod ν)を満たす有理整数aiを算出するナップザック生成因子算出手段と、
乱数dを生成して、これを出力する乱数生成手段と、
各有理整数ai〔1≦i≦n〕に乱数dを加算して有理整数bi〔1≦i≦n〕を生成するナップザック生成手段と、
公開鍵は少なくとも正の有理整数k、有理整数bi〔1≦i≦n〕、秘密鍵は少なくともイデアルν、正の有理整数k、整数環ZKの整数g、乱数d、整数環ZKの整数pi〔1≦i≦n〕であるとして、
公開鍵を暗号化装置に送信可能な対暗号化装置送信手段と、
秘密鍵を復号化装置に送信可能な対復号化装置送信手段とを備え、
暗号化装置は、
鍵生成装置から公開鍵を受信可能な対鍵生成装置受信手段と、
暗号化装置の対鍵生成装置受信手段によって受信した公開鍵(少なくとも正の有理整数k、有理整数bi〔1≦i≦n〕)および平文Mを記憶する記憶手段と、
平文を符号列に変換し(符号変換)、符号列を平文に変換する(逆符号変換)ことが可能な符号変換方式によって、平文Mを長さn、重みkの符号列m={mi}〔1≦i≦n;但し、Σi=1 nmi=kとする。〕に変換する符号変換手段と、
符号列miおよび公開鍵biから暗号文c=Σi=1 nmibiを生成する暗号化手段と、
暗号文cを復号化装置に送信可能な対復号化装置送信手段とを備え、
復号化装置は、
鍵生成装置から秘密鍵を受信可能な対鍵生成装置受信手段と、
暗号文cを暗号化装置から受信可能な対暗号化装置受信手段と、
復号化装置の対鍵生成装置受信手段によって受信した秘密鍵(少なくともイデアルν、正の有理整数k、整数環ZKの整数g、乱数d、整数環ZKの整数pi〔1≦i≦n〕)および復号化装置の対暗号化装置受信手段によって受信した暗号文cを記憶する記憶手段と、
暗号文cから秘密鍵kと秘密鍵dとの積を減算して指数rを算出する指数算出手段と、
指数r、秘密鍵gおよびνからu≡gr(mod ν)を演算した冪乗剰余演算結果uを算出する冪乗剰余演算手段と、
冪乗剰余演算結果uを各秘密鍵pi〔1≦i≦n〕で除し、割り切れた場合と割り切れなかった場合とでそれぞれ異なる符号値wiを与え、符号列w={wi}〔1≦i≦n〕を算出する符号再生手段と、
上記暗号化装置における符号変換手段で用いた符号変換方式によって、符号列wを平文に変換してこの平文を出力する復号化手段とを備えた
ことを特徴とする乗法型ナップザック暗号システム。 A key generation device, an encryption device, and a decryption device are connected to each other so that data transmission is possible,
The key generator is
Storage means for storing positive rational integers n and k;
Base setting means for setting an ideal ν of an integer ring Z K of at least an algebraic field K;
Each irreducible residue class group (Z K / τ j ) × [1 ≦ j ≦ s; τ j is a disjoint prime ideal of any two norms constituting the ideal ν. A generating element calculation means for calculating the integer g of the ring of integers Z K as a generator of]
Integer p i of integer ring Z K in which any two norms are relatively prime [1 ≦ i ≦ n; provided that the norm of each integer p i is relatively prime with the norm of ideal ν. A secret key set calculating means for calculating
And Knapsack generation factor calculation means for calculating a rational integer a i satisfying g ai ≡p i (mod ν) for each i [1 ≦ i ≦ n],
Random number generating means for generating a random number d and outputting it;
A knapsack generating means for generating a rational integer b i [1 ≦ i ≦ n] by adding a random number d to each rational integer a i [1 ≦ i ≦ n];
Public key is at least positive rational integer k, rational integer b i [1 ≦ i ≦ n], secret key is at least ideal ν, positive rational integer k, integer g of integer ring Z K , random number d, integer ring Z K As an integer p i [1 ≦ i ≦ n],
An encryption device transmitting means capable of transmitting the public key to the encryption device;
A pair decryption device transmitting means capable of transmitting a secret key to the decryption device,
The encryption device
A key generation device receiving means capable of receiving a public key from the key generation device;
Storage means for storing a public key (at least positive rational integer k, rational integer b i [1 ≦ i ≦ n]) and plaintext M received by the pair-key generating device receiving means of the encryption device;
Convert plaintext into code sequence (code conversion) by converting the code sequence into plaintext (inverse code conversion) can a code conversion scheme, the length of the plaintext M n, weight k code sequence m = {m i } [1 ≦ i ≦ n; where Σ i = 1 n m i = k. Code conversion means for converting to
Encryption means for generating a ciphertext c = Σ i = 1 n m i b i from the code string mi and the public key b i ;
A pair decryption device transmitting means capable of transmitting the ciphertext c to the decryption device;
The decryption device
A key generation device receiving means capable of receiving a secret key from the key generation device;
An encryption device receiving means capable of receiving the ciphertext c from the encryption device;
The secret key (at least ideal ν, positive rational integer k, integer g of integer ring Z K , random number d, integer p i of integer ring Z K [1 ≦ i ≦) received by the pair key generation device receiving means of the decryption device n]) and storage means for storing the ciphertext c received by the encryption device reception means of the decryption device;
Exponent calculating means for calculating an index r by subtracting the product of the secret key k and the secret key d from the ciphertext c;
A power residue calculating means for calculating a power residue operation result u obtained by calculating u≡g r (mod v) from the index r, the secret key g and ν;
The power-residue calculation result u is divided by each secret key p i [1 ≦ i ≦ n] to give different code values w i when divided and not divided, and the code string w = {w i } Code reproducing means for calculating [1 ≦ i ≦ n];
A multiplicative knapsack encryption system comprising: a decoding means for converting a code string w into plain text by the code conversion method used in the code conversion means in the encryption apparatus and outputting the plain text.
鍵生成装置の記憶手段には、正の有理整数n、kが記憶されており、
暗号化装置の記憶手段には、平文Mが記憶されており、
鍵生成装置の基底設定手段が、少なくとも代数体Kの整数環ZKのイデアルνを設定する基底設定ステップと、
鍵生成装置の生成元算出手段が、各既約剰余類群(ZK/τj)×〔1≦j≦s;τjはイデアルνを構成するどの2つのノルムも異なる素イデアルである。〕の生成元となる整数環ZKの整数gを算出する生成元算出ステップと、
鍵生成装置の秘密鍵集合算出手段が、どの2つのノルムも互いに素である整数環ZKの整数pi〔1≦i≦n;但し、各整数piのノルムはイデアルνのノルムと互いに素である。〕を算出する秘密鍵集合算出ステップと、
鍵生成装置のナップザック生成因子算出手段が、各i〔1≦i≦n〕に対してgai≡pi(mod ν)を満たす有理整数aiを算出するナップザック生成因子算出ステップと、
鍵生成装置の乱数生成手段が、乱数dを生成して、これを出力する乱数生成ステップと、
鍵生成装置のナップザック生成手段が、各有理整数ai〔1≦i≦n〕に乱数dを加算して有理整数bi〔1≦i≦n〕を生成するナップザック生成ステップと、
公開鍵は少なくとも正の有理整数k、有理整数bi〔1≦i≦n〕、秘密鍵は少なくともイデアルν、正の有理整数k、整数環ZKの整数g、乱数d、整数環ZKの整数pi〔1≦i≦n〕であるとして、
鍵生成装置の対暗号化装置送信手段が、公開鍵を暗号化装置に送信可能な対暗号化装置送信ステップと、
鍵生成装置の対復号化装置送信手段が、秘密鍵を復号化装置に送信可能な対復号化装置送信ステップと、
暗号化装置の対鍵生成装置受信手段が、鍵生成装置から公開鍵を受信する対鍵生成装置受信ステップと、
暗号化装置の符号変換手段が、平文を符号列に変換し(符号変換)、符号列を平文に変換する(逆符号変換)ことが可能な符号変換方式によって、平文Mを長さn、重みkの符号列m={mi}〔1≦i≦n;但し、Σi=1 nmi=kとする。〕に変換する符号変換ステップと、
暗号化装置の暗号化手段が、符号列miおよび公開鍵biから暗号文c=Σi=1 nmibiを生成する暗号化手段と、
暗号化装置の対復号化装置送信手段が、暗号文cを復号化装置に送信する対復号化装置送信ステップと、
復号化装置の対鍵生成装置受信手段が、鍵生成装置から秘密鍵を受信する対鍵生成装置受信ステップと、
復号化装置の対暗号化装置受信手段が、暗号文cを暗号化装置から受信する対暗号化装置受信ステップと、
復号化装置の指数算出手段が、暗号文cから秘密鍵kと秘密鍵dとの積を減算して指数rを算出する指数算出ステップと、
復号化装置の冪乗剰余演算手段が、指数r、秘密鍵gおよびνからu≡gr(mod ν)を演算した冪乗剰余演算結果uを算出する冪乗剰余演算ステップと、
復号化装置の符号再生手段が、冪乗剰余演算結果uを各秘密鍵pi〔1≦i≦n〕で除し、割り切れた場合と割り切れなかった場合とでそれぞれ異なる符号値wiを与え、符号列w={wi}〔1≦i≦n〕を算出する符号再生ステップと、
復号化装置の復号化手段が、上記符号変換ステップで用いた符号変換方式によって、符号列wを平文に変換してこの平文を出力する復号化ステップとを有する
ことを特徴とする乗法型ナップザック暗号復号方法。 A key generation device, an encryption device, and a decryption device are connected to each other so that data transmission is possible,
The storage means of the key generation device stores positive rational integers n and k,
The plaintext M is stored in the storage means of the encryption device,
A base setting step in which the base setting means of the key generation device sets at least the ideal ν of the integer ring Z K of the algebraic field K;
The generation source calculation means of the key generation device has each irreducible residue class group (Z K / τ j ) × [1 ≦ j ≦ s; τ j is a prime ideal in which any two norms constituting the ideal ν are different. A generating element calculation step of calculating the integer g of the ring of integers Z K as a generator of]
Private key set calculating unit of the key generation device, the integer p i [1 ≦ i ≦ n any two norms is also relatively prime integers ring Z K; however, the norm of each integer p i is the norm of an ideal ν mutually It is prime. A secret key set calculating step for calculating
Knapsack generation factor calculation means of the key generation device, a knapsack generation factor calculation step of calculating a rational integer a i satisfying g ai ≡p i (mod ν) for each i [1 ≦ i ≦ n],
A random number generating means of the key generation device generates a random number d and outputs the random number d;
A knapsack generating step of generating a rational integer b i [1 ≦ i ≦ n] by adding a random number d to each rational integer a i [1 ≦ i ≦ n];
Public key is at least positive rational integer k, rational integer b i [1 ≦ i ≦ n], secret key is at least ideal ν, positive rational integer k, integer g of integer ring Z K , random number d, integer ring Z K As an integer p i [1 ≦ i ≦ n],
The encryption device transmission means of the key generation device is capable of transmitting the public key to the encryption device.
A pair decryption device transmitting means of the key generation device, wherein the pair decryption device transmission step is capable of transmitting the secret key to the decryption device;
A key generation device reception step in which the key generation device reception means of the encryption device receives a public key from the key generation device; and
The code conversion means of the encryption device converts the plaintext into a code string (code conversion) and converts the code string into a plaintext (reverse code conversion), and the plaintext M has a length n and a weight. Code sequence m of k = {m i } [1 ≦ i ≦ n; where Σ i = 1 n m i = k. A code conversion step for converting to
An encryption means for generating an encrypted text c = Σ i = 1 n m i b i from a code string m i and a public key b i ;
A pair decryption device transmission unit in which the pair decryption device transmission means of the encryption device transmits the ciphertext c to the decryption device;
A key generation device receiving means for receiving a secret key from the key generation device by the key generation device reception means of the decryption device; and
A receiving device for encrypting device of the decrypting device receives the ciphertext c from the encrypting device;
An exponent calculation step in which the exponent calculation means of the decryption device subtracts the product of the secret key k and the secret key d from the ciphertext c to calculate the exponent r;
A power-residue calculating step in which a power-residue calculating unit of the decryption device calculates a power-residue calculating result u obtained by calculating u≡g r (mod ν) from the exponent r, the secret key g, and ν;
The code reproduction means of the decryption device divides the power residue calculation result u by each secret key p i [1 ≦ i ≦ n], and gives different code values w i depending on whether the result is divisible or not divisible. A code reproduction step of calculating a code string w = {w i } [1 ≦ i ≦ n];
The multiplicative knapsack cryptography characterized in that the decoding means of the decoding apparatus has a decoding step of converting the code string w into plain text by the code conversion method used in the code conversion step and outputting the plain text Decryption method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005367021A JP4685621B2 (en) | 2005-12-20 | 2005-12-20 | Key generation apparatus, encryption apparatus, decryption apparatus, multiplicative knapsack cryptosystem, multiplicative knapsack cipher decryption method and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005367021A JP4685621B2 (en) | 2005-12-20 | 2005-12-20 | Key generation apparatus, encryption apparatus, decryption apparatus, multiplicative knapsack cryptosystem, multiplicative knapsack cipher decryption method and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007171412A JP2007171412A (en) | 2007-07-05 |
JP4685621B2 true JP4685621B2 (en) | 2011-05-18 |
Family
ID=38298084
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005367021A Active JP4685621B2 (en) | 2005-12-20 | 2005-12-20 | Key generation apparatus, encryption apparatus, decryption apparatus, multiplicative knapsack cryptosystem, multiplicative knapsack cipher decryption method and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4685621B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5596835B2 (en) * | 2013-08-14 | 2014-09-24 | 日本電信電話株式会社 | Discrete logarithm calculation device, prior calculation device, discrete logarithm calculation method, prior calculation method, program |
JP7226562B2 (en) * | 2019-08-14 | 2023-02-21 | 日本電信電話株式会社 | Secret softmax function calculation system, secret softmax function calculation device, secret softmax function calculation method, secret neural network calculation system, secret neural network learning system, program |
CN114095151A (en) * | 2020-07-31 | 2022-02-25 | 马上消费金融股份有限公司 | Encryption and decryption method, authentication method, device, equipment and storage medium |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002215024A (en) * | 2001-01-18 | 2002-07-31 | Nippon Telegr & Teleph Corp <Ntt> | Knapsack type public key cryptographic system, public key generation method and device therefor, and program and recording medium therefor |
-
2005
- 2005-12-20 JP JP2005367021A patent/JP4685621B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002215024A (en) * | 2001-01-18 | 2002-07-31 | Nippon Telegr & Teleph Corp <Ntt> | Knapsack type public key cryptographic system, public key generation method and device therefor, and program and recording medium therefor |
Also Published As
Publication number | Publication date |
---|---|
JP2007171412A (en) | 2007-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101965628B1 (en) | Terminal device for performing homomorphic encryption, server device for calculating encrypted messages, and methods thereof | |
KR101027199B1 (en) | Key sharing system, shared key creation device, and shared key restoration device | |
JP4879951B2 (en) | Transpose data conversion for security enhancement | |
JP2020528232A (en) | Terminal devices that perform homomorphic encryption, server devices that process the ciphertext, and their methods | |
JP6363032B2 (en) | Key change direction control system and key change direction control method | |
KR102019159B1 (en) | Apparatus and methdo for giving the compressed encryption functionality to integer-based homomorphic encryption schemes | |
JP5432736B2 (en) | Keyword search system for encrypted information, keyword search method, search request device, search agent device, program, recording medium | |
JP2011164607A (en) | Method and system for privacy-preserving computation of edit distance of symbol sequence | |
CN102187617B (en) | cryptographic system | |
US7936874B2 (en) | Information transfer system, encryption device, and decryption device | |
JPWO2018016330A1 (en) | Communication terminal, server device, program | |
JP2006311383A (en) | Data managing method, data management system and data managing device | |
JP4685621B2 (en) | Key generation apparatus, encryption apparatus, decryption apparatus, multiplicative knapsack cryptosystem, multiplicative knapsack cipher decryption method and program | |
JP2001255814A (en) | Decoding method, decoding device, and recording medium for decoding program | |
JP7125857B2 (en) | Encryption system, encryption device, decryption device, encryption method, decryption method, and program | |
JP5730805B2 (en) | Hierarchical inner product encryption system based on lattice problem, hierarchical inner product encryption method and apparatus based on lattice problem | |
JP2011040932A (en) | Authenticated encryption device, authenticated encryption method, verified decryption device, verified decryption method, encryption system, program, recording medium | |
JP5713947B2 (en) | Proxy encryption system, proxy encryption method, consignment device, proxy device | |
JP5038866B2 (en) | Encryption communication method, encryption device, decryption device, and program thereof | |
KR101133988B1 (en) | Method for encrypting and decrypting stream and cryptographic file systems thereof | |
JPWO2005098796A1 (en) | How to apply padding to ensure the security of cryptography | |
WO2022254578A1 (en) | Cryptographic system, ciphertext updating device, and program | |
JP7520255B2 (en) | CONFIDENTIAL INFORMATION PROCESSING SYSTEM, CONFIDENTIAL INFORMATION PROCESSING METHOD, AND CONFIDENTIAL INFORMATION PROCESSING PROGRAM | |
JP6885325B2 (en) | Cryptographic device, decryption device, encryption method, decryption method, program | |
Dhiman et al. | Comparative Analysis and Scrutiny of Key Authentication Techniques in Fully Homomorphic Schemes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080128 |
|
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: 20110201 |
|
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: 20110210 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140218 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4685621 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |