Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP6139469B2 - Signature generation device, signature verification device, verification system, and program - Google Patents
[go: Go Back, main page]

JP6139469B2 - Signature generation device, signature verification device, verification system, and program - Google Patents

Signature generation device, signature verification device, verification system, and program Download PDF

Info

Publication number
JP6139469B2
JP6139469B2 JP2014121062A JP2014121062A JP6139469B2 JP 6139469 B2 JP6139469 B2 JP 6139469B2 JP 2014121062 A JP2014121062 A JP 2014121062A JP 2014121062 A JP2014121062 A JP 2014121062A JP 6139469 B2 JP6139469 B2 JP 6139469B2
Authority
JP
Japan
Prior art keywords
signature
vector
dimensional vector
row
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2014121062A
Other languages
Japanese (ja)
Other versions
JP2016001248A (en
Inventor
阿部 正幸
正幸 阿部
陵 西巻
陵 西巻
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Inc
NTT Inc USA
Original Assignee
Nippon Telegraph and Telephone Corp
NTT Inc USA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp, NTT Inc USA filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2014121062A priority Critical patent/JP6139469B2/en
Publication of JP2016001248A publication Critical patent/JP2016001248A/en
Application granted granted Critical
Publication of JP6139469B2 publication Critical patent/JP6139469B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、署名技術に関し、特に、タグ付き使い捨て署名技術に関する。   The present invention relates to signature technology, and in particular, to a tagged disposable signature technology.

タグ付き使い捨て署名(TOS: Tagged One-Time Signature)方式は、使い捨て署名(OTS: One-Time Signature)方式の一種であり、秘密鍵と「タグ」と呼ばれる使い捨て公開鍵とに基づいてメッセージに対する署名を生成し、この秘密鍵に対応する公開鍵とタグとメッセージを用いて署名検証を行う(例えば、非特許文献1等参照)。TOS方式では、通常のOTS方式(例えば、非特許文献2等参照)とは異なり、署名生成のための使い捨て秘密鍵を保存しておく必要がない点で利便性が高い。   Tagged One-Time Signature (TOS) method is a type of One-Time Signature (OTS) method, and it is a signature for a message based on a private key and a disposable public key called "tag". Is generated, and signature verification is performed using a public key, a tag, and a message corresponding to the secret key (see, for example, Non-Patent Document 1). Unlike the normal OTS method (see, for example, Non-Patent Document 2), the TOS method is highly convenient in that it does not require storing a disposable private key for generating a signature.

Masayuki Abe, Melissa Chase, Bernardo David, Markulf Kohlweiss, Ryo Nishimaki, Miyako Ohkubo, “Constant-Size Structure-Preserving Signatures: Generic Constructions and Simple Assumptions,” ASI-ACRYPT 2012, 4-24.Masayuki Abe, Melissa Chase, Bernardo David, Markulf Kohlweiss, Ryo Nishimaki, Miyako Ohkubo, “Constant-Size Structure-Preserving Signatures: Generic Constructions and Simple Assumptions,” ASI-ACRYPT 2012, 4-24. Payman Mohassel, “One-Time Signatures and Chameleon Hash Functions,” Selected Areas in Cryptography 2010, 302-319.Payman Mohassel, “One-Time Signatures and Chameleon Hash Functions,” Selected Areas in Cryptography 2010, 302-319.

しかしながら、非特許文献1に記載されたTOS方式は、ペアリング群上の計算量的仮定に基づく安全性(計算量的安全性)を持つ方式であり、量子計算機が実現した場合その安全性は失われる。   However, the TOS method described in Non-Patent Document 1 is a method having safety (computational security) based on the computational assumption on the pairing group, and when the quantum computer is realized, the safety is Lost.

本発明の目的は、量子計算機が実現したとしてもその安全性を保持できると考えられる格子上の問題に基づくタグ付き使い捨て署名方式を提供することである。   An object of the present invention is to provide a single-use signature scheme with a tag based on a problem on a lattice that is considered to be able to maintain its security even if it is realized by a quantum computer.

署名生成時には、選択されたn次元のベクトルz、選択されたm次元のベクトルσ、およびメッセージに対応するk次元のベクトルMを用い、A+Bσを含む情報に対応するk次元のベクトルzを得、z=A+Bσを満たすm次元のベクトルσを得、ベクトルσおよびσを含む署名を出力する。ただし、n,k,m,n,k,mは1以上の整数、Aはn行k列の行例、Bはn行m列の行例、Aはn行k列の行例、およびBはn行m列の行例である。 At the time of signature generation, using the selected n 0- dimensional vector z 0 , the selected m 1- dimensional vector σ 1 , and the k 1- dimensional vector M 1 corresponding to the message, A 1 M 1 + B 1 σ 1 is obtained. Obtain k 0- dimensional vector z 1 corresponding to the included information, obtain m 0- dimensional vector σ 0 satisfying z 0 = A 0 z 1 + B 0 σ 0 , and output a signature including vectors σ 0 and σ 1 . However, n 0 , k 0 , m 0 , n 1 , k 1 , m 1 are integers of 1 or more, A 0 is a row example of n 0 rows and k 0 columns, and B 0 is a row example of n 0 rows and m 0 columns. , A 1 is a row example of n 1 row k 1 column, and B 1 is a row example of n 1 row m 1 column.

署名検証時には、ベクトルM,σ,σ,zを用い、A+Bσを含む情報に対応するk次元のベクトルzを得、z=A+Bσを満たすことを必要条件とする検証条件を満たすかを判定する。 At the time of signature verification, vectors M 1 , σ 0 , σ 1 , z 0 are used to obtain a k 0- dimensional vector z 1 corresponding to information including A 1 M 1 + B 1 σ 1 , and z 0 = A 0 z 1 It is determined whether the verification condition that satisfies the requirement of satisfying + B 0 σ 0 is satisfied.

本発明では、格子上の問題に基づくタグ付き使い捨て署名方式を実現できる。   In the present invention, it is possible to realize a tagged disposable signature system based on a problem on a lattice.

図1は実施形態の署名システムの機能構成を例示するためのブロック図である。FIG. 1 is a block diagram for illustrating a functional configuration of the signature system according to the embodiment. 図2は、実施形態の鍵生成装置の機能構成を例示するためのブロック図である。FIG. 2 is a block diagram for illustrating a functional configuration of the key generation apparatus according to the embodiment. 図3Aは、実施形態の署名生成装置の機能構成を例示するためのブロック図である。図3Bは、実施形態の署名検証装置の機能構成を例示するためのブロック図である。FIG. 3A is a block diagram for illustrating a functional configuration of the signature generation apparatus according to the embodiment. FIG. 3B is a block diagram for illustrating a functional configuration of the signature verification apparatus according to the embodiment. 図4Aは、実施形態の鍵生成方法を例示するためのフロー図である。図4Bは、実施形態の署名生成方法を例示するためのフロー図である。図4Cは、実施形態の署名検証方法を例示するためのフロー図である。FIG. 4A is a flowchart for illustrating the key generation method of the embodiment. FIG. 4B is a flowchart for illustrating the signature generation method according to the embodiment. FIG. 4C is a flowchart for illustrating the signature verification method according to the embodiment. 図5Aから図5Cは、実施形態のデータ構成を例示するための図である。5A to 5C are diagrams for illustrating the data configuration of the embodiment. 図6Aから図6Cは、実施形態のデータ構成を例示するための図である。6A to 6C are diagrams for illustrating the data configuration of the embodiment. 図7Aから図7Cは、実施形態のデータ構成を例示するための図である。FIG. 7A to FIG. 7C are diagrams for illustrating the data configuration of the embodiment.

以下、本発明の実施形態を説明する。
[定義]
実施形態で使用する用語を定義する。
<SIS(Small Integer Solution)問題>
SIS問題とは、解法が困難とされている格子上の問題の一種であり、暗号プリミティブの安全性の根拠として用いられる(例えば、参考文献1参照)。SIS問題とは、要約すれば、素体Z上(ただし、qは素数)のn行m列(ただし、nおよびmは1以上の整数、例えば2以上の整数)の行列Bに対して、Br=0となる小さなm次元のベクトルrを求める問題である。小さなベクトルとは、ノルムがある達成可能な小さな正値s以下であることを意味する。例えば、その要素がほとんど0または1で構成されているベクトルは小さいベクトルといえる。例えば、SIS問題とは、一様ランダムなZの元からなるn行m列の行列B∈Z n×m(ただし、mはnの多項式で得られる)に対し、以下の式(1)および(2)を満たす整数集合Zの元からなるm次元のベクトルr∈Λ(B)を求める問題である。
Λ(B)={r∈Z:Br=0∈Z }⊆Z (1)
|r|≦s (2)
ただし、|r|はrのユークリッドノルムを表す。
[参考文献1]David Cash, Dennis Hofheinz, Eike Kiltz, Chris Perkest ,“Bonsai, Trees, or How to Delegate a Lattice Basis,” Advances in Cryptology - EUROCRYPT 2010, Lecture Notes in Computer Science Volume 6110, 2010, 523-552.
Embodiments of the present invention will be described below.
[Definition]
Terms used in the embodiments are defined.
<SIS (Small Integer Solution) problem>
The SIS problem is a kind of lattice problem that is difficult to solve, and is used as a basis for the security of cryptographic primitives (for example, see Reference 1). In summary, the SIS problem is for a matrix B of n rows and m columns (where n and m are integers of 1 or more, for example, integers of 2 or more) on the prime field Z q (where q is a prime number). , A problem of obtaining a small m-dimensional vector r with Br = 0. Small vector means that the norm is less than some achievable small positive value s. For example, a vector whose elements are almost 0 or 1 can be said to be a small vector. For example, the SIS problem, uniform random Z q consists of the original n rows and m columns of the matrix B∈Z q n × m (although, m is obtained by a polynomial of n) to the following equation (1 ) And (2) to obtain an m-dimensional vector rεΛ (B) consisting of elements of the integer set Z.
Λ (B) = {rεZ m : Br = 0εZ q n } ⊆Z m (1)
| R | 2 ≦ s (2)
However, | r | 2 represents the Euclidean norm of r.
[Reference 1] David Cash, Dennis Hofheinz, Eike Kiltz, Chris Perkest, “Bonsai, Trees, or How to Delegate a Lattice Basis,” Advances in Cryptology-EUROCRYPT 2010, Lecture Notes in Computer Science Volume 6110, 2010, 523- 552.

<アルゴリズムGenBasisおよびSampleD>
参考文献1,2によれば、以下のようなアルゴリズムGenBasisおよびSampleDが存在する。
[参考文献2]C. Gentry, C. Peikert, and V. Vaikuntanathan, “Trapdoors for hard lattices and new cryptographic constructions,” In STOC, pages 197-206. 2008.
<Algorithms GenBasis and SampleD>
According to References 1 and 2, the following algorithms GenBasis and SampleD exist.
[Reference 2] C. Gentry, C. Peikert, and V. Vaikuntanathan, “Trapdoors for hard lattices and new cryptographic constructions,” In STOC, pages 197-206. 2008.

アルゴリズムGenBasisは、n,m,qを入力とし、基底ベクトルS∈Zと行列B∈Z n×mとの組(S,B)を生成して出力する((S,B)←GenBasis(n,m,q))。ただし、基底ベクトルSは、行列Bについての部分集合(部分ベクトル空間)Λ(B)を張る何れかの基底であり、トラップドア(落とし戸)として機能する。 The algorithm GenBasis takes n, m, and q as inputs, and generates and outputs a set (S, B) of a basis vector SεZ m and a matrix BεZ q n × m ((S, B) ← GenBasis (N, m, q)). However, the base vector S is any base that forms a subset (partial vector space) Λ (B) for the matrix B, and functions as a trap door.

アルゴリズムSampleDは、S,B,y,sを入力とし、以下の式(3)および(4)を満たす整数集合Zの元からなるm次元のベクトルx∈Λ (B)を離散ガウス分布(Discrete Gaussian Distribution)D(Λ (B),s)に従って選択して出力する(x←SampleD(S,B,y,s))。
Λ (B)={x∈Z:Bx=y} (3)
|x|≦s (4)
ただし、y∈Z はZの元を要素とするランダムなn次元のベクトルである。離散ガウス分布D(Λ (B),s)とは、各ベクトルx∈Λ (B)に対する確率がガウス分布ρ(x)=exp(−π|x|/s)に比例し、その他のベクトルに対する確率が0となる確率分布を意味する。なお|x|はxのノルムを表す。トラップドアとして機能する基底ベクトルSがない場合、このようなベクトルxを求めることは困難である。
The algorithm SampleD takes S, B, y, and s as inputs, and obtains a discrete Gaussian distribution of an m-dimensional vector x∈Λ y (B) consisting of elements of an integer set Z that satisfies the following equations (3) and (4): (Discrete Gaussian Distribution) D (Λ y (B), s) is selected and output (x ← SampleD (S, B, y, s)).
Λ y (B) = {x∈Z m : Bx = y} (3)
| X | 2 ≦ s (4)
However, yεZ q n is a random n-dimensional vector having elements of Z q as elements. The discrete Gaussian distribution D (Λ y (B), s) means that the probability for each vector x∈Λ y (B) is Gaussian distribution ρ s (x) = exp (−π | x | 2 / s 2 ) Is a probability distribution in which the probability for other vectors is zero. Note that | x | 2 represents the norm of x. If there is no basis vector S that functions as a trapdoor, it is difficult to obtain such a vector x.

<SIS問題の困難性に基づくカメレオンハッシュ関数>
参考文献1では、上記のSIS問題の困難性に基づいてカメレオンハッシュを構成した。以下、これについて説明する。
安全性のパラメータをk,n,m,sとする。ただし、kは1以上の整数(例えば、2以上の整数)である。まず、(S,B)←GenBasis(n,m,q)を計算し、n行k列のZ上の行列A∈Z n×kをランダムに選ぶ。(A,B)をハッシュ鍵として公開し、Sをトラップドアとして秘密に保持する。メッセージはkビットのビット列であり、その各ビットをZ上の値0,1に割り当てて、k個のZ要素からなる行ベクトルで表現する(M∈Z )。D(Z,s)をsで制限されるZ上のガウス分布とする。D(Z,s)は、各ベクトルr∈Zに対する確率が分布ρ(r)=exp(−π|r|/s)に比例するガウス分布を意味する。メッセージMをハッシュするには、Z上のm行ベクトルr∈Zを分布D(Z,s)に従って選び、Hash(m,r)=AM+Br∈Zを計算し、その出力であるn次元のベクトルHash(m,r)∈Zをハッシュ値hとする。任意のハッシュ値hと任意のメッセージM’∈Z に対して、h=AM’+Br’となるベクトルr’∈Zは、トラップドアである基底ベクトルSを用いてr’=SampleD(S,B,h−AM’,s)のように計算できる。一方、Sを知らない場合、そのようなr’を求めることはSIS問題を解くことに帰着されるため、困難である。
<Chameleon hash function based on difficulty of SIS problem>
In Reference 1, a chameleon hash is constructed based on the difficulty of the SIS problem. This will be described below.
The safety parameters are k, n, m, and s. However, k is an integer greater than or equal to 1 (for example, an integer greater than or equal to 2). First, (S, B) ← GenBasis (n, m, q) is calculated, and a matrix A∈Z q n × k on Z q of n rows and k columns is selected at random. (A, B) is disclosed as a hash key, and S is secretly held as a trapdoor. Message is a bit string of k bits, the respective bits assigned to the value 0 on Z q, expressed in row vector of k Z q elements (M∈Z q k). Let D (Z m , s) be a Gaussian distribution on Z m limited by s. D (Z m , s) means a Gaussian distribution in which the probability for each vector rεZ m is proportional to the distribution ρ s (r) = exp (−π | r | 2 / s 2 ). To hash the message M, select the m-row vector rεZ m on Z p according to the distribution D (Z m , s), calculate Hash (m, r) = AM + BrεZ n , and its output Let n-dimensional vector Hash (m, r) εZ n be a hash value h. For an arbitrary hash value h and an arbitrary message M′∈Z q k , a vector r′∈Z n such that h = AM ′ + Br ′ is obtained by using a basis vector S as a trapdoor, r ′ = SampleD ( S, B, h-AM ′, s). On the other hand, if S is not known, finding such r ′ is difficult because it results in solving the SIS problem.

[第1実施形態]
次に第1実施形態を説明する。
<構成>
図1に例示するように、本形態の署名システム1は、鍵生成装置11、署名生成装置12、および署名検証装置13を有しており、これらはインターネット等のネットワークを通じて通信可能に構成されている。図2に例示するように、本形態の鍵生成装置11は、基底生成部111、行列生成部112、鍵構成部113、出力部114、および制御部119を有する。図3Aに例示するように、本形態の署名生成装置12は、入力部121、記憶部122、選択部123、演算部124,126、タグ選択部125、出力部127、および制御部129を有する。図3Bに例示するように、本形態の署名検証装置13は、入力部131、記憶部132、演算部134、判定部136、および制御部139を有する。鍵生成装置11、署名生成装置12、および署名検証装置13は、それぞれ制御部119,129、および139の制御のもとで各処理を実行する。鍵生成装置11、署名生成装置12、および署名検証装置13は、それぞれ、例えば、CPU(central processing unit)等のプロセッサ(ハードウェア・プロセッサ)やRAM(random-access memory)・ROM(read-only memory)等のメモリ等を備える汎用または専用のコンピュータが所定のプログラムを実行することで構成される装置である。このプログラムはコンピュータにインストールされてもよいし、予めROM等に記録されていてもよい。また、CPUのようにプログラムが読み込まれることで機能構成を実現する電子回路(circuitry)ではなく、単独で処理機能を実現する電子回路を用いて一部またはすべての処理部が構成されてもよい。
[First Embodiment]
Next, a first embodiment will be described.
<Configuration>
As illustrated in FIG. 1, the signature system 1 of this embodiment includes a key generation device 11, a signature generation device 12, and a signature verification device 13, which are configured to be communicable through a network such as the Internet. Yes. As illustrated in FIG. 2, the key generation device 11 of this embodiment includes a base generation unit 111, a matrix generation unit 112, a key configuration unit 113, an output unit 114, and a control unit 119. As illustrated in FIG. 3A, the signature generation apparatus 12 according to the present exemplary embodiment includes an input unit 121, a storage unit 122, a selection unit 123, calculation units 124 and 126, a tag selection unit 125, an output unit 127, and a control unit 129. . As illustrated in FIG. 3B, the signature verification apparatus 13 according to the present exemplary embodiment includes an input unit 131, a storage unit 132, a calculation unit 134, a determination unit 136, and a control unit 139. The key generation device 11, signature generation device 12, and signature verification device 13 execute each process under the control of the control units 119, 129, and 139, respectively. Each of the key generation device 11, the signature generation device 12, and the signature verification device 13 includes, for example, a processor (hardware processor) such as a central processing unit (CPU), a random-access memory (RAM), a read-only ROM (ROM). a general-purpose or dedicated computer having a memory such as a memory) executes a predetermined program. This program may be installed in a computer, or may be recorded in a ROM or the like in advance. In addition, some or all of the processing units may be configured using an electronic circuit that realizes a processing function independently instead of an electronic circuit (circuitry) that realizes a functional configuration by reading a program like a CPU. .

<鍵生成処理>
鍵生成処理を説明する。なお、事前に安全性のパラメータn,k,m,n,k,m,s,qが設定されているとする。ただし、n,k,m,n,k,mは1以上の整数であり、例えば、これらは2以上の整数である。sは正値であり、qは素数である。また、Z n1の元をk個の{0,1}∈Zからなるk次元のベクトルにマッピングするZ n1→{0,1}k0なる関数Tが設定されているとする。ただし、上付き添え字の「n1」および「k0」は、それぞれ「n」および「k」を表す。関数Tはターゲット衝突困難性を持つ関数である。関数Tの構成に限定はないが、例えば、ターゲット衝突困難なハッシュ関数をTとして用いることができる。
<Key generation process>
The key generation process will be described. It is assumed that safety parameters n 0 , k 0 , m 0 , n 1 , k 1 , m 1 , s, q are set in advance. However, n 0 , k 0 , m 0 , n 1 , k 1 , and m 1 are integers of 1 or more. For example, these are integers of 2 or more. s is a positive value and q is a prime number. Further, the Z q n1{0,1} k0 consisting function T that maps the original Z q n1 to k 0-dimensional vector of k 0 amino {0, 1} ∈ Z q is set . However, the superscripts “n1” and “k0” represent “n 1 ” and “k 0 ”, respectively. The function T is a function having target collision difficulty. Although the structure of the function T is not limited, for example, a hash function that is difficult to collide with the target can be used as T.

鍵生成装置11(図2)は、鍵生成関数TOS.key(n,k,m,n,k,m,s)を実行して、公開鍵pkと秘密鍵skとの鍵ペア(sk,pk)を生成する。まず、図4Aに例示するように、鍵生成装置11の基底生成部111が、n,m,qを入力として(S,B)←GenBasis(n,m,q)を計算する。B∈Z n0×m0はn行m列の行例である。ただし、上付き添え字の「n0」および「m0」は「n」および「m」をそれぞれ表す。S∈Zm0は行例Bに対応する秘密情報であるトラップドアである。前述のように、トラップドアSはB=0を満たすm次元のベクトルrが属する部分集合(部分ベクトル空間)を張るm次元の基底ベクトルの何れかである。(S,B)は鍵構成部113に送られる(ステップS111)。 The key generation device 11 (FIG. 2) includes a key generation function TOS. The key (n 0 , k 0 , m 0 , n 1 , k 1 , m 1 , s) is executed to generate a key pair (sk, pk) of the public key pk and the secret key sk. First, as illustrated in FIG. 4A, the base generation unit 111 of the key generation device 11 receives (S 0 , B 0 ) ← GenBasis (n 0 , m 0 , q) with n 0 , m 0 , q as inputs. calculate. B 0 εZ q n0 × m0 is a row example of n 0 rows and m 0 columns. However, the superscripts “n0” and “m0” represent “n 0 ” and “m 0 ”, respectively. S 0 ∈Z m0 is a trap door which is secret information corresponding to the example B 0 . As described above, the trap door S 0 is either B 0 r 0 = 0 vector r 0 of m 0 dimensional satisfying spanned a subset belonging (partial vector space) m 0-dimensional basis vectors. (S 0 , B 0 ) is sent to the key construction unit 113 (step S111).

行列生成部112は、n行k列の行例A∈Z n0×k0、n行k列の行例A∈Z n1×k1、およびn行m列の行例B∈Z n1×m1を、それぞれランダムに選択する。A,A,Bは鍵構成部113に送られる(ステップS112)。 The matrix generation unit 112 includes a row example A 0 εZ q n0 × k0 of n 0 rows and k 0 columns, a row example A 1 εZ q n1 × k1 of n 1 rows k 1 columns, and n 1 rows m 1 columns. Row example B 1 εZ q n1 × m1 is selected at random. A 0 , A 1 , B 1 are sent to the key construction unit 113 (step S112).

鍵構成部113は、S,B,A,A,Bを入力とし、公開鍵pk=(A,B,A,B,T,s)および秘密鍵sk=(S)を構成して出力する。公開鍵pkと秘密鍵skとの鍵ペア(sk,pk)は、出力部114に送られる(ステップS113)。 The key configuration unit 113 receives S 0 , B 0 , A 0 , A 1 , B 1 as input, and public key pk = (A 0 , B 0 , A 1 , B 1 , T, s) and secret key sk = Configure (S 0 ) and output. The key pair (sk, pk) of the public key pk and the secret key sk is sent to the output unit 114 (step S113).

出力部114は、公開鍵pkを署名生成装置12(図3A)および署名検証装置13(図3B)に送信する。公開鍵pkは、署名生成装置12の入力部121および署名検証装置13の入力部131に入力され、記憶部122および記憶部132に格納される。秘密鍵skは署名生成装置12に安全に送られ、署名生成装置12の入力部121に入力され、記憶部122に安全に格納される。秘密鍵skは秘密情報である(ステップS114)。   The output unit 114 transmits the public key pk to the signature generation device 12 (FIG. 3A) and the signature verification device 13 (FIG. 3B). The public key pk is input to the input unit 121 of the signature generation device 12 and the input unit 131 of the signature verification device 13 and stored in the storage unit 122 and the storage unit 132. The private key sk is securely sent to the signature generation device 12, input to the input unit 121 of the signature generation device 12, and stored securely in the storage unit 122. The secret key sk is secret information (step S114).

<署名生成処理>
署名生成処理を説明する。図4Bに例示するように、まず、メッセージmsgに対応するk次元のベクトルM∈Z k1が、署名生成装置12(図3A)の入力部121に入力される。ベクトルMはk個の要素{0,1}∈Z k1からなる行ベクトルである。ベクトルMは記憶部122に格納される(ステップS121)。
<Signature generation processing>
The signature generation process will be described. As illustrated in FIG. 4B, first, a k 1- dimensional vector M 1 εZ q k1 corresponding to the message msg is input to the input unit 121 of the signature generation device 12 (FIG. 3A). The vector M 1 is a row vector composed of k 1 elements {0, 1} εZ q k1 . Vector M 1 is stored in the storage unit 122 (step S121).

タグ選択部125は公開鍵pkを入力とし、タグ生成関数TOS.Tag(pk)を実行してn次元のベクトルz∈Z n0をランダムに選択し、これをタグzとして出力する。タグzは署名生成処理のたびに新たに選択される。ただし、タグ選択部125は、署名生成処理のたびにランダムに生成したベクトルをタグzとしてもよいし、事前にランダムに複数個生成しておいたn次元のベクトルから署名生成処理のたびにタグzを選択してもよい。選択されたタグzは演算部126および出力部127に送られる(ステップS125)。 The tag selection unit 125 receives the public key pk, executes a tag generation function TOS.Tag (pk), randomly selects an n 0 -dimensional vector z 0 ∈Z q n0, and outputs this as a tag z 0 . . Tag z 0 is newly selected each time the signature generation process. However, the tag selection unit 125 may set a vector generated randomly every time the signature generation process is performed as the tag z 0 , or each time the signature generation process is performed from an n 0- dimensional vector generated in advance at random. The tag z 0 may be selected. The selected tag z 0 is sent to the calculation unit 126 and the output unit 127 (step S125).

選択部123および演算部124,126は、署名生成関数TOS.Sign(sk,M,z)を実行して署名σを生成する。選択部123は、ガウス分布D(Zm1,s)(前述のD(Z,s)においてm=mとした分布)に従ってm次元のベクトルσ∈Z m1を選択して出力する。すなわち、ベクトルσの要素はガウス分布に従って選択される。ベクトルσは署名生成処理のたびに新たに選択される。ただし、選択部123は、署名生成処理のたびにガウス分布D(Zm1,s)に従ってベクトルσを生成してもよいし、事前にガウス分布D(Zm1,s)に従って複数個生成しておいたがm次元のベクトルから署名生成処理のたびにベクトルσを選択してもよい。選択されたベクトルσは演算部124および出力部127に送られる(ステップS123)。 The selection unit 123 and the calculation units 124 and 126 include a signature generation function TOS. Sign (sk, M 1 , z 0 ) is executed to generate a signature σ. The selection unit 123 selects and outputs an m 1- dimensional vector σ 1 ∈Z q m1 according to a Gaussian distribution D (Z m1 , s) (a distribution in which m = m 1 in the above-described D (Z m , s)). To do. That is, the elements of the vector σ 1 are selected according to a Gaussian distribution. The vector σ 1 is newly selected for each signature generation process. However, the selection unit 123 may generate the vector σ 1 according to the Gaussian distribution D (Z m1 , s) every time the signature generation process is performed, or generate a plurality of vectors according to the Gaussian distribution D (Z m1 , s) in advance. However, the vector σ 1 may be selected from the m one- dimensional vector for each signature generation process. The selected vector σ 1 is sent to the calculation unit 124 and the output unit 127 (step S123).

演算部124は、記憶部122から読み出した公開鍵pk、および選択部123から送られたベクトルσを入力とし、n次元のベクトルh=A+Bσ∈Z n1(図5A)を含む情報に対応するk次元のベクトルzを得る。本形態では、演算部124は、n次元のベクトルhを関数Tに入力してk次元のベクトルz=T(h)を得て出力する(図5B)。ベクトルzは演算部126に送られる(ステップS124)。 The calculation unit 124 receives the public key pk read from the storage unit 122 and the vector σ 1 sent from the selection unit 123 as input, and the n one- dimensional vector h 1 = A 1 M 1 + B 1 σ 1 εZ q n1 Obtain a k 0 -dimensional vector z 1 corresponding to the information containing (FIG. 5A). In this embodiment, the calculation unit 124 inputs the n 1- dimensional vector h 1 to the function T, obtains and outputs the k 0- dimensional vector z 1 = T (h 1 ) (FIG. 5B). Vector z 1 is sent to the arithmetic unit 126 (step S124).

演算部126は、記憶部122から読み出した公開鍵skおよび秘密鍵sk、タグ選択部125から送られたタグz、ならびに演算部124から送られたベクトルzを入力とし、z=A+Bσ(図6A)を満たすm次元のベクトルσ∈Z m0を得る。本形態の演算部126は、秘密鍵skからトラップドアである基底ベクトルSを抽出し、公開鍵pkからA,Bを抽出し、z−A(図6B)を得て、m次元のベクトルσ=SampleD(S,B,z−A,s)∈Z m0(図6C)得て出力する。なお、タグzを使い捨て公開鍵とみた場合、ベクトルσはタグzに対応する使い捨て秘密鍵である。本形態では、アルゴリズムSampleDによって使い捨て秘密鍵に相当するベクトルσを生成できるため、ベクトルσを保持しておく必要がない。すなわち、タグ付き使い捨て署名を実現できる。また、基底ベクトル(トラップドア)Sを知らない者がベクトルσを求めることはSIS問題を解くことに帰着し、困難である。ベクトルσは出力部127に送られる(ステップS126)。 The calculation unit 126 receives the public key sk and secret key sk read from the storage unit 122, the tag z 0 sent from the tag selection unit 125, and the vector z 1 sent from the calculation unit 124, and z 0 = A Obtain an m 0 -dimensional vector σ 0 ∈Z q m0 that satisfies 0 z 1 + B 0 σ 0 (FIG. 6A). The calculation unit 126 of the present embodiment extracts a base vector S 0 that is a trap door from the secret key sk, extracts A 0 and B 0 from the public key pk, and obtains z 0 −A 0 z 1 (FIG. 6B). Thus, the m 0 -dimensional vector σ 0 = SampleD (S 0 , B 0 , z 0 −A 0 z 1 , s) εZ q m0 (FIG. 6C) is obtained and output. When tag z 0 is regarded as a disposable public key, vector σ 0 is a disposable private key corresponding to tag z 0 . In this embodiment, the vector σ 0 corresponding to the disposable secret key can be generated by the algorithm SampleD, and therefore it is not necessary to hold the vector σ 0 . That is, a disposable signature with a tag can be realized. Further, it is difficult for a person who does not know the basis vector (trap door) S 0 to obtain the vector σ 0 , resulting in solving the SIS problem. The vector σ 0 is sent to the output unit 127 (step S126).

出力部127は、タグz、ベクトルσおよびσを含む署名σ=(σ,σ)、および記憶部122から読み出したベクトルMを出力する(ステップS127)。 The output unit 127 outputs the tag z 0 , the signature σ = (σ 0 , σ 1 ) including the vectors σ 0 and σ 1 , and the vector M 1 read from the storage unit 122 (step S 127).

<署名検証処理>
署名検証処理を説明する。署名検証装置13は、署名検証関数TOS.Vrf(pk,z,M,σ)を実行する。図4Cに例示するように、タグz、署名σ=(σ,σ)、およびベクトルMが、署名検証装置13の入力部131に入力され、記憶部132に格納される。なお、入力部131に入力されるタグz、署名σ=(σ,σ)、およびベクトルMは、上述のように正しく生成されたものとは限らない(ステップS131)。
<Signature verification processing>
The signature verification process will be described. The signature verification device 13 is configured to receive a signature verification function TOS. Vrf (pk, z 0 , M 1 , σ) is executed. As illustrated in FIG. 4C, the tag z 0 , the signature σ = (σ 0 , σ 1 ), and the vector M 1 are input to the input unit 131 of the signature verification apparatus 13 and stored in the storage unit 132. Note that the tag z 0 , the signature σ = (σ 0 , σ 1 ), and the vector M 1 input to the input unit 131 are not necessarily generated correctly as described above (step S 131).

判定部136は、記憶部132から署名σ=(σ,σ)および公開鍵pkを読み出し、σおよびσがガウス分布D(Zm1,s)に従ったものであるかを判定する。この判定は、例えば、|r|≦sを満たすかを判定し、|r|≦sを満たせば、σおよびσがガウス分布D(Zm1,s)に従ったものと判定することにする。σおよびσがガウス分布D(Zm1,s)に従ったものではないと判定された場合には、判定部136は検証失敗を表す「0」を出力し(ステップS1360)、処理を終了する。一方、σおよびσがガウス分布D(Zm1,s)に従ったものであると判定された場合、ステップS134に進む。 The determination unit 136 reads the signature σ = (σ 0 , σ 1 ) and the public key pk from the storage unit 132, and determines whether σ 0 and σ 1 are in accordance with the Gaussian distribution D (Z m1 , s). To do. In this determination, for example, it is determined whether | r | ≦ s is satisfied, and if | r | ≦ s is satisfied, it is determined that σ 0 and σ 1 follow the Gaussian distribution D (Z m1 , s). To. When it is determined that σ 0 and σ 1 do not follow the Gaussian distribution D (Z m1 , s), the determination unit 136 outputs “0” indicating a verification failure (step S1360), and the process is performed. finish. On the other hand, if it is determined that σ 0 and σ 1 are in accordance with the Gaussian distribution D (Z m1 , s), the process proceeds to step S134.

ステップS134では、演算部134が、記憶部132から、公開鍵pk、タグz、署名σ=(σ,σ)、およびベクトルMを読み出し、これらを用い、h=A+Bσ(図5A)を含む情報に対応するk次元のベクトルz∈Z k0を得る。本形態では、演算部134は、n次元のベクトルhを関数Tに入力してk次元のベクトルz=T(h)を得て出力する(図5B)。ベクトルzは判定部136に送られる(ステップS134)。 In step S134, the calculation unit 134 reads out the public key pk, the tag z 0 , the signature σ = (σ 0 , σ 1 ), and the vector M 1 from the storage unit 132, and uses them, and h 1 = A 1 M Obtain a k 0 -dimensional vector z 1 εZ q k0 corresponding to the information including 1 + B 1 σ 1 (FIG. 5A). In this embodiment, the arithmetic unit 134 inputs the n 1- dimensional vector h 1 to the function T, obtains and outputs the k 0- dimensional vector z 1 = T (h 1 ) (FIG. 5B). Vector z 1 is sent to the determination section 136 (step S134).

判定部136は、ベクトルz、および記憶部132から読み出した公開鍵pkおよびベクトルσを入力とし、z=A+Bσを満たすことを必要条件とする検証条件を判定する。この判定は、(1)zとA+Bσとが一致するか否かによって行われてもよいし、(2)zの関数値とA+Bσの関数値とが一致するか否かによって行われてもよいし、(3)zの関数値とA+Bσの関数値とが所定の関係を満たすか否かによっても行われてもよい。あるいは、(1)〜(3)の何れかの条件を満たし、さらに別の条件を満たすか否かを判定してもよい。すなわち、z=A+Bσを満たすことを必要条件とする検証条件を判定するのであれば、どのような判定が行われてもよい。ここで検証条件を満たさないと判断した場合、判定部136は検証失敗を表す「0」を出力し(ステップS1360)、処理を終了する。一方、検証条件を満たすと判断した場合、判定部136は検証成功を表す「1」を出力し(ステップS1361)、処理を終了する。 The determination unit 136 receives the vector z 1 , the public key pk read out from the storage unit 132, and the vector σ 0 as input, and determines a verification condition that satisfies the condition that z 0 = A 0 z 1 + B 0 σ 0 is satisfied. To do. This determination may be made based on whether (1) z 0 and A 0 z 1 + B 0 σ 0 match or (2) a function value of z 0 and A 0 z 1 + B 0 σ 0. Or (3) whether the function value of z 0 and the function value of A 0 z 1 + B 0 σ 0 satisfy a predetermined relationship. It may be done. Alternatively, it may be determined whether one of the conditions (1) to (3) is satisfied and another condition is satisfied. In other words, any determination may be made as long as the verification condition that satisfies the condition that z 0 = A 0 z 1 + B 0 σ 0 is satisfied is determined. If it is determined that the verification condition is not satisfied, the determination unit 136 outputs “0” indicating a verification failure (step S1360) and ends the process. On the other hand, if it is determined that the verification condition is satisfied, the determination unit 136 outputs “1” indicating the verification success (step S 1361) and ends the process.

<本形態の特徴>
一般的なカメレオンハッシュ関数では、メッセージがあるハッシュ値になるような乱数を求めるためには、そのハッシュ値を生成したときに用いた乱数(および元のメッセージ)が必要となる。そのため、ハッシュ値をタグ(使い捨て公開鍵)として署名システムを構成する場合、その生成に利用した乱数(使い捨て秘密鍵)を保存する必要が生じてしまう。これに対し、本形態ではSIS問題の困難性に基づくカメレオンハッシュ関数を用いて署名システムを構成したため、そのような乱数(ベクトルσ)を保存する必要はなく、秘密のトラップドアとハッシュ値のみから乱数(ベクトルσ)を求めることができる。この特性を利用して、ハッシュ値に対応するベクトルをタグzとし、トラップドアSを長期の秘密鍵skとすることで、タグ付き使い捨て署名を構成できた。また、格子上の問題の一種であるSIS問題に基づいて安全性が担保されるため、量子計算機が実現したとしてもその安全性を保持できる。
<Features of this embodiment>
In a general chameleon hash function, in order to obtain a random number such that a message has a certain hash value, the random number (and the original message) used when the hash value is generated is required. Therefore, when configuring a signature system using a hash value as a tag (disposable public key), it becomes necessary to store a random number (disposable secret key) used for the generation. On the other hand, in this embodiment, since the signature system is configured using the chameleon hash function based on the difficulty of the SIS problem, it is not necessary to store such a random number (vector σ 0 ), only the secret trapdoor and the hash value. From this, a random number (vector σ 0 ) can be obtained. By using this characteristic, the tag corresponding to the hash value is set as the tag z 0 , and the trapdoor S 0 is set as the long-term secret key sk, whereby the tagged disposable signature can be configured. Moreover, since safety is ensured based on the SIS problem which is a kind of problem on the lattice, the safety can be maintained even if the quantum computer is realized.

[第1実施形態の変形例]
第1実施形態のステップS124およびS134では、n次元のベクトルhを関数Tに入力してk次元のベクトルz=T(h)を得た(図5B)。しかしながら、衝突が生じないようにn次元のベクトルhをk次元のベクトルzにマッピングできるのであれば、他の関数を用いてもよい。例えば、Z n1→{0,1}k0なる関数Tに代えてZ n1+n2→{0,1}k0なる関数T’(例えば、ターゲット衝突困難なハッシュ関数)を用いることにし、n次元のベクトルhとn次元のベクトルwとの連結h|wに対してk次元のベクトルz=T’(h|w)を得てもよい(図5C)。wの例は公開鍵pk等の公開情報である。演算部124と演算部134とで同じwが用いられる。
[Modification of First Embodiment]
In steps S124 and S134 of the first embodiment, an n 1- dimensional vector h 1 is input to the function T to obtain a k 0- dimensional vector z 1 = T (h 1 ) (FIG. 5B). However, other functions may be used as long as the n 1- dimensional vector h 1 can be mapped to the k 0- dimensional vector z 1 so that no collision occurs. For example, to the use of Z q n1{0,1} in place of k0 consisting function T Z q n1 + n2 → { 0,1} k0 consisting function T '(e.g., a target collision hash functions), n 1-dimensional K 0 dimensional vector z 1 = T ′ (h 1 | w 1 ) may be obtained with respect to the concatenation h 1 | w 1 of vector h 1 and n 2 dimensional vector w 1 (FIG. 5C). An example of w 1 is public information such as a public key pk. The same w 1 is used in the calculation unit 124 and the calculation unit 134.

[第2実施形態]
次に第2実施形態を説明する。本形態は第1実施形態の変形例であり、関数Tを用いない構成である。以下では第1実施形態との相違点を中心に説明し、第1実施形態と同じ部分については第1実施形態と同じ参照番号を用い、説明を省略する。
[Second Embodiment]
Next, a second embodiment will be described. This embodiment is a modification of the first embodiment, and has a configuration in which the function T is not used. Below, it demonstrates centering on difference with 1st Embodiment, About the same part as 1st Embodiment, the same reference number as 1st Embodiment is used, and description is abbreviate | omitted.

<構成>
図1に例示するように、本形態の署名システム2は、鍵生成装置21、署名生成装置22、および署名検証装置23を有している。図2に例示するように、本形態の鍵生成装置21は、基底生成部111、行列生成部212、鍵構成部213、出力部114、および制御部119を有する。図3Aに例示するように、本形態の署名生成装置22は、入力部121、記憶部122、選択部123、演算部224,126、タグ選択部125、出力部127、および制御部129を有する。図3Bに例示するように、本形態の署名検証装置23は、入力部131、記憶部132、演算部234、判定部136、および制御部139を有する。
<Configuration>
As illustrated in FIG. 1, the signature system 2 of this embodiment includes a key generation device 21, a signature generation device 22, and a signature verification device 23. As illustrated in FIG. 2, the key generation device 21 of this embodiment includes a base generation unit 111, a matrix generation unit 212, a key configuration unit 213, an output unit 114, and a control unit 119. As illustrated in FIG. 3A, the signature generation device 22 according to the present exemplary embodiment includes an input unit 121, a storage unit 122, a selection unit 123, calculation units 224 and 126, a tag selection unit 125, an output unit 127, and a control unit 129. . As illustrated in FIG. 3B, the signature verification apparatus 23 according to this embodiment includes an input unit 131, a storage unit 132, a calculation unit 234, a determination unit 136, and a control unit 139.

<鍵生成処理>
本形態の鍵生成処理が第1実施形態の鍵生成処理と相違するのは、n=kであり、関数Tが設定されない点である。図4Aに例示するように、まず、基底生成部111がステップS111を実行し、行列生成部212がn=kとしたステップS112の処理を実行し(ステップS212)、鍵構成部213がS,B,A,A,Bを入力とし、公開鍵pk=(A,B,A,B,s)および秘密鍵sk=(S)を構成して出力する(ステップS213)。その後、出力部114がステップS114の処理を行い、公開鍵pkは、署名生成装置22の入力部121および署名検証装置23の入力部131に入力され、記憶部122および記憶部132に格納される。秘密鍵skは署名生成装置22に安全に送られ、署名生成装置22の入力部121に入力され、記憶部122に安全に格納される。
<Key generation process>
The key generation process of this embodiment is different from the key generation process of the first embodiment in that n 1 = k 0 and the function T is not set. As illustrated in FIG. 4A, first, the base generation unit 111 executes step S111, the matrix generation unit 212 executes the process of step S112 with n 1 = k 0 (step S212), and the key configuration unit 213 S 0 , B 0 , A 0 , A 1 , B 1 are input, and public key pk = (A 0 , B 0 , A 1 , B 1 , s) and secret key sk = (S 0 ) are configured. Output (step S213). Thereafter, the output unit 114 performs the process of step S <b> 114, and the public key pk is input to the input unit 121 of the signature generation device 22 and the input unit 131 of the signature verification device 23 and stored in the storage unit 122 and the storage unit 132. . The private key sk is securely sent to the signature generation device 22, input to the input unit 121 of the signature generation device 22, and stored securely in the storage unit 122.

<署名生成処理>
本形態の署名生成処理は、第1実施形態の署名生成処理のステップS124をステップS224に置換したものである。ステップS224のみを説明する。ステップS224では、演算部224は、記憶部122から読み出した公開鍵pk、および選択部123から送られたベクトルσを入力とし、n=k次元のベクトルh=A+Bσ∈Z k0(図7A)を含む情報に対応するk次元のベクトルzを得る。本形態の演算部224は、k次元のベクトルhをそのままzとして出力する(図7B)。ベクトルzは演算部126に送られる(ステップS224)。その他は、第1実施形態と同じである。
<Signature generation processing>
The signature generation process of this embodiment is obtained by replacing step S124 of the signature generation process of the first embodiment with step S224. Only step S224 will be described. In step S224, the calculation unit 224 receives the public key pk read from the storage unit 122 and the vector σ 1 sent from the selection unit 123, and inputs n 1 = k 0- dimensional vector h 1 = A 1 M 1 + B. Obtain a k 0 -dimensional vector z 1 corresponding to information including 1 σ 1 εZ q k0 (FIG. 7A). Calculation unit 224 of this embodiment outputs the vector h 1 of k 0-dimensional as z 1 as it is (Figure 7B). Vector z 1 is sent to the arithmetic unit 126 (step S224). Others are the same as the first embodiment.

<署名検証処理>
本形態の署名検証処理は、第1実施形態の署名検証処理のステップS134をステップS234に置換したものである。ステップS234のみを説明する。ステップS234では、演算部234が、記憶部132から、公開鍵pk、タグz、署名σ=(σ,σ)、およびベクトルMを読み出し、これらを用い、h=A+Bσ(図7A)を含む情報に対応するk次元のベクトルz∈Z k0を得る。本形態では、演算部234は、k次元のベクトルhをそのままベクトルzとして出力する(図7B)。ベクトルzは判定部136に送られる(ステップS234)。その他は、第1実施形態と同じである。
<Signature verification processing>
The signature verification process according to this embodiment is obtained by replacing step S134 of the signature verification process according to the first embodiment with step S234. Only step S234 will be described. In step S234, the calculation unit 234 reads out the public key pk, the tag z 0 , the signature σ = (σ 0 , σ 1 ), and the vector M 1 from the storage unit 132, and uses them, and h 1 = A 1 M Obtain a k 0 -dimensional vector z 1 εZ q k0 corresponding to information including 1 + B 1 σ 1 (FIG. 7A). In this embodiment, the calculation unit 234 outputs the k 0- dimensional vector h 1 as it is as the vector z 1 (FIG. 7B). Vector z 1 is sent to the determination section 136 (step S234). Others are the same as the first embodiment.

