KR101593673B1 - Method and Apparatus for generating encrypted signature based lattices, Method and Apparatus for restoring encrypted signature based lattices - Google Patents
Method and Apparatus for generating encrypted signature based lattices, Method and Apparatus for restoring encrypted signature based lattices Download PDFInfo
- Publication number
- KR101593673B1 KR101593673B1 KR1020140114173A KR20140114173A KR101593673B1 KR 101593673 B1 KR101593673 B1 KR 101593673B1 KR 1020140114173 A KR1020140114173 A KR 1020140114173A KR 20140114173 A KR20140114173 A KR 20140114173A KR 101593673 B1 KR101593673 B1 KR 101593673B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- signature
- quot
- matrix
- sender
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 239000013598 vector Substances 0.000 claims description 88
- 239000011159 matrix material Substances 0.000 claims description 82
- 238000004364 calculation method Methods 0.000 claims description 21
- 238000012795 verification Methods 0.000 claims description 8
- 239000000284 extract Substances 0.000 claims description 6
- 238000000605 extraction Methods 0.000 claims description 5
- 238000013075 data extraction Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 claims description 4
- 238000004422 calculation algorithm Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 125000002066 L-histidyl group Chemical group [H]N1C([H])=NC(C([H])([H])[C@](C(=O)[*])([H])N([H])[H])=C1[H] 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000036039 immunity Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 229910052709 silver Inorganic materials 0.000 description 1
- 239000004332 silver Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000011426 transformation method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/64—Self-signed certificates
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
래티스 기반의 암호서명 생성 방법이 개시된다. 본 발명의 일 실시예에 따른 래티스 기반의 암호서명 생성 방법은 공개 변수들을 설정하고, 상기 설정한 공개 변수들 및 기저 생성 함수에 기초하여 데이터 전송자 및 데이터 수신자 각각의 공개키 및 비밀키를 생성하는 단계; 상기 공개 변수들, 상기 데이터 전송자의 비밀키, 전송할 목적 데이터 및 서명생성 함수를 이용하여 상기 데이터 전송자의 서명을 생성하는 단계; 및 상기 데이터 수신자의 공개키, 상기 데이터 전송자의 서명 및 상기 목적 데이터를 이용하여 상기 전송할 데이터에 대한 암호문으로서 상기 데이터 전송자에 대한 서명값을 포함하는 암호서명을 생성하는 단계를 포함한다. A method for generating a lattice-based cryptographic signature is disclosed. A lattice-based cryptographic signature generation method according to an embodiment of the present invention sets public variables and generates a public key and a secret key of each of a data sender and a data receiver based on the set public variables and the base generation function step; Generating a signature of the data sender using the public variables, the secret key of the data sender, the object data to be transmitted, and a signature generation function; And generating a cryptographic signature including a signature value for the data sender as a cipher text for the data to be transmitted using the public key of the data recipient, the signature of the data sender, and the object data.
Description
본 발명은 래티스 기반의 암호서명에 관한 것으로, 특히 래티스 기반의 암호서명 생성 방법 및 장치, 래티스 기반의 암호서명 복원 방법 및 장치에 관한 것이다. The present invention relates to lattice-based cryptographic signatures, and more particularly, to a method and apparatus for generating a cryptographic signature based on a lattice, and a method and apparatus for recovering a cryptograph signature based on a lattice.
암호 기술은 데이터에 대한 기밀성을 보장하기 위해 사용되며 암호 분야에서 가장 널리 사용되는 기술 중 하나이다. 이러한 암호 기술은 보통 대칭키 암호 기술과 공개키 암호 기술로 분류되며, 본 특허에서는 공개키 암호기술에 관해 다룬다. 공개키 암호 기술은 데이터를 암호화하기 위해 필요한 암호화키와 암호문을 복호화하기 위해 필요한 복호화키로 구성되며 암호화키는 누구나 접근할 수 있게 공개하고, 복호화키는 사용자가 개인적으로 보관한다. 누구든 해당 암호화키로 데이터를 암호화할 수 있으며, 해당 암호문을 복호화하여 원본 데이터를 볼 수 있는 것은 복호화키를 가지고 있는 사용자만이 해당된다. Cryptography is used to ensure confidentiality of data and is one of the most widely used techniques in the field of cryptography. Such cryptographic techniques are usually categorized as symmetric key cryptography and public key cryptography, and this patent deals with public key cryptography. The public key cryptography consists of an encryption key needed to encrypt data and a decryption key necessary to decrypt the ciphertext. The encryption key is publicly accessible and the decryption key is kept by the user. Anyone can encrypt data with the corresponding encryption key, and only the user who has the decryption key can decrypt the encrypted data and view the original data.
전자서명 기술은 데이터에 대한 인증 및 무결성 보장 등에 사용되며 암호 분야에서 암호 기술과 함께 가장 널리 사용되는 기술 중 하나이다. 이러한 전자서명 기술에서 서명자는 주어진 데이터에 대해 자신의 서명키를 사용해 서명을 생성하며, 확인자는 서명키와 쌍을 이루는 확인키를 사용하여 해당 서명의 정당성을 판단한다.Digital signature technology is used for authentication and integrity verification of data and is one of the most widely used technologies together with cryptography in the field of cryptography. In this digital signature technique, the signer generates a signature for his / her data using his / her signature key, and the verifier uses the verification key paired with the signature key to judge the validity of the signature.
만일, 데이터에 대해 무결성과 기밀성을 동시에 보장하기 위해서는 위의 두 기술을 동일한 데이터에 사용하면 된다. 하지만 그러한 경우 암호문과 서명을 동시에 생성, 저장 및 관리해야하는 단점이 생긴다. 이러한 문제점을 해결하기 위해 개발된 기술이 암호서명기술이다. 하나의 암호문만으로 해당 데이터에 대한 기밀성과 무결성을 동시에 제공하는 기술이다. 암호서명 기술은 일반적으로 데이터와 그에 대한 서명을 암호문에 포함시키는 기술로 이를 본 제 3자는 데이터 및 서명에 대한 어떠한 정보도 얻어볼 수 없다. 생성된 암호서명은 오직 그에 대응하는 비밀키를 가진 사용자만이 그 안에 들어있는 서명과 데이터 쌍을 복구할 수 있으며 해당 서명이 정당한지를 판단하는 과정을 거침으로써 데이터에 대한 기밀성과 무결성을 동시에 보장하게 된다. If you want to ensure both integrity and confidentiality of your data, you can use both of these techniques for the same data. However, in such a case, there is a disadvantage that the ciphertext and the signature must be generated, stored and managed at the same time. To solve this problem, the technology developed is a password signing technology. It is a technology that simultaneously provides the confidentiality and integrity of the data with only one cipher text. The encryption signature technique is generally a technique of including data and a signature in a passphrase, which the third party can not obtain any information about the data and the signature. The generated cryptographic signature ensures that only the user with the corresponding secret key can recover the signature and data pairs contained in it and that the signature is valid, ensuring confidentiality and integrity of the data at the same time do.
현재까지 제안된 대부분의 암호서명 기술의 경우 인수 분해, 이산 대수, 페어링(pairing)을 기반으로 설계되었다. 하지만 풀기 어렵다고 여겨지던 이러한 문제들은 최근 양자 알고리즘의 발전으로 더 이상 안전성의 신뢰성을 보장할 수 없으며, 실제 양자 알고리즘을 이용해 인수분해 문제를 해결하는 논문이 제안되었다. 이러한 환경에서 래티스에 대한 관심이 점차 높아지고 있다. 기존의 래티스 기반의 암호 시스템의 경우 안전성 증명이 결여되어 많은 문제점이 있었으나, 최근 worst-case 문제에 기반하여 증명되는 래티스 기반의 암호 시스템들이 등장하고 있다. 기존의 암호 시스템이 average-case 문제에 기반하여 설계된 점을 비추어 볼 때 매우 높은 안전성을 제공한다는 것을 알 수 있다. 이 뿐만 아니라 래티스 암호 시스템은 기존의 기법에 비해 매우 효율적이다. 인수 분해, 이산 대수, pairing등의 연산 복잡도는 이지만, 래티스에서의 연산 복잡도는 으로 훨씬 효율적이다. 또한, 래티스 암호 시스템은 양자 알고리즘에 안전하다. 이러한 다양한 이유 때문에 최근 래티스 환경에서 다양한 암호 시스템이 설계되고 있으며, 이러한 작업은 매우 의미 있는 일로 여겨지고 있다. 따라서 래티스 환경에서의 효율적이고 안전한 암호서명 기술의 개발 필요성이 대두되고 있다. Most cryptographic signature techniques proposed so far are designed based on factorization, discrete algebra, and pairing. However, these problems, which are considered to be difficult to solve, can not guarantee the reliability of the safety due to the recent development of quantum algorithms. A paper that solves the factorization problem using real quantum algorithms has been proposed. In this environment, interest in lattices is increasing. The existing lattice-based cryptosystem has many problems due to lack of safety proof, but recently, lattice-based cryptosystems proved based on the worst-case problem are emerging. It can be seen that the existing cryptosystem provides very high safety in view of the design based on the average-case problem. In addition, the Lattice cryptosystem is more efficient than the existing techniques. The computational complexity such as factorization, discrete logarithm, and pairing is, but the computational complexity in Lattice is much more efficient. In addition, the lattice cryptosystem is safe for quantum algorithms. Due to these various reasons, various cryptographic systems are being designed in the recent Lattice environment, and this work is considered to be very meaningful. Therefore, there is a need to develop an efficient and secure password signing technology in the Lattice environment.
본 발명의 일 실시예의 목적은 래티스 기반 암호 시스템이 갖는 연산 효율성, 높은 안전성, 양자 컴퓨터 분석에 대한 내성의 장점을 가지면서 데이터에 대해 무결성과 기밀성을 동시에 보장하는 래티스 기반의 암호서명 생성 방법 및 장치, 래티스 기반의 암호서명 복원 방법 및 장치를 제공하는 것이다. An object of an embodiment of the present invention is to provide a method and apparatus for generating a cryptographic signature based on a lattice based on a lattice-based cryptosystem, which has both advantages of computational efficiency, high security, and resistance to quantum computer analysis, , And a method and apparatus for restoring a cryptographic signature based on a lattice.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 래티스 기반의 암호서명 생성 방법은 공개 변수들을 설정하고, 상기 설정한 공개 변수들 및 기저 생성 함수에 기초하여 데이터 전송자 및 데이터 수신자 각각의 공개키 및 비밀키를 생성하는 단계; 상기 공개 변수들, 상기 데이터 전송자의 비밀키, 전송할 목적 데이터 및 서명생성 함수를 이용하여 상기 데이터 전송자의 서명을 생성하는 단계; 및 상기 데이터 수신자의 공개키, 상기 데이터 전송자의 서명 및 상기 목적 데이터를 이용하여 상기 전송할 데이터에 대한 암호문으로서 상기 데이터 전송자에 대한 서명값을 포함하는 암호서명을 생성하는 단계를 포함한다. According to another aspect of the present invention, there is provided a method of generating a cryptographic signature based on a lattice, the method comprising: setting public variables and generating a public key of each of a data sender and a data receiver based on the set public variables and a base generation function; And generating a secret key; Generating a signature of the data sender using the public variables, the secret key of the data sender, the object data to be transmitted, and a signature generation function; And generating a cryptographic signature including a signature value for the data sender as a cipher text for the data to be transmitted using the public key of the data recipient, the signature of the data sender, and the object data.
바람직하게는, 상기 데이터 전송자 및 데이터 수신자 각각의 공개키 및 비밀키가 행렬일 때, 상기 데이터 전송자의 공개키 행렬 A와 상기 데이터 전송자의 비밀키 행렬 SA를 곱하여 생성된 제1 곱셈 행렬 및 상기 데이터 수신자의 공개키 행렬 B와 상기 데이터 수신자의 비밀키 행렬 SB를 곱하여 생성된 제2 곱셈 행렬의 구성요소들 각각의 값은 0일 수 있다. A first multiplication matrix generated by multiplying the public key matrix A of the data sender by the secret key matrix S A of the data sender when the public key and secret key of the data sender and the data receiver are respectively a matrix, The value of each of the components of the second multiplication matrix generated by multiplying the public key matrix B of the data recipient and the secret key matrix S B of the data recipient may be zero.
바람직하게는, 상기 공개 변수들은 상호간에 관련성을 가지는 제1 변수 n, 제2 변수 m, 제3 변수 δ 및 제4 변수 q를 포함하고, 상기 데이터 전송자의 공개키 행렬 A와 상기 데이터 수신자의 공개키 행렬 B는 n * m의 크기를 가지고 0에서 q사이의 랜덤 값들을 구성요소로 가지고, 상기 데이터 전송자의 비밀키 행렬 SA와 상기 데이터 수신자의 비밀키 행렬 SB는 m * m의 크기를 가지고 0에서 q사이의 랜덤 값들을 구성요소로 가질 수 있다. Preferably, the public variables include a first variable n, a second variable m, a third variable delta and a fourth variable q that are mutually related, and the public key matrix A of the data sender and the public key matrix A of the data sender The key matrix B has random values between 0 and q with a size of n * m, and the secret key matrix S A of the data sender and the secret key matrix S B of the data receiver have a size of m * m You can have random values between 0 and q as a component.
바람직하게는, 상기 데이터 전송자의 서명을 생성하는 단계는 0 내지 2사이의 값들을 구성요소로 하는 m차원의 벡터와 0 내지 q사이의 랜덤 값들을 구성요소로 하는 n차원의 벡터를 입력으로 0 내지 q사이의 랜덤 해쉬 값들을 구성요소로 하는 n차원의 벡터를 출력하는 안전 해쉬 함수를 설정하는 단계; 0에서 q사이의 랜덤 값들을 구성요소로 하는 n차원의 벡터 s를 생성하는 단계; 및 상기 안전 해쉬함수에 상기 목적 데이터에 대응되는 m차원의 벡터 및 상기 벡터 s를 입력하여 출력된 n차원의 해쉬 출력 벡터, 상기 데이터 전송자의 비밀키 SA, 상기 제3 변수 δ 및 상기 서명생성 함수를 이용하여 m차원의 벡터 형태를 가진 상기 데이터 전송자의 서명 σ를 생성하는 단계를 포함할 수 있다. Preferably, the step of generating the signature of the data sender comprises the steps of inputting an m-dimensional vector having values between 0 and 2 as an element and an n-dimensional vector having random values between 0 and q as its components as input 0 Setting a secure hash function to output an n-dimensional vector having random hash values between q and q as elements; Generating an n-dimensional vector s having random values between 0 and q as an element; And an m-dimensional vector corresponding to the objective data and the n-dimensional hash output vector obtained by inputting the vector s into the secure hash function, a secret key S A of the data sender, And generating a signature? Of the data sender having an m-dimensional vector form using the function?
바람직하게는, 상기 암호서명은 수학식 3에 의거하여 생성될 수 있다. Preferably, the cryptographic signature may be generated according to Equation (3).
[수학식 3]&Quot; (3) "
이때, c는 암호서명을 나타내고, BT는 상기 데이터 수신자의 공개키 B를 트랜스포즈한 값, s는 0에서 q사이의 랜덤 값들을 구성요소로 하는 n차원의 벡터, σ는 데이터 전송자의 서명, modq는 괄호안의 값을 q로 나눈 나머지 값을 나타낸다. Where c denotes a cryptographic signature, B T denotes a value obtained by transposing the public key B of the data recipient, s denotes an n-dimensional vector having random values between 0 and q as an element, σ denotes a signature of the data sender , modq represents the remainder of the value in parentheses divided by q.
또한, 상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 래티스 기반의 암호서명 복원 방법은 데이터 수신자의 공개키, 데이터 전송자의 서명 및 전송하고자 하는 목적 데이터를 이용하여 생성된 상기 목적 데이터에 대한 암호문으로서 상기 데이터 전송자에 대한 서명값을 포함하는 암호서명을 수신하는 단계; 상기 데이터 수신자의 비밀키를 이용하여 상기 데이터 전송자의 서명과 상기 목적 데이터만이 결합된 형태를 가진 중간 연산값을 산출하는 단계; 상기 산출된 중간 연산값에 mod함수를 적용하여 상기 중간 연산값으로부터 상기 목적 데이터를 추출하는 단계; 및 상기 추출된 목적 데이터를 이용하여 상기 중간 연산값으로부터 상기 데이터 전송자의 서명을 추출하는 단계를 포함하고, 상기 데이터 수신자의 공개키 및 비밀키는 행렬 형태를 가지고, 상기 데이터 수신자의 공개키에 대응되는 행렬과 상기 데이터 수신자의 비밀키에 대응되는 행렬을 곱하여 생성된 행렬의 구성요소들 각각의 값은 0이 된다. According to another aspect of the present invention, there is provided a method for restoring cryptographic signature based on a public key of a data recipient, a signature of a data sender, and object data to be transmitted, Receiving a cryptographic signature including a signature value for the data sender as a cipher text; Calculating an intermediate operation value having a form in which only the signature of the data sender and the object data are combined using the secret key of the data receiver; Extracting the target data from the intermediate calculation value by applying a mod function to the calculated intermediate calculation value; And extracting a signature of the data sender from the intermediate computation value using the extracted object data, wherein the public key and the secret key of the data recipient have a matrix form and correspond to the public key of the data recipient And the value of each of the elements of the matrix generated by multiplying the matrix corresponding to the secret key of the data receiver by 0 is 0.
바람직하게는, c는 암호서명을 나타내고, BT는 상기 데이터 수신자의 공개키 B를 트랜스포즈한 값, s는 0에서 q사이의 랜덤 값들을 구성요소로 하는 n차원의 벡터, σ는 데이터 전송자의 서명, modq는 괄호안의 값을 q로 나눈 나머지 값을 나타낼 때, 상기 암호서명은 수학식 3에 따른 형태를 가지고, Preferably, c denotes a cryptographic signature, B T denotes a value obtained by transposing the public key B of the data recipient, s denotes an n-dimensional vector having random values between 0 and q as an element, And modq represents a remainder value obtained by dividing the value in parentheses by q, the encryption signature has a form according to Equation (3)
[수학식 3]&Quot; (3) "
상기 중간 연산값을 산출하는 단계는The step of calculating the intermediate operation value
수학식 4 및 수학식 5에 의거하여 상기 중간 연산값을 2σ+M으로서 산출할 수 있다. The intermediate calculation value can be calculated as 2? + M based on the equations (4) and (5).
[수학식 4]&Quot; (4) "
[수학식 5]&Quot; (5) "
이때, (SB)T 는 데이터 수신자의 비밀키에 대응되는 행렬 SB를 트랜스포즈한 행렬이고, (SB)-T 는 (SB)T 행렬의 역행렬이다. (S B ) -T is an inverse matrix of the (S B ) T matrix. In this case, (S B ) T is a matrix in which a matrix S B corresponding to the secret key of the data receiver is transposed.
바람직하게는, 상기 목적 데이터를 추출하는 단계는 수학식 6에 의거하여 수행될 수 있다. Preferably, the step of extracting the object data may be performed according to the equation (6).
[수학식 6]&Quot; (6) "
바람직하게는, 상기 데이터 전송자의 서명을 추출하는 단계는 수학식 7에 의거하여 수행될 수 있다. Preferably, extracting the signature of the data sender may be performed according to Equation (7).
[수학식 7]&Quot; (7) "
바람직하게는, 상기 목적 데이터의 무결성을 검증하는 단계를 더 포함하고, 상기 무결성을 검증하는 단계는 수학식 8에서 랜덤 값들을 구성요소로 하는 n차원의 벡터 s를 산출한 후, 수학식 9를 만족하는지 여부에 기초하여 수행될 수 있다. Preferably, the step of verifying the integrity of the object data further comprises: calculating an n-dimensional vector s having random values as an element in Equation 8, And whether or not they are satisfied.
[수학식 8]&Quot; (8) "
[수학식 9]&Quot; (9) "
이때, δ 는 제1 변수 n, 제2 변수 m, 제3 변수 δ 및 제4 변수 q를 포함하는 공개 변수들 중 제3 변수이고, H는 0 내지 2사이의 값들을 구성요소로 하는 m차원의 벡터와 0 내지 q사이의 랜덤 값들을 구성요소로 하는 n차원의 벡터를 입력으로 0 내지 q사이의 랜덤 해쉬 값들을 구성요소로 하는 n차원의 벡터를 출력하는 안전 해쉬 함수를 나타낸다. Here, 隆 is a third one of the open variables including the first variable n, the second variable m, the third variable 隆 and the fourth variable q, and H is an m-dimension Dimensional vector having random hash values between 0 and q as an input and an n-dimensional vector having random vectors between 0 and q as elements.
또한, 상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 래티스 기반의 암호서명 생성 장치는 공개 변수들을 설정하고, 상기 설정한 공개 변수들 및 기저 생성 함수에 기초하여 데이터 전송자 및 데이터 수신자 각각의 공개키 및 비밀키를 생성하는 키 생성부; 상기 공개 변수들, 상기 데이터 전송자의 비밀키, 전송할 목적 데이터 및 서명생성 함수를 이용하여 상기 데이터 전송자의 서명을 생성하는 서명 생성부; 및 상기 데이터 수신자의 공개키, 상기 데이터 전송자의 서명 및 상기 목적 데이터를 이용하여 상기 전송할 데이터에 대한 암호문으로서 상기 데이터 전송자에 대한 서명값을 포함하는 암호서명을 생성하는 암호서명 생성부를 포함한다. According to another aspect of the present invention, there is provided a lattice-based cryptographic signature generation apparatus for generating public key cryptograms of a data sender and a data recipient based on the set public variables and a base generation function, A key generation unit for generating a public key and a secret key; A signature generator for generating a signature of the data sender using the public variables, the secret key of the data sender, the object data to be transmitted, and the signature generation function; And a cryptographic signature generator for generating a cryptographic signature including a signature value for the data sender as a cipher text for the data to be transmitted using the public key of the data receiver, the signature of the data sender, and the object data.
바람직하게는, 상기 서명 생성부는 0 내지 2사이의 값들을 구성요소로 하는 m차원의 벡터와 0 내지 q사이의 랜덤 값들을 구성요소로 하는 n차원의 벡터를 입력으로 0 내지 q사이의 랜덤 해쉬 값들을 구성요소로 하는 n차원의 벡터를 출력하는 안전 해쉬 함수를 설정하는 해쉬 함수 생성부; 0에서 q사이의 랜덤 값들을 구성요소로 하는 n차원의 벡터 s를 생성하는 벡터 생성부; 및 상기 안전 해쉬함수에 상기 목적 데이터에 대응되는 m차원의 벡터 및 상기 벡터 s를 입력하여 출력된 n차원의 해쉬 출력 벡터, 상기 데이터 전송자의 비밀키 SA, 상기 제3 변수 δ 및 상기 서명생성 함수를 이용하여 m차원의 벡터 형태를 가진 상기 데이터 전송자의 서명 σ를 생성하는 서명 처리부를 포함한다. Preferably, the signature generator is configured to input a vector of m-dimension having values between 0 and 2 as an element and an vector of n-dimension having random values between 0 and q as elements, A hash function generation unit for setting a secure hash function that outputs an n-dimensional vector having values as elements; A vector generating unit for generating an n-dimensional vector s having random values between 0 and q as elements; And an m-dimensional vector corresponding to the objective data and the n-dimensional hash output vector obtained by inputting the vector s into the secure hash function, a secret key S A of the data sender, And a signature processing unit for generating a signature < s > of the data sender having an m-dimensional vector form using a function.
또한, 상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 래티스 기반의 암호서명 복원 장치는 데이터 수신자의 공개키, 데이터 전송자의 서명 및 전송하고자 하는 목적 데이터를 이용하여 생성된 상기 목적 데이터에 대한 암호문으로서 상기 데이터 전송자에 대한 서명값을 포함하는 암호서명을 수신하는 수신부; 상기 암호서명에 기초하여 상기 데이터 수신자의 비밀키를 이용하여 상기 데이터 전송자의 서명과 상기 목적 데이터만이 결합된 형태를 가진 중간 연산값을 산출하는 중간 연산 산출부; 상기 산출된 중간 연산값에 mod함수를 적용하여 상기 중간 연산값으로부터 상기 목적 데이터를 추출하는 데이터 추출부; 및 상기 추출된 목적 데이터를 이용하여 상기 중간 연산값으로부터 상기 데이터 전송자의 서명을 추출하는 서명 추출부를 포함하고, 상기 데이터 수신자의 공개키 및 비밀키는 행렬 형태를 가지고, 상기 데이터 수신자의 공개키에 대응되는 행렬과 상기 데이터 수신자의 비밀키에 대응되는 행렬을 곱하여 생성된 행렬의 구성요소들 각각의 값은 0이 된다.According to another aspect of the present invention, there is provided a lattice-based cryptographic signature restoration apparatus for recovering a cryptographic signature using a public key of a data recipient, a signature of a data sender, and object data to be transmitted, A receiver for receiving a cryptographic signature including a signature value for the data sender as a cipher text; An intermediate computation unit for computing an intermediate computation value having a form in which only the signature of the data sender and the objective data are combined using the secret key of the data recipient based on the encryption signature; A data extraction unit for extracting the object data from the intermediate calculation value by applying a mod function to the calculated intermediate calculation value; And a signature extraction unit for extracting a signature of the data sender from the intermediate calculation value using the extracted object data, wherein the public key and the secret key of the data receiver have a matrix form, and the public key of the data recipient The value of each of the elements of the matrix generated by multiplying the corresponding matrix by the matrix corresponding to the secret key of the data receiver is zero.
바람직하게는, 본 발명의 일 실시예에 따른 래티스 기반의 암호서명 복원 장치는 상기 목적 데이터의 무결성을 검증하는 무결성 검증부를 더 포함하고, 상기 무결성을 검증부는 수학식 8에서 랜덤 값들을 구성요소로 하는 n차원의 벡터 s를 산출한 후, 수학식 9를 만족하는지 여부에 기초하여 무결성을 검증한다. Preferably, the lattice-based cryptographic signature restoration apparatus according to an embodiment of the present invention further includes an integrity verification unit for verifying the integrity of the object data, Dimensional vector s, and then verifies the integrity based on whether or not the expression (9) is satisfied.
[수학식 8]&Quot; (8) "
[수학식 9]&Quot; (9) "
이때, δ 는 제1 변수 n, 제2 변수 m, 제3 변수 δ 및 제4 변수 q를 포함하는 공개 변수들 중 제3 변수이고, H는 0 내지 2사이의 값들을 구성요소로 하는 m차원의 벡터와 0 내지 q사이의 랜덤 값들을 구성요소로 하는 n차원의 벡터를 입력으로 0 내지 q사이의 랜덤 해쉬 값들을 구성요소로 하는 n차원의 벡터를 출력하는 안전 해쉬 함수를 나타낸다. Here, 隆 is a third one of the open variables including the first variable n, the second variable m, the third variable 隆 and the fourth variable q, and H is an m-dimension Dimensional vector having random hash values between 0 and q as an input and an n-dimensional vector having random vectors between 0 and q as elements.
본 발명의 일 실시예에 따른 암호 서명 기술은 래티스 기반으로 설계되었기 때문에 래티스 기반 암호 시스템이 갖는 연산 효율성, 높은 안전성, 양자 컴퓨터 분석에 대한 내성의 장점을 가지면서 데이터에 대해 무결성과 기밀성을 동시에 보장할 수 있는 효과가 있다. Since the cryptographic signature technique according to an embodiment of the present invention is designed based on lattice, it has the advantages of computational efficiency, high safety, and resistance to quantum computer analysis of a lattice-based cryptosystem, and guarantees integrity and confidentiality of data simultaneously There is an effect that can be done.
도 1은 본 발명의 일실시예에 따른 래티스 기반의 암호서명 생성 장치를 설명하기 위하여 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 서명 생성부를 설명하기 위하여 도시한 도면이다.
도 3은 본 발명의 일실시예에 따른 래티스 기반의 암호서명 생성 방법을 설명하기 위하여 도시한 흐름도이다.
도 4는 본 발명의 일실시예에 따른 서명 생성 방법을 설명하기 위하여 도시한 흐름도이다.
도 5는 본 발명의 일실시예에 따른 래티스 기반의 암호서명 복원 장치를 설명하기 위하여 도시한 도면이다.
도 6은 본 발명의 일실시예에 따른 래티스 기반의 암호서명 복원 방법을 설명하기 위하여 도시한 흐름도이다. FIG. 1 is a diagram for explaining a lattice-based cryptographic signature generation apparatus according to an embodiment of the present invention.
2 is a block diagram illustrating a signature generator according to an exemplary embodiment of the present invention.
3 is a flowchart illustrating a method of generating a lattice-based encryption signature according to an exemplary embodiment of the present invention.
4 is a flowchart illustrating a signature generation method according to an embodiment of the present invention.
FIG. 5 is a diagram for explaining a lattice-based cryptographic signature restoration apparatus according to an embodiment of the present invention.
6 is a flowchart illustrating a method of recovering a cryptographic signature based on a lattice according to an embodiment of the present invention.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. Like reference numerals are used for like elements in describing each drawing.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. The terms first, second, A, B, etc. may be used to describe various elements, but the elements should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component. And / or < / RTI > includes any combination of a plurality of related listed items or any of a plurality of related listed items.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used in this application is used only to describe a specific embodiment and is not intended to limit the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In the present application, the terms "comprises" or "having" and the like are used to specify that there is a feature, a number, a step, an operation, an element, a component or a combination thereof described in the specification, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the contextual meaning of the related art and are to be interpreted as either ideal or overly formal in the sense of the present application Do not.
본 발명의 실시예들을 설명하기에 앞서, 본 발명의 기반이 되는 기술인 래티스(lattices)에 대해 설명하고, 이를 통해 본 발명의 일 실시예에서 사용되는 알고리즘들에 대해서도 상세히 살펴보기로 한다.Before describing the embodiments of the present invention, the lattices that are the basis of the present invention will be described, and the algorithms used in an embodiment of the present invention will be described in detail.
- 래티스 (lattices)- lattices
본 발명에서는 차원의 풀-랭크(full-rank) 정수 래티스를 사용하며, 이것은 유한개의 지수(finite index)를 가지는 의 이산 가산 서브그룹(discrete additive subgroup)이다. 즉, 쿼션트 그룹(quotient group) 이 유한하다. 하나의 래티스 은 개의 선형 독립 기저(basis) 벡터 의 모든 정수 선형 결합의 집합과 동일하게 정의된다.In the present invention, Dimensional full-rank integer lattice, which has a finite index < RTI ID = 0.0 > Lt; RTI ID = 0.0 > a < / RTI > discrete additive subgroup. That is, a quotient group This is finite. One Lattice silver The linear independent basis vectors Is defined as the set of all integer linear combinations of.
여기서 일 경우, 동일한 래티스를 생성하는 기저들은 무수히 많다.here , There are a myriad of bases for generating the same lattice.
- 하드 래티스와 SIS, LWE 문제- Hard Lattice, SIS, LWE Problems
본 발명에서는 다음과 같은 정수 래티스의 특정한 형태를 사용한다. 여기서 과 는 정수이며, 차원 은 본 발명에서 사용되는 보안 파라미터이고, 모든 다른 파라미터들은 의 함수들로 내포되었다고 가정한다. 여기서 차원 하드 래티스는 패리티 검사 행렬(parity check matrix) 에 의해 생성되며, 다음과 같이 정의된다.In the present invention, a specific form of the following integer lattice is used. here and Is an integer, and dimension Is a security parameter used in the present invention, and all other parameters Are implied as functions of. here Dimensional hard lattice is a parity check matrix. And is defined as follows.
그리고 어떤 에 대해서, 패리티 검사 행렬 에 의해 생성되는 코셋(coset)은 다음과 같이 정의된다.And any , A parity check matrix Is defined as follows: cos (cos?
어떤 고정된 상수 과 어떤 에 대해, 균등하게 랜덤한(uniformly random) 의 열 벡터는 상의 모두를 ( 확률을 제외하고) 생성할 수 있다. 따라서 본 발명에서는 균등하게 랜덤한 를 사용한다.Some fixed constants And any Uniformly random < RTI ID = 0.0 > The column vector of All of the above ( (Except for probability). Therefore, in the present invention, Lt; / RTI >
다음으로 하드 래티스의 (Short Integer Solution) 문제에 대해서 살펴보자. 이 문제는 평균적인 경우에 어려운 문제(average-case hardness problems)에 속해 있으며, 이 문제를 최악의 경우에 어려운 문제(worst-case hardness problems)로 커넥션(connection)하는 방법에 대해서도 공지된 바 있다.Next to Hard Lattice (Short Integer Solution). This problem belongs to the average-case hardness problems, and it has been known how to connect the problem to worst-case hardness problems in the worst case.
참고로, 문제는 어떤 에 대해 균등하게 랜덤한 행렬 를 입력으로 받아 와 (즉, )을 만족하는 영이 아닌(nonzero) 정수 벡터 를 찾는 것이다. 문제에서 알고리즘 의 성공 확률은 로 나타낸다.Note that, The problem is A uniformly random matrix < RTI ID = 0.0 > As input Wow (In other words, ) Nonzero integer vector satisfying . Algorithms in Problems The probability of success is Respectively.
또한, LWE 문제는 정수 와 상의 특정 분포 에 대해, 문제는 주어진 다수의 에서 벡터 를 찾는 것으로 정의된다.Also, the LWE problem is an integer Wow Specific distribution of About, The problem is that a given number of In vector .
특히, LWE 문제에서 가 분포 을 따르는 경우, 이 역시 SIS 문제와 마찬가지로 최악의 경우에 어려운 문제(worst-case hardness problems)로 커넥션(connection)할 수 있다. 여기서 분포 란 , 소수 에 대해 가 평균 , 표준편차 을 따르는 정규분포라고 할 때, 에 가장 가까운 정수를 나타내는 확률변수를 의미한다.In particular, in the LWE problem Distribution , This can also be a connection to the worst-case hardness problems as in the SIS problem. Here distribution Ran , Minority About Average , Standard Deviation Is a normal distribution that follows < RTI ID = 0.0 > Is a random variable that represents the integer closest to the target.
- 래티스에서의 가우시안 분포- Gaussian distribution in Lattice
본 발명에서 제안된 내용을 바탕으로 래티스에서의 가우시안 분포에 대해서 살펴본다. 어떤 과 차원 에 대해, 가우시안 함수(Gaussian function) 는 로 정의된다. 어떤 코셋 에 대해, 코셋 상의 (중심이 인) 이산 가우시안 분포(discrete Gaussian distribution) 는 각각의 에서 에 비례하는 확률을 가진다.The Gaussian distribution in the lattices will be described based on the contents proposed in the present invention. which And dimension Gaussian function < RTI ID = 0.0 > The . Any coset (The center of gravity) (Discrete Gaussian distribution) Respectively, in .
다음으로 본 발명에서 사용되는 래티스에서의 가우시안 분포와 관련되는 성질들을 살펴본다. 여기에서 는 어떤 에 대한 의 기저를 말하며, 이다.Next, properties related to the Gaussian distribution in the lattices used in the present invention will be described. From here Is any For , And, to be.
( 통계적인 거리를 가지는) 로부터 샘플링을 할 수 있는 PPT(probabilistic polynomial time) 알고리즘 SampleD(S,y,s)이 존재한다.( With statistical distances) (S, y, s), which is a probabilistic polynomial time (PPT)
- 기저와 트랩도어 (basis and trapdoors)- Base and trap doors
본 발명에서는 균등한 분포에서 임의로 선택된 매트릭스 와 이러한 매트릭스로 생성되는 래티스 의 짧은 기저를 생성하는 알고리즘GBasis을 사용한다. 위의 알고리즘에서 파라미터들은 을 만족하며, 기저 의 길이는 만큼 짧다. 임의의 래티스의 짧은 기저를 찾는 문제는 결국 문제이기 때문에 알고리즘 은 임의의 래티스와 그것의 트랩도어( 문제에 대한) 즉, 짧은 기저를 생성하게 된다.In the present invention, a matrix arbitrarily selected from an even distribution And the lattice created by this matrix Short base of Algorithm to generate GBasis Lt; / RTI > In the above algorithm, , And the base The length of . The problem of finding the short bases of arbitrary lattices is ultimately Because of the problem, Is an arbitrary lattice and its trap door ( That is, a short base for the problem).
- 특별한 성질을 만족하는 기저와 트랩도어- Base and trap door with special properties
본 발명에서는 위의 트랩도어 생성 알고리즘을 변형한 특별한 성질을 만족하는 변형 트랩도어 생성 알고리즘으로서 SuperSamp 알고리즘을 사용한다. 해당 알고리즘은 위의 GBasis의 입력값에 추가적으로 매트릭스 를 입력받아 위의 알고리즘과 동일한 분포의 결과값 즉, 래티스 및 그것의 짧은 기저 쌍 을 출력한다.In the present invention, a modified trap door generation algorithm satisfying the special properties of the above-described trap door generation algorithm is proposed. Algorithm. In addition to the input values of GBasis above, And outputs the result of the same distribution as the above algorithm, that is, the lattice and its short base pair .
여기서 중요한 성질은 입력값으로 받은 매트릭스 와 출력 매트릭스인 사이에는 을 만족한다는 것이다. SuperSamp의 입력 파라미터는 수식 을 만족해야 한다.The important property here is that the matrix And output matrix Between . The input parameters of the SuperSamp are expressed as Equation .
- 위임 방법 (delegation method)- delegation method
본 발명에서는 래티스의 짧은 기저를 위임하는 기법인 BasisDel 알고리즘을 사용한다. 우선 다음과 같이 짧은 길이의 벡터를 열벡터로 갖는 매트릭스 을 정의한다. 의 열벡터의 분포는 가우시안 분포 를 따른다.In the present invention, BasisDel algorithm, which is a technique for delegating short base of lattice, is used. First, a matrix having a short length vector as a column vector . The distribution of the column vectors of the Gaussian distribution .
BasisDel 알고리즘은 매트릭스 , 래티스 의 짧은 기저 , 위에서 정의한 짧은 매트릭스 그리고 파라미터 을 입력값으로 받아, 매트릭스 와 이로 생성되는 래티스 의 짧은 기저 을 출력한다. 특히, 생성된 기저의 길이는 만큼 증가 비율을 갖는다.BasisDel The algorithm , Lattice Short base of , The short matrix defined above And the parameters As an input value, And the resulting lattice Short base of . In particular, the generated base length is .
- 매트릭스 변환 방법(matirx transformation method)- Matrix transformation method
본 발명에서는 다음과 같은 매트릭스(래티스) 변환 알고리즘, Transform 알고리즘을 제안한다. 해당 알고리즘 Transform은 매트릭스 , 래티스 의 짧은 기저 , 그리고 파라미터 을 입력값으로 받아, 위에서 정의한 짧은 매트릭스 분포 을 따르는 매트릭스 을 출력한다.The present invention proposes the following matrix (lattice) transformation algorithm and Transform algorithm. Transform the corresponding algorithm The matrix , Lattice Short base of , And parameters As an input value, the short matrix distribution defined above ≪ / RTI > .
출력된 매트릭스 는 수식 을 만족한다. 해당 알고리즘을 설계하는 방법은 를 각각 매트릭스 의 번째 열이라고 했을 때, SamplePre을 이용하여 생성할 수 있다. 해당 방법을 번 사용하면 매트릭스를 완성할 수 있으며, SamplePre의 성질에 따라 임을 확인할 수 있다.The output matrix The equation . How to design the algorithm Respectively, of When we say the third column, SamplePre . ≪ / RTI > How to Use it once to complete the matrix, depending on the nature of the SamplePre .
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 일실시예에 따른 래티스 기반의 암호서명 생성 장치를 설명하기 위하여 도시한 도면이다. FIG. 1 is a diagram for explaining a lattice-based cryptographic signature generation apparatus according to an embodiment of the present invention.
도 1을 참조하면, 본 발명의 일실시예에 따른 래티스 기반의 암호서명 생성 장치는 키 생성부(110), 서명 생성부(120) 및 암호서명 생성부(130)를 포함한다. Referring to FIG. 1, a lattice-based cryptographic signature generation apparatus according to an exemplary embodiment of the present invention includes a
키 생성부(110)는 공개 변수들을 설정하고, 설정한 공개 변수들 및 기저 생성 함수에 기초하여 데이터 전송자 및 데이터 수신자 각각의 공개키 및 비밀키를 생성한다. The
이때, 공개 변수들은 상호간에 관련성을 가지는 제1 변수 n, 제2 변수 m, 제3 변수 δ 및 제4 변수 q를 포함할 수 있으며, 제1 변수 n은 보안 파라미터로서 값이 높을수록 보안성이 높아진다. In this case, the open variables may include a mutually related first variable n, a second variable m, a third variable?, And a fourth variable q, and the first variable n is a security parameter, .
제1 변수 n, 제2 변수 m, 제3 변수 δ 및 제4 변수 q는 n=k, m=10nlogq, , q=(2δ+1)m2과 같이 정의될 수 있다. The first variable n, the second variable m, the third variable delta and the fourth variable q are n = k, m = 10nlogq, , q = ( 2? + 1) m 2 .
한편, 래티스 암호화 시스템에서 데이터 전송자 및 데이터 수신자 각각의 공개키 및 비밀키는 기저 생성 함수 GBasis를 이용하여 수학식 1과 같이 정의될 수 있다. On the other hand, in the lattice encryption system, the public key and secret key of each of the data sender and the data receiver can be defined as Equation (1) using the base generation function GBasis.
이때, A는 행렬로서 데이터 전송자의 공개키를 나타내고, SA는 행렬로서 데이터 전송자의 비밀키를 나타내고, B는 행렬로서 데이터 수신자의 공개키를 나타내고, SB는 행렬로서 데이터 전송자의 비밀키를 나타내는데, 데이터 전송자의 공개키 행렬 A와 데이터 수신자의 공개키 행렬 B는 n * m의 크기를 가지고 0에서 q사이의 랜덤 값들을 구성요소로 가지고, 데이터 전송자의 비밀키 행렬 SA와 데이터 수신자의 비밀키 행렬 SB는 m * m의 크기를 가지고 0에서 q사이의 랜덤 값들을 구성요소로 가진다. A denotes a public key of a data sender as a matrix, S A denotes a secret key of a data sender as a matrix, B denotes a public key of a data receiver as a matrix, S B denotes a secret key of a data sender as a matrix The public key matrix A of the data sender and the public key matrix B of the data recipient have random values between 0 and q with a size of n * m as a component, and the secret key matrix S A of the data sender and the The secret key matrix, S B , has a magnitude of m * m and has random values between 0 and q as components.
한편, 데이터 전송자의 공개키 A, 데이터 전송자의 비밀키 SA, 데이터 수신자의 공개키 B, 데이터 수신자의 비밀키 SB 각각은 기저 생성 함수 GBasis에 기초하여 생성되므로, 데이터 전송자의 공개키 행렬 A와 데이터 전송자의 비밀키 행렬 SA를 곱하여 생성된 제1 곱셈 행렬 및 데이터 수신자의 공개키 행렬 B와 데이터 수신자의 비밀키 행렬 SB를 곱하여 생성된 제2 곱셈 행렬의 구성요소들 각각의 값은 0이 되는 성질을 가지게 된다. On the other hand, the public key A of the data sender, the secret key S A of the data sender, the public key B of the data receiver, the secret key S B The first multiplication matrix generated by multiplying the public key matrix A of the data sender by the secret key matrix S A of the data sender and the first multiplication matrix generated by multiplying the public key matrix B of the data recipient and the secret key K of the data recipient The value of each of the components of the second multiplication matrix generated by multiplying the matrix S B becomes zero.
본 발명의 일실시예에 따른 래티스 기반의 암호서명 복원 방법은 이와 같은 성질을 이용하여 암호서명을 복원하게 된다. The lattice-based cryptographic signature restoration method according to an embodiment of the present invention restores the cryptographic signature using this property.
서명 생성부(120)는 공개 변수들, 데이터 전송자의 비밀키, 전송할 목적 데이터 및 서명생성 함수를 이용하여 데이터 전송자의 서명을 생성한다. The
이때, 서명 생성부(120)는 데이터 전송자의 비밀키를 이용하여 데이터 전송자의 서명을 생성하므로 데이터 전송자만이 데이터 전송자의 서명을 생성할 수 있게 된다. At this time, since the
서명 생성부(120)가 데이터 전송자의 서명을 생성하는 구체적인 프로세스에 대해서는 도 2를 참조하여 후술한다. A specific process by which the
암호서명 생성부(130)는 데이터 수신자의 공개키, 데이터 전송자의 서명 및 목적 데이터를 이용하여 전송할 데이터에 대한 암호문으로서 데이터 전송자에 대한 서명값을 포함하는 암호서명을 생성한다.The encryption
이와 같이, 본 발명의 일 실시예는 래티스 암호화 시스템의 기저 생성 함수 및 서명생성 함수를 이용하여 암호서명을 생성하므로 래티스 기반 암호 시스템이 갖는 연산 효율성, 높은 안전성, 양자 컴퓨터 분석에 대한 내성의 장점을 가지면서 데이터에 대해 무결성과 기밀성을 동시에 보장할 수 있는 효과가 잇다. As such, an embodiment of the present invention generates the encryption signature using the base generation function and the signature generation function of the lattice encryption system, and thus provides advantages of the computational efficiency, high security, and immunity to quantum computer analysis of the lattice-based encryption system It is possible to guarantee both integrity and confidentiality of data at the same time.
도 2는 본 발명의 일실시예에 따른 서명 생성부를 설명하기 위하여 도시한 도면이다. 2 is a block diagram illustrating a signature generator according to an exemplary embodiment of the present invention.
도 2를 참조하면, 본 발명의 일실시예에 따른 서명 생성부(120)는 해쉬 함수 생성부(122), 벡터 생성부(124) 및 서명 처리부(126)를 포함한다. Referring to FIG. 2, the
해쉬 함수 생성부(122)는 0 내지 2사이의 값들을 구성요소로 하는 m차원의 벡터와 0 내지 q사이의 랜덤 값들을 구성요소로 하는 n차원의 벡터를 입력으로 0 내지 q사이의 랜덤 해쉬 값들을 구성요소로 하는 n차원의 벡터를 출력하는 안전 해쉬 함수 를 설정한다. The hash
벡터 생성부(124)는 0에서 q사이의 랜덤 값들을 구성요소로 하는 n차원의 벡터 를 생성한다. The
서명 처리부(126)는 안전 해쉬함수 H에 벡터 생성부(120)가 생성한 벡터 s와 목적 데이터에 대응되는 m차원의 벡터 M을 입력하여 출력된 n차원의 해쉬 출력 벡터, 데이터 전송자의 비밀키 SA, 제3 변수 δ 및 서명생성 함수 SampleD를 이용하여 m차원의 벡터 형태를 가진 데이터 전송자의 서명 σ를 생성한다. The
즉, 서명 처리부(126)는 수학식 2에 의하여 데이터 전송자의 서명 σ를 생성한다. That is, the
이때, 해쉬함수 H에 입력으로 표시되어 있는 M은 전송할 목적 데이터를 나타내고 M의 데이터 공간은 이다. 즉, M은 m차원의 벡터로서 0부터 2사이의 값들을 구성요소로 한다. At this time, M indicated by the input to the hash function H represents the target data to be transmitted, and the data space of M to be. That is, M is an m-dimensional vector, and values between 0 and 2 are elements.
한편, 서명생성 함수 SampleD는 래티스 암호화 시스템에서 일반적으로 사용되는 함수이므로 자세한 설명은 생략한다. Meanwhile, since the signature generation function SampleD is a function commonly used in the lattice encryption system, a detailed description thereof will be omitted.
도 3은 본 발명의 일실시예에 따른 래티스 기반의 암호서명 생성 방법을 설명하기 위하여 도시한 흐름도이다. 3 is a flowchart illustrating a method of generating a lattice-based encryption signature according to an exemplary embodiment of the present invention.
단계 310에서는, 래티스 기반의 암호서명 생성 장치가 공개 변수들을 설정하고, 그 설정한 공개 변수들 및 기저 생성 함수에 기초하여 데이터 전송자 및 데이터 수신자 각각의 공개키 및 비밀키를 생성한다. In step 310, a lattice-based cryptographic signature generation device sets public variables, and generates a public key and a secret key of each of the data sender and the data receiver based on the set public variables and the base generation function.
단계 320에서는, 래티스 기반의 암호서명 생성 장치가 공개 변수들, 데이터 전송자의 비밀키, 전송할 목적 데이터 및 서명생성 함수를 이용하여 데이터 전송자의 서명을 생성한다. In step 320, a lattice-based cryptographic signature generation device generates a signature of the data sender using the public variables, the secret key of the data sender, the destination data to be transmitted, and the signature generation function.
단계 330에서는, 래티스 기반의 암호서명 생성 장치가 데이터 수신자의 공개키, 데이터 전송자의 서명 및 목적 데이터를 이용하여 전송할 데이터에 대한 암호문으로서 데이터 전송자에 대한 서명값을 포함하는 암호서명을 생성한다. In step 330, the lattice-based cryptographic signature generation device generates a cryptographic signature including a signature value for the data sender as a ciphertext for data to be transmitted using the public key of the data recipient, the signature of the data sender, and the object data.
보다 구체적으로는, 래티스 기반의 암호서명 생성 장치는 암호서명을 수학식 3과 같이 생성하게 된다. More specifically, a lattice-based encryption signature generation apparatus generates a password signature as shown in Equation (3).
이때, c는 암호서명을 나타내고, BT는 데이터 수신자의 공개키 B를 트랜스포즈한 값, s는 0에서 q사이의 랜덤 값들을 구성요소로 하는 n차원의 벡터, σ는 데이터 전송자의 서명, modq는 괄호안의 값을 q로 나눈 나머지 값을 나타낸다. Where c denotes a cryptographic signature, B T denotes a value obtained by transposing the public key B of the data recipient, s denotes an n-dimensional vector having random values between 0 and q as an element, σ denotes a signature of the data sender, modq represents the remainder of the value in parentheses divided by q.
도 4는 본 발명의 일실시예에 따른 서명 생성 방법을 설명하기 위하여 도시한 흐름도이다. 4 is a flowchart illustrating a signature generation method according to an embodiment of the present invention.
단계 410에서는, 래티스 기반의 암호서명 생성 장치가 0 내지 2사이의 값들을 구성요소로 하는 m차원의 벡터와 0 내지 q사이의 랜덤 값들을 구성요소로 하는 n차원의 벡터를 입력으로 0 내지 q사이의 랜덤 해쉬 값들을 구성요소로 하는 n차원의 벡터를 출력하는 안전 해쉬 함수를 설정한다. In step 410, the lattice-based cryptographic signature generation apparatus receives an m-dimensional vector having values between 0 and 2 as an element and an n-dimensional vector having random values between 0 and q as elements, And sets a secure hash function that outputs an n-dimensional vector whose elements are random hash values between them.
단계 420에서는, 래티스 기반의 암호서명 생성 장치가 0에서 q사이의 랜덤 값들을 구성요소로 하는 n차원의 벡터 s를 생성한다. In step 420, the lattice-based cryptographic signature generator generates an n-dimensional vector s with random values between 0 and q as an element.
단계 430에서는, 래티스 기반의 암호서명 생성 장치가 안전 해쉬함수에 목적 데이터에 대응되는 m차원의 벡터 및 벡터 s를 입력하여 출력된 n차원의 해쉬 출력 벡터, 데이터 전송자의 비밀키 SA, 제3 변수 δ 및 서명생성 함수를 이용하여 m차원의 벡터 형태를 가진 데이터 전송자의 서명 σ를 생성한다. In step 430, the lattice-based cryptographic signature generation apparatus inputs an m-dimensional vector and a vector s corresponding to the object data in the secure hash function and outputs the output n-dimensional hash output vector, the secret key S A of the data sender, The signature σ of the data sender having the m-dimensional vector form is generated using the variable δ and the signature generation function.
도 5는 본 발명의 일실시예에 따른 래티스 기반의 암호서명 복원 장치를 설명하기 위하여 도시한 도면이다. FIG. 5 is a diagram for explaining a lattice-based cryptographic signature restoration apparatus according to an embodiment of the present invention.
도 5를 참조하면, 본 발명의 일 실시예에 따른 래티스 기반의 암호서명 복원 장치는 수신부(510), 중간 연산 산출부(520), 데이터 추출부(530) 및 서명 추출부(540)를 포함한다. 5, a lattice-based cryptographic signature restoration apparatus according to an embodiment of the present invention includes a receiving
수신부(510)는 데이터 수신자의 공개키, 데이터 전송자의 서명 및 전송하고자하는 목적 데이터를 이용하여 생성된 목적 데이터에 대한 암호문으로서 데이터 전송자에 대한 서명값을 포함하는 암호서명을 수신한다. The receiving
중간 연산 산출부(520)는 데이터 수신자의 비밀키를 이용하여 데이터 전송자의 서명과 목적 데이터만이 결합된 형태를 가진 중간 연산값을 산출한다. The
예컨대, 중간 연산 산출부(520)는 수학식 4 및 수학식 5에 기초하여 중간 연산값을 산출할 수 있다. For example, the
이때, (SB)T 는 데이터 수신자의 비밀키에 대응되는 행렬 SB를 트랜스포즈한 행렬로서, 수학식 4에서는 (SB)T 를 암호서명 c에 곱해주게 되는데, 전술한 바와 같이 데이터 수신자의 공개키 B 행렬과 데이터 수신자의 비밀키 SB행렬을 곱하여 생성된 제2 곱셈 행렬의 구성요소들 각각의 값은 0이 되는 성질이 있으므로 수학식 4의 최우측과 같이 이 산출된다. (S B ) T is a matrix transposed to a matrix S B corresponding to the secret key of the data receiver, and in Equation (4), (S B ) T is multiplied by the encryption signature c. As described above, Since the value of each of the components of the second multiplication matrix generated by multiplying the public key B matrix of the data recipient by the secret key S B matrix of the data receiver is 0, .
이때, (SB)-T 는 (SB)T 행렬의 역행렬로서, 수학식 4에서 산출된 값에 (SB)-T를 곱해줌으로써 중간 연산값 2σ+M이 산출된다. In this case, (S B) -T is (S B) as the inverse matrix of the matrix T, is calculated by giving the intermediate computation value 2σ + M by multiplying the (S B) -T to the value calculated by the equation (4).
데이터 추출부(530)는 그 산출된 중간 연산값에 mod함수를 적용하여 중간 연산값으로부터 목적 데이터를 추출한다. The
예컨대, 데이터 추출부(530)는 수학식 6에 기초하여 목적 데이터를 추출할 수 있다. For example, the
수학식 6에서 중간 연산값 2σ+M에 mod2 함수를 적용하여 목적 데이터만을 추출할 수 있는 이유는 2σ가 짝수 값이고, M의 데이터 공간이 이기 때문이다. The reason why the objective data can be extracted by applying the mod2 function to the intermediate calculation value 2σ + M in Equation (6) is that 2σ is an even value, and the data space of M .
서명 추출부(540)는 그 추출된 목적 데이터를 이용하여 중간 연산값으로부터 데이터 전송자의 서명을 추출한다. The
예컨대, 서명 추출부(540)는 수학식 7에 기초하여 데이터 전송자의 서명을 추출할 수 있다For example, the
수학식 7에서는 중간 연산값 2σ+M에서 M을 빼준 후에, 그 연산 결과를 2로 나눠줌으로써 간단하게 데이터 전송자의 서명 σ를 추출할 수 있게 된다. In Equation (7), after subtracting M from the intermediate calculation value 2σ + M, the signature σ of the data sender can be extracted simply by dividing the calculation result by 2.
바람직하게는, 본 발명의 일 실시예에 따른 래티스 기반의 암호서명 복원 장치는 목적 데이터의 무결성을 검증하는 무결성 검증부(미도시)를 더 포함할 수 있다. Preferably, the lattice-based cryptographic signature restoration apparatus according to an embodiment of the present invention may further include an integrity verification unit (not shown) for verifying the integrity of the object data.
무결성 검증부는 수학식 8 및 수학식 9에 의하여 목적 데이터의 무결성을 검증할 수 있다. The integrity verification unit can verify the integrity of the object data by Equations (8) and (9).
[수학식 8]&Quot; (8) "
수학식 8에 의하여 무결성 검증부는 랜덤 값들을 구성요소로 하는 n차원의 벡터 s를 산출하게 된다. According to Equation (8), the integrity verification unit calculates an n-dimensional vector s having random values as its constituent elements.
[수학식 9]&Quot; (9) "
무결성 검증부는 수학식 8에서 산출된 벡터 s를 수학식 9에 적용하고, 수학식 9의 3개의 조건이 모두 만족되는지에 기초하여 목적 데이터의 무결성을 검증하게 된다. 만일, 수학식 9의 3개의 조건이 모두 만족되면 목적 데이터의 무결성이 인정되고, 수학식 9의 3개의 조건 중에 하나라도 만족되지 않으면 목적 데이터의 무결성은 인정되지 않게 된다. The integrity verification unit applies the vector s calculated in Equation (8) to Equation (9) and verifies the integrity of the objective data based on whether all three conditions of Equation (9) are satisfied. If all three conditions of Equation (9) are satisfied, the integrity of the objective data is recognized, and if none of the three conditions of Equation (9) is satisfied, the integrity of the objective data is not recognized.
이와 같이, 본 발명의 일 실시예에 따른 래티스 기반의 암호서명 복원 장치에 따르면 수신된 암호서명으로부터 목적 데이터 및 데이터 전송자의 서명 σ를 추출할 수 있으므로, 데이터 전송자와 데이터 수신자가 암호서명을 이용하여 데이터를 송수신하는 것만으로도 데이터에 대해 무결성과 기밀성을 동시에 보장할 수 있게 되는 효과가 있다. As described above, according to the lattice-based cryptographic signature restoration apparatus according to the embodiment of the present invention, since the target data and the signature? Of the data sender can be extracted from the received cryptographic signature, the data sender and the data recipient can use the cryptographic signature It is possible to ensure both integrity and confidentiality of data at the same time by transmitting and receiving data.
도 6은 본 발명의 일실시예에 따른 래티스 기반의 암호서명 복원 방법을 설명하기 위하여 도시한 흐름도이다. 6 is a flowchart illustrating a method of recovering a cryptographic signature based on a lattice according to an embodiment of the present invention.
단계 610에서는, 래티스 기반의 암호서명 복원 장치가 데이터 수신자의 공개키, 데이터 전송자의 서명 및 전송하고자 하는 목적 데이터를 이용하여 생성된 목적 데이터에 대한 암호문으로서 데이터 전송자에 대한 서명값을 포함하는 암호서명을 수신한다. In step 610, the lattice-based cryptographic signature restoration apparatus generates a cryptographic signature including a signature value for the data sender as a ciphertext for the objective data generated using the public key of the data recipient, the signature of the data sender, Lt; / RTI >
단계 620에서는, 래티스 기반의 암호서명 복원 장치가 그 수신된 암호서명에 기초하여 데이터 수신자의 비밀키를 이용하여 데이터 전송자의 서명과 목적 데이터만이 결합된 형태를 가진 중간 연산값을 산출한다. In step 620, the lattice-based cryptographic signature restoration apparatus calculates an intermediate computation value having a form in which only the signature of the data sender and the objective data are combined using the secret key of the data recipient based on the received cryptographic signature.
단계 630에서는, 래티스 기반의 암호서명 복원 장치가 그 산출된 중간 연산값에 mod함수를 적용하여 중간 연산값으로부터 목적 데이터를 추출한다. In step 630, the lattice-based cryptographic signature recovery apparatus extracts the object data from the intermediate computation value by applying the mod function to the computed intermediate computation value.
단계 640에서는, 래티스 기반의 암호서명 복원 장치가 추출된 목적 데이터를 이용하여 중간 연산값으로부터 데이터 전송자의 서명을 추출한다. In step 640, the lattice-based cryptographic signature recovery apparatus extracts the signature of the data sender from the intermediate calculation value using the extracted object data.
마지막으로, 래티스 기반의 암호서명 복원 장치는 그 추출된 목적 데이터와 데이터 전송자의 서명을 이용하여 목적 데이터의 무결성을 검증할 수 있다. Finally, the lattice-based cryptographic signature restoration device can verify the integrity of the object data using the extracted object data and the signature of the data sender.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다.The above-described embodiments of the present invention can be embodied in a general-purpose digital computer that can be embodied as a program that can be executed by a computer and operates the program using a computer-readable recording medium.
상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 를 포함한다.The computer readable recording medium includes a magnetic storage medium (e.g., ROM, floppy disk, hard disk, etc.), optical reading medium (e.g., CD ROM, DVD, etc.).
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.The present invention has been described with reference to the preferred embodiments. It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. Therefore, the disclosed embodiments should be considered in an illustrative rather than a restrictive sense. The scope of the present invention is defined by the appended claims rather than by the foregoing description, and all differences within the scope of equivalents thereof should be construed as being included in the present invention.
Claims (14)
상기 공개 변수들, 상기 데이터 전송자의 비밀키, 전송할 목적 데이터 및 서명생성 함수를 이용하여 상기 데이터 전송자의 서명을 생성하는 단계; 및
상기 데이터 수신자의 공개키, 상기 데이터 전송자의 서명 및 상기 목적 데이터를 이용하여 상기 전송할 데이터에 대한 암호문으로서 상기 데이터 전송자에 대한 서명값을 포함하는 암호서명을 생성하는 단계를 포함하고,
상기 암호서명은 수학식 3에 의거하여 생성되는 것을 특징으로 하는 래티스 기반의 암호서명 생성 방법.
[수학식 3]
이때, c는 암호서명을 나타내고, BT는 상기 데이터 수신자의 공개키 B를 트랜스포즈한 값, s는 0에서 q사이의 랜덤 값들을 구성요소로 하는 n차원의 벡터, σ는 데이터 전송자의 서명, modq는 괄호안의 값을 q로 나눈 나머지 값을 나타냄. Setting public variables, and generating a public key and a private key of each of the data sender and the data receiver based on the set public variables and the base generating function;
Generating a signature of the data sender using the public variables, the secret key of the data sender, the object data to be transmitted, and a signature generation function; And
Generating a cryptographic signature including a signature value for the data sender as a cipher text for the data to be transmitted using the public key of the data recipient, the signature of the data sender, and the object data,
Wherein the cryptographic signature is generated according to Equation (3).
&Quot; (3) "
Where c denotes a cryptographic signature, B T denotes a value obtained by transposing the public key B of the data recipient, s denotes an n-dimensional vector having random values between 0 and q as an element, σ denotes a signature of the data sender , modq represents the remainder of the value in parentheses divided by q.
상기 데이터 전송자 및 데이터 수신자 각각의 공개키 및 비밀키가 행렬일 때,
상기 데이터 전송자의 공개키 행렬 A와 상기 데이터 전송자의 비밀키 행렬 SA를 곱하여 생성된 제1 곱셈 행렬 및 상기 데이터 수신자의 공개키 행렬 B와 상기 데이터 수신자의 비밀키 행렬 SB를 곱하여 생성된 제2 곱셈 행렬의 구성요소들 각각의 값은 0인 것을 특징으로 하는 래티스 기반의 암호서명 생성 방법. The method according to claim 1,
When the public key and secret key of each of the data sender and the data receiver are matrices,
A first multiplication matrix generated by multiplying the public key matrix A of the data sender by the secret key matrix S A of the data sender and the first multiplication matrix generated by multiplying the public key matrix B of the data recipient by the secret key matrix S B of the data recipient Wherein the value of each of the components of the 2-multiplication matrix is zero.
상기 공개 변수들은 상호간에 관련성을 가지는 제1 변수 n, 제2 변수 m, 제3 변수 δ 및 제4 변수 q를 포함하고,
상기 데이터 전송자의 공개키 행렬 A와 상기 데이터 수신자의 공개키 행렬 B는 n * m의 크기를 가지고 0에서 q사이의 랜덤 값들을 구성요소로 가지고,
상기 데이터 전송자의 비밀키 행렬 SA와 상기 데이터 수신자의 비밀키 행렬 SB는 m * m의 크기를 가지고 0에서 q사이의 랜덤 값들을 구성요소로 가지는 것을 특징으로 하는 래티스 기반의 암호서명 생성 방법. 3. The method of claim 2,
The public variables include a first variable n, a second variable m, a third variable? And a fourth variable q, which are mutually related,
The public key matrix A of the data sender and the public key matrix B of the data recipient have random values between 0 and q,
Wherein the secret key matrix S A of the data sender and the secret key matrix S B of the data receiver have random values ranging from 0 to q with a size of m * m as a component. .
상기 데이터 전송자의 서명을 생성하는 단계는
0 내지 2사이의 값들을 구성요소로 하는 m차원의 벡터와 0 내지 q사이의 랜덤 값들을 구성요소로 하는 n차원의 벡터를 입력으로 0 내지 q사이의 랜덤 해쉬 값들을 구성요소로 하는 n차원의 벡터를 출력하는 안전 해쉬 함수를 설정하는 단계;
0에서 q사이의 랜덤 값들을 구성요소로 하는 n차원의 벡터 s를 생성하는 단계; 및
상기 안전 해쉬함수에 상기 목적 데이터에 대응되는 m차원의 벡터 및 상기 벡터 s를 입력하여 출력된 n차원의 해쉬 출력 벡터, 상기 데이터 전송자의 비밀키 SA, 상기 제3 변수 δ 및 상기 서명생성 함수를 이용하여 m차원의 벡터 형태를 가진 상기 데이터 전송자의 서명 σ를 생성하는 단계를 포함하는 것을 특징으로 하는 래티스 기반의 암호서명 생성 방법. The method of claim 3,
The step of generating a signature of the data sender
An n-dimensional vector having an m-dimensional vector having values between 0 and 2 and a random value between 0 and q as input, and an n-dimensional vector having random hash values between 0 and q as input Setting a secure hash function to output a vector of the hash function;
Generating an n-dimensional vector s having random values between 0 and q as an element; And
Dimensional hash output vector obtained by inputting the m-dimensional vector corresponding to the objective data and the vector s into the secure hash function, the secret key S A of the data sender, the third variable? Generating a signature < RTI ID = 0.0 > o < / RTI > of the data sender having an m-dimensional vector form.
상기 데이터 수신자의 비밀키를 이용하여 상기 데이터 전송자의 서명과 상기 목적 데이터만이 결합된 형태를 가진 중간 연산값을 산출하는 단계;
상기 산출된 중간 연산값에 mod함수를 적용하여 상기 중간 연산값으로부터 상기 목적 데이터를 추출하는 단계; 및
상기 추출된 목적 데이터를 이용하여 상기 중간 연산값으로부터 상기 데이터 전송자의 서명을 추출하는 단계를 포함하고,
상기 데이터 수신자의 공개키 및 비밀키는 행렬 형태를 가지고, 상기 데이터 수신자의 공개키에 대응되는 행렬과 상기 데이터 수신자의 비밀키에 대응되는 행렬을 곱하여 생성된 행렬의 구성요소들 각각의 값은 0이 되고,
상기 수신된 암호서명은 수학식 3에 따른 형태를 가지는 것을 특징으로 하는 래티스 기반의 암호서명 복원 방법.
[수학식 3]
이때, c는 암호서명을 나타내고, BT는 상기 데이터 수신자의 공개키 B를 트랜스포즈한 값, s는 0에서 q사이의 랜덤 값들을 구성요소로 하는 n차원의 벡터, σ는 데이터 전송자의 서명, modq는 괄호안의 값을 q로 나눈 나머지 값을 나타냄. Receiving a cryptographic signature including a signature value for the data sender as a cipher text for the target data generated using the public key of the data recipient, the signature of the data sender, and the target data to be transmitted;
Calculating an intermediate operation value having a form in which only the signature of the data sender and the object data are combined using the secret key of the data receiver;
Extracting the target data from the intermediate calculation value by applying a mod function to the calculated intermediate calculation value; And
And extracting the signature of the data sender from the intermediate calculation value using the extracted object data,
The public key and the secret key of the data receiver have a matrix form and the values of the elements of the matrix generated by multiplying the matrix corresponding to the public key of the data recipient and the matrix corresponding to the secret key of the data recipient are 0 Lt; / RTI &
Wherein the received cryptographic signature has a form according to Equation (3).
&Quot; (3) "
Where c denotes a cryptographic signature, B T denotes a value obtained by transposing the public key B of the data recipient, s denotes an n-dimensional vector having random values between 0 and q as an element, σ denotes a signature of the data sender , modq represents the remainder of the value in parentheses divided by q.
상기 중간 연산값을 산출하는 단계는
수학식 4 및 수학식 5에 의거하여 상기 중간 연산값을 2σ+M으로서 산출하는 것을 특징으로 하는 래티스 기반의 암호서명 복원 방법.
[수학식 4]
[수학식 5]
이때, (SB)T 는 데이터 수신자의 비밀키에 대응되는 행렬 SB를 트랜스포즈한 행렬이고, (SB)-T 는 (SB)T 행렬의 역행렬임.The method according to claim 6,
The step of calculating the intermediate operation value
And the intermediate calculation value is calculated as 2? + M based on Equation (4) and Equation (5).
&Quot; (4) "
&Quot; (5) "
In this case, (S B) T is a matrix S B corresponding to the private key of the data receiver transposed matrix, (S B) -T is (S B) being the inverse of the T matrix.
상기 목적 데이터를 추출하는 단계는
수학식 6에 의거하여 수행되는 것을 특징으로 하는 래티스 기반의 암호서명 복원 방법.
[수학식 6]
8. The method of claim 7,
The step of extracting the objective data
(6). ≪ / RTI >
&Quot; (6) "
상기 데이터 전송자의 서명을 추출하는 단계는
수학식 7에 의거하여 수행되는 것을 특징으로 하는 래티스 기반의 암호서명 복원 방법.
[수학식 7]
8. The method of claim 7,
The step of extracting the signature of the data sender
(7). ≪ / RTI >
&Quot; (7) "
상기 목적 데이터의 무결성을 검증하는 단계를 더 포함하고,
상기 무결성을 검증하는 단계는 수학식 8에서 랜덤 값들을 구성요소로 하는 n차원의 벡터 s를 산출한 후, 수학식 9를 만족하는지 여부에 기초하여 수행되는 것을 특징으로 하는 래티스 기반의 암호서명 복원 방법.
[수학식 8]
[수학식 9]
이때, δ 는 제1 변수 n, 제2 변수 m, 제3 변수 δ 및 제4 변수 q를 포함하는 공개 변수들 중 제3 변수이고, H는 0 내지 2사이의 값들을 구성요소로 하는 m차원의 벡터와 0 내지 q사이의 랜덤 값들을 구성요소로 하는 n차원의 벡터를 입력으로 0 내지 q사이의 랜덤 해쉬 값들을 구성요소로 하는 n차원의 벡터를 출력하는 안전 해쉬 함수를 나타냄.8. The method of claim 7,
Further comprising verifying the integrity of the object data,
The step of verifying the integrity is performed based on whether or not an equation (9) is satisfied after calculating an n-dimensional vector s having random values as elements in Equation (8). Way.
&Quot; (8) "
&Quot; (9) "
Here, 隆 is a third one of the open variables including the first variable n, the second variable m, the third variable 隆 and the fourth variable q, and H is an m-dimension And outputs an n-dimensional vector having random hash values between 0 and q as an input, by inputting an n-dimensional vector having a vector of 0 to q and random values between 0 and q as an element.
상기 공개 변수들, 상기 데이터 전송자의 비밀키, 전송할 목적 데이터 및 서명생성 함수를 이용하여 상기 데이터 전송자의 서명을 생성하는 서명 생성부; 및
상기 데이터 수신자의 공개키, 상기 데이터 전송자의 서명 및 상기 목적 데이터를 이용하여 상기 전송할 데이터에 대한 암호문으로서 상기 데이터 전송자에 대한 서명값을 포함하는 암호서명을 생성하는 암호서명 생성부를 포함하고,
상기 암호서명은
수학식 3에 의거하여 생성되는 것을 특징으로 하는 래티스 기반의 암호서명 생성 장치.
[수학식 3]
이때, c는 암호서명을 나타내고, BT는 상기 데이터 수신자의 공개키 B를 트랜스포즈한 값, s는 0에서 q사이의 랜덤 값들을 구성요소로 하는 n차원의 벡터, σ는 데이터 전송자의 서명, modq는 괄호안의 값을 q로 나눈 나머지 값을 나타냄. A key generation unit for setting public variables and generating a public key and a secret key of each of the data sender and the data receiver based on the set public variables and the base generation function;
A signature generator for generating a signature of the data sender using the public variables, the secret key of the data sender, the object data to be transmitted, and the signature generation function; And
And a cryptographic signature generator for generating a cryptographic signature including a signature value for the data sender as a cipher text for the data to be transmitted using the public key of the data recipient, the signature of the data sender, and the object data,
The password signature
Is generated according to Equation (3).
&Quot; (3) "
Where c denotes a cryptographic signature, B T denotes a value obtained by transposing the public key B of the data recipient, s denotes an n-dimensional vector having random values between 0 and q as an element, σ denotes a signature of the data sender , modq represents the remainder of the value in parentheses divided by q.
상기 서명 생성부는
0 내지 2사이의 값들을 구성요소로 하는 m차원의 벡터와 0 내지 q사이의 랜덤 값들을 구성요소로 하는 n차원의 벡터를 입력으로 0 내지 q사이의 랜덤 해쉬 값들을 구성요소로 하는 n차원의 벡터를 출력하는 안전 해쉬 함수를 설정하는 해쉬 함수 생성부;
0에서 q사이의 랜덤 값들을 구성요소로 하는 n차원의 벡터 s를 생성하는 벡터 생성부; 및
상기 안전 해쉬함수에 상기 목적 데이터에 대응되는 m차원의 벡터 및 상기 벡터 s를 입력하여 출력된 n차원의 해쉬 출력 벡터, 상기 데이터 전송자의 비밀키 SA, 제3 변수 δ 및 상기 서명생성 함수를 이용하여 m차원의 벡터 형태를 가진 상기 데이터 전송자의 서명 σ를 생성하는 서명 처리부를 포함하는 것을 특징으로 하는 래티스 기반의 암호서명 생성 장치. 12. The method of claim 11,
The signature generator
An n-dimensional vector having an m-dimensional vector having values between 0 and 2 and a random value between 0 and q as input, and an n-dimensional vector having random hash values between 0 and q as input A hash function generating unit for setting a secure hash function for outputting a vector of the hash function;
A vector generating unit for generating an n-dimensional vector s having random values between 0 and q as elements; And
An m-dimensional vector corresponding to the objective data and an n-dimensional hash output vector input by inputting the vector s, a secret key S A of the data sender, a third variable delta and the signature generation function And a signature processing unit for generating a signature < s > of the data sender having an m-dimensional vector form.
상기 암호서명에 기초하여 상기 데이터 수신자의 비밀키를 이용하여 상기 데이터 전송자의 서명과 상기 목적 데이터만이 결합된 형태를 가진 중간 연산값을 산출하는 중간 연산 산출부;
상기 산출된 중간 연산값에 mod함수를 적용하여 상기 중간 연산값으로부터 상기 목적 데이터를 추출하는 데이터 추출부; 및
상기 추출된 목적 데이터를 이용하여 상기 중간 연산값으로부터 상기 데이터 전송자의 서명을 추출하는 서명 추출부를 포함하고,
상기 데이터 수신자의 공개키 및 비밀키는 행렬 형태를 가지고, 상기 데이터 수신자의 공개키에 대응되는 행렬과 상기 데이터 수신자의 비밀키에 대응되는 행렬을 곱하여 생성된 행렬의 구성요소들 각각의 값은 0이 되고,
상기 암호서명은 수학식 3에 따른 형태를 가지는 것을 특징으로 하는 래티스 기반의 암호서명 복원 장치.
[수학식 3]
이때, c는 암호서명을 나타내고, BT는 상기 데이터 수신자의 공개키 B를 트랜스포즈한 값, s는 0에서 q사이의 랜덤 값들을 구성요소로 하는 n차원의 벡터, σ는 데이터 전송자의 서명, modq는 괄호안의 값을 q로 나눈 나머지 값을 나타냄. A receiver for receiving a cryptographic signature including a signature value for the data sender as a cipher text for the target data generated using the public key of the data receiver, the signature of the data sender, and the object data to be transmitted;
An intermediate computation unit for computing an intermediate computation value having a form in which only the signature of the data sender and the objective data are combined using the secret key of the data recipient based on the encryption signature;
A data extraction unit for extracting the object data from the intermediate calculation value by applying a mod function to the calculated intermediate calculation value; And
And a signature extraction unit that extracts the signature of the data sender from the intermediate calculation value using the extracted object data,
The public key and the secret key of the data receiver have a matrix form and the values of the elements of the matrix generated by multiplying the matrix corresponding to the public key of the data recipient and the matrix corresponding to the secret key of the data recipient are 0 Lt; / RTI &
Wherein the cryptographic signature has a form according to Equation (3).
&Quot; (3) "
Where c denotes a cryptographic signature, B T denotes a value obtained by transposing the public key B of the data recipient, s denotes an n-dimensional vector having random values between 0 and q as an element, σ denotes a signature of the data sender , modq represents the remainder of the value in parentheses divided by q.
상기 목적 데이터의 무결성을 검증하는 무결성 검증부를 더 포함하고,
상기 무결성을 검증부는 수학식 8에서 랜덤 값들을 구성요소로 하는 n차원의 벡터 s를 산출한 후, 수학식 9를 만족하는지 여부에 기초하여 무결성을 검증하는 것을 특징으로 하는 래티스 기반의 암호서명 복원 장치.
[수학식 8]
[수학식 9]
이때, δ 는 제1 변수 n, 제2 변수 m, 제3 변수 δ 및 제4 변수 q를 포함하는 공개 변수들 중 제3 변수이고, H는 0 내지 2사이의 값들을 구성요소로 하는 m차원의 벡터와 0 내지 q사이의 랜덤 값들을 구성요소로 하는 n차원의 벡터를 입력으로 0 내지 q사이의 랜덤 해쉬 값들을 구성요소로 하는 n차원의 벡터를 출력하는 안전 해쉬 함수를 나타냄.14. The method of claim 13,
Further comprising an integrity verification unit for verifying the integrity of the object data,
The integrity verification unit may calculate an n-dimensional vector s having random values as elements in Equation (8), and then verify the integrity based on whether Equation (9) is satisfied or not. Device.
&Quot; (8) "
&Quot; (9) "
Here, 隆 is a third one of the open variables including the first variable n, the second variable m, the third variable 隆 and the fourth variable q, and H is an m-dimension And outputs an n-dimensional vector having random hash values between 0 and q as an input, by inputting an n-dimensional vector having a vector of 0 to q and random values between 0 and q as an element.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140114173A KR101593673B1 (en) | 2014-08-29 | 2014-08-29 | Method and Apparatus for generating encrypted signature based lattices, Method and Apparatus for restoring encrypted signature based lattices |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140114173A KR101593673B1 (en) | 2014-08-29 | 2014-08-29 | Method and Apparatus for generating encrypted signature based lattices, Method and Apparatus for restoring encrypted signature based lattices |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101593673B1 true KR101593673B1 (en) | 2016-02-15 |
Family
ID=55357457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140114173A KR101593673B1 (en) | 2014-08-29 | 2014-08-29 | Method and Apparatus for generating encrypted signature based lattices, Method and Apparatus for restoring encrypted signature based lattices |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101593673B1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190058834A (en) * | 2017-11-22 | 2019-05-30 | 서울대학교산학협력단 | Electronic signature apparatus and method using an error recovery scheme based on a parity check matrix |
CN110990767A (en) * | 2019-11-29 | 2020-04-10 | 华中科技大学 | A Reconfigurable Number Theoretical Transformation Unit and Method Applied to Lattice Cryptosystems |
WO2021107515A1 (en) * | 2019-11-28 | 2021-06-03 | Seoul National University R&Db Foundation | Identity-based encryption method based on lattices |
-
2014
- 2014-08-29 KR KR1020140114173A patent/KR101593673B1/en active IP Right Grant
Non-Patent Citations (1)
Title |
---|
Kee Sung Kim 외 1인, Springer-Verlag Berlin Heidelberg 2014, "Efficient verifiably encrypted signatures from lattices" (2014.01.11. 공개) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190058834A (en) * | 2017-11-22 | 2019-05-30 | 서울대학교산학협력단 | Electronic signature apparatus and method using an error recovery scheme based on a parity check matrix |
KR102001407B1 (en) | 2017-11-22 | 2019-07-18 | 서울대학교산학협력단 | Electronic signature apparatus and method using an error recovery scheme based on a parity check matrix |
WO2021107515A1 (en) * | 2019-11-28 | 2021-06-03 | Seoul National University R&Db Foundation | Identity-based encryption method based on lattices |
CN110990767A (en) * | 2019-11-29 | 2020-04-10 | 华中科技大学 | A Reconfigurable Number Theoretical Transformation Unit and Method Applied to Lattice Cryptosystems |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210367783A1 (en) | Matching system, method, apparatus, and program | |
US9860060B2 (en) | Information processing method, computer-readable recording medium, and information processing apparatus | |
JP6488847B2 (en) | Relational encryption | |
JP6459658B2 (en) | Cryptographic processing apparatus, cryptographic processing method, and cryptographic processing program | |
CN103414690B (en) | One can openly be verified the high in the clouds data property held method of calibration | |
JP6421576B2 (en) | Cryptographic processing apparatus, cryptographic processing method, and cryptographic processing program | |
Yasuda et al. | New packing method in somewhat homomorphic encryption and its applications | |
JP2014126865A (en) | Device and method for encryption processing | |
JP6931247B2 (en) | Ciphertext matching systems, methods, and programs | |
US20150195090A1 (en) | Encrypted data verification system, method and recording medium | |
Takahashi et al. | A signature scheme with a fuzzy private key | |
CN104219047A (en) | A signature verification method and apparatus | |
JP6738061B2 (en) | Ciphertext verification system, method, and recording medium | |
Shankar et al. | Improved multisignature scheme for authenticity of digital document in digital forensics using edward‐curve digital signature algorithm | |
Ganeshkumar et al. | Generating a digital signature based on new cryptographic scheme for user authentication and security | |
CN104038493A (en) | Bilinear pairing-free cloud storage data security audit method | |
US10951404B1 (en) | Methods and systems for digital message encoding and signing | |
EP2991265B1 (en) | Encrypted text matching system, method and program | |
KR101593673B1 (en) | Method and Apparatus for generating encrypted signature based lattices, Method and Apparatus for restoring encrypted signature based lattices | |
EP2991266B1 (en) | Encrypted text matching system, method, and computer readable medium | |
KR101523053B1 (en) | System and method for verifiably encrypted signatures from lattices | |
JP7276423B2 (en) | Cryptographic system, key generation device, key generation method, key generation program, and homomorphic arithmetic device | |
KR102315560B1 (en) | A generic transformation technique from public key encryption to public key encryption with equality test in the random oracle model | |
Adams et al. | Digital signatures for mobile users | |
KR102763881B1 (en) | Utilizing multiple devices to enhance biometric authentication security |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20140829 |
|
PA0201 | Request for examination | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20150721 Patent event code: PE09021S01D |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20151224 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20160203 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20160204 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
FPAY | Annual fee payment |
Payment date: 20190201 Year of fee payment: 4 |
|
PR1001 | Payment of annual fee |
Payment date: 20190201 Start annual number: 4 End annual number: 4 |
|
PR1001 | Payment of annual fee |
Payment date: 20201231 Start annual number: 6 End annual number: 6 |
|
PR1001 | Payment of annual fee |
Payment date: 20231226 Start annual number: 9 End annual number: 9 |