KR102211648B1 - 신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치 및 그 동작 방법 - Google Patents

신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치 및 그 동작 방법 Download PDF

Info

Publication number
KR102211648B1
KR102211648B1 KR1020190027031A KR20190027031A KR102211648B1 KR 102211648 B1 KR102211648 B1 KR 102211648B1 KR 1020190027031 A KR1020190027031 A KR 1020190027031A KR 20190027031 A KR20190027031 A KR 20190027031A KR 102211648 B1 KR102211648 B1 KR 102211648B1
Authority
KR
South Korea
Prior art keywords
matrix
value
syndrome
signature
electronic signature
Prior art date
Application number
KR1020190027031A
Other languages
English (en)
Other versions
KR20200107621A (ko
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 KR1020190027031A priority Critical patent/KR102211648B1/ko
Priority to US16/699,097 priority patent/US11128475B2/en
Publication of KR20200107621A publication Critical patent/KR20200107621A/ko
Application granted granted Critical
Publication of KR102211648B1 publication Critical patent/KR102211648B1/ko

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/11Error 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 using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • 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
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/304Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy based on error correction codes, e.g. McEliece
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/34Encoding or coding, e.g. Huffman coding or error correction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

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

Abstract

본 발명은 데이터 수신 장치에 전송할 메시지를 기초로 임의의 신드롬 데이터를 생성한 후 패리티 검사 행렬을 이용하여 상기 신드롬 데이터로부터 전자 서명용 오류 벡터를 검출한 후 상기 전자 서명용 오류 벡터를 기초로 전자 서명 값을 생성하여 상기 데이터 수신 장치로 전송함으로써, 기존의 비대칭키 기반의 전자 서명 기법과 전혀 다른 알고리즘에 따른 전자 서명 기법을 제공할 수 있다.

Description

신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치 및 그 동작 방법{ELECTRONIC DEVICE CAPABLE OF DATA COMMUNICATION THROUGH ELECTRONIC SIGNATURES BASED ON SYNDROME AND OPERATING METHOD THEREOF}
본 발명은 비대칭키 기반의 전자 서명 시스템에 활용될 수 있는 기술들과 관련된다.
최근, 인터넷이 널리 보급됨에 따라, 온라인을 이용한 뱅킹 서비스나 결제 시스템의 도입이 활발하게 이루어지고 있다.
이러한 온라인 뱅킹 서비스나 결제 시스템에서는 계좌 이체나 전자 결제를 하고자 하는 진정한 사람으로부터 계좌 이체 또는 전자 결제 요청이 있는지 여부를 정확하게 판단해야 할 필요가 있다.
예컨대, A라는 사용자가 온라인 뱅킹 서비스를 통해서 B라는 사용자에게 계좌 이체를 한다고 했을 때, 온라인 뱅킹 서비스를 제공하는 시스템에서는 해당 계좌 이체 요청이 A라는 사용자에 의해서 정말로 이루어진 것인지를 확인해야 할 필요가 있다.
보통, 일반적인 온라인 뱅킹 서비스나 결제 시스템에서 도입하고 있는 사용자 확인 서비스는 공개키 기반의 암호화 방식(Public Key Infrastructure: PKI)을 이용한 전자 서명 시스템이 주를 이루고 있다.
공개키 기반의 암호화 방식의 전자 서명 시스템이란 메시지를 전달하는 측에서 해당 메시지에 대한 해시 값에 대해 자신의 개인키로 암호화를 수행하여 전자 서명 값을 생성한 후 해당 메시지와 상기 전자 서명 값을 메시지 수신측에 전달하면, 메시지 수신측에서 상기 개인키에 대응하는 공개키로 상기 전자 서명 값을 복호화하고, 메시지 전송측으로부터 수신한 상기 메시지에 대한 해시 값을 연산한 후 상기 공개키로 복호화한 값과 상기 메시지에 대한 해시 값을 비교하여 두 값이 서로 동일한 것으로 판단되면, 메시지 전송측으로부터 수신된 상기 전자 서명 값이 상기 메시지 전송측의 개인키에 의해서 정말로 암호화된 값임이 입증됨에 따라, 상기 메시지가 진정한 메시지 전송측으로부터 전달된 메시지임을 확인하는 시스템이다.
이러한 공개키 기반의 암호화 방식의 전자 서명 시스템은 일반적으로 널리 알려진 DH(Diffie-Hellman) 알고리즘에 따른 키교환 방식 등을 활용해서, 개인키와 이에 대응하는 공개키를 생성한 후 상기 개인키로 전자 서명 값을 생성하고, 상기 공개키로 상기 전자 서명 값을 검증하는 형태로 운영되고 있다.
이러한 기존의 전자 서명 생성 및 검증 알고리즘은 이미 관련 업계에서 널리 사용되고 있다는 점에서 전자 서명의 위변조 가능성이 높아 보안상 취약성을 가지고 있다.
따라서, 기존의 전자 서명 생성 및 검증 알고리즘과 다른 새로운 방식의 전자 서명 생성 및 검증 알고리즘에 대한 연구가 필요하다.
1. Y. S. Han, S.-W. Fu, and P.-N. Chen, "A new step-by-step complete decoding algorithm for binary cyclic codes," in Signals and Systems (ICSigSys), 2017 International Conference on, 2017, pp. 123-127: IEEE.(2017년 5월 공개) 2. J. van der Horst and T. Berger, "Complete decoding of triple-error-correcting binary BCH codes," IEEE Transactions on Information Theory, vol. 22, no. 2, pp. 138-147, 1976.(1976년 3월 공개)
본 발명은 데이터 수신 장치에 전송할 메시지를 기초로 임의의 신드롬 데이터를 생성한 후 패리티 검사 행렬을 이용하여 상기 신드롬 데이터로부터 전자 서명용 오류 벡터를 검출한 후 상기 전자 서명용 오류 벡터를 기초로 전자 서명 값을 생성하여 상기 데이터 수신 장치로 전송함으로써, 기존의 비대칭키 기반의 전자 서명 기법과 전혀 다른 알고리즘에 따른 전자 서명 기법을 제공하고자 한다.
본 발명의 일실시예에 따른 신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치는 리드-뮬러(Reed-Muller: RM) 코드로 구성된 (n-k) x n - n과 k는 자연수이고 n은 k보다 큼 - 크기의 선형 부호에 대한 패리티 검사 행렬 H, '1'과 '0'의 코드 값을 성분으로 포함하는 (n-k) x (n-k) 크기의 가역 행렬 S 및 '1'과 '0'의 코드 값을 성분으로 포함하는 n x n 크기의 순열 행렬 Q가 전자 서명을 위한 개인키로 저장되어 있는 개인키 저장부, 데이터 수신 장치로 전송할 평문 메시지 m과 상기 가역 행렬 S에 기초하여, 신드롬(syndrome)으로 사용될 신드롬 데이터 si를 생성하는 신드롬 데이터 생성부, 상기 패리티 검사 행렬 H를 기초로 상기 신드롬 데이터 si에 대해 오류 검출을 위한 신드롬 디코딩(Syndrome Decoding)을 수행하여 서명용 오류 벡터 es T를 생성하는 오류 벡터 생성부, 상기 서명용 오류 벡터 es T의 좌측 변에 상기 순열 행렬 Q의 역행렬인 Q-1을 곱하여
Figure 112019024167824-pat00001
를 연산함으로써, 상기 연산된
Figure 112019024167824-pat00002
을 상기 평문 메시지 m에 대한 전자 서명 값으로 생성하는 전자 서명부 및 상기 데이터 수신 장치로 상기 평문 메시지 m과 상기 전자 서명 값
Figure 112019024167824-pat00003
를 전송하는 전자 서명 전송부를 포함한다.
또한, 본 발명의 일실시예에 따른 신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치의 동작 방법은 RM 코드로 구성된 (n-k) x n - n과 k는 자연수이고 n은 k보다 큼 - 크기의 선형 부호에 대한 패리티 검사 행렬 H, '1'과 '0'의 코드 값을 성분으로 포함하는 (n-k) x (n-k) 크기의 가역 행렬 S 및 '1'과 '0'의 코드 값을 성분으로 포함하는 n x n 크기의 순열 행렬 Q가 전자 서명을 위한 개인키로 저장되어 있는 개인키 저장부를 유지하는 단계, 데이터 수신 장치로 전송할 평문 메시지 m과 상기 가역 행렬 S에 기초하여, 신드롬으로 사용될 신드롬 데이터 si를 생성하는 단계, 상기 패리티 검사 행렬 H를 기초로 상기 신드롬 데이터 si에 대해 오류 검출을 위한 신드롬 디코딩을 수행하여 서명용 오류 벡터 es T를 생성하는 단계, 상기 서명용 오류 벡터 es T의 좌측 변에 상기 순열 행렬 Q의 역행렬인 Q-1을 곱하여
Figure 112019024167824-pat00004
를 연산함으로써, 상기 연산된
Figure 112019024167824-pat00005
을 상기 평문 메시지 m에 대한 전자 서명 값으로 생성하는 단계 및 상기 데이터 수신 장치로 상기 평문 메시지 m과 상기 전자 서명 값
Figure 112019024167824-pat00006
를 전송하는 단계를 포함한다.
본 발명은 데이터 수신 장치에 전송할 메시지를 기초로 임의의 신드롬 데이터를 생성한 후 패리티 검사 행렬을 이용하여 상기 신드롬 데이터로부터 전자 서명용 오류 벡터를 검출한 후 상기 전자 서명용 오류 벡터를 기초로 전자 서명 값을 생성하여 상기 데이터 수신 장치로 전송함으로써, 기존의 비대칭키 기반의 전자 서명 기법과 전혀 다른 알고리즘에 따른 전자 서명 기법을 제공할 수 있다.
도 1은 본 발명의 일실시예에 따른 신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치의 구조를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치를 설명하기 위한 도면이다.
도 3은 본 발명의 일실시예에 따른 신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치의 동작 방법을 도시한 순서도이다.
이하에서는 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명하기로 한다. 이러한 설명은 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였으며, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 본 명세서 상에서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 사람에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.
본 문서에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다. 또한, 본 발명의 다양한 실시예들에 있어서, 각 구성요소들, 기능 블록들 또는 수단들은 하나 또는 그 이상의 하부 구성요소로 구성될 수 있고, 각 구성요소들이 수행하는 전기, 전자, 기계적 기능들은 전자회로, 집적회로, ASIC(Application Specific Integrated Circuit) 등 공지된 다양한 소자들 또는 기계적 요소들로 구현될 수 있으며, 각각 별개로 구현되거나 2 이상이 하나로 통합되어 구현될 수도 있다.
한편, 첨부된 블록도의 블록들이나 흐름도의 단계들은 범용 컴퓨터, 특수용 컴퓨터, 휴대용 노트북 컴퓨터, 네트워크 컴퓨터 등 데이터 프로세싱이 가능한 장비의 프로세서나 메모리에 탑재되어 지정된 기능들을 수행하는 컴퓨터 프로그램 명령들(instructions)을 의미하는 것으로 해석될 수 있다. 이들 컴퓨터 프로그램 명령들은 컴퓨터 장치에 구비된 메모리 또는 컴퓨터에서 판독 가능한 메모리에 저장될 수 있기 때문에, 블록도의 블록들 또는 흐름도의 단계들에서 설명된 기능들은 이를 수행하는 명령 수단을 내포하는 제조물로 생산될 수도 있다. 아울러, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 명령들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 가능한 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 정해진 순서와 달리 실행되는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 실질적으로 동시에 수행되거나, 역순으로 수행될 수 있으며, 경우에 따라 일부 블록들 또는 단계들이 생략된 채로 수행될 수도 있다.
도 1은 본 발명의 일실시예에 따른 신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치의 구조를 도시한 도면이다.
도 1을 참조하면, 본 발명에 따른 신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치(110)는 개인키 저장부(111), 신드롬 데이터 생성부(112), 오류 벡터 생성부(113), 전자 서명부(114) 및 전자 서명 전송부(115)를 포함한다.
개인키 저장부(111)에는 리드-뮬러(Reed-Muller: RM) 코드로 구성된 (n-k) x n 크기의 선형 부호에 대한 패리티 검사 행렬 H, '1'과 '0'의 코드 값을 성분으로 포함하는 (n-k) x (n-k) 크기의 가역 행렬 S 및 '1'과 '0'의 코드 값을 성분으로 포함하는 n x n 크기의 순열 행렬 Q가 전자 서명을 위한 개인키로 저장되어 있다.
여기서, n과 k는 자연수이고 n은 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 코드 역시 기본 코드가 될 수 있다. 여기서, 4개의 기본 코드 R1, R2, R3, R4에 대해서는 또 다른 추가 기본 코드를 생성하기 위해서 상기 4개의 기본 코드들 간의 곱에 사용 가능한 최대 개수가 4개(r=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)로 인코딩하기 위한 생성 행렬을 구성하는데 사용될 수 있고, 데이터 수신측에 수신된 코드워드에 오류가 발생하였는지 여부를 검증하기 위한 패리티 검사 행렬을 구성하는데 사용될 수 있다.
패리티 검사 행렬은 데이터 수신측에 수신된 코드워드에 오류가 발생하였는지 여부를 검증하기 위한 행렬로 k x n 크기의 생성 행렬 G가 있을 때, 이에 대응하는 패리티 검사 행렬을 'H'라고 하면, 상기 패리티 검사 행렬 H의 크기는 (n-k) x n 이 되며, 상기 패리티 검사 행렬 H와 상기 생성 행렬 G 사이에는 하기의 수학식 1과 같은 특성이 존재한다.
Figure 112019024167824-pat00007
여기서, HT는 패리티 검사 행렬 H의 전치 행렬을 의미한다.
만약, 데이터 전송측이 생성 행렬 G를 이용해서 코드워드 c를 생성하여 데이터 수신측으로 전송함에 따라 데이터 수신측에 수신된 데이터를 'r'이라고 하고, 상기 데이터 r에 오류가 발생하지 않은 경우, 상기 데이터 r에 대해서는 패리티 검사 행렬 H와의 관계에서 하기의 수학식 2와 같은 특성이 존재한다.
Figure 112019024167824-pat00008
여기서, rT는 데이터 r의 전치 행렬을 의미한다.
하지만, 데이터 전송측이 전송한 코드워드 c에 오류 e가 발생하였다고 한다면, 데이터 수신측이 수신한 상기 데이터 r은 'c
Figure 112019024167824-pat00009
e'가 될 것이고, 이로 인해 패리티 검사 행렬 H와 상기 데이터 r 사이에는 하기의 수학식 3과 같은 특성을 가지게 된다.
Figure 112019024167824-pat00010
여기서,
Figure 112019024167824-pat00011
는 배타적 논리합 연산을 의미한다.
상기 수학식 3에서의 연산과 같이, 데이터 수신측에서는 패리티 검사 행렬을 이용해서 데이터 수신측에 수신된 데이터에 오류가 존재하는지 여부를 검출할 수 있다. 이때, 상기 수학식 3에서 's'를 신드롬(Syndrome)이라고 하며, 데이터 수신측에서는 패리티 검사 행렬 H를 기초로 상기 신드롬을 연산한 후
Figure 112019024167824-pat00012
를 만족하는 e를 찾아내기 위한 신드롬 디코딩(Syndrome Decoding)을 수행함으로써, 수신된 데이터 r에 포함된 오류 e를 찾아낼 수 있다.
보통, 일반적인 신드롬 디코딩은 패리티 검사 행렬의 오류 정정 능력이 t로 제한되는 경우, t이하의 비트에 대해서 데이터 오류가 발생하였을 때에만
Figure 112019024167824-pat00013
를 만족하는 오류 코드 e를 찾아낼 수 있다.
하지만, 패리티 검사 행렬 H가 RM 코드로 구성되는 경우, 상기 수학식 3에서 표현한 신드롬 s에 대해 신드롬 디코딩 방식 중 하나인 완전 복호(Complete Decoding) 알고리즘을 이용하게 되면, 수신 데이터에 t를 초과하는 개수의 오류가 발생하더라도
Figure 112019024167824-pat00014
를 만족하는 오류 e를 찾아낼 수 있다.
완전 복호 알고리즘이란 r×n 크기의 패리티 검사 행렬과 신드롬
Figure 112019024167824-pat00015
가 있을 때,
Figure 112019024167824-pat00016
를 만족하는 e들 중 해밍 무게(Hamming Weight)가 최소인 e를 찾아내는 복호화 알고리즘이다. 완전 복호 알고리즘을 이용하면, 생성 행렬의 오류 정정 능력을 초과하는 오류에 대해서도 복호가 가능하며, RM 코드의 복호 방법 중 하나인 재귀 복호는 완전 복호가 가능한 특징이 있다.
여기서, 해밍 무게란 '0'과 '1'로 구성된 코드 값들의 집합에서 '1'이라는 코드 값의 개수를 의미한다.
완전 복호 알고리즘에 대해서는 선행기술 문헌인 "J. van der Horst and T. Berger, "Complete decoding of triple-error-correcting binary BCH codes," IEEE Transactions on Information Theory, vol. 22, no. 2, pp. 138-147, 1976."와 "Y. S. Han, S.-W. Fu, and P.-N. Chen, "A new step-by-step complete decoding algorithm for binary cyclic codes," in Signals and Systems (ICSigSys), 2017 International Conference on, 2017, pp. 123-127: IEEE."에 개시되어 있다.
이때, 본 발명의 일실시예에 따르면, 개인키 저장부(111)에 저장되어 있는 패리티 검사 행렬 H는 상기 RM 코드로 구성된 k x n 크기의 생성 행렬 G에서, 상기 생성 행렬 G를 구성하는 n개의 열들을 n/4개별로 구분하였을 때 구성되는 또 다른 RM 코드로 이루어진 복수의 부분 행렬들 중 적어도 하나의 부분 행렬에 포함된 p(p는 자연수)개의 행에 존재하는 성분을 랜덤하게 순열해서 만든 생성 행렬인 Gm에 대응하는 패리티 검사 행렬일 수 있다.
관련해서, RM 코드의 생성 행렬을 G(r,m)이라고 하였을 때, 상기 생성 행렬 G(r,m)은 도 2의 도면부호 210에 도시된 그림과 같이 재귀적인 구조를 가지게 되며, 도면부호 211에 도시된 구조의 행렬과 같이 G(r, m-2), G(r-1, m-2), G(r-2, m-2)와 같은 또 다른 RM 코드로 구성된 부분 행렬들과 0으로 구성된 부분 행렬들로 표현할 수 있다.
이때, 본 발명에서 사용되는 패리티 검사 행렬 H는 도면부호 220에 도시된 그림과 같이, 생성 행렬 G를 구성하는 n개의 열들을 n/4개별로 구분하였을 때 구성되는 또 다른 RM 코드로 이루어진 복수의 부분 행렬들 중 적어도 하나의 부분 행렬(221, 222, 223, 224, 225)에 포함된 p개의 행에 존재하는 성분을 랜덤하게 순열해서 만든 생성 행렬 Gm에 대응하는 패리티 검사 행렬이 사용될 수 있다. 즉, 상기 패리티 검사 행렬 H는 하기의 수학식 4를 만족하는 패리티 검사 행렬이 사용될 수 있다.
Figure 112019024167824-pat00017
상기 생성 행렬 Gm에 대해 좀 더 상세히 설명하면, 상기 생성 행렬 Gm은 도면부호 220에 도시된 그림과 같이, 원래의 RM 코드의 생성 행렬 G를 구성하는 n개의 열들을 n/4개별로 구분하였을 때 구성되는 G(r, m-2), G(r-1, m-2), G(r-2, m-2)와 같은 또 다른 RM 코드로 이루어진 복수의 부분 행렬들 중 부분 행렬 1(221), 부분 행렬 2(222), 부분 행렬 3(223), 부분 행렬 4(224), 부분 행렬 5(225)에 포함된 p개의 행을 랜덤하게 선택하고, 각 부분 행렬(221, 222, 223, 224, 225)에서 선택된 p개의 행에 존재하는 성분을 랜덤하게 순열함으로써 생성될 수 있다.
RM 코드에서 사용할 수 있는 완전 복호 알고리즘은 생성 행렬에서 재귀적 과정에 속하는 일부 부호를 완전 복호화가 되는 다른 부호로 변형하더라도 여전히 완전 복호 알고리즘에 따라 오류 코드를 찾아낼 수 있는 특징을 가지고 있으며, 순열된 RM 코드도 완전 복호화가 되는 코드이기 때문에 재귀적 구조를 갖는 생성 행렬 G의 일부를 부분 순열된 RM 코드로 대체한 생성 행렬 Gm에서도 완전 복호 알고리즘을 사용할 수 있다.
따라서, 본 발명에 따른 패리티 검사 행렬 H는 일반적인 RM 코드를 이용한 생성 행렬 G에 대응하는 행렬이 사용될 수도 있지만, 전자 서명 과정에서 패턴 공격을 방지하기 위한 랜덤성을 높이기 위해, 상기 생성 행렬 G에서 일부 코드를 순열함으로써 변형한 생생 행렬 Gm에 기반하여 생성된 행렬이 사용될 수 있다.
이렇게, 개인키 저장부(111) 상에 패리티 검사 행렬 H, 가역 행렬 S 및 순열 행렬 Q가 개인키로 저장되어 있는 상태에서, 데이터 수신 장치(120)로 전송할 평문 메시지를 m이라고 한다면, 신드롬 데이터 생성부(112)는 상기 평문 메시지 m과 상기 가역 행렬 S에 기초하여, 신드롬으로 사용될 신드롬 데이터 si를 생성한다.
오류 벡터 생성부(113)는 상기 패리티 검사 행렬 H를 기초로 상기 신드롬 데이터 si에 대해 오류 검출을 위한 신드롬 디코딩을 수행하여 서명용 오류 벡터 es T를 생성한다.
전자 서명부(114)는 상기 서명용 오류 벡터 es T의 좌측 변에 상기 순열 행렬 Q의 역행렬인 Q-1을 곱하여
Figure 112019024167824-pat00018
를 연산함으로써, 상기 연산된
Figure 112019024167824-pat00019
을 상기 평문 메시지 m에 대한 전자 서명 값으로 생성한다.
그리고, 전자 서명 전송부(115)는 데이터 수신 장치(120)로 상기 평문 메시지 m과 상기 전자 서명 값
Figure 112019024167824-pat00020
를 전송한다.
이때, 본 발명의 일실시예에 따르면, 신드롬 데이터 생성부(112)는 제1 해시 값 연산부(116) 및 신드롬 생성부(117)를 포함할 수 있다.
제1 해시 값 연산부(116)는 상기 평문 메시지 m을 선정된(predetermined) 해시 함수인 h(x)에 입력으로 인가하여 제1 해시 값 h(m)을 연산한다.
여기서, 상기 해시 함수 h(x)는 입력 값을 (n-k) 비트 크기의 출력 값으로 변환시키는 일방향 함수이다.
신드롬 생성부(117)는 상기 제1 해시 값 h(m)의 연산이 완료되면, 변수 i(상기 변수 i는 '0'이상인 정수임)를 랜덤하게 선정하면서, 상기 제1 해시 값 h(m)에 상기 변수 i에 대한 비트 값을 연접한 결과 값
Figure 112019024167824-pat00021
를 상기 해시 함수 h(x)에 입력으로 인가하여 제2 해시 값인
Figure 112019024167824-pat00022
을 연산하고, 상기 제2 해시 값인
Figure 112019024167824-pat00023
의 전치 행렬인
Figure 112019024167824-pat00024
의 좌측 변에 상기 가역 행렬 S의 역행렬인 S-1을 곱하여 상기 신드롬 데이터 si를 생성한다.
이로 인해, 상기 신드롬 데이터 si는 하기의 수학식 5와 같이 표현될 수 있다.
Figure 112019024167824-pat00025
이때, 본 발명의 일실시예에 따르면, 오류 벡터 생성부(113)는 상기 변수 i가 랜덤하게 선정되면서 상기 신드롬 데이터 si가 생성될 때마다, 각 변수 i에서의 상기 신드롬 데이터 si에 대해 상기 패리티 검사 행렬 H를 기초로 오류 검출을 위한 완전 복호화를 수행하여
Figure 112019024167824-pat00026
(eT는 크기가 n인 벡터 e의 전치 행렬로 n x 1의 크기를 가짐)를 만족하는 eT를 연산한 후 eT의 해밍 무게가 선정된 해밍 무게인 w 이하로 연산되는 시점에서의 변수 i를 서명용 변수 is로 선택함과 동시에 상기 서명용 변수 is에 대응하여 연산된 eT를 상기 서명용 오류 벡터 es T로 선택할 수 있다.
즉, 오류 벡터 생성부(113)는 상기 수학식 5에서 나타낸 si에 대해 상기 변수 i를 랜덤하게 선정해 보면서, 상기 패리티 검사 행렬 H를 기초로 완전 복호화를 수행하여
Figure 112019024167824-pat00027
를 만족하는 eT를 연산해 보고, eT의 해밍 무게가 상기 선정된 해밍 무게인 w 이하로 연산되는 시점에서, eT를 찾는 연산을 중단한 후 해당 시점에서의 변수 i를 서명용 변수 is로 선택함과 동시에 상기 서명용 변수 is에 대응하여 연산된 eT를 서명용 오류 벡터 es T로 선택할 수 있다.
그 이후, 전자 서명부(114)는 상기 서명용 오류 벡터 es T의 좌측 변에 상기 순열 행렬 Q의 역행렬인 Q-1을 곱하여
Figure 112019024167824-pat00028
를 연산함으로써, 상기 연산된
Figure 112019024167824-pat00029
을 상기 평문 메시지 m에 대한 전자 서명 값으로 생성할 수 있다.
그리고, 전자 서명 전송부(115)는 데이터 수신 장치(120)로 상기 평문 메시지 m과 상기 전자 서명 값
Figure 112019024167824-pat00030
및 상기 서명용 변수 is를 전송할 수 있다.
이때, 본 발명의 일실시예에 따르면, 데이터 수신 장치(120)는 메모리 상에 상기 가역 행렬 S와 상기 패리티 검사 행렬 H 및 상기 순열 행렬 Q가 곱해진 행렬인 (n-k) x n 크기를 갖는 Kpub를 전자 서명의 검증을 위한 공개키로 저장하고 있을 수 있다.
여기서, 상기 공개키 Kpub는 하기의 수학식 6과 같이 나타낼 수 있다.
Figure 112019024167824-pat00031
만약, 데이터 수신 장치(120)에 상기 평문 메시지 m과 상기 전자 서명 값
Figure 112019024167824-pat00032
및 상기 서명용 변수 is가 수신되면, 데이터 수신 장치(120)는 상기 전자 서명 값
Figure 112019024167824-pat00033
가 진정한 데이터 전송측에 의해서 전송된 데이터인지 여부를 검증하기 위해, 상기 전자 서명 값
Figure 112019024167824-pat00034
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인지 여부를 확인한 후 상기 전자 서명 값
Figure 112019024167824-pat00035
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인 것으로 확인되면, 상기 공개키 Kpub와 상기 서명용 변수 is에 기초하여 상기 전자 서명 값
Figure 112019024167824-pat00036
에 대한 검증을 수행할 수 있다.
관련해서, 데이터 수신 장치(120)는 상기 전자 서명 값
Figure 112019024167824-pat00037
에 대한 검증을 수행하기 위한 구체적 구성으로, 상기 메모리 상에 상기 해시 함수 h(x)를 저장하고 있고, 상기 평문 메시지 m과 상기 전자 서명 값
Figure 112019024167824-pat00038
및 상기 서명용 변수 is가 수신되면, 상기 전자 서명 값
Figure 112019024167824-pat00039
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인지 여부를 확인할 수 있다.
앞서, 전자 장치(110)의 오류 벡터 생성부(113)는 해밍 무게가 상기 선정된 해밍 무게인 w 이하를 갖는 서명용 오류 벡터 es T를 선택한 후 상기 전자 서명 값
Figure 112019024167824-pat00040
을 생성하여 데이터 수신 장치(120)로 전송하였기 때문에, 데이터 수신 장치(120)에 수신된 전자 서명 값인
Figure 112019024167824-pat00041
의 해밍 무게도 상기 선정된 해밍 무게인 w 이하가 되어야 데이터 수신 장치(120)에 정상적으로 데이터가 수신되었다고 볼 수 있을 것이다.
따라서, 데이터 수신 장치(120)는 상기 평문 메시지 m과 상기 전자 서명 값
Figure 112019024167824-pat00042
및 상기 서명용 변수 is가 수신되면, 상기 전자 서명 값
Figure 112019024167824-pat00043
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인지 여부를 먼저 확인하게 된다.
만약, 상기 전자 서명 값
Figure 112019024167824-pat00044
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인 것으로 확인되면, 데이터 수신 장치(120)는 상기 평문 메시지 m을 상기 메모리 상에 저장되어 있는 상기 해시 함수 h(x)에 입력으로 인가하여 상기 제1 해시 값 h(m)을 연산할 수 있다.
그러고 나서, 데이터 수신 장치(120)는 상기 제1 해시 값 h(m)에 상기 서명용 변수 is에 대한 비트 값을 연접한 결과 값
Figure 112019024167824-pat00045
를 상기 해시 함수 h(x)에 입력으로 인가하여 검증용 해시 값인
Figure 112019024167824-pat00046
을 연산할 수 있다.
그 이후, 데이터 수신 장치(120)는 상기 공개키 Kpub에 상기 전자 서명 값
Figure 112019024167824-pat00047
을 곱한 결과 값인
Figure 112019024167824-pat00048
가 상기 검증용 해시 값인
Figure 112019024167824-pat00049
의 전치 행렬인
Figure 112019024167824-pat00050
와 일치하는지 비교하여 상기
Figure 112019024167824-pat00051
가 상기 검증용 해시 값
Figure 112019024167824-pat00052
의 전치 행렬인
Figure 112019024167824-pat00053
와 일치하는 것으로 판단되면, 상기 전자 서명 값
Figure 112019024167824-pat00054
에 대한 검증을 성공으로 판단할 수 있다.
관련해서, 상기 공개키 Kpub에 상기 전자 서명 값
Figure 112019024167824-pat00055
을 곱한 결과 값인
Figure 112019024167824-pat00056
은 하기의 수학식 7과 같이 나타낼 수 있다.
Figure 112019024167824-pat00057
그리고, 상기 검증용 해시 값
Figure 112019024167824-pat00058
의 전치 행렬인
Figure 112019024167824-pat00059
는 하기의 수학식 8과 같이 나타낼 수 있다.
Figure 112019024167824-pat00060
상기 수학식 8에서
Figure 112019024167824-pat00061
는 상기 서명용 변수 is가 전자 장치(110)로부터 데이터 수신 장치(120)로 위조나 변조 없이 정상적으로 수신되었다면, 전자 장치(110)의 신드롬 생성부(117)를 통해 생성되었던 신드롬(수학식 5 참조)이기 때문에
Figure 112019024167824-pat00062
와 동일한 값이 될 것이다.
이로 인해, 상기 전자 서명 값
Figure 112019024167824-pat00063
가 전자 장치(110)로부터 데이터 수신 장치(120)로 위조나 변조 없이 정상적으로 수신되었다면, 상기 수학식 7에 따른
Figure 112019024167824-pat00064
와 상기 수학식 8에 따른
Figure 112019024167824-pat00065
는 하기의 수학식 9에서 나타낸 것처럼 동일한 값이 되어야 할 것이다.
Figure 112019024167824-pat00066
따라서, 데이터 수신 장치(120)는 상기
Figure 112019024167824-pat00067
가 상기 검증용 해시 값
Figure 112019024167824-pat00068
의 전치 행렬인
Figure 112019024167824-pat00069
와 일치하는 것으로 판단되면, 상기 전자 서명 값
Figure 112019024167824-pat00070
에 대한 검증을 성공으로 판단할 수 있다.
도 3은 본 발명의 일실시예에 따른 신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치의 동작 방법을 도시한 순서도이다.
단계(S310)에서는 RM 코드로 구성된 (n-k) x n 크기의 선형 부호에 대한 패리티 검사 행렬 H, '1'과 '0'의 코드 값을 성분으로 포함하는 (n-k) x (n-k) 크기의 가역 행렬 S 및 '1'과 '0'의 코드 값을 성분으로 포함하는 n x n 크기의 순열 행렬 Q가 전자 서명을 위한 개인키로 저장되어 있는 개인키 저장부를 유지한다.
여기서, n과 k는 자연수이고 n은 k보다 큰 수이다.
단계(S320)에서는 데이터 수신 장치로 전송할 평문 메시지 m과 상기 가역 행렬 S에 기초하여, 신드롬으로 사용될 신드롬 데이터 si를 생성한다.
단계(S330)에서는 상기 패리티 검사 행렬 H를 기초로 상기 신드롬 데이터 si에 대해 오류 검출을 위한 신드롬 디코딩을 수행하여 서명용 오류 벡터 es T를 생성한다.
단계(S340)에서는 상기 서명용 오류 벡터 es T의 좌측 변에 상기 순열 행렬 Q의 역행렬인 Q-1을 곱하여
Figure 112019024167824-pat00071
를 연산함으로써, 상기 연산된
Figure 112019024167824-pat00072
을 상기 평문 메시지 m에 대한 전자 서명 값으로 생성한다.
단계(S350)에서는 상기 데이터 수신 장치로 상기 평문 메시지 m과 상기 전자 서명 값
Figure 112019024167824-pat00073
를 전송한다.
이때, 본 발명의 일실시예에 따르면, 상기 패리티 검사 행렬 H는 상기 RM 코드로 구성된 k x n 크기의 생성 행렬 G에서, 상기 생성 행렬 G를 구성하는 n개의 열들을 n/4개별로 구분하였을 때 구성되는 또 다른 RM 코드로 이루어진 복수의 부분 행렬들 중 적어도 하나의 부분 행렬에 포함된 p(p는 자연수)개의 행에 존재하는 성분을 랜덤하게 순열해서 만든 생성 행렬인 Gm에 대응하는 패리티 검사 행렬일 수 있다.
또한, 본 발명의 일실시예에 따르면, 단계(S320)에서는 상기 평문 메시지 m을 선정된 해시 함수인 h(x)(상기 해시 함수 h(x)는 입력 값을 (n-k) 비트 크기의 출력 값으로 변환시키는 일방향 함수임)에 입력으로 인가하여 제1 해시 값 h(m)을 연산하는 단계 및 상기 제1 해시 값 h(m)의 연산이 완료되면, 변수 i(상기 변수 i는 '0'이상인 정수임)를 랜덤하게 선정하면서, 상기 제1 해시 값 h(m)에 상기 변수 i에 대한 비트 값을 연접한 결과 값
Figure 112019024167824-pat00074
를 상기 해시 함수 h(x)에 입력으로 인가하여 제2 해시 값인
Figure 112019024167824-pat00075
을 연산하고, 상기 제2 해시 값인
Figure 112019024167824-pat00076
의 전치 행렬인
Figure 112019024167824-pat00077
의 좌측 변에 상기 가역 행렬 S의 역행렬인 S-1을 곱하여 상기 신드롬 데이터 si(
Figure 112019024167824-pat00078
임)를 생성하는 단계를 포함할 수 있다.
이때, 본 발명의 일실시예에 따르면, 단계(S330)에서는 상기 변수 i가 랜덤하게 선정되면서 상기 신드롬 데이터 si가 생성될 때마다, 각 변수 i에서의 상기 신드롬 데이터 si에 대해 상기 패리티 검사 행렬 H를 기초로 오류 검출을 위한 완전 복호화를 수행하여
Figure 112019024167824-pat00079
(eT는 크기가 n인 벡터 e의 전치 행렬로 n x 1의 크기를 가짐)를 만족하는 eT를 연산한 후 eT의 해밍 무게가 선정된 해밍 무게인 w 이하로 연산되는 시점에서의 변수 i를 서명용 변수 is로 선택함과 동시에 상기 서명용 변수 is에 대응하여 연산된 eT를 상기 서명용 오류 벡터 es T로 선택할 수 있다.
이때, 단계(S350)에서는 상기 데이터 수신 장치로 상기 평문 메시지 m과 상기 전자 서명 값
Figure 112019024167824-pat00080
및 상기 서명용 변수 is를 전송할 수 있다.
이때, 본 발명의 일실시예에 따르면, 상기 데이터 수신 장치는 메모리 상에 상기 가역 행렬 S와 상기 패리티 검사 행렬 H 및 상기 순열 행렬 Q가 곱해진 행렬인 (n-k) x n 크기를 갖는 Kpub(
Figure 112019024167824-pat00081
임)를 전자 서명의 검증을 위한 공개키로 저장하고 있고, 상기 평문 메시지 m과 상기 전자 서명 값
Figure 112019024167824-pat00082
및 상기 서명용 변수 is가 수신되면, 상기 전자 서명 값
Figure 112019024167824-pat00083
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인지 여부를 확인한 후 상기 전자 서명 값
Figure 112019024167824-pat00084
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인 것으로 확인되면, 상기 공개키 Kpub와 상기 서명용 변수 is에 기초하여 상기 전자 서명 값
Figure 112019024167824-pat00085
에 대한 검증을 수행할 수 있다.
이때, 본 발명의 일실시예에 따르면, 상기 데이터 수신 장치는 상기 메모리 상에 상기 해시 함수 h(x)를 추가로 저장하고 있고, 상기 평문 메시지 m과 상기 전자 서명 값
Figure 112019024167824-pat00086
및 상기 서명용 변수 is가 수신되면, 상기 전자 서명 값
Figure 112019024167824-pat00087
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인지 여부를 확인한 후 상기 전자 서명 값
Figure 112019024167824-pat00088
의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인 것으로 확인되면, 상기 평문 메시지 m을 상기 메모리 상에 저장되어 있는 상기 해시 함수 h(x)에 입력으로 인가하여 상기 제1 해시 값 h(m)을 연산하고, 상기 제1 해시 값 h(m)이 연산되면, 상기 제1 해시 값 h(m)에 상기 서명용 변수 is에 대한 비트 값을 연접한 결과 값
Figure 112019024167824-pat00089
를 상기 해시 함수 h(x)에 입력으로 인가하여 검증용 해시 값인
Figure 112019024167824-pat00090
을 연산하며, 상기 공개키 Kpub에 상기 전자 서명 값
Figure 112019024167824-pat00091
을 곱한 결과 값인
Figure 112019024167824-pat00092
가 상기 검증용 해시 값인
Figure 112019024167824-pat00093
의 전치 행렬인
Figure 112019024167824-pat00094
와 일치하는지 비교하여 상기
Figure 112019024167824-pat00095
가 상기 검증용 해시 값
Figure 112019024167824-pat00096
의 전치 행렬인
Figure 112019024167824-pat00097
와 일치하는 것으로 판단되면, 상기 전자 서명 값
Figure 112019024167824-pat00098
에 대한 검증을 성공으로 판단할 수 있다.
이상, 도 3을 참조하여 본 발명의 일실시예에 따른 신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치의 동작 방법에 대해 설명하였다. 여기서, 본 발명의 일실시예에 따른 신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치의 동작 방법은 도 1과 도 2를 이용하여 설명한 신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치(110)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.
본 발명의 일실시예에 따른 신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치의 동작 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.
또한, 본 발명의 일실시예에 따른 신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치의 동작 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
110: 신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치
111: 개인키 저장부 112: 신드롬 데이터 생성부
113: 오류 벡터 생성부 114: 전자 서명부
115: 전자 서명 전송부 116: 제1 해시 값 연산부
117: 신드롬 생성부
120: 데이터 수신 장치

Claims (14)

  1. 리드-뮬러(Reed-Muller: RM) 코드로 구성된 (n-k) x n - n과 k는 자연수이고 n은 k보다 큼 - 크기의 선형 부호에 대한 패리티 검사 행렬 H, '1'과 '0'의 코드 값을 성분으로 포함하는 (n-k) x (n-k) 크기의 가역 행렬 S 및 '1'과 '0'의 코드 값을 성분으로 포함하는 n x n 크기의 순열 행렬 Q가 전자 서명을 위한 개인키로 저장되어 있는 개인키 저장부;
    데이터 수신 장치로 전송할 평문 메시지 m과 상기 가역 행렬 S에 기초하여, 신드롬(syndrome)으로 사용될 신드롬 데이터 si를 생성하는 신드롬 데이터 생성부;
    상기 패리티 검사 행렬 H를 기초로 상기 신드롬 데이터 si에 대해 오류 검출을 위한 신드롬 디코딩(Syndrome Decoding)을 수행하여 서명용 오류 벡터 es T를 생성하는 오류 벡터 생성부;
    상기 서명용 오류 벡터 es T의 좌측 변에 상기 순열 행렬 Q의 역행렬인 Q-1을 곱하여
    Figure 112020105233358-pat00159
    를 연산함으로써, 상기 연산된
    Figure 112020105233358-pat00160
    을 상기 평문 메시지 m에 대한 전자 서명 값으로 생성하는 전자 서명부; 및
    상기 데이터 수신 장치로 상기 평문 메시지 m과 상기 전자 서명 값
    Figure 112020105233358-pat00161
    를 전송하는 전자 서명 전송부
    를 포함하고,
    상기 패리티 검사 행렬 H는
    상기 RM 코드로 구성된 k x n 크기의 생성 행렬 G에서, 상기 생성 행렬 G를 구성하는 n개의 열들을 n/4개별로 구분하였을 때 구성되는 또 다른 RM 코드로 이루어진 복수의 부분 행렬들 중 적어도 하나의 부분 행렬에 포함된 p - p는 자연수 - 개의 행에 존재하는 성분을 랜덤하게 순열해서 만든 생성 행렬인 Gm에 대응하는 패리티 검사 행렬인 것을 특징으로 하는 신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치.
  2. 삭제
  3. 제1항에 있어서,
    상기 신드롬 데이터 생성부는
    상기 평문 메시지 m을 선정된(predetermined) 해시 함수인 h(x) - 상기 해시 함수 h(x)는 입력 값을 (n-k) 비트 크기의 출력 값으로 변환시키는 일방향 함수임 - 에 입력으로 인가하여 제1 해시 값 h(m)을 연산하는 제1 해시 값 연산부; 및
    상기 제1 해시 값 h(m)의 연산이 완료되면, 변수 i - 상기 변수 i는 '0'이상인 정수임 - 를 랜덤하게 선정하면서, 상기 제1 해시 값 h(m)에 상기 변수 i에 대한 비트 값을 연접한 결과 값
    Figure 112019024167824-pat00102
    를 상기 해시 함수 h(x)에 입력으로 인가하여 제2 해시 값인
    Figure 112019024167824-pat00103
    을 연산하고, 상기 제2 해시 값인
    Figure 112019024167824-pat00104
    의 전치 행렬인
    Figure 112019024167824-pat00105
    의 좌측 변에 상기 가역 행렬 S의 역행렬인 S-1을 곱하여 상기 신드롬 데이터 si -
    Figure 112019024167824-pat00106
    임 - 를 생성하는 신드롬 생성부
    를 포함하는 신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치.
  4. 제3항에 있어서,
    상기 오류 벡터 생성부는
    상기 변수 i가 랜덤하게 선정되면서 상기 신드롬 데이터 si가 생성될 때마다, 각 변수 i에서의 상기 신드롬 데이터 si에 대해 상기 패리티 검사 행렬 H를 기초로 오류 검출을 위한 완전 복호화(Complete Decoding)를 수행하여
    Figure 112019024167824-pat00107
    - eT는 크기가 n인 벡터 e의 전치 행렬로 n x 1의 크기를 가짐 - 를 만족하는 eT를 연산한 후 eT의 해밍 무게(Hamming Weight)가 선정된 해밍 무게인 w 이하로 연산되는 시점에서의 변수 i를 서명용 변수 is로 선택함과 동시에 상기 서명용 변수 is에 대응하여 연산된 eT를 상기 서명용 오류 벡터 es T로 선택하고,
    상기 전자 서명 전송부는
    상기 데이터 수신 장치로 상기 평문 메시지 m과 상기 전자 서명 값
    Figure 112019024167824-pat00108
    및 상기 서명용 변수 is를 전송하는 신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치.
  5. 제4항에 있어서,
    상기 데이터 수신 장치는
    메모리 상에 상기 가역 행렬 S와 상기 패리티 검사 행렬 H 및 상기 순열 행렬 Q가 곱해진 행렬인 (n-k) x n 크기를 갖는 Kpub -
    Figure 112019024167824-pat00109
    임 - 를 전자 서명의 검증을 위한 공개키로 저장하고 있고, 상기 평문 메시지 m과 상기 전자 서명 값
    Figure 112019024167824-pat00110
    및 상기 서명용 변수 is가 수신되면, 상기 전자 서명 값
    Figure 112019024167824-pat00111
    의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인지 여부를 확인한 후 상기 전자 서명 값
    Figure 112019024167824-pat00112
    의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인 것으로 확인되면, 상기 공개키 Kpub와 상기 서명용 변수 is에 기초하여 상기 전자 서명 값
    Figure 112019024167824-pat00113
    에 대한 검증을 수행하는 신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치.
  6. 제5항에 있어서,
    상기 데이터 수신 장치는
    상기 메모리 상에 상기 해시 함수 h(x)를 추가로 저장하고 있고, 상기 평문 메시지 m과 상기 전자 서명 값
    Figure 112019024167824-pat00114
    및 상기 서명용 변수 is가 수신되면, 상기 전자 서명 값
    Figure 112019024167824-pat00115
    의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인지 여부를 확인한 후 상기 전자 서명 값
    Figure 112019024167824-pat00116
    의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인 것으로 확인되면, 상기 평문 메시지 m을 상기 메모리 상에 저장되어 있는 상기 해시 함수 h(x)에 입력으로 인가하여 상기 제1 해시 값 h(m)을 연산하고,
    상기 제1 해시 값 h(m)이 연산되면, 상기 제1 해시 값 h(m)에 상기 서명용 변수 is에 대한 비트 값을 연접한 결과 값
    Figure 112019024167824-pat00117
    를 상기 해시 함수 h(x)에 입력으로 인가하여 검증용 해시 값인
    Figure 112019024167824-pat00118
    을 연산하며,
    상기 공개키 Kpub에 상기 전자 서명 값
    Figure 112019024167824-pat00119
    을 곱한 결과 값인
    Figure 112019024167824-pat00120
    가 상기 검증용 해시 값인
    Figure 112019024167824-pat00121
    의 전치 행렬인
    Figure 112019024167824-pat00122
    와 일치하는지 비교하여 상기
    Figure 112019024167824-pat00123
    가 상기 검증용 해시 값
    Figure 112019024167824-pat00124
    의 전치 행렬인
    Figure 112019024167824-pat00125
    와 일치하는 것으로 판단되면, 상기 전자 서명 값
    Figure 112019024167824-pat00126
    에 대한 검증을 성공으로 판단하는 신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치.
  7. 리드-뮬러(Reed-Muller: RM) 코드로 구성된 (n-k) x n - n과 k는 자연수이고 n은 k보다 큼 - 크기의 선형 부호에 대한 패리티 검사 행렬 H, '1'과 '0'의 코드 값을 성분으로 포함하는 (n-k) x (n-k) 크기의 가역 행렬 S 및 '1'과 '0'의 코드 값을 성분으로 포함하는 n x n 크기의 순열 행렬 Q가 전자 서명을 위한 개인키로 저장되어 있는 개인키 저장부를 유지하는 단계;
    데이터 수신 장치로 전송할 평문 메시지 m과 상기 가역 행렬 S에 기초하여, 신드롬(syndrome)으로 사용될 신드롬 데이터 si를 생성하는 단계;
    상기 패리티 검사 행렬 H를 기초로 상기 신드롬 데이터 si에 대해 오류 검출을 위한 신드롬 디코딩(Syndrome Decoding)을 수행하여 서명용 오류 벡터 es T를 생성하는 단계;
    상기 서명용 오류 벡터 es T의 좌측 변에 상기 순열 행렬 Q의 역행렬인 Q-1을 곱하여
    Figure 112020105233358-pat00162
    를 연산함으로써, 상기 연산된
    Figure 112020105233358-pat00163
    을 상기 평문 메시지 m에 대한 전자 서명 값으로 생성하는 단계; 및
    상기 데이터 수신 장치로 상기 평문 메시지 m과 상기 전자 서명 값
    Figure 112020105233358-pat00164
    를 전송하는 단계
    를 포함하고,
    상기 패리티 검사 행렬 H는
    상기 RM 코드로 구성된 k x n 크기의 생성 행렬 G에서, 상기 생성 행렬 G를 구성하는 n개의 열들을 n/4개별로 구분하였을 때 구성되는 또 다른 RM 코드로 이루어진 복수의 부분 행렬들 중 적어도 하나의 부분 행렬에 포함된 p - p는 자연수 - 개의 행에 존재하는 성분을 랜덤하게 순열해서 만든 생성 행렬인 Gm에 대응하는 패리티 검사 행렬인 것을 특징으로 하는 신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치의 동작 방법.
  8. 삭제
  9. 제7항에 있어서,
    상기 신드롬 데이터 si를 생성하는 단계는
    상기 평문 메시지 m을 선정된(predetermined) 해시 함수인 h(x) - 상기 해시 함수 h(x)는 입력 값을 (n-k) 비트 크기의 출력 값으로 변환시키는 일방향 함수임 - 에 입력으로 인가하여 제1 해시 값 h(m)을 연산하는 단계; 및
    상기 제1 해시 값 h(m)의 연산이 완료되면, 변수 i - 상기 변수 i는 '0'이상인 정수임 - 를 랜덤하게 선정하면서, 상기 제1 해시 값 h(m)에 상기 변수 i에 대한 비트 값을 연접한 결과 값
    Figure 112019024167824-pat00130
    를 상기 해시 함수 h(x)에 입력으로 인가하여 제2 해시 값인
    Figure 112019024167824-pat00131
    을 연산하고, 상기 제2 해시 값인
    Figure 112019024167824-pat00132
    의 전치 행렬인
    Figure 112019024167824-pat00133
    의 좌측 변에 상기 가역 행렬 S의 역행렬인 S-1을 곱하여 상기 신드롬 데이터 si -
    Figure 112019024167824-pat00134
    임 - 를 생성하는 단계
    를 포함하는 신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치의 동작 방법.
  10. 제9항에 있어서,
    상기 서명용 오류 벡터 es T를 생성하는 단계는
    상기 변수 i가 랜덤하게 선정되면서 상기 신드롬 데이터 si가 생성될 때마다, 각 변수 i에서의 상기 신드롬 데이터 si에 대해 상기 패리티 검사 행렬 H를 기초로 오류 검출을 위한 완전 복호화(Complete Decoding)를 수행하여
    Figure 112019024167824-pat00135
    - eT는 크기가 n인 벡터 e의 전치 행렬로 n x 1의 크기를 가짐 - 를 만족하는 eT를 연산한 후 eT의 해밍 무게(Hamming Weight)가 선정된 해밍 무게인 w 이하로 연산되는 시점에서의 변수 i를 서명용 변수 is로 선택함과 동시에 상기 서명용 변수 is에 대응하여 연산된 eT를 상기 서명용 오류 벡터 es T로 선택하고,
    상기 전자 서명 값
    Figure 112019024167824-pat00136
    를 전송하는 단계는
    상기 데이터 수신 장치로 상기 평문 메시지 m과 상기 전자 서명 값
    Figure 112019024167824-pat00137
    및 상기 서명용 변수 is를 전송하는 신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치의 동작 방법.
  11. 제10항에 있어서,
    상기 데이터 수신 장치는
    메모리 상에 상기 가역 행렬 S와 상기 패리티 검사 행렬 H 및 상기 순열 행렬 Q가 곱해진 행렬인 (n-k) x n 크기를 갖는 Kpub -
    Figure 112019024167824-pat00138
    임 - 를 전자 서명의 검증을 위한 공개키로 저장하고 있고, 상기 평문 메시지 m과 상기 전자 서명 값
    Figure 112019024167824-pat00139
    및 상기 서명용 변수 is가 수신되면, 상기 전자 서명 값
    Figure 112019024167824-pat00140
    의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인지 여부를 확인한 후 상기 전자 서명 값
    Figure 112019024167824-pat00141
    의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인 것으로 확인되면, 상기 공개키 Kpub와 상기 서명용 변수 is에 기초하여 상기 전자 서명 값
    Figure 112019024167824-pat00142
    에 대한 검증을 수행하는 신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치의 동작 방법.
  12. 제11항에 있어서,
    상기 데이터 수신 장치는
    상기 메모리 상에 상기 해시 함수 h(x)를 추가로 저장하고 있고, 상기 평문 메시지 m과 상기 전자 서명 값
    Figure 112019024167824-pat00143
    및 상기 서명용 변수 is가 수신되면, 상기 전자 서명 값
    Figure 112019024167824-pat00144
    의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인지 여부를 확인한 후 상기 전자 서명 값
    Figure 112019024167824-pat00145
    의 해밍 무게가 상기 선정된 해밍 무게인 w 이하인 것으로 확인되면, 상기 평문 메시지 m을 상기 메모리 상에 저장되어 있는 상기 해시 함수 h(x)에 입력으로 인가하여 상기 제1 해시 값 h(m)을 연산하고,
    상기 제1 해시 값 h(m)이 연산되면, 상기 제1 해시 값 h(m)에 상기 서명용 변수 is에 대한 비트 값을 연접한 결과 값
    Figure 112019024167824-pat00146
    를 상기 해시 함수 h(x)에 입력으로 인가하여 검증용 해시 값인
    Figure 112019024167824-pat00147
    을 연산하며,
    상기 공개키 Kpub에 상기 전자 서명 값
    Figure 112019024167824-pat00148
    을 곱한 결과 값인
    Figure 112019024167824-pat00149
    가 상기 검증용 해시 값인
    Figure 112019024167824-pat00150
    의 전치 행렬인
    Figure 112019024167824-pat00151
    와 일치하는지 비교하여 상기
    Figure 112019024167824-pat00152
    가 상기 검증용 해시 값
    Figure 112019024167824-pat00153
    의 전치 행렬인
    Figure 112019024167824-pat00154
    와 일치하는 것으로 판단되면, 상기 전자 서명 값
    Figure 112019024167824-pat00155
    에 대한 검증을 성공으로 판단하는 신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치의 동작 방법.
  13. 제7항, 제9항, 제10항, 제11항 또는 제12항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
  14. 제7항, 제9항, 제10항, 제11항 또는 제12항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램.
KR1020190027031A 2019-03-08 2019-03-08 신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치 및 그 동작 방법 KR102211648B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190027031A KR102211648B1 (ko) 2019-03-08 2019-03-08 신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치 및 그 동작 방법
US16/699,097 US11128475B2 (en) 2019-03-08 2019-11-28 Electronic device capable of data communication through electronic signatures based on syndrome and operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190027031A KR102211648B1 (ko) 2019-03-08 2019-03-08 신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치 및 그 동작 방법

Publications (2)

Publication Number Publication Date
KR20200107621A KR20200107621A (ko) 2020-09-16
KR102211648B1 true KR102211648B1 (ko) 2021-02-03

Family

ID=72334803

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190027031A KR102211648B1 (ko) 2019-03-08 2019-03-08 신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치 및 그 동작 방법

Country Status (2)

Country Link
US (1) US11128475B2 (ko)
KR (1) KR102211648B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11533127B1 (en) * 2019-09-20 2022-12-20 Kaleidoscope Blockchain, Inc. Determining data availability
KR102559803B1 (ko) * 2020-12-18 2023-07-26 동국대학교 산학협력단 학생들의 수업에 대한 수업 참여도 분석을 수행하는 원격 수업 지원 서비스 서버 및 그 동작 방법

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5134616A (en) * 1990-02-13 1992-07-28 International Business Machines Corporation Dynamic ram with on-chip ecc and optimized bit and word redundancy
US6167551A (en) * 1998-07-29 2000-12-26 Neomagic Corp. DVD controller with embedded DRAM for ECC-block buffering
JP3889286B2 (ja) * 2002-01-31 2007-03-07 三菱電機株式会社 復号方法、復号装置及びディジタル伝送システム
US7949931B2 (en) * 2007-01-02 2011-05-24 International Business Machines Corporation Systems and methods for error detection in a memory system
US8196016B1 (en) * 2007-12-05 2012-06-05 Aquantia Corporation Trapping set decoding for transmission frames
US8856629B2 (en) * 2012-09-07 2014-10-07 Infineon Technologies Ag Device and method for testing a circuit to be tested
TWI606333B (zh) * 2016-04-15 2017-11-21 群聯電子股份有限公司 資料處理方法、記憶體儲存裝置及記憶體控制電路單元
US10193574B1 (en) * 2016-05-19 2019-01-29 Apple Inc. Efficient syndrome calculation in processing a GLDPC code
US10382060B2 (en) * 2016-08-05 2019-08-13 Taiwan Semiconductor Manufacturing Company Ltd. On-line self-checking hamming encoder, decoder and associated method
KR101913100B1 (ko) * 2016-11-24 2018-10-31 서울대학교산학협력단 생성 행렬의 천공에 기초한 암호화키를 사용하는 데이터 암호화 장치 및 방법
KR101873881B1 (ko) * 2016-11-29 2018-07-03 서울대학교산학협력단 데이터 보안이 강화된 전자 서명 장치 및 방법
US10318202B2 (en) * 2017-03-20 2019-06-11 Via Technologies, Inc. Non-volatile memory apparatus and data deduplication method thereof

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
이위직 외 1명, RM부호 기반 전자서명 시스템, 2017년 한국통신학회 하계종합학술발표회, pp.1624-1625 (2017.)*

Also Published As

Publication number Publication date
US20200287722A1 (en) 2020-09-10
US11128475B2 (en) 2021-09-21
KR20200107621A (ko) 2020-09-16

Similar Documents

Publication Publication Date Title
Wang Quantum resistant random linear code based public key encryption scheme RLCE
Finiasz Parallel-CFS: Strengthening the CFS McEliece-based signature scheme
KR101942030B1 (ko) 메시지에 대한 무결성 검증이 지원되는 부호 기반의 암호화가 가능한 전자 장치 및 그 동작 방법
JP5854443B2 (ja) 誤り訂正符号方式を用いて計算環境における資産集合についての識別子を生成する変化許容力を有する方法
Rashwan et al. Security of the GPT cryptosystem and its applications to cryptography
KR101913644B1 (ko) 메시지 인증이 가능한 부호 기반 암호화 장치 및 방법
Kuznetsov et al. New approach to the implementation of post-quantum digital signature scheme
Dumas et al. Foundations of coding: compression, encryption, error correction
KR102211648B1 (ko) 신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치 및 그 동작 방법
Hooshmand et al. PKC‐PC: a variant of the McEliece public‐key cryptosystem based on polar codes
Moufek et al. A new variant of the McEliece cryptosystem based on QC-LDPC and QC-MDPC codes
JP6229715B2 (ja) 暗号文照合システムと方法とプログラム
EP2991266B1 (en) Encrypted text matching system, method, and computer readable medium
Shooshtari et al. Provably secure strong designated verifier signature scheme based on coding theory
KR101978684B1 (ko) 재생 공격 방지가 가능한 부호 기반 암호화 장치 및 방법
Tabatabaei et al. AACI: The mechanism for approximate authentication and correction of images
KR102001407B1 (ko) 패리티 검사 행렬에 기초한 오류 복원 기법을 이용하는 전자 서명 장치 및 방법
KR20190058884A (ko) 생체 정보 기반의 전자 서명이 가능한 데이터 전송 장치 및 그 동작 방법
CN112613078A (zh) 一种文档电子签名方法、验签方法及其装置
CN112634092A (zh) 一种基于区块链的合同认证方法、装置、电子设备
CN112631992A (zh) 一种电子文件归档方法及系统
CN112633712A (zh) 一种基于grs码的在线投标方法及系统
Marcus et al. White paper on mceliece with binary goppa codes
Wang et al. Digital Signature Scheme to Match Generalized Reed-Solomon Code over GF (q)
Xu et al. Attacking the Niederreiter-type cryptosystem based on rank metric

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant