KR20220094052A - IoT SERVICE PROVIDING METHOD BASED ON ADAPTIVE ENCRYPTION AND IoT APPARATUS - Google Patents

IoT SERVICE PROVIDING METHOD BASED ON ADAPTIVE ENCRYPTION AND IoT APPARATUS Download PDF

Info

Publication number
KR20220094052A
KR20220094052A KR1020200185327A KR20200185327A KR20220094052A KR 20220094052 A KR20220094052 A KR 20220094052A KR 1020200185327 A KR1020200185327 A KR 1020200185327A KR 20200185327 A KR20200185327 A KR 20200185327A KR 20220094052 A KR20220094052 A KR 20220094052A
Authority
KR
South Korea
Prior art keywords
data
encryption
iot device
function code
processed
Prior art date
Application number
KR1020200185327A
Other languages
Korean (ko)
Other versions
KR102508448B1 (en
Inventor
김한준
김봉준
허선영
이재호
정신녕
이용우
Original Assignee
연세대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 연세대학교 산학협력단 filed Critical 연세대학교 산학협력단
Priority to KR1020200185327A priority Critical patent/KR102508448B1/en
Publication of KR20220094052A publication Critical patent/KR20220094052A/en
Application granted granted Critical
Publication of KR102508448B1 publication Critical patent/KR102508448B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/045Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16YINFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
    • G16Y30/00IoT infrastructure
    • G16Y30/10Security thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Selective Calling Equipment (AREA)

Abstract

An IoT service method using adaptive encryption includes the steps of: receiving, by an IoT device, a service request using collected data; analyzing, by the IoT device, a function code for processing the collected data and converting the function code so that the IoT device can process collected data encrypted by a homomorphic encryption method according to the type of data; transmitting, by the IoT device, the converted function code to a cloud; and receiving, by the IoT device, a result processed using the encrypted collected data and the converted function code from the cloud.

Description

적응적 암호화를 이용한 IoT 서비스 방법 및 IoT 장치{IoT SERVICE PROVIDING METHOD BASED ON ADAPTIVE ENCRYPTION AND IoT APPARATUS}IoT service method and IoT device using adaptive encryption

이하 설명하는 기술은 동형 암호화 기반한 IoT 서비스의 보안 기법에 관한 것이다.The technology to be described below relates to a security method of an IoT service based on homomorphic encryption.

FaaS(Function-as-a-Service)는 전용 서버 없이 IoT(Internet of Things) 서비스를 구축하는데 유용하다. 사용자는 IoT 장치를 통해 자신의 개인정보를 클라우드에 전송할 수 있다. 예컨대, 사용자는 얼굴 영상을 클라우드에 전달할 수 있다. 개인 정보 보호를 위하여 서비스 사업자는 개인 정보를 암호화하여 관리할 수 있다.Function-as-a-Service (FaaS) is useful for building Internet of Things (IoT) services without a dedicated server. Users can transmit their personal information to the cloud through IoT devices. For example, the user may transmit the face image to the cloud. To protect personal information, service providers can encrypt and manage personal information.

한편, 암호화 기법 중 동형 암호화(homomorphic encryption)는 개인 정보를 보호하면서도 클라우드에서 암호화된 정보를 기준으로 데이터 처리를 가능하게 한다.Meanwhile, among encryption techniques, homomorphic encryption enables data processing based on encrypted information in the cloud while protecting personal information.

On the use of Homomorphic Encryption to Secure Applications, Services, and Routing Protocols, European Journal of Scientific Research ISSN 1450-216X Vol. 88 No 3 October, 2012, pp.416-438On the use of Homomorphic Encryption to Secure Applications, Services, and Routing Protocols, European Journal of Scientific Research ISSN 1450-216X Vol. 88 No 3 October, 2012, pp.416-438

동형 암호화는 데이터 처리의 연산 및 통신에 많은 부하가 걸린다. 따라서, 동형 암호화를 사용하는 IoT 서비스는 시스템에 많은 자원을 요구하는 문제점이 있다.Homomorphic encryption places a lot of load on data processing computation and communication. Accordingly, the IoT service using homomorphic encryption has a problem in that it requires a lot of resources in the system.

이하 설명하는 기술은 적응적으로 동형 암호화 및 대칭키 암호화(symmetric-key encryption)를 사용하는 IoT 서비스를 제공하고자 한다.The technology to be described below is intended to provide an IoT service that adaptively uses homomorphic encryption and symmetric-key encryption.

적응적 암호화를 이용한 IoT 서비스 방법은 IoT 장치가 수집 데이터를 이용한 서비스 요청을 수신하는 단계, 상기 IoT 장치가 상기 수집 데이터를 처리하는 함수 코드를 분석하여 데이터의 유형에 따라 동형 암호화 방식으로 암호화되는 수집 데이터를 처리할 수 있도록 상기 함수 코드를 변환하는 단계, 상기 IoT 장치가 상기 변환한 함수 코드를 클라우드에 전송하는 단계 및 상기 IoT 장치가 암호화된 수집 데이터 및 상기 변환한 함수 코드를 이용하여 처리된 결과를 상기 클라우드로부터 수신하는 단계를 포함한다.The IoT service method using adaptive encryption includes: receiving, by the IoT device, a service request using collected data; converting the function code to process data, transmitting the converted function code by the IoT device to the cloud, and the IoT device processing result using the encrypted collected data and the converted function code and receiving from the cloud.

적응적 암호화를 이용한 IoT 장치는 수집 데이터를 생성하는 센싱장치, 원본 함수 코드를 분석하여 이용하는 데이터 중 동형 암호화 방식으로 암호화되는 데이터를 처리할 수 있도록 상기 원본 함수 코드를 변환하는 프로그램을 저장하는 저장장치, 상기 프로그램을 이용하여 상기 수집 데이터를 처리하는 함수 코드를 변환하는 연산장치 및 상기 변환된 함수 코드를 클라우드에 전송하고, 암호화된 수집 데이터 및 상기 변환한 함수 코드를 이용하여 처리된 결과를 상기 클라우드로부터 수신하는 통신장치를 포함한다.An IoT device using adaptive encryption is a sensing device that generates collected data, and a storage device that stores a program that converts the original function code so that it can process data encrypted by the isomorphic encryption method among data used by analyzing the original function code , an arithmetic device that converts a function code for processing the collected data using the program and transmits the converted function code to the cloud, and transmits the encrypted collected data and a result processed using the converted function code to the cloud It includes a communication device that receives from

이하 설명하는 기술은 적응적으로 동형 암호화와 대칭키 암호화를 이용하여 개인 정보를 보호하면서도 클라우드에서 암호화된 데이터를 이용한 서비스 제공을 가능하게 한다. 대칭키 암호화는 동형 암호화에 비하여 복잡도가 낮아 빠른 처리가 가능하다. 따라서, 이하 설명하는 기술은 동혐 암호화만을 사용하는 방식에 비하여 시스템의 부하가 낮다.The technology described below enables the provision of services using encrypted data in the cloud while adaptively protecting personal information using homomorphic encryption and symmetric key encryption. Symmetric key encryption has a lower complexity than homomorphic encryption, so it can be processed quickly. Therefore, the technique to be described below has a lower system load compared to the method using only homogeneous encryption.

도 1은 대칭키 암호화 및 동형 암호화의 성능을 비교한 결과이다.
도 2는 적응적 암호화 기반 IoT 서비스 시스템의 예이다.
도 3은 컴파일러 동작에 대한 예이다.
도 4는 런타임 동작에 대한 예이다.
도 5는 IoT 장치의 구성에 대한 예이다.
1 is a result of comparing the performance of symmetric key encryption and homomorphic encryption.
2 is an example of an adaptive encryption-based IoT service system.
3 is an example of a compiler operation.
4 is an example of runtime operation.
5 is an example of a configuration of an IoT device.

이하 설명하는 기술은 다양한 변경을 가할 수 있고 여러 가지 실시례를 가질 수 있는 바, 특정 실시례들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 이하 설명하는 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 이하 설명하는 기술의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.The technology to be described below can apply various changes and can have various embodiments, and specific embodiments are illustrated in the drawings and described in detail. However, this is not intended to limit the technology described below to specific embodiments, and it should be understood to include all changes, equivalents, and substitutes included in the spirit and scope of the technology described below.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 해당 구성요소들은 상기 용어들에 의해 한정되지는 않으며, 단지 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 이하 설명하는 기술의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.Terms such as first, second, A, and B may be used to describe various components, but the components are not limited by the above terms, and only for the purpose of distinguishing one component from other components. is used only as For example, a first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component without departing from the scope of the present invention. and/or includes a combination of a plurality of related listed items or any of a plurality of related listed items.

본 명세서에서 사용되는 용어에서 단수의 표현은 문맥상 명백하게 다르게 해석되지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함한다" 등의 용어는 설명된 특징, 개수, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 의미하는 것이지, 하나 또는 그 이상의 다른 특징들이나 개수, 단계 동작 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 배제하지 않는 것으로 이해되어야 한다.In terms of terms used herein, the singular expression should be understood to include the plural expression unless the context clearly dictates otherwise, and terms such as "comprises" include the described feature, number, step, operation, element. , parts or combinations thereof are to be understood, but not to exclude the possibility of the presence or addition of one or more other features or numbers, step operation components, parts or combinations thereof.

도면에 대한 상세한 설명을 하기에 앞서, 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.Prior to a detailed description of the drawings, it is intended to clarify that the classification of the constituent parts in the present specification is merely a division according to the main function each constituent unit is responsible for. That is, two or more components to be described below may be combined into one component, or one component may be divided into two or more for each more subdivided function. In addition, each of the constituent units to be described below may additionally perform some or all of the functions of other constituent units in addition to the main function it is responsible for. Of course, it can also be performed by being dedicated to it.

또, 방법 또는 동작 방법을 수행함에 있어서, 상기 방법을 이루는 각 과정들은 문맥상 명백하게 특정 순서를 기재하지 않은 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 과정들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.In addition, in performing the method or method of operation, each process constituting the method may occur differently from the specified order unless a specific order is clearly described in context. That is, each process may occur in the same order as specified, may be performed substantially simultaneously, or may be performed in the reverse order.

이하 설명에서 사용하는 용어 및 기술에 대하여 간략하게 설명한다.Terms and techniques used in the following description will be briefly described.

동형 암호화는 데이터를 암호화된 상태에서 연산할 수 있는 암호화 방법이다. 동형 암호화를 위한 다양한 구현 기술이 있다. 암호문에 대한 연산의 종류를 기준으로 동형 암호화는 AHE(additive homomorphic encryption, LHE(leveled homomorphic encryption) 및 FHE(fully homomorphic encryption)로 구분할 수 있다. 연구자는 FHE 중 BFV 스킴을 사용하여 시뮬레이션을 수행하였다. BFV는 RLWE(Ring Learning with Errors) 기반한 방식이다. 구체적인 암호화 과정에 대한 설명은 생략한다. 이하 설명하는 동형 암호화는 다양한 기법 중 어느 하나를 이용할 수 있다. 동형 암호화는 평문을 암호문으로 변환한다. 데이터 처리 장치가 암호문을 이용하여 연산한 결과는 새로운 암호문이 된다. 이후 새로운 암호문을 복호하여 얻은 평문은 암호화하기 전 원래 데이터의 연산 결과와 같다.Homomorphic encryption is an encryption method that can operate data in an encrypted state. There are various implementation techniques for isomorphic encryption. Homomorphic encryption can be divided into additive homomorphic encryption (AHE), leveled homomorphic encryption (LHE), and fully homomorphic encryption (FHE) based on the type of operation on the ciphertext. The researcher performed a simulation using the BFV scheme among FHE. BFV is a method based on RLWE (Ring Learning with Errors). A detailed description of the encryption process is omitted. Homogeneous encryption described below can use any one of various techniques. Homogeneous encryption converts plaintext into ciphertext. The result of the operation using the ciphertext by the processing unit becomes a new ciphertext, and the plaintext obtained by decrypting the new ciphertext is the same as the operation result of the original data before encryption.

대칭키 암호화는 암호화와 복호화에 같은 암호 키를 쓰는 암호화 방법이다. 대표적인 대칭키 암호화는 AES(Advanced Encryption Standard)가 있다. 구체적인 암호화 과정에 대한 설명은 생략한다. Symmetric key encryption is an encryption method that uses the same encryption key for encryption and decryption. A representative symmetric key encryption is AES (Advanced Encryption Standard). A detailed description of the encryption process will be omitted.

이하 설명하는 기술은 동형 암호화와 대칭키 암호화를 사용하여 정보를 보호한다. 전술한 바와 같이 동형 암호화는 연산 복잡도 및 데이터양이 많은 암호화 방식이며, 대칭키는 상대적으로 부하가 적은 암호화 방식이다. 도 1은 대칭키 암호화 및 동형 암호화의 성능을 비교한 결과이다. 도 1은 대칭키 암호화 방식 중 AES와 동형 암호화 방식 중 BFV를 비교한 예이다. 도 1은 두 개의 암호화 알고리즘을 Raspberry Pi 3B+에서 실행한 결과이다. 도 1(A)는 평문을 암호화한 암호문의 크기에 대한 결과이다. 도 1(B)는 평문의 암호화하는 시간에 대한 결과이다. 도1(C)는 암호문을 복호하는 시간에 대한 결과이다. 도 1을 살펴보면, 동형 암호화가 대칭키보다 데이터양도 많고, 데이터 처리 시간도 더 많이 걸리는 것을 알 수 있다. 평균적으로 대칭키 암호화가 동형 암호화에 비하여 약 4배 정도 암호문의 크기가 작았고, 암호화 시간은 약 58배 적었고, 복호 시간은 약 11배 적었다. The technology described below protects information using homomorphic encryption and symmetric key encryption. As described above, homomorphic encryption is an encryption method with a large amount of computational complexity and data, and a symmetric key is an encryption method with a relatively low load. 1 is a result of comparing the performance of symmetric key encryption and homomorphic encryption. 1 is an example of comparing AES among symmetric key encryption methods and BFV among homomorphic encryption methods. 1 is a result of executing two encryption algorithms on Raspberry Pi 3B+. 1(A) is a result of the size of the ciphertext obtained by encrypting the plaintext. Fig. 1(B) is a result of plaintext encryption time. Figure 1(C) is the result of the decryption time of the ciphertext. Referring to FIG. 1 , it can be seen that homomorphic encryption has a larger amount of data than a symmetric key and takes longer to process data. On average, symmetric key encryption was about 4 times smaller than homomorphic encryption, and the encryption time was 58 times shorter, and the decryption time was 11 times shorter.

FaaS는 클라우드 컴퓨팅 서비스에서 주목받는 서비스이다. FaaS는 별도의 서버 구축이나 관리 없이 개발자가 개발한 코드를 수행하게 한다. FaaS를 이용하면 개발자는 특정 명령이나 함수를 설계하고 업로드하여 바로 실행할 수 있다. 따라서, FaaS는 다양한 IoT 장치가 생성하는 이벤트를 처리하는 서비스 제공을 편리하게 한다. FaaS를 지원하는 IoT 플랫폼은 AWS Lambda, Azure Functions, Google Cloud Functions, IBM Cloud Functions 등이 있다. 이하 설명하는 IoT 서비스도 FaaS에 기반한 서비스라고 전제한다.FaaS is a service attracting attention in cloud computing services. FaaS allows developers to run code developed without building or managing a separate server. With FaaS, developers can design, upload, and execute specific commands or functions right away. Therefore, FaaS makes it convenient to provide services that process events generated by various IoT devices. IoT platforms that support FaaS include AWS Lambda, Azure Functions, Google Cloud Functions, and IBM Cloud Functions. It is assumed that the IoT service described below is also a service based on FaaS.

전술한 바와 같이 IoT 서비스는 다양한 개인 정보를 요구할 수 있다. 따라서, 암호화를 통한 정보 보호가 필요하다. FaaS 기반의 IoT 플랫폼에서 동형 암호화는 유효한 기법이다. 이는 동형 암호화가 개인 정보를 보호하면서도, 제3자가 제공하는 클라우드에서 암호문을 통한 데이터 처리를 가능하게 하기 때문이다. As described above, the IoT service may request various personal information. Therefore, information protection through encryption is required. In the FaaS-based IoT platform, homomorphic encryption is a valid technique. This is because homomorphic encryption protects personal information and enables data processing through ciphertext in the cloud provided by a third party.

FaaS에서 데이터 처리 함수(processing function)가 특정 사용자 데이터에 대한 연산 없이 클라우드에 저장하기만 한다면, 해당 데이터는 대칭키 암호화로 암호화하여도 충분하다. 이하 설명하는 기술은 IoT 장치가 수집 또는 생성한 데이터 중 클라우드에서 연산이 필요한 데이터만을 동형 암호화로 처리하고, 연산 대상이 아닌 데이터는 대칭키 암호화로 처리하고자 한다. 예컨대, 클라우드의 처리 함수가 안면 인식용 프로그램이라면, IoT 장치가 생성하는 데이터 중 얼굴 영상은 동형 암호화로 암호화하고, 연산처리에 사용하지 않는 비디오 클립은 대칭키로 암호화할 수 있다. 이와 같이 이하 설명하는 기술은 클라우드 서비스에서의 데이터 처리 여부에 따라 동형 암호화 및 대칭키 암호화를 적응적으로 사용한다. As long as the data processing function in FaaS just stores it in the cloud without any operation on specific user data, it is sufficient to encrypt the data with symmetric key encryption. The technology to be described below intends to process only data that requires computation in the cloud among data collected or generated by the IoT device with isomorphic encryption, and data that is not subject to computation with symmetric key encryption. For example, if the processing function of the cloud is a facial recognition program, a face image among data generated by the IoT device may be encrypted with homomorphic encryption, and a video clip not used for calculation processing may be encrypted with a symmetric key. As such, the technology to be described below adaptively uses homomorphic encryption and symmetric key encryption depending on whether data is processed in the cloud service.

도 2는 적응적 암호화 기반 IoT 서비스 시스템(100)의 예이다. IoT 서비스 시스템(100)은 IoT 장치(110), 프록시 서버(120) 및 클라우드 장치(130)를 포함한다.2 is an example of an adaptive encryption-based IoT service system 100 . The IoT service system 100 includes an IoT device 110 , a proxy server 120 , and a cloud device 130 .

IoT 장치(110)는 다양한 장치들 중 적어도 하나일 수 있다. IoT 장치(110)는 IoT 서비스를 위한 사용자 정보를 수집 내지 생성하는 장치이다. 도 1은 예시적으로 스마트기기, 스마트 워치, 자동차, 감시 카메라와 같은 장치를 도시하였다.The IoT device 110 may be at least one of various devices. The IoT device 110 is a device that collects or generates user information for an IoT service. 1 exemplarily shows devices such as a smart device, a smart watch, a car, and a surveillance camera.

IoT 장치(110)는 IoT 서비스를 위한 프로그램 내지 애플리케이션이 설치될 수 있다. IoT 장치(110)는 자신이 생성한 데이터 중 클라우드에서 연산 처리가 필요한지 여부에 따라 다른 암호화 방식으로 암호화할 수 있다. 즉, IoT 장치(110)는 자신이 생성한 데이터 중 클라우드에서 연산 처리되는 데이터는 동형 암호화 방식(HE)으로 암호화한다. 또한, IoT 장치(110)는 자신이 생성한 데이터 중 클라우드에서 연산 처리되지 않는 데이터는 대칭키 암호화 방식(SYM)으로 암호화한다.In the IoT device 110 , a program or application for an IoT service may be installed. The IoT device 110 may encrypt data generated by the IoT device using a different encryption method according to whether or not calculation processing is required in the cloud. That is, the IoT device 110 encrypts data that is calculated and processed in the cloud among data generated by the IoT device 110 using the homogeneous encryption method (HE). In addition, the IoT device 110 encrypts data that is not processed in the cloud among data generated by the IoT device 110 using a symmetric key encryption method (SYM).

IoT 장치(110)는 암호화된 데이터를 유선 또는 무선 네트워크를 통해 클라우드 측에 전달한다. 이때 전달되는 암호화된 데이터는 암호화 방식에 따라 두 가지 유형으로 구분된다. 두 가지 유형의 데이터는 다음과 같다. 제1 암호화 데이터는 동형 암호화 기반 데이터(HE)이고, 제2 암호화 데이터는 대칭키 암호화 기반 데이터(SYM)이다. The IoT device 110 transmits the encrypted data to the cloud side through a wired or wireless network. At this time, the transmitted encrypted data is divided into two types according to the encryption method. The two types of data are: The first encrypted data is homomorphic encryption-based data (HE), and the second encrypted data is symmetric key encryption-based data (SYM).

통상적으로 클라우드 시스템은 방화벽을 갖는다. 따라서, 클라우드 시스템에서 프록시 서버(120)가 IoT 장치(110)로부터 암호화된 데이터를 수신할 수 있다.Cloud systems typically have a firewall. Accordingly, in the cloud system, the proxy server 120 may receive encrypted data from the IoT device 110 .

클라우드 장치 내지 클라우드 시스템(130)은 프록시 서버(120)를 경유하여 IoT 장치(110)가 전달한 암호화된 데이터를 수신할 수 있다.The cloud device or the cloud system 130 may receive the encrypted data transmitted by the IoT device 110 via the proxy server 120 .

클라우드 장치(130)는 수신하는 데이터를 이용하여 일정한 연산이나 처리를 한다. 클라우드 장치(130)는 연산 처리가 필요 없는 제2 암호화 데이터는 별도의 저장 장치(140)에 저장하다. 클라우드 장치(130)는 연산이 필요한 제1 암호화 데이터를 이용하여 일정한 연산을 할 수 있다. 경우에 따라서, 클라우드 장치(130)는 연산이 필요한 제1 암호화 데이터를 다른 서버(150)에 전달하여 암호화 데이터를 처리하게 할 수 있다.The cloud device 130 performs a certain operation or processing using the received data. The cloud device 130 stores the second encrypted data that does not require computational processing in a separate storage device 140 . The cloud device 130 may perform a predetermined operation using the first encrypted data that requires calculation. In some cases, the cloud device 130 may transmit the first encrypted data requiring calculation to the other server 150 to process the encrypted data.

클라우드 장치(130)는 제1 암호화 데이터를 이용하여 연산한 결과를 프록시 서버(120)를 경유하여 IoT 장치(110)에 전달할 수 있다. 동형 암호화의 원리에 따라 연산한 결과도 일정하게 암호화된 데이터이다. IoT 장치(110)는 수신한 연산 결과를 복호한다. 복호한 결과는 IoT 장치(110)가 본래 생성한 데이터(평문)를 연산한 결과와 같다. IoT 장치(110)는 복호한 결과를 이용하여 일정한 서비스를 제공할 수도 있다.The cloud device 130 may transmit a result calculated using the first encrypted data to the IoT device 110 via the proxy server 120 . According to the principle of homomorphic encryption, the result of calculation is also uniformly encrypted data. The IoT device 110 decodes the received operation result. The decoded result is the same as the result of calculating the data (plaintext) originally generated by the IoT device 110 . The IoT device 110 may provide a predetermined service by using the decoded result.

상기와 같은 데이터 처리를 위하여 IoT 장치(110)는 소프트웨어적인 구성을 사용할 수 있다. IoT 장치(110)는 컴파일러(compiler)와 런타임(runtime)을 이용하여 암호화 데이터를 처리할 수 있다. 컴파일러는 데이터를 처리하는 코드(code)를 동형 암호화 대상과 대칭키 대상의 데이터를 별도로 처리할 수 있는 코드로 변환한다. 런타임은 프로그램 실행을 위한 운영 환경을 의미하며, 컴파일러가 전달하는 정보를 이용하여 데이터 암호화 및 복호화를 한다. 이하 구체적으로 설명한다.For data processing as described above, the IoT device 110 may use a software configuration. The IoT device 110 may process encrypted data using a compiler and a runtime. The compiler converts the data processing code into a code that can separately process the data of the homomorphic encryption target and the symmetric key target. Runtime refers to an operating environment for program execution, and data encryption and decryption are performed using information delivered by the compiler. Hereinafter, it will be described in detail.

한편, IoT 장치(110)가 연산 능력이나 가용 전력이 적은 장치인 경우, 프록시 서버(120)가 전술한 컴파일러와 런타임을 갖추어 데이터를 처리할 수 있다. 이 경우 IoT 장치(110)는 단순히 데이터를 생성하여 전달하는 기능을 하고, 프록시 서버(120)가 데이터 종류에 따라 암호화 방식을 선별하여 처리하는 역할을 하게 된다. 이하, 설명의 편의를 위하여 IoT 장치(110)가 컴파일러 및 런타임을 내장한 경우를 중심으로 설명한다. On the other hand, when the IoT device 110 is a device with low computing power or available power, the proxy server 120 may process data by having the above-described compiler and runtime. In this case, the IoT device 110 simply generates and transmits data, and the proxy server 120 selects and processes the encryption method according to the data type. Hereinafter, for convenience of description, a case in which the IoT device 110 has a built-in compiler and runtime will be mainly described.

컴파일러는 함수 코드를 분석하여 함수가 이용하는 데이터 항목별로 암호화 방식을 결정한다. 컴파일러는 각 데이터 항목별로 매핑한 암호화 방식을 테이블 형태로 저장할 수 있다. 컴파일러는 해당 매핑 정보를 런타임에게 전달한다.The compiler analyzes the function code and determines the encryption method for each data item used by the function. The compiler may store the mapped encryption method for each data item in the form of a table. The compiler passes the mapping information to the runtime.

도 3은 컴파일러 동작(200)에 대한 예이다. 컴파일러는 원본 함수 코드를 입력받고(210), 원본 함수 코드를 변환하는 과정(220~250)을 수행한다. 3 is an example of a compiler operation 200 . The compiler receives the original function code (210) and performs a process of converting the original function code (220-250).

컴파일러는 원본 함수 코드(original function code)를 입력받는다(210). 또한, 컴파일러는 원본 함수 코드 처리에 필요한 설정 파일(configuration file)을 입력받을 수도 있다(210).The compiler receives an original function code ( 210 ). Also, the compiler may receive a configuration file necessary for processing the original function code ( 210 ).

원본 함수 코드는 IoT 서비스 내용에 따라 사전에 제공된다. 도 3은 아래의 표 1의 원본 함수 코드를 예시한다.The original function code is provided in advance according to the contents of the IoT service. 3 illustrates the original function code of Table 1 below.

1 image = get('/camera/image')
2 video = get('/camera/video')
3 result = recognize(image)
4 DB.save(video)
5 pub('/recog/result', result)
1 image = get('/camera/image')
2 video = get('/camera/video')
3 result = recognize(image)
4 DB.save(video)
5 pub('/recog/result', result)

상기 원본 함수 코드는 얼굴 인식 함수이다. 원본 함수 코드는 IoT 장치인 카메라로부터 정지 이미지(image) 및 동영상(video)을 입력받는다(라인 1~2). 원본 함수 코드는 이미지를 이용하여 얼굴 인식하는 함수(recognize(image))로부터 결과를 입력받는다(라인 3). 원본 함수 코드는 동영상을 DB에 저장한다(라인 4). 그리고, 원본 함수 코드는 얼굴 인식 결과를 출력한다(라인 5).The original function code is a face recognition function. The original function code receives a still image and a video from a camera, which is an IoT device (lines 1 to 2). The original function code receives a result from a function that recognizes a face using an image (recognize(image)) (line 3). The original function code saves the video to the DB (line 4). Then, the original function code outputs the face recognition result (line 5).

컴파일러는 함수 코드를 분석하여 데이터 종속성(data dependence)을 파악한다(220). 함수 코드의 제1 명령(instruction)이 제2 명령의 결과를 사용한다면, 제1 명령은 제2 명령에 종속되는 관계이다. 상기 원본 함수 코드를 기준으로 설명하면 데이터 종속성은 {1→3→5} 및 {2→4}이다. {1→3→5}는 이미지를 이용한 얼굴 인식 과정이고, {2→4}는 동영상을 저장하는 과정이다. 데이터 종속성은 방향성 그래프인 데이터 종속 그래프(data dependence graph)로 표현 가능하다. 데이터 종속 그래프는 코드에서 서로 연결관계를 갖는 함수 또는 데이터 처리 과정이 하나의 그래프를 구성한다.The compiler analyzes the function code to determine data dependence ( 220 ). If a first instruction of the function code uses the result of the second instruction, the first instruction is dependent on the second instruction. When described based on the original function code, the data dependencies are {1→3→5} and {2→4}. {1→3→5} is a face recognition process using an image, and {2→4} is a process of saving a video. Data dependence can be expressed as a data dependence graph, which is a directed graph. In a data-dependent graph, a function or data processing process that has a connection relationship with each other in the code constitutes a graph.

컴파일러는 데이터 종속 그래프를 기준으로 데이터 소스(data source), 데이터 싱크(data sink) 및 연산 동작 여부를 결정한다(230). 도 3을 살펴보면, 데이터 종속 그래프에서 1번 및 2번은 데이터 소스이고, 5번은 데이터 싱크이다. 데이터 종속 그래프에서 3번은 일정한 연산 동작이 필요한 항목이고, 4번은 연산이 필요없는 항목에 해당한다.The compiler determines whether to operate a data source, a data sink, and an operation based on the data dependency graph ( 230 ). Referring to FIG. 3 , in the data dependency graph, No. 1 and No. 2 are data sources, and No. 5 is a data sink. In the data dependency graph, number 3 corresponds to an item that requires a certain operation operation, and number 4 corresponds to an item that does not require operation.

컴파일러는 데이터 종속 그래프의 각 항목에 대하여 적절한 암호화 방식을 결정한다(240). 도 3은 이 과정을 컬러링(coloring)이라고 명명하였다. 컴파일러는 데이터 종속 그래프 중 연산 동작이 포함된 그래프에서 데이터 소스 및 데이터 싱크를 확인하고, 해당 데이터 종속 그래프에 포함된 항목(노드)들에 대하여 동형 암호화 방식(HE)을 설정한다. 도 3에서 컴파일러는 데이터 종속 그래프에서 연산이 필요한 항목인 3번이 포함된 그래프에서 데이터 소스 1 번 및 데이터 싱크 5번을 찾아 동형 암호화 방식을 설정한다. 그리고, 컴파일러는 나머지 데이터 종속 그래프의 항목을 모두 대칭키 암호화 대상(STM)으로 설정한다. 최종적으로 컴파일러는 도 3의 하단에 표시한 암호 테이블(encryption table)과 같이 데이터 항목별로 암호화 방식을 매칭한 정보를 생성할 수 있다.The compiler determines an appropriate encryption method for each item of the data dependency graph ( 240 ). In Fig. 3, this process was named coloring. The compiler checks the data source and data sink in the graph including the operation operation among the data dependency graph, and sets the homogeneous encryption method (HE) for the items (nodes) included in the data dependency graph. In FIG. 3 , the compiler finds data source No. 1 and data sink No. 5 in the graph including No. 3, which is an item requiring operation in the data dependency graph, and sets the isomorphic encryption method. Then, the compiler sets all items of the remaining data dependency graph as symmetric key encryption target (STM). Finally, the compiler may generate information matching the encryption method for each data item, such as the encryption table shown at the bottom of FIG. 3 .

마지막으로 컴파일러는 240 과정에서 설정한 방식의 암호화 데이터를 처리 가능하도록 원본 함수 코드를 변환한다(250). 변환한 코드는 아래 표 2와 같다. 수정되거나 추가된 내용은 밑줄로 표시하였다.Finally, the compiler converts the original function code to be able to process the encrypted data of the method set in step 240 (250). The converted code is shown in Table 2 below. Modified or added content is underlined.

1a image = Ciphertext ()
1 image = get(‘/camera/image’)
2 video = get(‘/camera/video’)
3 result = recognize HE (image)
4 DB.save(video)
5 pub(‘/recog/result’, result)
1a image = Ciphertext ()
1 image = get('/camera/image')
2 video = get('/camera/video')
3 result = recognize HE (image)
4 DB.save(video)
5 pub('/recog/result', result)

컴파일러는 240 과정에서 동형 암호화 방식으로 설정한 항목을 처리할 수 있도록 코드를 수정한다. 컴파일러는 동형 암호화로 입력 이미지를 암호화하는 과정을 추가한다(라인 1a). 컴파일러는 동형 암호화된 입력 이미지를 이용하여 얼굴 인식을 처리하도록 해당 함수를 수정한다(라인 3). 또한, 컴파일러는 도 3의 하단에 표시한 복호 테이블(decryption table)과 같이 데이터 항목별로 복호 방식을 매칭한 정보를 생성할 수 있다.The compiler modifies the code so that it can process the items set in the isomorphic encryption method in step 240. The compiler adds the process of encrypting the input image with isomorphic encryption (line 1a). The compiler modifies the function to handle face recognition using the isomorphically encrypted input image (line 3). In addition, the compiler may generate information matching the decryption method for each data item, such as a decryption table shown at the bottom of FIG. 3 .

아래 표 3은 얼굴 인식 함수를 변환한 예를 나타낸다.Table 3 below shows an example of converting the face recognition function.

원본 코드(original code)original code 변환된 코드(transformed code)transformed code 1 def recognize(im,w1,w2):
2 c=conv(im,w1)
3 a1=act(c)
4 p=pool(a1)
5 a2=act(p)
6 r=fc(a2,w2)
7 return r
8
9 # Square Activation
10 def act(inp):
11 out=[]
12 for i in \
13 range(0,len(inp)):
14 r=inp[i]*inp[i]
15 out.append(r)
16 return out
17
1 def recognize(im,w1,w2):
2 c=conv(im,w1)
3 a1=act(c)
4 p=pool(a1)
5 a2=act(p)
6 r=fc(a2,w2)
7 return r
8
9 # Square Activation
10 def act(inp):
11 out=[]
12 for i in \
13 range(0,len(inp)):
14 r=inp[i]*inp[i]
15 out.append(r)
16 return out
17
1 def recognize HE (im,w1,w2):
2 c= conv HE (im,w1)
3 a1= act HE (c)
4 p= pool HE (a1)
5 a2= act HE (p)
6 r= fc HE (a2,w2)
7 return r
8
9 # Square Activation
10 def act HE (inp):
11 out=[]
12 for i in \
13 range(0,len(inp)):
14 r=inp[i]*inp[i]
15 r= relinearize ( r,reKey )
16 out.append(r)
17 return out
1 def recognize HE (im,w1,w2):
2 c= conv HE (im,w1)
3 a1= act HE (c)
4 p = pool HE (a1)
5 a2 = act HE (p)
6 r= fc HE (a2,w2)
7 return r
8
9 # Square Activation
10 def act HE (inp):
11 out=[]
12 for i in \
13 range(0,len(inp)):
14 r=inp[i]*inp[i]
15 r= relinearize ( r,reKey )
16 out. append(r)
17 return out

표 3의 좌측은 원본 코드이고, 우측은 변환된 코드를 예시한다. 컴파일러는 상기 얼굴 인식 함수 recognize()에서 동형 암호화된 데이터를 처리하도록 서브 함수를 변경한다. 변경된 함수는 HE로 표시하였다. 컴파일러는 동형 암호화된 데이터 처리를 위하여 라인 15에 새로운 함수 relinearize(r,reKey)를 추가한다. 해당 함수는 동형 암호화의 곱셈 연산을 위해 추가한 함수이다.The left side of Table 3 is the original code, and the right side illustrates the converted code. The compiler changes the sub-function to process isomorphic encrypted data in the face recognition function recognize(). Changed functions are marked as HE. The compiler adds a new function relinearize(r,reKey) on line 15 for processing isomorphic encrypted data. This function is a function added for the multiplication operation of homomorphic encryption.

런타임은 컴파일러로부터 매핑 정보를 수신한다. 매핑 정보는 전술한 암호 테이블 및 복호 테이블을 포함할 수 있다. 런타임은 매핑 정보에 따라 데이터 항목별로 암호화 및 복호화를 수행한다.The runtime receives mapping information from the compiler. The mapping information may include the above-described encryption table and decryption table. The runtime performs encryption and decryption for each data item according to the mapping information.

IoT 서비스는 복수의 장치가 관여할 수 있다. 예컨대, 현관문에 설치된 IP 카메라가 획득한 영상을 분석하고, 인증에 성공하면 해당 정보를 도어락에 전달하여 도어락을 제어할 수 있다. 도 4는 이와 같은 시나리오를 가정한 동작의 예이다. 도 4는 런타임 동작에 대한 예이다. An IoT service may involve a plurality of devices. For example, the image acquired by the IP camera installed on the front door is analyzed, and if authentication is successful, the corresponding information is transmitted to the door lock to control the door lock. 4 is an example of an operation assuming such a scenario. 4 is an example of runtime operation.

도 4(A)는 데이터 암호화 및 복호화를 위한 정보를 전달하는 과정이다. λ는 원본 함수 코드이다. 컴파일러는 원본 함수 코드를 변환한 함수 λ', 암호 테이블 및 복호 테이블을 생성한다.4(A) is a process of transferring information for data encryption and decryption. λ is the original function code. The compiler generates a function λ' converted from the original function code, an encryption table, and a decryption table.

배포 매니저는 IoT 장치 또는 프록시 서버에 내장된 객체일 수 있다. 배포 매니저(deploy manager)는 변환한 함수 λ'를 클라우드에 전달한다(①). 배포 매니저는 데이터 항목을 복호할 마스터 IoT 장치를 선택할 수 있다. 마스터 IoT 장치는 도어락이다. 마스터 IoT 장치는 암호화 및 복호화를 위한 키를 생성하고, 생성한 키를 배포 매니저에 전달한다(②, ③). 배포 매니저는 암호 테이블, 복호 테이블 및 암호/복호 위한 키를 필요한 다른 IoT 장치에 전달할 수 있다(④). 동형 암호화 및 대칭키 암호화를 위하여 서로 다른 키를 사용할 수 있다. 배포 매니저는 클라우드에도 필요한 공개키를 전달할 수 있다. The distribution manager may be an object embedded in an IoT device or a proxy server. The deployment manager delivers the converted function λ' to the cloud (①). The distribution manager can select a master IoT device to decrypt data items. The master IoT device is a door lock. The master IoT device generates a key for encryption and decryption, and delivers the generated key to the distribution manager (②, ③). The distribution manager can deliver the encryption table, decryption table, and key for encryption/decryption to other IoT devices that need it (④). Different keys can be used for homomorphic encryption and symmetric key encryption. The distribution manager can also pass the required public key to the cloud.

도 4(B)는 데이터를 암호화하고 복호하는 과정의 예이다. 도 4(B)는 IoT 장치인 IP 카메라에 설치된 런타임 A와 프록시 서버에 설치된 런타임 B를 각각 도시한다. 4(B) is an example of a process of encrypting and decrypting data. 4(B) shows a runtime A installed in an IP camera that is an IoT device and a runtime B installed in a proxy server, respectively.

예컨대, 클라우드가 IP 카메라에 이미지 및 동영상 촬영을 요청하면, λ 함수가 트리거될 수 있다. 런타임 B가 λ 함수를 트리거할 수 있다(ⓐ). For example, when the cloud requests the IP camera to take images and videos, the λ function may be triggered. Runtime B can trigger the λ function (ⓐ).

런타임 A는 암호 테이블을 기준으로 이미지 데이터(Iplain)를 동형 암호화(Enc(Iplain,HE))하고, 암호화한 데이터(Icipher)를 출력한다(ⓑ). 또한, 런타임 A는 암호 테이블을 기준으로 동영상 데이터(Vplain)를 대칭키 암호화(Enc(Vplain,SYM))하고, 암호화한 데이터(Vcipher)를 출력한다(ⓒ). Runtime A performs isomorphic encryption (Enc(I plain , HE)) on the image data (I plain ) based on the encryption table, and outputs the encrypted data (I cipher ) (ⓑ). In addition, the runtime A performs symmetric key encryption (Enc(V plain , SYM)) on the moving picture data (V plain ) based on the encryption table, and outputs the encrypted data (V cipher ) (©).

클라우드는 암호화된 데이터 Icipher 및 Vcipher를 수신한다. 클라우드는 수신한 Icipher를 연산하여 산출된 얼굴 인식 결과 Rcipher를 프록시에 전달할 수 있다. 런타임 B는 복호 테이블을 이용하여 Rcipher를 복호한다(ⓓ). 복호한 결과는 도어락과 같은 IoT 장치에 전달할 수 있다. 도 4는 프록시 서버가 클라우드의 연산 결과를 복호하는 예를 도시한다. 나아가, 도 4와 달리 IoT 장치에 설치된 런타임이 클라우드의 연산 결과를 복호할 수도 있다.The cloud receives encrypted data I cipher and V cipher . The cloud calculates the received I cipher and transmits the calculated face recognition result R cipher to the proxy. Runtime B uses the decoding table to decode R cipher (ⓓ). The decrypted result can be transmitted to an IoT device such as a door lock. 4 illustrates an example in which the proxy server decodes a cloud calculation result. Furthermore, unlike FIG. 4 , the runtime installed in the IoT device may decode the calculation result of the cloud.

도 5는 IoT 장치(300)의 구성에 대한 예이다. IoT 장치(300)는 도 2의 IoT 장치(110)에 해당한다. IoT 장치(300)는 센서장치(310), 저장장치(320), 메모리(320), 통신장치(340), 연산장치(350) 및 출력장치(360)를 포함할 수 있다.5 is an example of the configuration of the IoT device 300 . The IoT device 300 corresponds to the IoT device 110 of FIG. 2 . The IoT device 300 may include a sensor device 310 , a storage device 320 , a memory 320 , a communication device 340 , an arithmetic device 350 , and an output device 360 .

센서장치(310)는 IoT 장치(300)의 주변 또는 사용자에 대한 정보를 센싱하는 장치이다. 예컨대, 센서장치(310)는 이미지 센서, 온도 센서, 위치 센서, 생체 정보 수집 센서 등을 포함할 수 있다.The sensor device 310 is a device that senses information about the surroundings of the IoT device 300 or a user. For example, the sensor device 310 may include an image sensor, a temperature sensor, a location sensor, a biometric information collection sensor, and the like.

저장장치(320)는 센서장치가 생성한 데이터를 저장할 수 있다.The storage device 320 may store data generated by the sensor device.

저장장치(320)는 전술한 데이터 처리를 위한 프로그램을 저장할 수 있다. 예컨대, 저장장치(320)는 전술한 원본 함수 코드를 저장할 수 있다.The storage device 320 may store the above-described data processing program. For example, the storage device 320 may store the above-described original function code.

저장장치(320)는 동형 암호화 및 대칭키 암호화를 수행하는 프로그램을 저장할 수 있다.The storage device 320 may store a program for performing homomorphic encryption and symmetric key encryption.

저장장치(320)는 전술한 컴파일러 및/또는 런타임을 저장할 수 있다. 컴파일러 및 런타임은 소프트웨어 객체에 해당한다. The storage device 320 may store the aforementioned compiler and/or runtime. Compilers and runtimes are software objects.

저장 장치(320)는 평문을 암호화한 데이터, 암호문을 복호한 데이터 등을 저장할 수도 있다. The storage device 320 may store data obtained by encrypting plain text, data obtained by decrypting encrypted text, and the like.

저장 장치(320)는 원본 함수 코드를 변환한 함수 코드, 암호 테이블 및 복호 테이블을 저장할 수 있다.The storage device 320 may store the function code converted from the original function code, the encryption table, and the decryption table.

메모리(330)는 IoT 장치(300)가 데이터를 처리하는 과정에서 발생하는 임시 데이터를 저장할 수 있다.The memory 330 may store temporary data generated while the IoT device 300 processes data.

통신장치(340)는 네트워크를 통해 일정한 정보를 수신하고 전송하는 구성을 의미한다. The communication device 340 refers to a configuration for receiving and transmitting certain information through a network.

통신장치(340)는 특정 기능 함수의 실행 요청(트리거)을 수신할 수 있다.The communication device 340 may receive a request (trigger) to execute a specific function function.

통신장치(340)는 다른 IoT 장치로부터 암호화를 위한 공유키를 수신할 수 있다.The communication device 340 may receive a shared key for encryption from another IoT device.

통신장치(340)는 원본 함수 코드를 변환한 함수 코드, 암호 테이블 및 복호 테이블을 송신할 수 있다.The communication device 340 may transmit the function code converted from the original function code, the encryption table, and the decryption table.

통신장치(340)는 암호화한 데이터를 프록시 서버 또는 클라우드에 송신할 수 있다. The communication device 340 may transmit the encrypted data to a proxy server or a cloud.

통신장치(340)는 클라우드에서 동형 암호화된 데이터를 이용하여 연산한 결과를 수신할 수 있다.The communication device 340 may receive a result of an operation using isomorphic encrypted data in the cloud.

연산장치(330)는 컴파일러를 실행하여 원본 함수 코드를 암호화 데이터의 처리가 가능한 함수로 변환할 수 있다. 예컨대, 연산장치(330)는 컴파일러를 실행하여 원본 함수 코드를 분석하면서 데이터 종속성을 결정하여, 데이터 종속 그래프를 산출할 수 있다. 연산장치(330)는 데이터 종속 그래프를 기준으로 전술한 바와 같이 데이터 항목별로 암호화 방식을 결정할 수 있다. 연산장치(330)는 원본 함수 코드를 동형 암호화 데이터를 처리할 수 있는 코드로 변환할 수 있다.The arithmetic unit 330 may convert the original function code into a function capable of processing encrypted data by executing a compiler. For example, the arithmetic unit 330 may determine the data dependency while analyzing the original function code by executing the compiler to calculate the data dependency graph. The arithmetic unit 330 may determine the encryption method for each data item as described above based on the data dependency graph. The arithmetic unit 330 may convert the original function code into a code capable of processing homomorphic encrypted data.

연산장치(330)는 데이터 항목별로 데이터 암호화 및 복호화에 필요한 매칭 정보를 생성할 수 있다. 연산장치(330)는 전술한 암호 테이블 및 복호 테이블을 생성할 수 있다. The arithmetic unit 330 may generate matching information required for data encryption and decryption for each data item. The arithmetic unit 330 may generate the above-described encryption table and decryption table.

연산장치(330)는 런타임을 실행하여 암호 테이블 기준으로 데이터 항목별로 설정된 암호화 방식에 따라 데이터를 암호화할 수 있다. 연산장치(330)는 복호 테이블 기준으로 클라우드로부터 수신한 연산 결과(동형 암호문을 연산한 결과)를 복호할 수 있다.The arithmetic unit 330 may encrypt data according to the encryption method set for each data item based on the encryption table by executing the runtime. The computing device 330 may decrypt the operation result (the result of calculating the homomorphic ciphertext) received from the cloud based on the decryption table.

연산장치(330)는 암호화 및 복호화를 위한 키를 생성할 수도 있다.The arithmetic unit 330 may generate a key for encryption and decryption.

연산 장치(330)는 데이터를 처리하고, 일정한 연산을 처리하는 프로세서, AP, 프로그램이 임베디드된 칩과 같은 장치일 수 있다. The computing device 330 may be a device such as a processor, an AP, or a chip embedded with a program that processes data and processes a predetermined operation.

출력 장치(360)는 일정한 정보를 출력할 수 있다. 출력 장치(360)는 IoT 서비스를 위한 인터페이스 화면 및 클라우드에서 제공하는 서비스 결과를 출력할 수 있다.The output device 360 may output certain information. The output device 360 may output an interface screen for an IoT service and a service result provided by the cloud.

또한, 상술한 바와 같은 적응적 암호화 방법, IoT 서비스 제공 방법 및 클라우드의 데이터 처리 방법은 컴퓨터에서 실행될 수 있는 실행가능한 알고리즘을 포함하는 프로그램(또는 어플리케이션)으로 구현될 수 있다. 상기 프로그램은 일시적 또는 비일시적 판독 가능 매체(non-transitory computer readable medium)에 저장되어 제공될 수 있다.In addition, the adaptive encryption method, the IoT service providing method, and the cloud data processing method as described above may be implemented as a program (or application) including an executable algorithm that can be executed in a computer. The program may be provided by being stored in a temporary or non-transitory computer readable medium.

비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM (read-only memory), PROM (programmable read only memory), EPROM(Erasable PROM, EPROM) 또는 EEPROM(Electrically EPROM) 또는 플래시 메모리 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.The non-transitory readable medium refers to a medium that stores data semi-permanently, rather than a medium that stores data for a short moment, such as a register, cache, memory, and the like, and can be read by a device. Specifically, the various applications or programs described above are CD, DVD, hard disk, Blu-ray disk, USB, memory card, ROM (read-only memory), PROM (programmable read only memory), EPROM (Erasable PROM, EPROM) Alternatively, it may be provided by being stored in a non-transitory readable medium such as an EEPROM (Electrically EPROM) or flash memory.

일시적 판독 가능 매체는 스태틱 램(Static RAM,SRAM), 다이내믹 램(Dynamic RAM,DRAM), 싱크로너스 디램 (Synchronous DRAM,SDRAM), 2배속 SDRAM(Double Data Rate SDRAM,DDR SDRAM), 증강형 SDRAM(Enhanced SDRAM,ESDRAM), 동기화 DRAM(Synclink DRAM,SLDRAM) 및 직접 램버스 램(Direct Rambus RAM,DRRAM) 과 같은 다양한 RAM을 의미한다.Temporarily readable media include Static RAM (SRAM), Dynamic RAM (DRAM), Synchronous DRAM (SDRAM), Double Data Rate SDRAM (DDR SDRAM), Enhanced SDRAM (Enhanced) SDRAM, ESDRAM), Synchronous DRAM (Synclink DRAM, SLDRAM) and Direct Rambus RAM (Direct Rambus RAM, DRRAM) refers to a variety of RAM.

본 실시례 및 본 명세서에 첨부된 도면은 전술한 기술에 포함되는 기술적 사상의 일부를 명확하게 나타내고 있는 것에 불과하며, 전술한 기술의 명세서 및 도면에 포함된 기술적 사상의 범위 내에서 당업자가 용이하게 유추할 수 있는 변형 예와 구체적인 실시례는 모두 전술한 기술의 권리범위에 포함되는 것이 자명하다고 할 것이다.This embodiment and the drawings attached to this specification only clearly show a part of the technical idea included in the above-described technology, and within the scope of the technical idea included in the specification and drawings of the aforementioned technology, those skilled in the art can easily It will be said that it is obvious that all inferred modified examples and specific embodiments are included in the scope of the above-described technology.

Claims (14)

IoT 장치가 수집 데이터를 이용한 서비스 요청을 수신하는 단계;
상기 IoT 장치가 상기 수집 데이터를 처리하는 함수 코드를 분석하여 데이터의 유형에 따라 동형 암호화 방식으로 암호화되는 수집 데이터를 처리할 수 있도록 상기 함수 코드를 변환하는 단계;
상기 IoT 장치가 상기 변환한 함수 코드를 클라우드에 전송하는 단계; 및
상기 IoT 장치가 암호화된 수집 데이터 및 상기 변환한 함수 코드를 이용하여 처리된 결과를 상기 클라우드로부터 수신하는 단계를 포함하는 적응적 암호화를 이용한 IoT 서비스 방법.
receiving, by the IoT device, a service request using the collected data;
converting the function code so that the IoT device analyzes the function code for processing the collected data and processes the collected data encrypted by the isomorphic encryption method according to the type of data;
transmitting, by the IoT device, the converted function code to a cloud; and
and receiving, by the IoT device, the encrypted collection data and a result processed using the converted function code from the cloud.
제1항에 있어서,
상기 함수 코드를 변환하는 단계는
상기 IoT 장치가 상기 함수 코드에서 함수 호출 관계에 따른 종속성을 기준으로 적어도 하나의 그래프를 생성하는 단계;
상기 IoT 장치가 상기 적어도 하나의 그래프별로 상기 수집 데이터에 해당하는 데이터 소스, 데이터 연산 항목 및 상기 수집 데이터의 연산 결과인 데이터 싱크를 결정하는 단계;
상기 IoT 장치가 상기 적어도 하나의 그래프 중 데이터 연산 항목이 있는 타깃 그래프에서 상기 데이터 소스 및 상기 데이터 싱크가 모두 존재하는 경우, 상기 타깃 그래프에 포함되는 데이터를 동형 암호화 대상으로 결정하는 단계; 및
상기 IoT 장치가 상기 함수 코드에서 동형 암호화 대상으로 결정된 항목들이 처리될 수 있도록 코드를 수정하는 단계를 포함하는 적응적 암호화를 이용한 IoT 서비스 방법.
The method of claim 1,
The step of converting the function code is
generating, by the IoT device, at least one graph based on a dependency according to a function call relationship in the function code;
determining, by the IoT device, a data source corresponding to the collected data, a data operation item, and a data sink corresponding to an operation result of the collected data for each of the at least one graph;
determining, by the IoT device, data included in the target graph as a homogeneous encryption target when both the data source and the data sink exist in a target graph having a data operation item among the at least one graph; and
and modifying, by the IoT device, a code so that items determined as homomorphic encryption targets in the function code can be processed.
제1항에 있어서,
상기 IoT 장치는
상기 함수 코드를 변환하는 단계에서
상기 함수 코드에서 사용되는 상기 수집 데이터 중 연산이 필요한 제1 데이터인 경우 동형 암호화 방식으로 처리될 데이터로 매핑하고,
상기 함수 코드에서 사용되는 상기 수집 데이터 중 연산이 필요 없는 제2 데이터인 경우 대칭키 암호화 방식을 처리할 데이터로 매핑하는 적응적 암호화를 이용한 IoT 서비스 방법.
The method of claim 1,
The IoT device is
In the step of converting the function code
If it is the first data that requires calculation among the collected data used in the function code, it is mapped to data to be processed in the isomorphic encryption method,
An IoT service method using adaptive encryption in which a symmetric key encryption method is mapped to data to be processed in the case of second data that does not require calculation among the collected data used in the function code.
제3항에 있어서,
상기 IoT 장치는 상기 제1 데이터를 동형 암호화 방식으로 암호화하여 상기 암호화된 수집 데이터를 생성하고, 상기 제2 데이터를 대칭키 암호화 방식으로 암호화하여 상기 클라우드에 전송하는 적응적 암호화를 이용한 IoT 서비스 방법.
4. The method of claim 3,
The IoT device encrypts the first data using an isomorphic encryption method to generate the encrypted collection data, and encrypts the second data using a symmetric key encryption method and transmits the encrypted data to the cloud.
제3항에 있어서,
상기 IoT 장치는 상기 제1 데이터에 대한 매핑 정보 및 상기 제2 데이터에 대한 매핑 정보를 프록시 서버에 전달하고.
상기 프록시 서버가 상기 제1 데이터를 동형 암호화 방식으로 데이터를 암호화하고, 상기 제2 데이터를 대칭키 암호화 방식으로 데이터를 암호화하여 상기 클라우드에 전송하는 적응적 암호화를 이용한 IoT 서비스 방법.
4. The method of claim 3,
and the IoT device transmits mapping information for the first data and mapping information for the second data to a proxy server.
An IoT service method using adaptive encryption in which the proxy server encrypts the first data using a homomorphic encryption method, encrypts the second data using a symmetric key encryption method, and transmits the data to the cloud.
제1항에 있어서,
상기 IoT 장치는 상기 처리된 결과가 동형 암호화 방식으로 암호화된 데이터의 연산 결과인 경우, 상기 처리된 결과를 동형 암호화 방식에 대응되게 복호하는 적응적 암호화를 이용한 IoT 서비스 방법.
The method of claim 1,
When the processed result is an operation result of data encrypted by the homomorphic encryption method, the IoT device decrypts the processed result to correspond to the homomorphic encryption method.
제1항에 있어서,
상기 IoT 장치는 네트워크에 연결된 다른 IoT 장치로부터 암호화를 위한 공유키를 수신하고, 상기 다른 IoT 장치는 상기 처리된 결과에 따라 동작이 제어되는 장치인 적응적 암호화를 이용한 IoT 서비스 방법.
The method of claim 1,
An IoT service method using adaptive encryption, wherein the IoT device receives a shared key for encryption from another IoT device connected to a network, and the other IoT device is a device whose operation is controlled according to the processed result.
수집 데이터를 생성하는 센싱장치;
원본 함수 코드를 분석하여 이용하는 데이터 중 동형 암호화 방식으로 암호화되는 데이터를 처리할 수 있도록 상기 원본 함수 코드를 변환하는 프로그램을 저장하는 저장장치;
상기 프로그램을 이용하여 상기 수집 데이터를 처리하는 함수 코드를 변환하는 연산장치; 및
상기 변환된 함수 코드를 클라우드에 전송하고, 암호화된 수집 데이터 및 상기 변환한 함수 코드를 이용하여 처리된 결과를 상기 클라우드로부터 수신하는 통신장치를 포함하는 적응적 암호화를 이용한 IoT 장치.
a sensing device for generating collected data;
a storage device for storing a program for converting the original function code so as to process data encrypted by the isomorphic encryption method among data used by analyzing the original function code;
an arithmetic unit for converting a function code for processing the collected data using the program; and
and a communication device that transmits the converted function code to a cloud and receives encrypted collection data and a result processed using the converted function code from the cloud.
제8항에 있어서,
상기 연산장치는
상기 함수 코드에서 함수 호출 관계에 따른 종속성을 기준으로 생성되는 적어도 하나의 그래프별 중 데이터 연산 항목이 있는 타깃 그래프에서 데이터 소스 및 데이터 싱크가 모두 존재하는 경우, 상기 타깃 그래프에 포함되는 데이터를 동형 암호화 대상으로 결정하고, 상기 함수 코드에서 동형 암호화 대상으로 결정된 항목들이 처리될 수 있도록 코드를 수정하여 상기 함수 코드를 변환하고,
상기 데이터 소스는 상기 수집 데이터 중 적어도 하나의 데이터이고, 상기 데이터 싱크는 상기 처리된 결과 중 적어도 하나인 적응적 암호화를 이용한 IoT 장치.
9. The method of claim 8,
The computing device is
When both a data source and a data sink exist in a target graph having a data operation item among at least one graph that is generated based on a dependency according to a function call relationship in the function code, data included in the target graph is homogeneously encrypted Determining a target, and converting the function code by modifying the code so that the items determined as the homogeneous encryption target in the function code can be processed,
The data source is at least one of the collected data, and the data sink is at least one of the processed results.
제8항에 있어서,
상기 연산장치는
상기 함수 코드에서 사용되는 상기 수집 데이터 중 연산이 필요한 제1 데이터인 경우 동형 암호화 방식으로 처리될 데이터로 매핑하고,
상기 함수 코드에서 사용되는 상기 수집 데이터 중 연산이 필요 없는 제2 데이터인 경우 대칭키 암호화 방식을 처리할 데이터로 매핑하는 적응적 암호화를 이용한 IoT 장치.
9. The method of claim 8,
The computing device is
If it is the first data that requires calculation among the collected data used in the function code, it is mapped to data to be processed in the isomorphic encryption method,
An IoT device using adaptive encryption that maps a symmetric key encryption method to data to be processed when it is second data that does not require calculation among the collected data used in the function code.
제10항에 있어서,
상기 연산장치는
상기 제1 데이터를 동형 암호화 방식으로 암호화하여 상기 암호화된 수집 데이터를 생성하고, 상기 제2 데이터를 대칭키 암호화 방식으로 암호화하는 적응적 암호화를 이용한 IoT 장치.
11. The method of claim 10,
The computing device is
An IoT device using adaptive encryption for generating the encrypted collection data by encrypting the first data using a homomorphic encryption method, and encrypting the second data using a symmetric key encryption method.
제8항에 있어서,
상기 연산장치는
상기 처리된 결과가 동형 암호화 방식으로 암호화된 데이터의 연산 결과인 경우, 상기 처리된 결과를 동형 암호화 방식에 대응되게 복호하는 적응적 암호화를 이용한 IoT 장치.
9. The method of claim 8,
The computing device is
When the processed result is an operation result of data encrypted by the homomorphic encryption method, the IoT device using adaptive encryption decrypts the processed result to correspond to the homomorphic encryption method.
제8항에 있어서,
상기 통신장치는
다른 IoT 장치로부터 암호화를 위한 공유키를 수신하고, 상기 다른 IoT 장치는 상기 처리된 결과에 따라 동작이 제어되는 장치인 적응적 암호화를 이용한 IoT 장치.
9. The method of claim 8,
the communication device
An IoT device using adaptive encryption, wherein the other IoT device receives a shared key for encryption from another IoT device, and the other IoT device is a device whose operation is controlled according to the processed result.
제8항에 있어서,
상기 함수 코드에서 사용되는 상기 수집 데이터 중 연산이 필요한 제1 데이터인 경우 동형 암호화 방식으로 처리될 데이터로 매핑되고,
상기 함수 코드에서 사용되는 상기 수집 데이터 중 연산이 필요 없는 제2 데이터인 경우 대칭키 암호화 방식을 처리할 데이터로 매핑되고,
상기 통신장치는 제1 데이터에 대한 매핑 정보 및 상기 제2 데이터에 대한 매핑 정보를 프록시 서버 또는 다른 IoT 장치에 전송하는 적응적 암호화를 이용한 IoT 장치.

9. The method of claim 8,
If the first data that requires calculation among the collected data used in the function code is mapped to data to be processed in the isomorphic encryption method,
Among the collected data used in the function code, in the case of second data that does not require calculation, it is mapped to data to be processed using a symmetric key encryption method,
The communication device is an IoT device using adaptive encryption for transmitting mapping information for first data and mapping information for second data to a proxy server or another IoT device.

KR1020200185327A 2020-12-28 2020-12-28 IoT SERVICE PROVIDING METHOD BASED ON ADAPTIVE ENCRYPTION AND IoT APPARATUS KR102508448B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200185327A KR102508448B1 (en) 2020-12-28 2020-12-28 IoT SERVICE PROVIDING METHOD BASED ON ADAPTIVE ENCRYPTION AND IoT APPARATUS

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200185327A KR102508448B1 (en) 2020-12-28 2020-12-28 IoT SERVICE PROVIDING METHOD BASED ON ADAPTIVE ENCRYPTION AND IoT APPARATUS

Publications (2)

Publication Number Publication Date
KR20220094052A true KR20220094052A (en) 2022-07-05
KR102508448B1 KR102508448B1 (en) 2023-03-08

Family

ID=82402347

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200185327A KR102508448B1 (en) 2020-12-28 2020-12-28 IoT SERVICE PROVIDING METHOD BASED ON ADAPTIVE ENCRYPTION AND IoT APPARATUS

Country Status (1)

Country Link
KR (1) KR102508448B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102513552B1 (en) * 2022-11-14 2023-03-23 수퍼게이트 주식회사 Homomorphic cryptographic parallel computation method and computing device performing the same method
CN117435200A (en) * 2023-12-21 2024-01-23 粤港澳大湾区数字经济研究院(福田) Homomorphic encryption service code translation method, device, equipment and readable storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140050477A (en) * 2012-10-19 2014-04-29 경희대학교 산학협력단 Method for searchable encryption and method for searching of encrypted data
KR20160050605A (en) * 2014-10-30 2016-05-11 에스케이텔레콤 주식회사 Service server, and operating method thereof
KR101909149B1 (en) * 2018-02-14 2018-10-17 주식회사 커널로그 Beacon-based remote control system and method with high level security in low power environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140050477A (en) * 2012-10-19 2014-04-29 경희대학교 산학협력단 Method for searchable encryption and method for searching of encrypted data
KR20160050605A (en) * 2014-10-30 2016-05-11 에스케이텔레콤 주식회사 Service server, and operating method thereof
KR101909149B1 (en) * 2018-02-14 2018-10-17 주식회사 커널로그 Beacon-based remote control system and method with high level security in low power environment

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Hamid Nejatollahi 외 3명. "Domain-specific accelerators for ideal lattice-based public key protocols." Cryptology ePrint Archive (2018). *
Imanol Mugarza 외 3명. "Dynamic software updates to enhance security and privacy in high availability energy management applications in smart cities." IEEE Access 7 (2019): 42269-42279. *
On the use of Homomorphic Encryption to Secure Applications, Services, and Routing Protocols, European Journal of Scientific Research ISSN 1450-216X Vol. 88 No 3 October, 2012, pp.416-438

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102513552B1 (en) * 2022-11-14 2023-03-23 수퍼게이트 주식회사 Homomorphic cryptographic parallel computation method and computing device performing the same method
CN117435200A (en) * 2023-12-21 2024-01-23 粤港澳大湾区数字经济研究院(福田) Homomorphic encryption service code translation method, device, equipment and readable storage medium
CN117435200B (en) * 2023-12-21 2024-04-16 粤港澳大湾区数字经济研究院(福田) Homomorphic encryption service code translation method, device, equipment and readable storage medium

Also Published As

Publication number Publication date
KR102508448B1 (en) 2023-03-08

Similar Documents

Publication Publication Date Title
US11520912B2 (en) Methods, media, apparatuses and computing devices of user data authorization based on blockchain
US10601786B2 (en) Privacy-preserving system for machine-learning training data
US20240126930A1 (en) Secure Collaboration Between Processors And Processing Accelerators In Enclaves
KR20210021253A (en) Method and apparatus for encrypting neural network model, storage medium
CN109886682B (en) Method, node and storage medium for realizing contract calling in block chain
US20160259947A1 (en) Method and apparatus for managing access to electronic content
FR3118506A1 (en) CRYPTOGRAPHIC CALCULATION FEATURING ENHANCED CRYPTOGRAPHIC ADDRESSES
US11277257B2 (en) Method and apparatus for performing operation using encrypted data
KR102508448B1 (en) IoT SERVICE PROVIDING METHOD BASED ON ADAPTIVE ENCRYPTION AND IoT APPARATUS
US11463439B2 (en) Systems and methods for device authentication and protection of communication on a system on chip
US20210119765A1 (en) Techniques for privacy-preserving data processing across multiple computing nodes
EP3203407B1 (en) Information processing method and information processing device
JP2022103117A (en) Method and facility for storing encrypted data
Kim et al. Compiler-assisted semantic-aware encryption for efficient and secure serverless computing
CN107133517B (en) Data recovery method based on data encryption and calculation in memory
CN109560925B (en) Key information providing method and apparatus using the same
KR20210043906A (en) Method and apparatus for data encryption, method and apparatus for data decrytion
CN113742657A (en) Software protection method and system
KR20210082019A (en) Apparatus and method for set intersection operation
CN113221141B (en) Wallet encryption storage method, signature method, computer device and storage medium
US11366893B1 (en) Systems and methods for secure processing of data streams having differing security level classifications
KR20180126853A (en) System and Method for automatic generation and execution of encryption SQL statements using meta-information and enterprise framework
Ali et al. Architectural Design for Data Security in Cloud-based Big Data Systems
US20200076593A1 (en) Systems and methods for encryption of virtual function table pointers
Kaladharan et al. An encryption technique to thwart android binder exploits

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant