KR101942033B1 - t+a개의 오류 코드가 삽입된 부호 기반의 암호화 데이터의 복호화가 가능한 전자 장치 및 그 동작 방법 - Google Patents

t+a개의 오류 코드가 삽입된 부호 기반의 암호화 데이터의 복호화가 가능한 전자 장치 및 그 동작 방법 Download PDF

Info

Publication number
KR101942033B1
KR101942033B1 KR1020180142288A KR20180142288A KR101942033B1 KR 101942033 B1 KR101942033 B1 KR 101942033B1 KR 1020180142288 A KR1020180142288 A KR 1020180142288A KR 20180142288 A KR20180142288 A KR 20180142288A KR 101942033 B1 KR101942033 B1 KR 101942033B1
Authority
KR
South Korea
Prior art keywords
data
code
encrypted data
error
matrix
Prior art date
Application number
KR1020180142288A
Other languages
English (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 KR1020180142288A priority Critical patent/KR101942033B1/ko
Application granted granted Critical
Publication of KR101942033B1 publication Critical patent/KR101942033B1/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/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 t(t는 자연수)비트 코드에 대한 오류 정정 능력을 갖는 생성 행렬을 이용하는 부호 기반의 암호화 방식에서 t를 초과하는 해밍 무게(Hamming Weight)를 갖는 오류 코드를 이용하여 데이터 암호화를 수행하더라도 데이터 수신측에서 원본 데이터를 복원할 수 있도록 하는 기법을 제시함으로써, 데이터 암호화에 있어 높은 보안성을 제공할 수 있다.

Description

t+a개의 오류 코드가 삽입된 부호 기반의 암호화 데이터의 복호화가 가능한 전자 장치 및 그 동작 방법{ELECTRONIC DEVICE CAPABLE OF DECRYPTING CODE-BASED ENCRYPTED DATA IN WHICH T+A ERROR CODES ARE INSERTED AND OPERATING METHOD THEREOF}
본 발명은 부호 기반의 암호화 기법에서 보안성을 강화할 수 있도록 지원하는 기술에 대한 것이다.
최근, 다양한 형태의 정보가 생성되고 유통됨에 따라, 해킹이나 잘못된 경로로의 정보 전달로 인해 중요한 정보가 제3자에게 노출되는 등의 피해가 발생하고 있다.
특히, 정보의 전달과정에서 군사 정보나 개인 정보 등과 같은 중요 정보에 어떠한 방어 기제가 적용되어 있지 않은 상태에서 이러한 중요 정보가 우연히 제3자에게 전달된다면, 제3자가 손쉽게 중요 정보에 접근할 수 있어, 큰 피해가 발생할 수 있다.
최근에는 이러한 중요 정보의 노출을 방지하기 위해, 중요 정보를 소정의 암호화키를 이용하여 암호화한 후 이를 상대방에게 전달하는 기법 등이 도입되고 있다.
일반적인 데이터 암호화 방식은 데이터 전송측과 데이터 수신측이 동일한 비밀키를 공유하고 있다가, 데이터 전송측이 비밀키로 데이터를 암호화해서 전송하면, 데이터 수신측이 동일한 비밀키로 데이터를 복호화하는 방식이 사용된다.
하지만, 이러한 대칭키 기반의 암호화 방식은 비밀키의 전달 및 공유 과정에서 해당 비밀키가 노출될 위험성이 존재한다는 점에서 보안에 취약한 약점이 존재한다.
이러한 대칭키 기반의 암호화 방식의 단점을 해소하기 위해서, 공개키와 개인키라는 비대칭키를 활용한 데이터 암호화 방식이 도입되었다. 비대칭키 기반의 데이터 암호화 방식은 데이터 전송측이 공개키로 데이터를 암호화해서 데이터 수신측으로 전송하면, 데이터 수신측이 상기 공개키에 대응하는 개인키로 데이터를 복호화하거나 데이터 전송측이 개인키로 데이터를 암호화해서 데이터 수신측으로 전송하면, 데이터 수신측이 상기 공개키로 데이터를 복호화하는 방식이 사용된다.
이렇게, 다양한 암호화 방식이 등장하고 있지만, 항상 동일한 암호화키를 이용하여 평문을 암호화하게 되면, 암호문의 생성 패턴 분석을 통한 재생 공격(Replay Attack)이 가능하다는 점에서 이를 방지하기 위한 기법으로 암호화 대상이 되는 평문 데이터에 대해 난수를 추가하여 암호화함으로써, 암호문의 패턴 분석이 불가능하도록 하는 기법의 도입도 고려되고 있다.
아울러, 최근에는 암호화 과정에서 고성능의 컴퓨터 시스템을 기반으로 한 공격에 대응하기 위해 부호 기반의 암호화 방식이 도입되고 있다.
부호 기반의 암호화 방식은 데이터 전송 장치가 t(t는 자연수)비트의 코드에 대한 오류 정정 능력을 갖는 선형 코드에 대한 "1"과 "0"의 코드값을 성분으로 포함하는 k x n(k와 n은 자연수) 크기의 생성 행렬 G와 "1"과 "0"의 코드값을 성분으로 포함하는 k x k 크기의 이진 정칙 행렬(Binary non-singular matrix) S 및 "1"과 "0"의 코드값을 성분으로 포함하는 n x n 크기의 순열 행렬 P를 활용해서 공개키 Kpub을 만들고, 데이터 수신 장치로 전송할 데이터 m을 상기 공개키 Kpub로 암호화하여 암호화 데이터 c를 생성한 후 상기 암호화 데이터 c를 상기 데이터 수신 장치로 전송하면, 상기 데이터 수신 장치가 메모리 상에 기 저장하고 있는 상기 생성 행렬 G, 상기 이진 정칙 행렬 S 및 상기 순열 행렬 P를 개인키로 활용해서 상기 암호화 데이터에 대한 복호화를 수행함으로써, 상기 데이터 m을 복원하는 방식이다.
관련해서, 부호 기반의 암호화 방식에서의 데이터 암호화와 복호화 방식에 대해 간단히 설명하면 다음과 같다.
우선, 데이터 전송 장치가 사용하는 공개키는 Kpub는 하기의 수학식 1과 같이 정의된다.
Figure 112018114642292-pat00001
여기서, 상기 수학식 1에서 생성 행렬 G는 t비트의 코드에 대한 오류 정정 능력을 갖는 k x n 크기의 생성 행렬이고, S는 랜덤하게 결정된 k x k 크기를 갖는 이진 정칙 행렬이며, P는 랜덤하게 결정된 n x n 크기를 갖는 순열 행렬이다.
이때, 데이터 수신 장치는 메모리 상에서 상기 공개키 Kpub에 대응하는 개인키로 상기 생성 행렬 G, 상기 이진 정칙 행렬 S 및 상기 순열 행렬 P를 각각 저장하고 있다.
이러한 상황 하에서 데이터 전송 장치는 상기 데이터 수신 장치로 전송할 k비트의 크기를 갖는 데이터 m에 대해서 하기의 수학식 2에 따른 암호화 연산을 수행함으로써, 암호화 데이터 c를 생성할 수 있다.
Figure 112018114642292-pat00002
여기서, e는 t이하의 해밍 무게(Hamming Weight)를 가지면서, n비트의 길이를 갖는 랜덤 오류 코드이고, "
Figure 112018114642292-pat00003
"는 배타적 논리합 연산이다.
그리고, 해밍 무게란 데이터를 구성하는 비트열에서 "1"이라는 비트 값의 개수를 의미한다.
이렇게, 상기 암호화 데이터 c가 생성되면, 상기 데이터 전송 장치는 상기 데이터 수신 장치로 상기 암호화 데이터 c를 전송함으로써, 데이터 암호화 전송을 완료한다.
이렇게, 상기 데이터 전송 장치로부터 상기 암호화 데이터 c가 상기 데이터 수신 장치로 전송되면, 상기 데이터 수신 장치는 메모리 상에 저장되어 있는 상기 생성 행렬 G, 상기 이진 정칙 행렬 S 및 상기 순열 행렬 P를 활용해서 상기 암호화 데이터에 대한 복호화를 수행하게 된다.
관련해서, 상기 데이터 수신 장치는 상기 암호화 데이터 c가 수신되면, 하기의 수학식 3과 같이 상기 암호화 데이터 c에 대해 상기 순열 행렬 P의 역행렬인 P-1을 곱하여 cP-1을 연산한다.
Figure 112018114642292-pat00004
그러고 나서, 상기 데이터 수신 장치는 cP-1로부터 상기 생성 행렬 G를 이용해서 오류 정정을 위한 데이터 디코딩을 수행하여 mS를 연산할 수 있다.
여기서, 상기 e는 t이하의 해밍 무게를 갖는 오류 코드이고, P는 순열 행렬이므로, eP-1도 t이하의 해밍 무게를 갖기 때문에 결론적으로 cP-1은 mSG라는 코드워드(codeword)에서 t개 이하의 비트 값에 대해 오류가 발생한 것으로 볼 수 있어서, 상기 데이터 수신 장치는 메모리 상에 저장되어 있는 t비트의 코드에 대한 오류 정정 능력을 갖는 생성 행렬인 G를 이용하여 cP-1에 대해 오류 정정을 수행함으로써, mS를 디코딩할 수 있다.
이렇게, mS의 연산이 완료되면, 상기 데이터 수신 장치는 하기의 수학식 4와 같이 메모리 상에 저장되어 있는 상기 이진 정칙 행렬 S의 역행렬인 S-1을 mS에 곱함으로써, 원본 데이터인 m을 최종적으로 복호화할 수 있다.
Figure 112018114642292-pat00005
이러한 부호 기반의 암호화 방식은 t비트 코드에 대한 오류 정정 능력을 갖는 생성 행렬을 이용하여 데이터를 암호화하기 때문에 데이터 암호화에 사용할 수 있는 오류 코드의 해밍 무게도 t로 제한된다는 점에서 재생 공격에 취약한 단점이 존재한다. 따라서, t비트 코드에 대한 오류 정정 능력을 갖는 생성 행렬을 이용하는 부호 기반의 암호화 방식에서 t를 초과하는 해밍 무게를 갖는 오류 코드를 이용하여 데이터 암호화를 수행하더라도 데이터 수신측에서 원본 데이터를 복원할 수 있도록 하는 기법을 제시함으로써, 데이터 암호화의 보안성을 강화할 수 있는 기술의 연구가 필요하다.
본 발명은 t(t는 자연수)비트 코드에 대한 오류 정정 능력을 갖는 생성 행렬을 이용하는 부호 기반의 암호화 방식에서 t를 초과하는 해밍 무게(Hamming Weight)를 갖는 오류 코드를 이용하여 데이터 암호화를 수행하더라도 데이터 수신측에서 원본 데이터를 복원할 수 있도록 하는 기법을 제시함으로써, 데이터 암호화에 있어 높은 보안성을 제공하고자 한다.
본 발명의 일실시예에 따른 t+a개의 오류 코드가 삽입된 부호 기반의 암호화 데이터의 복호화가 가능한 전자 장치는 "1"과 "0"의 코드값을 성분으로 포함하는 k x k(k는 자연수) 크기의 이진 정칙 행렬 S, t(t는 자연수)비트의 코드에 대한 오류 정정 능력을 가지면서 "1"과 "0"의 코드값을 성분으로 포함하는 k x n(n은 자연수) 크기의 생성 행렬 G 및 "1"과 "0"의 코드값을 성분으로 포함하는 n x n 크기의 순열 행렬 P를 데이터 복호화에 사용하기 위한 개인키로 저장하고 있는 개인키 저장부, 데이터 전송 장치로부터, 상기 이진 정칙 행렬 S, 상기 생성 행렬 G 및 상기 순열 행렬 P가 곱해진 공개키 Kpub(Kpub=SGP임)와 t+a(a는 자연수)의 해밍 무게(Hamming Weight)를 가지면서 n비트의 크기를 갖는 오류 코드 e를 기초로 부호 기반의 암호화가 수행되어 생성된 암호화 데이터 c가 수신되는 경우, 상기 암호화 데이터 c에서 a개의 임의의 비트를 반전하여 수정된 암호화 데이터 c'을 생성하고, 상기 수정된 암호화 데이터 c'에 대해 상기 개인키로 저장되어 있는 상기 이진 정칙 행렬 S, 상기 생성 행렬 G 및 상기 순열 행렬 P를 기초로 부호 기반의 복호화를 수행함으로써, 복호화 데이터 d를 생성하는 데이터 복호화부, 상기 복호화 데이터 d에 대한 부호 기반의 복호화의 성공 여부를 검증하는 복호화 검증부 및 상기 복호화 데이터 d에 대한 부호 기반의 복호화가 실패인 것으로 검증된 경우, 상기 암호화 데이터 c로부터 상기 복호화 데이터 d를 다시 생성하기 위해 상기 데이터 복호화부의 동작을 재수행할 것을 지시하는 재수행 지시 이벤트를 발생시키는 재수행 지시부를 포함한다.
또한, 본 발명의 일실시예에 따르면, t+a개의 오류 코드가 삽입된 부호 기반의 암호화 데이터의 복호화가 가능한 전자 장치의 동작 방법은 "1"과 "0"의 코드값을 성분으로 포함하는 k x k(k는 자연수) 크기의 이진 정칙 행렬 S, t(t는 자연수)비트의 코드에 대한 오류 정정 능력을 가지면서 "1"과 "0"의 코드값을 성분으로 포함하는 k x n(n은 자연수) 크기의 생성 행렬 G 및 "1"과 "0"의 코드값을 성분으로 포함하는 n x n 크기의 순열 행렬 P를 데이터 복호화에 사용하기 위한 개인키로 저장하고 있는 개인키 저장부를 유지하는 단계, 데이터 전송 장치로부터, 상기 이진 정칙 행렬 S, 상기 생성 행렬 G 및 상기 순열 행렬 P가 곱해진 공개키 Kpub(Kpub=SGP임)와 t+a(a는 자연수)의 해밍 무게를 가지면서 n비트의 크기를 갖는 오류 코드 e를 기초로 부호 기반의 암호화가 수행되어 생성된 암호화 데이터 c가 수신되는 경우, 상기 암호화 데이터 c에서 a개의 임의의 비트를 반전하여 수정된 암호화 데이터 c'을 생성하고, 상기 수정된 암호화 데이터 c'에 대해 상기 개인키로 저장되어 있는 상기 이진 정칙 행렬 S, 상기 생성 행렬 G 및 상기 순열 행렬 P를 기초로 부호 기반의 복호화를 수행함으로써, 복호화 데이터 d를 생성하는 단계, 상기 복호화 데이터 d에 대한 부호 기반의 복호화의 성공 여부를 검증하는 단계 및 상기 복호화 데이터 d에 대한 부호 기반의 복호화가 실패인 것으로 검증된 경우, 상기 암호화 데이터 c로부터 상기 복호화 데이터 d를 다시 생성하기 위해 상기 복호화 데이터 d를 생성하는 단계를 재수행할 것을 지시하는 재수행 지시 이벤트를 발생시키는 단계를 포함한다.
본 발명은 t(t는 자연수)비트 코드에 대한 오류 정정 능력을 갖는 생성 행렬을 이용하는 부호 기반의 암호화 방식에서 t를 초과하는 해밍 무게(Hamming Weight)를 갖는 오류 코드를 이용하여 데이터 암호화를 수행하더라도 데이터 수신측에서 원본 데이터를 복원할 수 있도록 하는 기법을 제시함으로써, 데이터 암호화에 있어 높은 보안성을 제공할 수 있다.
도 1은 본 발명의 일실시예에 따른 t+a개의 오류 코드가 삽입된 부호 기반의 암호화 데이터의 복호화가 가능한 전자 장치의 구조를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 t+a개의 오류 코드가 삽입된 부호 기반의 암호화 데이터의 복호화가 가능한 전자 장치의 동작 방법을 도시한 순서도이다.
이하에서는 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명하기로 한다. 이러한 설명은 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였으며, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 본 명세서 상에서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 사람에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.
본 문서에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다. 또한, 본 발명의 다양한 실시예들에 있어서, 각 구성요소들, 기능 블록들 또는 수단들은 하나 또는 그 이상의 하부 구성요소로 구성될 수 있고, 각 구성요소들이 수행하는 전기, 전자, 기계적 기능들은 전자회로, 집적회로, ASIC(Application Specific Integrated Circuit) 등 공지된 다양한 소자들 또는 기계적 요소들로 구현될 수 있으며, 각각 별개로 구현되거나 2 이상이 하나로 통합되어 구현될 수도 있다.
한편, 첨부된 블록도의 블록들이나 흐름도의 단계들은 범용 컴퓨터, 특수용 컴퓨터, 휴대용 노트북 컴퓨터, 네트워크 컴퓨터 등 데이터 프로세싱이 가능한 장비의 프로세서나 메모리에 탑재되어 지정된 기능들을 수행하는 컴퓨터 프로그램 명령들(instructions)을 의미하는 것으로 해석될 수 있다. 이들 컴퓨터 프로그램 명령들은 컴퓨터 장치에 구비된 메모리 또는 컴퓨터에서 판독 가능한 메모리에 저장될 수 있기 때문에, 블록도의 블록들 또는 흐름도의 단계들에서 설명된 기능들은 이를 수행하는 명령 수단을 내포하는 제조물로 생산될 수도 있다. 아울러, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 명령들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 가능한 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 정해진 순서와 달리 실행되는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 실질적으로 동시에 수행되거나, 역순으로 수행될 수 있으며, 경우에 따라 일부 블록들 또는 단계들이 생략된 채로 수행될 수도 있다.
도 1은 본 발명의 일실시예에 따른 t+a개의 오류 코드가 삽입된 부호 기반의 암호화 데이터의 복호화가 가능한 전자 장치의 구조를 도시한 도면이다.
도 1을 참조하면, 본 발명에 따른 t+a개의 오류 코드가 삽입된 부호 기반의 암호화 데이터의 복호화가 가능한 전자 장치(110)는 개인키 저장부(111), 데이터 복호화부(112), 복호화 검증부(113) 및 재수행 지시부(114)를 포함한다.
우선, 데이터 전송 장치(120)는 원본 데이터 m을 전자 장치(110)로 전송하기 위해 암호화를 수행할 수 있는데, 데이터 전송 장치(120)가 원본 데이터 m에 대해 암호화를 수행하는 과정을 설명하면 다음과 같다.
데이터 전송 장치(120)는 메모리 상에 "1"과 "0"의 코드값을 성분으로 포함하는 k x k(k는 자연수) 크기의 이진 정칙 행렬 S, t(t는 자연수)비트의 코드에 대한 오류 정정 능력을 가지면서 "1"과 "0"의 코드값을 성분으로 포함하는 k x n(n은 자연수) 크기의 생성 행렬 G 및 "1"과 "0"의 코드값을 성분으로 포함하는 n x n 크기의 순열 행렬 P가 곱해진 공개키 Kpub(Kpub=SGP임)를 저장하고 있다.
관련해서, 상기 공개키 Kpub는 하기의 수학식 5와 같이 나타낼 수 있다.
Figure 112018114642292-pat00006
이때, 전자 장치(110)로 전송될 원본 데이터 m의 크기가 k1(k1은 k보다 작은 자연수임)비트라고 하는 경우, 데이터 전송 장치(120)는 (k-k1)비트의 크기를 갖는 랜덤 비트열 r을 생성한 후 상기 원본 데이터 m과 상기 랜덤 비트열 r을 연접(Concatenation)한 연접 데이터 (m∥r)을 생성할 수 있다.
여기서, 상기 원본 데이터 m의 크기가 k1비트이고, 상기 랜덤 비트열 r의 크기가 (k-k1)비트라고 하였기 때문에, 상기 연접 데이터 (m∥r)의 크기는 k비트가 된다.
이렇게, 상기 연접 데이터 (m∥r)이 생성되면, 데이터 전송 장치(120)는 기설정된(predetermined) 해시 함수에 상기 연접 데이터 (m∥r)을 입력으로 인가하여 해시값 h를 생성할 수 있다.
관련해서, 상기 해시 함수를 H()라고 하였을 때, 상기 해시값 h는 하기의 수학식 6과 같이 표현될 수 있다.
Figure 112018114642292-pat00007
상기 해시값 h가 생성되면, 데이터 전송 장치(120)는 기설정된 비트열 생성 함수(상기 비트열 생성 함수는 입력값이 인가되면, 해밍 무게(Hamming Weight)가 t+a(a는 자연수)이면서, n비트의 크기를 갖는 비트열을 출력값으로 출력하는 함수임)에 상기 해시값 h를 입력으로 인가하여, 해밍 무게가 t+a이면서, n비트의 크기를 갖는 오류 코드 e를 생성할 수 있다.
관련해서, 상기 비트열 생성 함수를 B()라고 한다면, 상기 오류 코드 e는 하기의 수학식 7과 같이 표현될 수 있다.
Figure 112018114642292-pat00008
이렇게, 상기 오류 코드 e가 생성되면, 데이터 전송 장치(120)는 상기 연접 데이터 (m∥r)에 대해 상기 공개키 Kpub와 상기 오류 코드 e를 기초로 부호 기반의 암호화를 수행하여 암호화 데이터 c를 생성한 후 상기 암호화 데이터 c를 전자 장치(110)로 전송할 수 있다.
이때, 본 발명의 일실시예에 따르면, 데이터 전송 장치(120)는 상기 오류 코드 e가 생성되면, 상기 연접 데이터 (m∥r)에 상기 공개키 Kpub를 곱하여 결과값 cr을 생성하고, 상기 결과값 cr과 상기 오류 코드 e에 대해 배타적 논리합 연산을 수행함으로써, 상기 암호화 데이터 c를 생성할 수 있다.
관련해서, 데이터 전송 장치(120)는 하기의 수학식 8의 연산에 따라 상기 암호화 메시지 c를 생성할 수 있다.
Figure 112018114642292-pat00009
여기서, "
Figure 112018114642292-pat00010
"는 배타적 논리합 연산을 의미한다.
이렇게, 데이터 전송 장치(110)로부터 상기 암호화 데이터 c가 전자 장치(110)로 전송되면, 전자 장치(110)는 상기 암호화 데이터 c에 대한 복호화를 수행할 수 있다.
이와 관련해서, 전자 장치(110)는 상기 암호화 데이터 c에 대한 복호화를 수행하기 위해, 개인키 저장부(111)에 상기 이진 정칙 행렬 S, 상기 생성 행렬 G 및 상기 순열 행렬 P를 데이터 복호화에 사용하기 위한 개인키로 저장하고 있다.
데이터 복호화부(112)는 데이터 전송 장치(120)로부터 상기 암호화 데이터 c가 수신되는 경우, 상기 암호화 데이터 c에서 a개의 임의의 비트를 반전하여 수정된 암호화 데이터 c'을 생성하고, 상기 수정된 암호화 데이터 c'에 대해 상기 개인키로 저장되어 있는 상기 이진 정칙 행렬 S, 상기 생성 행렬 G 및 상기 순열 행렬 P를 기초로 부호 기반의 복호화를 수행함으로써, 복호화 데이터 d를 생성한다.
이때, 본 발명의 일실시예에 따르면, 데이터 복호화부(112)는 상기 수정된 암호화 데이터 c'에 대해 상기 순열 행렬 P의 역행렬 P-1을 곱하여 c'P-1을 연산하고, 상기 생성 행렬 G를 기초로 상기 c'P-1에 대해 오류 정정을 위한 복호화를 수행하여 오류 정정이 수행된 정정 데이터 i를 생성한 후 상기 정정 데이터 i에 대해 상기 이진 정칙 행렬 S의 역행렬 S-1을 곱함으로써 상기 복호화 데이터 d를 생성할 수 있다.
관련해서, 상기 암호화 데이터 c는 상기 수학식 8에서 나타낸 바와 같이, 상기 연접 데이터 (m∥r)과 상기 공개키 Kpub를 곱한 결과값 cr에 t+a의 해밍 무게를 갖는 오류 코드 e가 배타적 논리합되어 생성된 데이터이기 때문에, 결국 상기 암호화 데이터 c는 상기 결과값 cr에 t+a 비트의 오류가 삽입된 데이터라고 볼 수 있다.
이때, 상기 생성 행렬 G는 t비트에 대한 오류 정정 능력을 갖는 생성 행렬이기 때문에 데이터 복호화부(112)는 상기 생성 행렬 G를 기초로 t+a개의 오류가 삽입되어 있는 상기 암호화 데이터 c에 대해 오류 정정 기반의 복호화를 수행하지 못하게 된다.
따라서, 데이터 복호화부(112)는 상기 암호화 데이터 c에서 a개의 임의의 비트에 오류가 있다고 가정하고, 상기 암호화 데이터 c에서 상기 a개의 임의의 비트를 반전함으로써, t개의 오류만 삽입된 수정된 암호화 데이터 c'을 생성할 수 있다. 만약, 상기 a개의 임의의 비트가 실제로 오류가 발생한 비트가 맞다고 한다면, 데이터 복호화부(112)가 생성한 상기 수정된 암호화 데이터 c'은 상기 결과값 cr에서 t개의 비트에서 오류가 발생한 데이터라고 볼 수 있을 것이다.
이렇게, 상기 수정된 암호화 데이터 c'이 생성되면, 데이터 복호화부(112)는 상기 수정된 암호화 데이터 c'이 상기 결과값 cr에서 t개의 비트에 오류가 발생한 데이터라고 가정하고, 하기의 수학식 9의 연산에 따라 상기 수정된 암호화 데이터 c'에 대해 상기 순열 행렬 P의 역행렬 P-1을 곱하여 c'P-1을 연산한 후 상기 생성 행렬 G를 기초로 상기 c'P-1에 대해 오류 정정을 위한 복호화를 수행하여 정정 데이터 i를 생성할 수 있다.
Figure 112018114642292-pat00011
여기서, e'은 상기 수정된 암호화 데이터 c'에서 사용된 임시 오류 코드로, 상기 수정된 암호화 데이터 c'은 상기 결과값 cr에서 t개의 비트에 오류가 발생한 데이터라고 가정하였기 때문에 t의 해밍 무게를 갖게 된다. 그리고, i는 c'P-1에 대해 오류 정정을 위한 복호화가 수행될 경우에 복원되는 정정 데이터를 의미한다.
이때, 상기 수학식 9의 연산에 따라 연산된 c'P-1은 iG라는 코드워드(codeword)에서 t개 비트값에 대해 오류가 발생한 데이터라고 볼 수 있다. 이는 e'이 t의 해밍 무게를 갖는 오류 코드이고, P는 순열 행렬이므로, e'P-1도 t의 해밍 무게를 갖기 때문이다. 따라서, 데이터 복호화부(112)는 t비트의 코드에 대한 오류 정정 능력을 갖는 상기 생성 행렬 G를 이용하여 c'P-1에 대해 오류 정정을 위한 복호화를 수행함으로써, 정정 데이터 i를 생성할 수 있다.
이때, 본 발명의 일실시예에 따르면, 데이터 복호화부(112)는 오류 정정을 위한 복호화 방식으로 신드롬 디코딩을 사용할 수 있는데, 구체적으로 데이터 복호화부(112)는 상기 생성 행렬 G에 대응하는 패리티 검사 행렬을 생성하고, 상기 패리티 검사 행렬을 기초로 c'P-1로부터 신드롬을 연산한 후 연산된 신드롬을 기초로 신드롬 디코딩을 수행함으로써, 상기 정정 데이터 i를 연산할 수 있다.
이렇게, 상기 정정 데이터 i가 생성되면, 데이터 복호화부(112)는 상기 정정 데이터 i에 대해 상기 이진 정칙 행렬 S의 역행렬 S-1을 곱함으로써 상기 복호화 데이터 d를 생성할 수 있다.
만약, 상기 암호화 데이터 c에서 비트 반전을 수행하였던 a개의 임의의 비트가 정확하게 오류가 발생한 데이터가 맞다고 한다면, 상기 수정된 암호화 데이터 c'은 상기 결과값 cr에서 t의 해밍 무게를 갖는 상기 임시 오류 코드 e'이 배타적 논리합된 결과와 같다고 볼 수 있기 때문에, 상기 수학식 9에서 나타낸 c'P-1은 하기의 수학식 10과 같이 나타낼 수 있을 것이다.
Figure 112018114642292-pat00012
이로 인해, 데이터 복호화부(112)가 상기 수학식 10에 따른 c'P-1에 대해 상기 생성 행렬 G를 기초로 오류 정정을 위한 복호화를 수행하게 되면, 상기 정정 데이터 i는 (m∥r)S로 복원될 것이고, 데이터 복호화부(112)가 (m∥r)S라고 하는 데이터에 상기 이진 정칙 행렬 S의 역행렬 S-1을 곱하게 되면, (m∥r)이라는 데이터가 상기 복호화 데이터 d로 생성될 것이다.
즉, 상기 암호화 데이터 c에서 비트 반전을 수행하였던 a개의 임의의 비트가 정확하게 오류가 발생한 데이터가 맞다고 한다면, 데이터 복호화부(112)가 생성한 상기 복호화 데이터 d는 데이터 전송 장치(120)가 생성하였던 상기 연접 데이터 (m∥r)과 일치하기 때문에 정확하게 데이터 복호화가 수행된 것으로 볼 수 있다.
하지만, 상기 암호화 데이터 c에서 비트 반전을 수행하였던 a개의 임의의 비트가 정확하게 오류가 발생한 데이터가 아니라고 한다면, 데이터 복호화부(112)가 생성한 상기 복호화 데이터 d는 데이터 전송 장치(120)가 생성하였던 상기 연접 데이터 (m∥r)과 일치하지 않을 것이기 때문에 정확하게 데이터 복호화가 수행된 것으로 볼 수 없다.
따라서, 복호화 검증부(113)는 상기 복호화 데이터 d가 생성되면, 상기 복호화 데이터 d에 대한 부호 기반의 복호화의 성공 여부를 검증하게 된다.
만약, 상기 복호화 데이터 d에 대한 부호 기반의 복호화가 실패인 것으로 검증된 경우, 재수행 지시부(114)는 상기 암호화 데이터 c로부터 상기 복호화 데이터 d를 다시 생성하기 위해 데이터 복호화부(112)의 동작을 재수행할 것을 지시하는 재수행 지시 이벤트를 발생시킨다.
즉, 상기 복호화 데이터 d에 대한 부호 기반의 복호화가 실패인 것으로 검증되는 경우, 상기 암호화 데이터 c에서 비트 반전을 수행하였던 a개의 임의의 비트가 오류가 발생한 데이터가 아니라고 볼 수 있기 때문에, 데이터 복호화부(112)는 상기 암호화 데이터 c에서 a개의 임의의 비트를 다시 선택하여 비트 반전을 수행함으로써, 암호화 데이터를 다시 생성한 후 다시 생성된 암호화 데이터에 대해 상기 이진 정칙 행렬 S, 상기 생성 행렬 G 및 상기 순열 행렬 P를 기초로 부호 기반의 복호화를 수행함으로써, 복호화 데이터를 다시 생성할 수 있다. 그리고, 복호화 검증부(113)는 다시 생성된 복호화 데이터에 대한 복호화 성공 여부를 다시 검증할 수 있고, 복호화가 또 실패인 것으로 검증되면, 복호화 데이터의 생성 과정이 다시 수행되도록 하는 재수행 지시 이벤트를 다시 발생시킬 수 있다.
이러한 방식으로, 전자 장치(110)는 복호화가 성공으로 검증될 때까지 상기 암호화 데이터 c에서 a개의 임의의 비트를 선택 반전한 후 부호 기반 복호화를 수행하는 과정을 계속 반복할 수 있다.
이때, 본 발명의 일실시예에 따르면, 복호화 검증부(113)는 오류 코드 복원부(115), 해시값 복원부(116) 및 복호화 검증 처리부(117)를 포함할 수 있다.
오류 코드 복원부(115)는 상기 복호화 데이터 d가 생성되면, 상기 복호화 데이터 d와 상기 수정된 암호화 데이터 c'을 기초로 상기 수정된 암호화 데이터 c'에서의 오류 코드로 사용된 임시 오류 코드 e'을 복원하고, 상기 임시 오류 코드 e'에서 데이터 복호화부(112)를 통해 반전된 상기 a개의 임의의 비트와 동일한 위치의 비트를 반전하여 상기 오류 코드 e를 복원한다.
관련해서, 오류 코드 복원부(115)는 하기의 수학식 11의 연산에 따라 상기 복호화 데이터 d에 상기 이진 정칙 행렬 S, 상기 생성 행렬 G 및 상기 순열 행렬 P를 순차적으로 곱한 후 해당 결과값과 상기 수정된 암호화 메시지 c'을 서로 배타적 논리합함으로써, 상기 임시 오류 코드 e'을 복원할 수 있다.
Figure 112018114642292-pat00013
이렇게, 상기 임시 오류 코드 e'이 복원되면, 오류 코드 복원부(115)는 데이터 복호화부(112)를 통해 반전된 상기 a개의 임의의 비트와 동일한 위치의 비트를 반전하여 상기 오류 코드 e를 복원할 수 있다.
상기 오류 코드 e는 t+a의 해밍 무게를 갖는 오류 코드이고, 상기 임시 오류 코드 e'은 t의 해밍 무게를 갖는 오류 코드로 상기 임시 오류 코드 e'은 데이터 복호화부(112)가 상기 암호화 데이터 c에서 a개의 임의의 비트에 오류가 발생하였다고 가정하고 a개의 임의의 비트를 반전하여 생성한 수정된 암호화 데이터 c'에서 발생한 오류 코드이기 때문에, 오류 코드 복원부(115)는 상기 임시 오류 코드 e'에 대해 상기 a개의 임의의 비트와 동일한 위치의 비트를 반전함으로써, 상기 오류 코드 e를 복원할 수 있다.
해시값 복원부(116)는 상기 비트열 생성 함수를 기초로 상기 복원된 오류 코드 e를 출력값으로 갖는 입력값을 도출하기 위한 역연산을 수행함으로써, 상기 해시값 h를 복원한다.
그리고, 복호화 검증 처리부(117)는 상기 복호화 데이터 d를 상기 해시 함수에 입력으로 인가하여 검증용 해시값 h'을 생성한 후 상기 검증용 해시값 h'이 상기 복원된 해시값 h와 동일한 것으로 판단되면, 상기 복호화 데이터 d에 대한 부호 기반의 복호화가 성공인 것으로 검증한다.
관련해서, 데이터 복호화부(112)에서 데이터 복호화를 수행한 결과, 상기 암호화 데이터 c에서 비트 반전을 수행하였던 a개의 임의의 비트가 정확하게 오류가 발생한 데이터가 맞음으로 인해, 데이터 복호화부(112)가 생성한 상기 복호화 데이터 d가 데이터 전송 장치(120)에서 생성된 상기 연접 데이터 (m∥r)과 일치하게 되는 경우, 오류 코드 복원부(115)에서 복원된 오류 코드 e는 데이터 전송 장치(120)가 생성한 t+a의 해밍 무게를 갖는 오류 코드 e와 동일해질 것이고, 이로 인해, 해시값 복원부(116)가 상기 수학식 7에 대한 역연산을 수행함으로써 복원한 해시값 h는 상기 복호화 데이터 d를 상기 해시 함수에 입력으로 인가하여 생성한 검증용 해시값 h'과 같아지게 된다.
따라서, 복호화 검증 처리부(117)는 상기 검증용 해시값 h'이 상기 복원된 해시값 h와 동일한 것으로 판단되면, 상기 복호화 데이터 d에 대한 부호 기반의 복호화가 성공인 것으로 검증한다.
이때, 본 발명의 일실시예에 따르면, 전자 장치(110)는 원본 데이터 복원부(118)를 더 포함할 수 있다.
원본 데이터 복원부(118)는 상기 복호화 데이터 d에 대한 부호 기반의 복호화가 성공인 것으로 검증된 경우, 상기 복호화 데이터 d에서 k1비트의 비트열 데이터를 상기 원본 데이터 m으로 분리 추출함으로써, 상기 원본 데이터 m을 복원한다.
즉, 상기 복호화 데이터 d에 대한 부호 기반의 복호화가 성공인 것으로 검증된 경우, 상기 복호화 데이터 d는 데이터 전송 장치(120)에서 생성된 상기 연접 데이터 (m∥r)과 동일한 데이터이기 때문에 원본 데이터 복원부(118)는 상기 복호화 데이터 d를 구성하는 비트열에서 좌측에서 우측 방향으로 k1비트만큼의 비트열 데이터를 분리 추출함으로써, 상기 원본 데이터 m을 복원할 수 있다.
도 2는 본 발명의 일실시예에 따른 t+a개의 오류 코드가 삽입된 부호 기반의 암호화 데이터의 복호화가 가능한 전자 장치의 동작 방법을 도시한 순서도이다.
단계(S210)에서는 "1"과 "0"의 코드값을 성분으로 포함하는 k x k(k는 자연수) 크기의 이진 정칙 행렬 S, t(t는 자연수)비트의 코드에 대한 오류 정정 능력을 가지면서 "1"과 "0"의 코드값을 성분으로 포함하는 k x n(n은 자연수) 크기의 생성 행렬 G 및 "1"과 "0"의 코드값을 성분으로 포함하는 n x n 크기의 순열 행렬 P를 데이터 복호화에 사용하기 위한 개인키로 저장하고 있는 개인키 저장부를 유지한다.
단계(S220)에서는 데이터 전송 장치로부터, 상기 이진 정칙 행렬 S, 상기 생성 행렬 G 및 상기 순열 행렬 P가 곱해진 공개키 Kpub(Kpub=SGP임)와 t+a(a는 자연수)의 해밍 무게를 가지면서 n비트의 크기를 갖는 오류 코드 e를 기초로 부호 기반의 암호화가 수행되어 생성된 암호화 데이터 c가 수신되는 경우, 상기 암호화 데이터 c에서 a개의 임의의 비트를 반전하여 수정된 암호화 데이터 c'을 생성하고, 상기 수정된 암호화 데이터 c'에 대해 상기 개인키로 저장되어 있는 상기 이진 정칙 행렬 S, 상기 생성 행렬 G 및 상기 순열 행렬 P를 기초로 부호 기반의 복호화를 수행함으로써, 복호화 데이터 d를 생성한다.
단계(S230)에서는 상기 복호화 데이터 d에 대한 부호 기반의 복호화의 성공 여부를 검증한다.
단계(S240)에서는 상기 복호화 데이터 d에 대한 부호 기반의 복호화가 실패인 것으로 검증된 경우, 상기 암호화 데이터 c로부터 상기 복호화 데이터 d를 다시 생성하기 위해 상기 복호화 데이터 d를 생성하는 단계를 재수행할 것을 지시하는 재수행 지시 이벤트를 발생시킨다.
이때, 본 발명의 일실시예에 따르면, 상기 데이터 전송 장치는 메모리 상에 상기 공개키 Kpub를 저장하고 있고, 상기 전자 장치로 전송할 원본 데이터 m의 크기가 k1(k1은 k보다 작은 자연수임)비트라고 하는 경우, (k-k1)비트의 크기를 갖는 랜덤 비트열 r을 생성한 후 상기 원본 데이터 m과 상기 랜덤 비트열 r을 연접한 연접 데이터 (m∥r)을 생성할 수 있다.
그리고, 상기 데이터 전송 장치는 상기 연접 데이터 (m∥r)이 생성되면, 기설정된 해시 함수에 상기 연접 데이터 (m∥r)을 입력으로 인가하여 해시값 h를 생성할 수 있고, 상기 해시값 h가 생성되면, 기설정된 비트열 생성 함수 - 상기 비트열 생성 함수는 입력값이 인가되면, 해밍 무게가 t+a이면서, n비트의 크기를 갖는 비트열을 출력값으로 출력하는 함수임 - 에 상기 해시값 h를 입력으로 인가하여, 해밍 무게가 t+a이면서, n비트의 크기를 갖는 상기 오류 코드 e를 생성할 수 있다.
그리고, 상기 데이터 전송 장치는 상기 오류 코드 e가 생성되면, 상기 연접 데이터 (m∥r)에 대해 상기 공개키 Kpub와 상기 오류 코드 e를 기초로 부호 기반의 암호화를 수행하여 상기 암호화 데이터 c를 생성한 후 상기 암호화 데이터 c를 상기 전자 장치로 전송할 수 있다.
이때, 본 발명의 일실시예에 따르면, 상기 데이터 전송 장치는 상기 오류 코드 e가 생성되면, 상기 연접 데이터 (m∥r)에 상기 공개키 Kpub를 곱하여 결과값 cr을 생성하고, 상기 결과값 cr과 상기 오류 코드 e에 대해 배타적 논리합 연산을 수행함으로써, 상기 암호화 데이터 c를 생성할 수 있다.
이때, 본 발명의 일실시예에 따르면, 단계(S220)에서는 상기 수정된 암호화 데이터 c'에 대해 상기 순열 행렬 P의 역행렬 P-1을 곱하여 c'P-1을 연산하고, 상기 생성 행렬 G를 기초로 상기 c'P-1에 대해 오류 정정을 위한 복호화를 수행하여 오류 정정이 수행된 정정 데이터 i를 생성한 후 상기 정정 데이터 i에 대해 상기 이진 정칙 행렬 S의 역행렬 S-1을 곱함으로써 상기 복호화 데이터 d를 생성할 수 있다.
또한, 본 발명의 일실시예에 따르면, 단계(S230)에서는 상기 복호화 데이터 d가 생성되면, 상기 복호화 데이터 d와 상기 수정된 암호화 데이터 c'을 기초로 상기 수정된 암호화 데이터 c'에서의 오류 코드로 사용된 임시 오류 코드 e'을 복원하고, 상기 임시 오류 코드 e'에서 상기 복호화 데이터 d를 생성하는 단계를 통해 반전된 상기 a개의 임의의 비트와 동일한 위치의 비트를 반전하여 상기 오류 코드 e를 복원하는 단계, 상기 비트열 생성 함수를 기초로 상기 복원된 오류 코드 e를 출력값으로 갖는 입력값을 도출하기 위한 역연산을 수행함으로써, 상기 해시값 h를 복원하는 단계 및 상기 복호화 데이터 d를 상기 해시 함수에 입력으로 인가하여 검증용 해시값 h'을 생성한 후 상기 검증용 해시값 h'이 상기 복원된 해시값 h와 동일한 것으로 판단되면, 상기 복호화 데이터 d에 대한 부호 기반의 복호화가 성공인 것으로 검증하는 단계를 포함할 수 있다.
또한, 본 발명의 일실시예에 따르면, 상기 전자 장치의 동작 방법은 상기 복호화 데이터 d에 대한 부호 기반의 복호화가 성공인 것으로 검증된 경우, 상기 복호화 데이터 d에서 k1비트의 비트열 데이터를 상기 원본 데이터 m으로 분리 추출함으로써, 상기 원본 데이터 m을 복원하는 단계를 더 포함할 수 있다.
이상, 도 2를 참조하여 본 발명의 일실시예에 따른 t+a개의 오류 코드가 삽입된 부호 기반의 암호화 데이터의 복호화가 가능한 전자 장치의 동작 방법에 대해 설명하였다. 여기서, 본 발명의 일실시예에 따른 t+a개의 오류 코드가 삽입된 부호 기반의 암호화 데이터의 복호화가 가능한 전자 장치의 동작 방법은 도 1을 이용하여 설명한 t+a개의 오류 코드가 삽입된 부호 기반의 암호화 데이터의 복호화가 가능한 전자 장치(110)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.
본 발명의 일실시예에 따른 t+a개의 오류 코드가 삽입된 부호 기반의 암호화 데이터의 복호화가 가능한 전자 장치의 동작 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.
또한, 본 발명의 일실시예에 따른 t+a개의 오류 코드가 삽입된 부호 기반의 암호화 데이터의 복호화가 가능한 전자 장치의 동작 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
110: t+a개의 오류 코드가 삽입된 부호 기반의 암호화 데이터의 복호화가 가능한 전자 장치
111: 개인키 저장부 112: 데이터 복호화부
113: 복호화 검증부 114: 재수행 지시부
115: 오류 코드 복원부 116: 해시값 복원부
117: 복호화 검증 처리부 118: 원본 데이터 복원부
120: 데이터 전송 장치

Claims (14)

  1. "1"과 "0"의 코드값을 성분으로 포함하는 k x k(k는 자연수) 크기의 이진 정칙 행렬 S, t(t는 자연수)비트의 코드에 대한 오류 정정 능력을 가지면서 "1"과 "0"의 코드값을 성분으로 포함하는 k x n(n은 자연수) 크기의 생성 행렬 G 및 "1"과 "0"의 코드값을 성분으로 포함하는 n x n 크기의 순열 행렬 P를 데이터 복호화에 사용하기 위한 개인키로 저장하고 있는 개인키 저장부;
    데이터 전송 장치로부터, 상기 이진 정칙 행렬 S, 상기 생성 행렬 G 및 상기 순열 행렬 P가 곱해진 공개키 Kpub(Kpub=SGP임)와 t+a(a는 자연수)의 해밍 무게(Hamming Weight)를 가지면서 n비트의 크기를 갖는 오류 코드 e를 기초로 부호 기반의 암호화가 수행되어 생성된 암호화 데이터 c가 수신되는 경우, 상기 암호화 데이터 c에서 a개의 임의의 비트를 반전하여 수정된 암호화 데이터 c'을 생성하고, 상기 수정된 암호화 데이터 c'에 대해 상기 개인키로 저장되어 있는 상기 이진 정칙 행렬 S, 상기 생성 행렬 G 및 상기 순열 행렬 P를 기초로 부호 기반의 복호화를 수행함으로써, 복호화 데이터 d를 생성하는 데이터 복호화부;
    상기 복호화 데이터 d에 대한 부호 기반의 복호화의 성공 여부를 검증하는 복호화 검증부; 및
    상기 복호화 데이터 d에 대한 부호 기반의 복호화가 실패인 것으로 검증된 경우, 상기 암호화 데이터 c로부터 상기 복호화 데이터 d를 다시 생성하기 위해 상기 데이터 복호화부의 동작을 재수행할 것을 지시하는 재수행 지시 이벤트를 발생시키는 재수행 지시부
    를 포함하는 t+a개의 오류 코드가 삽입된 부호 기반의 암호화 데이터의 복호화가 가능한 전자 장치.
  2. 제1항에 있어서,
    상기 데이터 전송 장치는
    메모리 상에 상기 공개키 Kpub를 저장하고 있고, 상기 전자 장치로 전송할 원본 데이터 m의 크기가 k1(k1은 k보다 작은 자연수임)비트라고 하는 경우, (k-k1)비트의 크기를 갖는 랜덤 비트열 r을 생성한 후 상기 원본 데이터 m과 상기 랜덤 비트열 r을 연접한 연접 데이터 (m∥r)을 생성하고,
    상기 연접 데이터 (m∥r)이 생성되면, 기설정된(predetermined) 해시 함수에 상기 연접 데이터 (m∥r)을 입력으로 인가하여 해시값 h를 생성하며,
    상기 해시값 h가 생성되면, 기설정된 비트열 생성 함수 - 상기 비트열 생성 함수는 입력값이 인가되면, 해밍 무게가 t+a이면서, n비트의 크기를 갖는 비트열을 출력값으로 출력하는 함수임 - 에 상기 해시값 h를 입력으로 인가하여, 해밍 무게가 t+a이면서, n비트의 크기를 갖는 상기 오류 코드 e를 생성하고,
    상기 오류 코드 e가 생성되면, 상기 연접 데이터 (m∥r)에 대해 상기 공개키 Kpub와 상기 오류 코드 e를 기초로 부호 기반의 암호화를 수행하여 상기 암호화 데이터 c를 생성한 후 상기 암호화 데이터 c를 상기 전자 장치로 전송하는 t+a개의 오류 코드가 삽입된 부호 기반의 암호화 데이터의 복호화가 가능한 전자 장치.
  3. 제2항에 있어서,
    상기 데이터 전송 장치는
    상기 오류 코드 e가 생성되면, 상기 연접 데이터 (m∥r)에 상기 공개키 Kpub를 곱하여 결과값 cr을 생성하고, 상기 결과값 cr과 상기 오류 코드 e에 대해 배타적 논리합 연산을 수행함으로써, 상기 암호화 데이터 c를 생성하는 t+a개의 오류 코드가 삽입된 부호 기반의 암호화 데이터의 복호화가 가능한 전자 장치.
  4. 제3항에 있어서,
    상기 데이터 복호화부는
    상기 수정된 암호화 데이터 c'에 대해 상기 순열 행렬 P의 역행렬 P-1을 곱하여 c'P-1을 연산하고, 상기 생성 행렬 G를 기초로 상기 c'P-1에 대해 오류 정정을 위한 복호화를 수행하여 오류 정정이 수행된 정정 데이터 i를 생성한 후 상기 정정 데이터 i에 대해 상기 이진 정칙 행렬 S의 역행렬 S-1을 곱함으로써 상기 복호화 데이터 d를 생성하는 t+a개의 오류 코드가 삽입된 부호 기반의 암호화 데이터의 복호화가 가능한 전자 장치.
  5. 제2항에 있어서,
    상기 복호화 검증부는
    상기 복호화 데이터 d가 생성되면, 상기 복호화 데이터 d와 상기 수정된 암호화 데이터 c'을 기초로 상기 수정된 암호화 데이터 c'에서의 오류 코드로 사용된 임시 오류 코드 e'을 복원하고, 상기 임시 오류 코드 e'에서 상기 데이터 복호화부를 통해 반전된 상기 a개의 임의의 비트와 동일한 위치의 비트를 반전하여 상기 오류 코드 e를 복원하는 오류 코드 복원부;
    상기 비트열 생성 함수를 기초로 상기 복원된 오류 코드 e를 출력값으로 갖는 입력값을 도출하기 위한 역연산을 수행함으로써, 상기 해시값 h를 복원하는 해시값 복원부; 및
    상기 복호화 데이터 d를 상기 해시 함수에 입력으로 인가하여 검증용 해시값 h'을 생성한 후 상기 검증용 해시값 h'이 상기 복원된 해시값 h와 동일한 것으로 판단되면, 상기 복호화 데이터 d에 대한 부호 기반의 복호화가 성공인 것으로 검증하는 복호화 검증 처리부
    를 포함하는 t+a개의 오류 코드가 삽입된 부호 기반의 암호화 데이터의 복호화가 가능한 전자 장치.
  6. 제2항에 있어서,
    상기 복호화 데이터 d에 대한 부호 기반의 복호화가 성공인 것으로 검증된 경우, 상기 복호화 데이터 d에서 k1비트의 비트열 데이터를 상기 원본 데이터 m으로 분리 추출함으로써, 상기 원본 데이터 m을 복원하는 원본 데이터 복원부
    를 더 포함하는 t+a개의 오류 코드가 삽입된 부호 기반의 암호화 데이터의 복호화가 가능한 전자 장치.
  7. "1"과 "0"의 코드값을 성분으로 포함하는 k x k(k는 자연수) 크기의 이진 정칙 행렬 S, t(t는 자연수)비트의 코드에 대한 오류 정정 능력을 가지면서 "1"과 "0"의 코드값을 성분으로 포함하는 k x n(n은 자연수) 크기의 생성 행렬 G 및 "1"과 "0"의 코드값을 성분으로 포함하는 n x n 크기의 순열 행렬 P를 데이터 복호화에 사용하기 위한 개인키로 저장하고 있는 개인키 저장부를 유지하는 단계;
    데이터 전송 장치로부터, 상기 이진 정칙 행렬 S, 상기 생성 행렬 G 및 상기 순열 행렬 P가 곱해진 공개키 Kpub(Kpub=SGP임)와 t+a(a는 자연수)의 해밍 무게(Hamming Weight)를 가지면서 n비트의 크기를 갖는 오류 코드 e를 기초로 부호 기반의 암호화가 수행되어 생성된 암호화 데이터 c가 수신되는 경우, 상기 암호화 데이터 c에서 a개의 임의의 비트를 반전하여 수정된 암호화 데이터 c'을 생성하고, 상기 수정된 암호화 데이터 c'에 대해 상기 개인키로 저장되어 있는 상기 이진 정칙 행렬 S, 상기 생성 행렬 G 및 상기 순열 행렬 P를 기초로 부호 기반의 복호화를 수행함으로써, 복호화 데이터 d를 생성하는 단계;
    상기 복호화 데이터 d에 대한 부호 기반의 복호화의 성공 여부를 검증하는 단계; 및
    상기 복호화 데이터 d에 대한 부호 기반의 복호화가 실패인 것으로 검증된 경우, 상기 암호화 데이터 c로부터 상기 복호화 데이터 d를 다시 생성하기 위해 상기 복호화 데이터 d를 생성하는 단계를 재수행할 것을 지시하는 재수행 지시 이벤트를 발생시키는 단계
    를 포함하는 t+a개의 오류 코드가 삽입된 부호 기반의 암호화 데이터의 복호화가 가능한 전자 장치의 동작 방법.
  8. 제7항에 있어서,
    상기 데이터 전송 장치는
    메모리 상에 상기 공개키 Kpub를 저장하고 있고, 상기 전자 장치로 전송할 원본 데이터 m의 크기가 k1(k1은 k보다 작은 자연수임)비트라고 하는 경우, (k-k1)비트의 크기를 갖는 랜덤 비트열 r을 생성한 후 상기 원본 데이터 m과 상기 랜덤 비트열 r을 연접한 연접 데이터 (m∥r)을 생성하고,
    상기 연접 데이터 (m∥r)이 생성되면, 기설정된(predetermined) 해시 함수에 상기 연접 데이터 (m∥r)을 입력으로 인가하여 해시값 h를 생성하며,
    상기 해시값 h가 생성되면, 기설정된 비트열 생성 함수 - 상기 비트열 생성 함수는 입력값이 인가되면, 해밍 무게가 t+a이면서, n비트의 크기를 갖는 비트열을 출력값으로 출력하는 함수임 - 에 상기 해시값 h를 입력으로 인가하여, 해밍 무게가 t+a이면서, n비트의 크기를 갖는 상기 오류 코드 e를 생성하고,
    상기 오류 코드 e가 생성되면, 상기 연접 데이터 (m∥r)에 대해 상기 공개키 Kpub와 상기 오류 코드 e를 기초로 부호 기반의 암호화를 수행하여 상기 암호화 데이터 c를 생성한 후 상기 암호화 데이터 c를 상기 전자 장치로 전송하는 t+a개의 오류 코드가 삽입된 부호 기반의 암호화 데이터의 복호화가 가능한 전자 장치의 동작 방법.
  9. 제8항에 있어서,
    상기 데이터 전송 장치는
    상기 오류 코드 e가 생성되면, 상기 연접 데이터 (m∥r)에 상기 공개키 Kpub를 곱하여 결과값 cr을 생성하고, 상기 결과값 cr과 상기 오류 코드 e에 대해 배타적 논리합 연산을 수행함으로써, 상기 암호화 데이터 c를 생성하는 t+a개의 오류 코드가 삽입된 부호 기반의 암호화 데이터의 복호화가 가능한 전자 장치의 동작 방법.
  10. 제9항에 있어서,
    상기 복호화 데이터 d를 생성하는 단계는
    상기 수정된 암호화 데이터 c'에 대해 상기 순열 행렬 P의 역행렬 P-1을 곱하여 c'P-1을 연산하고, 상기 생성 행렬 G를 기초로 상기 c'P-1에 대해 오류 정정을 위한 복호화를 수행하여 오류 정정이 수행된 정정 데이터 i를 생성한 후 상기 정정 데이터 i에 대해 상기 이진 정칙 행렬 S의 역행렬 S-1을 곱함으로써 상기 복호화 데이터 d를 생성하는 t+a개의 오류 코드가 삽입된 부호 기반의 암호화 데이터의 복호화가 가능한 전자 장치의 동작 방법.
  11. 제8항에 있어서,
    상기 복호화의 성공 여부를 검증하는 단계는
    상기 복호화 데이터 d가 생성되면, 상기 복호화 데이터 d와 상기 수정된 암호화 데이터 c'을 기초로 상기 수정된 암호화 데이터 c'에서의 오류 코드로 사용된 임시 오류 코드 e'을 복원하고, 상기 임시 오류 코드 e'에서 상기 복호화 데이터 d를 생성하는 단계를 통해 반전된 상기 a개의 임의의 비트와 동일한 위치의 비트를 반전하여 상기 오류 코드 e를 복원하는 단계;
    상기 비트열 생성 함수를 기초로 상기 복원된 오류 코드 e를 출력값으로 갖는 입력값을 도출하기 위한 역연산을 수행함으로써, 상기 해시값 h를 복원하는 단계; 및
    상기 복호화 데이터 d를 상기 해시 함수에 입력으로 인가하여 검증용 해시값 h'을 생성한 후 상기 검증용 해시값 h'이 상기 복원된 해시값 h와 동일한 것으로 판단되면, 상기 복호화 데이터 d에 대한 부호 기반의 복호화가 성공인 것으로 검증하는 단계
    를 포함하는 t+a개의 오류 코드가 삽입된 부호 기반의 암호화 데이터의 복호화가 가능한 전자 장치의 동작 방법.
  12. 제8항에 있어서,
    상기 복호화 데이터 d에 대한 부호 기반의 복호화가 성공인 것으로 검증된 경우, 상기 복호화 데이터 d에서 k1비트의 비트열 데이터를 상기 원본 데이터 m으로 분리 추출함으로써, 상기 원본 데이터 m을 복원하는 단계
    를 더 포함하는 t+a개의 오류 코드가 삽입된 부호 기반의 암호화 데이터의 복호화가 가능한 전자 장치의 동작 방법.
  13. 제7항 내지 제12항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
  14. 제7항 내지 제12항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램.
KR1020180142288A 2018-11-19 2018-11-19 t+a개의 오류 코드가 삽입된 부호 기반의 암호화 데이터의 복호화가 가능한 전자 장치 및 그 동작 방법 KR101942033B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180142288A KR101942033B1 (ko) 2018-11-19 2018-11-19 t+a개의 오류 코드가 삽입된 부호 기반의 암호화 데이터의 복호화가 가능한 전자 장치 및 그 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180142288A KR101942033B1 (ko) 2018-11-19 2018-11-19 t+a개의 오류 코드가 삽입된 부호 기반의 암호화 데이터의 복호화가 가능한 전자 장치 및 그 동작 방법

Publications (1)

Publication Number Publication Date
KR101942033B1 true KR101942033B1 (ko) 2019-01-24

Family

ID=65277429

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180142288A KR101942033B1 (ko) 2018-11-19 2018-11-19 t+a개의 오류 코드가 삽입된 부호 기반의 암호화 데이터의 복호화가 가능한 전자 장치 및 그 동작 방법

Country Status (1)

Country Link
KR (1) KR101942033B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114978711A (zh) * 2022-05-25 2022-08-30 山东国子软件股份有限公司 一种动态秘钥对称加密的数据传输方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7149955B1 (en) * 2001-03-07 2006-12-12 Marvell International Ltd. Encoding and decoding apparatus and method with hamming weight enhancement
JP2014116750A (ja) * 2012-12-07 2014-06-26 Kansai Univ データ送信装置、データ受信装置、データ送受信装置、データ送信方法、データ受信方法、及びデータ送受信方法
US20170279600A1 (en) * 2016-03-23 2017-09-28 Gemalto Sa System and method for providing defence to a cryptographic device against side-channel attacks targeting the extended euclidean algorithm during decryption operations
KR20180104363A (ko) * 2017-03-13 2018-09-21 동국대학교 산학협력단 메시지 인증이 가능한 부호 기반 암호화 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7149955B1 (en) * 2001-03-07 2006-12-12 Marvell International Ltd. Encoding and decoding apparatus and method with hamming weight enhancement
JP2014116750A (ja) * 2012-12-07 2014-06-26 Kansai Univ データ送信装置、データ受信装置、データ送受信装置、データ送信方法、データ受信方法、及びデータ送受信方法
US20170279600A1 (en) * 2016-03-23 2017-09-28 Gemalto Sa System and method for providing defence to a cryptographic device against side-channel attacks targeting the extended euclidean algorithm during decryption operations
KR20180104363A (ko) * 2017-03-13 2018-09-21 동국대학교 산학협력단 메시지 인증이 가능한 부호 기반 암호화 장치 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114978711A (zh) * 2022-05-25 2022-08-30 山东国子软件股份有限公司 一种动态秘钥对称加密的数据传输方法及系统

Similar Documents

Publication Publication Date Title
KR101942030B1 (ko) 메시지에 대한 무결성 검증이 지원되는 부호 기반의 암호화가 가능한 전자 장치 및 그 동작 방법
KR101091246B1 (ko) 간단하고 효율적인 원패스 인증 암호화 방법
US10587407B2 (en) Data encryption apparatus and method using an encryption key based on puncturing of a generator matrix
US20100281336A1 (en) Method and entity for probabilistic symmetrical encryption
KR101913644B1 (ko) 메시지 인증이 가능한 부호 기반 암호화 장치 및 방법
JP6588048B2 (ja) 情報処理装置
JP2001007800A (ja) 暗号化装置および方法
US20220224532A1 (en) Systems and Methods for Hiding Private Cryptographic Keys in Multimedia Files
CN109995507A (zh) 一种基于puf的密钥生成方法及装置、私钥存储方法
US9742438B2 (en) Method and apparatus for cipher detection
JP2010524014A (ja) レートレス符号によってコード化された内容のための低複雑性暗号化方法
Mihaljević et al. An approach for stream ciphers design based on joint computing over random and secret data
KR101942033B1 (ko) t+a개의 오류 코드가 삽입된 부호 기반의 암호화 데이터의 복호화가 가능한 전자 장치 및 그 동작 방법
US11341217B1 (en) Enhancing obfuscation of digital content through use of linear error correction codes
KR101978684B1 (ko) 재생 공격 방지가 가능한 부호 기반 암호화 장치 및 방법
CN105049176B (zh) 用于图像数据安全传输的解密方法
KR102024379B1 (ko) 생체 정보 기반의 전자 서명이 가능한 데이터 전송 장치 및 그 동작 방법
KR101894566B1 (ko) 인증 및 오류 정정이 통합된 부호화가 가능한 데이터 전송 장치 및 방법
US9705675B2 (en) Method and system making it possible to test a cryptographic integrity of an error tolerant data item
KR101974345B1 (ko) 전자 서명을 통한 차량 간 보안 통신을 지원하는 커넥티드 차량용 데이터 통신 장치 및 그 동작 방법
Moldovyan et al. Symmetric encryption for error correction
CN112634092A (zh) 一种基于区块链的合同认证方法、装置、电子设备
KR102326527B1 (ko) 비대칭 암호화 기반의 보안 통신을 수행하는 데이터 전송 장치 및 그 동작 방법
WO2024180612A1 (ja) 認証暗号化装置、認証復号装置、認証暗号システム、方法及びコンピュータ可読媒体
JP5268413B2 (ja) 開示制限処理装置及びデータ処理システム及びプログラム

Legal Events

Date Code Title Description
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant