JP2007151073A - Key generation program - Google Patents

Key generation program Download PDF

Info

Publication number
JP2007151073A
JP2007151073A JP2006164589A JP2006164589A JP2007151073A JP 2007151073 A JP2007151073 A JP 2007151073A JP 2006164589 A JP2006164589 A JP 2006164589A JP 2006164589 A JP2006164589 A JP 2006164589A JP 2007151073 A JP2007151073 A JP 2007151073A
Authority
JP
Japan
Prior art keywords
lattice
coefficient vector
key
key generation
public key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006164589A
Other languages
Japanese (ja)
Inventor
Mitsuru Tada
充 多田
Shunichi Hayashi
林  俊一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chiba University NUC
Original Assignee
Chiba University NUC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chiba University NUC filed Critical Chiba University NUC
Priority to JP2006164589A priority Critical patent/JP2007151073A/en
Publication of JP2007151073A publication Critical patent/JP2007151073A/en
Pending legal-status Critical Current

Links

Abstract

<P>PROBLEM TO BE SOLVED: To provide a key generation program which seems to be able to compose a public key cipher system indicating that a based matter is safe (i.e. indicates NP perfection), and proves safety. <P>SOLUTION: A key generation program makes a computer function as a lattice base generator generating a lattice base V of m rows n columns (m and n are integers larger than 0) by using a random number prepared by a random number generator, a coefficient vector generator generating a coefficient vector x of n columns by using the random number prepared by the random number generator, a cipher key generator storing the coefficient vector x generated by the coefficient vector generator as a cipher key in a recording medium, and a public key generator storing in the recording medium a combination of the lattice base V generated by the lattice base generator and l<SB>p</SB>norm K obtained based on the lattice base V and the coefficient vector x generated by the coefficient vector generator. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は、鍵生成プログラムに関する。   The present invention relates to a key generation program.

近年、社会の情報化が進むにつれて、様々な機能を電子化する試みが行われている。特に、電子投票、電子契約や電子現金などの実現が試みられているが、これらのために公開鍵暗号方式、公開鍵認証方式、電子署名方式など(これらを公開鍵暗号系と総称する)が基盤技術として非常に重要な役割を果たしている。   In recent years, with the progress of computerization of society, attempts have been made to digitize various functions. In particular, attempts have been made to realize electronic voting, electronic contracts, electronic cash, and the like. For these, public key cryptosystems, public key authentication systems, electronic signature systems, etc. (these are collectively referred to as public key cryptosystems). It plays a very important role as a basic technology.

公開鍵暗号系では公開鍵と秘密鍵という2つの異なる、しかし互いに数学的な関係を有する鍵の組を用いる。ここで、公開鍵はネットワーク上で公開されるので、公開鍵から秘密鍵を計算することが困難となるような数学的関係を利用しなければならない。通常は、数学的な関係として片方向の計算は容易であるが、逆方向の計算は困難であるという計算問題を用いる。システムで用いる鍵の安全性はシステム全体の安全性に多大な影響を与えるので、安全な鍵を生成する鍵生成方式を構成することは非常に重要な課題である。   Public key cryptosystems use two different sets of keys, a public key and a private key, but which have a mathematical relationship with each other. Here, since the public key is made public on the network, it is necessary to use a mathematical relationship that makes it difficult to calculate the secret key from the public key. Usually, a mathematical problem is used in which a one-way calculation is easy as a mathematical relationship, but a reverse calculation is difficult. Since the security of keys used in the system greatly affects the security of the entire system, it is a very important issue to construct a key generation method for generating a secure key.

逆方向の計算が困難な問題として、現在は素因数分解問題や離散対数問題などが用いられている。しかし、これらの問題については、難しいという予測はされているが、そのような証明は与えられていない。さらに、これらの問題を計算するアルゴリズムが長年研究されており、アルゴリズムを有効に機能させないためには鍵長を長くする必要があり、そのため公開鍵暗号系の効率が非常に悪くなってしまっている。また、量子計算機が実用化されるとこれらの問題は効率的に解くことができることが知られている。そのため、量子計算機を用いても効率的に解くことができないような問題を用いる必要がある。このような問題の候補として、NP完全と呼ばれるクラスに属する問題がある。   Currently, prime factorization problems and discrete logarithm problems are used as problems that are difficult to calculate in the reverse direction. However, these problems have been predicted to be difficult, but no such proof has been given. In addition, algorithms for calculating these problems have been studied for many years, and it is necessary to increase the key length in order to prevent the algorithm from functioning effectively, which makes public key cryptosystems very inefficient. . It is also known that these problems can be solved efficiently when a quantum computer is put into practical use. Therefore, it is necessary to use a problem that cannot be solved efficiently even if a quantum computer is used. As a candidate for such a problem, there is a problem that belongs to a class called NP-complete.

