KR101929315B1 - 하드웨어 보안 모듈 및 이를 이용한 하드웨어 보안 디바이스 - Google Patents
하드웨어 보안 모듈 및 이를 이용한 하드웨어 보안 디바이스 Download PDFInfo
- Publication number
- KR101929315B1 KR101929315B1 KR1020170163259A KR20170163259A KR101929315B1 KR 101929315 B1 KR101929315 B1 KR 101929315B1 KR 1020170163259 A KR1020170163259 A KR 1020170163259A KR 20170163259 A KR20170163259 A KR 20170163259A KR 101929315 B1 KR101929315 B1 KR 101929315B1
- Authority
- KR
- South Korea
- Prior art keywords
- security key
- unit
- data
- security
- key
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/12—Fingerprints or palmprints
- G06V40/1365—Matching; Classification
-
- G06K9/00087—
Landscapes
- Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
본 발명의 일 실시 예에 따른 하드웨어 보안 모듈은, 암호화 및 복호화에 요구되며, 개인키, 전용키 및 공개키를 포함하는 보안키 생성 요청에 따라 램덤하게 보안키를 생성하는 보안키 생성부, 상기 보안키 생성부에서 생성한 보안키를 저장하고, 보안키 전송 요청에 따라 상기 저장된 보안키를 전송하는 보안키 저장부, 상기 보안키 생성부에 상기 보안키 생성 요청을 하며, 상기 생성된 보안키를 상기 보안키 저장부에 저장 하거나 상기 저장된 보안키를 삭제하고, 보안키 사용 요청을 수신하면, 상기 사용 요청한 보안키가 저장된 위치 번호를 확인하고, 상기 사용 요청한 보안키를 암복호화 엔진부에 전송하는 보안키 관리부 및 상기 보안키 관리부로부터 전송 받은 보안키를 휘발성 버퍼에 임시 저장하는 보안키 버퍼부, 데이터에 대한 암호화 및 복호화 기능을 선택하는 기능 선택부, 암호화 및 복호화를 위한 데이터를 전송 받아 기 정해진 데이터 버퍼공간에 전송하는 데이터 버퍼부, 상기 기능 선택부의 암호화 기능 선택에 따라 하드웨어 방식으로 암호화를 수행하는 암호화 블록부, 상기 기능 선택부의 복호화 기능 선택에 따라 하드웨어 방식으로 복호화를 수행하는 복호화 블록부 및 상기 암호화 블록부 및 복호화 블록부에서 암호화 및 복호화된 상기 데이터를 임시로 저장하는 버퍼 메모리 공간을 포함하는 모듈 데이터 출력부를 포함하는 암복호화 엔진부를 포함한다.
Description
본 발명은 생체정보를 이용하여 사용자를 인증할 수 있는 생체정보 하드웨어 보안 모듈 및 이를 이용한 하드웨어 보안 디바이스에 관한 것이다.
정보보호 및 인증기술에 있어서, 개인의 인증정보와 및 금융 거래를 위한 비밀번호 등의 정보를 하드웨어적으로 또한 암호학적으로 안전하게 관리하는 장치 및 시스템의 개발기술 필요성은 인터넷의 보급과 함께 제기되어 왔다.
이 비밀정보는 개인을 인증하고 본인이 직접 특정 행위를 한 것을 확인하는 수단이 되기 때문에, 만일 이 비밀 정보가 타인에게 노출된다면 행위자를 특정할 수 없어서 전체 금융거래 체계가 붕괴될 수 있으므로 매우 안전하게 관리되어야 한다.
이와 같은 고도의 보안성을 제공하기 위해, 하드웨어적으로 동시에 암호학적으로 안전한 키 관리시스템을 탑재한 하드웨어 보안 모듈(Hardware Secure Module, HSM)이라는 개념이 소개되고 있다.
HSM은 내부에 자체적으로 비밀 키를 생성하고 이를 바탕으로 유도 키 생성 및 데이터의 암/복호화를 처리하는 장치로서, 어떠한 방법으로도 내부에 저장된 데이터를 추출할 수 없고, 만일 물리적인 방법으로 데이터를 추출하고자 한다면 자체적으로 데이터를 소멸시키는 등의 안전장치를 확보하고, 이에 대한 공인기관의 인증을 받음으로써 비밀정보의 안전을 보장할 수 있는 장치이다.
따라서 HSM은 사이버 거래와 같이 대면이 아닌 거래 방식에서 거래의 안전성을 확실하게 보장할 수 있는 수단이 되기 때문에, 금융거래, 통신회사의 가입자 인증 시스템 등에 널리 이용되고 있다.
그리고 모바일 단말에 내장되는 HSM은 하드웨어 암호 코프로세서(Cryptographic Coprocessor) 기반의 암호엔진, 메모리 등과 같은 하드웨어 자원을 이용하여 보안작업을 처리하는 일종의 임베디드 시스템으로 볼 수도 있다.
금융거래, 통신회사의 가입자 인증, 모바일 단말의 프로그램 업데이트, 전자서명 등 다양한 분야에 HSM 기술이 사용되지만, 이러한 기술은 모두 보안키가 인터페이스를 통해 외부로 출력하기 때문에 해킹으로부터 안전하지 않다는 문제점이 있다.
본 발명이 해결하고자 하는 과제는, 생체정보를 이용하여 보안을 강화한 HSM 모듈을 제공하는 것이다.
또한, 본 발명이 해결하고자 하는 과제는 암복호화 로직 및 신호처리가 외부로 유출하지 않고 보안성을 강화할 할 수 있는 HSM을 제공하는 것이다.
본 발명의 일 실시 예에 따른 하드웨어 보안 모듈은, 암호화 및 복호화에 요구되며, 개인키, 전용키 및 공개키를 포함하는 보안키 생성 요청에 따라 램덤하게 보안키를 생성하는 보안키 생성부, 상기 보안키 생성부에서 생성한 보안키를 저장하고, 보안키 전송 요청에 따라 상기 저장된 보안키를 전송하는 보안키 저장부, 상기 보안키 생성부에 상기 보안키 생성 요청을 하며, 상기 생성된 보안키를 상기 보안키 저장부에 저장 하거나 상기 저장된 보안키를 삭제하고, 보안키 사용 요청을 수신하면, 상기 사용 요청한 보안키가 저장된 위치 번호를 확인하고, 상기 사용 요청한 보안키를 암복호화 엔진부에 전송하는 보안키 관리부 및 상기 보안키 관리부로부터 전송 받은 보안키를 휘발성 버퍼에 임시 저장하는 보안키 버퍼부, 데이터에 대한 암호화 및 복호화 기능을 선택하는 기능 선택부, 암호화 및 복호화를 위한 데이터를 전송 받아 기 정해진 데이터 버퍼공간에 전송하는 데이터 버퍼부, 상기 기능 선택부의 암호화 기능 선택에 따라 하드웨어 방식으로 암호화를 수행하는 암호화 블록부, 상기 기능 선택부의 복호화 기능 선택에 따라 하드웨어 방식으로 복호화를 수행하는 복호화 블록부 및 상기 암호화 블록부 및 복호화 블록부에서 암호화 및 복호화된 상기 데이터를 임시로 저장하는 버퍼 메모리 공간을 포함하는 모듈 데이터 출력부를 포함하는 암복호화 엔진부를 포함한다.
일 실시 예에 따르면, 상기 보안키 버퍼부는 휘발성 메모리이며, 상기 보안키 저장부는 전기적 신호에 의해서만 초기화될 수 있다.
일 실시 예에 따르면, 상기 암호화 블록부 및 복호화 블록부에서 사용하는 개인키 및 전용키는 상기 보안키 관리부에서 임시적으로 전송 받으며, 상기 개인키 및 전용키가 외부에 노출 되지 않을 수 있다.
일 실시 예에 따르면, 상기 보안키 관리부에서 생성되는 보안키가 포함하는 공개키는 상기 하드웨어 보안 모듈의 외부로 전송 가능한 키일 수 있다.
일 실시 예에 따르면, 프로세서로부터 상기 기능 선택부에 KEY생성 명령어가 전송되면, 상기 보안키 생성부의 난수 발생기 (RNG: Random Number Generation)를 통해 물리적인 랜덤 번호를 발생시키고, 상기 발생된 보안키는 상기 보안키 저장부의 DB 공간에 저장되며, 상기 보안키 관리부는 상기 보안키 저장부의 DB 공간의 번호를 기록하며, 상기 보안키 저장부의 레지스터 공간에 상기 생성된 보안키의 DB 공간의 번호를 기록하고, 상기 기록된 보안키가 개인키, 전용키 및 공개키 중 어떤 것인지 종류를 함께 기록하며, 상기 프로세서로부터 상기 기능 선택부에 암호화 명령어가 전송되면 암호화에 사용되는 알고리즘에 대한 정보를 확인하고, 상기 보안키 저장부의 DB 공간의 번호를 확인하여, 상기 보안키 관리부에 상기 확인한 보안키를 요청하며, 임시 버퍼에 상기 확인한 보안키를 복사하고, 암호화를 위한 데이터를 상기 데이터 버퍼부에 전송하며, 결합된 임시 보안키와 상기 데이터 버퍼부에 전송한 상기 데이터를 상기 암호화 블록부에 전송하며, 암호화를 위한 상기 데이터의 사이즈만큼 암호화 하며, 상기 암호화 블록부가 암호화한 상기 데이터는 상기 데이터 출력부로 전송되며 상기 프로세서의 플래쉬 메모리로 상기 데이터가 전송되어 상기 프로세스가 요청한 위치로 상기 데이터를 처리할 수 있다.
일 실시 예에 따르면, 프로세서로부터 상기 기능 선택부에 KEY생성 명령어가 전송되면, 상기 보안키 생성부의 난수 발생기 (RNG: Random Number Generation)를 통해 물리적인 랜덤 번호를 발생시키고, 상기 발생된 보안키는 상기 보안키 저장부의 DB 공간에 저장되며, 상기 보안키 관리부는 상기 보안키 저장부의 DB 공간의 번호를 기록하며, 상기 보안키 저장부의 레지스터 공간에 상기 생성된 보안키의 DB 공간의 번호를 기록하고, 상기 기록된 보안키가 개인키, 전용키 및 공개키 중 어떤 것인지 종류를 함께 기록하며, 상기 프로세서로부터 상기 기능 선택부에 복호화 명령어가 전송되면 복호화에 사용되는 알고리즘에 대한 정보를 확인하고, 상기 보안키 저장부의 DB 공간의 번호를 확인하여, 상기 보안키 관리부에 상기 확인한 보안키를 요청하며, 임시 버퍼에 상기 확인한 보안키를 복사하고, 복호화를 위한 데이터를 상기 데이터 버퍼부에 전송하며, 결합된 임시 보안키와 상기 데이터 버퍼부에 전송한 상기 데이터를 상기 복호화 블록부에 전송하며, 복호화를 위한 상기 데이터의 사이즈만큼 복호화 하며, 상기 복호화 블록부가 복호화한 상기 데이터는 상기 데이터 출력부로 전송되며 상기 프로세서의 플래쉬 메모리로 상기 데이터가 전송되어 상기 프로세스가 요청한 위치로 상기 데이터를 처리할 수 있다.
한편, 본 발명의 목적을 달성하기 위한 또 다른 실시 예에 따른 하드웨어 보안 디바이스는 CPU, MPU및 MCU 중 어느 하나 이상을 포함하는 프로세서, 데이터에 대한 암호화 및 복호화를 진행하는 하드웨어 보안 모듈, 데이터 전송을 위한 데이터 버스, 상기 데이터 저장을 위한 휘발성 메모리, 상기 데이터 저장을 위한 비휘발성 메모리 및 외부 통신을 위한 통신 인터페이스를 포함한다.
일 실시 예에 따르면, 상기 하드웨어 보안 디바이스는, 상기 통신 인터페이스를 통해 외부의 호스트 프로세서가 전송하는 상기 데이터에 대한 암호화 및 복호화를 진행하여, 상기 외부의 호스트 프로세서에 암호화 및 복호화를 진행한 데이터를 전송할 수 있다.
일 실시 예에 따르면, 상기 데이터는 적어도 하나 이상의 생체 인식 데이터일 수 있다.
일 실시 예에 따르면, 상기 하드웨어 보안 디바이스는, 생체 인식 센서 및 영상 인식 센서 중 어느 하나 이상과 상기 통신 인터페이스를 통해 데이터를 전송 받을 수 있다.
일 실시 예에 따르면, 상기 하드웨어 보안 디바이스는, 제1 외부 호스트 프로세서 또는 제2 외부 호스트 프로세서와 상기 통신 인터페이스를 통해 데이터를 전송 받으며, 상기 제1 외부 호스트 프로세서로부터 전송 받은 데이터를 암호화하여 상기 제1 외부 호스트 프로세서 또는 제2 외부 호스트 프로세서에 전송하며, 이 경우, 상기 제1 외부 호스트 프로세서는 상기 암호화한 데이터의 보안키의 DB 번호를 지정하거나, 지정하지 않는 경우 상기 보안키의 DB 번호를 자동으로 생성하여 상기 제2 외부 호스트 프로세서에 전송할 수 있다.
일 실시 예에 따르면, 상기 하드웨어 보안 디바이스는, 복호화를 진행하는 경우, 상기 제2 외부 호스트 프로세서로부터 상기 전송 받은 데이터의 보안키의 DB 번호 및 상기 데이터의 암호화에 사용된 알고리즘에 대한 정보를 전송 받을 수 있다.
한편, 상기 하드웨어 보안 디바이스가 탑재된 스마트 자동차로 구현할 수도 있다.
본 발명의 실시 예에 따르면, 보안키가 외부로 유출되지 않고 하드웨어 보안 모듈 내에서만 동작하므로 보안성을 보다 강화할 수 있다.
또한, 본 발명의 실시 예에 따르면, 생체정보를 암호화하여 보안성을 강화할 수 있다.
또한, 본 발명의 실시 예에 따르면, 암호화 또는 복호화된 데이터를 휘발성 메모리에 저장함으로써 데이터가 외부로 유출되는 것을 방지할 수 있다.
도 1은 본 발명의 일 실시 예에 따른 하드웨어 보안 모듈을 나타낸 블럭도이다.
도 2는 도 1의 보안키 생성 예를 나타낸 것이다.
도 3은 본 발명의 일 실시 예에 따른 하드웨어 보안 모듈의 동작 프로세스를 나타낸 것이다.
도 4는 본 발명의 일 실시 예에 따른 하드웨어 보안 시스템을 나타낸 블럭도이다.
도 5는 본 발명의 다른 일 실시 예에 따른 하드웨어 보안 시스템을 나타낸 블럭도이다.
도 6은 본 발명의 또 다른 일 실시 예에 따른 하드웨어 보안 시스템을 나타낸 블럭도이다.
도 7은 본 발명의 하드웨어 보안 모듈 및 시스템의 적용예를 나타낸 것이다.
도 8은 본 발명의 또 다른 실시 예에 따른 하드웨어 보안 모듈의 전체 구성을 나타낸 도면이다.
도 9는 본 발명의 또 다른 실시 예에 따른 하드웨어 보안 디바이스의 전체 구성을 나타낸 도면이다.
도 2는 도 1의 보안키 생성 예를 나타낸 것이다.
도 3은 본 발명의 일 실시 예에 따른 하드웨어 보안 모듈의 동작 프로세스를 나타낸 것이다.
도 4는 본 발명의 일 실시 예에 따른 하드웨어 보안 시스템을 나타낸 블럭도이다.
도 5는 본 발명의 다른 일 실시 예에 따른 하드웨어 보안 시스템을 나타낸 블럭도이다.
도 6은 본 발명의 또 다른 일 실시 예에 따른 하드웨어 보안 시스템을 나타낸 블럭도이다.
도 7은 본 발명의 하드웨어 보안 모듈 및 시스템의 적용예를 나타낸 것이다.
도 8은 본 발명의 또 다른 실시 예에 따른 하드웨어 보안 모듈의 전체 구성을 나타낸 도면이다.
도 9는 본 발명의 또 다른 실시 예에 따른 하드웨어 보안 디바이스의 전체 구성을 나타낸 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다.
상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제2 구성요소는 제1구성요소로 명명될 수 있고, 유사하게 제1 구성요소도 제2 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부된 도면을 참조하여 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 대응하는 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 본 발명에 따른 생체정보 하드웨어 보안 모듈의 블록도를 나타낸 것이다.
도 1을 참조하면, 본 발명에 따른 생체정보 하드웨어 보안 모듈은 보안키 생성부(10), 보안키 저장부(20), 암/복호화 엔진부(30), 메모리(40), 및 프로세서(50)를 포함할 수 있다.
상기 보안키 생성부(10)는 상기 프로세서(50)로부터 암호화를 요청하는 신호를 입력받아 보안키를 생성한다. 상기 보안키는 난수발생기(RNG)를 통하여 생성되며 다수의 보안키가 생성될 수 있다. 보안키는 다양한 방식으로 생성 가능하다. 예를 들어, 소인수분해 암호 방식 시스템이나 타원곡선 암호 시스템에 의해 보안키 생성이 가능하다. 타원 곡선 암호 시스템에 의하면, 보안키 생성부(10)는 타원 곡선 방정식인 y2= x2 + ax + b를 만족하며 (여기서, a 및 b는 실수임), 특정한 방정식을 더 만족하는 (x, y) 로 이루어지는 실수체 군을 산출한다. 여기서, 특정한 방정식은 예를 들어, 덧셈 방정식, 항등원 방정식 및 결합 방정식일 수 있다. 예를 들어, 도 2에 도시되는 바와 같은 타원 곡선에서, 두 점 A 및 B의 덧셈 정의는 A 및 B를 잇는 선을 그으면 타원 곡선 위의 다른 점 R과 만나게 되고, R에 X축 대칭인 점이 C일 때에 A + B = C로 정의할 수 있다. 항등원 공식은 실수체 군 내의 임의의 원소 D에 대해서 D + G = G + D = D를 만족하는 G가 존재하는 것을 의미할 수 있다. 결합 방정식은 실수체 군 내에서 A + (B + C) = (A + B) + C가 만족하는 것을 의미할 수 있다. 이후에, 키 생성부(10) 는 위와 같은 실수체 군에 속하는 P 및 Q에 관해서 P = f(Q)를 만족하게 하는 알고리즘에 의해 보안키를 생성할 수 있다. 한편, 타원 곡선 암호 시스템은 소인수 분해 암호 시스템에 비해 생성되는 키의 길이가 짧기 때문에 키 생성 시간을 현저하게 줄일 수 있다는 장점이 있다. 예를 들어, HSM에서 대표적인 소인수 분해 암호 시스템인 RSA 2048을 이용하여 2048 비트의 키를 생성할 때에 약 10 내지 20초의 시간이 소요되지만, HSM에서 타원 곡선 암호 시스템을 이용하여 키를 생성할 때에 1초 미만의 시간이 소요된다. 실제로, RSA 2048에 의해 생성된 2048 비트의 암호는 타원 곡선 암호 시스템에 의해 생성된 224 비트의 암호와 동등한 보안 수준을 가지기 때문에, 타원 곡선 암호 시스템을 이용하여 키를 생성하는 경우, 소인수 분해 암호 시스템을 이용하여 키를 생성하는 경우와 비교하여, 보안 수준을 동등하게 유지하면서, 전자 서명을 수행하려는 사용자의 편의성를 현저하게 향상시킬 수 있다.
상기 보안키 저장부(20)는 상기 보안키 생성부에 의해 생성된 보안키를 저장한다. 다수의 보안키에 번호를 할당하여 저장할 수 있다. 즉, 보안키 저장부는 보안키에 번호를 할당하여 저장하는 보안키 데이터베이스라고 할 수 있다.
상기 암/복호화 엔진부(30)는 상기 프로세서(50)로부터 암호화 요청 신호가 입력되면 보안키 저장부(20)에 저장된 다수의 보안키 중 어느 하나를 전달받아 보안키에 따라 생체정보를 암호화 한다. 반대로 복호화 요청이 있으면 보안키 저장부에 저장된 보안키에 따라 암호화된 데이터를 복호화한다. 상기 암/복호화 엔진부(30)는 암호화를 수행하는 암호화부, 복호화를 수행하는 복호화부, 및 암호화 또는 복호화된 데이터를 출력하는 데이터 출력부로 구성될 수 있다. 상기 데이터 출력부는 암호화 또는 복호화된 데이터를 메모리(40)로 출력한다. 상기 암/복호화 엔진부(30)는 SEED, ARIA, RSA, DES, MD5, DSS, SHA 등과 같은 다양한 암/복호화 엔진이 사용될 수 있다.
상기 메모리(40)는 복호화된 데이터를 저장하기 위한 구성으로, 상기 데이터 출력부로부터 전달되는 암호화 또는 복호화된 데이터를 저장한다. 상기 메모리는 램(Random Access Memory, RAM), SRAM(Static Random Access Memory)와 같은 휘발성 메모리가 사용될 수 있다.
상기 프로세서(50)는 하드웨어 보안 모듈의 전체 동작 및 기능을 제어하는 부분으로 외부 장치로부터 전달되는 각종 정보, 메시지, 데이터 등을 처리한다.
상기와 같은 구성에 의해 하드웨어 보안 모듈은 데이터 인터페이스를 하나 이상 사용하고 암호화 또는 복호화를 선택하면 보안 키의 DB번호를 지정하게 된다. 지정된 DB에 저장된 보안키를 암/복호화 모듈로 전송하고 암호화 또는 복호화의 용도에 맞게 데이터를 암복호화할 수 있다.
도 3은 본 발명에 따른 하드웨어 보안 모듈의 동작 프로세스를 나타낸 것이다.
도 3을 참조하면, 먼저 절차가 시작되면 입력되는 프로토콜을 확인하여 암호화, 복호화, 일반 통신 중 어떤 절차인지를 확인하고, 해당 프로토콜에 따른 절차를 수행한다.
예를 들어, 암호화 프로토콜인 경우, 암호화 엔진을 확인하고, 지정된 보안키를 확인하여 평문 데이터를 요청하고, 데이터를 암호화한 후 암호화된 데이터를 전송하고 다음 프로세스를 대기한다.
다음으로, 일반 통신인 경우에는 프로토콜을 확인하여 그에 대응하는 보안키 생성이 가능한지를 확인한다. 보안키 생성이 가능하면 보안키 생성부(10)는 난수 발생에 의해 보안키를 생성하고 보안키 저장부(20)에 저장한다. 보안키 저장이 완료되면 저장완료 리턴 메시지를 생성/전송하고 다음 프로세스를 대기한다.
다음으로, 프로토콜이 복호화인 경우, 보안키 저장부(20)에 저장된 보안키를 확인하여 암호화된 데이터를 요청한다. 암호화된 데이터가 수신되면 보안키를 이용하여 암호화된 데이터를 복호화하고, 복호화된 데이터를 전송한 후 다음 프로세스를 대기한다.
지금까지 하드웨어 보안 모듈의 기본적인 구성 및 동작 프로세스를 살펴보았다. 이하에서는 도 1의 하드웨어 보안 모듈을 적용한 보안 시스템에 대해 살펴보도록 한다.
이하에서 언급되는 하드웨어 보안 모듈의 기본적인 구성은 도 1의 하드웨어 보안 모듈을 포함하고, 시스템의 특징에 따라 일부 인터페이스가 또는 구성이 추가될 수 있다.
이하에서 살펴보는 보안 시스템은 모바일 단말기, 노트북, 자동차의 ECU 다양한 시스템을 포함한다.
도 4는 상기 도 1의 하드웨어 보안 모듈을 적용한 시스템의 블록도를 나타낸 것이다.
도 4를 참조하면, 본 실시 예에 따른 시스템은 호스트 프로세서(100), 하드웨어 보안 모듈(200), 및 생체정보 인식부(300)를 포함하여 구성될 수 있다.
상기 호스트 프로세서(100)는 시스템의 주요 프로세스로 시스템 동작에 필요한 각종 동작 및 기능을 제어하며 하드웨어 보안 모듈(200)에 암호화 방식을 지정하여 전송할 수 있다. 또한, 필요에 따라 하드웨어 보안 모듈(200)에 복호화를 요청한다.
상기 하드웨어 보안 모듈(200)은 생체정보 인식부(300)로부터 생체정보를 전달받아 상기 호스트 프로세서(100)가 지정한 방호화 방식에 따라 생체정보를 암호화 또는 복호화를 수행한다.
상기 하드웨어 보다 구체적으로 살펴보면, 상기 하드웨어 보안 모듈(200)은 기능선택 인터페이스(210), 제1 내지 제3 통신 인터페이스(220, 230, 240), 보안키 저장부(250), 암/복호화 엔진부(260), 메모리(270), 및 프로세서(280)를 포함할 수 있다.
상기 기능선택 인터페이스(210)는 호스트 프로세서(100)로부터 기능 수행에 대한 정보를 전달받는다. 앞서 살펴본 바와 같이 호스트 프로세서(100)는 하드웨어 보안 모듈(200)로 암호화를 요청하거나 복호화를 요청한다. 기능선택 인터페이스(210)는 이러한 신호를 입력받아 암호화 또는 복호화를 수행하도록 한다.
상기 제1 통신 인터페이스(220)는 상기 호스트 프로세서와 데이터를 주고받는 인터페이스로 USB, UART, SPI, I2C 등의 다양한 인터페이스가 사용될 수 있다.
상기 제2 통신 인터페이스(220)는 상기 생체정보 인식부(300)와 데이터를 주고 받는 인터페이스로 USB, UART, SPI, I2C 등의 다양한 인터페이스가 사용될 수 있다. 즉, 제2 통신 인터페이스(230)을 통해 생체정보 인식부(300)로부터 생체정보를 로오 데이터(Raw data) 형식으로 전달받는다.
그리고 제3 통신 인터페이스(240)로는 무선 인터페이스가 사용될 수 있다. 예를 들어, 제3 통신 인터페이스(240)는 무선 인터넷 모듈 및 근거리 통신 모듈을 포함할 수 있다.
상기 무선 인터넷 모듈은 무선 인터넷 접속을 위한 모듈을 말하는 것으로, 무선 인터넷 기술들에 따른 통신망에서 무선 신호를 송수신하도록 이루어진다. 무선 인터넷 기술로는, 예를 들어 WLAN(Wireless LAN), Wi-Fi(Wireless-Fidelity), Wi-Fi(Wireless Fidelity) Direct, DLNA(Digital Living Network Alliance), WiBro(Wireless Broadband), WiMAX(World Interoperability for Microwave Access), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), LTE(Long Term Evolution), LTE-A(Long Term Evolution-Advanced) 등이 있으며, 상기 무선 인터넷 모듈(7113)은 상기에서 나열되지 않은 인터넷 기술까지 포함한 범위에서 적어도 하나의 무선 인터넷 기술에 따라 데이터를 송수신하게 된다. WiBro, HSDPA, HSUPA, GSM, CDMA, WCDMA, LTE, LTE-A 등에 의한 무선인터넷 접속은 이동통신망을 통해 이루어진다는 관점에서 본다면, 상기 이동통신망을 통해 무선인터넷 접속을 수행하는 상기 무선 인터넷 모듈(7113)은 상기 이동통신 모듈(7112)의 일종으로 이해될 수도 있다.
상기 근거리 통신 모듈은 근거리 통신(Short range communication)을 위한 것으로서, 블루투스(Bluetooth), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association; IrDA), UWB(Ultra Wideband), ZigBee, NFC(Near Field Communication), Wi-Fi(Wireless-Fidelity), Wi-Fi Direct, Wireless USB(Wireless Universal Serial Bus) 기술 중 적어도 하나를 이용하여, 근거리 통신을 지원할 수 있다. 상기 근거리 무선 통신망은 근거리 무선 사용자 통신망(Wireless Personal Area Networks)일 수 있다.
상기 보안키 저장부(250)는 앞서 도 1에서 살펴본 바와 같이 보안키에 지정번호를 할당하여 저장한다.
상기 암복호화 엔진부(260)는 호스트 프로세서로부터 암호화 또는 복호화에 대한 요청이 있으면 보안키 저장부의 지정된 보안키를 사용하여 암호화 또는 복호화를 수행한다.
상기 보안키 저장부, 암복호화 엔진부, 메모리 및 프로세서와 같은 기본 구성은 도 1에 살펴본 하드웨어 보안 모듈의 구성과 동일하므로 이들에 대한 자세한 설명은 생략하기로 한다.
상기 생체정보 인식부(300)는 생체정보를 획득하고 인식하기 위한 구성으로 생체정보를 획득하기 위한 다양한 구성이 사용될 수 있다. 생체정보 인식부(300)는 다양한 생체정보를 인식하여 상기 하드웨어 보안 모듈로 전송한다. 상기 생체정보는 생체의 신체 특성(body attribute) 또는 행위 특성(action attribute)을 나타내는 정보이다. 예를 들어 생체정보는 사람얼굴(facial image), 지문(finger print), 장문(friction ridge), 혈관(blood vessel), 홍채(iris), 시망막(retina), 심전도(ECG, electrocardiogram), 뇌전도(EEG, electroencephalogram), 맥박(pulse), 혈압(blood pressure), 가슴 소리(heart sound), 가슴 또는 복부운동, 인체의 전도성(conductivity of human body) 등의 다양한 정보를 포함한다.
또한 생체정보 인식부(300)는 생체신호는 전기신호, 소리신호, 힘 신호(force signal), 전자기신호, 이미지/동영상 신호, 광신호 등 여러 종류의 형태로 수집될 수 있다. 또한, 생체신호를 수집하기 사용되는 센서는 여러 종류의 센서가 사용될 수 있다.
예를 들어, 컬러이미지 센서는 사람얼굴 이미지, 지문 이미지, 장문 이미지, 시망막 이미지 등을 수집하기 위해 사용될 수 있다. 다른 예를 들어, 적외선 이미지 센서는 혈관 이미지 등 적외선 광원에 민감한 생체특징의 이미지를 수집하기 위해 사용될 수 있다. 또 다른 예를 들어, 진동 센서(vibration sensor)는 가슴 또는 복부운동 신호 등 진동 특성(vibration attribute)을 갖고 있는 신호를 수집하기 위해 사용될 수 있다. 이 외에도, 예를 들면, 압력 센서는 혈압신호, 및 가슴 또는 복부운동 신호 등 압력과 연관된 생체신호를 수집하기 위해 사용될 수 있다. 여러 종류의 생체신호는 여러 개의 서로 다른 센서로부터 동시에 각각 수집되거나 또는 여러 종류의 생체신호를 수집할 수 있는 하나로 통합된 센서를 통해 동시에 수집될 수 있다. 예를 들면, 컬러이미지 센서와 광전 센서(photoelectric sensor)가 각각 동시에 사람얼굴 이미지와 PPG신호를 수집할 수 있거나, 컬러 이미지 센서와 광전 센서의 기능을 가지도록 통합된 센서가 동시에 사람얼굴 이미지와 PPG신호를 수집할 수 있다.
일 실시 예에 따르면, 시간변화에 따라 연속되는 생체신호 또는 시간상 연관성을 갖는 생체특징의 여러 개의 분산 데이터 포인트(distributed data point)를 획득하기 위해, 각종 생체신호의 수집은 미리 정한 시간(예를 들면, 1분내 심전도 신호 파형 수집, 또는 10초간 여러 개의 사람얼굴 이미지를 수집 등) 동안 지속될 수 있다.
수집된 생체신호는 신호전환회로를 통하여 하기와 같은 처리를 한 후 프로세서로 전송될 수 있다. 일 실시 예에 따른 생물 인증 장치는 연속된 아날로그 신호(예를 들면, 심전도 신호, PPG신호 등)를 디지털 신호로 변환하고, 신호에 포함된 잡음을 처리하며(예를 들면, 수집된 홍채 이미지에 대하여 눈꺼풀, 눈썹 등 이미지 잡음을 제거), 신호의 강도, 분포, 변화 등을 처리할 수 있다.
상기와 같은 구성에 위해 생체정보 인식부에서 취득한 생체정보는 하드웨어 보안 모듈로 전송되고, 하드웨어 보안 모듈은 호스트 프로세서의 요청에 따라 생체정보를 로오 데이터를 암호화하거나, 암호화된 데이터를 복호화하여 데이터의 무결성과 사용자 인증으로 사용할 수 있다.
이때 호스트 프로세서(100)에 전달되는 데이터는 호스트 프로세서(100)의 휘발성 메모리에 저장되어야 한다. 즉, 호스트 프로세서(100)는 데이터 처리 후 생체정보의 복호화된 데이터는 존재하지 않는다. 따라서 복호화된 데이터가 유출될 염려도 없고 보안성을 강화할 수 있다.
도5는 도 1의 하드웨어 보안 모듈을 적용한 보안 시스템의 다른 실시 예를 나타낸 블록도이다.
도 5를 참조하면, 상기 보안 시스템은 제1 호스트 프로세서(100), 제2 호스트 프로세서(120), 생체정보 인식부(300), 및 하드웨어 보안 모듈(400)을 포함한다.
도 4와 비교하면, 호스트 프로세서가 2개 사용되는 것을 확인할 수 있다. 따라서 하드웨어 보안 모듈(400)은 제1 호스트 프로세서(100)로부터 기능 선택 데이터를 입력 받는 제1 기능선택 인터페이스(410)와 제2 호스트 프로세서(120)로부터 기능 선택 데이터를 입력받는 제2 기능선택 인터페이스(420)를 포함한다.
그리고 생체정보 인식부(300)는 제1 호스트 프로세서(100)를 통해 전달될 수 있다.
다른 구성, 제1, 2통신 인터페이스, 보안키 저장부, 암복호화 엔진부, 메모리, 프로세서는 도 1 및 도 4에서 살펴본 구성과 동일하므로 자세한 설명은 생략한다. 본 실시 예에서 제3 통신 인터페이스는 생략되었지만, 필요에 따라 추가하여 사용할 수 있음은 물론이다.
상기 제1 호스트 프로세서(100)는 제1 통신 인터페이스(430)를 통해 하드웨어 보안 모듈(400)과 데이터를 주고 받을 수 있고, 제2 호스트 프로세서(120)는 제2 통신 인터페이스(440)를 통해 하드웨어 보안 모듈(400)과 데이터를 주고 받을 수 있다.
상기와 같은 구성에 의해, 제1 호스트 프로세서에서 생체정보를 보안 하드웨어 보안 모듈(400)로 전달되고, 하드웨어 보안 모듈(400)은 암호화 또는 복호화 한다.
제1 호스트 프로세서에서 제1 호스트 프로세서의 생체정보를 복호화하기 위해서는 제1 호스트 프로세서와 통신을 하여 암호화 또는 복호화 방식을 필요시 마다 새롭게 연결하여 사용하도록 한다. 따라서 보안성을 보다 강화할 수 있다.
도 6은 도 1의 하드웨어 보안 모듈을 적용한 보안 시스템의 또 다른 실시 예를 나타낸 블록도이다.
도 6을 참조하면, 상기 보안 시스템은 호스트 인터페이스(100), 생체정보 인식부(300), 및 하드웨어 보안 모듈(500)을 포함할 수 있다.
상기 생체정보 인식부(300)는 도 5의 실시 예에서와 마찬가지로 호스트 프로세서(100)를 통해 생체정보를 하드웨어 보안 모듈(500)로 전달할 수 있다.
상기 하드웨어 보안 모듈(500)은 기능선택 인터페이스(510), 통신 인터페이스(520), 보안키 저장부(530), 암복호화 엔진부(540), 메모리(550) 및 프로세스를 포함할 수 있다.
상기와 같은 구성에 의해 호스트 프로세서(100)는 생체정보 인식부(300)로부터 생체정보를 전송받아서 하드웨어 보안 모듈(500)에 암호화를 요청하고, 암호화된 데이터는 호스트 프로세서(100)의 저장 공간에 저장 후 인증이 필요한 상황에서는 하드웨어 보안 모듈(500)에 복호화를 요청하여 사용한다. 이때 휘발서 메모리에 데이터를 저장하여 데이터를 비교한 후 삭제하는 방식이 사용되기 때문에 데이터가 유출될 우려가 없다.
도 7은 본 발명에 따른 하드웨어 보안 모듈 및 시스템의 적용예를 나타낸 것이다.
도 7에 도시된 것과 같이 하드웨어 보안 모듈 및 시스템은 자동차의 엔진 ECU, 에어백 액츄에이터, 센트럴 게이트웨이 등 자동차의 여러 부분에 적용될 수 있다. 즉, 자동차 각각의 처리 장치에 중간 데이터 가공 처리자 형태로 하드웨어 모안 모듈이 사용될 수 있다.
각각의 장치별로 암호화 데이터를 전송하면, 하드웨어 보안 모듈은 중간에서 암호화 또는 복호화를 진행한다.
따라서 다수의 장치 중 어느 하나가 해킹되더라도 다른 장치는 해킹으로부터 안전하다. 예를 들어, 종래의 경우, 보안을 강화하기 위해 하드웨어 보안 모듈을 적용하다고 하더라도 ECU 가 해킹되면 자동차 전체가 해커에서 장악되지만, 본 발명에 의하면 개별 장치들에 하드웨어 보안 모듈이 적용되고 이들은 각자 독립적으로 동작하기 때문에 ECU가 해킹되더라도 다른 장치들은 해킹으로부터 안전하다. 따라서 보안성을 보다 강화할 수 있다.
도 8은 본 발명의 또 다른 실시 예에 따른 하드웨어 보안 모듈(1000)의 전체 구성을 나타낸 도면이다.
이 경우 하드웨어 보안 모듈(1000)은 암호화 및 복호화에 요구되며, 개인키, 전용키 및 공개키를 포함하는 보안키 생성 요청에 따라 램덤하게 보안키를 생성하는 보안키 생성부(1100), 상기 보안키 생성부에서 생성한 보안키를 저장하고, 보안키 전송 요청에 따라 상기 저장된 보안키를 전송하는 보안키 저장부(1200), 상기 보안키 생성부에 상기 보안키 생성 요청을 하며, 상기 생성된 보안키를 상기 보안키 저장부에 저장 하거나 상기 저장된 보안키를 삭제하고, 보안키 사용 요청을 수신하면, 상기 사용 요청한 보안키가 저장된 위치 번호를 확인하고, 상기 사용 요청한 보안키를 암복호화 엔진부(1400)에 전송하는 보안키 관리부(1300) 및 상기 보안키 관리부로부터 전송 받은 보안키를 휘발성 버퍼에 임시 저장하는 보안키 버퍼부(1410), 데이터에 대한 암호화 및 복호화 기능을 선택하는 기능 선택부(1420), 암호화 및 복호화를 위한 데이터를 전송 받아 기 정해진 데이터 버퍼공간에 전송하는 데이터 버퍼부(1430), 상기 기능 선택부의 암호화 기능 선택에 따라 하드웨어 방식으로 암호화를 수행하는 암호화 블록부(1440), 상기 기능 선택부의 복호화 기능 선택에 따라 하드웨어 방식으로 복호화를 수행하는 복호화 블록부(1450) 및 상기 암호화 블록부 및 복호화 블록부에서 암호화 및 복호화된 상기 데이터를 임시로 저장하는 버퍼 메모리 공간을 포함하는 모듈 데이터 출력부(1460)를 포함하는 암복호화 엔진부(1400)를 포함한다.
일 실시 예에 따르면, 상기 보안키 버퍼부(1410)는 휘발성 메모리이며, 상기 보안키 저장부(1200)는 전기적 신호에 의해서만 초기화될 수 있다.
일 실시 예에 따르면, 상기 암호화 블록부(1440) 및 복호화 블록부(!450)에서 사용하는 개인키 및 전용키는 상기 보안키 관리부(1300)에서 임시적으로 전송 받으며, 상기 개인키 및 전용키가 외부에 노출 되지 않을 수 있다.
일 실시 예에 따르면, 상기 보안키 관리부(1300)에서 생성되는 보안키가 포함하는 공개키는 상기 하드웨어 보안 모듈(1000)의 외부로 전송 가능한 키일 수 있다.
일 실시 예에 따르면, 프로세서(미도시)로부터 상기 기능 선택부(1420)에 KEY생성 명령어가 전송되면, 상기 보안키 생성부(1100)의 난수 발생기 (RNG: Random Number Generation, 미도시)를 통해 물리적인 랜덤 번호를 발생시키고, 상기 발생된 보안키는 상기 보안키 저장부(1200)의 DB 공간에 저장되며, 상기 보안키 관리부(1300)는 상기 보안키 저장부(1200)의 DB 공간의 번호를 기록하며, 상기 보안키 저장부(1200)의 레지스터 공간에 상기 생성된 보안키의 DB 공간의 번호를 기록하고, 상기 기록된 보안키가 개인키, 전용키 및 공개키 중 어떤 것인지 종류를 함께 기록하며, 상기 프로세서(미도시)로부터 상기 기능 선택부(1420)에 암호화 명령어가 전송되면 암호화에 사용되는 알고리즘에 대한 정보를 확인하고, 상기 보안키 저장부(1200)의 DB 공간의 번호를 확인하여, 상기 보안키 관리부(1300)에 상기 확인한 보안키를 요청하며, 임시 버퍼에 상기 확인한 보안키를 복사하고, 암호화를 위한 데이터를 상기 데이터 버퍼부(1430)에 전송하며, 결합된 임시 보안키와 상기 데이터 버퍼부(1430)에 전송한 상기 데이터를 상기 암호화 블록부(1440)에 전송하며, 암호화를 위한 상기 데이터의 사이즈만큼 암호화하며, 상기 암호화 블록부(1440)가 암호화한 상기 데이터는 상기 모듈 데이터 출력부(1460)로 전송되며 상기 프로세서(미도시)의 플래쉬 메모리로 상기 데이터가 전송되어 상기 프로세스가 요청한 위치로 상기 데이터를 처리할 수 있다.
일 실시 예에 따르면, 프로세서(미도시)로부터 상기 기능 선택부(1420)(1420)에 KEY생성 명령어가 전송되면, 상기 보안키 생성부(1100)의 난수 발생기 (RNG: Random Number Generation)를 통해 물리적인 랜덤 번호를 발생시키고, 상기 발생된 보안키는 상기 보안키 저장부(1200)의 DB 공간에 저장되며, 상기 보안키 관리부(1300)는 상기 보안키 저장부(1200)의 DB 공간의 번호를 기록하며, 상기 보안키 저장부(1200)의 레지스터 공간에 상기 생성된 보안키의 DB 공간의 번호를 기록하고, 상기 기록된 보안키가 개인키, 전용키 및 공개키 중 어떤 것인지 종류를 함께 기록하며, 상기 프로세서로부터 상기 기능 선택부(1420)에 복호화 명령어가 전송되면 복호화에 사용되는 알고리즘에 대한 정보를 확인하고, 상기 보안키 저장부(1200)의 DB 공간의 번호를 확인하여, 상기 보안키 관리부(1300)에 상기 확인한 보안키를 요청하며, 임시 버퍼에 상기 확인한 보안키를 복사하고, 복호화를 위한 데이터를 상기 데이터 버퍼부(1430)에 전송하며, 결합된 임시 보안키와 상기 데이터 버퍼부(1430)에 전송한 상기 데이터를 상기 복호화 블록부(1450)에 전송하며, 복호화를 위한 상기 데이터의 사이즈만큼 복호화 하며, 상기 복호화 블록부(1450)가 복호화한 상기 데이터는 상기 모듈 데이터 출력부(1460)로 전송되며 상기 프로세서의 플래쉬 메모리로 상기 데이터가 전송되어 상기 프로세스가 요청한 위치로 상기 데이터를 처리할 수 있다.
한편, 도 9는 본 발명의 또 다른 실시 예에 따른 하드웨어 보안 디바이스(2000)의 전체 구성을 나타낸 도면인바, 하드웨어 보안 디바이스(2000)는 CPU, MPU및 MCU 중 어느 하나 이상을 포함하는 프로세서(2100), 데이터에 대한 암호화 및 복호화를 진행하는 하드웨어 보안 모듈(1000), 데이터 전송을 위한 데이터 버스(2500), 상기 데이터 저장을 위한 휘발성 메모리(2200), 상기 데이터 저장을 위한 비휘발성 메모리(2300) 및 외부 통신을 위한 통신 인터페이스(2400)를 포함한다.
일 실시 예에 따르면, 상기 하드웨어 보안 디바이스(2000)는, 상기 통신 인터페이스(2400)를 통해 외부의 호스트 프로세서(미도시)가 전송하는 상기 데이터에 대한 암호화 및 복호화를 진행하여, 상기 외부의 호스트 프로세서(미도시)에 암호화 및 복호화를 진행한 데이터를 전송할 수 있다.
일 실시 예에 따르면, 상기 데이터는 적어도 하나 이상의 생체 인식 데이터일 수 있다.
일 실시 예에 따르면, 상기 하드웨어 보안 디바이스(2000)는, 생체 인식 센서 및 영상 인식 센서(미도시) 중 어느 하나 이상과 상기 통신 인터페이스(2400)를 통해 데이터를 전송 받을 수 있다.
일 실시 예에 따르면, 상기 하드웨어 보안 디바이스(2000)는, 제1 외부 호스트 프로세서(미도시)또는 제2 외부 호스트 프로세서(미도시)와 상기 통신 인터페이스(2400)를 통해 데이터를 전송 받으며, 상기 제1 외부 호스트 프로세서(미도시)로부터 전송 받은 데이터를 암호화하여 상기 제1 외부 호스트 프로세서(미도시)또는 제2 외부 호스트 프로세서(미도시)에 전송하며, 이 경우, 상기 제1 외부 호스트 프로세서(미도시)는 상기 암호화한 데이터의 보안키의 DB 번호를 지정하거나, 지정하지 않는 경우 상기 보안키의 DB 번호를 자동으로 생성하여 상기 제2 외부 호스트 프로세서(미도시)에 전송할 수 있다.
일 실시 예에 따르면, 상기 하드웨어 보안 디바이스(2000)는, 제1 외부 호스트 프로세서(미도시)또는 제2 외부 호스트 프로세서(미도시)와 상기 통신 인터페이스(2400)를 통해 데이터를 전송 받으며, 상기 제1 외부 호스트 프로세서(미도시)로부터 전송 받은 데이터를 암호화하여 상기 제1 외부 호스트 프로세서(미도시)또는 제2 외부 호스트 프로세서(미도시)에 전송하며, 이 경우, 상기 제1 외부 호스트 프로세서(미도시)는 상기 암호화한 데이터의 보안키의 DB 번호를 지정하거나, 지정하지 않는 경우 상기 보안키의 DB 번호를 자동으로 생성하여 상기 제2 외부 호스트 프로세서(미도시)에 전송할 수 있다.
일 실시 예에 따르면, 상기 하드웨어 보안 디바이스(2000)는, 복호화를 진행하는 경우, 상기 제2 외부 호스트 프로세서(미도시)로부터 상기 전송 받은 데이터의 보안키의 DB 번호 및 상기 데이터의 암호화에 사용된 알고리즘에 대한 정보를 전송 받을 수 있다.
한편, 도 7에 도시된 것과 마찬가지로, 상기 하드웨어 보안 디바이스(2000)가 탑재된 스마트 자동차를 구현할 수도 있다.
이상에서 본 발명에 따른 실시 예들이 설명되었으나, 이는 예시적인 것에 불과하며, 당해 분야에서 통상적 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 범위의 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 다음의 특허청구범위에 의해서 정해져야 할 것이다.
100: 호스트 프로세서
200, 400, 500, 1000: 하드웨어 보안 모듈
300: 생체정보 인식부
1100: 보안키 생성부
1200: 보안키 저장부
1300: 보안키 관리부
1400: 암복호화 엔진부
1410: 보안키 버퍼부 1420: 기능 선택부
1430: 데이터 버퍼부 1440: 암호화 블록부
1450: 복호화 블록부 1460: 모듈 데이터 출력부
2000: 하드웨어 보안 디바이스
2100: 프로세서
2200: 휘발성 메모리
2300: 비휘발성 메모리
2400: 통신 인터페이스
2500: 데이터 버스
200, 400, 500, 1000: 하드웨어 보안 모듈
300: 생체정보 인식부
1100: 보안키 생성부
1200: 보안키 저장부
1300: 보안키 관리부
1400: 암복호화 엔진부
1410: 보안키 버퍼부 1420: 기능 선택부
1430: 데이터 버퍼부 1440: 암호화 블록부
1450: 복호화 블록부 1460: 모듈 데이터 출력부
2000: 하드웨어 보안 디바이스
2100: 프로세서
2200: 휘발성 메모리
2300: 비휘발성 메모리
2400: 통신 인터페이스
2500: 데이터 버스
Claims (13)
- 암호화 및 복호화에 요구되며, 개인키, 전용키 및 공개키를 포함하는 보안키 생성 요청에 따라 난수발생기(RNG)를 이용해 랜덤하게 보안키를 생성하는 보안키 생성부 ― 상기 개인키 및 전용키는 보안키 관리부로부터 임시적으로 전송 받으며, 상기 개인키 및 전용키는 당해 하드웨어 보안 모듈 내에서만 존재하는 것으로서 외부에 노출되지 않고, 상기 공개키는 당해 하드웨어 보안 모듈의 외부로 전송 가능함 ―;
상기 보안키 생성부에서 생성한 보안키를 당해 보안키 저장부 내에 저장하고, 보안키 전송 요청에 따라 상기 저장된 보안키를 전송하는 보안키 저장부;
상기 보안키 생성부에 상기 보안키 생성 요청을 하며, 상기 생성된 보안키를 상기 보안키 저장부에 저장 하거나 상기 저장된 보안키를 삭제하고, 보안키 사용 요청을 수신하면, 상기 사용 요청한 보안키가 저장된 위치 번호를 확인하고, 상기 사용 요청한 보안키를 암복호화 엔진부에 전송하는 보안키 관리부; 및
암복호화 엔진부;
를 포함하며,
상기 암복호화 엔진부는,
당해 하드웨어 보안 모듈에서 암호화 및 복호화를 수행할 때에만 상기 보안키 관리부로부터 전송 받은 보안키를 휘발성 버퍼에 임시 저장하는 보안키 버퍼부 ― 상기 보안키 버퍼부는 휘발성 메모리이고, 전기적 신호에 의해서만 초기화 됨 ―;
데이터에 대한 암호화 및 복호화 기능을 선택하는 기능 선택부;
상기 보안키 버퍼부와 독립된 것으로서, 암호화 및 복호화를 위한 데이터를 전송 받아 기 정해진 데이터 버퍼공간에 전송하는 데이터 버퍼부;
상기 기능 선택부의 암호화 기능 선택에 따라 하드웨어 방식으로 암호화를 수행하는 암호화 블록부;
상기 기능 선택부의 복호화 기능 선택에 따라 하드웨어 방식으로 복호화를 수행하는 복호화 블록부; 및
상기 암호화 블록부 및 복호화 블록부에서 암호화 및 복호화된 상기 데이터를 임시로 저장하는 버퍼 메모리 공간을 포함하는 모듈 데이터 출력부;
를 포함하는 하드웨어 보안 모듈. - 삭제
- 삭제
- 삭제
- 제 1항에 있어서,
프로세서로부터 상기 기능 선택부에 KEY생성 명령어가 전송되면, 상기 보안키 생성부의 난수 발생기 (RNG: Random Number Generation)를 통해 물리적인 랜덤 번호를 발생시키고, 상기 발생된 보안키는 상기 보안키 저장부의 DB 공간에 저장되며, 상기 보안키 관리부는 상기 보안키 저장부의 DB 공간의 번호를 기록하며, 상기 보안키 저장부의 레지스터 공간에 상기 생성된 보안키의 DB 공간의 번호를 기록하고, 상기 기록된 보안키가 개인키, 전용키 및 공개키 중 어떤 것인지 종류를 함께 기록하며,
상기 프로세서로부터 상기 기능 선택부에 암호화 명령어가 전송되면 암호화에 사용되는 알고리즘에 대한 정보를 확인하고, 상기 보안키 저장부의 DB 공간의 번호를 확인하여, 상기 보안키 관리부에 상기 확인한 보안키를 요청하며, 임시 버퍼에 상기 확인한 보안키를 복사하고, 암호화를 위한 데이터를 상기 데이터 버퍼부에 전송하며, 결합된 임시 보안키와 상기 데이터 버퍼부에 전송한 상기 데이터를 상기 암호화 블록부에 전송하며, 암호화를 위한 상기 데이터의 사이즈만큼 암호화 하며, 상기 암호화 블록부가 암호화한 상기 데이터는 상기 모듈 데이터 출력부로 전송되며 상기 프로세서의 플래쉬 메모리로 상기 데이터가 전송되어 상기 프로세서가 요청한 위치로 상기 데이터를 처리하는,
하드웨어 보안 모듈. - 제 1항에 있어서,
프로세서로부터 상기 기능 선택부에 KEY생성 명령어가 전송되면, 상기 보안키 생성부의 난수 발생기 (RNG: Random Number Generation)를 통해 물리적인 랜덤 번호를 발생시키고, 상기 발생된 보안키는 상기 보안키 저장부의 DB 공간에 저장되며, 상기 보안키 관리부는 상기 보안키 저장부의 DB 공간의 번호를 기록하며, 상기 보안키 저장부의 레지스터 공간에 상기 생성된 보안키의 DB 공간의 번호를 기록하고, 상기 기록된 보안키가 개인키, 전용키 및 공개키 중 어떤 것인지 종류를 함께 기록하며,
상기 프로세서로부터 상기 기능 선택부에 복호화 명령어가 전송되면 복호화에 사용되는 알고리즘에 대한 정보를 확인하고, 상기 보안키 저장부의 DB 공간의 번호를 확인하여, 상기 보안키 관리부에 상기 확인한 보안키를 요청하며, 임시 버퍼에 상기 확인한 보안키를 복사하고, 복호화를 위한 데이터를 상기 데이터 버퍼부에 전송하며, 결합된 임시 보안키와 상기 데이터 버퍼부에 전송한 상기 데이터를 상기 복호화 블록부에 전송하며, 복호화를 위한 상기 데이터의 사이즈만큼 복호화 하며, 상기 복호화 블록부가 복호화한 상기 데이터는 상기 모듈 데이터 출력부로 전송되며 상기 프로세서의 플래쉬 메모리로 상기 데이터가 전송되어 상기 프로세서가 요청한 위치로 상기 데이터를 처리하는,
하드웨어 보안 모듈. - CPU, MPU및 MCU 중 어느 하나 이상을 포함하는 프로세서;
데이터에 대한 암호화 및 복호화를 진행하는 하드웨어 보안 모듈;
데이터 전송을 위한 데이터 버스;
상기 데이터를 저장하기 위한 휘발성 메모리;
상기 데이터를 저장하기 위한 비휘발성 메모리; 및
외부 통신을 위한 통신 인터페이스;
를 포함하고,
상기 하드웨어 보안 모듈은,
암호화 및 복호화에 요구되며, 개인키, 전용키 및 공개키를 포함하는 보안키 생성 요청에 따라 난수발생기(RNG)를 이용해 랜덤하게 보안키를 생성하는 보안키 생성부 ― 상기 개인키 및 전용키는 보안키 관리부로부터 임시적으로 전송 받으며, 상기 개인키 및 전용키는 당해 하드웨어 보안 모듈 내에서만 존재하는 것으로서 외부에 노출되지 않고, 상기 공개키는 당해 하드웨어 보안 모듈의 외부로 전송 가능함 ―;
상기 보안키 생성부에서 생성한 보안키를 당해 보안키 저장부 내에 저장하고, 보안키 전송 요청에 따라 상기 저장된 보안키를 전송하는 보안키 저장부;
상기 보안키 생성부에 상기 보안키 생성 요청을 하며, 상기 생성된 보안키를 상기 보안키 저장부에 저장 하거나 상기 저장된 보안키를 삭제하고, 보안키 사용 요청을 수신하면, 상기 사용 요청한 보안키가 저장된 위치 번호를 확인하고, 상기 사용 요청한 보안키를 암복호화 엔진부에 전송하는 보안키 관리부; 및
암복호화 엔진부;
를 포함하며,
상기 암복호화 엔진부는,
당해 하드웨어 보안 모듈에서 암호화 및 복호화를 수행할 때에만 상기 보안키 관리부로부터 전송 받은 보안키를 휘발성 버퍼에 임시 저장하는 보안키 버퍼부 ― 상기 보안키 버퍼부는 휘발성 메모리이고, 전기적 신호에 의해서만 초기화 됨 ―;
데이터에 대한 암호화 및 복호화 기능을 선택하는 기능 선택부;
상기 보안키 버퍼부와 독립된 것으로서, 암호화 및 복호화를 위한 데이터를 전송 받아 기 정해진 데이터 버퍼공간에 전송하는 데이터 버퍼부;
상기 기능 선택부의 암호화 기능 선택에 따라 하드웨어 방식으로 암호화를 수행하는 암호화 블록부;
상기 기능 선택부의 복호화 기능 선택에 따라 하드웨어 방식으로 복호화를 수행하는 복호화 블록부; 및
상기 암호화 블록부 및 복호화 블록부에서 암호화 및 복호화된 상기 데이터를 임시로 저장하는 버퍼 메모리 공간을 포함하는 모듈 데이터 출력부;
를 포함하는 하드웨어 보안 디바이스. - 제7항에 있어서,
상기 하드웨어 보안 디바이스는,
상기 통신 인터페이스를 통해 외부의 호스트 프로세서가 전송하는 상기 데이터에 대한 암호화 및 복호화를 진행하여, 상기 외부의 호스트 프로세서에 암호화 및 복호화를 진행한 데이터를 전송하는,
하드웨어 보안 디바이스. - 제8항에 있어서,
상기 데이터는 적어도 하나 이상의 생체 인식 데이터인,
하드웨어 보안 디바이스. - 제7항에 있어서,
상기 하드웨어 보안 디바이스는,
생체 인식 센서 및 영상 인식 센서 중 어느 하나 이상과 상기 통신 인터페이스를 통해 데이터를 전송 받는,
하드웨어 보안 디바이스. - 제10항에 있어서,
상기 하드웨어 보안 디바이스는,
제1 외부 호스트 프로세서 또는 제2 외부 호스트 프로세서와 상기 통신 인터페이스를 통해 데이터를 전송 받으며,
상기 제1 외부 호스트 프로세서로부터 전송 받은 데이터를 암호화하여 상기 제1 외부 호스트 프로세서 또는 제2 외부 호스트 프로세서에 전송하며,
이 경우, 상기 제1 외부 호스트 프로세서는 상기 암호화한 데이터의 보안키의 DB 번호를 지정하거나, 지정하지 않는 경우 상기 보안키의 DB 번호를 자동으로 생성하여 상기 제2 외부 호스트 프로세서에 전송하는,
하드웨어 보안 디바이스 - 제11항에 있어서,
상기 하드웨어 보안 디바이스는,
복호화를 진행하는 경우, 상기 제2 외부 호스트 프로세서로부터 상기 전송 받은 데이터의 보안키의 DB 번호 및 상기 데이터의 암호화에 사용된 알고리즘에 대한 정보를 전송 받는,
하드웨어 보안 디바이스. - 제7항 내지 제12항 중 어느 한 항에 있어서,
상기 하드웨어 보안 디바이스가 탑재된 스마트 자동차.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160161410 | 2016-11-30 | ||
KR20160161410 | 2016-11-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180062427A KR20180062427A (ko) | 2018-06-08 |
KR101929315B1 true KR101929315B1 (ko) | 2018-12-17 |
Family
ID=62600202
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170163259A KR101929315B1 (ko) | 2016-11-30 | 2017-11-30 | 하드웨어 보안 모듈 및 이를 이용한 하드웨어 보안 디바이스 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101929315B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024111830A1 (ko) * | 2022-11-25 | 2024-05-30 | 라인플러스 주식회사 | 사용자간에 스트리밍 형식으로 송수신되는 미디어의 암호화 방법 및 시스템 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113672948B (zh) * | 2021-07-16 | 2024-07-19 | 山东云海国创云计算装备产业创新中心有限公司 | 一种加密uart以及一种集成芯片 |
WO2024219668A1 (ko) * | 2023-04-19 | 2024-10-24 | 삼성전자 주식회사 | 생체 센서를 포함하는 전자 장치 및 그 동작 방법 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001357371A (ja) * | 2000-06-13 | 2001-12-26 | Sony Corp | 指紋照合機能付きハードウェアトークン |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5275482B2 (ja) * | 2012-01-16 | 2013-08-28 | 株式会社東芝 | ストレージメディア、ホスト装置、メモリ装置、及びシステム |
-
2017
- 2017-11-30 KR KR1020170163259A patent/KR101929315B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001357371A (ja) * | 2000-06-13 | 2001-12-26 | Sony Corp | 指紋照合機能付きハードウェアトークン |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024111830A1 (ko) * | 2022-11-25 | 2024-05-30 | 라인플러스 주식회사 | 사용자간에 스트리밍 형식으로 송수신되는 미디어의 암호화 방법 및 시스템 |
Also Published As
Publication number | Publication date |
---|---|
KR20180062427A (ko) | 2018-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10681025B2 (en) | Systems and methods for securely managing biometric data | |
CN110995642B (zh) | 使用预共享密钥提供安全连接 | |
CN106330442B (zh) | 身份认证方法、装置及系统 | |
US10007773B2 (en) | Method for generating public identity for authenticating an individual carrying an identification object | |
US20100241867A1 (en) | System and method for encrypted smart card pin entry | |
CN109165523A (zh) | 身份认证方法及系统、终端设备、服务器及存储介质 | |
KR101929315B1 (ko) | 하드웨어 보안 모듈 및 이를 이용한 하드웨어 보안 디바이스 | |
CN106056196A (zh) | 一种模块化的指纹u盘及其通信方法 | |
CN101114332A (zh) | 用于管理多个智能卡会话的系统和方法 | |
CN109375882B (zh) | 一种基于无标识生物认证的安全打印方法与系统 | |
CN108011716A (zh) | 一种密码装置及实现方法 | |
JP2006107406A (ja) | 生体認証装置及び端末 | |
Wan et al. | A lightweight continuous authentication scheme for medical wireless body area networks | |
CN210536657U (zh) | 一种基于生物识别技术的多用户智能密码终端 | |
KR102625879B1 (ko) | 생체 정보를 이용한 키를 발생하는 암호 시스템의 방법 | |
KR20180061831A (ko) | 하드웨어 보안 모듈 및 이를 이용한 하드웨어 보안 시스템 | |
KR20180041508A (ko) | 유헬스 환경에서의 에이전트와 데이터매니저간의 상호 인증방법 | |
WO2023042825A1 (ja) | 情報管理システム、認証デバイスおよび個人情報サーバ | |
KR101311310B1 (ko) | 암호 시스템 및 그 방법 | |
CN110035032A (zh) | 指纹解锁方法及指纹解锁系统 | |
Sujadevi et al. | Effortless exchange of personal health records using near field communication | |
Hein et al. | An autonomous attestation token to secure mobile agents in disaster response | |
GB2556625A (en) | Secure enrolment of biometric data | |
CN107302542B (zh) | 基于生物特征的通信方法、装置 | |
JP2007172507A (ja) | ユーザ認証システム、ユーザ認証方法、認証情報格納装置、および、認証情報格納プログラム |
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 |