[第2実施形態の変形例]
第2実施形態のステップS224およびS234では、n=k次元のベクトルhをそのままベクトルzとした(図7B)。しかしながら、n<kとし、n次元のベクトルhとk−n次元のベクトルwとの連結h|wをそのままk次元のベクトルzとしてもよい(図7C)。wの例は公開鍵pk等の公開情報である。演算部224と演算部234とで同じwが用いられる。
[Modification of Second Embodiment]
In step S224 and S234 of the second embodiment, and the vector h 1 of n 1 = k 0-dimensional as it is a vector z 1 (FIG. 7B). However, n 1 <k 0 and the connection h 1 | w 1 between the n 1- dimensional vector h 1 and the k 0 -n 1- dimensional vector w 1 may be used as it is as the k 0- dimensional vector z 1 (FIG. 7C). ). An example of w 1 is public information such as a public key pk. The same w 1 is used in the calculation unit 224 and the calculation unit 234.

[その他の変形例]
なお、本発明は上述の実施の形態に限定されるものではない。例えば、素体Zに代えて素体Zを基礎体とした拡大体を用いてもよいし、qに素数以外の正整数を用いることで素体Zに代えて環Zを用いてもよい。また、上記の実施形態では、署名生成装置から署名検証装置に対し、署名とタグとメッセージに対応する情報とが同時に送られたが、これらが別々に送られてもよい。例えば、署名が送られる前にタグやメッセージが公開されてもよい。また、署名σ=(σ,σ)を構成するσおよびσがガウス分布D(Zm1,s)に従ったものであることが明らかな場合等には、ステップS1362の処理が省略されてもよい。また、各装置がネットワークを通じて情報をやり取りするのではなく、少なくとも一部の組の装置が可搬型記録媒体を介して情報をやり取りしてもよい。或いは、少なくとも一部の組の装置が非可搬型の記録媒体を介して情報をやり取りしてもよい。すなわち、これらの装置の一部からなる組み合わせが、同一の装置であってもよい。
[Other variations]
The present invention is not limited to the embodiment described above. For example, one may use the expanded body obtained by the basic body element Z q in place of the body Z q, using the ring Z q in place of the element Z q by using a positive integer other than prime numbers q May be. In the above embodiment, the signature generation device sends the signature, the tag, and the information corresponding to the message to the signature verification device at the same time, but these may be sent separately. For example, tags and messages may be published before the signature is sent. If it is clear that σ 0 and σ 1 constituting the signature σ = (σ 0 , σ 1 ) follow the Gaussian distribution D (Z m1 , s), the process of step S1362 is performed. It may be omitted. Further, instead of each device exchanging information via a network, at least a part of the devices may exchange information via a portable recording medium. Alternatively, at least some of the devices may exchange information via a non-portable recording medium. That is, the combination which consists of a part of these apparatuses may be the same apparatus.

上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。   The various processes described above are not only executed in time series according to the description, but may also be executed in parallel or individually as required by the processing capability of the apparatus that executes the processes. Needless to say, other modifications are possible without departing from the spirit of the present invention.

上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は、非一時的な(non-transitory)記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。   When the above configuration is realized by a computer, the processing contents of the functions that each device should have are described by a program. By executing this program on a computer, the above processing functions are realized on the computer. The program describing the processing contents can be recorded on a computer-readable recording medium. An example of a computer-readable recording medium is a non-transitory recording medium. Examples of such a recording medium are a magnetic recording device, an optical disk, a magneto-optical recording medium, a semiconductor memory, and the like.

このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。   This program is distributed, for example, 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 a program stored in its own recording device and executes a process according to the read program. As another execution form of the program, the computer may read the program directly from the portable recording medium and execute processing according to the program, and each time the program is transferred from the server computer to the computer. The processing according to the received program may be executed sequentially. The above-described processing may be executed by a so-called ASP (Application Service Provider) type service that realizes a processing function only by an execution instruction and result acquisition without transferring a program from the server computer to the computer. Good.

上記実施形態では、コンピュータ上で所定のプログラムを実行させて本装置の処理機能が実現されたが、これらの処理機能の少なくとも一部がハードウェアで実現されてもよい。   In the above embodiment, the processing functions of the apparatus are realized by executing a predetermined program on a computer. However, at least a part of these processing functions may be realized by hardware.

1,2 署名システム
11,21 鍵生成装置
12,22 署名生成装置
13,23 署名検証装置
1, 2 Signature system 11, 21 Key generation device 12, 22 Signature generation device 13, 23 Signature verification device

Claims (8)

