KR20190024064A - 재생 공격 방지가 가능한 부호 기반 암호화 장치 및 방법 - Google Patents

재생 공격 방지가 가능한 부호 기반 암호화 장치 및 방법 Download PDF

Info

Publication number
KR20190024064A
KR20190024064A KR1020170110648A KR20170110648A KR20190024064A KR 20190024064 A KR20190024064 A KR 20190024064A KR 1020170110648 A KR1020170110648 A KR 1020170110648A KR 20170110648 A KR20170110648 A KR 20170110648A KR 20190024064 A KR20190024064 A KR 20190024064A
Authority
KR
South Korea
Prior art keywords
value
matrix
message
hash
encryption
Prior art date
Application number
KR1020170110648A
Other languages
English (en)
Other versions
KR101978684B1 (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 KR1020170110648A priority Critical patent/KR101978684B1/ko
Publication of KR20190024064A publication Critical patent/KR20190024064A/ko
Application granted granted Critical
Publication of KR101978684B1 publication Critical patent/KR101978684B1/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
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/20Manipulating the length of blocks of bits, e.g. padding or block truncation

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)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

재생 공격 방지가 가능한 부호 기반 암호화 장치 및 방법이 개시된다. 본 발명에 따른 재생 공격 방지가 가능한 부호 기반 암호화 장치 및 방법은 부호 기반의 암호화 방식에 있어서, 암호화가 수행될 때마다 소정의 난수를 생성하여 상기 난수를 상기 원본 메시지에 반영함으로써, 매번 암호화 메시지의 패턴이 다르게 생성되도록 유도하여 제3자의 재생 공격(Replay Attack)으로 인한 원본 메시지의 노출을 최소화할 수 있다.

Description

