KR20210133471A - 전자 장치 및 그의 제어 방법 - Google Patents

전자 장치 및 그의 제어 방법 Download PDF

Info

Publication number
KR20210133471A
KR20210133471A KR1020200052110A KR20200052110A KR20210133471A KR 20210133471 A KR20210133471 A KR 20210133471A KR 1020200052110 A KR1020200052110 A KR 1020200052110A KR 20200052110 A KR20200052110 A KR 20200052110A KR 20210133471 A KR20210133471 A KR 20210133471A
Authority
KR
South Korea
Prior art keywords
security
neural network
artificial neural
layer
encrypted
Prior art date
Application number
KR1020200052110A
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 KR1020200052110A priority Critical patent/KR20210133471A/ko
Priority to US17/437,320 priority patent/US11995196B2/en
Priority to PCT/KR2020/016662 priority patent/WO2021221256A1/ko
Publication of KR20210133471A publication Critical patent/KR20210133471A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/34User authentication involving the use of external additional devices, e.g. dongles or smart cards
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Bioethics (AREA)
  • Storage Device Security (AREA)

Abstract

전자 장치 및 이의 제어 방법이 개시된다. 본 개시의 전자 장치는 인공 신경망 및 상기 인공 신경망에 포함된 복수의 레이어 중 암호화할 적어도 하나의 레이어와 관련된 메타 데이터를 저장하는 메모리, 및 상기 메타 데이터 및 상기 전자 장치의 보안 키를 이용하여 보안 벡터를 획득하고, 상기 획득된 보안 벡터 및 상기 메타 데이터를 상기 보안 키 및 상기 인공 신경망의 식별 정보와 매핑하고, 상기 메타 데이터 및 상기 보안 벡터를 이용하여 상기 복수의 레이어 중 상기 적어도 하나의 레이어에 대해 암호화를 수행하고, 상기 인공 신경망에 데이터가 입력되면, 상기 보안 키 및 상기 인공 신경망의 식별 정보를 이용하여 상기 메타 데이터 및 상기 보안 벡터를 로딩하고, 상기 로딩된 보안 벡터 및 상기 메타 데이터를 바탕으로 상기 입력된 데이터와 상기 암호화된 적어도 하나의 레이어간의 연산을 수행하는 프로세서를 포함할 수 있다.

Description

전자 장치 및 그의 제어 방법{Electronic device and control method thereof}
본 개시는 전자 장치 및 이의 제어 방법에 관한 것으로서, 더욱 상세하게는 보안 키 및 인공 신경망과 관련된 메타 데이터를 바탕으로 인공 신경망을 암호화하여 보안이 필요한 데이터의 보안을 유지하는 전자 장치 및 이의 제어 방법에 관한 것이다.
기계 학습(예로, 딥 러닝(Deep learning))을 기반으로 학습되는 인공 신경망은 다양한 분야에서 개발 및 활용되고 있으며, 인공 신경망은 이를 활용하는 사용자의 특성에 맞게 최적화될 수 있다. 즉, 인공 신경망은 사용자가 인공 신경망을 활용함으로써 도출될 수 있는 사용자와 관련된 각종 데이터를 저장하거나 이를 바탕으로 학습할 수 있다. 따라서, 인공 신경망 내에는 사용자의 다양한 종류의 데이터가 포함되어 있을 수 있다는 점에서 인공 신경망에 대한 보안의 중요성이 대두되고 있다.
기존에는, 인공 신경망을 보안하기 위해 인공 신경망을 암호화하여 저장하고, 추후 인공 신경망을 활용하기 위해서 암호화된 인공 신경망을 다시 복호화하는 동작을 수행하였다. 다만, 기존 기술의 경우, 암호화된 인공 신경망을 복호화하는 동작을 수행할 때 소용되는 비용 또는 시간이 크다는 한계가 존재하였다. 특히, 계산 리소스(resource)가 상대적으로 제한되는 임베디드(embedded) 환경에서는, 암호화된 인공 신경망을 다시 복호화하는 동작을 수행하는 것이 효율적이지 않다는 한계가 존재하였다.
또한, 기존 기술의 경우, 인공 신경망의 특성을 잘 반영하지 못한 채 암호화 및 복호화를 수행하였다는 점에서, 효율적인 인공 신경망을 보안하지 못하였다는 한계가 존재하였다.
본 개시는 상술한 문제점을 해결하기 위해 안출된 것으로서, 본 개시의 목적은 보안 키 및 인공 신경망과 관련된 메타 데이터를 바탕으로 인공 신경망에 포함된 복수의 레이어 중 적어도 하나의 레이어를 암호화하는 전자 장치 및 이의 제어 방법을 제공함에 있다.
본 개시의 일 실시예에 따른, 전자 장치는 인공 신경망 및 상기 인공 신경망에 포함된 복수의 레이어 중 암호화할 적어도 하나의 레이어와 관련된 메타 데이터를 저장하는 메모리 및 상기 메타 데이터 및 상기 전자 장치의 보안 키를 이용하여 보안 벡터를 획득하고, 상기 획득된 보안 벡터 및 상기 메타 데이터를 상기 보안 키 및 상기 인공 신경망의 식별 정보와 매핑하고, 상기 메타 데이터 및 상기 보안 벡터를 이용하여 상기 복수의 레이어 중 상기 적어도 하나의 레이어에 대해 암호화를 수행하고, 상기 인공 신경망에 데이터가 입력되면, 상기 보안 키 및 상기 인공 신경망의 식별 정보를 이용하여 상기 메타 데이터 및 상기 보안 벡터를 로딩하고, 상기 로딩된 보안 벡터 및 상기 메타 데이터를 바탕으로 상기 입력된 데이터와 상기 암호화된 적어도 하나의 레이어간의 연산을 수행할 수 있다.
한편, 본 개시의 또 다른 실시예로, 인공 신경망 및 상기 인공 신경망에 포함된 복수의 레이어 중 암호화할 적어도 하나의 레이어와 관련된 메타 데이터를 저장하는 메모리를 포함하는 전자 장치의 제어 방법에 있어서, 상기 메타 데이터 및 상기 전자 장치의 보안 키를 이용하여 보안 벡터를 획득하는 단계, 상기 획득된 보안 벡터 및 상기 메타 데이터를 상기 보안 키 및 상기 인공 신경망의 식별 정보와 매핑하는 단계, 상기 메타 데이터 및 상기 보안 벡터를 이용하여 상기 복수의 레이어 중 상기 적어도 하나의 레이어에 대해 암호화를 수행하는 단계, 상기 인공 신경망에 데이터가 입력되면, 상기 보안 키 및 상기 인공 신경망의 식별 정보를 이용하여 상기 메타 데이터 및 상기 보안 벡터를 로딩하는 단계, 및 상기 로딩된 보안 벡터 및 상기 메타 데이터를 바탕으로 상기 입력된 데이터와 상기 암호화된 적어도 하나의 레이어간의 연산을 수행하는 단계를 포함할 수 있다.
상술된 본 개시의 다양한 실시예를 통해, 전자 장치는 인공 신경망에 포함된 복수의 레이어 중 일부에 대해 암호화를 수행함으로써 암호화를 위한 오버 헤드를 감소시킬 수 있으며, 보안 키가 없을 경우 인공 신경망을 활용할 수 없다는 점에서 인공 신경망의 보안 역시 유지할 수 있다.
도 1a는 본 개시의 일 실시예에 따른, 전자 장치의 구성 및 동작을 설명하기 위한 블록도,
도 1b 및 도 1c는 본 개시의 일시예에 따른, 전자 장치가 암호화된 인공 신경망과 관련된 연산을 수행하는 과정을 설명하기 위한 도면,
도 1d는 본 개시의 일 실시예에 따른, 전자 장치에 포함된 모듈 간의 동작을 설명하기 위한 도면,
도 1e는 본 개시의 일 실시예에 따른, 전자 장치의 구성을 상세히 도시한 블록도,
도 2는 본 개시의 일시예에 따른, 전자 장치가 인공 신경망에 대해 암호화하는 동작을 수행하는 과정을 설명하기 위한 순서도,
도 3은 본 개시의 일 실시예에 따른, 전자 장치가 암호화된 인공 신경망과 관련된 연산을 수행하는 과정을 설명하기 위한 순서도,
도 4는 본 개시의 일 실시예에 따른, 전자 장치와 외부 장치간의 동작을 설명하기 위한 시퀀스도,
도 5는 본 개시의 일 실시예에 따른, 전자 장치와 서버 간의 동작을 설명하기 위한 시퀀스도,
도 6은 본 개시의 일 실시예에 따른, 전자 장치의 동작을 설명하기 위한 순서도이다.
본 개시는 개인 정보 등 보안이 필요한 정보의 보안을 유지하기 위하여, 인공 신경망(Neural Network)에 포함된 복수의 레이어 중 일부 레이어에 포함된 가중치를 전자 장치 고유의 보안 키(security key)를 이용하여 암호화하는 전자 장치(100) 및 그의 제어 방법에 관한 것이다. 즉, 본 개시의 전자 장치(100)는 인공 신경망에 포함된 적어도 하나의 레이어에 대해 암호화함으로써 인공 신경망 자체의 보안을 유지하고 인공 신경망이 학습 데이터로 활용한 개인 정보 등 보안이 필요한 정보의 보안을 유지할 수 있다.
구체적으로, 인공 신경망 자체의 보안을 유지하고 개인 정보와 같이 보안이 필요한 정보의 보안을 유지한다는 것은 전자 장치 고유의 보안 키를 활용하지 않고 인공 신경망에 특정 데이터를 입력하면, 인공 신경망이 유효하지 않는 데이터를 출력한다는 것을 의미할 수 있다. 이 때, 유효하지 않은 데이터는 신뢰도 값(confidence score)이 임계 값 미만인 데이터를 의미할 수 있다.
그리고, 인공 신경망은 개인 정보 등 보안이 필요한 데이터를 바탕으로 학습될 수 있으므로, 인공 신경망이 출력한 데이터는 보안이 필요한 데이터가 반영된 데이터일 수 있다. 따라서, 비정상적인 방식으로 데이터가 입력될 때(예로, 보안 키를 활용하지 않고 인공 신경망에 데이터를 입력하는 방식 등), 인공 신경망이 유효하지 않는 데이터를 출력함으로써, 인공 신경망 자체의 보안을 유지하고, 인공 신경망이 학습 데이터로 활용된 데이터의 보안을 유지할 수 있다.
따라서, 본 개시에 의할 경우, 다른 단말 장치가 전자 장치(100)의 보안 키를 통해 획득할 수 있는 보안 데이터(예로, 보안 벡터 등)를 활용하지 않고 암호화된 레이어를 포함하는 인공 신경망에 데이터를 입력하면, 전자 장치(100)에 포함된 암호화된 인공 신경망은 유효하지 않는 데이터를 출력함으로써 인공 신경망의 보안을 유지하고, 인공 신경망이 학습 데이터로 활용한 개인 정보 등의 보안을 유지할 수 있다.
또 다른 예로, 인공 신경망의 보안을 유지한다는 것은 전자 장치 고유의 보안 키를 활용하지 않고는 인공 신경망에 접근하지 못하도록 제어한다는 것을 의미할 수 있다. 즉, 보안 키를 활용하지 않고는 인공 신경망에 데이터를 입력하지 못하게 함으로써, 인공 신경망에 대한 보안을 유지할 수 있다.
한편, 본 개시를 설명함에 있어서 전자 장치(100) 고유의 보안 키(security key)는 전자 장치(100) 고유의 하드웨어 키 또는 전자 장치(100)에서만 생성될 수 있는 키를 포함할 수 있다. 또 다른 예로, 전자 장치(100) 보안 키는 전자 장치(100)를 관리하고 각종 데이터를 제공할 수 있는 서버(또는, 전자 장치(100)의 제조사의 서버 또는 전자 장치(100)에게 서비스를 제공할 수 있는 서버 등)가 전자 장치(100) 상에 저장된 특정 인공 신경망을 활용할 수 있도록 전자 장치(100)에게 할당한 고유한 키를 포함할 수 있다. 서버가 전자 장치(100)에게 보안 키를 할당하여 제공하는 실시예는 도 5를 참조하여 구체적으로 설명하도록 한다.
그리고, 본 개시를 설명함에 있어서, 인공 신경망은 입력된 데이터에 대응되는 데이터를 출력하도록 생성 및 학습된 기계 학습 모델을 총칭할 수 있다. 그리고, 인공 신경망은 특정 작업에 최적화되도록 학습될 수 있을 뿐만 아니라 개인화(personalized) 목적 등 다양한 요구에 맞게 학습되어 활용될 수 있다.
이하에는 도면을 참조하여 본 개시에 대해 구체적으로 설명하도록 한다.
도 1a는 본 개시의 일 실시예에 따른, 전자 장치(100)의 구성 및 동작을 구체적으로 설명하기 위한 블록도이다. 도 1a에 도시된 바와 같이, 전자 장치(100)는 메모리(110) 및 프로세서(120)를 포함할 수 있다. 다만, 도 1a에 도시된 구성은 본 개시의 실시 예들을 구현하기 위한 예시도이며, 통상의 기술자에게 자명한 수준의 적절한 하드웨어 및 소프트웨어 구성들이 전자 장치(100)에 추가로 포함될 수 있다.
메모리(110)는 전자 장치(100)의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 저장할 수 있다. 그리고, 메모리(110)는 프로세서(120)에 의해 액세스되며, 프로세서(120)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다.
특히, 메모리(110)는 프로세서(120)가 실행할 수 있는 적어도 하나의 프로그램에 대응되는 인스트럭션 집합(instruction set)을 저장할 수 있다. 인스트럭션은 프로그래밍 작성 언어에서 프로세서(120)가 직접 실행할 수 있는 하나의 동작 문장(action statement)를 의미하며, 프로그램의 실행 또는 동작에 대한 최소 단위이다.
그리고, 메모리(110)는 입력부 등을 통해 입력된 데이터를 저장할 수 있다. 예를 들면, 입력 데이터는 마이크를 통해 입력된 음성 데이터 또는 카메라를 통해 획득된 이미지 데이터를 포함할 수 있다. 그리고, 입력 데이터는 벡터 또는 행렬로 구현된 데이터일 수 있으나 이는 일 실시예에 불과하며, 그래프 등 다양한 형태의 데이터로 구현될 수 있다.
또한, 메모리(110)는 복수의 레이어를 포함하는 인공 신경망을 저장할 수 있다. 인공 신경망에는 컨볼루션 레이어(convolution layer), 전 결합 레이어(fully connected layer) 등과 같은 다양한 종류의 레이어를 포함할 수 있다. 그리고, 각 레이어는 복수의 가중치(weight values)를 갖고 있으며, 이전(previous) 레이어의 연산 결과와 복수의 가중치의 연산을 통해 레이어의 연산을 수행할 수 있다. 인공 신경망에 포함된 복수의 신경망 레이어들이 갖고 있는 복수의 가중치들은 인공지능 모델의 학습 결과에 의해 최적화될 수 있다. 예를 들어, 학습 과정 동안 인공지능 모델에서 획득한 로스(loss) 값 또는 코스트(cost) 값이 감소 또는 최소화되도록 복수의 가중치들이 갱신될 수 있다.
인공 신경망의 예로는, CNN (Convolutional Neural Network), DNN (Deep Neural Network), RNN (Recurrent Neural Network), RBM (Restricted Boltzmann Machine), DBN (Deep Belief Network), BRDNN(Bidirectional Recurrent Deep Neural Network) 및 심층 Q-네트워크 (Deep Q-Networks) 등이 있으며, 본 개시에서의 인공 신경망은 명시한 경우를 제외하고 전술한 예에 한정되지 않는다.
한편, 메모리(110)는 일반 영역(normal area)(10-1)과 보안 영역(security area)(10-2)으로 나뉠 수 있다. 일반 영역(10-1)은 전자 장치(100)의 각종 구성 요소에 관계된 데이터 및 명령을 저장하는 영역을 의미할 수 있다. 보안 영역(10-2)은 일반 영역과 정보 교환이 통제되어 보안이 강화된 저장 영역을 의미할 수 있다. 따라서, 보안 영역(10-2)에는 보안이 필요한 개인 정보, 결제 정보, 생체 정보, 보안 문서 등을 저장할 수 있다. 또 다른 예로, 보안 영역(10-2)에는 보안 키 및 보안 키와 인공 신경망의 식별 정보와 매칭된 보안 벡터 및 메타 데이터에 대한 정보(예를 들어, 보안 벡터 및 메타 데이터가 매핑된 해시 테이블(hash table) 또는 해시 함수 등)가 저장될 수 있다. 이와 관련된 실시예는 후술하는 부분에서 설명하도록 한다.
한편, 각종 보안이 필요한 정보를 저장하는 보안 영역(10-2)은 도 1a에 도시된 바와 같이 메모리(110)의 일 구성 요소로 구현될 수 있을 뿐만 아니라 독립된 하드웨어 모듈 또는 소프트웨어 모듈로 구현될 수 있으며, 프로세서(120)의 일 구성 요소로도 구현될 수 있음은 물론이다.
그리고, 메모리(110)는 인공 신경망에 포함된 복수의 레이어 중 암호화할 적어도 하나의 레이어와 관련된 메타 데이터(meta data)를 저장할 수 있다. 구체적으로, 메타 데이터는 복수의 레이어 중 암호화할 레이어의 개수, 암호화할 레이어의 유형(type), 암호화할 레이어 중 암호화할 영역 및 암호화할 영역의 뎁스(depth) 값을 포함할 수 있다. 메타 데이터는 암호화할 레이어와 관련된 정보를 벡터 또는 행렬의 형태로 저장할 수 있으나, 이는 일 실시예에 불과하며 그래프의 형태로도 저장할 수 있다. 메타 데이터는 프로세서(120)가 사용자 또는 외부 장치로부터 입력받을 수 있다. 다만, 이는 일 실시예에 불과하며, 프로세서(120)가 난수 발생기(random number generate)를 이용하여 메타 데이터를 생성하고 메모리(110)에 저장할 수 있다.
그리고, 메모리(110)는 각종 기능을 수행할 수 있는 소프트웨어 모듈을 저장할 수 있다. 예를 들면, 보안 벡터 생성 모듈(80-1), 매핑 모듈(80-2), 암호화 모듈(80-3)을 포함하는 학습(training) 모듈(80)을 저장할 수 있으며, 로딩 모듈(90-1), 연산 실행 모듈(90-2)을 포함하는 추론(inference) 모듈(90)을 저장할 수 있다. 각 모듈의 동작은 프로세서(120)에 의해 제어될 수 있다. 한편, 각 모듈은 비휘발성 메모리에 저장되어 있다가 프로세서(120)에 의해 휘발성 메모리로 로딩(loading)될 수 있다. 각 소프트웨어 모듈간의 동작은 도 1d를 참조하여 구체적으로 설명하도록 한다.
한편, 로딩(loading)이란 프로세서(120)가 액세스할 수 있도록 비휘발성 메모리에 저장된 데이터를 휘발성 메모리에 불러들여 저장하는 동작을 의미한다. 휘발성 메모리는 프로세서(120)에 포함되어 프로세서(120)의 일 구성요소로 구현될 수 있으나, 이는 일 실시예에 불과하며 휘발성 메모리는 프로세서(120)와는 별개의 구성 요소로 구현될 수 있다.
한편, 메모리(110)는 비휘발성 메모리, 휘발성 메모리, 플래시메모리(flash-memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD) 등으로 구현될 수 있다. 그리고, 본 개시에서 메모리라는 용어는 메모리(110), 프로세서(120) 내 롬(미도시), 램(미도시) 또는 전자 장치(100)에 장착되는 메모리 카드(미도시)(예를 들어, micro SD 카드, 메모리 스틱)를 포함할 수 있다. 또한, 메모리(110)에는 디스플레이의 디스플레이 영역에 표시될 각종 화면을 구성하기 위한 프로그램 및 데이터 등이 저장될 수 있다.
그리고, 비휘발성 메모리는 전력 공급이 중단되더라도 저장된 정보를 유지할 수 있는 메모리(예를 들어, 플래시 메모리(Flash Memory), PROM(Programmable Read-Only Memory), MRAM(Magnetoresistive Random-Access Memory) 및 RRAM(Resistive RAM))를 말한다. 그리고, 휘발성 메모리는 저장된 정보를 유지하기 위해서는 지속적인 전력 공급이 필요한 메모리(예를 들어, DRAM(Dynamic Random-Access Memory) 및 SRAM(Static RAM))를 말한다.
프로세서(120)는 메모리(110)와 전기적으로 연결되어 전자 장치(100)의 전반적인 동작을 수행할 수 있다. 본 개시를 설명함에 있어, 프로세서(120)는 프로세서는 하나 또는 복수의 프로세서로 구성될 수 있다. 이때, 하나 또는 복수의 프로세서(120)는 CPU, AP, DSP(Digital Signal Processor) 등과 같은 범용 프로세서, GPU, VPU(Vision Processing Unit)와 같은 그래픽 전용 프로세서 또는 NPU(Neural Processing Unit)와 같은 인공지능 전용 프로세서일 수 있다.
프로세서(120)는 메모리(110)에 저장된 메타 데이터 및 보안 영역(10-2)에 저장된 보안 키를 휘발성 메모리 상의 보안 영역(미도시)에 로딩할 수 있다. 이 때, 휘발성 메모리 상의 보안 영역은 전자 장치(100) 내의 다른 구성 요소와는 정보 교환이 통제되어 보안이 강화된 영역을 의미할 수 있다. 프로세서(120)는 휘발성 메모리의 보안 영역 상에서 각종 보안 작업(예를 들어, 인공 신경망에 대한 암호화 수행 등)을 수행할 수 있다. 다만, 이는 일 실시예에 불과하며, 프로세서(120)는 휘발성 메모리의 일반 영역 상에서도 각종 보안 작업을 수행 할 수 있음은 물론이다.
프로세서(120)는 메타 데이터 및 보안 키를 이용하여 보안 벡터를 획득할 수 있다. 구체적으로, 프로세서(120)는 메타 데이터를 이용하여 인공 신경망 전체에 포함된 복수의 레이어 중 암호화할 레이어의 개수, 암호화할 레이어 중 암호화할 영역 및 암호화할 영역의 뎁스(depth) 값을 식별할 수 있다. 그리고, 프로세서(120)는 메타 데이터로부터 식별된 데이터를 바탕으로 보안 벡터의 사이즈(또는, dimension)를 결정할 수 있다. 보안 벡터의 사이즈는 암호화할 레이어의 개수 * 암호화할 영역 * 암호화할 영역의 뎁스로 결정될수 있으나 이는 일 실시예에 불과하며 다양하게 변형할 수 있다.
그리고, 프로세서(120)는 보안 키를 이용하여 결정된 보안 벡터 사이즈에 대응되는 보안 벡터의 원소를 획득할 수 있다. 일 실시예로, 프로세서(120)는 결정된 보안 벡터 사이즈만큼 보안 키를 변형하고, 변형된 보안 키 각각을 보안 벡터 각각의 원소로 식별할 수 있다. 예를 들어, 보안 벡터 사이즈가 1 X 2인 경우, 보안 벡터에 입력(또는, 매핑)될 원소는 2개 이므로, 프로세서(120)는 보안 키를 기정의된 방식으로 변형하여 변형된 2개의 보안 키를 생성하고, 변형된 2개의 보안 키 각각을 보안 벡터의 원소로 식별하고 매핑할 수 있다. 기정의된 방식은 보안 키를 특정 매핑 함수를 적용하여 변형된 보안 키를 생성하는 방식, 보안 키와 생성된 난수를 결합하여 변형된 보안 키를 생성하는 방식 등을 포함할 수 있으나, 이는 일 실시예에 불과하며 사용자에 의해 추가/삭제/수정될 수 있다.
또 다른 실시예로, 프로세서(120)는 보안 키를 기초하여 난수(random number)를 발생하고, 발생한 난수 중 결정된 보안 벡터 사이즈만큼의 난수를 벡터의 각 원소로 식별할 수 있다. 다만, 이는 일 실시예에 불과하며, 프로세서(120)는 보안 키를 이용하여 다양한 방식으로 보안 벡터의 원소를 생성 및 획득하고, 생성 및 획득한 원소를 바탕으로 보안 벡터를 생성할 수 있다.
그리고, 프로세서(120)는 획득한 보안 벡터 및 메타 데이터를 보안 키 및 인공 신경망의 식별 정보와 매핑할 수 있다. 예를 들면, 프로세서(120)는 보안 키 및 인공 신경망의 식별 정보를 해시 함수를 이용하여 보안 벡터 및 메타 데이터와 매핑할 수 있다. 이 때, 보안 키 및 인공 신경망이 해시 키(key)가 될 수 있으며, 보안 벡터 및 메타 데이터?z 해시 값(hash value)가 될 수 있다. 즉, 프로세서(120)는 해시 테이블(hash table)의 형태로 보안 키와 인공 신경망의 식별 정보를 보안 벡터 및 메타 데이터와 매핑할 수 있다. 그리고, 프로세서(120)는 보안 키 및 인공 신경망의 식별 정보와 매핑된 보안 벡터 및 메타 데이터를 메모리(110)의 보안 영역(10-2) 또는 별개의 하드웨어 모듈 또는 소프트웨어 모듈로 구현된 보안 영역에 저장할 수 있다. 한편, 인공 신경망의 식별 정보는 특정 인공 신경망을 식별할 수 있는 각종 정보(예를 들어, 신경망 모델 번호, 신경망 유형 등)를 포함할 수 있다.
그리고, 프로세서(120)는 메타 데이터 및 보안 벡터를 이용하여 복수의 레이어 중 적어도 하나의 레이어에 대해 암호화를 수행할 수 있다. 본 개시를 설명함에 있어서 레이어를 암호화한다는 것은 레이어에 포함된 가중치 전체를 암호화하는 경우뿐만 아니라 레이어 일부에 포함된 가중치를 암호화한다는 경우를 포함할 수 있다. 그리고, 프로세서(120)는 암호화한 레이어가 포함된 인공 신경망을 메모리(110)에 저장할 수 있다.
구체적으로, 프로세서(120)는 메타 데이터를 통해 복수의 레이어 중 암호화를 수행할 레이어 또는 영역을 식별할 수 있다. 메타 데이터를 통해 복수의 레이어 중 제1 레이어를 암호화 하는 것으로 식별하면, 프로세서(120)는 제1 레이어에 위치한 가중치(weight)와 보안 벡터의 역수간에 곱 연산을 수행하여 제1 레이어를 암호화할 수 있다. 예를 들면, 프로세서(120)는 제1 레이어에 위치한 가중치와 보안 벡터의 역수 간에 요소 별(element-wise) 곱 연산을 수행할 수 있다. 한편, 프로세서(120)는 제1 레이어의 전체 영역에 위치한 가중치와 보안 벡터의 역수 간에 곱 연산을 수행하여 제1 레이어 전체를 암호화할 수 있으나 일부 영역만을 암호화할 수도 있다.
또 다른 실시예로, 프로세서(120)는 메타 데이터를 통해 복수의 레이어 중 암호화를 수행할 제1 레이어의 유형을 식별할 수 있다. 제1 레이어가 컨볼루션 레이어인 경우, 프로세서(120)는 제1 레이어의 제1 영역 전체에 포함된 가중치를 암호화할 수 있으나, 제1 영역 중 일부 영역에 포함된 가중치만을 암호화할 수 있다. 즉, 프로세서(120)는 일부 영역에 위치한 가중치와 보안 벡터의 역수와 곱 연산을 수행하여 제1 레이어 일부 영역을 암호화할 수 있다.
그리고, 암호화한 레이어가 포함된 인공 신경망에 데이터가 입력되면, 프로세서(120)는 보안 키 및 인공 신경망의 식별 정보를 이용하여 메타 데이터 및 보안 벡터를 로딩할 수 있다. 구체적으로, 암호화된 레이어가 포함된 인공 신경망에 데이터가 입력되면, 프로세서(120)는 인공 신경망의 식별 정보 및 보안 키를 휘발성 메모리의 보안 영역으로 로딩할 수 있다. 예를 들어, 프로세서(120)는 메모리(110) 중 일반 영역에 저장되어 있는 인공 신경망의 식별 정보와 메모리(110) 중 보안 영역에 저장되어 있는 보안 키를 휘발성 메모리 중 보안 영역 또는 별도의 하드웨어 모듈 또는 소프트웨어 모듈로 구현된 보안 영역에 로딩 로딩할 수 있다. 그리고, 프로세서(120)는 휘발성 메모리의 보안 영역 상에서 보안 키 및 상기 인공 신경망의 식별 정보에 해시 함수를 적용하여 메타 데이터 및 보안 벡터를 획득할 수 있다. 그리고, 프로세서(120)는 획득한 메타 데이터 및 보안 벡터를 휘발성 메모리의 일반 영역에 로딩할 수 있다.
그리고, 프로세서(120)는 보안 벡터 및 메타 데이터를 바탕으로 입력된 데이터와 암호화된 적어도 하나의 레이어간의 연산을 수행할 수 있다. 입력 데이터와 레이어간의 연산을 수행한다는 것은 입력 데이터와 레이어에 포함된 가중치 간의 곱 연산을 수행하는 경우를 포함할 수 있다. 해당 실시예는 도 1b를 참조하여 설명하도록 한다. 한편, 도 1b는 레이어가 전 결합 레이어(fully connected layer)인 경우, 프로세서(120)가 레이어와 입력 데이터 간의 연산을 수행하는 과정을 설명한 도면이다.
도 1b의 (a)에 도시된 바와 같이, 프로세서(120)는 메타 데이터를 이용하여 인공 신경망에 포함된 복수의 레이어 중 암호화된 레이어(40)를 식별할 수 있다. 그리고, 프로세서(120)는 암호화되었다고 식별된 레이어에 데이터가 입력되는지 여부를 모니터링할 수 있다. 암호화되었다고 식별된 레이어에 데이터가 입력되었다고 식별되면, 프로세서(120)는 암호화된 레이어(40)에 입력될 것으로 식별된 데이터(20)와 보안 벡터(30)간의 요소 별 곱 연산을 수행하여 제1 중간 데이터를 획득할 수 있다. 그리고, 프로세서(120)는 제1 중간 데이터와 암호화된 레이어(40)간에 곱 연산을 수행하여 제1 출력 데이터를 획득할 수 있다.
암호화된 적어도 하나의 레이어(40)는 기존의 레이어에 보안 벡터의 역수를 곱한 레이어이다. 따라서, 제1 출력 데이터는 입력 데이터(20)와 기존의 레이어에 포함된 가중치 간에 곱 연산을 수행하여 획득된 데이터와 동일하다. 이는 도 1b의 (a)에 도시된 수학식을 통해 이해될 수 있다. 프로세서(120)는 기존의 레이어(W)와 보안 벡터(S)의 역수 간에 곱 연산을 수행하여 암호화된 레이어(
Figure pat00001
)(40)를 획득할 수 있다. 그리고, 프로세서(120)는 입력 데이터(H)(20)와 보안 벡터(S)(30)간의 곱 연산을 수행하여 제1 중간 데이터
Figure pat00002
를 획득하고, 제1 중간 데이터와 암호화된 레이어(
Figure pat00003
)(40)간의 곱 연산을 수행하여 제1 출력 데이터(
Figure pat00004
)(50)를 획득할 수 있다.
즉, 프로세서(120)는 암호화된 레이어(40)를 복호화하지 않고 암호화된 상태에서 제1 중간 데이터와 간단한 곱 연산을 통해 제1 출력 데이터를 출력할 수 있다. 간단한 요소별 곱 연산을 수행하는 동작이 레이어를 복호화하는 동작보다 오버헤드가 적으므로, 본 개시의 따른 전자 장치(100)는 적은 오버헤드로 암호화된 레이어와 입력 데이터 간의 연산을 수행할 수 있다.
만약, 도 1b의 (b)에 도시된 바와 같이, 전자 장치(100)의 보안 키가 없어 보안 벡터를 로딩하지 못한 다른 단말 장치가 암호화된 적어도 하나의 레이어(40)에 데이터(20)를 입력할 경우, 제1 출력 데이터와는 다른 데이터(60)가 출력될 수 있다. 따라서, 프로세서(120)는 보안 키 및 인공 신경망 식별 정보를 보안 벡터 및 메타 데이터를 매핑함으로써 인공 신경망의 보안을 강화할 수 있다.
한편, 도 1c에 도시된 바와 같이, 암호화된 레이어(70)가 컨볼루션 레이어일 수 있다. 암호화된 레이어가 컨볼루션 레이어인 경우, 입력 데이터(75-1)의 양(또는, 사이즈)이 암호화된 레이어의 영역에 포함된 가중치의 양(또는, 사이즈)보다 클 수 있다. 따라서, 암호화된 레이어(70)가 컨볼루션 레이어인 경우, 프로세서(120)는 암호화된 레이어(70) 중 암호화된 영역(70-1, 70-3)과 보안 벡터(75-2) 간의 곱 연산을 수행하여 제2 중간 데이터를 획득할 수 있다. 이 때, 암호화된 영역(70-1, 70-3)은 기존의 영역과 보안 벡터의 역수 간의 곱 연산이 수행되었으므로, 제2 중간 데이터는 암호화된 레이어(70)가 암호화되기 이전의 레이어와 동일할 수 있다.
그리고, 프로세서(120)는 제2 중간 데이터에 포함된 가중치와 입력 데이터(75-1)간에 연산을 수행하여 제2 출력 데이터를 획득할 수 있다. 즉, 프로세서(120)는 암호화된 레이어를 복호화하지 않고 단순히 보안 벡터간의 곱 연산을 수행하여 제2 중간 데이터를 획득하고, 제2 중간 데이터와 입력 데이터 간에 간단한 곱 연산을 수행하여 제2 출력 데이터를 획득함으로써 오버헤드(overhead)를 줄일 수 있다.
만약, 전자 장치(100)의 보안 키가 없어 보안 벡터를 로딩하지 못한 다른 단말 장치가 일부 영역이 암호화된 레이어(70)에 데이터(75-1)를 입력할 경우, 제2 출력 데이터와는 다른 유효하지 않은 데이터가 출력될 수 있다. 따라서, 프로세서(120)는 보안 키 및 인공 신경망 식별 정보를 보안 벡터 및 메타 데이터를 매핑함으로써 인공 신경망의 보안을 강화할 수 있다.
한편, 사용자로부터 외부 장치가 인공 신경망에 대한 권한을 가지고 있다는 정보가 입력되면, 프로세서(120)는 인공 신경망을 이용하기 위한 정보를 를 외부 장치로 전송하도록 통신부(130)를 제어할 수 있다. 인공 신경망을 이용하기 위한 정보는 전자 장치(100)의 보안 키 및 보안 키와 인공 신경망의 식별 정보를 키로 이용하는 매핑 함수(예를 들어, 해시 함수)를 포함할 수 있다. 외부 장치는 수신된 인공 신경망을 이용하기 위한 정보를 이용하여 암호화된 인공 신경망을 활용할 수 있다. 이와 관련된 실시예는 도 5를 참조하여 구체적으로 설명하도록 한다.
한편, 본 개시에 따른 인공 신경망 등에 적용되는 인공지능과 관련된 기능은 프로세서(120)와 메모리(110)를 통해 동작된다. 하나 또는 복수의 프로세서는, 메모리에 저장된 기 정의된 동작 규칙 또는 인공지능 모델에 따라, 입력 데이터를 처리하도록 제어한다. 또는, 하나 또는 복수의 프로세서가 인공지능 전용 프로세서인 경우, 인공지능 전용 프로세서는, 특정 인공지능 모델의 처리에 특화된 하드웨어 구조로 설계될 수 있다.
기 정의된 동작 규칙 또는 인공지능 모델은 학습을 통해 만들어진 것을 특징으로 한다. 여기서, 학습을 통해 만들어진다는 것은, 기본 인공지능 모델이 학습 알고리즘에 의하여 다수의 학습 데이터들을 이용하여 학습됨으로써, 원하는 특성(또는, 목적)을 수행하도록 설정된 기 정의된 동작 규칙 또는 인공지능 모델이 만들어짐을 의미한다. 이러한 학습은 본 개시에 따른 인공지능이 수행되는 기기 자체에서 이루어질 수도 있고, 별도의 서버 및/또는 시스템을 통해 이루어 질 수도 있다. 학습 알고리즘의 예로는, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)이 있으나, 전술한 예에 한정되지 않는다.
도 1d는 본 개시의 일 실시예에 따른, 전자 장치(100)에 포함된 복수의 소프트웨어 모듈의 동작을 설명하기 위한 도면이다. 상술한 바와 같이, 전자 장치(100)의 메모리(110)는 학습 모듈(80) 및 추론 모듈(90)을 저장할 수 있다. 그리고, 각 모듈의 동작은 프로세서(120)에 의해 제어될 수 있다. 학습 모듈(80)은 인공 신경망에 포함된 복수의 레이어를 암호화하고, 암호화한 레이어를 보안 키와 매핑하는 모듈을 의미할 수 있으며, 보안 벡터 모듈(80-1), 매핑 모듈(80-2) 및 암호화 모듈(80-3)을 포함할 수 있다. 추론 모듈(90)은 암호화된 인공 신경망에 입력된 데이터와 관련하여 각종 로딩 및 연산을 수행하는 모듈을 의미할 수 있으며, 로딩 모듈(90-1) 및 연산 실행 모듈(90-2)를 포함할 수 있다.
메타 데이터 및 보안 키가 입력되면, 학습 모듈(80)은 각종 동작을 수행하여 암호화된 인공 신경망을 출력할 수 있다. 구체적으로, 메타 데이터 및 보안 키가 입력되면, 학습 모듈(80)의 보안 벡터 생성 모듈(80-1)은 입력된 메타 데이터 및 보안 키를 이용하여 보안 벡터를 생성할 수 있다. 구체적으로, 보안 벡터 생성 모듈(80-1)은 메타 데이터를 이용하여 복수의 레이어 중 암호화할 레이어에 대한 정보를 식별하고, 식별된 정보를 바탕으로 보안 벡터의 사이즈를 결정할 수 있다. 그리고, 보안 벡터 생성 모듈(80-1)은 보안 키를 기정의된 방식으로 결정된 보안 벡터의 사이즈만큼 변형하고, 변형된 보안 키를 매핑하여 보안 벡터를 생성할 수 있다.
그리고, 학습 모듈(80)의 매핑 모듈(80-2)은 보안 키 및 인공 신경망의 식별 정보를 보안 벡터 및 메타 데이터와 매핑할 수 있다. 구체적으로, 매핑 모듈(80-2)은 보안 키 및 인공 신경망의 식별 정보를 보안 벡터 및 메타 데이터를 해시 함수를 이용하여 매핑할 수 있다. 그리고, 매핑 모듈은 매핑된 보안 벡터 및 메타 데이터를 보안 영역에 저장할 수 있다.
그리고, 학습 모듈(80)의 암호화 모듈(80-3)은 메타 데이터 및 보안 벡터를 이용하여 인공 신경망에 포함된 복수의 레이어 중 적어도 하나의 레이어에 대해 암호화를 수행할 수 있다. 구체적으로, 암호화 모듈(80-3)은 메타 데이터를 이용하여 복수의 레이어 중 암호화할 일부 또는 전체 영역을 식별할 수 있다. 그리고, 암호화 모듈(80-3)은 식별된 일부 또는 전체 영역에 포함된 가중치와 보안 벡터의 역수 간에 곱 연산을 수행하여 일부 또는 전체 영역에 대해 암호화를 수행할 수 있다. 따라서, 암호화 모듈(80-3)은 일부 또는 전체 영역이 암호화된 인공 신경망을 출력할 수 있다.
한편, 데이터가 암호화된 인공 신경망에 입력되면, 추론 모듈(90)은 입력 데이터에 대응되는 출력 데이터를 출력할 수 있다. 구체적으로, 데이터가 암호화된 인공 신경망에 입력되면, 추론 모듈(90)의 로딩 모듈(90-1)은 보안 키 및 인공 신경망의 식별 정보를 이용하여 메타 데이터 및 보안 벡터를 로딩할 수 있다. 예를 들어, 로딩 모듈(90-1)은 인공 신경망의 식별 정보를 보안 키 및 해시 함수가 저장되어 있는 보안 영역에 로딩할 수 있다. 그리고, 로딩 모듈(90-1)은 보안 영역 상에서 로딩된 인공 신경망의 식별 정보 및 보안 키에 해시 함수를 적용하여 메타 데이터 및 보안 벡터를 로딩할 수 있다.
그리고, 추론 모듈(90)의 연산 실행 모듈(90-2)은 로딩된 보안 벡터 및 메타 데이터를 바탕으로 입력된 데이터와 암호화된 적어도 하나의 레이어 간의 연산을 수행하여 출력 데이터를 출력할 수 있다. 구체적으로, 연산 실행 모듈(90-2)은 메타 데이터를 통해 복수의 레이어 중 암호화된 영역을 식별할 수 있다. 그리고, 연산 실행 모듈(90-2)는 식별된 암호화된 영역에 입력될 데이터와 보안 벡터 간에 곱 연산을 수행하여 제1 중간 데이터를 획득할 수 있다. 그리고, 연산 실행 모듈(90-2)는 제1 중간 데이터와 암호화된 적어도 하나의 레이어에 포함된 가중치 간에 곱 연산을 수행하여 제1 출력 데이터를 획득할 수 있다.
도 1e는 본 개시의 일 실시예에 따른, 전자 장치(100)의 구성을 상세히 도시한 블록도이다. 도 1e에 도시된 바와 같이, 전자 장치(100)는 메모리(110), 프로세서(120), 통신부(130), 디스플레이(140), 입력부(150), 스피커(160) 및 마이크(170)를 포함할 수 있다. 한편, 메모리(110) 및 프로세서(120)는 도 1a 내지 도 1c를 참조하여 구체적으로 설명하였으므로 중복되는 설명은 생략하도록 한다.
통신부(130)는 회로를 포함하며, 서버(미도시) 또는 외부 장치(미도시)와의 통신을 수행할 수 있다. 구체적으로, 프로세서(120)는 통신부(130)를 통해 연결된 서버(미도시) 또는 외부 장치(미도시)로부터 각종 데이터 또는 정보를 수신 및 전송할 수 있다. 특히, 통신부(130)는 외부 서버 또는 외부 장치로부터 입력 데이터를 수신할 수 있으며, 전자 장치(100)에 할당된 보안 키와 관련된 정보를 수신할 수 있다.
그리고, 통신부(130)는 외부 장치 또는 서버와 통신을 수행하기 위해 다양한 통신 모듈을 포함할 수 있다. 일 예로, 통신부(130)는 무선 통신 모듈을 포함할 수 있으며, 예를 들면, LTE, LTE-A(LTE Advance), CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), WiBro(Wireless Broadband), 5G(5th generation) 또는 GSM(Global System for Mobile Communications) 등 중 적어도 하나를 사용하는 셀룰러 통신 모듈을 포함할 수 있다. 또 다른 예로, 무선 통신 모듈은, 예를 들면, WiFi(wireless fidelity), 블루투스, 블루투스 저전력(BLE), 중 적어도 하나를 포함할 수 있다.
디스플레이(140)는 LCD(Liquid Crystal Display Panel), OLED(Organic Light Emitting Diodes) 등으로 구현될 수 있으며, 경우에 따라 플렉서블 디스플레이, 투명 디스플레이 등으로 구현되는 것도 가능하다. 그리고, 디스플레이(140)는 터치 패널과 함께 터치 스크린으로도 구현될 수 있다. 그러나 상술한 구현으로 한정되는 것은 아니며, 디스플레이(140)는 전자 장치(100)의 유형에 따라 다르게 구현될 수 있다.
그리고, 디스플레이(140)는 프로세서(120) 제어에 의해 다양한 정보를 표시할 수 있다. 특히, 디스플레이(140)는 암호화가 수행되었다거나 보안 벡터 및 메타 데이터가 로딩되었다는 인디케이터를 표시할 수 있다. 또한, 디스플레이(140)는 입력부(150)를 통해 입력된 입력 데이터 및 인공 신경망에서 출력된 출력 데이터를 표시할 수 있다.
입력부(150)는 회로를 포함하며, 프로세서(120)는 입력부(150)를 통해 전자 장치(100)의 동작을 제어하기 위한 사용자 명령 또는 각종 데이터를 수신할 수 있다. 입력부(150)는 터치 센서, (디지털) 펜 센서, 압력 센서, 키 등을 포함할 수 있다. 터치 센서는, 예를 들면, 정전식, 감압식, 적외선 방식, 또는 초음파 방식 중 적어도 하나의 방식을 사용할 수 있다.
일 실시예로, 입력부(150)는 사용자로부터 메타 데이터를 입력받을 수 있다. 또한, 입력부(150)는 인공 신경망에 입력할 수 있는 다양한 종류의 입력 데이터를 입력받을 수 있다. 입력 데이터는 음성, 텍스트, 영상 데이터 등을 포함할 수 있으나 전술한 예에 한정되는 것은 아니다.
스피커(160)는 오디오 처리부(미도시)에 의해 디코딩이나 증폭, 노이즈 필터링과 같은 다양한 처리 작업이 수행된 각종 오디오 데이터뿐만 아니라 각종 알림 음이나 음성 메시지를 출력하는 구성이다. 특히, 스피커(160)는 프로세서(120) 제어에 인공 신경망이 성공적으로 암호화되었다는 알림음 또는 암호화된 인공 신경망에서 출력된 음성으로 이루어진 출력 데이터를 출력할 수 있다.
마이크(170)는 사용자로부터 음성을 입력받을 수 있는 구성이다. 즉 마이크(170)는 사용자로부터 입력된 음성으로 이루어진 명령을 입력받을 수 있으며, 입력된 명령을 프로세서(120)에 전송할 수 있다. 뿐만 아니라, 마이크(170)는 인공 신경망에 입력하기 위한 입력 데이터로서 음성 데이터를 입력받을 수 있다. 한편, 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다.
마이크(170)는 전자 장치(100) 내부에 구비될 수 있으나, 외부에 구비되어 전자 장치(100)와 전기적으로 연결될 수 있다. 또한, 마이크(110)가 외부에 구비된 경우, 마이크(170)는 유/무선 인터페이스(예를 들어, Wi-Fi, 블루투스)을 통해 생성된 사용자 음성 신호를 프로세서(120)에 전송할 수 있다.
도 2는 본 개시의 일 실시예에 따른, 전자 장치(100)가 보안 키 및 메타 데이터를 이용하여 인공 신경망에 대해 암호화를 수행하고, 보안 벡터 및 메타 데이터를 보안 키 및 인공 신경망의 식별 정보와 매핑하는 동작을 설명하기 위한 도면이다.
우선, 전자 장치(100)는 메타 데이터를 이용하여 인공 신경망에 포함된 복수의 레이어 중 암호화할 레이어의 개수, 암호화할 레이어 중 암호화할 영역, 암호화할 영역의 뎁스 값을 식별할 수 있다(S210). 암호화할 영역의 뎁스 값은 암호화할 영역의 깊이 방향의 파라미터 값일 수 있다. 메타 데이터는 인공 신경망에 포함된 복수의 레이어 중 암호화할 레이어에 대한 정보를 포함할 수 있다. 따라서, 전자 장치(100)는 보안 벡터를 생성하기 위하여 메타 데이터를 통해 암호화할 레이어에 대한 다양한 정보를 식별할 수 있다.
한편, 일 실시예로, 전자 장치(100)는 사용자 또는 외부 장치로부터 메타 데이터를 수신할 수 있다. 또 다른 실시예로, 전자 장치(100)는 인공 신경망에 포함된 복수의 레이어 중 적어도 하나의 레이어를 암호화할 것으로 결정하고, 암호화할 적어도 하나의 레이어에 대한 정보가 포함된 메타 데이터를 생성할 수 있다.
한편, 전자 장치(100)는 복수의 레이어 중 암호화할 적어도 하나의 레이어를 기정의된 기준에 따라 결정할 수 있다. 예를 들어, 전자 장치(100)는 임의로 암호화할 레이어를 결정할 수 있다. 또 다른 예로, 전자 장치(100)는 각 레이어에 데이터 처리량에 대응되도록 가중치를 부여하고, 가중치 값이 높은 레이어 중 적어도 하나의 레이어에 대해 암호화를 수행하는 것으로 결정할 수 있다. 다만, 이는 일 실시예에 불과하며 전자 장치(100)는 다양한 기정의된 기준에 따라 암호화할 레이어를 결정할 수 있으며, 사용자 명령에 의해 기정의된 기준은 추가/수정/삭제 될 수 있다.
그리고, 전자 장치(100)는 메타 데이터를 통해 식별된 데이터를 바탕으로 보안 벡터의 사이즈(또는, dimension)를 결정할 수 있다(S220). 일 실시예로, 전자 장치(100)는 보안 벡터의 사이즈를 암호화할 레이어의 개수 * 암호화할 영역 * 암호화할 영역의 뎁스 값(또는, 암호화할 영역의 뎁스 방향의 파라미터 값)로 결정할 수 있으나, 이는 일 실시예에 불과하며 다양한 방식으로 사이즈를 결정할 수 있다.
그리고, 전자 장치(100)는 메타 데이터 및 보안 키를 이용하여 결정된 사이즈를 가지는 보안 벡터를 획득할 수 있다(S230). 즉, 구체적으로, 전자 장치(100)는 결정된 보안 벡터의 사이즈만큼 보안 키를 변형하여 보안 벡터에 매핑시킬 원소를 결정할 수 있다. 예를 들면, 결정된 보안 벡터의 사이즈가 1 X 4인 경우, 보안 벡터의 원소는 총 4개이다. 따라서, 전자 장치(100)는 보안 키를 기정의된 방식으로 변형하여 보안 벡터에 매핑할 4개의 데이터를 획득할 수 있다. 그리고, 전자 장치(100)는 보안 키를 변형하여 획득된 4개의 데이터를 보안 벡터에 매핑함으로써 보안 벡터를 획득할 수 있다.
다만, 이는 일 실시예에 불과하며, 전자 장치(100)는 난수 발생기를 이용하여 보안 벡터에 매핑할 원소 데이터를 획득할 수 있다. 예를 들면, 결정된 보안 벡터의 사이즈가 1 X 4인 경우, 전자 장치(100)는 난수 발생기를 이용하여 4개의 난수를 획득할 수 있다. 그리고, 전자 장치(100)는 획득한 4개의 난수를 보안 벡터에 매핑함으로써 보안 벡터를 획득할 수 있다.
그리고, 전자 장치(100)는 보안 벡터 및 메타 데이터를 보안 키 및 인공 신경망의 식별 정보와 매핑할 수 있다(S240). 구체적으로, 전자 장치(100)는 보안 키 및 인공 신경망의 식별 정보를 해시 함수를 이용하여 보안 벡터 및 메타 데이터를 매핑할 수 있다. 보안 키 및 인공 신경망의 식별 정보가 해시 함수에서 키(key) 값이며, 해시 값(hash value)이 보안 벡터 및 메타 데이터일 수 있다. 즉, 전자 장치(100)의 보안 키 및 인공 신경망의 식별 정보가 없으면 보안 키 및 인공 신경망에 매핑된 보안 벡터 및 메타 데이터를 로딩할 수 없을 수 있다. 따라서, 보안 키가 없는 다른 전자 장치의 경우, 매핑된 보안 벡터 및 인공 신경망을 로딩할 수 없다. 그리고, 전자 장치(100)는 보안 키, 해시 함수를 이용하여 매핑된 보안 벡터 및 메타 데이터를 전자 장치(100) 상의 메모리(110) 또는 프로세서(120) 중 보안 영역에 저장할 수 있다. 이 때, 보안 영역은 전술한 바와 같이 메모리(110) 또는 프로세서(120)의 일 구성 요소로 구현될 수 있을뿐만 아니라 별개의 하드웨어/소프트웨어 모듈로 구현될 수 있다.
다만, 이는 일 실시예에 불과하며, 전자 장치(100)는 해시 함수뿐만 아니라 다양한 매핑 방식으로 보안 키 및 인공 신경망의 식별 정보를 보안 벡터 및 메타 데이터에 매핑할 수 있다.
그리고, 전자 장치(100)는 메타 데이터 및 보안 벡터를 이용하여 복수의 레이어 중 적어도 하나의 레이어에 대해 암호화를 수행할 수 있다(S250). 그리고, 전자 장치(100)는 암호화된 인공 신경망을 저장할 수 있다. 전자 장치(100)가 레이어에 대해 암호화를 수행한다는 것은 레이어에 포함된 전체 가중치 또는 가중치의 일부에 대해 암호화를 수행한다는 것을 의미할 수 있다.
구체적으로, 전자 장치(100)는 메타 데이터를 통해 인공 신경망에 포함된 복수의 레이어 중 암호화할 영역을 식별할 수 있다. 예를 들어, 복수의 레이어 중 제1 레이어 내의 제1 영역을 암호화하는 것으로 식별되면, 전자 장치(100)는 제1 레이어 내의 제1 영역에 포함된 가중치와 보안 벡터의 역수 간에 요소 별 곱 연산을 수행하여 제1 레이어 내의 제1 영역을 암호화할 수 있다. 이 때, 제1 영역은 제1 레이어의 전체 영역을 의미할 수 있으나, 사용자 명령에 의해 영역의 범위는 변경될 수 있다.
한편, 전자 장치(100)는 메타 데이터를 통해 복수의 레이어 중 암호화할 레이어의 유형을 식별할 수 있다. 메타 데이터를 통해 암호화할 것으로 식별된 적어도 하나의 레이어가 컨볼루션 레이어인 경우, 전자 장치(100)는 제1 영역의 일부인 제2 영역에 포함된 가중치와 보안 벡터의 역수간에 곱 연산을 수행하여 제1 레이어의 제2 영역을 암호화할 수 있다. 도 1c를 참조할 때, 전자 장치(100)는 컨볼루션 레이어인 제1 레이어(90) 중 일부 영역인 제2 영역(90-1, 90-3)에 포함된 가중치와 보안 벡터의 역수 간에 곱 연산을 수행하여 제1 레이어의 제2 영역을 암호화할 수 있다.
도 3은 본 개시의 일 실시예에 따른, 전자 장치(100)가 암호화된 인공 신경망과 관련된 연산을 수행하는 과정을 설명하기 위한 순서도이다.
우선, 전자 장치(100)는 사용자 또는 외부 장치로부터 입력된 데이터를 인공 신경망에 입력할 수 있다(S310). 인공 신경망에 입력되는 데이터는 음성 데이터, 텍스트 데이터 및 이미지 또는 영상 데이터 등일 수 있으나 이에 한정되지 않는다.
전자 장치(100)는 보안 키 및 인공 신경망의 식별 정보를 이용하여 메타 데이터 및 보안 벡터를 로딩할 수 있다(S320). 구체적으로, 전자 장치(100)는 메모리(110)에 저장된 인공 신경망의 식별 정보 및 메모리(110) 또는 프로세서(120)의 보안 영역에 저장되어 있는 보안 키를 휘발성 메모리 중 보안 영역에 로딩할 수 있다. 그리고, 전자 장치(100)는 휘발성 메모리의 보안 영역 상에서 보안 키 및 인공 신경망의 식별 정보에 해시 함수를 적용하여 매핑된 메타 데이터 및 보안 벡터를 획득할 수 있다.
그리고, 전자 장치(100)는 로딩된 보안 벡터 및 메타 데이터를 바탕으로 인공 신경망에 입력된 데이터와 암호화된 적어도 하나의 레이어간의 연산을 수행할 수 있다(S330). 구체적으로, 전자 장치(100)는 메타 데이터를 통해 복수의 레이어 중 암호화된 레이어를 식별할 수 있다.
그리고, 전자 장치(100)는 암호화되었다고 식별된 레이어에 데이터가 입력되는지 여부를 모니터링할 수 있다. 암호화되었다고 식별된 레이어에 데이터가 입력되었다고 식별되면, 전자 장치(100)는 암호화되었다고 식별된 레이어에 입력된 데이터와 보안 벡터 간에 요소 별 곱 연산을 수행하여 제1 중간 데이터를 획득할 수 있다. 그리고, 전자 장치(100)는 제1 중간 데이터와 암호화된 적어도 하나의 레이어에 포함된 가중치 간에 요소 별 곱 연산을 수행하여 제1 중간 데이터를 획득할 수 있다. 암호화된 적어도 하나의 레이어는 기존의 레이어와 보안 벡터의 역수 간이 곱 연산이 수행되어 암호화되었다. 따라서, 제1 중간 데이터와 암호화된 적어도 하나의 레이어간의 곱 연산을 수행하여 획득된 제1 출력 데이터는 입력 데이터와 기존의 레이어 간의 곱 연산을 수행하여 획득된 데이터와 동일하다.
한편, 암호화된 레이어가 컨볼루션 레이어인 경우, 입력 데이터의 크기가 레이어에 포함된 가중치의 크기보다 클 수 있다. 따라서, 전자 장치(100)는 암호화된 레이어와 입력 데이터 간의 곱 연산을 다른 방식으로 수행할 수 있다. 구체적으로, 컨볼루션 레이어 중 제2 영역이 암호화된 경우, 전자 장치(100)는 보안 벡터와 제2 영역에 위치한 가중치간에 요소 별 곱 연산을 수행하여 제2 중간 데이터를 획득할 수 있다. 그리고, 전자 장치(100)는 제2 중간 데이터와 입력 데이터 간에 요소 별 곱 연산을 수행하여 제2 출력 데이터를 획득할 수 있다. 제2 영역은 보안 벡터의 역수와 곱 연산이 수행된 영역이므로, 제2 중간 데이터는 기존의 레이어와 동일한 레이어일 수 있다. 따라서, 제2 중간 데이터와 입력 데이터 간의 요소 별 곱 연산을 수행하면 기존의 레이어와 입력 데이터 간의 요소 별 곱 연산을 수행한 결과와 동일하다.
도 4는 본 개시의 일 실시예에 따른, 전자 장치(100)와 외부 장치간의 동작을 설명하기 위한 시퀀스도이다.
외부 장치(200)는 암호화된 인공 신경망을 외부 장치(200)의 휘발성 메모리 또는 각종 동작을 처리할 수 있는 하드웨어 또는 소프트웨어 모듈 상에 로딩할 수 있다(S410). 이 때, 암호화된 인공 신경망은 전자 장치(100)가 전자 장치(100)의 보안 키를 바탕으로 암호화한 인공 신경망이다. 따라서, 일 실시예로, 외부 장치(200)는 전자 장치(100)로부터 암호화된 인공 신경망을 수신하였을 수 있다. 또 다른 예로, 전자 장치(100)가 암호화된 인공 신경망을 특정 저장 영역(예를 들어, 웹 클라우드 서버, 포탈 사이트 서버 등)에 업로드 한 경우, 외부 장치(100)는 특정 저장 영역에서 암호화된 인공 신경망을 다운로드 할 수 있다.
외부 장치(200)는 암호화된 인공 신경망을 이용하기 위한 정보를 요청하는 신호를 전자 장치(100)에 전송할 수 있다(S420). 즉, 외부 장치(200)는 암호화된 인공 신경망을 이용하여 유효한 데이터를 출력하기 위하여 인공 신경망을 이용하기 위한 정보를 전자 장치(100)에 요청할 수 있다. 이 때, 외부 장치(200)가 전자 장치(100)에게 전송하는 요청 신호에는 외부 장치(200)를 식별할 수 있는 식별 정보(예를 들어, 외부 장치(200)의 모델 명, 모델 번호, 사용자에 대한 정보 등) 등이 포함될 수 있다.
인공 신경망을 이용하기 위한 정보를 요청하는 신호를 외부 장치(200)로부터 수신하면, 전자 장치(100)는 외부 장치(200)가 인공 신경망에 대한 권한이 존재하는지 여부를 식별할 수 있다(S430). 구체적으로, 전자 장치(100)는 외부 장치(200)로부터 수신된 요청 신호에 포함된 외부 장치(200)의 식별 정보를 바탕으로 외부 장치(200)가 인공 신경망에 대한 권한이 존재하는지 여부를 식별할 수 있다. 예를 들어, 전자 장치(100)는 수신된 요청 신호에 포함된 식별 정보를 통해 요청 신호를 전송한 것이 외부 장치(200)임을 식별할 수 있다. 그리고, 전자 장치(100)는 사용자가 외부 장치(200)를 인공 신경망에 접근할 수 있는 장치라고 설정했는지 여부를 식별할 수 있다. 이 때, 전자 장치(100)는 인공 신경망에 접근할 수 있는 외부 장치의 유형에 대한 정보를 저장하고 있을 수 있다. 인공 신경망에 접근할 수 있는 외부 장치의 유형에 대한 정보는
그리고, 전자 장치(100)는 식별 결과를 바탕으로 인공 신경망을 이용하기 위한 정보를 전송할 수 있다(S440). 즉, 사용자가 외부 장치(200)는 인공 신경망에 접근할 수 있는 장치로 설정하였을 경우, 전자 장치(100)는 외부 장치(200)에 인공 신경망에 대한 권한이 존재한 것으로 식별할 수 있다. 이 때, 인공 신경망을 이용하기 위한 정보는 전자 장치(100)의 보안 키 및 보안 키와 인공 신경망의 식별 정보를 키로 이용하는 매핑 함수(예를 들어, 해시 함수 등)를 포함할 수 있다. 이 때, 매핑 함수는 보안 키와 인공 신경망의 식별 정보를 키로서 입력되면 보안 벡터 및 메타 데이터를 출력하는 함수일 수 있다.
외부 장치(200)는 전자 장치(100)로부터 수신된 정보를 바탕으로 인공 신경망을 추론할 수 있다(S450). 여기서, 인공 신경망을 추론한다는 것은 인공 신경망에 데이터를 입력하여 출력 데이터를 획득하는 등 인공 신경망을 활용한다는 것을 포함할 수 있다. 구체적으로, 외부 장치(200)는 전자 장치(100)의 보안 키 및 인공 신경망의 식별 정보를 매핑 함수에 적용하여 보안 벡터 및 메타 데이터를 로딩할 수 있다. 그리고, 외부 장치(200)는 로딩된 보안 벡터 및 메타 데이터를 이용하여 입력 데이터와 암호화된 인공 신경망간의 연산을 수행할 수 있다. 외부 장치(200)가 입력 데이터와 인공 신경망간의 연산을 수행하는 과정은 도 1a 및 도 3을 참조하여 설명한 전자 장치(100)가 입력 데이터와 인공 신경망 간의 연산을 수행하는 과정과 동일할 수 있으므로 중복되는 설명은 생략하도록 한다.
도 5는 본 개시의 일 실시예에 따른, 전자 장치(100)와 서버(300)간의 동작을 설명하기 위한 시퀀스도이다. 이 때, 서버(300)는 전자 장치(100)를 관리하고 각종 데이터를 제공할 수 있는 서버, 전자 장치(100)의 제조사의 서버 또는 전자 장치(100)에게 서비스를 제공할 수 있는 서버 중 적어도 하나를 포함할 수 있다.
서버(300)는 입력 데이터에 다양한 인공 지능 알고리즘을 적용하여 출력 데이터를 출력하는 인공 신경망을 생성할 수 있다(S510). 구체적으로, 서버(300)는 사용자가 입력한 명령어 등을 이용하여 인공 신경망을 생성할 수 있으며, 외부 장치 등으로부터 인공 신경망을 수신할 수도 있다.
그리고, 서버(300)는 전자 장치(100)에 대한 식별 정보를 요청하는 신호를 전자 장치(100)에 전송할 수 있다(S520). 이 때, 전자 장치(100)에 대한 식별 정보는 전자 장치(100)를 식별할 수 있는 정보를 의미할 수 있으며, 식별 정보의 예로 고유의 하드웨어 키, 모델 번호, 시리얼 번호, 및 IMEI 번호(International Mobile Equipment Identity) 등을 포함할 수 있으나 이에 한정되지 않는다.
서버(300)로부터 식별 정보를 요청하는 신호를 수신하면, 전자 장치(100)는 전자 장치(100)의 식별 정보를 서버(300)에 전송할 수 있다(S530). 서버(300)는 전자 장치(100)로부터 수신된 식별 정보를 바탕으로 인공 신경망에 대응되는 전자 장치(100)의 보안 키를 생성할 수 있다(S540). 구체적으로, 서버(300)는 전자 장치(100)의 식별 정보를 암호화 모듈을 통하여 인공 신경망을 암호화할 수 있는 보안 키를 생성할 수 있다.
그리고, 서버(300)는 인공 신경망 및 인공 신경망에 대응되는 전자 장치(100)의 보안 키를 전자 장치(100)에 전송할 수 있다(S550). 그리고, 전자 장치(100)는 수신된 보안 키를 바탕으로 인공 신경망을 암호화 할 수 있다(S560). 전자 장치(100)가 보안 키를 바탕으로 인공 신경망을 암호화하는 방식은 전술하였으므로 중복되는 실시예는 생략하도록 한다.
도 6은 본 개시의 일 실시예에 따른, 전자 장치(100)의 제어 방법을 설명하기 위한 순서도이다.
전자 장치(100)는 메타 데이터 및 전자 장치(100)의 보안 키를 이용하여 보안 벡터를 획득할 수 있다(S610). 구체적으로, 전자 장치(100)는 메타 데이터를 이용하여 보안 벡터의 사이즈를 결정할 수 있다. 그리고, 전자 장치(100)는 보안 키를 이용하여 보안 벡터에 입력할 원소 데이터를 획득하고, 획득된 원소 데이터 중 결정된 벡터의 사이즈만큼의 데이터를 식별하여 보안 벡터를 획득할 수 있다.
그리고, 전자 장치(100)는 획득된 보안 벡터 및 메타 데이터를 보안 키 및 인공 신경망의 식별 정보와 매핑할 수 있다(S620). 일 실시예로, 전자 장치(100)는 보안 키 및 인공 신경망의 식별 정보를 해시 함수를 이용하여 보안 벡터 및 메타 데이터와 매핑할 수 있다. 보안 키 및 해시 함수는 전자 장치(100)의 보안 영역에 저장될 수 있다.
그리고, 전자 장치(100)는 메타 데이터 및 보안 벡터를 이용하여 인공 신경망에 포함된 복수의 레이어 중 적어도 하나의 레이어에 대해 암호화를 수행할 수 있다. 구체적으로, 전자 장치(100)는 메타 데이터를 통해 인공 신경망에 포함된 복수의 레이어 중 암호화를 할 레이어를 식별할 수 있다. 그리고, 전자 장치(100)는 식별된 레이어에 포함된 가중치와 보안 벡터의 역수 간의 곱 연산을 수행하여 식별된 레이어를 암호화할 수 있다.
한편, 인공 신경망에 데이터가 입력되면, 전자 장치(100)는 보안 키 및 인공 신경망의 식별 정보를 이용하여 메타 데이터 및 보안 벡터를 로딩할 수 있다. 일 실시예로, 전자 장치(100)는 인공 신경망의 식별 정보 및 보안 키에 해시 함수를 적용하여 매핑되어 있던 보안 벡터 및 메타 데이터를 로딩할 수 있다.
그리고, 전자 장치(100)는 로딩된 보안 벡터 및 메타 데이터를 바탕으로 입력된 데이터와 암호화된 적어도 하나의 레이어 간의 연산을 수행할 수 있다(S650). 일 실시예로, 전자 장치(100)는 메타 데이터를 통해 복수의 레이어 중 암호화된 적어도 하나의 레이어를 식별할 수 있다. 그리고, 전자 장치(100)는 암호화되었다고 식별된 적어도 하나의 레이어에 데이터가 입력되는지 여부를 모니터링할 수 있다. 암호화되었다고 식별된 적어도 하나의 레이어에 데이터가 입력되었다고 식별되면, 전자 장치(100)는 암호화되었다고 식별된 적어도 하나의 레이어와 보안 벡터 간에 곱 연산을 수행하여 제1 중간 데이터를 획득할 수 있다. 그리고, 전자 장치(100)는 획득된 제1 중간 데이터와 암호화된 적어도 하나의 레이어에 포함된 가중치간에 곱 연산을 수행하여 제1 출력 데이터를 획득할 수 있다.
또 다른 실시예로, 암호화된 적어도 하나의 레이어가 컨볼루션 레이어인 경우, 전자 장치(100)는 암호화된 영역에 위치한 가중치와 보안 벡터 간의 곱 연산을 수행하여 제2 중간 데이터를 획득할 수 있다. 그리고, 전자 장치(100)는 제2 중간 데이터와 암호화된 레이어에 입력된 데이터 간에 곱 연산을 출력하여 제2 출력 데이터를 획득할 수 있다.
한편, 본 개시에 첨부된 도면은 본 개시에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 실시예의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
본 개시에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
본 개시에서, "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상"등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.
본 개시에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제 3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.
본 개시에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도록 변경된(adapted to)," "~하도록 만들어진(made to)," 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 부프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
본 개시의 다양한 실시 예들에 따른 전자 장치(100) 및 외부 장치는, 예를 들면, 스마트폰, 태블릿 PC, 데스크탑 PC, 랩탑 PC, 넷북 컴퓨터, 서버, PDA, 의료기기, 또는 웨어러블 장치 중 적어도 하나를 포함할 수 있다. 어떤 실시 예들에서, 전자 장치는, 예를 들면, 텔레비전, 냉장고, 에어컨, 공기 청정기, 셋톱 박스, 미디어 박스(예: 삼성 HomeSyncTM, 애플TVTM, 또는 구글 TVTM) 중 적어도 하나를 포함할 수 있다.
본 개시의 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치(예: 전자 장치(100))를 포함할 수 있다. 상기 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 상기 프로세서의 제어하에 다른 구성요소들을 이용하여 상기 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적은 저장매체'는 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다. 예로, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.
일 실시 예에 따르면, 본 개시에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예로, 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
110: 메모리 120: 프로세서

Claims (20)

  1. 전자 장치에 있어서,
    인공 신경망(Neural Network) 및 상기 인공 신경망에 포함된 복수의 레이어 중 암호화할 적어도 하나의 레이어와 관련된 메타 데이터를 저장하는 메모리; 및
    상기 메타 데이터 및 상기 전자 장치의 보안 키(security key)를 이용하여 보안 벡터(secure vector)를 획득하고,
    상기 획득된 보안 벡터 및 상기 메타 데이터를 상기 보안 키(security key) 및 상기 인공 신경망의 식별 정보와 매핑(mapping)하고,
    상기 메타 데이터 및 상기 보안 벡터를 이용하여 상기 복수의 레이어 중 상기 적어도 하나의 레이어에 대해 암호화를 수행하고,
    상기 인공 신경망에 데이터가 입력되면, 상기 보안 키 및 상기 인공 신경망의 식별 정보를 이용하여 상기 메타 데이터 및 상기 보안 벡터를 로딩하고,
    상기 로딩된 보안 벡터 및 상기 메타 데이터를 바탕으로 상기 입력된 데이터와 상기 암호화된 적어도 하나의 레이어간의 연산을 수행하는 프로세서;를 포함하는 전자 장치.
  2. 제1항에 있어서,
    상기 프로세서는,
    상기 메타 데이터를 이용하여 상기 복수의 레이어 중 암호화할 레이어의 개수, 상기 암호화할 레이어 중 암호화할 영역 및 상기 영역의 뎁스(depth) 값을 식별하고,
    상기 식별된 데이터를 바탕으로 상기 보안 벡터의 사이즈를 결정하는 전자 장치.
  3. 제2항에 있어서,
    상기 프로세서는,
    상기 보안 키를 이용하여 상기 보안 벡터의 사이즈에 대응되는 상기 보안 벡터의 원소를 획득하고,
    상기 획득한 보안 벡터의 원소를 이용하여 상기 보안 벡터를 획득하는 전자 장치.
  4. 제1항에 있어서,
    상기 프로세서는,
    상기 보안 키 및 상기 인공 신경망의 식별 정보를 해시 함수(hash function)을 이용하여 상기 보안 벡터 및 상기 메타 데이터와 매핑하는 전자 장치.
  5. 제4항에 있어서,
    상기 보안 키 및 상기 해시 함수는 상기 메모리 또는 상기 프로세서 중 보안 영역에 저장되고,
    상기 프로세서는,
    상기 데이터가 상기 암호화된 레이어가 포함된 인공 신경망에 입력되면, 상기 인공 신경망의 식별 정보를 상기 보안 영역에 로딩하고, 상기 보안 영역 상에서 상기 로딩된 인공 신경망의 식별 정보 및 상기 보안 키에 상기 해시 함수를 적용하여 상기 메타 데이터 및 상기 보안 벡터를 로딩하는 전자 장치.
  6. 제1항에 있어서,
    상기 프로세서는,
    상기 메타 데이터를 통해 상기 복수의 레이어 중 제1 레이어 내의 제1 영역을 암호화 하는 것으로 식별하면, 상기 제1 레이어 내의 제1 영역에 위치한 가중치(weight)와 상기 보안 벡터의 역수간에 곱 연산을 수행하여 상기 제1 레이어 내의 제1 영역을 암호화하는 전자 장치.
  7. 제6항에 있어서,
    상기 프로세서는,
    상기 암호화된 적어도 하나의 레이어가 컨볼루션 레이어(convolution layer)인 경우, 상기 제1 영역의 일부인 제2 영역에 위치한 가중치와 상기 보안 벡터의 역수간에 곱 연산을 수행하여 상기 제1 레이어 중 제2 영역을 암호화하는 전자 장치.
  8. 제1항에 있어서,
    상기 프로세서는,
    상기 메타 데이터를 통해 상기 복수의 레이어 중 암호화된 적어도 하나의 레이어를 식별하고,
    상기 암호화되었다고 식별된 레이어에 입력된 데이터와 상기 보안 벡터 간에 곱 연산을 수행하여 제1 중간 데이터를 획득하고,
    상기 획득된 제1 중간 데이터와 상기 암호화된 적어도 하나의 레이어에 포함된 가중치간에 곱 연산을 수행하여 제1 출력 데이터를 획득하는 전자 장치.
  9. 제7항에 있어서,
    상기 프로세서는,
    상기 암호화된 적어도 하나의 레이어가 컨볼루션 레이어(convolution layer)인 경우, 상기 제2 영역에 위치한 가중치와 상기 보안 벡터 간의 곱 연산을 수행하여 제1 중간 데이터를 획득하고,
    상기 제1 중간 데이터와 상기 암호화된 적어도 하나의 레이어에 입력된 데이터 간에 곱 연산을 출력하여 제1 출력 데이터를 획득하는 전자 장치.
  10. 제1항에 있어서,
    통신부를 포함하고,
    상기 프로세서는,
    사용자로부터 외부 장치가 상기 인공 신경망에 대한 권한을 가지고 있다는 정보가 입력되면, 상기 인공 신경망을 이용하기 위한 정보를 상기 외부 장치로 전송하도록 상기 통신부를 제어하는 전자 장치.
  11. 인공 신경망 및 상기 인공 신경망에 포함된 복수의 레이어 중 암호화할 적어도 하나의 레이어와 관련된 메타 데이터를 저장하는 메모리를 포함하는 전자 장치의 제어 방법에 있어서,
    상기 메타 데이터 및 상기 전자 장치의 보안 키를 이용하여 보안 벡터를 획득하는 단계;
    상기 획득된 보안 벡터 및 상기 메타 데이터를 상기 보안 키 및 상기 인공 신경망의 식별 정보와 매핑하는 단계;
    상기 메타 데이터 및 상기 보안 벡터를 이용하여 상기 복수의 레이어 중 상기 적어도 하나의 레이어에 대해 암호화를 수행하는 단계;
    상기 인공 신경망에 데이터가 입력되면, 상기 보안 키 및 상기 인공 신경망의 식별 정보를 이용하여 상기 메타 데이터 및 상기 보안 벡터를 로딩하는 단계; 및
    상기 로딩된 보안 벡터 및 상기 메타 데이터를 바탕으로 상기 입력된 데이터와 상기 암호화된 적어도 하나의 레이어간의 연산을 수행하는 단계;를 포함하는 전자 장치의 제어 방법.
  12. 제11항에 있어서,
    상기 보안 벡터를 획득하는 단계는,
    상기 메타 데이터를 이용하여 상기 복수의 레이어 중 암호화할 레이어의 개수, 상기 암호화할 레이어 중 암호화할 영역 및 상기 영역의 뎁스 값을 식별하는 단계; 및
    상기 식별된 데이터를 바탕으로 상기 보안 벡터의 사이즈를 결정하는 단계;를 포함하는 전자 장치의 제어 방법.
  13. 제12항에 있어서,
    상기 보안 벡터를 획득하는 단계는,
    상기 보안 키를 이용하여 상기 보안 벡터의 사이즈에 대응되는 상기 보안 벡터의 원소를 획득하는 단계; 및
    상기 획득한 보안 벡터의 원소를 이용하여 상기 보안 벡터를 획득하는 단계;를 포함하는 전자 장치의 제어 방법.
  14. 제11항에 있어서,
    상기 매핑하는 단계는,
    상기 보안 키 및 상기 인공 신경망의 식별 정보를 해시 함수을 이용하여 상기 보안 벡터 및 상기 메타 데이터와 매핑하는 단계;를 포함하는 전자 장치의 제어 방법.
  15. 제14항에 있어서,
    상기 보안 키 및 상기 해시 함수는 상기 메모리 또는 상기 전자 장치의 프로세서 중 보안 영역에 저장되고,
    상기 로딩하는 단계는,
    상기 데이터가 상기 암호화된 레이어가 포함된 인공 신경망에 입력되면, 상기 인공 신경망의 식별 정보를 상기 보안 영역에 로딩하고, 상기 보안 영역 상에서 상기 로딩된 인공 신경망의 식별 정보 및 상기 보안 키에 상기 해시 함수를 적용하여 상기 메타 데이터 및 상기 보안 벡터를 로딩하는 단계;를 포함하는 전자 장치의 제어 방법.
  16. 제11항에 있어서,
    상기 암호화하는 단계는,
    상기 메타 데이터를 통해 상기 복수의 레이어 중 제1 레이어 내의 제1 영역을 암호화 하는 것으로 식별하면, 상기 제1 레이어 내의 제1 영역에 위치한 가중치와 상기 보안 벡터의 역수간에 곱 연산을 수행하여 상기 제1 레이어 내의 제1 영역을 암호화하는 단계;를 포함하는 전자 장치의 제어 방법.
  17. 제16항에 있어서,
    상기 암호화하는 단계는,
    상기 암호화된 적어도 하나의 레이어가 컨볼루션 레이어(convolution layer)인 경우, 상기 제1 영역의 일부인 제2 영역에 위치한 가중치와 상기 보안 벡터의 역수간에 곱 연산을 수행하여 상기 제1 레이어 중 제2 영역을 암호화하는 단계;를 포함하는 전자 장치의 제어 방법.
  18. 제11항에 있어서,
    상기 연산을 수행하는 단계는,
    상기 메타 데이터를 통해 상기 복수의 레이어 중 암호화된 적어도 하나의 레이어를 식별하는 단계;
    상기 암호화되었다고 식별된 적어도 하나의 레이어에 입력된 데이터와 상기 보안 벡터 간에 곱 연산을 수행하여 제1 중간 데이터를 획득하는 단계; 및
    상기 획득된 제1 중간 데이터와 상기 암호화된 적어도 하나의 레이어에 포함된 가중치간에 곱 연산을 수행하여 제1 출력 데이터를 획득하는 단계;를 포함하는 전자 장치의 제어 방법.
  19. 제17항에 있어서,
    상기 연산을 수행하는 단계는,
    상기 암호화된 적어도 하나의 레이어가 컨볼루션 레이어(convolution layer)인 경우, 상기 제2 영역에 위치한 가중치와 상기 보안 벡터 간의 곱 연산을 수행하여 제1 중간 데이터를 획득하는 단계; 및
    상기 제1 중간 데이터와 상기 암호화된 적어도 하나의 레이어에 입력된 데이터 간에 곱 연산을 출력하여 제1 출력 데이터를 획득하는 단계;를 포함하는 전자 장치의 제어 방법.
  20. 제11항에 있어서,
    사용자로부터 외부 장치가 상기 인공 신경망에 대한 권한을 가지고 있다는 정보가 입력되면, 상기 인공 신경망을 이용하기 위한 정보를 상기 외부 장치로 전송하는 단계;를 더 포함하는 전자 장치의 제어 방법.

KR1020200052110A 2020-04-29 2020-04-29 전자 장치 및 그의 제어 방법 KR20210133471A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020200052110A KR20210133471A (ko) 2020-04-29 2020-04-29 전자 장치 및 그의 제어 방법
US17/437,320 US11995196B2 (en) 2020-04-29 2020-11-24 Electronic apparatus and method for controlling thereof
PCT/KR2020/016662 WO2021221256A1 (ko) 2020-04-29 2020-11-24 전자 장치 및 그의 제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200052110A KR20210133471A (ko) 2020-04-29 2020-04-29 전자 장치 및 그의 제어 방법

Publications (1)

Publication Number Publication Date
KR20210133471A true KR20210133471A (ko) 2021-11-08

Family

ID=78332073

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200052110A KR20210133471A (ko) 2020-04-29 2020-04-29 전자 장치 및 그의 제어 방법

Country Status (2)

Country Link
KR (1) KR20210133471A (ko)
WO (1) WO2021221256A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023085866A1 (ko) * 2021-11-12 2023-05-19 삼성전자 주식회사 디스플레이 장치 및 그의 동작 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3182315A1 (en) * 2015-12-16 2017-06-21 Gemalto Sa Method, device, server and system for authenticating a user
KR102444932B1 (ko) * 2017-07-24 2022-09-20 삼성전자주식회사 이미지를 암호화하여 외부 서버에 업로드하기 위한 전자 장치 및 이의 제어 방법
US11575500B2 (en) * 2018-07-25 2023-02-07 Sap Se Encrypted protection system for a trained neural network

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023085866A1 (ko) * 2021-11-12 2023-05-19 삼성전자 주식회사 디스플레이 장치 및 그의 동작 방법

Also Published As

Publication number Publication date
WO2021221256A1 (ko) 2021-11-04
US20230144680A1 (en) 2023-05-11

Similar Documents

Publication Publication Date Title
US11902413B2 (en) Secure machine learning analytics using homomorphic encryption
Kalyani et al. An efficient approach for enhancing security in Internet of Things using the optimum authentication key
US20190319804A1 (en) Unified accelerator for classical and post-quantum digital signature schemes in computing environments
US11521038B2 (en) Electronic apparatus and control method thereof
CN110534113B (zh) 音频数据脱敏方法、装置、设备和存储介质
US20190190959A1 (en) Authorization policy optimization method and apparatus, and storage medium
US11954536B2 (en) Data engine
CN110288705B (zh) 生成三维模型的方法和装置
WO2019178665A1 (en) Machine learning inference routing
KR20210133471A (ko) 전자 장치 및 그의 제어 방법
US11823060B2 (en) Method and system for performing deterministic data processing through artificial intelligence
KR20220105509A (ko) 암호화된 정보에 기초하여, 인공지능 모델을 이용한 추론을 수행하는 전자 장치 및 그 동작 방법
US11538063B2 (en) Online fraud prevention and detection based on distributed system
US11436215B2 (en) Server and control method thereof
US11995196B2 (en) Electronic apparatus and method for controlling thereof
CN114626511A (zh) 神经网络的训练方法、推理方法及相关产品
US20210027168A1 (en) Electronic apparatus and controlling method thereof
CN110378140B (zh) 验证深度神经网络模型归属的方法、装置和系统
KR20210148877A (ko) 전자 장치 및 이의 제어 방법
KR20220007326A (ko) 전자 장치 및 그의 제어 방법
US20240154802A1 (en) Model protection method and apparatus
KR102658967B1 (ko) 인공지능 기반 솔루션을 제공하기 위한 방법, 전자 장치, 및 시스템
KR20210106131A (ko) 전자 장치 및 그의 제어 방법
US20230368019A1 (en) Deep learning system for performing private inference and operating method thereof
KR20220154902A (ko) 전자 장치 및 이의 제어 방법