KR102066487B1 - 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치 - Google Patents

하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치 Download PDF

Info

Publication number
KR102066487B1
KR102066487B1 KR1020170170000A KR20170170000A KR102066487B1 KR 102066487 B1 KR102066487 B1 KR 102066487B1 KR 1020170170000 A KR1020170170000 A KR 1020170170000A KR 20170170000 A KR20170170000 A KR 20170170000A KR 102066487 B1 KR102066487 B1 KR 102066487B1
Authority
KR
South Korea
Prior art keywords
partial key
security
key element
partial
processor
Prior art date
Application number
KR1020170170000A
Other languages
English (en)
Other versions
KR20190069763A (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 KR1020170170000A priority Critical patent/KR102066487B1/ko
Publication of KR20190069763A publication Critical patent/KR20190069763A/ko
Application granted granted Critical
Publication of KR102066487B1 publication Critical patent/KR102066487B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/73Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers

Abstract

본 발명은 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치에 관한 것으로, 제1 부분 키 요소를 통해 생성될 수 있는 대칭 키를 생성하는데 사용되는 복수의 제2 부분 키 요소들을 저장하는 복수의 보안 파티션들로 구분된 메모리, 상기 제1 부분 키 요소를 저장하고 상기 제1 부분 키 요소와 상기 복수의 제2 부분 키 요소들 중 하나로 생성되는 대칭 키를 기초로 평문의 암호화 또는 암호문의 복호화를 수행하는 보안 가속칩 및 암호화 또는 복호화 요청에 따라 상기 복수의 보안 파티션들 중 하나를 선택하여 해당 제2 부분 키 요소를 가져와서 상기 보안 가속칩에 제공하는 프로세서를 포함한다. 따라서, 본 발명은 경량 암호 알고리즘에 사용되는 비밀 키를 관리하여 보안을 강화할 수 있다.

Description

하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치{LIGHTWEIGHT ENCRYPTION ALGORITHM SECURITY APPARATUS BASED ON HARDWARE AUTHENTICATION CHIP}
본 발명은 경량 암호 알고리즘 보안 기술에 관한 것으로, 보다 상세하게는 경량 암호 알고리즘에 사용되는 비밀 키를 관리하여 보안을 강화할 수 있는 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치에 관한 것이다.
대칭 키 암호화 방식은 전송하고자 하는 데이터를 암호화하고 복호화하는데 동일한 키를 이용하는 방식이다. 대칭 키 암호화 방식은 공개키 암호화 방식에 비해 빠른 처리속도를 제공할 수 있고, 사용되는 암호키의 길이가 공개키 암호화 방식보다 상대적으로 작아서 일반적인 정보의 기밀성을 보장하기 위한 용도로 사용된다. 그러나, 대칭 키 암호화 방식은 정보 교환 당사자 간에 동일한 키를 공유해야 하기 때문에 다수의 키 관리가 불편하고, 여러 사람과의 정보 교환시 암호화 키가 유출되지 않도록 특별한 주의가 필요하다는 단점을 가지고 있다. 대표적인 대칭 키 암호 알고리즘으로는 국내의 SEED, ARIA, LEA, HIGHT 및 국외의 AES, Blowfish, Camelia 등이 있다.
한국등록특허 제10-0533154(2005.11.25)호는 디지털 저작권 관리 시스템에서의 대칭키를 이용한 암호화/복호화 방법에 관한 것으로, 랜덤값 발생 단계, 키 인식자 생성 단계, 컨텐츠를 암호화하는 암호화 단계 및 복호화 단계를 포함하고 종래의 기술에 비하여 디지털 저작권 관리 시스템에서 암호키 관리를 위한 키 인식자를 생성하여 암호 및 복호화에 키 관리의 안정성을 높이는 효과가 있다.
한국등록특허 제10-0898437(2009.05.12)호는 통신 네트워크에서 대칭 키를 관리하는 방법, 통신 디바이스 및 통신 네트워크에서 데이터를 처리하기 위한 디바이스에 관한 것으로, 네트워크의 어플라이언스로부터 암호화된 방식으로 수신된 제 1 대칭 키를 해독하는 수단과, 여기서 제 1 대칭 키의 암호화는 제 2 대칭 키의 도움으로 수행된 것이며, 네트워크의 주어진 타입의 모든 어플라이언스에 공통인 제 2 대칭 키를 포함하기 위한 메모리와, 제 1 대칭 키의 도움으로 네트워크로부터 수신된 암호화된 데이터를 해독하는 수단을 포함한다.
한국등록특허 제10-0533154(2005.11.25)호 한국등록특허 제10-0898437(2009.05.12)호
본 발명의 일 실시예는 경량 암호 알고리즘에 사용되는 비밀 키를 관리하여 보안을 강화할 수 있는 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치를 제공하고자 한다.
본 발명의 일 실시예는 경량 알고리즘에 사용되는 대칭키를 생성하는데 사용되는 복수의 부분 키 요소들을 메모리와 보안 가속칩에 분리 보관하여 보안을 강화할 수 있는 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치를 제공하고자 한다.
본 발명의 일 실시예는 메모리에 포함된 복수의 보안 파티션 각각에 대해 승인된 접근만을 허용함으로써 부분 키 요소들의 노출을 최소화할 수 있는 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치를 제공하고자 한다.
실시예들 중에서, 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치는 제1 부분 키 요소를 통해 생성될 수 있는 대칭 키를 생성하는데 사용되는 복수의 제2 부분 키 요소들을 저장하는 복수의 보안 파티션들로 구분된 메모리, 상기 제1 부분 키 요소를 저장하고 상기 제1 부분 키 요소와 상기 복수의 제2 부분 키 요소들 중 하나로 생성되는 대칭 키를 기초로 평문의 암호화 또는 암호문의 복호화를 수행하는 보안 가속칩 및 암호화 또는 복호화 요청에 따라 상기 복수의 보안 파티션들 중 하나를 선택하여 해당 제2 부분 키 요소를 가져와서 상기 보안 가속칩에 제공하는 프로세서를 포함한다.
상기 메모리는 상기 제1 부분 키 요소를 제외한 상기 복수의 제2 부분 키 요소들만을 저장할 수 있다
상기 보안 가속칩은 특정 조건 하에서 상기 제1 부분 키 요소를 변경할 수 있다.
상기 프로세서는 상기 보안 가속칩에 저장된 상기 제1 부분 키 요소들의 변경이 감지된 경우 상기 복수의 제2 부분 키 요소들 전체를 갱신할 수 있다.
상기 프로세서는 암호화 또는 복호화 요청에 따라 난수 발생기로부터 획득한 난수에 기초하여 상기 복수의 보안 파티션들 중 하나를 선택할 수 있다.
상기 프로세서는 상기 난수 발생기에 현재 시간을 시드(Seed)로 제공하여 난수를 획득할 수 있다.
상기 프로세서는 선택된 상기 보안 파티션에 대한 접근 가능 상태인지 확인하여 상기 보안 파티션에 저장된 상기 제2 부분 키 요소를 가져올 수 있다.
상기 프로세서는 상기 보안 파티션이 접근 불가 상태인 경우 상기 난수 발생기로부터 획득한 새로운 난수에 기초하여 상기 복수의 보안 파티션들 중 하나를 다시 선택할 수 있다.
개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
본 발명의 일 실시예에 따른 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치는 경량 알고리즘에 사용되는 대칭키를 생성하는데 사용되는 복수의 부분 키 요소들을 메모리와 보안 가속칩에 분리 보관하여 보안을 강화할 수 있다.
본 발명의 일 실시예에 따른 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치는 메모리에 포함된 복수의 보안 파티션 각각에 대해 승인된 접근만을 허용함으로써 부분 키 요소들의 노출을 최소화할 수 있다.
도 1은 본 발명의 일 실시예에 따른 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치를 설명하는 도면이다.
도 2는 도 1에 있는 프로세서의 기능 요소를 나타내는 블록도이다.
도 3은 도 1에 있는 보안 가속칩에서 수행되는 암호화 또는 복호화 과정을 설명하는 순서도이다.
도 4는 도 1에 있는 프로세서에서 수행되는 암호화 또는 복호화 과정을 설명하는 순서도이다.
도 5는 도 1에 있는 보안 가속칩에서 LEA 알고리즘을 이용하여 수행되는 암호화 또는 복호화 과정을 설명하는 예시도이다.
본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
경량 블록 암호 알고리즘을 크게 형태에 따라 분류하면 SPN 형태와 Feistel 형태로 나눌 수 있다. SPN 형태는 S-BOX와 P-BOX를 사용해서 Confusion과 Diffusion을 만족시키는 것이다. SPN 형태의 특징은 병렬 연산이 가능하다는 것과 암호화와 복호화 모듈이 동일하지 않다는 점이다. SPN 형태의 대표적인 예는 현재까지 가장 널리 쓰이는 AES이다. Feistel 형태는 ARX-Based라고도 하며 modular Addition, Rotation, and XOR 연산을 사용한다. Feistel 형태의 대표적인 예는 DES이다. 국내 경량 블록 암호 알고리즘으로는 LEA, HIGHT, SEED 및 ARIA 등이 있다.
LEA(Lightweight Encryption Algorithm)는 2013년 국가보안기술 연구소에서 개발한 GFN 구조의 128비트 데이터 블록을 암호화하는 알고리즘으로 128/192/256비트 비밀키를 사용할 수 있으며 요구되는 안전성 기준에 따라 용도가 구분될 수 있다. LEA의 라운드 함수는 32비트 단위의 ARX 연산만으로 구성되어 있어, 이들 연산을 지원하는 범용 32비트 소프트웨어 플랫폼에서 고속으로 동작할 수 있다. 라운드 함수 내부의 ARX 연산 배치는 충분한 안전성을 보장하는 것과 동시에 S-box의 사용을 배제하여 경량 구현이 가능하도록 한다.
도 1은 본 발명의 일 실시예에 따른 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치를 설명하는 도면이다.
도 1을 참조하면, 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치(이하, 경량 암호 알고리즘 보안 장치라 한다.)(100)는 메모리(110), 보안 가속칩(130) 및 프로세서(150)를 포함할 수 있다.
메모리(110)는 SSD(Solid State Disk) 또는 HDD(Hard Disk Drive)와 같은 비휘발성 메모리로 구현되어 경량 암호 알고리즘 보안 장치(100)에 필요한 데이터 전반을 저장하는데 사용되는 보조기억장치를 포함할 수 있고, RAM(Random Access Memory)과 같은 휘발성 메모리로 구현된 주기억장치를 포함할 수 있다.
일 실시예에서, 메모리(110)는 복수의 보안 파티션들로 구분될 수 있고, 각각의 보안 파티션들은 대칭키를 생성하는데 사용되는 복수의 제2 부분 키 요소들을 저장할 수 있다. 일 실시예에서, 메모리(110)는 제1 부분 키 요소들을 제외한 복수의 제2 부분 키 요소들만을 저장할 수 있다.
보안 파티션은 메모리의 일부 영역에 해당할 수 있고, 프로세서(150)의 관리하에 접근 가능 상태에서만 접근할 수 있다. 특정 보안 파티션에 대해 접근 가능 상태에 있는 특정 프로세스(Process)만이 해당 보안 파티션에 접근하여 제2 부분 키 요소를 읽을 수 있다. 보안 파티션은 접근 가능 상태에 있는 특정 프로세스(Process)만 접근 가능하고, 나머지 프로세스에 대해서는 접근 불가 상태가 될 수 있다. 각각의 보안 파티션은 제2 부분 키 요소를 하나만 저장할 수 있고, 다른 보안 파티션에 저장된 제2 부분 키 요소를 중복하여 저장할 수 없다.
보안 가속칩(130)은 평문 또는 암호문에 대해 암호 키 또는 복호 키를 이용하여 암호화 또는 복호화를 수행하는 하드웨어 보안 칩에 해당할 수 있다. 일 실시예에서, 보안 가속칩(130)은 제1 부분 키 요소를 저장할 수 있다. 보안 가속칩(130)에 저장된 제1 부분 키 요소는 외부에서 접근할 수 없고, 암호화 또는 복호화를 위해 사용되는 대칭키를 생성하는데 사용될 수 있다.
일 실시예에서, 보안 가속칩(130)은 제1 부분 키 요소 및 메모리(110)에 저장된 복수의 제2 부분 키 요소들 중 하나로 대칭키를 생성할 수 있다. 대칭키는 경량 암호 알고리즘을 적용하는데 사용되는 암호키 또는 복호키에 해당할 수 있다.
경량 암호 알고리즘에 사용되는 대칭키는 Shamir가 제안한 비밀 공유 기법을 통해 n개의 부분 키 요소로 변환될 수 있다. 비밀 공유 기법은 n명의 참가자들에게 비밀 정보를 분배하고 n명의 참가자들 중에서 k명 이상이 모이면 비밀 정보를 복원할 수 있는 (k,n)-threshold 기법에 해당할 수 있다. Shamir가 제안한 비밀 공유 기법에서는 다음의 수학식을 이용하여 대칭 키를 n개의 부분 키 요소로 변환할 수 있다.
[수학식]
Figure 112017123503938-pat00001
보안 가속칩(130)은 Shamir가 제안한 비밀 공유 기법에 의해 n개로 변환된 부분 키 요소들 중에서 k개의 부분 키 요소에 대해 라그랑지 보간법(Lagrange Interpolation)을 이용하여 대칭키를 생성할 수 있다. 여기에서, 라그랑지 보간법은 데이터 포인트의 주어진 집합으로부터 다항식을 보간하는 방법으로, n+1 개의 주어진 점을 지나는 n차 다항식을 구하는 방법에 해당할 수 있다.
보안 가속칩(130)은 n개의 부분 키 요소들 중에서 k-1 개의 부분 키 요소들을 제1 부분 키 요소로서 보안 가속칩(130) 내부에 저장할 수 있다. n개의 부분 키 요소들 중 제1 부분 키 요소를 제외한 나머지 n-k+1 개의 부분 키 요소들은 제2 부분 키 요소로서 메모리(110)의 보안 파티션에 각각 저장될 수 있다. 보안 가속칩(130)은 k-1 개의 제1 부분 키 요소들 및 메모리(110)에 저장된 제2 부분 키 요소들 중에서 하나를 포함하는 총 k개의 부분 키 요소들을 이용하여 대칭키를 생성할 수 있다.
일 실시예에서, 보안 가속칩(130)은 k-1 개의 제1 부분 키 요소들 및 메모리(110)에 저장된 제2 부분 키 요소들 중에서 적어도 하나를 포함하는 총 k개 이상의 부분 키 요소들을 이용하여 대칭키를 생성할 수 있다. Shamir가 제안한 비밀 공유 방법에 의하면 대칭키를 이용하여 생성한 n개의 부분 키 요소들 중 k개 이상의 부분 키 요소들이 모이면 원래의 대칭키를 복원할 수 있다.
보안 가속칩(130)은 제1 부분 키 요소 및 제2 부분 키 요소를 이용하여 생성한 대칭 키를 기초로 평문의 암호화 또는 암호문의 복호화를 수행할 수 있다. 보다 구체적으로, 보안 가속칩(130)은 대칭키 및 라운드 함수를 이용하여 LEA 블록 암호를 통해 평문의 암호화 또는 암호문의 복호화를 수행할 수 있다. 보안 가속칩(130)은 평문 또는 암호문과 함께 제2 부분 키 요소를 입력으로서 제공받을 수 있고, 암호화 또는 복호화의 결과로서 암호문 또는 평문을 출력으로 제공할 수 있다.
일 실시예에서, 보안 가속칩(130)은 특정 조건 하에서 제1 부분 키 요소를 변경할 수 있다. 예를 들어, 보안 가속칩(130)은 경량 암호 알고리즘 보안 장치(100)와 분리되어 특정 장치에 결합된 상태에서만 제1 부분 키 요소 전체를 변경할 수 있다. 보안 가속칩(130)에 저장된 제1 부분 키 요소 전체를 변경함으로써 경량 암호 알고리즘에 사용되는 대칭키를 변경할 수 있다.
보안 가속칩(130)은 하드웨어 보안 칩에 해당할 수 있고, 특별한 경우가 아니라면 외부에서 제1 부분 키 요소에 직접적으로 접근할 수 없으며, 쉽게 변경할 수도 없다. 보안 가속칩(130)이 저장하는 제1 부분 키 요소는 암호화 또는 복호화를 위해 사용되는 특정 대칭키에 대한 정보에 해당할 수 있고, 외부에서는 직접적인 접근이 불가능 하도록 설계되어 대칭키에 대한 보안을 강화할 수 있다.
프로세서(150)는 경량 암호 알고리즘 보안 장치(100)의 경량 암호 알고리즘 보안 프로시저를 실행할 수 있고, 그 과정 전반에서 읽혀지거나 작성되는 메모리(110)를 관리할 수 있으며, 메모리(110)에 있는 휘발성 메모리와 비휘발성 메모리 간의 동기화 시간을 스케줄할 수 있다. 프로세서(150)는 경량 암호 알고리즘 보안 장치(100)의 동작 전반을 제어할 수 있고, 메모리(110), 보안 가속칩(130)과 전기적으로 연결되어 이들 간의 데이터 흐름을 제어할 수 있다. 프로세서(150)는 경량 암호 알고리즘 보안 장치(100)의 CPU(Central Processing Unit)로 구현될 수 있다.
일 실시예에서, 프로세서(150)는 보안 가속칩(130)에 저장된 제1 부분 키 요소들의 변경이 감지된 경우 메모리(110)에 저장된 복수의 제2 부분 키 요소들 전체를 갱신할 수 있다. 제1 부분 키 요소 및 제2 부분 키 요소는 동일한 하나의 대칭키를 생성하는데 함께 사용될 수 있고, 제1 부분 키 요소 또는 제2 부분 키 요소만으로는 대칭키를 생성할 수 없다. 따라서, 보안 가속칩(130)에 저장된 제1 부분 키 요소들이 변경된 경우, 메모리(110)의 보안 파티션에 저장된 제2 부분 키 요소들 역시 변경이 필요할 수 있다. 이 경우 갱신될 제2 부분 키 요소들은 변경된 제1 부분 키 요소들을 생성하는데 사용된 대칭키를 이용하여 생성할 수 있다.
예를 들어, 프로세서(150)는 Shamir가 제안한 비밀 공유 기법을 통해 n개로 변환된 부분 키 요소들 중에서 제1 부분 키 요소들로서 보안 가속칩(130)에 저장된 부분 키 요소들을 제외한 나머지 부분 키 요소들을 제2 부분 키 요소들로서 메모리(110)의 보안 파티션 각각에 저장할 수 있다. 프로세서(150)의 구체적 기능에 대해서는 도 2에서 자세히 설명한다.
도 2는 도 1에 있는 프로세서의 기능 요소를 나타내는 블록도이다.
도 2를 참조하면, 프로세서(150)는 요청 수신부(210), 보안 파티션 결정부(230), 부분 키 요소 제공부(250) 및 제어부(270)를 포함할 수 있다.
요청 수신부(210)는 암호화 또는 복호화 요청을 수신할 수 있다. 일 실시예에서, 요청 수신부(210)는 경량 암호 알고리즘 보안 장치(100)가 외부로부터 평문을 수신한 경우 평문에 대한 암호화 요청을 수신한 것으로 처리할 수 있고, 암호문을 수신한 경우 암호문에 대한 복호화 요청을 수신한 것으로 처리할 수 있다.
보안 파티션 결정부(230)는 요청 수신부(210)를 통해 암호화 또는 복호화 요청을 수신한 경우 메모리(110)에 포함된 복수의 보안 파티션들 중 하나를 선택할 수 있다. 프로세서(150)는 보안 파티션 결정부(230)에 의해 선택된 보안 파티션에 대한 접근 권한을 특정 프로세스와 연관시켜 접근 가능 상태로 변경할 수 있다.
일 실시예에서, 보안 파티션 결정부(230)는 암호화 또는 복호화 요청에 따라 난수 발생기(도 2에 미도시함)로부터 획득한 난수에 기초하여 메모리(110)에 포함된 복수의 보안 파티션들 중 하나를 선택할 수 있다. 예를 들어, 보안 파티션 결정부(230)는 난수 발생기를 통해 메모리(110)에 포함된 보안 파티션들의 개수의 범위 내의 난수가 출력되도록 할 수 있고, 특정 기준에 따라 출력된 난수 순서에 해당하는 보안 파티션을 선택할 수 있다.
일 실시예에서, 보안 파티션 결정부(230)는 난수 발생기에 현재 시간을 시드(Seed)로 제공하여 난수를 획득할 수 있다. 여기에서, 현재 시간은 시스템의 현재 시간에 해당할 수 있다. 다른 실시예에서, 보안 파티션 결정부(230)는 난수 발생기에 현재 시간 이외에 다양한 시드를 제공하여 난수를 획득할 수 있고, 해당 난수를 기초로 메모리(110)에 저장된 보안 파티션을 결정할 수 있다.
부분 키 요소 제공부(250)는 보안 파티션 결정부(230)에 의해 선택된 보안 파티션으로부터 제2 부분 키 요소를 가져올 수 있고 보안 가속칩(130)에 제2 부분 키 요소를 제공할 수 있다. 부분 키 요소 제공부(250)는 선택된 보안 파티션에 대한 접근 권한을 얻은 프로세스를 통해 해당 보안 파티션에 접근하여 제2 부분 키 요소를 가져올 수 있다.
일 실시예에서, 부분 키 요소 제공부(250)는 보안 파티션 결정부(230)에 의해 선택된 보안 파티션에 대한 접근 가능 상태인지 확인하여 보안 파티션에 저장된 제2 부분 키 요소를 가져올 수 있다. 부분 키 요소 제공부(250)는 해당 보안 파티션이 접근 가능 상태인 경우에만 보안 파티션에 접근하여 제2 부분 키 요소를 가져올 수 있고, 접근 불가 상태인 경우에는 해당 보안 파티션이 접근 가능 상태가 될 때까지 대기할 수 있다.
일 실시예에서, 부분 키 요소 제공부(250)는 보안 파티션 결정부(230)에 의해 선택된 보안 파티션이 접근 불가 상태인 경우 보안 파티션 결정부(230)를 통해 난수 발생기로부터 획득한 새로운 난수에 기초하여 복수의 보안 파티션들 중 하나를 다시 선택할 수 있다. 부분 키 요소 제공부(250)는 보안 파티션이 접근 불가 상태인 경우 접근 가능 상태가 될 때까지 대기할 수 있고, 보안 파티션 결정부(230)를 통해 난수 발생기로부터 새로운 난수를 발생시켜 해당 난수와 연관된 보안 파티션을 다시 선택할 수 있다. 이 경우, 이 전에 선택되었던 보안 파티션에 대한 접근 권한은 프로세서(150)에 의해 초기화 될 수 있다.
일 실시예에서, 부분 키 요소 제공부(250)는 보안 파티션 결정부(230)에 의해 선택된 보안 파티션이 접근 불가 상태인 경우 다음 수학식1을 통해 산출된 대기시간 동안 자동대기할 수 있고, 해당 대기 시간이 경과된 경우 보안 파티션 결정부(230)를 통해 난수 발생기로부터 새로운 난수를 발생시켜 해당 난수와 연관된 보안 파티션을 다시 선택할 수 있다.
[수학식1]
Figure 112017123503938-pat00002
여기에서, T는 대기시간을, k는 비계 계수를, P는 프로세서(150)의 연산 부하량을, C는 프로세서(150)의 연산 성능을, NP는 현재 프로세스의 수를 NS는 메모리(110)에 포함된 보안 파티션의 수를 나타낸다.
부분 키 요소 제공부(250)가 보안 파티션이 접근 가능 상태가 될 때까지 대기할 수 있는 대기시간 T는 프로세서(150)의 연산 부하량이 많을수록, 프로세서(150)의 연산 성능이 낮을수록, 현재 생성된 프로세스의 수가 적을수록, 메모리(110)에 포함된 보안 파티션의 수가 적을수록 길어질 수 있다.
프로세서(150)의 연산 부하량이 많은 경우이거나 또는 연산 성능이 낮은 경우에는 난수발생기를 통한 난수의 획득 연산이 프로세서(150)의 연산 부하를 가중시킬 수 있으므로 대기시간을 길게 하여 추가적인 연산을 줄이는 것이 좋을 수 있다. 현재 생성된 프로세스의 수가 적은 경우에는 새로운 난수를 통해 새로운 보안 파티션으로의 접근이 수월할 수 있으므로 대기시간을 짧게 하여 연산을 빠르게 처리하는 것이 좋을 수 있다. 메모리(110)에 포함된 보안 파티션의 수가 적을수록 관련 보안 파티션에 접근하려고 하는 시도가 중복될 확률이 높으므로 대기시간을 길게 하여 보안 파티션의 접근 시도를 줄이는 것이 좋을 수 있다.
제어부(270)는 프로세서(150)의 전체적인 동작을 제어하고, 요청 수신부(210), 보안 파티션 결정부(230) 및 부분 키 요소 제공부(250) 간의 제어 흐름 및 데이터 흐름을 관리할 수 있다.
도 3은 도 1에 있는 보안 가속칩에서 수행되는 암호화 또는 복호화 과정을 설명하는 순서도이다.
도 3을 참조하면, 보안 가속칩(130)은 부분 키 요소 제공부(250)로부터 제2 부분 키 요소를 수신할 수 있다(단계 S310). 보안 가속칩(130)은 부분 키 요소 제공부(250)로부터 수신한 제2 부분 키 요소와 보안 가속칩(130) 내부에 하드웨어적으로 보호되어 저장된 복수의 제1 부분 키 요소를 이용하여 대칭키를 생성할 수 있다(단계 S330).
보안 가속칩(130)은 생성된 대칭키를 이용하여 평문의 암호화 또는 암호문의 복호화를 수행할 수 있다(단계 S350). 보안 가속칩(130)은 생성된 대칭키를 경량 암호 알고리즘에 적용하여 평문의 암호화 또는 암호문의 복호화를 수행할 수 있다. 예를 들어, 보안 가속칩(130)은 대칭키와 라운드 함수를 이용하여 LEA 블록 암호(Block Cipher)을 적용하여 평문을 암호문으로 변경하거나 또는 암호문을 평문으로 변경하여 출력으로 제공할 수 있다.
도 4는 도 1에 있는 프로세서에서 수행되는 암호화 또는 복호화 과정을 설명하는 순서도이다.
도 4를 참조하면, 프로세서(150)는 요청 수신부(210)를 통해 암호화 또는 복호화 요청을 수신할 수 있다(단계 S410). 프로세서(150)는 보안 파티션 결정부(230)를 통해 메모리(110)에 포함된 복수의 보안 파티션들 중 하나를 선택할 수 있다(단계 S430).
일 실시예에서, 보안 파티션 결정부(230)는 메모리(110)에 포함된 복수의 보안 파티션들 중 적어도 하나의 보안 파티션을 선택할 수 있다. 보다 구체적으로, 보안 파티션 결정부(230)는 난수 발생기로부터 연속하여 난수를 획득함으로써 적어도 하나의 보안 파티션을 선택할 수 있다.
프로세서(150)는 부분 키 요소 제공부(250)를 통해 선택된 보안 파티션에 저장된 제2 부분 키 요소를 보안 가속칩(130)에 제공할 수 있다(단계 S450). 일 실시예에서, 부분 키 요소 제공부(250)는 보안 파티션 결정부(230)가 적어도 하나의 보안 파티션을 선택한 경우 각각의 보안 파티션에 대한 접근 가능 상태를 확인하여 적어도 하나의 제2 부분 키 요소들을 보안 가속칩(130)에 제공할 수 있다.
일 실시예에서, 보안 가속칩(130)은 부분 키 요소 제공부(250)로부터 수신한 적어도 하나의 제2 부분 키 요소들과 보안 가속칩(130) 내부에 하드웨어적으로 보호되어 저장된 복수의 제1 부분 키 요소들을 이용하여 대칭키를 생성할 수 있다. 예를 들어, 보안 가속칩(130)은 적어도 하나의 제2 부분 키 요소들과 보안 가속칩(130) 내부의 제1 부분 키 요소들을 포함하는 총 k개 이상의 부분 키 요소들에 대해 라그랑지 보간법(Lagrange Interpolation)을 적용하여 대칭키를 생성할 수 있다.
도 5는 도 1에 있는 보안 가속칩에서 LEA 알고리즘을 이용하여 수행되는 암호화 또는 복호화 과정을 설명하는 예시도이다.
도 5를 참조하면, 프로세서(150)의 보안 파티션 결정부(230)에 의해 메모리(510)에 포함된 복수의 보안 파티션 중 하나(511)가 선택되면, 해당 보안 파티션(511)에 저장된 제2 부분 키 요소가 프로세서(150)의 부분 키 요소 제공부(250)에 의해 보안 가속칩(530)에 제공될 수 있다. 보안 가속칩(530)은 부분 키 요소 제공부(250)에 의해 제공받은 제2 부분 키 요소와 보안 가속칩(530) 내부에 저장된 제1 부분 키 요소들(531)을 이용하여 비밀키(533)를 생성할 수 있다.
보안 가속칩(530)은 비밀키(533)를 기초로 경량 암호 알고리즘 중 하나인 LEA 암호 알고리즘을 적용할 수 있다(537 및 539). 보다 구체적으로, 보안 가속칩(530)은 생성된 비밀키(533)를 키 스케줄러에 입력하여 복수의 라운드 키를 생성할 수 있고, 복수의 라운드 키와 라운드 함수(535)를 이용하여 평문을 암호화하여 암호문을 생성(537)하거나 또는 암호문을 복호화하여 평문을 생성(539)할 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치
110: 메모리 130: 보안 가속칩
150: 프로세서
210: 요청 수신부 230: 보안 파티션 결정부
250: 부분 키 요소 제공부 270: 제어부
510: 메모리 530: 보안 가속칩
511: 보안 파티션 531: 제1 부분 키 요소
533: 비밀키 535: 라운드 함수
537: 암호화 과정 539: 복호화 과정

Claims (8)

  1. 제1 부분 키 요소와 함께 대칭 키를 생성하는데 사용되는 복수의 제2 부분 키 요소들을 저장하는 복수의 보안 파티션들로 구분된 메모리;
    외부에서의 직접적인 접근이 제한되어 상기 제1 부분 키 요소를 하드웨어적으로 보호 및 저장하는 물리적인 저장장치를 포함하고, 상기 제1 부분 키 요소와 상기 제2 부분 키 요소로 생성되는 대칭 키를 기초로 평문의 암호화 또는 암호문의 복호화를 수행하는 보안 가속칩; 및
    암호화 또는 복호화 요청에 따라 상기 복수의 보안 파티션들 중 하나를 선택하여 해당 제2 부분 키 요소를 가져와서 상기 보안 가속칩에 제공하는 프로세서를 포함하되,
    상기 제1 및 제2 부분 키 요소들은 비밀 공유 기법에 의해 n개로 변환된 부분 키 요소들에 해당하고,
    상기 보안 가속칩은 k-1 (이 때, k ≤ n) 개의 제1 부분 키 요소들 및 상기 복수의 제2 부분 키 요소들 중 어느 하나를 포함하는 총 k개의 부분 키 요소들을 이용하여 상기 대칭키를 생성하고, 보안 장치 내부에 포함되어 구현된 경우 상기 보안 장치와 분리되어 외부 특정 장치에 결합된 상태에서만 상기 제1 부분 키 요소의 전체에 대한 변경이 가능하며,
    상기 프로세서는 상기 보안 가속칩에 저장된 상기 제1 부분 키 요소들의 변경이 감지된 경우 상기 복수의 제2 부분 키 요소들 전체를 갱신하고, 선택된 상기 보안 파티션에 대한 접근 가능 상태인지 확인하여 상기 보안 파티션에 저장된 상기 제2 부분 키 요소를 가져오고, 상기 보안 파티션이 접근 불가 상태인 경우 프로세서의 연산 부하량과 연산 성능, 현재 프로세스의 수 및 보안 파티션의 수를 기초로 산출된 대기 시간 동안 자동대기하는 제1 단계와, 해당 대기 시간이 경과된 경우 난수 발생기로부터 획득한 새로운 난수에 기초하여 상기 복수의 보안 파티션들 중 하나를 다시 선택하는 제2 단계를 수행하는 것을 특징으로 하는 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치.
  2. 제1항에 있어서, 상기 메모리는
    상기 제1 부분 키 요소를 제외한 상기 복수의 제2 부분 키 요소들만을 저장하는 것을 특징으로 하는 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치.
  3. 삭제
  4. 삭제
  5. 제1항에 있어서, 상기 프로세서는
    암호화 또는 복호화 요청에 따라 난수 발생기로부터 획득한 난수에 기초하여 상기 복수의 보안 파티션들 중 하나를 선택하는 것을 특징으로 하는 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치.
  6. 제5항에 있어서, 상기 프로세서는
    상기 난수 발생기에 현재 시간을 시드(Seed)로 제공하여 난수를 획득하는 것을 특징으로 하는 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치.
  7. 삭제
  8. 삭제
KR1020170170000A 2017-12-12 2017-12-12 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치 KR102066487B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170170000A KR102066487B1 (ko) 2017-12-12 2017-12-12 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170170000A KR102066487B1 (ko) 2017-12-12 2017-12-12 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치

Publications (2)

Publication Number Publication Date
KR20190069763A KR20190069763A (ko) 2019-06-20
KR102066487B1 true KR102066487B1 (ko) 2020-02-11

Family

ID=67103688

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170170000A KR102066487B1 (ko) 2017-12-12 2017-12-12 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치

Country Status (1)

Country Link
KR (1) KR102066487B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012065123A (ja) * 2010-09-15 2012-03-29 Fuji Electric Retail Systems Co Ltd Icカードシステム、その通信端末、携帯端末

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2824212A1 (fr) 2001-04-25 2002-10-31 Thomson Licensing Sa Procede de gestion d'une cle symetrique dans un reseau de communication et dispositifs pour la mise en oeuvre
KR100533154B1 (ko) 2002-06-27 2005-12-02 주식회사 케이티 디지털 저작권 관리 시스템에서의 대칭키를 이용한암호화/복호화 방법
US9171187B2 (en) * 2005-05-13 2015-10-27 Nokia Technologies Oy Implementation of an integrity-protected secure storage

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012065123A (ja) * 2010-09-15 2012-03-29 Fuji Electric Retail Systems Co Ltd Icカードシステム、その通信端末、携帯端末

Also Published As

Publication number Publication date
KR20190069763A (ko) 2019-06-20

Similar Documents

Publication Publication Date Title
US8983061B2 (en) Method and apparatus for cryptographically processing data
US8634549B2 (en) Ciphertext key chaining
US20170070340A1 (en) Homomorphically-created symmetric key
JP6363032B2 (ja) 鍵付替え方向制御システムおよび鍵付替え方向制御方法
CN110688666B (zh) 一种分布式存储中数据加密保存方法
WO2014083784A1 (ja) 暗号システム、データ保存システム、それに用いる装置および方法
JP2014175970A (ja) 情報配信システム、情報処理装置及びプログラム
JP6961324B2 (ja) 検索可能暗号処理システム
US8041033B2 (en) Cipher feedback with variable block chaining
Poduval et al. Secure file storage on cloud using hybrid cryptography
US8804953B2 (en) Extensive ciphertext feedback
US9866372B2 (en) Encryption apparatus, method for encryption, method for decryption and computer-readable recording medium
Ajmal et al. Cloud computing platform: Performance analysis of prominent cryptographic algorithms
JPWO2019225735A1 (ja) データ処理装置、方法及びコンピュータプログラム
KR102066487B1 (ko) 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치
Kanna et al. A new approach in multi cloud environment to improve data security
KR101133988B1 (ko) 해쉬 트리 기반의 스트림 암호화 및 복호화 방법과 암호 파일 시스템
US11451518B2 (en) Communication device, server device, concealed communication system, methods for the same, and program
JP5945525B2 (ja) 鍵交換システム、鍵交換装置、その方法、及びプログラム
JP5821040B2 (ja) データ管理装置、データ分割装置およびデータ復元装置
JP6840685B2 (ja) データ共有方法、データ共有システム、通信端末、データ共有サーバ、プログラム
CN107483387A (zh) 一种安全控制方法及装置
US20170126399A1 (en) Encryption apparatus, storage system, decryption apparatus, encryption method, decryption method, and computer readable medium
JP6381861B2 (ja) 登録先決定装置、登録装置、秘匿検索システム、登録先決定方法及び登録先決定プログラム
KR101865703B1 (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