재생 공격 방지가 가능한 부호 기반 암호화 장치 및 방법{CODE-BASED ENCRYPTION APPARATUS AND METHOD CAPABLE OF PREVENTING REPLAY ATTACK}
본 발명은 암호화 메시지의 생성 패턴을 인지하여 암호화 메시지로부터 원본 메시지를 복원해내는 재생 공격(Replay Attack)을 방지할 수 있는 부호 기반 암호화 장치 및 방법에 대한 것이다.
최근, 다양한 형태의 정보가 생성되고 유통됨에 따라, 해킹이나 잘못된 경로로의 정보 전달로 인해 중요한 정보가 제3자에게 노출되는 등의 피해가 발생하고 있다.
특히, 정보의 전달과정에서 군사 정보나 개인 정보 등과 같은 중요 정보에 어떠한 방어 기제가 적용되어 있지 않은 상태에서 이러한 중요 정보가 우연히 제3자에게 전달된다면, 제3자가 손쉽게 중요 정보에 접근할 수 있어, 큰 피해가 발생할 수 있다.
최근에는 이러한 중요 정보의 노출을 방지하기 위해, 중요 정보를 소정의 암호화키를 이용하여 암호화한 후 이를 상대방에게 전달하는 기법 등이 도입되고 있다.
일반적인 데이터 암호화 방식은 데이터 전송측과 데이터 수신측이 동일한 비밀키를 공유하고 있다가, 데이터 전송측이 비밀키로 데이터를 암호화해서 전송하면, 데이터 수신측이 동일한 비밀키로 데이터를 복호화하는 방식이 사용된다.
하지만, 이러한 대칭키 기반의 암호화 방식은 비밀키의 전달 및 공유 과정에서 해당 비밀키가 노출될 위험성이 존재한다는 점에서 보안에 취약한 약점이 존재한다.
이러한 대칭키 기반의 암호화 방식의 단점을 해소하기 위해서, 공개키와 개인키라는 비대칭키를 활용한 데이터 암호화 방식이 도입되었다. 비대칭키 기반의 데이터 암호화 방식은 데이터 전송측이 공개키로 데이터를 암호화해서 데이터 수신측으로 전송하면, 데이터 수신측이 상기 공개키에 대응하는 개인키로 데이터를 복호화하거나 데이터 전송측이 개인키로 데이터를 암호화해서 데이터 수신측으로 전송하면, 데이터 수신측이 상기 공개키로 데이터를 복호화하는 방식이 사용된다.
이렇게, 다양한 암호화 방식이 등장하고 있지만, 항상 동일한 암호화키를 이용하여 평문을 암호화하게 되면, 암호문의 생성 패턴 분석을 통한 재생 공격(Replay Attack)이 가능하다는 점에서 이를 방지하기 위한 기법으로 암호화 대상이 되는 평문 데이터에 대해 난수를 추가하여 암호화함으로써, 암호문의 패턴 분석이 불가능하도록 하는 기법의 도입을 고려할 수 있다.
아울러, 최근에는 암호화 과정에서 고성능의 컴퓨터 시스템을 기반으로 한 공격에 대응하기 위해 부호 기반의 암호화 방식이 도입되고 있다.
부호 기반의 암호화 방식은 데이터 전송 장치가 t(t는 자연수)비트의 코드에 대한 오류 정정 능력을 갖는 선형 코드에 대한 "1"과 "0"의 코드 값을 성분으로 포함하는 k x n(k와 n은 자연수) 크기의 생성 행렬 Ge와 "1"과 "0"의 코드 값을 성분으로 포함하는 k x k 크기의 이진 정칙 행렬(Binary non-singular matrix) S 및 "1"과 "0"의 코드 값을 성분으로 포함하는 n x n 크기의 순열 행렬 P를 활용해서 공개키 Kpub을 만들고, 데이터 수신 장치로 전송할 메시지 m을 상기 공개키 Kpub로 암호화하여 암호화 메시지 c를 생성한 후 상기 암호화 메시지 c를 상기 데이터 수신 장치로 전송하면, 상기 데이터 수신 장치가 메모리 상에 기 저장하고 있는 상기 생성 행렬 Ge, 상기 이진 정칙 행렬 S 및 상기 순열 행렬 P를 개인키로 활용해서 상기 암호화 메시지에 대한 복호화를 수행함으로써, 상기 메시지 m을 복원하는 방식이다.
관련해서, 부호 기반의 암호화 방식에서의 데이터 암호화와 복호화 방식에 대해 간단히 설명하면 다음과 같다.
우선, 데이터 전송 장치가 사용하는 공개키는 Kpub는 하기의 수학식 1과 같이 정의된다.
Figure pat00001
여기서, 상기 수학식 1에서 생성 행렬 Ge는 t비트의 코드에 대한 오류 정정 능력을 갖는 k x n 크기의 생성 행렬이고, S는 랜덤하게 결정된 k x k 크기를 갖는 이진 정칙 행렬이며, P는 랜덤하게 결정된 n x n 크기를 갖는 순열 행렬이다.
이때, 데이터 수신 장치는 메모리 상에서 상기 공개키 Kpub에 대응하는 개인키로 상기 생성 행렬 Ge, 상기 이진 정칙 행렬 S 및 상기 순열 행렬 P를 각각 저장하고 있다.
이러한 상황 하에서 데이터 전송 장치는 상기 데이터 수신 장치로 전송할 k비트의 크기를 갖는 메시지 m에 대해서 하기의 수학식 2에 따른 암호화 연산을 수행함으로써, 암호화 메시지 c를 생성할 수 있다.
Figure pat00002
여기서, e는 t 이하의 해밍 무게(Hamming Weight)를 가지면서, n비트의 길이를 갖는 랜덤 벡터이고, "
Figure pat00003
"는 배타적 논리합 연산이다.
그리고, 해밍 무게란 데이터를 구성하는 비트열에서 "1"이라는 비트 값의 개수를 의미한다.
이렇게, 상기 암호화 메시지 c가 생성되면, 상기 데이터 전송 장치는 상기 데이터 수신 장치로 상기 암호화 메시지 c를 전송함으로써, 데이터 암호화 전송을 완료한다.
이렇게, 상기 데이터 전송 장치로부터 상기 암호화 메시지 c가 상기 데이터 수신 장치로 전송되면, 상기 데이터 수신 장치는 메모리 상에 저장되어 있는 상기 생성 행렬 Ge, 상기 이진 정칙 행렬 S 및 상기 순열 행렬 P를 활용해서 상기 암호화 메시지에 대한 복호화를 수행하게 된다.
관련해서, 상기 데이터 수신 장치는 상기 암호화 메시지 c가 수신되면, 하기의 수학식 3과 같이 상기 암호화 메시지 c에 대해 상기 순열 행렬 P의 역행렬인 P-1을 곱하여 cP-1을 연산한다.
Figure pat00004
그러고 나서, 상기 데이터 수신 장치는 cP-1로부터 상기 생성 행렬 Ge를 이용해서 오류 정정을 위한 데이터 디코딩을 수행하여 mS를 연산할 수 있다.
여기서, 상기 e는 t 이하의 해밍 무게를 갖는 벡터이고, P는 순열 행렬이므로, eP-1도 t 이하의 해밍 무게를 갖기 때문에 결론적으로 cP-1은 mSGe라는 부호어에서 t개 이하의 비트 값에 대해 오류가 발생한 것으로 볼 수 있어서, 상기 데이터 수신 장치는 메모리 상에 저장되어 있는 t비트의 코드에 대한 오류 정정 능력을 갖는 생성 행렬인 Ge를 이용하여 cP-1에 대해 오류 정정을 수행함으로써, mS를 디코딩할 수 있다.
이렇게, mS의 연산이 완료되면, 상기 데이터 수신 장치는 하기의 수학식 4와 같이 메모리 상에 저장되어 있는 상기 이진 정칙 행렬 S의 역행렬인 S-1을 mS에 곱함으로써, 원본 메시지인 m을 최종적으로 복호화할 수 있다.
Figure pat00005
이렇게, 데이터 보안의 중요성이 증대됨에 따라, 고성능의 컴퓨터 시스템에 기반한 공격을 방어하기 위해, 부호 기반의 암호화 방식을 사용하되, 암호문의 패턴 분석에 기반한 재생 공격의 가능성을 차단하기 위해서 평문 데이터에 난수를 추가하여 항상 다른 암호문이 생성될 수 있도록 하기 위한 암호화 기법에 대한 연구가 필요하다.
본 발명에 따른 재생 공격 방지가 가능한 부호 기반 암호화 장치 및 방법은 부호 기반의 암호화 방식에 있어서, 암호화가 수행될 때마다 소정의 난수를 생성하여 상기 난수를 상기 원본 메시지에 반영함으로써, 매번 암호화 메시지의 패턴이 다르게 생성되도록 유도하여 제3자의 재생 공격으로 인한 원본 메시지의 노출을 최소화할 수 있도록 한다.
본 발명의 일실시예에 따른 재생 공격 방지가 가능한 부호 기반 암호화 장치는 데이터 수신 장치로 전송할 원본 메시지 m에 대해 1비트 이상의 패딩(padding) 비트를 패딩하여 k(k는 자연수임)비트 크기를 갖는 메시지 M을 생성하는 패딩부, q(q는 k보다 작은 자연수임)비트 크기를 갖는 난수 r을 제1 해시 함수 G - 상기 제1 해시 함수 G는 q비트 크기의 입력 값을 k비트 크기의 출력 값으로 확장시키는 일방향 함수임 - 에 입력으로 인가하여 k비트 크기를 갖는 제1 해시 값 G(r)을 생성하고, 상기 메시지 M과 상기 제1 해시 값 G(r)을 배타적 논리합 연산함으로써, k비트 크기의 제1 연산 값 X를 생성하는 제1 연산부, 상기 제1 연산 값 X를 제2 해시 함수 H - 상기 제2 해시 함수 H는 k비트 크기의 입력 값을 q비트 크기의 출력 값으로 축소시키는 일방향 함수임 - 에 입력으로 인가하여 q비트 크기를 갖는 제2 해시 값 H(X)를 생성하고, 상기 난수 r과 상기 제2 해시 값 H(X)를 배타적 논리합 연산함으로써, q비트 크기의 제2 연산 값 Y를 생성하는 제2 연산부, 상기 제2 연산 값 Y로부터 해밍 무게(Hamming Weight)가 t(t는 자연수임)이면서, 크기가 n(n은 자연수임)인 오류 벡터 e를 생성하는 오류 벡터 생성부, 상기 제1 연산 값 X에 대해 선정된(predetermined) 공개키와 상기 오류 벡터 e를 기초로 부호 기반 암호화를 수행함으로써, 암호화 메시지 c를 생성하는 암호화부 및 상기 암호화 메시지 c를 상기 데이터 수신 장치로 전송하는 암호화 메시지 전송부를 포함한다.
또한, 본 발명의 일실시예에 따른 재생 공격 방지가 가능한 부호 기반 암호화 방법은 데이터 수신 장치로 전송할 원본 메시지 m에 대해 1비트 이상의 패딩 비트를 패딩하여 k(k는 자연수임)비트 크기를 갖는 메시지 M을 생성하는 단계, q(q는 k보다 작은 자연수임)비트 크기를 갖는 난수 r을 제1 해시 함수 G - 상기 제1 해시 함수 G는 q비트 크기의 입력 값을 k비트 크기의 출력 값으로 확장시키는 일방향 함수임 - 에 입력으로 인가하여 k비트 크기를 갖는 제1 해시 값 G(r)을 생성하고, 상기 메시지 M과 상기 제1 해시 값 G(r)을 배타적 논리합 연산함으로써, k비트 크기의 제1 연산 값 X를 생성하는 단계, 상기 제1 연산 값 X를 제2 해시 함수 H - 상기 제2 해시 함수 H는 k비트 크기의 입력 값을 q비트 크기의 출력 값으로 축소시키는 일방향 함수임 - 에 입력으로 인가하여 q비트 크기를 갖는 제2 해시 값 H(X)를 생성하고, 상기 난수 r과 상기 제2 해시 값 H(X)를 배타적 논리합 연산함으로써, q비트 크기의 제2 연산 값 Y를 생성하는 단계, 상기 제2 연산 값 Y로부터 해밍 무게가 t(t는 자연수임)이면서, 크기가 n(n은 자연수임)인 오류 벡터 e를 생성하는 단계, 상기 제1 연산 값 X에 대해 선정된 공개키와 상기 오류 벡터 e를 기초로 부호 기반 암호화를 수행함으로써, 암호화 메시지 c를 생성하는 단계 및 상기 암호화 메시지 c를 상기 데이터 수신 장치로 전송하는 단계를 포함한다.
본 발명에 따른 재생 공격 방지가 가능한 부호 기반 암호화 장치 및 방법은 부호 기반의 암호화 방식에 있어서, 암호화가 수행될 때마다 소정의 난수를 생성하여 상기 난수를 상기 원본 메시지에 반영함으로써, 매번 암호화 메시지의 패턴이 다르게 생성되도록 유도하여 제3자의 재생 공격으로 인한 원본 메시지의 노출을 최소화할 수 있다.
도 1은 본 발명의 일실시예에 따른 재생 공격 방지가 가능한 부호 기반 암호화 장치의 구조를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 재생 공격 방지가 가능한 부호 기반 암호화 방법을 도시한 순서도이다.
이하에서는 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명하기로 한다. 이러한 설명은 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였으며, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 본 명세서 상에서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 사람에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.
도 1은 본 발명의 일실시예에 따른 재생 공격 방지가 가능한 부호 기반 암호화 장치의 구조를 도시한 도면이다.
도 1을 참조하면, 본 발명에 따른 재생 공격 방지가 가능한 부호 기반 암호화 장치(110)는 패딩부(111), 제1 연산부(112), 제2 연산부(113), 오류 벡터 생성부(114), 암호화부(115) 및 암호화 메시지 전송부(116)를 포함한다.
패딩부(111)는 데이터 수신 장치(120)로 전송할 원본 메시지 m에 대해 1비트 이상의 패딩(padding) 비트를 패딩하여 k(k는 자연수임)비트 크기를 갖는 메시지 M을 생성한다.
이때, 상기 패딩 비트는 "0"이라는 비트 값이 될 수 있다. 예컨대, 원본 메시지 m이 "1010"이라고 하고, k를 "8"이라고 하는 경우, 패딩부(111)는 상기 원본 메시지 m인 "1010"에 대해 "0"이라는 비트 값을 4개 패딩함으로써, "10100000"이라는 메시지 M을 생성할 수 있다.
제1 연산부(112)는 q(q는 k보다 작은 자연수임)비트 크기를 갖는 난수 r을 제1 해시 함수 G에 입력으로 인가하여 k비트 크기를 갖는 제1 해시 값 G(r)을 생성하고, 하기의 수학식 5에서와 같이 상기 메시지 M과 상기 제1 해시 값 G(r)을 배타적 논리합 연산함으로써, k비트 크기의 제1 연산 값 X를 생성한다.
여기서, 상기 제1 해시 함수 G는 q비트 크기의 입력 값을 k비트 크기의 출력 값으로 확장시키는 일방향 함수이다.
Figure pat00006
상기 수학식 5에서 "
Figure pat00007
"는 배타적 논리합 연산을 의미한다.
제2 연산부(113)는 상기 제1 연산 값 X를 제2 해시 함수 H에 입력으로 인가하여 q비트 크기를 갖는 제2 해시 값 H(X)를 생성하고, 하기의 수학식 6에서와 같이 상기 난수 r과 상기 제2 해시 값 H(X)를 배타적 논리합 연산함으로써, q비트 크기의 제2 연산 값 Y를 생성한다
여기서, 상기 제2 해시 함수 H는 k비트 크기의 입력 값을 q비트 크기의 출력 값으로 축소시키는 일방향 함수이다.
Figure pat00008
오류 벡터 생성부(114)는 상기 제2 연산 값 Y로부터 해밍 무게(Hamming Weight)가 t(t는 자연수임)이면서, 크기가 n(n은 자연수임)인 오류 벡터 e를 생성한다.
이때, 본 발명의 일실시예에 따르면, 오류 벡터 생성부(114)는 q비트 크기의 입력 값을 t의 해밍 무게를 갖는 n비트 크기의 출력 값으로 매핑(mapping) 변환하도록 설계된 매핑 함수에 대해 상기 제2 연산 값 Y를 입력으로 인가하여 상기 오류 벡터 e를 생성할 수 있다.
여기서, 상기 매핑 함수는 앞서 설명한 바와 같이, q비트 크기의 입력 값이 입력으로 인가되면, t의 해밍 무게를 갖는 n비트 크기의 출력 값으로 변환해서 출력하는 함수로 하기의 표 1에서 정리한 바와 같이, 선행기술문헌인 "Raphael Overbeck, Nicolas Sendrier, "Code-Based Cryptography", Post-Quantum Cryptography, pp.95-145., 2009"에서 제안된 "Mapping bit strings to constant weight codewords" 방식에 따라 입력 값을 출력 값으로 매핑 변환하는 함수일 수 있다.
입력 값:
Figure pat00009

출력 값:
Figure pat00010
, 이때, 출력 값은 길이가
Figure pat00011
이고, 해밍 무게가
Figure pat00012
인 워드(word)라고 할 때,

Figure pat00013

Figure pat00014
사전식 순서(lexicographic order) 내의
Figure pat00015
의 인덱스(Index)로 정수(integer)이고,

Figure pat00016
일 동안, 아래의 과정을 반복 수행함으로써, 출력 값을 생성함
Figure pat00017

만약,
Figure pat00018
이면,
Figure pat00019
이고,
그렇지 않으면,
Figure pat00020

그러고 나서,
Figure pat00021
상기 표 1에 나타낸 논리에 따라 4비트의 입력 값을 "6"의 해밍 무게를 갖는 10비트의 출력 값으로 변환하는 매핑 함수를 설계하였다고 가정하면, "0101"이라는 입력 값은 "1101001101"로 매핑 변환될 수 있고, "1101"이라는 입력 값은 "1011000111"로 매핑 변환될 수 있다.
상기 표 1에 따른 매핑 함수는 입력 값을 출력 값으로 매핑 변환하였을 때, 상기 표 1에 따른 매핑 함수의 역연산을 수행하게 되면, 출력 값으로부터 입력 값을 역변환해낼 수 있는 특징을 가지고 있다.
이러한 매핑 함수를 기초로 오류 벡터 생성부(114)는 상기 제2 연산 값 Y를 입력으로 인가함으로써, t의 해밍 무게를 갖는 n비트 크기의 상기 오류 벡터 e를 생성할 수 있다.
본 발명의 다른 실시예에 따르면, 오류 벡터 생성부(114)는 상기 표 1과 같은 매핑 함수에 상기 제2 연산 값 Y를 입력으로 인가함으로써, 상기 오류 벡터 e를 생성하도록 구성될 수도 있지만, q비트 크기를 갖는 2q개의 서로 다른 입력 값들 각각에 대해, t의 해밍 무게를 가지면서 n비트 크기를 갖는 서로 다른 출력 값들이 매핑되어 있는 매핑 테이블을 미리 구축해 둔 후 상기 매핑 테이블을 참조하여 상기 매핑 테이블로부터 상기 제2 연산 값 Y와 동일한 입력 값에 매핑되어 있는 출력 값을 상기 오류 벡터 e로 생성하도록 구성될 수도 있다.
즉, 상기 표 1과 같은 매핑 함수를 이용하여 상기 오류 벡터 e를 연산하는 과정이 수행된다면, 연산으로 인해서 시간이 많이 소요될 수 있다는 점에서, 관리자는 q비트 크기를 갖는 2q개의 서로 다른 입력 값들 전부에 대해 상기 표 1과 같은 매핑 함수에 따른 출력 값들을 미리 계산해서 소정의 매핑 테이블로 구성해 둠으로써, 오류 벡터 생성부(114)가 상기 매핑 테이블을 참조하여 상기 제2 연산 값 Y에 대응하는 오류 벡터 e를 바로 찾아낼 수 있도록 구성할 수도 있다.
암호화부(115)는 상기 오류 벡터 e의 생성이 완료되면, 상기 제1 연산 값 X에 대해 선정된(predetermined) 공개키와 상기 오류 벡터 e를 기초로 부호 기반 암호화를 수행함으로써, 암호화 메시지 c를 생성한다.
이때, 본 발명의 일실시예에 따르면, 재생 공격 방지가 가능한 부호 기반 암호화 장치(110)는 공개키 저장부(117)를 더 포함할 수 있다.
공개키 저장부(117)에는 "1"과 "0"의 코드 값을 성분으로 포함하는 k x k 크기의 이진 정칙 행렬 S, t비트의 코드에 대한 오류 정정 능력을 가지면서 "1"과 "0"의 코드 값을 성분으로 포함하는 k x n 크기의 생성 행렬 Ge 및 "1"과 "0"의 코드 값을 성분으로 포함하는 n x n 크기의 순열 행렬 P가 곱해진 상기 선정된 공개키 Kpub(Kpub=SGeP)가 저장되어 있다.
관련해서, 공개키 저장부(117)에는 하기의 수학식 7에 따른 상기 선정된 공개키 Kpub가 저장되어 있다.
Figure pat00022
이때, 암호화부(115)는 상기 제1 연산 값 X에 상기 공개키 Kpub를 곱하여 결과 값 c'을 생성하고, 상기 결과 값 c'과 상기 오류 벡터 e에 대해 배타적 논리합 연산을 수행함으로써, 상기 암호화 메시지 c를 생성할 수 있다.
관련해서, 암호화부(115)는 하기의 수학식 8의 연산에 따라 상기 암호화 메시지 c를 생성할 수 있다.
Figure pat00023
이렇게, 상기 암호화 메시지 c의 생성이 완료되면, 암호화 메시지 전송부(116)는 상기 암호화 메시지 c를 데이터 수신 장치(120)로 전송한다.
이와 같이, 상기 수학식 8의 연산에 따른 암호화 메시지 c가 데이터 수신 장치(120)로 전송되면, 데이터 수신 장치(120)는 상기 암호화 메시지 c를 복호화하여 원본 메시지 m을 복원할 수 있는데, 이하에서는 데이터 수신 장치(120)가 상기 암호화 메시지 c로부터 원본 메시지 m을 복원해 내는 과정에 대해 상세히 설명하기로 한다.
우선, 데이터 수신 장치(120)는 메모리 상에 상기 이진 정칙 행렬 S, 상기 생성 행렬 Ge 및 상기 순열 행렬 P를 상기 공개키 Kpub에 대응하는 개인키로 각각 저장하고 있음과 동시에, 상기 제1 해시 함수 G와 상기 제2 해시 함수 H 및 상기 매핑 함수를 저장하고 있을 수 있다.
만약, 데이터 수신 장치(120)로 상기 암호화 메시지 c가 수신되면, 데이터 수신 장치(120)는 상기 암호화 메시지 c로부터 상기 메모리 상에 저장되어 있는 상기 이진 정칙 행렬 S, 상기 생성 행렬 Ge 및 상기 순열 행렬 P를 기초로한 오류 정정을 수행함으로써, 상기 제1 연산 값 X를 복원할 수 있다.
관련해서, 데이터 수신 장치(120)는 상기 암호화 메시지 c가 수신되면, 하기의 수학식 9의 연산에 따라 상기 암호화 메시지 c에 대해 상기 메모리 상에 저장되어 있는 상기 순열 행렬 P의 역행렬 P-1을 곱하여 cP-1을 연산할 수 있다.
Figure pat00024
그러고 나서, 데이터 수신 장치(120)는 상기 생성 행렬 Ge를 기초로 상기 cP-1에 대한 오류 정정을 수행하여 상기 제1 연산 값 X와 상기 이진 정칙 행렬 S가 곱해진 XS를 연산할 수 있다.
여기서, 상기 오류 벡터 e는 t개의 해밍 무게를 갖는 벡터이고, P는 순열 행렬이므로, eP-1도 t개의 해밍 무게를 갖기 때문에 결론적으로 cP-1은 XSGe라는 부호어에서 t개의 비트 값에 대해 오류가 발생한 것으로 볼 수 있어서, 데이터 수신 장치(120)는 메모리 상에 저장되어 있는 t비트의 코드에 대한 오류 정정 능력을 갖는 생성 행렬인 Ge를 이용하여 cP-1에 대해 오류 정정을 수행함으로써, XS를 디코딩할 수 있다.
이렇게, XS의 연산이 완료되면, 데이터 수신 장치(120)는 하기의 수학식 10의 연산에 따라 상기 XS에 대해 상기 이진 정칙 행렬 S의 역행렬 S-1을 곱하여 상기 제1 연산 값 X를 복원할 수 있다.
Figure pat00025
이렇게, 상기 제1 연산 값 X의 복원이 완료되면, 데이터 수신 장치(120)는 상기 암호화 메시지 c로부터 상기 복원된 제1 연산 값 X와 상기 이진 정칙 행렬 S, 상기 생성 행렬 Ge 및 상기 순열 행렬 P를 이용하여 상기 오류 벡터 e를 추출하며, 상기 추출된 오류 벡터 e에 대해 상기 매핑 함수에 대한 역연산을 수행함으로써, 상기 제2 연산 값 Y를 복원한 후 상기 제1 해시 함수 G와 상기 제2 해시 함수 H를 기초로 상기 복원된 제1 연산 값 X와 상기 복원된 제2 연산 값 Y로부터 상기 메시지 M을 복원하여 상기 복원된 메시지 M에서 상기 패딩 비트를 제거함으로써, 상기 원본 메시지 m을 복호화할 수 있다.
관련해서, 데이터 수신 장치(120)는 상기 제1 연산 값 X의 복원이 완료되면, 하기의 수학식 11의 연산에 따라 상기 암호화 메시지 c에 대해, 상기 복원된 제1 연산 값 X와 상기 이진 정칙 행렬 S, 상기 생성 행렬 Ge 및 상기 순열 행렬 P가 곱해진 결과 값을 배타적 논리합함으로써, 상기 오류 벡터 e를 추출할 수 있다.
Figure pat00026
그러고 나서, 데이터 수신 장치(120)는 상기 추출된 오류 벡터 e에 대해 상기 매핑 함수에 대한 역연산을 수행함으로써, 상기 제2 연산 값 Y를 복원할 수 있다.
만약, 재생 공격 방지가 가능한 부호 기반 암호화 장치(110)에서 상기 오류 벡터 e가 소정의 매핑 테이블을 통해서 생성된 후 이를 기초로 상기 암호화 메시지 c가 생성되었다고 한다면, 데이터 수신 장치(120)에는 메모리 상에 상기 매핑 함수를 저장하고 있는 것이 아니라 상기 매핑 테이블을 저장하고 있을 수 있고, 데이터 수신 장치(120)는 상기 수학식 11의 연산에 따라 상기 오류 벡터 e가 추출되면, 상기 매핑 테이블 상에서 상기 추출된 오류 벡터 e에 매핑되어 있는 입력 값을 찾음으로써, 상기 제2 연산 값 Y를 복원할 수 있다.
이렇게, 상기 제2 연산 값 Y의 복원도 완료되면, 데이터 수신 장치(120)는 메모리 상에 저장되어 있는 상기 제2 해시 함수 H에 대해 상기 복원된 제1 연산 값 X를 입력으로 인가하여 상기 제2 해시 값 H(X)를 연산한 후 하기의 수학식 12의 연산에 따라, 상기 복원된 제2 연산 값 Y와 상기 제2 해시 값 H(X)를 배타적 논리합함으로써, 상기 난수 r을 복원할 수 있다.
Figure pat00027
그러고 나서, 데이터 수신 장치(120)는 메모리 상에 저장되어 있는 상기 제1 해시 함수 G에 대해 상기 복원된 난수 r을 입력으로 인가하여 상기 제1 해시 값 G(r)을 연산하고, 상기 수학식 13의 연산에 따라, 상기 복원된 제1 연산 값 X와 상기 제1 해시 값 G(r)을 배타적 논리합함으로써, 상기 메시지 M을 복원할 수 있다.
Figure pat00028
이렇게, 상기 메시지 M의 복원이 완료되면, 데이터 수신 장치(120)는 상기 복원된 메시지 M에서 패딩 비트를 제거함으로써, 상기 원본 메시지 m을 복호화할 수 있다.
결국, 본 발명에 따른 재생 공격 방지가 가능한 부호 기반 암호화 장치(110)는 부호 기반의 암호화 방식에 있어서, 암호화가 수행될 때마다 소정의 난수를 생성하여 상기 난수를 상기 원본 메시지에 반영함으로써, 매번 암호화 메시지의 패턴이 다르게 생성되도록 유도하여 제3자의 재생 공격으로 인한 원본 메시지의 노출을 최소화할 수 있다.
도 2는 본 발명의 일실시예에 따른 재생 공격 방지가 가능한 부호 기반 암호화 방법을 도시한 순서도이다.
단계(S210)에서는 데이터 수신 장치로 전송할 원본 메시지 m에 대해 1비트 이상의 패딩 비트를 패딩하여 k(k는 자연수임)비트 크기를 갖는 메시지 M을 생성한다.
단계(S220)에서는 q(q는 k보다 작은 자연수임)비트 크기를 갖는 난수 r을 제1 해시 함수 G에 입력으로 인가하여 k비트 크기를 갖는 제1 해시 값 G(r)을 생성하고, 상기 메시지 M과 상기 제1 해시 값 G(r)을 배타적 논리합 연산함으로써, k비트 크기의 제1 연산 값 X를 생성한다.
여기서, 상기 제1 해시 함수 G는 q비트 크기의 입력 값을 k비트 크기의 출력 값으로 확장시키는 일방향 함수이다.
단계(S230)에서는 상기 제1 연산 값 X를 제2 해시 함수 H에 입력으로 인가하여 q비트 크기를 갖는 제2 해시 값 H(X)를 생성하고, 상기 난수 r과 상기 제2 해시 값 H(X)를 배타적 논리합 연산함으로써, q비트 크기의 제2 연산 값 Y를 생성한다.
여기서, 상기 제2 해시 함수 H는 k비트 크기의 입력 값을 q비트 크기의 출력 값으로 축소시키는 일방향 함수이다.
단계(S240)에서는 상기 제2 연산 값 Y로부터 해밍 무게가 t(t는 자연수임)이면서, 크기가 n(n은 자연수임)인 오류 벡터 e를 생성한다.
이때, 본 발명의 일실시예에 따르면, 단계(S240)에서는 q비트 크기의 입력 값을 t의 해밍 무게를 갖는 n비트 크기의 출력 값으로 매핑 변환하도록 설계된 매핑 함수에 대해 상기 제2 연산 값 Y를 입력으로 인가하여 상기 오류 벡터 e를 생성할 수 있다.
또한, 본 발명의 다른 실시예에 따르면, 단계(S240)에서는 q비트 크기를 갖는 2q개의 서로 다른 입력 값들 각각에 대해, t의 해밍 무게를 가지면서 n비트 크기를 갖는 서로 다른 출력 값들이 매핑되어 있는 매핑 테이블을 참조하여, 상기 매핑 테이블로부터 상기 제2 연산 값 Y와 동일한 입력 값에 매핑되어 있는 출력 값을 상기 오류 벡터 e로 생성할 수 있다.
단계(S250)에서는 상기 제1 연산 값 X에 대해 선정된 공개키와 상기 오류 벡터 e를 기초로 부호 기반 암호화를 수행함으로써, 암호화 메시지 c를 생성한다.
이때, 본 발명의 일실시예에 따르면, 재생 공격 방지가 가능한 부호 기반 암호화 방법은 단계(S210)이전에 "1"과 "0"의 코드 값을 성분으로 포함하는 k x k 크기의 이진 정칙 행렬 S, t비트의 코드에 대한 오류 정정 능력을 가지면서 "1"과 "0"의 코드 값을 성분으로 포함하는 k x n 크기의 생성 행렬 Ge 및 "1"과 "0"의 코드 값을 성분으로 포함하는 n x n 크기의 순열 행렬 P가 곱해진 상기 선정된 공개키 Kpub(Kpub=SGeP)가 저장되어 있는 공개키 저장부를 유지하는 단계를 더 포함할 수 있다.
이때, 단계(S250)에서는 상기 제1 연산 값 X에 상기 공개키 Kpub를 곱하여 결과 값 c'을 생성하고, 상기 결과 값 c'과 상기 오류 벡터 e에 대해 배타적 논리합 연산을 수행함으로써, 상기 암호화 메시지 c를 생성할 수 있다.
단계(S260)에서는 상기 암호화 메시지 c를 상기 데이터 수신 장치로 전송한다.
이때, 본 발명의 일실시예에 따르면, 상기 데이터 수신 장치는 메모리 상에 상기 이진 정칙 행렬 S, 상기 생성 행렬 Ge 및 상기 순열 행렬 P를 상기 공개키 Kpub에 대응하는 개인키로 각각 저장하고 있음과 동시에, 상기 제1 해시 함수 G와 상기 제2 해시 함수 H 및 상기 매핑 함수를 저장하고 있을 수 있다.
이때, 상기 데이터 수신 장치는 상기 암호화 메시지 c가 수신되면, 상기 암호화 메시지 c로부터 상기 메모리 상에 저장되어 있는 상기 이진 정칙 행렬 S, 상기 생성 행렬 Ge 및 상기 순열 행렬 P를 기초로한 오류 정정을 수행함으로써, 상기 제1 연산 값 X를 복원할 수 있고, 그 이후, 상기 암호화 메시지 c로부터 상기 복원된 제1 연산 값 X와 상기 이진 정칙 행렬 S, 상기 생성 행렬 Ge 및 상기 순열 행렬 P를 이용하여 상기 오류 벡터 e를 추출하고, 상기 추출된 오류 벡터 e에 대해 상기 매핑 함수에 대한 역연산을 수행함으로써, 상기 제2 연산 값 Y를 복원한 후 상기 제1 해시 함수 G와 상기 제2 해시 함수 H를 기초로 상기 복원된 제1 연산 값 X와 상기 복원된 제2 연산 값 Y로부터 상기 메시지 M을 복원하여 상기 복원된 메시지 M에서 상기 패딩 비트를 제거함으로써, 상기 원본 메시지 m을 복호화할 수 있다.
관련해서, 본 발명의 일실시예에 따르면, 상기 데이터 수신 장치는 상기 암호화 메시지 c가 수신되면, 상기 암호화 메시지 c에 대해 상기 메모리 상에 저장되어 있는 상기 순열 행렬 P의 역행렬 P-1을 곱하여 cP-1을 연산하고, 상기 생성 행렬 Ge를 기초로 상기 cP-1에 대한 오류 정정을 수행하여 상기 제1 연산 값 X와 상기 이진 정칙 행렬 S가 곱해진 XS를 연산한 후 상기 XS에 대해 상기 이진 정칙 행렬 S의 역행렬 S-1을 곱하여 상기 제1 연산 값 X를 복원할 수 있다.
그러고 나서, 상기 데이터 수신 장치는 상기 암호화 메시지 c에 대해, 상기 복원된 제1 연산 값 X와 상기 이진 정칙 행렬 S, 상기 생성 행렬 Ge 및 상기 순열 행렬 P가 곱해진 결과 값을 배타적 논리합함으로써, 상기 오류 벡터 e를 추출하고, 상기 추출된 오류 벡터 e에 대해 상기 매핑 함수에 대한 역연산을 수행함으로써, 상기 제2 연산 값 Y를 복원할 수 있다.
그 이후, 상기 데이터 수신 장치는 상기 제2 해시 함수 H에 대해 상기 복원된 제1 연산 값 X를 입력으로 인가하여 상기 제2 해시 값 H(X)를 연산하고, 상기 복원된 제2 연산 값 Y와 상기 제2 해시 값 H(X)를 배타적 논리합함으로써, 상기 난수 r을 복원할 수 있다.
그리고, 상기 데이터 수신 장치는 상기 난수 r의 복원이 완료되면, 상기 제1 해시 함수 G에 대해 상기 복원된 난수 r을 입력으로 인가하여 상기 제1 해시 값 G(r)을 연산하고, 상기 복원된 제1 연산 값 X와 상기 제1 해시 값 G(r)을 배타적 논리합함으로써, 상기 메시지 M을 복원한 후 상기 복원된 메시지 M에서 상기 패딩 비트를 제거함으로써, 상기 원본 메시지 m을 복호화할 수 있다.
이상, 도 2를 참조하여 본 발명의 일실시예에 따른 재생 공격 방지가 가능한 부호 기반 암호화 방법에 대해 설명하였다. 여기서, 본 발명의 일실시예에 따른 재생 공격 방지가 가능한 부호 기반 암호화 방법은 도 1을 이용하여 설명한 재생 공격 방지가 가능한 부호 기반 암호화 장치(110)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.
본 발명의 일실시예에 따른 재생 공격 방지가 가능한 부호 기반 암호화 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.
또한, 본 발명의 일실시예에 따른 재생 공격 방지가 가능한 부호 기반 암호화 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
110: 재생 공격 방지가 가능한 부호 기반 암호화 장치
111: 패딩부 112: 제1 연산부
113: 제2 연산부 114: 오류 벡터 생성부
115: 암호화부 116: 암호화 메시지 전송부
117: 공개키 저장부 120: 데이터 수신 장치

Claims (14)

  1. 데이터 수신 장치로 전송할 원본 메시지 m에 대해 1비트 이상의 패딩(padding) 비트를 패딩하여 k(k는 자연수임)비트 크기를 갖는 메시지 M을 생성하는 패딩부;
    q(q는 k보다 작은 자연수임)비트 크기를 갖는 난수 r을 제1 해시 함수 G - 상기 제1 해시 함수 G는 q비트 크기의 입력 값을 k비트 크기의 출력 값으로 확장시키는 일방향 함수임 - 에 입력으로 인가하여 k비트 크기를 갖는 제1 해시 값 G(r)을 생성하고, 상기 메시지 M과 상기 제1 해시 값 G(r)을 배타적 논리합 연산함으로써, k비트 크기의 제1 연산 값 X를 생성하는 제1 연산부;
    상기 제1 연산 값 X를 제2 해시 함수 H - 상기 제2 해시 함수 H는 k비트 크기의 입력 값을 q비트 크기의 출력 값으로 축소시키는 일방향 함수임 - 에 입력으로 인가하여 q비트 크기를 갖는 제2 해시 값 H(X)를 생성하고, 상기 난수 r과 상기 제2 해시 값 H(X)를 배타적 논리합 연산함으로써, q비트 크기의 제2 연산 값 Y를 생성하는 제2 연산부;
    상기 제2 연산 값 Y로부터 해밍 무게(Hamming Weight)가 t(t는 자연수임)이면서, 크기가 n(n은 자연수임)인 오류 벡터 e를 생성하는 오류 벡터 생성부;
    상기 제1 연산 값 X에 대해 선정된(predetermined) 공개키와 상기 오류 벡터 e를 기초로 부호 기반 암호화를 수행함으로써, 암호화 메시지 c를 생성하는 암호화부; 및
    상기 암호화 메시지 c를 상기 데이터 수신 장치로 전송하는 암호화 메시지 전송부
    를 포함하는 재생 공격 방지가 가능한 부호 기반 암호화 장치.
  2. 제1항에 있어서,
    "1"과 "0"의 코드 값을 성분으로 포함하는 k x k 크기의 이진 정칙 행렬 S, t비트의 코드에 대한 오류 정정 능력을 가지면서 "1"과 "0"의 코드 값을 성분으로 포함하는 k x n 크기의 생성 행렬 Ge 및 "1"과 "0"의 코드 값을 성분으로 포함하는 n x n 크기의 순열 행렬 P가 곱해진 상기 선정된 공개키 Kpub(Kpub=SGeP)가 저장되어 있는 공개키 저장부
    를 더 포함하고,
    상기 암호화부는
    상기 제1 연산 값 X에 상기 공개키 Kpub를 곱하여 결과 값 c'을 생성하고, 상기 결과 값 c'과 상기 오류 벡터 e에 대해 배타적 논리합 연산을 수행함으로써, 상기 암호화 메시지 c를 생성하는 재생 공격 방지가 가능한 부호 기반 암호화 장치.
  3. 제2항에 있어서,
    상기 오류 벡터 생성부는
    q비트 크기의 입력 값을 t의 해밍 무게를 갖는 n비트 크기의 출력 값으로 매핑(mapping) 변환하도록 설계된 매핑 함수에 대해 상기 제2 연산 값 Y를 입력으로 인가하여 상기 오류 벡터 e를 생성하는 재생 공격 방지가 가능한 부호 기반 암호화 장치.
  4. 제2항에 있어서,
    상기 오류 벡터 생성부는
    q비트 크기를 갖는 2q개의 서로 다른 입력 값들 각각에 대해, t의 해밍 무게를 가지면서 n비트 크기를 갖는 서로 다른 출력 값들이 매핑되어 있는 매핑 테이블을 참조하여, 상기 매핑 테이블로부터 상기 제2 연산 값 Y와 동일한 입력 값에 매핑되어 있는 출력 값을 상기 오류 벡터 e로 생성하는 재생 공격 방지가 가능한 부호 기반 암호화 장치.
  5. 제3항에 있어서,
    상기 데이터 수신 장치는
    메모리 상에 상기 이진 정칙 행렬 S, 상기 생성 행렬 Ge 및 상기 순열 행렬 P를 상기 공개키 Kpub에 대응하는 개인키로 각각 저장하고 있음과 동시에, 상기 제1 해시 함수 G와 상기 제2 해시 함수 H 및 상기 매핑 함수를 저장하고 있으며,
    상기 암호화 메시지 c가 수신되면, 상기 암호화 메시지 c로부터 상기 메모리 상에 저장되어 있는 상기 이진 정칙 행렬 S, 상기 생성 행렬 Ge 및 상기 순열 행렬 P를 기초로한 오류 정정을 수행함으로써, 상기 제1 연산 값 X를 복원하고,
    상기 암호화 메시지 c로부터 상기 복원된 제1 연산 값 X와 상기 이진 정칙 행렬 S, 상기 생성 행렬 Ge 및 상기 순열 행렬 P를 이용하여 상기 오류 벡터 e를 추출하고, 상기 추출된 오류 벡터 e에 대해 상기 매핑 함수에 대한 역연산을 수행함으로써, 상기 제2 연산 값 Y를 복원한 후 상기 제1 해시 함수 G와 상기 제2 해시 함수 H를 기초로 상기 복원된 제1 연산 값 X와 상기 복원된 제2 연산 값 Y로부터 상기 메시지 M을 복원하여 상기 복원된 메시지 M에서 상기 패딩 비트를 제거함으로써, 상기 원본 메시지 m을 복호화하는 재생 공격 방지가 가능한 부호 기반 암호화 장치.
  6. 제5항에 있어서,
    상기 데이터 수신 장치는
    상기 암호화 메시지 c가 수신되면, 상기 암호화 메시지 c에 대해 상기 메모리 상에 저장되어 있는 상기 순열 행렬 P의 역행렬 P-1을 곱하여 cP-1을 연산하고, 상기 생성 행렬 Ge를 기초로 상기 cP-1에 대한 오류 정정을 수행하여 상기 제1 연산 값 X와 상기 이진 정칙 행렬 S가 곱해진 XS를 연산한 후 상기 XS에 대해 상기 이진 정칙 행렬 S의 역행렬 S-1을 곱하여 상기 제1 연산 값 X를 복원하고,
    상기 암호화 메시지 c에 대해, 상기 복원된 제1 연산 값 X와 상기 이진 정칙 행렬 S, 상기 생성 행렬 Ge 및 상기 순열 행렬 P가 곱해진 결과 값을 배타적 논리합함으로써, 상기 오류 벡터 e를 추출하고, 상기 추출된 오류 벡터 e에 대해 상기 매핑 함수에 대한 역연산을 수행함으로써, 상기 제2 연산 값 Y를 복원하며,
    상기 제2 해시 함수 H에 대해 상기 복원된 제1 연산 값 X를 입력으로 인가하여 상기 제2 해시 값 H(X)를 연산하고, 상기 복원된 제2 연산 값 Y와 상기 제2 해시 값 H(X)를 배타적 논리합함으로써, 상기 난수 r을 복원하고,
    상기 제1 해시 함수 G에 대해 상기 복원된 난수 r을 입력으로 인가하여 상기 제1 해시 값 G(r)을 연산하고, 상기 복원된 제1 연산 값 X와 상기 제1 해시 값 G(r)을 배타적 논리합함으로써, 상기 메시지 M을 복원한 후 상기 복원된 메시지 M에서 상기 패딩 비트를 제거함으로써, 상기 원본 메시지 m을 복호화하는 재생 공격 방지가 가능한 부호 기반 암호화 장치.
  7. 데이터 수신 장치로 전송할 원본 메시지 m에 대해 1비트 이상의 패딩(padding) 비트를 패딩하여 k(k는 자연수임)비트 크기를 갖는 메시지 M을 생성하는 단계;
    q(q는 k보다 작은 자연수임)비트 크기를 갖는 난수 r을 제1 해시 함수 G - 상기 제1 해시 함수 G는 q비트 크기의 입력 값을 k비트 크기의 출력 값으로 확장시키는 일방향 함수임 - 에 입력으로 인가하여 k비트 크기를 갖는 제1 해시 값 G(r)을 생성하고, 상기 메시지 M과 상기 제1 해시 값 G(r)을 배타적 논리합 연산함으로써, k비트 크기의 제1 연산 값 X를 생성하는 단계;
    상기 제1 연산 값 X를 제2 해시 함수 H - 상기 제2 해시 함수 H는 k비트 크기의 입력 값을 q비트 크기의 출력 값으로 축소시키는 일방향 함수임 - 에 입력으로 인가하여 q비트 크기를 갖는 제2 해시 값 H(X)를 생성하고, 상기 난수 r과 상기 제2 해시 값 H(X)를 배타적 논리합 연산함으로써, q비트 크기의 제2 연산 값 Y를 생성하는 단계;
    상기 제2 연산 값 Y로부터 해밍 무게(Hamming Weight)가 t(t는 자연수임)이면서, 크기가 n(n은 자연수임)인 오류 벡터 e를 생성하는 단계;
    상기 제1 연산 값 X에 대해 선정된(predetermined) 공개키와 상기 오류 벡터 e를 기초로 부호 기반 암호화를 수행함으로써, 암호화 메시지 c를 생성하는 단계; 및
    상기 암호화 메시지 c를 상기 데이터 수신 장치로 전송하는 단계
    를 포함하는 재생 공격 방지가 가능한 부호 기반 암호화 방법.
  8. 제7항에 있어서,
    "1"과 "0"의 코드 값을 성분으로 포함하는 k x k 크기의 이진 정칙 행렬 S, t비트의 코드에 대한 오류 정정 능력을 가지면서 "1"과 "0"의 코드 값을 성분으로 포함하는 k x n 크기의 생성 행렬 Ge 및 "1"과 "0"의 코드 값을 성분으로 포함하는 n x n 크기의 순열 행렬 P가 곱해진 상기 선정된 공개키 Kpub(Kpub=SGeP)가 저장되어 있는 공개키 저장부를 유지하는 단계
    를 더 포함하고,
    상기 암호화 메시지 c를 생성하는 단계는
    상기 제1 연산 값 X에 상기 공개키 Kpub를 곱하여 결과 값 c'을 생성하고, 상기 결과 값 c'과 상기 오류 벡터 e에 대해 배타적 논리합 연산을 수행함으로써, 상기 암호화 메시지 c를 생성하는 재생 공격 방지가 가능한 부호 기반 암호화 방법.
  9. 제8항에 있어서,
    상기 오류 벡터 e를 생성하는 단계는
    q비트 크기의 입력 값을 t의 해밍 무게를 갖는 n비트 크기의 출력 값으로 매핑(mapping) 변환하도록 설계된 매핑 함수에 대해 상기 제2 연산 값 Y를 입력으로 인가하여 상기 오류 벡터 e를 생성하는 재생 공격 방지가 가능한 부호 기반 암호화 방법.
  10. 제8항에 있어서,
    상기 오류 벡터 e를 생성하는 단계는
    q비트 크기를 갖는 2q개의 서로 다른 입력 값들 각각에 대해, t의 해밍 무게를 가지면서 n비트 크기를 갖는 서로 다른 출력 값들이 매핑되어 있는 매핑 테이블을 참조하여, 상기 매핑 테이블로부터 상기 제2 연산 값 Y와 동일한 입력 값에 매핑되어 있는 출력 값을 상기 오류 벡터 e로 생성하는 재생 공격 방지가 가능한 부호 기반 암호화 방법.
  11. 제9항에 있어서,
    상기 데이터 수신 장치는
    메모리 상에 상기 이진 정칙 행렬 S, 상기 생성 행렬 Ge 및 상기 순열 행렬 P를 상기 공개키 Kpub에 대응하는 개인키로 각각 저장하고 있음과 동시에, 상기 제1 해시 함수 G와 상기 제2 해시 함수 H 및 상기 매핑 함수를 저장하고 있으며,
    상기 암호화 메시지 c가 수신되면, 상기 암호화 메시지 c로부터 상기 메모리 상에 저장되어 있는 상기 이진 정칙 행렬 S, 상기 생성 행렬 Ge 및 상기 순열 행렬 P를 기초로한 오류 정정을 수행함으로써, 상기 제1 연산 값 X를 복원하고,
    상기 암호화 메시지 c로부터 상기 복원된 제1 연산 값 X와 상기 이진 정칙 행렬 S, 상기 생성 행렬 Ge 및 상기 순열 행렬 P를 이용하여 상기 오류 벡터 e를 추출하고, 상기 추출된 오류 벡터 e에 대해 상기 매핑 함수에 대한 역연산을 수행함으로써, 상기 제2 연산 값 Y를 복원한 후 상기 제1 해시 함수 G와 상기 제2 해시 함수 H를 기초로 상기 복원된 제1 연산 값 X와 상기 복원된 제2 연산 값 Y로부터 상기 메시지 M을 복원하여 상기 복원된 메시지 M에서 상기 패딩 비트를 제거함으로써, 상기 원본 메시지 m을 복호화하는 재생 공격 방지가 가능한 부호 기반 암호화 방법.
  12. 제11항에 있어서,
    상기 데이터 수신 장치는
    상기 암호화 메시지 c가 수신되면, 상기 암호화 메시지 c에 대해 상기 메모리 상에 저장되어 있는 상기 순열 행렬 P의 역행렬 P-1을 곱하여 cP-1을 연산하고, 상기 생성 행렬 Ge를 기초로 상기 cP-1에 대한 오류 정정을 수행하여 상기 제1 연산 값 X와 상기 이진 정칙 행렬 S가 곱해진 XS를 연산한 후 상기 XS에 대해 상기 이진 정칙 행렬 S의 역행렬 S-1을 곱하여 상기 제1 연산 값 X를 복원하고,
    상기 암호화 메시지 c에 대해, 상기 복원된 제1 연산 값 X와 상기 이진 정칙 행렬 S, 상기 생성 행렬 Ge 및 상기 순열 행렬 P가 곱해진 결과 값을 배타적 논리합함으로써, 상기 오류 벡터 e를 추출하고, 상기 추출된 오류 벡터 e에 대해 상기 매핑 함수에 대한 역연산을 수행함으로써, 상기 제2 연산 값 Y를 복원하며,
    상기 제2 해시 함수 H에 대해 상기 복원된 제1 연산 값 X를 입력으로 인가하여 상기 제2 해시 값 H(X)를 연산하고, 상기 복원된 제2 연산 값 Y와 상기 제2 해시 값 H(X)를 배타적 논리합함으로써, 상기 난수 r을 복원하고,
    상기 제1 해시 함수 G에 대해 상기 복원된 난수 r을 입력으로 인가하여 상기 제1 해시 값 G(r)을 연산하고, 상기 복원된 제1 연산 값 X와 상기 제1 해시 값 G(r)을 배타적 논리합함으로써, 상기 메시지 M을 복원한 후 상기 복원된 메시지 M에서 상기 패딩 비트를 제거함으로써, 상기 원본 메시지 m을 복호화하는 재생 공격 방지가 가능한 부호 기반 암호화 방법.
  13. 제7항 내지 제12항 중 어느 한 항의 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
  14. 제7항 내지 제12항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램.
KR1020170110648A 2017-08-31 2017-08-31 재생 공격 방지가 가능한 부호 기반 암호화 장치 및 방법 KR101978684B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170110648A KR101978684B1 (ko) 2017-08-31 2017-08-31 재생 공격 방지가 가능한 부호 기반 암호화 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170110648A KR101978684B1 (ko) 2017-08-31 2017-08-31 재생 공격 방지가 가능한 부호 기반 암호화 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20190024064A true KR20190024064A (ko) 2019-03-08
KR101978684B1 KR101978684B1 (ko) 2019-05-15

Family

ID=65801732

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170110648A KR101978684B1 (ko) 2017-08-31 2017-08-31 재생 공격 방지가 가능한 부호 기반 암호화 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101978684B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112187447A (zh) * 2020-10-22 2021-01-05 南方电网科学研究院有限责任公司 一种加解密算法密钥生成方法和装置
CN117201020A (zh) * 2023-11-08 2023-12-08 陕西元镁体信息科技有限公司 一种网络信息安全加密方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080044150A (ko) * 2006-11-09 2008-05-20 한국전자통신연구원 블록암호 해쉬 운영모드의 압축함수 설계 장치 및 방법
JP2011509433A (ja) * 2008-01-11 2011-03-24 フランス・テレコム 確率的対称暗号化のための方法およびエンティティ
JP2012068436A (ja) * 2010-09-24 2012-04-05 Mitsubishi Electric Corp ハッシュ値演算装置、ハッシュ値演算方法及びハッシュ値演算プログラム
JP5038866B2 (ja) * 2007-11-27 2012-10-03 日本電信電話株式会社 暗号通信方法、暗号化装置、復号装置、及びそれらのプログラム
KR20160087561A (ko) * 2015-01-14 2016-07-22 주식회사 틸론 블록 암호 방식에서 패딩을 수행하는 암호화 장치, 복호화 장치 및 시스템

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080044150A (ko) * 2006-11-09 2008-05-20 한국전자통신연구원 블록암호 해쉬 운영모드의 압축함수 설계 장치 및 방법
JP5038866B2 (ja) * 2007-11-27 2012-10-03 日本電信電話株式会社 暗号通信方法、暗号化装置、復号装置、及びそれらのプログラム
JP2011509433A (ja) * 2008-01-11 2011-03-24 フランス・テレコム 確率的対称暗号化のための方法およびエンティティ
JP2012068436A (ja) * 2010-09-24 2012-04-05 Mitsubishi Electric Corp ハッシュ値演算装置、ハッシュ値演算方法及びハッシュ値演算プログラム
KR20160087561A (ko) * 2015-01-14 2016-07-22 주식회사 틸론 블록 암호 방식에서 패딩을 수행하는 암호화 장치, 복호화 장치 및 시스템

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112187447A (zh) * 2020-10-22 2021-01-05 南方电网科学研究院有限责任公司 一种加解密算法密钥生成方法和装置
CN117201020A (zh) * 2023-11-08 2023-12-08 陕西元镁体信息科技有限公司 一种网络信息安全加密方法及系统
CN117201020B (zh) * 2023-11-08 2024-01-26 陕西元镁体信息科技有限公司 一种网络信息安全加密方法及系统

