KR20190069763A - Lightweight encryption algorithm security apparatus based on hardware authentication chip - Google Patents

Lightweight encryption algorithm security apparatus based on hardware authentication chip Download PDF

Info

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

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

The present invention relates to a lightweight encryption algorithm security apparatus based on a hardware authentication chip, comprising: a memory which is divided into a plurality of security partitions which store a plurality of second part key elements used for generating a symmetrical key which may be generated through a first part key element; a security acceleration chip which stores the first part key element, and performs encryption of a plain text or decryption of a cryptogram based on a symmetrical key generated by one of the first part key element and the plurality of second part key elements; and a processor which selects one of the plurality of security partitions in accordance with a request for encryption or decryption to bring the relevant second part key element and to provide it to the security acceleration chip. Accordingly, the present invention is able to manage a secret key used for a lightweight encryption algorithm and to strengthen security.

Description

하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치{LIGHTWEIGHT ENCRYPTION ALGORITHM SECURITY APPARATUS BASED ON HARDWARE AUTHENTICATION CHIP}TECHNICAL FIELD [0001] The present invention relates to a lightweight encryption algorithm security apparatus based on a hardware authentication chip,

본 발명은 경량 암호 알고리즘 보안 기술에 관한 것으로, 보다 상세하게는 경량 암호 알고리즘에 사용되는 비밀 키를 관리하여 보안을 강화할 수 있는 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치에 관한 것이다.The present invention relates to a lightweight encryption algorithm security technology, and more particularly, to a lightweight encryption algorithm security device based on a hardware authentication chip capable of enhancing security by managing a secret key used in a lightweight encryption algorithm.

대칭 키 암호화 방식은 전송하고자 하는 데이터를 암호화하고 복호화하는데 동일한 키를 이용하는 방식이다. 대칭 키 암호화 방식은 공개키 암호화 방식에 비해 빠른 처리속도를 제공할 수 있고, 사용되는 암호키의 길이가 공개키 암호화 방식보다 상대적으로 작아서 일반적인 정보의 기밀성을 보장하기 위한 용도로 사용된다. 그러나, 대칭 키 암호화 방식은 정보 교환 당사자 간에 동일한 키를 공유해야 하기 때문에 다수의 키 관리가 불편하고, 여러 사람과의 정보 교환시 암호화 키가 유출되지 않도록 특별한 주의가 필요하다는 단점을 가지고 있다. 대표적인 대칭 키 암호 알고리즘으로는 국내의 SEED, ARIA, LEA, HIGHT 및 국외의 AES, Blowfish, Camelia 등이 있다.The symmetric key encryption scheme uses the same key for encrypting and decrypting data to be transmitted. The symmetric key cryptosystem can provide faster processing speed than the public key cryptosystem, and the length of the cryptographic key used is relatively smaller than that of the public key cryptosystem, and is used for securing the confidentiality of general information. However, the symmetric key cryptosystem has a disadvantage in that it is inconvenient to manage a large number of keys because the same key must be shared among the information exchange parties, and special care is required so that the encryption key is not leaked when information is exchanged with various people. Typical symmetric key encryption algorithms include SEED, ARIA, LEA, HIGHT and AES, Blowfish, and Camelia.

한국등록특허 제10-0533154(2005.11.25)호는 디지털 저작권 관리 시스템에서의 대칭키를 이용한 암호화/복호화 방법에 관한 것으로, 랜덤값 발생 단계, 키 인식자 생성 단계, 컨텐츠를 암호화하는 암호화 단계 및 복호화 단계를 포함하고 종래의 기술에 비하여 디지털 저작권 관리 시스템에서 암호키 관리를 위한 키 인식자를 생성하여 암호 및 복호화에 키 관리의 안정성을 높이는 효과가 있다.Korean Patent Registration No. 10-0533154 (November 25, 2005) discloses an encryption / decryption method using a symmetric key in a digital rights management system and includes a random value generating step, a key identifier generating step, And a key recognizer for managing the cryptographic key in the digital rights management system is provided in comparison with the conventional technology, thereby enhancing the stability of the key management in the encryption and decryption.

한국등록특허 제10-0898437(2009.05.12)호는 통신 네트워크에서 대칭 키를 관리하는 방법, 통신 디바이스 및 통신 네트워크에서 데이터를 처리하기 위한 디바이스에 관한 것으로, 네트워크의 어플라이언스로부터 암호화된 방식으로 수신된 제 1 대칭 키를 해독하는 수단과, 여기서 제 1 대칭 키의 암호화는 제 2 대칭 키의 도움으로 수행된 것이며, 네트워크의 주어진 타입의 모든 어플라이언스에 공통인 제 2 대칭 키를 포함하기 위한 메모리와, 제 1 대칭 키의 도움으로 네트워크로부터 수신된 암호화된 데이터를 해독하는 수단을 포함한다.Korean Patent No. 10-0898437 discloses a method for managing a symmetric key in a communication network, a communication device, and a device for processing data in a communication network, Means for decrypting the first symmetric key, wherein the encryption of the first symmetric key is performed with the aid of a second symmetric key, the memory comprising a second symmetric key common to all appliances of a given type of network, And means for decrypting the encrypted data received from the network with the aid of the first symmetric key.

한국등록특허 제10-0533154(2005.11.25)호Korean Patent No. 10-0533154 (November 25, 2005) 한국등록특허 제10-0898437(2009.05.12)호Korean Patent No. 10-0898437 (2009.05.12)

본 발명의 일 실시예는 경량 암호 알고리즘에 사용되는 비밀 키를 관리하여 보안을 강화할 수 있는 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치를 제공하고자 한다.An embodiment of the present invention is to provide a lightweight cryptographic algorithm security device based on a hardware authentication chip capable of enhancing security by managing a secret key used in a lightweight encryption algorithm.

본 발명의 일 실시예는 경량 알고리즘에 사용되는 대칭키를 생성하는데 사용되는 복수의 부분 키 요소들을 메모리와 보안 가속칩에 분리 보관하여 보안을 강화할 수 있는 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치를 제공하고자 한다.One embodiment of the present invention is a lightweight cryptographic algorithm security device based on a hardware authentication chip capable of enhancing security by separating a plurality of partial key elements used for generating a symmetric key used in a lightweight algorithm into a memory and a security acceleration chip .

본 발명의 일 실시예는 메모리에 포함된 복수의 보안 파티션 각각에 대해 승인된 접근만을 허용함으로써 부분 키 요소들의 노출을 최소화할 수 있는 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치를 제공하고자 한다.One embodiment of the present invention seeks to provide a lightweight cryptographic algorithm security device based on a hardware authentication chip that can minimize exposure of partial key elements by allowing only authorized access to each of a plurality of secure partitions contained in a memory.

실시예들 중에서, 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치는 제1 부분 키 요소를 통해 생성될 수 있는 대칭 키를 생성하는데 사용되는 복수의 제2 부분 키 요소들을 저장하는 복수의 보안 파티션들로 구분된 메모리, 상기 제1 부분 키 요소를 저장하고 상기 제1 부분 키 요소와 상기 복수의 제2 부분 키 요소들 중 하나로 생성되는 대칭 키를 기초로 평문의 암호화 또는 암호문의 복호화를 수행하는 보안 가속칩 및 암호화 또는 복호화 요청에 따라 상기 복수의 보안 파티션들 중 하나를 선택하여 해당 제2 부분 키 요소를 가져와서 상기 보안 가속칩에 제공하는 프로세서를 포함한다.Among embodiments, a lightweight cryptographic algorithm security device based on a hardware authentication chip comprises a plurality of security partitions for storing a plurality of second partial key elements used to generate a symmetric key that can be generated via a first partial key element A security memory for storing the first partial key element and performing a decryption of a plaintext or a ciphertext based on a symmetric key generated as one of the first partial key element and the second plurality of partial key elements, And a processor for selecting one of the plurality of security partitions according to a chip and an encryption or decryption request to obtain a corresponding second partial key element and providing the selected second partial key element to the security acceleration chip.

상기 메모리는 상기 제1 부분 키 요소를 제외한 상기 복수의 제2 부분 키 요소들만을 저장할 수 있다The memory may store only the plurality of second partial key elements except for the first partial key element

상기 보안 가속칩은 특정 조건 하에서 상기 제1 부분 키 요소를 변경할 수 있다.The secure acceleration chip may change the first partial key element under certain conditions.

상기 프로세서는 상기 보안 가속칩에 저장된 상기 제1 부분 키 요소들의 변경이 감지된 경우 상기 복수의 제2 부분 키 요소들 전체를 갱신할 수 있다.The processor may update the entire plurality of second partial key elements when a change in the first partial key elements stored in the secure acceleration chip is detected.

상기 프로세서는 암호화 또는 복호화 요청에 따라 난수 발생기로부터 획득한 난수에 기초하여 상기 복수의 보안 파티션들 중 하나를 선택할 수 있다.The processor may select one of the plurality of secure partitions based on a random number obtained from a random number generator according to an encryption or decryption request.

상기 프로세서는 상기 난수 발생기에 현재 시간을 시드(Seed)로 제공하여 난수를 획득할 수 있다.The processor can obtain a random number by providing a current time to the random number generator as a seed.

상기 프로세서는 선택된 상기 보안 파티션에 대한 접근 가능 상태인지 확인하여 상기 보안 파티션에 저장된 상기 제2 부분 키 요소를 가져올 수 있다.The processor may retrieve the second partial key element stored in the secure partition by verifying that the selected secure partition is in an accessible state.

상기 프로세서는 상기 보안 파티션이 접근 불가 상태인 경우 상기 난수 발생기로부터 획득한 새로운 난수에 기초하여 상기 복수의 보안 파티션들 중 하나를 다시 선택할 수 있다.The processor may again select one of the plurality of secure partitions based on the new random number obtained from the random number generator if the secure partition is inaccessible.

개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.The disclosed technique may have the following effects. It is to be understood, however, that the scope of the disclosed technology is not to be construed as limited thereby, as it is not meant to imply that a particular embodiment should include all of the following effects or only the following effects.

본 발명의 일 실시예에 따른 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치는 경량 알고리즘에 사용되는 대칭키를 생성하는데 사용되는 복수의 부분 키 요소들을 메모리와 보안 가속칩에 분리 보관하여 보안을 강화할 수 있다.The lightweight encryption algorithm security device based on hardware authentication chip according to an embodiment of the present invention can secure a plurality of partial key elements used for generating a symmetric key used in a lightweight algorithm in a memory and a security acceleration chip to enhance security have.

본 발명의 일 실시예에 따른 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치는 메모리에 포함된 복수의 보안 파티션 각각에 대해 승인된 접근만을 허용함으로써 부분 키 요소들의 노출을 최소화할 수 있다. The lightweight cryptographic algorithm security apparatus based on the hardware authentication chip according to an embodiment of the present invention can minimize the exposure of the partial key elements by allowing only authorized access to each of the plurality of secure partitions included in the memory.

도 1은 본 발명의 일 실시예에 따른 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치를 설명하는 도면이다.
도 2는 도 1에 있는 프로세서의 기능 요소를 나타내는 블록도이다.
도 3은 도 1에 있는 보안 가속칩에서 수행되는 암호화 또는 복호화 과정을 설명하는 순서도이다.
도 4는 도 1에 있는 프로세서에서 수행되는 암호화 또는 복호화 과정을 설명하는 순서도이다.
도 5는 도 1에 있는 보안 가속칩에서 LEA 알고리즘을 이용하여 수행되는 암호화 또는 복호화 과정을 설명하는 예시도이다.
FIG. 1 is a diagram for explaining a lightweight encryption algorithm security apparatus based on a hardware authentication chip according to an embodiment of the present invention.
Figure 2 is a block diagram illustrating the functional elements of the processor in Figure 1;
3 is a flowchart illustrating an encryption or decryption process performed in the security acceleration chip of FIG.
4 is a flowchart illustrating an encryption or decryption process performed in the processor shown in FIG.
5 is an exemplary diagram illustrating an encryption or decryption process performed using the LEA algorithm in the security acceleration chip of FIG.

본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.The description of the present invention is merely an example for structural or functional explanation, and the scope of the present invention should not be construed as being limited by the embodiments described in the text. That is, the embodiments are to be construed as being variously embodied and having various forms, so that the scope of the present invention should be understood to include equivalents capable of realizing technical ideas. Also, the purpose or effect of the present invention should not be construed as limiting the scope of the present invention, since it does not mean that a specific embodiment should include all or only such effect.

한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.Meanwhile, the meaning of the terms described in the present application should be understood as follows.

"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.The terms "first "," second ", and the like are intended to distinguish one element from another, and the scope of the right should not be limited by these terms. For example, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component.

어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.It is to be understood that when an element is referred to as being "connected" to another element, it may be directly connected to the other element, but there may be other elements in between. On the other hand, when an element is referred to as being "directly connected" to another element, it should be understood that there are no other elements in between. On the other hand, other expressions that describe the relationship between components, such as "between" and "between" or "neighboring to" and "directly adjacent to" should be interpreted as well.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.It is to be understood that the singular " include " or "have" are to be construed as including the stated feature, number, step, operation, It is to be understood that the combination is intended to specify that it does not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.In each step, the identification code (e.g., a, b, c, etc.) is used for convenience of explanation, the identification code does not describe the order of each step, Unless otherwise stated, it may occur differently from the stated order. That is, each step may occur in the same order as described, may be performed substantially concurrently, or may be performed in reverse order.

본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The present invention can be embodied as computer-readable code on a computer-readable recording medium, and the computer-readable recording medium includes all kinds of recording devices for storing data that can be read by a computer system . Examples of the computer-readable recording medium include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and the like. In addition, the computer-readable recording medium may be distributed over network-connected computer systems so that computer readable codes can be stored and executed in a distributed manner.

여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.All terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs, unless otherwise defined. Commonly used predefined terms should be interpreted to be consistent with the meanings in the context of the related art and can not be interpreted as having ideal or overly formal meaning unless explicitly defined in the present application.

경량 블록 암호 알고리즘을 크게 형태에 따라 분류하면 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 등이 있다.Lightweight block cipher algorithms can be classified into SPN type and Feistel type according to their types. The SPN type satisfies Confusion and Diffusion using S-BOX and P-BOX. The SPN type feature is that parallel operation is possible and encryption and decryption modules are not the same. A typical example of the SPN type is the most widely used AES to date. The Feistel type is also known as ARX-based and uses modular Addition, Rotation, and XOR operations. A typical example of a Feistel type is DES. Domestic light block cipher algorithms include LEA, HIGHT, SEED, and ARIA.

LEA(Lightweight Encryption Algorithm)는 2013년 국가보안기술 연구소에서 개발한 GFN 구조의 128비트 데이터 블록을 암호화하는 알고리즘으로 128/192/256비트 비밀키를 사용할 수 있으며 요구되는 안전성 기준에 따라 용도가 구분될 수 있다. LEA의 라운드 함수는 32비트 단위의 ARX 연산만으로 구성되어 있어, 이들 연산을 지원하는 범용 32비트 소프트웨어 플랫폼에서 고속으로 동작할 수 있다. 라운드 함수 내부의 ARX 연산 배치는 충분한 안전성을 보장하는 것과 동시에 S-box의 사용을 배제하여 경량 구현이 가능하도록 한다.The Lightweight Encryption Algorithm (LEA) is an algorithm for encrypting 128-bit data blocks of the GFN structure developed by the National Institute of Security Research in 2013, and can use 128/192/256 bit secret keys. . The LEA's round function consists of only 32-bit ARX operations, allowing it to operate at high speeds on a general purpose 32-bit software platform that supports these operations. Arrangement of ARX operations inside the round function ensures sufficient safety while eliminating the use of S-boxes and enabling lightweight implementation.

도 1은 본 발명의 일 실시예에 따른 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치를 설명하는 도면이다.FIG. 1 is a diagram for explaining a lightweight encryption algorithm security apparatus based on a hardware authentication chip according to an embodiment of the present invention.

도 1을 참조하면, 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치(이하, 경량 암호 알고리즘 보안 장치라 한다.)(100)는 메모리(110), 보안 가속칩(130) 및 프로세서(150)를 포함할 수 있다.1, a lightweight encryption algorithm security device (hereinafter referred to as a lightweight encryption algorithm security device) 100 based on a hardware authentication chip includes a memory 110, a security acceleration chip 130, and a processor 150 can do.

메모리(110)는 SSD(Solid State Disk) 또는 HDD(Hard Disk Drive)와 같은 비휘발성 메모리로 구현되어 경량 암호 알고리즘 보안 장치(100)에 필요한 데이터 전반을 저장하는데 사용되는 보조기억장치를 포함할 수 있고, RAM(Random Access Memory)과 같은 휘발성 메모리로 구현된 주기억장치를 포함할 수 있다.The memory 110 may include an auxiliary storage device that is implemented as a non-volatile memory, such as a solid state disk (SSD) or a hard disk drive (HDD) And a main memory implemented with a volatile memory such as a RAM (Random Access Memory).

일 실시예에서, 메모리(110)는 복수의 보안 파티션들로 구분될 수 있고, 각각의 보안 파티션들은 대칭키를 생성하는데 사용되는 복수의 제2 부분 키 요소들을 저장할 수 있다. 일 실시예에서, 메모리(110)는 제1 부분 키 요소들을 제외한 복수의 제2 부분 키 요소들만을 저장할 수 있다.In one embodiment, the memory 110 may be divided into a plurality of secure partitions, and each secure partition may store a plurality of second partial key elements used to generate the symmetric key. In one embodiment, the memory 110 may store only a plurality of second partial key elements other than the first partial key elements.

보안 파티션은 메모리의 일부 영역에 해당할 수 있고, 프로세서(150)의 관리하에 접근 가능 상태에서만 접근할 수 있다. 특정 보안 파티션에 대해 접근 가능 상태에 있는 특정 프로세스(Process)만이 해당 보안 파티션에 접근하여 제2 부분 키 요소를 읽을 수 있다. 보안 파티션은 접근 가능 상태에 있는 특정 프로세스(Process)만 접근 가능하고, 나머지 프로세스에 대해서는 접근 불가 상태가 될 수 있다. 각각의 보안 파티션은 제2 부분 키 요소를 하나만 저장할 수 있고, 다른 보안 파티션에 저장된 제2 부분 키 요소를 중복하여 저장할 수 없다.The secure partition may correspond to a portion of the memory and may be accessible only under the management of the processor 150. Only a specific process that is in an accessible state for a particular secure partition can access the secure partition and read the second partial key element. A secure partition can only be accessed by a specific process in the accessible state, and can become inaccessible to the rest of the process. Each secure partition can store only one second partial key element and can not store redundant second partial key elements stored in another secure partition.

보안 가속칩(130)은 평문 또는 암호문에 대해 암호 키 또는 복호 키를 이용하여 암호화 또는 복호화를 수행하는 하드웨어 보안 칩에 해당할 수 있다. 일 실시예에서, 보안 가속칩(130)은 제1 부분 키 요소를 저장할 수 있다. 보안 가속칩(130)에 저장된 제1 부분 키 요소는 외부에서 접근할 수 없고, 암호화 또는 복호화를 위해 사용되는 대칭키를 생성하는데 사용될 수 있다.The security acceleration chip 130 may correspond to a hardware security chip that encrypts or decrypts a plain text or a cipher text using a cipher key or a decryption key. In one embodiment, the secure acceleration chip 130 may store a first partial key element. The first partial key element stored in the security acceleration chip 130 can not be accessed from the outside and can be used to generate a symmetric key used for encryption or decryption.

일 실시예에서, 보안 가속칩(130)은 제1 부분 키 요소 및 메모리(110)에 저장된 복수의 제2 부분 키 요소들 중 하나로 대칭키를 생성할 수 있다. 대칭키는 경량 암호 알고리즘을 적용하는데 사용되는 암호키 또는 복호키에 해당할 수 있다.In one embodiment, the secure acceleration chip 130 may generate a symmetric key with one of the first partial key element and a plurality of second partial key elements stored in the memory 110. The symmetric key may correspond to a cryptographic key or a decryption key used to apply the lightweight cryptographic algorithm.

경량 암호 알고리즘에 사용되는 대칭키는 Shamir가 제안한 비밀 공유 기법을 통해 n개의 부분 키 요소로 변환될 수 있다. 비밀 공유 기법은 n명의 참가자들에게 비밀 정보를 분배하고 n명의 참가자들 중에서 k명 이상이 모이면 비밀 정보를 복원할 수 있는 (k,n)-threshold 기법에 해당할 수 있다. Shamir가 제안한 비밀 공유 기법에서는 다음의 수학식을 이용하여 대칭 키를 n개의 부분 키 요소로 변환할 수 있다.The symmetric key used in the lightweight cryptographic algorithm can be transformed into n partial key elements through the secret sharing scheme proposed by Shamir. The secret sharing scheme may correspond to a (k, n) -threshold scheme that distributes confidential information to n participants and restores confidential information when more than k of n participants gather. In the secret sharing scheme proposed by Shamir, the symmetric key can be transformed into n partial key elements using the following equation.

[수학식][Mathematical Expression]

Figure pat00001
Figure pat00001

보안 가속칩(130)은 Shamir가 제안한 비밀 공유 기법에 의해 n개로 변환된 부분 키 요소들 중에서 k개의 부분 키 요소에 대해 라그랑지 보간법(Lagrange Interpolation)을 이용하여 대칭키를 생성할 수 있다. 여기에서, 라그랑지 보간법은 데이터 포인트의 주어진 집합으로부터 다항식을 보간하는 방법으로, n+1 개의 주어진 점을 지나는 n차 다항식을 구하는 방법에 해당할 수 있다.The security acceleration chip 130 may generate a symmetric key using Lagrange Interpolation for k partial key elements among the n partial key elements converted by the secret sharing scheme proposed by Shamir. Here Lagrangian interpolation is a method of interpolating a polynomial from a given set of data points, which may correspond to a method of obtaining an n-th polynomial over n + 1 given points.

보안 가속칩(130)은 n개의 부분 키 요소들 중에서 k-1 개의 부분 키 요소들을 제1 부분 키 요소로서 보안 가속칩(130) 내부에 저장할 수 있다. n개의 부분 키 요소들 중 제1 부분 키 요소를 제외한 나머지 n-k+1 개의 부분 키 요소들은 제2 부분 키 요소로서 메모리(110)의 보안 파티션에 각각 저장될 수 있다. 보안 가속칩(130)은 k-1 개의 제1 부분 키 요소들 및 메모리(110)에 저장된 제2 부분 키 요소들 중에서 하나를 포함하는 총 k개의 부분 키 요소들을 이용하여 대칭키를 생성할 수 있다.The security acceleration chip 130 may store k-1 partial key elements among the n partial key elements within the secure acceleration chip 130 as a first partial key element. The remaining n-k + 1 partial key elements other than the first partial key element among the n partial key elements may be respectively stored in the secure partition of the memory 110 as a second partial key element. The security acceleration chip 130 may generate a symmetric key using a total of k partial key elements, including k-1 first partial key elements and one of the second partial key elements stored in the memory 110 have.

일 실시예에서, 보안 가속칩(130)은 k-1 개의 제1 부분 키 요소들 및 메모리(110)에 저장된 제2 부분 키 요소들 중에서 적어도 하나를 포함하는 총 k개 이상의 부분 키 요소들을 이용하여 대칭키를 생성할 수 있다. Shamir가 제안한 비밀 공유 방법에 의하면 대칭키를 이용하여 생성한 n개의 부분 키 요소들 중 k개 이상의 부분 키 요소들이 모이면 원래의 대칭키를 복원할 수 있다.In one embodiment, the secure acceleration chip 130 utilizes a total of at least k partial key elements, including at least one of k-1 first partial key elements and second partial key elements stored in the memory 110 So that a symmetric key can be generated. According to the secret sharing method proposed by Shamir, the original symmetric key can be restored when k or more partial key elements among the n partial key elements generated using the symmetric key are collected.

보안 가속칩(130)은 제1 부분 키 요소 및 제2 부분 키 요소를 이용하여 생성한 대칭 키를 기초로 평문의 암호화 또는 암호문의 복호화를 수행할 수 있다. 보다 구체적으로, 보안 가속칩(130)은 대칭키 및 라운드 함수를 이용하여 LEA 블록 암호를 통해 평문의 암호화 또는 암호문의 복호화를 수행할 수 있다. 보안 가속칩(130)은 평문 또는 암호문과 함께 제2 부분 키 요소를 입력으로서 제공받을 수 있고, 암호화 또는 복호화의 결과로서 암호문 또는 평문을 출력으로 제공할 수 있다.The security acceleration chip 130 may perform the encryption of the plaintext or the decryption of the ciphertext based on the symmetric key generated using the first partial key element and the second partial key element. More specifically, the security acceleration chip 130 may perform plaintext encryption or decryption of ciphertext through LEA block encryption using a symmetric key and a round function. The security acceleration chip 130 may be provided as input with a second partial key element along with a plain text or cipher text and may provide a ciphertext or plaintext as an output as a result of encryption or decryption.

일 실시예에서, 보안 가속칩(130)은 특정 조건 하에서 제1 부분 키 요소를 변경할 수 있다. 예를 들어, 보안 가속칩(130)은 경량 암호 알고리즘 보안 장치(100)와 분리되어 특정 장치에 결합된 상태에서만 제1 부분 키 요소 전체를 변경할 수 있다. 보안 가속칩(130)에 저장된 제1 부분 키 요소 전체를 변경함으로써 경량 암호 알고리즘에 사용되는 대칭키를 변경할 수 있다.In one embodiment, the secure acceleration chip 130 may change the first partial key element under certain conditions. For example, the secure acceleration chip 130 may change the entire first partial key element only when coupled to a specific device, separate from the lightweight cryptographic algorithm security device 100. [ The symmetric key used in the lightweight encryption algorithm can be changed by changing the entire first partial key element stored in the secure acceleration chip 130. [

보안 가속칩(130)은 하드웨어 보안 칩에 해당할 수 있고, 특별한 경우가 아니라면 외부에서 제1 부분 키 요소에 직접적으로 접근할 수 없으며, 쉽게 변경할 수도 없다. 보안 가속칩(130)이 저장하는 제1 부분 키 요소는 암호화 또는 복호화를 위해 사용되는 특정 대칭키에 대한 정보에 해당할 수 있고, 외부에서는 직접적인 접근이 불가능 하도록 설계되어 대칭키에 대한 보안을 강화할 수 있다.The security acceleration chip 130 may correspond to a hardware security chip, and can not directly access the first partial key element from the outside and can not easily change it unless it is a special case. The first partial key element stored by the security acceleration chip 130 may correspond to information on a specific symmetric key used for encryption or decryption and may be designed so that direct access from the outside is impossible to enhance security for the symmetric key .

프로세서(150)는 경량 암호 알고리즘 보안 장치(100)의 경량 암호 알고리즘 보안 프로시저를 실행할 수 있고, 그 과정 전반에서 읽혀지거나 작성되는 메모리(110)를 관리할 수 있으며, 메모리(110)에 있는 휘발성 메모리와 비휘발성 메모리 간의 동기화 시간을 스케줄할 수 있다. 프로세서(150)는 경량 암호 알고리즘 보안 장치(100)의 동작 전반을 제어할 수 있고, 메모리(110), 보안 가속칩(130)과 전기적으로 연결되어 이들 간의 데이터 흐름을 제어할 수 있다. 프로세서(150)는 경량 암호 알고리즘 보안 장치(100)의 CPU(Central Processing Unit)로 구현될 수 있다. The processor 150 may execute the lightweight cryptographic algorithm security procedures of the lightweight cryptographic algorithm security device 100 and may manage the memory 110 that is read or written throughout the process, The synchronization time between the memory and the nonvolatile memory can be scheduled. The processor 150 may control the overall operation of the lightweight encryption algorithm security device 100 and may be electrically coupled to the memory 110 and the security acceleration chip 130 to control the data flow between them. The processor 150 may be embodied as a central processing unit (CPU) of the lightweight encryption algorithm security apparatus 100.

일 실시예에서, 프로세서(150)는 보안 가속칩(130)에 저장된 제1 부분 키 요소들의 변경이 감지된 경우 메모리(110)에 저장된 복수의 제2 부분 키 요소들 전체를 갱신할 수 있다. 제1 부분 키 요소 및 제2 부분 키 요소는 동일한 하나의 대칭키를 생성하는데 함께 사용될 수 있고, 제1 부분 키 요소 또는 제2 부분 키 요소만으로는 대칭키를 생성할 수 없다. 따라서, 보안 가속칩(130)에 저장된 제1 부분 키 요소들이 변경된 경우, 메모리(110)의 보안 파티션에 저장된 제2 부분 키 요소들 역시 변경이 필요할 수 있다. 이 경우 갱신될 제2 부분 키 요소들은 변경된 제1 부분 키 요소들을 생성하는데 사용된 대칭키를 이용하여 생성할 수 있다.In one embodiment, the processor 150 may update a plurality of second partial key elements stored in the memory 110 when a change in the first partial key elements stored in the secure acceleration chip 130 is detected. The first partial key element and the second partial key element may be used together to generate the same one symmetric key and the first partial key element or the second partial key element alone can not generate the symmetric key. Thus, when the first partial key elements stored in the secure acceleration chip 130 are changed, the second partial key elements stored in the secure partition of the memory 110 may also need to be modified. In this case, the second partial key elements to be updated may be generated using the symmetric key used to generate the modified first partial key elements.

예를 들어, 프로세서(150)는 Shamir가 제안한 비밀 공유 기법을 통해 n개로 변환된 부분 키 요소들 중에서 제1 부분 키 요소들로서 보안 가속칩(130)에 저장된 부분 키 요소들을 제외한 나머지 부분 키 요소들을 제2 부분 키 요소들로서 메모리(110)의 보안 파티션 각각에 저장할 수 있다. 프로세서(150)의 구체적 기능에 대해서는 도 2에서 자세히 설명한다.For example, the processor 150 receives the remaining partial key elements excluding the partial key elements stored in the security acceleration chip 130 as the first partial key elements among the n partial converted key elements through the secret sharing technique proposed by Shamir May be stored in each of the secure partitions of the memory 110 as second partial key elements. Specific functions of the processor 150 will be described in detail with reference to FIG.

도 2는 도 1에 있는 프로세서의 기능 요소를 나타내는 블록도이다.Figure 2 is a block diagram illustrating the functional elements of the processor in Figure 1;

도 2를 참조하면, 프로세서(150)는 요청 수신부(210), 보안 파티션 결정부(230), 부분 키 요소 제공부(250) 및 제어부(270)를 포함할 수 있다.Referring to FIG. 2, the processor 150 may include a request receiver 210, a secure partition determination unit 230, a partial key element providing unit 250, and a controller 270.

요청 수신부(210)는 암호화 또는 복호화 요청을 수신할 수 있다. 일 실시예에서, 요청 수신부(210)는 경량 암호 알고리즘 보안 장치(100)가 외부로부터 평문을 수신한 경우 평문에 대한 암호화 요청을 수신한 것으로 처리할 수 있고, 암호문을 수신한 경우 암호문에 대한 복호화 요청을 수신한 것으로 처리할 수 있다.The request receiving unit 210 may receive an encryption or decryption request. In one embodiment, the request receiving unit 210 can process the plaintext when the lightweight encryption algorithm security apparatus 100 receives plaintext from the outside, The request can be treated as received.

보안 파티션 결정부(230)는 요청 수신부(210)를 통해 암호화 또는 복호화 요청을 수신한 경우 메모리(110)에 포함된 복수의 보안 파티션들 중 하나를 선택할 수 있다. 프로세서(150)는 보안 파티션 결정부(230)에 의해 선택된 보안 파티션에 대한 접근 권한을 특정 프로세스와 연관시켜 접근 가능 상태로 변경할 수 있다.The secure partition determination unit 230 may select one of a plurality of security partitions included in the memory 110 when receiving the encryption or decryption request through the request receiving unit 210. [ The processor 150 may change the access right to the security partition selected by the security partition determining unit 230 to an accessible state by associating with the specific process.

일 실시예에서, 보안 파티션 결정부(230)는 암호화 또는 복호화 요청에 따라 난수 발생기(도 2에 미도시함)로부터 획득한 난수에 기초하여 메모리(110)에 포함된 복수의 보안 파티션들 중 하나를 선택할 수 있다. 예를 들어, 보안 파티션 결정부(230)는 난수 발생기를 통해 메모리(110)에 포함된 보안 파티션들의 개수의 범위 내의 난수가 출력되도록 할 수 있고, 특정 기준에 따라 출력된 난수 순서에 해당하는 보안 파티션을 선택할 수 있다.In one embodiment, the secure partition determination unit 230 determines, based on a random number obtained from a random number generator (not shown in FIG. 2) according to an encryption or decryption request, one of a plurality of security partitions included in the memory 110 Can be selected. For example, the secure partition determination unit 230 may output a random number within a range of the number of security partitions included in the memory 110 through a random number generator, You can choose a partition.

일 실시예에서, 보안 파티션 결정부(230)는 난수 발생기에 현재 시간을 시드(Seed)로 제공하여 난수를 획득할 수 있다. 여기에서, 현재 시간은 시스템의 현재 시간에 해당할 수 있다. 다른 실시예에서, 보안 파티션 결정부(230)는 난수 발생기에 현재 시간 이외에 다양한 시드를 제공하여 난수를 획득할 수 있고, 해당 난수를 기초로 메모리(110)에 저장된 보안 파티션을 결정할 수 있다.In one embodiment, the secure partition determination unit 230 can obtain a random number by providing a current time to a random number generator as a seed. Here, the current time may correspond to the current time of the system. In another embodiment, the secure partition determination unit 230 may obtain a random number by providing various seeds to the random number generator in addition to the current time, and may determine a secure partition stored in the memory 110 based on the random number.

부분 키 요소 제공부(250)는 보안 파티션 결정부(230)에 의해 선택된 보안 파티션으로부터 제2 부분 키 요소를 가져올 수 있고 보안 가속칩(130)에 제2 부분 키 요소를 제공할 수 있다. 부분 키 요소 제공부(250)는 선택된 보안 파티션에 대한 접근 권한을 얻은 프로세스를 통해 해당 보안 파티션에 접근하여 제2 부분 키 요소를 가져올 수 있다.The partial key element providing unit 250 may fetch the second partial key element from the secure partition selected by the secure partition determining unit 230 and provide the second partial key element to the secure acceleration chip 130. [ The partial key element providing unit 250 accesses the corresponding secure partition through the process of obtaining the access right to the selected secure partition to obtain the second partial key element.

일 실시예에서, 부분 키 요소 제공부(250)는 보안 파티션 결정부(230)에 의해 선택된 보안 파티션에 대한 접근 가능 상태인지 확인하여 보안 파티션에 저장된 제2 부분 키 요소를 가져올 수 있다. 부분 키 요소 제공부(250)는 해당 보안 파티션이 접근 가능 상태인 경우에만 보안 파티션에 접근하여 제2 부분 키 요소를 가져올 수 있고, 접근 불가 상태인 경우에는 해당 보안 파티션이 접근 가능 상태가 될 때까지 대기할 수 있다.In one embodiment, the partial key factor providing unit 250 can obtain the second partial key element stored in the secure partition by confirming that the security partition selected by the secure partition determining unit 230 is in an accessible state. The partial key element providing unit 250 can access the security partition and fetch the second partial key element only when the corresponding security partition is in the accessible state. If the security key is in the inaccessible state, .

일 실시예에서, 부분 키 요소 제공부(250)는 보안 파티션 결정부(230)에 의해 선택된 보안 파티션이 접근 불가 상태인 경우 보안 파티션 결정부(230)를 통해 난수 발생기로부터 획득한 새로운 난수에 기초하여 복수의 보안 파티션들 중 하나를 다시 선택할 수 있다. 부분 키 요소 제공부(250)는 보안 파티션이 접근 불가 상태인 경우 접근 가능 상태가 될 때까지 대기할 수 있고, 보안 파티션 결정부(230)를 통해 난수 발생기로부터 새로운 난수를 발생시켜 해당 난수와 연관된 보안 파티션을 다시 선택할 수 있다. 이 경우, 이 전에 선택되었던 보안 파티션에 대한 접근 권한은 프로세서(150)에 의해 초기화 될 수 있다.In one embodiment, the partial key factor providing unit 250 determines whether the security partition selected by the security partition determining unit 230 is inaccessible, based on the new random number acquired from the random number generator through the secure partition determining unit 230 To reselect one of the plurality of secure partitions. If the security partition is inaccessible, the partial key element providing unit 250 can wait until it is in an accessible state, generate a new random number from the random number generator through the secure partition determining unit 230, You can reselect the secure partition. In this case, access rights to the previously selected secure partition may be initiated by the processor 150. [

일 실시예에서, 부분 키 요소 제공부(250)는 보안 파티션 결정부(230)에 의해 선택된 보안 파티션이 접근 불가 상태인 경우 다음 수학식1을 통해 산출된 대기시간 동안 자동대기할 수 있고, 해당 대기 시간이 경과된 경우 보안 파티션 결정부(230)를 통해 난수 발생기로부터 새로운 난수를 발생시켜 해당 난수와 연관된 보안 파티션을 다시 선택할 수 있다.In one embodiment, if the security partition selected by the secure partition determination unit 230 is in an inaccessible state, the partial key element providing unit 250 can automatically wait for the waiting time calculated by the following equation (1) When the waiting time has elapsed, a new random number may be generated from the random number generator through the security partition determination unit 230 and the security partition associated with the random number may be selected again.

[수학식1][Equation 1]

Figure pat00002
Figure pat00002

여기에서, T는 대기시간을, k는 비계 계수를, P는 프로세서(150)의 연산 부하량을, C는 프로세서(150)의 연산 성능을, NP는 현재 프로세스의 수를 NS는 메모리(110)에 포함된 보안 파티션의 수를 나타낸다.Here, T is the waiting time, k is a scaffold coefficient, P is the calculation load of the processor (150), C is an operation performance of the processor (150), N P is the N S number of the current process is a memory ( 110). ≪ / RTI >

부분 키 요소 제공부(250)가 보안 파티션이 접근 가능 상태가 될 때까지 대기할 수 있는 대기시간 T는 프로세서(150)의 연산 부하량이 많을수록, 프로세서(150)의 연산 성능이 낮을수록, 현재 생성된 프로세스의 수가 적을수록, 메모리(110)에 포함된 보안 파티션의 수가 적을수록 길어질 수 있다. The waiting time T, in which the partial key element providing unit 250 can wait until the security partition becomes accessible, is determined by the fact that the greater the computation load of the processor 150, the lower the computation performance of the processor 150, The smaller the number of processes, and the smaller the number of secure partitions included in the memory 110, the longer it can be.

프로세서(150)의 연산 부하량이 많은 경우이거나 또는 연산 성능이 낮은 경우에는 난수발생기를 통한 난수의 획득 연산이 프로세서(150)의 연산 부하를 가중시킬 수 있으므로 대기시간을 길게 하여 추가적인 연산을 줄이는 것이 좋을 수 있다. 현재 생성된 프로세스의 수가 적은 경우에는 새로운 난수를 통해 새로운 보안 파티션으로의 접근이 수월할 수 있으므로 대기시간을 짧게 하여 연산을 빠르게 처리하는 것이 좋을 수 있다. 메모리(110)에 포함된 보안 파티션의 수가 적을수록 관련 보안 파티션에 접근하려고 하는 시도가 중복될 확률이 높으므로 대기시간을 길게 하여 보안 파티션의 접근 시도를 줄이는 것이 좋을 수 있다.If the computation load of the processor 150 is large or the computation performance is low, the random number acquisition operation through the random number generator may increase the computation load of the processor 150, so it is preferable to increase the waiting time to reduce additional computation . If the number of currently created processes is small, access to the new security partition may be easy through the new random number, so it may be desirable to shorten the waiting time and process the operation quickly. The lower the number of secure partitions included in the memory 110, the higher the probability that attempts to access the associated security partitions will be duplicated, so it may be desirable to increase the latency time to reduce access attempts of the secure partitions.

제어부(270)는 프로세서(150)의 전체적인 동작을 제어하고, 요청 수신부(210), 보안 파티션 결정부(230) 및 부분 키 요소 제공부(250) 간의 제어 흐름 및 데이터 흐름을 관리할 수 있다.The control unit 270 may control the overall operation of the processor 150 and may manage the control flow and data flow between the request receiving unit 210, the secure partition determination unit 230 and the partial key factor providing unit 250.

도 3은 도 1에 있는 보안 가속칩에서 수행되는 암호화 또는 복호화 과정을 설명하는 순서도이다.3 is a flowchart illustrating an encryption or decryption process performed in the security acceleration chip of FIG.

도 3을 참조하면, 보안 가속칩(130)은 부분 키 요소 제공부(250)로부터 제2 부분 키 요소를 수신할 수 있다(단계 S310). 보안 가속칩(130)은 부분 키 요소 제공부(250)로부터 수신한 제2 부분 키 요소와 보안 가속칩(130) 내부에 하드웨어적으로 보호되어 저장된 복수의 제1 부분 키 요소를 이용하여 대칭키를 생성할 수 있다(단계 S330). Referring to FIG. 3, the secure acceleration chip 130 may receive a second partial key element from the partial key element providing part 250 (step S310). The security acceleration chip 130 uses the second partial key element received from the partial key element providing unit 250 and the plurality of first partial key elements stored in the hardware of the secure acceleration chip 130 to store the symmetric key (Step S330).

보안 가속칩(130)은 생성된 대칭키를 이용하여 평문의 암호화 또는 암호문의 복호화를 수행할 수 있다(단계 S350). 보안 가속칩(130)은 생성된 대칭키를 경량 암호 알고리즘에 적용하여 평문의 암호화 또는 암호문의 복호화를 수행할 수 있다. 예를 들어, 보안 가속칩(130)은 대칭키와 라운드 함수를 이용하여 LEA 블록 암호(Block Cipher)을 적용하여 평문을 암호문으로 변경하거나 또는 암호문을 평문으로 변경하여 출력으로 제공할 수 있다.The security acceleration chip 130 may perform encryption of plain text or decryption of ciphertext using the generated symmetric key (step S350). The security acceleration chip 130 may apply the generated symmetric key to the lightweight encryption algorithm to perform encryption of plain text or decryption of ciphertext. For example, the security acceleration chip 130 may apply a LEA block cipher using a symmetric key and a round function to convert a plaintext into a ciphertext, or to convert a ciphertext into a plaintext to provide an output.

도 4는 도 1에 있는 프로세서에서 수행되는 암호화 또는 복호화 과정을 설명하는 순서도이다.4 is a flowchart illustrating an encryption or decryption process performed in the processor shown in FIG.

도 4를 참조하면, 프로세서(150)는 요청 수신부(210)를 통해 암호화 또는 복호화 요청을 수신할 수 있다(단계 S410). 프로세서(150)는 보안 파티션 결정부(230)를 통해 메모리(110)에 포함된 복수의 보안 파티션들 중 하나를 선택할 수 있다(단계 S430).Referring to FIG. 4, the processor 150 may receive an encryption or decryption request through the request receiver 210 (step S410). The processor 150 may select one of the plurality of security partitions included in the memory 110 through the secure partition determination unit 230 (step S430).

일 실시예에서, 보안 파티션 결정부(230)는 메모리(110)에 포함된 복수의 보안 파티션들 중 적어도 하나의 보안 파티션을 선택할 수 있다. 보다 구체적으로, 보안 파티션 결정부(230)는 난수 발생기로부터 연속하여 난수를 획득함으로써 적어도 하나의 보안 파티션을 선택할 수 있다.In one embodiment, the secure partition determination unit 230 may select at least one secure partition among a plurality of secure partitions included in the memory 110. [ More specifically, the secure partition determination unit 230 may select at least one secure partition by successively obtaining a random number from the random number generator.

프로세서(150)는 부분 키 요소 제공부(250)를 통해 선택된 보안 파티션에 저장된 제2 부분 키 요소를 보안 가속칩(130)에 제공할 수 있다(단계 S450). 일 실시예에서, 부분 키 요소 제공부(250)는 보안 파티션 결정부(230)가 적어도 하나의 보안 파티션을 선택한 경우 각각의 보안 파티션에 대한 접근 가능 상태를 확인하여 적어도 하나의 제2 부분 키 요소들을 보안 가속칩(130)에 제공할 수 있다.The processor 150 may provide the second partial key element stored in the selected secure partition to the secure acceleration chip 130 through the partial key element providing unit 250 (step S450). In one embodiment, the partial key element providing unit 250 checks the accessible state of each security partition when the secure partition determining unit 230 selects at least one secure partition, to determine at least one second partial key element To the security acceleration chip 130.

일 실시예에서, 보안 가속칩(130)은 부분 키 요소 제공부(250)로부터 수신한 적어도 하나의 제2 부분 키 요소들과 보안 가속칩(130) 내부에 하드웨어적으로 보호되어 저장된 복수의 제1 부분 키 요소들을 이용하여 대칭키를 생성할 수 있다. 예를 들어, 보안 가속칩(130)은 적어도 하나의 제2 부분 키 요소들과 보안 가속칩(130) 내부의 제1 부분 키 요소들을 포함하는 총 k개 이상의 부분 키 요소들에 대해 라그랑지 보간법(Lagrange Interpolation)을 적용하여 대칭키를 생성할 수 있다.In one embodiment, the secure acceleration chip 130 includes at least one second partial key element received from the partial key element providing part 250 and a plurality of second partial key elements received from the secure acceleration chip 130, 1 partial key elements may be used to generate the symmetric key. For example, the security acceleration chip 130 may perform a Lagrangian interpolation for at least k partial key elements, including at least one second partial key elements and first partial key elements within the secure acceleration chip 130, (Lagrange Interpolation) can be applied to generate a symmetric key.

도 5는 도 1에 있는 보안 가속칩에서 LEA 알고리즘을 이용하여 수행되는 암호화 또는 복호화 과정을 설명하는 예시도이다.5 is an exemplary diagram illustrating an encryption or decryption process performed using the LEA algorithm in the security acceleration chip of FIG.

도 5를 참조하면, 프로세서(150)의 보안 파티션 결정부(230)에 의해 메모리(510)에 포함된 복수의 보안 파티션 중 하나(511)가 선택되면, 해당 보안 파티션(511)에 저장된 제2 부분 키 요소가 프로세서(150)의 부분 키 요소 제공부(250)에 의해 보안 가속칩(530)에 제공될 수 있다. 보안 가속칩(530)은 부분 키 요소 제공부(250)에 의해 제공받은 제2 부분 키 요소와 보안 가속칩(530) 내부에 저장된 제1 부분 키 요소들(531)을 이용하여 비밀키(533)를 생성할 수 있다. 5, when one of the plurality of security partitions included in the memory 510 is selected by the security partition determination unit 230 of the processor 150, The partial key element may be provided to the secure acceleration chip 530 by the partial key element providing part 250 of the processor 150. [ The security acceleration chip 530 uses the second partial key element provided by the partial key element providing part 250 and the first partial key elements 531 stored in the security acceleration chip 530 to generate the secret key 533 Can be generated.

보안 가속칩(530)은 비밀키(533)를 기초로 경량 암호 알고리즘 중 하나인 LEA 암호 알고리즘을 적용할 수 있다(537 및 539). 보다 구체적으로, 보안 가속칩(530)은 생성된 비밀키(533)를 키 스케줄러에 입력하여 복수의 라운드 키를 생성할 수 있고, 복수의 라운드 키와 라운드 함수(535)를 이용하여 평문을 암호화하여 암호문을 생성(537)하거나 또는 암호문을 복호화하여 평문을 생성(539)할 수 있다.The security acceleration chip 530 may apply the LEA encryption algorithm, which is one of the lightweight encryption algorithms, based on the secret key 533 (537 and 539). More specifically, the security acceleration chip 530 can generate a plurality of round keys by inputting the generated secret key 533 to the key scheduler, and encrypts the plain text using the round keys and the round function 535 A ciphertext is generated (537), or a ciphertext is decrypted to generate a plain text (539).

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the present invention as defined by the following claims It can be understood that

100: 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치
110: 메모리 130: 보안 가속칩
150: 프로세서
210: 요청 수신부 230: 보안 파티션 결정부
250: 부분 키 요소 제공부 270: 제어부
510: 메모리 530: 보안 가속칩
511: 보안 파티션 531: 제1 부분 키 요소
533: 비밀키 535: 라운드 함수
537: 암호화 과정 539: 복호화 과정
100: Lightweight cryptographic algorithm security device based on hardware authentication chip
110: memory 130: security acceleration chip
150: Processor
210: request reception unit 230: security partition determination unit
250: partial key element providing unit 270:
510: memory 530: security acceleration chip
511: Security partition 531: First partial key element
533: secret key 535: round function
537: Encryption process 539: Decryption process

Claims (8)

제1 부분 키 요소를 통해 생성될 수 있는 대칭 키를 생성하는데 사용되는 복수의 제2 부분 키 요소들을 저장하는 복수의 보안 파티션들로 구분된 메모리;
상기 제1 부분 키 요소를 저장하고 상기 제1 부분 키 요소와 상기 복수의 제2 부분 키 요소들 중 하나로 생성되는 대칭 키를 기초로 평문의 암호화 또는 암호문의 복호화를 수행하는 보안 가속칩; 및
암호화 또는 복호화 요청에 따라 상기 복수의 보안 파티션들 중 하나를 선택하여 해당 제2 부분 키 요소를 가져와서 상기 보안 가속칩에 제공하는 프로세서를 포함하는 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치.
A memory divided into a plurality of security partitions storing a plurality of second partial key elements used to generate a symmetric key that can be generated via a first partial key element;
A secure acceleration chip for storing the first partial key element and performing encryption of a plaintext or decryption of a ciphertext based on a symmetric key generated as one of the first partial key element and the plurality of second partial key elements; And
And a processor for selecting one of the plurality of security partitions according to an encryption or decryption request to obtain a corresponding second partial key element and providing the selected second partial key element to the security acceleration chip.
제1항에 있어서, 상기 메모리는
상기 제1 부분 키 요소를 제외한 상기 복수의 제2 부분 키 요소들만을 저장하는 것을 특징으로 하는 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치.
2. The apparatus of claim 1, wherein the memory
And stores only the plurality of second partial key elements except for the first partial key element.
제1항에 있어서, 상기 보안 가속칩은
특정 조건 하에서 상기 제1 부분 키 요소를 변경할 수 있는 것을 특징으로 하는 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치.
The system of claim 1, wherein the secure acceleration chip
Wherein the first partial key element can be changed under specific conditions.
제1항에 있어서, 상기 프로세서는
상기 보안 가속칩에 저장된 상기 제1 부분 키 요소들의 변경이 감지된 경우 상기 복수의 제2 부분 키 요소들 전체를 갱신하는 것을 특징으로 하는 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치.
2. The apparatus of claim 1, wherein the processor
And updates the entirety of the plurality of second partial key elements when a change in the first partial key elements stored in the security acceleration chip is detected.
제1항에 있어서, 상기 프로세서는
암호화 또는 복호화 요청에 따라 난수 발생기로부터 획득한 난수에 기초하여 상기 복수의 보안 파티션들 중 하나를 선택하는 것을 특징으로 하는 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치.
2. The apparatus of claim 1, wherein the processor
And selecting one of the plurality of security partitions based on a random number obtained from the random number generator according to an encryption or decryption request.
제5항에 있어서, 상기 프로세서는
상기 난수 발생기에 현재 시간을 시드(Seed)로 제공하여 난수를 획득하는 것을 특징으로 하는 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치.
6. The apparatus of claim 5, wherein the processor
And the random number generator is provided with a current time as a seed to obtain a random number.
제5항에 있어서, 상기 프로세서는
선택된 상기 보안 파티션에 대한 접근 가능 상태인지 확인하여 상기 보안 파티션에 저장된 상기 제2 부분 키 요소를 가져오는 것을 특징으로 하는 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치.
6. The apparatus of claim 5, wherein the processor
And the second partial key element stored in the secure partition is obtained by confirming that the selected security partition is in an accessible state.
제7항에 있어서, 상기 프로세서는
상기 보안 파티션이 접근 불가 상태인 경우 상기 난수 발생기로부터 획득한 새로운 난수에 기초하여 상기 복수의 보안 파티션들 중 하나를 다시 선택하는 것을 특징으로 하는 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치.

8. The apparatus of claim 7, wherein the processor
And when the security partition is in an inaccessible state, selecting one of the plurality of security partitions based on a new random number obtained from the random number generator.

KR1020170170000A 2017-12-12 2017-12-12 Lightweight encryption algorithm security apparatus based on hardware authentication chip KR102066487B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170170000A KR102066487B1 (en) 2017-12-12 2017-12-12 Lightweight encryption algorithm security apparatus based on hardware authentication chip

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170170000A KR102066487B1 (en) 2017-12-12 2017-12-12 Lightweight encryption algorithm security apparatus based on hardware authentication chip

Publications (2)

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

Family

ID=67103688

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170170000A KR102066487B1 (en) 2017-12-12 2017-12-12 Lightweight encryption algorithm security apparatus based on hardware authentication chip

Country Status (1)

Country Link
KR (1) KR102066487B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100533154B1 (en) 2002-06-27 2005-12-02 주식회사 케이티 Cording/Decording Method by using Symmetric Key in Digital Rights Management System
KR20080020621A (en) * 2005-05-13 2008-03-05 노키아 코포레이션 Implementation of an integrity-protected secure storage
KR100898437B1 (en) 2001-04-25 2009-05-21 톰슨 라이센싱 Process of symmetric key management in a communication network, communication device and device for processing data in a communication network
JP2012065123A (en) * 2010-09-15 2012-03-29 Fuji Electric Retail Systems Co Ltd Ic card system, communication terminal therefor and portable terminal therefor

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100898437B1 (en) 2001-04-25 2009-05-21 톰슨 라이센싱 Process of symmetric key management in a communication network, communication device and device for processing data in a communication network
KR100533154B1 (en) 2002-06-27 2005-12-02 주식회사 케이티 Cording/Decording Method by using Symmetric Key in Digital Rights Management System
KR20080020621A (en) * 2005-05-13 2008-03-05 노키아 코포레이션 Implementation of an integrity-protected secure storage
JP2012065123A (en) * 2010-09-15 2012-03-29 Fuji Electric Retail Systems Co Ltd Ic card system, communication terminal therefor and portable terminal therefor

Also Published As

Publication number Publication date
KR102066487B1 (en) 2020-02-11

Similar Documents

Publication Publication Date Title
US11818262B2 (en) Method and system for one-to-many symmetric cryptography and a network employing the same
US20190318356A1 (en) Offline storage system and method of use
TWI399663B (en) Cryptography system and cryptography method
US8983061B2 (en) Method and apparatus for cryptographically processing data
US8379841B2 (en) Method and system for high throughput blockwise independent encryption/decryption
US20130219189A1 (en) Cryptographic Transmission System
JP6363032B2 (en) Key change direction control system and key change direction control method
KR102153317B1 (en) Encryption apparatus based on quantum random number
CN110688666B (en) Data encryption and preservation method in distributed storage
JP2007043353A (en) Transmission and reception system and method, transmission device and method, reception device and method, and program
JP2014175970A (en) Information distribution system, information processing device, and program
US20210135851A1 (en) Encryption processing system and encryption processing method
JP6961324B2 (en) Searchable cryptographic processing system
JP2007142591A (en) Encryption management method
US8041033B2 (en) Cipher feedback with variable block chaining
Neha Enhanced security using hybrid encryption algorithm
EP4012689B1 (en) Key management system providing secure management of cryptographic keys, and methods of operating the same
KR102066487B1 (en) Lightweight encryption algorithm security apparatus based on hardware authentication chip
Kanna et al. A new approach in multi cloud environment to improve data security
JP6842090B2 (en) Communication equipment, server equipment, secret communication systems, methods, and programs
US20170126399A1 (en) Encryption apparatus, storage system, decryption apparatus, encryption method, decryption method, and computer readable medium
JP2014017763A (en) Encryption update system, encryption update request device, encryption update device, decryption device, encryption update method, and computer program
JP5178269B2 (en) Decoding device and program
JP6108012B2 (en) Information distribution system, information processing apparatus, and program
Santhi Baskaran Survey on Data Security using Encryption Algorithms in Cloud Environment

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