KR20160029590A - 데이터 암호화 방법 및 장치 - Google Patents

데이터 암호화 방법 및 장치 Download PDF

Info

Publication number
KR20160029590A
KR20160029590A KR1020140119364A KR20140119364A KR20160029590A KR 20160029590 A KR20160029590 A KR 20160029590A KR 1020140119364 A KR1020140119364 A KR 1020140119364A KR 20140119364 A KR20140119364 A KR 20140119364A KR 20160029590 A KR20160029590 A KR 20160029590A
Authority
KR
South Korea
Prior art keywords
group
encryption
bit group
size
data
Prior art date
Application number
KR1020140119364A
Other languages
English (en)
Other versions
KR102287946B1 (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 KR1020140119364A priority Critical patent/KR102287946B1/ko
Priority to PCT/KR2015/008933 priority patent/WO2016036048A1/en
Priority to US15/323,213 priority patent/US10153896B2/en
Priority to CN201580040052.4A priority patent/CN106664197B/zh
Priority to EP15838583.1A priority patent/EP3146669B1/en
Publication of KR20160029590A publication Critical patent/KR20160029590A/ko
Application granted granted Critical
Publication of KR102287946B1 publication Critical patent/KR102287946B1/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/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
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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

Landscapes

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

Abstract

본 발명의 일 실시예는, 제 1 디바이스가 제 2 디바이스에게 송신하는 데이터를 AES 암호화 하는 방법에 있어서, 암호화 키의 크기 정보 및 복수의 비트들을 포함하는 암호화가 수행될 데이터의 크기 정보를 획득하는 단계; 암호화 키를 이용하여, 복수의 비트들 중 암호화 키의 크기와 대응되는 일부의 비트들인 제 1 비트 그룹을 암호화하는 단계; 암호화 키의 크기 정보 및 복수의 비트들 중 제 1 비트 그룹과 상이한 비트들을 포함하는 제 2 비트 그룹의 크기에 기초하여, 암호화된 제 1 비트 그룹 중 일부의 비트들인 제 3 비트 그룹을 선택하는 단계; 및 암호화 키를 이용하여 제 2 비트 그룹 및 선택된 제 3 비트 그룹을 암호화 하는 단계를 포함하는 방법.

Description

데이터 암호화 방법 및 장치{Method and Apparatus For Data Encrypting}
본 발명은 데이터를 암호화 하는 방법에 관한 것으로, 특히 데이터를 암호화 하고 송신하기 위한 방법 및 장치에 관한 것이다.
최근, 디바이스를 이용한 데이터의 송신 및 수신이 급격하게 증가하고 있다. 데이터의 송신 및 수신이 급격하게 증가하므로 인해 송신 및 수신되는 데이터의 보안의 필요성 또한 증가하고 있다.
디바이스 간 송신 및 수신되는 데이터의 보안을 유지하기 위해서는 암호화 알고리즘을 사용한 암호화 프로세스가 필요하다. 암호화 알고리즘은 암호화 키와 데이터를 이용하여 암호화된 데이터를 출력하는 알고리즘이다. 암호화 알고리즘은 MD5(Message-Digest algorithm), SHA(Secure Hash Algorithm), RSA(Rivest Shamir Adleman), AES(Advanced Encryption Standard)등 다양한 알고리즘을 포함할 수 있다.
다만, 최근 디바이스간 송신 및 수신되는 데이터의 포맷이 다양해지고, 디바이스간의 연결되는 통신 방식이 유선 통신 방식, 무선 통신 방식, 근거리 통신 방식, 원거리 통신 방식 등으로 다양해짐에 따라, 소정의 크기의 데이터를 소정의 시간마다 통신하도록 하는 다양한 프로토콜 및 표준에 따라 통신하게 되었다. 그러나, AES 암호화 알고리즘과 같은 소정의 암호화 알고리즘의 경우 소정의 크기의 데이터만을 암호화할 수 있어, 소정의 프로토콜 및 표준에 따른 통신을 수행하기 어려웠다.
따라서, 다양한 프로토콜 및 표준에 따른 통신을 원활하게 하기 위한 암호화 프로세스가 필요하다.
일부 실시예에 따르면, 다양한 크기의 데이터의 AES 암호화 알고리즘을 이용한 암호화 방법을 제공한다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 개시의 일부 실시예는, 제 1 디바이스가 제 2 디바이스에게 송신하는 데이터를 AES 암호화 알고리즘을 이용하여 암호화 하는 방법에 있어서, 암호화 키의 크기 정보 및 복수의 비트들을 포함하는 암호화가 수행될 데이터의 크기 정보를 획득하는 단계; 상기 암호화 키를 이용하여, 상기 복수의 비트들 중 상기 암호화 키의 크기와 대응되는 일부의 비트들인 제 1 비트 그룹을 암호화하는 단계; 상기 암호화 키의 크기 정보 및 상기 복수의 비트들 중 제 1 비트 그룹과 상이한 비트들을 포함하는 제 2 비트 그룹의 크기에 기초하여, 상기 암호화된 제 1 비트 그룹 중 일부의 비트들인 제 3 비트 그룹을 선택하는 단계; 및 상기 암호화 키를 이용하여 상기 제 2 비트 그룹 및 상기 선택된 제 3 비트 그룹을 암호화 하는 단계를 포함할 수 있다.
상기 방법은, 상기 암호화된 제 1 비트 그룹에서 제 3 비트 그룹을 제외한 제 1 암호화 그룹 및 상기 제 2 비트 그룹 및 제 3 비트 그룹이 암호화된 제 2 암호화 그룹을 한번에 송신하는 단계를 더 포함할 수 있다.
상기 방법은, 상기 선택한 제 3 비트 그룹에 대한 정보를 포함하는 암호화 그룹 정보를 송신하는 단계를 더 포함할 수 있다.
상기 송신하는 단계는, 소정의 기간마다 상기 제 1 암호화 그룹 및 상기 제 2 암호화 그룹이 병합된 그룹을 한번에 송신하는 단계를 포함할 수 있다.
상기 방법은, 상기 암호화가 수행될 데이터의 크기가 상기 암호화 키의 크기의 배수인지 판단하는 단계를 더 포함할 수 있다.
상기 암호화 키의 크기 정보 및 복수의 비트들을 포함하는 암호화가 수행될 데이터의 크기 정보를 획득하는 단계는, 상기 획득한 암호화 키의 크기가 상기 획득한 암호화가 수행될 데이터의 크기보다 큰 경우, 암호화 키를 소정의 크기로 변경하는 단계를 더 포함할 수 있다.
상기 방법은, 상기 복수의 비트들을 포함하는 암호화가 수행될 데이터를 스크램블링하는 단계를 더 포함할 수 있다.
제 1 항에 있어서, 상기 제 3 비트 그룹의 크기는, 상기 암호화 키의 크기와 상기 제 2 비트 그룹의 크기의 차이와 동일할 수 있다.
상기 제 1 비트 그룹을 암호화하는 단계는, 상기 암호화된 제 1 비트 그룹을 저장하는 단계를 더 포함하고, 상기 제 3 비트 그룹을 선택하는 단계는, 상기 저장된 제 1 비트 그룹을 일부의 비트들인 제 3 비트 그룹을 선택하는 단계를 포함할 수 있다.
상기 제 3 비트 그룹을 선택하는 단계는, 상기 제 1 비트 그룹으로부터 상기 선택된 제 3 비트 그룹을 삭제하고, 상기 제 2 비트 그룹에 상기 제 3 비트 그룹을 병합하는 단계; 및 상기 제 3 비트 그룹 및 제 2 비트 그룹이 병합된 그룹을 암호화하는 단계를 포함할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 개시의 일부 실시예는, AES 암호화 방식을 이용하여 암호화된 데이터를 복호화 하는 방법에 있어서, 제 1 암호화 그룹 및 제 2 암호화 그룹을 포함하는 암호화된 데이터 및 암호화 그룹 정보를 수신하는 단계; 복호화 키를 이용하여, 상기 수신된 제 2 암호화 그룹을 복호화 하는 단계; 상기 수신된 암호화 그룹 정보에 기초하여 제 2 암호화 그룹 중 일부의 비트를 선택하는 단계; 상기 선택된 제 2 암호화 그룹의 일부 및 상기 수신된 제 1 암호화 그룹을 병합하는 단계; 및 상기 병합된 그룹을 복호화 하는 단계를 포함할 수 있다.
상기 방법은, 상기 수신된 데이터를 디스크램블링하는 단계를 더 포함할 수 있다.
상기 복호화 키를 이용하여, 상기 수신된 제 2 암호화 그룹을 복호화 하는 단계는, 상기 복호화된 제 2 암호화 그룹을 저장하는 단계를 더 포함하고, 상기 수신된 암호화 그룹 정보에 기초하여 제 2 암호화 그룹 중 일부의 비트를 선택하는 단계는, 상기 수신된 암호화 그룹 정보에 기초하여 상기 저장된 제 2 암호화 그룹을 일부의 비트를 선택하는 단계를 더 포함할 수 있다.
상기 암호화 그룹 정보는, 상기 제 1 암호화 그룹을 복호화 하기 위한 필요한 제 2 암호화 그룹 내의 적어도 하나의 비트들의 정보를 포함할 수 있다.
복호화 키를 이용하여, 상기 수신된 제 2 암호화 그룹을 복호화 하는 단계는, 상기 수신된 제 2 암호화 그룹과 대응되는 복호화 키를 선택하는 단계를 포함할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 개시의 일부 실시예는, 상기 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 개시의 일부 실시예는, AES 암호화 알고리즘을 이용하여 데이터를 암호화하는 디바이스에 있어서, 암호화 키의 크기 정보 및 복수의 비트들을 포함하는 암호화가 수행될 데이터의 크기 정보를 획득하는 데이터 정보 획득부; 및 상기 암호화 키를 이용하여, 상기 복수의 비트들 중 상기 암호화 키의 크기와 대응되는 일부의 비트들인 제 1 비트 그룹을 암호화하고, 상기 암호화 키의 크기 정보 및 상기 복수의 비트들 중 제 1 비트 그룹과 상이한 비트들을 포함하는 제 2 비트 그룹의 크기에 기초하여, 상기 암호화된 제 1 비트 그룹 중 일부의 비트들인 제 3 비트 그룹을 선택하며, 상기 암호화 키를 이용하여 상기 제 2 비트 그룹 및 상기 선택된 제 3 비트 그룹을 암호화 하는 암호화부를 포함할 수 있다.
상기 디바이스는, 상기 암호화된 제 1 비트 그룹에서 제 3 비트 그룹을 제외한 제 1 암호화 그룹 및 상기 제 2 비트 그룹 및 제 3 비트 그룹이 암호화된 제 2 암호화 그룹을 한번에 송신하는 통신부를 더 포함할 수 있다.
상기 디바이스는, 상기 선택한 제 3 비트 그룹에 대한 정보를 포함하는 암호화 그룹 정보를 송신하는 통신부를 더 포함할 수 있다.
상기 통신부는, 소정의 기간마다 상기 제 1 암호화 그룹 및 상기 제 2 암호화 그룹이 병합된 그룹을 한번에 송신할 수 있다.
상기 암호화부는, 상기 암호화가 수행될 데이터의 크기가 상기 암호화 키의 크기의 배수인지 판단할 수 있다.
상기 암호화부는, 상기 획득한 암호화 키의 크기가 상기 획득한 암호화가 수행될 데이터의 크기보다 큰 경우, 암호화 키를 소정의 크기로 변경하는 암호화키 결정부를 더 포함할 수 있다.
상기 디바이스는, 상기 복수의 비트들을 포함하는 암호화가 수행될 데이터를 스크램블링하는 스크램블링부를 더 포함할 수 있다.
상기 제 3 비트 그룹의 크기는, 상기 암호화 키의 크기와 상기 제 2 비트 그룹의 크기의 차이와 동일할 수 있다.
상기 디바이스는, 상기 암호화된 제 1 비트 그룹을 저장하는 저장부를 더 포함하고, 상기 암호화부는, 상기 저장부에 저장된 제 1 비트 그룹을 일부의 비트들인 제 3 비트 그룹을 선택할 수 있다.
상기 암호화부는, 상기 제 1 비트 그룹으로부터 상기 선택된 제 3 비트 그룹을 삭제하고, 상기 제 2 비트 그룹에 상기 제 3 비트 그룹을 병합하고, 상기 제 2 비트 그룹 및 상기 제 3 비트 그룹이 병합된 그룹을 암호화할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 개시의 일부 실시예는, AES 알고리즘을 이용하여 암호화된 데이터를 복호화하는 디바이스에 있어서, 제 1 암호화 그룹 및 제 2 암호화 그룹을 포함하는 암호화된 데이터 및 암호화 그룹 정보를 수신하는 통신부; 및 복호화 키를 이용하여, 상기 수신된 제 2 암호화 그룹을 복호화하고, 상기 수신된 암호화 그룹 정보에 기초하여 제 2 암호화 그룹 중 일부의 비트를 선택하고, 상기 선택된 제 2 암호화 그룹의 일부 및 상기 수신된 제 1 암호화 그룹을 병합하며, 상기 병합된 그룹을 복호화 하는 복호화부를 포함하는 디바이스를 제공할 수 있다.
상기 디바이스는, 상기 수신된 데이터를 디스크램블링하는 디스크램블링부를 더 포함 할 수 있다.
상기 디바이스는, 상기 복호화된 제 2 암호화 그룹을 저장하는 저장부를 더 포함하고, 상기 복호화부는, 상기 수신된 암호화 그룹 정보에 기초하여 상기 저장부에 저장된 제 2 암호화 그룹을 일부의 비트를 선택할 수 있다.
상기 암호화 그룹 정보는, 상기 제 1 암호화 그룹을 복호화 하기 위한 필요한 제 2 암호화 그룹 내의 적어도 하나의 비트들의 정보를 포함할 수 있다.
상기 복호화부는, 상기 수신된 제 2 암호화 그룹과 대응되는 복호화 키를 선택하는 복호화키 결정부를 포함할 수 있다.
도 1은 일부 실시예에 따른 데이터를 송수신하는 디바이스들을 설명하기 위한 도면이다.
도 2는 일부 실시예에 따른 암호화된 데이터를 송수신하는 방법을 설명하기 위한 도면이다.
도 3은 일부 실시예에 따른, 디바이스가 데이터를 획득하고 제공하는 방법을 설명하기 위한 도면이다.
도 4는 일부 실시예에 따른 AES 암호화 알고리즘을 설명하기 위한 도면이다.
도 5는 일부 실시예에 따른 AES 복호화 알고리즘을 설명하기 위한 도면이다.
도 6은 일부 실시예에 따른 데이터 암호화 방법을 설명하기 위한 순서도이다.
도 7은 일부 실시예에 따른, 데이터 암호화 방법을 설명하기 위한 세부 도면이다.
도 8 내지 도 12는 일부 실시예에 따른 다양한 크기의 데이터의 암호화 방법을 설명하기 위한 도면이다.
도 13은 일부 실시예에 따른 데이터 스크램블링 및 암호화 방법을 설명하기 위한 순서도이다.
도 14는 일부 실시예에 따른 데이터 스크램블링 및 암호화 방법을 설명하기 위한 도면이다.
도 15는 일부 실시예에 따른 데이터 복호화 방법을 설명하기 위한 순서도이다.
도 16은 일부 실시예에 따른 데이터 복호화 방법을 설명하기 위한 세부 도면이다.
도 17은 일부 실시예에 따른 데이터 디스크래블링 및 복호화 방법을 설명하기 위한 순서도이다.
도 18 내지 도 19는 일부 실시예에 따른 암호화를 수행하는 제 1 디바이스를 설명하기 위한 블록도이다.
도 20 내지 도 21은 일부 실시예에 따른 암호화를 수행하는 제 2 디바이스를 설명하기 위한 블록도이다.
도 22는 일부 실시예에 따른, 암호화 디바이스를 설명하기 위한 세부 블록도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 전기적으로 연결되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하 첨부된 도면을 참고하여 본 발명을 상세히 설명하기로 한다.
도 1은 일부 실시예에 따른 데이터를 송수신하는 디바이스들을 설명하기 위한 도면이다.
도 1을 참조하면, 제 1 디바이스(101)는 제 2 디바이스(103)와 데이터를 송신 및 수신 할 수 있다. 일부 실시예에 따르면, 제 1 디바이스(101)는 암호화한 데이터를 제 2 디바이스(103)에게 송신할 수 있다. 또한, 제 1 디바이스(101)는 정보를 획득하고, 획득한 정보에 기초하여 데이터를 생성하고, 생성된 데이터를 암호화할 수도 있다. 추가적으로, 제 1 디바이스(101)는 암호화 데이터와 함께 제 2 디바이스(103)에서 암호화 데이터를 복호화할 수 있는 정보를 송신할 수 있다. 또한 제 1 디바이스(101)는 송신할 데이터를 스크램블링 할 수도 있다. 일부 실시예에 따른 제 1 디바이스(101)가 데이터를 암호화 하는 방법은 도 6에서 자세히 설명한다.
일부 실시예에 따르면, 제 2 디바이스(103)는 암호화된 데이터를 수신할 수 있다. 제 2 디바이스(103)는 수신된, 암호화된 데이터를 복호화 할 수 있다. 일부 실시예에 따르면, 제 2 디바이스(103)는 스크램블링된 암호화 데이터를 수신한 경우, 수신된 데이터를 디스크램블링하고, 복호화할 수 있다.
일부 실시예에 따르면, 제 1 디바이스 및 제 2 디바이스(101 및 103)는 스마트폰, 스마트 TV, 휴대폰, PDA(personal digital assistant), 랩톱, 미디어 플레이어, 마이크로 서버, GPS(global positioning system) 장치, 전자책 단말기, 디지털방송용 단말기, 네비게이션, 키오스크, MP3 플레이어, 디지털 카메라 및 기타 모바일 또는 비모바일 컴퓨팅 장치일 수 있다. 또한, 제 1 디바이스 및 제 2 디바이스(101 및 103)는, 전자 칠판, 터치 테이블 등과 같이 터치 입력을 수신할 수 있는 다양한 장치를 포함할 수 있다. 물론 상기 예시에 제한되는 것은 아니다.
일부 실시예에 따르면 제 2 디바이스(103)는 외부 디바이스일 수도 있고, 서버 일 수도 있으며, 상기 예시에 제한되지 않는다.
일부 실시예에 따르면, 제 1 디바이스(101) 및 제 2 디바이스(103) 는 디스플레이부를 포함하는 장치일 수 있다.
일부 실시예에 따르면 제 1 디바이스(101) 및 제 2 디바이스(103)는 마우스, 키보드, 터치패드, 트랙볼, 전자펜, 터치 스크린 등 다양한 사용자 인터페이스를 통해 사용자 입력을 수신할 수 있다. 물론 사용자 인터페이스는 상기 예시에 제한되지 않는다.
도 2는 일부 실시예에 따른 암호화된 데이터를 송수신하는 방법을 설명하기 위한 도면이다.
일부 실시예에 따르면, 제 1 디바이스(101)는 소정의 프로토콜(Protocol)에 따라 데이터를 제 2 디바이스(103)에게 송신할 수 있다. 프로토콜이라 함은 컴퓨터 간에 정보를 주고 받을 때의 통신 방법에 대한 규칙과 약속으로써, 다양한 프로토콜이 존재할 수 있다. 프로토콜에 대한 내용은 당업자에게 자명하므로 자세한 설명은 생략한다.
일부 실시예에 따르면, 제 1 디바이스(101) 및 제 2 디바이스(103)간의 통신 방식, 제 1 디바이스(101) 와 제 2 디바이스(103)간의 송수신 되는 데이터의 종류 에 대응하는 다양한 프로토콜에 따라, 제 1 디바이스(101)는 제 2 디바이스(103)에게 데이터를 송신할 수 있다. 또한 제 1 디바이스(101) 및 제 2 디바이스(103)간의 통신 방식 및 프로토콜 형태에 따라, 제 1 디바이스(101) 및 제 2 디바이스(103)간 한번에 송수신되는 데이터의 크기 및 데이터가 송수신되는 간격이 결정될 수 있다.
일부 실시예에 따르면, 제 1 디바이스(101)는 데이터를 암호화하고, 암호화한 데이터를 제 2 디바이스(103)에게 송신할 수 있다. 일부 실시예에 따르면, 제 1 디바이스(101)는 소정의 프로토콜에 따라 데이터를 생성하여 제 2 디바이스(103)에게 송신할 수 있다.
도 2를 참조하면, 제 1 디바이스(101)가 제 2 디바이스(103)에게 송신하는 데이터는 암호화된 데이터일 수 있으며, 제 1 디바이스(101)는 암호화된 데이터를 복호화 하기 위한 암호화 키 정보를 제 2 디바이스(103)에게 제공할 수 있다. 제 2 디바이스(103)는 데이터 및 암호화 키 정보를 수신하고, 수신된 암호화 키 정보를 이용하여 수신된 데이터를 복호화할 수 있다.
일부 실시예에 따르면, 암호화 키 정보는 암호화 방식에 대한 정보, 암호화 및 복호화를 위해 디바이스간 설정이 필요한 파라미터 등에 대한 정보 중 적어도 하나를 포함할 수 있으며, 상기 예시에 제한되는 것은 아니고, 암호화 및 복호화 과정에서 필요한 정보가 포함될 수 있다.
도 3은 일부 실시예에 따른, 디바이스가 데이터를 획득하고 제공하는 방법을 설명하기 위한 도면이다.
단계 301에서, 제 1 디바이스는 센싱(Sensing)을 수행하고, 데이터를 획득할 수 있다. 일부 실시예에 따르면, 제 1 디바이스는 센싱된 정보에 기초하여 데이터를 생성할 수도 있고, 외부 디바이스로부터 데이터를 획득할 수도 있다.
일부 실시예에 따르면, 제 1 디바이스는 센싱을 통해 다양한 데이터를 획득할 수 있다. 예를 들면, 전극, 광센서, 온도 센서 등을 통해 체온, 혈류량, 맥파와 같은 생체 신호와 관련된 데이터를 획득할 수도 있으며, 제 2 디바이스로부터 의료 영상, 활동 정보 등을 획득할 수도 있다.
단계 303에서, 제 1 디바이스는 제 2 디바이스와의 연결을 수행할 수 있다. 제 1 디바이스와 제 2 디바이스와의 연결 방식은 근거리 통신일 수도 있고, 이동 통신일 수도 있다. 근거리 통신은 블루투스 통신, BLE(Bluetooth Low Energy) 통신, 근거라 자기장 통신(Near Field Communication), WLAN(와이파이) 통신, 지그비(Zigbee) 통신, 적외선(IrDA, infrared Data Association) 통신, WFD(Wi-Fi Direct) 통신, UWB(ultra wideband) 통신부, Ant+ 통신부 등을 포함할 수 있으나, 이에 제한되지 않는다. 또한 이동 통신은 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신하는 방식을 포함할 수 있다. 무선 신호는, 음성 호 신호, 화상 통화 호 신호 또는 문자/멀티미디어 메시지 송수신에 따른 다양한 형태의 데이터를 포함할 수 있다. 제 1 디바이스가 제 2 디바이스와의 연결을 위해 사용하는 통신 방식에 따라 제 1 디바이스가 제 2 디바이스에게 제공하는 데이터의 형태, 데이터를 제공하는 주기가 상이할 수 있다.
단계 305에서, 제 1 디바이스는 데이터의 프로세싱을 수행할 수 있다. 데이터의 프로세싱이라 함은 제 2 디바이스에 데이터를 제공하기 위해 소정의 포맷으로 데이터를 가공하거나, 제 1 디바이스의 어플리케이션에서 사용하기 위해 데이터를 가공하는 것을 포함할 수 있다. 예를 들면, 데이터의 프로세싱이라함은, 데이터의 암호화(Encryption), 복호화(Decryption), 스크램블링(Scrambling), 디스크램블링(Descrambling), 인코딩(Encoding), 디코딩(Decoding), 멀티플렉싱(Multiplexing), 디멀티플렉싱(Demultiplexing), 인터리빙(Interleaving), 디인터리빙(Deinterleaving), 렌더링(Rendering), 패킷화(Packetization) 등을 포함할 수 있으며, 상기 예시에 제한되지 않는다.
단계 307에서, 제 1 디바이스는 데이터를 송신하고, 데이터 분석 정보를 획득할 수 있다. 일부 실시예에 따르면, 제 1 디바이스는 단계 305에서 프로세싱된 데이터를 제 2 디바이스에게 송신할 수 있다. 또한 제 1 디바이스는 제 2 디바이스로부터 데이터 분석 정보를 획득할 수 있다. 데이터 분석 정보는 제 1 디바이스가 송신한 데이터를 분석한 정보로써, 활동량에 따른 칼로리 소모량, 심박수에 따른 정상 여부 판단, ACK 신호와 같은 제어정보 등을 포함할 수 있으며, 상기 예시에 제한되지 않는다.
일부 실시예에 따르면, 제 1 디바이스는 다양한 데이터를 획득할 수 있으며, 제 1 디바이스가 획득하는 데이터의 크기, 제 1 디바이스가 데이터를 획득하는 주기는 다양할 수 있다. 또한 제 1 디바이스는 제 2 디바이스와 연결된 통신의 종류에 따라 상이한 프로토콜을 사용할 수 있으며, 제 1 디바이스는 프로토콜에 따른 다양한 데이터의 포맷으로 획득한 데이터를 프로세싱하고, 프로세싱한 데이터를 연결된 통신 링크를 통해 제 2 디바이스에게 송신할 수 있다.
도 4A는 일부 실시예에 따른 AES 암호화 알고리즘을 설명하기 위한 도면이다.
AES 암호화 알고리즘은 데이터를 암호화하는 알고리즘으로써, 암호화 및 복호화 과정에서 동일한 키를 사용하는 대칭키 암호화 알고리즘이다. AES 암호화 방법은, 한번 이상의 암호화 라운드를 반복함으로써 데이터 암호화를 수행한다. AES 암호화가 수행될 데이터는 매트릭스 형태일 수 있다.
일부 실시예에 따르면, 암호화가 수행될 데이터라 함은 암호화 단위 블록 내의 데이터를 포함할 수 있다.
일부 실시예에 따르면, AES 암호화 시 사용되는 AES 암호화 키는 128비트, 256비트, 1024비트 일 수 있다. 일부 실시예에 따르면, AES 암호화 키는 2의 제곱수 일 수 있다. 추가적으로, AES 암호화 키는 2의 제곱수 크기로 변경될 수 있다. 예를 들어, 제 1 디바이스가 저장하고 있는 AES 암호화 키가 128비트 인 경우, 제 1 디바이스는 암호화 키를 64비트로 변경하고, 변경된 64비트 크기의 암호화 키를 이용하여 암호화를 수행할 수도 있다. 이하에서는 AES 암호화의 각 단계를 설명한다.
도 4A를 참조하면, ADDRoundKey 단계는 AES 암호화키에 기초하여 생성한 라운드 키를 데이터와 연산하는 단계를 포함할 수 있다. 라운드 키는 AES 암호화를 수행하는 각 라운드에서 사용하는 암호화 키에 기초하여 생성된 키를 포함할 수 있다. 또한 라운드키는 암호화에 필요한 라운드에 대응하는 개수만큼 생성될 수 있다. 라운드키는 당업자에게 자명하므로, 자세한 설명은 생략한다.
SubBytes 단계는 암호화된 데이터가 비선형성을 가지도록 S-Box라는 소정의 치환 테이블을 이용하여 데이터를 치환하는 단계를 포함할 수 있다. 예를 들면, SubBytes는 각 바이트가 S-Box를 통해 역변환이 가능한 다른 바이트로 변환되는 단계를 포함할 수 있다. S-Box는 당업자에게 자명한 형태의 치환 테이블로써, 자세한 설명은 생략한다.
ShiftRows 단계는, 매트릭스의 행을 이동시키는 연산을 수행하는 단계를 포함할 수 있다. 예를 들면, ShitRows 단계는 매트릭스의 첫 번째 행은 바꾸지 않고, 2번째 행은 1바이트씩 왼쪽으로 이동 시키고, 3번째 행은 2바이트씩 왼쪽으로 이동 시키고, 4번째 행은 3바이트씩 왼쪽으로 이동 시키는 연산을 수행하는 단계를 포함할 수 있다. 물론 상기 예시에 제한되는 것은 아니다.
Mixcolumns 단계는 열을 혼합하는 연산을 수행하는 단계로서, 소정의 매트리스와의 곱 연산을 통해 열을 혼합하는 연산을 수행하는 단계를 포함할 수 있다.
일부 실시예에 따르면, AES 암호화 알고리즘에서 라운드의 수는 암호화 키의 길이 또는 대응되는 데이터의 길이에 기초하여 결정될 수 있다. 제 1 디바이스는 결정된 라운드 수에 기초하여 데이터의 암호화를 수행할 수 있다. 또한 제 1 디바이스는 마지막 라운드에서는 Mixcolumns 단계의 연산을 수행하지 않을 수도 있다.
도 4B는 일부 실시예에 따른 AES 복호화 알고리즘을 설명하기 위한 도면이다.
AES 복호화 알고리즘이란 AES 암호화 알고리즘을 이용하여 암호화된 데이터를 복호화하는 알고리즘을 포함할 수 있다. 예를 들면, AES 복호화 알고리즘은 도 4A의 AES 암호화 알고리즘을 이용하여 암호화된 데이터를 복호화하는 알고리즘을 포함할 수 있다. 일부 실시예에 따르면, AES 복호화 알고리즘은 AES 암호화 알고리즘의 역순일 수 있다. 이하에서는 AES 복호화 알고리즘에서 수행되는 단계를 설명한다.
도 4B를 참조하면, AddRoundKey는 도 4A에서 설명한 내용과 대응되므로 자세한 설명은 생략한다.
InvShiftRow 단계는, 도 4A에서의 ShitRow 단계에서 수행되는 연산의 역 연산을 수행하는 단계를 포함할 수 있으며, InvShiftRow 단계는 매트릭스의 행을 도 4A의 ShiftRow 단계의 역순으로 이동시키는 단계를 포함할 수 있다.
InvSubBytes 단계는 도 4A의 SubBytes 단계에서 수행되는 연산의 역 연산을 수행하는 단계를 포함할 수 있으며, InvSubBytes 단계는 도 4A에서 치환되었던 바이트를 치환 이전으로 되돌리는 단계를 포함할 수 있다.
InvMixColumns 단계는 도 4A의 MixColumns에서 수행되는 연산의 역연산을 수행하는 단계를 포함할 수 있으며, InvMixColumns 단계는 도 4A의 MixColumns 단계에서 혼합되었던 열을 혼합 이전으로 되돌리는 단계를 포함할 수 있다.
도 5는 데이터 크기에 따른 AES 암호화 방법의 일 예를 설명하기 위한 도면이다.
AES 암호화는 데이터를 한번에 암호화하는 암호화 단위(암호화 단위 블록)의 크기가 소정의 크기 일 때만 데이터를 암호화 할 수 있다. 예를 들어, AES 암호화를 수행하는 디바이스는 암호화 키와 동일하거나, 암호화 키의 배수의 크기를 가진 데이터만을 암호화할 수 있다.
도 5를 참조하면, 암호화하고자 하는 데이터의 크기가 암호화 키의 크기와 대응되지 않거나, 암호화 키의 소정의 배수가 되지 않는 경우에는 디바이스는 암호화 하고자 하는 데이터의 크기를 암호화 키와 대응시키기 위해 데이터에 0을 덧붙이는 Zero padding 등을 수행하거나, 대응되는 크기만을 암호화하고 나머지 부분은 암호화 하지 않는 방식을 이용할 수 있다.
다만 도 5의 방식에 따라 암호화를 수행하는 경우, 암호화하지 않는 부분의 보안이 문제되거나, 데이터의 크기가 변경되어, 소정의 프로토콜에 따라 통신하기 어려울 수 있다.
예를 들어, 253bit를 포함하는 하나의 프레임을 소정의 간격 마다 송수신하는 소정의 프로토콜에 따른 통신을 수행하는 디바이스가 존재하는 경우, AES 암호화를 위해 데이터에 3비트의 0(Zero)를 추가하면, 데이터의 AES 암호화는 가능하지만, 디바이스간 암호화된 데이터를 하나의 프레임 내에 포함시켜 통신할 수 없다. 따라서, 채널 대역폭이 낭비되고, 트래픽 관리가 어려울 수 있다.
도 6은 일부 실시예에 따른 데이터 암호화 방법을 설명하기 위한 순서도이다.
일부 실시예에 따르면, 제 1 디바이스는 데이터의 크기를 변경하지 않고도 다양한 크기의 데이터를 암호화할 수 있다. 데이터의 크기라 함은, 한번에 암호화할 수 있는 데이터의 크기, 암호화 단위 블록의 크기, 한번에 송신하는 데이터의 크기, 하나의 패킷 내에 포함되는 데이터의 크기 등을 포함할 수 있으며, 상기 예시에 제한되지 않는다.
일부 실시예에 따르면, 제 1 디바이스는 데이터의 크기를 변경하지 않고도 데이터를 AES 암호화할 수 있다.
단계 601에서, 제 1 디바이스는 암호화 키의 크기 정보 및 복수의 비트들을 포함하는 암호화가 수행될 데이터의 크기 정보를 획득할 수 있다.
일부 실시예에 따르면, 복수의 비트들을 포함하는 암호화가 수행될 데이터는 암호화 단위 블록일 수 있다. 암호화 단위 블록이라 함은, 암호화가 수행되는 단위를 의미할 수 있으며, 예를 들면, 제 1 디바이스가 256비트씩 또는 1024비트씩 암호화를 수행하는 경우. 256비트 또는 1024비트를 암호화 단위 블록의 크기라 할 수 있다.
일부 실시예에 따르면, 암호화 키의 크기 정보는 2의 제곱수 일 수 있다. 예를 들어, 암호화 키는 64비트, 128비트, 192비트, 256비트, 1024비트, 2048비트 중 적어도 하나의 크기일 수 있다.
일부 실시예에 따르면, 제 1 디바이스는 암호화 키의 크기와 암호화가 수행될 데이터의 크기를 비교할 수 있다. 암호화가 수행될 데이터의 크기가 암호화 키와 대응되는 경우(예를 들면, 암호화가 수행될 데이터의 크기가 암호화 키와 동일하거나, 암호화가 수행될 데이터의 크기가 암호화 키의 배수인 경우), 디바이스가 저장하고 있는 암호화 키를 이용하여 암호화를 수행할 수 있다.
또한, 일부 실시예에 따르면, 암호화 키의 크기가 암호화가 수행될 데이터의 크기보다 큰 경우, 제 1 디바이스는 암호화 키의 크기를 변경할 수 있다. 일부 실시예에 따르면, 제 1 디바이스는 암호화 키의 크기를 2로 나눌 수 있다. 예를 들어, 128비트의 암호화 키를 64비트의 암호화 키로 변경할 수 있다. 또한 암호화 키를 변경한 경우, 제 1 디바이스는 변경된 암호화 키를 이용하여, 이하의 각 단계를 수행할 수 있다.
단계 603에서, 제 1 디바이스는 암호화 키를 이용하여, 복수의 비트들 중 암호화 키의 크기와 대응되는 일부의 비트들인 제 1 비트 그룹을 암호화할 수 있다.
일부 실시예에 따르면, 제 2 비트 그룹은 암호화가 수행 될 데이터 중 제 1 비트 그룹과 상이한 비트를 포함하는 비트 그룹을 포함할 수 있다. 예를 들면, 암호화가 수행될 데이터의 크기가 253비트이고, 암호화 키가 128비트 인 경우, 제 1 비트 그룹은 128비트이고, 제 2 비트 그룹은 제 1 비트 그룹과 상이한 비트로, 나머지 비트를 포함하는 125비트를 포함하는 그룹일 수 있다.
일부 실시예에 따르면, 제 1 디바이스는 복수의 비트들 중 암호화 키의 크기를 넘거나, 암호화 키의 크기의 배수로 나누고 남은 나머지 비트들을 제외한 비트들을 우선적으로 암호화할 수 있다. 예를 들어, 암호화 단위 블록의 크기가 253비트이고, 암호화 키가 128비트인 경우, 제 1 디바이스는 253비트 중 125비트를 제외한 128비트를 암호화할 수 있다.
일부 실시예에 따르면, 제 1 디바이스는 암호화된 제 1 비트 그룹을 저장할 수 있다. 제 1 디바이스는 암호화된 제 1 비트 그룹을 버퍼와 같은 소정의 저장부에 저장할 수 있고, 제 1 비트 그룹 중 일부 비트를 복사하거나 삭제할 수 있다. 또한 제 1 디바이스는 암호화되지 않은 비트 그룹인 제 2 비트 그룹을 제 1 비트 그룹과 별도로 저장할 수도 있다.
단계 605에서, 제 1 디바이스는 암호화 키의 크기 정보 및 복수의 비트들 중 제 1 비트 그룹과 상이한 비트들을 포함하는 제 2 비트 그룹의 크기에 기초하여, 암호화된 제 1 비트 그룹 중 일부의 비트들인 제 3 비트 그룹을 선택할 수 있다.
일부 실시예에 따르면, 제 3 비트 그룹은 제 1 비트 그룹에 포함되는 복수의 비트 들 중 적어도 하나의 비트일 수 있다. 또한 제 3 비트 그룹은 적어도 하나의 암호화된 비트들을 포함하는 그룹일 수 있다.
일부 실시예에 따르면 제 3 비트 그룹의 크기는 암호화 키의 크기와 제 2 트 그룹의 크기의 차이와 동일한 크기일 수 있다.
일부 실시예에 따르면, 제 1 디바이스는 단계 603에서 복수의 비트들을 포함하는 암호화가 수행될 데이터 중 암호화하지 않은 비트들의 개수와 암호화 키의 크기의 차이에 기초하여 단계 603에서 암호화된 비트들 중 일부의 비트들을 선택할 수 있다.
예를 들어, 단계 603에서 암호화되지 않은 비트가 125비트이고, 암호화 키의 크기가 128비트인 경우, 암호화 키의 크기와 암호화되지 않은 비트 그룹의 크기의 차이가 3비트 만큼이므로, 제 1 디바이스는 단계 603에서 암호화된 비트들 중 3비트를 중 3비트를 선택할 수 있다.
일부 실시예에 따르면, 제 1 디바이스는 암호화된 비트들 중 일부를 선택한 비트들에 대한 정인 암호화 그룹 정보를 저장할 수 있다. 암호화 그룹 정보라 함은 암호화된 비트들 중 선택한 비트들이 몇 개의 비트들인지에 대한 정보 및 암호화된 비트들 중 어디에 위치해있는 비트들인지에 대한 정보 중 적어도 하나를 포함할 수 있다. 예를 들면, 도 6에서의 제 3 비트 그룹의 크기, 제 3 비트 그룹이 포함하는 비트들이 제 1 비트 그룹의 어디에 위치해 있는 비트들인지에 대한 정보를 포함할 수 있다. 물론 상기 예시에 제한되는 것은 아니며, 복호화에 필요한 모든 정보를 포함할 수 있다.
일부 실시예에 따르면, 제 1 디바이스는 제 1 비트 그룹으로부터 상기 선택된 제 3 비트 그룹을 제 1 비트 그룹으로부터 삭제하고, 제 2 비트 그룹에 제 3 비트 그룹을 병합할 수 있다. 일부 실시예에 따르면, 제 1 디바이스는 제 1 비트 그룹이 저장된 버퍼로부터 제 3 비트 그룹을 삭제하고, 제 2 비트 그룹이 저장된 버퍼에 제 3 비트 그룹을 복사할 수 있다.
단계 605에서, 제 1 디바이스는 암호화 키를 이용하여 제 2 비트 그룹 및 선택된 제 3 비트 그룹을 암호화할 수 있다.
일부 실시예에 따르면, 제 1 디바이스는 단계 605에서 선택한 제 3 비트 그룹과 제 2 비트 그룹을 한번에 암호화 할 수 있다. 일부 실시예에 따르면, 제 1 디바이스는 제 2 비트 그룹과 제 3 비트 그룹이 병합된 그룹을 암호화할 수 있다.
예를 들면, 단계 603에서 암호화되지 않은 제 2 비트 그룹의 크기가 125비트이고, 단계 605에서 선택한 제 3 비트 그룹의 크기가 3비트 인 경우, 제 2 비트 그룹과 제 3 비트 그룹을 병합한 그룹의 크기는 128 비트이며, 암호화 키의 크기인 128비트와 대응되므로, 제 1 디바이스는 제 2 비트 그룹과 선택된 제 3 비트 그룹을 AES 알고리즘을 이용하여 암호화 할 수 있다.
일부 실시예에 따르면, 제 1 디바이스는 복수의 비트들을 포함하는 암호화가 수행될 데이터를 스크램블링 한 후, 암호화를 수행할 수도있다.
일부 실시예에 따르면, 제 1 디바이스는 암호화된 제 1 비트 그룹에서 제 3 비트 그룹을 제외한 비트 그룹인 제 1 암호화 그룹 및 제 2 비트 그룹 및 제 3 비트 그룹이 병합된 그룹이 암호화된 제 2 암호화 그룹을 한번에 송신할 수 있다.
일부 실시예에 따르면, 제 1 디바이스는 제 1 암호화 그룹 및 제 2 암호화 그룹이 병합된 그룹을 소정의 기간마다 한번에 송신할 수도 있다. 즉, 제 1 디바이스는 AES 암호화 알고리즘을 이용하여 암호화를 수행하면서도, 소정의 프로토콜을 이용하는 통신 방식을 사용할 수 있다.
일부 실시예에 따르면, 단계 601 내지 단계 607의 암호화는 AES 암호화를 포함할 수 있다.
도 7은 일부 실시예에 따른, 데이터 암호화 방법을 설명하기 위한 세부 도면이다.
도 7을 참조하면, 암호화 키(701)의 크는 128비트이고, 복수의 비트들을 포함하는 암호화가 수행될 데이터(703)의 크기는 253비트일 때의 암호화 방법을 도시하고 있다.
제 1 암호화 단계(771)에서, 제 1 디바이스는 암호화가 수행될 데이터(703) 중 암호화 키(701)의 크기와 대응되는 128비트인 제 1 비트 그룹(705)을 암호화 할 수 있다. 제 1 암호화 단계(771)에서, 제 1 디바이스는 나머지 125비트인 제 2 비트 그룹(707)을 아직 암호화하지 않았다.
일부 비트 선택 단계(773)에서, 제 1 디바이스는 제 1 비트 그룹 중 일부 비트를 선택할 수 있다. 도 7을 참조하면, 제 1 디바이스는 제 2 비트 그룹(707)과 암호화 키(701)의 크기의 차이에 기초하여 제 1 비트 그룹(705) 중 일부의 비트인 3비트를 선택할 수 있다. 일부 비트 선택 단계(773)에서 제 1 디바이스가 선택한 비트 그룹을 제 3 비트 그룹(709)이라 한다.
비트 그룹 병합 단계(777)에서, 제 1 디바이스는 제 2 비트 그룹(707)과 제 3 비트 그룹(709)을 병합할 수 있다. 즉, 제 1 디바이스는 제 2 비트 그룹(707)에 제 3 비트 그룹(709)을 덧붙일 수 있다. 도 7을 참조하면, 제 1 비트 그룹(705)에서, 제 3 비트 그룹(709)를 제외한 나머지 비트들의 그룹은 제 1 암호화 그룹(711)이며, 제 2 비트 그룹(707)과 제 3 비트 그룹(709)를 병합한 그룹은 제 2 암호화 그룹(713)이다.
제 2 암호화 단계(779)에서, 제 1 디바이스는 제 2 암호화 그룹(713)을 암호화할 수 있다.
도 7을 참조하면, 제 1 암호화 그룹(711) 및 제 2 암호화 그룹(713)을 포함하는 암호화 데이터(715)의 크기는 253비트로써, 암호화 되기 이전의 데이터(703)의 크기와 같다. 또한 암호화되지 않은 부분 또한 존재하지 않는다. 제 1 디바이스는 암호화 데이터(715)를 제 2 디바이스로 송신할 수 있다.
추가적으로, 일부 실시예에 따르면, 제 1 디바이스는 제 3 비트 그룹(709)에 대한 정보인 암호화 그룹 정보를 제 2 디바이스로 송신할 수도 있다. 암호화 그룹 정보는 도 6에서 설명한 바와 대응되므로, 자세한 설명은 생략한다.
도 8 내지 도 12는 일부 실시예에 따른 다양한 크기의 데이터의 암호화 방법을 설명하기 위한 도면이다.
도 8은 암호화 키(801)의 크기가 128비트이고, 암호화가 수행될 데이터(803)의 크기가 253비트 일 때의 암호화 방법을 도시한다.
일부 실시예에 따르면, 제 1 디바이스는 데이터(803) 중 128 개의 비트를 포함하는 제 1 비트 그룹(805)를 암호화 할 수 있다, 또한 제 1 디바이스는, 제 1 비트 그룹 중 일부의 비트인 제 3 비트 그룹(809)를 선택할 수 있다. 제 3 비트 그룹(809)의 크기는 3비트로써, 제 2 비트 그룹(807)의 크기와 암호화 키(801)의 크기의 차와 같다.
일부 실시예에 따르면, 제 1 디바이스는 도 7에서 설명한 바와 같이, 제 2 비트 그룹(807)과 제 3 비트 그룹(809)를 한번에 암호화할 수 있다. 앞서 설명한 바와 같이 제 1 디바이스는 AES 암호화 방식을 사용할 수 있다.
일부 실시예에 따르면, 제 1 디바이스는 제 1 비트 그룹(805)에서, 제 3 비트 그룹(809)를 제외한 나머지 비트들의 그룹인 제 1 암호화 그룹(811)과 제 2 비트 그룹(807)과 제 3 비트 그룹(809)를 병합한 그룹인 제 2 암호화 그룹(813)을 병합한 데이터 그룹을 제 2 디바이스에게 송신할 수 있다.
도 9는 암호화 키(901)의 크기가 256비트이고, 암호화가 수행될 데이터(903)의 크기가 477비트 일 때의 암호화 방법을 도시한다.
일부 실시예에 따르면, 제 1 디바이스는 데이터(903) 중 256 개의 비트를 포함하는 제 1 비트 그룹(905)를 암호화 할 수 있다. 또한, 제 1 디바이스는 제 1 비트 그룹 중 일부의 비트인 제 3 비트 그룹(909)를 선택할 수 있다. 제 3 비트 그룹(909)의 크기는 35비트로써, 제 2 비트 그룹(907)의 크기와 암호화 키(901)의 크기의 차와 같다.
일부 실시예에 따르면, 제 1 디바이스는 제 2 비트 그룹(907)과 제 3 비트 그룹(909)를 한번에 암호화할 수 있다.
일부 실시예에 따르면, 제 1 디바이스는 제 1 비트 그룹(905)에서, 제 3 비트 그룹(909)를 제외한 나머지 비트들의 그룹인 제 1 암호화 그룹(911)과 제 2 비트 그룹(907)과 제 3 비트 그룹(909)를 병합한 그룹인 제 2 암호화 그룹(913)을 한번에 제 2 디바이스에게 송신할 수 있다. 제 1 암호화 그룹(911)과 제 2 암호화 그룹(913)은 포함하는 암호화 데이터의 크기는 477비트로써, 암호화 되기 이전의 데이터(903)의 크기와 같다.
도 10은 암호화 키(1001)의 크기가 1024비트이고, 암호화가 수행될 데이터(1003)의 크기가 1200비트 일 때의 암호화 방법을 도시한다.
일부 실시예에 따르면, 제 1 디바이스는 데이터(1003) 중 1024 개의 비트를 포함하는 제 1 비트 그룹(1005)를 암호화 할 수 있다. 또한, 제 1 디바이스는 제 1 비트 그룹 중 일부의 비트인 제 3 비트 그룹(1009)를 선택할 수 있다. 제 3 비트 그룹(1009)의 크기는 848비트로써, 제 2 비트 그룹(1007)의 크기와 암호화 키(1001)의 크기의 차와 같다.
일부 실시예에 따르면, 제 1 디바이스는 제 2 비트 그룹(1007)과 제 3 비트 그룹(1009)를 한번에 암호화할 수 있다.
일부 실시예에 따르면, 제 1 디바이스는 제 1 비트 그룹(1005)에서, 제 3 비트 그룹(1009)를 제외한 나머지 비트들의 그룹인 제 1 암호화 그룹(1011)과 제 2 비트 그룹(1007)과 제 3 비트 그룹(1009)를 병합한 그룹인 제 2 암호화 그룹(1013)을 한번에 제 2 디바이스에게 송신할 수 있다. 제 1 암호화 그룹(1011)과 제 2 암호화 그룹(1013)은 포함하는 암호화 데이터의 크기는 1200비트로써, 암호화 되기 이전의 데이터(1003)의 크기와 같다.
도 11은 암호화 키(1101)의 크기가 2048비트이고, 암호화가 수행될 데이터(1103)의 크기가 2500비트 일 때의 암호화 방법을 도시한다.
일부 실시예에 따르면, 제 1 디바이스는 데이터(1103) 중 2048 개의 비트를 포함하는 제 1 비트 그룹(1105)를 암호화 할 수 있다. 또한, 제 1 디바이스는 제 1 비트 그룹 중 일부의 비트인 제 3 비트 그룹(1109)를 선택할 수 있다. 제 3 비트 그룹(909)의 크기는 1596비트로써, 제 2 비트 그룹(1107)의 크기와 암호화 키(1101)의 크기의 차와 같다.
일부 실시예에 따르면, 제 1 디바이스는 제 2 비트 그룹(1107)과 제 3 비트 그룹(1109)를 한번에 암호화할 수 있다. 앞서 설명한 바와 같이 제 1 디바이스는 AES 암호화 방식을 사용할 수 있다.
일부 실시예에 따르면, 제 1 디바이스는 제 1 비트 그룹(1105)에서, 제 3 비트 그룹(1109)를 제외한 나머지 비트들의 그룹인 제 1 암호화 그룹(1111)과 제 2 비트 그룹(1107)과 제 3 비트 그룹(1109)를 병합한 그룹인 제 2 암호화 그룹(1113)을 한번에 제 2 디바이스에게 송신할 수 있다. 제 1 암호화 그룹(1111)과 제 2 암호화 그룹(1113)은 포함하는 암호화 데이터의 크기는 2500비트로써, 암호화 되기 이전의 데이터(1103)의 크기와 같다.
도 12는 암호화 키(1201)의 크기가 128비트이고, 암호화가 수행될 데이터(1203)의 크기가 73비트 일 때의 암호화 방법을 도시한다.
암호화 키의 크기가 암호화가 수행될 데이터의 크기보다 큰 경우, 제 1 디바이스는 암호화 키의 크기를 변경할 수 있다. 예를 들면, 제 1 디바이스는 암호화 키를 2의 제곱으로 나눌 수 있다. 또한 일부 실시예에 따르면, 제 1 디바이스는 암호화 키의 크기를 변경할 때, 암호화 키의 일부만을 사용할 수도 있다.
도 7을 참조하면, 제 1 디바이스는 암호화 키의 크기를 절반으로 축소시켜, 변경된 암호화 키를 사용하여 암호화하는 방법을 도시한다. 변경된 암호화 키(1222)의 크기는 64비트일 수 있다.
일부 실시예에 따르면, 제 1 디바이스는 데이터(1203) 중 64 개의 비트를 포함하는 제 1 비트 그룹(1205)를 암호화 할 수 있다. 또한, 제 1 디바이스는 제 1 비트 그룹 중 일부의 비트인 제 3 비트 그룹(1209)를 선택할 수 있다. 제 3 비트 그룹(909)의 크기는 55비트로써, 제 2 비트 그룹(1207)의 크기와 변경된 암호화 키(1222)의 크기의 차와 같다.
일부 실시예에 따르면, 제 1 디바이스는 제 2 비트 그룹(1207)과 제 3 비트 그룹(1209)를 한번에 암호화할 수 있다.
일부 실시예에 따르면, 제 1 디바이스는 제 1 비트 그룹(1205)에서, 제 3 비트 그룹(1209)를 제외한 나머지 비트들의 그룹인 제 1 암호화 그룹(1211)과 제 2 비트 그룹(1207)과 제 3 비트 그룹(1209)를 병합한 그룹인 제 2 암호화 그룹(1213)을 한번에 제 2 디바이스에게 송신할 수 있다. 제 1 암호화 그룹(1211)과 제 2 암호화 그룹(1213)은 포함하는 암호화 데이터의 크기는 73비트로써, 암호화 되기 이전의 데이터(1203)의 크기와 같다.
도 13은 일부 실시예에 따른 데이터 스크램블링 및 암호화 방법을 설명하기 위한 순서도이다.
단계 1301에서, 제 1 디바이스는 복수의 비트들을 포함하는 암호화가 수행될 데이터를 스크램블링 할 수 있다.
일부 실시예에 따르면, 데이터의 스크램블링이라함은, 데이터를 전송에 적합하게 인코딩 하는 방법을 포함할 수 있다. 일부 실시예에 따르면, 암호화된 데이터는 제 2 디바이스로 전송 될 것이므로, 제 1 디바이스는 암호화 이전에 스크램블링을 수행함으로써, 전송에 적합하게 인코딩할 수 있다. 물론, 구현 예에 따라, 암호화 후 스크램블링을 수행할 수도 있다.
일부 실시예에 따르면, 제 1 디바이스는 암호화 이전 또는 암호화 이후 스크램블링 뿐만 아니라, 앞서 설명한 바와 같이 인터리빙, 멀티플렉싱 등 추가적인 데이터 프로세싱을 더 수행할 수도 있으며, 상기 예시에 제한되는 것은 아니다.
단계 1303 내지 단계 1309는 도 6에서 설명한 바와 대응되므로, 자세한 설명은 생략한다.
도 14는 일부 실시예에 따른 데이터 스크램블링 및 암호화 방법을 설명하기 위한 도면이다.
도 14를 참조하면, 제 1 디바이스는 데이터(1401)을 스크램블링 할 수 있다. 제 1 디바이스는 스크램블링된 데이터(1403)을 암호화 키를 통해 암호화 할 수 있다. 제 1 디바이스는 스크램블링된 데이터(1403)을 암호화 할 수 있다.
일부 실시예에 따르면, 제 1 디바이스는 스크램블링된 데이터(1403)을 암호화 하고, 암호화된 데이터(1407)를 제 2 디바이스로 송신할 수 있다. 또한 일부 실시예에 따르면, 제 1 디바이스는 암호화 단계를 수행한 이후에 암호화된 데이터를 스크램블링할 수도 있다. 이는 도 13에서 설명한 바와 대응되므로 자세한 설명은 생략한다.
도 15는 일부 실시예에 따른 데이터 복호화 방법을 설명하기 위한 순서도이다.
단계 1501에서, 제 2 디바이스는 제 1 암호화 그룹 및 제 2 암호화 그룹을 포함하는 암호화된 데이터 및 암호화 그룹 정보를 제 1 디바이스로부터 수신할 수 있다.
일부 실시예에 따르면, 제 2 디바이스는 제 1 디바이스로부터 암호화된 데이터 및 암호화 그룹 정보를 함께 또는 별도로 수신할 수 있다.
일부 실시예에 따르면, 암호화 그룹 정보는 제 1 암호화 그룹을 복호화 하기 위한 필요한 제 2 암호화 그룹 내의 적어도 하나의 비트들의 정보를 포함할 수 있다. 일부 실시예에 따르면 암호화 그룹 정보는 도 6에서 설명한 암호화 그룹 정보와 동일할 수 있다.
일부 실시예에 따르면, 제 2 암호화 그룹 내의 적어도 하나의 비트들은 도 6에서 설명한 제 3 비트 그룹과 동일할 수 있다. 도 6에서 설명한 바와 같이, 제 2 암호화 그룹은 제 2 비트 그룹 및 제 3 비트 그룹이 병합된 그룹이며, 제 3 비트 그룹은 제 1 비트 그룹의 일부이다. 따라서, 제 2 디바이스가 제 1 비트 그룹 또는 제 1 암호화 그룹을 정확하게 복호화 하기 위해서는 제 1 암호화 그룹과 제 3 비트 그룹을 함께 복호화 해야 하므로, 제 2 디바이스는 제 1 디바이스에서 선택한 제 3 비트 그룹에 대한 정보인 암호화 그룹 정보를 제 1 디바이스로부터 수신할 수 있다.
단계 1503에서, 제 2 디바이스는 복호화 키를 이용하여 수신된 제 2 암호화 그룹을 복호화 할 수 있다.
일부 실시예에 따르면, 제 2 디바이스가 적어도 하나의 복호화 키를 저장하고 있는 경우, 제 2 디바이스는 수신된 제 2 암호화 그룹과 대응되는 복호화 키를 선택하고, 선택한 복호화 키를 이용하여 제 2 암호화 그룹을 복호화할 수 있다.
예를 들어, 제 2 디바이스가 128비트 크기의 복호화 키, 256비트 크기의 복호화 키 및 1024비트 크기의 복호화 키를 저장하고 있는 경우, 제 2 디바이스는 제 2 암호화 그룹의 크기와 대응되는 크기의 복호화 키를 선택하고, 선택한 복호화 키를 이용하여 제 2 암호화 그룹을 복호화할 수 있다.
일부 실시예에 따르면, 제 2 디바이스는 복호화된 제 2 암호화 그룹을 저장할 수 있다.
단계 1505에서, 제 2 디바이스는 수신된 암호화 그룹 정보에 기초하여 제 2 암호화 그룹 중 일부의 비트를 선택할 수 있다.
일부 실시예에 따르면, 제 2 디바이스가 암호화 그룹 정보에 기초하여 선택한 제 2 암호화 그룹 중 일부의 비트는 도 6 내지 도 13에서 설명한 제 3 비트 그룹일 수 있다. 다시 말해서, 제 2 디바이스가 암호화 그룹 정보에 기초하여 선택한 적어도 하나의 비트들은 제 1 비트 그룹의 암호화 후, 제 2 비트 그룹과 함께 재암호화된 적어도 하나의 비트들을 포함할 수 있다.
일부 실시예에 따르면, 제 2 디바이스는 제 2 암호화 그룹을 저장하고, 수신된 암호화 그룹 정보에 기초하여 저장된 제 2 암호화 그룹 중 상기 저장된 제 2 암호화 그룹을 일부의 비트를 선택할 수 있다.
단계 1507에서, 제 2 디바이스는 선택된 제 2 암호화 그룹의 일부 비트 및 수신된 제 1 암호화 그룹을 병합할 수 있다.
일부 실시예에 따르면, 제 2 디바이스는 저장된 제 2 암호화 그룹 중 선택한 비트를 제 2 암호화 그룹으로부터 삭제하고, 제 1 암호화 그룹에 병합할 수 있다. 즉, 제 2 디바이스는 단계 1505에서 선택한 비트를 제 1 암호화 그룹에 덧붙일 수 있다.
단계 1509에서, 제 2 디바이스는 단계 1507에서 병합한 그룹을 복호화 할 수 있다.
일부 실시예에 따르면, 단계 1507에서 제 2 디바이스가 병합한 그룹은 제 2 디바이스의 복호화 키와 대응되므로, AES 복호화 알고리즘을 이용한 복호화를 수행할 수 있다.
일부 실시예에 따르면, 단계 1501 내지 단계 1509의 복호화 단계는 AES 복호화 알고리즘에 따라 수행될 수 있다.
도 16은 일부 실시예에 따른 데이터 복호화 방법을 설명하기 위한 세부 도면이다.
도 15에서 설명한 바와 같이 제 2 디바이스는 제 1 디바이스로부터 암호화된 데이터(1601)을 수신할 수 있다. 도 16을 참조하면 암호화된 데이터(1601)의 크기는 253비트 일 수 있으며, AES 암호화 알고리즘을 이용하여 암호화된 데이터일 수 있다.
추가적으로, 일부 실시예에 따르면 제 2 디바이스는 제 1 디바이스로부터 암호화 그룹 정보를 수신할 수 있다. 암호화 그룹 정보는 앞서 설명한 내용과 대응되므로, 자세한 설명은 생략한다.
일부 실시예에 따르면, 제 2 디바이스는 복호화 키(1603)를 선택할 수 있다. 도 16을 참조하면 제 2 디바이스가 선택한 복호화 키(1603)의 크기는 128비트일 수 있다.
일부 실시예에 따르면, 암호화된 데이터(1603)는 제 1 암호화 그룹(1605) 및 제 2 암호화 그룹(1607)을 포함할 수 있다. 도 16에서 제 1 암호화 그룹(1605)의 크기는 125비트이며, 도 16의 제 1 암호화 그룹(1605)은 도 7의 제 1 암호화 그룹(711)과 대응될 수 있다. 즉, 도 16의 제 1 암호화 그룹(1605)는 도 6 내지 도 8에서 설명한 제 1 비트 그룹에서 제 3 비트 그룹을 제외한 암호화된 비트 그룹을 포함할 수 있다.
제 2 암호화 그룹(1607)는 도 7의 제 2 암호화 그룹(713)과 대응될 수 있다. 도 16의 제 2 암호화 그룹(1607)은 도 6 내지 도 7에서 설명한 제 2 비트 그룹에 제 3 비트 그룹이 병합된 암호화된 비트 그룹을 포함할 수 있다.
일부 실시예에 따르면, 제 2 암호화 그룹의 크기는 제 2 디바이스의 복호화 키와 동일하므로, 제 2 디바이스는 제 2 암호화 그룹을 AES 복호화할 수 있다. 제 2 암호화 그룹의 복호화를 제 1 복호화 단계라 할 수 있다.
일부 실시예에 따르면, 제 2 디바이스는 복호화된 제 2 암호화 그룹(1607) 중 일부 비트를 선택할 수 있다. 일부 실시예에 따르면, 제 2 디바이스는 제 1 디바이스로부터 수신된 암호화 그룹 정보에 기초하여 제 2 암호화 그룹(1607) 이부 비트를 선택할 수 있다. 도 16을 참조하면, 선택된 비트(1609)의 크기는 3비트이다.
제 2 디바이스는 선택된 비트(1609)와 제 1 암호화 그룹(1605)을 병합할 수 있다. 병합된 비트 그룹의 크기는 128비트이며, 제 2 디바이스의 복호화 키(1603)의 크기와 동일하므로, 제 2 디바이스는 복호화 키를 이용하여 병합된 비트 그룹을 복호화 할 수 있다. 병합된 비트 그룹의 복호화를 제 2 복호화 단계라 할 수 있다.
일부 실시예에 따르면, 제 1 복호화 단계 및 제 2 복호화 단계를 통해, 제 2 디바이스는 AES 암호화된 데이터를 AES 복호화 할 수 있다. 복호화된 데이터(1611) 또한 253비트로써, 암호화된 데이터(1601)의 크기와 동일할 수 있다.
도 17은 일부 실시예에 따른 데이터 디스크래블링 및 복호화 방법을 설명하기 위한 순서도이다.
단계 1701에서, 제 2 디바이스는 제 1 디바이스로부터 제 1 암호화 그룹 및 제 2 암호화 그룹을 포함하는 스크램블링된 데이터를 수신할 수 있다.
일부 실시예에 따르면, 스크램블링된 데이터는 암호화 이전 또는 암호화 이후 스크램블링된 데이터를 포함할 수 있다.
단계 1703에서, 제 2 디바이스는 단계 1701에서 수신된 데이터를 디스크램블링할 수 있다. 디스크램블링이라 함은 스크램블링된 데이터를 스크램블링되기 이전의 상태로 되돌리는 동작을 의미할 수 있으며, 상기 예시에 제한되지 않는다.
일부 실시예에 따르면, 제 2 디바이스는 앞서 설명한 바와 같이 디코딩, 디멀티플렉싱 등 수신된 데이터를 사용하기 위한 필요한 추가적인 프로세스를 복호화 이전 또는 이후에 수행할 수도 있다.
단계 1705 내지 단계 1707은 도 15에서 설명한 바와 대응되므로 자세한 설명을 생략한다.
도 18 내지 도 19는 일부 실시예에 따른 암호화를 수행하는 제 1 디바이스를 설명하기 위한 블록도이다.
도 18 내지 도 19 에 도시된 구성 요소가 모두 제 1 디바이스(101)의 필수 구성 요소인 것은 아니다. 도 18 내지 도 19에 도시된 구성 요소보다 많은 구성 요소에 의해 제 1 디바이스(101)가 구현될 수도 있고, 도 18 내지 도 19에 도시된 구성 요소보다 적은 구성 요소에 의해 제 1 디바이스(101)가 구현될 수도 있다. 일부 실시예에 따르면, 제 1 디바이스(101)는 암호화를 수행하는 디바이스일 수 있다.
도 18을 참조하면, 제 1 디바이스(101)는 데이터 정보 획득부(1801), 암호화부(1803) 및 제어부(1805)를 포함할 수 있다.
일부 실시예에 따르면, 데이터 정보 획득부(1801)는 암호화 키의 크기 정보 및 복수의 비트들을 포함하는 암호화가 수행될 데이터의 크기 정보를 획득할 수 있다.
일부 실시예에 따르면, 제 1 디바이스(101)에 복수개의 암호화 키가 저장되어 있는 경우, 복수 개의 암호화 키의 크기 정보를 각각 획득할 수 있다.
일부 실시예에 따르면, 암호화부(1803)는, 암호화 키를 이용하여, 암호화가 수행될 데이터가 포함하는 복수의 비트들 중 암호화 키의 크기와 대응되는 일부의 비트들인 제 1 비트 그룹을 암호화할 수 있다. 또한 암호화부(1803)는 암호화 키의 크기 정보 및 암호화가 수행될 데이터가 포함하는 복수의 비트들 중 제 1 비트 그룹과 상이한 비트들을 포함하는 제 2 비트 그룹의 크기에 기초하여, 암호화된 제 1 비트 그룹 중 일부의 비트들인 제 3 비트 그룹을 선택할 수 있다. 또한 암호화부(1803)는 암호화 키를 이용하여 상기 제 2 비트 그룹 및 상기 선택된 제 3 비트 그룹을 암호화할 수 있다.
일부 실시예에 따르면, 암호화부(1803)는 제 1 비트 그룹으로부터 선택된 제 3 비트 그룹을 삭제하고, 제 2 비트 그룹에 제 3 비트 그룹을 덧붙이고, 제 3 비트 그룹을 덧붙인 제 2 비트 그룹을 암호화할 수 있다.
일부 실시예에 따르면, 제 3 비트 그룹의 크기는 암호화 키의 크기와 제 2 비트 그룹의 크기의 차이와 동일할 수 있다.
일부 실시예에 따르면, 암호화부(1803)는 암호화가 수행될 데이터의 크기가 암호화 키의 크기의 배수인지 판단할 수 있다.
일부 실시예에 따르면 암호화부(1801)가 제어부(1805) 내에 포함될 수 있다. 즉, 암호화부(1801)와 제어부(1805)의 구별 없이, 제어부(1805)가 암호화부(1801)의 동작을 수행할 수도 있다.
일부 실시예에 따르면, 제어부(1805)는, 제 1 디바이스(101)가 포함하는 모든 구성요소들을 제어할 수 있으며, 중앙 제어 장치와 같은 연산 유닛을 포함할 수 있으며, 제어부는 다른 구성요소 내에 포함될 수도 있다. 다만, 상기 예시에 제한되지 않는다.
도 19를 참조하면, 암호화부(1803)는 암호화키 결정부(1811)을 더 포함할 수 있으며, 암호화키 결정부(1811)는 암호화 키의 크기가 암호화가 수행될 데이터의 크기보다 큰 경우, 암호화 키를 소정의 크기로 변경할 수 있다.
도 19를 참조하면, 제 1 디바이스는 통신부(1807) 및 저장부(1809)를 더 포함할 수 있다.
일부 실시예에 따르면, 통신부(1807)는 암호화된 제 1 비트 그룹에서 제 3 비트 그룹을 제외한 제 1 암호화 그룹 및 상기 제 2 비트 그룹 및 제 3 비트 그룹이 암호화된 제 2 암호화 그룹을 한번에 송신할 수 있다.
일부 실시예에 따르면, 통신부(1807)는 선택한 제 3 비트 그룹에 대한 정보를 포함하는 암호화 그룹 정보를 송신할 수 있다.
일부 실시예에 따르면, 통신부(1807)는 소정의 기간마다 제 1 암호화 그룹 및 제 2 암호화 그룹이 병합된 그룹을 한번에 송신할 수 있다. 예를 들어, 통신부(1807)는 제 2 디바이스와 연결된 통신 방식 또는 제 2 디바이스와의 통신에 사용되는 프로토콜에 기초하여, 소정의 기간마다 제 1 암호화 그룹 및 제 2 암호화 그룹이 병합된 암호화된 데이터를 송신할 수 있다.
일부 실시예에 따르면, 암호화부(1803)는 암호화된 데이터의 크기를 변경하지 않고 다양한 크기의 데이터를 AES 암호화 알고리즘을 이용하여 암호화 할 수 있으므로, 통신부(1807) 또한 소정의 프로토콜에 따른 통신 방식을 준수할 수 있다.
추가적으로, 제 1 디바이스(101)는 스크램블링부(미도시)를 더 포함할 수 있으며, 스크램블링부는 복수의 비트들을 포함하는 암호화가 수행될 데이터를 스크램블링할 수 있다.
일부 실시예에 따르면, 저장부(1809)는 제 1 비트 그룹 및 제 2 비트 그룹을 각각 저장할 수 있다. 일부 실시예에 따르면 암호화부(1803)는 저장부(1809)에 저장된 제 1 비트 그룹의 일부의 비트들인 제 3 비트 그룹을 선택하고, 선택한 제 3 비트 그룹을 저장된 제 1 비트 그룹으로부터 삭제하고, 선택된 제 3 비트 그룹을 제 2 비트 그룹과 함께 병합하여 저장할 수도 있다.
도 20 내지 도 21은 일부 실시예에 따른 암호화를 수행하는 제 2 디바이스를 설명하기 위한 블록도이다.
도 20 내지 도 21 에 도시된 구성 요소가 모두 제 2 디바이스(103)의 필수 구성 요소인 것은 아니다. 도 20 내지 도 21에 도시된 구성 요소보다 많은 구성 요소에 의해 제 2 디바이스(103)가 구현될 수도 있고, 도 20 내지 도 21에 도시된 구성 요소보다 적은 구성 요소에 의해 제 2 디바이스(103)가 구현될 수도 있다. 일부 실시예에 따르면, 제 2 디바이스(103)는 복호화를 수행하는 디바이스일 수 있다.
도 20을 참조하면, 제 2 디바이스(103)는 복호화부(2001), 통신부(2003) 및 제어부(2005)를 포함할 수 있다.
일부 실시예에 따르면, 복호화부(2001)는 복호화 키를 이용하여, 수신된 제 2 암호화 그룹을 복호화할 수 있다. 또한 복호화부(2001)는 수신된 암호화 그룹 정보에 기초하여 제 2 암호화 그룹 중 일부의 비트를 선택할 수 있다. 또한 복호화부(200)는 선택된 제 2 암호화 그룹의 일부 및 상기 수신된 제 1 암호화 그룹을 병합하며, 상기 병합된 그룹을 복호화할 수 있다.
일부 실시예에 따르면, 암호화 그룹 정보는 제 1 암호화 그룹을 복호화 하기 위한 필요한 제 2 암호화 그룹 내의 적어도 하나의 비트들의 정보를 포함할 수 있다.
일부 실시예에 따르면 복호화부(2001)가 제어부(2005) 내에 포함될 수 있다. 즉, 복호화부(2001)와 제어부(2005)의 구별 없이, 제어부(2005)가 복호화부(2001)의 동작을 수행할 수도 있다.
일부 실시예에 따르면, 통신부(2003)는 제 1 암호화 그룹 및 제 2 암호화 그룹을 포함하는 암호화된 데이터 및 암호화 그룹 정보를 수신할 수 있다.
일부 실시예에 따르면, 제어부(2005)는, 제 2 디바이스(103)가 포함하는 모든 구성요소들을 제어할 수 있으며, 중앙 제어 장치와 같은 연산 유닛을 포함할 수 있으며, 제어부는 다른 구성요소 내에 포함될 수도 있다. 다만, 상기 예시에 제한되지 않는다.
도 20을 참조하면, 복호화부(2001)는 복호화키 결정부(2009)를 더 포함할 수 있다. 복호화키 결정부(2009)는 수신된 제 2 암호화 그룹과 대응되는 복호화 키를 선택할 수 있다. 일부 실시예에 따르면, 복호화키 결정부(2009)는 수신된 제 2 암호화 그룹의 크기와 대응되는 복호화 키를 선택할 수도 있다.
도 21을 참조하면, 제 2 디바이스(103)는 저장부(2007)를 더 포함할 수 있다.
일부 실시예에 따르면, 저장부(2007)는 제 1 암호화 그룹 및 제 2 암호화 그룹을 각각 저장할 수 있다. 또한 저장부(2007)는 복호화된 제 2 암호화 그룹을 저장할 수도 있다.
일부 실시예에 따르면, 복호화부(2001)는 암호화 그룹 정보에 기초하여 저장부에 저장된 제 2 암호화 그룹의 일부의 비트를 선택할 수 있다. 복호화부(2001)는 선택한 비트들을 저장된 제 2 암호화 그룹으로부터 삭제하고, 제 1 암호화 그룹에 병합할 수 있다.
일부 실시예에 따르면, 복호화부(2001) 제 1 암호화 그룹과 선택된 제 2 암호화 그룹의 일부의 비트들을 병합한 그룹을 함께 복호화할 수 있다.
도 22는 일부 실시예에 따른, 암호화 디바이스를 설명하기 위한 세부 블록도이다.
도 22는 일부 실시예에 따른 디바이스(200)의 구조를 설명하기 위한 블록도를 도시한다.
도 22에 도시된 바와 같이 일부 실시예에 따른 제 1 디바이스(101)는, 통신부(2230), 저장부(2250), 데이터 정보 획득부(1801), 암호화부(1803) 및 제어부(1805) 외에도 사용자 입력부(2200), 출력부(2210), 센싱부(2220), A/V 입력부(2240)을 더 포함할 수도 있다.
통신부(2230)는, 제 1 디바이스(101)와 제 2 디바이스(103)간의 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다. 예를 들어, 통신부(2230)는, 근거리 통신부(2231), 이동 통신부(2232), 방송 수신부(2233)를 포함할 수 있다.
근거리 통신부(short-range wireless communication unit)(2231)는, 블루투스 통신부, BLE(Bluetooth Low Energy) 통신부, 근거라 자기장 통신부(Near Field Communication), WLAN(와이파이) 통신부, 지그비(Zigbee) 통신부, 적외선(IrDA, infrared Data Association) 통신부, WFD(Wi-Fi Direct) 통신부, UWB(ultra wideband) 통신부, Ant+ 통신부 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
이동 통신부(2232)는, 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신한다. 여기에서, 무선 신호는, 음성 호 신호, 화상 통화 호 신호 또는 문자/멀티미디어 메시지 송수신에 따른 다양한 형태의 데이터를 포함할 수 있다.
방송 수신부(2233)는, 방송 채널을 통하여 외부로부터 방송 신호 및/또는 방송 관련된 정보를 수신한다. 방송 채널은 위성 채널, 지상파 채널을 포함할 수 있다. 구현 예에 따라서 디바이스(200)는 방송 수신부(2233)를 포함하지 않을 수도 있다.
또한, 통신부(2230)는, 암호화된 데이터를 송신할 수 있으며, 암호화 그룹 정보 또한 송신할 수 있다. 이는 앞서 설명한 내용과 대응되므로 자세한 내용은 생략한다.
저장부(2250)는, 제어부(1805)의 처리 및 제어를 위한 프로그램을 저장할 수 있고, 제 1 디바이스(101)로 입력되거나 제 1 디바이스(101)로부터 출력되는 데이터를 저장할 수도 있다.
저장부(2250)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
저장부(2250)에 저장된 프로그램들은 그 기능에 따라 복수 개의 모듈들로 분류할 수 있는데, 예를 들어, UI 모듈(2251), 터치 스크린 모듈(2252), 알림 모듈(2253) 등으로 분류될 수 있다.
UI 모듈(2251)은, 애플리케이션 별로 제 1 디바이스(101)와 연동되는 특화된 UI, GUI 등을 제공할 수 있다. 터치 스크린 모듈(2252)은 사용자의 터치 스크린 상의 터치 제스처를 감지하고, 터치 제스처에 관한 정보를 제어부(1805)로 전달할 수 있다. 일부 실시예에 따른 터치 스크린 모듈(2252)은 터치 코드를 인식하고 분석할 수 있다. 터치 스크린 모듈(2252)은 컨트롤러를 포함하는 별도의 하드웨어로 구성될 수도 있다.
터치스크린의 터치 또는 근접 터치를 감지하기 위해 터치스크린의 내부 또는 근처에 다양한 센서가 구비될 수 있다. 터치스크린의 터치를 감지하기 위한 센서의 일례로 촉각 센서가 있다. 촉각 센서는 사람이 느끼는 정도로 또는 그 이상으로 특정 물체의 접촉을 감지하는 센서를 말한다. 촉각 센서는 접촉면의 거칠기, 접촉 물체의 단단함, 접촉 지점의 온도 등의 다양한 정보를 감지할 수 있다.
또한, 터치스크린의 터치를 감지하기 위한 센서의 일례로 근접 센서가 있다.
근접 센서는 소정의 검출면에 접근하는 물체, 혹은 근방에 존재하는 물체의 유무를 전자계의 힘 또는 적외선을 이용하여 기계적 접촉이 없이 검출하는 센서를 말한다. 근접 센서의 예로는 투과형 광전 센서, 직접 반사형 광전 센서, 미러 반사형 광전 센서, 고주파 발진형 근접 센서, 정전용량형 근접 센서, 자기형 근접 센서, 적외선 근접 센서 등이 있다. 사용자의 터치 제스처에는 탭, 터치&홀드, 더블 탭, 드래그, 패닝, 플릭, 드래그 앤드 드롭, 스와이프 등이 있을 수 있다.
알림 모듈(2253)은 제 1 디바이스(101)의 이벤트 발생을 알리기 위한 신호를 발생할 수 있다. 제 1 디바이스(101)에서 발생되는 이벤트의 예로는 호 신호 수신, 메시지 수신, 키 신호 입력, 일정 알림 등이 있다. 알림 모듈(2253)은 디스플레이부(2211)를 통해 비디오 신호 형태로 알림 신호를 출력할 수도 있고, 음향 출력부(2212)를 통해 오디오 신호 형태로 알림 신호를 출력할 수도 있고, 진동 모터(2213)를 통해 진동 신호 형태로 알림 신호를 출력할 수도 있다. 저장부(2250)가 수행하는 동작은 앞서 설명한 내용과 대응되므로 자세한 설명은 생략한다.
제어부(1805)는 통상적으로 제 1 디바이스(101)의 전반적인 동작을 제어한다. 예를 들어, 제어부(1805)는 제 1 디바이스(101)에 저장된 프로그램을 실행함으로써, 제 1 디바이스(101)가 포함하는 구성요소들을 전반적으로 제어할 수 있다. 이는 앞서 설명한 바와 대응되므로, 자세한 설명은 생략한다.
사용자 입력 수신부(2200)는, 사용자가 제 1 디바이스(101)를 제어하기 위한 데이터를 입력하는 수단을 의미한다. 예를 들어, 사용자 입력부(2200)에는 키 패드(key pad), 돔 스위치 (dome switch), 터치 패드(접촉식 정전 용량 방식, 압력식 저항막 방식, 적외선 감지 방식, 표면 초음파 전도 방식, 적분식 장력 측정 방식, 피에조 효과 방식 등), 조그 휠, 조그 스위치 등이 있을 수 있으나 이에 한정되는 것은 아니다.
출력부(2210)는, 오디오 신호 또는 비디오 신호 또는 진동 신호를 출력할 수 있으며, 출력부(2210)는 디스플레이부(2211), 음향 출력부(2212), 및 진동 모터(2213)를 포함할 수 있다.
디스플레이부(2211)는 제 1 디바이스(101)에서 처리되는 정보를 표시 출력한다.
한편, 디스플레이부(2211)와 터치패드가 레이어 구조를 이루어 터치 스크린으로 구성되는 경우, 디스플레이부(2211)는 출력 장치 이외에 입력 장치로도 사용될 수 있다. 디스플레이부(2211)는 액정 디스플레이(liquid crystal display), 박막 트랜지스터 액정 디스플레이(thin film transistor-liquid crystal display), 유기 발광 다이오드(organic light-emitting diode), 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display), 전기영동 디스플레이(electrophoretic display) 중에서 적어도 하나를 포함할 수 있다. 그리고 제 1 디바이스(101)의 구현 형태에 따라 제 1 디바이스(101)는 디스플레이부(2211)를 2개 이상 포함할 수도 있다. 이때, 2개 이상의 디스플레이부(2211)는 힌지(hinge)를 이용하여 마주보게 배치될 수 있다.
음향 출력부(2212)는 통신부(2230)로부터 수신되거나 저장부(2250)에 저장된 오디오 데이터를 출력한다. 또한, 음향 출력부(2212)는 제 1 디바이스(101)에서 수행되는 기능(예를 들어, 호신호 수신음, 메시지 수신음, 알림음)과 관련된 음향 신호를 출력한다. 이러한 음향 출력부(2212)에는 스피커(speaker), 버저(Buzzer) 등이 포함될 수 있다.
진동 모터(2213)는 진동 신호를 출력할 수 있다. 예를 들어, 진동 모터(2213)는 오디오 데이터 또는 비디오 데이터(예컨대, 호신호 수신음, 메시지 수신음 등)의 출력에 대응하는 진동 신호를 출력할 수 있다. 또한, 진동 모터(2213)는 터치스크린에 터치가 입력되는 경우 진동 신호를 출력할 수도 있다.
센싱부(2220)는, 제 1 디바이스(101)의 상태 또는 제 1 디바이스(101) 주변의 상태를 감지하고, 감지된 정보를 제어부(1805)로 전달할 수 있다.
센싱부(2220)는, 지자기 센서(Magnetic sensor)(2221), 가속도 센서(Acceleration sensor)(2222), 온/습도 센서(2223), 적외선 센서(2224), 자이로스코프 센서(2225), 위치 센서(예컨대, GPS)(2226), 기압 센서(2227), 근접 센서(2228), 및 광센서(illuminance sensor)(2229) 중 적어도 하나를 포함할 수 있으나, 이에 한정되는 것은 아니다. 각 센서들의 기능은 그 명칭으로부터 당업자가 직관적으로 추론할 수 있으므로, 구체적인 설명은 생략하기로 한다.
A/V(Audio/Video) 입력부(2240)는 오디오 신호 또는 비디오 신호 입력을 위한 것으로, 이에는 카메라(2241)와 마이크로폰(2242) 등이 포함될 수 있다. 카메라(6251)은 화상 통화모드 또는 촬영 모드에서 이미지 센서를 통해 정지영상 또는 동영상 등의 화상 프레임을 얻을 수 있다. 이미지 센서를 통해 캡쳐된 이미지는 제어부(1805) 또는 별도의 이미지 처리부(미도시)를 통해 처리될 수 있다.
카메라(2241)에서 처리된 화상 프레임은 저장부(2250)에 저장되거나 통신부(2230)를 통하여 외부로 전송될 수 있다. 카메라(2241)는 단말기의 구성 태양에 따라 2개 이상이 구비될 수도 있다.
마이크로폰(2242)은, 외부의 음향 신호를 입력 받아 전기적인 음성 데이터로 처리한다. 예를 들어, 마이크로폰(2242)은 제 1 디바이스(101) 또는 화자로부터 음향 신호를 수신할 수 있다. 마이크로폰(2242)는 외부의 음향 신호를 입력 받는 과정에서 발생 되는 잡음(noise)를 삭제하기 위한 다양한 잡음 삭제 알고리즘을 이용할 수 있다.
데이터 정보 획득부(1801)는 암호화할 데이터의 정보 및 암호화키의 크기 정보를 획득할 수 있으며, 이는 앞서 설명한 내용과 대응되므로 자세한 설명은 생략한다.
암호화부(1803)는 다양한 방법으로 데이터를 암호화할 수 있다. 일부 실시예에 따르면, 암호화부(1803)는 다양한 크기의 데이터를 AES 암호화할 수 있다. 또한, 암호화부(1803)는 암호화키 결정부(1811)를 포함할 수 있다. 이는 앞서 설명한 내용과 대응되므로, 자세한 설명은 생략한다. 구현예에 따라, 암호화부(1803)가 제어부(1805) 내에 포함될 수 있다.
일부 실시예에 따르면, 제 2 디바이스(103)는 데이터 정보 획득부(1801) 및 암호화부(1803)를 제외한 제 1 디바이스(101)동일한 구성요소를 포함할 수 있으며, 추가적으로 복호화부(2001)를 더 포함할 수 있다. 복호화부(2001)의 설명은 앞서 설명한 내용과 대응되므로 자세한 설명은 생략한다.
본 발명에 따른 장치는 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리, 디스크 드라이브와 같은 영구 저장부(permanent storage), 외부 장치와 통신하는 통신 포트, 터치 패널, 키(key), 버튼 등과 같은 사용자 인터페이스 장치 등을 포함할 수 있다. 소프트웨어 모듈 또는 알고리즘으로 구현되는 방법들은 상기 프로세서상에서 실행 가능한 컴퓨터가 읽을 수 있는 코드들 또는 프로그램 명령들로서 컴퓨터가 읽을 수 있는 기록 매체 상에 저장될 수 있다. 여기서 컴퓨터가 읽을 수 있는 기록 매체로 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다.
본 발명에서 인용하는 공개 문헌, 특허 출원, 특허 등을 포함하는 모든 문헌들은 각 인용 문헌이 개별적으로 및 구체적으로 병합하여 나타내는 것 또는 본 발명에서 전체적으로 병합하여 나타낸 것과 동일하게 본 발명에 병합될 수 있다.
본 발명의 이해를 위하여, 도면에 도시된 바람직한 실시 예들에서 참조 부호를 기재하였으며, 본 발명의 실시 예들을 설명하기 위하여 특정 용어들을 사용하였으나, 특정 용어에 의해 본 발명이 한정되는 것은 아니며, 본 발명은 당업자에 있어서 통상적으로 생각할 수 있는 모든 구성 요소들을 포함할 수 있다.
본 발명은 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 발명은 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. 본 발명에의 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 발명은 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 발명은 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. ‘매커니즘’, ‘요소’, ‘수단’, ‘구성’과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.
본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, ‘필수적인’, ‘중요하게’ 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.
본 발명의 명세서(특히 특허청구범위에서)에서 ‘상기’의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 본 발명에서 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 적용한 발명을 포함하는 것으로서(이에 반하는 기재가 없다면), 발명의 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 마지막으로, 본 발명에 따른 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 따라 본 발명이 한정되는 것은 아니다. 본 발명에서 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 본 발명을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 본 발명의 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.

Claims (31)

  1. 제 1 디바이스가 제 2 디바이스에게 송신하는 데이터를 AES 암호화 알고리즘을 이용하여 암호화 하는 방법에 있어서,
    암호화 키의 크기 정보 및 복수의 비트들을 포함하는 암호화가 수행될 데이터의 크기 정보를 획득하는 단계;
    상기 암호화 키를 이용하여, 상기 복수의 비트들 중 상기 암호화 키의 크기와 대응되는 일부의 비트들인 제 1 비트 그룹을 암호화하는 단계;
    상기 암호화 키의 크기 정보 및 상기 복수의 비트들 중 제 1 비트 그룹과 상이한 비트들을 포함하는 제 2 비트 그룹의 크기에 기초하여, 상기 암호화된 제 1 비트 그룹 중 일부의 비트들인 제 3 비트 그룹을 선택하는 단계; 및
    상기 암호화 키를 이용하여 상기 제 2 비트 그룹 및 상기 선택된 제 3 비트 그룹을 암호화 하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 방법은,
    상기 암호화된 제 1 비트 그룹에서 제 3 비트 그룹을 제외한 제 1 암호화 그룹 및 상기 제 2 비트 그룹 및 제 3 비트 그룹이 암호화된 제 2 암호화 그룹을 한번에 송신하는 단계를 더 포함하는 방법.
  3. 제 1 항에 있어서,
    상기 방법은,
    상기 선택한 제 3 비트 그룹에 대한 정보를 포함하는 암호화 그룹 정보를 송신하는 단계를 더 포함하는 방법.
  4. 제 2 항에 있어서,
    상기 송신하는 단계는,
    소정의 기간마다 상기 제 1 암호화 그룹 및 상기 제 2 암호화 그룹이 병합된 그룹을 한번에 송신하는 단계를 포함하는 방법.
  5. 제 1 항에 있어서,
    상기 방법은,
    상기 암호화가 수행될 데이터의 크기가 상기 암호화 키의 크기의 배수인지 판단하는 단계를 더 포함하는 방법.
  6. 제 1 항에 있어서,
    상기 암호화 키의 크기 정보 및 복수의 비트들을 포함하는 암호화가 수행될 데이터의 크기 정보를 획득하는 단계는,
    상기 획득한 암호화 키의 크기가 상기 획득한 암호화가 수행될 데이터의 크기보다 큰 경우, 암호화 키를 소정의 크기로 변경하는 단계를 더 포함하는 방법.
  7. 제 1 항에 있어서,
    상기 방법은,
    상기 복수의 비트들을 포함하는 암호화가 수행될 데이터를 스크램블링하는 단계를 더 포함하는 방법.
  8. 제 1 항에 있어서,
    상기 제 3 비트 그룹의 크기는
    상기 암호화 키의 크기와 상기 제 2 비트 그룹의 크기의 차이와 동일한 것을 특징으로 하는 방법.
  9. 제 1 항에 있어서,
    상기 제 1 비트 그룹을 암호화하는 단계는,
    상기 암호화된 제 1 비트 그룹을 저장하는 단계를 더 포함하고,
    상기 제 3 비트 그룹을 선택하는 단계는,
    상기 저장된 제 1 비트 그룹을 일부의 비트들인 제 3 비트 그룹을 선택하는 단계를 포함하는 것을 특징으로 하는 방법.
  10. 제 9 항에 있어서,
    상기 제 3 비트 그룹을 선택하는 단계는,
    상기 제 1 비트 그룹으로부터 상기 선택된 제 3 비트 그룹을 삭제하고, 상기 제 2 비트 그룹에 상기 제 3 비트 그룹을 병합하는 단계; 및
    상기 제 3 비트 그룹 및 제 2 비트 그룹이 병합된 그룹을 암호화하는 단계를 포함하는 방법.
  11. AES 암호화 알고리즘을 이용하여 암호화된 데이터를 복호화 하는 방법에 있어서,
    제 1 암호화 그룹 및 제 2 암호화 그룹을 포함하는 암호화된 데이터 및 암호화 그룹 정보를 수신하는 단계;
    복호화 키를 이용하여, 상기 수신된 제 2 암호화 그룹을 복호화 하는 단계;
    상기 수신된 암호화 그룹 정보에 기초하여 제 2 암호화 그룹 중 일부의 비트를 선택하는 단계;
    상기 선택된 제 2 암호화 그룹의 일부 및 상기 수신된 제 1 암호화 그룹을 병합하는 단계; 및
    상기 병합된 그룹을 복호화 하는 단계를 포함하는 방법.
  12. 제 11항에 있어서,
    상기 방법은,
    상기 수신된 데이터를 디스크램블링하는 단계를 더 포함하는 방법.
  13. 제 11항에 있어서,
    상기 복호화 키를 이용하여, 상기 수신된 제 2 암호화 그룹을 복호화 하는 단계는,
    상기 복호화된 제 2 암호화 그룹을 저장하는 단계를 더 포함하고,
    상기 수신된 암호화 그룹 정보에 기초하여 제 2 암호화 그룹 중 일부의 비트를 선택하는 단계는,
    상기 수신된 암호화 그룹 정보에 기초하여 상기 저장된 제 2 암호화 그룹을 일부의 비트를 선택하는 단계를 더 포함하는 방법.
  14. 제 11 항에 있어서,
    상기 암호화 그룹 정보는,
    상기 제 1 암호화 그룹을 복호화 하기 위한 필요한 제 2 암호화 그룹 내의 적어도 하나의 비트들의 정보를 포함하는 것을 특징으로 하는 방법.
  15. 제 11 항에 있어서,
    복호화 키를 이용하여, 상기 수신된 제 2 암호화 그룹을 복호화 하는 단계는,
    상기 수신된 제 2 암호화 그룹과 대응되는 복호화 키를 선택하는 단계를 포함하는 것을 특징으로 하는 방법.
  16. AES 암호화 알고리즘을 이용하여 데이터를 암호화하는 디바이스에 있어서,
    암호화 키의 크기 정보 및 복수의 비트들을 포함하는 암호화가 수행될 데이터의 크기 정보를 획득하는 데이터 정보 획득부; 및
    상기 암호화 키를 이용하여, 상기 복수의 비트들 중 상기 암호화 키의 크기와 대응되는 일부의 비트들인 제 1 비트 그룹을 암호화하고, 상기 암호화 키의 크기 정보 및 상기 복수의 비트들 중 제 1 비트 그룹과 상이한 비트들을 포함하는 제 2 비트 그룹의 크기에 기초하여, 상기 암호화된 제 1 비트 그룹 중 일부의 비트들인 제 3 비트 그룹을 선택하며, 상기 암호화 키를 이용하여 상기 제 2 비트 그룹 및 상기 선택된 제 3 비트 그룹을 암호화 하는 암호화부를 포함하는 디바이스.
  17. 제 16 항에 있어서,
    상기 디바이스는,
    상기 암호화된 제 1 비트 그룹에서 제 3 비트 그룹을 제외한 제 1 암호화 그룹 및 상기 제 2 비트 그룹 및 제 3 비트 그룹이 암호화된 제 2 암호화 그룹을 한번에 송신하는 통신부를 더 포함하는 디바이스.
  18. 제 16 항에 있어서,
    상기 디바이스는,
    상기 선택한 제 3 비트 그룹에 대한 정보를 포함하는 암호화 그룹 정보를 송신하는 통신부를 더 포함하는 디바이스.
  19. 제 17 항에 있어서,
    상기 통신부는,
    소정의 기간마다 상기 제 1 암호화 그룹 및 상기 제 2 암호화 그룹이 병합된 그룹을 한번에 송신하는 것을 특징으로 하는 디바이스.
  20. 제 16 항에 있어서,
    상기 암호화부는,
    상기 암호화가 수행될 데이터의 크기가 상기 암호화 키의 크기의 배수인지 판단하는 것을 특징으로 하는 디바이스.
  21. 제 16 항에 있어서,
    상기 암호화부는,
    상기 획득한 암호화 키의 크기가 상기 획득한 암호화가 수행될 데이터의 크기보다 큰 경우, 암호화 키를 소정의 크기로 변경하는 암호화키 결정부를 더 포함하는 디바이스.
  22. 제 16 항에 있어서,
    상기 디바이스는,
    상기 복수의 비트들을 포함하는 암호화가 수행될 데이터를 스크램블링하는 스크램블링부를 더 포함하는 디바이스.
  23. 제 16 항에 있어서,
    상기 제 3 비트 그룹의 크기는
    상기 암호화 키의 크기와 상기 제 2 비트 그룹의 크기의 차이와 동일한 것을 특징으로 하는 디바이스.
  24. 제 16 항에 있어서,
    상기 디바이스는,
    상기 암호화된 제 1 비트 그룹을 저장하는 저장부를 더 포함하고,
    상기 암호화부는,
    상기 저장부에 저장된 제 1 비트 그룹을 일부의 비트들인 제 3 비트 그룹을 선택하는 것을 특징으로 하는 디바이스.
  25. 제 24 항에 있어서,
    상기 암호화부는,
    상기 제 1 비트 그룹으로부터 상기 선택된 제 3 비트 그룹을 삭제하고, 상기 제 2 비트 그룹에 상기 제 3 비트 그룹을 병합하고, 상기 제 2 비트 그룹 및 상기 제 3 비트 그룹이 병합된 그룹을 암호화 하는 것을 특징으로 하는 디바이스.
  26. AES 암호화 알고리즘을 이용하여 암호화된 데이터를 복호화하는 디바이스에 있어서,
    제 1 암호화 그룹 및 제 2 암호화 그룹을 포함하는 암호화된 데이터 및 암호화 그룹 정보를 수신하는 통신부; 및
    복호화 키를 이용하여, 상기 수신된 제 2 암호화 그룹을 복호화하고, 상기 수신된 암호화 그룹 정보에 기초하여 제 2 암호화 그룹 중 일부의 비트를 선택하고, 상기 선택된 제 2 암호화 그룹의 일부 및 상기 수신된 제 1 암호화 그룹을 병합하며, 상기 병합된 그룹을 복호화 하는 복호화부를 포함하는 디바이스.
  27. 제 26항에 있어서,
    상기 디바이스는,
    상기 수신된 데이터를 디스크램블링하는 디스크램블링부를 더 포함하는 디바이스.
  28. 제 26항에 있어서,
    상기 디바이스는,
    상기 복호화된 제 2 암호화 그룹을 저장하는 저장부를 더 포함하고,
    상기 복호화부는,
    상기 수신된 암호화 그룹 정보에 기초하여 상기 저장부에 저장된 제 2 암호화 그룹을 일부의 비트를 선택하는 디바이스.
  29. 제 26항에 있어서,
    상기 암호화 그룹 정보는,
    상기 제 1 암호화 그룹을 복호화 하기 위한 필요한 제 2 암호화 그룹 내의 적어도 하나의 비트들의 정보를 포함하는 것을 특징으로 하는 디바이스.
  30. 제 26 항에 있어서,
    상기 복호화부는,
    상기 수신된 제 2 암호화 그룹과 대응되는 복호화 키를 선택하는 복호화키 결정부를 포함하는 것을 특징으로 하는 디바이스.
  31. 제 1 항 및 제 11 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020140119364A 2014-09-05 2014-09-05 데이터 암호화 방법 및 장치 KR102287946B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020140119364A KR102287946B1 (ko) 2014-09-05 2014-09-05 데이터 암호화 방법 및 장치
PCT/KR2015/008933 WO2016036048A1 (en) 2014-09-05 2015-08-26 Method and device for data encrypting
US15/323,213 US10153896B2 (en) 2014-09-05 2015-08-26 Method and device for data encrypting
CN201580040052.4A CN106664197B (zh) 2014-09-05 2015-08-26 用于数据加密的方法和装置
EP15838583.1A EP3146669B1 (en) 2014-09-05 2015-08-26 Method and device for data encrypting

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140119364A KR102287946B1 (ko) 2014-09-05 2014-09-05 데이터 암호화 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20160029590A true KR20160029590A (ko) 2016-03-15
KR102287946B1 KR102287946B1 (ko) 2021-08-09

Family

ID=55440049

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140119364A KR102287946B1 (ko) 2014-09-05 2014-09-05 데이터 암호화 방법 및 장치

Country Status (5)

Country Link
US (1) US10153896B2 (ko)
EP (1) EP3146669B1 (ko)
KR (1) KR102287946B1 (ko)
CN (1) CN106664197B (ko)
WO (1) WO2016036048A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200088030A (ko) * 2019-01-14 2020-07-22 삼성전자주식회사 암호화될 데이터의 정보량에 기반하여 암호화에 사용될 키를 선택하는 전자 장치 및 전자 장치의 동작 방법
WO2021091241A1 (ko) * 2019-11-07 2021-05-14 인텔렉추얼디스커버리 주식회사 무선 통신 시스템에서 암호화 키 설정 방법, 장치, 컴퓨터 프로그램 및 그 기록 매체

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10965456B2 (en) 2017-09-25 2021-03-30 The Boeing Company Systems and methods for facilitating data encryption and decryption and erasing of associated information
US10860403B2 (en) 2017-09-25 2020-12-08 The Boeing Company Systems and methods for facilitating truly random bit generation
US10924263B2 (en) * 2017-09-25 2021-02-16 The Boeing Company Systems and methods for facilitating iterative key generation and data encryption and decryption
WO2021237388A1 (zh) * 2020-05-23 2021-12-02 游戏橘子数位科技股份有限公司 加解密群组消息及传递消息的方法
CN111756767A (zh) * 2020-07-06 2020-10-09 成都卫士通信息产业股份有限公司 流媒体数据传输方法、装置、电子设备及计算机存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080192924A1 (en) * 2007-02-12 2008-08-14 Sybase, Inc. Data encryption without padding
KR20110040779A (ko) * 2008-06-30 2011-04-20 톰슨 라이센싱 선택적 데이터 암호화를 위한 방법 및 장치

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3864798B2 (ja) 2000-03-09 2007-01-10 株式会社日立製作所 共通鍵暗号の復号装置
JP3864675B2 (ja) 2000-03-09 2007-01-10 株式会社日立製作所 共通鍵暗号装置
JP2003333036A (ja) 2002-05-09 2003-11-21 Nippon Telegr & Teleph Corp <Ntt> メッセージ認証装置、メッセージ認証方法とメッセージ認証プログラムおよび該プログラムを記録したコンピュータ読取り可能な記録媒体
SG138452A1 (en) * 2004-05-18 2008-01-28 Victor Company Of Japan Content presentation
TWI325113B (en) * 2006-10-13 2010-05-21 Data security device and the method thereof
US8036377B1 (en) * 2006-12-12 2011-10-11 Marvell International Ltd. Method and apparatus of high speed encryption and decryption
JP4410792B2 (ja) * 2006-12-21 2010-02-03 株式会社日立コミュニケーションテクノロジー 暗号化装置
US8958562B2 (en) 2007-01-16 2015-02-17 Voltage Security, Inc. Format-preserving cryptographic systems
KR20080072345A (ko) 2007-02-02 2008-08-06 삼성전자주식회사 암호화 장치 및 그 방법
CN101431516B (zh) * 2008-12-04 2012-04-25 成都市华为赛门铁克科技有限公司 分布式安全策略的实现方法、客户端及通信系统
JP2011151689A (ja) 2010-01-22 2011-08-04 Fujitsu Ltd 情報処理装置および情報処理方法
US9246672B2 (en) * 2010-06-24 2016-01-26 Blackberry Limited Two indices moving in opposite directions for cryptographic bidirectional communications using a shared master key
FR2963713A1 (fr) * 2010-08-04 2012-02-10 St Microelectronics Grenoble 2 Procede de chiffrement d'un flux de donnees
DE102012201164B4 (de) * 2012-01-26 2017-12-07 Infineon Technologies Ag Vorrichtung und verfahren zur erzeugung eines nachrichtenauthentifizierungscodes
DE102013106121A1 (de) * 2013-06-12 2014-12-18 Appbyyou Gmbh Verfahren zur Verschlüsselung von Daten
CN103501220B (zh) * 2013-09-29 2016-08-17 程碧波 加密方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080192924A1 (en) * 2007-02-12 2008-08-14 Sybase, Inc. Data encryption without padding
KR20110040779A (ko) * 2008-06-30 2011-04-20 톰슨 라이센싱 선택적 데이터 암호화를 위한 방법 및 장치

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200088030A (ko) * 2019-01-14 2020-07-22 삼성전자주식회사 암호화될 데이터의 정보량에 기반하여 암호화에 사용될 키를 선택하는 전자 장치 및 전자 장치의 동작 방법
WO2020149555A1 (ko) * 2019-01-14 2020-07-23 삼성전자 주식회사 암호화될 데이터의 정보량에 기반하여 암호화에 사용될 키를 선택하는 전자 장치 및 전자 장치의 동작 방법
US12126718B2 (en) 2019-01-14 2024-10-22 Samsung Electronics Co., Ltd Electronic device for selecting key to be used for encryption on basis of amount of information of data to be encrypted, and operation method of electronic device
WO2021091241A1 (ko) * 2019-11-07 2021-05-14 인텔렉추얼디스커버리 주식회사 무선 통신 시스템에서 암호화 키 설정 방법, 장치, 컴퓨터 프로그램 및 그 기록 매체
US12108247B2 (en) 2019-11-07 2024-10-01 Intellectual Discovery Co., Ltd. Method, apparatus, and computer program for setting encryption key in wireless communication system, and recording medium for same

Also Published As

Publication number Publication date
EP3146669B1 (en) 2019-01-30
EP3146669A1 (en) 2017-03-29
KR102287946B1 (ko) 2021-08-09
EP3146669A4 (en) 2018-01-03
CN106664197B (zh) 2021-01-29
CN106664197A (zh) 2017-05-10
US10153896B2 (en) 2018-12-11
US20170163414A1 (en) 2017-06-08
WO2016036048A1 (en) 2016-03-10

Similar Documents

Publication Publication Date Title
KR102287946B1 (ko) 데이터 암호화 방법 및 장치
US10454904B2 (en) Method, apparatus and system for secure data communication
US10579826B2 (en) Method of transmitting anonymous message and message transmission system using the same
US11178709B2 (en) Pairing method, device, machine-readable storage medium, and system
JP5512045B2 (ja) 暗号化装置、暗号化方法及び暗号化プログラム
US11115393B2 (en) Message server, method for operating message server and computer-readable recording medium
US10230697B2 (en) User terminals, and methods and computer-readable recording mediums storing computer programs for transmitting and receiving messages
TW202107316A (zh) 資料處理方法、裝置和電子設備
US20180227279A1 (en) Method for communication between devices and devices thereof
WO2016115889A1 (zh) 一种对信息进行加密控制、解析信息的方法、系统和终端
KR102507113B1 (ko) 암호화된 통신 세션의 모니터링 방법, 장치 및 시스템
KR20150069982A (ko) 보안 통신방법 및 장치와 이를 채용하는 멀티미디어 기기
US10439995B2 (en) Method and system for secure private communications
JP2016523391A (ja) 平文データを暗号化するための方法および装置
US20190208276A1 (en) Protected media decoding system supporting metadata
US20190073489A1 (en) Controlling access to data in a health network
US20160308669A1 (en) Method and System for Real Time Data Protection with Private Key and Algorithm for Transmission and Storage
CN104009837A (zh) 密钥更新方法、装置及终端
CN106850219B (zh) 一种数据处理方法及终端
US20200134237A1 (en) Systems and methods for secure peripherals
KR102038217B1 (ko) 경량암호 알고리즘 기반의 스마트 기기 내의 개인정보 및 콘텐츠 암복호화를 통한 정보 보안 시스템, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
JP2007060100A (ja) 鍵更新方法、鍵隔離型暗号システム及び端末装置
CN106385684B (zh) 用于共享无线网络、接入无线网络的方法和装置
TWI565285B (zh) A cryptographic device, a memory system, a decoding device, a cryptographic method, a decoding method, a cryptographic program product and a decoding program product
KR101757768B1 (ko) 데이터 암호화 방법과 이를 수행하기 위한 장치 및 시스템

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