KR102326527B1 - 비대칭 암호화 기반의 보안 통신을 수행하는 데이터 전송 장치 및 그 동작 방법 - Google Patents

비대칭 암호화 기반의 보안 통신을 수행하는 데이터 전송 장치 및 그 동작 방법 Download PDF

Info

Publication number
KR102326527B1
KR102326527B1 KR1020200076158A KR20200076158A KR102326527B1 KR 102326527 B1 KR102326527 B1 KR 102326527B1 KR 1020200076158 A KR1020200076158 A KR 1020200076158A KR 20200076158 A KR20200076158 A KR 20200076158A KR 102326527 B1 KR102326527 B1 KR 102326527B1
Authority
KR
South Korea
Prior art keywords
matrix
data
message
encryption
preset
Prior art date
Application number
KR1020200076158A
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 KR1020200076158A priority Critical patent/KR102326527B1/ko
Application granted granted Critical
Publication of KR102326527B1 publication Critical patent/KR102326527B1/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/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
    • 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

Abstract

비대칭 암호화 기반의 보안 통신을 수행하는 데이터 전송 장치 및 그 동작 방법이 개시된다. 본 발명은 원본 메시지에 대해 채널 코딩을 수행하여 코드워드(codeword)로 변환하고, 소정의 심볼 매핑 테이블을 기초로 상기 코드워드를 구성하는 데이터를 소정의 심볼들로 매핑 변환하며, 각 심볼을 성분으로 갖는 메시지 행렬을 생성한 후 상기 메시지 행렬에 대해서 소정의 공개키 행렬을 기초로 암호화를 수행하여 데이터 수신 장치로 전송하는 데이터 전송 장치 및 그 동작 방법을 제시함으로써, 상기 데이터 수신 장치가 소정의 개인키 행렬을 기초로 암호화 데이터에 대한 복호화를 수행하고, 복호화된 데이터에 대해서 에러 정정을 수행하여 상기 원본 메시지를 복원할 수 있도록 지원한다.

Description

비대칭 암호화 기반의 보안 통신을 수행하는 데이터 전송 장치 및 그 동작 방법{DATA TRANSMISSION DEVICE THAT PERFORMS SECURE COMMUNICATION BASED ON ASYMMETRIC ENCRYPTION AND OPERATING METHOD THEREOF}
본 발명은 비대칭 암호화 기반의 보안 통신을 수행하는 데이터 전송 장치 및 그 동작 방법에 대한 것이다.
최근, 다양한 형태의 정보가 생성되고 유통됨에 따라, 해킹이나 잘못된 경로로의 정보 전달로 인해 중요한 정보가 제3자에게 노출되는 등의 피해가 발생하고 있다.
특히, 정보의 전달과정에서 군사 정보나 개인 정보 등과 같은 중요 정보에 어떠한 방어 기제가 적용되어 있지 않은 상태에서 이러한 중요 정보가 우연히 제3자에게 전달된다면, 제3자가 손쉽게 중요 정보에 접근할 수 있어, 큰 피해가 발생할 수 있다.
최근에는 이러한 중요 정보의 노출을 방지하기 위해, 중요 정보를 소정의 암호화키를 이용하여 암호화한 후 이를 상대방에게 전달하는 기법 등이 도입되고 있다.
일반적인 데이터 암호화 방식은 데이터 전송측과 데이터 수신측이 동일한 비밀키를 공유하고 있다가, 데이터 전송측이 비밀키로 데이터를 암호화해서 전송하면, 데이터 수신측이 동일한 비밀키로 데이터를 복호화하는 방식이 사용된다.
하지만, 이러한 대칭키 기반의 암호화 방식은 비밀키의 전달 및 공유 과정에서 해당 비밀키가 노출될 위험성이 존재한다는 점에서 보안에 취약한 약점이 존재한다.
이러한 대칭키 기반의 암호화 방식의 단점을 해소하기 위해서, 공개키와 개인키라는 비대칭키를 활용한 데이터 암호화 방식이 도입되었다. 비대칭키 기반의 데이터 암호화 방식은 데이터 전송측이 공개키로 데이터를 암호화해서 데이터 수신측으로 전송하면, 데이터 수신측이 상기 공개키에 대응하는 개인키로 데이터를 복호화하거나 데이터 전송측이 개인키로 데이터를 암호화해서 데이터 수신측으로 전송하면, 데이터 수신측이 상기 공개키로 데이터를 복호화하는 방식이 사용된다.
이러한 비대칭키 기반의 데이터 암호화 방식은 데이터 전송측과 데이터 수신측이 서로 다른 암호화키를 가지고 있다는 점에서 암호화키 노출에 따른 위험성을 최소화할 수 있다.
종래에는 비대칭키 기반의 데이터 암호화 방식으로, RSA 기반의 암호화 알고리즘이 주로 사용되었다. 이러한 RSA 기반의 암호화 알고리즘은 이미 그 기술이 널리 알려져 있어서, 고성능의 마이크로 프로세서가 탑재되고 있는 현대의 전자 장비에서 그대로 사용하기에는 보안상의 위험이 존재한다.
따라서, 기존에 사용하고 있지 않은 새로운 방식의 비대칭키 기반의 암호화 시스템에 대한 연구가 필요하다.
본 발명은 원본 메시지에 대해 채널 코딩을 수행하여 코드워드(codeword)로 변환하고, 소정의 심볼 매핑 테이블을 기초로 상기 코드워드를 구성하는 데이터를 소정의 심볼들로 매핑 변환하며, 각 심볼을 성분으로 갖는 메시지 행렬을 생성한 후 상기 메시지 행렬에 대해서 소정의 공개키 행렬을 기초로 암호화를 수행하여 데이터 수신 장치로 전송하는 데이터 전송 장치 및 그 동작 방법을 제시함으로써, 상기 데이터 수신 장치가 소정의 개인키 행렬을 기초로 암호화 데이터에 대한 복호화를 수행하고, 복호화된 데이터에 대해서 에러 정정을 수행하여 상기 원본 메시지를 복원할 수 있도록 지원하고자 한다. 이를 통해, 본 발명은 데이터 전송 장치와 데이터 수신 장치 간의 보안 통신이 가능하도록 지원하고자 한다.
본 발명의 일실시예에 따른 사전 설정된 개인키 행렬 S를 저장하고 있는 데이터 수신 장치와 보안 통신을 수행하는 데이터 전송 장치는 사전 설정된 제1 시드(seed) 값과 사전 설정된 공개키 행렬 B - 상기 공개키 행렬 B는 상기 제1 시드 값을 기초로 생성되는 의사 난수들을 성분으로 갖는 제1 시드 행렬 A와 상기 개인키 행렬 S 및 사전 설정된 제1 에러 행렬 E로부터 B=AS+E의 행렬 연산이 수행되어서 생성된 행렬임 - 가 공개키 세트로 저장되어 있는 공개키 저장부, 원본 메시지 m의 상기 데이터 수신 장치로의 전송 이벤트가 발생하는 경우, 상기 원본 메시지 m에 대해 에러 정정 부호를 생성하기 위한 채널 코딩을 수행하여 코드워드(codeword)로 변환한 후 상기 코드워드를 사전 설정된 데이터 크기 단위의 부분 데이터들로 분할하고, 사전 설정된 심볼 매핑 테이블에 기초하여 각 부분 데이터를 대응되는 심볼로 매핑 변환한 후 변환된 심볼들이 성분으로 포함된 메시지 행렬 U를 생성하는 메시지 행렬 생성부, 상기 메시지 행렬 U가 생성되면, 상기 제1 시드 값을 기초로 상기 제1 시드 행렬 A를 생성한 후 제1 랜덤 행렬 S'과 제2 에러 행렬 E' 및 제3 에러 행렬 E''을 랜덤하게 생성하는 행렬 생성부, 상기 제1 시드 행렬 A와 상기 제1 랜덤 행렬 S' 및 상기 제2 에러 행렬 E'을 기초로 C1=S'A+E'의 행렬 연산을 수행함으로써, 제1 암호화 행렬 C1을 생성하는 제1 암호화 행렬 생성부, 상기 제1 랜덤 행렬 S', 상기 공개키 행렬 B, 상기 제3 에러 행렬 E'' 및 상기 메시지 행렬 U를 기초로 C2=(S'B+E'')+U의 행렬 연산을 수행함으로써, 제2 암호화 행렬 C2를 생성하는 제2 암호화 행렬 생성부 및 상기 제1 암호화 행렬 C1과 상기 제2 암호화 행렬 C2를 상기 원본 메시지 m에 대한 암호화 데이터로 지정하여 상기 데이터 수신 장치로 전송하는 데이터 전송부를 포함한다.
또한, 본 발명의 일실시예에 따른 사전 설정된 개인키 행렬 S를 저장하고 있는 데이터 수신 장치와 보안 통신을 수행하는 데이터 전송 장치의 동작 방법은 사전 설정된 제1 시드(seed) 값과 사전 설정된 공개키 행렬 B - 상기 공개키 행렬 B는 상기 제1 시드 값을 기초로 생성되는 의사 난수들을 성분으로 갖는 제1 시드 행렬 A와 상기 개인키 행렬 S 및 사전 설정된 제1 에러 행렬 E로부터 B=AS+E의 행렬 연산이 수행되어서 생성된 행렬임 - 가 공개키 세트로 저장되어 있는 공개키 저장부를 유지하는 단계, 원본 메시지 m의 상기 데이터 수신 장치로의 전송 이벤트가 발생하는 경우, 상기 원본 메시지 m에 대해 에러 정정 부호를 생성하기 위한 채널 코딩을 수행하여 코드워드로 변환한 후 상기 코드워드를 사전 설정된 데이터 크기 단위의 부분 데이터들로 분할하고, 사전 설정된 심볼 매핑 테이블에 기초하여 각 부분 데이터를 대응되는 심볼로 매핑 변환한 후 변환된 심볼들이 성분으로 포함된 메시지 행렬 U를 생성하는 단계, 상기 메시지 행렬 U가 생성되면, 상기 제1 시드 값을 기초로 상기 제1 시드 행렬 A를 생성한 후 제1 랜덤 행렬 S'과 제2 에러 행렬 E' 및 제3 에러 행렬 E''을 랜덤하게 생성하는 단계, 상기 제1 시드 행렬 A와 상기 제1 랜덤 행렬 S' 및 상기 제2 에러 행렬 E'을 기초로 C1=S'A+E'의 행렬 연산을 수행함으로써, 제1 암호화 행렬 C1을 생성하는 단계, 상기 제1 랜덤 행렬 S', 상기 공개키 행렬 B, 상기 제3 에러 행렬 E'' 및 상기 메시지 행렬 U를 기초로 C2=(S'B+E'')+U의 행렬 연산을 수행함으로써, 제2 암호화 행렬 C2를 생성하는 단계 및 상기 제1 암호화 행렬 C1과 상기 제2 암호화 행렬 C2를 상기 원본 메시지 m에 대한 암호화 데이터로 지정하여 상기 데이터 수신 장치로 전송하는 단계를 포함한다.
본 발명은 원본 메시지에 대해 채널 코딩을 수행하여 코드워드(codeword)로 변환하고, 소정의 심볼 매핑 테이블을 기초로 상기 코드워드를 구성하는 데이터를 소정의 심볼들로 매핑 변환하며, 각 심볼을 성분으로 갖는 메시지 행렬을 생성한 후 상기 메시지 행렬에 대해서 소정의 공개키 행렬을 기초로 암호화를 수행하여 데이터 수신 장치로 전송하는 데이터 전송 장치 및 그 동작 방법을 제시함으로써, 상기 데이터 수신 장치가 소정의 개인키 행렬을 기초로 암호화 데이터에 대한 복호화를 수행하고, 복호화된 데이터에 대해서 에러 정정을 수행하여 상기 원본 메시지를 복원할 수 있도록 지원한다. 이를 통해, 본 발명은 데이터 전송 장치와 데이터 수신 장치 간의 보안 통신이 가능하도록 지원할 수 있다.
도 1은 본 발명의 일실시예에 따른 데이터 전송 장치의 구조를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 데이터 전송 장치의 동작 방법을 도시한 순서도이다.
이하에서는 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명하기로 한다. 이러한 설명은 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였으며, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 본 명세서 상에서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 사람에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.
본 문서에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다. 또한, 본 발명의 다양한 실시예들에 있어서, 각 구성요소들, 기능 블록들 또는 수단들은 하나 또는 그 이상의 하부 구성요소로 구성될 수 있고, 각 구성요소들이 수행하는 전기, 전자, 기계적 기능들은 전자회로, 집적회로, ASIC(Application Specific Integrated Circuit) 등 공지된 다양한 소자들 또는 기계적 요소들로 구현될 수 있으며, 각각 별개로 구현되거나 2 이상이 하나로 통합되어 구현될 수도 있다.
한편, 첨부된 블록도의 블록들이나 흐름도의 단계들은 범용 컴퓨터, 특수용 컴퓨터, 휴대용 노트북 컴퓨터, 네트워크 컴퓨터 등 데이터 프로세싱이 가능한 장비의 프로세서나 메모리에 탑재되어 지정된 기능들을 수행하는 컴퓨터 프로그램 명령들(instructions)을 의미하는 것으로 해석될 수 있다. 이들 컴퓨터 프로그램 명령들은 컴퓨터 장치에 구비된 메모리 또는 컴퓨터에서 판독 가능한 메모리에 저장될 수 있기 때문에, 블록도의 블록들 또는 흐름도의 단계들에서 설명된 기능들은 이를 수행하는 명령 수단을 내포하는 제조물로 생산될 수도 있다. 아울러, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 명령들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 가능한 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 정해진 순서와 달리 실행되는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 실질적으로 동시에 수행되거나, 역순으로 수행될 수 있으며, 경우에 따라 일부 블록들 또는 단계들이 생략된 채로 수행될 수도 있다.
도 1은 본 발명의 일실시예에 따른 데이터 전송 장치의 구조를 도시한 도면이다.
본 발명에 따른 데이터 전송 장치(110)는 사전 설정된 개인키 행렬 S를 저장하고 있는 데이터 수신 장치(120)와 보안 통신을 수행하는 장치로, 공개키 저장부(111), 메시지 행렬 생성부(112), 행렬 생성부(113), 제1 암호화 행렬 생성부(114), 제2 암호화 행렬 생성부(115) 및 데이터 전송부(116)를 포함한다.
우선, 데이터 수신 장치(120)에는 데이터 전송 장치(110)와 보안 통신을 수행하기 위해 상기 개인키 행렬 S가 사전 저장되어 있다. 상기 개인키 행렬 S는 랜덤하게 생성된 수치를 성분으로 갖는 행렬로 n x k의 크기(n과 k는 3이상의 자연수)를 갖는 행렬이다.
공개키 저장부(111)에는 사전 설정된 제1 시드(seed) 값과 사전 설정된 공개키 행렬 B가 공개키 세트로 저장되어 있다.
여기서, 상기 공개키 행렬 B는 상기 제1 시드 값을 기초로 생성되는 의사 난수(Pseudo-Random Number)들을 성분으로 갖는 제1 시드 행렬 A와 상기 개인키 행렬 S 및 사전 설정된 제1 에러 행렬 E로부터 하기의 수학식 1에 따른 행렬 연산이 수행되어서 생성된 행렬이다.
Figure 112020064299602-pat00001
여기서, 상기 제1 에러 행렬 E는 랜덤하게 생성된 수치를 성분으로 갖는 행렬로, n x k의 크기를 갖는 행렬이고, 상기 제1 시드 행렬 A는 n x n의 크기를 갖는 행렬이다. 이로 인해, 상기 수학식 1의 연산에 따라 생성된 상기 공개키 행렬 B의 크기는 n x k가 된다.
이렇게, 상기 개인키 행렬이 데이터 수신 장치(120)에 사전 발급되어 있고, 상기 제1 시드 값과 상기 공개키 행렬이 공개키 저장부(111)에 저장되어 있는 상황에서, 데이터 전송 장치(110)에서 원본 메시지 m을 데이터 수신 장치(120)로 전송하라고 하는 전송 이벤트가 발생하는 경우, 메시지 행렬 생성부(112)는 상기 원본 메시지 m에 대해 에러 정정 부호를 생성하기 위한 채널 코딩을 수행하여 코드워드(codeword)로 변환한 후 상기 코드워드를 사전 설정된 데이터 크기 단위의 부분 데이터들로 분할하고, 사전 설정된 심볼 매핑 테이블에 기초하여 각 부분 데이터를 대응되는 심볼(symbol)로 매핑 변환한 후 변환된 심볼들이 성분으로 포함된 메시지 행렬 U를 생성한다.
이때, 본 발명의 일실시예에 따르면, 메시지 행렬 생성부(112)는 상기 원본 메시지 m에 대해 BCH(Bose-Chaudhuri-Hocquenghem) 부호를 생성하기 위한 채널 코딩을 수행하여 상기 코드워드로 변환할 수 있다.
BCH 부호는 원본 데이터에 대한 에러 정정이 가능하도록 하는 부호로서, 데이터 전송측에서 원본 데이터를 채널 코딩하여 BCH 부호 기반의 코드워드를 생성한 후 상기 코드워드를 데이터 수신측으로 전송하면, 데이터 수신측에서는 상기 코드워드에 대해 에러 정정 기반의 디코딩을 수행함으로써, 상기 원본 데이터를 복원할 수 있게 된다. 즉, 상기 코드워드가 데이터 수신측으로 전달되는 과정에서 에러가 발생하더라도, 해당 에러가 BCH 부호를 통해서 복원할 수 있는 에러 정정 능력 내에서 발생하였다면, 데이터 수신측에서는 상기 코드워드에 대한 신드롬(syndrome)을 생성한 후 상기 신드롬을 기초로 신드롬 디코딩과 같은 에러 정정 기반의 디코딩을 수행함으로써, 상기 원본 데이터를 복원할 수 있게 된다.
이렇게, 메시지 행렬 생성부(112)는 상기 원본 메시지 m의 데이터 수신 장치(120)로의 전송 이벤트가 발생하는 경우, 상기 원본 메시지 m에 대해 BCH 부호를 생성하기 위한 채널 코딩을 수행하여 코드워드로 변환한 후 상기 코드워드를 사전 설정된 데이터 크기 단위의 부분 데이터들로 분할하고, 사전 설정된 심볼 매핑 테이블에 기초하여 각 부분 데이터를 대응되는 심볼로 매핑 변환한 후 변환된 심볼들이 성분으로 포함된 메시지 행렬 U를 생성할 수 있다.
이때, 본 발명의 일실시예에 따르면, 상기 심볼 매핑 테이블에는 상기 사전 설정된 데이터 크기 단위를 갖는 복수의 데이터들과 각 데이터에 대응되는 것으로 사전 지정된 수치 값이 상기 복수의 데이터들 각각에 대응하는 심볼로 매칭되어 기록되어 있을 수 있다.
이때, 본 발명의 일실시예에 따르면, 상기 심볼 매핑 테이블 상에서 상기 복수의 데이터들 각각에 대응되는 심볼로 매칭되어 기록되어 있는 수치 값들은 0과, 미리 설정된 상수 값 C의 배수들로 구성될 수 있다.
이때, 상기 상수 값 C는 하기의 수학식 2로 연산되는 상수 값일 수 있다.
Figure 112020064299602-pat00002
여기서, x와 y는 사전 설정된 2이상의 자연수이다.
예컨대, 상기 사전 설정된 데이터 크기 단위가 3비트라고 하고, x를 14, y를 3이라고 하는 경우, 상기 심볼 매핑 테이블은 하기의 표 1과 같이 구성되어 있을 수 있다.
복수의 데이터들 수치 값들
000 0
001
Figure 112020064299602-pat00003
011
Figure 112020064299602-pat00004
010
Figure 112020064299602-pat00005
110
Figure 112020064299602-pat00006
111
Figure 112020064299602-pat00007
101
Figure 112020064299602-pat00008
100
Figure 112020064299602-pat00009
이때, 메시지 행렬 생성부(112)는 상기 원본 메시지 m에 대한 상기 코드워드가 상기 부분 데이터들로 분할되면, 상기 심볼 매핑 테이블을 참조하여 상기 부분 데이터들 각각을 대응되는 수치 값으로 변환함으로써, 상기 부분 데이터들 각각을 대응되는 심볼로 매핑 변환할 수 있다.
관련해서, 상기 코드워드의 크기가 192비트라고 하고, 상기 사전 설정된 데이터 크기 단위가 3비트라고 하며, 상기 심볼 매핑 테이블이 상기 표 1과 같다고 하는 경우, 메시지 행렬 생성부(112)는 상기 코드워드를 3비트 단위의 64개의 부분 데이터들로 분할하고, 상기 심볼 매핑 테이블을 참조하여 상기 64개의 부분 데이터들 각각을 대응되는 수치 값으로 변환함으로써, 상기 64개의 부분 데이터들 각각을 대응되는 심볼로 매핑 변환할 수 있다. 예컨대, 상기 64개의 부분 데이터들 중 특정 부분 데이터가 '001'이라고 하는 경우, 메시지 행렬 생성부(112)는 '001'이라는 부분 데이터에 대해서 상기 표 1과 같은 심볼 매핑 테이블을 참조하여 '
Figure 112020064299602-pat00010
', 즉, '2048'이라는 수치 값을 대응되는 심볼로 매핑 변환할 수 있다.
이때, 본 발명의 일실시예에 따르면, 메시지 행렬 생성부(112)는 상기 부분 데이터들이 매핑 변환된 심볼들을 이용하여 상기 메시지 행렬 U를 생성할 때, 상기 메시지 행렬 U의 크기가 k x k의 크기가 되도록 상기 메시지 행렬 U를 생성할 수 있다.
관련해서, 전술한 예와 같이, 상기 64개의 부분 데이터들 각각이 대응되는 수치 값으로 변환됨에 따라 64개의 심볼들이 생성되면, 메시지 행렬 생성부(112)는 64개의 심볼들을 8 x 8의 크기를 갖는 행렬의 성분으로 하나씩 지정함으로써, 8 x 8의 크기를 갖는 상기 메시지 행렬 U를 생성할 수 있다.
이렇게, 메시지 행렬 생성부(112)에서 상기 메시지 행렬 U가 생성되면, 행렬 생성부(113)는 상기 제1 시드 값을 기초로 상기 제1 시드 행렬 A를 생성한 후 제1 랜덤 행렬 S'과 제2 에러 행렬 E' 및 제3 에러 행렬 E''을 랜덤하게 생성한다.
여기서, 행렬 생성부(113)는 상기 제1 랜덤 행렬 S'의 크기가 k x n이 되도록 하고, 상기 제2 에러 행렬 E'의 크기가 k x n이 되도록 하며, 상기 제3 에러 행렬 E''의 크기가 k x k가 되도록 상기 제1 랜덤 행렬 S', 제2 에러 행렬 E' 및 제3 에러 행렬 E''을 랜덤하게 생성할 수 있다.
그러고 나서, 제1 암호화 행렬 생성부(114)는 상기 제1 시드 행렬 A와 상기 제1 랜덤 행렬 S' 및 상기 제2 에러 행렬 E'을 기초로 하기의 수학식 3에 따른 행렬 연산을 수행함으로써, 제1 암호화 행렬 C1을 생성한다.
Figure 112020064299602-pat00011
여기서, 상기 제1 랜덤 행렬 S'의 크기가 k x n이고, 상기 제1 시드 행렬 A의 크기가 n x n이며, 상기 제2 에러 행렬 E'의 크기가 k x n이므로, 상기 제1 암호화 행렬 C1의 크기는 k x n이 된다.
그리고, 제2 암호화 행렬 생성부(115)는 상기 제1 랜덤 행렬 S', 상기 공개키 행렬 B, 상기 제3 에러 행렬 E'' 및 상기 메시지 행렬 U를 기초로 하기의 수학식 4에 따른 행렬 연산을 수행함으로써, 제2 암호화 행렬 C2를 생성한다.
Figure 112020064299602-pat00012
여기서, 상기 제1 랜덤 행렬 S'의 크기가 k x n이고, 상기 공개키 행렬 B의 크기가 n x k이며, 상기 제3 에러 행렬 E''의 크기가 k x k이고, 상기 메시지 행렬 U의 크기가 k x k이므로, 상기 제2 암호화 행렬 C2의 크기는 k x k가 된다.
이렇게, 상기 제1 암호화 행렬 C1과 상기 제2 암호화 행렬 C2가 생성되면, 데이터 전송부(116)는 상기 제1 암호화 행렬 C1과 상기 제2 암호화 행렬 C2를 상기 원본 메시지 m에 대한 암호화 데이터로 지정하여 데이터 수신 장치(120)로 전송한다.
이때, 본 발명의 일실시예에 따르면, 데이터 수신 장치(120)는 데이터 전송 장치(110)로부터 상기 암호화 데이터가 수신되면, 상기 암호화 데이터로부터 상기 제1 암호화 행렬 C1과 상기 제2 암호화 행렬 C2를 확인하고, 데이터 수신 장치(120)에 저장되어 있는 상기 개인키 행렬 S를 추출한 후 상기 제1 암호화 행렬 C1과 상기 제2 암호화 행렬 C2 및 상기 개인키 행렬 S를 기초로 하기의 수학식 5에 따른 행렬 연산을 수행함으로써, 복호화 행렬 M을 생성할 수 있다.
Figure 112020064299602-pat00013
여기서, 상기 제1 암호화 행렬 C1의 크기가 k x n이고, 상기 제2 암호화 행렬 C2의 크기가 k x k이며, 상기 개인키 행렬 S의 크기가 n x k이므로, 상기 복호화 행렬 M의 크기는 k x k가 된다.
이때, 상기 수학식 5에 따른 연산은 하기의 수학식 6과 같이 변형될 수 있다.
Figure 112020064299602-pat00014
즉, 상기 수학식 5에 따른 연산에 의해 생성되는 상기 복호화 행렬 M은 상기 수학식 6에서 나타낸 바와 같이, 상기 메시지 행렬 U에 소정의 에러 행렬 E'''이 더해진 형태라고 볼 수 있다. 다시 말해서, 상기 복호화 행렬 M을 구성하는 성분들 각각은 상기 메시지 행렬 U를 구성하는 성분들 각각에 소정의 에러 값이 더해진 형태라고 볼 수 있다.
이로 인해, 데이터 수신 장치(120)는 상기 복호화 행렬 M이 생성되면, 상기 복호화 행렬 M을 구성하는 각 성분을 상기 심볼 매핑 테이블 상에서 상기 복수의 데이터들 각각에 대응되는 수치 값과 비교하여 가장 근사한 수치 값으로 변환함으로써, 상기 메시지 행렬 U를 복원할 수 있다.
예컨대, 상기 심볼 매핑 테이블이 상기 표 1과 같다고 하고, 상기 복호화 행렬 M이 8 x 8의 크기를 갖는 행렬이라고 하는 경우, 데이터 수신 장치(120)는 상기 복호화 행렬 M을 구성하는 64개의 성분들과 상기 표 1과 같은 심볼 매핑 테이블 상의 각 수치 값을 비교하여 상기 64개의 성분들에 가장 근사한 수치 값이 어떤 것인지 확인한 후 상기 64개의 성분들을 각 성분에 가장 근사한 수치 값으로 변환함으로써, 상기 메시지 행렬 U를 복원할 수 있다. 관련해서, 상기 복호화 행렬 M을 구성하는 64개의 성분들 중 특정 성분이 '2214'라고 하는 경우, 데이터 수신 장치(120)는 상기 심볼 매핑 테이블에서 '2214'라는 성분에 가장 근사한 수치 값으로 '2048'을 확인한 후 상기 복호화 행렬 M을 구성하는 64개의 성분들 중 '2214'라는 성분을 '2048'이라고 하는 수치 값으로 변환할 수 있다. 이러한 방식으로, 데이터 수신 장치(120)는 상기 복호화 행렬 M을 구성하는 64개의 성분들 각각을 상기 심볼 매핑 테이블에서 가장 근사한 수치 값으로 변환함으로써, 상기 메시지 행렬 U를 복원할 수 있다.
이렇게, 상기 메시지 행렬 U가 복원되면, 데이터 수신 장치(120)는 복원된 상기 메시지 행렬 U의 성분으로 포함되어 있는 심볼들을 상기 심볼 매핑 테이블에서의 대응되는 데이터로 변환함으로써, 상기 부분 데이터들을 복원할 수 있고, 상기 부분 데이터들이 복원되면, 복원된 상기 부분 데이터들을 결합하여 상기 코드워드를 복원한 후 복원된 상기 코드워드에 대해 에러 정정 기반의 디코딩을 수행함으로써, 상기 원본 메시지 m을 복원할 수 있다.
관련해서, 상기 메시지 행렬 U를 구성하는 성분들은 데이터 전송 장치(110)의 메시지 행렬 생성부(112)에서 상기 원본 메시지 m이 채널 코딩되어 생성된 코드워드의 부분 데이터들이 상기 심볼 매핑 테이블을 기초로 변환된 심볼들이기 때문에, 데이터 수신 장치(120)는 복원된 상기 메시지 행렬 U를 구성하는 심볼들을 상기 심볼 매핑 테이블을 기초로 부분 데이터들로 복원한 후 복원된 상기 부분 데이터들을 결합하여 상기 코드워드를 복원할 수 있다. 그러고 나서, 데이터 수신 장치(120)는 복원된 상기 코드워드에 대해서 에러 정정 기반의 디코딩을 수행함으로써, 상기 원본 메시지 m을 복원할 수 있다.
데이터 수신 장치(120)가 상기 복호화 행렬 M으로부터 상기 메시지 행렬 U를 복원하는 과정에서는 상기 심볼 매핑 테이블을 기초로 근사한 수치 값을 변환하는 과정이 포함되기 때문에 다소간의 에러가 발생할 수 있고, 이로 인해 상기 메시지 행렬 U로부터 복원된 상기 코드워드에는 소정의 에러가 추가되어 있을 수 있다. 이때, 데이터 수신 장치(120)는 복원된 상기 코드워드에 대해서 에러 정정 기반의 디코딩을 수행함으로써, 상기 에러를 정정할 수 있고, 이를 통해 상기 원본 데이터 m을 정확하게 복원할 수 있게 된다.
즉, 본 발명에 따른 데이터 전송 장치(110)는 상기 원본 메시지 m을 데이터 수신 장치(120)로 암호화하여 전송할 때, 상기 원본 메시지 m에 대해 채널 코딩을 수행한 후 채널 코딩이 완료된 데이터를 기초로 암호화 처리를 진행함으로써, 데이터 수신 장치(120)가 암호화 데이터로부터 상기 원본 메시지 m을 복원할 때, 복호화 과정에서 발생하는 에러를 정정할 수 있도록 지원할 수 있다.
본 발명의 일실시예에 따르면, 상기 상수 값 C가 상기 수학식 2와 같다고 하는 경우, 데이터 전송 장치(110)와 데이터 수신 장치(120)에서 발생하는 행렬 연산에서의 덧셈, 곱셈, 뺄셈, 나눗셈의 사칙 연산은 모듈로-2x 기반의 사칙 연산이 사용될 수 있다. 예컨대, 전술한 예와 같이, x를 14라고 하는 경우, A와 B를 더하는 덧셈에 대해서는 (A+B) mod 214의 연산이 사용될 수 있다. 즉, A와 B의 덧셈 결과에 214을 나눈 나머지가 덧셈 결과로 사용될 수 있다.
도 2는 본 발명의 일실시예에 따른 사전 설정된 개인키 행렬 S를 저장하고 있는 데이터 수신 장치와 보안 통신을 수행하는 데이터 전송 장치의 동작 방법을 도시한 순서도이다.
단계(S210)에서는 사전 설정된 제1 시드(seed) 값과 사전 설정된 공개키 행렬 B(상기 공개키 행렬 B는 상기 제1 시드 값을 기초로 생성되는 의사 난수들을 성분으로 갖는 제1 시드 행렬 A와 상기 개인키 행렬 S 및 사전 설정된 제1 에러 행렬 E로부터 B=AS+E의 행렬 연산이 수행되어서 생성된 행렬임)가 공개키 세트로 저장되어 있는 공개키 저장부를 유지한다.
단계(S220)에서는 원본 메시지 m의 상기 데이터 수신 장치로의 전송 이벤트가 발생하는 경우, 상기 원본 메시지 m에 대해 에러 정정 부호를 생성하기 위한 채널 코딩을 수행하여 코드워드로 변환한 후 상기 코드워드를 사전 설정된 데이터 크기 단위의 부분 데이터들로 분할하고, 사전 설정된 심볼 매핑 테이블에 기초하여 각 부분 데이터를 대응되는 심볼로 매핑 변환한 후 변환된 심볼들이 성분으로 포함된 메시지 행렬 U를 생성한다.
단계(S230)에서는 상기 메시지 행렬 U가 생성되면, 상기 제1 시드 값을 기초로 상기 제1 시드 행렬 A를 생성한 후 제1 랜덤 행렬 S'과 제2 에러 행렬 E' 및 제3 에러 행렬 E''을 랜덤하게 생성한다.
단계(S240)에서는 상기 제1 시드 행렬 A와 상기 제1 랜덤 행렬 S' 및 상기 제2 에러 행렬 E'을 기초로 C1=S'A+E'의 행렬 연산을 수행함으로써, 제1 암호화 행렬 C1을 생성한다.
단계(S250)에서는 상기 제1 랜덤 행렬 S', 상기 공개키 행렬 B, 상기 제3 에러 행렬 E'' 및 상기 메시지 행렬 U를 기초로 C2=(S'B+E'')+U의 행렬 연산을 수행함으로써, 제2 암호화 행렬 C2를 생성한다.
단계(S260)에서는 상기 제1 암호화 행렬 C1과 상기 제2 암호화 행렬 C2를 상기 원본 메시지 m에 대한 암호화 데이터로 지정하여 상기 데이터 수신 장치로 전송한다.
이때, 본 발명의 일실시예에 따르면, 상기 심볼 매핑 테이블에는 상기 사전 설정된 데이터 크기 단위를 갖는 복수의 데이터들과 각 데이터에 대응되는 것으로 사전 지정된 수치 값이 상기 복수의 데이터들 각각에 대응하는 심볼로 매칭되어 기록되어 있을 수 있다.
이때, 단계(S220)에서는 상기 코드워드가 상기 부분 데이터들로 분할되면, 상기 심볼 매핑 테이블을 참조하여 상기 부분 데이터들 각각을 대응되는 수치 값으로 변환함으로써, 상기 부분 데이터들 각각을 대응되는 심볼로 매핑 변환할 수 있다.
이때, 본 발명의 일실시예에 따르면, 상기 심볼 매핑 테이블 상에서 상기 복수의 데이터들 각각에 대응되는 심볼로 매칭되어 기록되어 있는 수치 값들은 0과, 미리 설정된 상수 값 C의 배수들로 구성될 수 있다.
또한, 본 발명의 일실시예에 따르면, 단계(S220)에서는 상기 원본 메시지 m에 대해 BCH 부호를 생성하기 위한 채널 코딩을 수행하여 상기 코드워드로 변환할 수 있다.
또한, 본 발명의 일실시예에 따르면, 상기 데이터 수신 장치는 상기 데이터 전송 장치로부터 상기 암호화 데이터가 수신되면, 상기 암호화 데이터로부터 상기 제1 암호화 행렬 C1과 상기 제2 암호화 행렬 C2를 확인하고, 상기 데이터 수신 장치에 저장되어 있는 상기 개인키 행렬 S를 추출한 후 상기 제1 암호화 행렬 C1과 상기 제2 암호화 행렬 C2 및 상기 개인키 행렬 S를 기초로 M=C2-C1S의 행렬 연산을 수행함으로써, 복호화 행렬 M을 생성한 후 상기 복호화 행렬 M을 구성하는 각 성분을 상기 심볼 매핑 테이블 상에서 상기 복수의 데이터들 각각에 대응되는 수치 값과 비교하여 가장 근사한 수치 값으로 변환함으로써, 상기 메시지 행렬 U를 복원하고, 상기 메시지 행렬 U가 복원되면, 복원된 상기 메시지 행렬 U의 성분으로 포함되어 있는 심볼들을 상기 심볼 매핑 테이블에서의 대응되는 데이터로 변환함으로써, 상기 부분 데이터들을 복원하고, 상기 부분 데이터들이 복원되면, 복원된 상기 부분 데이터들을 결합하여 상기 코드워드를 복원한 후 복원된 상기 코드워드에 대해 에러 정정 기반의 디코딩을 수행함으로써, 상기 원본 메시지 m을 복원할 수 있다.
이상, 도 2를 참조하여 본 발명의 일실시예에 따른 데이터 전송 장치의 동작 방법에 대해 설명하였다. 여기서, 본 발명의 일실시예에 따른 데이터 전송 장치의 동작 방법은 도 1을 이용하여 설명한 데이터 전송 장치(110)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.
본 발명의 일실시예에 따른 데이터 전송 장치의 동작 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.
또한, 본 발명의 일실시예에 따른 데이터 전송 장치의 동작 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
110: 데이터 전송 장치
111: 공개키 저장부 112: 메시지 행렬 생성부
113: 행렬 생성부 114: 제1 암호화 행렬 생성부
115: 제2 암호화 행렬 생성부 116: 데이터 전송부
120: 데이터 수신 장치

Claims (12)

  1. 사전 설정된 개인키 행렬 S를 저장하고 있는 데이터 수신 장치와 보안 통신을 수행하는 데이터 전송 장치에 있어서,
    사전 설정된 제1 시드(seed) 값과 사전 설정된 공개키 행렬 B - 상기 공개키 행렬 B는 상기 제1 시드 값을 기초로 생성되는 의사 난수들을 성분으로 갖는 제1 시드 행렬 A와 상기 개인키 행렬 S 및 사전 설정된 제1 에러 행렬 E로부터 B=AS+E의 행렬 연산이 수행되어서 생성된 행렬임 - 가 공개키 세트로 저장되어 있는 공개키 저장부;
    원본 메시지 m의 상기 데이터 수신 장치로의 전송 이벤트가 발생하는 경우, 상기 원본 메시지 m에 대해 에러 정정 부호를 생성하기 위한 채널 코딩을 수행하여 코드워드(codeword)로 변환한 후 상기 코드워드를 사전 설정된 데이터 크기 단위의 부분 데이터들로 분할하고, 사전 설정된 심볼 매핑 테이블에 기초하여 각 부분 데이터를 대응되는 심볼로 매핑 변환한 후 변환된 심볼들이 성분으로 포함된 메시지 행렬 U를 생성하는 메시지 행렬 생성부;
    상기 메시지 행렬 U가 생성되면, 상기 제1 시드 값을 기초로 상기 제1 시드 행렬 A를 생성한 후 제1 랜덤 행렬 S'과 제2 에러 행렬 E' 및 제3 에러 행렬 E''을 랜덤하게 생성하는 행렬 생성부;
    상기 제1 시드 행렬 A와 상기 제1 랜덤 행렬 S' 및 상기 제2 에러 행렬 E'을 기초로 C1=S'A+E'의 행렬 연산을 수행함으로써, 제1 암호화 행렬 C1을 생성하는 제1 암호화 행렬 생성부;
    상기 제1 랜덤 행렬 S', 상기 공개키 행렬 B, 상기 제3 에러 행렬 E'' 및 상기 메시지 행렬 U를 기초로 C2=(S'B+E'')+U의 행렬 연산을 수행함으로써, 제2 암호화 행렬 C2를 생성하는 제2 암호화 행렬 생성부; 및
    상기 제1 암호화 행렬 C1과 상기 제2 암호화 행렬 C2를 상기 원본 메시지 m에 대한 암호화 데이터로 지정하여 상기 데이터 수신 장치로 전송하는 데이터 전송부
    를 포함하는 데이터 전송 장치.
  2. 제1항에 있어서,
    상기 심볼 매핑 테이블에는
    상기 사전 설정된 데이터 크기 단위를 갖는 복수의 데이터들과 각 데이터에 대응되는 것으로 사전 지정된 수치 값이 상기 복수의 데이터들 각각에 대응하는 심볼로 매칭되어 기록되어 있고,
    상기 메시지 행렬 생성부는
    상기 코드워드가 상기 부분 데이터들로 분할되면, 상기 심볼 매핑 테이블을 참조하여 상기 부분 데이터들 각각을 대응되는 수치 값으로 변환함으로써, 상기 부분 데이터들 각각을 대응되는 심볼로 매핑 변환하는 데이터 전송 장치.
  3. 제2항에 있어서,
    상기 심볼 매핑 테이블 상에서 상기 복수의 데이터들 각각에 대응되는 심볼로 매칭되어 기록되어 있는 수치 값들은 0과, 미리 설정된 상수 값 C의 배수들로 구성되는 것을 특징으로 하는 데이터 전송 장치.
  4. 제1항에 있어서,
    상기 메시지 행렬 생성부는
    상기 원본 메시지 m에 대해 BCH(Bose-Chaudhuri-Hocquenghem) 부호를 생성하기 위한 채널 코딩을 수행하여 상기 코드워드로 변환하는 데이터 전송 장치.
  5. 제2항에 있어서,
    상기 데이터 수신 장치는
    상기 데이터 전송 장치로부터 상기 암호화 데이터가 수신되면, 상기 암호화 데이터로부터 상기 제1 암호화 행렬 C1과 상기 제2 암호화 행렬 C2를 확인하고, 상기 데이터 수신 장치에 저장되어 있는 상기 개인키 행렬 S를 추출한 후 상기 제1 암호화 행렬 C1과 상기 제2 암호화 행렬 C2 및 상기 개인키 행렬 S를 기초로 M=C2-C1S의 행렬 연산을 수행함으로써, 복호화 행렬 M을 생성한 후 상기 복호화 행렬 M을 구성하는 각 성분을 상기 심볼 매핑 테이블 상에서 상기 복수의 데이터들 각각에 대응되는 수치 값과 비교하여 가장 근사한 수치 값으로 변환함으로써, 상기 메시지 행렬 U를 복원하고, 상기 메시지 행렬 U가 복원되면, 복원된 상기 메시지 행렬 U의 성분으로 포함되어 있는 심볼들을 상기 심볼 매핑 테이블에서의 대응되는 데이터로 변환함으로써, 상기 부분 데이터들을 복원하고, 상기 부분 데이터들이 복원되면, 복원된 상기 부분 데이터들을 결합하여 상기 코드워드를 복원한 후 복원된 상기 코드워드에 대해 에러 정정 기반의 디코딩을 수행함으로써, 상기 원본 메시지 m을 복원하는 것을 특징으로 하는 데이터 전송 장치.
  6. 사전 설정된 개인키 행렬 S를 저장하고 있는 데이터 수신 장치와 보안 통신을 수행하는 데이터 전송 장치의 동작 방법에 있어서,
    사전 설정된 제1 시드(seed) 값과 사전 설정된 공개키 행렬 B - 상기 공개키 행렬 B는 상기 제1 시드 값을 기초로 생성되는 의사 난수들을 성분으로 갖는 제1 시드 행렬 A와 상기 개인키 행렬 S 및 사전 설정된 제1 에러 행렬 E로부터 B=AS+E의 행렬 연산이 수행되어서 생성된 행렬임 - 가 공개키 세트로 저장되어 있는 공개키 저장부를 유지하는 단계;
    원본 메시지 m의 상기 데이터 수신 장치로의 전송 이벤트가 발생하는 경우, 상기 원본 메시지 m에 대해 에러 정정 부호를 생성하기 위한 채널 코딩을 수행하여 코드워드(codeword)로 변환한 후 상기 코드워드를 사전 설정된 데이터 크기 단위의 부분 데이터들로 분할하고, 사전 설정된 심볼 매핑 테이블에 기초하여 각 부분 데이터를 대응되는 심볼로 매핑 변환한 후 변환된 심볼들이 성분으로 포함된 메시지 행렬 U를 생성하는 단계;
    상기 메시지 행렬 U가 생성되면, 상기 제1 시드 값을 기초로 상기 제1 시드 행렬 A를 생성한 후 제1 랜덤 행렬 S'과 제2 에러 행렬 E' 및 제3 에러 행렬 E''을 랜덤하게 생성하는 단계;
    상기 제1 시드 행렬 A와 상기 제1 랜덤 행렬 S' 및 상기 제2 에러 행렬 E'을 기초로 C1=S'A+E'의 행렬 연산을 수행함으로써, 제1 암호화 행렬 C1을 생성하는 단계;
    상기 제1 랜덤 행렬 S', 상기 공개키 행렬 B, 상기 제3 에러 행렬 E'' 및 상기 메시지 행렬 U를 기초로 C2=(S'B+E'')+U의 행렬 연산을 수행함으로써, 제2 암호화 행렬 C2를 생성하는 단계; 및
    상기 제1 암호화 행렬 C1과 상기 제2 암호화 행렬 C2를 상기 원본 메시지 m에 대한 암호화 데이터로 지정하여 상기 데이터 수신 장치로 전송하는 단계
    를 포함하는 데이터 전송 장치의 동작 방법.
  7. 제6항에 있어서,
    상기 심볼 매핑 테이블에는
    상기 사전 설정된 데이터 크기 단위를 갖는 복수의 데이터들과 각 데이터에 대응되는 것으로 사전 지정된 수치 값이 상기 복수의 데이터들 각각에 대응하는 심볼로 매칭되어 기록되어 있고,
    상기 메시지 행렬 U를 생성하는 단계는
    상기 코드워드가 상기 부분 데이터들로 분할되면, 상기 심볼 매핑 테이블을 참조하여 상기 부분 데이터들 각각을 대응되는 수치 값으로 변환함으로써, 상기 부분 데이터들 각각을 대응되는 심볼로 매핑 변환하는 데이터 전송 장치의 동작 방법.
  8. 제7항에 있어서,
    상기 심볼 매핑 테이블 상에서 상기 복수의 데이터들 각각에 대응되는 심볼로 매칭되어 기록되어 있는 수치 값들은 0과, 미리 설정된 상수 값 C의 배수들로 구성되는 것을 특징으로 하는 데이터 전송 장치의 동작 방법.
  9. 제6항에 있어서,
    상기 메시지 행렬 U를 생성하는 단계는
    상기 원본 메시지 m에 대해 BCH(Bose-Chaudhuri-Hocquenghem) 부호를 생성하기 위한 채널 코딩을 수행하여 상기 코드워드로 변환하는 데이터 전송 장치의 동작 방법.
  10. 제7항에 있어서,
    상기 데이터 수신 장치는
    상기 데이터 전송 장치로부터 상기 암호화 데이터가 수신되면, 상기 암호화 데이터로부터 상기 제1 암호화 행렬 C1과 상기 제2 암호화 행렬 C2를 확인하고, 상기 데이터 수신 장치에 저장되어 있는 상기 개인키 행렬 S를 추출한 후 상기 제1 암호화 행렬 C1과 상기 제2 암호화 행렬 C2 및 상기 개인키 행렬 S를 기초로 M=C2-C1S의 행렬 연산을 수행함으로써, 복호화 행렬 M을 생성한 후 상기 복호화 행렬 M을 구성하는 각 성분을 상기 심볼 매핑 테이블 상에서 상기 복수의 데이터들 각각에 대응되는 수치 값과 비교하여 가장 근사한 수치 값으로 변환함으로써, 상기 메시지 행렬 U를 복원하고, 상기 메시지 행렬 U가 복원되면, 복원된 상기 메시지 행렬 U의 성분으로 포함되어 있는 심볼들을 상기 심볼 매핑 테이블에서의 대응되는 데이터로 변환함으로써, 상기 부분 데이터들을 복원하고, 상기 부분 데이터들이 복원되면, 복원된 상기 부분 데이터들을 결합하여 상기 코드워드를 복원한 후 복원된 상기 코드워드에 대해 에러 정정 기반의 디코딩을 수행함으로써, 상기 원본 메시지 m을 복원하는 것을 특징으로 하는 데이터 전송 장치의 동작 방법.
  11. 제6항 내지 제10항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
  12. 제6항 내지 제10항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램.
KR1020200076158A 2020-06-23 2020-06-23 비대칭 암호화 기반의 보안 통신을 수행하는 데이터 전송 장치 및 그 동작 방법 KR102326527B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200076158A KR102326527B1 (ko) 2020-06-23 2020-06-23 비대칭 암호화 기반의 보안 통신을 수행하는 데이터 전송 장치 및 그 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200076158A KR102326527B1 (ko) 2020-06-23 2020-06-23 비대칭 암호화 기반의 보안 통신을 수행하는 데이터 전송 장치 및 그 동작 방법

Publications (1)

Publication Number Publication Date
KR102326527B1 true KR102326527B1 (ko) 2021-11-15

Family

ID=78502973

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200076158A KR102326527B1 (ko) 2020-06-23 2020-06-23 비대칭 암호화 기반의 보안 통신을 수행하는 데이터 전송 장치 및 그 동작 방법

Country Status (1)

Country Link
KR (1) KR102326527B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030012372A1 (en) * 2001-04-25 2003-01-16 Cheng Siu Lung System and method for joint encryption and error-correcting coding
WO2006045114A2 (en) * 2004-10-13 2006-04-27 The Regents Of The University Of California Cryptographic primitives, error coding, and pseudo-random number improvement methods using quasigroups
KR20140039113A (ko) * 2012-09-22 2014-04-01 최수정 보완적인 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치
KR20180058366A (ko) * 2016-11-24 2018-06-01 서울대학교산학협력단 생성 행렬의 천공에 기초한 암호화키를 사용하는 데이터 암호화 장치 및 방법
KR20190129306A (ko) * 2018-05-10 2019-11-20 조선대학교산학협력단 거듭 행렬 기반의 비밀키 암호화가 가능한 데이터 전송 장치 및 그 동작 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030012372A1 (en) * 2001-04-25 2003-01-16 Cheng Siu Lung System and method for joint encryption and error-correcting coding
WO2006045114A2 (en) * 2004-10-13 2006-04-27 The Regents Of The University Of California Cryptographic primitives, error coding, and pseudo-random number improvement methods using quasigroups
KR20140039113A (ko) * 2012-09-22 2014-04-01 최수정 보완적인 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치
KR20180058366A (ko) * 2016-11-24 2018-06-01 서울대학교산학협력단 생성 행렬의 천공에 기초한 암호화키를 사용하는 데이터 암호화 장치 및 방법
KR20190129306A (ko) * 2018-05-10 2019-11-20 조선대학교산학협력단 거듭 행렬 기반의 비밀키 암호화가 가능한 데이터 전송 장치 및 그 동작 방법

Similar Documents

Publication Publication Date Title
Van Tilborg An introduction to cryptology
KR101942030B1 (ko) 메시지에 대한 무결성 검증이 지원되는 부호 기반의 암호화가 가능한 전자 장치 및 그 동작 방법
US11139971B2 (en) Conducting a cryptographic operation
KR101913100B1 (ko) 생성 행렬의 천공에 기초한 암호화키를 사용하는 데이터 암호화 장치 및 방법
US20150280906A1 (en) Algebraic manipulation detection codes from algebraic curves
US10985914B2 (en) Key generation device and key generation method
KR20180104363A (ko) 메시지 인증이 가능한 부호 기반 암호화 장치 및 방법
US20190363891A1 (en) Encryption device and decryption device
KR102244290B1 (ko) 데이터 전송 장치와 데이터 수신 장치 간의 보안 통신을 지원하는 암호화 통신 장치 및 그 동작 방법
JP2018157411A (ja) 情報処理装置
KR20200143197A (ko) 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치 및 그 동작 방법
KR102096359B1 (ko) 거듭 행렬 기반의 비밀키 암호화가 가능한 데이터 전송 장치 및 그 동작 방법
US11341217B1 (en) Enhancing obfuscation of digital content through use of linear error correction codes
GB2574076A (en) Distributed data storage
KR101978684B1 (ko) 재생 공격 방지가 가능한 부호 기반 암호화 장치 및 방법
KR102326527B1 (ko) 비대칭 암호화 기반의 보안 통신을 수행하는 데이터 전송 장치 및 그 동작 방법
KR101894566B1 (ko) 인증 및 오류 정정이 통합된 부호화가 가능한 데이터 전송 장치 및 방법
US9705675B2 (en) Method and system making it possible to test a cryptographic integrity of an error tolerant data item
KR101942033B1 (ko) t+a개의 오류 코드가 삽입된 부호 기반의 암호화 데이터의 복호화가 가능한 전자 장치 및 그 동작 방법
KR20190058884A (ko) 생체 정보 기반의 전자 서명이 가능한 데이터 전송 장치 및 그 동작 방법
KR101974345B1 (ko) 전자 서명을 통한 차량 간 보안 통신을 지원하는 커넥티드 차량용 데이터 통신 장치 및 그 동작 방법
CN112614557A (zh) 电子病历加密存档方法
CN111008837A (zh) 区块链账户私钥恢复方法、装置、计算机设备及存储介质
KR102071064B1 (ko) 난수 발생용 엔트로피 공급 관리 서비스 장치 및 그 동작 방법
US11664976B2 (en) Method and devices for creating redundancy and encryption using Mojette Transform

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant