KR101817424B1 - 암호화 방법, 복호화 방법 및 그 장치 - Google Patents

암호화 방법, 복호화 방법 및 그 장치 Download PDF

Info

Publication number
KR101817424B1
KR101817424B1 KR1020160058202A KR20160058202A KR101817424B1 KR 101817424 B1 KR101817424 B1 KR 101817424B1 KR 1020160058202 A KR1020160058202 A KR 1020160058202A KR 20160058202 A KR20160058202 A KR 20160058202A KR 101817424 B1 KR101817424 B1 KR 101817424B1
Authority
KR
South Korea
Prior art keywords
secret key
data
current
key
time
Prior art date
Application number
KR1020160058202A
Other languages
English (en)
Other versions
KR20170128667A (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 KR1020160058202A priority Critical patent/KR101817424B1/ko
Publication of KR20170128667A publication Critical patent/KR20170128667A/ko
Application granted granted Critical
Publication of KR101817424B1 publication Critical patent/KR101817424B1/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/0872Generation of secret information including derivation or calculation of cryptographic keys or passwords using geo-location information, e.g. location data, time, relative position or proximity to other entities
    • 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
    • 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

Landscapes

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

Abstract

암호화 방법, 복호화 방법 및 그 장치가 개시된다. 데이터를 암호화하는 방법은, (a) 서버로의 접속에 따라 시간 데이터를 수신하는 단계; (b) 상기 시간 데이터와 현재 비밀키를 이용하여 상기 현재 비밀키를 갱신하는 단계; (c) 갱신된 비밀키를 이용하여 상기 데이터를 n비트 단위로 1차 암호화하는 단계-상기 n은 자연수임; 및 (d) 상기 1차 암호화된 데이터를 행렬 비밀키를 이용하여 2차 암호화하는 단계를 포함한다.

Description

암호화 방법, 복호화 방법 및 그 장치{encryption method, decryption method and apparatus thereof}
본 발명은 시간 동기화 방식에 기반한 암호화 방법, 복호화 방법 및 그 장치에 관한 것이다.
네트워크 통신의 발달로 사물인터넷(Internet of Things)은 산업단지나 홈 네트워크 등 다양한 분야에 빠르게 보급화 되어가고 있다. 하지만 사물인터넷은 네트워크를 활용한 시스템으로 해킹에 대한 취약점을 가지고 있다. 해킹은 네트워크를 통해 상대방의 시스템에 접근하여 악영향을 끼치는 행위로 데이터를 위조, 복조 시켜 통신을 방해하거나 바이러스를 심어 정보를 유출 시키는 등의 피해를 입힐 수 있다. 또한 최근 개발되고 있는 무인 자동차도 해킹에 의해 제어될 수 있어 데이터 보안의 중요성이 강조되고 있다.
보안 알고리즘으로는 대칭형 알고리즘과 비대칭형 알고리즘으로 구분된다. 비대칭형 알고리즘은 대표적으로 RSA(Rivest, Shamir, Adleman), DSA(Digital Signature Algorithm)가 있다. 비대칭형 알고리즘은 암호화 키와 복호화 키가 동일하지 않아 복잡한 산술연산을 통해 복호화를 수행하며 대칭형 알고리즘에 비해 보안성이 좋은 반면 암호화와 복호화 하는 시간이 많이 소요된다. 이러한 이유로 인증서나 전자서명에 주로 사용된다. 대칭형 알고리즘은 대표적으로 SEED, LEA(Lightweight Encryption Algorithm), HIGHT(High security and light weigHT) 등이 있다. 대칭형 알고리즘은 송신 측과 수신 측의 비밀 키가 같아 암호화, 복호화 속도가 빠르다는 장점을 가지고 있다. 이중 SEED 알고리즘은 국내 정보통신기술협회(KISA)에서 개발하였으며 ISO/IEC 국제표준에 제정되었다.
SEED 알고리즘은 s-box 테이블과 비밀 키를 사용하여 암호화, 복호화를 수행한다. 이때 사용되는 비밀 키는 외부에 노출되면 속수무책으로 정보가 유출되는 문제가 있다. 또한 알고리즘의 보안성을 위해 주기적으로 비밀 키는 변경해 주어야 하는 문제점이 있다. 이러한 문제점으로 인해 SEED 알고리즘의 취약점이나 결함을 찾아 개선하는 등 다양한 연구가 진행되고 있다.
본 발명은 시간 동기화 방식에 기반한 암호화 방법, 복호화 방법 및 그 장치를 제공하기 위한 것이다.
본 발명의 일 실시예에 따르면, 시간 동기화 방식에 기반한 암호화 방법, 복호화 방법이 제공된다.
본 발명의 일 실시예에 따르면, 데이터를 암호화하는 방법에 있어서, (a) 서버로의 접속에 따라 시간 데이터를 수신하는 단계; (b) 상기 시간 데이터와 현재 비밀키를 이용하여 상기 현재 비밀키를 갱신하는 단계; (c) 갱신된 비밀키를 이용하여 상기 데이터를 n비트 단위로 1차 암호화하는 단계-상기 n은 자연수임; 및 (d) 상기 1차 암호화된 데이터를 행렬 비밀키를 이용하여 2차 암호화하는 단계를 포함하는 암호화 방법이 제공될 수 있다.
상기 시간 데이터는 주기적으로 수신되되, 상기 시간 데이터의 주기적 수신에 따라 상기 (b) 단계도 주기적으로 수행될 수 있다.
상기 (b) 단계는, 상기 시간 데이터의 각 요소값과 상기 현재 비밀키의 자리값들을 이용하여 상기 현재 비밀키의 각 자리값을 변경할 수 있다.
상기 (b) 단계는, 상기 현재 비밀키의 자리값들과 상기 시간 데이터의 각 요소값들을 이용한 모듈로 연산 및 XOR 연산을 통해 상기 현재 비밀키의 각 자리값을 변경할 수 있다.
상기 (d) 단계는, 상기 1차 암호화된 데이터는 m 비트 단위로 m 자리 행렬 비밀키를 이용한 행렬 연산을 통해 2차 암호화될 수 있다.
상기 (d) 단계는, 상기 2차 암호화는 하기 수학식을 이용하여 m비트 단위로 수행되되,
Figure 112016045427227-pat00001
여기서, C0, C1, C2, C3는 1차 암호화된 데이터의 각각의 자리의 값을 나타내고, M0, M1, M2, M3는 행렬 비밀키의 각 키값을 나타낸다.
본 발명의 다른 실시예에 따르면, 복호화 방법에 있어서, (aa) 클라이언트 디바이스의 접속에 따라 현재 시간을 검출하고, 상기 검출된 현재 시간을 시간 데이터로 재구성하는 단계; (bb) 상기 시간 데이터와 현재 비밀키를 이용하여 상기 현재 비밀키를 갱신하는 단계; (cc) 상기 클라이언트 디바이스로부터 암호화된 데이터를 수신하는 단계; (dd) 상기 암호화된 데이터를 행렬 비밀키를 이용한 역행렬 연산하여 1차 복호하는 단계; 및 (ee) 상기 1차 복호된 데이터를 상기 갱신된 비밀키를 이용하여 2차 복호하는 단계를 포함하는 복호화 방법이 제공될 수 있다.
상기 재구성된 시간 데이터를 상기 클라이언트 디바이스로 전송하되, 주기적으로 현재 시간을 검출하여 시간 데이터로 재구성하여 상기 클라이언트 디바이스로 전송할 수 있다.
상기 (dd) 단계는 상기 암호화된 데이터를 m(상기 m은 자연수) 비트 단위로 상기 행렬 비밀키를 이용하여 1차 복호하며, 상기 (ee) 단계는 n(상기 n은 자연수) 비트 단위로 상기 1차 복호된 데이터를 상기 갱신된 비밀키로 2차 복호할 수 있다.
본 발명의 다른 측면에 따르면, 시간 동기화 방식에 기반한 암호화 및 복호화를 위한 장치가 제공될 수 있다.
본 발명의 일 실시예에 따르면, 암호화 장치에 있어서, 서버로부터 시간 데이터를 수신하는 통신부; 상기 시간 데이터와 현재 비밀키를 이용하여 상기 현재 비밀키를 비밀키 갱신하는 갱신부; 및 갱신된 비밀키를 이용하여 데이터를 n(상기 n은 자연수임)비트 단위로 1차 암호화하고, 상기 1차 암호화된 데이터를 행렬 비밀키를 이용하여 2차 암호화하는 암호화부를 포함하는 암호화 장치가 제공될 수 있다.
본 발명의 다른 측면에 따르면, 클라이언트 디바이스의 접속에 따라 현재 시간을 검출하고, 상기 검출된 현재 시간을 시간 데이터로 재구성하는 동기화부; 상기 시간 데이터와 현재 비밀키를 이용하여 상기 현재 비밀키를 갱신하는 비밀키 갱신부; 상기 클라이언트 디바이스로부터 암호화된 데이터를 수신하는 통신부; 및 상기 암호화된 데이터를 행렬 비밀키를 이용한 역행렬 연산하여 1차 복호하고, 상기 1차 복호된 데이터를 상기 갱신된 비밀키를 이용하여 2차 복호하는 복호화부를 포함하는 복호화 장치가 제공될 수 있다.
상기 동기화부는 상기 시간 데이터를 상기 통신부를 통해 상기 클라이언트 디바이스로 전송할 수 있다.
본 발명의 일 실시예에 따른 암호화 방법, 복호화 방법 및 그 장치를 제공함으로써, 해킹에도 암호 해독이 어려워 보안이 강화된 이점이 있다.
또한, 본 발명은 시간 동기화 방식에 기반하여 비밀키가 지속적으로 갱신됨으로써, 데이터 유출이 어려운 이점이 있다.
도 1은 본 발명의 일 실시예에 따른 암호화 방법을 나타낸 순서도.
도 2 및 도 3은 본 발명의 일 실시예에 따른 비밀키 갱신을 설명하기 위해 도시한 도면.
도 4는 도 1과 같이 암호화된 데이터를 복호하는 방법을 나타낸 순서도.
도 5는 본 발명의 일 실시예에 따른 시간 데이터를 재구성하는 방법을 설명하기 위해 도시한 도면.
도 6은 본 발명의 일 실시예에 따른 암호화 장치의 내부 구성을 개략적으로 도시한 블록도.
도 7은 본 발명의 일 실시예에 따른 복호화 장치의 내부 구성을 개략적으로 도시한 블록도.
본 명세서에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "구성된다" 또는 "포함한다" 등의 용어는 명세서상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
본 발명은 시간 동기화 방식에 기반한 시드(SEED) 알고리즘을 이용하여 데이터를 암호화하고 복호화하기 위한 것이다.
이를 위해, 본 발명은 암호화 주체인 클라이언트 디바이스가 서버에 접속시, 서버에서 클라이언트 디바이스와의 시간 동기화를 위해 서버의 시간을 검출한 후 시간 데이터를 재구성하여 클라이언트 디바이스와 공유할 수 있다.
이어, 클라이언트 디바이스와 서버는 재구성된 시간 데이터를 기반으로 암호 및 복호를 위해 동기화된 비밀키를 갱신할 수 있다.
서버는 클라이언트 디바이스가 접속한 이후 주기적으로 시간을 검출하여 시간 데이터를 재구성하여 클라이언트 디바이스로 전송하므로, 클라이언트 디바이스와 서버는 주기적으로 비밀키를 갱신하고, 이를 이용하여 데이터를 암호화 및 복호화할 수 있다.
이하에서는 서버를 복호화 장치로 통칭하고, 클라이언트 디바이스를 암호화 장치로 통칭하여 설명하기로 한다. 서버에서도 데이터를 암호화할 수 있으며, 클라이언트 디바이스에서도 암호화된 데이터를 복호할 수 있음은 당연하다.
이하, 첨부된 도면들을 참조하여 본 발명의 실시예를 상세히 설명한다.
도 1은 본 발명의 일 실시예에 따른 암호화 방법을 나타낸 순서도이고, 도 2 및 도 3은 본 발명의 일 실시예에 따른 비밀키 갱신을 설명하기 위해 도시한 도면이다.
단계 110에서 암호화 장치(600)는 복호화 장치(700)로부터 시간 데이터가 수신되었는지 여부를 판단한다.
만일 시간 데이터가 수신된 경우, 단계 115에서 암호화 장치(600)는 시간 데이터를 이용하여 현재 비밀키를 갱신한다.
시간 데이터는 일, 시, 분, 초의 시간을 일, 시, 분, 초를 이용한 모듈로 연산 및 XOR 연산을 통해 값이 재구성된 데이터이다. 시간 데이터의 재구성은 복호화 장치(700)로 명명되는 서버단에서 수행되므로, 복호화 방법을 설명하는 과정에서 보다 상세히 설명하기로 한다.
시간 데이터를 이용하여 비밀키를 갱신하는 방법에 대해 보다 상세히 설명하기로 한다.
본 발명의 일 실시예에 따른 암호화 장치(600)는 시드 알고리즘에 기반하여 데이터를 암호화할 수 있다. 본 명세서에서는 이해와 설명의 편의를 도모하기 위해 128비트 시드 알고리즘에 기반하여 데이터를 암호화하는 것을 가정하기로 한다.
따라서, 비밀키는 128비트일 수 있다.
본 발명의 일 실시예에 따른 암호화 장치(600)는 비밀키를 64비트로 나누어 비밀키의 각 자리의 키값들을 변경할 수 있다.
이하에서는 하위 64비트의 비밀키의 키값을 변경하는 방법에 대해 설명하기로 한다.
비밀키의 하위 64비트의 각 자리의 키값을 예를 들어, K0, K1, K2, K3, K4, K5, K6, K7이라고 가정하자. 각각의 비밀키를 64비트씩 나누어 비밀키를 변경하되, 64비트는 다시 8비트씩 나뉘어 동일한 방식으로 변경될 수 있다.
따라서, K0, K1, K2, K3의 비밀키값을 변경하는 방법에 대해서만 설명하기로 한다.
예를 들어, 비밀키의 제1 자리의 키값(이하, 제1 키값이라 칭하기로 함)(K0)은 제2 자리의 키값(제2 키값이라 칭함)과 시간 데이터의 제4 요소값를 XOR 연산한 결과값과 비밀키의 제4 자리의 키값(제4 키값이라 칭함)을 모듈로 연산한 결과값으로 갱신될 수 있다.
또한, 비밀키의 제2 키값은 제1 키값과 시간 데이터의 제3 요소값을 XOR 연산한 결과값과 제3 키값을 모듈로 연산한 결과값으로 갱신될 수 있다.
또한, 비밀키의 제3 키값은 제3 키값과 시간 데이터의 제2 요소값을 XOR 연산한 결과값과 제2 키값을 모듈로 연산한 결과값으로 갱신될 수 있다.
마지막으로, 비밀키의 제4 키값은 제3 키값과 시간 데이터의 제1 요소값을 XOR 연산한 결과값과 제1 키값을 모듈로 연산한 결과값으로 갱신될 수 있다.
이를 수학식으로 나타내면 수학식 1과 같다.
Figure 112016045427227-pat00002
여기서, K0’, K1’, K2’, K3’는 각각 변경된 비밀키의 제1 키값, 제2 키값, 제3 키값 및 제4 키값을 나타내며, K0 내지 K3는 현재 비밀키의 하위 64비트 중 8자리의 비밀키의 키값들을 나타낸다. 또한, tK0, tK1, tK2, tK3는 시간 데이터의 제1 요소값 내지 제4 요소값을 각각 나타낸다.
이를 도식화하여 나타내면 도 2와 같다.
도 2와 마찬가지로 나머지 K4 내지 K7도 동일한 방식으로 키값을 갱신할 수 있다.
K4 내지 K7도 수학식 1 및 도 2에 도시된 바와 동일한 방식으로 각각의 키값들이 갱신될 수 있다.
비밀키의 상위 64비트의 8자리의 비밀키는 수학식 2와 같이 변경될 수 있다.
Figure 112016045427227-pat00003
이를 도식화하면 도 3와 같다.
상위 64비트의 나머지 8자리는 수학식 2 및 도 3에 도시된 바와 같이 변경될 수 있다.
이는 위에서 전술한 바와 유사하며 연산에 이용되는 키값들의 조합 및 시간 데이터가 상이할 뿐이므로 중복되는 설명은 생략하기로 한다.
상술한 바와 같이, 비밀키의 각 키값은 비밀키의 키값들 및 시간 데이터의 요소값들을 이용하여 갱신될 수 있다.
비밀키의 각 키값들의 갱신에 이용되는 비밀키의 키값들 및 시간 데이터의 요소값들의 연산 과정을 다르게 하여 비밀키가 갱신될 수 있다.
이와 같은 비밀키의 갱신 과정은 시간 데이터가 수신될 때마다 반복하여 수행될 수 있다.
본 발명의 일 실시예에서는 암호화 장치(600)가 시간 데이터를 수신하고, 이를 이용하여 비밀키를 갱신한 후 이를 이용하여 데이터를 암호화하는 것을 가정하여 설명하고 있다.
그러나, 암호화 장치(600)는 현재 비밀키를 이용하여 데이터를 최소 한번은 암호화할 수 있으며, 그 이후에 시간 데이터가 수신됨에 따라 비밀키를 갱신한 후 암호화에 이용될 수도 있다.
단계 120에서 암호화 장치(600)는 현재 비밀키를 이용하여 데이터를 1차 암호화한다.
본 발명의 일 실시예에 따른 암호화 장치(600)는 128비트 시드 알고리즘에 기반하여 데이터를 1차 암호화할 수 있다. 따라서, 비밀키를 이용하여 데이터를 128비트 블록 단위로 분리하여 1차 암호화할 수 있다.
시드 알고리즘 자체는 공지된 사항이므로 이에 대한 별도의 상세한 설명은 생략하기로 한다.
단계 125에서 암호화 장치(600)는 1차 암호화된 데이터를 행렬 비밀키를 이용하여 2차 암호화한다.
암호화 장치(600)는 행렬 비밀키를 이용하여 1차 암호화된 데이터를 m비트 단위로 행렬 연산하여 2차 암호화할 수 있다.
이를 수학식으로 나타내면 수학식 1과 같다.
Figure 112016045427227-pat00004
여기서, C0, C1, C2, C3는 1차 암호화된 데이터의 각 자리의 값을 나타내고, M0, M1, M2, M3는 행렬 비밀키의 각각의 키값을 나타낸다.
여기서, 행렬 비밀키는 m 자리의 키값으로 구성될 수 있다. 여기서, m은 자연수일 수 있다.
이를 보다 상세히 설명하면 다음과 같다.
예를 들어, 1차 암호화된 데이터를 C라고 칭하기로 하며, C={(1,2,3,4,), (5,6, 7, 8), (9, 10, 11, 12), (13, 14, 15, 16)}이라고 가정하며, 행렬 비밀키 M={1, 2, 3, 4}라고 가정하기로 하자. 행렬 비밀키가 4자리이므로, 1차 암호화된 데이터는 4자리씩 나뉘어 암호화될 수 있다.
우선, C=(1, 2, 3, 4)가 행렬 비밀키와의 행렬 연산에 의해 2차 암호화된다. 이를 행렬식으로 표현하면, 다음과 같다.
Figure 112016045427227-pat00005
이를 수학식 3을 이용하여 연산하면, C'=(5, 11, 11, 25)와 같이 암호화될 수 있다.
이와 같은 방식으로, C=(5, 6, 7, 8)이 행렬 비밀키를 이용한 행렬 연산에 의해 C'=(19, 22, 43, 50)으로 2차 암호화되고, C=(9, 10, 11, 12)가 행렬 비밀키를 이용한 행렬 연산에 의해 C'=(31, 34, 71, 78)로 2차 암호화되며, C=(13, 14, 15, 16)은 행렬 비킬키를 이용한 행렬 연산에 의해 C'=(43, 46, 99, 106)으로 2차 암호화될 수 있다.
암호화 장치(600)는 이와 같이 암호화된 데이터를 복호화 장치(700)로 전송할 수 있다.
도 4는 도 1과 같이 암호화된 데이터를 복호하는 방법을 나타낸 순서도이고, 도 5는 본 발명의 일 실시예에 따른 시간 데이터를 재구성하는 방법을 설명하기 위해 도시한 도면이다.
단계 410에서 복호화 장치(700)는 암호화 장치(600)의 접속 여부를 판단한다.
만일 암호화 장치(600)가 접속한 경우, 단계 415에서 복호화 장치(700)는 복호화 장치(700)의 현재 시간을 검출하고, 검출된 시간을 시간 데이터로 재구성한다.
시간 데이터를 재구성하는 방법에 대해 간단하게 설명하기로 한다.
복호화 장치(700)는 일, 시, 분 및 초를 포함하는 시간을 검출한다. 이해와 설명의 편의를 도모하기 위해 이를 각각 요소값이라 칭하기로 한다.
이때, 시간 요소값이 중복될 수 있으므로, 복호화 장치(700)는 검출된 시간을 그대로 이용하지 않고, 이를 시간 데이터로 재구성하여 이용할 수 있다.
우선, 검출된 시간의 일, 시, 분에 해당하는 각 요소값은 초에 해당하는 요소값에 의해 모듈로 연산한 결과값으로 변경될 수 있다.
이해와 설명의 편의를 도모하기 위해, 일, 시, 분, 초에 해당하는 각 요소값을 제1 요소값, 제2 요소값, 제3 요소값 및 제4 요소값이라 칭하기로 한다.
시간 데이터가 중복하여 출력되는 것을 방지하기 위해, 제1 요소값 내지 제3 요소값은 제4 요소값과 조합하여 시간 데이터를 재구성하였다.
즉, 제1 요소값, 제2 요소값 및 제3 요소값은 각각 제4 요소값과의 모듈로 연산을 통해 제1 요소값, 제2 요소값 및 제3 요소값이 재구성될 수 있다.
이어, 제4 요소값은 제2 요소값과 제3 요소값을 모듈로 연산한 결과값에 제4 요소값을 XOR 연산하여 재구성될 수 있다.
이를 도식화하면 도 5와 같이 나타낼 수 있다.
상술한 바와 같이, 복호화 장치(700)는 암호화 장치(600)의 접속에 따라 복호화 장치(700)의 현재 시간을 검출하고, 검출된 시간에 모듈로 연산 및 XOR 연산 중 적어도 하나를 적용하여 시간 데이터를 재구성할 수 있다.
복호화 장치(700)는 암호화 장치(600)가 접속한 이후 주기적으로(예를 들어, 10초) 시간을 검출하여 시간 데이터를 재구성한 후 이를 암호화 장치(600)로 전송할 수 있다.
단계 415에서 복호화 장치(700)는 시간 데이터를 이용하여 비밀키를 변경한다. 여기서, 비밀키는 암호화 장치(600)와 공유되는 비밀키이다.
시간 데이터를 이용하여 비밀키를 변경(갱신)하는 방법은 도 1에서 설명한 바와 동일하므로 중복되는 설명은 생략하기로 한다.
단계 420에서 복호화 장치(700)는 암호화 장치(600)로부터 암호화된 데이터가 수신되었는지 여부를 판단한다.
만일 암호화된 데이터가 수신되지 않으면, 단계 410으로 진행한다.
그러나, 만일 암호화된 데이터가 수신된 경우, 단계 425에서 복호화 장치(700)는 행렬 비밀키를 이용하여 암호화된 데이터를 1차 복호한다.
이미 전술한 바와 같이, 암호화 장치(600)는 비밀키를 이용하여 데이터를 지정된 크기의 블록 단위로 1차 암호화하고 이를 다시 행렬 비밀키를 이용하여 2차 암호화한다.
따라서, 복호화 장치(700)는 암호화된 데이터를 복호하기 위해 행렬 비밀키를 이용하여 지정된 크기 단위로 역행렬 연산하여 1차 복호한 후 이를 다시 비밀키를 이용하여 2차 복호하는 과정을 거쳐야 한다.
1차 복호가 완료되면, 단계 430에서 복호화 장치(700)는 1차 복호된 데이터를 비밀키를 이용하여 지정된 크기의 블록 단위로 2차 복호한다.
도 6은 본 발명의 일 실시예에 따른 암호화 장치의 내부 구성을 개략적으로 도시한 블록도이다.
도 6을 참조하면, 암호화 장치(600)는 통신부(610), 비밀키 갱신부(615), 암호화부(620), 메모리(625) 및 프로세서(630)를 포함하여 구성된다.
통신부(610)는 통신망을 통해 데이터를 송수신하기 위한 수단이다.
예를 들어, 통신부(610)는 복호화 장치(700)로부터 시간 데이터를 주기적으로 획득할 수 있다.
또한, 통신부(610)는 프로세서(630)의 제어에 따라 암호화된 데이터를 복호화 장치(700)로 전송할 수도 있다.
본 발명의 일 실시예에서 암호화 장치(600)는 클라이언트 디바이스일 수 있으며, 복호화 장치는 서버일 수 있다.
이해와 설명의 편의를 도모하기 위해 암호화 장치와 복호화 장치를 구분하여 설명하나, 암호화 장치 및 복호화 장치는 하나의 장치일 수도 있다.
비밀키 갱신부(615)는 서버로부터 수신된 시간 데이터를 이용하여 현재 비밀키를 갱신하기 위한 수단이다. 이는 도 1에서 설명한 바와 동일하므로 중복되는 설명은 생략하기로 한다.
암호화부(620)는 데이터를 암호화하기 위한 수단이다.
예를 들어, 암호화부(620)는 비밀키를 이용하여 데이터를 지정된 제1 크기의 블록 단위로 1차 암호화할 수 있다. 이어, 암호화부(620)는 행렬 비밀키를 이용하여 1차 암호화된 데이터를 지정된 제2 크기 단위로 2차 암호화할 수 있다.
여기서, 비밀키는 행렬 비밀키와는 다른 비밀키이며, 크기 또한 상이할 수 있다.
비밀키 및 행렬 비밀키를 이용하여 데이터를 암호화하는 방법에 대해서는 도 1에서 설명한 바와 동일하므로 중복되는 설명은 생략하기로 한다.
메모리(625)는 본 발명의 일 실시예에 따른 시간 동기화 방식에 기반한 시드 알고리즘에 따라 데이터를 암호화하기 위한 방법을 수행하기 위해 필요한 다양한 알고리즘, 데이터, 이 과정에서 파생된 다양한 데이터 등을 저장하기 위한 수단이다.
프로세서(630)는 본 발명의 일 실시예에 따른 암호화 장치(600)의 내부 구성 요소들(예를 들어, 통신부(610), 비밀키 갱신부(615), 암호화부(620), 메모리(625) 등)을 제어하기 위한 수단이다.
도 7은 본 발명의 일 실시예에 따른 복호화 장치의 내부 구성을 개략적으로 도시한 블록도이다.
본 명세서에서는 암호화 장치(600)와 복호화 장치(700)가 서로 상이한 장치인 것을 가정하여 이를 중심으로 설명하나 암호화 장치(600) 및 복호화 장치(700)는 동일한 장치일 수도 있다.
도 7을 참조하면, 본 발명의 일 실시예에 따른 복호화 장치(700)는 통신부(710), 동기화부(715), 비밀키 갱신부(720), 복호화부(725), 메모리(730) 및 프로세서(735)를 포함하여 구성된다.
통신부(710)는 통신망을 통해 다른 장치(예를 들어, 암호화 장치(600))와 데이터 통신을 수행하기 위한 수단이다.
예를 들어, 통신부(710)는 통신망을 통해 암호화 장치(600)로 재구성된 시간 데이터를 전송할 수 있다. 또한, 통신부(710)는 암호화 장치(600)로부터 암호화된 데이터를 수신할 수도 있다.
동기화부(715)는 암호화 장치(600)와 시간 동기화를 위한 수단으로, 암호화 장치(600)의 접속에 따라 복호화 장치(700)의 현재 시간을 검출하고, 이를 시간 데이터로 재구성하기 위한 수단이다.
또한, 동기화부(715)는 재구성된 시간 데이터를 통신부(710)를 통해 암호화 장치(600)로 전송하도록 할 수 있다.
비밀키 갱신부(720)는 암호화 장치(600)와 공유하는 비밀키를 동기화하여 갱신하기 위해, 시간 데이터를 이용하여 비밀키를 갱신하기 위한 수단이다. 이는 도 1에서 설명한 바와 동일하므로 중복되는 설명은 생략하기로 한다.
복호화부(725)는 비밀키 및 행렬 비밀키를 이용하여 암호화 장치(600)로부터 수신된 암호화된 데이터를 복호하기 위한 수단이다.
예를 들어, 복호화부(725)는 도 4에서 이미 설명한 바와 같이, 암호화된 데이터를 행렬 비밀키를 이용하여 지정된 크기 단위로 역행렬 연산하여 1차 복호하고, 1차 복호된 데이터를 비밀키를 이용하여 지정된 크기의 블록 단위로 2차 복호할 수 있다.
이는 이미 도 4에서 설명한 바와 동일하므로 중복되는 설명은 생략하기로 한다.
메모리(730)는 시간 동기화 방식에 기반하여 암호화된 데이터를 복호하는 방법을 수행하기 위해 필요한 다양한 알고리즘, 이 과정에서 파생된 다양한 데이터를 저장하기 위한 수단이다.
프로세서(735)는 본 발명의 일 실시예에 따른 복호화 장치(700)의 내부 구성 요소들(예를 들어, 통신부(710), 동기화부(715), 비밀키 갱신부(720), 복호화부(725), 메모리(730) 등)을 제어하기 위한 수단이다.
한편, 전술된 실시예의 구성 요소는 프로세스적인 관점에서 용이하게 파악될 수 있다. 즉, 각각의 구성 요소는 각각의 프로세스로 파악될 수 있다. 또한 전술된 실시예의 프로세스는 장치의 구성 요소 관점에서 용이하게 파악될 수 있다.
또한 앞서 설명한 기술적 내용들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예들을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 하드웨어 장치는 실시예들의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
상기한 본 발명의 실시예는 예시의 목적을 위해 개시된 것이고, 본 발명에 대한 통상의 지식을 가지는 당업자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경, 부가가 가능할 것이며, 이러한 수정, 변경 및 부가는 하기의 특허청구범위에 속하는 것으로 보아야 할 것이다.
600: 암호화 장치
610: 통신부
615: 비밀키 갱신부
620: 암호화부
625: 메모리
630: 프로세서

Claims (12)

  1. 암호화 장치가 데이터를 암호화하는 방법에 있어서,
    (a) 서버로의 접속에 따라 시간 데이터를 수신하는 단계-상기 시간 데이터는 상기 암호화 장치가 상기 서버에 접속한 시점의 상기 서버의 현재 시간을 일, 시, 분에 해당하는 각 요소값을 초에 해당하는 요소값으로 모듈로 연산하여 재구성하고, 상기 초에 해당하는 요소값은 상기 시, 분에 해당하는 요소값을 모듈로 연산한 결과값에 상기 초에 해당하는 요소값을 XOR 연산하여 재구성된 데이터임;
    (b) 상기 시간 데이터와 현재 비밀키를 이용하여 상기 현재 비밀키를 갱신하는 단계;
    (c) 갱신된 비밀키를 이용하여 상기 데이터를 n비트 단위로 1차 암호화하는 단계-상기 n은 자연수임; 및
    (d) 상기 1차 암호화된 데이터를 행렬 비밀키를 이용하여 2차 암호화하는 단계를 포함하되,
    상기 (b) 단계는, 상기 현재 비밀키를 2-1(2의 -1승) 비트 단위로 복수회 나눈 후 상기 현재 비밀키의 각 자리의 키값과 상기 시간 데이터의 각 요소값과 모듈로 연산과 XOR 연산을 수행함으로써 상기 현재 비밀키를 갱신하며
    상기 (d) 단계는,
    상기 1차 암호화된 데이터는 행렬 비밀키의 자리수대로 나뉘어 암호화되되, 상기 행렬 비밀키가 m 자리의 키값으로 구성시 상기 1차 암호화된 데이터는 m 비트 단위로 나뉜 후 상기 m 자리의 행렬 비밀키를 이용한 행렬 연산을 통해 2차 암호화되는 것을 특징으로 하는 암호화 방법.
  2. 제1 항에 있어서,
    상기 시간 데이터는 주기적으로 수신되되,
    상기 시간 데이터의 주기적 수신에 따라 상기 (b) 단계도 주기적으로 수행되는 것을 특징으로 하는 암호화 방법.
  3. 삭제
  4. 삭제
  5. 삭제
  6. 제1 항에 있어서, 상기 (d) 단계는,
    상기 2차 암호화는 하기 수학식을 이용하여 m비트 단위로 수행되는 것을 특징으로 하는 암호화 방법.
    Figure 112017091142649-pat00006

    여기서, C0, C1, C2, C3는 1차 암호화된 데이터의 각각의 자리의 값을 나타내고, M0, M1, M2, M3는 행렬 비밀키의 각 키값을 나타냄.
  7. 암호화 장치에 있어서,
    서버로부터 시간 데이터를 수신하는 통신부-상기 시간 데이터는 상기 암호화 장치가 상기 서버에 접속한 시점의 상기 서버의 현재 시간을 일, 시, 분에 해당하는 각 요소값을 초에 해당하는 요소값으로 모듈로 연산하여 재구성하고, 상기 초에 해당하는 요소값은 상기 시, 분에 해당하는 요소값을 모듈로 연산한 결과값에 상기 초에 해당하는 요소값을 XOR 연산하여 재구성된 데이터임;
    상기 시간 데이터와 현재 비밀키를 이용하여 상기 현재 비밀키를 비밀키 갱신하는 갱신부; 및
    갱신된 비밀키를 이용하여 데이터를 n(상기 n은 자연수임)비트 단위로 1차 암호화하고, 상기 1차 암호화된 데이터를 행렬 비밀키를 이용하여 2차 암호화하는 암호화부를 포함하되,
    상기 갱신부는,
    상기 현재 비밀키를 2-1 비트 단위로 복수회 나눈 후 상기 현재 비밀키의 각 자리의 키값과 상기 시간 데이터의 각 요소값과 모듈로 연산과 XOR 연산을 수행함으로써 상기 현재 비밀키를 갱신하며,
    상기 암호화부는
    상기 1차 암호화된 데이터를 행렬 비밀키의 자리수대로 나뉘어 암호화하되, 상기 행렬 비밀키가 m 자리의 키값으로 구성시 상기 1차 암호화된 데이터를 m 비트 단위로 나뉜 후 상기 m 자리의 행렬 비밀키를 이용한 행렬 연산을 통해 2차 암호화하는 것을 특징으로 하는 암호화 장치.
  8. 복호화 장치가 복호화 방법에 있어서,
    (aa) 클라이언트 디바이스의 접속에 따라 현재 시간을 검출하고, 상기 검출된 현재 시간을 시간 데이터로 재구성하는 단계- 상기 시간 데이터는 상기 클라이언트 디바이스가 상기 복호화 장치에 접속한 시점의 상기 복호화 장치의 현재 시간을 일, 시, 분에 해당하는 각 요소값을 초에 해당하는 요소값으로 모듈로 연산하여 재구성하고, 상기 초에 해당하는 요소값은 상기 시, 분에 해당하는 요소값을 모듈로 연산한 결과값에 상기 초에 해당하는 요소값을 XOR 연산하여 재구성된 데이터임;
    (bb) 상기 시간 데이터와 현재 비밀키를 이용하여 상기 현재 비밀키를 갱신하는 단계- 상기 현재 비밀키를 2-1 비트 단위로 복수회 나눈 후 상기 현재 비밀키의 각 자리의 키값과 상기 시간 데이터의 각 요소값과 모듈로 연산과 XOR 연산을 수행함으로써 상기 현재 비밀키를 갱신하며;
    (cc) 상기 클라이언트 디바이스로부터 암호화된 데이터를 수신하는 단계;
    (dd) 상기 암호화된 데이터를 행렬 비밀키를 이용한 역행렬 연산하여 1차 복호하는 단계; 및
    (ee) 상기 1차 복호된 데이터를 상기 갱신된 비밀키를 이용하여 2차 복호하는 단계를 포함하되,
    상기 (dd) 단계는,
    상기 행렬 비밀키는 m(m은 자연수) 자리의 키값이되, 상기 암호화된 데이터는 상기 행렬 비밀키의 자리수대로 나뉘어 복호화되되, 상기 행렬 비밀키가 m 자리의 키값으로 구성시 상기 암호화된 데이터는 m 비트 단위로 나뉜 후 상기 m 자리의 행렬 비밀키를 이용한 역행렬 연산을 통해 1차 복호하는 것을 특징으로 하는 복호화 방법.
  9. 제8 항에 있어서,
    상기 재구성된 시간 데이터를 상기 클라이언트 디바이스로 전송하되,
    주기적으로 현재 시간을 검출하여 시간 데이터로 재구성하여 상기 클라이언트 디바이스로 전송하는 것을 특징으로 하는 복호화 방법.
  10. 제8 항에 있어서,
    상기 (ee) 단계는 n(상기 n은 자연수) 비트 단위로 상기 1차 복호된 데이터를 상기 갱신된 비밀키로 2차 복호하는 것을 특징으로 하는 복호화 방법.
  11. 클라이언트 디바이스의 접속에 따라 현재 시간을 검출하고, 상기 검출된 현재 시간을 시간 데이터로 재구성하는 동기화부- 상기 시간 데이터는 상기 클라이언트 디바이스가 접속한 시점의 현재 시간을 일, 시, 분에 해당하는 각 요소값을 초에 해당하는 요소값으로 모듈로 연산하여 재구성하고, 상기 초에 해당하는 요소값은 상기 시, 분에 해당하는 요소값을 모듈로 연산한 결과값에 상기 초에 해당하는 요소값을 XOR 연산하여 재구성된 데이터임;
    상기 시간 데이터와 현재 비밀키를 이용하여 상기 현재 비밀키를 갱신하는 비밀키 갱신부- 상기 현재 비밀키를 2-1(2의 -1승) 비트 단위로 복수회 나눈 후 상기 현재 비밀키의 자리값들과 상기 시간 데이터의 각 요소값들을 이용한 모듈로 연산 및 XOR 연산을 통해 상기 현재 비밀키의 각 자리값을 갱신함;
    상기 클라이언트 디바이스로부터 암호화된 데이터를 수신하는 통신부; 및
    상기 암호화된 데이터를 행렬 비밀키를 이용한 역행렬 연산하여 1차 복호하고, 상기 1차 복호된 데이터를 상기 갱신된 비밀키를 이용하여 2차 복호하는 복호화부를 포함하되,
    상기 행렬 비밀키는 m(m은 자연수) 자리의 키값이되, 상기 암호화된 데이터는 상기 행렬 비밀키의 자리수대로 나뉘어 복호화되되, 상기 복호화부는 상기 행렬 비밀키가 m 자리의 키값으로 구성시 상기 암호화된 데이터를 m 비트 단위로 나뉜 후 상기 m 자리의 행렬 비밀키를 이용한 역행렬 연산을 통해 1차 복호하는 것을 특징으로 하는 복호화 장치.
  12. 제11 항에 있어서,
    상기 동기화부는 상기 시간 데이터를 상기 통신부를 통해 상기 클라이언트 디바이스로 전송하는 것을 특징으로 하는 복호화 장치.

KR1020160058202A 2016-05-12 2016-05-12 암호화 방법, 복호화 방법 및 그 장치 KR101817424B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160058202A KR101817424B1 (ko) 2016-05-12 2016-05-12 암호화 방법, 복호화 방법 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160058202A KR101817424B1 (ko) 2016-05-12 2016-05-12 암호화 방법, 복호화 방법 및 그 장치

Publications (2)

Publication Number Publication Date
KR20170128667A KR20170128667A (ko) 2017-11-23
KR101817424B1 true KR101817424B1 (ko) 2018-02-22

Family

ID=60809583

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160058202A KR101817424B1 (ko) 2016-05-12 2016-05-12 암호화 방법, 복호화 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR101817424B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190135663A (ko) 2018-05-29 2019-12-09 한국항공우주연구원 보안이 강화된 ofb 모드의 암호화 방법
KR102276669B1 (ko) * 2021-04-12 2021-07-13 (주)한컴인텔리전스 어군 생태계의 이상 여부를 감지하기 위한 어군 생태계 모니터링 시스템 장치 및 그 동작 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102078903B1 (ko) * 2017-12-19 2020-02-19 동서대학교 산학협력단 무선 암호통신의 신뢰성 있는 데이터 판단 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101077973B1 (ko) * 2009-12-14 2011-10-31 고려대학교 산학협력단 이진 데이터의 암호화 시스템 및 그 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101077973B1 (ko) * 2009-12-14 2011-10-31 고려대학교 산학협력단 이진 데이터의 암호화 시스템 및 그 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190135663A (ko) 2018-05-29 2019-12-09 한국항공우주연구원 보안이 강화된 ofb 모드의 암호화 방법
KR102276669B1 (ko) * 2021-04-12 2021-07-13 (주)한컴인텔리전스 어군 생태계의 이상 여부를 감지하기 위한 어군 생태계 모니터링 시스템 장치 및 그 동작 방법

Also Published As

Publication number Publication date
KR20170128667A (ko) 2017-11-23

Similar Documents

Publication Publication Date Title
CN108200028B (zh) 一种区块链安全获取服务器可信数据的方法及系统
JP7454564B2 (ja) 鍵管理のための方法、ユーザ・デバイス、管理デバイス、記憶媒体及びコンピュータ・プログラム製品
US10880100B2 (en) Apparatus and method for certificate enrollment
EP3831013A1 (en) System and method to protect data privacy of lightweight devices using blockchain and multi-party computation
JP5855696B2 (ja) 完全性検証を含むブロック暗号化方法およびブロック復号化方法
US9374222B2 (en) Secure communication of data between devices
JP6363032B2 (ja) 鍵付替え方向制御システムおよび鍵付替え方向制御方法
JP2016513825A (ja) 安全通信方法および装置
EP3624418B1 (en) Method for data transmission, battery management system, and storage medium
JP6608436B2 (ja) エンコーダ、デコーダ、及び部分的データ暗号化を用いる方法
US20160380768A1 (en) Data management device, system, re-encryption device, data sharing device, and storage medium
US20150341172A1 (en) Key sharing network device and configuration thereof
CN111147227B (zh) 一种基于区块链的通信方法和通信平台
CN114008967A (zh) 经认证的基于晶格的密钥协商或密钥封装
KR101817424B1 (ko) 암호화 방법, 복호화 방법 및 그 장치
CN113890731B (zh) 一种密钥管理方法、装置、电子设备及存储介质
CN112997448A (zh) 具有减小的公钥大小的公钥/私钥系统
CN103607278A (zh) 一种安全的数据云存储方法
US20210266175A1 (en) Device for data encryption and integrity
CN112818404B (zh) 数据访问权限的更新方法、装置、设备及可读存储介质
CN114117406A (zh) 一种数据处理方法、装置、设备及存储介质
CN113132078B (zh) 一种基于同态承诺的区块链隐私保护方法及区块链系统
CN109889327B (zh) 共享密钥生成方法和装置
EP3457601B1 (en) A method for sending digital data over a number of channels
CN113890759B (zh) 文件传输方法、装置、电子设备和存储介质

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