NP完全問題の中でも近年盛んに研究がなされている問題として、格子を利用した問題がある。ここで、格子とはv,v,…,vをm次元整数ベクトル空間に属するn本の線形独立なベクトルとしたときに、これらの整数一次結合によって構成される空間である。ベクトルv,v,…,vを格子基底と呼び行列形式でVと略記する。また、格子ベクトルvをv=a+a+…+aのようにv,v,…,vの一次結合として表わしたとき、それぞれの係数aをベクトル形式(a,a,…,a)で表わし、それを係数ベクトルと呼ぶことにする。格子問題の中でも特に重要な問題として最短ベクトル問題や最近接ベクトル問題が挙げられる。また、それらの問題の近似版として近似最短ベクトル問題や近似最近接ベクトル問題がある。しかし、これらの問題は鍵生成方式が基づく問題としては扱いづらい、また、構成された公開鍵暗号系の安全性が証明できないなどの課題がある。 Among the NP complete problems, there is a problem using a lattice as a problem that has been actively studied in recent years. Here, the lattice is a space formed by linear combination of integers when v 1 , v 2 ,..., V n are n linearly independent vectors belonging to the m-dimensional integer vector space. Vector v 1, v 2, ..., a v n abbreviated as V in matrix form is called a lattice. When the lattice vector v is expressed as a linear combination of v 1 , v 2 ,..., V n such as v = a 1 v 1 + a 2 v 2 +... + An v n , each coefficient a i is a vector. It is expressed in the form (a 1 , a 2 ,..., A n ) and is called a coefficient vector. Among the lattice problems, particularly important problems are the shortest vector problem and the nearest neighbor vector problem. There are approximate shortest vector problems and approximate nearest vector problems as approximate versions of these problems. However, these problems are difficult to handle as problems based on the key generation method, and there is a problem that the security of the configured public key cryptosystem cannot be proved.

そして従来の鍵生成方式に関する技術として、例えば下記非特許文献1には、RSA鍵生成方式が記載されており、また、例えば下記非特許文献2にはGGH鍵生成方式が記載されている。   As a technique related to a conventional key generation method, for example, the following Non-Patent Document 1 describes an RSA key generation method, and for example, the following Non-Patent Document 2 describes a GGH key generation method.

ここで、RSA鍵生成方式の例について説明する。この鍵生成方式は素因数分解問題の難しさに基づいて構成される。鍵生成者は2つの素数p,q(pとqは同じビット長)を選び、nをn=p×qとして計算する。整数eを区間[1,φ(n)]上にて、φ(n)との最大公約数が1となるようにランダムに選ぶ。ここで、φ(n)=(p−1)(q−1)である。そして、整数dを区間[1,φ(n)]に属する方程式d×e≡1(mod φ(n))の解として計算する。公開鍵は組(n,e)、秘密鍵はdとなる。この方式においては、nから素因数p,qを計算することが困難であるならば、同じく公開鍵から秘密鍵を計算することも困難である。   Here, an example of the RSA key generation method will be described. This key generation method is configured based on the difficulty of the prime factorization problem. The key generator selects two prime numbers p and q (p and q are the same bit length), and calculates n as n = p × q. The integer e is randomly selected so that the greatest common divisor with φ (n) is 1 on the interval [1, φ (n)]. Here, φ (n) = (p−1) (q−1). Then, the integer d is calculated as a solution of the equation d × e≡1 (mod φ (n)) belonging to the interval [1, φ (n)]. The public key is a pair (n, e), and the secret key is d. In this method, if it is difficult to calculate the prime factors p and q from n, it is also difficult to calculate the secret key from the public key.

ここで、GGH鍵生成方式の例についても説明する。この鍵生成方式は双対直交性欠陥率(dual orthogonality defect)と呼ばれる値が小さいような格子基底を計算することの難しさに基づいて構成される。この方式での秘密鍵は格子基底Rであり、公開鍵はRと同じ格子を生成する格子基底Bと正の実数σである。Rは双対直交性欠陥率が小さくなるように構成し、Bは双対直交性欠陥率が大きくなるように構成する。このような基底を生成する方法の1つとして、有限の範囲から格子基底Rをランダムに選び(つまり、それぞれの基底成分を有限の区間からランダムに選び)、その基底ベクトルを混ぜ合わせる(つまり、基底行列に基本変形を加える)ことで格子基底Bを生成することができる。双対直交性欠陥率が大きい格子基底Bから小さい格子基底Rを計算することが困難であるならば、同じく公開鍵から秘密鍵を計算することも困難となる。   Here, an example of the GGH key generation method will also be described. This key generation method is configured on the basis of the difficulty of calculating a lattice base having a small value called a dual orthogonal defect rate. The secret key in this method is the lattice base R, and the public key is the lattice base B that generates the same lattice as R and a positive real number σ. R is configured to reduce the dual orthogonal defect rate, and B is configured to increase the dual orthogonal defect rate. One method for generating such a basis is to randomly select a lattice basis R from a finite range (that is, randomly select each basis component from a finite interval) and mix the basis vectors (that is, The lattice base B can be generated by applying a basic deformation to the base matrix). If it is difficult to calculate a small lattice basis R from a lattice basis B having a large dual orthogonal defect rate, it is also difficult to calculate a secret key from the public key.

R.Rivestら,“A method for obtaining digital signatures and public−key cryptosystems”,Communications of the ACM,vol.21,no.2,pp.120−126,1978.R. Rivest et al., “A method for obtaining digital signatures and public-key cryptosystems”, Communications of the ACM, vol. 21, no. 2, pp. 120-126, 1978. O.Goldreichら,“Public−Key Cryptosystems from Lattice Reduction Problems”,Proceedings of Crypto ‘97,LNCS 1294,Springer−Verlag,1997.O. Goldreich et al., "Public-Key Cryptossystems From Lattice Reduction Problems", Proceedings of Crypt '97, LNCS 1294, Springer-Verlag, 1997.

しかしながら、上記非特許文献1に記載の技術では素因数分解問題の難しさが数学的に証明されていない(NP完全性の証明がされない)。また、素因数分解問題に基づく公開鍵暗号系では、鍵の長さを大きくしなければならないので、計算効率が悪いという点においても課題を有している。   However, the technique described in Non-Patent Document 1 does not mathematically prove the difficulty of the prime factorization problem (the NP integrity cannot be proved). Moreover, in the public key cryptosystem based on the prime factorization problem, since the key length has to be increased, there is a problem in that the calculation efficiency is poor.

