KR20220005705A - 동형 암호를 이용하는 전자 장치 및 그것의 암호화 데이터 처리 방법 - Google Patents

동형 암호를 이용하는 전자 장치 및 그것의 암호화 데이터 처리 방법 Download PDF

Info

Publication number
KR20220005705A
KR20220005705A KR1020200083213A KR20200083213A KR20220005705A KR 20220005705 A KR20220005705 A KR 20220005705A KR 1020200083213 A KR1020200083213 A KR 1020200083213A KR 20200083213 A KR20200083213 A KR 20200083213A KR 20220005705 A KR20220005705 A KR 20220005705A
Authority
KR
South Korea
Prior art keywords
public key
key
apu
encryption
data
Prior art date
Application number
KR1020200083213A
Other languages
English (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 KR1020200083213A priority Critical patent/KR20220005705A/ko
Priority to CN202110633384.0A priority patent/CN113972978A/zh
Priority to US17/347,055 priority patent/US11824967B2/en
Priority to EP21181760.6A priority patent/EP3937419B1/en
Publication of KR20220005705A publication Critical patent/KR20220005705A/ko
Priority to US18/379,384 priority patent/US20240048354A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 동형 암호를 이용하는 전자 장치 및 그것의 암호화 데이터 처리 방법에 관한 것으로, 본 발명의 실시 예에 따른 전자 장치는 외부로부터 수신한 데이터를 저장하는 메모리, 비밀 키 및 공개 키 생성 명령을 전달하는 어플리케이션 처리 유닛(Application Processing Unit, APU), 상기 비밀 키 및 공개 키 생성 명령에 응답하여 비밀 키를 생성하고, 상기 비밀 키에 기반하여 공개 키를 생성하고, 상기 비밀 키를 저장하는 IEE(Isolated Execution Environment) 및 상기 APU의 요청에 따라 쓰기 및 읽기를 수행하는 비휘발성 메모리를 포함하되, 상기 APU는 상기 데이터가 상기 메모리에 저장되면, 상기 IEE로 공개 키 요청을 전송하고, 상기 IEE는 상기 공개 키 요청에 응답하여 메일박스 프로토콜을 통하여 상기 APU에 상기 공개 키를 전달하고, 상기 APU는 상기 공개 키에 포함된 암호화 키에 기반하여 상기 데이터를 동형 암호화하여 상기 암호문을 생성하고, 상기 APU는 상기 공개 키 및 상기 암호문을 상기 비휘발성 메모리 내에서 분리하여 저장한다.

Description

동형 암호를 이용하는 전자 장치 및 그것의 암호화 데이터 처리 방법{THE ELECTRONIC DEVICE FOR USING HOMOMORPHIC ENCRYPTION AND THE METHOD FOR PROCESSING ENCRYPTED DATA THEREOF}
본 발명은 암호화 시스템에 관한 것으로, 더욱 상세하게는 동형 암호를 이용하여 데이터를 처리하는 전자 장치 및 그것의 암호화 데이터 처리 방법에 관한 것이다.
정보 통신 기술이 발전하면서 많은 데이터들이 끊임없이 수집되고, 사물 인터넷의 활성화에 의하여 모든 기기가 연결되는 초연결의 시대가 도래하였다. 통신 기술의 발달에 의한 데이터 교류량의 증가에 따라 보안 기술에 대한 연구의 필요성이 증대되었다. 암호화 시스템은 통신 정보를 비밀 정보로 교환하기 위한 것으로, 사용자를 위하여 보안상 안전한 네트워크 또는 저장소를 제공하는 것을 목적으로 한다. 암호화 시스템을 위하여 암호 체계에 대한 연구가 활발히 이루지고 있으며, 최근 4세대 암호 체계인 동형 암호 기술에 대한 관심이 급등하고 있다.
1세대 암호 체계는 비밀번호에 기초한 인증 기술을 이용한다. 1세대 암호 체계는 단순히 문자를 다른 문자로 바꾸거나 순서를 바꾸어 암호문을 생성한다. 2세대 암호 체계는 대칭 키 암호화(Symmetric Key Encryption)를 이용한다. 대칭 키 암호 체계는 암호화 키와 복호화 키가 동일한 것으로, 하나의 암호키를 이용하여 암호화 및 복호화 과정을 처리한다. 대칭 키 암호화 방식은 비교적 연산 속도가 빠르다는 장점이 있으나, 키 자체가 암호화되어 있지 않으므로 키의 관리가 어렵고 보안에 매우 취약하다는 단점이 있다. 3세대 암호 체계는 비대칭 키 암호화(Asymmetric Key Encryption)를 이용한다. 비대칭 키 암호 체계는 암호화 키와 복호화 키가 동일하지 않은 것으로, 두 개의 키를 사용한다. 비대칭 키 암호화 방식은 개인 키를 유출하지 않으므로 보안 수준이 높다는 장점이 있으나, 용량이 크고 비교적 처리 속도가 느리다는 단점이 있다. 또한, 보안 수준이 높은 3세대 암호 체계의 경우에도 데이터 분석을 위하여 복호화 과정을 적어도 한번 거쳐야 한다는 점에서 데이터 유출을 근본적으로 봉쇄할 수 없다는 문제점이 존재한다.
본 발명의 목적은 장치 내에서 동형 암호를 이용하여 데이터를 처리할 수 있는 전자 장치 및 그것의 암호화 데이터 처리 방법을 제공하는데 있다.
본 발명의 실시 예에 따른 전자 장치는 외부로부터 수신한 데이터를 저장하는 메모리, 비밀 키 및 공개 키 생성 명령을 전달하는 어플리케이션 처리 유닛(Application Processing Unit, APU), 상기 비밀 키 및 공개 키 생성 명령에 응답하여 비밀 키를 생성하고, 상기 비밀 키에 기반하여 공개 키를 생성하고, 상기 비밀 키를 저장하는 IEE(Isolated Execution Environment) 및 상기 APU의 요청에 따라 쓰기 및 읽기를 수행하는 비휘발성 메모리를 포함하되, 상기 APU는 상기 데이터가 상기 메모리에 저장되면, 상기 IEE로 공개 키 요청을 전송하고, 상기 IEE는 상기 공개 키 요청에 응답하여 메일박스 프로토콜을 통하여 상기 APU에 상기 공개 키를 전달하고, 상기 APU는 상기 공개 키에 포함된 암호화 키에 기반하여 상기 데이터를 동형 암호화하여 상기 암호문을 생성하고, 상기 APU는 상기 공개 키 및 상기 암호문을 상기 비휘발성 메모리 내에서 분리하여 저장한다.
본 발명의 실시 예에 따른 암호화 데이터 처리 방법은 외부로부터 제 1 데이터를 수신하는 단계, IEE(Isolated Execution Environment)에서 생성된 공개 키를 메일박스 프로토콜을 통하여 로드(load)하는 단계, 상기 공개 키에 포함된 암호화 키에 기반하여 상기 제 1 데이터를 동형 암호화하여 제 1 암호화 데이터를 생성하는 단계, 상기 공개 키 및 상기 제 1 암호화 데이터를 비휘발성 메모리에 저장하는 단계, 상기 외부로부터 제 2 데이터를 입력 받는 단계, 상기 비휘발성 메모리에 저장된 상기 공개 키를 로드하는 단계, 상기 공개 키에 포함된 상기 암호화 키에 기반하여 상기 제 2 데이터를 동형 암호화하여 제 2 암호화 데이터를 생성하는 단계 및 상기 공개 키에 포함된 곱셈 키에 기반하여 상기 제 1 암호화 데이터 및 상기 제 2 암호화 데이터에 대한 연산을 수행하는 단계를 포함한다.
본 발명의 실시 예에 따른 악성 코드 판별 기능을 구비한 전자 장치는 외부로부터 악성 코드의 정보를 수신하는 모뎀, 상기 악성 코드의 정보로부터 상기 악성 코드의 특징 정보를 추출하고, 비밀 키 및 공개 키 생성 명령을 전달하는 어플리케이션 처리 유닛(Application Processing Unit, APU), 상기 비밀 키 및 공개 키 생성 명령에 응답하여 비밀 키를 생성하고, 상기 비밀 키에 기반하여 공개 키를 생성하고, 상기 비밀 키를 저장하는 IEE(Isolated Execution Environment) 및 상기 APU의 요청에 따라 쓰기 및 읽기를 수행하는 비휘발성 메모리를 포함하되, 상기 APU는 상기 악성 코드의 특징 정보가 추출되면, 상기 IEE로 공개 키 요청을 전송하고, 상기 IEE는 상기 공개 키 요청에 응답하여 메일박스 프로토콜을 통하여 상기 APU에 상기 공개 키를 전달하고, 상기 APU는 상기 공개 키에 포함된 암호화 키에 기반하여 상기 악성 코드의 특징 정보를 동형 암호화하여 암호화 데이터를 생성하고, 상기 APU는 상기 암호화 데이터를 상기 비휘발성 메모리에 저장한다.
본 발명에 따른 전자 장치 및 암호화 데이터 처리 방법은 네트워크를 통한 데이터 유출 위험을 줄이고, 높은 수준의 보안을 제공할 수 있다.
본 발명에 따른 전자 장치 및 암호화 데이터 처리 방법은 선택적 동형 암호화를 이용하여 데이터 처리에 대한 지연을 방지함으로써 암호화 데이터의 처리 성능을 향상시킬 수 있다.
도 1은 본 발명의 실시 예에 따른 동형 암호를 이용하는 전자 장치를 나타내는 블록도이다.
도 2는 본 발명의 실시 예에 따른 전자 장치의 암호화 키 생성 체계를 나타내는 도면이다.
도 3은 도 1에 게시된 IEE의 구성을 구체적으로 나타내는 블록도이다.
도 4는 본 발명의 실시 예에 따른 전자 장치에서 생성된 공개 키 및 암호화 데이터를 분리 저장하기 위한 비휘발성 메모리의 영역을 나타내는 도면이다.
도 5는 본 발명의 실시 예에 따라 생성된 암호화 데이터의 분류 방식을 나타내기 위한 도면이다.
도 6은 본 발명의 실시 예에 따른 전자 장치의 데이터 암호화 방법을 나타내는 순서도이다.
도 7은 본 발명의 실시 예에 따른 전자 장치의 암호화 데이터 처리 방법을 나타내는 순서도이다.
도 8은 본 발명의 실시 예에 따른 전자 장치를 이용하는 생체 인증 기능을 구비한 전자 장치를 나타내는 블록도이다.
도 9는 도 8에 게시된 생체 인증 기능을 구비한 전자 장치의 동작 방법을 나타내는 순서도이다.
도 10은 본 발명의 실시 예에 따른 전자 장치를 이용하는 악성 코드 판별 기능을 구비한 전자 장치를 나타내는 블록도이다.
도 11은 도 10에 게시된 악성 코드 판별 기능을 구비한 전자 장치에서 악성 코드 데이터 베이스를 구축하는 방법을 나타내는 순서도이다.
도 12는 도 10에 게시된 악성 코드 판별 기능을 구비한 전자 장치에서 악성 코드를 검출하는 방법을 나타내는 순서도이다.
이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들은 명확하고 상세하게 기재될 것이다.
본 명세서에서 사용된 용어는 실시 예들을 설명하기 위한 것이며, 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서 사용된 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 “포함한다(comprises) 및/또는 포함하는(comprising)”은 언급된 구성요소, 단계, 동작 및/또는 소자에 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 잇는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서, 전문에 걸쳐 동일한 참조 부호는 동일한 구성 요소를 지칭할 수 있다.
도 1은 본 발명의 실시 예에 따른 동형 암호(Homomorphic Encryption, HE)를 이용하는 전자 장치(100)를 나타내는 블록도이다. 도 1에 개시된 전자 장치(100)는 특정한 데이터를 동형 암호를 이용하여 암호화하고, 암호화된 데이터를 처리할 수 있다.
도 1을 참조하면, 본 발명의 실시 예에 따른 동형 암호를 이용하는 전자 장치(100)는 어플리케이션 처리 유닛(Application Processing Unit, 이하 APU)(110), IEE(Isolated Execution Environment, 140), 비휘발성 메모리(Non-Volatile Meomory, 150), 메모리(160) 및 데이터 입력 장치(170)를 포함할 수 있다. APU(110)는 코어(120) 및 동형 암호화 가속기(Homomorphic Encryption Accelerator, 130)를 포함할 수 있다.
APU(110)는 범용 프로세서의 일종으로, 운영체제 또는 응용 프로그램을 구동할 수 있다. 또한, APU(110)는 APU(110)에 연결된 다수의 하드웨어 구성 요소들을 제어하고, 다양한 소프트웨어 구성 요소들을 실행하고, 멀티미디어 데이터를 포함한 각종 데이터의 처리 및 연산을 수행할 수 있다. 일부 실시 예에서, APU(110)는 시스템-온-칩(System-on-Chip, SoC)로 구현될 수 있다.
코어(120)는 전자 장치(100)에 입력되는 데이터를 암호화하고, 암호화된 데이터를 처리하기 위하여 동형 암호화 가속기(130)를 제어할 수 있다. 또한, 코어(120)는 암호화된 데이터의 저장 및 저장된 데이터의 활용을 위하여 비휘발성 메모리(150)를 제어할 수 있다.
동형 암호화 가속기(130)는 전자 장치(100)에 입력되는 데이터에 대한 처리 및 분석 속도를 가속할 수 있다. 동형 암호 기술은 데이터의 저장, 전송 및 사용에 있어서 높은 수준의 보안을 제공한다는 장점이 있으나, 암호화를 위한 키의 크기가 비교적 크기 때문에 처리 속도가 평문 데이터 분석 속도에 비하여 수백 내지 수천 배 가량 느리다는 단점이 있다. 따라서, 동형 암호화 가속기(130)는 데이터의 동형 암호화 및 암호화된 데이터 처리 속도를 가속시켜 동형 암호 구현의 효율성을 높일 수 있다.
IEE(140)는 입력되는 데이터의 동형 암호화를 위하여 하드웨어적으로 분리된 영역을 의미한다. IEE(140)는 별도의 프로세서 및 메모리를 포함하는 독립된 구성 요소일 수 있다. IEE(140)는 데이터의 동형 암호화에 이용되는 비밀 키(secret key) 및 공개 키(public key)를 생성할 수 있다. IEE(140)에서 생성된 비밀 키는 IEE(140) 내부에 보관될 수 있다. 공개 키는 비밀 키에 기반하여 생성될 수 있으며, 생성된 공개 키는 IEE(140)의 외부에 전달되어 데이터의 동형 암호화 및 동형 암호화된 데이터의 연산을 위하여 사용될 수 있다.
비휘발성 메모리(150)는 전자 장치(100)에서 이용되는 데이터를 저장할 수 있다. 비휘발성 메모리(150)는 낸드 플래시(NAND Flash), PROM(Programmable Read Only Memory), EPROM(Erasable and Programmable Read Only Memory), EEPROM(Electrically Erasable and Programmable Read Only Memory), OTPROM(One Time Programmable Read Only Memory), Mask ROM 중 적어도 하나를 포함할 수 있다. 도 1에서, 비휘발성 메모리(150)는 전자 장치(100)에 내장된 형태로 도시되었으나, 외장 메모리 형태로도 구현할 수 있다.
메모리(160)는 외부로부터 입력된 데이터를 저장할 수 있다. 메모리(160)는 전자 장치(100)의 동작 메모리일 수 있다. 메모리(160)는 DRAM(Dynamic Random Access Memory), SDRAM(Synchronous Dynamic Random Access Memory), SRAM(Static Random Access Memory), PRAM(Phase-change Random Access Memory), MRAM(Magnetic Random Access Memory), FRAM(Ferroelectric Random Access Memory), RRAM(Resistive Random Access Memory), Flash 메모리 중 적어도 하나를 포함할 수 있다.
데이터 입력 장치(170)는 외부로부터 데이터를 수신할 수 있다. 데이터 입력 장치(170)는 키보드, 키패드, 터치 패널, 마우스, 마이크, 센서, 카메라 등을 포함할 수 있다. 도 1에서, 전자 장치(100)는 데이터 입력 장치(170)를 포함하는 것으로 도시되었으나, 또 다른 실시 예에서, 전자 장치(100)는 전자 장치(100) 내에서 처리한 데이터를 출력하는 데이터 출력 장치를 더 포함할 수 있다.
도 1에서, 데이터 입력 장치(170)는 높은 수준의 보안을 요구하는 데이터를 입력 받을 수 있다. 코어(120)는 데이터의 동형 암호화에 필요한 키들을 생성하기 위한 명령(command)을 IEE(140)에 전달할 수 있다. 동형 암호화에 필요한 키들은 비밀 키 및 공개 키를 포함하며, 비밀 키 생성 명령 및 공개 키 생성 명령은 동시에 또는 순차적으로 IEE(140)에 전달될 수 있다. 비밀 키 생성 명령 및 공개 키 생성 명령이 순차적으로 IEE(140)에 전달되는 경우, 비밀 키 생성 명령은 공개 키 생성 명령에 우선하여 전달되어야 한다.
비밀 키 생성을 위한 명령을 수신한 IEE(140)는 동형 암호화를 위한 비밀 키를 생성할 수 있다. 비밀 키가 생성되면, IEE(140)는 비밀 키의 유출을 방지하기 위하여 코어(120)의 액세스(access)를 차단할 수 있다. 또는, 아래에서 기술되는 절차에 따라 IEE(140)가 코어(120)에 공개 키를 전달한 후에, IEE(140)는 코어(120)의 액세스를 차단할 수 있다. IEE(140)가 코어(120)의 액세스를 차단한 후에, 코어(120)의 IEE(140)로의 액세스 차단 해제를 위한 별도의 인증 절차가 존재할 수 있다. 비밀 키는 외부로의 유출 방지를 위하여 하드웨어적으로 독립된 IEE(140)의 내부에 저장될 수 있다.
IEE(140)는 비밀 키를 기반으로 공개 키를 생성할 수 있다. 공개 키는 입력된 데이터를 동형 암호화를 위하여 전자 장치(100)의 일반적인 영역에 저장될 수 있다. 예로서, 공개 키는 전자 장치(100)에 포함된 비휘발성 메모리(150)에 저장될 수 있다. 예시적으로, 공개 키는 암호화 키(Encryption Key), 곱셈 키(Multiplication Key), 회전 연산 키(Rotation Key) 및 켤레 연산 키(Conjugate Key)를 포함할 수 있다. 암호화 키는 입력되는 데이터의 암호화에 사용될 수 있다. 곱셈 키는 암호문의 연산에 사용될 수 있다. 회전 연산 키 및 켤레 연산 키는 암호화 과정에서 발생한 노이즈를 제거하기 위한 부트-스트래핑(boot-strapping)에 사용될 수 있다. 부트-스트래핑이란, 동형 암호 연산이 수회 이루어짐에 따라 증가한 노이즈를 제거하는 재부팅 과정을 의미한다. IEE(140)의 상세한 키 생성 과정은 후술할 도 2를 참조하여 설명될 것이다.
코어(120)는 IEE(140)에서 생성된 공개 키를 요청할 수 있다. IEE(140)는 메일박스(mailbox) 프로토콜을 통하여 공개 키를 외부로 전달할 수 있다. 또는, 코어(120)는 공개 키를 로드(load)하기 위한 요청을 메일박스 프로토콜을 통하여 IEE(140)로 전달할 수 있다. IEE(140)는 메일박스로부터 공개 키 요청이 수신되면, 메일박스를 통하여 공개키를 외부로 전달할 수 있다. 외부로 전달된 공개 키는 비휘발성 메모리(150)에 저장될 수 있다. 공개 키는 크기, 접근 빈도, 종류 등에 따라 비휘발성 메모리(150) 내에서 분리되어 저장될 수 있다. 공개 키의 분리 저장 방식에 대한 상세한 설명은 도 4 및 도 5를 참조하여 후술될 것이다.
전자 장치(100)에 입력된 데이터는 공개 키의 일종인 암호화 키를 사용하여 동형 암호화될 수 있다. 전자 장치(100)는 보안 수준 요구 정도에 기초하여, 입력된 데이터 중 일부를 선별하여 동형 암호화할 수 있다. 즉, 입력된 데이터의 일부는 동형 암호를 이용하여 암호화될 수 있고, 또 다른 일부는 기존의 대칭 키 암호(Symmetric Key Encryption) 또는 비대칭 키 암호(Asymmetric Key Encryption)를 이용하여 암호화될 수 있으며, 그 외 보안을 요하지 않는 데이터는 암호화 과정을 거치지 않을 수 있다. 동형 암호화된 데이터, 기존의 암호화 방식을 이용한 데이터 및 암호화 되지 않은 데이터는 크기, 접근 빈도, 종류 등에 따라 비휘발성 메모리(150)에 분리되어 저장될 수 있다. 분리 저장 방식에 대한 상세한 설명은 도 4 및 도 5를 참조하여 후술될 것이다.
본 발명에 따른 전자 장치(100)는 하드웨어상 분리된 영역인 IEE(140)에서 비밀 키 및 공개 키를 생성하고, IEE(140) 내에 비밀 키를 저장함으로써, 네트워크를 통한 데이터 유출의 위험을 줄이고, 높은 수준의 보안을 제공할 수 있다. 또한, 전자 장치(100)는 공개 키, 암호문 및 기타 데이터를 크기, 접근 빈도, 종류 등에 따라 비휘발성 메모리(150) 내에 분리하여 저장함으로써, 데이터 처리에 대한 지연을 방지하여 암호화 데이터의 처리 성능을 향상시킬 수 있다.
또한, 본 발명에 따른 전자 장치(100)는 LWE(Learning With Errors) 기반의 암호 기법에 따른 동형 암호화를 수행할 수 있으며, 그 중에서도 RLWE(Ring Learning With Errors) 기반의 암호 기법에 따른 동형 암호화를 통하여 보다 효율적인 연산을 구현할 수 있다. 본 명세서에서, 본 발명에 따른 전자 장치(100)는 복소수 평문을 RLWE 기반의 암호 기법에 따라 다항식 연산으로 변경하여 연산을 수행하는 것으로 설명되나, 이는 하나의 예시일 뿐 본 발명에 적용되는 암호 기법의 종류를 제한하는 것은 아니다.
도 2는 본 발명의 실시 예에 따른 전자 장치(100, 도 1 참조)의 암호화 키 생성 체계를 나타내는 도면이다. 본 발명의 실시 예에 따른 전자 장치(100)는 장치 내에서 동형 암호화 및 암호화된 데이터의 처리를 구현하기 위하여 장치 내에서 동형 암호화 시스템에 사용되는 키를 생성할 수 있다.
전자 장치(100)의 코어(120, 도 1 참조)는 IEE(140, 도 1 참조)에 비밀 키 생성 명령을 전달할 수 있다(S11). IEE(140)는 코어(120)의 비밀 키 생성 명령을 수신하면, 가우시안 분포
Figure pat00001
에서 샘플링되는 다항 요소에 기반하여 비밀 키 s(x)를 생성할 수 있다. 비밀 키 s(x)는 계수가 -1, 0, 1로 이루어진 N차 다항식을 의미한다. IEE(140)는 비밀 키가 생성되면, 비밀 키 생성 응답을 코어(120)에 전달할 수 있다(S12). 생성된 비밀 키 s(x)는 IEE(140) 내부의 독립된 영역에 저장될 수 있다.
또한, 코어(120)는 IEE(140)에 공개 키 생성 명령을 전달할 수 있다(S13). IEE(140)는 코어(120)의 공개 키 생성 명령을 수신하면, IEE(140)는 비밀 키에 기반하여 동형 암호 알고리즘을 통하여 공개 키를 생성할 수 있다. 공개 키는 RLWE 기반의 암호 기법에서 임의의 다항식 순서쌍 형태인 (a(x), b(x))로 구성될 수 있다. 제 1 랜덤 다항식 a(x)는 균등 분포(Uniform Distribution)에 기반하여 결정될 수 있으며, 제 2 랜덤 다항식 b(x)는 아래 수학식 1에 따라 결정될 수 있다.
Figure pat00002
수학식 1에서, a(x)는 균등 분포에 기반하여 결정된 제 1 랜덤 다항식을 의미하고, s(x)는 IEE(140)에서 생성된 비밀 키를 의미한다. e(x)는 이산 가우시안 분포(Discrete Gaussian Distribution)에서 추출된 에러에 기반하여 결정될 수 있다. 제 1 랜덤 다항식 a(x), 제 2 랜덤 다항식 b(x) 및 e(x)는 계수가 q 비트(bit)인 N차 다항식일 수 있으며, 키 생성 과정은 수학식 2와 같이 표현될 수 있다.
Figure pat00003
IEE(140)는 공개 키가 생성되면, 공개 키 생성 응답을 코어(120)에 전달할 수 있다(S14). IEE(140)는 코어(120)에 의한 공개 키 전송 명령이 수신되면(S15), 생성된 공개 키를 메일박스 프로토콜을 통하여 IEE(140) 외부로 전송할 수 있다(S16). 또는, IEE(140)는 코어(120)에 의한 별도의 명령 없이, 공개 키 생성 응답이 발생하면, 생성된 공개 키를 메일박스 프로토콜을 통하여 IEE(140) 외부로(예를 들어, 코어(120)로) 전송할 수 있다.
도 2에서, APU(110)에 포함된 코어(120)는 비밀 키 생성 명령 및 공개 키 생성 명령을 IEE(140)로 독립적, 순차적으로 전달하는 것으로 도시되었으나, 코어(120)는 비밀 키 생성 명령 및 공개 키 생성 명령을 동시에 IEE(140)로 전달할 수 있다. 비밀 키 생성 명령 및 공개 키 생성 명령이 동시에 전달되는 경우, IEE(140)는 비밀 키를 생성한 후, 이에 기반하여 공개 키를 생성할 수 있다.
도 3은 도 1에 게시된 IEE(140)의 구성을 구체적으로 나타내는 블록도이다. 도 3을 참조하면, IEE(140)는 동형 암호 키 생성기(141), 비밀 키 스토리지(142) 및 복호기(143)를 포함할 수 있다. 동형 암호 키 생성기(141)는 코어(120, 도 1 참조)의 요청에 응답하여 동형 암호화 및 암호화 데이터 처리 과정에 필요한 비밀 키 및 공개 키를 생성할 수 있다. 비밀 키 및 공개 키는 도 2에서 상술한 일련의 과정에 따라 생성될 수 있다. 공개 키는 평문을 암호문으로 암호화하기 위한 암호 키, 암호문의 연산을 수행하기 위한 곱셈 키 및 부트-스트래핑을 위한 회전 연산 키 및 켤레 연산 키 등을 포함할 수 있다.
비밀 키 스토리지(142)는 동형 암호 키 생성기(141)에서 생성한 비밀 키를 저장할 수 있다. 동형 암호는 암호화된 데이터를 복호화하지 않은 상태로 연산하므로 암호화된 데이터를 처리하기 위하여 비밀 키에 접근할 필요가 없다. 다만, 동형 암호는 결과 값을 확인하기 위하여 복호화하는 경우에만 비밀 키를 사용한다. 따라서, 본 발명에 따른 전자 장치(100, 도 1 참조)는 물리적으로 분리된 비밀 키 스토리지(142)에 비밀 키를 저장하여 외부로부터의 액세스 및 외부로의 비밀 키 유출을 방지할 수 있다.
복호기(143)는 본 발명에 따른 전자 장치(100)에서 암호화된 데이터를 처리한 후 도출된 동형 암호 형태의 결과 값을 평문 형태의 데이터로 복호할 수 있다. 복호기(143)는 비밀 키 스토리지(142)에 저장된 비밀 키에 기반하여 동형 암호 형태의 결과 값을 복호할 수 있다. 동형 암호 형태의 결과 값은 메일박스 프로토콜을 통하여 복호기(143)로 입력될 수 있으며, 복호기(143)에 의하여 복호된 결과 값은 메일박스 프로토콜을 통하여 IEE(140)의 외부에 전달될 수 있다.
메모리(144)는 IEE(140)의 동작 메모리일 수 있다. 동형 암호 키 생성기(141)는 메모리(144)를 이용하여 비밀 키 및 공개 키를 생성할 수 있다. 복호기(143)는 메모리(144)를 이용하여 복호를 수행하고, 그리고 복호의 결과를 메모리(144)에 저장할 수 있다.
IEE(140)는 복호의 결과를 처리 또는 가공하도록 구성되는 추가적인 구성 요소들을 더 포함할 수 있다. IEE(140)는 복호의 결과 또는 처리 또는 가공의 결과를 제공하기 위한 인터페이스를 더 포함할 수 있다. 또는, IEE(140)는 복호의 결과 또는 처리 또는 가공의 결과를 코어(120)에 제공하기 위한 인터페이스를 더 포함할 수 있다.
본 발명의 실시 예에 따르면 전자 장치(100)는 RLWE 기반의 암호 기법을 활용하므로, 환(Ring, Rq)에 대한 다항식 곱셈, 다항식 덧셈, 모듈로 감소 연산 등을 수행할 수 있다. 동형 암호 키 생성기(141)는 환에 대한 산술 연산을 위하여 NTT/INTT(Number Theoretic Transform/Inverse Number Theoretic Transfrom) 연산부(141a), Mult/Modulo(Multiplication/Modulo, 141b) 연산부 및 가우시안 난수 생성기(Gaussian Random Number Generator, 141c) 를 포함할 수 있다.
NTT/INTT 연산부(141a)는 RLWE 기반의 동형 암호 연산에 있어서 다항식 곱 연산을 수행하기 위한 NTT/INTT 기반의 알고리즘을 제공할 수 있다. 환에 대한 다항 곱셈은 긴 처리 시간이 필요한 산술 과정을 요구하므로, NTT/INTT 기반의 알고리즘을 통하여 환에 대한 다항 곱셈을 효율적으로 수행할 수 있다. 환 위에 있는 두 개의 다항식은 상술한 도 2에서 도출된 a(x), b(x)를 의미하며, 아래의 수학식 3과 같이 나타낼 수 있다.
Figure pat00004
다항식 a(x) 및 b(x)의 곱 연산을 위하여 a(x) 및 b(x)에 대한 NTT 연산 및 INTT 연산이 개별적으로 수행되어야 한다. 본 과정에서 사용되는 NTT 연산식은 아래의 수학식 4와 같이 정의되며, INTT 연산식은 아래의 수학식 5와 같이 정의된다.
Figure pat00005
Figure pat00006
수학식 4 및 수학식 5의 a는 다항식 a(x)의 계수를 의미하며, n은 1의 n 제곱근을 의미한다. 또한, n은 1 mod q의 식을 만족하여야 하며, w 또한 1 mod q의 식을 만족하는 숫자로 구성될 수 있다. 즉, n과 w는 nⅹn-1≡1 mod q, wⅹw-1≡1 mod q의 조건을 만족하는 숫자로 구성될 수 있다.
Mult/Modulo(141b) 연산부는 상술한 다항식 a(x) 및 b(x)의 NTT 결과에 대하여 곱 연산 및 모듈러 연산을 수행할 수 있다. NTT 결과의 곱 연산 수행시, 점 곱셈(Point-wise Multiplication)이 사용될 수 있고, 이에 따라 같은 차수의 계수들끼리 곱 연산이 수행될 수 있다. 점 곱셈의 수행 결과는 상술한 INTT 연산을 거쳐 최종적으로 다항식 a(x) 및 b(x)에 대한 곱 연산 결과를 도출할 수 있다. 상술한 연산들에서 결과 값이 환의 조건을 만족하도록 모듈러 감소(Modular Reduction) 연산이 수반될 수 있다. NTT 기반의 다항식 곱 연산의 과정은 아래 수학식 6과 같이 나타날 수 있다.
Figure pat00007
가우시안 난수 생성기(141c)는 키 생성 및 암호문의 연산을 위한 난수를 제공할 수 있다. RLWE 기반의 동형 암호 연산은 표준 편차를 가지는 이산 가우시안 분포로부터 샘플링된 다항식이 요구되므로, 이산 가우시안 샘플링을 수행하여 난수를 생성할 수 있다. 이산 가우시안 샘플링을 수행함에 있어서, 기각 샘플링(Rejection sampling) 및 역변환 샘플링(Inversion sampling)이 이용될 수 있으며, 근사된 균일한 의사 난수 분포를 통하여 복잡성을 저하하기 위하여 LFSR(Linear Feedback Shift Register) 채택하여 난수를 생성할 수 있다.
도 4는 본 발명의 실시 예에 따른 전자 장치(100)에서 생성된 암호화 데이터를 분리 저장하기 위한 비휘발성 메모리(150)의 영역을 나타내는 도면이다. 비휘발성 메모리(150)는 비암호화 데이터 영역(151), 암호화 데이터 영역(152) 및 동형 암호화 데이터 영역(153)을 포함할 수 있다. 비암호화 데이터 영역(151), 암호화 데이터 영역(152) 및 동형 암호화 데이터 영역(153)은 비휘발성 메모리(150) 내에서 논리적 또는 물리적으로 분리된 공간을 의미한다. 동형 암호화에 이용되는 공개 키 및 동형 암호화된 데이터는 평문에 비하여 크기가 매우 크기 때문에 이를 처리하기 위한 속도 또한 비교적 느리다. 따라서, 본 발명에 따른 전자 장치(100)는 데이터의 종류에 따라 분리된 공간에 저장함으로써, 데이터 처리에 대한 지연을 방지할 수 있다.
비암호화 데이터 영역(151)은 전자 장치(100)에 입력되는 데이터 중 보안을 요하지 않는 일부 데이터를 저장하기 위한 영역을 의미한다. 암호화 데이터 영역(152)은 고도의 보안 수준을 요하지 않으나, 암호화 형태의 저장을 요하는 일부 데이터를 동형 암호 외의 방법으로 암호화 하여 저장하기 위한 영역을 의미한다. 전자 장치(100)는 AES 암호 알고리즘 또는 RSA 암호 알고리즘 등과 같은 암호 알고리즘에 의하여 암호화된 데이터를 암호화 데이터 영역(152)에 저장할 수 있다. 동형 암호화 데이터 영역(153)은 전자 장치(100)에 있어서, 고도의 보안 수준을 요하는 데이터를 동형 암호화하여 저장하기 위한 영역을 의미한다. 데이터의 동형 암호화 방법은 후술할 도 6에서 상세하게 설명될 것이다.
도 5는 본 발명의 실시 예에 따라 생성된 암호화 데이터의 분류 방식을 나타내기 위한 도면이다. 도 5의 비휘발성 메모리(150)는 SLC(Single Level Cell, 154), MLC(Multi Level Cell, 155), TLC(Triple Level Cell, 156) 및 QLC(Quad Level Cell, 157)을 포함할 수 있다. SLC(154), MLC(155), TLC(156) 또는 QLC(157)은 상술한 도 4의 비암호화 데이터 영역(151, 도 4 참조), 암호화 데이터 영역(152, 도 4 참조) 및 동형 암호화 데이터 영역(153, 도 4 참조)에 각각 포함될 수 있다. QLC(157)는 SLC(154), MLC(155) 및 TCL(156)에 비하여 더 높은 레벨 셀(level cell)을 가진다. TCL(156)는 SLC(154) 및 MLC(155)에 비하여 더 높은 레벨 셀을 가진다. MLC(155)는 SLC(154)에 비하여 더 높은 레벨 셀을 가진다. 비휘발성 메모리(150)에 저장되는 데이터들은 도 4에서 상술한 바와 같이 종류에 따라 1차적으로 분리된 후, 크기 및 접근 빈도 등에 따라 2차적으로 분리되어 저장될 수 있다.
예로서, 동형 암호화 데이터 영역(153)은 SLC(154), MLC(155), TLC(156) 및 QLC(157)를 포함할 수 있다. 동형 암호화 데이터 영역(153)에는 동형 암호화된 데이터, 공개 키가 저장될 수 있다. 동형 암호화된 데이터 및 공개 키는 크기가 클수록 높은 레벨 셀에 저장될 수 있다. 동형 암호화된 데이터 및 공개 키는 액세스 빈도가 높을수록 낮은 레벨 셀에 저장될 수 있다. 동형 암호화된 데이터 및 공개 키는 빠른 액세스가 필요할수록 낮은 레벨 셀에 저장될 수 있다. 또한, 액세스 빈도 및 요구 속도 등이 달라지는 경우, 저장되는 레벨 셀이 달라질 수 있다.
구체적인 예로서, 동형 암호화된 데이터 중 비교적 작은 크기의 데이터 또는 빠른 연산을 요하는 데이터는 SLC(154)에 저장될 수 있다. 동형 암호화된 데이터 중 비교적 큰 크기의 데이터 또는 빠른 연산이 필요하지 않은 데이터는 MLC(155)에 저장될 수 있다. 또한, 공개 키 중 곱 연산을 위한 곱셈 키는 TLC(156)에 저장될 수 있다. 공개 키 중 데이터의 암호화를 위한 암호화 키는 곱셈 키에 비하여 크기가 크기 때문에 QLC(157)에 저장될 수 있다.
또 다른 예로서, 암호화 데이터 영역(152)은 SLC(154), MLC(155) 및 TLC(156)을 포함할 수 있다. 암호화 데이터 영역(152)에는 동형 암호 외의 방법으로 암호화된 데이터 및 공개 키가 저장될 수 있다. 암호화 데이터 중 비교적 작은 크기의 데이터 또는 빠른 연산을 요하는 데이터는 SLC(154)에 저장될 수 있다. 암호화된 데이터 중 비교적 큰 크기의 데이터 또는 빠른 연산을 요하지 않는 데이터는 MLC(155)에 저장될 수 있다.
본 발명에 따른 전자 장치(100)는 도 4 및 도 5에서 설명한 바와 같이 데이터의 요구되는 보안 수준에 따라 선택적 동형 암호화를 구현할 수 있으며, 선택적 동형 암호화를 통하여 생성된 비암호화 데이터, 암호화 데이터 및 동형 암호화 데이터를 분리하여 저장함으로써, 데이터 처리에 대한 지연을 방지하고 암호화 데이터의 처리 성능을 향상시킬 수 있다.
도 6은 본 발명의 실시 예에 따른 전자 장치(100, 도 1 참조)의 데이터 암호화 방법을 나타내는 순서도이다.
S1010 단계에서, 본 발명의 실시 예에 따른 전자 장치(100)는 동형 암호화의 대상이 되는 제 1 데이터를 입력 받을 수 있다. 암호화 대상인 제 1 데이터가 입력되면, 코어(120, 도 1 참조)는 제 1 데이터를 동형 암호화 하기 위하여 IEE(140, 도 1 참조)에 키 생성을 명령할 수 있다. IEE(140)는 코어(120)의 명령을 수신하여, 비밀 키 및 비밀 키에 기초한 공개 키를 생성할 수 있다. 키 생성이 완료되면, IEE(140)는 코어(120)에 키 생성 응답을 전달하여 키 생성이 완료되었음을 알릴 수 있다. 키 생성 응답을 수신하면, 코어(120)는 IEE(140)에 공개 키를 요청할 수 있다. IEE(140)는 메일박스 프로토콜을 통하여 IEE(140)의 외부로 공개 키를 전달할 수 있다. IEE(140)의 외부로 전달된 공개 키는 비휘발성 메모리(150, 도 1 참조)에 저장될 수 있다.
S1020 단계에서, APU(110, 도 1 참조)는 메일박스 프로토콜을 통하여 공개 키를 로드할 수 있다. 공개 키는 암호화 키, 곱셈 키 및 회전 연산 키 등을 포함할 수 있다. 또한, IEE(140)는 공개 키의 전달과 함께, 비밀 키를 IEE(140) 내부의 비밀 키 스토리지(142, 도 3 참조)에 저장하고, 코어(120)의 액세스를 차단할 수 있다. 또는, 공개 키가 미리 비휘발성 메모리(150)에 저장되어 있는 경우, APU(110)는 IEE(140)로의 요청 없이, 비휘발성 메모리(150)로부터 저장된 공개 키를 로드할 수 있다.
S1030 단계에서, APU(110)는 공개 키 중 암호화 키를 사용하여 입력된 제 1 데이터를 동형 암호화 할 수 있다. 예로서, 입력된 제 1 데이터의 암호화를 위하여 RLWE 암호 체계가 이용될 수 있다. RLWE 암호 체계에서, 암호화의 대상이 되는 제 1 데이터는 제 1 암호화 데이터인 암호문 C로 암호화될 수 있으며, 암호문 C는 임의의 다항식 순서쌍 형태인 (C0(x), C1(x))로 구성될 수 있다. 제 1 데이터의 암호화 과정은 수학식 7과 같이 표현될 수 있다.
Figure pat00008
수학식 3에서, d는 암호화 대상이 되는 데이터, pk는 IEE(140)에서 생성된 공개 키를 의미한다. 도 2 에서 상술한 바와 같이, a(x)는 균등 분포에 기반하여 결정된 제 1 랜덤 다항식을 의미하고, b(x)는 a(x), 비밀 키 및 이산 가우시안 분포에서 추출된 에러에 기반하여 결정된 e(x)에 기반하여 결정된 제 2 랜덤 다항식을 의미한다. m(x)는 입력된 제 1 데이터를 인코딩하여 도출된 다항 요소를 의미한다. e1(x), e2(x) 및 e3(x)는 이산 가우시안 분포에서 생성된 3개의 오류 다항 요소를 의미한다. 동형 암호화 가속기(130)는 제 1 데이터의 동형 암호화 과정에서 암호화 속도를 가속할 수 있다.
S1040 단계에서, APU(110)는 제 1 암호화 데이터를 비휘발성 메모리(150)에 전송할 수 있다. 제 1 암호화 데이터는 비휘발성 메모리(150)의 동형 암호화 데이터 영역(153, 도 4 참조)에 저장될 수 있다. 동형 암호화된 제 1 암호화 데이터는 동형 암호화 데이터 영역(153)내에서 암호문의 크기, 접근 빈도 및 요구되는 연산 속도 등에 따라 분리되어 저장될 수 있다. 예로서, 비교적 작은 사이즈의 암호문이거나 빠른 연산을 요하는 암호문의 경우, 동형 암호화 데이터 영역(153) 내의 비교적 낮은 레벨 셀에 저장될 수 있다. 또는, 비교적 큰 사이즈의 암호문이거나 빠른 연산을 요하지 않는 암호문의 경우, 동형 암호화 데이터 영역(153) 내의 비교적 높은 레벨 셀에 저장될 수 있다.
도 7은 본 발명의 실시 예에 따른 전자 장치(100, 도 1 참조)의 암호화 데이터 처리 방법을 나타내는 순서도이다. 도 7에 개시된 암호화 데이터 처리 방법은 상술한 도 6의 암호화 과정에 후속하여 이루어질 수 있는 데이터 연산 방법에 해당한다.
S2010 단계에서, 본 발명의 실시 예에 따른 전자 장치(100)는 데이터 입력 장치(170, 도 1 참조)로부터 데이터 처리의 대상이 되는 제 2 데이터를 입력 받을 수 있다. 제 2 데이터는 상술한 도 6의 암호화 과정에서 비휘발성 메모리(150, 도 1 참조)에 저장된 제 1 암호화 데이터와의 연산을 위하여 동형 암호화 대상이 될 수 있다.
S2020 단계에서, APU(110, 도 1 참조)는 상술한 도 6의 S1010 단계에서 비휘발성 메모리(150, 도 1 참조)에 저장된 공개 키를 로드할 수 있다. 공개 키는 암호화 키, 곱셈 키, 회전 연산 키 등을 포함할 수 있다. 암호화 키는 입력된 데이터의 동형 암호화에 이용될 수 있다. 곱셈 키는 동형 암호화된 데이터의 연산에 이용될 수 있다. 회전 연산 키는 데이터의 암호화 과정에서 추가된 노이즈를 제거하는 부트 스트래핑을 위하여 이용될 수 있다.
S2030 단계에서, APU(110)는 도 6의 S1030 단계와 동일한 원리로 입력된 제 2 데이터를 동형 암호화할 수 있다. APU(110)는 제 2 데이터를 공개 키 중 암호화 키에 기반하여 동형 암호화하여 제 2 암호화 데이터를 생성할 수 있다. 동형 암호화 과정에 있어서, 동형 암호화 가속기(130, 도 1 참조)는 제 2 데이터의 동형 암호화 과정에서 암호화 속도를 가속할 수 있다.
S2040 단계에서, APU(110)는 제 2 암호화 데이터에 대한 연산을 수행하기 위하여 상술한 도 6의 S1010 단계에서 비휘발성 메모리(150)에 저장된 제 1 암호화 데이터를 읽을 수 있다. APU(110)는 제 1 암호화 데이터 및 제 2 암호화 데이터에 대한 연산을 수행할 수 있다. 본 발명의 실시 예에 따른 암호화 데이터 처리 방법은 완전 동형 암호(Fully Homomorphic Encryption, FHE) 체계에 기반하여 수행될 수 있으므로, 덧셈 및 곱셈을 동시에 보존할 수 있고, 따라서 대소 비교, 합 또는 곱 연산 등의 모든 종류의 연산, 데이터 분석, AI 학습 등을 수행할 수 있다.
S2050 단계에서, 전자 장치(100)는 제 1 암호화 데이터 및 제 2 암호화 데이터의 연산 결과를 해석할 수 있다. 본 발명에 따른 실시 예는 동형 암호 체계에 기반하므로, 암호문의 연산 결과는 평문의 연산 결과와 동일하게 도출될 수 있다. 제 1 암호화 데이터 및 제 2 암호화 데이터의 연산 결과는 평문 상태의 연산 결과를 동형 암호화한 것과 동일할 수 있다. 따라서, 제 1 암호화 데이터 및 제 2 암호화 데이터의 연산 결과에 기반하여 전자 장치(100)가 수행하고자 하는 동작의 결과를 도출할 수 있다. 예로서, 제 1 암호화 데이터 및 제 2 암호화 데이터의 일치 여부를 판단할 수 있다.
또는, 전자 장치(100)는 제 1 암호화 데이터 및 제 2 암호화 데이터의 연산 결과를 메일박스 프로토콜을 통하여 IEE(140, 도 1 참조)로 전송하여, 내부의 비밀 키 스토리지(142, 도 3 참조)에 저장된 비밀 키를 통해 연산 결과를 복호화 할 수 있다. IEE(140)는 메일박스 프로토콜을 통하여 비밀 키에 기반한 복호화 결과만을 외부로 전달할 수 있다. 즉, 입력된 제 1 데이터 및 제 2 데이터에 대한 정보 유출없이 제 1 데이터 및 제 2 데이터에 대한 연산 결과만을 외부로 전달하여 전자 장치(100)에서 이용되는 데이터 정보의 유출을 방지할 수 있다.
도 8은 본 발명의 실시 예에 따른 전자 장치를 이용하는 생체 인증 기능을 구비한 전자 장치(100a)를 나타내는 블록도이다. 생체 인증 기능을 구비한 전자 장치(100a)는 APU(110), IEE(140), 비휘발성 메모리(150), 메모리(160) 및 생체 인식 장치(170a)를 포함할 수 있다. APU(110)는 코어(120) 및 동형 암호화 가속기(130)를 포함할 수 있다. 이하, 도 8에 개시된 생체 인증 기능을 구비한 전자 장치(100a)에 있어서, 도 1 내지 도 7에서 상술한 내용과 중복되는 구성, 기능, 특징 및 동작들에 대한 상세한 설명은 생략한다.
생체 인증 기능을 구비한 전자 장치(100a)는 등록된 생체 정보와 입력되는 생체 정보의 일치 여부를 판단할 수 있다. 생체 인증 기능을 구비한 전자 장치(100a)에서 생체 정보는 보호되어야 할 정보에 해당한다. 따라서, 생체 인증 기능을 구비한 전자 장치(100a)에서 등록된 생체 정보 및 입력되는 생체 정보는 동형 암호화되어 보호될 수 있다.
생체 인증 기능을 구비한 전자 장치(100a)에서, 생체 인식 장치(170a)는 생체 인증을 위한 생체 정보 등을 데이터로 입력 받을 수 있다. 예로서, 생체 인식 장치(170a)는 지문, 얼굴, 홍채, 목소리, 정맥 등의 생체 정보를 데이터로 입력 받을 수 있다. 생체 인식 장치(170a)는 생체 정보 데이터를 APU(110)로 전달할 수 있다.
생체 인증 기능을 구비한 전자 장치(100a)는 생체 인식 장치(170a)에서 입력 받은 생체 정보를 도 6에 개시된 데이터 암호화 방법에 따라 인증 기준으로 등록할 수 있다. 또한, 생체 인증 기능을 구비한 전자 장치(100a)는 생체 인식 장치(170a)에서 입력 받은 생체 정보를 도 7에 개시된 암호화 데이터 처리 방법에 따라 등록된 생체 정보와 비교하여 인증 여부를 판단할 수 있다. 생체 인증 기능을 구비한 전자 장치(100a)의 동작 방법은 후술할 도 9에서 상세하게 설명될 것이다.
도 9는 도 8에 개시된 생체 인증 기능을 구비한 전자 장치(100a, 도 8 참조)의 동작 방법을 나타내는 순서도이다. 도 9에 개시된 생체 인증 기능을 구비한 전자 장치의 동작 방법에 있어서, S3010 단계 내지 S3030 단계는 인증 기준이 되는 생체 정보를 등록하는 과정에 해당하고, S3040 단계 내지 S3100 단계는 인증 여부를 판단하는 과정에 해당한다.
S3010 단계에서, 생체 인식 장치(170a, 도 8 참조)는 외부로부터 제 1 생체 정보 입력 받을 수 있다. 제 1 생채 정보는 사용자의 지문, 얼굴, 홍채, 목소리 또는 정맥 정보일 수 있다. 제 1 생체 정보는 생체 인증 기능을 구비한 전자 장치(100a)의 인증 기준이 되는 생체 정보를 의미한다. 생체 인식 장치(170a)는 외부로부터 입력된 제 1 생체 정보를 APU(110, 도 8 참조)로 전달할 수 있다.
제 1 생체 정보가 APU(110)로 입력되면, APU(110) 내의 코어(120, 도 8 참조)는 제 1 생체 정보를 암호화하기 위하여 IEE(140, 도 8 참조)에 키 생성을 명령할 수 있다. IEE(140)는 코어의 명령에 따라 비밀 키를 생성하고, 비밀 키에 기반하여 공개 키를 생성할 수 있다. 키 생성이 완료되면, IEE(140)는 코어(120)에 키 생성 응답을 전달하여 키 생성이 완료되었음을 알릴 수 있다. 키 생성 응답을 수신하면, 코어(120)는 IEE(140)에 공개 키를 요청할 수 있다. IEE(140)는 메일박스 프로토콜을 통하여 IEE(140)의 외부로 공개 키를 전달할 수 있다.
S3020 단계에서, APU(110)는 메일박스 프로토콜을 통하여 IEE(140)에서 생성된공개 키를 로드할 수 있다. IEE(140)는 외부로의 공개 키의 전달과 함께, 비밀 키를 IEE(140) 내부의 비밀 키 스토리지(142, 도 3 참조)에 저장할 수 있다. 또는, 비휘발성 메모리(150, 도 8 참조)에 미리 저장된 공개 키가 있는 경우, APU(110)는 비휘발성 메모리(150)로부터 미리 저장된 공개 키를 로드할 수 있다. 비밀 키가 비밀 키 스토리지(142)에 저장되면, IEE(140)는 코어의 액세스를 차단할 수 있다.
S3030 단계에서, APU(110)는 공개 키에 포함된 암호화 키를 사용하여 입력된 제 1 생체 정보를 암호화할 수 있다. 제 1 생체 정보는 제 1 암호화 데이터로 동형 암호화 될 수 있으며, 이 때, APU(110)의 동형 암호화 가속기(130, 도 8 참조)는 암호화 속도를 향상시킬 수 있다. 제 1 암호화 데이터는 비휘발성 메모리(150, 도 8 참조)에 전송될 수 있다. 동형 암호화된 제 1 암호화 데이터는 비휘발성 메모리(150)의 동형 암호화 데이터 영역(153, 도 8 참조)에 저장될 수 있다. 또한, 제 1 생체 정보를 동형 암호화 하기 위하여 사용된 공개 키도 비휘발성 메모리(150)의 동형 암호화 데이터 영역(153)에 저장될 수 있다.
반면, 생체 인증 기능을 구비한 전자 장치(100a)에서 장치의 구동을 위한 입력 데이터 중 암호화를 요하지 않는 일부 데이터는 암호화 과정 없이 비휘발성 메모리(150)의 비암호화 데이터 영역(151, 도 8 참조)에 저장될 수 있다. 고도의 보안 수준을 요하지 않는 일부 데이터는 AES 암호 알고리즘 또는 RSA 암호 알고리즘 등과 같이 동형 암호 외의 암호 알고리즘에 의하여 암호화되어 비휘발성 메모리(150)의 암호화 데이터 영역(152)에 저장될 수 있다.
S3040 단계에서, 생체 인식 장치(170a)는 외부로부터 제 2 생체 정보 입력 받을 수 있다. 제 2 생채 정보 또한 사용자의 지문, 얼굴, 홍채, 목소리 또는 정맥 정보일 수 있다. 제 2 생체 정보는 생체 인증 기능을 구비한 전자 장치(100a)의 인증 대상이 되는 생체 정보를 의미한다. 생체 인식 장치(170a)는 외부로부터 입력된 제 2 생체 정보를 APU(110)로 전달할 수 있다.
S3050 단계에서, 제 2 생체 정보가 APU(110)로 입력되면, APU(110) 내의 코어(120)는 제 2 생체 정보를 암호화하기 위하여 비휘발성 메모리(150)에 저장된 공개 키를 읽을 수 있다. APU(110)는 공개 키에 기반하여 제 2 생체 정보를 동형 암호화하여 제 2 암호화 데이터를 생성할 수 있다.
S3060 단계에서, APU(110)는 인증 대상인 제 2 암호화 데이터를 인증하기 위하여 제 1 암호화 데이터를 읽을 수 있다. 제 1 암호화 데이터는 생체 인증 기능을 구비한 전자 장치(100a)의 인증 기준이 되는 데이터로, 선행하는 S3030 단계에서 비휘발성 메모리(150)의 동형 암호화 데이터 영역(153)에 저장된 데이터를 의미한다.
S3070 단계에서, APU(110)는 공개 키 중 곱셈 키 및 회전 연산 키 등을 이용하여 제 1 암호화 데이터와 제 2 암호화 데이터의 연산을 수행할 수 있다. 예로서, APU(110)는 제 1 암호화 데이터와 제 2 암호화 데이터 간의 대소 비교, 합 또는 곱셈 연산 등을 수행할 수 있다. APU(110)는 제 1 암호화 데이터 및 제 2 암호화 데이터의 연산 결과를 메일박스 프로토콜을 통하여 IEE(140)에 전달할 수 있다.
S3080 단계에서, IEE(140)는 제 1 암호화 데이터 및 제 2 암호화 데이터의 연산 결과를 복호화하고, 이를 임계 값(threshold value)과 비교할 수 있다. 임계 값이란, 생체 인증 기능을 구비한 전자 장치(100a)에서 데이터 연산 결과를 해석하기 위하여, 미리 설정되어 저장된 값을 의미한다. 임계 값은 IEE(140)에 포함된 메모리(144, 도 3 참조)에 저장될 수 있다.
복호화된 연산 결과가 임계 값 이내에 있는 경우, 생체 인증 기능을 구비한 전자 장치(100a)는 S3090 단계로 절차를 진행하여 생체 인증 기능을 구비한 전자 장치(100a)가 포함된 전자 장치로의 액세스를 승인할 수 있다. 복호화된 연산 결과가 임계 값 이내에 있지 않은 경우, 생체 인증 기능을 구비한 전자 장치(100a)는 S3100 단계로 절차를 진행하여 생체 인증 기능을 구비한 전자 장치(100a)가 포함된 전자 장치로의 액세스를 거부할 수 있다.
도 10은 본 발명의 실시 예에 따른 전자 장치를 이용하는 악성 코드 판별 기능을 구비한 전자 장치(100b)를 나타내는 블록도이다. 악성 코드 판별 기능을 구비한 전자 장치(100b)는 APU(110), IEE(150), 비휘발성 메모리(150) 및 모뎀(170)을 포함할 수 있다. APU(110)는 코어(120), 동형 암호화 가속기(130) 및 해석기(180)를 포함할 수 있다. 이하, 도 10에 개시된 악성 코드 판별 기능을 구비한 전자 장치(100b)에 있어서, 도 1 내지 도 7에서 상술한 내용과 중복되는 구성, 기능, 특징 및 동작들에 대한 상세한 설명은 생략한다.
악성 코드 판별 기능을 구비한 전자 장치(100b)는 악성 코드 데이터 베이스의 정보와 입력되는 코드 정보의 일치 여부를 판단할 수 있다. 악성 코드 판별 기능을 구비한 전자 장치(100b)에서 다루는 악성 코드 데이터 베이스 및 입력되는 코드 정보가 유출되는 경우 이를 회피한 형태의 또 다른 악성 코드가 발현될 수 있다. 따라서, 악성 코드 판별 기능을 구비한 전자 장치(100b)에서 악성 코드 데이터 베이스 및 입력되는 코드 정보는 반드시 보호되어야 할 정보에 해당하며, 악성 코드 판별 기능을 구비한 전자 장치(100b)에서 악성 코드 데이터 베이스 및 입력되는 코드 정보는 동형 암호화되어 보호될 수 있다.
악성 코드 판별 기능을 구비한 전자 장치(100b)에서, 모뎀(170)은 외부 장치와 통신할 수 있다. 예로서, 모뎀(170)은 LTE(Long Term Evolution), GSM(Global System for Mobile communications), 와이파이(WiFi), 근거리 무선 통신(Near Field Communication, NFC), 블루투스(Bluetooth) 등과 같은 무선 통신을 통하여 외부 장치와 통신할 수 있다. 또 다른 예로서, 모뎀(170)은 이더넷(Ethernet), DOCSIS(Data-Over-Cable Service Interface Specifications) 등과 같은 유선 통신을 통하여 외부 장치와 통신할 수 있다. 즉, 모뎀(170)은 유선 또는 무선 통신을 통하여 네트워크에 연결되고, 네트워크를 통하여 외부 장치와 통신할 수 있다.
모뎀(170)은 외부 장치로부터 수신한 신호를 복조하여 악성 코드 판별 기능을 구비한 전자 장치(100b) 내부로 송신할 수 있다. 외부 장치로부터 수신한 신호는 외부 장치에 입력된 악성 코드에 대한 정보를 포함할 수 있다.
해석기(180)는 악성 코드에 대한 정보로부터 악성 코드 데이터 베이스 구축 및 악성 코드 판별을 위하여 악성 코드의 특징 정보를 추출할 수 있다. 예로서, 해석기(180)는 악성 코드의 특성 분석을 위하여 입력된 악성 코드의 시그니처(signature)를 추출할 수 있다. 또는, 해석기(180)는 악성 코드의 동적 분석을 위하여 입력된 악성 코드의 이상 행위 정보를 추출할 수 있다.
악성 코드 판별 기능을 구비한 전자 장치(100b)는 해석기(180)에서 전달된 악성 코드의 특징 정보(시그니처 또는 이상 행위 정보)를 도 6에 개시된 데이터 암호화 방법에 따라 데이터 베이스로 등록(또는 추가)할 수 있다.
또는, 악성 코드 판별 기능을 구비한 전자 장치(100b)는 도 6에 개시된 암호화 방법에 따라 암호화된 시그니처 또는 이상 행위 정보를 모뎀(170)을 통해 수신할 수 있다. 전자 장치(100b)는 암호화된 시그니처 또는 이상 행위 정보를 데이터 베이스로 등록(또는 추가)할 수 있다. 외부의 장치에서 도 6의 암호화가 수행되기 위해, 전자 장치(100b)는 암호화를 위한 공개 키를 외부 장치에 제공할 수 있다.
해석기(180)는 운영 체제(Operating System) 또는 응용 프로그램(Application)의 동작을 모니터링 할 수 있다. 예를 들어, 해석기(180)는 후보 액세스 패턴 이 발생하는지 여부를 모니터링 할 수 있다. 후보 액세스 패턴은, 예를 들어, 메모리(160) 또는 비휘발성 메모리(150)에 대한 정규적이지 않고 악성 코드의 액세스가 의심되는 액세스 패턴일 수 있다. 해석기(180)는 응용 프로그램에서 후보 액세스 패턴이 발생하는 경우 코어(120)에 해당 정보를 전달할 수 있다.
악성 코드 판별 기능을 구비한 전자 장치(100b)는 해석기(180)에서 전달된 후보 액세스 패턴을 도 7에 개시된 암호화 데이터 처리 방법에 따라 등록된 데이터 베이스와 비교하여 악성 코드 해당 여부를 판단할 수 있다. 악성 코드 판별 기능을 구비한 전자 장치(100b)의 동작 방법은 후술할 도 11 내지 도 12에서 상세하게 설명될 것이다.
도 11은 도 10에 게시된 악성 코드 판별 기능을 구비한 전자 장치(100b, 도 10 참조)에서 악성 코드 데이터 베이스를 구축하는 방법을 나타내는 순서도이다. 도 11에서, 데이터 베이스로 구축하는 과정은 하나의 악성 코드 정보를 대상으로 이루어지는 것으로 설명되나, 본 발명에 따른 데이터 베이스 구축 방법은 도 11에서 설명하는 데이터 베이스 구축 방법을 병렬적 또는 순차적으로 구현하여 종국적으로 방대한 악성 코드 자료를 수록하는 데이터 베이스를 구축할 수 있다. 또한, 데이터 베이스에 수록된 자료는 악성 코드 판별 기능을 구비한 전자 장치(100b)의 구동 중에도 새롭게 입력되는 악성 코드 정보에 기반하여 추가적으로 업데이트 될 수 있다.
S4010 단계에서, APU(110, 도 10 참조)는 모뎀(170, 도 10 참조)으로부터 악성 코드의 특징 정보를 입력 받을 수 있다. 악성 코드의 특징 정보는 시그니처 정보, 이상 행위 정보 등을 포함할 수 있다. 코어(120)는 악성 코드의 특징 정보를 암호화하기 위하여 IEE(140, 도 10 참조)에 키 생성을 명령할 수 있다. IEE(140)는 코어의 명령에 따라 비밀 키를 생성하고, 비밀 키에 기반하여 공개 키를 생성할 수 있다. 키 생성이 완료되면, IEE(140)는 코어(120)에 키 생성 응답을 전달하여 키 생성이 완료되었음을 알릴 수 있다. 키 생성 응답을 수신하면, 코어(120)는 IEE(140)에 공개 키를 요청할 수 있다. IEE(140)는 메일박스 프로토콜을 통하여 IEE(140)의 외부로 공개 키를 전달할 수 있다.
S4020 단계에서, APU(110)는 메일박스 프로토콜을 통하여 IEE(140)에서 생성된공개 키를 읽을 수 있다. IEE(140)는 외부로의 공개 키의 전달과 함께, 비밀 키를 IEE(140) 내부의 비밀 키 스토리지(142, 도 3 참조)에 저장할 수 있다. 비휘발성 메모리(150, 도 10 참조)에 미리 저장된 공개 키가 있는 경우, APU(110)는 비휘발성 메모리(150)로부터 미리 저장된 공개 키를 읽을 수 있다. 비밀 키가 비밀 키 스토리지(142)에 저장되면, IEE(140)는 코어(120)의 액세스를 차단할 수 있다.
S4030 단계에서, APU(110)는 공개 키에 포함된 암호화 키를 사용하여 입력된악성 코드의 특징 정보를 암호화할 수 있다. 악성 코드의 특징 정보는 제 1 암호화 데이터로 동형 암호화 될 수 있다. 이 때, APU(110)의 동형 암호화 가속기(130, 도 10 참조)는 암호화 속도를 향상시킬 수 있다.
S4040 단계에서, 제 1 암호화 데이터는 비휘발성 메모리(150, 도 10 참조)에 전송될 수 있다. 동형 암호화된 제 1 암호화 데이터는 비휘발성 메모리(150)의 동형 암호화 데이터 영역(153, 도 10 참조)에 저장될 수 있다. 또한, 악성 코드의 특징 정보를 동형 암호화 하기 위하여 사용된 공개 키도 비휘발성 메모리(150)의 동형 암호화 데이터 영역(153)에 저장될 수 있다. 동형 암호화 데이터 영역(153)에 저장된 제 1 암호화 데이터는 악성 코드 판별을 위한 데이터 베이스의 자료로 활용될 수 있다. 악성 코드 판별 기능을 구비한 전자 장치(100b)는 도 11에 개시된 데이터 베이스 구축 방법을 병렬적 또는 순차적으로 구현하여 다양한 악성 코드 자료를 수록하는 데이터 베이스를 구축할 수 있다.
반면, 악성 코드 판별 기능을 구비한 전자 장치(100b)에서 장치의 구동을 위한 입력 데이터 중 암호화를 요하지 않는 일부 데이터는 암호화 과정 없이 비휘발성 메모리(150)의 비암호화 데이터 영역(151, 도 10 참조)에 저장될 수 있다. 고도의 보안 수준을 요하지 않는 일부 데이터는 AES 암호 알고리즘 또는 RSA 암호 알고리즘 등과 같이 동형 암호 외의 암호 알고리즘에 의하여 암호화되어 비휘발성 메모리(150)의 암호화 데이터 영역(152)에 저장될 수 있다.
도 12는 도 10에 게시된 악성 코드 판별 기능을 구비한 전자 장치(100b, 도 10 참조)에서 악성 코드를 검출하는 방법을 나타내는 순서도이다. 도 12에 개시된 악성 코드를 검출하는 방법은 상술한 도 11의 악성 코드 데이터 베이스의 구축이 적어도 한 번 수행된 후에 이루어질 수 있다.
S5010 단계에서, APU(110, 도 10 참조)는 특정한 액세스 패턴이 발생하는지 모니터링 할 수 있다. APU(110) 내부의 해석기(180, 도 10 참조)는 수신한 모니터링 정보에서 후보 액세스 패턴이 발생하는지 감지할 수 있다.
S5020 단계에서, APU(110)는 도 11에 상술한 악성 코드 데이터 베이스를 구축하는 방법의 S4040 단계에서 비휘발성 메모리(150)에 저장된 공개 키를 읽을 수 있고, 이에 기반하여 모뎀(170)으로부터 수신된 후보 액세스 패턴의 정보를 동형 암호화할 수 있다. APU(110)는 후보 액세스 패턴의 정보를 동형 암호화하여 제 2 암호화 데이터를 생성할 수 있다.
S5030 단계에서, APU(110)는 판별 대상인 제 2 암호화 데이터의 악성 코드 해당 여부를 판단하기 위하여 악성 코드 데이터 베이스 정보를 읽을 수 있다. 악성 코드 데이터 베이스 정보는 악성 코드 판별 기능을 구비한 전자 장치(110b)의 악성 코드 해당 여부의 판단 기준이 되는 데이터로, 도 11에 상술한 악성 코드 데이터 베이스를 구축하는 방법이 병렬적 또는 순차적으로 구현되어 생성된 데이터 베이스에 포함된 데이터를 의미한다.
S5040 단계에서, APU(110)는 공개 키 중 곱셈 키 및 회전 연산 키 등을 이용하여 제 2 암호화 데이터와 악성 코드 데이터 베이스에 포함된 데이터의 연산을 수행할 수 있다. 예로서, APU(110)는 제 2 암호화 데이터와 데이터 베이스에 포함된 데이터 간의 대소 비교, 합 또는 곱셈 연산 등을 수행할 수 있다. APU(110)는 제 2 암호화 데이터 및 데이터 베이스에 포함된 데이터 간의 연산 결과를 메일박스 프로토콜을 통하여 IEE(140)에 전달할 수 있다.
S5050 단계에서, IEE(140)는 제 2 암호화 데이터 및 데이터 베이스에 포함된 데이터에 대한 연산 결과를 복호화 하고, 이를 임계 값과 비교할 수 있다. 임계 값이란, 악성 코드 판별 기능을 구비한 전자 장치(100b)에서 데이터 연산 결과를 해석하기 위하여, 미리 설정되어 저장된 값을 의미한다. 임계 값은 IEE(140)에 포함된 메모리(144, 도 3 참조)에 저장될 수 있다.
복호화된 연산 결과가 임계 값 이내에 있는 경우, 악성 코드 판별 기능을 구비한 전자 장치(100b)는 S5060 단계로 절차를 진행하여 해당 코드의 액세스를 거부할 수 있다. 복호화된 연산 결과가 임계 값 이내에 있지 않은 경우, 악성 코드 판별 기능을 구비한 전자 장치(100b)는 S5070 단계로 절차를 진행하여 해당 코드의 액세스를 허용할 수 있다.
본 발명의 실시 예에 따른 전자 장치(100, 도 1 참조)는 하나의 APU(110, 도 1 참조), 하나의 IEE(140, 도 1 참조) 및 하나의 비휘발성 메모리(150, 도 1 참조)를 포함하는 것으로 설명되었으나, 본 명세서에 개시된 전자 장치(100)는 본 발명의 일 실시 예일 뿐, 본 발명에 따른 전자 장치(100)는 복수의 APU(110)들, 복수의 IEE(140)들 또는 복수의 비휘발성 메모리(150)들을 포함할 수 있다. 또한, 전자 장치(100)는 데스크 탑, 노트북 컴퓨터, 스마트폰, 태블릿 PC, 웨어러블 기기 등 데이터의 보안을 요하는 모든 전자 장치의 형태로 구현될 수 있다.
상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들 뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함될 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위 뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.
110 : 어플리케이션 처리 유닛(Application Processing Unit, APU)
120 : 코어
130 : 동형 암호화 가속기(Homomorphic Encryption Accelerator)
140 : IEE(Isolated Execution Environment)
150 : 비휘발성 메모리

Claims (10)

  1. 외부로부터 수신한 데이터를 저장하는 메모리;
    비밀 키 및 공개 키 생성 명령을 전달하는 어플리케이션 처리 유닛(Application Processing Unit, APU);
    상기 비밀 키 및 공개 키 생성 명령에 응답하여 비밀 키를 생성하고, 상기 비밀 키에 기반하여 공개 키를 생성하고, 상기 비밀 키를 저장하는 IEE(Isolated Execution Environment); 및
    상기 APU의 요청에 따라 쓰기 및 읽기를 수행하는 비휘발성 메모리를 포함하되,
    상기 APU는 상기 데이터가 상기 메모리에 저장되면, 상기 IEE로 공개 키 요청을 전송하고,
    상기 IEE는 상기 공개 키 요청에 응답하여 메일박스 프로토콜을 통하여 상기 APU에 상기 공개 키를 전달하고,
    상기 APU는 상기 공개 키에 포함된 암호화 키에 기반하여 상기 데이터를 동형 암호화하여 상기 암호문을 생성하고,
    상기 APU는 상기 공개 키 및 상기 암호문을 상기 비휘발성 메모리 내에서 분리하여 저장하는 전자 장치.
  2. 제 1 항에 있어서,
    상기 APU는 상기 동형 암호화를 가속하기 위한 동형 암호화 가속기를 더 포함하는 전자 장치.
  3. 제 1 항에 있어서,
    상기 IEE는:
    상기 비밀 키 및 상기 공개 키를 생성하는 동형 암호 키 생성기;
    상기 비밀 키를 저장하는 비밀 키 스토리지; 및
    상기 비밀 키에 기반하여 상기 암호문에 관련된 연산 결과를 복호화하는 복호기를 포함하는 전자 장치.
  4. 제 3 항에 있어서,
    상기 동형 암호 키 생성기는:
    NTT(Number Theoretic Transform) 및 INTT(Inverse Number Theoretic Transform)을 수행하는 NTT/INTT 연산부;
    곱 연산 및 모듈로(modulo) 연산을 수행하는 Mult/Modulo 연산부; 및
    상기 비밀 키 및 상기 공개 키를 생성하기 위한 임의의 난수를 생성하는 가우시안 난수 생성기를 포함하는 전자 장치.
  5. 제 3 항에 있어서,
    상기 IEE는 상기 비밀 키 및 상기 공개 키가 생성되면 상기 APU의 액세스를 차단하는 전자 장치.
  6. 제 1 항에 있어서,
    상기 비휘발성 메모리는 비암호화 데이터 영역, 암호화 데이터 영역 및 동형 암호화 데이터 영역을 포함하고,
    상기 공개 키 및 상기 동형 암호화에 기반하여 생성된 상기 암호문은 상기 동형 암호화 데이터 영역에 저장되는 전자 장치.
  7. 제 6 항에 있어서,
    상기 동형 암호화 데이터 영역은 SLC(Single Level Cell), MLC(Multi Level Cell), TLC(Triple Level Cell) 및 QLC(Quad Level Cell)를 포함하고,
    상기 APU는 상기 공개 키 및 상기 동형 암호화에 기반하여 생성된 상기 암호문의 크기, 액세스 빈도 또는 요구 속도에 따라 상기 공개 키 및 상기 동형 암호화에 기반하여 생성된 상기 암호문을 분류하여 상기 SLC, MLC, TLC 및 QLC에 각각 저장하는 전자 장치.
  8. 외부로부터 제 1 데이터를 수신하는 단계;
    IEE(Isolated Execution Environment)에서 생성된 공개 키를 메일박스 프로토콜을 통하여 로드(load)하는 단계;
    상기 공개 키에 포함된 암호화 키에 기반하여 상기 제 1 데이터를 동형 암호화하여 제 1 암호화 데이터를 생성하는 단계;
    상기 공개 키 및 상기 제 1 암호화 데이터를 비휘발성 메모리에 저장하는 단계;
    상기 외부로부터 제 2 데이터를 입력 받는 단계;
    상기 비휘발성 메모리에 저장된 상기 공개 키를 로드하는 단계;
    상기 공개 키에 포함된 상기 암호화 키에 기반하여 상기 제 2 데이터를 동형 암호화하여 제 2 암호화 데이터를 생성하는 단계; 및
    상기 공개 키에 포함된 곱셈 키에 기반하여 상기 제 1 암호화 데이터 및 상기 제 2 암호화 데이터에 대한 연산을 수행하는 단계를 포함하는 암호화 데이터 처리 방법.
  9. 제 8 항에 있어서,
    상기 동형 암호화는 RLWE(Ring Learning With Errors) 기반의 암호 기법을 이용하는 암호화 데이터 처리 방법.
  10. 외부로부터 악성 코드의 정보를 수신하는 모뎀;
    상기 악성 코드의 정보로부터 상기 악성 코드의 특징 정보를 추출하고, 비밀 키 및 공개 키 생성 명령을 전달하는 어플리케이션 처리 유닛(Application Processing Unit, APU);
    상기 비밀 키 및 공개 키 생성 명령에 응답하여 비밀 키를 생성하고, 상기 비밀 키에 기반하여 공개 키를 생성하고, 상기 비밀 키를 저장하는 IEE(Isolated Execution Environment); 및
    상기 APU의 요청에 따라 쓰기 및 읽기를 수행하는 비휘발성 메모리를 포함하되,
    상기 APU는 상기 악성 코드의 특징 정보가 추출되면, 상기 IEE로 공개 키 요청을 전송하고,
    상기 IEE는 상기 공개 키 요청에 응답하여 메일박스 프로토콜을 통하여 상기 APU에 상기 공개 키를 전달하고,
    상기 APU는 상기 공개 키에 포함된 암호화 키에 기반하여 상기 악성 코드의 특징 정보를 동형 암호화하여 암호화 데이터를 생성하고,
    상기 APU는 상기 암호화 데이터를 상기 비휘발성 메모리에 저장하는 악성 코드 판별 기능을 구비한 전자 장치.

KR1020200083213A 2020-07-07 2020-07-07 동형 암호를 이용하는 전자 장치 및 그것의 암호화 데이터 처리 방법 KR20220005705A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020200083213A KR20220005705A (ko) 2020-07-07 2020-07-07 동형 암호를 이용하는 전자 장치 및 그것의 암호화 데이터 처리 방법
CN202110633384.0A CN113972978A (zh) 2020-07-07 2021-06-07 使用同态加密的电子设备及其加密数据处理方法
US17/347,055 US11824967B2 (en) 2020-07-07 2021-06-14 Electronic device using homomorphic encryption and encrypted data processing method thereof
EP21181760.6A EP3937419B1 (en) 2020-07-07 2021-06-25 Electronic device using homomorphic encryption and encrypted data processing method thereof
US18/379,384 US20240048354A1 (en) 2020-07-07 2023-10-12 Electronic device using homomorphic encryption and encrypted data processing method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200083213A KR20220005705A (ko) 2020-07-07 2020-07-07 동형 암호를 이용하는 전자 장치 및 그것의 암호화 데이터 처리 방법

Publications (1)

Publication Number Publication Date
KR20220005705A true KR20220005705A (ko) 2022-01-14

Family

ID=79173236

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200083213A KR20220005705A (ko) 2020-07-07 2020-07-07 동형 암호를 이용하는 전자 장치 및 그것의 암호화 데이터 처리 방법

Country Status (3)

Country Link
US (1) US11824967B2 (ko)
KR (1) KR20220005705A (ko)
CN (1) CN113972978A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230127134A (ko) 2022-02-24 2023-08-31 서울대학교산학협력단 다중키 동형암호를 수행하는 장치 및 방법

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210117046A (ko) * 2020-03-18 2021-09-28 한국전자통신연구원 거래 내역 데이터 접근 제어 시스템 및 방법
US11588617B2 (en) * 2020-11-01 2023-02-21 The Toronto-Dominion Bank Validating confidential data using homomorphic computations
US11907402B1 (en) * 2021-04-28 2024-02-20 Wells Fargo Bank, N.A. Computer-implemented methods, apparatuses, and computer program products for frequency based operations
CN115118751B (zh) * 2022-07-15 2024-04-19 广东浪潮智慧计算技术有限公司 一种基于区块链的监管系统、方法、设备和介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016131335A (ja) 2015-01-14 2016-07-21 富士通株式会社 情報処理方法、情報処理プログラムおよび情報処理装置
KR102317471B1 (ko) 2015-04-20 2021-10-27 삼성전자주식회사 프로그램이 악성 코드를 포함하는지 판단하는 전자 장치 및 그 제어 방법
US9760737B2 (en) 2015-06-12 2017-09-12 Qualcomm Incorporated Techniques for integrated circuit data path confidentiality and extensions thereof
CA2935130A1 (en) 2016-07-26 2018-01-26 Mirza Kamaludeen Encrypted data - computer virus, malware and ransom ware detection system
US10095880B2 (en) 2016-09-01 2018-10-09 International Business Machines Corporation Performing secure queries from a higher security domain of information in a lower security domain
US10872155B2 (en) 2016-11-16 2020-12-22 Samsung Electronics Co., Ltd. Computing system for managing firmware and firmware managing method thereof
US10439799B2 (en) 2017-02-27 2019-10-08 United States Of America As Represented By Secretary Of The Navy System and method for automating indirect fire protocol using fully homomorphic encryption
US10797856B2 (en) 2018-04-18 2020-10-06 Fujitsu Limited Outsourcing processing operations with homomorphic encryption
US11223485B2 (en) 2018-07-17 2022-01-11 Huawei Technologies Co., Ltd. Verifiable encryption based on trusted execution environment
US11095428B2 (en) 2018-07-24 2021-08-17 Duality Technologies, Inc. Hybrid system and method for secure collaboration using homomorphic encryption and trusted hardware
US11444774B2 (en) * 2020-01-08 2022-09-13 Tata Consultancy Services Limited Method and system for biometric verification
US20210266170A1 (en) * 2020-02-26 2021-08-26 Antonio Rossi System and method of trustless confidential positive identification and de-anonymization of data using blockchain
US20200320206A1 (en) * 2020-06-24 2020-10-08 Intel Corporation Systems, methods, apparatus and articles of manufacture to prevent unauthorized release of information associated with a function as a service
US11575501B2 (en) * 2020-09-24 2023-02-07 Seagate Technology Llc Preserving aggregation using homomorphic encryption and trusted execution environment, secure against malicious aggregator

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230127134A (ko) 2022-02-24 2023-08-31 서울대학교산학협력단 다중키 동형암호를 수행하는 장치 및 방법

Also Published As

Publication number Publication date
US11824967B2 (en) 2023-11-21
CN113972978A (zh) 2022-01-25
US20220014351A1 (en) 2022-01-13

Similar Documents

Publication Publication Date Title
Delvaux Machine-learning attacks on polypufs, ob-pufs, rpufs, lhs-pufs, and puf–fsms
KR20220005705A (ko) 동형 암호를 이용하는 전자 장치 및 그것의 암호화 데이터 처리 방법
US8139763B2 (en) Randomized RSA-based cryptographic exponentiation resistant to side channel and fault attacks
KR102570801B1 (ko) 콤팩트 소스 코드로부터의 암호화 함수 파라미터의 생성
US7770018B2 (en) Setting up a security access system
TWI503688B (zh) 用以藉由測試裝置對安全晶片認證存取之方法
JP2020522205A (ja) プログレッシブキー暗号化アルゴリズム
US20080288786A1 (en) System with access keys
US8209751B2 (en) Receiving an access key
EP1846830B1 (en) Access keys
CN103562922A (zh) 在芯片制造期间建立唯一秘钥
KR20100016579A (ko) 크리덴셜 배포를 위한 시스템 및 방법
US10686764B2 (en) Executable coded cipher keys
US10158613B1 (en) Combined hidden dynamic random-access devices utilizing selectable keys and key locators for communicating randomized data together with sub-channels and coded encryption keys
US20090158049A1 (en) Building a security access system
Liu et al. Lightning-fast and privacy-preserving outsourced computation in the cloud
WO2019186554A1 (en) Method of secure communication among protected containers and system thereof
Steel Formal analysis of PIN block attacks
CN106408069B (zh) Epc卡的用户数据写入与读取方法和系统
Ravi et al. On threat of hardware trojan to post-quantum lattice-based schemes: a key recovery attack on saber and beyond
CN107135074A (zh) 一种高级安全方法和装置
Rowe et al. The curious case of the half-half bitcoin ECDSA nonces
CN114866228A (zh) 一种实现软密码模块的方法、系统、存储介质及终端
EP3937419A1 (en) Electronic device using homomorphic encryption and encrypted data processing method thereof
Bhuvanagiri Udayakumar Evaluation of XChaCha20-Poly1305 for Improved File System Level Encryption in the Cloud