KR102001407B1 - Electronic signature apparatus and method using an error recovery scheme based on a parity check matrix - Google Patents

Electronic signature apparatus and method using an error recovery scheme based on a parity check matrix Download PDF

Info

Publication number
KR102001407B1
KR102001407B1 KR1020170156149A KR20170156149A KR102001407B1 KR 102001407 B1 KR102001407 B1 KR 102001407B1 KR 1020170156149 A KR1020170156149 A KR 1020170156149A KR 20170156149 A KR20170156149 A KR 20170156149A KR 102001407 B1 KR102001407 B1 KR 102001407B1
Authority
KR
South Korea
Prior art keywords
variable
value
matrix
parity check
rti
Prior art date
Application number
KR1020170156149A
Other languages
Korean (ko)
Other versions
KR20190058834A (en
Inventor
노종선
김영식
이위직
Original Assignee
서울대학교산학협력단
조선대학교산학협력단
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 서울대학교산학협력단, 조선대학교산학협력단 filed Critical 서울대학교산학협력단
Priority to KR1020170156149A priority Critical patent/KR102001407B1/en
Publication of KR20190058834A publication Critical patent/KR20190058834A/en
Application granted granted Critical
Publication of KR102001407B1 publication Critical patent/KR102001407B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/136Reed-Muller [RM] codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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 using cryptographic hash functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Power Engineering (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 장치 및 방법이 개시된다. 본 발명은 데이터 수신 장치에 전송할 메시지를 기초로 임의의 신드롬 메시지를 생성한 후 패리티 검사 행렬을 이용하여 상기 신드롬 메시지로부터 전자 서명용 오류 벡터를 검출한 후 상기 전자 서명용 오류 벡터를 기초로 전자 서명 값을 생성하여 상기 데이터 수신 장치로 전송함으로써, 기존의 비대칭키 기반의 전자 서명 기법과 전혀 다른 알고리즘에 따른 부인 방지 기능을 제공할 수 있다.An electronic signature apparatus and method using an error recovery technique based on a parity check matrix are disclosed. The present invention generates an arbitrary syndrome message based on a message to be transmitted to a data receiving apparatus, detects an error vector for an electronic signature from the syndrome message using a parity check matrix, and generates an electronic signature value based on the error vector for electronic signature And transmits it to the data receiving apparatus, it is possible to provide a non-repudiation function according to a completely different algorithm from the existing asymmetric key-based digital signature technique.

Description

패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 장치 및 방법{ELECTRONIC SIGNATURE APPARATUS AND METHOD USING AN ERROR RECOVERY SCHEME BASED ON A PARITY CHECK MATRIX}BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an electronic signature apparatus and method using an error recovery technique based on a parity check matrix,

본 발명은 비대칭키를 활용하여 부인 방지를 수행하는 전자 서명 시스템에 활용될 수 있는 기술들과 관련된다.The present invention relates to techniques that can be utilized in an electronic signature system that performs non-repudiation utilizing an asymmetric key.

최근, 인터넷이 널리 보급됨에 따라, 온라인을 이용한 뱅킹 서비스나 결제 시스템의 도입이 활발하게 이루어지고 있다.Recently, with the widespread use of the Internet, online banking services and payment systems have been actively introduced.

이러한 온라인 뱅킹 서비스나 결제 시스템에서는 계좌 이체나 전자 결제를 하고자 하는 진정한 사람으로부터 계좌 이체 또는 전자 결제 요청이 있는지 여부를 정확하게 판단해야 할 필요가 있다.In such an online banking service or a payment system, it is necessary to accurately determine whether there is a money transfer or an electronic payment request from a true person who intends to transfer money or make electronic payment.

예컨대, A라는 사용자가 온라인 뱅킹 서비스를 통해서 B라는 사용자에게 계좌 이체를 한다고 했을 때, 온라인 뱅킹 서비스를 제공하는 시스템에서는 해당 계좌 이체 요청이 A라는 사용자에 의해서 정말로 이루어진 것인지를 확인해야 할 필요가 있다.For example, when a user A transfers an account to a user B through an online banking service, it is necessary to check whether the account transfer request is really made by the user A in the system providing the online banking service .

이렇게, 특정 사용자로부터 전달되는 메시지가 진정한 사용자에 의해서 전달되는 것인지 여부를 확인하기 위한 보안 서비스를 부인 방지 서비스라고 칭한다.In this way, a security service for checking whether a message delivered from a specific user is delivered by a real user is called a non-repudiation service.

보통, 일반적인 온라인 뱅킹 서비스나 결제 시스템에서 도입하고 있는 부인 방지 서비스는 공개키 기반의 암호화 방식(Public Key Infrastructure: PKI)을 이용한 전자 서명 시스템이 주를 이루고 있다.Generally, the non-repudiation service introduced in general online banking service or payment system is mainly composed of electronic signature system using Public Key Infrastructure (PKI).

공개키 기반의 암호화 방식의 전자 서명 시스템이란 메시지를 전달하는 측에서 해당 메시지에 대한 해시 값에 대해 자신의 개인키로 암호화를 수행하여 전자 서명 값을 생성한 후 해당 메시지와 상기 전자 서명 값을 메시지 수신측에 전달하면, 메시지 수신측에서 상기 개인키에 대응하는 공개키로 상기 전자 서명 값을 복호화하고, 메시지 전송측으로부터 수신한 상기 메시지에 대한 해시 값을 연산한 후 상기 공개키로 복호화한 값과 상기 메시지에 대한 해시 값을 비교하여 두 값이 서로 동일한 것으로 판단되면, 메시지 전송측으로부터 수신된 상기 전자 서명 값이 상기 메시지 전송측의 개인키에 의해서 정말로 암호화된 값임이 입증됨에 따라, 상기 메시지가 진정한 메시지 전송측으로부터 전달된 메시지임을 확인하는 시스템이다.The digital signature system of the public key-based cryptosystem is a system for transmitting a message, encrypting the hash value of the message with its own private key to generate a digital signature value, The message receiver decrypts the digital signature value with a public key corresponding to the private key, calculates a hash value for the message received from the message transmission side, and decrypts the decrypted value with the public key, The digital signature value received from the message transmission side is proved to be a value that is really encrypted by the private key of the message transmission side, And confirms that the message is transmitted from the transmission side.

이러한 공개키 기반의 암호화 방식의 전자 서명 시스템은 일반적으로 널리 알려진 DH(Diffie-Hellman) 알고리즘에 따른 키교환 방식 등을 활용해서, 개인키와 이에 대응하는 공개키를 생성한 후 상기 개인키로 전자 서명 값을 생성하고, 상기 공개키로 상기 전자 서명 값을 검증하는 형태로 운영되고 있다. The digital signature system of the public key based encryption scheme generates a private key and a corresponding public key by using a public key exchange scheme according to a commonly known DH (Diffie-Hellman) algorithm, And verifies the digital signature value with the public key.

이러한 기존의 전자 서명 생성 및 검증 알고리즘은 이미 관련 업계에서 널리 사용되고 있다는 점에서 전자 서명의 위변조 가능성이 높아 보안상 취약성을 가지고 있다.These existing digital signature generation and verification algorithms are already widely used in the related industries, and they are vulnerable due to high possibility of forgery and alteration of digital signatures.

따라서, 기존의 전자 서명 생성 및 검증 알고리즘과 다른 새로운 방식의 전자 서명 생성 및 검증 알고리즘에 대한 연구가 필요하다.Therefore, it is necessary to study new digital signature generation and verification algorithms different from existing digital signature generation and verification algorithms.

본 발명은 데이터 수신 장치에 전송할 메시지를 기초로 임의의 신드롬 메시지를 생성한 후 패리티 검사 행렬을 이용하여 상기 신드롬 메시지로부터 전자 서명용 오류 벡터를 검출한 후 상기 전자 서명용 오류 벡터를 기초로 전자 서명 값을 생성하여 상기 데이터 수신 장치로 전송함으로써, 기존의 비대칭키 기반의 전자 서명 기법과 전혀 다른 알고리즘에 따른 부인 방지 기능을 제공하고자 한다.The present invention generates an arbitrary syndrome message based on a message to be transmitted to a data receiving apparatus, detects an error vector for an electronic signature from the syndrome message using a parity check matrix, and generates an electronic signature value based on the error vector for electronic signature And transmits it to the data receiving apparatus, thereby providing a non-repudiation function according to a completely different algorithm from the conventional asymmetric key-based digital signature technique.

본 발명의 일실시예에 따른 패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 장치는 리드-뮬러(Reed-Muller: RM) 코드로 구성된 (n-k) x n - n과 k는 자연수이고 n은 k보다 큼 - 크기의 선형 부호에 대한 패리티 검사 행렬 H, '1'과 '0'의 코드 값을 성분으로 포함하는 (n-k) x (n-k) 크기의 스크램블링 행렬 Q 및 '1'과 '0'의 코드 값을 성분으로 포함하는 n x n 크기의 순열 행렬 P가 저장되어 있는 개인키 저장부, 데이터 수신 장치로 전송할 평문 메시지 m을 선정된(predetermined) 해시 함수인 h(x) - 상기 해시 함수 h(x)는 입력 값을 (n-k) 비트 크기의 출력 값으로 변환시키는 일방향 함수임 - 에 입력으로 인가하여 제1 해시 값 h(m)을 연산하는 제1 해시 값 연산부, 상기 제1 해시 값 h(m)의 연산이 완료되면, 변수 i - 상기 변수 i는 '0'이상인 정수임 - 를 '0'부터 '1'씩 증가시키면서, 상기 제1 해시 값 h(m)에 상기 변수 i에 대한 비트 값을 연접한 결과 값

Figure 112017116214580-pat00001
를 상기 해시 함수 h(x)에 입력으로 인가하여 제2 해시 값인
Figure 112017116214580-pat00002
을 연산하고, 상기 제2 해시 값인
Figure 112017116214580-pat00003
의 전치 행렬인
Figure 112017116214580-pat00004
의 좌측 변에 상기 스크램블링 행렬 Q의 역행렬인 Q-1을 곱하여 신드롬 메시지 si -
Figure 112017116214580-pat00005
임 - 를 생성하는 신드롬 메시지 생성부, 상기 변수 i가 '0'을 시작으로 해서 '1'씩 증가되면서 상기 신드롬 메시지 si가 생성될 때마다, 각 변수 i에서의 상기 신드롬 메시지 si에 대해 상기 패리티 검사 행렬 H를 기초로 완전 복호화(Complete Decoding)를 수행하여
Figure 112017116214580-pat00006
- zT는 크기가 n인 벡터 z의 전치 행렬로 n x 1의 크기를 가짐 - 를 만족하는 zT를 연산한 후 zT의 해밍 무게(Hamming Weight)가 선정된 해밍 무게인 w 이하로 연산되는 시점에서의 변수 i를 서명용 변수 is로 선택함과 동시에 상기 서명용 변수 is에 대응하여 연산된 zT를 서명용 오류 벡터 zs T로 선택하는 선택부, 상기 서명용 오류 벡터 zs T의 좌측 변에 상기 순열 행렬 P의 역행렬인 P-1을 곱하여
Figure 112017116214580-pat00007
를 연산함으로써, 상기 연산된
Figure 112017116214580-pat00008
을 상기 평문 메시지 m에 대한 전자 서명 값으로 생성하는 전자 서명부 및 상기 데이터 수신 장치에 대해 상기 평문 메시지 m과 상기 전자 서명 값
Figure 112017116214580-pat00009
및 상기 서명용 변수 is를 전송하는 전자 서명 전송부를 포함한다.An electronic signature apparatus using an error recovery method based on a parity check matrix according to an embodiment of the present invention includes (nk) xn-n and k composed of Reed-Muller (RM) (Nk) x (nk) scrambling matrix Q and codes of '1' and '0' having a code value of the parity check matrix H, '1' and '0' A hash function h (x) which is a predetermined hash function, h (x), a plaintext message m to be transmitted to the data receiving apparatus, A first hash value calculation unit for calculating a first hash value h (m) by applying the input value as an input to a one-way function for converting an input value into an output value of (nk) bits, , The variable i - the variable i is an integer equal to or greater than 0 - is incremented from 0 to 1 , The result of concatenating the bit value of the variable i with the first hash value h (m)
Figure 112017116214580-pat00001
Is applied as input to the hash function h (x) to obtain a second hash value < RTI ID = 0.0 >
Figure 112017116214580-pat00002
, And the second hash value
Figure 112017116214580-pat00003
≪ / RTI >
Figure 112017116214580-pat00004
The left side of the scrambling matrix Q is multiplied by the inverse matrix Q -1 of the scrambling matrix Q to obtain a syndrome message s i -
Figure 112017116214580-pat00005
Im-syndrome message generating unit for generating, each time while the variable i to "0" as a starting increased by '1', the syndrome message s i is generated, relative to the syndrome message s i for each variable i And performs complete decoding based on the parity check matrix H
Figure 112017116214580-pat00006
- z T is a transpose of a vector z of size n and has a size of nx 1 - then computes z T , and then the Hamming Weight of z T is calculated to be less than or equal to the selected Hamming weight w selecting a variable i at the time when a signature variable i s, and at the same time selecting unit for selecting a z T calculated in response to the signing variable i s a signature error vector z s T, the left side of the signing error vector z s T By the inverse matrix P -1 of the permutation matrix P
Figure 112017116214580-pat00007
, Thereby calculating
Figure 112017116214580-pat00008
As a digital signature value for the plaintext message m; and a plaintext message m and a digital signature value < RTI ID = 0.0 >
Figure 112017116214580-pat00009
And an electronic signature transmitter for transmitting the signature variable i s .

또한, 본 발명의 다른 일실시예에 따른 패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 장치는 RM 코드로 구성된 (n-k) x n - n과 k는 자연수이고 n은 k보다 큼 - 크기의 선형 부호에 대한 패리티 검사 행렬 H, 상기 패리티 검사 행렬 H에서 복수의 선정된 제1 행들에 위치하는 성분들이 랜덤한 코드 값으로 치환되고, 복수의 선정된 제2 열들에 위치하는 성분들이 '0'의 코드 값으로 치환된 변형 패리티 검사 행렬 Ht, '1'과 '0'의 코드 값을 성분으로 포함하는 (n-k) x (n-k) 크기의 스크램블링 행렬 Q 및 '1'과 '0'의 코드 값을 성분으로 포함하는 n x n 크기의 순열 행렬 P가 저장되어 있는 개인키 저장부, 데이터 수신 장치로 전송할 평문 메시지 m을 선정된 해시 함수인 h(x) - 상기 해시 함수 h(x)는 입력 값을 (n-k) 비트 크기의 출력 값으로 변환시키는 일방향 함수임 - 에 입력으로 인가하여 제1 해시 값 h(m)을 연산하는 제1 해시 값 연산부, 상기 제1 해시 값 h(m)의 연산이 완료되면, 변수 i - 상기 변수 i는 '0'이상인 정수임 - 를 '0'부터 '1'씩 증가시키면서, 상기 제1 해시 값 h(m)에 상기 변수 i에 대한 비트 값을 연접한 결과 값

Figure 112017116214580-pat00010
를 상기 해시 함수 h(x)에 입력으로 인가하여 제2 해시 값인
Figure 112017116214580-pat00011
을 연산하고, 상기 제2 해시 값인
Figure 112017116214580-pat00012
의 전치 행렬인
Figure 112017116214580-pat00013
의 좌측 변에 상기 스크램블링 행렬 Q의 역행렬인 Q-1을 곱하여 신드롬 메시지 si -
Figure 112017116214580-pat00014
임 - 를 생성하는 신드롬 메시지 생성부, 상기 변수 i가 '0'을 시작으로 해서 '1'씩 증가되면서 상기 신드롬 메시지 si가 생성될 때마다, 각 변수 i에서의 상기 신드롬 메시지 si에 대해 상기 패리티 검사 행렬 H를 기초로 완전 복호화를 수행하여
Figure 112017116214580-pat00015
- zT는 크기가 n인 벡터 z의 전치 행렬로 n x 1의 크기를 가짐 - 를 만족하는 zT를 연산하고, 상기 변형 패리티 검사 행렬 Ht에서 상기 복수의 선정된 제1 행들과 상기 복수의 선정된 제2 열들에 위치하는 코드 값에 기초하여 각 변수 i마다 연산되는 zT의 성분을 조작함으로써,
Figure 112017116214580-pat00016
를 만족하는 zt T를 검출한 후 zt T의 해밍 무게가 선정된 해밍 무게인 w 이하로 검출되는 시점에서의 변수 i를 서명용 변수 is로 선택함과 동시에 상기 서명용 변수 is에 대응하여 검출된 zt T를 서명용 오류 벡터 zs T로 선택하는 선택부, 상기 서명용 오류 벡터 zs T의 좌측 변에 상기 순열 행렬 P의 역행렬인 P-1을 곱하여
Figure 112017116214580-pat00017
를 연산함으로써, 상기 연산된
Figure 112017116214580-pat00018
을 상기 평문 메시지 m에 대한 전자 서명 값으로 생성하는 전자 서명부 및 상기 데이터 수신 장치에 대해 상기 평문 메시지 m과 상기 전자 서명 값
Figure 112017116214580-pat00019
및 상기 서명용 변수 is를 전송하는 전자 서명 전송부를 포함한다.Also, an electronic signature apparatus using an error recovery method based on a parity check matrix based on a parity check matrix according to another embodiment of the present invention includes (nk) xn-n composed of RM codes, k is a natural number, n is a linear code The parity check matrix H for the parity check matrix H, the components located in the plurality of first rows selected in the parity check matrix H are replaced with random code values, and the components located in the plurality of second selected columns are replaced with codes of '0' (Nk) x (nk) scrambling matrix Q containing the code values of the transformed parity check matrix H t , '1' and '0', and the code values of '1' and '0' And a hash function h (x), which is a hash function h (x), is used to convert the input value to ( nk) into a bit-sized output value. A first hash value calculator for calculating a first hash value h (m) by applying the first hash value h (m) as an input, The result of concatenating the first hash value h (m) with the bit value for the variable i while incrementing the integer from 0 to 1
Figure 112017116214580-pat00010
Is applied as input to the hash function h (x) to obtain a second hash value < RTI ID = 0.0 >
Figure 112017116214580-pat00011
, And the second hash value
Figure 112017116214580-pat00012
≪ / RTI >
Figure 112017116214580-pat00013
The left side of the scrambling matrix Q is multiplied by the inverse matrix Q -1 of the scrambling matrix Q to obtain a syndrome message s i -
Figure 112017116214580-pat00014
Im-syndrome message generating unit for generating, each time while the variable i to "0" as a starting increased by '1', the syndrome message s i is generated, relative to the syndrome message s i for each variable i And performs a full decoding based on the parity check matrix H
Figure 112017116214580-pat00015
- z T is a transpose of a vector z of size n and has a size of nx 1, and calculates z T in the modified parity check matrix H t by multiplying the plurality of selected first rows and the plurality By manipulating the components of z T computed for each variable i based on the code values located in the selected second columns,
Figure 112017116214580-pat00016
And then detecting the z t T satisfying the variable i at the time is detected more than the Hamming weight of the Hamming weight of z t T selection w and at the same time select a signature variable i s corresponding to the signing variable i s A selector for selecting the detected z t T as a signature error vector z s T , a left side of the signature error vector z s T multiplied by the inverse matrix P -1 of the permutation matrix P
Figure 112017116214580-pat00017
, Thereby calculating
Figure 112017116214580-pat00018
As a digital signature value for the plaintext message m; and a plaintext message m and a digital signature value < RTI ID = 0.0 >
Figure 112017116214580-pat00019
And an electronic signature transmitter for transmitting the signature variable i s .

또한, 본 발명의 일실시예에 따른 패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 방법은 RM 코드로 구성된 (n-k) x n - n과 k는 자연수이고 n은 k보다 큼 - 크기의 선형 부호에 대한 패리티 검사 행렬 H, '1'과 '0'의 코드 값을 성분으로 포함하는 (n-k) x (n-k) 크기의 스크램블링 행렬 Q 및 '1'과 '0'의 코드 값을 성분으로 포함하는 n x n 크기의 순열 행렬 P가 저장되어 있는 개인키 저장부를 유지하는 단계, 데이터 수신 장치로 전송할 평문 메시지 m을 선정된 해시 함수인 h(x) - 상기 해시 함수 h(x)는 입력 값을 (n-k) 비트 크기의 출력 값으로 변환시키는 일방향 함수임 - 에 입력으로 인가하여 제1 해시 값 h(m)을 연산하는 단계, 상기 제1 해시 값 h(m)의 연산이 완료되면, 변수 i - 상기 변수 i는 '0'이상인 정수임 - 를 '0'부터 '1'씩 증가시키면서, 상기 제1 해시 값 h(m)에 상기 변수 i에 대한 비트 값을 연접한 결과 값

Figure 112017116214580-pat00020
를 상기 해시 함수 h(x)에 입력으로 인가하여 제2 해시 값인
Figure 112017116214580-pat00021
을 연산하고, 상기 제2 해시 값인
Figure 112017116214580-pat00022
의 전치 행렬인
Figure 112017116214580-pat00023
의 좌측 변에 상기 스크램블링 행렬 Q의 역행렬인 Q-1을 곱하여 신드롬 메시지 si -
Figure 112017116214580-pat00024
임 - 를 생성하는 단계, 상기 변수 i가 '0'을 시작으로 해서 '1'씩 증가되면서 상기 신드롬 메시지 si가 생성될 때마다, 각 변수 i에서의 상기 신드롬 메시지 si에 대해 상기 패리티 검사 행렬 H를 기초로 완전 복호화를 수행하여
Figure 112017116214580-pat00025
- zT는 크기가 n인 벡터 z의 전치 행렬로 n x 1의 크기를 가짐 - 를 만족하는 zT를 연산한 후 zT의 해밍 무게가 선정된 해밍 무게인 w 이하로 연산되는 시점에서의 변수 i를 서명용 변수 is로 선택함과 동시에 상기 서명용 변수 is에 대응하여 연산된 zT를 서명용 오류 벡터 zs T로 선택하는 단계, 상기 서명용 오류 벡터 zs T의 좌측 변에 상기 순열 행렬 P의 역행렬인 P-1을 곱하여
Figure 112017116214580-pat00026
를 연산함으로써, 상기 연산된
Figure 112017116214580-pat00027
을 상기 평문 메시지 m에 대한 전자 서명 값으로 생성하는 단계 및 상기 데이터 수신 장치에 대해 상기 평문 메시지 m과 상기 전자 서명 값
Figure 112017116214580-pat00028
및 상기 서명용 변수 is를 전송하는 단계를 포함한다.Also, an electronic signature method using an error recovery method based on a parity check matrix based on a parity check matrix according to an embodiment of the present invention is characterized in that (nk) xn - n and k composed of RM codes are natural numbers and n is a linear code (Nk) x (nk) scrambling matrix Q including code values of the parity check matrix H, '1' and '0' for the scrambling matrix Q and the code values of '1' and '0' (Nk) of the hash function h (x), which is a predetermined hash function, h (x), and the hash function h (x) (M) by applying a first hash value h (m) to the input of the first hash value h (m) i is an integer equal to or greater than 0, is increased from '0' to '1', and the first hash value The result obtained by concatenating the bit values of the variable i with h (m)
Figure 112017116214580-pat00020
Is applied as input to the hash function h (x) to obtain a second hash value < RTI ID = 0.0 >
Figure 112017116214580-pat00021
, And the second hash value
Figure 112017116214580-pat00022
≪ / RTI >
Figure 112017116214580-pat00023
The left side of the scrambling matrix Q is multiplied by the inverse matrix Q -1 of the scrambling matrix Q to obtain a syndrome message s i -
Figure 112017116214580-pat00024
The parity check for generating, each time while the variable i to "0" to start increasing by "1" be the syndrome message s i is generated, the syndrome message s i for each variable i - Im By performing a complete decoding based on the matrix H
Figure 112017116214580-pat00025
- z T is the transpose matrix of vector z with size n and has the size of nx 1 - After computing the z T satisfying z T , the variable at the time when the Hamming weight of z T is calculated to be less than the selected Hamming weight w select i to i s signature variable, and at the same time the signing variable i s error the computed z T signature corresponding to the vector selecting a z s T, the signature error vectors and a permutation matrix on the left side of the z s T P Multiplied by the inverse of P -1
Figure 112017116214580-pat00026
, Thereby calculating
Figure 112017116214580-pat00027
Generating a plaintext message m and an electronic signature value m for the plaintext message m;
Figure 112017116214580-pat00028
And transmitting the signature variable i s .

또한, 본 발명의 다른 일실시예에 따른 패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 방법은 RM 코드로 구성된 (n-k) x n - n과 k는 자연수이고 n은 k보다 큼 - 크기의 선형 부호에 대한 패리티 검사 행렬 H, 상기 패리티 검사 행렬 H에서 복수의 선정된 제1 행들에 위치하는 성분들이 랜덤한 코드 값으로 치환되고, 복수의 선정된 제2 열들에 위치하는 성분들이 '0'의 코드 값으로 치환된 변형 패리티 검사 행렬 Ht, '1'과 '0'의 코드 값을 성분으로 포함하는 (n-k) x (n-k) 크기의 스크램블링 행렬 Q 및 '1'과 '0'의 코드 값을 성분으로 포함하는 n x n 크기의 순열 행렬 P가 저장되어 있는 개인키 저장부를 유지하는 단계, 데이터 수신 장치로 전송할 평문 메시지 m을 선정된 해시 함수인 h(x) - 상기 해시 함수 h(x)는 입력 값을 (n-k) 비트 크기의 출력 값으로 변환시키는 일방향 함수임 - 에 입력으로 인가하여 제1 해시 값 h(m)을 연산하는 단계, 상기 제1 해시 값 h(m)의 연산이 완료되면, 변수 i - 상기 변수 i는 '0'이상인 정수임 - 를 '0'부터 '1'씩 증가시키면서, 상기 제1 해시 값 h(m)에 상기 변수 i에 대한 비트 값을 연접한 결과 값

Figure 112017116214580-pat00029
를 상기 해시 함수 h(x)에 입력으로 인가하여 제2 해시 값인
Figure 112017116214580-pat00030
을 연산하고, 상기 제2 해시 값인
Figure 112017116214580-pat00031
의 전치 행렬인
Figure 112017116214580-pat00032
의 좌측 변에 상기 스크램블링 행렬 Q의 역행렬인 Q-1을 곱하여 신드롬 메시지 si -
Figure 112017116214580-pat00033
임 - 를 생성하는 단계, 상기 변수 i가 '0'을 시작으로 해서 '1'씩 증가되면서 상기 신드롬 메시지 si가 생성될 때마다, 각 변수 i에서의 상기 신드롬 메시지 si에 대해 상기 패리티 검사 행렬 H를 기초로 완전 복호화를 수행하여
Figure 112017116214580-pat00034
- zT는 크기가 n인 벡터 z의 전치 행렬로 n x 1의 크기를 가짐 - 를 만족하는 zT를 연산하고, 상기 변형 패리티 검사 행렬 Ht에서 상기 복수의 선정된 제1 행들과 상기 복수의 선정된 제2 열들에 위치하는 코드 값에 기초하여 각 변수 i마다 연산되는 zT의 성분을 조작함으로써,
Figure 112017116214580-pat00035
를 만족하는 zt T를 검출한 후 zt T의 해밍 무게가 선정된 해밍 무게인 w 이하로 검출되는 시점에서의 변수 i를 서명용 변수 is로 선택함과 동시에 상기 서명용 변수 is에 대응하여 검출된 zt T를 서명용 오류 벡터 zs T로 선택하는 단계, 상기 서명용 오류 벡터 zs T의 좌측 변에 상기 순열 행렬 P의 역행렬인 P-1을 곱하여
Figure 112017116214580-pat00036
를 연산함으로써, 상기 연산된
Figure 112017116214580-pat00037
을 상기 평문 메시지 m에 대한 전자 서명 값으로 생성하는 단계 및 상기 데이터 수신 장치에 대해 상기 평문 메시지 m과 상기 전자 서명 값
Figure 112017116214580-pat00038
및 상기 서명용 변수 is를 전송하는 단계를 포함한다.Also, an electronic signature method using an error recovery method based on a parity check matrix based on a parity check matrix according to another embodiment of the present invention is characterized in that (nk) xn-n composed of RM code and k are natural numbers and n is a linear code The parity check matrix H for the parity check matrix H, the components located in the plurality of first rows selected in the parity check matrix H are replaced with random code values, and the components located in the plurality of second selected columns are replaced with codes of '0' (Nk) x (nk) scrambling matrix Q containing the code values of the transformed parity check matrix H t , '1' and '0', and the code values of '1' and '0' Storing a permutation matrix P having a size of nxn as a component; storing a plaintext message m to be transmitted to the data receiving apparatus as a hash function h (x) - the hash function h (x) Converts a value to an (nk) bit-sized output value (M) is computed by applying a first hash value h (m) to the input of the first hash value h (m), wherein the key i is a one-way function, The result of concatenating the first hash value h (m) with the bit value for the variable i while incrementing the integer from 0 to 1
Figure 112017116214580-pat00029
Is applied as input to the hash function h (x) to obtain a second hash value < RTI ID = 0.0 >
Figure 112017116214580-pat00030
, And the second hash value
Figure 112017116214580-pat00031
≪ / RTI >
Figure 112017116214580-pat00032
The left side of the scrambling matrix Q is multiplied by the inverse matrix Q -1 of the scrambling matrix Q to obtain a syndrome message s i -
Figure 112017116214580-pat00033
The parity check for generating, each time while the variable i to "0" to start increasing by "1" be the syndrome message s i is generated, the syndrome message s i for each variable i - Im By performing a complete decoding based on the matrix H
Figure 112017116214580-pat00034
- z T is a transpose of a vector z of size n and has a size of nx 1, and calculates z T in the modified parity check matrix H t by multiplying the plurality of selected first rows and the plurality By manipulating the components of z T computed for each variable i based on the code values located in the selected second columns,
Figure 112017116214580-pat00035
And then detecting the z t T satisfying the variable i at the time is detected more than the Hamming weight of the Hamming weight of z t T selection w and at the same time select a signature variable i s corresponding to the signing variable i s Selecting the detected z t T as a signature error vector z s T , multiplying the left side of the signature error vector z s T by the inverse matrix P -1 of the permutation matrix P
Figure 112017116214580-pat00036
, Thereby calculating
Figure 112017116214580-pat00037
Generating a plaintext message m and an electronic signature value m for the plaintext message m;
Figure 112017116214580-pat00038
And transmitting the signature variable i s .

본 발명은 데이터 수신 장치에 전송할 메시지를 기초로 임의의 신드롬 메시지를 생성한 후 패리티 검사 행렬을 이용하여 상기 신드롬 메시지로부터 전자 서명용 오류 벡터를 검출한 후 상기 전자 서명용 오류 벡터를 기초로 전자 서명 값을 생성하여 상기 데이터 수신 장치로 전송함으로써, 기존의 비대칭키 기반의 전자 서명 기법과 전혀 다른 알고리즘에 따른 부인 방지 기능을 제공할 수 있다.The present invention generates an arbitrary syndrome message based on a message to be transmitted to a data receiving apparatus, detects an error vector for an electronic signature from the syndrome message using a parity check matrix, and generates an electronic signature value based on the error vector for electronic signature And transmits it to the data receiving apparatus, it is possible to provide a non-repudiation function according to a completely different algorithm from the existing asymmetric key-based digital signature technique.

도 1은 본 발명의 일실시예에 따른 패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 장치의 구조를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 변형 패리티 검사 행렬 Ht의 형태에 대한 예시를 도시한 도면이다.
도 3은 본 발명의 일실시예에 따른 패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 방법을 도시한 순서도이다.
도 4는 본 발명의 또 다른 일실시예에 따른 패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 방법을 도시한 순서도이다.
1 is a diagram illustrating a structure of an electronic signature apparatus using an error recovery scheme based on a parity check matrix according to an embodiment of the present invention.
FIG. 2 is a diagram illustrating an example of a form of a modified parity check matrix H t according to an embodiment of the present invention.
3 is a flowchart illustrating an electronic signature method using an error recovery technique based on a parity check matrix according to an embodiment of the present invention.
4 is a flowchart illustrating an electronic signature method using an error recovery technique based on a parity check matrix according to another embodiment of the present invention.

이하에서는 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명하기로 한다. 이러한 설명은 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였으며, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 본 명세서 상에서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 사람에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.Hereinafter, embodiments according to the present invention will be described in detail with reference to the accompanying drawings. It is to be understood that the description is not intended to limit the invention to the specific embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. Like reference numerals in the drawings are used for similar elements and, unless otherwise defined, all terms used in the specification, including technical and scientific terms, are to be construed in a manner that is familiar to those skilled in the art. It has the same meaning as commonly understood by those who have it.

도 1은 본 발명의 일실시예에 따른 패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 장치의 구조를 도시한 도면이다.1 is a diagram illustrating a structure of an electronic signature apparatus using an error recovery scheme based on a parity check matrix according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일실시예에 다른 패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 장치(110)는 개인키 저장부(111), 제1 해시 값 연산부(112), 신드롬 메시지 생성부(113), 선택부(114), 전자 서명부(115) 및 전자 서명 전송부(116)를 포함한다.1, an electronic signature apparatus 110 using an error recovery scheme based on a parity check matrix according to an embodiment of the present invention includes a private key storage unit 111, a first hash value operation unit 112, A generating unit 113, a selecting unit 114, a digital signature unit 115, and an electronic signature transmitting unit 116. [

개인키 저장부(111)에는 리드-뮬러(Reed-Muller: RM) 코드로 구성된 (n-k) x n 크기의 선형 부호에 대한 패리티 검사 행렬 H, '1'과 '0'의 코드 값을 성분으로 포함하는 (n-k) x (n-k) 크기의 스크램블링 행렬 Q 및 '1'과 '0'의 코드 값을 성분으로 포함하는 n x n 크기의 순열 행렬 P가 저장되어 있다.The private key storage unit 111 includes code values of the parity check matrix H, '1' and '0' for the (nk) xn linear code composed of Reed-Muller A permutation matrix P having a size of (nk) x (nk) and a size nxn of the scrambling matrix Q and code values of '1' and '0' as components is stored.

여기서, n과 k는 자연수이고 n은 k보다 큰 수이다.Where n and k are natural numbers and n is a number greater than k.

RM 코드란 오류 정정 코드로 사용되는 선형 코드를 의미하는 것으로, RM(r, m)으로 표현되는 RM 코드는 길이가 2m이고, m개의 기본 코드를 가지게 되며, 상기 m개의 기본 코드들 간의 곱을 갖는 코드 역시 RM의 기본 코드가 될 수 있다. 그리고, r은 기본 코드들 간의 곱에 사용될 수 있는 기본 코드의 최대 개수를 의미한다. 예컨대, m=4, r=4라고 할 때, RM 코드의 길이는 16이 되고, 이때, 상기 RM 코드는 24으로 표시되므로, 4개의 기본 코드 R1, R2, R3, R4(각 기본 코드의 길이는 16임)를 가지게 된다. 이때, 4개의 기본 코드 R1, R2, R3, R4 간의 곱을 연산한 RM 코드 역시 기본 코드가 될 수 있다. 여기서, r=4이기 때문에 4개의 기본 코드 R1, R2, R3, R4에 대해서는 또 다른 추가 기본 코드를 생성하기 위해서 상기 4개의 기본 코드들 간의 곱에 사용 가능한 최대 개수가 4개가 되기 때문에, 4개의 기본 코드 R1, R2, R3, R4 상호 간의 곱을 최대 4개까지 조합하여 연산함으로써, 추가적인 기본 코드들을 생성할 수 있다. 관련해서, RM(4, 4)에 대해서는 R1, R2, R3, R4에 해당되는 4개의 기본 코드와 R1R2, R1R3, R1R4, R2R3, R2R4, R3R4, R1R2R3, R1R2R4, R1R3R4, R2R3R4, R1R2R3R4로 구성된 11개의 기본 코드를 생성할 수 있고, RM 코드의 특성상 비트 값이 모두 '1'로 구성된 코드도 기본 코드로 가져야 하기 때문에 결과적으로 총 16개의 기본 코드들이 생성될 수 있다. 이러한 RM 코드는 데이터 수신측으로 전송할 메시지를 부호어(codeword)로 인코딩하기 위한 생성 행렬을 구성하는데 사용될 수 있고, 데이터 수신측에 수신된 부호어에 오류가 발생하였는지 여부를 검증하기 위한 패리티 검사 행렬을 구성하는데 사용될 수 있다.The RM code means a linear code used as an error correction code. The RM code expressed by RM (r, m) has a length of 2 m and has m basic codes. The product of the m basic codes The code you have can also be the base code of the RM. And r is the maximum number of basic codes that can be used in the multiplication of the basic codes. For example, m = 4, when that r = 4, the length of the RM code is 16, at this time, so the RM code is represented by 24, of the four basic codes R1, R2, R3, R4 (each primary code The length is 16). At this time, the RM code obtained by multiplying the product of the four basic codes R1, R2, R3, and R4 can also be a basic code. Here, since r = 4, the maximum number of usable products for the multiplication of the four basic codes is four for generating four additional basic codes for the four basic codes R1, R2, R3, and R4, Additional basic codes can be generated by combining up to four products of the basic codes R1, R2, R3, and R4. In relation to RM (4 and 4), 11 basic codes corresponding to R1, R2, R3 and R4 and 11 basic codes consisting of R1R2, R1R3, R1R4, R2R3, R2R4, R3R4, R1R2R3, R1R2R4, R1R3R4, R2R3R4 and R1R2R3R4 Since the basic code can be generated and the code having the bit value of '1' in the characteristic of the RM code also has to be the basic code, a total of 16 basic codes can be generated as a result. The RM code can be used to construct a generator matrix for encoding a message to be transmitted to a data receiver with a codeword, and a parity check matrix for verifying whether an error has occurred in the codeword received at the data receiver Lt; / RTI >

패리티 검사 행렬은 데이터 수신측에 수신된 부호어에 오류가 발생하였는지 여부를 검증하기 위한 행렬로 k x n 크기의 생성 행렬 G가 있을 때, 이에 대응하는 패리티 검사 행렬을 'H'라고 하면, 상기 패리티 검사 행렬 H의 크기는 (n-k) x n 이 되며, 상기 패리티 검사 행렬 H와 상기 생성 행렬 G 사이에는 하기의 수학식 1과 같은 특성이 존재한다.The parity check matrix is a matrix for verifying whether or not an error has occurred in the codeword received at the data receiving side. When there is a kxn generation matrix G, if the corresponding parity check matrix is 'H' The size of the matrix H is (nk) xn, and the parity check matrix H and the generator matrix G have the following Equation (1).

Figure 112017116214580-pat00039
Figure 112017116214580-pat00039

여기서, HT는 패리티 검사 행렬 H의 전치 행렬을 의미한다.Here, H T denotes a transpose matrix of the parity check matrix H.

만약, 데이터 전송측이 생성 행렬 G를 이용해서 부호어 c를 생성하여 데이터 수신측으로 전송함에 따라 데이터 수신측에 수신된 부호어를 'r'이라고 한다면, 상기 부호어 r에 오류가 발생하지 않은 경우, 상기 부호어 r에 대해서는 패리티 검사 행렬 H와의 관계에서 하기의 수학식 2와 같은 특성이 존재한다.If the data transmission side generates the codeword c using the generator matrix G and transmits the codeword c to the data receiving side, if the codeword received at the data receiving end is 'r' and no error occurs in the codeword r , And the codeword r has the following characteristics in relation to the parity check matrix H: < EMI ID = 2.0 >

Figure 112017116214580-pat00040
Figure 112017116214580-pat00040

여기서, rT는 부호어 r의 전치 행렬을 의미한다.Here, r T denotes the transpose matrix of the codeword r.

하지만, 데이터 전송측이 전송한 부호어 c에 오류 e가 발생하였다고 한다면, 데이터 수신측이 수신한 상기 부호어 r은 'c+e'가 될 것이고, 이로 인해 패리티 검사 행렬 H와 상기 부호어 r 사이에는 하기의 수학식 3과 같은 특성을 가지게 된다.However, if an error e occurs in the codeword c transmitted by the data transmission side, the codeword r received by the data receiver side will be 'c + e', and the parity check matrix H and the codeword r The following equation (3) is obtained.

Figure 112017116214580-pat00041
Figure 112017116214580-pat00041

상기 수학식 3에서의 연산과 같이, 데이터 수신측에서는 패리티 검사 행렬을 이용해서 데이터 수신측에 수신된 데이터에 오류가 존재하는지 여부를 검출할 수 있다. 그리고, 상기 수학식 3에서 's'를 신드롬(Syndrome)이라고 한다.As in the operation of Equation (3), the data receiving side can detect whether there is an error in the data received at the data receiving side using the parity check matrix. In Equation (3), 's' is referred to as a syndrome.

패리티 검사 행렬 H가 RM 코드로 구성되는 경우, 상기 수학식 3에서 표현한 신드롬 s에 대해 상기 패리티 검사 행렬 H를 기초로 한 완전 복호(Complete Decoding) 알고리즘을 이용하게 되면,

Figure 112017116214580-pat00042
의 수식을 만족하는 복수의 e들 중 해밍 무게(Hamming Weight)가 최소인 e를 찾아낼 수 있다.When the parity check matrix H is composed of RM codes, if a complete decoding algorithm based on the parity check matrix H is used for the syndrome s expressed in Equation (3)
Figure 112017116214580-pat00042
E among the plurality of e satisfying the equation of Eq.

상기 완전 복호 알고리즘이란 r×n 크기의 패리티 검사 행렬과 신드롬

Figure 112017116214580-pat00043
가 있을 때,
Figure 112017116214580-pat00044
를 만족하는 e들 중 해밍 무게가 최소인 e를 찾아내는 복호화 알고리즘이다. 완전 복호 알고리즘을 이용하면, 데이터 전송측이 부호어를 생성하기 위해 사용한 생성 행렬에 지정되어 있는 오류 정정 능력을 초과하는 오류에 대해서도 복호가 가능하며, RM 코드의 복호 방법 중 하나인 재귀 복호는 완전 복호가 가능한 특징이 있다.The complete decoding algorithm is a r × n-size parity check matrix and a syndrome
Figure 112017116214580-pat00043
Lt; / RTI >
Figure 112017116214580-pat00044
Is the decryption algorithm that finds the e with the smallest Hamming weight. By using the complete decoding algorithm, it is possible to decode an error exceeding the error correction capability specified in the generation matrix used for generating the codeword by the data transmission side, and recursive decoding, which is one of the RM code decoding methods, It is possible to decode it.

여기서, 해밍 무게란 '0'과 "1"로 구성된 코드 값들의 집합에서 '1'이라는 코드 값의 개수를 의미한다.Here, Hamming weight means the number of code values of '1' in the set of code values composed of '0' and '1'.

이렇게, 개인키 저장부(111) 상에 패리티 검사 행렬 H, 스크램블링 행렬 Q 및 순열 행렬 P가 저장되어 있는 상태에서, 데이터 수신 장치(120)로 전송할 평문 메시지를 m이라고 한다면, 제1 해시 값 연산부(112)는 상기 평문 메시지 m을 선정된(predetermined) 해시 함수인 h(x)에 입력으로 인가하여 제1 해시 값 h(m)을 연산한다.If the plaintext message to be transmitted to the data receiving apparatus 120 is m in a state where the parity check matrix H, the scrambling matrix Q, and the permutation matrix P are stored on the private key storage unit 111, (112) applies the plaintext message m as an input to a predetermined hash function h (x) to calculate a first hash value h (m).

여기서, 상기 해시 함수 h(x)는 입력 값을 (n-k) 비트 크기의 출력 값으로 변환시키는 일방향 함수이다.Here, the hash function h (x) is a one-way function for converting an input value into an output value of (n-k) bits.

신드롬 메시지 생성부(113)는 상기 제1 해시 값 h(m)의 연산이 완료되면, 변수 i(상기 변수 i는 '0'이상인 정수임)를 '0'부터 '1'씩 증가시키면서, 상기 제1 해시 값 h(m)에 상기 변수 i에 대한 비트 값을 연접한 결과 값

Figure 112017116214580-pat00045
를 상기 해시 함수 h(x)에 입력으로 인가하여 제2 해시 값인
Figure 112017116214580-pat00046
을 연산하고, 상기 제2 해시 값인
Figure 112017116214580-pat00047
의 전치 행렬인
Figure 112017116214580-pat00048
의 좌측 변에 상기 스크램블링 행렬 Q의 역행렬인 Q-1을 곱하여 신드롬 메시지 si를 생성한다.The syndrome message generation unit 113 increases the variable i (the variable i is an integer equal to or greater than 0) from 0 to 1, when the calculation of the first hash value h (m) is completed, 1 The result of concatenating the bit values for the variable i with the hash value h (m)
Figure 112017116214580-pat00045
Is applied as input to the hash function h (x) to obtain a second hash value < RTI ID = 0.0 >
Figure 112017116214580-pat00046
, And the second hash value
Figure 112017116214580-pat00047
≪ / RTI >
Figure 112017116214580-pat00048
Is multiplied by the inverse matrix Q -1 of the scrambling matrix Q to generate a syndrome message s i .

이로 인해, 상기 신드롬 메시지 si는 하기의 수학식 4와 같이 표현될 수 있다.Accordingly, the syndrome message s i can be expressed as Equation (4) below.

Figure 112017116214580-pat00049
Figure 112017116214580-pat00049

선택부(114)는 상기 변수 i가 '0'을 시작으로 해서 '1'씩 증가되면서 상기 신드롬 메시지 si가 생성될 때마다, 각 변수 i에서의 상기 신드롬 메시지 si에 대해 상기 패리티 검사 행렬 H를 기초로 완전 복호화(Complete Decoding)를 수행하여

Figure 112017116214580-pat00050
(zT는 크기가 n인 벡터 z의 전치 행렬로 n x 1의 크기를 가짐)를 만족하는 zT를 연산한 후 zT의 해밍 무게가 선정된 해밍 무게인 w 이하로 연산되는 시점에서의 변수 i를 서명용 변수 is로 선택함과 동시에 상기 서명용 변수 is에 대응하여 연산된 zT를 서명용 오류 벡터 zs T로 선택한다.When the syndrome message s i is generated while the variable i is incremented by '1' starting from '0', the selector 114 sets the parity check matrix for the syndrome message s i in each variable i And performs complete decoding on the basis of H
Figure 112017116214580-pat00050
(z T is a transpose matrix of vector z with size n), z T is computed to satisfy the following equation: z T = i is selected as the signature variable i s , and at the same time, z T calculated corresponding to the signing variable i s is selected as the signature error vector z s T.

즉, 선택부(114)는 상기 수학식 4에서 나타낸 si에 대해 상기 변수 i를 '0'을 시작으로 해서 '1'씩 증가시키면서 완전 복호화를 수행하여

Figure 112017116214580-pat00051
를 만족하는 zT를 연산해 보고, zT의 해밍 무게가 상기 선정된 해밍 무게인 w 이하로 연산되는 시점에서, zT를 찾는 연산을 중단한 후 해당 시점에서의 변수 i를 서명용 변수 is로 선택함과 동시에 상기 서명용 변수 is에 대응하여 연산된 zT를 서명용 오류 벡터 zs T로 선택할 수 있다.That is, the selector 114 performs the complete decoding while incrementing the variable i by '1' starting from '0' with respect to s i shown in Equation (4)
Figure 112017116214580-pat00051
From the time the report to calculate the z T, calculated below is the Hamming weight Hamming weight of the selection of z T w, and then stop the operation to find z T variable at that point in time i satisfying the signing variable i s And at the same time, z T calculated corresponding to the signature variable i s can be selected as the signature error vector z s T.

그 이후, 전자 서명부(115)는 상기 서명용 오류 벡터 zs T의 좌측 변에 상기 순열 행렬 P의 역행렬인 P-1을 곱하여

Figure 112017116214580-pat00052
를 연산함으로써, 상기 연산된
Figure 112017116214580-pat00053
을 상기 평문 메시지 m에 대한 전자 서명 값으로 생성한다.Thereafter, the digital signature unit 115 multiplies the left side of the signature error vector z s T by the inverse matrix P -1 of the permutation matrix P
Figure 112017116214580-pat00052
, Thereby calculating
Figure 112017116214580-pat00053
As a digital signature value for the plaintext message m.

그리고, 전자 서명 전송부(116)는 데이터 수신 장치(120)에 대해 상기 평문 메시지 m과 상기 전자 서명 값

Figure 112017116214580-pat00054
및 상기 서명용 변수 is를 전송할 수 있다.The digital signature transmission unit 116 transmits the plaintext message m and the digital signature value < RTI ID = 0.0 >
Figure 112017116214580-pat00054
And the signature variable i s .

이때, 본 발명의 일실시예에 따르면, 데이터 수신 장치(120)는 메모리 상에 상기 스크램블링 행렬 Q와 상기 패리티 검사 행렬 H 및 상기 순열 행렬 P가 곱해진 행렬인 (n-k) x n 크기를 갖는 Kpub를 전자 서명에 대한 검증키로 저장하고 있을 수 있다.In this case, according to an embodiment of the present invention, the data receiving apparatus 120 may be configured to receive K pub (nk) having a size of (nk) xn, which is a matrix obtained by multiplying the scrambling matrix Q by the parity check matrix H and the permutation matrix P, As a verification key for the digital signature.

여기서, 상기 검증키 Kpub는 하기의 수학식 5와 같이 나타낼 수 있다.Here, the verification key K pub can be expressed by the following equation (5).

Figure 112017116214580-pat00055
Figure 112017116214580-pat00055

만약, 데이터 수신 장치(120)에 상기 평문 메시지 m과 상기 전자 서명 값

Figure 112017116214580-pat00056
및 상기 서명용 변수 is가 수신되면, 데이터 수신 장치(120)는 상기 전자 서명 값
Figure 112017116214580-pat00057
가 진정한 데이터 전송측에 의해서 전송된 데이터인지 여부를 검증하기 위해, 상기 전자 서명 값
Figure 112017116214580-pat00058
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인지 여부를 확인한 후 상기 전자 서명 값
Figure 112017116214580-pat00059
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인 것으로 확인되면, 상기 검증키 Kpub와 상기 서명용 변수 is에 기초하여 상기 전자 서명 값
Figure 112017116214580-pat00060
에 대한 검증을 수행할 수 있다.If the plaintext message m and the digital signature value < RTI ID = 0.0 >
Figure 112017116214580-pat00056
And when the signing variable i s is received, the data receiving apparatus 120 transmits the digital signature value
Figure 112017116214580-pat00057
In order to verify whether the data is the data transmitted by the true data transmission side,
Figure 112017116214580-pat00058
Of the hamming weight is less than or equal to the predetermined hamming weight w,
Figure 112017116214580-pat00059
If the confirmed to be not more than the Hamming weight w The selection of a Hamming weight, based on the verification key K pub and the variable i for signing the electronic signature value s
Figure 112017116214580-pat00060
Can be performed.

관련해서, 데이터 수신 장치(120)는 상기 전자 서명 값

Figure 112017116214580-pat00061
에 대한 검증을 수행하기 위한 구체적 구성으로, 상기 메모리 상에 상기 해시 함수 h(x)를 저장하고 있고, 상기 평문 메시지 m과 상기 전자 서명 값
Figure 112017116214580-pat00062
및 상기 서명용 변수 is가 수신되면, 상기 전자 서명 값
Figure 112017116214580-pat00063
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인지 여부를 확인할 수 있다.In this regard, the data receiving apparatus 120 transmits the digital signature value
Figure 112017116214580-pat00061
Wherein the hash function h (x) is stored in the memory, and the plaintext message m and the digital signature value h
Figure 112017116214580-pat00062
And when the signature variable i s is received,
Figure 112017116214580-pat00063
It is possible to confirm whether or not the hamming weight of the hamming weight is less than or equal to the predetermined hamming weight w.

앞서, 패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 장치(110)의 선택부(114)는 해밍 무게가 상기 선정된 해밍 무게인 w 이하를 갖는 서명용 오류 벡터 zs T를 선택한 후 상기 전자 서명 값

Figure 112017116214580-pat00064
을 생성하여 데이터 수신 장치(120)로 전송하였기 때문에, 데이터 수신 장치(120)에 수신된 전자 서명 값인
Figure 112017116214580-pat00065
의 해밍 무게도 상기 선정된 해밍 무게인 w 이하가 되어야 데이터 수신 장치(120)에 정상적으로 데이터가 수신되었다고 볼 수 있을 것이다.The selection unit 114 of the digital signature apparatus 110 using the error correction scheme based on the parity check matrix selects the signature error vector z s T whose Hamming weight has the predetermined Hamming weight w or less, value
Figure 112017116214580-pat00064
And transmits the generated digital signature to the data receiving apparatus 120, the digital signature value received by the data receiving apparatus 120
Figure 112017116214580-pat00065
The hamming weight of the received data may not be equal to or smaller than the predetermined hamming weight w.

따라서, 데이터 수신 장치(120)는 상기 평문 메시지 m과 상기 전자 서명 값

Figure 112017116214580-pat00066
및 상기 서명용 변수 is가 수신되면, 상기 전자 서명 값
Figure 112017116214580-pat00067
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인지 여부를 먼저 확인하게 된다.Accordingly, the data receiving apparatus 120 transmits the plaintext message m and the digital signature value < RTI ID = 0.0 >
Figure 112017116214580-pat00066
And when the signature variable i s is received,
Figure 112017116214580-pat00067
Whether or not the hamming weight of the hamming weight is less than or equal to the predetermined hamming weight w.

만약, 상기 전자 서명 값

Figure 112017116214580-pat00068
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인 것으로 확인되면, 데이터 수신 장치(120)는 상기 평문 메시지 m을 상기 메모리 상에 저장되어 있는 상기 해시 함수 h(x)에 입력으로 인가하여 상기 제1 해시 값 h(m)을 연산할 수 있다.If the digital signature value
Figure 112017116214580-pat00068
The data receiving apparatus 120 applies the plaintext message m as an input to the hash function h (x) stored on the memory to store the plaintext message m in the first The hash value h (m) can be calculated.

그러고 나서, 데이터 수신 장치(120)는 상기 제1 해시 값 h(m)에 상기 서명용 변수 is에 대한 비트 값을 연접한 결과 값

Figure 112017116214580-pat00069
를 상기 해시 함수 h(x)에 입력으로 인가하여 검증용 해시 값인
Figure 112017116214580-pat00070
을 연산할 수 있다.Then, the data receiving apparatus 120 obtains a result value of the bit value for the signature variable i s by concatenating the first hash value h (m)
Figure 112017116214580-pat00069
Is input to the hash function h (x) to generate a hash value for verification
Figure 112017116214580-pat00070
Can be calculated.

그 이후, 데이터 수신 장치(120)는 상기 검증키 Kpub에 상기 전자 서명 값

Figure 112017116214580-pat00071
을 곱한 결과 값인
Figure 112017116214580-pat00072
가 상기 검증용 해시 값인
Figure 112017116214580-pat00073
의 전치 행렬인
Figure 112017116214580-pat00074
와 일치하는지 비교하여 상기
Figure 112017116214580-pat00075
가 상기 검증용 해시 값
Figure 112017116214580-pat00076
의 전치 행렬인
Figure 112017116214580-pat00077
와 일치하는 것으로 판단되면, 상기 전자 서명 값
Figure 112017116214580-pat00078
에 대한 검증을 성공으로 판단할 수 있다.Thereafter, the data receiving apparatus 120 transmits the verification key K pub ,
Figure 112017116214580-pat00071
Lt; RTI ID = 0.0 >
Figure 112017116214580-pat00072
Is the verification hash value
Figure 112017116214580-pat00073
≪ / RTI >
Figure 112017116214580-pat00074
And then,
Figure 112017116214580-pat00075
The verification hash value
Figure 112017116214580-pat00076
≪ / RTI >
Figure 112017116214580-pat00077
The digital signature value < RTI ID = 0.0 >
Figure 112017116214580-pat00078
Can be judged to be successful.

관련해서, 상기 검증키 Kpub에 상기 전자 서명 값

Figure 112017116214580-pat00079
을 곱한 결과 값인
Figure 112017116214580-pat00080
은 하기의 수학식 6과 같이 나타낼 수 있다.In relation to this, the verification key K pub is set to the digital signature value
Figure 112017116214580-pat00079
Lt; RTI ID = 0.0 >
Figure 112017116214580-pat00080
Can be expressed by Equation (6) below.

Figure 112017116214580-pat00081
Figure 112017116214580-pat00081

그리고, 상기 검증용 해시 값

Figure 112017116214580-pat00082
의 전치 행렬인
Figure 112017116214580-pat00083
는 하기의 수학식 7과 같이 나타낼 수 있다.Then, the verification hash value
Figure 112017116214580-pat00082
≪ / RTI >
Figure 112017116214580-pat00083
Can be expressed by the following Equation (7).

Figure 112017116214580-pat00084
Figure 112017116214580-pat00084

상기 수학식 7에서

Figure 112017116214580-pat00085
는 상기 서명용 변수 is가 패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 장치(110)로부터 데이터 수신 장치(120)로 위조나 변조 없이 정상적으로 수신되었다면,
Figure 112017116214580-pat00086
와 동일한 값이 될 것이다.In Equation (7)
Figure 112017116214580-pat00085
If the signature variable i s has been normally received from the digital signature apparatus 110 using the error correction scheme based on the parity check matrix to the data reception apparatus 120 without forgery or modulation,
Figure 112017116214580-pat00086
Will be the same value.

이로 인해, 상기 전자 서명 값

Figure 112017116214580-pat00087
가 패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 장치(110)로부터 데이터 수신 장치(120)로 위조나 변조 없이 정상적으로 수신되었다면, 상기 수학식 6에 따른
Figure 112017116214580-pat00088
와 상기 수학식 7에 따른
Figure 112017116214580-pat00089
는 하기의 수학식 8에서 나타낸 것처럼 동일한 값이 되어야 할 것이다.Thus, the digital signature value
Figure 112017116214580-pat00087
Is normally received from the digital signature apparatus 110 using the error correction scheme based on the parity check matrix without any falsification or modulation from the data reception apparatus 120,
Figure 112017116214580-pat00088
And Equation (7)
Figure 112017116214580-pat00089
Lt; RTI ID = 0.0 > (8) < / RTI >

Figure 112017116214580-pat00090
Figure 112017116214580-pat00090

따라서, 데이터 수신 장치(120)는 상기

Figure 112017116214580-pat00091
가 상기 검증용 해시 값
Figure 112017116214580-pat00092
의 전치 행렬인
Figure 112017116214580-pat00093
와 일치하는 것으로 판단되면, 상기 전자 서명 값
Figure 112017116214580-pat00094
에 대한 검증을 성공으로 판단할 수 있다.Therefore, the data receiving apparatus 120 receives
Figure 112017116214580-pat00091
The verification hash value
Figure 112017116214580-pat00092
≪ / RTI >
Figure 112017116214580-pat00093
The digital signature value < RTI ID = 0.0 >
Figure 112017116214580-pat00094
Can be judged to be successful.

이상, 도 1을 참조하여 본 발명의 일실시예에 따른 패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 장치(110)를 설명하였다.The digital signature apparatus 110 using the error correction scheme based on the parity check matrix according to an embodiment of the present invention has been described with reference to FIG.

지금까지 설명한 실시예에서는 RM 코드로 구성된 패리티 검사 행렬을 기초로 전자 서명을 수행하는 구성을 포함하고 있다는 점에서, 제3자가 RM 코드의 구조적 특성을 기반으로 상기 패리티 검사 행렬을 추측해낼 가능성을 배제할 수 없는 보안상의 약점이 존재할 수 있다. 따라서, 본 발명은 전자 서명의 보안성을 더욱 높이기 위해서, 전술한 실시예와는 다른 변형된 실시예로 전자 서명에 사용되는 패리티 검사 행렬의 구조를 변경함으로써, 제3자가 RM 코드의 구조적 특성을 기반으로 패리티 검사 행렬을 추측해낼 수 없도록 구성될 수도 있다. 관련해서, 이하에서는 도 1을 참조하여 본 발명의 변형된 실시예에 따른 패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 장치(110)에 대해 추가적으로 설명하기로 한다.In the embodiment described so far, the third embodiment includes a configuration for performing digital signature based on a parity check matrix composed of RM codes, and thus excludes the possibility that a third party can guess the parity check matrix based on the structural characteristic of the RM code There may be security weaknesses that can not be done. Therefore, in order to further enhance the security of digital signatures, the present invention is a modified embodiment that is different from the above-described embodiment. By changing the structure of the parity check matrix used for digital signatures, The parity check matrix can not be inferred based on the parity check matrix. Hereinafter, an electronic signature apparatus 110 using an error recovery scheme based on a parity check matrix according to a modified embodiment of the present invention will be described in further detail with reference to FIG.

개인키 저장부(111)에는 RM 코드로 구성된 (n-k) x n 크기의 선형 부호에 대한 패리티 검사 행렬 H, 상기 패리티 검사 행렬 H에서 복수의 선정된 제1 행들에 위치하는 성분들이 랜덤한 코드 값으로 치환되고, 복수의 선정된 제2 열들에 위치하는 성분들이 '0'의 코드 값으로 치환된 변형 패리티 검사 행렬 Ht, '1'과 '0'의 코드 값을 성분으로 포함하는 (n-k) x (n-k) 크기의 스크램블링 행렬 Q 및 '1'과 '0'의 코드 값을 성분으로 포함하는 n x n 크기의 순열 행렬 P가 저장되어 있다.In the private key storage unit 111, a parity check matrix H for a (nk) xn-sized linear code composed of RM codes and a plurality of predetermined first rows in the parity check matrix H are random code values (Nk) x (nk) which includes code values of the modified parity check matrix H t , '1' and '0' whose components are replaced with code values of '0' (nk) sized scrambling matrix Q and a permutation matrix P of size nxn containing '1' and '0' code values as components.

여기서, n과 k는 자연수이고 n은 k보다 큰 수이다.Where n and k are natural numbers and n is a number greater than k.

보통, 상기 패리티 검사 행렬 H는 하기의 수학식 9에서 표현한 것처럼, 패리티 비트들로 구성된 k x (n-k) 크기의 패리티 부(sub) 행렬 Ps에 대한 전치 행렬인 Ps T와 (n-k) x (n-k) 크기의 단위 행렬 I가 서로 연접된 형태를 가지고 있다.Typically, the parity check matrix, as H is expressed in Equation (9) below, P s T and the (nk) of the pre-matrix for the kx (nk) parity portion (sub) matrix P s of size consisting of a parity bit x ( nk) size matrix I are connected to one another.

Figure 112017116214580-pat00095
Figure 112017116214580-pat00095

이때, 개인키 저장부(110) 상에 저장되어 있는 상기 변형 패리티 검사 행렬 Ht는 상기 수학식 9의 형태를 갖는 상기 패리티 검사 행렬 H에서 복수의 선정된 제1 행들에 위치하는 성분들이 랜덤한 코드 값으로 치환되고, 복수의 선정된 제2 열들에 위치하는 성분들이 '0'의 코드 값으로 치환된 형태를 가지도록 구성될 수 있다.At this time, the modified parity check matrix H t stored on the private key storage unit 110 is a random parity check matrix H in which the components located in a plurality of selected first rows in the parity check matrix H having the form of Equation (9) Code values, and the components located in a plurality of the selected second columns are replaced with code values of '0'.

관련해서, 상기 변형 패리티 검사 행렬 Ht는 도 2에 도시된 그림과 같은 형태를 가지도록 구성될 수 있다.In this regard, the modified parity check matrix H t may be configured to have a shape as shown in FIG.

도 2에 도시된 그림과 같이, 상기 변형 패리티 검사 행렬 Ht는 도면부호 211로 표시한 것처럼 상기 패리티 검사 행렬 H의 최하단 행으로부터 p개의 행까지에 존재하는 코드들이 랜덤한 코드 값으로 치환되고, 도면부호 212에 표시한 것처럼 상기 패리티 검사 행렬 H의 최우측 열으로부터 p개의 열까지에 존재하는 코드들이 '0'으로 치환된 형태를 가지도록 구성될 수 있다.As shown in FIG. 2, the modified parity check matrix H t is replaced with a random code value by codes existing from the lowermost row to the p rows of the parity check matrix H, as denoted by reference numeral 211, The codes existing from the rightmost column to the p columns of the parity check matrix H may be replaced with '0' as indicated by reference numeral 212.

이때, 도 2에서 Ip로 표시한 p x p 크기의 부분에 위치하는 코드들에 대해서는 변형을 수행하지 않음으로써, 상기 변형 패리티 검사 행렬 Ht가 Ip부분에 대해 단위 행렬의 형태를 갖도록 구성될 수 있다.At this time, the deformation is not performed on the codes located at the pxp size portion indicated by I p in FIG. 2, so that the deformed parity check matrix H t may be configured to have the unit matrix form for the I p portion have.

이렇게, 개인키 저장부(111) 상에 패리티 검사 행렬 H, 변형 패리티 검사 행렬 Ht, 스크램블링 행렬 Q 및 순열 행렬 P가 저장되어 있는 상태에서, 데이터 수신 장치(120)로 전송할 평문 메시지를 m이라고 한다면, 제1 해시 값 연산부(112)는 상기 평문 메시지 m을 선정된 해시 함수인 h(x)에 입력으로 인가하여 제1 해시 값 h(m)을 연산한다.When the parity check matrix H, the modified parity check matrix H t , the scrambling matrix Q, and the permutation matrix P are stored on the private key storage unit 111, the plaintext message to be transmitted to the data receiving apparatus 120 is m The first hash value calculator 112 calculates the first hash value h (m) by applying the plaintext message m to the selected hash function h (x) as an input.

여기서, 상기 해시 함수 h(x)는 입력 값을 (n-k) 비트 크기의 출력 값으로 변환시키는 일방향 함수이다.Here, the hash function h (x) is a one-way function for converting an input value into an output value of (n-k) bits.

신드롬 메시지 생성부(113)는 상기 제1 해시 값 h(m)의 연산이 완료되면, 변수 i(상기 변수 i는 '0'이상인 정수임)를 '0'부터 '1'씩 증가시키면서, 상기 제1 해시 값 h(m)에 상기 변수 i에 대한 비트 값을 연접한 결과 값

Figure 112017116214580-pat00096
를 상기 해시 함수 h(x)에 입력으로 인가하여 제2 해시 값인
Figure 112017116214580-pat00097
을 연산하고, 상기 제2 해시 값인
Figure 112017116214580-pat00098
의 전치 행렬인
Figure 112017116214580-pat00099
의 좌측 변에 상기 스크램블링 행렬 Q의 역행렬인 Q-1을 곱하여 신드롬 메시지 si를 생성한다.The syndrome message generation unit 113 increases the variable i (the variable i is an integer equal to or greater than 0) from 0 to 1, when the calculation of the first hash value h (m) is completed, 1 The result of concatenating the bit values for the variable i with the hash value h (m)
Figure 112017116214580-pat00096
Is applied as input to the hash function h (x) to obtain a second hash value < RTI ID = 0.0 >
Figure 112017116214580-pat00097
, And the second hash value
Figure 112017116214580-pat00098
≪ / RTI >
Figure 112017116214580-pat00099
Is multiplied by the inverse matrix Q -1 of the scrambling matrix Q to generate a syndrome message s i .

이로 인해, 상기 신드롬 메시지 si는 하기의 수학식 10과 같이 표현될 수 있다.Therefore, the syndrome message s i can be expressed as Equation (10) below.

Figure 112017116214580-pat00100
Figure 112017116214580-pat00100

선택부(114)는 상기 변수 i가 '0'을 시작으로 해서 '1'씩 증가되면서 상기 신드롬 메시지 si가 생성될 때마다, 각 변수 i에서의 상기 신드롬 메시지 si에 대해 상기 패리티 검사 행렬 H를 기초로 완전 복호화를 수행하여

Figure 112017116214580-pat00101
(zT는 크기가 n인 벡터 z의 전치 행렬로 n x 1의 크기를 가짐)를 만족하는 zT를 연산하고, 상기 변형 패리티 검사 행렬 Ht에서 상기 복수의 선정된 제1 행들과 상기 복수의 선정된 제2 열들에 위치하는 코드 값에 기초하여 각 변수 i마다 연산되는 zT의 성분을 조작함으로써,
Figure 112017116214580-pat00102
를 만족하는 zt T를 검출한 후 zt T의 해밍 무게가 선정된 해밍 무게인 w 이하로 검출되는 시점에서의 변수 i를 서명용 변수 is로 선택함과 동시에 상기 서명용 변수 is에 대응하여 검출된 zt T를 서명용 오류 벡터 zs T로 선택한다.When the syndrome message s i is generated while the variable i is incremented by '1' starting from '0', the selector 114 sets the parity check matrix for the syndrome message s i in each variable i H < RTI ID = 0.0 >
Figure 112017116214580-pat00101
(where z T is a transposed matrix of a vector z of size n, and has a size of nx 1), and calculates z T in the transformed parity check matrix H t by multiplying the plurality of selected first rows and the plurality By manipulating the components of z T computed for each variable i based on the code values located in the selected second columns,
Figure 112017116214580-pat00102
And then detecting the z t T satisfying the variable i at the time is detected more than the Hamming weight of the Hamming weight of z t T selection w and at the same time select a signature variable i s corresponding to the signing variable i s It selects the detected z t T to the signature error vector z s T.

관련해서, 선택부(114)는 상기 수학식 10에서 나타낸 si에 대해 상기 변수 i를 '0'을 시작으로 해서 '1'씩 증가시키면서 완전 복호화를 수행하여

Figure 112017116214580-pat00103
를 만족하는 zT를 연산할 수 있다.In relation to this, the selector 114 performs the complete decoding while incrementing the variable i from '0' to '1' with respect to s i shown in Equation (10)
Figure 112017116214580-pat00103
The operation can be the T z satisfying.

그리고, 선택부(114)는 도 2의 형태를 갖는 상기 변형 패리티 검사 행렬 Ht에서 도면부호 211과 도면부호 212로 표시한 치환된 코드 값에 기초하여 각 변수 i마다 연산되는 zT의 성분을 조작함으로써,

Figure 112017116214580-pat00104
를 만족하는 zt T를 검출할 수 있다. 관련해서, 상기 변형 패리티 검사 행렬 Ht는 상기 패리티 검사 행렬 H에서 도면부호 211과 도면부호 212로 표시된 부분의 코드 값만 변경된 행렬이므로,
Figure 112017116214580-pat00105
를 만족하는 zT가 연산되면, n x 1의 크기를 갖는 행렬인 zT에 포함되어 있는 성분들 중 도면부호 211과 도면부호 212의 성분들이 변경됨에 따라
Figure 112017116214580-pat00106
의 연산에 영향을 받는 성분들의 코드 값만을 조작함으로써,
Figure 112017116214580-pat00107
의 연산을 만족하는 zt T를 찾아낼 수 있다.The selector 114 selects the component of z T computed for each variable i based on the substituted code value denoted by reference numeral 211 and reference numeral 212 in the modified parity check matrix H t having the form of FIG. 2 By operation,
Figure 112017116214580-pat00104
Lt; RTI ID = 0.0 > zT < / RTI > In this regard, since the modified parity check matrix H t is a matrix in which only the code values indicated by reference numerals 211 and 212 in the parity check matrix H are changed,
Figure 112017116214580-pat00105
When z T is calculated that satisfies, in accordance with changes to the matrix T z components are the components of the reference numeral 211 and reference numeral 212 which includes a having a size of nx 1
Figure 112017116214580-pat00106
By manipulating only the code values of the components affected by the operation of < RTI ID = 0.0 >
Figure 112017116214580-pat00107
A z t T satisfying the operation can be found.

이러한 방식으로 선택부(114)는 상기 변수 i를 '1'씩 증가시키면서 각 변수에 대응하는 zt T를 찾으면서, zt T의 해밍 무게가 선정된 해밍 무게인 w 이하로 검출되는 시점에서, zt T를 찾는 연산을 중단한 후 해당 시점에서의 변수 i를 서명용 변수 is로 선택함과 동시에 상기 서명용 변수 is에 대응하여 연산된 zt T를 서명용 오류 벡터 zs T로 선택할 수 있다.In this manner, the selector 114 increases the variable i by '1' and finds z t T corresponding to each variable. At the time when the hamming weight of z t T is detected to be equal to or less than the predetermined hamming weight w , to select a z t T and then finding stop operation and at the same time select the variable i at the corresponding time point in signing variable i s calculated in response to the signing variable i s z t T a signature error vector z s T have.

그 이후, 전자 서명부(115)는 상기 서명용 오류 벡터 zs T의 좌측 변에 상기 순열 행렬 P의 역행렬인 P-1을 곱하여

Figure 112017116214580-pat00108
를 연산함으로써, 상기 연산된
Figure 112017116214580-pat00109
을 상기 평문 메시지 m에 대한 전자 서명 값으로 생성한다.Thereafter, the digital signature unit 115 multiplies the left side of the signature error vector z s T by the inverse matrix P -1 of the permutation matrix P
Figure 112017116214580-pat00108
, Thereby calculating
Figure 112017116214580-pat00109
As a digital signature value for the plaintext message m.

그리고, 전자 서명 전송부(116)는 데이터 수신 장치(120)에 대해 상기 평문 메시지 m과 상기 전자 서명 값

Figure 112017116214580-pat00110
및 상기 서명용 변수 is를 전송할 수 있다.The digital signature transmission unit 116 transmits the plaintext message m and the digital signature value < RTI ID = 0.0 >
Figure 112017116214580-pat00110
And the signature variable i s .

이때, 본 발명의 일실시예에 따르면, 데이터 수신 장치(120)는 메모리 상에 상기 스크램블링 행렬 Q와 상기 변형 패리티 검사 행렬 Ht 및 상기 순열 행렬 P가 곱해진 행렬인 (n-k) x n 크기를 갖는 Kpub를 전자 서명에 대한 검증키로 저장하고 있을 수 있다.In this case, according to an embodiment of the present invention, the data receiving apparatus 120 has a (nk) size of xn, which is a matrix obtained by multiplying the scrambling matrix Q, the modified parity check matrix H t , K pub as the verification key for the digital signature.

여기서, 상기 검증키 Kpub는 하기의 수학식 11과 같이 나타낼 수 있다.Here, the verification key K pub can be expressed by Equation (11) below.

Figure 112017116214580-pat00111
Figure 112017116214580-pat00111

만약, 데이터 수신 장치(120)에 상기 평문 메시지 m과 상기 전자 서명 값

Figure 112017116214580-pat00112
및 상기 서명용 변수 is가 수신되면, 데이터 수신 장치(120)는 상기 전자 서명 값
Figure 112017116214580-pat00113
가 진정한 데이터 전송측에 의해서 전송된 데이터인지 여부를 검증하기 위해, 상기 전자 서명 값
Figure 112017116214580-pat00114
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인지 여부를 확인한 후 상기 전자 서명 값
Figure 112017116214580-pat00115
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인 것으로 확인되면, 상기 검증키 Kpub와 상기 서명용 변수 is에 기초하여 상기 전자 서명 값
Figure 112017116214580-pat00116
에 대한 검증을 수행할 수 있다.If the plaintext message m and the digital signature value < RTI ID = 0.0 >
Figure 112017116214580-pat00112
And when the signing variable i s is received, the data receiving apparatus 120 transmits the digital signature value
Figure 112017116214580-pat00113
In order to verify whether the data is the data transmitted by the true data transmission side,
Figure 112017116214580-pat00114
Of the hamming weight is less than or equal to the predetermined hamming weight w,
Figure 112017116214580-pat00115
If the confirmed to be not more than the Hamming weight w The selection of a Hamming weight, based on the verification key K pub and the variable i for signing the electronic signature value s
Figure 112017116214580-pat00116
Can be performed.

관련해서, 데이터 수신 장치(120)는 상기 전자 서명 값

Figure 112017116214580-pat00117
에 대한 검증을 수행하기 위한 구체적 구성으로, 상기 메모리 상에 상기 해시 함수 h(x)를 저장하고 있고, 상기 평문 메시지 m과 상기 전자 서명 값
Figure 112017116214580-pat00118
및 상기 서명용 변수 is가 수신되면, 상기 전자 서명 값
Figure 112017116214580-pat00119
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인지 여부를 확인할 수 있다.In this regard, the data receiving apparatus 120 transmits the digital signature value
Figure 112017116214580-pat00117
Wherein the hash function h (x) is stored in the memory, and the plaintext message m and the digital signature value h
Figure 112017116214580-pat00118
And when the signature variable i s is received,
Figure 112017116214580-pat00119
It is possible to confirm whether or not the hamming weight of the hamming weight is less than or equal to the predetermined hamming weight w.

앞서, 패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 장치(110)의 선택부(114)는 해밍 무게가 상기 선정된 해밍 무게인 w 이하를 갖는 서명용 오류 벡터 zs T를 선택한 후 상기 전자 서명 값

Figure 112017116214580-pat00120
을 생성하여 데이터 수신 장치(120)로 전송하였기 때문에, 데이터 수신 장치(120)에 수신된 전자 서명 값인
Figure 112017116214580-pat00121
의 해밍 무게도 상기 선정된 해밍 무게인 w 이하가 되어야 데이터 수신 장치(120)에 정상적으로 데이터가 수신되었다고 볼 수 있을 것이다.The selection unit 114 of the digital signature apparatus 110 using the error correction scheme based on the parity check matrix selects the signature error vector z s T whose Hamming weight has the predetermined Hamming weight w or less, value
Figure 112017116214580-pat00120
And transmits the generated digital signature to the data receiving apparatus 120, the digital signature value received by the data receiving apparatus 120
Figure 112017116214580-pat00121
The hamming weight of the received data may not be equal to or smaller than the predetermined hamming weight w.

따라서, 데이터 수신 장치(120)는 상기 평문 메시지 m과 상기 전자 서명 값

Figure 112017116214580-pat00122
및 상기 서명용 변수 is가 수신되면, 상기 전자 서명 값
Figure 112017116214580-pat00123
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인지 여부를 먼저 확인하게 된다.Accordingly, the data receiving apparatus 120 transmits the plaintext message m and the digital signature value < RTI ID = 0.0 >
Figure 112017116214580-pat00122
And when the signature variable i s is received,
Figure 112017116214580-pat00123
Whether or not the hamming weight of the hamming weight is less than or equal to the predetermined hamming weight w.

만약, 상기 전자 서명 값

Figure 112017116214580-pat00124
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인 것으로 확인되면, 데이터 수신 장치(120)는 상기 평문 메시지 m을 상기 메모리 상에 저장되어 있는 상기 해시 함수 h(x)에 입력으로 인가하여 상기 제1 해시 값 h(m)을 연산할 수 있다.If the digital signature value
Figure 112017116214580-pat00124
The data receiving apparatus 120 applies the plaintext message m as an input to the hash function h (x) stored on the memory to store the plaintext message m in the first The hash value h (m) can be calculated.

그러고 나서, 데이터 수신 장치(120)는 상기 제1 해시 값 h(m)에 상기 서명용 변수 is에 대한 비트 값을 연접한 결과 값

Figure 112017116214580-pat00125
를 상기 해시 함수 h(x)에 입력으로 인가하여 검증용 해시 값인
Figure 112017116214580-pat00126
을 연산할 수 있다.Then, the data receiving apparatus 120 obtains a result value of the bit value for the signature variable i s by concatenating the first hash value h (m)
Figure 112017116214580-pat00125
Is input to the hash function h (x) to generate a hash value for verification
Figure 112017116214580-pat00126
Can be calculated.

그 이후, 데이터 수신 장치(120)는 상기 검증키 Kpub에 상기 전자 서명 값

Figure 112017116214580-pat00127
을 곱한 결과 값인
Figure 112017116214580-pat00128
가 상기 검증용 해시 값인
Figure 112017116214580-pat00129
의 전치 행렬인
Figure 112017116214580-pat00130
와 일치하는지 비교하여 상기
Figure 112017116214580-pat00131
가 상기 검증용 해시 값
Figure 112017116214580-pat00132
의 전치 행렬인
Figure 112017116214580-pat00133
와 일치하는 것으로 판단되면, 상기 전자 서명 값
Figure 112017116214580-pat00134
에 대한 검증을 성공으로 판단할 수 있다.Thereafter, the data receiving apparatus 120 transmits the verification key K pub ,
Figure 112017116214580-pat00127
Lt; RTI ID = 0.0 >
Figure 112017116214580-pat00128
Is the verification hash value
Figure 112017116214580-pat00129
≪ / RTI >
Figure 112017116214580-pat00130
And then,
Figure 112017116214580-pat00131
The verification hash value
Figure 112017116214580-pat00132
≪ / RTI >
Figure 112017116214580-pat00133
The digital signature value < RTI ID = 0.0 >
Figure 112017116214580-pat00134
Can be judged to be successful.

관련해서, 상기 검증키 Kpub에 상기 전자 서명 값

Figure 112017116214580-pat00135
을 곱한 결과 값인
Figure 112017116214580-pat00136
은 하기의 수학식 12와 같이 나타낼 수 있다.In relation to this, the verification key K pub is set to the digital signature value
Figure 112017116214580-pat00135
Lt; RTI ID = 0.0 >
Figure 112017116214580-pat00136
Can be expressed by Equation (12) below.

Figure 112017116214580-pat00137
Figure 112017116214580-pat00137

그리고, 상기 검증용 해시 값

Figure 112017116214580-pat00138
의 전치 행렬인
Figure 112017116214580-pat00139
는 하기의 수학식 13과 같이 나타낼 수 있다.Then, the verification hash value
Figure 112017116214580-pat00138
≪ / RTI >
Figure 112017116214580-pat00139
Can be expressed by the following equation (13).

Figure 112017116214580-pat00140
Figure 112017116214580-pat00140

상기 수학식 13에서

Figure 112017116214580-pat00141
는 상기 서명용 변수 is가 패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 장치(110)로부터 데이터 수신 장치(120)로 위조나 변조 없이 정상적으로 수신되었다면,
Figure 112017116214580-pat00142
와 동일한 값이 될 것이다.In Equation (13)
Figure 112017116214580-pat00141
If the signature variable i s has been normally received from the digital signature apparatus 110 using the error correction scheme based on the parity check matrix to the data reception apparatus 120 without forgery or modulation,
Figure 112017116214580-pat00142
Will be the same value.

이로 인해, 상기 전자 서명 값

Figure 112017116214580-pat00143
가 패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 장치(110)로부터 데이터 수신 장치(120)로 위조나 변조 없이 정상적으로 수신되었다면, 상기 수학식 12에 따른
Figure 112017116214580-pat00144
와 상기 수학식 13에 따른
Figure 112017116214580-pat00145
는 하기의 수학식 14에서 나타낸 것처럼 동일한 값이 되어야 할 것이다.Thus, the digital signature value
Figure 112017116214580-pat00143
Is normally received from the digital signature apparatus 110 using the error correction scheme based on the parity check matrix without any falsification or modulation in the data reception apparatus 120,
Figure 112017116214580-pat00144
And the equation
Figure 112017116214580-pat00145
Lt; RTI ID = 0.0 > (14) < / RTI >

Figure 112017116214580-pat00146
Figure 112017116214580-pat00146

따라서, 데이터 수신 장치(120)는 상기

Figure 112017116214580-pat00147
가 상기 검증용 해시 값
Figure 112017116214580-pat00148
의 전치 행렬인
Figure 112017116214580-pat00149
와 일치하는 것으로 판단되면, 상기 전자 서명 값
Figure 112017116214580-pat00150
에 대한 검증을 성공으로 판단할 수 있다.Therefore, the data receiving apparatus 120 receives
Figure 112017116214580-pat00147
The verification hash value
Figure 112017116214580-pat00148
≪ / RTI >
Figure 112017116214580-pat00149
The digital signature value < RTI ID = 0.0 >
Figure 112017116214580-pat00150
Can be judged to be successful.

도 3은 본 발명의 일실시예에 따른 패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 방법을 도시한 순서도이다.3 is a flowchart illustrating an electronic signature method using an error recovery technique based on a parity check matrix according to an embodiment of the present invention.

단계(S310)에서는 RM 코드로 구성된 (n-k) x n 크기의 선형 부호에 대한 패리티 검사 행렬 H, '1'과 '0'의 코드 값을 성분으로 포함하는 (n-k) x (n-k) 크기의 스크램블링 행렬 Q 및 '1'과 '0'의 코드 값을 성분으로 포함하는 n x n 크기의 순열 행렬 P가 저장되어 있는 개인키 저장부를 유지한다.In step S310, a scrambling matrix of size (nk) x (nk) including the code value of the parity check matrix H, '1' and '0' for the (nk) Q and a permutation matrix P of size nxn containing '1' and '0' code values as components.

여기서, n과 k는 자연수이고 n은 k보다 큰 수이다. Where n and k are natural numbers and n is a number greater than k.

단계(S320)에서는 데이터 수신 장치로 전송할 평문 메시지 m을 선정된 해시 함수인 h(x)에 입력으로 인가하여 제1 해시 값 h(m)을 연산한다.In step S320, the plaintext message m to be transmitted to the data receiving apparatus is input to the selected hash function h (x) to calculate the first hash value h (m).

상기 해시 함수 h(x)는 입력 값을 (n-k) 비트 크기의 출력 값으로 변환시키는 일방향 함수이다.The hash function h (x) is a one-way function that transforms the input value into an output value of (n-k) bits in size.

단계(S330)에서는 상기 제1 해시 값 h(m)의 연산이 완료되면, 변수 i(상기 변수 i는 '0'이상인 정수임)를 '0'부터 '1'씩 증가시키면서, 상기 제1 해시 값 h(m)에 상기 변수 i에 대한 비트 값을 연접한 결과 값

Figure 112017116214580-pat00151
를 상기 해시 함수 h(x)에 입력으로 인가하여 제2 해시 값인
Figure 112017116214580-pat00152
을 연산하고, 상기 제2 해시 값인
Figure 112017116214580-pat00153
의 전치 행렬인
Figure 112017116214580-pat00154
의 좌측 변에 상기 스크램블링 행렬 Q의 역행렬인 Q-1을 곱하여 신드롬 메시지 si(
Figure 112017116214580-pat00155
임)를 생성한다.In step S330, when the calculation of the first hash value h (m) is completed, the variable i (the variable i is an integer equal to or greater than 0) is increased from '0' to '1' The result obtained by concatenating the bit values of the variable i with h (m)
Figure 112017116214580-pat00151
Is applied as input to the hash function h (x) to obtain a second hash value < RTI ID = 0.0 >
Figure 112017116214580-pat00152
, And the second hash value
Figure 112017116214580-pat00153
≪ / RTI >
Figure 112017116214580-pat00154
The left side of the scrambling matrix Q is multiplied by the inverse matrix Q -1 of the scrambling matrix Q to generate a syndrome message s i (
Figure 112017116214580-pat00155
.

단계(S340)에서는 상기 변수 i가 '0'을 시작으로 해서 '1'씩 증가되면서 상기 신드롬 메시지 si가 생성될 때마다, 각 변수 i에서의 상기 신드롬 메시지 si에 대해 상기 패리티 검사 행렬 H를 기초로 완전 복호화를 수행하여

Figure 112017116214580-pat00156
(zT는 크기가 n인 벡터 z의 전치 행렬로 n x 1의 크기를 가짐)를 만족하는 zT를 연산한 후 zT의 해밍 무게가 선정된 해밍 무게인 w 이하로 연산되는 시점에서의 변수 i를 서명용 변수 is로 선택함과 동시에 상기 서명용 변수 is에 대응하여 연산된 zT를 서명용 오류 벡터 zs T로 선택한다.Step (S340) In as the variable i is increased by "0", starting by '1', the syndrome message s i is each time created, the parity check matrix for the syndrome message s i for each variable i H To perform complete decoding based on
Figure 112017116214580-pat00156
(z T is a transpose matrix of vector z with size n), z T is computed to satisfy the following equation: z T = i is selected as the signature variable i s , and at the same time, z T calculated corresponding to the signing variable i s is selected as the signature error vector z s T.

단계(S350)에서는 상기 서명용 오류 벡터 zs T의 좌측 변에 상기 순열 행렬 P의 역행렬인 P-1을 곱하여

Figure 112017116214580-pat00157
를 연산함으로써, 상기 연산된
Figure 112017116214580-pat00158
을 상기 평문 메시지 m에 대한 전자 서명 값으로 생성한다.In step S350, the left side of the signature error vector z s T is multiplied by the inverse matrix P -1 of the permutation matrix P
Figure 112017116214580-pat00157
, Thereby calculating
Figure 112017116214580-pat00158
As a digital signature value for the plaintext message m.

단계(S360)에서는 상기 데이터 수신 장치에 대해 상기 평문 메시지 m과 상기 전자 서명 값

Figure 112017116214580-pat00159
및 상기 서명용 변수 is를 전송한다.In step S360, the plain text message m and the digital signature value < RTI ID = 0.0 >
Figure 112017116214580-pat00159
And the signature variable i s .

이때, 본 발명의 일실시예에 따르면, 상기 데이터 수신 장치는 메모리 상에 상기 스크램블링 행렬 Q와 상기 패리티 검사 행렬 H 및 상기 순열 행렬 P가 곱해진 행렬인 (n-k) x n 크기를 갖는 Kpub(

Figure 112017116214580-pat00160
임)를 전자 서명에 대한 검증키로 저장하고 있고, 상기 평문 메시지 m과 상기 전자 서명 값
Figure 112017116214580-pat00161
및 상기 서명용 변수 is가 수신되면, 상기 전자 서명 값
Figure 112017116214580-pat00162
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인지 여부를 확인한 후 상기 전자 서명 값
Figure 112017116214580-pat00163
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인 것으로 확인되면, 상기 검증키 Kpub와 상기 서명용 변수 is에 기초하여 상기 전자 서명 값
Figure 112017116214580-pat00164
에 대한 검증을 수행할 수 있다.In this case, according to an embodiment of the present invention, the data reception apparatus may further include: K pub ((nk)) having a size of (nk) xn, which is a matrix obtained by multiplying the scrambling matrix Q by the parity check matrix H and the permutation matrix P,
Figure 112017116214580-pat00160
) As a verification key for an electronic signature, and the plaintext message m and the digital signature value
Figure 112017116214580-pat00161
And when the signature variable i s is received,
Figure 112017116214580-pat00162
Of the hamming weight is less than or equal to the predetermined hamming weight w,
Figure 112017116214580-pat00163
If the confirmed to be not more than the Hamming weight w The selection of a Hamming weight, based on the verification key K pub and the variable i for signing the electronic signature value s
Figure 112017116214580-pat00164
Can be performed.

이때, 본 발명의 일실시예에 따르면, 상기 데이터 수신 장치는 상기 메모리 상에 상기 해시 함수 h(x)를 추가로 저장하고 있고, 상기 평문 메시지 m과 상기 전자 서명 값

Figure 112017116214580-pat00165
및 상기 서명용 변수 is가 수신되면, 상기 전자 서명 값
Figure 112017116214580-pat00166
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인지 여부를 확인한 후 상기 전자 서명 값
Figure 112017116214580-pat00167
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인 것으로 확인되면, 상기 평문 메시지 m을 상기 메모리 상에 저장되어 있는 상기 해시 함수 h(x)에 입력으로 인가하여 상기 제1 해시 값 h(m)을 연산하고, 상기 제1 해시 값 h(m)이 연산되면, 상기 제1 해시 값 h(m)에 상기 서명용 변수 is에 대한 비트 값을 연접한 결과 값
Figure 112017116214580-pat00168
를 상기 해시 함수 h(x)에 입력으로 인가하여 검증용 해시 값인
Figure 112017116214580-pat00169
을 연산하며, 상기 검증키 Kpub에 상기 전자 서명 값
Figure 112017116214580-pat00170
을 곱한 결과 값인
Figure 112017116214580-pat00171
가 상기 검증용 해시 값인
Figure 112017116214580-pat00172
의 전치 행렬인
Figure 112017116214580-pat00173
와 일치하는지 비교하여 상기
Figure 112017116214580-pat00174
가 상기 검증용 해시 값
Figure 112017116214580-pat00175
의 전치 행렬인
Figure 112017116214580-pat00176
와 일치하는 것으로 판단되면, 상기 전자 서명 값
Figure 112017116214580-pat00177
에 대한 검증을 성공으로 판단할 수 있다.In this case, according to an embodiment of the present invention, the data receiving apparatus further stores the hash function h (x) on the memory, and the plaintext message m and the digital signature value
Figure 112017116214580-pat00165
And when the signature variable i s is received,
Figure 112017116214580-pat00166
Of the hamming weight is less than or equal to the predetermined hamming weight w,
Figure 112017116214580-pat00167
(M) is input as the input to the hash function h (x) stored on the memory, if it is determined that the hamming weight of the plaintext message m is equal to or less than the predetermined Hamming weight w (M) is a result of concatenating the bit value for the signature variable i s with the first hash value h (m)
Figure 112017116214580-pat00168
Is input to the hash function h (x) to generate a hash value for verification
Figure 112017116214580-pat00169
To the verification key K pub ,
Figure 112017116214580-pat00170
Lt; RTI ID = 0.0 >
Figure 112017116214580-pat00171
Is the verification hash value
Figure 112017116214580-pat00172
≪ / RTI >
Figure 112017116214580-pat00173
And then,
Figure 112017116214580-pat00174
The verification hash value
Figure 112017116214580-pat00175
≪ / RTI >
Figure 112017116214580-pat00176
The digital signature value < RTI ID = 0.0 >
Figure 112017116214580-pat00177
Can be judged to be successful.

도 4는 본 발명의 또 다른 일실시예에 따른 패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 방법을 도시한 순서도이다.4 is a flowchart illustrating an electronic signature method using an error recovery technique based on a parity check matrix according to another embodiment of the present invention.

단계(S410)에서는 RM 코드로 구성된 (n-k) x n 크기의 선형 부호에 대한 패리티 검사 행렬 H, 상기 패리티 검사 행렬 H에서 복수의 선정된 제1 행들에 위치하는 성분들이 랜덤한 코드 값으로 치환되고, 복수의 선정된 제2 열들에 위치하는 성분들이 '0'의 코드 값으로 치환된 변형 패리티 검사 행렬 Ht, '1'과 '0'의 코드 값을 성분으로 포함하는 (n-k) x (n-k) 크기의 스크램블링 행렬 Q 및 '1'과 '0'의 코드 값을 성분으로 포함하는 n x n 크기의 순열 행렬 P가 저장되어 있는 개인키 저장부를 유지한다.In step S410, a parity check matrix H for a (nk) xn-sized linear code composed of RM codes, components located in a plurality of selected first rows in the parity check matrix H are replaced with random code values, (Nk) x (nk) including the code values of the modified parity check matrix H t , '1' and '0' whose components located in a plurality of selected second columns are replaced with code values of '0' Size scrambling matrix Q and a permutation matrix P of size nxn including the code values of '1' and '0' as components.

여기서, n과 k는 자연수이고 n은 k보다 큰 수이다.Where n and k are natural numbers and n is a number greater than k.

단계(S420)에서는 데이터 수신 장치로 전송할 평문 메시지 m을 선정된 해시 함수인 h(x)에 입력으로 인가하여 제1 해시 값 h(m)을 연산한다.In step S420, the plaintext message m to be transmitted to the data receiving apparatus is input to the selected hash function h (x) to calculate the first hash value h (m).

상기 해시 함수 h(x)는 입력 값을 (n-k) 비트 크기의 출력 값으로 변환시키는 일방향 함수이다.The hash function h (x) is a one-way function that transforms the input value into an output value of (n-k) bits in size.

단계(S430)에서는 상기 제1 해시 값 h(m)의 연산이 완료되면, 변수 i(상기 변수 i는 '0'이상인 정수임)를 '0'부터 '1'씩 증가시키면서, 상기 제1 해시 값 h(m)에 상기 변수 i에 대한 비트 값을 연접한 결과 값

Figure 112017116214580-pat00178
를 상기 해시 함수 h(x)에 입력으로 인가하여 제2 해시 값인
Figure 112017116214580-pat00179
을 연산하고, 상기 제2 해시 값인
Figure 112017116214580-pat00180
의 전치 행렬인
Figure 112017116214580-pat00181
의 좌측 변에 상기 스크램블링 행렬 Q의 역행렬인 Q-1을 곱하여 신드롬 메시지 si(
Figure 112017116214580-pat00182
임)를 생성한다.In step S430, when the calculation of the first hash value h (m) is completed, the variable i (the variable i is an integer equal to or greater than 0) is increased from 0 to 1 and the first hash value h The result obtained by concatenating the bit values of the variable i with h (m)
Figure 112017116214580-pat00178
Is applied as input to the hash function h (x) to obtain a second hash value < RTI ID = 0.0 >
Figure 112017116214580-pat00179
, And the second hash value
Figure 112017116214580-pat00180
≪ / RTI >
Figure 112017116214580-pat00181
The left side of the scrambling matrix Q is multiplied by the inverse matrix Q -1 of the scrambling matrix Q to generate a syndrome message s i (
Figure 112017116214580-pat00182
.

단계(S440)에서는 상기 변수 i가 '0'을 시작으로 해서 '1'씩 증가되면서 상기 신드롬 메시지 si가 생성될 때마다, 각 변수 i에서의 상기 신드롬 메시지 si에 대해 상기 패리티 검사 행렬 H를 기초로 완전 복호화를 수행하여

Figure 112017116214580-pat00183
(zT는 크기가 n인 벡터 z의 전치 행렬로 n x 1의 크기를 가짐)를 만족하는 zT를 연산하고, 상기 변형 패리티 검사 행렬 Ht에서 상기 복수의 선정된 제1 행들과 상기 복수의 선정된 제2 열들에 위치하는 코드 값에 기초하여 각 변수 i마다 연산되는 zT의 성분을 조작함으로써,
Figure 112017116214580-pat00184
를 만족하는 zt T를 검출한 후 zt T의 해밍 무게가 선정된 해밍 무게인 w 이하로 검출되는 시점에서의 변수 i를 서명용 변수 is로 선택함과 동시에 상기 서명용 변수 is에 대응하여 검출된 zt T를 서명용 오류 벡터 zs T로 선택한다.Step (S440) In as the variable i is increased by "0", starting by '1', the syndrome message s i is each time created, the parity check matrix for the syndrome message s i for each variable i H To perform complete decoding based on
Figure 112017116214580-pat00183
(where z T is a transposed matrix of a vector z of size n, and has a size of nx 1), and calculates z T in the transformed parity check matrix H t by multiplying the plurality of selected first rows and the plurality By manipulating the components of z T computed for each variable i based on the code values located in the selected second columns,
Figure 112017116214580-pat00184
And then detecting the z t T satisfying the variable i at the time is detected more than the Hamming weight of the Hamming weight of z t T selection w and at the same time select a signature variable i s corresponding to the signing variable i s It selects the detected z t T to the signature error vector z s T.

단계(S450)에서는 상기 서명용 오류 벡터 zs T의 좌측 변에 상기 순열 행렬 P의 역행렬인 P-1을 곱하여

Figure 112017116214580-pat00185
를 연산함으로써, 상기 연산된
Figure 112017116214580-pat00186
을 상기 평문 메시지 m에 대한 전자 서명 값으로 생성한다.In step S450, the left side of the signature error vector z s T is multiplied by the inverse matrix P -1 of the permutation matrix P
Figure 112017116214580-pat00185
, Thereby calculating
Figure 112017116214580-pat00186
As a digital signature value for the plaintext message m.

단계(S460)에서는 상기 데이터 수신 장치에 대해 상기 평문 메시지 m과 상기 전자 서명 값

Figure 112017116214580-pat00187
및 상기 서명용 변수 is를 전송한다.In step S460, the plaintext message m and the digital signature value < RTI ID = 0.0 >
Figure 112017116214580-pat00187
And the signature variable i s .

이때, 본 발명의 일실시예에 따르면, 상기 데이터 수신 장치는 메모리 상에 상기 스크램블링 행렬 Q와 상기 변형 패리티 검사 행렬 Ht 및 상기 순열 행렬 P가 곱해진 행렬인 (n-k) x n 크기를 갖는 Kpub(

Figure 112017116214580-pat00188
임)를 전자 서명에 대한 검증키로 저장하고 있고, 상기 평문 메시지 m과 상기 전자 서명 값
Figure 112017116214580-pat00189
및 상기 서명용 변수 is가 수신되면, 상기 전자 서명 값
Figure 112017116214580-pat00190
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인지 여부를 확인한 후 상기 전자 서명 값
Figure 112017116214580-pat00191
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인 것으로 확인되면, 상기 검증키 Kpub와 상기 서명용 변수 is에 기초하여 상기 전자 서명 값
Figure 112017116214580-pat00192
에 대한 검증을 수행할 수 있다.According to an embodiment of the present invention, the data receiving apparatus includes a memory for storing K pub (k) having a size of (nk) xn, which is a matrix obtained by multiplying the scrambling matrix Q by the modified parity check matrix H t and the permuted matrix P, (
Figure 112017116214580-pat00188
) As a verification key for an electronic signature, and the plaintext message m and the digital signature value
Figure 112017116214580-pat00189
And when the signature variable i s is received,
Figure 112017116214580-pat00190
Of the hamming weight is less than or equal to the predetermined hamming weight w,
Figure 112017116214580-pat00191
If the confirmed to be not more than the Hamming weight w The selection of a Hamming weight, based on the verification key K pub and the variable i for signing the electronic signature value s
Figure 112017116214580-pat00192
Can be performed.

이때, 본 발명의 일실시예에 따르면, 상기 데이터 수신 장치는 상기 메모리 상에 상기 해시 함수 h(x)를 추가로 저장하고 있고, 상기 평문 메시지 m과 상기 전자 서명 값

Figure 112017116214580-pat00193
및 상기 서명용 변수 is가 수신되면, 상기 전자 서명 값
Figure 112017116214580-pat00194
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인지 여부를 확인한 후 상기 전자 서명 값
Figure 112017116214580-pat00195
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인 것으로 확인되면, 상기 평문 메시지 m을 상기 메모리 상에 저장되어 있는 상기 해시 함수 h(x)에 입력으로 인가하여 상기 제1 해시 값 h(m)을 연산하고, 상기 제1 해시 값 h(m)이 연산되면, 상기 제1 해시 값 h(m)에 상기 서명용 변수 is에 대한 비트 값을 연접한 결과 값
Figure 112017116214580-pat00196
를 상기 해시 함수 h(x)에 입력으로 인가하여 검증용 해시 값인
Figure 112017116214580-pat00197
을 연산하며, 상기 검증키 Kpub에 상기 전자 서명 값
Figure 112017116214580-pat00198
을 곱한 결과 값인
Figure 112017116214580-pat00199
가 상기 검증용 해시 값인
Figure 112017116214580-pat00200
의 전치 행렬인
Figure 112017116214580-pat00201
와 일치하는지 비교하여 상기
Figure 112017116214580-pat00202
가 상기 검증용 해시 값
Figure 112017116214580-pat00203
의 전치 행렬인
Figure 112017116214580-pat00204
와 일치하는 것으로 판단되면, 상기 전자 서명 값
Figure 112017116214580-pat00205
에 대한 검증을 성공으로 판단할 수 있다.In this case, according to an embodiment of the present invention, the data receiving apparatus further stores the hash function h (x) on the memory, and the plaintext message m and the digital signature value
Figure 112017116214580-pat00193
And when the signature variable i s is received,
Figure 112017116214580-pat00194
Of the hamming weight is less than or equal to the predetermined hamming weight w,
Figure 112017116214580-pat00195
(M) is input as the input to the hash function h (x) stored on the memory, if it is determined that the hamming weight of the plaintext message m is equal to or less than the predetermined Hamming weight w (M) is a result of concatenating the bit value for the signature variable i s with the first hash value h (m)
Figure 112017116214580-pat00196
Is input to the hash function h (x) to generate a hash value for verification
Figure 112017116214580-pat00197
To the verification key K pub ,
Figure 112017116214580-pat00198
Lt; RTI ID = 0.0 >
Figure 112017116214580-pat00199
Is the verification hash value
Figure 112017116214580-pat00200
≪ / RTI >
Figure 112017116214580-pat00201
And then,
Figure 112017116214580-pat00202
The verification hash value
Figure 112017116214580-pat00203
≪ / RTI >
Figure 112017116214580-pat00204
The digital signature value < RTI ID = 0.0 >
Figure 112017116214580-pat00205
Can be judged to be successful.

본 발명의 일실시예에 따른 패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.An electronic signature method using an error recovery method based on a parity check matrix according to an embodiment of the present invention can be implemented by a computer program stored in a storage medium for execution through a combination with a computer.

또한, 본 발명의 일실시예에 따른 패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.In addition, an electronic signature method using an error recovery method based on a parity check matrix according to an embodiment of the present invention may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions recorded on the medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. As described above, the present invention has been described with reference to particular embodiments, such as specific elements, and specific embodiments and drawings. However, it should be understood that the present invention is not limited to the above- And various modifications and changes may be made thereto by those skilled in the art to which the present invention pertains.

따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.Accordingly, the spirit of the present invention should not be construed as being limited to the embodiments described, and all of the equivalents or equivalents of the claims, as well as the following claims, belong to the scope of the present invention .

110: 패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 장치
111: 개인키 저장부 112: 제1 해시 값 연산부
113: 신드롬 메시지 생성부 114: 선택부
115: 전자 서명부 116: 전자 서명 전송부
120: 데이터 수신 장치
110: Digital signature device using error recovery technique based on parity check matrix
111: Private key storage unit 112: First hash value operation unit
113: Syndrome message generation unit 114:
115: digital signature section 116: digital signature transmission section
120: Data receiving device

Claims (14)

리드-뮬러(Reed-Muller: RM) 코드로 구성된 (n-k) x n - n과 k는 자연수이고 n은 k보다 큼 - 크기의 선형 부호에 대한 패리티 검사 행렬 H, '1'과 '0'의 코드 값을 성분으로 포함하는 (n-k) x (n-k) 크기의 스크램블링 행렬 Q 및 '1'과 '0'의 코드 값을 성분으로 포함하는 n x n 크기의 순열 행렬 P가 저장되어 있는 개인키 저장부;
데이터 수신 장치로 전송할 평문 메시지 m을 선정된(predetermined) 해시 함수인 h(x) - 상기 해시 함수 h(x)는 입력 값을 (n-k) 비트 크기의 출력 값으로 변환시키는 일방향 함수임 - 에 입력으로 인가하여 제1 해시 값 h(m)을 연산하는 제1 해시 값 연산부;
상기 제1 해시 값 h(m)의 연산이 완료되면, 변수 i - 상기 변수 i는 '0'이상인 정수임 - 를 '0'부터 '1'씩 증가시키면서, 상기 제1 해시 값 h(m)에 상기 변수 i에 대한 비트 값을 연접한 결과 값
Figure 112017116214580-pat00206
를 상기 해시 함수 h(x)에 입력으로 인가하여 제2 해시 값인
Figure 112017116214580-pat00207
을 연산하고, 상기 제2 해시 값인
Figure 112017116214580-pat00208
의 전치 행렬인
Figure 112017116214580-pat00209
의 좌측 변에 상기 스크램블링 행렬 Q의 역행렬인 Q-1을 곱하여 신드롬 메시지 si -
Figure 112017116214580-pat00210
임 - 를 생성하는 신드롬 메시지 생성부;
상기 변수 i가 '0'을 시작으로 해서 '1'씩 증가되면서 상기 신드롬 메시지 si가 생성될 때마다, 각 변수 i에서의 상기 신드롬 메시지 si에 대해 상기 패리티 검사 행렬 H를 기초로 완전 복호화(Complete Decoding)를 수행하여
Figure 112017116214580-pat00211
- zT는 크기가 n인 벡터 z의 전치 행렬로 n x 1의 크기를 가짐 - 를 만족하는 zT를 연산한 후 zT의 해밍 무게(Hamming Weight)가 선정된 해밍 무게인 w 이하로 연산되는 시점에서의 변수 i를 서명용 변수 is로 선택함과 동시에 상기 서명용 변수 is에 대응하여 연산된 zT를 서명용 오류 벡터 zs T로 선택하는 선택부;
상기 서명용 오류 벡터 zs T의 좌측 변에 상기 순열 행렬 P의 역행렬인 P-1을 곱하여
Figure 112017116214580-pat00212
를 연산함으로써, 상기 연산된
Figure 112017116214580-pat00213
을 상기 평문 메시지 m에 대한 전자 서명 값으로 생성하는 전자 서명부; 및
상기 데이터 수신 장치에 대해 상기 평문 메시지 m과 상기 전자 서명 값
Figure 112017116214580-pat00214
및 상기 서명용 변수 is를 전송하는 전자 서명 전송부
를 포함하는 패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 장치.
The code of the parity check matrix H, '1' and '0' for (nk) xn - n and k composed of Reed - Muller (RM) codes is a natural number and n is a linear - A private key storage unit storing a scrambling matrix Q of size (nk) x (nk) including a value as an element and a permutation matrix P of nxn size including a code value of '1' and '0' as an element;
A plaintext message m to be transmitted to the data receiving apparatus is a predetermined hash function h (x) - the hash function h (x) is a one-way function for converting an input value into an output value of (nk) To calculate a first hash value h (m);
When the calculation of the first hash value h (m) is completed, the first hash value h (m) is incremented by 1 from the variable i - the variable i is an integer equal to or greater than 0 A result obtained by concatenating the bit values of the variable i
Figure 112017116214580-pat00206
Is applied as input to the hash function h (x) to obtain a second hash value < RTI ID = 0.0 >
Figure 112017116214580-pat00207
, And the second hash value
Figure 112017116214580-pat00208
≪ / RTI >
Figure 112017116214580-pat00209
The left side of the scrambling matrix Q is multiplied by the inverse matrix Q -1 of the scrambling matrix Q to obtain a syndrome message s i -
Figure 112017116214580-pat00210
A syndrome message generating unit for generating a syndrome message;
Each time as the variable i to "0" to start increasing by "1" is the syndrome message s i to be generated, full decoding on the basis of the parity check matrix H for the syndrome message s i for each variable i (Complete Decoding)
Figure 112017116214580-pat00211
- z T is a transpose of a vector z of size n and has a size of nx 1 - then computes z T , and then the Hamming Weight of z T is calculated to be less than or equal to the selected Hamming weight w Selecting a variable i at a time point as a signing variable i s and selecting z T computed corresponding to the signing variable i s as a signing error vector z s T ;
The left side of the signature error vector z s T is multiplied by the inverse matrix P -1 of the permutation matrix P
Figure 112017116214580-pat00212
, Thereby calculating
Figure 112017116214580-pat00213
As an electronic signature value for the plaintext message m; And
The plaintext message m and the digital signature value < RTI ID = 0.0 >
Figure 112017116214580-pat00214
And a transmission unit for transmitting the digital signature for signing the variable i s
And an error recovery method based on a parity check matrix including the parity check matrix.
제1항에 있어서,
상기 데이터 수신 장치는
메모리 상에 상기 스크램블링 행렬 Q와 상기 패리티 검사 행렬 H 및 상기 순열 행렬 P가 곱해진 행렬인 (n-k) x n 크기를 갖는 Kpub -
Figure 112017116214580-pat00215
임 - 를 전자 서명에 대한 검증키로 저장하고 있고, 상기 평문 메시지 m과 상기 전자 서명 값
Figure 112017116214580-pat00216
및 상기 서명용 변수 is가 수신되면, 상기 전자 서명 값
Figure 112017116214580-pat00217
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인지 여부를 확인한 후 상기 전자 서명 값
Figure 112017116214580-pat00218
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인 것으로 확인되면, 상기 검증키 Kpub와 상기 서명용 변수 is에 기초하여 상기 전자 서명 값
Figure 112017116214580-pat00219
에 대한 검증을 수행하는 패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 장치.
The method according to claim 1,
The data receiving apparatus
K pub having a matrix made of (nk) xn sizes the scrambling matrix Q and the parity check matrix H and the permutation matrix P is multiplied on the memory -
Figure 112017116214580-pat00215
, And stores the plaintext message m and the digital signature value < RTI ID = 0.0 >
Figure 112017116214580-pat00216
And when the signature variable i s is received,
Figure 112017116214580-pat00217
Of the hamming weight is less than or equal to the predetermined hamming weight w,
Figure 112017116214580-pat00218
If the confirmed to be not more than the Hamming weight w The selection of a Hamming weight, based on the verification key K pub and the variable i for signing the electronic signature value s
Figure 112017116214580-pat00219
Based on a parity check matrix for performing a verification on a parity check matrix.
제2항에 있어서,
상기 데이터 수신 장치는
상기 메모리 상에 상기 해시 함수 h(x)를 추가로 저장하고 있고, 상기 평문 메시지 m과 상기 전자 서명 값
Figure 112017116214580-pat00220
및 상기 서명용 변수 is가 수신되면, 상기 전자 서명 값
Figure 112017116214580-pat00221
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인지 여부를 확인한 후 상기 전자 서명 값
Figure 112017116214580-pat00222
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인 것으로 확인되면, 상기 평문 메시지 m을 상기 메모리 상에 저장되어 있는 상기 해시 함수 h(x)에 입력으로 인가하여 상기 제1 해시 값 h(m)을 연산하고,
상기 제1 해시 값 h(m)이 연산되면, 상기 제1 해시 값 h(m)에 상기 서명용 변수 is에 대한 비트 값을 연접한 결과 값
Figure 112017116214580-pat00223
를 상기 해시 함수 h(x)에 입력으로 인가하여 검증용 해시 값인
Figure 112017116214580-pat00224
을 연산하며,
상기 검증키 Kpub에 상기 전자 서명 값
Figure 112017116214580-pat00225
을 곱한 결과 값인
Figure 112017116214580-pat00226
가 상기 검증용 해시 값인
Figure 112017116214580-pat00227
의 전치 행렬인
Figure 112017116214580-pat00228
와 일치하는지 비교하여 상기
Figure 112017116214580-pat00229
가 상기 검증용 해시 값
Figure 112017116214580-pat00230
의 전치 행렬인
Figure 112017116214580-pat00231
와 일치하는 것으로 판단되면, 상기 전자 서명 값
Figure 112017116214580-pat00232
에 대한 검증을 성공으로 판단하는 패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 장치.
3. The method of claim 2,
The data receiving apparatus
Further storing the hash function h (x) on the memory, wherein the plaintext message m and the digital signature value
Figure 112017116214580-pat00220
And when the signature variable i s is received,
Figure 112017116214580-pat00221
Of the hamming weight is less than or equal to the predetermined hamming weight w,
Figure 112017116214580-pat00222
(M) is input as the input to the hash function h (x) stored on the memory, if it is determined that the hamming weight of the plaintext message m is equal to or less than the predetermined Hamming weight w And,
When the first hash value h (m) is calculated, a result value obtained by concatenating the bit value for the signature variable i s with the first hash value h (m)
Figure 112017116214580-pat00223
Is input to the hash function h (x) to generate a hash value for verification
Figure 112017116214580-pat00224
Lt; / RTI >
The verification key K pub may include the digital signature value
Figure 112017116214580-pat00225
Lt; RTI ID = 0.0 >
Figure 112017116214580-pat00226
Is the verification hash value
Figure 112017116214580-pat00227
≪ / RTI >
Figure 112017116214580-pat00228
And then,
Figure 112017116214580-pat00229
The verification hash value
Figure 112017116214580-pat00230
≪ / RTI >
Figure 112017116214580-pat00231
The digital signature value < RTI ID = 0.0 >
Figure 112017116214580-pat00232
Based on a parity check matrix for judging that the verification of the parity check matrix is successful.
리드-뮬러(Reed-Muller: RM) 코드로 구성된 (n-k) x n - n과 k는 자연수이고 n은 k보다 큼 - 크기의 선형 부호에 대한 패리티 검사 행렬 H, 상기 패리티 검사 행렬 H에서 복수의 선정된(predetermined) 제1 행들에 위치하는 성분들이 랜덤한 코드 값으로 치환되고, 복수의 선정된 제2 열들에 위치하는 성분들이 '0'의 코드 값으로 치환된 변형 패리티 검사 행렬 Ht, '1'과 '0'의 코드 값을 성분으로 포함하는 (n-k) x (n-k) 크기의 스크램블링 행렬 Q 및 '1'과 '0'의 코드 값을 성분으로 포함하는 n x n 크기의 순열 행렬 P가 저장되어 있는 개인키 저장부;
데이터 수신 장치로 전송할 평문 메시지 m을 선정된 해시 함수인 h(x) - 상기 해시 함수 h(x)는 입력 값을 (n-k) 비트 크기의 출력 값으로 변환시키는 일방향 함수임 - 에 입력으로 인가하여 제1 해시 값 h(m)을 연산하는 제1 해시 값 연산부;
상기 제1 해시 값 h(m)의 연산이 완료되면, 변수 i - 상기 변수 i는 '0'이상인 정수임 - 를 '0'부터 '1'씩 증가시키면서, 상기 제1 해시 값 h(m)에 상기 변수 i에 대한 비트 값을 연접한 결과 값
Figure 112017116214580-pat00233
를 상기 해시 함수 h(x)에 입력으로 인가하여 제2 해시 값인
Figure 112017116214580-pat00234
을 연산하고, 상기 제2 해시 값인
Figure 112017116214580-pat00235
의 전치 행렬인
Figure 112017116214580-pat00236
의 좌측 변에 상기 스크램블링 행렬 Q의 역행렬인 Q-1을 곱하여 신드롬 메시지 si -
Figure 112017116214580-pat00237
임 - 를 생성하는 신드롬 메시지 생성부;
상기 변수 i가 '0'을 시작으로 해서 '1'씩 증가되면서 상기 신드롬 메시지 si가 생성될 때마다, 각 변수 i에서의 상기 신드롬 메시지 si에 대해 상기 패리티 검사 행렬 H를 기초로 완전 복호화(Complete Decoding)를 수행하여
Figure 112017116214580-pat00238
- zT는 크기가 n인 벡터 z의 전치 행렬로 n x 1의 크기를 가짐 - 를 만족하는 zT를 연산하고, 상기 변형 패리티 검사 행렬 Ht에서 상기 복수의 선정된 제1 행들과 상기 복수의 선정된 제2 열들에 위치하는 코드 값에 기초하여 각 변수 i마다 연산되는 zT의 성분을 조작함으로써,
Figure 112017116214580-pat00239
를 만족하는 zt T를 검출한 후 zt T의 해밍 무게(Hamming Weight)가 선정된 해밍 무게인 w 이하로 검출되는 시점에서의 변수 i를 서명용 변수 is로 선택함과 동시에 상기 서명용 변수 is에 대응하여 검출된 zt T를 서명용 오류 벡터 zs T로 선택하는 선택부;
상기 서명용 오류 벡터 zs T의 좌측 변에 상기 순열 행렬 P의 역행렬인 P-1을 곱하여
Figure 112017116214580-pat00240
를 연산함으로써, 상기 연산된
Figure 112017116214580-pat00241
을 상기 평문 메시지 m에 대한 전자 서명 값으로 생성하는 전자 서명부; 및
상기 데이터 수신 장치에 대해 상기 평문 메시지 m과 상기 전자 서명 값
Figure 112017116214580-pat00242
및 상기 서명용 변수 is를 전송하는 전자 서명 전송부
를 포함하는 패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 장치.
(Nk) xn-n and k composed of Reed-Muller (RM) codes are natural numbers and n is a parity check matrix H for a linear code having a magnitude larger than k, The modified parity check matrix H t , '1' in which the components located in predetermined first rows are replaced with a random code value and the components located in a plurality of the selected second columns are replaced with code values of '0' (Nk) x (nk) sized scrambling matrix Q including code values of '0' and '0' as components and a permutation matrix P of size nxn containing the code values of '1' and '0' A private key storage unit;
The plaintext message m to be transmitted to the data receiving device is selected as a hash function h (x) - the hash function h (x) is input as an input to convert the input value into an output value of (nk) A first hash value calculator for calculating a first hash value h (m);
When the calculation of the first hash value h (m) is completed, the first hash value h (m) is incremented by 1 from the variable i - the variable i is an integer equal to or greater than 0 A result obtained by concatenating the bit values of the variable i
Figure 112017116214580-pat00233
Is applied as input to the hash function h (x) to obtain a second hash value < RTI ID = 0.0 >
Figure 112017116214580-pat00234
, And the second hash value
Figure 112017116214580-pat00235
≪ / RTI >
Figure 112017116214580-pat00236
The left side of the scrambling matrix Q is multiplied by the inverse matrix Q -1 of the scrambling matrix Q to obtain a syndrome message s i -
Figure 112017116214580-pat00237
A syndrome message generating unit for generating a syndrome message;
Each time as the variable i to "0" to start increasing by "1" is the syndrome message s i to be generated, full decoding on the basis of the parity check matrix H for the syndrome message s i for each variable i (Complete Decoding)
Figure 112017116214580-pat00238
- z T is a transpose of a vector z of size n and has a size of nx 1, and calculates z T in the modified parity check matrix H t by multiplying the plurality of selected first rows and the plurality By manipulating the components of z T computed for each variable i based on the code values located in the selected second columns,
Figure 112017116214580-pat00239
Z t T detected then z t T of the Hamming weight (Hamming Weight) the selection of a variable i at the time point is detected as a w less than the Hamming weight and at the same time select a i s signature variable the signing variable satisfying i in response to the detected signature s t z T error vector selection unit for selecting a z s T;
The left side of the signature error vector z s T is multiplied by the inverse matrix P -1 of the permutation matrix P
Figure 112017116214580-pat00240
, Thereby calculating
Figure 112017116214580-pat00241
As an electronic signature value for the plaintext message m; And
The plaintext message m and the digital signature value < RTI ID = 0.0 >
Figure 112017116214580-pat00242
And a transmission unit for transmitting the digital signature for signing the variable i s
And an error recovery method based on a parity check matrix including the parity check matrix.
제4항에 있어서,
상기 데이터 수신 장치는
메모리 상에 상기 스크램블링 행렬 Q와 상기 변형 패리티 검사 행렬 Ht 및 상기 순열 행렬 P가 곱해진 행렬인 (n-k) x n 크기를 갖는 Kpub -
Figure 112017116214580-pat00243
임 - 를 전자 서명에 대한 검증키로 저장하고 있고, 상기 평문 메시지 m과 상기 전자 서명 값
Figure 112017116214580-pat00244
및 상기 서명용 변수 is가 수신되면, 상기 전자 서명 값
Figure 112017116214580-pat00245
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인지 여부를 확인한 후 상기 전자 서명 값
Figure 112017116214580-pat00246
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인 것으로 확인되면, 상기 검증키 Kpub와 상기 서명용 변수 is에 기초하여 상기 전자 서명 값
Figure 112017116214580-pat00247
에 대한 검증을 수행하는 패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 장치.
5. The method of claim 4,
The data receiving apparatus
The scrambling matrix in a memory Q with the modified parity check matrix H t K pub and having a matrix of (nk) xn size made the permutation matrix P is multiplied -
Figure 112017116214580-pat00243
, And stores the plaintext message m and the digital signature value < RTI ID = 0.0 >
Figure 112017116214580-pat00244
And when the signature variable i s is received,
Figure 112017116214580-pat00245
Of the hamming weight is less than or equal to the predetermined hamming weight w,
Figure 112017116214580-pat00246
If the confirmed to be not more than the Hamming weight w The selection of a Hamming weight, based on the verification key K pub and the variable i for signing the electronic signature value s
Figure 112017116214580-pat00247
Based on a parity check matrix for performing a verification on a parity check matrix.
제5항에 있어서,
상기 데이터 수신 장치는
상기 메모리 상에 상기 해시 함수 h(x)를 추가로 저장하고 있고, 상기 평문 메시지 m과 상기 전자 서명 값
Figure 112017116214580-pat00248
및 상기 서명용 변수 is가 수신되면, 상기 전자 서명 값
Figure 112017116214580-pat00249
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인지 여부를 확인한 후 상기 전자 서명 값
Figure 112017116214580-pat00250
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인 것으로 확인되면, 상기 평문 메시지 m을 상기 메모리 상에 저장되어 있는 상기 해시 함수 h(x)에 입력으로 인가하여 상기 제1 해시 값 h(m)을 연산하고,
상기 제1 해시 값 h(m)이 연산되면, 상기 제1 해시 값 h(m)에 상기 서명용 변수 is에 대한 비트 값을 연접한 결과 값
Figure 112017116214580-pat00251
를 상기 해시 함수 h(x)에 입력으로 인가하여 검증용 해시 값인
Figure 112017116214580-pat00252
을 연산하며,
상기 검증키 Kpub에 상기 전자 서명 값
Figure 112017116214580-pat00253
을 곱한 결과 값인
Figure 112017116214580-pat00254
가 상기 검증용 해시 값인
Figure 112017116214580-pat00255
의 전치 행렬인
Figure 112017116214580-pat00256
와 일치하는지 비교하여 상기
Figure 112017116214580-pat00257
가 상기 검증용 해시 값
Figure 112017116214580-pat00258
의 전치 행렬인
Figure 112017116214580-pat00259
와 일치하는 것으로 판단되면, 상기 전자 서명 값
Figure 112017116214580-pat00260
에 대한 검증을 성공으로 판단하는 패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 장치.
6. The method of claim 5,
The data receiving apparatus
Further storing the hash function h (x) on the memory, wherein the plaintext message m and the digital signature value
Figure 112017116214580-pat00248
And when the signature variable i s is received,
Figure 112017116214580-pat00249
Of the hamming weight is less than or equal to the predetermined hamming weight w,
Figure 112017116214580-pat00250
(M) is input as the input to the hash function h (x) stored on the memory, if it is determined that the hamming weight of the plaintext message m is equal to or less than the predetermined Hamming weight w And,
When the first hash value h (m) is calculated, a result value obtained by concatenating the bit value for the signature variable i s with the first hash value h (m)
Figure 112017116214580-pat00251
Is input to the hash function h (x) to generate a hash value for verification
Figure 112017116214580-pat00252
Lt; / RTI >
The verification key K pub may include the digital signature value
Figure 112017116214580-pat00253
Lt; RTI ID = 0.0 >
Figure 112017116214580-pat00254
Is the verification hash value
Figure 112017116214580-pat00255
≪ / RTI >
Figure 112017116214580-pat00256
And then,
Figure 112017116214580-pat00257
The verification hash value
Figure 112017116214580-pat00258
≪ / RTI >
Figure 112017116214580-pat00259
The digital signature value < RTI ID = 0.0 >
Figure 112017116214580-pat00260
Based on a parity check matrix for judging that the verification of the parity check matrix is successful.
리드-뮬러(Reed-Muller: RM) 코드로 구성된 (n-k) x n - n과 k는 자연수이고 n은 k보다 큼 - 크기의 선형 부호에 대한 패리티 검사 행렬 H, '1'과 '0'의 코드 값을 성분으로 포함하는 (n-k) x (n-k) 크기의 스크램블링 행렬 Q 및 '1'과 '0'의 코드 값을 성분으로 포함하는 n x n 크기의 순열 행렬 P가 저장되어 있는 개인키 저장부를 유지하는 단계;
데이터 수신 장치로 전송할 평문 메시지 m을 선정된(predetermined) 해시 함수인 h(x) - 상기 해시 함수 h(x)는 입력 값을 (n-k) 비트 크기의 출력 값으로 변환시키는 일방향 함수임 - 에 입력으로 인가하여 제1 해시 값 h(m)을 연산하는 단계;
상기 제1 해시 값 h(m)의 연산이 완료되면, 변수 i - 상기 변수 i는 '0'이상인 정수임 - 를 '0'부터 '1'씩 증가시키면서, 상기 제1 해시 값 h(m)에 상기 변수 i에 대한 비트 값을 연접한 결과 값
Figure 112017116214580-pat00261
를 상기 해시 함수 h(x)에 입력으로 인가하여 제2 해시 값인
Figure 112017116214580-pat00262
을 연산하고, 상기 제2 해시 값인
Figure 112017116214580-pat00263
의 전치 행렬인
Figure 112017116214580-pat00264
의 좌측 변에 상기 스크램블링 행렬 Q의 역행렬인 Q-1을 곱하여 신드롬 메시지 si -
Figure 112017116214580-pat00265
임 - 를 생성하는 단계;
상기 변수 i가 '0'을 시작으로 해서 '1'씩 증가되면서 상기 신드롬 메시지 si가 생성될 때마다, 각 변수 i에서의 상기 신드롬 메시지 si에 대해 상기 패리티 검사 행렬 H를 기초로 완전 복호화(Complete Decoding)를 수행하여
Figure 112017116214580-pat00266
- zT는 크기가 n인 벡터 z의 전치 행렬로 n x 1의 크기를 가짐 - 를 만족하는 zT를 연산한 후 zT의 해밍 무게(Hamming Weight)가 선정된 해밍 무게인 w 이하로 연산되는 시점에서의 변수 i를 서명용 변수 is로 선택함과 동시에 상기 서명용 변수 is에 대응하여 연산된 zT를 서명용 오류 벡터 zs T로 선택하는 단계;
상기 서명용 오류 벡터 zs T의 좌측 변에 상기 순열 행렬 P의 역행렬인 P-1을 곱하여
Figure 112017116214580-pat00267
를 연산함으로써, 상기 연산된
Figure 112017116214580-pat00268
을 상기 평문 메시지 m에 대한 전자 서명 값으로 생성하는 단계; 및
상기 데이터 수신 장치에 대해 상기 평문 메시지 m과 상기 전자 서명 값
Figure 112017116214580-pat00269
및 상기 서명용 변수 is를 전송하는 단계
를 포함하는 패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 방법.
The code of the parity check matrix H, '1' and '0' for (nk) xn - n and k composed of Reed - Muller (RM) codes is a natural number and n is a linear - (Nk) size scrambling matrix Q containing (nk) x (nk) values as elements and a permutation matrix P of size nxn containing the code values of '1' and '0'step;
A plaintext message m to be transmitted to the data receiving apparatus is a predetermined hash function h (x) - the hash function h (x) is a one-way function for converting an input value into an output value of (nk) To calculate a first hash value h (m);
When the calculation of the first hash value h (m) is completed, the first hash value h (m) is incremented by 1 from the variable i - the variable i is an integer equal to or greater than 0 A result obtained by concatenating the bit values of the variable i
Figure 112017116214580-pat00261
Is applied as input to the hash function h (x) to obtain a second hash value < RTI ID = 0.0 >
Figure 112017116214580-pat00262
, And the second hash value
Figure 112017116214580-pat00263
≪ / RTI >
Figure 112017116214580-pat00264
The left side of the scrambling matrix Q is multiplied by the inverse matrix Q -1 of the scrambling matrix Q to obtain a syndrome message s i -
Figure 112017116214580-pat00265
Generating an impulse;
Each time as the variable i to "0" to start increasing by "1" is the syndrome message s i to be generated, full decoding on the basis of the parity check matrix H for the syndrome message s i for each variable i (Complete Decoding)
Figure 112017116214580-pat00266
- z T is a transpose of a vector z of size n and has a size of nx 1 - then computes z T , and then the Hamming Weight of z T is calculated to be less than or equal to the selected Hamming weight w Selecting a variable i at a time point as a signing variable i s and simultaneously selecting z T computed corresponding to the signing variable i s as a signing error vector z s T ;
The left side of the signature error vector z s T is multiplied by the inverse matrix P -1 of the permutation matrix P
Figure 112017116214580-pat00267
, Thereby calculating
Figure 112017116214580-pat00268
As an electronic signature value for the plaintext message m; And
The plaintext message m and the digital signature value < RTI ID = 0.0 >
Figure 112017116214580-pat00269
And transmitting the signature variable i s
And an error recovery method based on a parity check matrix including the parity check matrix.
제7항에 있어서,
상기 데이터 수신 장치는
메모리 상에 상기 스크램블링 행렬 Q와 상기 패리티 검사 행렬 H 및 상기 순열 행렬 P가 곱해진 행렬인 (n-k) x n 크기를 갖는 Kpub -
Figure 112017116214580-pat00270
임 - 를 전자 서명에 대한 검증키로 저장하고 있고, 상기 평문 메시지 m과 상기 전자 서명 값
Figure 112017116214580-pat00271
및 상기 서명용 변수 is가 수신되면, 상기 전자 서명 값
Figure 112017116214580-pat00272
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인지 여부를 확인한 후 상기 전자 서명 값
Figure 112017116214580-pat00273
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인 것으로 확인되면, 상기 검증키 Kpub와 상기 서명용 변수 is에 기초하여 상기 전자 서명 값
Figure 112017116214580-pat00274
에 대한 검증을 수행하는 패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 방법.
8. The method of claim 7,
The data receiving apparatus
K pub having a matrix made of (nk) xn sizes the scrambling matrix Q and the parity check matrix H and the permutation matrix P is multiplied on the memory -
Figure 112017116214580-pat00270
, And stores the plaintext message m and the digital signature value < RTI ID = 0.0 >
Figure 112017116214580-pat00271
And when the signature variable i s is received,
Figure 112017116214580-pat00272
Of the hamming weight is less than or equal to the predetermined hamming weight w,
Figure 112017116214580-pat00273
If the confirmed to be not more than the Hamming weight w The selection of a Hamming weight, based on the verification key K pub and the variable i for signing the electronic signature value s
Figure 112017116214580-pat00274
Based on a parity check matrix for performing a verification on the parity check matrix.
제8항에 있어서,
상기 데이터 수신 장치는
상기 메모리 상에 상기 해시 함수 h(x)를 추가로 저장하고 있고, 상기 평문 메시지 m과 상기 전자 서명 값
Figure 112017116214580-pat00275
및 상기 서명용 변수 is가 수신되면, 상기 전자 서명 값
Figure 112017116214580-pat00276
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인지 여부를 확인한 후 상기 전자 서명 값
Figure 112017116214580-pat00277
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인 것으로 확인되면, 상기 평문 메시지 m을 상기 메모리 상에 저장되어 있는 상기 해시 함수 h(x)에 입력으로 인가하여 상기 제1 해시 값 h(m)을 연산하고,
상기 제1 해시 값 h(m)이 연산되면, 상기 제1 해시 값 h(m)에 상기 서명용 변수 is에 대한 비트 값을 연접한 결과 값
Figure 112017116214580-pat00278
를 상기 해시 함수 h(x)에 입력으로 인가하여 검증용 해시 값인
Figure 112017116214580-pat00279
을 연산하며,
상기 검증키 Kpub에 상기 전자 서명 값
Figure 112017116214580-pat00280
을 곱한 결과 값인
Figure 112017116214580-pat00281
가 상기 검증용 해시 값인
Figure 112017116214580-pat00282
의 전치 행렬인
Figure 112017116214580-pat00283
와 일치하는지 비교하여 상기
Figure 112017116214580-pat00284
가 상기 검증용 해시 값
Figure 112017116214580-pat00285
의 전치 행렬인
Figure 112017116214580-pat00286
와 일치하는 것으로 판단되면, 상기 전자 서명 값
Figure 112017116214580-pat00287
에 대한 검증을 성공으로 판단하는 패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 방법.
9. The method of claim 8,
The data receiving apparatus
Further storing the hash function h (x) on the memory, wherein the plaintext message m and the digital signature value
Figure 112017116214580-pat00275
And when the signature variable i s is received,
Figure 112017116214580-pat00276
Of the hamming weight is less than or equal to the predetermined hamming weight w,
Figure 112017116214580-pat00277
(M) is input as the input to the hash function h (x) stored on the memory, if it is determined that the hamming weight of the plaintext message m is equal to or less than the predetermined Hamming weight w And,
When the first hash value h (m) is calculated, a result value obtained by concatenating the bit value for the signature variable i s with the first hash value h (m)
Figure 112017116214580-pat00278
Is input to the hash function h (x) to generate a hash value for verification
Figure 112017116214580-pat00279
Lt; / RTI >
The verification key K pub may include the digital signature value
Figure 112017116214580-pat00280
Lt; RTI ID = 0.0 >
Figure 112017116214580-pat00281
Is the verification hash value
Figure 112017116214580-pat00282
≪ / RTI >
Figure 112017116214580-pat00283
And then,
Figure 112017116214580-pat00284
The verification hash value
Figure 112017116214580-pat00285
≪ / RTI >
Figure 112017116214580-pat00286
The digital signature value < RTI ID = 0.0 >
Figure 112017116214580-pat00287
Based on a parity check matrix for determining that the verification of the digital signature is successful.
리드-뮬러(Reed-Muller: RM) 코드로 구성된 (n-k) x n - n과 k는 자연수이고 n은 k보다 큼 - 크기의 선형 부호에 대한 패리티 검사 행렬 H, 상기 패리티 검사 행렬 H에서 복수의 선정된(predetermined) 제1 행들에 위치하는 성분들이 랜덤한 코드 값으로 치환되고, 복수의 선정된 제2 열들에 위치하는 성분들이 '0'의 코드 값으로 치환된 변형 패리티 검사 행렬 Ht, '1'과 '0'의 코드 값을 성분으로 포함하는 (n-k) x (n-k) 크기의 스크램블링 행렬 Q 및 '1'과 '0'의 코드 값을 성분으로 포함하는 n x n 크기의 순열 행렬 P가 저장되어 있는 개인키 저장부를 유지하는 단계;
데이터 수신 장치로 전송할 평문 메시지 m을 선정된 해시 함수인 h(x) - 상기 해시 함수 h(x)는 입력 값을 (n-k) 비트 크기의 출력 값으로 변환시키는 일방향 함수임 - 에 입력으로 인가하여 제1 해시 값 h(m)을 연산하는 단계;
상기 제1 해시 값 h(m)의 연산이 완료되면, 변수 i - 상기 변수 i는 '0'이상인 정수임 - 를 '0'부터 '1'씩 증가시키면서, 상기 제1 해시 값 h(m)에 상기 변수 i에 대한 비트 값을 연접한 결과 값
Figure 112017116214580-pat00288
를 상기 해시 함수 h(x)에 입력으로 인가하여 제2 해시 값인
Figure 112017116214580-pat00289
을 연산하고, 상기 제2 해시 값인
Figure 112017116214580-pat00290
의 전치 행렬인
Figure 112017116214580-pat00291
의 좌측 변에 상기 스크램블링 행렬 Q의 역행렬인 Q-1을 곱하여 신드롬 메시지 si -
Figure 112017116214580-pat00292
임 - 를 생성하는 단계;
상기 변수 i가 '0'을 시작으로 해서 '1'씩 증가되면서 상기 신드롬 메시지 si가 생성될 때마다, 각 변수 i에서의 상기 신드롬 메시지 si에 대해 상기 패리티 검사 행렬 H를 기초로 완전 복호화(Complete Decoding)를 수행하여
Figure 112017116214580-pat00293
- zT는 크기가 n인 벡터 z의 전치 행렬로 n x 1의 크기를 가짐 - 를 만족하는 zT를 연산하고, 상기 변형 패리티 검사 행렬 Ht에서 상기 복수의 선정된 제1 행들과 상기 복수의 선정된 제2 열들에 위치하는 코드 값에 기초하여 각 변수 i마다 연산되는 zT의 성분을 조작함으로써,
Figure 112017116214580-pat00294
를 만족하는 zt T를 검출한 후 zt T의 해밍 무게(Hamming Weight)가 선정된 해밍 무게인 w 이하로 검출되는 시점에서의 변수 i를 서명용 변수 is로 선택함과 동시에 상기 서명용 변수 is에 대응하여 검출된 zt T를 서명용 오류 벡터 zs T로 선택하는 단계;
상기 서명용 오류 벡터 zs T의 좌측 변에 상기 순열 행렬 P의 역행렬인 P-1을 곱하여
Figure 112017116214580-pat00295
를 연산함으로써, 상기 연산된
Figure 112017116214580-pat00296
을 상기 평문 메시지 m에 대한 전자 서명 값으로 생성하는 단계; 및
상기 데이터 수신 장치에 대해 상기 평문 메시지 m과 상기 전자 서명 값
Figure 112017116214580-pat00297
및 상기 서명용 변수 is를 전송하는 단계
를 포함하는 패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 방법.
(Nk) xn-n and k composed of Reed-Muller (RM) codes are natural numbers and n is a parity check matrix H for a linear code having a magnitude larger than k, The modified parity check matrix H t , '1' in which the components located in predetermined first rows are replaced with a random code value and the components located in a plurality of the selected second columns are replaced with code values of '0' (Nk) x (nk) sized scrambling matrix Q including code values of '0' and '0' as components and a permutation matrix P of size nxn containing the code values of '1' and '0' Maintaining a private key store;
The plaintext message m to be transmitted to the data receiving device is selected as a hash function h (x) - the hash function h (x) is input as an input to convert the input value into an output value of (nk) Computing a first hash value h (m);
When the calculation of the first hash value h (m) is completed, the first hash value h (m) is incremented by 1 from the variable i - the variable i is an integer equal to or greater than 0 A result obtained by concatenating the bit values of the variable i
Figure 112017116214580-pat00288
Is applied as input to the hash function h (x) to obtain a second hash value < RTI ID = 0.0 >
Figure 112017116214580-pat00289
, And the second hash value
Figure 112017116214580-pat00290
≪ / RTI >
Figure 112017116214580-pat00291
The left side of the scrambling matrix Q is multiplied by the inverse matrix Q -1 of the scrambling matrix Q to obtain a syndrome message s i -
Figure 112017116214580-pat00292
Generating an impulse;
Each time as the variable i to "0" to start increasing by "1" is the syndrome message s i to be generated, full decoding on the basis of the parity check matrix H for the syndrome message s i for each variable i (Complete Decoding)
Figure 112017116214580-pat00293
- z T is a transpose of a vector z of size n and has a size of nx 1, and calculates z T in the modified parity check matrix H t by multiplying the plurality of selected first rows and the plurality By manipulating the components of z T computed for each variable i based on the code values located in the selected second columns,
Figure 112017116214580-pat00294
Z t T detected then z t T of the Hamming weight (Hamming Weight) the selection of a variable i at the time point is detected as a w less than the Hamming weight and at the same time select a i s signature variable the signing variable satisfying i in response to the detected signature s t z T error vector selecting a z s T;
The left side of the signature error vector z s T is multiplied by the inverse matrix P -1 of the permutation matrix P
Figure 112017116214580-pat00295
, Thereby calculating
Figure 112017116214580-pat00296
As an electronic signature value for the plaintext message m; And
The plaintext message m and the digital signature value < RTI ID = 0.0 >
Figure 112017116214580-pat00297
And transmitting the signature variable i s
And an error recovery method based on a parity check matrix including the parity check matrix.
제10항에 있어서,
상기 데이터 수신 장치는
메모리 상에 상기 스크램블링 행렬 Q와 상기 변형 패리티 검사 행렬 Ht 및 상기 순열 행렬 P가 곱해진 행렬인 (n-k) x n 크기를 갖는 Kpub -
Figure 112017116214580-pat00298
임 - 를 전자 서명에 대한 검증키로 저장하고 있고, 상기 평문 메시지 m과 상기 전자 서명 값
Figure 112017116214580-pat00299
및 상기 서명용 변수 is가 수신되면, 상기 전자 서명 값
Figure 112017116214580-pat00300
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인지 여부를 확인한 후 상기 전자 서명 값
Figure 112017116214580-pat00301
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인 것으로 확인되면, 상기 검증키 Kpub와 상기 서명용 변수 is에 기초하여 상기 전자 서명 값
Figure 112017116214580-pat00302
에 대한 검증을 수행하는 패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 방법.
11. The method of claim 10,
The data receiving apparatus
The scrambling matrix in a memory Q with the modified parity check matrix H t K pub and having a matrix of (nk) xn size made the permutation matrix P is multiplied -
Figure 112017116214580-pat00298
, And stores the plaintext message m and the digital signature value < RTI ID = 0.0 >
Figure 112017116214580-pat00299
And when the signature variable i s is received,
Figure 112017116214580-pat00300
Of the hamming weight is less than or equal to the predetermined hamming weight w,
Figure 112017116214580-pat00301
If the confirmed to be not more than the Hamming weight w The selection of a Hamming weight, based on the verification key K pub and the variable i for signing the electronic signature value s
Figure 112017116214580-pat00302
Based on a parity check matrix for performing a verification on the parity check matrix.
제11항에 있어서,
상기 데이터 수신 장치는
상기 메모리 상에 상기 해시 함수 h(x)를 추가로 저장하고 있고, 상기 평문 메시지 m과 상기 전자 서명 값
Figure 112017116214580-pat00303
및 상기 서명용 변수 is가 수신되면, 상기 전자 서명 값
Figure 112017116214580-pat00304
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인지 여부를 확인한 후 상기 전자 서명 값
Figure 112017116214580-pat00305
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인 것으로 확인되면, 상기 평문 메시지 m을 상기 메모리 상에 저장되어 있는 상기 해시 함수 h(x)에 입력으로 인가하여 상기 제1 해시 값 h(m)을 연산하고,
상기 제1 해시 값 h(m)이 연산되면, 상기 제1 해시 값 h(m)에 상기 서명용 변수 is에 대한 비트 값을 연접한 결과 값
Figure 112017116214580-pat00306
를 상기 해시 함수 h(x)에 입력으로 인가하여 검증용 해시 값인
Figure 112017116214580-pat00307
을 연산하며,
상기 검증키 Kpub에 상기 전자 서명 값
Figure 112017116214580-pat00308
을 곱한 결과 값인
Figure 112017116214580-pat00309
가 상기 검증용 해시 값인
Figure 112017116214580-pat00310
의 전치 행렬인
Figure 112017116214580-pat00311
와 일치하는지 비교하여 상기
Figure 112017116214580-pat00312
가 상기 검증용 해시 값
Figure 112017116214580-pat00313
의 전치 행렬인
Figure 112017116214580-pat00314
와 일치하는 것으로 판단되면, 상기 전자 서명 값
Figure 112017116214580-pat00315
에 대한 검증을 성공으로 판단하는 패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 방법.
12. The method of claim 11,
The data receiving apparatus
Further storing the hash function h (x) on the memory, wherein the plaintext message m and the digital signature value
Figure 112017116214580-pat00303
And when the signature variable i s is received,
Figure 112017116214580-pat00304
Of the hamming weight is less than or equal to the predetermined hamming weight w,
Figure 112017116214580-pat00305
(M) is input as the input to the hash function h (x) stored on the memory, if it is determined that the hamming weight of the plaintext message m is equal to or less than the predetermined Hamming weight w And,
When the first hash value h (m) is calculated, a result value obtained by concatenating the bit value for the signature variable i s with the first hash value h (m)
Figure 112017116214580-pat00306
Is input to the hash function h (x) to generate a hash value for verification
Figure 112017116214580-pat00307
Lt; / RTI >
The verification key K pub may include the digital signature value
Figure 112017116214580-pat00308
Lt; RTI ID = 0.0 >
Figure 112017116214580-pat00309
Is the verification hash value
Figure 112017116214580-pat00310
≪ / RTI >
Figure 112017116214580-pat00311
And then,
Figure 112017116214580-pat00312
The verification hash value
Figure 112017116214580-pat00313
≪ / RTI >
Figure 112017116214580-pat00314
The digital signature value < RTI ID = 0.0 >
Figure 112017116214580-pat00315
Based on a parity check matrix for determining that the verification of the digital signature is successful.
제7항 내지 제12항 중 어느 한 항의 방법을 컴퓨터로 하여금 수행하도록 하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.A computer-readable recording medium storing a program for causing a computer to perform the method according to any one of claims 7 to 12. 제7항 내지 제12항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램.13. A computer program stored in a storage medium for executing the method of any one of claims 7 to 12 through a combination with a computer.
KR1020170156149A 2017-11-22 2017-11-22 Electronic signature apparatus and method using an error recovery scheme based on a parity check matrix KR102001407B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170156149A KR102001407B1 (en) 2017-11-22 2017-11-22 Electronic signature apparatus and method using an error recovery scheme based on a parity check matrix

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170156149A KR102001407B1 (en) 2017-11-22 2017-11-22 Electronic signature apparatus and method using an error recovery scheme based on a parity check matrix

Publications (2)

Publication Number Publication Date
KR20190058834A KR20190058834A (en) 2019-05-30
KR102001407B1 true KR102001407B1 (en) 2019-07-18

Family

ID=66675632

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170156149A KR102001407B1 (en) 2017-11-22 2017-11-22 Electronic signature apparatus and method using an error recovery scheme based on a parity check matrix

Country Status (1)

Country Link
KR (1) KR102001407B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102258955B1 (en) * 2019-06-10 2021-06-01 주식회사 다날핀테크 Payment service apparatus for supporting payment processing based on virtual currency along with pos terminal at offline merchant and operating method thereof

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007113888A1 (en) 2006-03-31 2007-10-11 Universita' Degli Studi Di Milano Method for generating and verifying security information obtained by means of biometric readings
KR101593673B1 (en) 2014-08-29 2016-02-15 고려대학교 산학협력단 Method and Apparatus for generating encrypted signature based lattices, Method and Apparatus for restoring encrypted signature based lattices

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040036460A (en) * 2002-10-26 2004-04-30 삼성전자주식회사 LDPC decoding apparatus and method
KR100594818B1 (en) * 2004-04-13 2006-07-03 한국전자통신연구원 A Decoding Apparatus of Low-Density Parity-Check Codes Using Sequential Decoding, and a method thereof
KR20170075200A (en) * 2015-12-23 2017-07-03 성신여자대학교 산학협력단 Apparatus for encoding and decoding using low density parity check codes, method thereof and computer recordable medium storing the method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007113888A1 (en) 2006-03-31 2007-10-11 Universita' Degli Studi Di Milano Method for generating and verifying security information obtained by means of biometric readings
KR101593673B1 (en) 2014-08-29 2016-02-15 고려대학교 산학협력단 Method and Apparatus for generating encrypted signature based lattices, Method and Apparatus for restoring encrypted signature based lattices

Also Published As

Publication number Publication date
KR20190058834A (en) 2019-05-30

Similar Documents

Publication Publication Date Title
JP5564434B2 (en) Methods and entities for probabilistic symmetric encryption
US7933905B2 (en) Universal-hash-function-family calculation unit and shared-key generation system
Gaborit et al. Lightweight code-based identification and signature
Wang Quantum resistant random linear code based public key encryption scheme RLCE
KR101913100B1 (en) Data encryption apparatus and method using an encryption key based on puncturing of a generator matrix
KR101942030B1 (en) Electronic device for performing code-based encryption supporting integrity verification of a message and operating method thereof
KR101913644B1 (en) Code-based encryption apparatus and method capable of message authentication
Kuznetsov et al. New approach to the implementation of post-quantum digital signature scheme
CN102449951A (en) Method for performing a cryptographic task in an electronic component
KR102211648B1 (en) Electronic device capable of data communication through electronic signatures based on syndrome and operating method thereof
KR101873881B1 (en) Digital signature apparatus and method with enhanced data security
KR102001407B1 (en) Electronic signature apparatus and method using an error recovery scheme based on a parity check matrix
Kobara et al. On the one-wayness against chosen-plaintext attacks of the Loidreau's modified McEliece PKC
KR20210133801A (en) Method for doing quantum-resistant signature based on Ring-LWR and system thereof
KR101978684B1 (en) Code-based encryption apparatus and method capable of preventing replay attack
EP2991266B1 (en) Encrypted text matching system, method, and computer readable medium
Kim et al. PALOMA: binary separable Goppa-based KEM
US20150281256A1 (en) Batch verification method and apparatus thereof
KR20030070733A (en) Digital signature method using RSA public-key cryptographic based on CRT and apparatus therefor
Samokhina et al. Code-based cryptosystems evolution
CN112613078A (en) Document electronic signature method, signature verification method and device
Roering Coding theory-based cryptopraphy: McEliece cryptosystems in Sage
KR20100039048A (en) Method and apparatus of digital signature using crt-rsa modula exponentiation algorithm against fault attacks, and recording medium using it
WO2011033642A1 (en) Signature generation device and signature verification device
Khan et al. Modified Niederreiter type of GPT cryptosystem based on reducible rank codes

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right