また、上記非特許文献2に記載の技術においても、双対直交性欠陥率が小さいような格子基底を計算することの困難性(NP困難性)が証明されていないという点において課題を有している。   The technique described in Non-Patent Document 2 also has a problem in that the difficulty of calculating a lattice basis (NP difficulty) having a small dual orthogonal defect rate has not been proved. Yes.

そこで、本発明は、上記課題を解決し、基づく問題が安全であることが示され(つまりNP完全であることが示され)、かつ、計算の効率が良い公開鍵暗号系を構成できる鍵生成プログラムを提供することを目的とする。   Therefore, the present invention solves the above-described problems, shows that the problem based on it is safe (that is, shows that it is NP-complete), and generates a key that can constitute a public key cryptosystem with high computational efficiency The purpose is to provide a program.

本発明者らは、上記課題について鋭意検討を行ったところ、格子を利用した新たな問題であるBinary Exact Length Vector Problem(BELVP)を定義し、そのNP完全性を証明することによって、BELVPの困難性に基づく鍵生成方式を構成できることに想到し、本発明を完成させるに至った。BELVPとは入力として格子基底Vと格子ベクトルのノルムKが与えられたときに、格子基底Vが張る格子においてノルムKをもち、かつ、係数ベクトルがバイナリベクトルであるような格子ベクトルを計算する問題である。そして、BELVPはNP完全であることが証明される。また、係数ベクトルをバイナリベクトルに制限せず、整数ベクトルとして計算問題を構成することも可能である。この場合はNP完全であることは証明されていないが、BELVPと同様に難しい計算問題であることが予想される。BELVPにおいて、格子基底Vの各成分を非負整数、用いるノルムをlノルムに制限した場合は効率的な公開鍵暗号系を構成する際に特に有用であると考えられる。lノルムに関しては、2つの正成分を持つベクトルx,yとスカラーα≧0に対して、|x+y|=|x|+|y|,|αx|=α|x|が成立する。lノルムの計算では高々m回の加算のみが行われるので、lノルムの計算は非常に効率的に行われる。従って、lノルムを用いた公開鍵暗号系は効率的な計算が可能になる。 The inventors of the present invention have made extensive studies on the above-mentioned problems. As a result, a new problem using a lattice, Binary Exact Vector Probe (BELVP), is defined, and by verifying its NP integrity, it is difficult to achieve BELVP. As a result, the present invention has been completed. BELVP is a problem of calculating a lattice vector having a norm K in a lattice spanned by the lattice base V and a coefficient vector being a binary vector when a lattice base V and a norm K of the lattice vector are given as inputs. It is. And BELVP proves to be NP-complete. It is also possible to configure the calculation problem as an integer vector without limiting the coefficient vector to a binary vector. In this case, it is not proved that the NP is complete, but it is expected to be a difficult calculation problem like the BELVP. In BELVP, if each component of the lattice base V is a non-negative integer and the norm to be used is limited to l 1 norm, it is considered to be particularly useful in constructing an efficient public key cryptosystem. With respect to the l 1 norm, | x + y | = | x | + | y | and | αx | = α | x | hold for vectors x and y having two positive components and a scalar α ≧ 0. In the calculation of the l 1 norm, only at most m additions are performed, so the calculation of the l 1 norm is performed very efficiently. Therefore, the public key cryptosystem using the l 1 norm can be efficiently calculated.

即ち、本発明に係る鍵生成プログラムは、基づく問題が安全であることが示され、かつ、効率的な公開鍵暗号系を構成できる。   In other words, the key generation program according to the present invention shows that the problem based on it is safe and can constitute an efficient public key cryptosystem.

より具体的に、本鍵生成プログラムは、コンピュータに、乱数生成部により作成される乱数を用いてm行n列(m、nは0より大きい整数)の格子基底Vを生成する格子基底生成部と、乱数生成部により作成される乱数を用いてn列の係数ベクトルxを生成する係数ベクトル生成部と、係数ベクトル生成部が生成した係数ベクトルxを秘密鍵として記録媒体に格納させる秘密鍵生成部と、格子基底生成部が生成した格子基底V、及び、格子基底Vと係数ベクトル生成部が生成した係数ベクトルxとに基づいて得られるlノルムKの組を公開鍵として記録媒体に格納させる公開鍵生成部と、して機能させる。 More specifically, the present key generation program causes the computer to generate a lattice base generation unit that generates a lattice base V of m rows and n columns (m and n are integers greater than 0) using random numbers generated by the random number generation unit. A coefficient vector generation unit that generates an n-column coefficient vector x using a random number generated by the random number generation unit, and a secret key generation that stores the coefficient vector x generated by the coefficient vector generation unit as a secret key in a recording medium storing the parts, lattice V of the lattice generator has generated, and the recording medium a set of l p norm K obtained based on the coefficient vector x lattice V and the coefficient vector generating unit has generated a public key And function as a public key generation unit.

また、本鍵生成プログラムにおいて、係数ベクトルxは、0又は1を成分とするバイナリベクトルであることも望ましく、格子基底Vにより得られる基底ベクトルは、互いに線形独立であり、成分は非負整数とすることも望ましく、lノルムのpは1であることも望ましい。また、本鍵生成プログラムは、電子署名方式プログラム、公開鍵暗号方式プログラム、公開鍵認証方式プログラムなどに代表される全ての公開鍵暗号系に用いることができる。 In this key generation program, the coefficient vector x is preferably a binary vector having 0 or 1 as components, and the basis vectors obtained by the lattice basis V are linearly independent from each other, and the components are non-negative integers. It is also desirable that p in the l p norm is also 1. The key generation program can be used for all public key cryptosystems represented by an electronic signature scheme program, a public key cryptosystem program, a public key authentication scheme program, and the like.

ここで、lノルムとはxをm次元整数ベクトルとするときに、m個の成分の絶対値それぞれをp乗し、その総和をとり、さらにその総和に対してp乗根をとった値である。問題YがNP完全問題であるとは、YがNPに属し、かつ、NPに属する任意の問題がYに多項式時間多対一帰着するときにいう。多項式時間多対一帰着するとは、ある2つの問題XとYに対して、xがXに属するときのみf(x)がYに属するような多項式時間計算可能関数fが存在するときにいう。問題XがNPに属するとは、xがXに属するかどうかを判定する非決定性多項式時間チューリング機械が存在するときにいう。 Here, the l p norm is a value obtained by taking the absolute value of each of m components to the p-th power when x is an m-dimensional integer vector, taking the sum, and taking the p-th root of the sum. It is. A problem Y is an NP-complete problem when Y belongs to NP and any problem belonging to NP results in Y in polynomial time many-to-one. Polynomial time many-to-one reduction means that for some two problems X and Y, there exists a polynomial time computable function f such that f (x) belongs to Y only when x belongs to X. Problem X belongs to NP when there is a non-deterministic polynomial time Turing machine that determines whether x belongs to X.

以上により、鍵生成方式が基づく問題の困難性の証明が与えられ、かつ、格子上での算術演算が定義されたため、基づく問題が安全であることが示され、効率的な公開鍵暗号系を構成できる鍵生成プログラムを提供することができる。   The above gives a proof of the difficulty of the problem based on the key generation method, and the arithmetic operation on the grid is defined, which indicates that the problem based on the security is safe and an efficient public key cryptosystem. A configurable key generation program can be provided.

更には、基づく問題を破る効率的なアルゴリズムが存在しないため、鍵長を短くすることが可能となり、また、公開鍵暗号系を構成する際に用いる計算も効率的であるため、本鍵生成方式を利用した公開鍵暗号系は効率的な計算が可能になると予測される。   Furthermore, since there is no efficient algorithm that breaks the problem based on it, it is possible to shorten the key length, and the calculation used when configuring the public key cryptosystem is also efficient. It is expected that a public-key cryptosystem using Mathematica will be able to perform efficient calculations.

以下、本発明の実施形態について図面を参照しつつ詳細に説明する。ただし、本発明は多くの異なる態様による実施が可能であり、本実施形態に限定されるものではない。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. However, the present invention can be implemented in many different modes and is not limited to the present embodiment.

(実施形態1)
図1は、本実施形態に係る鍵生成プログラムを電子署名方式に用いる場合の処理を表す図である。本鍵生成プログラム11は、電子署名方式プログラム1に組み込まれて機能する。本電子署名方式プログラム1は、作成された文書データに対し、文書データ及び鍵生成プログラム11により生成される秘密鍵に基づき、署名された文書データを作成する。この署名された文書データは他者に送付が可能であり、その送付された他者は公開鍵を参照することでこの署名された文書データが改変等されていないこと等の検証作業を行うことができる。
(Embodiment 1)
FIG. 1 is a diagram illustrating processing when the key generation program according to the present embodiment is used in an electronic signature scheme. The key generation program 11 functions by being incorporated in the electronic signature scheme program 1. The electronic signature scheme program 1 creates signed document data for the created document data based on the document data and the secret key generated by the key generation program 11. This signed document data can be sent to others, and the sent others can verify that the signed document data has not been altered by referring to the public key. Can do.

図2は、本電子署名方式プログラムの機能ブロックを示す図である。本電子署名方式プログラムは、鍵生成プログラム11と、署名作成プログラム12とを少なくとも有して構成されている。また鍵生成プログラム11は更に、乱数生成部111と、格子基底生成部112、公開鍵生成部113、係数ベクトル生成部114、秘密鍵生成部115と、を有して構成されている。なお署名作成プログラム12は、上記鍵生成プログラムが生成する秘密鍵と、文書データとに基づき署名された文書データを作成する。なお、本電子署名方式プログラムは、例えばパーソナルコンピュータにおけるハードディスク等の記憶媒体に格納され、ユーザーのニーズに応じて実行される。   FIG. 2 is a diagram showing functional blocks of the electronic signature scheme program. This electronic signature scheme program is configured to have at least a key generation program 11 and a signature creation program 12. The key generation program 11 further includes a random number generation unit 111, a lattice base generation unit 112, a public key generation unit 113, a coefficient vector generation unit 114, and a secret key generation unit 115. The signature creation program 12 creates signed document data based on the secret key generated by the key generation program and the document data. The electronic signature method program is stored in a storage medium such as a hard disk in a personal computer, for example, and is executed according to the user's needs.

ここで鍵生成プログラム11における処理について具体的に説明する。まず、鍵生成プログラム11は、格子基底生成部112においてm行n列の格子基底Vを作成する(m、nは0より大きい整数であり、mは格子の次元、nは格子のランク(セキュリティパラメータ)である。)。なおここで格子基底Vのそれぞれの成分はある程度のビット長を有する乱数として乱数生成部111により選ばれる。なおこの格子基底生成部112により作成される格子基底Vは、公開鍵生成部113が生成する公開鍵の一部となり、データとして記憶媒体に格納される。また、格子基底生成部112は、この作成された格子基底Vから得られる基底ベクトルが互いに線形独立であるか否かを判定する。なお基底ベクトルとは、格子基底Vをm行1列の列ベクトルに分解した場合における各列ベクトルをいう。基底ベクトルが互いに線形独立であるか否かの判断は周知な手法により計算することができ、特段に限定されるわけではないが、格子基底Vの行列式を計算することにより確認できる。なお、本実施形態においては、計算の簡略化のため基底行列の成分はいずれも非負整数であることが極めて望ましいが、計算の困難さを伴う場合を許容するのであれば、整数でない場合も可能ではある。   Here, the processing in the key generation program 11 will be specifically described. First, the key generation program 11 creates an m-by-n lattice base V in the lattice base generation unit 112 (m and n are integers greater than 0, m is a lattice dimension, and n is a lattice rank (security Parameter)). Here, each component of the lattice base V is selected by the random number generation unit 111 as a random number having a certain bit length. Note that the lattice base V created by the lattice base generation unit 112 becomes a part of the public key generated by the public key generation unit 113 and is stored as data in the storage medium. In addition, the lattice basis generation unit 112 determines whether the basis vectors obtained from the created lattice basis V are linearly independent from each other. The basis vector refers to each column vector when the lattice basis V is decomposed into a column vector of m rows and 1 column. Judgment whether the basis vectors are linearly independent from each other can be calculated by a well-known method and is not particularly limited, but can be confirmed by calculating a determinant of the lattice basis V. In this embodiment, it is highly desirable that all the components of the base matrix are non-negative integers for the sake of simplification of calculation. However, it is possible to use non-integers as long as the case involving difficulty in calculation is allowed. It is.

一方、係数ベクトル作成部114は、n次元バイナリベクトルの係数ベクトルxを作成する。この成分は、乱数生成部111によりランダムに選択され、各成分は0又は1である。なお、この係数ベクトル作成部114により作成された係数ベクトルは、秘密鍵となり、秘密鍵生成部115においてデータとして記憶媒体に格納される。なおここで、係数ベクトルxの成分は0又は1のバイナリデータであることが鍵の長さの観点から極めて望ましいが、これを許容できるのであれば整数も任意に選択できる。   On the other hand, the coefficient vector creation unit 114 creates a coefficient vector x of an n-dimensional binary vector. This component is randomly selected by the random number generator 111, and each component is 0 or 1. The coefficient vector created by the coefficient vector creating unit 114 serves as a secret key, and is stored in the storage medium as data by the secret key generating unit 115. Here, the component of the coefficient vector x is preferably binary data of 0 or 1, from the viewpoint of the key length, but an integer can be arbitrarily selected as long as this is acceptable.

次に、公開鍵生成部113は、上記作成された格子基底Vと係数ベクトルxに基づいて格子ベクトルVxを求め、この格子ベクトルVxのlノルムKを計算し、データとして記憶媒体に格納する。ここでlノルムKとは、以下の式で与えられる。なおpは、1以上の整数であれば特段に限定されるものではないが、本実施形態では計算の容易性の観点から1の場合を採用する。
Next, the public key generation unit 113 obtains a lattice vector Vx based on the created lattice base V and the coefficient vector x, calculates the l p norm K of the lattice vector Vx, and stores it as a data in a storage medium. . Here, the l p norm K, is given by the following equation. Note that p is not particularly limited as long as it is an integer of 1 or more, but in the present embodiment, the case of 1 is adopted from the viewpoint of ease of calculation.

この結果、公開鍵生成部113は、格子基底V及び求めたlノルムKの組を鍵(V,K)として記憶媒体に格納する。これにより、本鍵生成プログラムは秘密鍵及び公開鍵を生成することができる。 As a result, the public key generation unit 113 stores the set of lattice V and obtained l p norm K keys (V, K) as the storage medium. Thereby, the key generation program can generate a secret key and a public key.

格子基底の成分が非負整数であり、係数ベクトルがバイナリベクトルであり、lノルムのpが1である場合の署名生成は以下のようにして行われる。まず、署名生成者はランダムな係数ベクトルrを選択する。これは署名者の乱数生成部により空間[0,N]からランダムに選択される。ここで、Nはある程度の大きさを持つ正の定数である。そして上記で作成された係数ベクトルrと署名者の公開鍵記憶部に記憶されている格子基底Vに基づいて格子ベクトルVrを生成し、この格子ベクトルのlノルムcを計算する。そして署名者は署名を付したい文書mと、lノルムcのハッシュ値e=h(m,c)を計算する。ここで、用いるハッシュ関数hは暗号学的に安全であることが示されているものであれば、任意のハッシュ関数を用いることができる。そして、最後に署名成分yをy=r+exとして計算する。ここで、xは署名者の秘密鍵記憶部に保存されている署名者の秘密鍵である。最後に署名者は(e,y)を文書mに対する署名として出力する。 Signature generation is performed as follows when the lattice basis component is a non-negative integer, the coefficient vector is a binary vector, and p of the l p norm is 1. First, the signature generator selects a random coefficient vector r. This is randomly selected from the space [0, N] n by the signer's random number generator. Here, N is a positive constant having a certain size. Then, a lattice vector Vr is generated based on the coefficient vector r created above and the lattice base V stored in the signer's public key storage unit, and the l 1 norm c of this lattice vector is calculated. Then, the signer calculates a document m to be signed and a hash value e = h (m, c) of l 1 norm c. Here, any hash function can be used as long as the hash function h used is shown to be cryptographically secure. Finally, the signature component y is calculated as y = r + ex. Here, x is the signer's private key stored in the signer's private key storage unit. Finally, the signer outputs (e, y) as a signature for the document m.

署名検証に関しては、検証者は入力として受け取った文書mと文書mに関する署名(e,y)に対して、署名者の公開鍵(V,K)を用いて以下のような計算を行う。ここで、署名者の公開鍵は公開されて配布されており、検証者はその公開鍵を得て自身のコンピュータの公開鍵記憶部に記憶してあるとする。まず、ベクトルyを係数ベクトルとする格子ベクトルVyを計算し、そのlノルムdを計算する。そして、dからeKを減算し、その値と文書mとに基づいて計算されるハッシュ値h(m,d−eK)とeが等しくなるかを検証する。等しいならば署名(e,y)は署名者によって正しく作成された署名である。等しくないならば、検証者は署名が偽造されている、又は、文書が改変されているとして、署名を拒否する。なおこの署名検証はプログラムとして、電子署名方式プログラムの一部として組み込むことが可能であるし、単独のプログラムとして実行させることも可能である。 With respect to signature verification, the verifier performs the following calculation on the document m received as input and the signature (e, y) relating to the document m, using the signer's public key (V, K). Here, it is assumed that the public key of the signer is made public and distributed, and the verifier obtains the public key and stores it in the public key storage unit of his computer. First, a lattice vector Vy having the vector y as a coefficient vector is calculated, and its l 1 norm d is calculated. Then, eK is subtracted from d, and whether or not the hash value h (m, d−eK) calculated based on the value and the document m is equal to e is verified. If equal, the signature (e, y) is a signature created correctly by the signer. If not equal, the verifier rejects the signature as the signature has been forged or the document has been altered. This signature verification can be incorporated as a part of a digital signature scheme program as a program, or can be executed as a single program.

ここで、上記の署名方式の安全性について説明する。電子署名方式の安全性を厳密に証明するためには、選択文書攻撃を行う偽造者に対して、どのような文書の偽造も不可能であることを示さなければならない。上記の署名方式の安全性を証明するためには、上記の署名方式に対応する認証方式(下記の認証方式)にゼロ知識性と呼ばれる性質が必要である。ここで、ゼロ知識性とは認証方式において、証明者と検証者が通信をした際に、証明者の保持する秘密情報に関して、一切の部分情報も検証者は分からないという性質である。対応する認証方式がゼロ知識性を有することが示されれば、後はID Reduction補題、Heavy
Row補題を用いて上記の署名方式の安全性の証明をすることが可能である。現在のところは、この性質は示されていないため上記のような安全性の証明も構成できていない。しかし、現実的な攻撃を考えた場合、ハッシュ関数がランダムであるならば、検証式を満たすような署名を構成することは難しいと考えられる。
Here, the security of the above signature scheme will be described. In order to strictly prove the security of the electronic signature method, it is necessary to show that a forger who performs a selected document attack cannot forge any document. In order to prove the security of the above signature scheme, an authentication scheme corresponding to the above signature scheme (the following authentication scheme) requires a property called zero knowledge. Here, zero knowledge is a property that in the authentication method, when the prover communicates with the verifier, the verifier does not know any partial information regarding the secret information held by the prover. If the corresponding authentication method is shown to have zero knowledge, then the ID Reduction lemma, Heavy
It is possible to prove the security of the above signature scheme using the Row lemma. At present, this property has not been shown, so the above safety proof cannot be constructed. However, considering a realistic attack, if the hash function is random, it is considered difficult to construct a signature that satisfies the verification formula.

以上、本実施形態に係る鍵生成プログラムにより、基づく問題が安全であることが示され、かつ、効率的な公開鍵暗号系を構成できる鍵生成プログラムを提供することができる。   As described above, the key generation program according to the present embodiment can provide a key generation program that indicates that the problem based on it is safe and that can constitute an efficient public key cryptosystem.

(実施形態2、3)
実施形態1では、電子署名方式プログラムに鍵生成プログラムを用いる例を示したが、本鍵生成プログラムは、公開鍵暗号方式、公開鍵認証方式にも応用が可能である。図3に本鍵生成プログラムを公開鍵暗号方式プログラムに組み込んだ例を、図4に公開鍵認証方式プログラムに組み込んだ例を示す。
(Embodiments 2 and 3)
In the first embodiment, an example in which a key generation program is used as an electronic signature scheme program has been described. However, this key generation program can also be applied to a public key cryptosystem and a public key authentication scheme. FIG. 3 shows an example in which the key generation program is incorporated into a public key cryptosystem program, and FIG. 4 shows an example in which the key generation program is incorporated into a public key authentication scheme program.

図3に記載の公開鍵暗号方式プログラムは、作成された文書データを公開暗号化方式プログラムにより暗号文データとする。なおこの場合において、公開鍵暗号化方式プログラム2は、鍵生成プログラム21、暗号化プログラム22、とを有して構成され、鍵生成プログラム21は実施形態1とほぼ同様の構成を採用することができる。なおこの場合において、作成された秘密鍵は、暗号文データの復号に用いられ、作成された公開鍵は、文書データの暗号化に利用され、公開鍵暗号方式を実現できる。なお暗号化プログラム22は、鍵生成プログラム21により作成された公開鍵を利用し、暗号化された文書データを作成することができる。   The public key cryptography program shown in FIG. 3 converts the created document data into ciphertext data using the public cryptography program. In this case, the public key encryption scheme program 2 is configured to include a key generation program 21 and an encryption program 22, and the key generation program 21 may employ substantially the same configuration as in the first embodiment. it can. In this case, the created secret key is used for decrypting the ciphertext data, and the created public key is used for encrypting the document data, thereby realizing a public key cryptosystem. The encryption program 22 can create encrypted document data using the public key created by the key generation program 21.

図4に記載の公開鍵認証方式プログラムは、ユーザ(証明者)の自己正当性を証明する。なおこの場合において、公開鍵認証方式プログラム3は、鍵生成プログラム31と、証明者プログラム32、検証者プログラム33を用いて構成され、鍵生成プログラム31は実施形態1とほぼ同様の構成を採用することができる。なおこの場合において作成された秘密鍵は証明者の自己正当性の証明に用いられ、公開鍵は、検証者が証明者の正当性を検証する際に用いられ、証明者プログラムと検証者プログラムが互いに通信することにより、認証作業を行うことができる。   The public key authentication method program described in FIG. 4 proves the self-validity of the user (certifier). In this case, the public key authentication scheme program 3 is configured using a key generation program 31, a prover program 32, and a verifier program 33, and the key generation program 31 employs a configuration that is substantially the same as that of the first embodiment. be able to. The private key created in this case is used to prove the self-validity of the prover, the public key is used when the verifier verifies the validity of the prover, and the prover program and the verifier program Authentication work can be performed by communicating with each other.

格子基底の成分が非負整数であり、係数ベクトルがバイナリベクトルであり、lノルムのpが1である場合の公開鍵認証方式は以下のようにして行われる。まず、証明者はランダムな係数ベクトルrを選択する。これは証明者の乱数生成部により空間[0,N]からランダムに選択される。ここで、Nはある程度の大きさを持つ正の定数である。そして上記で作成された係数ベクトルrと証明者の公開鍵記憶部に記憶されている格子基底Vに基づいて格子ベクトルVrを生成し、この格子ベクトルのlノルムcを計算する。そして証明者はlノルムcを検証者に送信する。検証者はcを受け取った後に、整数eをランダムに選ぶ。ここで、eは検証者の乱数生成部により区間[0,L]からランダムに選ばれる。検証者は証明者にeを送信する。証明者はeを受け取った後、係数ベクトルyをy=r+exとして計算する。ここで、xは証明者の秘密鍵記憶部に保存されている証明者の秘密鍵である。証明者は係数ベクトルyを検証者に送信する。 The public key authentication method when the lattice base component is a non-negative integer, the coefficient vector is a binary vector, and p of the l p norm is 1, is performed as follows. First, the prover selects a random coefficient vector r. This is randomly selected from the space [0, N] n by the prover's random number generator. Here, N is a positive constant having a certain size. Then, a lattice vector Vr is generated based on the coefficient vector r created above and the lattice basis V stored in the public key storage unit of the prover, and the l 1 norm c of this lattice vector is calculated. Then, the prover transmits l 1 norm c to the verifier. The verifier picks an integer e at random after receiving c. Here, e is randomly selected from the interval [0, L] by the verifier's random number generator. The verifier sends e to the prover. After receiving e, the prover calculates the coefficient vector y as y = r + ex. Here, x is the prover's private key stored in the prover's private key storage unit. The prover transmits the coefficient vector y to the verifier.

検証者はyを受信した後、証明者の公開鍵(V,K)を用いて以下のような計算を行う。ここで、証明者の公開鍵は公開されて配布されており、検証者はその公開鍵を得て自身のコンピュータの公開鍵記憶部に記憶してあるとする。まず、ベクトルyを係数ベクトルとする格子ベクトルVyを計算し、そのlノルムdを計算する。そして、dからeKを減算し、その値が証明者によって送信されたcと等しくなるかを検証する。等しいならば検証者は証明者を正当なユーザーであると認識することができる。 After the verifier receives y, the verifier performs the following calculation using the prover's public key (V, K). Here, it is assumed that the public key of the prover is made public and distributed, and the verifier obtains the public key and stores it in the public key storage unit of his computer. First, a lattice vector Vy having the vector y as a coefficient vector is calculated, and its l 1 norm d is calculated. Then, eK is subtracted from d to verify whether the value is equal to c transmitted by the prover. If they are equal, the verifier can recognize the prover as a valid user.

ここで、上記の認証方式の安全性について説明をする。上記の認証方式がゼロ知識性を有しているかは分かっていない。しかし、健全性と呼ばれる性質を有していることは示される。健全性とは、証明者の秘密情報を持たない攻撃者が、証明者に成りすまして検証者と対話したならば、検証者は高い確率で攻撃者を正当なユーザーであると認識しないという性質である。
以上述べたとおり、本鍵生成プログラムは様々な方式に応用でき、基づく問題が安全であることが示され、かつ、効率的な公開鍵暗号系を構成できる。
Here, the security of the above authentication method will be described. It is not known whether the above authentication method has zero knowledge. However, it is shown to have a property called soundness. Soundness means that if an attacker who does not have the prover's confidential information interacts with the verifier by impersonating the prover, the verifier does not recognize the attacker as a legitimate user with a high probability. is there.
As described above, the key generation program can be applied to various systems, the problem based on it is shown to be safe, and an efficient public key cryptosystem can be configured.

実施形態に係る電子署名方式プログラムにおける処理を示す図。The figure which shows the process in the electronic signature system program which concerns on embodiment. 実施形態に係る鍵生成プログラムの機能ブロックを示す図。The figure which shows the functional block of the key generation program which concerns on embodiment. 他の実施形態に係る公開鍵暗号方式プログラムにおける処理を示す図。The figure which shows the process in the public key encryption system program which concerns on other embodiment. 他の実施形態に係る公開鍵認証方式プログラムにおける処理を示す図。The figure which shows the process in the public key authentication system program which concerns on other embodiment.

符号の説明Explanation of symbols

1…電子署名方式プログラム、11…鍵生成プログラム、12…署名作成プログラム、21…鍵生成プログラム、111…乱数生成部、112…格子基底生成部、113…公開鍵生成部、114…係数ベクトル生成部、115…秘密鍵生成部、 DESCRIPTION OF SYMBOLS 1 ... Electronic signature system program, 11 ... Key generation program, 12 ... Signature generation program, 21 ... Key generation program, 111 ... Random number generation part, 112 ... Lattice base generation part, 113 ... Public key generation part, 114 ... Coefficient vector generation 115, a secret key generation unit,

