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

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

Info

Publication number
WO2021221256A1
WO2021221256A1 PCT/KR2020/016662 KR2020016662W WO2021221256A1 WO 2021221256 A1 WO2021221256 A1 WO 2021221256A1 KR 2020016662 W KR2020016662 W KR 2020016662W WO 2021221256 A1 WO2021221256 A1 WO 2021221256A1
Authority
WO
WIPO (PCT)
Prior art keywords
security
neural network
artificial neural
electronic device
encrypted
Prior art date
Application number
PCT/KR2020/016662
Other languages
English (en)
French (fr)
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 US17/437,320 priority Critical patent/US11995196B2/en
Publication of WO2021221256A1 publication Critical patent/WO2021221256A1/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

Definitions

  • the present disclosure relates to an electronic device and a control method thereof, and more particularly, to an electronic device and a control method thereof for maintaining security of data requiring security by encrypting an artificial neural network based on a security key and metadata related to the artificial neural network. it's about
  • Artificial neural networks that are learned based on machine learning (eg, deep learning) are being developed and used in various fields, and artificial neural networks may be optimized according to the characteristics of users who use them. That is, the artificial neural network may store various data related to the user that can be derived by the user using the artificial neural network or may learn based on this. Accordingly, the importance of security for artificial neural networks is emerging in that various types of user data may be included in the artificial neural network.
  • machine learning eg, deep learning
  • the present disclosure has been devised to solve the above problems, and an object of the present disclosure is to encrypt at least one layer among a plurality of layers included in an artificial neural network based on a security key and metadata related to the artificial neural network; and An object of the present invention is to provide a method for controlling the same.
  • an electronic device includes an artificial neural network and a memory for storing metadata related to at least one layer to be encrypted among a plurality of layers included in the artificial neural network, the metadata, and a security key of the electronic device to obtain a security vector, map the obtained security vector and the metadata with the security key and identification information of the artificial neural network, and use the metadata and the security vector to obtain at least the at least one of the plurality of layers.
  • the metadata and the security vector are loaded using the security key and identification information of the artificial neural network, and the loaded security vector and the An operation between the input data and the at least one encrypted layer may be performed based on the metadata.
  • a control method of an electronic device including an artificial neural network and a memory for storing metadata related to at least one layer to be encrypted among a plurality of layers included in the artificial neural network, the obtaining a security vector using metadata and the security key of the electronic device; mapping the obtained security vector and the metadata with the security key and identification information of the artificial neural network; the metadata and the security performing encryption on the at least one layer among the plurality of layers using a vector; when data is input to the artificial neural network, the metadata and the security using the security key and identification information of the artificial neural network
  • the method may include loading a vector, and performing an operation between the input data and the at least one encrypted layer based on the loaded security vector and the metadata.
  • the electronic device can reduce the overhead for encryption by performing encryption on some of the plurality of layers included in the artificial neural network, and utilize the artificial neural network when there is no security key.
  • the security of the artificial neural network can also be maintained in that it cannot.
  • 1A is a block diagram illustrating the configuration and operation of an electronic device according to an embodiment of the present disclosure
  • FIGS. 1B and 1C are diagrams for explaining a process in which an electronic device performs an operation related to an encrypted artificial neural network according to an embodiment of the present disclosure
  • 1D is a diagram for explaining an operation between modules included in an electronic device according to an embodiment of the present disclosure
  • 1E is a block diagram illustrating the configuration of an electronic device in detail according to an embodiment of the present disclosure
  • FIG. 2 is a flowchart illustrating a process in which an electronic device performs an encryption operation on an artificial neural network according to an embodiment of the present disclosure
  • FIG. 3 is a flowchart illustrating a process in which an electronic device performs an operation related to an encrypted artificial neural network according to an embodiment of the present disclosure
  • FIG. 4 is a sequence diagram illustrating an operation between an electronic device and an external device according to an embodiment of the present disclosure
  • FIG. 5 is a sequence diagram illustrating an operation between an electronic device and a server according to an embodiment of the present disclosure
  • FIG. 6 is a flowchart illustrating an operation of an electronic device according to an embodiment of the present disclosure.
  • a weight included in some layers among a plurality of layers included in an artificial neural network is calculated using a security key unique to an electronic device. It relates to an electronic device 100 for encryption and a method for controlling the same. That is, the electronic device 100 of the present disclosure maintains the security of the artificial neural network itself by encrypting at least one layer included in the artificial neural network, and secures information requiring security, such as personal information used by the artificial neural network as learning data. can keep
  • maintaining the security of the artificial neural network itself and maintaining the security of information that requires security, such as personal information means that if specific data is entered into the artificial neural network without using the unique security key of the electronic device, the artificial neural network becomes invalid. It can mean outputting data. In this case, invalid data may mean data having a confidence score less than a threshold value.
  • the artificial neural network can be learned based on data requiring security, such as personal information, the data output by the artificial neural network may be data in which data requiring security is reflected. Therefore, when data is input in an abnormal way (for example, by inputting data into the artificial neural network without using a security key, etc.), the artificial neural network outputs invalid data, thereby maintaining the security of the artificial neural network itself, The artificial neural network can maintain the security of data used as training data.
  • an artificial neural network including an encrypted layer without using security data eg, a security vector
  • security data eg, a security vector
  • the encrypted artificial neural network included in the electronic device 100 may maintain the security of the artificial neural network by outputting invalid data, and may maintain the security of personal information used by the artificial neural network as learning data.
  • maintaining the security of the artificial neural network may mean controlling access to the artificial neural network without using a security key unique to the electronic device. That is, by preventing data from being input into the artificial neural network without using the security key, the security of the artificial neural network can be maintained.
  • a security key unique to the electronic device 100 may include a hardware key unique to the electronic device 100 or a key that can be generated only in the electronic device 100 .
  • the electronic device 100 security key manages the electronic device 100 and provides a service to a server (or a server of the manufacturer of the electronic device 100 or the electronic device 100 ) capable of providing various data. a unique key assigned to the electronic device 100 so that the electronic device 100 can utilize a specific artificial neural network stored on the electronic device 100 .
  • a server or a server of the manufacturer of the electronic device 100 or the electronic device 100
  • An embodiment in which the server allocates and provides a security key to the electronic device 100 will be described in detail with reference to FIG. 5 .
  • an artificial neural network may collectively refer to a machine learning model created and trained to output data corresponding to input data.
  • the artificial neural network can be learned to be optimized for a specific task, and can be learned and used for various needs such as personalization purposes.
  • FIG. 1A is a block diagram for specifically explaining the configuration and operation of an electronic device 100 according to an embodiment of the present disclosure.
  • the electronic device 100 may include a memory 110 and a processor 120 .
  • the configuration shown in FIG. 1A is an exemplary diagram for implementing embodiments of the present disclosure, and appropriate hardware and software configurations at a level obvious to those skilled in the art may be additionally included in the electronic device 100 .
  • the memory 110 may store commands or data related to at least one other component of the electronic device 100 .
  • the memory 110 is accessed by the processor 120 , and reading/writing/modification/deletion/update of data by the processor 120 may be performed.
  • the memory 110 may store an instruction set corresponding to at least one program executable by the processor 120 .
  • An instruction means one action statement that can be directly executed by the processor 120 in a programming language, and is a minimum unit for program execution or operation.
  • the memory 110 may store data input through an input unit or the like.
  • the input data may include voice data input through a microphone or image data obtained through a camera.
  • the input data may be data implemented as a vector or a matrix, but this is only an example, and may be implemented as data of various types such as a graph.
  • the memory 110 may store an artificial neural network including a plurality of layers.
  • the artificial neural network may include various types of layers, such as a convolution layer and a fully connected layer.
  • each layer has a plurality of weight values, and an operation of the layer may be performed through an operation result of a previous layer and an operation of a plurality of weights.
  • the plurality of weights of the plurality of neural network layers included in the artificial neural network may be optimized by the learning result of the artificial intelligence model. For example, a plurality of weights may be updated so that a loss value or a cost value obtained from the artificial intelligence model during the learning process is reduced or minimized.
  • artificial neural networks include Convolutional Neural Network (CNN), Deep Neural Network (DNN), Recurrent Neural Network (RNN), Restricted Boltzmann Machine (RBM), Deep Belief Network (DBN), Bidirectional Recurrent Deep Neural Network (BRDNN) and Deep Q-Networks, and the like, and the artificial neural network in the present disclosure is not limited to the above-described example, except as otherwise specified.
  • the memory 110 may be divided into a normal area 10 - 1 and a security area 10 - 2 .
  • the general area 10 - 1 may refer to an area for storing data and commands related to various components of the electronic device 100 .
  • the security area 10 - 2 may refer to a storage area in which security is reinforced by controlling information exchange with the general area. Accordingly, personal information, payment information, biometric information, security document, etc. requiring security may be stored in the security area 10 - 2 .
  • the security key and information on the security vector and metadata matched with the identification information of the artificial neural network for example, a hash table to which the security vector and metadata are mapped) hash table
  • a hash function for example, a hash table to which the security vector and metadata are mapped
  • the security area 10-2 for storing various types of security-required information may be implemented as one component of the memory 110 as shown in FIG. 1A as well as an independent hardware module or software module. Of course, it can also be implemented as one component of the processor 120 .
  • the memory 110 may store metadata related to at least one layer to be encrypted among a plurality of layers included in the artificial neural network.
  • the metadata may include the number of layers to be encrypted among the plurality of layers, the type of the layer to be encrypted, and a value of an area to be encrypted among the layers to be encrypted and a depth value of the area to be encrypted.
  • the metadata may store information related to the layer to be encrypted in the form of a vector or matrix, but this is only an example and may also be stored in the form of a graph.
  • Meta data may be received by the processor 120 from a user or an external device. However, this is only an embodiment, and the processor 120 may generate metadata using a random number generator and store it in the memory 110 .
  • the memory 110 may store software modules capable of performing various functions.
  • the training module 80 including the secure vector generation module 80-1, the mapping module 80-2, and the encryption module 80-3, and the loading module 90- 1)
  • the inference module 90 including the operation execution module 90-2 may be stored.
  • the operation of each module may be controlled by the processor 120 .
  • each module may be stored in the non-volatile memory and then loaded into the volatile memory by the processor 120 . An operation between each software module will be described in detail with reference to FIG. 1D.
  • loading refers to an operation of loading and storing data stored in the non-volatile memory into the volatile memory so that the processor 120 can access it.
  • the volatile memory may be included in the processor 120 and implemented as one component of the processor 120 , but this is only an example and the volatile memory may be implemented as a component separate from the processor 120 .
  • the memory 110 may be implemented as a non-volatile memory, a volatile memory, a flash-memory, a hard disk drive (HDD), or a solid state drive (SSD).
  • the term "memory” refers to a memory 110, a ROM (not shown) in the processor 120, a RAM (not shown), or a memory card (not shown) mounted in the electronic device 100 (eg, micro SD card, memory stick).
  • programs and data for configuring various screens to be displayed in the display area of the display may be stored in the memory 110 .
  • non-volatile memory is a memory capable of retaining stored information even when power supply is interrupted (eg, flash memory, programmable read-only memory (PROM), magnetoresistive random-access memory (MRAM), and RRAM ( Resistive RAM)).
  • volatile memory refers to a memory (eg, dynamic random-access memory (DRAM) and static RAM (SRAM)) that requires continuous power supply in order to maintain stored information.
  • DRAM dynamic random-access memory
  • SRAM static RAM
  • the processor 120 may be electrically connected to the memory 110 to perform overall operations of the electronic device 100 .
  • the processor 120 may include one or a plurality of processors.
  • one or a plurality of processors 120 are general-purpose processors such as CPUs, APs, Digital Signal Processors (DSPs), etc., GPUs, graphics-only processors such as VPUs (Vision Processing Units), or artificial intelligence such as NPUs (Neural Processing Units). It may be a dedicated processor.
  • the processor 120 may load the metadata stored in the memory 110 and the security key stored in the security area 10 - 2 into a security area (not shown) on the volatile memory.
  • the security area on the volatile memory may refer to an area in which information exchange with other components in the electronic device 100 is controlled and security is enhanced.
  • the processor 120 may perform various security operations (eg, performing encryption on an artificial neural network, etc.) on the security area of the volatile memory.
  • this is only an example, and it goes without saying that the processor 120 may perform various security operations even on the general area of the volatile memory.
  • the processor 120 may obtain the security vector by using the metadata and the security key. Specifically, the processor 120 may identify the number of layers to be encrypted among a plurality of layers included in the entire artificial neural network, an area to be encrypted among the layers to be encrypted, and a depth value of the area to be encrypted by using the metadata. have. And, the processor 120 may determine the size (or dimension) of the security vector based on the data identified from the metadata. The size of the security vector may be determined by the number of layers to be encrypted * area to be encrypted * depth of the area to be encrypted, but this is only an example and may be variously modified.
  • the processor 120 may obtain an element of the security vector corresponding to the determined security vector size using the security key.
  • the processor 120 may transform the security key by the determined security vector size, and identify each of the modified security keys as an element of each security vector. For example, when the security vector size is 1 X 2, since there are two elements to be input (or mapped) to the security vector, the processor 120 transforms the security key in a predefined way to form two modified security keys. A key may be generated, and each of the two modified security keys may be identified and mapped as an element of the security vector.
  • the predefined method may include a method of generating a modified security key by applying a specific mapping function to the security key, a method of generating a modified security key by combining the security key and a generated random number, and the like. This is only an example and may be added/deleted/modified by the user.
  • the processor 120 may generate a random number based on the security key, and identify a random number corresponding to the determined security vector size among the generated random numbers as each element of the vector.
  • the processor 120 may generate and obtain an element of the security vector in various ways using the security key, and may generate a security vector based on the generated and acquired element.
  • the processor 120 may map the obtained security vector and metadata with the security key and identification information of the artificial neural network.
  • the processor 120 may map the security key and identification information of the artificial neural network to the security vector and metadata using a hash function.
  • the security key and the artificial neural network may be a hash key
  • a security vector and meta data may be a hash value. That is, the processor 120 may map the security key and identification information of the artificial neural network with the security vector and metadata in the form of a hash table.
  • the processor 120 stores the security vector and metadata mapped with the security key and identification information of the artificial neural network in the security area 10-2 of the memory 110 or the security area implemented as a separate hardware module or software module. can be saved
  • the identification information of the artificial neural network may include various types of information (eg, a neural network model number, a neural network type, etc.) for identifying a specific artificial neural network.
  • the processor 120 may perform encryption on at least one layer among the plurality of layers by using the metadata and the security vector.
  • encrypting a layer may include encrypting the weight included in a part of the layer as well as encrypting the entire weight included in the layer.
  • the processor 120 may store the artificial neural network including the encrypted layer in the memory 110 .
  • the processor 120 may identify a layer or region to be encrypted among a plurality of layers through metadata. If the first layer among the plurality of layers is identified to be encrypted through the metadata, the processor 120 may encrypt the first layer by performing a multiplication operation between the weight located in the first layer and the inverse of the security vector. have. For example, the processor 120 may perform an element-wise product operation between the weight located in the first layer and the inverse of the security vector. Meanwhile, the processor 120 may encrypt the entire first layer by performing a multiplication operation between the weights located in the entire region of the first layer and the inverse of the security vector, but may encrypt only a partial region.
  • the processor 120 may identify the type of the first layer to be encrypted among the plurality of layers through metadata.
  • the processor 120 may encrypt the weight included in the entire first region of the first layer, but may encrypt only the weight included in a part of the first region. That is, the processor 120 may encrypt the partial region of the first layer by performing a multiplication operation with the inverse of the weight and the security vector located in the partial region.
  • the processor 120 may load the metadata and the security vector using the security key and identification information of the artificial neural network. Specifically, when data is input to the artificial neural network including the encrypted layer, the processor 120 may load the identification information and the security key of the artificial neural network into the secure area of the volatile memory. For example, the processor 120 may store the identification information of the artificial neural network stored in the general area of the memory 110 and the security key stored in the security area of the memory 110 in the secure area of the volatile memory or a separate hardware module. Alternatively, it may be loaded into a security area implemented as a software module.
  • the processor 120 may obtain the metadata and the security vector by applying a hash function to the security key and the identification information of the artificial neural network in the security area of the volatile memory. Then, the processor 120 may load the obtained metadata and the security vector into the general area of the volatile memory.
  • the processor 120 may perform an operation between the input data and at least one encrypted layer based on the security vector and metadata.
  • the operation between the input data and the layer may include a case of performing a multiplication operation between the input data and a weight included in the layer.
  • FIG. 1B is a diagram illustrating a process in which the processor 120 performs an operation between the layer and input data when the layer is a fully connected layer.
  • the processor 120 may identify the encrypted layer 40 among a plurality of layers included in the artificial neural network by using metadata. In addition, the processor 120 may monitor whether data is input to the layer identified as being encrypted. When it is identified that data is input to the layer identified as being encrypted, the processor 120 performs element-by-element multiplication operation between the data 20 identified to be input to the encrypted layer 40 and the security vector 30 to perform the first Intermediate data can be obtained. In addition, the processor 120 may obtain the first output data by performing a multiplication operation between the first intermediate data and the encrypted layer 40 .
  • At least one encrypted layer 40 is a layer obtained by multiplying an existing layer by an inverse of a security vector. Accordingly, the first output data is the same as data obtained by performing a multiplication operation between the input data 20 and the weights included in the existing layer. This can be understood through the equation shown in (a) of FIG. 1B.
  • the processor 120 performs a multiplication operation between the inverse of the existing layer (W) and the security vector (S) to perform an encrypted layer ( ) (40) can be obtained.
  • the processor 120 performs a multiplication operation between the input data (H) 20 and the security vector (S) 30 to obtain the first intermediate data ( ), and the first intermediate data and the encrypted layer ( ) (40) by performing a multiplication operation between the first output data ( ) (50) can be obtained.
  • the processor 120 may output the first output data through a simple multiplication operation with the first intermediate data in an encrypted state without decrypting the encrypted layer 40 . Since the operation of performing a simple element-by-element multiplication operation has less overhead than the operation of decrypting the layer, the electronic device 100 according to the present disclosure may perform the operation between the encrypted layer and the input data with less overhead.
  • the processor 120 may enhance the security of the artificial neural network by mapping the security key and the artificial neural network identification information to the security vector and metadata.
  • the encrypted layer 70 may be a convolutional layer.
  • the amount (or size) of the input data 75 - 1 may be greater than the amount (or size) of the weight included in the region of the encrypted layer.
  • the processor 120 performs a multiplication operation between the encrypted regions 70 - 1 and 70 - 3 and the security vector 75 - 2 of the encrypted layer 70 . may be performed to obtain second intermediate data.
  • the encrypted regions 70-1 and 70-3 are multiplied by the inverse of the existing region and the security vector, so that the second intermediate data is the same as the layer before the encrypted layer 70 is encrypted. can do.
  • the processor 120 may obtain the second output data by performing an operation between the weight included in the second intermediate data and the input data 75 - 1 . That is, the processor 120 obtains the second intermediate data by simply performing a multiplication operation between the security vectors without decrypting the encrypted layer, and performs a simple multiplication operation between the second intermediate data and the input data to obtain the second output data. By acquiring it, it is possible to reduce the overhead (overhead).
  • the processor 120 may enhance the security of the artificial neural network by mapping the security key and the artificial neural network identification information to the security vector and metadata.
  • the processor 120 may control the communication unit 130 to transmit information for using the artificial neural network to the external device.
  • the information for using the artificial neural network may include a security key of the electronic device 100 and a mapping function (eg, a hash function) using the security key and identification information of the artificial neural network as a key.
  • the external device may utilize the encrypted artificial neural network by using the received information for using the artificial neural network. An embodiment related thereto will be described in detail with reference to FIG. 5 .
  • functions related to artificial intelligence applied to an artificial neural network, etc. are operated through the processor 120 and the memory 110 .
  • One or a plurality of processors control to process input data according to a predefined operation rule or artificial intelligence model stored in the memory.
  • the AI-only processor may be designed with a hardware structure specialized for processing a specific AI model.
  • the predefined action rule or artificial intelligence model is characterized in that it is created through learning.
  • being made through learning means that a basic artificial intelligence model is learned using a plurality of learning data by a learning algorithm, so that a predefined action rule or artificial intelligence model set to perform a desired characteristic (or purpose) is created means burden.
  • Such learning may be performed in the device itself on which the artificial intelligence according to the present disclosure is performed, or may be performed through a separate server and/or system.
  • Examples of the learning algorithm include, but are not limited to, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning.
  • 1D is a diagram for describing operations of a plurality of software modules included in the electronic device 100 according to an embodiment of the present disclosure.
  • the memory 110 of the electronic device 100 may store the learning module 80 and the inference module 90 . And, the operation of each module may be controlled by the processor 120 .
  • the learning module 80 may mean a module that encrypts a plurality of layers included in the artificial neural network and maps the encrypted layers with a security key, and includes a security vector module 80-1 and a mapping module 80-2. and an encryption module 80-3.
  • the reasoning module 90 may mean a module that performs various loading and calculations in relation to data input to the encrypted artificial neural network, and may include a loading module 90-1 and an operation execution module 90-2. can
  • the learning module 80 may perform various operations to output an encrypted artificial neural network. Specifically, when the metadata and the security key are input, the security vector generation module 80 - 1 of the learning module 80 may generate a security vector using the input metadata and the security key. Specifically, the security vector generation module 80 - 1 may identify information on a layer to be encrypted among a plurality of layers using metadata, and determine a size of the security vector based on the identified information. In addition, the security vector generation module 80 - 1 may transform the security key by the size of the security vector determined in a predefined manner, and may generate the security vector by mapping the modified security key.
  • mapping module 80 - 2 of the learning module 80 may map the security key and identification information of the artificial neural network with the security vector and metadata. Specifically, the mapping module 80 - 2 may map the security key and identification information of the artificial neural network to the security vector and metadata using a hash function. In addition, the mapping module may store the mapped security vector and metadata in the security area.
  • the encryption module 80 - 3 of the learning module 80 may perform encryption on at least one layer among a plurality of layers included in the artificial neural network by using the metadata and the security vector. Specifically, the encryption module 80 - 3 may identify some or all areas to be encrypted among the plurality of layers by using the metadata. In addition, the encryption module 80 - 3 may perform encryption on some or all of the identified areas by performing a multiplication operation between the weight included in the identified partial or all areas and the inverse of the security vector. Accordingly, the encryption module 80 - 3 may output an artificial neural network in which a part or the entire area is encrypted.
  • the inference module 90 may output output data corresponding to the input data.
  • the loading module 90 - 1 of the inference module 90 may load the metadata and the security vector using the security key and identification information of the artificial neural network.
  • the loading module 90 - 1 may load identification information of the artificial neural network into a security area in which a security key and a hash function are stored.
  • the loading module 90-1 may load the metadata and the security vector by applying a hash function to the identification information and security key of the artificial neural network loaded on the security area.
  • the operation execution module 90 - 2 of the reasoning module 90 may output output data by performing an operation between the input data and at least one encrypted layer based on the loaded security vector and metadata. Specifically, the operation execution module 90 - 2 may identify an encrypted region among the plurality of layers through metadata. Then, the operation execution module 90 - 2 may obtain the first intermediate data by performing a multiplication operation between the data to be input to the identified encrypted region and the security vector. Then, the operation execution module 90 - 2 may obtain the first output data by performing a multiplication operation between the first intermediate data and the weight included in the at least one encrypted layer.
  • FIG. 1E is a block diagram illustrating in detail the configuration of the electronic device 100 according to an embodiment of the present disclosure.
  • the electronic device 100 includes a memory 110 , a processor 120 , a communication unit 130 , a display 140 , an input unit 150 , a speaker 160 , and a microphone 170 . can do.
  • the memory 110 and the processor 120 have been described in detail with reference to FIGS. 1A to 1C , redundant descriptions will be omitted.
  • the communication unit 130 includes a circuit and may communicate with a server (not shown) or an external device (not shown). Specifically, the processor 120 may receive and transmit various data or information from a server (not shown) or an external device (not shown) connected through the communication unit 130 . In particular, the communication unit 130 may receive input data from an external server or an external device, and may receive information related to a security key assigned to the electronic device 100 .
  • the communication unit 130 may include various communication modules to communicate with an external device or server.
  • the communication unit 130 may include a wireless communication module, for example, LTE, LTE Advance (LTE-A), CDMA (code division multiple access), WCDMA (wideband CDMA), UMTS (universal mobile telecommunications) system), a cellular communication module using at least one of Wireless Broadband (WiBro), 5th generation (5G), or Global System for Mobile Communications (GSM).
  • the wireless communication module may include, for example, at least one of wireless fidelity (WiFi), Bluetooth, and Bluetooth low energy (BLE).
  • the display 140 may be implemented as a Liquid Crystal Display Panel (LCD), Organic Light Emitting Diodes (OLED), or the like, and in some cases may be implemented as a flexible display, a transparent display, or the like. Also, the display 140 may be implemented as a touch screen together with a touch panel. However, it is not limited to the above-described implementation, and the display 140 may be implemented differently depending on the type of the electronic device 100 .
  • LCD Liquid Crystal Display Panel
  • OLED Organic Light Emitting Diodes
  • the display 140 may display various information under the control of the processor 120 .
  • the display 140 may display an indicator that encryption has been performed or that the security vector and metadata have been loaded.
  • the display 140 may display input data input through the input unit 150 and output data output from the artificial neural network.
  • the input unit 150 includes a circuit, and the processor 120 may receive a user command or various data for controlling the operation of the electronic device 100 through the input unit 150 .
  • the input unit 150 may include a touch sensor, a (digital) pen sensor, a pressure sensor, a key, and the like.
  • the touch sensor may use, for example, at least one of a capacitive type, a pressure sensitive type, an infrared type, and an ultrasonic type.
  • the input unit 150 may receive metadata input from a user. Also, the input unit 150 may receive various types of input data that can be input to the artificial neural network.
  • the input data may include voice, text, image data, and the like, but is not limited to the above example.
  • the speaker 160 is configured to output not only various audio data on which various processing operations such as decoding, amplification, and noise filtering have been performed by an audio processing unit (not shown) but also various notification sounds or voice messages.
  • the speaker 160 may output to the control of the processor 120 a notification sound indicating that the artificial neural network has been successfully encrypted or output data composed of a voice output from the encrypted artificial neural network.
  • the microphone 170 is configured to receive a voice input from a user. That is, the microphone 170 may receive a command composed of a voice input from the user, and may transmit the input command to the processor 120 . In addition, the microphone 170 may receive voice data as input data for input to the artificial neural network. Meanwhile, the term user may refer to a person who uses an electronic device or a device (eg, an artificial intelligence electronic device) using the electronic device.
  • the microphone 170 may be provided inside the electronic device 100 , but may be provided outside and electrically connected to the electronic device 100 . In addition, when the microphone 110 is provided outside, the microphone 170 may transmit a user voice signal generated through a wired/wireless interface (eg, Wi-Fi, Bluetooth) to the processor 120 .
  • a wired/wireless interface eg, Wi-Fi, Bluetooth
  • FIG. 2 is a diagram illustrating that the electronic device 100 performs encryption on an artificial neural network using a security key and metadata, and provides a security vector and metadata with the security key and identification information of the artificial neural network, according to an embodiment of the present disclosure. It is a diagram for explaining an operation of mapping.
  • the electronic device 100 may identify the number of layers to be encrypted among a plurality of layers included in the artificial neural network, an area to be encrypted among the layers to be encrypted, and a depth value of the area to be encrypted by using the metadata ( S210 ).
  • the depth value of the region to be encrypted may be a parameter value in the depth direction of the region to be encrypted.
  • the metadata may include information on a layer to be encrypted among a plurality of layers included in the artificial neural network. Accordingly, the electronic device 100 may identify various pieces of information about a layer to be encrypted through metadata in order to generate a security vector.
  • the electronic device 100 may receive metadata from a user or an external device. As another embodiment, the electronic device 100 may determine to encrypt at least one layer among a plurality of layers included in the artificial neural network, and generate metadata including information on the at least one layer to be encrypted. have.
  • the electronic device 100 may determine at least one layer to be encrypted among the plurality of layers according to a predefined criterion. For example, the electronic device 100 may arbitrarily determine a layer to be encrypted. As another example, the electronic device 100 may assign a weight to each layer to correspond to the data throughput, and determine that encryption is performed on at least one layer among layers having a high weight value. However, this is only an embodiment, and the electronic device 100 may determine a layer to be encrypted according to various predefined criteria, and the predefined criteria may be added/modified/deleted by a user command.
  • the electronic device 100 may determine the size (or dimension) of the security vector based on the data identified through the metadata ( S220 ).
  • the electronic device 100 may determine the size of the security vector as the number of layers to be encrypted * area to be encrypted * depth value of the area to be encrypted (or parameter value in the depth direction of the area to be encrypted). This is only an example and the size may be determined in various ways.
  • the electronic device 100 may obtain a security vector having a size determined by using the metadata and the security key ( S230 ). That is, specifically, the electronic device 100 may determine an element to be mapped to the security vector by transforming the security key by the determined size of the security vector. For example, when the determined size of the security vector is 1 X 4, the security vector has a total of 4 elements. Accordingly, the electronic device 100 may obtain four pieces of data to be mapped to the security vector by transforming the security key in a predefined manner. Then, the electronic device 100 may obtain the security vector by mapping the four data obtained by transforming the security key to the security vector.
  • the electronic device 100 may obtain element data to be mapped to a security vector by using a random number generator. For example, when the determined size of the security vector is 1 X 4, the electronic device 100 may obtain four random numbers using a random number generator. Then, the electronic device 100 may obtain the security vector by mapping the obtained four random numbers to the security vector.
  • the electronic device 100 may map the security vector and metadata to the security key and identification information of the artificial neural network (S240). Specifically, the electronic device 100 may map the security vector and metadata to the security key and identification information of the artificial neural network using a hash function.
  • a security key and identification information of an artificial neural network may be a key value in a hash function, and a hash value may be a security vector and metadata. That is, without the security key of the electronic device 100 and identification information of the artificial neural network, the security vector and metadata mapped to the security key and the artificial neural network may not be loaded. Therefore, in the case of another electronic device without a security key, the mapped security vector and artificial neural network cannot be loaded.
  • the electronic device 100 may store the mapped security vector and metadata by using the security key, the hash function, in the memory 110 or the processor 120 of the electronic device 100 in a security area.
  • the security area may be implemented as a component of the memory 110 or the processor 120 as well as a separate hardware/software module.
  • the electronic device 100 may map the security key and identification information of the artificial neural network to the security vector and metadata using various mapping methods as well as a hash function.
  • the electronic device 100 may perform encryption on at least one layer among the plurality of layers by using the metadata and the security vector ( S250 ). And, the electronic device 100 may store the encrypted artificial neural network.
  • the electronic device 100 may mean that encryption is performed on the entire weight or a part of the weight included in the layer.
  • the electronic device 100 may identify a region to be encrypted among a plurality of layers included in the artificial neural network through metadata. For example, if it is identified that the first region in the first layer among the plurality of layers is encrypted, the electronic device 100 performs element-by-element multiplication operation between the weight included in the first region in the first layer and the inverse of the security vector. performed to encrypt the first region in the first layer.
  • the first area may mean the entire area of the first layer, but the range of the area may be changed by a user command.
  • the electronic device 100 may identify a type of a layer to be encrypted among a plurality of layers through metadata.
  • the electronic device 100 performs a multiplication operation between the weight included in the second region that is a part of the first region and the inverse of the security vector to The second region of the first layer may be encrypted.
  • the electronic device 100 multiplies the weights included in the second regions 90 - 1 and 90 - 3 that are partial regions of the first layer 90 that are the convolutional layer and the inverse of the security vector.
  • the operation may be performed to encrypt the second region of the first layer.
  • FIG. 3 is a flowchart illustrating a process in which the electronic device 100 performs an operation related to an encrypted artificial neural network, according to an embodiment of the present disclosure.
  • the electronic device 100 may input data input from a user or an external device into the artificial neural network (S310).
  • Data input to the artificial neural network may be voice data, text data, and image or video data, but is not limited thereto.
  • the electronic device 100 may load metadata and a security vector using the security key and identification information of the artificial neural network ( S320 ). Specifically, the electronic device 100 may load the identification information of the artificial neural network stored in the memory 110 and the security key stored in the security area of the memory 110 or the processor 120 into the secure area of the volatile memory. . In addition, the electronic device 100 may obtain the mapped metadata and the security vector by applying a hash function to the security key and identification information of the artificial neural network in the security region of the volatile memory.
  • the electronic device 100 may perform an operation between the data input to the artificial neural network and at least one encrypted layer based on the loaded security vector and metadata ( S330 ). Specifically, the electronic device 100 may identify an encrypted layer among a plurality of layers through metadata.
  • the electronic device 100 may monitor whether data is input to the layer identified as being encrypted. When it is identified that data is input to the layer identified as encrypted, the electronic device 100 may perform element-by-element multiplication operation between the data input to the layer identified as encrypted and the security vector to obtain the first intermediate data. In addition, the electronic device 100 may obtain the first intermediate data by performing an element-by-element multiplication operation between the first intermediate data and the weight included in the at least one encrypted layer. At least one encrypted layer is encrypted by performing a multiplication operation between the existing layer and the inverse of the security vector. Accordingly, first output data obtained by performing a multiplication operation between the first intermediate data and at least one encrypted layer is the same as data obtained by performing a multiplication operation between input data and an existing layer.
  • the electronic device 100 may perform a multiplication operation between the encrypted layer and the input data in a different way. Specifically, when the second region of the convolutional layer is encrypted, the electronic device 100 may obtain the second intermediate data by performing element-by-element multiplication operation between the security vector and the weight located in the second region. In addition, the electronic device 100 may obtain the second output data by performing element-by-element multiplication operation between the second intermediate data and the input data. Since the second region is a region in which the multiplication operation with the reciprocal of the security vector is performed, the second intermediate data may be the same layer as the existing layer. Accordingly, when the element-by-element multiplication operation between the second intermediate data and the input data is performed, it is the same as the result of performing the element-by-element multiplication operation between the existing layer and the input data.
  • FIG. 4 is a sequence diagram illustrating an operation between the electronic device 100 and an external device according to an embodiment of the present disclosure.
  • the external device 200 may load the encrypted artificial neural network onto the volatile memory of the external device 200 or a hardware or software module capable of processing various operations ( S410 ).
  • the encrypted artificial neural network is an artificial neural network encrypted by the electronic device 100 based on the security key of the electronic device 100 .
  • the external device 200 may have received the encrypted artificial neural network from the electronic device 100 .
  • the electronic device 100 uploads an encrypted artificial neural network to a specific storage area (eg, a web cloud server, a portal site server, etc.), the external device 100 performs an encrypted artificial neural network in the specific storage area. You can download neural networks.
  • the external device 200 may transmit a signal requesting information for using the encrypted artificial neural network to the electronic device 100 (S420). That is, the external device 200 may request information for using the artificial neural network from the electronic device 100 in order to output valid data using the encrypted artificial neural network.
  • the request signal transmitted by the external device 200 to the electronic device 100 includes identification information for identifying the external device 200 (eg, the model name, model number, and user of the external device 200 ). information, etc.) may be included.
  • the electronic device 100 may identify whether the external device 200 has authority to the artificial neural network (S430) . Specifically, the electronic device 100 identifies whether the external device 200 has authority to the artificial neural network based on identification information of the external device 200 included in the request signal received from the external device 200 . can do. For example, the electronic device 100 may identify that the external device 200 transmitted the request signal through identification information included in the received request signal. In addition, the electronic device 100 may identify whether the user has set the external device 200 as a device capable of accessing the artificial neural network. In this case, the electronic device 100 may store information on the type of an external device that can access the artificial neural network. Information on the types of external devices that can access artificial neural networks is
  • the electronic device 100 may transmit information for using the artificial neural network based on the identification result (S440). That is, when the user sets the external device 200 as a device that can access the artificial neural network, the electronic device 100 may identify that the external device 200 has authority to the artificial neural network.
  • the information for using the artificial neural network may include a security key of the electronic device 100 and a mapping function (eg, a hash function, etc.) using the security key and identification information of the artificial neural network as a key.
  • the mapping function may be a function that outputs a security vector and metadata when a security key and identification information of an artificial neural network are input as keys.
  • the external device 200 may infer an artificial neural network based on the information received from the electronic device 100 ( S450 ).
  • inferring the artificial neural network may include using the artificial neural network, such as inputting data into the artificial neural network to obtain output data.
  • the external device 200 may load the security vector and metadata by applying the security key of the electronic device 100 and the identification information of the artificial neural network to the mapping function.
  • the external device 200 may perform an operation between the input data and the encrypted artificial neural network using the loaded security vector and metadata.
  • the process in which the external device 200 performs the operation between the input data and the artificial neural network may be the same as the process in which the electronic device 100 performs the operation between the input data and the artificial neural network described with reference to FIGS. 1A and 3 , so it is redundant. The description will be omitted.
  • the server 300 is at least one of a server capable of managing the electronic device 100 and providing various data, a server of a manufacturer of the electronic device 100, or a server capable of providing a service to the electronic device 100 . may contain one.
  • the server 300 may generate an artificial neural network that outputs output data by applying various artificial intelligence algorithms to input data (S510). Specifically, the server 300 may generate an artificial neural network using a command input by a user, and may receive an artificial neural network from an external device or the like.
  • the server 300 may transmit a signal requesting identification information for the electronic device 100 to the electronic device 100 ( S520 ).
  • the identification information about the electronic device 100 may mean information that can identify the electronic device 100, and examples of identification information include a unique hardware key, a model number, a serial number, and an IMEI number (International). Mobile Equipment Identity), but is not limited thereto.
  • the electronic device 100 may transmit identification information of the electronic device 100 to the server 300 ( S530 ).
  • the server 300 may generate a security key of the electronic device 100 corresponding to the artificial neural network based on the identification information received from the electronic device 100 ( S540 ). Specifically, the server 300 may generate a security key capable of encrypting the artificial neural network using the encryption module for identification information of the electronic device 100 .
  • the server 300 may transmit the artificial neural network and the security key of the electronic device 100 corresponding to the artificial neural network to the electronic device 100 ( S550 ). Then, the electronic device 100 may encrypt the artificial neural network based on the received security key (S560). Since the method in which the electronic device 100 encrypts the artificial neural network based on the security key has been described above, overlapping embodiments will be omitted.
  • FIG. 6 is a flowchart illustrating a method of controlling the electronic device 100 according to an embodiment of the present disclosure.
  • the electronic device 100 may obtain a security vector by using the metadata and the security key of the electronic device 100 ( S610 ). Specifically, the electronic device 100 may determine the size of the security vector by using the metadata. In addition, the electronic device 100 may acquire element data to be input into the security vector by using the security key, and may acquire the security vector by identifying data corresponding to the determined vector size among the acquired element data.
  • the electronic device 100 may map the obtained security vector and metadata with the security key and identification information of the artificial neural network ( S620 ).
  • the electronic device 100 may map the security key and identification information of the artificial neural network with the security vector and metadata using a hash function.
  • the security key and hash function may be stored in a security area of the electronic device 100 .
  • the electronic device 100 may perform encryption on at least one layer among a plurality of layers included in the artificial neural network by using the metadata and the security vector. Specifically, the electronic device 100 may identify a layer to be encrypted among a plurality of layers included in the artificial neural network through metadata. In addition, the electronic device 100 may encrypt the identified layer by performing a multiplication operation between the weight included in the identified layer and the inverse of the security vector.
  • the electronic device 100 may load metadata and a security vector using the security key and identification information of the artificial neural network.
  • the electronic device 100 may load a security vector and metadata mapped by applying a hash function to the identification information and security key of the artificial neural network.
  • the electronic device 100 may perform an operation between the input data and at least one encrypted layer based on the loaded security vector and metadata ( S650 ).
  • the electronic device 100 may identify at least one encrypted layer among a plurality of layers through metadata.
  • the electronic device 100 may monitor whether data is input to at least one layer identified as being encrypted.
  • the electronic device 100 may obtain the first intermediate data by performing a multiplication operation between the at least one layer identified as encrypted and the security vector.
  • the electronic device 100 may obtain the first output data by performing a multiplication operation between the obtained first intermediate data and the weight included in the at least one encrypted layer.
  • the electronic device 100 may obtain second intermediate data by performing a multiplication operation between a weight located in the encrypted area and a security vector. Then, the electronic device 100 may obtain the second output data by outputting a multiplication operation between the second intermediate data and the data input to the encrypted layer.
  • expressions such as “have,” “may have,” “include,” or “may include” indicate the presence of a corresponding characteristic (eg, a numerical value, function, operation, or component such as a part). and does not exclude the presence of additional features.
  • expressions such as “A or B,” “at least one of A and/and B,” or “one or more of A or/and B” may include all possible combinations of the items listed together.
  • “A or B,” “at least one of A and B,” or “at least one of A or B” means (1) includes at least one A, (2) includes at least one B; Or (3) it may refer to all cases including both at least one A and at least one B.
  • a component eg, a first component is "coupled with/to (operatively or communicatively)" to another component (eg, a second component)
  • another component eg, a second component
  • the certain element may be directly connected to the other element or may be connected through another element (eg, a third element).
  • a component eg, a first component
  • another component eg, a second component
  • a device configured to may mean that the device is “capable of” with other devices or parts.
  • a coprocessor configured (or configured to perform) A, B, and C may include a processor dedicated to performing the operations (eg, an embedded processor), or executing one or more software programs stored in a memory device. By doing so, it may mean a generic-purpose processor (eg, a CPU or an application processor) capable of performing corresponding operations.
  • the electronic device 100 and the external device may include, for example, at least one of a smartphone, a tablet PC, a desktop PC, a laptop PC, a netbook computer, a server, a PDA, a medical device, or a wearable device. may include.
  • the electronic device may include, for example, at least one of a television, a refrigerator, an air conditioner, an air purifier, a set-top box, and a media box (eg, Samsung HomeSyncTM, Apple TVTM, or Google TVTM).
  • Various embodiments of the present disclosure may be implemented as software including instructions stored in a machine-readable storage media readable by a machine (eg, a computer).
  • a device that can be called and operated according to the called command it may include an electronic device (eg, the electronic device 100) according to the disclosed embodiments.
  • the processor directly or A function corresponding to the instruction may be performed using other components under the control of the processor.
  • the instruction may include code generated or executed by a compiler or an interpreter.
  • a device-readable storage medium includes: It may be provided in the form of a non-transitory storage medium, where the 'non-transitory storage medium' does not include a signal and means that it is tangible and data is semi-permanent in the storage medium Alternatively, temporary storage is not distinguished, for example, a 'non-transitory storage medium' may include a buffer in which data is temporarily stored.
  • the method according to various embodiments disclosed in the present disclosure may be provided by being included in a computer program product.
  • Computer program products may be traded between sellers and buyers as commodities.
  • the computer program product may be distributed in the form of a machine-readable storage medium (eg, compact disc read only memory (CD-ROM)) or online through an application store (eg, Play StoreTM).
  • an application store eg, Play StoreTM
  • at least a portion of the computer program product eg, a downloadable app
  • a storage medium such as a memory of a server of a manufacturer, a server of an application store, or a relay server, or is temporarily stored can be created with
  • Each of the components may be composed of a singular or a plurality of entities, and some sub-components of the aforementioned sub-components may be omitted, or other sub-components may be various It may be further included in the embodiment.
  • some components eg, a module or a program
  • operations performed by a module, program, or other component may be sequentially, parallel, repetitively or heuristically executed, or at least some operations may be executed in a different order, omitted, or other operations may be added.

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)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Bioethics (AREA)
  • Storage Device Security (AREA)

Abstract

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

Description

전자 장치 및 그의 제어 방법
본 개시는 전자 장치 및 이의 제어 방법에 관한 것으로서, 더욱 상세하게는 보안 키 및 인공 신경망과 관련된 메타 데이터를 바탕으로 인공 신경망을 암호화하여 보안이 필요한 데이터의 보안을 유지하는 전자 장치 및 이의 제어 방법에 관한 것이다.
기계 학습(예로, 딥 러닝(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)가 될 수 있으며, 보안 벡터 및 메타 데이터틑 해시 값(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 PCTKR2020016662-appb-img-000001
)(40)를 획득할 수 있다. 그리고, 프로세서(120)는 입력 데이터(H)(20)와 보안 벡터(S)(30)간의 곱 연산을 수행하여 제1 중간 데이터(
Figure PCTKR2020016662-appb-img-000002
)를 획득하고, 제1 중간 데이터와 암호화된 레이어(
Figure PCTKR2020016662-appb-img-000003
)(40)간의 곱 연산을 수행하여 제1 출력 데이터(
Figure PCTKR2020016662-appb-img-000004
)(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))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.

Claims (15)

  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항에 있어서,
    상기 보안 키 및 상기 해시 함수는 상기 메모리 또는 상기 전자 장치의 프로세서 중 보안 영역에 저장되고,
    상기 로딩하는 단계는,
    상기 데이터가 상기 암호화된 레이어가 포함된 인공 신경망에 입력되면, 상기 인공 신경망의 식별 정보를 상기 보안 영역에 로딩하고, 상기 보안 영역 상에서 상기 로딩된 인공 신경망의 식별 정보 및 상기 보안 키에 상기 해시 함수를 적용하여 상기 메타 데이터 및 상기 보안 벡터를 로딩하는 단계;를 포함하는 전자 장치의 제어 방법.
PCT/KR2020/016662 2020-04-29 2020-11-24 전자 장치 및 그의 제어 방법 WO2021221256A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/437,320 US11995196B2 (en) 2020-04-29 2020-11-24 Electronic apparatus and method for controlling thereof

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
WO2021221256A1 true WO2021221256A1 (ko) 2021-11-04

Family

ID=78332073

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2020/016662 WO2021221256A1 (ko) 2020-04-29 2020-11-24 전자 장치 및 그의 제어 방법

Country Status (3)

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

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230069729A (ko) * 2021-11-12 2023-05-19 삼성전자주식회사 디스플레이 장치 및 그의 동작 방법
US20230185932A1 (en) * 2021-12-09 2023-06-15 Huawei Technologies Co., Ltd. Methods, systems and computer program products for protecting a deep reinforcement learning agent

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180086436A (ko) * 2015-12-16 2018-07-31 제말토 에스에이 사용자를 인증하기 위한 방법, 디바이스, 서버, 및 시스템
KR20190011180A (ko) * 2017-07-24 2019-02-01 삼성전자주식회사 이미지를 암호화하여 외부 서버에 업로드하기 위한 전자 장치 및 이의 제어 방법
US20200036510A1 (en) * 2018-07-25 2020-01-30 Sap Se Neural network encryption system

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8655939B2 (en) * 2007-01-05 2014-02-18 Digital Doors, Inc. Electromagnetic pulse (EMP) hardened information infrastructure with extractor, cloud dispersal, secure storage, content analysis and classification and method therefor
US8046314B2 (en) * 2007-07-20 2011-10-25 Schlumberger Technology Corporation Apparatus, method and system for stochastic workflow in oilfield operations
US9484022B2 (en) * 2014-05-23 2016-11-01 Google Inc. Training multiple neural networks with different accuracy
US9053124B1 (en) * 2014-09-30 2015-06-09 Code 42 Software, Inc. System for a distributed file system element collection
EP3336774B1 (en) * 2016-12-13 2020-11-25 Axis AB Method, computer program product and device for training a neural network
CN107086910B (zh) 2017-03-24 2018-08-10 中国科学院计算技术研究所 一种针对神经网络处理的权重加解密方法和系统
US10706349B2 (en) 2017-05-25 2020-07-07 Texas Instruments Incorporated Secure convolutional neural networks (CNN) accelerator
EP4080393A1 (en) 2017-07-24 2022-10-26 Samsung Electronics Co., Ltd. Electronic device and method for controlling the electronic device
CN109426861A (zh) 2017-08-16 2019-03-05 阿里巴巴集团控股有限公司 数据加密、机器学习模型训练方法、装置及电子设备
US10887344B2 (en) 2017-09-22 2021-01-05 Nec Corporation Network endpoint spoofing detection and mitigation
JP6730740B2 (ja) 2017-12-25 2020-07-29 株式会社アクセル 処理装置、処理方法、処理プログラム、及び暗号処理システム
US20190244138A1 (en) 2018-02-08 2019-08-08 Apple Inc. Privatized machine learning using generative adversarial networks
US10419221B1 (en) 2018-03-07 2019-09-17 Open Inference Holdings LLC Systems and methods for privacy-enabled biometric processing
US11556730B2 (en) 2018-03-30 2023-01-17 Intel Corporation Methods and apparatus for distributed use of a machine learning model
US11574051B2 (en) 2018-08-02 2023-02-07 Fortinet, Inc. Malware identification using multiple artificial neural networks
US10795994B2 (en) * 2018-09-26 2020-10-06 Mcafee, Llc Detecting ransomware
US11823060B2 (en) * 2020-04-29 2023-11-21 HCL America, Inc. Method and system for performing deterministic data processing through artificial intelligence

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180086436A (ko) * 2015-12-16 2018-07-31 제말토 에스에이 사용자를 인증하기 위한 방법, 디바이스, 서버, 및 시스템
KR20190011180A (ko) * 2017-07-24 2019-02-01 삼성전자주식회사 이미지를 암호화하여 외부 서버에 업로드하기 위한 전자 장치 및 이의 제어 방법
US20200036510A1 (en) * 2018-07-25 2020-01-30 Sap Se Neural network encryption system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HONGYU LI; TIANQI HAN: "An End-to-End Encrypted Neural Network for Gradient Updates Transmission in Federated Learning", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 22 August 2019 (2019-08-22), 201 Olin Library Cornell University Ithaca, NY 14853 , XP081467669 *
NOURA HASSAN; SAMHAT ABED ELLATIF; HARKOUSS YOUSSEF; YAHIYA TARA ALI: "Design and realization of a new neural block cipher", 2015 INTERNATIONAL CONFERENCE ON APPLIED RESEARCH IN COMPUTER SCIENCE AND ENGINEERING (ICAR), IEEE, 8 October 2015 (2015-10-08), pages 1 - 6, XP032818495, DOI: 10.1109/ARCSE.2015.7338131 *

Also Published As

Publication number Publication date
US20230144680A1 (en) 2023-05-11
US11995196B2 (en) 2024-05-28
KR20210133471A (ko) 2021-11-08

Similar Documents

Publication Publication Date Title
US20190236747A1 (en) Digital watermark embedding method and extraction method, digital watermark embedding apparatus and extraction apparatus, and digital watermark system
WO2021221256A1 (ko) 전자 장치 및 그의 제어 방법
EP3552132A1 (en) Login information processing method and device
WO2020017898A1 (en) Electronic apparatus and control method thereof
JP6660030B2 (ja) 情報処理装置、人工知能識別方法及びプログラム
WO2020231177A1 (en) Electronic device and method for receiving push message stored in blockchain
CN107171789A (zh) 一种安全登录方法、客户端设备及服务器
CN111242317A (zh) 管理应用的方法、装置、计算机设备和存储介质
WO2020032348A1 (ko) 데이터를 식별 처리하는 방법, 시스템 및 비일시성의 컴퓨터 판독 가능 기록 매체
US11606197B2 (en) Method and system for encrypting and decrypting a facial segment in an image
WO2020096262A1 (ko) 전자 장치, 그의 개인 정보 제공 방법 및 이를 기록한 컴퓨터 판독 가능 기록매체
EP3230913B1 (en) Trusted predictive analytic execution middleware
WO2020235858A1 (en) Server and control method thereof
WO2024014706A1 (ko) 화질 개선을 수행하는 신경망 모델을 학습시키는 전자 장치 및 그 제어 방법
EP3850623A1 (en) Electronic device and method of controlling thereof
WO2020055002A1 (ko) 전자 장치 및 그의 제어 방법
WO2022124476A1 (ko) 전자 장치 및 이의 제어 방법
WO2022156552A1 (zh) 验证码图像加密方法、设备、存储介质和计算机程序产品
WO2022010064A1 (ko) 전자 장치 및 그의 제어 방법
WO2021015403A1 (en) Electronic apparatus and controlling method thereof
CN115174758A (zh) 图片的加密方法、装置、电子设备及存储介质
CN109743289B (zh) 一种基于神经网络的数据验证方法、装置及电子设备
WO2021045434A1 (ko) 전자 장치 및 이의 제어 방법
CN110619883B (zh) 音乐的信息嵌入方法、提取方法、装置、终端及存储介质
CN113312668A (zh) 一种基于隐私保护的图像识别方法、装置及设备

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20933020

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20933020

Country of ref document: EP

Kind code of ref document: A1