,k,m,n,k,mが1以上の整数、Aがn行k列の行例、Bがn行m列の行例、Aがn行k列の行例、Bがn行m列の行例、選択されたn次元のベクトルがz、選択されたm次元のベクトルがσ、Mがメッセージに対応するk次元のベクトルであり、
+Bσを含む情報に対応するk次元のベクトルzを得る第1演算部と、
=A+Bσを満たすm次元のベクトルσを得る第2演算部と、
前記ベクトルσおよびσを含む署名を出力する出力部と、
を有する署名生成装置。
n 0 , k 0 , m 0 , n 1 , k 1 , m 1 are integers greater than or equal to 1 , A 0 is a row example of n 0 rows and k 0 columns, B 0 is a row example of n 0 rows and m 0 columns, A 1 is a row example of n 1 row k 1 column, B 1 is a row example of n 1 row m 1 column, a selected n 0- dimensional vector is z 0 , a selected m 1- dimensional vector is σ 1 , M 1 is a k one- dimensional vector corresponding to the message,
A first arithmetic unit that obtains a k 0- dimensional vector z 1 corresponding to information including A 1 M 1 + B 1 σ 1 ;
a second computing unit for obtaining an m 0 -dimensional vector σ 0 satisfying z 0 = A 0 z 1 + B 0 σ 0 ;
An output unit for outputting a signature including the vectors σ 0 and σ 1 ;
A signature generation device.
請求項1の署名生成装置であって、
前記第2演算部は、前記行例Bに対応する秘密情報であるトラップドアSを用いて前記ベクトルσを得る、署名生成装置。
The signature generation device according to claim 1,
The signature generation device, wherein the second calculation unit obtains the vector σ 0 by using a trapdoor S 0 that is secret information corresponding to the row example B 0 .
請求項2の署名生成装置であって、
前記トラップドアSは、B=0を満たすm次元のベクトルrが属する部分ベクトル空間を張るm次元の基底ベクトルの何れかである、署名生成装置。
The signature generation device according to claim 2,
The trapdoor S 0 is a signature generation device, which is one of m 0 -dimensional basis vectors spanning a partial vector space to which an m 0- dimensional vector r 0 satisfying B 0 r 0 = 0 belongs.
請求項1から3の何れかの署名生成装置であって、
前記A+Bσを含む情報がk次元のベクトルである、署名生成装置。
The signature generation device according to any one of claims 1 to 3,
The signature generation device, wherein the information including the A 1 M 1 + B 1 σ 1 is a k 0- dimensional vector.
,k,m,n,k,mが1以上の整数、Aがn行k列の行例、Bがn行m列の行例、Aがn行k列の行例、Bがn行m列の行列であり、
メッセージに対応するk次元のベクトルM、および、署名であるm次元のベクトルσを用い、A+Bσを含む情報に対応するk次元のベクトルzを得る演算部と、
少なくとも、前記ベクトルz、入力されたn次元のベクトルz、および署名であるm次元のベクトルσを用い、z=A+Bσを満たすことを必要条件とする検証条件を満たすかを判定する判定部と、
を有する署名検証装置。
n 0 , k 0 , m 0 , n 1 , k 1 , m 1 are integers greater than or equal to 1 , A 0 is a row example of n 0 rows and k 0 columns, B 0 is a row example of n 0 rows and m 0 columns, A 1 is a row example of n 1 row k 1 column, B 1 is a matrix of n 1 row m 1 column,
K 1 dimensional vector M 1 corresponding to the message, and, using the m 1-dimensional vector sigma 1 is the signature, obtaining A 1 M 1 + B 1 sigma vector z 1 of k 0-dimensional corresponding to information containing 1 An arithmetic unit;
Using at least the vector z 1 , the input n 0- dimensional vector z 0 , and the m 0- dimensional vector σ 0 as a signature, and satisfying z 0 = A 0 z 1 + B 0 σ 0 A determination unit that determines whether the verification condition to be satisfied is satisfied;
A signature verification apparatus.
請求項5の署名検証装置であって、
前記判定部は、前記ベクトルσおよびσがガウス分布に従ったものであるかを判定し、
前記検証条件は、さらに前記ベクトルσおよびσがガウス分布に従ったものであると判定されたことを含む、署名検証装置。
The signature verification apparatus according to claim 5, comprising:
The determination unit determines whether the vectors σ 0 and σ 1 follow a Gaussian distribution,
The signature verification apparatus, wherein the verification condition further includes that the vectors σ 0 and σ 1 are determined to follow a Gaussian distribution.
,k,m,n,k,mが1以上の整数、Aがn行k列の行例、Bがn行m列の行例、Aがn行k列の行例、およびBがn行m列の行例であり、
選択されたn次元のベクトルz、選択されたm次元のベクトルσ、およびメッセージに対応するk次元のベクトルMを用い、A+Bσを含む情報に対応するk次元のベクトルzを得る第1演算部と、z=A+Bσを満たすm次元のベクトルσを得る第2演算部と、前記ベクトルσおよびσを含む署名を出力する出力部とを含む署名生成装置と、
前記ベクトルM,σ,σ,zを用い、A+Bσを含む情報に対応するk次元のベクトルzを得る第3演算部と、z=A+Bσを満たすことを必要条件とする検証条件を満たすかを判定する判定部とを含む署名検証装置と、
を有する署名システム。
n 0 , k 0 , m 0 , n 1 , k 1 , m 1 are integers greater than or equal to 1 , A 0 is a row example of n 0 rows and k 0 columns, B 0 is a row example of n 0 rows and m 0 columns, A 1 is a row example of n 1 row k 1 column, and B 1 is a row example of n 1 row m 1 column,
Using the selected n 0- dimensional vector z 0 , the selected m 1- dimensional vector σ 1 , and the k 1- dimensional vector M 1 corresponding to the message, corresponding to information including A 1 M 1 + B 1 σ 1 a first operation unit k 0-dimensional vector z 1 Ru obtained which, z 0 = a 0 z 1 + B 0 and the second arithmetic unit sigma Ru give vector sigma 0 of m 0 D satisfying 0, the vector sigma 0 And an output unit that outputs a signature including σ 1 ,
The vector M 1, σ 0, σ 1 , with z 0, a third arithmetic unit Ru give A 1 M 1 + B 1 σ vector z 1 of k 0-dimensional corresponding to information containing 1, z 0 = A A signature verification apparatus including a determination unit that determines whether a verification condition that satisfies the requirement of satisfying 0 z 1 + B 0 σ 0 is satisfied;
Having a signature system.
請求項1から4の何れかの署名生成装置、または、請求項5もしくは6の署名検証装置、としてコンピュータを機能させるためのプログラム。   A program for causing a computer to function as the signature generation device according to any one of claims 1 to 4 or the signature verification device according to claim 5 or 6.
JP2014121062A 2014-06-12 2014-06-12 Signature generation device, signature verification device, verification system, and program Expired - Fee Related JP6139469B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014121062A JP6139469B2 (en) 2014-06-12 2014-06-12 Signature generation device, signature verification device, verification system, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014121062A JP6139469B2 (en) 2014-06-12 2014-06-12 Signature generation device, signature verification device, verification system, and program

Publications (2)

Publication Number Publication Date
JP2016001248A JP2016001248A (en) 2016-01-07
JP6139469B2 true JP6139469B2 (en) 2017-05-31

Family

ID=55076869

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014121062A Expired - Fee Related JP6139469B2 (en) 2014-06-12 2014-06-12 Signature generation device, signature verification device, verification system, and program

Country Status (1)

Country Link
JP (1) JP6139469B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3087594B2 (en) 1995-02-14 2000-09-11 株式会社大林組 Construction method of concrete outer wall

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101873881B1 (en) * 2016-11-29 2018-07-03 서울대학교산학협력단 Digital signature apparatus and method with enhanced data security
JP6818949B2 (en) * 2018-09-28 2021-01-27 三菱電機株式会社 Signature device, verification device, signature system, signature method, signature program, verification method and verification program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3087594B2 (en) 1995-02-14 2000-09-11 株式会社大林組 Construction method of concrete outer wall

Also Published As

Publication number Publication date
JP2016001248A (en) 2016-01-07

Similar Documents

Publication Publication Date Title
US8964988B2 (en) Secret sharing system, sharing apparatus, share management apparatus, acquisition apparatus, secret sharing method, program and recording medium
JP6067932B2 (en) Key sharing device and method
JP2022516381A (en) More efficient post-quantum signature
JP2015225343A (en) Relational encryption
CN105122721A (en) Managed secure computations on encrypted data
ES2546560T3 (en) Device and key generation procedure with enhanced security for fully homomorphic encryption algorithm
BRPI1006182B1 (en) method for secure communications between a first node and a second node in a network, management device provided with root key generation material and network
JP2016526851A (en) System for sharing encryption keys
Dhopavkar et al. IETD: a novel image encryption technique using Tinkerbell map and Duffing map for IoT applications
KR101382626B1 (en) System and method for id-based strong designated verifier signature
JP2014158265A (en) Cryptographic devices and methods for generating and verifying commitments from linearly homomorphic signatures
JP6139469B2 (en) Signature generation device, signature verification device, verification system, and program
Almeida et al. Lyra: Password-based key derivation with tunable memory and processing costs
Yang et al. Verifiable and redactable blockchain for internet of vehicles data sharing
US12289399B2 (en) Device specific multiparty computation
JP2014157354A (en) Cryptographic devices and methods for generating and verifying linearly homomorphic structure-preserving signatures
JP6075785B2 (en) Cryptographic communication system, cryptographic communication method, program
JP5972181B2 (en) Tamper detection device, tamper detection method, and program
JP5931795B2 (en) KEY EXCHANGE SYSTEM, KEY GENERATION DEVICE, COMMUNICATION DEVICE, KEY EXCHANGE METHOD, AND PROGRAM
JP6251163B2 (en) Encryption signature system, encryption signature device, arbitration device, encryption verification device, encryption signature operation device, encryption signature method, program
JP6148205B2 (en) Signature system, signature generation device, signature verification device, signature method, and program
JP5815754B2 (en) Signature verification system, signature device, verification device, and signature verification method
JP6087849B2 (en) Proxy signature device, signature verification device, key generation device, proxy signature system, and program
Yang et al. A Fuzzy Identity‐Based Signature Scheme from Lattices in the Standard Model
JP6204271B2 (en) Signature system, key generation device, and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160713

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170405

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: 20170425

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170427

R150 Certificate of patent or registration of utility model

Ref document number: 6139469

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees