KR102244290B1 - 데이터 전송 장치와 데이터 수신 장치 간의 보안 통신을 지원하는 암호화 통신 장치 및 그 동작 방법 - Google Patents

데이터 전송 장치와 데이터 수신 장치 간의 보안 통신을 지원하는 암호화 통신 장치 및 그 동작 방법 Download PDF

Info

Publication number
KR102244290B1
KR102244290B1 KR1020200179293A KR20200179293A KR102244290B1 KR 102244290 B1 KR102244290 B1 KR 102244290B1 KR 1020200179293 A KR1020200179293 A KR 1020200179293A KR 20200179293 A KR20200179293 A KR 20200179293A KR 102244290 B1 KR102244290 B1 KR 102244290B1
Authority
KR
South Korea
Prior art keywords
natural number
matrix
communication device
data
encryption key
Prior art date
Application number
KR1020200179293A
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 KR1020200179293A priority Critical patent/KR102244290B1/ko
Application granted granted Critical
Publication of KR102244290B1 publication Critical patent/KR102244290B1/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/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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

데이터 전송 장치와 데이터 수신 장치 간의 보안 통신을 지원하는 암호화 통신 장치 및 그 동작 방법이 개시된다. 본 발명은 데이터 전송 장치가 전송하고자 하는 평문 데이터를 암호화 통신 장치가 암호화하여 복호화 통신 장치로 전송하면, 상기 복호화 통신 장치가 암호화된 데이터에 대해 복호화를 수행한 후 이를 데이터 수신 장치로 전달하는 보안 통신 기술을 제시함으로써, 데이터 전송 장치와 데이터 수신 장치 간의 보안 통신이 가능하도록 지원할 수 있다.

Description

데이터 전송 장치와 데이터 수신 장치 간의 보안 통신을 지원하는 암호화 통신 장치 및 그 동작 방법{ENCRYPTION COMMUNICATION APPARATUS THAT SUPPORTS SECURE COMMUNICATION BETWEEN A DATA TRANSMITTING APPARATUS AND A DATA RECEIVING APPARATUS, AND THE OPERATING METHOD THEREOF}
본 발명은 데이터 전송 장치와 데이터 수신 장치 간의 보안 통신을 지원하는 암호화 통신 장치 및 그 동작 방법에 대한 것이다.
최근, 통신 기술이 발전하면서, 다양한 통신 장비들이 등장하고 있다. 특히, 센서 장비들을 활용하여 소정의 센싱 데이터를 획득한 후 이러한 센싱 데이터를 기초로 환경 변화를 감지하는 센서 네트워크에 대한 기술의 관심이 증가하고 있다.
또한, 최근에는 드론에 대한 관심도 증가하면서, 드론을 활용하여 소정의 데이터를 수집하고, 이에 대한 데이터를 네트워크를 통해 다른 장비로 전송하는 시스템의 도입도 증가하고 있다.
최근에는 네트워크에 대한 보안 침입이 빈번하게 발생하면서, 데이터의 송수신 과정에서 제3자에 의해 데이터가 노출되거나 위/변조되지 않도록 하기 위한 보안 기술의 중요성이 증가하고 있다.
다만, 센서 네트워크에서 활용되는 센서 장비나 드론 등과 같은 장비들은 사용 목적의 특성상 고성능의 프로세서가 탑재되는 것이 아니라, 간단한 데이터를 수집하고, 이를 네트워크를 통해 다른 장비로 전송할 수 있도록 하는 정도의 성능을 갖춘 프로세서가 탑재되는 경우가 많아서, 보안 통신을 위한 기능이 적용되어 있지 않은 경우가 많다.
아울러, 고성능의 프로세서가 탑재된 통신 장비가 사용된다고 하더라도 이러한 통신 장비에 데이터 노출을 방지하기 위한 보안 기술이 적용되지 않은 경우가 많은 실정이다.
따라서, 데이터 전송 장치와 데이터 수신 장치 간의 데이터 송수신 과정에서 데이터의 암호화 통신이 가능하도록 지원할 수 있는 보안 통신 기술에 대한 연구가 필요하다.
본 발명은 데이터 전송 장치가 전송하고자 하는 평문 데이터를 암호화 통신 장치가 암호화하여 복호화 통신 장치로 전송하면, 상기 복호화 통신 장치가 암호화된 데이터에 대해 복호화를 수행한 후 이를 데이터 수신 장치로 전달하는 보안 통신 기술을 제시함으로써, 데이터 전송 장치와 데이터 수신 장치 간의 보안 통신이 가능하도록 지원하고자 한다.
본 발명의 일실시예에 따른 데이터 전송 장치의 데이터를 암호화하여 수신측으로 전송함으로써, 상기 데이터 전송 장치와 데이터 수신 장치 간의 보안 통신을 지원하는 암호화 통신 장치는 사전 설정된 암호화키 생성 함수가 저장되어 있는 생성 함수 저장부, 상기 데이터 전송 장치로부터 평문 데이터를 상기 데이터 수신 장치로 전송하라는 명령이 수신되면, 암호화키를 생성하기 위한 시드(seed) 값을 랜덤하게 생성하고, 상기 시드 값을 상기 암호화키 생성 함수에 입력으로 인가하여 제1 암호화키를 생성한 후 상기 제1 암호화키로 상기 평문 데이터를 암호화하여 암호화 데이터를 생성하는 암호화 데이터 생성부 및 상기 암호화 데이터가 생성되면, 상기 암호화 데이터와 상기 시드 값을 상기 복호화 통신 장치로 전송하는 전송부를 포함하고, 상기 복호화 통신 장치는 메모리 상에 상기 암호화키 생성 함수를 저장하고 있고, 상기 암호화 통신 장치로부터 상기 암호화 데이터와 상기 시드 값이 수신되면, 메모리 상에 저장되어 있는 상기 암호화키 생성 함수에 상기 시드 값을 입력으로 인가하여 상기 제1 암호화키를 생성한 후 상기 제1 암호화키로 상기 암호화 데이터를 복호화하여 상기 데이터 수신 장치로 전달한다.
또한, 본 발명의 일실시예에 따른 데이터 전송 장치의 데이터를 암호화하여 수신측으로 전송함으로써, 상기 데이터 전송 장치와 데이터 수신 장치 간의 보안 통신을 지원하는 암호화 통신 장치의 동작 방법은 암호화키 생성 함수가 저장되어 있는 생성 함수 저장부를 유지하는 단계, 상기 데이터 전송 장치로부터 평문 데이터를 상기 데이터 수신 장치로 전송하라는 명령이 수신되면, 암호화키를 생성하기 위한 시드 값을 랜덤하게 생성하고, 상기 시드 값을 상기 암호화키 생성 함수에 입력으로 인가하여 제1 암호화키를 생성한 후 상기 제1 암호화키로 상기 평문 데이터를 암호화하여 암호화 데이터를 생성하는 단계 및 상기 암호화 데이터가 생성되면, 상기 암호화 데이터와 상기 시드 값을 상기 복호화 통신 장치로 전송하는 단계를 포함하고, 상기 복호화 통신 장치는 메모리 상에 상기 암호화키 생성 함수를 저장하고 있고, 상기 암호화 통신 장치로부터 상기 암호화 데이터와 상기 시드 값이 수신되면, 메모리 상에 저장되어 있는 상기 암호화키 생성 함수에 상기 시드 값을 입력으로 인가하여 상기 제1 암호화키를 생성한 후 상기 제1 암호화키로 상기 암호화 데이터를 복호화하여 상기 데이터 수신 장치로 전달한다.
본 발명은 데이터 전송 장치가 전송하고자 하는 평문 데이터를 암호화 통신 장치가 암호화하여 복호화 통신 장치로 전송하면, 상기 복호화 통신 장치가 암호화된 데이터에 대해 복호화를 수행한 후 이를 데이터 수신 장치로 전달하는 보안 통신 기술을 제시함으로써, 데이터 전송 장치와 데이터 수신 장치 간의 보안 통신이 가능하도록 지원할 수 있다.
도 1은 본 발명의 일실시예에 따른 데이터 전송 장치와 데이터 수신 장치 간의 보안 통신을 지원하는 암호화 통신 장치의 구조를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 데이터 전송 장치와 데이터 수신 장치 간의 보안 통신을 지원하는 암호화 통신 장치의 동작 방법을 도시한 순서도이다.
이하에서는 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명하기로 한다. 이러한 설명은 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였으며, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 본 명세서 상에서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 사람에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.
본 문서에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다. 또한, 본 발명의 다양한 실시예들에 있어서, 각 구성요소들, 기능 블록들 또는 수단들은 하나 또는 그 이상의 하부 구성요소로 구성될 수 있고, 각 구성요소들이 수행하는 전기, 전자, 기계적 기능들은 전자회로, 집적회로, ASIC(Application Specific Integrated Circuit) 등 공지된 다양한 소자들 또는 기계적 요소들로 구현될 수 있으며, 각각 별개로 구현되거나 2 이상이 하나로 통합되어 구현될 수도 있다.
한편, 첨부된 블록도의 블록들이나 흐름도의 단계들은 범용 컴퓨터, 특수용 컴퓨터, 휴대용 노트북 컴퓨터, 네트워크 컴퓨터 등 데이터 프로세싱이 가능한 장비의 프로세서나 메모리에 탑재되어 지정된 기능들을 수행하는 컴퓨터 프로그램 명령들(instructions)을 의미하는 것으로 해석될 수 있다. 이들 컴퓨터 프로그램 명령들은 컴퓨터 장치에 구비된 메모리 또는 컴퓨터에서 판독 가능한 메모리에 저장될 수 있기 때문에, 블록도의 블록들 또는 흐름도의 단계들에서 설명된 기능들은 이를 수행하는 명령 수단을 내포하는 제조물로 생산될 수도 있다. 아울러, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 명령들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 가능한 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 정해진 순서와 달리 실행되는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 실질적으로 동시에 수행되거나, 역순으로 수행될 수 있으며, 경우에 따라 일부 블록들 또는 단계들이 생략된 채로 수행될 수도 있다.
도 1은 본 발명의 일실시예에 따른 데이터 전송 장치와 데이터 수신 장치 간의 보안 통신을 지원하는 암호화 통신 장치의 구조를 도시한 도면이다.
도 1을 참조하면, 본 발명에 따른 암호화 통신 장치(110)는 생성 함수 저장부(111), 암호화 데이터 생성부(112) 및 전송부(113)를 포함한다.
먼저, 암호화 통신 장치(110)는 데이터 전송 장치(101)의 데이터를 암호화하여 수신측으로 전송하는 장치로서, 데이터 전송 장치(101)에 유선으로 직접 연결되어 있거나 무선으로 연결되어 있을 수 있다.
이때, 데이터 수신 장치(102)에는 본 발명에 따른 암호화 통신 장치(110)를 통해 암호화되어서 전송되는 데이터를 수신한 후 이를 복호화하기 위한 복호화 통신 장치(130)가 유선으로 직접 연결되어 있거나 무선으로 연결되어 있을 수 있다.
이렇게, 데이터 전송 장치(101)에 암호화 통신 장치(110)가 유무선으로 연결되어 있고, 데이터 수신 장치(102)에 복호화 통신 장치(130)가 유무선으로 연결되어 있는 상황에서, 본 발명에 따른 암호화 통신 장치(110)는 데이터 전송 장치(101)의 데이터를 암호화하여 수신측으로 전송하는 동작을 수행하게 된다.
이와 관련해서, 우선, 암호화 통신 장치(110)의 생성 함수 저장부(111)에는 사전 설정된 암호화키 생성 함수가 저장되어 있다.
여기서, 상기 암호화키 생성 함수는 소정의 시드(seed) 값이 입력으로 인가되면, 이를 기초로 암호화키를 생성할 수 있는 함수로서, 해시 함수 등이 사용될 수 있으며, 개발자에 의해 사전 설정될 수 있는 함수이다. 이러한 상기 암호화키 생성 함수는 복호화 통신 장치(130)에도 사전 저장되어 있다.
암호화 데이터 생성부(112)는 데이터 전송 장치(101)로부터 평문 데이터를 데이터 수신 장치(102)로 전송하라는 명령이 수신되면, 암호화키를 생성하기 위한 시드 값을 랜덤하게 생성하고, 상기 시드 값을 상기 암호화키 생성 함수에 입력으로 인가하여 제1 암호화키를 생성한 후 상기 제1 암호화키로 상기 평문 데이터를 암호화하여 암호화 데이터를 생성한다.
전송부(113)는 상기 암호화 데이터가 생성되면, 상기 암호화 데이터와 상기 시드 값을 복호화 통신 장치(130)로 전송한다.
이때, 복호화 통신 장치(130)는 메모리 상에 상기 암호화키 생성 함수를 저장하고 있고, 암호화 통신 장치(110)로부터 상기 암호화 데이터와 상기 시드 값이 수신되면, 메모리 상에 저장되어 있는 상기 암호화키 생성 함수에 상기 시드 값을 입력으로 인가하여 상기 제1 암호화키를 생성한 후 상기 제1 암호화키로 상기 암호화 데이터를 복호화하여 데이터 수신 장치(102)로 전달할 수 있다.
즉, 본 발명에 따른 암호화 통신 장치(110)는 소정의 시드 값을 랜덤하게 생성하고, 상기 시드 값을 상기 암호화키 생성 함수에 입력으로 인가하여 암호화키를 생성한 후 데이터 전송 장치(101)가 전송하려는 평문 데이터를 상기 암호화키로 암호화하여 그 암호화 데이터와 상기 시드 값을 복호화 통신 장치(130)로 전송함으로써, 데이터의 암호화 전송을 지원하고, 이때, 복호화 통신 장치(130)는 암호화 통신 장치(110)로부터 상기 암호화 데이터와 상기 시드 값이 수신되면, 상기 시드 값을 상기 암호화키 생성 함수에 입력으로 인가하여 상기 암호화키를 생성한 후 생성된 암호화키로 상기 암호화 데이터를 복호화하여 이를 데이터 수신 장치(102)로 전달함으로써, 데이터 수신 장치(102)가 상기 평문 데이터를 온전하게 수신할 수 있도록 지원할 수 있다.
이때, 본 발명의 일실시예에 따르면, 전송부(113)는 상기 암호화 데이터와 함께 상기 시드 값을 복호화 통신 장치(130)로 전송할 때, 상기 시드 값이 제3자에게 노출되는 것을 방지하기 위한 추가 구성으로, 테이블 유지부(114), 자연수 확인부(115), 행렬 생성부(116) 및 데이터 암호화 전송부(117)를 포함할 수 있다.
테이블 유지부(114)는 사전 설정된 복수의 시간대들에 대한 정보 및 상기 복수의 시간대들 각각에 대응되는 사전 설정된 두 개의 서로 다른 자연수로 구성된 자연수 쌍이 기록되어 있는 테이블을 저장하여 유지한다.
예컨대, 상기 테이블에는 하기의 표 1과 같이 정보가 기록되어 있을 수 있다.
복수의 시간대들 자연수 쌍
1시~2시 (1, 2)
2시~3시 (3, 4)
3시~4시 (5, 6)
... ...
자연수 확인부(115)는 암호화 데이터 생성부(112)에 의해 상기 암호화 데이터가 생성되면, 현재 시간대를 확인하고, 상기 테이블을 참조하여, 상기 현재 시간대에 대응되는 자연수 쌍에 포함된 제1 자연수인 x1과 제2 자연수인 x2를 확인한다.
행렬 생성부(116)는 상기 제1 자연수인 x1과 상기 제2 자연수인 x2가 확인되면, n x k의 크기를 갖는 랜덤한 더미(dummy) 값들이 성분으로 구성된 랜덤 행렬을 생성한 후, 상기 랜덤 행렬에서 x1행, x2열에 존재하는 성분 값을 상기 시드 값으로 치환함으로써, n x k의 크기를 갖는 치환 행렬을 생성한다. 여기서, n은 x1보다 큰 자연수이고, k는 x2보다 큰 자연수이다.
데이터 암호화 전송부(117)는 상기 치환 행렬이 생성되면, 상기 암호화 데이터와 상기 시드 값이 포함된 상기 치환 행렬을 복호화 통신 장치(130)로 전송한다.
이때, 본 발명의 일실시예에 따르면, 복호화 통신 장치(130)는 메모리 상에 상기 테이블을 추가로 저장하고 있고, 암호화 통신 장치(110)로부터 상기 암호화 데이터와 상기 치환 행렬이 수신되면, 상기 현재 시간대를 확인한 후 메모리 상에 저장되어 있는 상기 테이블을 참조하여, 상기 현재 시간대에 대응되는 자연수 쌍에 포함된 상기 제1 자연수인 x1과 상기 제2 자연수인 x2를 확인하고, 상기 제1 자연수인 x1과 상기 제2 자연수인 x2를 기초로, 상기 치환 행렬에서 x1행, x2열에 존재하는 성분 값을 추출하여, 상기 시드 값을 복원한 후 메모리 상에 저장되어 있는 상기 암호화키 생성 함수에 상기 시드 값을 입력으로 인가하여 상기 제1 암호화키를 생성하고, 상기 제1 암호화키가 생성되면, 상기 제1 암호화키로 상기 암호화 데이터를 복호화하여 데이터 수신 장치(102)로 전달할 수 있다.
이하에서는, 자연수 확인부(115), 행렬 생성부(116), 데이터 암호화 전송부(117) 및 복호화 통신 장치(130)의 동작을 예를 들어, 상세히 설명하기로 한다.
먼저, 상기 시드 값을 'S'라고 하고, 상기 현재 시간을 '1시 20분'이라고 가정하자.
이때, 암호화 데이터 생성부(112)에 의해 상기 암호화 데이터가 생성되면, 자연수 확인부(115)는 상기 현재 시간인 '1시 20분'에 대응되는 현재 시간대를 '1시~2시'로 확인하고, 상기 표 1과 같은 테이블을 참조하여, 상기 현재 시간대인 '1시~2시'에 대응되는 자연수 쌍에 포함된 제1 자연수인 x1을 '1'로 확인할 수 있고, 제2 자연수인 x2를 '2'로 확인할 수 있다.
이렇게, 자연수 확인부(115)로부터 상기 x1이 '1'로, 상기 x2가 '2'로 확인되면, 행렬 생성부(116)는 n x k의 크기를 갖는 랜덤한 더미 값들이 성분으로 구성된 랜덤 행렬을 생성할 수 있다. 관련해서, 행렬 생성부(116)가 랜덤한 더미 값들이 성분으로 구성된 2 x 3의 크기를 갖는 랜덤 행렬인 '
Figure 112020138576770-pat00001
'을 생성하였다고 가정하자.
그러면, 행렬 생성부(116)는 상기 랜덤 행렬에서 x1인 '1행', x2인 '2열'에 존재하는 성분을 상기 시드 값인 'S'로 치환함으로써, 2 x 3의 크기를 갖는 치환 행렬인 '
Figure 112020138576770-pat00002
'을 생성할 수 있다.
이렇게, 상기 치환 행렬인 '
Figure 112020138576770-pat00003
'이 생성되면, 데이터 암호화 전송부(117)는 상기 암호화 데이터와 상기 시드 값인 'S'가 포함된 상기 치환 행렬인 '
Figure 112020138576770-pat00004
'을 복호화 통신 장치(130)로 전송할 수 있다.
이때, 복호화 통신 장치(130)는 상기 암호화 데이터와 상기 치환 행렬인 '
Figure 112020138576770-pat00005
'이 수신되면, 상기 현재 시간인 '1시 20분'에 대응되는 현재 시간대를 '1시~2시'로 확인한 후, 메모리 상에 저장되어 있는 상기 표 1과 같은 테이블을 참조하여, 상기 현재 시간대인 '1시~2시'에 대응되는 자연수 쌍에 포함된 상기 제1 자연수인 x1을 '1'로 확인할 수 있고, 제2 자연수인 x2를 '2'로 확인할 수 있다.
그러고 나서, 복호화 통신 장치(130)는 상기 x1인 '1'과 상기 x2인 '2'를 기초로, 상기 치환 행렬인 '
Figure 112020138576770-pat00006
'에서 x1인 '1행', x2인 '2열'에 존재하는 성분 값을 추출하여, 상기 시드 값인 'S'값을 복원할 수 있다.
그 이후, 복호화 통신 장치(130)는 메모리 상에 저장되어 있는 상기 암호화키 생성 함수에 상기 시드 값인 'S'를 입력으로 인가하여 상기 제1 암호화키를 생성한 후 상기 제1 암호화키로 상기 암호화 데이터를 복호화하여 데이터 수신 장치(102)로 전달할 수 있다.
본 발명의 일실시예에 따르면, 암호화 통신 장치(110)는 데이터 전송 장치(101)로부터 평문 데이터를 데이터 수신 장치(102)로 전송하라는 명령이 수신되는 경우, 상기 평문 데이터를 암호화하여 복호화 통신 장치(130)로 전송하기 전에, 복호화 통신 장치(130)가 암호화 통신 장치(110)와 통신을 수행하기로 지정된 신뢰할 수 있는 장치인지 여부를 인증하는 구성을 더 포함할 수 있다.
이와 관련해서, 암호화 데이터 생성부(112)는 데이터 전송 장치(101)로부터 상기 평문 데이터를 데이터 수신 장치(102)로 전송하라는 명령이 수신되면, 암호화키 생성을 위한 시드 값을 생성하기 전에, 복호화 통신 장치(130)를 인증하기 위한 구성으로, 행렬 저장부(118), 인증 이벤트 발생부(119), 생성부(120), 요청부(121), 선택부(122), 연산부(123), 인증 처리부(124) 및 암호화 처리부(125)를 포함할 수 있다.
행렬 저장부(118)에는 복호화 통신 장치(130)와 사전 공유하고 있는 사전 설정된 p x q의 크기를 갖는 인증용 행렬이 저장되어 있다. 여기서, p와 q는 2이상의 자연수이다.
예컨대, p를 '3'이라고 하고, q를 '3'이라고 하는 경우, 행렬 저장부(118)에는 '3 x 3'크기의 인증용 행렬인 '
Figure 112020138576770-pat00007
'가 사전 설정된 인증용 행렬로 저장되어 있을 수 있다.
인증 이벤트 발생부(119)는 데이터 전송 장치(101)로부터 상기 평문 데이터를 데이터 수신 장치(102)로 전송하라는 명령이 수신되면, 상기 시드 값을 생성하기 전에 복호화 통신 장치(130)가 신뢰할 수 있는 장치인지 확인하기 위한 인증 이벤트를 발생시킨다.
생성부(120)는 상기 인증 이벤트가 발생되면, p이하의 크기를 갖는 제1 랜덤 자연수인 r1과 q이하의 크기를 갖는 제2 랜덤 자연수인 r2를 생성한다.
예컨대, p를 '3'이라고 하고, q를 '3'이라고 하는 경우, 생성부(120)는 '3'이하의 크기를 갖는 제1 랜덤 자연수인 r1과 '3'이하의 크기를 갖는 제2 랜덤 자연수인 r2를 생성할 수 있다.
요청부(121)는 상기 제1 랜덤 자연수인 r1과 상기 제2 랜덤 자연수인 r2가 생성되면, 복호화 통신 장치(130)로 상기 제1 랜덤 자연수인 r1과 상기 제2 랜덤 자연수인 r2를 전송하면서, 복호화 통신 장치(130)로 복호화 통신 장치(130)의 인증 처리를 위한 피드백 행렬을 생성하여 전송할 것을 요청한다.
예컨대, 생성부(120)에 의해 생성된 제1 랜덤 자연수인 r1이 '2'이고, 제2 랜덤 자연수인 r2가 '1'이라고 하는 경우, 요청부(121)는 복호화 통신 장치(130)으로 상기 r1인 '2'와 상기 r2인 '1'을 전송하면서, 복호화 통신 장치(130)로 복호화 통신 장치(130)의 인증 처리를 위한 피드백 행렬을 생성하여 전송할 것을 요청할 수 있다.
이때, 본 발명의 일실시예에 따르면, 복호화 통신 장치(130)는 메모리 상에 상기 인증용 행렬을 저장하고 있을 수 있고, 암호화 통신 장치(110)로부터 상기 제1 랜덤 자연수인 r1과 상기 제2 랜덤 자연수인 r2가 수신되면, 메모리 상에 저장되어 있는 상기 인증용 행렬에서 상기 제2 랜덤 자연수인 r2에 따른 위치의 열을 구성하는 제1 열벡터와 상기 제1 랜덤 자연수인 r1에 따른 위치의 행을 구성하는 제1 행벡터를 선택하고, 상기 제1 열벡터와 상기 제1 행벡터 간의 크로네커 곱(Kronecker Product)을 연산하여 제1 피드백 행렬을 생성한 후, 암호화 통신 장치(110)로 상기 제1 피드백 행렬을 전송할 수 있다.
여기서, 크로네커 곱이란 두 행렬의 텐서곱을 구체적으로 표현한 행렬을 의미하는 것으로, 하기의 수학식 1과 같은 m x n의 행렬 M과 하기의 수학식 2와 같은 p x q의 행렬 N이 주어졌다고 하였을 때, 행렬 M과 행렬 N 간의 크로네커 곱은 하기의 수학식 3과 같이 나타낼 수 있다.
Figure 112020138576770-pat00008
Figure 112020138576770-pat00009
Figure 112020138576770-pat00010
예컨대, 전술한 예와 같이, 상기 인증용 행렬을 '
Figure 112020138576770-pat00011
'이라고 하고, 암호화 통신 장치(110)가 상기 제1 랜덤 자연수인 r1으로 '2'를, 상기 제2 랜덤 자연수인 r2로 '1'을 복호화 통신 장치(130)에 전송하였다고 하는 경우, 복호화 통신 장치(130)는 암호화 통신 장치(110)로부터 r1으로 '2', r2로 '1'이 수신되면, 메모리 상에 저장되어 있는 상기 인증용 행렬인 '
Figure 112020138576770-pat00012
'에서 상기 r2인 '1'에 따른 위치의 열을 구성하는 제1 열벡터인 '
Figure 112020138576770-pat00013
'와 상기 r1인 '2'에 따른 위치의 행을 구성하는 제1 행벡터인 '
Figure 112020138576770-pat00014
'를 선택할 수 있다.
그 이후, 복호화 통신 장치(130)는 상기 제1 열벡터인 '
Figure 112020138576770-pat00015
'와 상기 제2 행벡터인 '
Figure 112020138576770-pat00016
' 간의 크로네커 곱을 연산하여, '
Figure 112020138576770-pat00017
'을 제1 피드백 행렬로 생성한 후 암호화 통신 장치(110)로 상기 제1 피드백 행렬을 전송할 수 있다.
이렇게, 복호화 통신 장치(130)로부터 상기 제1 피드백 행렬이 암호화 통신 장치(110)에 수신되면, 선택부(122)는 행렬 저장부(118)에 저장되어 있는 상기 인증용 행렬에서 상기 제2 랜덤 자연수인 r2에 따른 위치의 열을 구성하는 상기 제1 열벡터와 상기 제1 랜덤 자연수인 r1에 따른 위치의 행을 구성하는 상기 제1 행벡터를 선택한다.
그리고, 연산부(123)는 상기 제1 열벡터와 상기 제1 행벡터가 선택되면, 상기 제1 열벡터와 상기 제1 행벡터 간의 크로네커 곱을 연산하여 연산 행렬을 생성한다.
그 이후, 인증 처리부(124)는 상기 연산 행렬과 상기 제1 피드백 행렬을 비교하여 상기 연산 행렬이 상기 제1 피드백 행렬과 동일한 것으로 판단되는 경우, 복호화 통신 장치(130)에 대한 인증을 완료 처리한다.
이렇게, 인증 처리부(124)에 의해 복호화 통신 장치(130)에 대한 인증이 완료 처리되면, 암호화 처리부(125)는 상기 시드 값을 랜덤하게 생성하고, 상기 시드 값을 상기 암호화키 생성 함수에 입력으로 인가하여 상기 제1 암호화키를 생성한 후 상기 제1 암호화키로 상기 평문 데이터를 암호화하여 상기 암호화 데이터를 생성한다.
이하에서는, 선택부(122), 연산부(123), 인증 처리부(124) 및 암호화 처리부(125)의 동작을 예를 들어, 상세히 설명하기로 한다.
먼저, 전술한 예와 같이, 복호화 통신 장치(130)로부터 상기 제1 피드백 행렬로 '
Figure 112020138576770-pat00018
'이 수신되었다고 가정하자.
그러면, 선택부(122)는 행렬 저장부(118)에 저장되어 있는 상기 인증용 행렬인 '
Figure 112020138576770-pat00019
'에서 상기 r2인 '1'에 따른 위치의 열을 구성하는 상기 제1 열벡터인 '
Figure 112020138576770-pat00020
'와 상기 r1인 '2'에 따른 위치의 행을 구성하는 상기 제1 행벡터인 '
Figure 112020138576770-pat00021
'를 선택할 수 있다.
이렇게, 상기 제1 열벡터인 '
Figure 112020138576770-pat00022
'와 상기 제1 행벡터인 '
Figure 112020138576770-pat00023
'가 선택되면, 연산부(123)는 상기 제1 열벡터인 '
Figure 112020138576770-pat00024
'와 상기 제1 행벡터인 '
Figure 112020138576770-pat00025
' 간의 크로네커 곱을 연산하여, '
Figure 112020138576770-pat00026
'을 연산 행렬로 생성할 수 있다.
그러고 나서, 인증 처리부(124)는 상기 연산 행렬인 '
Figure 112020138576770-pat00027
'과 상기 제1 피드백 행렬인 '
Figure 112020138576770-pat00028
'을 비교하여, 상기 연산 행렬인 '
Figure 112020138576770-pat00029
'이 상기 제1 피드백 행렬인 '
Figure 112020138576770-pat00030
'과 동일한 것으로 판단하고, 복호화 통신 장치(130)에 대한 인증을 완료 처리할 수 있다.
여기서, 상기 연산 행렬과 상기 제1 피드백 행렬이 서로 동일하다는 것은, 복호화 통신 장치(130)에, 암호화 통신 장치(110)와 사전 공유하고 있는 상기 인증용 행렬이 저장되어 있다는 것을 의미하므로, 인증 처리부(124)는 상기 연산 행렬과 상기 제1 피드백 행렬이 서로 동일한 것으로 판단되면, 복호화 통신 장치(130)에 대한 인증을 완료 처리할 수 있다.
이렇게, 복호화 통신 장치(130)에 대한 인증이 완료 처리되면, 암호화 처리부(125)는 상기 시드 값을 랜덤하게 생성하고, 상기 시드 값을 상기 암호화키 생성 함수에 입력으로 인가하여, 상기 제1 암호화키를 생성한 후, 상기 제1 암호화키로 상기 평문 데이터를 암호화하여 상기 암호화 데이터를 생성할 수 있다.
도 2는 본 발명의 일실시예에 따른 데이터 전송 장치와 데이터 수신 장치 간의 보안 통신을 지원하는 암호화 통신 장치의 동작 방법을 도시한 순서도이다.
단계(S210)에서는 사전 설정된 암호화키 생성 함수가 저장되어 있는 생성 함수 저장부를 유지한다.
단계(S220)에서는 상기 데이터 전송 장치로부터 평문 데이터를 상기 데이터 수신 장치로 전송하라는 명령이 수신되면, 암호화키를 생성하기 위한 시드 값을 랜덤하게 생성하고, 상기 시드 값을 상기 암호화키 생성 함수에 입력으로 인가하여 제1 암호화키를 생성한 후 상기 제1 암호화키로 상기 평문 데이터를 암호화하여 암호화 데이터를 생성한다.
단계(S230)에서는 상기 암호화 데이터가 생성되면, 상기 암호화 데이터와 상기 시드 값을 상기 복호화 통신 장치로 전송한다.
이때, 상기 복호화 통신 장치는 메모리 상에 상기 암호화키 생성 함수를 저장하고 있고, 상기 암호화 통신 장치로부터 상기 암호화 데이터와 상기 시드 값이 수신되면, 메모리 상에 저장되어 있는 상기 암호화키 생성 함수에 상기 시드 값을 입력으로 인가하여 상기 제1 암호화키를 생성한 후 상기 제1 암호화키로 상기 암호화 데이터를 복호화하여 상기 데이터 수신 장치로 전달한다.
이때, 본 발명의 일실시예에 따르면, 단계(S230)는 사전 설정된 복수의 시간대들에 대한 정보 및 상기 복수의 시간대들 각각에 대응되는 사전 설정된 두 개의 서로 다른 자연수로 구성된 자연수 쌍이 기록되어 있는 테이블을 저장하여 유지하는 단계, 상기 암호화 데이터가 생성되면, 현재 시간대를 확인하고, 상기 테이블을 참조하여, 상기 현재 시간대에 대응되는 자연수 쌍에 포함된 제1 자연수인 x1과 제2 자연수인 x2를 확인하는 단계, 상기 제1 자연수인 x1과 상기 제2 자연수인 x2가 확인되면, n x k(n은 x1보다 큰 자연수이고, k는 x2보다 큰 자연수임)의 크기를 갖는 랜덤한 더미 값들이 성분으로 구성된 랜덤 행렬을 생성한 후, 상기 랜덤 행렬에서 x1행, x2열에 존재하는 성분 값을 상기 시드 값으로 치환함으로써, n x k의 크기를 갖는 치환 행렬을 생성하는 단계 및 상기 치환 행렬이 생성되면, 상기 암호화 데이터와 상기 시드 값이 포함된 상기 치환 행렬을 상기 복호화 통신 장치로 전송하는 단계를 포함할 수 있다.
이때, 본 발명의 일실시예에 따르면, 상기 복호화 통신 장치는 메모리 상에 상기 테이블을 추가로 저장하고 있고, 상기 암호화 통신 장치로부터 상기 암호화 데이터와 상기 치환 행렬이 수신되면, 상기 현재 시간대를 확인한 후 메모리 상에 저장되어 있는 상기 테이블을 참조하여, 상기 현재 시간대에 대응되는 자연수 쌍에 포함된 상기 제1 자연수인 x1과 상기 제2 자연수인 x2를 확인하고, 상기 제1 자연수인 x1과 상기 제2 자연수인 x2를 기초로, 상기 치환 행렬에서 x1행, x2열에 존재하는 성분 값을 추출하여, 상기 시드 값을 복원한 후 메모리 상에 저장되어 있는 상기 암호화키 생성 함수에 상기 시드 값을 입력으로 인가하여 상기 제1 암호화키를 생성하고, 상기 제1 암호화키가 생성되면, 상기 제1 암호화키로 상기 암호화 데이터를 복호화하여 상기 데이터 수신 장치로 전달할 수 있다.
또한, 본 발명의 일실시예에 따르면, 단계(S220)는 상기 복호화 통신 장치와 사전 공유하고 있는 사전 설정된 p x q(p와 q는 2이상의 자연수임)의 크기를 갖는 인증용 행렬이 저장되어 있는 행렬 저장부를 저장하여 유지하는 단계, 상기 데이터 전송 장치로부터 상기 평문 데이터를 상기 데이터 수신 장치로 전송하라는 명령이 수신되면, 상기 시드 값을 생성하기 전에 상기 복호화 통신 장치가 신뢰할 수 있는 장치인지 확인하기 위한 인증 이벤트를 발생시키는 단계, 상기 인증 이벤트가 발생되면, p이하의 크기를 갖는 제1 랜덤 자연수인 r1과 q이하의 크기를 갖는 제2 랜덤 자연수인 r2를 생성하는 단계, 상기 제1 랜덤 자연수인 r1과 상기 제2 랜덤 자연수인 r2가 생성되면, 상기 복호화 통신 장치로 상기 제1 랜덤 자연수인 r1과 상기 제2 랜덤 자연수인 r2를 전송하면서, 상기 복호화 통신 장치로 상기 복호화 통신 장치의 인증 처리를 위한 피드백 행렬을 생성하여 전송할 것을 요청하는 단계, 상기 복호화 통신 장치로부터 상기 피드백 행렬로 제1 피드백 행렬(상기 제1 피드백 행렬은 상기 복호화 통신 장치에 상기 제1 랜덤 자연수인 r1과 상기 제2 랜덤 자연수인 r2가 수신된 이후, 상기 복호화 통신 장치에서, 상기 복호화 통신 장치의 메모리 상에 저장되어 있는 상기 인증용 행렬로부터 상기 제2 랜덤 자연수인 r2에 따른 위치의 열을 구성하는 제1 열벡터와 상기 제1 랜덤 자연수인 r1에 따른 위치의 행을 구성하는 제1 행벡터가 선택된 후 상기 제1 열벡터와 상기 제1 행벡터 간의 크로네커 곱이 연산되어 생성된 행렬을 의미함)이 수신되면, 상기 행렬 저장부에 저장되어 있는 상기 인증용 행렬에서 상기 제2 랜덤 자연수인 r2에 따른 위치의 열을 구성하는 상기 제1 열벡터와 상기 제1 랜덤 자연수인 r1에 따른 위치의 행을 구성하는 상기 제1 행벡터를 선택하는 단계, 상기 제1 열벡터와 상기 제1 행벡터가 선택되면, 상기 제1 열벡터와 상기 제1 행벡터 간의 크로네커 곱을 연산하여 연산 행렬을 생성하는 단계, 상기 연산 행렬과 상기 제1 피드백 행렬을 비교하여 상기 연산 행렬이 상기 제1 피드백 행렬과 동일한 것으로 판단되는 경우, 상기 복호화 통신 장치에 대한 인증을 완료 처리하는 단계 및 상기 복호화 통신 장치에 대한 인증이 완료 처리되면, 상기 시드 값을 랜덤하게 생성하고, 상기 시드 값을 상기 암호화키 생성 함수에 입력으로 인가하여 상기 제1 암호화키를 생성한 후 상기 제1 암호화키로 상기 평문 데이터를 암호화하여 상기 암호화 데이터를 생성하는 단계를 포함할 수 있다.
이때, 본 발명의 일실시예에 따르면, 상기 복호화 통신 장치는 메모리 상에 상기 인증용 행렬을 저장하고 있고, 상기 암호화 통신 장치로부터 상기 제1 랜덤 자연수인 r1과 상기 제2 랜덤 자연수인 r2가 수신되면, 메모리 상에 저장되어 있는 상기 인증용 행렬에서 상기 제2 랜덤 자연수인 r2에 따른 위치의 열을 구성하는 상기 제1 열벡터와 상기 제1 랜덤 자연수인 r1에 따른 위치의 행을 구성하는 상기 제1 행벡터를 선택하고, 상기 제1 열벡터와 상기 제1 행벡터 간의 크로네커 곱을 연산하여 상기 제1 피드백 행렬을 생성한 후, 상기 암호화 통신 장치로 상기 제1 피드백 행렬을 전송할 수 있다.
이상, 도 2를 참조하여 본 발명의 일실시예에 따른 암호화 통신 장치의 동작 방법에 대해 설명하였다. 여기서, 본 발명의 일실시예에 따른 암호화 통신 장치의 동작 방법은 도 1을 이용하여 설명한 암호화 통신 장치(110)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.
본 발명의 일실시예에 따른 암호화 통신 장치의 동작 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.
또한, 본 발명의 일실시예에 따른 암호화 통신 장치의 동작 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
110: 암호화 통신 장치
111: 생성 함수 저장부 112: 암호화 데이터 생성부
113: 전송부 114: 테이블 유지부
115: 자연수 확인부 116: 행렬 생성부
117: 데이터 암호화 전송부 118: 행렬 저장부
119: 인증 이벤트 발생부 120: 생성부
121: 요청부 122: 선택부
123: 연산부 124: 인증 처리부
125: 암호화 처리부
101: 데이터 전송 장치
102: 데이터 수신 장치
130: 복호화 통신 장치

Claims (12)

  1. 데이터 전송 장치의 데이터를 암호화하여 수신측으로 전송함으로써, 상기 데이터 전송 장치와 데이터 수신 장치 간의 보안 통신을 지원하는 암호화 통신 장치에 있어서,
    사전 설정된 암호화키 생성 함수가 저장되어 있는 생성 함수 저장부;
    상기 데이터 전송 장치로부터 평문 데이터를 상기 데이터 수신 장치로 전송하라는 명령이 수신되면, 암호화키를 생성하기 위한 시드(seed) 값을 랜덤하게 생성하고, 상기 시드 값을 상기 암호화키 생성 함수에 입력으로 인가하여 제1 암호화키를 생성한 후 상기 제1 암호화키로 상기 평문 데이터를 암호화하여 암호화 데이터를 생성하는 암호화 데이터 생성부; 및
    상기 암호화 데이터가 생성되면, 상기 암호화 데이터와 상기 시드 값을 복호화 통신 장치로 전송하는 전송부
    를 포함하고,
    상기 전송부는
    사전 설정된 복수의 시간대들에 대한 정보 및 상기 복수의 시간대들 각각에 대응되는 사전 설정된 두 개의 서로 다른 자연수로 구성된 자연수 쌍이 기록되어 있는 테이블을 저장하여 유지하는 테이블 유지부;
    상기 암호화 데이터가 생성되면, 현재 시간대를 확인하고, 상기 테이블을 참조하여, 상기 현재 시간대에 대응되는 자연수 쌍에 포함된 제1 자연수인 x1과 제2 자연수인 x2를 확인하는 자연수 확인부;
    상기 제1 자연수인 x1과 상기 제2 자연수인 x2가 확인되면, n x k - n은 x1보다 큰 자연수이고, k는 x2보다 큰 자연수임 - 의 크기를 갖는 랜덤한 더미(dummy) 값들이 성분으로 구성된 랜덤 행렬을 생성한 후, 상기 랜덤 행렬에서 x1행, x2열에 존재하는 성분 값을 상기 시드 값으로 치환함으로써, n x k의 크기를 갖는 치환 행렬을 생성하는 행렬 생성부; 및
    상기 치환 행렬이 생성되면, 상기 암호화 데이터와 상기 시드 값이 포함된 상기 치환 행렬을 상기 복호화 통신 장치로 전송하는 데이터 암호화 전송부
    를 포함하고,
    상기 복호화 통신 장치는
    메모리 상에 상기 암호화키 생성 함수를 저장하고 있고, 상기 암호화 통신 장치로부터 상기 암호화 데이터와 상기 시드 값이 수신되면, 메모리 상에 저장되어 있는 상기 암호화키 생성 함수에 상기 시드 값을 입력으로 인가하여 상기 제1 암호화키를 생성한 후 상기 제1 암호화키로 상기 암호화 데이터를 복호화하여 상기 데이터 수신 장치로 전달하는 것을 특징으로 하는 암호화 통신 장치.
  2. 삭제
  3. 제1항에 있어서,
    상기 복호화 통신 장치는
    메모리 상에 상기 테이블을 추가로 저장하고 있고, 상기 암호화 통신 장치로부터 상기 암호화 데이터와 상기 치환 행렬이 수신되면, 상기 현재 시간대를 확인한 후 메모리 상에 저장되어 있는 상기 테이블을 참조하여, 상기 현재 시간대에 대응되는 자연수 쌍에 포함된 상기 제1 자연수인 x1과 상기 제2 자연수인 x2를 확인하고, 상기 제1 자연수인 x1과 상기 제2 자연수인 x2를 기초로, 상기 치환 행렬에서 x1행, x2열에 존재하는 성분 값을 추출하여, 상기 시드 값을 복원한 후 메모리 상에 저장되어 있는 상기 암호화키 생성 함수에 상기 시드 값을 입력으로 인가하여 상기 제1 암호화키를 생성하고, 상기 제1 암호화키가 생성되면, 상기 제1 암호화키로 상기 암호화 데이터를 복호화하여 상기 데이터 수신 장치로 전달하는 것을 특징으로 하는 암호화 통신 장치.
  4. 제1항에 있어서,
    상기 암호화 데이터 생성부는
    상기 복호화 통신 장치와 사전 공유하고 있는 사전 설정된 p x q - p와 q는 2이상의 자연수임 - 의 크기를 갖는 인증용 행렬이 저장되어 있는 행렬 저장부;
    상기 데이터 전송 장치로부터 상기 평문 데이터를 상기 데이터 수신 장치로 전송하라는 명령이 수신되면, 상기 시드 값을 생성하기 전에 상기 복호화 통신 장치가 신뢰할 수 있는 장치인지 확인하기 위한 인증 이벤트를 발생시키는 인증 이벤트 발생부;
    상기 인증 이벤트가 발생되면, p이하의 크기를 갖는 제1 랜덤 자연수인 r1과 q이하의 크기를 갖는 제2 랜덤 자연수인 r2를 생성하는 생성부;
    상기 제1 랜덤 자연수인 r1과 상기 제2 랜덤 자연수인 r2가 생성되면, 상기 복호화 통신 장치로 상기 제1 랜덤 자연수인 r1과 상기 제2 랜덤 자연수인 r2를 전송하면서, 상기 복호화 통신 장치로 상기 복호화 통신 장치의 인증 처리를 위한 피드백 행렬을 생성하여 전송할 것을 요청하는 요청부;
    상기 복호화 통신 장치로부터 상기 피드백 행렬로 제1 피드백 행렬 - 상기 제1 피드백 행렬은 상기 복호화 통신 장치에 상기 제1 랜덤 자연수인 r1과 상기 제2 랜덤 자연수인 r2가 수신된 이후, 상기 복호화 통신 장치에서, 상기 복호화 통신 장치의 메모리 상에 저장되어 있는 상기 인증용 행렬로부터 상기 제2 랜덤 자연수인 r2에 따른 위치의 열을 구성하는 제1 열벡터와 상기 제1 랜덤 자연수인 r1에 따른 위치의 행을 구성하는 제1 행벡터가 선택된 후 상기 제1 열벡터와 상기 제1 행벡터 간의 크로네커 곱(Kronecker Product)이 연산되어 생성된 행렬을 의미함 - 이 수신되면, 상기 행렬 저장부에 저장되어 있는 상기 인증용 행렬에서 상기 제2 랜덤 자연수인 r2에 따른 위치의 열을 구성하는 상기 제1 열벡터와 상기 제1 랜덤 자연수인 r1에 따른 위치의 행을 구성하는 상기 제1 행벡터를 선택하는 선택부;
    상기 제1 열벡터와 상기 제1 행벡터가 선택되면, 상기 제1 열벡터와 상기 제1 행벡터 간의 크로네커 곱을 연산하여 연산 행렬을 생성하는 연산부;
    상기 연산 행렬과 상기 제1 피드백 행렬을 비교하여 상기 연산 행렬이 상기 제1 피드백 행렬과 동일한 것으로 판단되는 경우, 상기 복호화 통신 장치에 대한 인증을 완료 처리하는 인증 처리부; 및
    상기 복호화 통신 장치에 대한 인증이 완료 처리되면, 상기 시드 값을 랜덤하게 생성하고, 상기 시드 값을 상기 암호화키 생성 함수에 입력으로 인가하여 상기 제1 암호화키를 생성한 후 상기 제1 암호화키로 상기 평문 데이터를 암호화하여 상기 암호화 데이터를 생성하는 암호화 처리부
    를 포함하는 암호화 통신 장치.
  5. 제4항에 있어서,
    상기 복호화 통신 장치는
    메모리 상에 상기 인증용 행렬을 저장하고 있고, 상기 암호화 통신 장치로부터 상기 제1 랜덤 자연수인 r1과 상기 제2 랜덤 자연수인 r2가 수신되면, 메모리 상에 저장되어 있는 상기 인증용 행렬에서 상기 제2 랜덤 자연수인 r2에 따른 위치의 열을 구성하는 상기 제1 열벡터와 상기 제1 랜덤 자연수인 r1에 따른 위치의 행을 구성하는 상기 제1 행벡터를 선택하고, 상기 제1 열벡터와 상기 제1 행벡터 간의 크로네커 곱을 연산하여 상기 제1 피드백 행렬을 생성한 후, 상기 암호화 통신 장치로 상기 제1 피드백 행렬을 전송하는 것을 특징으로 하는 암호화 통신 장치.
  6. 데이터 전송 장치의 데이터를 암호화하여 수신측으로 전송함으로써, 상기 데이터 전송 장치와 데이터 수신 장치 간의 보안 통신을 지원하는 암호화 통신 장치의 동작 방법에 있어서,
    사전 설정된 암호화키 생성 함수가 저장되어 있는 생성 함수 저장부를 유지하는 단계;
    상기 데이터 전송 장치로부터 평문 데이터를 상기 데이터 수신 장치로 전송하라는 명령이 수신되면, 암호화키를 생성하기 위한 시드(seed) 값을 랜덤하게 생성하고, 상기 시드 값을 상기 암호화키 생성 함수에 입력으로 인가하여 제1 암호화키를 생성한 후 상기 제1 암호화키로 상기 평문 데이터를 암호화하여 암호화 데이터를 생성하는 단계; 및
    상기 암호화 데이터가 생성되면, 상기 암호화 데이터와 상기 시드 값을 복호화 통신 장치로 전송하는 단계
    를 포함하고,
    상기 전송하는 단계는
    사전 설정된 복수의 시간대들에 대한 정보 및 상기 복수의 시간대들 각각에 대응되는 사전 설정된 두 개의 서로 다른 자연수로 구성된 자연수 쌍이 기록되어 있는 테이블을 저장하여 유지하는 단계;
    상기 암호화 데이터가 생성되면, 현재 시간대를 확인하고, 상기 테이블을 참조하여, 상기 현재 시간대에 대응되는 자연수 쌍에 포함된 제1 자연수인 x1과 제2 자연수인 x2를 확인하는 단계;
    상기 제1 자연수인 x1과 상기 제2 자연수인 x2가 확인되면, n x k - n은 x1보다 큰 자연수이고, k는 x2보다 큰 자연수임 - 의 크기를 갖는 랜덤한 더미(dummy) 값들이 성분으로 구성된 랜덤 행렬을 생성한 후, 상기 랜덤 행렬에서 x1행, x2열에 존재하는 성분 값을 상기 시드 값으로 치환함으로써, n x k의 크기를 갖는 치환 행렬을 생성하는 단계; 및
    상기 치환 행렬이 생성되면, 상기 암호화 데이터와 상기 시드 값이 포함된 상기 치환 행렬을 상기 복호화 통신 장치로 전송하는 단계
    를 포함하고,
    상기 복호화 통신 장치는
    메모리 상에 상기 암호화키 생성 함수를 저장하고 있고, 상기 암호화 통신 장치로부터 상기 암호화 데이터와 상기 시드 값이 수신되면, 메모리 상에 저장되어 있는 상기 암호화키 생성 함수에 상기 시드 값을 입력으로 인가하여 상기 제1 암호화키를 생성한 후 상기 제1 암호화키로 상기 암호화 데이터를 복호화하여 상기 데이터 수신 장치로 전달하는 것을 특징으로 하는 암호화 통신 장치의 동작 방법.
  7. 삭제
  8. 제6항에 있어서,
    상기 복호화 통신 장치는
    메모리 상에 상기 테이블을 추가로 저장하고 있고, 상기 암호화 통신 장치로부터 상기 암호화 데이터와 상기 치환 행렬이 수신되면, 상기 현재 시간대를 확인한 후 메모리 상에 저장되어 있는 상기 테이블을 참조하여, 상기 현재 시간대에 대응되는 자연수 쌍에 포함된 상기 제1 자연수인 x1과 상기 제2 자연수인 x2를 확인하고, 상기 제1 자연수인 x1과 상기 제2 자연수인 x2를 기초로, 상기 치환 행렬에서 x1행, x2열에 존재하는 성분 값을 추출하여, 상기 시드 값을 복원한 후 메모리 상에 저장되어 있는 상기 암호화키 생성 함수에 상기 시드 값을 입력으로 인가하여 상기 제1 암호화키를 생성하고, 상기 제1 암호화키가 생성되면, 상기 제1 암호화키로 상기 암호화 데이터를 복호화하여 상기 데이터 수신 장치로 전달하는 것을 특징으로 하는 암호화 통신 장치의 동작 방법.
  9. 제6항에 있어서,
    상기 암호화 데이터를 생성하는 단계는
    상기 복호화 통신 장치와 사전 공유하고 있는 사전 설정된 p x q - p와 q는 2이상의 자연수임 - 의 크기를 갖는 인증용 행렬이 저장되어 있는 행렬 저장부를 저장하여 유지하는 단계;
    상기 데이터 전송 장치로부터 상기 평문 데이터를 상기 데이터 수신 장치로 전송하라는 명령이 수신되면, 상기 시드 값을 생성하기 전에 상기 복호화 통신 장치가 신뢰할 수 있는 장치인지 확인하기 위한 인증 이벤트를 발생시키는 단계;
    상기 인증 이벤트가 발생되면, p이하의 크기를 갖는 제1 랜덤 자연수인 r1과 q이하의 크기를 갖는 제2 랜덤 자연수인 r2를 생성하는 단계;
    상기 제1 랜덤 자연수인 r1과 상기 제2 랜덤 자연수인 r2가 생성되면, 상기 복호화 통신 장치로 상기 제1 랜덤 자연수인 r1과 상기 제2 랜덤 자연수인 r2를 전송하면서, 상기 복호화 통신 장치로 상기 복호화 통신 장치의 인증 처리를 위한 피드백 행렬을 생성하여 전송할 것을 요청하는 단계;
    상기 복호화 통신 장치로부터 상기 피드백 행렬로 제1 피드백 행렬 - 상기 제1 피드백 행렬은 상기 복호화 통신 장치에 상기 제1 랜덤 자연수인 r1과 상기 제2 랜덤 자연수인 r2가 수신된 이후, 상기 복호화 통신 장치에서, 상기 복호화 통신 장치의 메모리 상에 저장되어 있는 상기 인증용 행렬로부터 상기 제2 랜덤 자연수인 r2에 따른 위치의 열을 구성하는 제1 열벡터와 상기 제1 랜덤 자연수인 r1에 따른 위치의 행을 구성하는 제1 행벡터가 선택된 후 상기 제1 열벡터와 상기 제1 행벡터 간의 크로네커 곱(Kronecker Product)이 연산되어 생성된 행렬을 의미함 - 이 수신되면, 상기 행렬 저장부에 저장되어 있는 상기 인증용 행렬에서 상기 제2 랜덤 자연수인 r2에 따른 위치의 열을 구성하는 상기 제1 열벡터와 상기 제1 랜덤 자연수인 r1에 따른 위치의 행을 구성하는 상기 제1 행벡터를 선택하는 단계;
    상기 제1 열벡터와 상기 제1 행벡터가 선택되면, 상기 제1 열벡터와 상기 제1 행벡터 간의 크로네커 곱을 연산하여 연산 행렬을 생성하는 단계;
    상기 연산 행렬과 상기 제1 피드백 행렬을 비교하여 상기 연산 행렬이 상기 제1 피드백 행렬과 동일한 것으로 판단되는 경우, 상기 복호화 통신 장치에 대한 인증을 완료 처리하는 단계; 및
    상기 복호화 통신 장치에 대한 인증이 완료 처리되면, 상기 시드 값을 랜덤하게 생성하고, 상기 시드 값을 상기 암호화키 생성 함수에 입력으로 인가하여 상기 제1 암호화키를 생성한 후 상기 제1 암호화키로 상기 평문 데이터를 암호화하여 상기 암호화 데이터를 생성하는 단계
    를 포함하는 암호화 통신 장치의 동작 방법.
  10. 제9항에 있어서,
    상기 복호화 통신 장치는
    메모리 상에 상기 인증용 행렬을 저장하고 있고, 상기 암호화 통신 장치로부터 상기 제1 랜덤 자연수인 r1과 상기 제2 랜덤 자연수인 r2가 수신되면, 메모리 상에 저장되어 있는 상기 인증용 행렬에서 상기 제2 랜덤 자연수인 r2에 따른 위치의 열을 구성하는 상기 제1 열벡터와 상기 제1 랜덤 자연수인 r1에 따른 위치의 행을 구성하는 상기 제1 행벡터를 선택하고, 상기 제1 열벡터와 상기 제1 행벡터 간의 크로네커 곱을 연산하여 상기 제1 피드백 행렬을 생성한 후, 상기 암호화 통신 장치로 상기 제1 피드백 행렬을 전송하는 것을 특징으로 하는 암호화 통신 장치의 동작 방법.
  11. 제6항, 제8항, 제9항 또는 제10항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
  12. 제6항, 제8항, 제9항 또는 제10항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램.
KR1020200179293A 2020-12-21 2020-12-21 데이터 전송 장치와 데이터 수신 장치 간의 보안 통신을 지원하는 암호화 통신 장치 및 그 동작 방법 KR102244290B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200179293A KR102244290B1 (ko) 2020-12-21 2020-12-21 데이터 전송 장치와 데이터 수신 장치 간의 보안 통신을 지원하는 암호화 통신 장치 및 그 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200179293A KR102244290B1 (ko) 2020-12-21 2020-12-21 데이터 전송 장치와 데이터 수신 장치 간의 보안 통신을 지원하는 암호화 통신 장치 및 그 동작 방법

Publications (1)

Publication Number Publication Date
KR102244290B1 true KR102244290B1 (ko) 2021-04-26

Family

ID=75733499

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200179293A KR102244290B1 (ko) 2020-12-21 2020-12-21 데이터 전송 장치와 데이터 수신 장치 간의 보안 통신을 지원하는 암호화 통신 장치 및 그 동작 방법

Country Status (1)

Country Link
KR (1) KR102244290B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023091636A1 (en) * 2021-11-22 2023-05-25 Theon Technology Llc Use of random entropy in cryptography
KR20230116139A (ko) * 2022-01-27 2023-08-04 사단법인 한국아이티기반 환경융합기술 연구조합 초소형 전기 차량에 탑재된 시동용 배터리의 충전 상태를 관리하기 위한 충전 상태 관리 장치
KR102613932B1 (ko) * 2023-08-28 2023-12-15 한화시스템(주) 전투체계의 통신 보안 시스템 및 그 방법
KR102633814B1 (ko) * 2022-09-28 2024-02-05 주식회사 올라핀테크 이메일 기반의 제3자 대행 인증을 통해 웹 사이트에 대한 개인의 사이트 이용 이력 정보를 수집하여 제공하는 정보 수집 서비스 서버 및 그 동작 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030015899A (ko) * 2000-08-11 2003-02-25 엔디에스 리미티드 송신된 콘텐트의 사전-암호화를 위한 시스템 및 방법
KR20050106978A (ko) * 2004-05-07 2005-11-11 주식회사 케이티프리텔 와이파이 단말기의 사용자 서비스 인증 방법 및 장치
US20190013941A1 (en) * 2017-07-07 2019-01-10 University Of South Florida Systems and methods for generating symmetric cryptographic keys

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030015899A (ko) * 2000-08-11 2003-02-25 엔디에스 리미티드 송신된 콘텐트의 사전-암호화를 위한 시스템 및 방법
KR20050106978A (ko) * 2004-05-07 2005-11-11 주식회사 케이티프리텔 와이파이 단말기의 사용자 서비스 인증 방법 및 장치
US20190013941A1 (en) * 2017-07-07 2019-01-10 University Of South Florida Systems and methods for generating symmetric cryptographic keys

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023091636A1 (en) * 2021-11-22 2023-05-25 Theon Technology Llc Use of random entropy in cryptography
KR20230116139A (ko) * 2022-01-27 2023-08-04 사단법인 한국아이티기반 환경융합기술 연구조합 초소형 전기 차량에 탑재된 시동용 배터리의 충전 상태를 관리하기 위한 충전 상태 관리 장치
KR102570772B1 (ko) * 2022-01-27 2023-08-25 사단법인 한국아이티기반 환경융합기술 연구조합 초소형 전기 차량에 탑재된 시동용 배터리의 충전 상태를 관리하기 위한 충전 상태 관리 장치
KR102633814B1 (ko) * 2022-09-28 2024-02-05 주식회사 올라핀테크 이메일 기반의 제3자 대행 인증을 통해 웹 사이트에 대한 개인의 사이트 이용 이력 정보를 수집하여 제공하는 정보 수집 서비스 서버 및 그 동작 방법
KR102613932B1 (ko) * 2023-08-28 2023-12-15 한화시스템(주) 전투체계의 통신 보안 시스템 및 그 방법

Similar Documents

Publication Publication Date Title
KR102244290B1 (ko) 데이터 전송 장치와 데이터 수신 장치 간의 보안 통신을 지원하는 암호화 통신 장치 및 그 동작 방법
CN110519260B (zh) 一种信息处理方法及信息处理装置
US10284372B2 (en) Method and system for secure management of computer applications
US20170295013A1 (en) Method for fulfilling a cryptographic request requiring a value of a private key
KR101416536B1 (ko) 패스코드 운영 시스템과 패스코드 장치 및 슈퍼 패스코드 생성 방법
US8555059B2 (en) Secure local update of content management software
US8494154B2 (en) Cryptographic ignition key system
CN110311787B (zh) 授权管理方法、系统、设备及计算机可读存储介质
CN108848064B (zh) 授权管理方法及系统
US10985914B2 (en) Key generation device and key generation method
CN103946858A (zh) 应用数据的解密和加密
EP3316160A1 (en) Authentication method and apparatus for reinforced software
CN111242611B (zh) 一种用于恢复数字钱包密钥的方法及系统
KR102228210B1 (ko) 블록체인 네트워크에서의 트랜잭션의 삭제를 가능하게 하는 노드 장치 및 그 동작 방법
CN108431819B (zh) 保护客户端访问视频播放器的drm代理的服务的方法和系统
KR20200143197A (ko) 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치 및 그 동작 방법
KR101913644B1 (ko) 메시지 인증이 가능한 부호 기반 암호화 장치 및 방법
CN109412791B (zh) 密钥信息处理方法、装置、电子设备及计算机可读介质
CN111338841A (zh) 数据处理方法、装置、设备和存储介质
KR20190129306A (ko) 거듭 행렬 기반의 비밀키 암호화가 가능한 데이터 전송 장치 및 그 동작 방법
KR102282788B1 (ko) 트랜잭션에 포함된 평문 데이터의 변경을 지원하는 블록체인 시스템
JP2006285697A (ja) ファイル管理方法及びファイル管理システム
US20150200777A1 (en) Data securing method, data securing system and data carrier
JP6488954B2 (ja) 暗号データ処理方法、暗号データ処理システム、暗号データ処理装置および暗号データ処理プログラム
US11601291B2 (en) Authentication method and device for matrix pattern authentication

Legal Events

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