KR102311340B1 - 암호화 장치 및 방법 - Google Patents
암호화 장치 및 방법 Download PDFInfo
- Publication number
- KR102311340B1 KR102311340B1 KR1020150007596A KR20150007596A KR102311340B1 KR 102311340 B1 KR102311340 B1 KR 102311340B1 KR 1020150007596 A KR1020150007596 A KR 1020150007596A KR 20150007596 A KR20150007596 A KR 20150007596A KR 102311340 B1 KR102311340 B1 KR 102311340B1
- Authority
- KR
- South Korea
- Prior art keywords
- domain
- encryption
- data
- encoding
- general
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/12—Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/16—Obfuscation or hiding, e.g. involving white box
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)
- Storage Device Security (AREA)
Abstract
암호화 장치는 일반 도메인 및 보안 도메인 상에 미리 지정된 프로그램을 저장하는 메모리 및 프로그램에 따라 암호화 과정을 수행하는 프로세서를 포함하되, 프로그램은, 입력 데이터를 보안 도메인 상에서 인코딩하여 인코딩 데이터를 생성하고, 일반 도메인 상의 화이트박스 암호화 모듈을 통해 인코딩 데이터에 대해 암호화를 수행하여 암호화 데이터를 생성하고, 암호화 데이터를 보안 도메인 상에서 인코딩하여 출력 데이터를 생성하도록 구성된다.
Description
본 발명은 암호화 기술에 관한 것으로, 보다 상세하게는 암호 테이블을 이용한 암호화 기술에 관한 것이다.
일반적으로 암호 알고리즘은 공격자가 암호 알고리즘의 연산이 수행되는 중간 과정은 볼 수 없다고 가정한다. 이와 같은 공격자의 공격 수준에 대한 가정을 “블랙 박스” 공격 가정이라고 한다. 하지만 실제 환경에서는 메모리 조작, 메모리 덤프 등 코드 디버그 수준의 공격도 가능하다. 이와 같이 공격자가 공격 연산 중간 값을 보고, 수정하는 등의 상황이 가능하다고 가정하는 것을 “화이트 박스” 공격 가정이라고 한다. 또한 화이트 박스 공격 가정에 안전하도록 설계된 암호를 “화이트 박스 암호”라고 부른다.
현재 사용되는 “화이트 박스 암호”는 암호 키가 연산되는 과정을 감추기 위하여 테이블 키를 숨기고 룩업 테이블의 연계연산으로 블랙 박스 암호 연산과 동일한 결과를 가져온다.
하지만 연산 테이블에 키를 숨긴다고 하더라도, 메모리 전체를 덤프하는 코드리프트 공격에는 취약하다.
본 발명이 해결하고자 하는 과제는 가상 머신을 이용한 외부 인코딩을 통해 암호화를 수행하는 암호화 장치 및 방법을 제공하는 것이다.
본 발명의 일 측면에 따르면, 일반 도메인 및 보안 도메인 상에 미리 지정된 프로그램을 저장하는 메모리; 및 상기 프로그램에 따라 암호화 과정을 수행하는 프로세서; 를 포함하되, 상기 프로그램은, 입력 데이터를 상기 보안 도메인 상에서 인코딩하여 인코딩 데이터를 생성하고, 상기 일반 도메인 상의 화이트박스 암호화 모듈을 통해 상기 인코딩 데이터에 대해 암호화를 수행하여 암호화 데이터를 생성하고, 상기 암호화 데이터를 상기 보안 도메인 상에서 인코딩하여 출력 데이터를 생성하도록 구성되는 것을 특징으로 하는 암호화 장치가 제공된다.
상기 프로그램은, 상기 일반 도메인 및 상기 보안 도메인에 각각 저장되고, 상기 보안 도메인에 저장된 프로그램에 따라 상기 입력 데이터를 상기 보안 도메인 상에서 인코딩하여 인코딩 데이터를 생성하고, 상기 암호화 데이터를 상기 보안 도메인 상에서 인코딩하여 출력 데이터를 생성하도록 구성되고, 상기 일반 도메인에 저장된 프로그램에 따라 상기 일반 도메인 상의 화이트박스 암호화 모듈을 통해 상기 인코딩 데이터에 대해 암호화를 수행하여 암호화 데이터를 생성하도록 구성될 수 있다.
상기 보안 도메인은 가상 머신(virtual machine)에 의해 운영되는 영역일 수 있다.
상기 프로그램은 상기 출력 데이터를 일반 도메인에 저장하고, 일반 도메인에 저장된 상기 출력 데이터를 외부 디바이스로 출력하도록 구성될 수 있다.
본 발명의 다른 측면에 따르면, 일반 도메인 및 보안 도메인 상에 미리 지정된 프로그램을 저장하는 메모리; 상기 프로그램에 따라 암호화 과정을 수행하는 프로세서; 및 미리 지정된 인코딩 과정을 수행하는 외부 인코더;를 포함하되, 상기 프로그램은, 입력 데이터를 상기 외부 인코더를 통해 인코딩하여 인코딩 데이터를 생성하고, 상기 보안 도메인 상의 화이트박스 암호화 모듈을 통해 상기 인코딩 데이터에 대해 암호화를 수행하여 암호화 데이터를 생성하고, 상기 암호화 데이터를 상기 외부 인코더를 통해 인코딩하여 출력 데이터를 생성하도록 구성될 수 있다.
상기 프로그램은, 상기 일반 도메인 및 상기 보안 도메인에 각각 저장되고, 상기 일반 도메인에 저장된 프로그램에 따라 상기 외부 인코더로 입력 데이터를 전송하고 상기 외부 인코더로부터 출력 데이터를 수신하고, 상기 보안 도메인에 저장된 프로그램에 따라 상기 보안 도메인 상의 화이트박스 암호화 모듈을 통해 상기 인코딩 데이터에 대해 암호화를 수행하여 암호화 데이터를 생성하도록 구성될 수 있다.
상기 보안 도메인은 가상 머신(virtual machine)에 의해 운영되는 영역일 수 있다.
상기 외부 인코더는 미리 지정된 인코딩을 수행하는 유심(USIM)일 수 있다.
암호화 장치가 암호화를 수행하는 방법에 있어서, 입력 데이터를 보안 도메인 상에서 인코딩하여 인코딩 데이터를 생성하는 단계; 일반 도메인 상의 화이트박스 암호화 모듈을 통해 상기 인코딩 데이터에 대해 암호화를 수행하여 암호화 데이터를 생성하는 단계; 및 상기 암호화 데이터를 상기 보안 도메인 상에서 인코딩하여 출력 데이터를 생성하는 단계를 포함하는 암호화 방법이 제공된다.
상기 입력 데이터를 보안 도메인 상에서 인코딩하여 인코딩 데이터를 생성하는 단계 및 상기 암호화 데이터를 상기 보안 도메인 상에서 인코딩하여 출력 데이터를 생성하는 단계는 상기 보안 도메인에 저장된 프로그램에 따라 수행되는 단계이고, 상기 일반 도메인 상의 화이트박스 암호화 모듈을 통해 상기 인코딩 데이터에 대해 암호화를 수행하여 암호화 데이터를 생성하는 단계는 상기 일반 도메인에 저장된 프로그램에 따라 수행되는 단계일 수 있다.
상기 보안 도메인은 가상 머신(virtual machine)에 의해 운영되는 메모리 영역일 수 있다.
상기 암호화 방법은 상기 출력 데이터를 일반 도메인에 저장하고, 일반 도메인에 저장된 상기 출력 데이터를 외부 디바이스로 출력하는 단계를 더 포함할 수 있다.
본 발명의 또 다른 측면에 따르면, 암호화 장치가 암호화를 수행하는 방법에 있어서, 입력 데이터를 외부 인코더를 통해 인코딩하여 인코딩 데이터를 생성하는 단계; 보안 도메인 상의 화이트박스 암호화 모듈을 통해 상기 인코딩 데이터에 대해 암호화를 수행하여 암호화 데이터를 생성하는 단계; 및 상기 암호화 데이터를 상기 외부 인코더를 통해 인코딩하여 출력 데이터를 생성하는 단계; 를 포함하는 암호화 방법이 제공된다.
상기 보안 도메인 상의 화이트박스 암호화 모듈을 통해 상기 인코딩 데이터에 대해 암호화를 수행하여 암호화 데이터를 생성하는 단계는 상기 보안 도메인에 저장된 프로그램에 따라 수행되는 단계일 수 있다.
상기 보안 도메인은 가상 머신(virtual machine)에 의해 운영되는 영역일 수 있다.
상기 외부 인코더는 미리 지정된 인코딩을 수행하는 유심(USIM)일 수 있다.
상술한 바와 같이 본 발명의 일 실시예에 따르면, 코드리프트 공격에 대응한 보안성을 제공할 수 있다.
도 1은 본 발명의 제1 실시예에 따른 암호화 장치를 예시한 블록도.
도 2는 본 발명의 제1 실시예에 따른 암호화 장치가 가상 머신을 이용하여 암호화를 수행하는 과정을 예시한 순서도.
도 3은 본 발명의 제1 실시예에 따른 암호화 장치의 메모리 상 일반 도메인과 보안 도메인을 예시한 도면.
도 4는 본 발명의 제1 실시예에 따른 암호화 장치가 가상 머신을 이용하여 암호화를 수행하는 과정을 예시한 개념도.
도 5는 본 발명의 제2 실시예에 따른 암호화 장치를 예시한 블록도.
도 6은 본 발명의 제2 실시예에 따른 암호화 장치가 가상 머신 및 외부 인코더를 이용하여 암호화를 수행하는 과정을 예시한 순서도.
도 7은 본 발명의 제2 실시예에 따른 암호화 장치가 가상 머신 및 외부 인코더를 이용하여 암호화를 수행하는 과정을 예시한 개념도.
도 2는 본 발명의 제1 실시예에 따른 암호화 장치가 가상 머신을 이용하여 암호화를 수행하는 과정을 예시한 순서도.
도 3은 본 발명의 제1 실시예에 따른 암호화 장치의 메모리 상 일반 도메인과 보안 도메인을 예시한 도면.
도 4는 본 발명의 제1 실시예에 따른 암호화 장치가 가상 머신을 이용하여 암호화를 수행하는 과정을 예시한 개념도.
도 5는 본 발명의 제2 실시예에 따른 암호화 장치를 예시한 블록도.
도 6은 본 발명의 제2 실시예에 따른 암호화 장치가 가상 머신 및 외부 인코더를 이용하여 암호화를 수행하는 과정을 예시한 순서도.
도 7은 본 발명의 제2 실시예에 따른 암호화 장치가 가상 머신 및 외부 인코더를 이용하여 암호화를 수행하는 과정을 예시한 개념도.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
또한, 본 명세서에서, 일 구성요소가 다른 구성요소로 신호를 “전송한다”로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되어 신호를 전송할 수 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 신호를 전송할 수도 있다고 이해되어야 할 것이다.
도 1은 본 발명의 제1 실시예에 따른 암호화 장치를 예시한 블록도이다.
도 1을 참조하면, 암호화 장치는 통신 인터페이스(110), 프로세서(120), 메모리(130) 및 스토리지(140)를 포함한다.
통신 인터페이스(110)는 당해 암호화 장치와 연결된 외부 디바이스와 미리 지정된 프로토콜에 따른 통신을 수행하여 암호화가 수행될 대상인 입력 데이터를 수신한다. 또한, 통신 인터페이스(110)는 암호화가 완료된 출력 데이터를 외부 디바이스로 전송할 수 있다.
프로세서(110)는 메모리(120)에 로딩된 프로그램에 따라 암호화를 위한 기능을 수행한다. 또한, 프로세서(110)는 가상 머신(virtual machine)을 프로그램에 따라 운용하여, 가상 머신 상에서 수행되는 프로세스를 수행할 수 있다.
메모리(130)는 암호화를 위한 프로그램을 저장하고, 프로세서(120)의 요청에 따라 해당 프로그램을 프로세서(120)로 전송한다. 또한, 메모리(130)는 가상 머신(virtual machine)의 인코딩을 위한 프로그램을 저장할 수 있다. 이 때, 메모리(130)는 휘발성 메모리일 수 있다.
스토리지(140)는 암호화를 위한 프로그램을 저장하는 저장 매체이다. 프로세서(120)는 스토리지(140)에 저장된 프로그램을 메모리(130)로 로딩할 수 있다. 또한, 스토리지(130)는 가상 머신의 동작에 필요한 프로그램을 저장할 수 있다.
이하, 본 발명의 일 실시예에 따른 암호화 장치가 프로그램에 따라 암호화를 수행하는 과정을 상세히 설명하도록 한다.
도 2는 본 발명의 제1 실시예에 따른 암호화 장치가 가상 머신을 이용하여 암호화를 수행하는 과정을 예시한 순서도이고, 도 3은 본 발명의 제1 실시예에 따른 암호화 장치의 메모리 상 일반 도메인과 보안 도메인을 예시한 도면이다. 이하 설명하는 각 과정은 암호화 장치의 프로세서(120)가 각 기능부와 연동하여 수행하는 과정이나, 발명의 간결하고 명확한 설명을 위해 주체를 암호화 장치로 통칭하고, 프로세서(120), 메모리(130), 스토리지(140) 간의 신호 전송 등의 공지된 컴퓨팅 장치에서 수행하는 일반적인 과정에 대한 설명은 생략하기로 한다.
단계 210에서 암호화 장치는 통신 인터페이스(110)를 통해 수신한 입력 데이터를 보안 도메인으로 전송한다. 이 때, 도 3과 같이 메모리(130)는 일반 도메인(310) 및 보안 도메인(320)으로 구성될 수 있다. 보안 도메인(320)은 가상 머신에서 이용하는 메모리(130)의 영역을 지칭하고, 일반 도메인(310)은 보안 도메인(320)을 제외한 나머지 영역을 지칭한다. 따라서, 암호화 장치에 설치된 일반 어플리케이션은 일반 도메인(310) 내의 데이터로만 엑세스가 가능하고, 보안 도메인(320) 내의 데이터의 엑세스는 불가능하다.
단계 220에서 암호화 장치는 보안 도메인(320)의 프로그램에 따라 입력 데이터를 인코딩하여 인코딩 데이터를 생성한다. 즉, 암호화 장치는 가상 머신 상에서 입력 데이터를 미리 지정된 프로그램에 따라 인코딩하여 인코딩 데이터를 생성할 수 있다.
단계 230에서 암호화 장치는 인코딩 데이터를 일반 도메인(310)으로 전송한다.
단계 240에서 암호화 장치는 일반 도메인(310)에 존재하는 화이트박스 암호화 모듈을 통해 인코딩 데이터에 대해 암호화를 수행하여 암호 데이터를 생선한다. 이 때, 화이트박스 암호화 모듈은 화이트박스(Whitebox) 암호화를 수행하는 일반 도메인에서 엑세스 가능한 소프트웨어 모듈이다.
단계 250에서 암호화 장치는 암호 데이터를 보안 도메인(320)으로 전송한다.
단계 260에서 암호화 장치는 보안 도메인(320)의 프로그램에 따라 암호 데이터를 인코딩하여 출력 데이터를 생성한다. 이 때, 단계 220 및 단계 260의 인코딩 과정은 서로 상이한 방식일 수 있다.
단계 270에서 암호화 장치는 출력데이터를 일반 도메인(310)으로 전송하고, 일반 도메인(310)의 출력 데이터를 통신 인터페이스(110)를 통해 출력한다.
도 4는 본 발명의 제1 실시예에 따른 암호화 장치가 가상 머신을 이용하여 암호화를 수행하는 과정을 예시한 개념도이다.
도 4를 참조하면, 본 발명의 일 실시예에 따른 암호화 장치의 보안 도메인(320) 내의 데이터는 보안 도메인(320) 상에서 동작하도록 구성된 프로세스에 의해서만 엑세스가 가능하다. 즉, 일반 도메인(310) 상에서 동작하는 소프트웨어는 데이터를 보안 도메인(320)으로 전송하는 과정(410, 430) 이나 보안 도메인(320)으로부터 데이터를 수신하는 과정(420, 440) 이외에는 보안 도메인(320) 내에서 수행되는 프로세스에 관여할 수 없다.
따라서, 암호화 장치에 대해 코드리프트 공격이 이루어지는 경우, 일반 도메인(310) 내의 데이터만을 덤프하기 때문에, 코드리프트 공격자가 화이트 박스 암호화 모듈이 수행하는 알고리즘은 파악이 가능하나 보안 도메인(320)에서 수행되는 인코딩 알고리즘에 대해서는 파악이 불가능하다.
따라서, 본 발명의 일 실시예에 따른 암호화 장치는 코드리프트 공격에 대응한 보안성을 제공할 수 있다.
도 5는 본 발명의 제2 실시예에 따른 암호화 장치를 예시한 블록도이다.
도 5를 참조하면, 암호화 장치는 통신 인터페이스(510), 프로세서(520), 메모리(530), 스토리지(540) 및 외부 인코더(550)를 포함한다.
통신 인터페이스(510)는 당해 암호화 장치와 연결된 외부 디바이스와 미리 지정된 프로토콜에 따른 통신을 수행하여 암호화가 수행될 대상인 입력 데이터를 수신한다. 또한, 통신 인터페이스(510)는 암호화가 완료된 출력 데이터를 외부 디바이스로 전송할 수 있다.
프로세서(510)는 메모리(520)에 로딩된 프로그램에 따라 암호화를 위한 기능을 수행한다. 또한, 프로세서(510)는 가상 머신(virtual machine)을 프로그램에 따라 운용하여, 가상 머신 상에서 수행되는 프로세스를 수행할 수 있다.
메모리(530)는 암호화를 위한 프로그램을 저장한다. 프로세서(520)는 메모리(530)에 저장된 프로그램에 엑세스 할 수 있다. 또한, 메모리(530)는 도 3을 참조하여 상술한 바와 동일한 구조의 일반 도메인(310) 및 보안 도메인(320)을 포함할 수 있고, 메모리(530)는 보안 도메인(320) 상에 가상 머신(virtual machine)의 인코딩을 위한 프로그램을 저장할 수 있다. 이 때, 메모리(530)는 휘발성 메모리일 수 있다.
스토리지(540)는 암호화를 위한 프로그램을 저장하는 저장 매체이다. 프로세서(520)는 스토리지(540)에 저장된 프로그램을 메모리(530)로 로딩할 수 있다. 또한, 스토리지(530)는 가상 머신의 동작에 필요한 프로그램을 저장할 수 있다.
외부 인코더(550)는 자체적인 프로세서, 메모리를 구비하고, 자체적인 메모리에 저장된 프로그램에 따라 인코딩을 수행한다. 예를 들어, 외부 인코더(550)는 유심(USIM: Universal Subscriber Identity Module) 등의 암호화 장치 내에 장착될 수 있는 모듈일 수 있다.
도 6은 본 발명의 제2 실시예에 따른 암호화 장치가 가상 머신 및 외부 인코더를 이용하여 암호화를 수행하는 과정을 예시한 순서도이다.
도 6을 참조하면, 단계 610에서 암호화 장치는 입력 데이터를 외부 인코더(550)로 전송한다.
단계 620에서 암호화 장치는 외부 인코더(550)를 통해 입력 데이터를 인코딩하여 인코딩 데이터를 생성한다.
단계 630에서 암호화 장치는 외부 인코더(550)로부터 생성된 인코딩 데이터를 보안 도메인(320)에 저장한다.
단계 640에서 암호화 장치는 보안 도메인(320)의 화이트박스 암호화 모듈을 통해 인코딩 데이터를 암호화하여 암호 데이터를 생성한다. 이 때, 화이트박스 암호화 모듈은 보안 도메인(320) 상에서 동작하도록 구성된 소프트웨어 모듈일 수 있다.
단계 650에서 암호화 장치는 암호 데이터를 외부 인코더(550)로 전송한다.
단계 660에서 암호화 장치는 외부 인코더(550)를 통해 암호 데이터를 인코딩하여 출력 데이터를 생성한다. 이 때, 단계 520 및 560의 인코딩 과정은 상이한 인코딩 과정일 수 있다.
단계 670에서 암호화 장치는 출력 데이터를 일반 도메인(310)으로 전송하고, 일반 도메인(310)의 출력 데이터를 외부 디바이스로 출력한다.
도 7은 본 발명의 제2 실시예에 따른 암호화 장치가 가상 머신 및 외부 인코더를 이용하여 암호화를 수행하는 과정을 예시한 개념도이다.
도 7을 참조하면, 본 발명의 일 실시예에 따른 암호화 장치의 보안 도메인(320) 내의 데이터는 보안 도메인(320) 상에서 동작하도록 구성된 프로세스에 의해서만 엑세스가 가능하다.
따라서, 암호화 장치에 대해 코드리프트 공격이 이루어지는 경우, 일반 도메인(310) 내의 데이터만을 덤프하기 때문에, 코드리프트 공격자가 외부 인코더(560)로 데이터를 전송하는 과정(710)이나 외부 인코더(560)에서 일반 도메인으로 데이터를 전송하는 과정(740)을 파악할 수 있을 뿐, 보안 도메인(320)에서 수행되는 화이트 박스 암호화 모듈이 수행하는 알고리즘에 대해서는 파악할 수 없다.
또한, 암호화 장치의 보안 도메인(320) 상에 코드리프트 공격이 추가적으로 발생하더라도, 코드리프트 공격자가 외부 인코더(550)에서 인코딩 과정이 수행되기 때문에 화이트박스 암호화 알고리즘 및 외부 인코더(560)로부터 데이터를 수신하는 과정(720) 및 외부 인코더(560)로 데이터를 전송하는 과정(730)을 파악할 수 있을 뿐이고, 전체 암호화 과정에 대한 알고리즘을 파악할 수 없다.
따라서, 본 발명의 일 실시예에 따른 암호화 장치는 가상 머신 및 외부 인코더를 통해 암호화를 수행하는 경우, 일반 도메인(310) 및 보안 도메인(320)에 대해 코드리프트 공격이 이루어진다고 하더라도 보안성을 유지할 수 있다.
이제까지 본 발명에 대하여 그 실시 예를 중심으로 살펴보았다. 전술한 실시 예 외의 많은 실시 예들이 본 발명의 특허청구범위 내에 존재한다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시 예는 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
Claims (16)
- 일반 도메인 및 보안 도메인을 포함하고, 일반 도메인 및 보안 도메인 각각에 미리 지정된 프로그램을 저장하는 메모리; 및
상기 프로그램에 따라 입력 데이터에 대한 암호화 과정을 수행하는 프로세서;
를 포함하되,
상기 프로그램은,
입력 데이터를 보안 도메인에 전송하고,
제1 인코딩 프로세스를 이용하여 입력 데이터를 상기 보안 도메인 상에서 인코딩하여 인코딩 데이터를 생성하고,
인코딩 데이터를 일반 도메인에 전송하고,
상기 일반 도메인 상의 화이트박스 암호화 모듈을 통해 상기 인코딩 데이터에 대해 암호화를 수행하여 암호화 데이터를 생성하고,
암호화 데이터를 보안 도메인에 전송하고,
제2 인코딩 프로세스를 이용하여 상기 암호화 데이터를 상기 보안 도메인 상에서 인코딩하여 출력 데이터를 생성하고,
출력 데이터를 일반 도메인에 전송하도록 구성되는 것을 특징으로 하는 암호화 장치.
- 제1 항에 있어서,
상기 프로그램은,
상기 일반 도메인 및 상기 보안 도메인에 각각 저장되고,
상기 보안 도메인에 저장된 프로그램에 따라 상기 입력 데이터를 상기 보안 도메인 상에서 인코딩하여 인코딩 데이터를 생성하고, 상기 암호화 데이터를 상기 보안 도메인 상에서 인코딩하여 출력 데이터를 생성하도록 구성되고,
상기 일반 도메인에 저장된 프로그램에 따라 상기 일반 도메인 상의 화이트박스 암호화 모듈을 통해 상기 인코딩 데이터에 대해 암호화를 수행하여 암호화 데이터를 생성하도록 구성되는 것을 특징으로 하는 암호화 장치.
- 제2 항에 있어서,
상기 보안 도메인은 가상 머신(virtual machine)에 의해 운영되는 영역인 것을 특징으로 하는 암호화 장치.
- 제1 항에 있어서,
상기 프로그램은
상기 출력 데이터를 일반 도메인에 저장하고, 일반 도메인에 저장된 상기 출력 데이터를 외부 디바이스로 출력하도록 구성되는 것을 특징으로 하는 암호화 장치.
- 일반 도메인 및 보안 도메인을 포함하고, 일반 도메인 및 보안 도메인 각각에 미리 지정된 프로그램을 저장하는 메모리; 및
상기 프로그램에 따라 입력 데이터에 대한 암호화 과정을 수행하는 프로세서; 및
메모리와 분리되고, 미리 지정된 인코딩 과정을 수행하는 외부 인코더;
를 포함하되,
상기 프로그램은,
입력 데이터를 상기 외부 인코더에 전송하고,
제1 인코딩 프로세스를 이용하여 외부 인코더를 통해 입력 데이터를 인코딩하여 인코딩 데이터를 생성하고,
인코딩 데이터를 보안 도메인에 전송하고,
상기 보안 도메인 상의 화이트박스 암호화 모듈을 통해 상기 인코딩 데이터에 대해 암호화를 수행하여 암호화 데이터를 생성하고,
암호화 데이터를 외부 인코더에 전송하고,
제2 인코딩 프로세스를 이용하여 상기 암호화 데이터를 상기 외부 인코더를 통해 인코딩하여 출력 데이터를 생성하고,
출력 데이터를 일반 도메인에 전송하도록 구성되는 것을 특징으로 하는 암호화 장치.
- 제5 항에 있어서,
상기 프로그램은,
상기 일반 도메인 및 상기 보안 도메인에 각각 저장되고,
상기 일반 도메인에 저장된 프로그램에 따라 상기 외부 인코더로 입력 데이터를 전송하고 상기 외부 인코더로부터 출력 데이터를 수신하고,
상기 보안 도메인에 저장된 프로그램에 따라 상기 보안 도메인 상의 화이트박스 암호화 모듈을 통해 상기 인코딩 데이터에 대해 암호화를 수행하여 암호화 데이터를 생성하도록 구성되는 것을 특징으로 하는 암호화 장치.
- 제6 항에 있어서,
상기 보안 도메인은 가상 머신(virtual machine)에 의해 운영되는 영역인 것을 특징으로 하는 암호화 장치.
- 제5 항에 있어서,
상기 외부 인코더는 미리 지정된 인코딩을 수행하는 유심(USIM)인 것을 특징으로 하는 암호화 장치.
- 암호화 장치가 암호화를 수행하는 방법에 있어서,
외부 디바이스로로부터 입력 데이터를 수신하는 단계:
입력 데이터를 메모리의 보안 도메인으로 전송하는 단계;
제1 인코딩 프로세스를 이용하여 입력 데이터를 보안 도메인 상에서 인코딩하여 인코딩 데이터를 생성하는 단계;
인코딩 데이터를 메모리의 보안 도메인으로 전송하는 단계;
일반 도메인 상의 화이트박스 암호화 모듈을 통해 상기 인코딩 데이터에 대해 암호화를 수행하여 암호화 데이터를 생성하는 단계;
암호화 데이터를 보안 도메인으로 전송하는 단계; 및
제2 인코딩 프로세스를 이용하여 상기 암호화 데이터를 상기 보안 도메인 상에서 인코딩하여 출력 데이터를 생성하는 단계
를 포함하는 암호화 방법.
- 제9 항에 있어서,
상기 입력 데이터를 보안 도메인 상에서 인코딩하여 인코딩 데이터를 생성하는 단계 및 상기 암호화 데이터를 상기 보안 도메인 상에서 인코딩하여 출력 데이터를 생성하는 단계는 상기 보안 도메인에 저장된 프로그램에 따라 수행되는 단계이고,
상기 일반 도메인 상의 화이트박스 암호화 모듈을 통해 상기 인코딩 데이터에 대해 암호화를 수행하여 암호화 데이터를 생성하는 단계는 상기 일반 도메인에 저장된 프로그램에 따라 수행되는 단계인 것을 특징으로 하는 암호화 방법.
- 제10 항에 있어서,
상기 보안 도메인은 가상 머신(virtual machine)에 의해 운영되는 메모리 영역인 것을 특징으로 하는 암호화 방법.
- 제9 항에 있어서,
상기 출력 데이터를 일반 도메인에 저장하고, 일반 도메인에 저장된 상기 출력 데이터를 외부 디바이스로 출력하는 단계를 더 포함하는 암호화 방법.
- 암호화 장치가 암호화를 수행하는 방법에 있어서,
입력 데이터를 외부 인코더에 전송하는 단계;
제1 인코딩 프로세스를 이용하여 외부 인코더를 통해 입력 데이터를 인코딩하여 인코딩 데이터를 생성하는 단계;
인코딩 데이터를 보안 도메인에 전송하는 단계;
보안 도메인 상의 화이트박스 암호화 모듈을 통해 상기 인코딩 데이터에 대해 암호화를 수행하여 암호화 데이터를 생성하는 단계;
암호화 데이터를 외부 인코더에 전송하는 단계;
제2 인코딩 프로세스를 이용하여 상기 암호화 데이터를 상기 외부 인코더를 통해 인코딩하여 출력 데이터를 생성하는 단계; 및
출력 데이터를 일반 도메인에 전송하는 단계를 포함하는 암호화 방법.
- 제13 항에 있어서,
상기 보안 도메인 상의 화이트박스 암호화 모듈을 통해 상기 인코딩 데이터에 대해 암호화를 수행하여 암호화 데이터를 생성하는 단계는 상기 보안 도메인에 저장된 프로그램에 따라 수행되는 단계인 것을 특징으로 하는 암호화 방법.
- 제14 항에 있어서,
상기 보안 도메인은 가상 머신(virtual machine)에 의해 운영되는 영역인 것을 특징으로 하는 암호화 방법.
- 제13 항에 있어서,
상기 외부 인코더는 미리 지정된 인코딩을 수행하는 유심(USIM)인 것을 특징으로 하는 암호화 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150007596A KR102311340B1 (ko) | 2015-01-15 | 2015-01-15 | 암호화 장치 및 방법 |
US14/925,872 US9853952B2 (en) | 2015-01-15 | 2015-10-28 | Apparatus and method for encryption |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150007596A KR102311340B1 (ko) | 2015-01-15 | 2015-01-15 | 암호화 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160088513A KR20160088513A (ko) | 2016-07-26 |
KR102311340B1 true KR102311340B1 (ko) | 2021-10-15 |
Family
ID=56408623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150007596A KR102311340B1 (ko) | 2015-01-15 | 2015-01-15 | 암호화 장치 및 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9853952B2 (ko) |
KR (1) | KR102311340B1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3112643B1 (fr) * | 2020-07-15 | 2024-05-03 | Banks And Acquirers Int Holding | Dispositif, méthode et programme pour une communication sécurisée entre boîtes blanches |
WO2022231875A1 (en) * | 2021-04-29 | 2022-11-03 | Arris Enterprises Llc | Cloud-based whitebox node locking |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140295794A1 (en) * | 2011-03-30 | 2014-10-02 | Jeroen Mathias Doumen | Enabling a software application to be executed on a mobile station |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9710623B2 (en) * | 2008-03-05 | 2017-07-18 | Irdeto B.V. | Cryptographic system |
EP2227015B1 (en) * | 2009-03-02 | 2018-01-10 | Irdeto B.V. | Conditional entitlement processing for obtaining a control word |
EP2430584B1 (en) | 2009-05-06 | 2019-11-13 | Irdeto B.V. | Interlocked binary protection using whitebox cryptography |
EP2348725A1 (en) * | 2010-01-26 | 2011-07-27 | Irdeto Access B.V. | Computational efficiently obtaining a control word in a receiver using transformations |
EP2362573A1 (en) * | 2010-02-19 | 2011-08-31 | Irdeto B.V. | Device and method for establishing secure trust key |
KR20120072011A (ko) | 2010-12-23 | 2012-07-03 | 한국전자통신연구원 | 무결성 검증이 가능한 데이터 암호장치, 복호장치 및 방법 |
KR101744748B1 (ko) | 2011-01-05 | 2017-06-09 | 한국전자통신연구원 | 화이트박스 암호 테이블을 이용한 콘텐츠 보호 장치, 콘텐츠 암호화 및 복호화 장치 |
KR101469894B1 (ko) * | 2011-08-12 | 2014-12-08 | 한국전자통신연구원 | 도메인 분리 기반 안전 실행 환경 제공 방법 및 장치 |
EP2803009B1 (en) * | 2012-01-09 | 2019-11-20 | Koninklijke Philips N.V. | Virtual machine device having key driven obfuscation and method |
CN104919750B (zh) * | 2012-12-21 | 2017-06-06 | 皇家飞利浦有限公司 | 计算关于函数‑输入值的数据函数的计算设备和方法 |
GB201305734D0 (en) * | 2013-03-28 | 2013-05-15 | Irdeto Bv | Enabling a content receiver to access encrypted content |
GB2523758A (en) * | 2014-03-03 | 2015-09-09 | Mastercard International Inc | Secure mobile device transactions |
EP3126973A4 (en) * | 2014-03-31 | 2017-12-06 | Irdeto B.V. | Method, apparatus, and computer-readable medium for obfuscating execution of application on virtual machine |
GB2531844B (en) * | 2014-10-31 | 2019-06-26 | Hewlett Packard Development Co | Hardware-protective data processing systems and methods using an application executing in a secure domain |
US9639674B2 (en) * | 2014-12-18 | 2017-05-02 | Nxp B.V. | Using single white-box implementation with multiple external encodings |
-
2015
- 2015-01-15 KR KR1020150007596A patent/KR102311340B1/ko active IP Right Grant
- 2015-10-28 US US14/925,872 patent/US9853952B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140295794A1 (en) * | 2011-03-30 | 2014-10-02 | Jeroen Mathias Doumen | Enabling a software application to be executed on a mobile station |
Also Published As
Publication number | Publication date |
---|---|
US9853952B2 (en) | 2017-12-26 |
US20160211970A1 (en) | 2016-07-21 |
KR20160088513A (ko) | 2016-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110650010B (zh) | 一种非对称密钥中的私钥生成和使用方法、装置和设备 | |
JP6449970B2 (ja) | IoTデバイス | |
CN110690956B (zh) | 双向认证方法及系统、服务器和终端 | |
US20210036873A1 (en) | APPARATUS AND METHOD FOR AUTHENTICATING IoT DEVICE BASED ON PUF USING WHITE-BOX CRYPTOGRAPHY | |
CN105577379A (zh) | 一种信息处理方法及装置 | |
CN112115461B (zh) | 设备认证方法、装置、计算机设备和存储介质 | |
CN107368737A (zh) | 一种防止拷贝攻击的处理方法、服务器及客户端 | |
US20170353315A1 (en) | Secure electronic entity, electronic apparatus and method for verifying the integrity of data stored in such a secure electronic entity | |
KR20170097509A (ko) | 화이트 박스 암호화 기반의 연산 방법 및 그 방법을 수행하는 보안 단말 | |
US20180123789A1 (en) | Apparatus and method for generating a key in a programmable hardware module | |
US9762388B2 (en) | Symmetric secret key protection | |
KR102315632B1 (ko) | 신뢰 서버의 준동형 암호 기반 확장 가능한 그룹 키 생성 방법 및 시스템 | |
CN112152802A (zh) | 数据加密方法、电子设备及计算机存储介质 | |
CN110149312B (zh) | 数据处理方法、装置、系统及计算机可读存储介质 | |
KR102311340B1 (ko) | 암호화 장치 및 방법 | |
US20160148002A1 (en) | Key storage apparatus, key storage method and program therefor | |
JP5945525B2 (ja) | 鍵交換システム、鍵交換装置、その方法、及びプログラム | |
CN107968793B (zh) | 一种下载白盒密钥的方法、装置及存储介质 | |
US20140033318A1 (en) | Apparatus and method for managing usim data using mobile trusted module | |
CN112398818B (zh) | 一种软件激活方法及其相关装置 | |
CN111031075B (zh) | 网络服务安全访问方法、终端、系统和可读存储介质 | |
KR102512871B1 (ko) | 단일 공개 키와 관련된 복수의 사용자 디바이스의 중앙 비밀 키 관리 방법 | |
US20190052610A1 (en) | Apparatus and method for encapsulation of profile certificate private keys or other data | |
CN111641497A (zh) | 一种对敏感参数进行自动解密的方法及装置 | |
KR20150139304A (ko) | 마스터 키를 보호하기 위한 암호화 장치 및 그 방법 |
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 |