Also Published As

Publication number Publication date
KR101978684B1 (ko) 2019-05-15

Similar Documents

Publication Publication Date Title
KR101942030B1 (ko) 메시지에 대한 무결성 검증이 지원되는 부호 기반의 암호화가 가능한 전자 장치 및 그 동작 방법
JP5306465B2 (ja) セキュアなメモリに応用するメッセージ認証コードの事前計算
KR101913100B1 (ko) 생성 행렬의 천공에 기초한 암호화키를 사용하는 데이터 암호화 장치 및 방법
KR101091246B1 (ko) 간단하고 효율적인 원패스 인증 암호화 방법
KR101913644B1 (ko) 메시지 인증이 가능한 부호 기반 암호화 장치 및 방법
US11349668B2 (en) Encryption device and decryption device
EP3167569B1 (en) Method and system for providing a secure update of code on a memory-constrained device
JP6588048B2 (ja) 情報処理装置
US11153068B2 (en) Encryption device, encryption method, decryption device and decryption method
US8724802B2 (en) Cryptographic system
JP2004363739A (ja) 改竄検知可能な、共通鍵暗号の暗号化装置または復号化装置
KR102096359B1 (ko) 거듭 행렬 기반의 비밀키 암호화가 가능한 데이터 전송 장치 및 그 동작 방법
KR101978684B1 (ko) 재생 공격 방지가 가능한 부호 기반 암호화 장치 및 방법
JP5992651B2 (ja) 暗号化方法、プログラム、および、システム
KR102024379B1 (ko) 생체 정보 기반의 전자 서명이 가능한 데이터 전송 장치 및 그 동작 방법
KR101894566B1 (ko) 인증 및 오류 정정이 통합된 부호화가 가능한 데이터 전송 장치 및 방법
KR101942033B1 (ko) t+a개의 오류 코드가 삽입된 부호 기반의 암호화 데이터의 복호화가 가능한 전자 장치 및 그 동작 방법
KR20140028233A (ko) 중국인 나머지 정리에 기반한 준동형 암복호화 방법 및 이를 이용한 장치
KR102326527B1 (ko) 비대칭 암호화 기반의 보안 통신을 수행하는 데이터 전송 장치 및 그 동작 방법
JPWO2020095382A1 (ja) 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法、認証暗号化プログラムおよび認証復号プログラム
JPS6281145A (ja) デ−タ暗号化方式
US20200389328A1 (en) Electronic system capable of self-certification
JP2006133380A (ja) 復号装置と復号プログラム及び暗号通信システム
JP5818768B2 (ja) マスク生成装置、情報処理装置、及びその方法、プログラム
JP5268413B2 (ja) 開示制限処理装置及びデータ処理システム及びプログラム

Legal Events

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