Claims (5)

コンピュータに、
乱数生成部により作成される乱数を用いてm行n列(m、nは0より大きい整数)の格子基底Vを生成する格子基底生成部と、
前記乱数生成部により作成される乱数を用いてn列の係数ベクトルxを生成する係数ベクトル生成部と、
前記係数ベクトル生成部が生成した係数ベクトルxを秘密鍵として記録媒体に格納させる秘密鍵生成部と、
前記格子基底生成部が生成した前記格子基底V、及び、前記格子基底Vと前記係数ベクトル生成部が生成した係数ベクトルxとに基づいて得られるlノルムKの組を公開鍵として記録媒体に格納させる公開鍵生成部として機能させるための鍵生成プログラム。
On the computer,
A lattice base generation unit that generates a lattice base V of m rows and n columns (m and n are integers greater than 0) using random numbers generated by the random number generation unit;
A coefficient vector generation unit that generates an n-column coefficient vector x using a random number generated by the random number generation unit;
A secret key generation unit that stores the coefficient vector x generated by the coefficient vector generation unit in a recording medium as a secret key;
The lattice V of the lattice generator has generated, and the recording medium a set of l p norm K obtained based on the coefficient vector x that the coefficient vector generating unit and the lattice V is generated as the public key A key generation program for functioning as a public key generation unit to be stored.
前記係数ベクトルxは、0又は1を成分とするバイナリベクトルであることを特徴とする請求項1記載の鍵生成プログラム。   2. The key generation program according to claim 1, wherein the coefficient vector x is a binary vector having 0 or 1 as a component. 前記格子基底Vにより得られる基底ベクトルは、互いに線形独立であることを特徴とする請求項1記載の鍵生成プログラム。   The key generation program according to claim 1, wherein basis vectors obtained by the lattice basis V are linearly independent from each other. 前記lノルムのpは1であることを特徴とする請求項1記載の鍵生成プログラム。 The key generation program according to claim 1, wherein p of the l p norm is 1. 前記格子基底Vの成分は全て非負整数であることを特徴とする請求項1記載の鍵生成プログラム。
2. The key generation program according to claim 1, wherein all the components of the lattice base V are non-negative integers.
JP2006164589A 2005-10-25 2006-06-14 Key generation program Pending JP2007151073A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006164589A JP2007151073A (en) 2005-10-25 2006-06-14 Key generation program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005310539 2005-10-25
JP2006164589A JP2007151073A (en) 2005-10-25 2006-06-14 Key generation program

Publications (1)

Publication Number Publication Date
JP2007151073A true JP2007151073A (en) 2007-06-14

Family

ID=38211874

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006164589A Pending JP2007151073A (en) 2005-10-25 2006-06-14 Key generation program

Country Status (1)

Country Link
JP (1) JP2007151073A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016008296A1 (en) * 2014-07-15 2016-01-21 华为技术有限公司 Method and device for processing linear homomorphic signature
RU2752697C1 (en) * 2017-10-17 2021-07-30 Конинклейке Филипс Н.В. Cryptographic device with variable configuration

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016008296A1 (en) * 2014-07-15 2016-01-21 华为技术有限公司 Method and device for processing linear homomorphic signature
RU2752697C1 (en) * 2017-10-17 2021-07-30 Конинклейке Филипс Н.В. Cryptographic device with variable configuration

Similar Documents

Publication Publication Date Title
US6810122B1 (en) Secret sharing system and storage medium
CN110545279A (en) block chain transaction method, device and system with privacy and supervision functions
JP4869824B2 (en) Receiver device, sender device, cryptographic communication system, and program
CN106936584B (en) Method for constructing certificateless public key cryptosystem
WO2017063114A1 (en) Method for establishing secure attack-resistant public key cryptographic algorithm
Lone et al. Demystifying cryptography behind blockchains and a vision for post-quantum blockchains
TWI511517B (en) Information processing apparatus, information processing method, program and recording medium
CN105393488B (en) The method for establishing the public key cryptography of resisting quantum computation attack
Bavdekar et al. Post quantum cryptography: Techniques, challenges, standardization, and directions for future research
CN113132104A (en) Active and safe ECDSA (electronic signature SA) digital signature two-party generation method
Yang et al. Quantum public-key cryptosystems based on induced trapdoor one-way transformations
CN111865555B (en) Homomorphic encryption method based on k-Lin hypothesis
Shankar et al. Improved Multisignature Scheme for Authenticity of Digital Document in Digital Forensics Using Edward-Curve Digital Signature Algorithm
JP4563037B2 (en) ENCRYPTION APPARATUS, DECRYPTION APPARATUS, ENCRYPTION SYSTEM HAVING THEM, ENCRYPTION METHOD, AND DECRYPTION METHOD
JP2007151073A (en) Key generation program
JP7273742B2 (en) Encryption device, decryption device, encryption method, decryption method, encryption program and decryption program
Tahat et al. A new digital signature scheme with message recovery using hybrid problems
JP2007124612A (en) Key generation program
WO2022172041A1 (en) Asymmetric cryptographic schemes
KR101327980B1 (en) ID-based additive homomorphic encryption method
CN115336224A (en) Adaptive attack-resistant distributed symmetric encryption
JP5017645B2 (en) Public key authentication program and electronic signature program
Balasubramanian et al. Problems in cryptography and cryptanalysis
JP3894919B2 (en) Electronic signature method and program and apparatus
Mohapatra Signcryption schemes with forward secrecy based on elliptic curve cryptography

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090610

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111025

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120327