KR20220111618A - A server using a hardware security architecture, electronic device that verifies the integrity of data transmitted from the server and a verification method using the same - Google Patents

A server using a hardware security architecture, electronic device that verifies the integrity of data transmitted from the server and a verification method using the same Download PDF

Info

Publication number
KR20220111618A
KR20220111618A KR1020210020692A KR20210020692A KR20220111618A KR 20220111618 A KR20220111618 A KR 20220111618A KR 1020210020692 A KR1020210020692 A KR 1020210020692A KR 20210020692 A KR20210020692 A KR 20210020692A KR 20220111618 A KR20220111618 A KR 20220111618A
Authority
KR
South Korea
Prior art keywords
data
application
partial
partial data
entire
Prior art date
Application number
KR1020210020692A
Other languages
Korean (ko)
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 PCT/KR2021/019997 priority Critical patent/WO2022169105A1/en
Publication of KR20220111618A publication Critical patent/KR20220111618A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Abstract

Disclosed embodiments relate to a data selling terminal that generates data using a hardware security architecture, a data purchasing terminal that verifies validity and integrity of data received from the data selling terminal, and a method for controlling the same. Among the disclosed embodiments, with respect to a method in which a server generates partial data from total data and transmits the partial data to an electronic device, a method for a data selling terminal to transmit the partial data requested from a data purchasing terminal includes the steps of: receiving requested data requesting transmission of the partial data among all data from the data purchasing terminal; building an application in a secure area of the data selling terminal by using an installation file of an application that verifies the integrity of the entire data included in the requested data and obtains partial data from the entire data; obtaining the partial data from among the entire data using an application built in the secure area; generating an electronic signature of an application, which is information proving that the partial data, which is a part of the entire data, was obtained by the application; and transmitting the partial data and a digital signature of the application to the data purchasing terminal. The step of transmitting the partial data may include: identifying whether the partial data output from the secure area corresponds to the requested data; and filtering the partial data based on an identification result.

Description

하드웨어 보안 아키텍쳐를 이용하는 서버, 상기 서버로부터 전송된 데이터의 무결성을 검증하는 전자 장치 및 이를 이용한 검증 방법{A server using a hardware security architecture, electronic device that verifies the integrity of data transmitted from the server and a verification method using the same}A server using a hardware security architecture, an electronic device for verifying the integrity of data transmitted from the server, and a verification method using the same using the same}

개시된 실시예들은 하드웨어 보안 아키텍쳐를 이용하여 데이터를 생성하는 서버, 서버로부터 수신한 데이터의 유효성 및 무결성을 검증하는 전자 장치 및 이를 제어하는 방법에 관한 것이다.The disclosed embodiments relate to a server that generates data using a hardware security architecture, an electronic device that verifies validity and integrity of data received from the server, and a method for controlling the same.

전기 통신 기술의 발달로 데이터의 교환과 매매가 자유롭고 용이해지고 있다. 데이터의 교환과 매매시 데이터 제공자의 프라이버시가 노출되는 문제점이 존재한다. 프라이버시가 노출되는 문제를 해결하면서 데이터를 활용하기 위한 암호학적 방법으로 영지식 증명이 (Zero-knowledge proof)이 많이 사용되고 있다. With the development of telecommunications technology, data exchange and trade are becoming free and easy. There is a problem in that the privacy of the data provider is exposed during data exchange and trading. Zero-knowledge proof is widely used as a cryptographic method to utilize data while solving the problem of privacy exposure.

영지식 증명은 사전 정의된 연산에 대해 비밀 입력값은 공개하지 않으면서도 입출력값의 관계에 해당하는 비밀 입력값을 알고 있음을 증명하는 암호 기술이다. Zero-knowledge proof is a cryptographic technique that proves that the secret input value corresponding to the relationship between input and output values is known without revealing the secret input value for a predefined operation.

즉, 영지식 증명은 자신의 정보를 드러내지 않고 값을 가지고 있음을 증명하는 암호학적인 방법으로, 값을 드러내지 않고 비밀값을 가지고 있음을 증명하는 증명자(Prover)와 증명자의 비밀값 없이 증명자가 값을 가지고 있음을 증명하는 검증자(Verifier)로 구성된다. 증명자는 영지식 증명 알고리즘을 이용하여, 주어진 함수 및 입력값과 출력값의 관계를 증명하는 증명값을 만든다. 여기서 증명값은 특정한 수식을 만족하도록 하는 숫자 값이다. 검증자는 영지식 증명 확인 알고리즘에 증명값을 적용함으로써 함수, 입력, 출력의 관계가 맞는지 확인한다. 증명값에는 비밀 입력에 대한 정보가 전혀 담겨 있지 않기 때문에, 영지식 증명은 증명자의 프라이버시가 노출되지 않는 장점이 존재한다. In other words, zero-knowledge proof is a cryptographic method that proves that it has a value without revealing its own information. It consists of a verifier that proves that it has A prover uses a zero-knowledge proof algorithm to create a proof value that proves a given function and the relationship between input and output values. Here, the proof value is a numeric value that satisfies a specific expression. The verifier checks whether the relationship between the function, input, and output is correct by applying the proof value to the zero-knowledge proof verification algorithm. Since the proof value does not contain any information about the secret input, zero-knowledge proof has the advantage that the privacy of the prover is not exposed.

다만, 영지식 증명은 증명값이 무겁고, 증명값을 검증하는 작업에 많은 컴퓨팅 리소스가 필요하며 연산속도가 느리다. 특히, 영지식 증명은 전체 데이터에 대한 해쉬값과 증명값을 이용하여 데이터의 무결성을 체크해야 하기 때문에, 조건 검사가 부가된 부분 데이터를 공유시에는 활용되지 못하는 문제점이 존재한다. However, the zero-knowledge proof has a heavy proof value, requires a lot of computing resources to verify the proof value, and has a slow operation speed. In particular, since zero-knowledge proof has to check the integrity of data by using a hash value and a proof value for the entire data, there is a problem in that it cannot be utilized when sharing partial data to which the condition check is added.

개시된 실시예들은 전체 데이터 중의 부분 데이터가 프라이버시의 노출 없이 공유되는 방법을 제공하고자 한다. The disclosed embodiments are intended to provide a method in which partial data of the entire data is shared without exposing privacy.

한편, 개시된 실시예들이 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않는다.On the other hand, the technical problems to be achieved by the disclosed embodiments are not limited to the technical problems as described above.

상술한 기술적 과제를 달성하기 위한 기술적 수단으로서 개시된 데이터 판매 단말이 데이터 구매 단말 로부터 요청된 부분 데이터를 전송하는 방법은, 상기 데이터 구매 단말로부터 전체 데이터 중에서 상기 부분 데이터를 전송할 것을 요청하는 요청 데이터를 수신하는 단계, 상기 요청 데이터에 포함된 상기 전체 데이터의 무결성을 검증하고, 상기 전체 데이터로부터 부분 데이터를 획득하는 애플리케이션의 설치 파일을 이용하여, 상기 데이터 판매 단말의 보안 영역에 애플리케이션을 구축하는 단계, 상기 보안 영역에 구축된 애플리케이션을 이용하여 상기 전체 데이터 중에서 상기 부분 데이터를 획득하는 단계, 상기 애플리케이션에 의해서 상기 전체 데이터의 일부인 상기 부분 데이터가 획득되었음을 증명하는 정보인 애플리케이션의 전자 서명을 생성하는 단계 및 상기 부분 데이터 및 상기 애플리케이션의 전자 서명을 상기 데이터 구매 단말로 전송하는 단계를 포함하고, 상기 부분 데이터를 전송하는 단계는, 상기 보안 영역으로부터 출력되는 상기 부분 데이터가 상기 요청 데이터에 상응하는지를 식별하는 단계 및 상기 식별 결과에 기초하여 상기 부분 데이터를 필터링하는 단계를 포함할 수 있다.A method for a data sales terminal to transmit requested partial data from a data purchasing terminal, disclosed as a technical means for achieving the above-described technical problem, is to receive request data for requesting to transmit the partial data among all data from the data purchasing terminal. verifying the integrity of the entire data included in the request data and building an application in a secure area of the data sales terminal using an application installation file for obtaining partial data from the entire data; obtaining the partial data from among the entire data by using an application built in a secure area; generating an electronic signature of the application, which is information proving that the partial data, which is a part of the entire data, has been obtained by the application; and the Transmitting the partial data and the electronic signature of the application to the data purchase terminal, wherein the transmitting of the partial data includes: identifying whether the partial data output from the secure area corresponds to the request data; It may include filtering the partial data based on the identification result.

상술한 기술적 과제를 달성하기 위한 기술적 수단으로서 개시된 전체 데이터로부터 부분 데이터를 생성하여 데이터 구매 단말로 전송하는 데이터 판매 단말은, 통신 인터페이스, 하나 이상의 명령어들을 저장하는 메모리, 상기 명령어들을 실행하는 프로세서를 포함하고, 상기 프로세서는 상기 명령어들을 실행함으로써, 상기 데이터 구매 단말로부터 상기 전체 데이터 중에서 상기 부분 데이터를 전송할 것을 요청하는 요청 데이터를 수신하도록 상기 통신 인터페이스를 제어하고, 상기 요청 데이터에 포함된 상기 전체 데이터의 무결성을 검증하고, 상기 전체 데이터로부터 부분 데이터를 획득하는 애플리케이션의 설치 파일을 이용하여, 상기 데이터 판매 단말의 보안 영역에 애플리케이션을 구축하고, 상기 보안 영역에 구축된 애플리케이션을 이용하여 상기 전체 데이터 중에서 상기 부분 데이터를 획득하고, 상기 애플리케이션에 의해서 상기 전체 데이터의 일부인 상기 부분 데이터가 획득되었음을 증명하는 정보인 애플리케이션의 전자 서명을 생성하고, 상기 부분 데이터 및 상기 애플리케이션의 전자 서명을 상기 데이터 구매 단말로 전송하도록 상기 통신 인터페이스를 제어하고, 상기 프로세서는, 상기 보안 영역으로부터 출력되는 상기 부분 데이터가 상기 요청 데이터에 상응하는지를 식별하고, 상기 식별 결과에 기초하여 상기 부분 데이터를 필터링할 수 있다. A data sales terminal that generates partial data from the disclosed whole data as a technical means for achieving the above-described technical problem and transmits it to a data purchase terminal includes a communication interface, a memory for storing one or more instructions, and a processor for executing the instructions and, the processor controls the communication interface to receive request data for requesting to transmit the partial data among the entire data from the data purchasing terminal by executing the instructions, and By using an installation file of an application that verifies integrity and obtains partial data from the entire data, an application is built in the security area of the data sales terminal, and the application built in the security area is used to build the application among the entire data. to obtain partial data, generate an electronic signature of the application, which is information proving that the partial data, which is a part of the entire data, has been obtained by the application, and transmit the partial data and the electronic signature of the application to the data purchasing terminal; Controlling the communication interface, the processor may identify whether the partial data output from the security area corresponds to the request data, and filter the partial data based on the identification result.

상술한 기술적 과제를 달성하기 위한 기술적 수단으로서 개시된 데이터 구매 단말이 데이터 판매 단말로부터 부분 데이터를 획득하는 방법은, 전체 데이터의 일부인 상기 부분 데이터에 관한 정보를 획득하는 단계, 상기 부분 데이터를 요청하는 요청 데이터를 상기 데이터 판매 단말로 전송하는 단계, 상기 데이터 판매 단말의 보안 영역에 구축된 애플리케이션에서 생성된 상기 부분 데이터 및 상기 부분 데이터에 대한 상기 애플리케이션의 전자 서명을 상기 데이터 판매 단말로부터 수신하는 단계 및 상기 애플리케이션의 전자 서명을 검증함으로써, 상기 수신된 부분 데이터의 유효성을 식별하는 단계를 포함하고, 상기 요청 데이터는, 상기 전체 데이터의 무결성을 검증하고, 상기 전체 데이터로부터 부분 데이터를 획득하는 애플리케이션의 설치 파일을 포함하고, 상기 애플리케이션은 상기 설치 파일을 통해서 상기 데이터 판매 단말의 보안 영역에 구축되는 것일 수 있다.A method for a data purchasing terminal to acquire partial data from a data sales terminal, disclosed as a technical means for achieving the above-described technical problem, includes: acquiring information about the partial data that is a part of the entire data; a request for requesting the partial data transmitting data to the data sales terminal; receiving from the data sales terminal the partial data generated by an application built in a secure area of the data sales terminal and an electronic signature of the application for the partial data; identifying the validity of the received partial data by verifying the electronic signature of the application, wherein the requested data is an installation file of the application for verifying the integrity of the entire data and obtaining the partial data from the full data Including, the application may be built in the secure area of the data sales terminal through the installation file.

상술한 기술적 과제를 달성하기 위한 기술적 수단으로서 개시된 전체 데이터 중에서 부분 데이터를 데이터 판매 단말로부터 획득하는 데이터 구매 단말은, 통신 인터페이스, 하나 이상의 명령어들을 저장하는 메모리, 상기 명령어들을 실행하는 프로세서를 포함하고, 상기 프로세서는 상기 명령어들을 실행함으로써, 상기 전체 데이터의 일부인 상기 부분 데이터에 관한 정보를 획득하고, 상기 부분 데이터를 요청하는 요청 데이터를 상기 데이터 판매 단말로 전송하고, 상기 데이터 판매 단말의 보안 영역에 구축된 애플리케이션에서 생성된 상기 부분 데이터 및 상기 부분 데이터에 대한 상기 애플리케이션의 전자 서명을 상기 데이터 판매 단말로부터 수신하도록 상기 통신 인터페이스를 제어하고, 상기 애플리케이션의 전자 서명을 검증함으로써, 상기 수신된 부분 데이터의 유효성을 식별하고, 상기 요청 데이터는, 상기 전체 데이터의 무결성을 검증하고, 상기 전체 데이터로부터 부분 데이터를 획득하는 애플리케이션의 설치 파일을 포함하고, 상기 애플리케이션은 상기 설치 파일을 통해서 상기 데이터 판매 단말의 보안 영역에 구축되는 것 일 수 있다.A data purchasing terminal for acquiring partial data from a data sales terminal among all data disclosed as technical means for achieving the above-described technical problem includes a communication interface, a memory for storing one or more instructions, and a processor for executing the instructions, The processor obtains information about the partial data that is a part of the entire data by executing the instructions, transmits request data requesting the partial data to the data sales terminal, and builds in a secure area of the data sales terminal By controlling the communication interface to receive the partial data generated by the applied application and the electronic signature of the application for the partial data from the data sales terminal, and verifying the electronic signature of the application, the validity of the received partial data and the request data includes an installation file of an application that verifies the integrity of the entire data and obtains partial data from the entire data, wherein the application is a security area of the data sales terminal through the installation file It may be built on

상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 컴퓨터로 읽을 수 있는 기록매체는 개시된 방법의 실시예들 중에서 적어도 하나를 컴퓨터에서 실행시키기 위한 프로그램을 기록한 것일 수 있다.As a technical means for achieving the above-described technical problem, a computer-readable recording medium may record a program for executing at least one of the embodiments of the disclosed method in a computer.

상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 기록매체에 저장된 어플리케이션은 개시된 방법의 실시예들 중에서 적어도 하나의 기능을 실행시키기 위한 것일 수 있다.As a technical means for achieving the above-described technical problem, the application stored in the recording medium may be for executing at least one function among the disclosed method embodiments.

도 1은 일 실시예에 따른, 서버와 전자 장치가 데이터를 송수신하는 방법을 설명하는 도면이다.
도 2는 일 실시예에 따른, 서버가 블록체인에 업로드된 전체 데이터 중에서 부분 데이터를 전자 장치로 전송하는 방법을 설명하는 도면이다.
도 3은 일 실시예에 따른, 서버와 전자 장치가 데이터를 송수신하는 방법의 순서도이다.
도 4는 일 실시예에 따른, 서버가 전자 장치로부터 수신된 데이터에 기초하여 애플리케이션을 구축하는 방법의 순서도이다.
도 5는 일 실시예에 따른, 서버가 보안 영역으로부터 출력되는 데이터를 필터링하는 방법의 순서도이다.
도 6은 일 실시예에 따른, 전자 장치가 서버로부터 수신한 부분 데이터의 유효성을 식별하는 방법의 순서도이다.
도 7은 일 실시예에 따른, 전자 장치가 부분 데이터를 활용하는 방법을 설명하는 도면이다.
도 8은 일 실시예에 따른, 서버의 블록도이다.
도 9는 일 실시예에 따른, 서버에 포함된 메모리의 소프트웨어 모듈을 나타내는 블록도이다.
도 10은 일 실시예에 따른, 전자 장치의 블록도이다.
도 11은 일 실시예에 따른, 전자 장치에 포함된 메모리의 소프트웨어 모듈을 나타내는 블록도이다.
1 is a diagram illustrating a method for transmitting and receiving data between a server and an electronic device, according to an embodiment.
FIG. 2 is a diagram illustrating a method in which a server transmits partial data among all data uploaded to a block chain to an electronic device, according to an embodiment.
3 is a flowchart of a method for transmitting and receiving data between a server and an electronic device, according to an embodiment.
4 is a flowchart of a method for a server to build an application based on data received from an electronic device, according to an embodiment.
5 is a flowchart of a method for a server to filter data output from a security area, according to an embodiment.
6 is a flowchart of a method for an electronic device to identify validity of partial data received from a server, according to an exemplary embodiment.
7 is a diagram illustrating a method of using partial data by an electronic device, according to an exemplary embodiment.
8 is a block diagram of a server, according to an embodiment.
9 is a block diagram illustrating a software module of a memory included in a server, according to an exemplary embodiment.
10 is a block diagram of an electronic device, according to an embodiment.
11 is a block diagram illustrating a software module of a memory included in an electronic device, according to an exemplary embodiment.

본 명세서는 본 발명의 권리범위를 명확히 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 실시할 수 있도록, 본 발명의 원리를 설명하고, 실시예들을 개시한다. 개시된 실시예들은 다양한 형태로 구현될 수 있다. 개시된 실시예들은 단독으로 구현되거나, 적어도 2이상의 실시예가 조합되어 구현될 수 있다.This specification clarifies the scope of the present invention, explains the principles of the present invention, and discloses embodiments so that those of ordinary skill in the art to which the present invention pertains can practice the present invention. The disclosed embodiments may be implemented in various forms. The disclosed embodiments may be implemented alone, or at least two or more embodiments may be implemented in combination.

명세서 전체에 걸쳐 동일 참조 부호는 동일 구성요소를 지칭한다. 본 명세서가 실시예들의 모든 요소들을 설명하는 것은 아니며, 본 발명이 속하는 기술분야에서 일반적인 내용 또는 실시예들 간에 중복되는 내용은 생략한다. 명세서에서 사용되는 '부'(part, portion)라는 용어는 프로세서 또는 회로와 같은 하드웨어 구성(hardware component), 및/또는 프로세서와 같은 하드웨어 구성에 의해 실행되는 소프트웨어 구성(software component)일 수 있으며, 실시예들에 따라 복수의 '부'가 하나의 요소(unit, element)로 구현되거나, 하나의 '부'가 복수의 요소들을 포함하는 것도 가능하다. 이하 첨부된 도면들을 참고하여 본 발명의 작용 원리 및 실시예들에 대해 설명한다.Like reference numerals refer to like elements throughout. This specification does not describe all elements of the embodiments, and general content in the technical field to which the present invention pertains or content that overlaps between the embodiments is omitted. As used herein, the term 'part' (part, portion) may be a hardware component such as a processor or circuit, and/or a software component executed by a hardware component such as a processor, According to examples, a plurality of 'units' may be implemented as one unit (element), or one 'unit' may include a plurality of elements. Hereinafter, the working principle and embodiments of the present invention will be described with reference to the accompanying drawings.

본 개시의 일부 실시예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들의 일부 또는 전부는, 특정 기능들을 실행하는 다양한 개수의 하드웨어 및/또는 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 개시의 기능 블록들은 하나 이상의 마이크로프로세서들에 의해 구현되거나, 소정의 기능을 위한 회로 구성들에 의해 구현될 수 있다. 또한, 예를 들어, 본 개시의 기능 블록들은 다양한 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능 블록들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 개시는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. “매커니즘”, “요소”, “수단” 및 “구성”등과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다.Some embodiments of the present disclosure may be represented by functional block configurations and various processing steps. Some or all of these functional blocks may be implemented in various numbers of hardware and/or software configurations that perform specific functions. For example, the functional blocks of the present disclosure may be implemented by one or more microprocessors, or may be implemented by circuit configurations for a given function. Also, for example, the functional blocks of the present disclosure may be implemented in various programming or scripting languages. The functional blocks may be implemented as an algorithm running on one or more processors. Also, the present disclosure may employ prior art for electronic configuration, signal processing, and/or data processing, and the like. Terms such as “mechanism”, “element”, “means” and “configuration” may be used broadly and are not limited to mechanical and physical components.

명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when a part is "connected" with another part, this includes not only the case of being "directly connected" but also the case of being "electrically connected" with another element interposed therebetween. . Also, when a part "includes" a certain component, it means that other components may be further included, rather than excluding other components, unless otherwise stated.

또한, 도면에 도시된 구성 요소들 간의 연결 선 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것일 뿐이다. 실제 장치에서는 대체 가능하거나 추가된 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들에 의해 구성 요소들 간의 연결이 나타내어질 수 있다.In addition, the connecting lines or connecting members between the components shown in the drawings only exemplify functional connections and/or physical or circuit connections. In an actual device, a connection between components may be represented by various functional connections, physical connections, or circuit connections that are replaceable or added.

또한, 본 명세서에서 사용되는 “제1” 또는 “제2” 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용할 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들면, 본 명세서에서는 제1 데이터, 제2 데이터를 기재하였으나, 이는 서로 다른 데이터임을 구분하기 위해서 사용한 것일 뿐이므로, 이에 의해서 한정되어서는 안 된다.In addition, terms including an ordinal number such as “first” or “second” used herein may be used to describe various components, but the components should not be limited by the terms. The above terms may be used for the purpose of distinguishing one component from another. For example, although the first data and the second data are described in this specification, they are only used to distinguish different data, and thus should not be limited thereto.

한편, 개시된 실시예들에 이용되는 하드웨어 보안 아키텍쳐는, 외부에서 접속하여 데이터를 위/변조 못하도록 하드웨어 기반(CPU/GPU)의 암호화된 메모리 보안 영역을 의미한다. 데이터, 특정 기능 또는 전체 애플리케이션이 하드웨어 보안 아키텍쳐에 저장될 수 있다. 예를 들면, 애플리케이션이 하드웨어 보안 아키텍쳐에 구축되어, 요청된 동작에 대한 결과값만이 하드웨어 보안 아키텍쳐의 외부로 전송될 수 있다. 하드웨어 보안 아키텍쳐는 통상적으로 Trust zone, Secure zone, secure memory, TEE(Trusted Execution Environment), SGX(Software Guard Extensions)와 같은 이름으로 명명되어 사용되고 있으며, 이하에서는 보안 영역(secure zone)으로 통칭하도록 한다. On the other hand, the hardware security architecture used in the disclosed embodiments means a hardware-based (CPU/GPU) encrypted memory security area to prevent forgery/falsification of data by external access. Data, specific functions, or entire applications may be stored in a hardware secure architecture. For example, an application may be built on a hardware security architecture, so that only a result value for a requested operation may be transmitted outside of the hardware security architecture. The hardware security architecture is usually named and used, such as trust zone, secure zone, secure memory, TEE (Trusted Execution Environment), and SGX (Software Guard Extensions). Hereinafter, it will be collectively referred to as a secure zone.

개시된 실시예들은 데이터 판매 단말이 데이터 구매 단말로부터 수신한 요청데이터에 기초하여, 전체 데이터로부터 부분 데이터를 획득하고, 획득한 부분 데이터를 데이터 구매 단말로 전송하는 실시예에 대응될 수 있다. The disclosed embodiments may correspond to an embodiment in which the data selling terminal obtains partial data from the entire data based on the requested data received from the data purchasing terminal, and transmits the obtained partial data to the data purchasing terminal.

이하에서는, 설명의 편의를 위해서 데이터 구매 단말을 전자 장치(10)로 설명하고, 데이터 판매 단말을 서버(20)로 설명한다. 데이터 판매 단말 및 데이터 구매 단말은 네트워크를 통해서 다른 장치와 데이터를 송수신 할 수 있는 연산 장치를 의미하며, 특정 단말의 유형으로 한정되지 않는다.Hereinafter, for convenience of description, the data purchasing terminal will be described as the electronic device 10 , and the data selling terminal will be described as the server 20 . The data selling terminal and the data purchasing terminal refer to a computing device capable of transmitting and receiving data to and from other devices through a network, and are not limited to a specific terminal type.

이하에서는 도면을 참조하여 실시예들을 상세히 설명한다.Hereinafter, embodiments will be described in detail with reference to the drawings.

도 1은 일 실시예에 따른, 서버와 전자 장치가 데이터를 송수신하는 방법을 설명하는 도면이고, 도 2는 일 실시예에 따른, 서버가 블록체인에 업로드된 전체 데이터 중에서 부분 데이터를 전자 장치로 전송하는 방법을 설명하는 도면이다. 1 is a diagram illustrating a method for transmitting and receiving data between a server and an electronic device, according to an embodiment, and FIG. 2 is a diagram illustrating partial data from among all data uploaded to a block chain by a server to an electronic device, according to an embodiment. It is a diagram explaining a method of transmitting.

도 1 및 도 2를 참조하면, 전자 장치(10)는 서버(20)로 전체 데이터 중에서 부분 데이터를 요청할 수 있다. 서버(20)는 전자 장치(10)의 요청에 대응하여 부분 데이터를 획득하고, 획득된 부분 데이터를 전자 장치(10)로 전송할 수 있다. 1 and 2 , the electronic device 10 may request partial data among all data from the server 20 . The server 20 may obtain partial data in response to a request from the electronic device 10 , and transmit the obtained partial data to the electronic device 10 .

개시된 실시예에서, 전자 장치(10)는 네트워크를 통해서 다른 장치와 데이터를 송수신 할 수 있는 모바일 장치(예를 들면, 스마트폰, 태블릿PC 등), 범용 컴퓨터(PC, Personal Computer)와 같은 연산 장치 및 서버를 포함할 수 있다. 여기서 다른 장치는 모바일 장치, 범용 컴퓨터와 같은 연산 장치 및 서버(20)를 포함할 수 있다. 또한, 전자 장치(10)는 사물 인터넷(ioT, internet of Things) 장치, 다양한 사물 인터넷 장치 및 서버(20)와 연결되는 홈 허브 장치(예를 들면, 라우터, 대화형 인공지능 스피커 등)를 포함할 수 있다. In the disclosed embodiment, the electronic device 10 is a computing device such as a mobile device (eg, a smart phone, a tablet PC, etc.) capable of transmitting and receiving data with another device through a network, and a general-purpose computer (PC, Personal Computer). and a server. Here, other devices may include a mobile device, a computing device such as a general-purpose computer, and the server 20 . In addition, the electronic device 10 includes an Internet of Things (ioT) device, various Internet of Things devices, and a home hub device (eg, a router, an interactive artificial intelligence speaker, etc.) connected to the server 20 . can do.

개시된 실시예에서, 전자 장치(10)는 인공지능 모델이 구축된 모바일 장치(예를 들면, 스마트폰, 태블릿PC 등), 범용 컴퓨터(PC, Personal Computer), 서버(Server)와 같은 연산 장치를 포함할 수 있다.In the disclosed embodiment, the electronic device 10 includes a computing device such as a mobile device (eg, a smart phone, a tablet PC, etc.), a general-purpose computer (PC, Personal Computer), and a server on which an artificial intelligence model is built. may include

개시된 실시예에서, 서버(20)는 다른 장치와 데이터를 송수신하고, 데이터를 저장 및 관리하는 연산 장치를 포함할 수 있다. 즉, 다른 장치와 데이터를 송수신하고, 데이터를 저장 및 관리하는 전자 장치가 개시된 실시예들의 서버(20)에 해당할 수 있다. 또한, 서버(20)는 클라우드 서비스를 제공하는 적어도 하나의 서버 장치를 포함할 수 있다. In the disclosed embodiment, the server 20 may include a computing device that transmits and receives data to and from other devices, and stores and manages data. That is, an electronic device that transmits/receives data to/from other devices and stores and manages data may correspond to the server 20 of the disclosed embodiments. Also, the server 20 may include at least one server device that provides a cloud service.

개시된 실시예에서, 전자 장치(10)는 영지식 증명에서의 증명자(prover)이고, 서버(20)는 영지식 증명에서의 검증자(verifier) 일 수 있다. 따라서, 영지식 증명에서의 증명자 역할을 하는 연산 장치는 개시된 실시예들의 전자 장치(10)에 해당할 수 있고, 영지식 증명에서의 검증자 역할을 하는 연산 장치는 개시된 실시예들의 서버(20)에 해당할 수 있다. In the disclosed embodiment, the electronic device 10 may be a prover in zero-knowledge proof, and the server 20 may be a verifier in zero-knowledge proof. Accordingly, the computing device serving as a prover in zero-knowledge proof may correspond to the electronic device 10 of the disclosed embodiments, and the computing device serving as a verifier in zero-knowledge proof is the server 20 of the disclosed embodiments. ) may be applicable.

일 실시예에 따르면, 서버(20)는 데이터를 획득, 가공 및 암호화하여 저장할 수 있다. 예를 들면, 서버(20)는 복수의 전자 장치들로부터 복수의 전자 장치들의 소유자의 건강 데이터(예를 들면, 신체 정보, 혈압 정보, 맥박수 정보, 혈액 정보, 의료 영상 정보, 운동 정보 등)를 획득할 수 있다. 서버(20)는 획득된 데이터를 소정의 규칙(예를 들면, 카테고리별 분류, 시간대별 분류, 노이즈 제거 등)에 따라서 가공할 수 있다. 서버(20)는 획득된 데이터를 암호화하여 DB(27)에 저장하거나 블록체인에 업로드 할 수 있다. 서버(20)는 데이터와 함께 데이터를 검색하는데 이용되는 메타 데이터 및 데이터의 무결성을 검증하기 위한 해쉬값을 DB(27)에 저장하거나 블록체인에 업로드할 수 있다. According to an embodiment, the server 20 may acquire, process, and encrypt data and store it. For example, the server 20 collects health data (eg, body information, blood pressure information, pulse rate information, blood information, medical image information, exercise information, etc.) of owners of the plurality of electronic devices from the plurality of electronic devices. can be obtained The server 20 may process the obtained data according to predetermined rules (eg, classification by category, classification by time, noise removal, etc.). The server 20 may encrypt the obtained data and store it in the DB 27 or upload it to the block chain. The server 20 may store metadata used to retrieve data together with the data and a hash value for verifying the integrity of the data in the DB 27 or upload it to the block chain.

도 2를 참조하면, 서버(20)는 블록체인에 데이터를 업로드 할 수 있다. 블록체인은 소정의 내용이 포함된 관리 대상 데이터가 체인 형태의 연결고리 기반 분산 데이터 저장 환경에 업로드됨으로써, 임의로 수정할 수 없고, 누구나 변경의 결과를 열람할 수 있는 원장 관리 기술을 의미한다. Referring to FIG. 2 , the server 20 may upload data to the block chain. Blockchain refers to a ledger management technology that cannot be arbitrarily modified and that anyone can view the results of changes by uploading data to be managed with predetermined contents to a chain-type link-based distributed data storage environment.

일 실시예에 따르면, 서버(20)는 블록체인에 전체 데이터를 업로드할 수 있다. 또한, 서버(20)는 블록체인에 업로드된 데이터를 갱신하기 위하여 데이터를 추가로 업로드 할 수 있다. According to one embodiment, the server 20 may upload the entire data to the blockchain. In addition, the server 20 may additionally upload data in order to update the data uploaded to the block chain.

일 실시예에 따르면, 서버(20)는 전체 데이터 중에서 적어도 일부의 검색을 위한 메타 데이터, 전체 데이터의 무결성을 식별하기 위한 해쉬값 및 전체 데이터의 소유자의 전자 서명을 블록체인에 업로드 할 수 있다. According to an embodiment, the server 20 may upload metadata for searching at least a part of all data, a hash value for identifying the integrity of all data, and an electronic signature of the owner of all data to the blockchain.

일 실시예에 따르면, 전체 데이터, 전체 데이터의 소유자의 전자 서명, 소유자의 공개키 인증서가 블록체인에 공개될 수 있다. According to an embodiment, the entire data, the electronic signature of the owner of the entire data, and the owner's public key certificate may be disclosed in the blockchain.

개시된 실시예에서, 전자 장치(10)는 서버(20)로 데이터 중의 일부인 부분 데이터를 전송할 것을 요청할 수 있다. 일 실시예에 따르면, 전자 장치(10)는 서버(20)에 의해서 저장/업로드된 전체 데이터의 메타 데이터를 이용하여 필요한 부분 데이터를 검색하고, 검색된 부분 데이터를 전송해 줄 것을 서버(20)로 요청할 수 있다. 예를 들면, 전자 장치(10)는 서버(20)로 건강검진 기록 데이터 중에서 기준치 이상의 값의 피 검사 관련 데이터를 전송할 것을 요청할 수 있다. In the disclosed embodiment, the electronic device 10 may request the server 20 to transmit partial data that is a part of the data. According to an embodiment, the electronic device 10 searches for necessary partial data using the metadata of the entire data stored/uploaded by the server 20 , and transmits the searched partial data to the server 20 . you can request For example, the electronic device 10 may request the server 20 to transmit blood test related data having a value greater than or equal to a reference value among health checkup record data.

개시된 실시예에서, 서버(20)는 전자 장치(10)로부터 수신한 요청에 대응하여 전체 데이터 중에서 부분 데이터를 획득하고, 획득한 부분 데이터를 전자 장치(10)로 전송할 수 있다. In the disclosed embodiment, the server 20 may obtain partial data from among all data in response to a request received from the electronic device 10 , and transmit the obtained partial data to the electronic device 10 .

일 실시예에 따르면, 서버(20)는 전자 장치(10)로부터 수신한 소정의 조건이 포함된 요청에 대응하여, 전체 데이터 중에서 소정의 조건을 만족하는 부분 데이터를 식별하고, 식별된 부분 데이터를 획득할 수 있다. 서버(20)는 획득된 부분 데이터를 전자 장치(10)로 전송할 수 있다. 예를 들면, 서버(20)는 전자 장치(10)로부터 수신한 요청 데이터에 대응하여, 건강검진 기록 데이터 중에서 기준치 이상의 값의 피 검사 관련 데이터를 식별할 수 있다. 서버(20)는 기준치 이상의 값의 피 검사 관련 데이터를 획득하여 전자 장치(10)로 전송할 수 있다. According to an embodiment, in response to a request including a predetermined condition received from the electronic device 10 , the server 20 identifies partial data that satisfies the predetermined condition from among all data, and collects the identified partial data. can be obtained The server 20 may transmit the obtained partial data to the electronic device 10 . For example, in response to the requested data received from the electronic device 10 , the server 20 may identify the test related data having a value greater than or equal to a reference value from among the health checkup record data. The server 20 may acquire test-related data having a value greater than or equal to a reference value and transmit it to the electronic device 10 .

일 실시예에 따르면, 서버(20)는 DB(27)에 암호화되어 저장된 전체 데이터 중에서 전자 장치(10)의 요청에 대응하는 부분 데이터를 식별하고, 식별된 데이터를 전자 장치(10)로 전송할 수 있다. According to an embodiment, the server 20 may identify partial data corresponding to the request of the electronic device 10 from among all data encrypted and stored in the DB 27 , and transmit the identified data to the electronic device 10 . have.

일 실시예에 따르면, 서버(20)는 블록체인에 업로드된 전체 데이터 중에서 전자 장치(10)의 요청에 부분 데이터를 획득하고, 획득한 데이터를 전자 장치(10)로 전송할 수 있다. According to an embodiment, the server 20 may obtain partial data at the request of the electronic device 10 among all data uploaded to the block chain, and transmit the obtained data to the electronic device 10 .

일 실시예에 따르면, 서버(20)는 보안 영역(28)에 설치된 애플리케이션을 이용하여, 부분 데이터를 획득할 수 있다. 보안 영역(28)은 외부에서 접속하여 데이터를 위/변조 못하도록 하드웨어 기반(CPU/GPU)의 암호화된 메모리 보안 영역을 의미한다. 보안 영역(28)은 소정의 연산 결과값이 저장되거나, 애플리케이션이 구축될 수 있다. 애플리케이션은 전체 데이터의 무결성을 검증하고, 전체 데이터로부터 부분 데이터를 획득할 수 있다. 애플리케이션은 전체 데이터에 대한 해쉬값이 전체 데이터의 소유자의 전자 서명에 포함된 해쉬값과 동일한 것인지를 식별함으로써, 전체 데이터의 유효성을 검증할 수 있다. According to an embodiment, the server 20 may acquire partial data by using an application installed in the security area 28 . The security area 28 means a hardware-based (CPU/GPU) encrypted memory security area to prevent forgery/falsification of data by external access. In the security area 28, a predetermined operation result value may be stored or an application may be built. The application may verify the integrity of the entire data and obtain partial data from the entire data. The application may verify the validity of the entire data by identifying whether the hash value for the entire data is the same as the hash value included in the electronic signature of the owner of the entire data.

일 실시예에 따르면, 서버(20)는 전자 장치(10)로부터 수신한 애플리케이션에 관한 정보에 기초하여, 보안 영역(28)에 애플리케이션을 설치할 수 있다. 예를 들면, 서버(20)는 전자 장치(10)로부터 수신한 요청 데이터에 포함된, 애플리케이션의 설치 파일을 이용하여, 보안 영역(28)에 애플리케이션을 설치할 수 있다. 보안 영역(28)에 설치된 애플리케이션은 전자 장치(10)만이 접근(access)할 수 있으며, 서버(20)의 관리자를 포함한 외부 인원/장치의 접근이 제한된다. 또한, 보안 영역(28)에 설치된 애플리케이션의 서명용 비밀키에 대해서도 서버(20)의 관리자를 포함한 외부 인원/장치의 접근이 제한된다. 따라서, 전자 장치(10)는 위/변조가 불가능한 애플리케이션에서 생성되는 데이터를 서버(20)로부터 수신할 수 있다. According to an embodiment, the server 20 may install the application in the security area 28 based on information about the application received from the electronic device 10 . For example, the server 20 may install the application in the security area 28 by using the installation file of the application included in the request data received from the electronic device 10 . Only the electronic device 10 can access the application installed in the security area 28 , and external personnel/devices including the administrator of the server 20 are restricted from accessing the application. In addition, access of external personnel/devices including the administrator of the server 20 is restricted to the secret key for signing the application installed in the security area 28 . Accordingly, the electronic device 10 may receive data generated by an application that cannot be forged/altered from the server 20 .

일 실시예에 따르면, 서버(20)는 부분 데이터를 전자 장치(10)로 전송할 수 있다. 서버(20)는 부분 데이터와 함께 애플리케이션의 전자 서명을 전자 장치(10)로 전송할 수 있다. 서버(20)는 영지식 증명값을 포함하는 애플리케이션의 전자 서명을 전자 장치(10)로 전송할 수 있다. 애플리케이션의 전자 서명은 부분 데이터가 상기 보안 영역에 구축된 애플리케이션에 의해서 생성되었다는 정보를 의미한다. 영지식 증명값은 부분 데이터가 전체 데이터의 일부임을 나타내는 정보를 의미한다. 즉, 애플리케이션의 전자 서명은 상기 애플리케이션에 의해서 상기 전체 데이터의 일부인 상기 부분 데이터가 획득되었음을 증명하는 정보를 의미한다. According to an embodiment, the server 20 may transmit partial data to the electronic device 10 . The server 20 may transmit the electronic signature of the application together with the partial data to the electronic device 10 . The server 20 may transmit the electronic signature of the application including the zero-knowledge proof value to the electronic device 10 . The electronic signature of the application means information that the partial data is generated by the application built in the secure area. The zero-knowledge proof value means information indicating that the partial data is a part of the whole data. That is, the electronic signature of the application means information proving that the partial data, which is a part of the entire data, has been obtained by the application.

개시된 실시예에서, 서버(20)는 애플리케이션으로부터 출력되는 데이터를 필터링 할 수 있다. In the disclosed embodiment, the server 20 may filter data output from the application.

일 실시에에 따르면, 서버(20)는 미리 결정된 데이터만이 전자 장치(10)로 전송되도록 애플리케이션으로부터 출력되는 데이터를 필터링할 수 있다. 예를 들면, 서버(20)는 전자 장치(10)와 미리 결정된 데이터의 유형으로서 부분 데이터, 애플리케이션의 전자 서명 및 영지식 증명값만을 전자 장치(10)로 전송할 수 있다. According to an embodiment, the server 20 may filter data output from the application so that only predetermined data is transmitted to the electronic device 10 . For example, the server 20 may transmit to the electronic device 10 only partial data, an electronic signature of an application, and a zero-knowledge proof value as a predetermined data type to the electronic device 10 .

다른 예를 들면, 서버(20)는 애플리케이션으로부터 출력되는 데이터들을 식별할 수 있다. 서버(20)는 애플리케이션으로부터 출력되는 데이터가 전자 장치(10)로부터 수신한 요청 데이터에 상응하는지를 식별할 수 있다. 구체적으로, 서버(20)는 애플리케이션으로부터 출력되는 부분 데이터가 요청 데이터에 포함되지 않은 데이터인지 여부를 식별할 수 있다. 서버(20)는 애플리케이션으로부터 출력되는 데이터가 요청 데이터에 상응하지 않는다고 식별한 결과에 기초하여, 애플리케이션으로부터 출력되는 부분 데이터 중에서 요청 데이터에 포함되지 않은 데이터를 제거함으로써 부분 데이터를 필터링 할 수 있다. 서버(20)는 필터링 된 부분 데이터를 전자 장치(10)로 전송할 수 있다. 또는, 서버(20)는 애플리케이션으로부터 출력되는 데이터가 요청 데이터에 상응하지 않는다고 식별한 결과에 기초하여, 애플리케이션을 이용하여 부분 데이터를 재생성할 수 있다. 서버(20)는 애플리케이션이 재생성한 부분 데이터를 전자 장치(10)로 전송할 수 있다. As another example, the server 20 may identify data output from the application. The server 20 may identify whether the data output from the application corresponds to the requested data received from the electronic device 10 . Specifically, the server 20 may identify whether the partial data output from the application is data not included in the request data. The server 20 may filter the partial data by removing data not included in the request data from among the partial data output from the application based on the result of identifying that the data output from the application does not correspond to the request data. The server 20 may transmit the filtered partial data to the electronic device 10 . Alternatively, the server 20 may regenerate the partial data using the application based on the result of identifying that the data output from the application does not correspond to the requested data. The server 20 may transmit the partial data regenerated by the application to the electronic device 10 .

개시된 실시예에서, 전자 장치(10)는 서버(20)로부터 수신한 부분 데이터의 유효성을 식별할 수 있다. 전자 장치(10)는 유효성이 식별된 부분 데이터를 활용할 수 있다. In the disclosed embodiment, the electronic device 10 may identify the validity of the partial data received from the server 20 . The electronic device 10 may utilize partial data whose validity is identified.

일 실시예에 따르면, 전자 장치(10)는 서버(20)로부터 수신한 애플리케이션의 전자 서명을 검증함으로써, 서버(20)로부터 수신한 부분 데이터가 전자 장치(10)가 전송한 설치 파일에 의해서 구축된 애플리케이션에 의해서 전체 데이터로부터 생성되었음을 식별할 수 있다. According to an embodiment, the electronic device 10 verifies the electronic signature of the application received from the server 20 , so that partial data received from the server 20 is constructed by the installation file transmitted by the electronic device 10 . It can be identified that it was created from the entire data by the applied application.

또한, 전자 장치(10)는 전체 데이터의 소유자의 공개키에 기초하여 애플리케이션의 전자 서명에 이용된 전체 데이터의 소유자의 전자 서명의 유효성을 검증하고, 검증된 전체 데이터의 소유자의 전자 서명에 기초하여, 전체 데이터의 유효성을 검증함으로써, 전체 데이터로부터 획득된 부분 데이터의 유효성을 식별할 수 있다.In addition, the electronic device 10 verifies the validity of the electronic signature of the owner of all data used for the electronic signature of the application based on the public key of the owner of the entire data, and based on the electronic signature of the owner of the verified all data , by verifying the validity of the entire data, it is possible to identify the validity of the partial data obtained from the entire data.

또한, 전자 장치(10)는 애플리케이션의 공개키 및 부분 데이터의 해쉬값에 기초하여 애플리케이션의 전자 서명을 검증함으로써, 부분 데이터의 무결성을 식별할 수 있다. 구체적으로, 전자 장치(10)는 애플리케이션의 전자 서명에 포함된 부분 데이터의 해쉬값을 검증함으로써, 부분 데이터의 무결성을 식별할 수 있다. Also, the electronic device 10 may identify the integrity of the partial data by verifying the electronic signature of the application based on the public key of the application and the hash value of the partial data. Specifically, the electronic device 10 may identify the integrity of the partial data by verifying a hash value of the partial data included in the electronic signature of the application.

일 실시예에 따르면, 전자 장치(10)는 서버(20)로부터 수신한 애플리케이션의 전자 서명에 포함된 영지식 증명값을 영지식 증명 확인 알고리즘에 적용함으로써, 부분 데이터가 전체 데이터의 일부임을 검증할 수 있다. According to an embodiment, the electronic device 10 may verify that the partial data is a part of the entire data by applying the zero-knowledge proof value included in the electronic signature of the application received from the server 20 to the zero-knowledge proof verification algorithm. can

개시된 실시예에서, 전자 장치(10)는 서버(20)로부터 수신한 부분 데이터를 활용할 수 있다. 예를 들면, 전자 장치(10)는 부분 데이터를 통계 알고리즘에 적용할 수 있다. 다른 예를 들면, 전자 장치(10)는 부분 데이터를 인공지능 모델(19)에 학습 데이터로서 적용할 수 있다. In the disclosed embodiment, the electronic device 10 may utilize partial data received from the server 20 . For example, the electronic device 10 may apply the partial data to a statistical algorithm. As another example, the electronic device 10 may apply the partial data to the artificial intelligence model 19 as training data.

개시된 실시예에 따르면, 전자 장치(10)는 전체 데이터 중에서 조건이 부가되어 검색된 부분 데이터를 획득하고, 영지식 증명을 수행할 수 있다. According to the disclosed embodiment, the electronic device 10 may obtain partial data searched for by adding a condition among all data, and may perform zero-knowledge proof.

도 3은 일 실시예에 따른, 서버와 전자 장치가 데이터를 송수신하는 방법의 순서도이다. 3 is a flowchart of a method for transmitting and receiving data between a server and an electronic device, according to an embodiment.

단계 S310을 참조하면, 서버(20)는 전자 장치(10)로부터 요청 데이터를 수신할 수 있다. Referring to step S310 , the server 20 may receive request data from the electronic device 10 .

일 실시예에 따르면, 전자 장치(10)는 전체 데이터로부터 부분 데이터를 검색하고, 요청 데이터에 부분 데이터에 관한 정보를 포함하여 서버(20)로 전송할 수 있다. 예를 들면, 전자 장치(10)는 서버(20)로부터 제공된 메타 데이터에 기초하여, 전체 데이터 중에서 소정의 조건을 부가하여 부분 데이터를 검색할 수 있다. 전자 장치(10)는 검색 결과 획득한 부분 데이터에 관한 정보를 서버(20)로 전송할 수 있다. 구체적으로, 전자 장치(10)는 건강검진 기록 데이터 중에서 기준치 이상의 값의 피 검사 관련 데이터를 전송할 것을 요청하는 요청 데이터를 서버(20)로 전송할 수 있다. 또한, 전자 장치(10)는 블록체인에 업로드된 전체 데이터 중에서 부분 데이터를 검색하고, 검색된 부분 데이터의 소유자 정보를 포함하는 요청 데이터를 서버(20)로 전송할 수 있다. According to an embodiment, the electronic device 10 may search for partial data from all data, and transmit the request data to the server 20 by including information about the partial data. For example, the electronic device 10 may search partial data by adding a predetermined condition among all data based on the metadata provided from the server 20 . The electronic device 10 may transmit information about the partial data obtained as a result of the search to the server 20 . Specifically, the electronic device 10 may transmit, to the server 20 , request data for requesting to transmit the test-related data having a value greater than or equal to the reference value among the health checkup record data. Also, the electronic device 10 may search for partial data among all data uploaded to the block chain and transmit request data including owner information of the searched partial data to the server 20 .

일 실시예에 따르면, 전자 장치(10)는 서버(20)의 보안 영역(28)에 설치되는 애플리케이션에 관한 정보를 포함하는 요청 데이터를 서버(20)로 전송할 수 있다. 예를 들면, 전자 장치(10)는 전체 데이터의 무결성을 검증하고, 전체 데이터로부터 부분 데이터를 획득하는 애플리케이션의 설치 파일을 포함하는 요청 데이터를 서버(20)로 전송할 수 있다. According to an embodiment, the electronic device 10 may transmit request data including information about an application installed in the security area 28 of the server 20 to the server 20 . For example, the electronic device 10 may verify the integrity of the entire data and transmit request data including an installation file of an application for obtaining partial data from the entire data to the server 20 .

단계 S330을 참조하면, 서버(20)는 전자 장치(10)로부터 수신한 요청 데이터에 상응하는 부분 데이터를 식별할 수 있다. 예를 들면, 서버(20)는 요청 데이터에 기초하여, 전체 데이터 중에서 소정의 조건이 부가된 부분 데이터를 검색할 수 있다. 구체적으로, 서버(20)는 건강검진 기록 데이터 중에서 기준치 이상의 값의 피 검사 관련 데이터를 식별할 수 있다. Referring to step S330 , the server 20 may identify partial data corresponding to the requested data received from the electronic device 10 . For example, the server 20 may search for partial data to which a predetermined condition is added from among all data, based on the request data. Specifically, the server 20 may identify blood test-related data having a value greater than or equal to a reference value from among the health checkup record data.

일 실시예에 따르면, 서버(20)는 요청 데이터에 포함된 부분 데이터에 관한 정보에 기초하여, 부분 데이터를 획득할 수 있다. 예를 들면, 서버(20)는 메타 데이터에 기초한 검색 결과에 기초하여 DB(27)로부터 부분 데이터를 식별하고, 식별된 부분 데이터를 리드 아웃할 수 있다. 다른 예를 들면, 서버(20)는 요청 데이터에 포함된 부분 데이터의 소유자 정보(예를 들면, 블록체인상의 address)에 기초하여, 부분 데이터를 획득할 수 있다. According to an embodiment, the server 20 may acquire partial data based on information about partial data included in the request data. For example, the server 20 may identify partial data from the DB 27 based on a search result based on metadata and read out the identified partial data. As another example, the server 20 may acquire the partial data based on owner information (eg, an address on a block chain) of the partial data included in the request data.

일 실시예에 따르면, 서버(20)는 요청 데이터에 포함된 애플리케이션에 관한 정보에 기초하여, 보안 영역(28)에 애플리케이션을 구축할 수 있다. 서버(20)는 애플리케이션을 이용하여 전체 데이터의 유효성을 검증할 수 있다. 서버(20)는 애플리케이션을 이용하여 유효성이 검증된 전체 데이터로부터 부분 데이터를 생성할 수 있다. 서버(20)는 부분 데이터와 함께 부분 데이터가 상기 보안 영역에 구축된 애플리케이션에 의해서 생성되었다는 정보인 애플리케이션의 전자 서명을 생성할 수 있다. 서버(20)는 부분 데이터가 전체 데이터의 일부임을 나타내는 영지식 증명값이 포함된 애플리케이션의 전자 서명을 생성할 수 있다. According to an embodiment, the server 20 may build an application in the security area 28 based on information about the application included in the request data. The server 20 may verify the validity of the entire data using the application. The server 20 may generate partial data from the validated entire data using an application. The server 20 may generate the electronic signature of the application, which is information that the partial data was generated by the application built in the secure area together with the partial data. The server 20 may generate an electronic signature of the application including a zero-knowledge proof value indicating that the partial data is a part of the entire data.

단계 S350을 참조하면, 서버(20)는 생성한 부분 데이터를 전자 장치(10)로 전송할 수 있다. Referring to step S350 , the server 20 may transmit the generated partial data to the electronic device 10 .

일 실시예에 따르면, 서버(20)는 보안 영역(28)에 구축된 애플리케이션으로부터 출력되는 데이터를 전자 장치(10)로 전송할 수 있다. 예를 들면, 서버(20)는 애플리케이션으로부터 출력되는 부분 데이터, 애플리케이션의 전자 서명을 전송할 수 있다. 서버(20)는 영지식 증명값을 포함하는 애플리케이션의 전자 서명을 전자 장치(10)로 전송할 수 있다. According to an embodiment, the server 20 may transmit data output from the application built in the security area 28 to the electronic device 10 . For example, the server 20 may transmit partial data output from the application and the electronic signature of the application. The server 20 may transmit the electronic signature of the application including the zero-knowledge proof value to the electronic device 10 .

일 실시예에 따르면, 서버(20)는 애플리케이션으로부터 출력되는 데이터를 필터링 할 수 있다. 예를 들면, 서버(20)는 애플리케이션으로부터 출력되는 부분 데이터가 전자 장치(10)로부터 수신한 요청 데이터에 상응하는지를 식별할 수 있다. 다른 예를 들면, 서버(20)는 애플리케이션으로부터 출력되는 데이터 중에서 전자 장치(10)와 미리 결정된 데이터(예를 들면, 부분 데이터, 애플리케이션의 전자 서명 및 영지식 증명값)만을 전자 장치(10)로 전송할 수 있다. According to an embodiment, the server 20 may filter data output from the application. For example, the server 20 may identify whether partial data output from the application corresponds to the request data received from the electronic device 10 . In another example, the server 20 sends only the electronic device 10 and predetermined data (eg, partial data, electronic signature of the application, and zero-knowledge proof value) among data output from the application to the electronic device 10 . can be transmitted

단계 S370을 참조하면, 전자 장치(10)는 서버(20)로부터 수신한 부분 데이터를 활용할 수 있다. 예를 들면, 전자 장치(10)는 부분 데이터를 통계 알고리즘에 적용할 수 있다. 다른 예를 들면, 전자 장치(10)는 부분 데이터를 인공지능 모델(19)에 학습 데이터로서 적용할 수 있다. Referring to step S370 , the electronic device 10 may utilize the partial data received from the server 20 . For example, the electronic device 10 may apply the partial data to a statistical algorithm. As another example, the electronic device 10 may apply the partial data to the artificial intelligence model 19 as training data.

도 4는 일 실시예에 따른, 서버가 전자 장치로부터 수신된 데이터에 기초하여 애플리케이션을 구축하는 방법의 순서도이다. 4 is a flowchart of a method for a server to build an application based on data received from an electronic device, according to an embodiment.

단계 S410을 참조하면, 서버(20)는 전자 장치(10)로부터 요청 데이터를 수신할 수 있다. 단계 S410은 단계 S310과 유사하므로, 중복되는 내용은 생략한다.Referring to step S410 , the server 20 may receive request data from the electronic device 10 . Since step S410 is similar to step S310, overlapping contents are omitted.

단계 S430을 참조하면, 서버(20)는 전자 장치(10)로부터 수신한 요청 데이터에 포함된 애플리케이션에 관한 정보를 식별할 수 있다. Referring to step S430 , the server 20 may identify information about the application included in the request data received from the electronic device 10 .

일 실시예에 따르면, 서버(20)는 요청 데이터에 포함된 애플리케이션의 배포자에 관한 정보를 식별할 수 있다. 예를 들면, 서버(20)는 요청 데이터에 기초하여, 애플리케이션의 배포자가 전자 장치(10)의 소유자에 해당하는지를 식별할 수 있다. 또한, 서버(20)는 애플리케이션에 대한 전자 장치(10)의 접근 권한이 존재하는지를 식별할 수 있다. According to an embodiment, the server 20 may identify information about the distributor of the application included in the request data. For example, the server 20 may identify whether the distributor of the application corresponds to the owner of the electronic device 10 based on the request data. Also, the server 20 may identify whether an access right of the electronic device 10 for the application exists.

일 실시예에 따르면, 서버(20)는 요청 데이터에 포함된 애플리케이션의 설치와 관련된 정보를 식별할 수 있다. 예를 들면, 서버(20)는 요청 데이터에 포함된 애플리케이션의 설치 파일을 식별할 수 있다. 다른 예를 들면, 서버(20)는 요청 데이터에 포함된 애플리케이션의 설치 파일의 위치 주소(예를 들면, URL)를 식별할 수 있다. According to an embodiment, the server 20 may identify information related to the installation of the application included in the request data. For example, the server 20 may identify the installation file of the application included in the request data. As another example, the server 20 may identify the location address (eg, URL) of the installation file of the application included in the request data.

단계 S450을 참조하면, 서버(20)는 애플리케이션을 보안 영역(28)에 구축할 수 있다. Referring to step S450 , the server 20 may build the application in the secure area 28 .

일 실시예에 따르면, 서버(20)는 애플리케이션의 배포자에 관한 정보에 기초하여, 보안 영역(28)에 애플리케이션을 구축할 수 있다. 예를 들면, 서버(20)는 요청 데이터에 포함된 애플리케이션의 배포자가 전자 장치(10)의 소유자인 경우에 보안 영역(28)에 애플리케이션을 설치할 수 있다. 다른 예를 들면, 서버(20)는 전자 장치(10)가 애플리케이션에 대한 접근 권한이 존재하는 경우에 보안 영역(28)에 애플리케이션을 설치할 수 있다. According to an embodiment, the server 20 may build the application in the secure area 28 based on the information about the distributor of the application. For example, when the distributor of the application included in the request data is the owner of the electronic device 10 , the server 20 may install the application in the secure area 28 . As another example, the server 20 may install the application in the security area 28 when the electronic device 10 has an access right to the application.

일 실시예에 따르면, 서버(20)는 애플리케이션의 설치와 관련된 정보에 기초하여, 서버(20)의 보안 영역(28)에 애플리케이션을 구축할 수 잇다. 예를 들면, 서버(20)는 요청 데이터에 포함된 설치 파일을 실행함으로써, 보안 영역(28)에 애플리케이션을 구축할 수 있다. 다른 예를 들면, 서버(20)는 요청 데이터에 포함된 설치 파일의 위치 주소로부터 획득한 애플리케이션의 설치 파일을 실행함으로써, 보안 영역(28)에 애플리케이션을 구축할 수 있다.According to an embodiment, the server 20 may build the application in the security area 28 of the server 20 based on information related to the installation of the application. For example, the server 20 may build the application in the secure area 28 by executing an installation file included in the request data. As another example, the server 20 may build the application in the secure area 28 by executing the installation file of the application obtained from the location address of the installation file included in the request data.

단계 S470을 참조하면, 서버(20)는 애플리케이션을 이용하여 부분 데이터를 획득할 수 있다. Referring to step S470, the server 20 may obtain partial data using an application.

일 실시예에 따르면, 서버(20)는 애플리케이션을 이용하여 전체 데이터의 유효성을 검증할 수 있다. 예를 들면, 애플리케이션은 접근(access)할 수 있는 전체 데이터가 소유자에 의해서 서명된 데이터와 동일한지 여부를 검증할 수 있다. 구체적으로, 서버(20)는 애플리케이션을 이용하여 전체 데이터의 해쉬값과 전체 데이터의 소유자의 전자 서명에 포함된 해쉬값과 동일한지를 식별함으로써, 전체 데이터의 유효성을 검증할 수 있다. 소유자의 전자 서명은 수학식 1과 같이, 전체 데이터의 해쉬값과 소유자의 비밀키에 기초하여 생성된 것일 수 있다. According to an embodiment, the server 20 may verify the validity of all data using an application. For example, an application can verify that all data it has access to is the same as data signed by the owner. Specifically, the server 20 may verify the validity of the entire data by identifying whether the hash value of the entire data is the same as the hash value included in the electronic signature of the owner of the entire data using the application. The electronic signature of the owner may be generated based on the hash value of the entire data and the owner's private key, as shown in Equation (1).

Figure pat00001
Figure pat00001

여기서, data_signed은 소유자가 전자 서명한 전체 데이터를 의미하고, Sign_O(data_signed)는 전체 데이터의 소유자의 전자 서명이고, hash(data_signed)는 전체 데이터에 대한 해쉬값이고, PrivateKey_O는 소유자의 비밀키이다. Here, data_signed means all data digitally signed by the owner, Sign_O(data_signed) is the electronic signature of the owner of all data, hash(data_signed) is a hash value for all data, and PrivateKey_O is the owner's private key.

또한, 서버(20)는 애플리케이션을 이용하여, 소유자의 공개키 인증서로부터 소유자의 공개키를 획득하고, 소유자의 공개키와 전체 데이터에 기초하여 소유자의 전자 서명을 검증할 수 있다. 서버(20)는 소유자의 전자 서명을 검증함으로써, 전체 데이터의 유효성을 검증할 수 있다. In addition, the server 20 may obtain the owner's public key from the owner's public key certificate by using the application, and verify the owner's electronic signature based on the owner's public key and all data. The server 20 may verify the validity of the entire data by verifying the electronic signature of the owner.

일 실시예에 따르면, 서버(20)는 유효성이 검증된 전체 데이터로부터 부분 데이터를 생성할 수 있다. 서버(20)는 요청 데이터에 상응하는 부분 데이터를 전체 데이터로부터 획득할 수 있다. 예를 들면, 서버(20)는 요청 데이터에 포함된 소정의 조건을 만족하는 부분 데이터를 전체 데이터로부터 식별할 수 있다. 구체적으로, 서버(20)는 요청 데이터에 기초하여, 건강검진 기록 데이터 중에서 기준치 이상의 값의 피 검사 관련 데이터를 식별할 수 있다. 서버(20)는 식별된 부분 데이터를 DB(27)로부터 리드아웃 하거나 블록체인으로부터 다운로드 할 수 있다. According to an embodiment, the server 20 may generate partial data from all data whose validity has been verified. The server 20 may obtain partial data corresponding to the requested data from the entire data. For example, the server 20 may identify partial data satisfying a predetermined condition included in the request data from the entire data. Specifically, the server 20 may identify the test-related data having a value greater than or equal to the reference value from among the health checkup record data, based on the request data. The server 20 may read out the identified partial data from the DB 27 or download it from the block chain.

일 실시예에 따르면, 서버(20)는 애플리케이션의 전자 서명을 생성할 수 있다. 애플리케이션의 전자 서명은 부분 데이터가 상기 보안 영역에 구축된 애플리케이션에 의해서 생성되었다는 정보를 의미한다. 예를 들면, 서버(20)는 수학식 2와 같이, 전체 데이터의 소유자의 전자 서명 및 부분 데이터의 해쉬값과 애플리케이션의 비밀키에 기초하여 애플리케이션의 전자 서명을 생성할 수 있다. According to an embodiment, the server 20 may generate an electronic signature of the application. The electronic signature of the application means information that the partial data is generated by the application built in the secure area. For example, as shown in Equation 2, the server 20 may generate the electronic signature of the application based on the electronic signature of the owner of the entire data and the hash value of the partial data and the private key of the application.

Figure pat00002
Figure pat00002

여기서, Sign_SW는 애플리케이션의 전자 서명이고, data_selected는 부분 데이터이고, Sign_O(data_signed)는 전체 데이터의 소유자의 전자 서명이고, hash(data_selected)는 부분 데이터에 대한 해쉬값이고, PrivateKey_SW는 애플리케이션의 비밀키이다. Here, Sign_SW is the electronic signature of the application, data_selected is the partial data, Sign_O(data_signed) is the electronic signature of the owner of the entire data, hash(data_selected) is the hash value for the partial data, and PrivateKey_SW is the private key of the application .

일 실시예에 따르면, 서버(20)는 영지식 증명 확인 알고리즘에 적용되어 부분 데이터가 전체 데이터의 일부임을 나타내는 정보인 영지식 증명값이 포함된 애플리케이션의 전자 서명을 생성할 수 있다. According to an embodiment, the server 20 may be applied to a zero-knowledge proof verification algorithm to generate an electronic signature of an application including a zero-knowledge proof value, which is information indicating that partial data is a part of the entire data.

도 5는 일 실시예에 따른, 서버가 보안 영역으로부터 출력되는 데이터를 필터링하는 방법의 순서도이다. 5 is a flowchart of a method for a server to filter data output from a security area, according to an embodiment.

단계 S510을 참조하면, 서버(20)는 애플리케이션을 이용하여 부분 데이터를 획득할 수 있다. 단계 S510은 단계 S470와 유사하므로, 중복되는 내용은 생략한다.Referring to step S510 , the server 20 may acquire partial data using an application. Since step S510 is similar to step S470, overlapping contents are omitted.

단계 S530을 참조하면, 서버(20)는 애플리케이션으로부터 출력되는 데이터를 식별할 수 있다. Referring to step S530, the server 20 may identify data output from the application.

데이터가 보안 영역(28)과 전자 장치(10)사이에 구축된 보안 채널(Secure Channel)을 통해서 송수신되므로, 전자 장치(10)가 요청하지 않은 데이터도 전송되는 것인지를 확인할 수 없다. 서버(20)는 프라이버시의 보호를 위해서 보안 영역에 구축된 애플리케이션으로부터 출력되는 데이터를 필터링할 수 있다. Since data is transmitted/received through a secure channel established between the secure area 28 and the electronic device 10 , it cannot be checked whether data not requested by the electronic device 10 is also transmitted. The server 20 may filter data output from the application built in the security area for privacy protection.

일 실시예에 따르면, 서버(20)는 애플리케이션으로부터 출력되는 데이터의 종류를 식별할 수 있다. 예를 들면, 서버(20)는 애플리케이션으로부터 출력되는 데이터 중에서 부분 데이터, 애플리케이션의 전자 서명, 영지식 증명값을 식별할 수 있다.단계 S550을 참조하면, 서버(20)는 애플리케이션으로부터 출력되는 데이터가 전자 장치(10)로부터 수신한 요청 데이터에 상응하는지를 식별할 수 있다. According to an embodiment, the server 20 may identify the type of data output from the application. For example, the server 20 may identify partial data, an electronic signature of the application, and a zero-knowledge proof value among data output from the application. Referring to step S550, the server 20 determines that the data output from the application Whether it corresponds to the request data received from the electronic device 10 may be identified.

일 실시예에 따르면, 서버(20)는 전자 장치(10)로부터 요청된 데이터와 애플리케이션으로부터 출력되는 데이터가 상응한지를 식별할 수 있다. 예를 들면, 서버(20)는 전자 장치(10)가 요청한 부분 데이터, 애플리케이션의 전자 서명 및 영지식 증명값인지를 식별할 수 있다.According to an embodiment, the server 20 may identify whether the data requested from the electronic device 10 and the data output from the application correspond. For example, the server 20 may identify the partial data requested by the electronic device 10 , the electronic signature of the application, and the zero-knowledge proof value.

일 실시예에 따르면, 서버(20)는 애플리케이션으로부터 출력되는 부분 데이터가 전자 장치(10)로부터 수신한 요청 데이터에 상응하는지를 식별할 수 있다. 예를 들면, 서버(20)는 애플리케이션으로부터 출력되는 부분 데이터에 전자 장치(10)로부터 요청되지 않은 데이터가 포함되었는지를 식별할 수 있다. According to an embodiment, the server 20 may identify whether partial data output from the application corresponds to the request data received from the electronic device 10 . For example, the server 20 may identify whether data not requested from the electronic device 10 is included in the partial data output from the application.

일 실시예에 따르면, 서버(20)는 전자 장치(10)로부터 요청된 데이터와 애플리케이션으로부터 출력되는 데이터가 상응하지 않은 경우에 단계 S510으로 되돌아가서 부분 데이터를 재생성할 수 있다. 단계 S570을 참조하면, 서버(20)는 애플리케이션으로부터 출력되는 데이터를 필터링 할 수 있다.According to an embodiment, when the data requested from the electronic device 10 and the data output from the application do not match, the server 20 may return to step S510 and regenerate the partial data. Referring to step S570, the server 20 may filter data output from the application.

일 실시예에 따르면, 서버(20)는 애플리케이션으로부터 출력되는 데이터 중에서 전자 장치(10)로부터 요청된 데이터를 제외한 나머지 데이터를 필터링 할 수 있다. 예를 들면, 서버(20)는 전자 장치(10)로부터 요청된 부분 데이터, 애플리케이션의 전자 서명 및 영지식 증명값을 제외한 나머지 데이터를 필터링할 수 있다. 다른 예를 들면, 서버(20)는 애플리케이션으로부터 출력되는 부분 데이터에 포함된 전자 장치(10)로부터 요청되지 않은 데이터를 부분 데이터로부터 제거할 수 있다. 단계 S590을 참조하면, 서버(20)는 필터링 된 데이터를 전자 장치(10)로 전송할 수 있다. 예를 들면, 서버(20)는 전자 장치(10)로부터 요청된 부분 데이터, 애플리케이션의 전자 서명 및 영지식 증명값만을 전자 장치(10)로 전송할 수 있다. 다른 예를 들면, 서버(20)는 전자 장치(10)로부터 요청되지 않은 데이터가 제거된 부분 데이터를 전자 장치(10)로 전송할 수 있다.According to an embodiment, the server 20 may filter the remaining data except for data requested from the electronic device 10 among data output from the application. For example, the server 20 may filter the remaining data except for the partial data requested from the electronic device 10 , the electronic signature of the application, and the zero-knowledge proof value. As another example, the server 20 may remove data not requested from the electronic device 10 included in the partial data output from the application from the partial data. Referring to step S590 , the server 20 may transmit the filtered data to the electronic device 10 . For example, the server 20 may transmit only partial data requested from the electronic device 10 , an electronic signature of an application, and a zero-knowledge proof value to the electronic device 10 . As another example, the server 20 may transmit partial data from which data not requested from the electronic device 10 is removed to the electronic device 10 .

도 6은 일 실시예에 따른, 전자 장치가 서버로부터 수신한 부분 데이터의 유효성을 식별하는 방법의 순서도이다.6 is a flowchart of a method for an electronic device to identify validity of partial data received from a server, according to an exemplary embodiment.

단계 S610을 참조하면, 전자 장치(10)는 애플리케이션으로부터 출력된 데이터 중에서 요청한 데이터를 수신할 수 있다. 예를 들면, 전자 장치(10)는 애플리케이션으로부터 출력된 데이터 중에서 부분 데이터, 애플리케이션의 전자 서명을 수신할 수 있다. 전자 장치(10)는 영지식 증명값이 포함된 애플리케이션의 전자 서명을 서버(20)로부터 수신할 수 있다. Referring to step S610 , the electronic device 10 may receive requested data among data output from the application. For example, the electronic device 10 may receive partial data among data output from the application, and an electronic signature of the application. The electronic device 10 may receive the electronic signature of the application including the zero-knowledge proof value from the server 20 .

단계 S630을 참조하면, 전자 장치(10)는 부분 데이터가 애플리케이션에 의해서 생성된 것임을 식별할 수 있다. Referring to step S630 , the electronic device 10 may identify that the partial data is generated by the application.

일 실시예에 따르면, 전자 장치(10)는 서버(20)로부터 수신한 애플리케이션의 전자 서명을 검증함으로써, 서버(20)로부터 수신한 부분 데이터가 전자 장치(10)가 전송한 설치 파일에 의해서 구축된 애플리케이션에 의해서 전체 데이터로부터 생성되었음을 식별할 수 있다. 예를 들면, 전자 장치(10)는 부분 데이터, 전체 데이터에 대한 소유자의 전자 서명 및 애플리케이션의 공개키를 이용하여 서버(20)로부터 수신한 애플리케이션의 전자 서명을 검증할 수 있다. 전자 장치(10)는 전체 데이터에 대한 소유자의 공개키에 기초하여 애플리케이션의 전자 서명에 이용된 전체 데이터의 소유자의 전자 서명의 유효성을 검증할 수 있다. 전자 장치(10)는 유효성이 검증된 전체 데이터의 소유자의 전자 서명을 이용하여 애플리케이션의 전자 서명을 검증할 수 있다. According to an embodiment, the electronic device 10 verifies the electronic signature of the application received from the server 20 , so that partial data received from the server 20 is constructed by the installation file transmitted by the electronic device 10 . It can be identified that it was created from the entire data by the applied application. For example, the electronic device 10 may verify the electronic signature of the application received from the server 20 using the electronic signature of the owner for partial data, the entire data, and the public key of the application. The electronic device 10 may verify the validity of the electronic signature of the owner of the entire data used for the electronic signature of the application based on the public key of the owner of the entire data. The electronic device 10 may verify the electronic signature of the application by using the electronic signature of the owner of all validated data.

단계 S650을 참조하면, 전자 장치(10)는 서버(20)로부터 수신한 부분 데이터의 무결성을 식별할 수 있다. 전자 장치(10)는 애플리케이션의 공개키 및 부분 데이터의 해쉬값에 기초하여 애플리케이션의 전자 서명을 검증함으로써, 부분 데이터의 무결성을 식별할 수 있다. Referring to step S650 , the electronic device 10 may identify the integrity of the partial data received from the server 20 . The electronic device 10 may identify the integrity of the partial data by verifying the electronic signature of the application based on the public key of the application and the hash value of the partial data.

일 실시예에 따르면, 전자 장치(10)는 애플리케이션의 전자 서명에 포함된 부분 데이터의 해쉬값을 검증함으로써, 부분 데이터의 무결성을 식별할 수 있다. 예를 들면, 전자 장치(10)는 서버(20)로부터 수신한 부분 데이터를 해쉬 함수에 적용함으로써 획득한 해쉬값과 애플리케이션의 전자 서명으로부터 획득한 부분 데이터의 해쉬값을 비교할 수 있다. 전자 장치(10)는 해쉬값들이 서로 동일하다고 식별한 결과에 기초하여 서버(20)로부터 수신한 부분 데이터의 무결성을 식별할 수 있다. 단계 S670을 참조하면, 전자 장치(10)는 서버(20)로부터 수신한 부분 데이터가 전체 데이터의 일부임을 검증할 수 있다. 전자 장치(10)는 서버(20)로부터 수신한 영지식 증명값을 영지식 증명 확인 알고리즘에 적용함으로써, 부분 데이터가 전체 데이터의 일부임을 검증할 수 있다. According to an embodiment, the electronic device 10 may identify the integrity of the partial data by verifying a hash value of the partial data included in the electronic signature of the application. For example, the electronic device 10 may compare a hash value obtained by applying the partial data received from the server 20 to a hash function with a hash value of the partial data obtained from the electronic signature of the application. The electronic device 10 may identify the integrity of the partial data received from the server 20 based on a result of identifying that the hash values are identical to each other. Referring to step S670 , the electronic device 10 may verify that the partial data received from the server 20 is a part of the entire data. The electronic device 10 may verify that the partial data is a part of the entire data by applying the zero-knowledge proof value received from the server 20 to the zero-knowledge proof verification algorithm.

일 실시예에 따르면, 요청 데이터에 포함된 애플리케이션에 관한 정보는 영지식 증명 알고리즘에 관한 정보가 포함될 수 있다. 서버(20)는 보안 영역(28)에 구축되는 애플리케이션을 이용하여 요청 데이터에 포함된 영지식 증명 알고리즘에 기초하여, 영지식 증명값을 생성할 수 있다. 전자 장치(10)는 전체 데이터로부터 부분 데이터가 획득되었다는 관계를 증명하는 영지식 증명값을 서버(20)로부터 수신할 수 있다. 전자 장치(10)는 영지식 증명값을 영지식 증명 알고리즘에 적용함으로써, 전체 데이터로부터 부분 데이터가 획득된 것임을 검증할 수 있다. According to an embodiment, the information about the application included in the request data may include information about the zero-knowledge proof algorithm. The server 20 may generate a zero-knowledge proof value based on a zero-knowledge proof algorithm included in the request data using an application built in the secure area 28 . The electronic device 10 may receive from the server 20 a zero-knowledge proof value that proves the relationship that partial data is obtained from the entire data. The electronic device 10 may verify that partial data is obtained from the entire data by applying the zero-knowledge proof value to the zero-knowledge proof algorithm.

일 실시예에 다르면, 전자 장치(10)는 전체 데이터의 유효성을 검증할 수 있다. 전자 장치(10)는 소유자의 공개키 인증서로부터 소유자의 공개키를 획득하고, 소유자의 공개키와 전체 데이터에 기초하여 소유자의 전자 서명을 검증할 수 있다. 또한, 전자 장치(10)는 소유자가 전자 서명을 수행한 시각에 관한 정보에 기초하여 소유자의 전자 서명을 검증할 수 있다. 전자 장치(10)는 소유자의 전자 서명을 검증함으로써, 전체 데이터의 유효성을 검증하고, 전체 데이터의 부분 데이터를 활용할 수 있다. According to an embodiment, the electronic device 10 may verify the validity of all data. The electronic device 10 may obtain the owner's public key from the owner's public key certificate, and verify the owner's electronic signature based on the owner's public key and all data. Also, the electronic device 10 may verify the electronic signature of the owner based on information about the time when the owner performs the electronic signature. The electronic device 10 may verify the validity of the entire data by verifying the electronic signature of the owner, and may utilize partial data of the entire data.

일 실시예에 따르면, 전자 장치(10)는 전체 데이터로부터 획득된 부분 데이터의 유효성을 식별할 수 있다. 예를 들면, 전자 장치(10)는 전체 데이터의 소유자의 공개키에 기초하여, 애플리케이션의 전자 서명에 이용된 전체 데이터의 소유자의 전자 서명의 유효성을 검증할 수 있다. 전자 장치(10)는 검증된 전체 데이터의 소유자의 전자 서명에 기초하여, 상기 전체 데이터의 유효성을 검증함으로써, 전체 데이터로부터 획득된 부분 데이터의 유효성을 식별할 수 있다. According to an embodiment, the electronic device 10 may identify the validity of the partial data obtained from the entire data. For example, the electronic device 10 may verify the validity of the electronic signature of the owner of all data used for the electronic signature of the application, based on the public key of the owner of the entire data. The electronic device 10 may identify the validity of the partial data obtained from the entire data by verifying the validity of the entire data based on the electronic signature of the owner of the verified entire data.

도 7은 일 실시예에 따른, 전자 장치가 부분 데이터를 활용하는 방법을 설명하는 도면이다. 7 is a diagram for explaining a method of using partial data by an electronic device, according to an exemplary embodiment.

도 7을 참조하면, 전자 장치(10)는 서버(20)로부터 부분 데이터를 수신할 수 있다. 예를 들면, 전자 장치(10)는 서버(20)로부터 건강검진 기록 데이터 중에서 기준치 이상의 값의 피 검사 관련 데이터를 수신할 수 있다. Referring to FIG. 7 , the electronic device 10 may receive partial data from the server 20 . For example, the electronic device 10 may receive, from the server 20 , blood test related data having a value greater than or equal to a reference value among health checkup record data.

개시된 실시예에서, 전자 장치(10)는 서버(20)로부터 수신한 부분 데이터를 활용할 수 있다. In the disclosed embodiment, the electronic device 10 may utilize partial data received from the server 20 .

일 실시예에 따르면, 전자 장치(10)는 부분 데이터를 통계 알고리즘에 적용할 수 있다. 예를 들면, 전자 장치(10)는 혈액 내의 백혈구의 수치에 따른 염증도에 관한 통계 알고리즘에 서버(20)로부터 수신한 기준치 이상의 피 검사 관련 데이터를 적용할 수 있다. According to an embodiment, the electronic device 10 may apply partial data to a statistical algorithm. For example, the electronic device 10 may apply the blood test-related data received from the server 20 or more to a statistical algorithm regarding the degree of inflammation according to the level of white blood cells in the blood.

일 실시예에 따르면, 전자 장치(10)는 부분 데이터를 인공지능 모델(19)에 학습 데이터로서 적용할 수 있다. 전자 장치(10)는 주어진 정보를 판단하여 논리적으로 추론하고 예측하기 위한 인공지능 모델(19)을 학습시키기 위하여 서버(20)로부터 획득한 부분 데이터를 인공지능 모델(19)에 학습 데이터로서 적용할 수 있다. According to an embodiment, the electronic device 10 may apply the partial data to the artificial intelligence model 19 as learning data. The electronic device 10 applies the partial data obtained from the server 20 as learning data to the artificial intelligence model 19 in order to learn the artificial intelligence model 19 for logically reasoning and predicting by judging the given information. can

추론 예측은 정보를 판단하여 논리적으로 추론하고 예측하는 기술로서, 지식/확률 기반 추론(Knowledge based Reasoning), 최적화 예측(Optimization Prediction), 선호 기반 계획(Preference-based Planning), 추천(Recommendation) 등을 포함한다.Inference prediction is a technology for logically reasoning and predicting information by judging information. Knowledge based reasoning, optimization prediction, preference-based planning, recommendation, etc. include

한편, 본 개시에 따른 인공지능과 관련된 기능은 프로세서와 메모리를 통해 동작된다. 프로세서는 하나 또는 복수의 프로세서로 구성될 수 있다. 이때, 하나 또는 복수의 프로세서는 CPU, AP, DSP(Digital Signal Processor) 등과 같은 범용 프로세서, GPU, VPU(Vision Processing Unit)와 같은 그래픽 전용 프로세서 또는 NPU와 같은 인공지능 전용 프로세서일 수 있다. 하나 또는 복수의 프로세서는, 메모리에 저장된 기 정의된 동작 규칙 또는 인공지능 모델에 따라, 입력 데이터를 처리하도록 제어한다. 또는, 하나 또는 복수의 프로세서가 인공지능 전용 프로세서인 경우, 인공지능 전용 프로세서는, 특정 인공지능 모델의 처리에 특화된 하드웨어 구조로 설계될 수 있다. 프로세서는 인공지능 모델에 적용되는 데이터에 대해서 인공지능 모델에 적용되기에 적합한 형태로 변환하는 전처리 과정을 수행할 수 있다. Meanwhile, functions related to artificial intelligence according to the present disclosure are operated through a processor and a memory. The processor may consist of one or a plurality of processors. In this case, the one or more processors may be a general-purpose processor such as a CPU, an AP, a digital signal processor (DSP), or the like, a graphics-only processor such as a GPU, a VPU (Vision Processing Unit), or an artificial intelligence-only processor such as an NPU. 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. Alternatively, when one or more processors are AI-only processors, the AI-only processor may be designed with a hardware structure specialized for processing a specific AI model. The processor may perform a preprocessing process of converting data applied to the AI model into a form suitable for application to the AI model.

인공지능 모델은 학습을 통해 만들어 질 수 있다. 여기서, 학습을 통해 만들어진다는 것은, 기본 인공지능 모델이 학습 알고리즘에 의하여 다수의 학습 데이터들을 이용하여 학습됨으로써, 원하는 특성(또는, 목적)을 수행하도록 설정된 기 정의된 동작 규칙 또는 인공지능 모델이 만들어짐을 의미한다. 이러한 학습은 본 개시에 따른 인공지능이 수행되는 기기 자체에서 이루어질 수도 있고, 별도의 서버 및/또는 시스템을 통해 이루어 질 수도 있다. 학습 알고리즘의 예로는, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)이 있으나, 전술한 예에 한정되지 않는다.AI models can be created through learning. Here, 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.

인공지능 모델은, 복수의 신경망 레이어들로 구성될 수 있다. 복수의 신경망 레이어들 각각은 복수의 가중치들(weight values)을 갖고 있으며, 이전(previous) 레이어의 연산 결과와 복수의 가중치들 간의 연산을 통해 신경망 연산을 수행한다. 복수의 신경망 레이어들이 갖고 있는 복수의 가중치들은 인공지능 모델의 학습 결과에 의해 최적화될 수 있다. 예를 들어, 학습 과정 동안 인공지능 모델에서 획득한 로스(loss) 값 또는 코스트(cost) 값이 감소 또는 최소화되도록 복수의 가중치들이 갱신될 수 있다. 인공 신경망은 심층 신경망(DNN:Deep Neural Network)를 포함할 수 있으며, 예를 들어, 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) 등이 있으나, 전술한 예에 한정되지 않는다.The artificial intelligence model may be composed of a plurality of neural network layers. Each of the plurality of neural network layers has a plurality of weight values, and a neural network operation is performed through an operation between an operation result of a previous layer and the plurality of weights. The plurality of weights of the plurality of neural network layers 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. The artificial neural network may include a deep neural network (DNN), for example, a Convolutional Neural Network (CNN), a Deep Neural Network (DNN), a Recurrent Neural Network (RNN), a Restricted Boltzmann Machine (RBM), There may be a Deep Belief Network (DBN), a Bidirectional Recurrent Deep Neural Network (BRDNN), or a Deep Q-Networks, but is not limited thereto.

개시된 인공지능 모델은 학습 데이터로서 입력된 복수의 텍스트 데이터 및 이미지 데이터를 소정의 기준에 의해 학습함으로써 생성된 것일 수 있다. 인공지능 모델은 입력된 데이터에 대응하여, 학습된 기능을 수행함으로써 결과 데이터를 생성하고, 결과 데이터를 출력할 수 있다. 또한, 개시된 인공지능 모델은 적어도 하나의 기능을 수행하도록 학습된(trained) 복수개의 인공지능 모델을 포함할 수 있다.The disclosed artificial intelligence model may be generated by learning a plurality of text data and image data input as learning data according to a predetermined criterion. The artificial intelligence model may generate result data by performing a learned function in response to input data, and may output the result data. In addition, the disclosed artificial intelligence model may include a plurality of artificial intelligence models trained to perform at least one function.

일 실시예에 따르면, 전자 장치(10)는 전자 장치(10)에 구축된 인공지능 모델(19)에 부분 데이터를 학습 데이터로서 적용할 수 있다. 전자 장치(10)는 서버(20)에 구축된 인공지능 모델을 갱신하기 위해서, 학습시킨 인공지능 모델(19)의 파라미터를 서버(20)로 전송할 수 있다. According to an embodiment, the electronic device 10 may apply partial data as training data to the artificial intelligence model 19 built in the electronic device 10 . In order to update the artificial intelligence model built in the server 20 , the electronic device 10 may transmit the learned parameters of the artificial intelligence model 19 to the server 20 .

일 실시예에 따르면, 전자 장치(10)는 서버(20)에 구축된 인공지능 모델(19)에 부분 데이터를 학습 데이터로서 적용할 수 있다. 전자 장치(10)는 전자 장치(10)에 구축된 인공지능 모델을 갱신하기 위해서, 학습시킨 인공지능 모델(19)의 파라미터를 서버(20)로부터 수신할 수 있다. According to an embodiment, the electronic device 10 may apply partial data to the artificial intelligence model 19 built in the server 20 as learning data. In order to update the artificial intelligence model built in the electronic device 10 , the electronic device 10 may receive the learned parameters of the artificial intelligence model 19 from the server 20 .

도 8은 일 실시예에 따른, 서버의 블록도이다.8 is a block diagram of a server, according to an embodiment.

도 8을 참조하면, 일부 실시예에 따른 서버(20)는 통신부(25), 메모리(26), DB(27), 보안 영역(28) 및 프로세서(23)를 포함할 수 있다. Referring to FIG. 8 , the server 20 according to some embodiments may include a communication unit 25 , a memory 26 , a DB 27 , a security area 28 , and a processor 23 .

통신부(25)는 서버(20)가 전자 장치(10)와 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다. The communication unit 25 may include one or more components that allow the server 20 to communicate with the electronic device 10 .

메모리(26)는 프로세서(23)의 처리 및 제어를 위한 적어도 하나의 인스트럭션 및 적어도 하나의 프로그램을 저장할 수 있고, 서버(20)로 입력되거나 서버(20)로부터 출력되는 데이터를 저장할 수도 있다. The memory 26 may store at least one instruction and at least one program for processing and control of the processor 23 , and may store data input to or output from the server 20 .

DB(27)는 전자 장치(10)로부터 수신한 데이터를 저장할 수 있다. DB(27)는 복수의 전자 장치들로부터 수신한 데이터들을 암호화하여 저장할 수 있다. The DB 27 may store data received from the electronic device 10 . The DB 27 may encrypt and store data received from a plurality of electronic devices.

보안 영역(28)은 데이터, 특정 기능 또는 전체 애플리케이션이 하드웨어 보안 아키텍쳐에 저장될 수 있다. 보안 영역(28)은 전체 데이터의 무결성을 검증하고, 전체 데이터로부터 부분 데이터를 획득하는 애플리케이션이 구축될 수 있다. The secure area 28 may store data, specific functions, or entire applications in a hardware secure architecture. The secure area 28 verifies the integrity of the entire data, and an application for obtaining partial data from the entire data can be built.

프로세서(23)는 통상적으로 서버(20)의 전반적인 동작을 제어한다. 예를 들어, 프로세서(23)는, 서버(20)의 메모리(26)에 저장된 프로그램들을 실행함으로써, DB(27), 보안 영역(28) 및 통신부(25) 등을 전반적으로 제어할 수 있다. 프로세서(23)는 프로그램들을 실행함으로써, 도 1 내지 도 7을 참조하여 설명한 서버(20)의 동작을 수행할 수 있다.The processor 23 typically controls the overall operation of the server 20 . For example, the processor 23 may control the DB 27 , the security area 28 , the communication unit 25 , and the like in general by executing programs stored in the memory 26 of the server 20 . The processor 23 may perform the operations of the server 20 described with reference to FIGS. 1 to 7 by executing programs.

예를 들면, 프로세서(23)는 요청 데이터 식별 모듈(27a)에 저장된 인스트럭션을 실행함으로써, 전자 장치(10)가 요청한 부분 데이터를 식별할 수 있다. 또한, 프로세서(23)는 요청 데이터 식별 모듈(27a)에 저장된 인스트럭션을 실행함으로써, 요청 데이터로부터 애플리케이션에 관한 정보를 식별할 수 있다. 도 1 내지 도 7을 참조하여 위에서 설명한 실시예와 중복되는 내용은 생략한다.For example, the processor 23 may identify the partial data requested by the electronic device 10 by executing an instruction stored in the request data identification module 27a. In addition, the processor 23 may identify information about the application from the request data by executing an instruction stored in the request data identification module 27a. The content overlapping with the embodiment described above with reference to FIGS. 1 to 7 will be omitted.

다른 예를 들면, 프로세서(23)는 애플리케이션 설치 모듈(27b)에 저장된 인스트럭션을 실행함으로써, 보안 영역(28)에 애플리케이션을 구축하도록 서버(20)를 제어할 수 있다. 도 1 내지 도 7을 참조하여 위에서 설명한 실시예와 중복되는 내용은 생략한다.As another example, the processor 23 may control the server 20 to build an application in the secure area 28 by executing an instruction stored in the application installation module 27b. The content overlapping with the embodiment described above with reference to FIGS. 1 to 7 will be omitted.

다른 예를 들면, 프로세서(23)는 전체 데이터 검증 모듈(27c)에 저장된 인스트럭션을 실행함으로써, 암호화된 전체 데이터의 유효성을 검증할 수 있다. 도 1 내지 도 7을 참조하여 위에서 설명한 실시예와 중복되는 내용은 생략한다.As another example, the processor 23 may verify the validity of the entire encrypted data by executing an instruction stored in the full data verification module 27c. The content overlapping with the embodiment described above with reference to FIGS. 1 to 7 will be omitted.

다른 예를 들면, 프로세서(23)는 부분 데이터 획득 모듈(27d)에 저장된 인스트럭션을 실행함으로써, 유효성이 검증된 전체 데이터로부터 요청 데이터에 상응하는 부분 데이터를 획득할 수 있다. 도 1 내지 도 7을 참조하여 위에서 설명한 실시예와 중복되는 내용은 생략한다.As another example, the processor 23 may acquire partial data corresponding to the requested data from the entire data whose validity has been verified by executing the instruction stored in the partial data obtaining module 27d. The content overlapping with the embodiment described above with reference to FIGS. 1 to 7 will be omitted.

다른 예를 들면, 프로세서(23)는 전자 서명 생성 모듈(27e)에 저장된 인스트럭션을 실행함으로써, 부분 데이터가 상기 보안 영역에 구축된 애플리케이션에 의해서 생성되었다는 정보인 애플리케이션의 전자 서명을 생성할 수 있다. 도 1 내지 도 7을 참조하여 위에서 설명한 실시예와 중복되는 내용은 생략한다.As another example, the processor 23 may generate the electronic signature of the application, which is information that the partial data was generated by the application built in the secure area, by executing the instruction stored in the electronic signature generating module 27e. The content overlapping with the embodiment described above with reference to FIGS. 1 to 7 will be omitted.

다른 예를 들면, 프로세서(23)는 영지식 증명값 생성 모듈(27f)에 저장된 인스트럭션을 실행함으로써, 부분 데이터가 전체 데이터의 일부임을 나타내는 정보인 영지식 증명값을 생성할 수 있다. 도 1 내지 도 7을 참조하여 위에서 설명한 실시예와 중복되는 내용은 생략한다.As another example, the processor 23 may generate a zero-knowledge proof value, which is information indicating that the partial data is a part of the whole data, by executing the instruction stored in the zero-knowledge proof value generating module 27f. The content overlapping with the embodiment described above with reference to FIGS. 1 to 7 will be omitted.

다른 예를 들면, 프로세서(23)는 애플리케이션의 출력 데이터 식별 모듈(27g)에 저장된 인스트럭션을 실행함으로써, 애플리케이션에서 출력되는 데이터가 요청 데이터에 상응하는지를 식별할 수 있다. 도 1 내지 도 7을 참조하여 위에서 설명한 실시예와 중복되는 내용은 생략한다.As another example, the processor 23 may identify whether the data output from the application corresponds to the requested data by executing the instruction stored in the output data identification module 27g of the application. The content overlapping with the embodiment described above with reference to FIGS. 1 to 7 will be omitted.

다른 예를 들면, 프로세서(23)는 애플리케이션의 출력 데이터 필터링 모듈(27h)에 저장된 인스트럭션을 실행함으로써, 애플리케이션으로부터 출력되는 데이터 중에서 요청 데이터에 상응하지 않는 데이터를 필터링할 수 있다. 도 1 내지 도 7을 참조하여 위에서 설명한 실시예와 중복되는 내용은 생략한다.As another example, the processor 23 may filter data that does not correspond to the requested data among data output from the application by executing the instruction stored in the output data filtering module 27h of the application. The content overlapping with the embodiment described above with reference to FIGS. 1 to 7 will be omitted.

도 9는 일 실시예에 따른, 서버에 포함된 메모리의 소프트웨어 모듈을 나타내는 블록도이다.9 is a block diagram illustrating a software module of a memory included in a server, according to an embodiment.

도 9를 참조하면, 메모리(26)는 도 1 내지 도 7을 참조하여 위에서 설명한 실시예들을 서버(20)가 수행하기 위한 소프트웨어 모듈로서, 요청 데이터 식별 모듈(27a), 애플리케이션 설치 모듈(27b), 애플리케이션의 출력 데이터 식별 모듈(27g) 및 애플리케이션의 출력 데이터 필터링 모듈(27h)을 포함할 수 있다. 또한, 애플리케이션 설치 모듈(27b)은 전체 데이터 검증 모듈(27c), 부분 데이터 획득 모듈(27d), 전자 서명 생성 모듈(27e) 및 영지식 증명값 생성 모듈(27f)을 포함할 수 있다. Referring to FIG. 9 , the memory 26 is a software module for the server 20 to perform the embodiments described above with reference to FIGS. 1 to 7 , and includes a request data identification module 27a and an application installation module 27b. , an application output data identification module 27g and an application output data filtering module 27h. In addition, the application installation module 27b may include a full data verification module 27c, a partial data acquisition module 27d, an electronic signature generation module 27e, and a zero-knowledge proof value generation module 27f.

그러나, 도 9에 도시된 소프트웨어 모듈보다 많은 소프트웨어 모듈에 의해 서버(20)가 부분 데이터를 획득하여 전자 장치(10)로 전송할 수 있고, 도 9에 도시된 소프트웨어 모듈보다 적은 소프트웨어 모듈에 의해 서버(20)가 부분 데이터를 획득하여 전자 장치(10)로 전송할 수 있다. However, the server 20 may acquire partial data and transmit it to the electronic device 10 by more software modules than the software modules shown in FIG. 9, and by using fewer software modules than the software modules shown in FIG. 20 ) may acquire partial data and transmit it to the electronic device 10 .

예를 들면, 요청 데이터 식별 모듈(27a)에 저장된 인스트럭션을 프로세서(23)가 실행함으로써, 서버(20)는 전자 장치(10)가 요청한 부분 데이터를 식별할 수 있다. 또한, 요청 데이터 식별 모듈(27a)에 저장된 인스트럭션을 프로세서(23)가 실행함으로써, 서버(20)는 요청 데이터로부터 애플리케이션에 관한 정보를 식별할 수 있다. 도 1 내지 도 7을 참조하여 위에서 설명한 실시예와 중복되는 내용은 생략한다.For example, by executing the instruction stored in the request data identification module 27a by the processor 23 , the server 20 may identify the partial data requested by the electronic device 10 . In addition, since the processor 23 executes the instructions stored in the request data identification module 27a, the server 20 can identify information about the application from the request data. The content overlapping with the embodiment described above with reference to FIGS. 1 to 7 will be omitted.

다른 예를 들면, 애플리케이션 설치 모듈(27b)에 저장된 인스트럭션을 프로세서(23)가 실행함으로써, 서버(20)는 보안 영역(28)에 애플리케이션을 구축할 수 있다. 도 1 내지 도 7을 참조하여 위에서 설명한 실시예와 중복되는 내용은 생략한다.As another example, the processor 23 executes the instructions stored in the application installation module 27b, so that the server 20 can build the application in the secure area 28 . The content overlapping with the embodiment described above with reference to FIGS. 1 to 7 will be omitted.

다른 예를 들면, 전체 데이터 검증 모듈(27c)에 저장된 인스트럭션을 프로세서(23)가 실행함으로써, 서버(20)는 암호화된 전체 데이터의 유효성을 검증할 수 있다. 도 1 내지 도 7을 참조하여 위에서 설명한 실시예와 중복되는 내용은 생략한다.As another example, by executing the instructions stored in the full data verification module 27c by the processor 23 , the server 20 may verify the validity of the entire encrypted data. The content overlapping with the embodiment described above with reference to FIGS. 1 to 7 will be omitted.

다른 예를 들면, 부분 데이터 획득 모듈(27d)에 저장된 인스트럭션을 프로세서(23)가 실행함으로써, 서버(20)는 유효성이 검증된 전체 데이터로부터 요청 데이터에 상응하는 부분 데이터를 획득할 수 있다. 도 1 내지 도 7을 참조하여 위에서 설명한 실시예와 중복되는 내용은 생략한다.As another example, when the processor 23 executes the instructions stored in the partial data acquisition module 27d, the server 20 may acquire partial data corresponding to the requested data from the validated entire data. The content overlapping with the embodiment described above with reference to FIGS. 1 to 7 will be omitted.

다른 예를 들면, 전자 서명 생성 모듈(27e)에 저장된 인스트럭션을 프로세서(23)가 실행함으로써, 서버(20)는 부분 데이터가 상기 보안 영역에 구축된 애플리케이션에 의해서 생성되었다는 정보인 애플리케이션의 전자 서명을 생성할 수 있다. 도 1 내지 도 7을 참조하여 위에서 설명한 실시예와 중복되는 내용은 생략한다.As another example, when the processor 23 executes the instruction stored in the electronic signature generating module 27e, the server 20 generates the electronic signature of the application, which is information that the partial data was generated by the application built in the secure area. can create The content overlapping with the embodiment described above with reference to FIGS. 1 to 7 will be omitted.

다른 예를 들면, 영지식 증명값 생성 모듈(27f)에 저장된 인스트럭션을 프로세서(23)가 실행함으로써, 서버(20)는 부분 데이터가 전체 데이터의 일부임을 나타내는 정보인 영지식 증명값을 생성할 수 있다. 도 1 내지 도 7을 참조하여 위에서 설명한 실시예와 중복되는 내용은 생략한다.As another example, by executing the instruction stored in the zero-knowledge proof value generating module 27f by the processor 23, the server 20 may generate a zero-knowledge proof value that is information indicating that the partial data is a part of the entire data. have. The content overlapping with the embodiment described above with reference to FIGS. 1 to 7 will be omitted.

다른 예를 들면, 애플리케이션의 출력 데이터 식별 모듈(27g)에 저장된 인스트럭션을 프로세서(23)가 실행함으로써, 서버(20)는 애플리케이션에서 출력되는 데이터가 요청 데이터에 상응하는지를 식별할 수 있다. 도 1 내지 도 7을 참조하여 위에서 설명한 실시예와 중복되는 내용은 생략한다.As another example, when the processor 23 executes the instructions stored in the application output data identification module 27g, the server 20 may identify whether the data output from the application corresponds to the requested data. The content overlapping with the embodiment described above with reference to FIGS. 1 to 7 will be omitted.

다른 예를 들면, 애플리케이션의 출력 데이터 필터링 모듈(27h)에 저장된 인스트럭션을 프로세서(23)가 실행함으로써, 서버(20)는 애플리케이션으로부터 출력되는 데이터 중에서 요청 데이터에 상응하지 않는 데이터를 필터링할 수 있다. 도 1 내지 도 7을 참조하여 위에서 설명한 실시예와 중복되는 내용은 생략한다.As another example, by executing the instruction stored in the output data filtering module 27h of the application by the processor 23, the server 20 may filter data that does not correspond to the requested data among data output from the application. The content overlapping with the embodiment described above with reference to FIGS. 1 to 7 will be omitted.

도 10은 일 실시예에 따른, 전자 장치의 블록도이다.10 is a block diagram of an electronic device, according to an embodiment.

도 10을 참조하면, 전자 장치(10)는, 사용자 입력부(11), 출력부(12), 프로세서(13), 통신부(15) 및 메모리(17)를 포함할 수 있다. 그러나, 도 10에 도시된 구성 요소 모두가 전자 장치(10)의 필수 구성 요소인 것은 아니다. 도 10에 도시된 구성 요소보다 많은 구성 요소에 의해 전자 장치(10)가 구현될 수도 있고, 도 10에 도시된 구성 요소보다 적은 구성 요소에 의해 전자 장치(10)가 구현될 수도 있다.Referring to FIG. 10 , the electronic device 10 may include a user input unit 11 , an output unit 12 , a processor 13 , a communication unit 15 , and a memory 17 . However, not all of the components shown in FIG. 10 are essential components of the electronic device 10 . The electronic device 10 may be implemented by more components than those illustrated in FIG. 10 , or the electronic device 10 may be implemented by fewer components than those illustrated in FIG. 10 .

사용자 입력부(11)는, 사용자가 전자 장치(10)를 제어하기 위한 데이터를 입력하는 수단을 의미한다. 예를 들어, 사용자 입력부(11)에는 터치 스크린(touch screen), 키 패드(key pad), 돔 스위치 (dome switch), 터치 패드(접촉식 정전 용량 방식, 압력식 저항막 방식, 적외선 감지 방식, 표면 초음파 전도 방식, 적분식 장력 측정 방식, 피에조 효과 방식 등), 터치스크린, 조그 휠, 조그 스위치 등이 있을 수 있으나 이에 한정되는 것은 아니다. 사용자 입력부(11)는 도 1 내지 도 7를 참조하여 설명한 실시예들을 전자 장치(10)가 수행하기 위해 필요한 사용자 입력을 수신할 수 있다. The user input unit 11 means a means for a user to input data for controlling the electronic device 10 . For example, the user input unit 11 includes a touch screen, a key pad, a dome switch, a touch pad (contact capacitive method, pressure resistance film method, infrared sensing method, Surface ultrasonic conduction method, integral tension measurement method, piezo effect method, etc.), a touch screen, a jog wheel, a jog switch, etc. may be used, but are not limited thereto. The user input unit 11 may receive a user input necessary for the electronic device 10 to perform the embodiments described with reference to FIGS. 1 to 7 .

출력부(12)는 전자 장치(10)에서 처리되는 정보를 출력한다. 출력부(12)는 도 1 내지 도 7을 참조하여 설명한 실시예들에 관련된 정보를 출력할 수 있다. 또한, 출력부(12)는 사용자 인터페이스를 통한 사용자의 입력에 대응하는 동작을 수행한 결과를 디스플레이하는 디스플레이부(12-1)를 포함할 수 있다. The output unit 12 outputs information processed by the electronic device 10 . The output unit 12 may output information related to the embodiments described with reference to FIGS. 1 to 7 . Also, the output unit 12 may include a display unit 12-1 that displays a result of performing an operation corresponding to a user's input through the user interface.

프로세서(13)는, 통상적으로 전자 장치(10)의 전반적인 동작을 제어한다. 예를 들어, 프로세서(13)는, 메모리(17)에 저장된 적어도 하나의 인스트럭션을 실행함으로써, 연합 학습을 수행하기 위하여 사용자 입력부(11), 출력부(12), 통신부(15), 메모리(17) 등을 전반적으로 제어할 수 있다. The processor 13 generally controls the overall operation of the electronic device 10 . For example, the processor 13 executes at least one instruction stored in the memory 17 , so that the user input unit 11 , the output unit 12 , the communication unit 15 , and the memory 17 perform associative learning. ) can be controlled in general.

예를 들면, 프로세서(13)는 부분 데이터 검색 모듈(17a)에 저장된 인스트럭션을 실행함으로써, 전체 데이터 중에서 소정의 조건을 만족하는 부분 데이터를 검색할 수 있다. 도 1 내지 도 7을 참조하여 위에서 설명한 실시예와 중복되는 내용은 생략한다.For example, the processor 13 may search for partial data satisfying a predetermined condition from among all data by executing an instruction stored in the partial data search module 17a. The content overlapping with the embodiment described above with reference to FIGS. 1 to 7 will be omitted.

다른 예를 들면, 프로세서(13)는 요청 데이터 생성 모듈(17b) 에 저장된 인스트럭션을 실행함으로써, 소정의 조건을 만족하는 부분 데이터를 요청하는 요청 데이터를 생성할 수 있다. 또한, 프로세서(13)는 애플리케이션에 관한 정보를 포함하는 요청 데이터를 생성할 수 있다. 도 1 내지 도 7을 참조하여 위에서 설명한 실시예와 중복되는 내용은 생략한다.As another example, the processor 13 may generate request data for requesting partial data satisfying a predetermined condition by executing an instruction stored in the request data generating module 17b. In addition, the processor 13 may generate request data including information about the application. The content overlapping with the embodiment described above with reference to FIGS. 1 to 7 will be omitted.

다른 예를 들면, 프로세서(13)는 부분 데이터 검증 모듈(17c)에 저장된 인스트럭션을 실행함으로써, 서버(20)로부터 수신한 부분 데이터의 유효성을 검증할 수 있다. 도 1 내지 도 7을 참조하여 위에서 설명한 실시예와 중복되는 내용은 생략한다.As another example, the processor 13 may verify the validity of the partial data received from the server 20 by executing the instruction stored in the partial data verification module 17c. The content overlapping with the embodiment described above with reference to FIGS. 1 to 7 will be omitted.

다른 예를 들면, 프로세서(13)는 부분 데이터 활용 모듈(17d)에 저장된 인스트럭션을 실행함으로써, 부분 데이터를 통계 알고리즘에 적용할 수 있다. 또한, 프로세서(13)는 부분 데이터를 인공지능 모델(19)에 학습 데이터로서 적용할 수 있다. 도 1 내지 도 7을 참조하여 위에서 설명한 실시예와 중복되는 내용은 생략한다.As another example, the processor 13 may apply the partial data to the statistical algorithm by executing the instructions stored in the partial data utilization module 17d. In addition, the processor 13 may apply the partial data to the artificial intelligence model 19 as training data. The content overlapping with the embodiment described above with reference to FIGS. 1 to 7 will be omitted.

프로세서(13)는 범용적으로 이용되는 적어도 하나의 프로세서일 수 있다. 또한, 프로세서(13)는 인공지능 모델의 기능을 수행하기 위해서 제작된 적어도 하나의 프로세서를 포함할 수 있다. 프로세서(13)는 인공지능 모델이 새로운 학습 데이터를 학습하도록 일련의 인스트럭션를 실행할 수 있다. 프로세서(13)는 메모리(17)에 저장된 소프트웨어 모듈을 실행함으로써, 도 7을 참조하여 위에서 설명한 인공지능 모델의 기능을 수행할 수 있다. The processor 13 may be at least one general-purpose processor. In addition, the processor 13 may include at least one processor manufactured to perform the function of the artificial intelligence model. The processor 13 may execute a series of instructions so that the artificial intelligence model learns new training data. The processor 13 may perform the function of the artificial intelligence model described above with reference to FIG. 7 by executing the software module stored in the memory 17 .

통신부(15)는, 전자 장치(10)가 다른 장치(미도시) 및 서버(20)와 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다. 다른 장치(미도시)는 전자 장치(10)와 같은 컴퓨팅 장치일 수 있으나, 이에 제한되지 않는다. The communication unit 15 may include one or more components that allow the electronic device 10 to communicate with another device (not shown) and the server 20 . Another device (not shown) may be a computing device such as the electronic device 10, but is not limited thereto.

메모리(17)는, 프로세서(13)의 처리 및 제어를 위한 적어도 하나의 인스트럭션 및 적어도 하나의 프로그램을 저장할 수 있고, 전자 장치(10)로 입력되거나 전자 장치(10)로부터 출력되는 데이터를 저장할 수도 있다. The memory 17 may store at least one instruction and at least one program for processing and control of the processor 13 , and may store data input to or output from the electronic device 10 . have.

메모리(17)는 램(RAM, Random Access Memory) SRAM(Static Random Access Memory)과 같이 일시적으로 데이터를 저장하는 메모리 및 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크과 같이 비일시적으로 데이터를 저장하는 데이터 스토리지 중에서 적어도 하나의 타입의 저장매체를 포함할 수 있다.The memory 17 is a memory that temporarily stores data, such as a random access memory (RAM), a static random access memory (SRAM), a flash memory type, a hard disk type, and a multimedia card. Multimedia card micro type, card type memory (such as SD or XD memory), ROM (Read-Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), PROM (Programmable Read-Memory) Only memory), a magnetic memory, a magnetic disk, and an optical disk may include at least one type of storage medium among data storage for non-temporarily storing data.

도 11은 일 실시예에 따른, 전자 장치에 포함된 메모리의 소프트웨어 모듈을 나타내는 블록도이다.11 is a block diagram illustrating a software module of a memory included in an electronic device, according to an exemplary embodiment.

도 11을 참조하면, 메모리(17)는 도 1 내지 도 7을 참조하여 위에서 설명한 실시예를 전자 장치(10)가 수행하기 위한 인스터럭션이 포함된 소프트웨어 모듈로서, 부분 데이터 검색 모듈(17a), 요청 데이터 생성 모듈(17b), 부분 데이터 검증 모듈(17c) 및 부분 데이터 활용 모듈(17d)을 포함할 수 있다. 그러나, 도 11에 도시된 소프트웨어 모듈보다 많은 소프트웨어 모듈에 의해 전자 장치(10)가 부분 데이터를 획득하여 활용할 수 있고, 도 11에 도시된 소프트웨어 모듈보다 적은 소프트웨어 모듈에 의해 전자 장치(10)가 부분 데이터를 획득하여 활용할 수 있다. Referring to FIG. 11 , the memory 17 is a software module including instructions for the electronic device 10 to perform the embodiment described above with reference to FIGS. 1 to 7 , and includes a partial data search module 17a. , a request data generation module 17b, a partial data verification module 17c, and a partial data utilization module 17d. However, the electronic device 10 may acquire and utilize partial data by using more software modules than the software modules shown in FIG. 11 , and the electronic device 10 may use fewer software modules than the software modules shown in FIG. Data can be acquired and used.

예를 들면, 부분 데이터 검색 모듈(17a)에 저장된 인스트럭션을 프로세서(13)가 실행함으로써, 전자 장치(10)는 전체 데이터 중에서 소정의 조건을 만족하는 부분 데이터를 검색할 수 있다. 도 1 내지 도 7을 참조하여 위에서 설명한 실시예와 중복되는 내용은 생략한다.For example, when the processor 13 executes an instruction stored in the partial data search module 17a, the electronic device 10 may search for partial data satisfying a predetermined condition from among all data. The content overlapping with the embodiment described above with reference to FIGS. 1 to 7 will be omitted.

다른 예를 들면, 요청 데이터 생성 모듈(17b)에 저장된 인스트럭션을 프로세서(13)가 실행함으로써, 전자 장치(10)는 소정의 조건을 만족하는 부분 데이터를 요청하는 요청 데이터를 생성할 수 있다. 또한, 전자 장치(10)는 애플리케이션에 관한 정보를 포함하는 요청 데이터를 생성할 수 있다. 도 1 내지 도 7을 참조하여 위에서 설명한 실시예와 중복되는 내용은 생략한다.As another example, when the processor 13 executes an instruction stored in the request data generating module 17b, the electronic device 10 may generate request data for requesting partial data satisfying a predetermined condition. Also, the electronic device 10 may generate request data including information about the application. The content overlapping with the embodiment described above with reference to FIGS. 1 to 7 will be omitted.

다른 예를 들면, 부분 데이터 검증 모듈(17c)에 저장된 인스트럭션을 프로세서(13)가 실행함으로써, 전자 장치(10)는 서버(20)로부터 수신한 부분 데이터의 유효성을 검증할 수 있다. 도 1 내지 도 7을 참조하여 위에서 설명한 실시예와 중복되는 내용은 생략한다.As another example, by executing the instruction stored in the partial data verification module 17c by the processor 13 , the electronic device 10 may verify the validity of the partial data received from the server 20 . The content overlapping with the embodiment described above with reference to FIGS. 1 to 7 will be omitted.

다른 예를 들면, 부분 데이터 활용 모듈(17d)에 저장된 인스트럭션을 프로세서(13)가 실행함으로써, 전자 장치(10)는 부분 데이터를 통계 알고리즘에 적용할 수 있다. 또한, 전자 장치(10)는 부분 데이터를 인공지능 모델(19)에 학습 데이터로서 적용할 수 있다. 도 1 내지 도 7을 참조하여 위에서 설명한 실시예와 중복되는 내용은 생략한다.As another example, when the processor 13 executes the instructions stored in the partial data utilization module 17d, the electronic device 10 may apply the partial data to the statistical algorithm. Also, the electronic device 10 may apply the partial data to the artificial intelligence model 19 as learning data. The content overlapping with the embodiment described above with reference to FIGS. 1 to 7 will be omitted.

한편 도 1 내지 도 11를 참조하여 개시된 실시예에 따르면, 전체 데이터로부터 조건이 부가된 부분 데이터를 전자 장치(10)가 용이하게 획득할 수 있다. 또한, 서버(20)는 애플리케이션에서 출력되는 데이터를 필터링함으로써, 요청된 데이터만을 전자 장치(10)로 전송하므로, 프라이버시를 보호할 수 있다. Meanwhile, according to the embodiment disclosed with reference to FIGS. 1 to 11 , the electronic device 10 may easily obtain partial data to which a condition is added from all data. In addition, since the server 20 transmits only requested data to the electronic device 10 by filtering data output from the application, privacy may be protected.

개시된 실시예는 개인의 신체 데이터 (예를 들면, 신장, 체중, 혈압, 맥박, 등)를 거래하는 서비스에 이용될 수 있다. 다른 예를 들면, 개시된 실시예는 개인의 의료 데이터 (예를 들면, 의료 영상, 질병 내역, 약물 처방 내역, 진료 내역 등)을 거래하는 서비스에 이용될 수 있다. The disclosed embodiments can be used for services that trade an individual's body data (eg, height, weight, blood pressure, pulse, etc.). For another example, the disclosed embodiment may be used for a service for transacting personal medical data (eg, medical images, disease details, drug prescription history, medical treatment history, etc.).

일부 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.Some embodiments may also be implemented in the form of a recording medium containing instructions executable by a computer, such as program modules executed by a computer. Computer-readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media. Also, computer-readable media may include computer storage media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.

Claims (20)

데이터 판매 단말이 데이터 구매 단말로부터 요청된 부분 데이터를 전송하는 방법에 있어서,
상기 데이터 구매 단말로부터 전체 데이터 중에서 상기 부분 데이터를 전송할 것을 요청하는 요청 데이터를 수신하는 단계;
상기 요청 데이터에 포함된 상기 전체 데이터의 무결성을 검증하고, 상기 전체 데이터로부터 부분 데이터를 획득하는 애플리케이션의 설치 파일을 이용하여, 상기 데이터 판매 단말의 보안 영역에 애플리케이션을 구축하는 단계;
상기 보안 영역에 구축된 애플리케이션을 이용하여 상기 전체 데이터 중에서 상기 부분 데이터를 획득하는 단계;
상기 애플리케이션에 의해서 상기 전체 데이터의 일부인 상기 부분 데이터가 획득되었음을 증명하는 정보인 애플리케이션의 전자 서명을 생성하는 단계; 및
상기 부분 데이터 및 상기 애플리케이션의 전자 서명을 상기 데이터 구매 단말로 전송하는 단계를 포함하고,
상기 부분 데이터를 전송하는 단계는,
상기 보안 영역으로부터 출력되는 상기 부분 데이터가 상기 요청 데이터에 상응하는지를 식별하는 단계; 및
상기 식별 결과에 기초하여 상기 부분 데이터를 필터링하는 단계를 포함하는,
방법.
A method for a data selling terminal to transmit partial data requested from a data purchasing terminal, the method comprising:
receiving request data for requesting to transmit the partial data among all data from the data purchasing terminal;
verifying the integrity of the entire data included in the request data and building an application in a secure area of the data sales terminal by using an application installation file for obtaining partial data from the entire data;
obtaining the partial data from among the entire data by using an application built in the secure area;
generating an electronic signature of an application, which is information proving that the partial data, which is a part of the entire data, has been obtained by the application; and
Transmitting the partial data and the electronic signature of the application to the data purchasing terminal,
Transmitting the partial data includes:
identifying whether the partial data output from the security area corresponds to the request data; and
Including filtering the partial data based on the identification result,
Way.
제1항에 있어서,
상기 부분 데이터를 필터링하는 단계는,
상기 요청 데이터에 포함되지 않은 데이터를 상기 부분 데이터로부터 제거하는 단계를 포함하는,
방법,
According to claim 1,
The step of filtering the partial data is
removing data not included in the request data from the partial data;
Way,
제1항에 있어서,
상기 부분 데이터를 필터링하는 단계는,
상기 식별 결과에 기초하여, 상기 애플리케이션을 이용해서 상기 요청 데이터에 상응하는 부분 데이터를 재생성하는 단계를 포함하는,
방법.
According to claim 1,
The step of filtering the partial data is
based on the identification result, using the application to regenerate partial data corresponding to the requested data;
Way.
제1항에 있어서,
상기 부분 데이터를 생성하는 단계는,
상기 애플리케이션을 이용하여, 상기 전체 데이터의 유효성을 검증하는 단계;
상기 검증된 전체 데이터로부터 상기 부분 데이터를 생성하는 단계; 및
상기 부분 데이터에 대한 상기 애플리케이션의 전자 서명을 생성하는 단계를 포함하는,
방법.
According to claim 1,
The step of generating the partial data includes:
using the application to verify the validity of the entire data;
generating the partial data from the verified whole data; and
generating an electronic signature of the application for the partial data;
Way.
제4항에 있어서,
상기 전체 데이터의 유효성을 검증하는 단계는,
상기 애플리케이션을 이용하여, 상기 전체 데이터에 대한 해쉬값과 상기 전체 데이터의 소유자의 전자 서명에 포함된 해쉬값이 동일한 것인지를 식별함으로써, 상기 전체 데이터의 유효성을 검증하는 단계를 포함하는,
방법.
5. The method of claim 4,
The step of verifying the validity of the entire data is,
Using the application, verifying the validity of the entire data by identifying whether the hash value for the entire data and the hash value included in the electronic signature of the owner of the entire data are the same,
Way.
제4항에 있어서,
상기 애플리케이션의 전자 서명을 생성하는 단계는,
상기 전체 데이터의 소유자의 전자 서명 및 상기 부분 데이터의 해쉬값과 상기 보안 영역에 저장된 상기 애플리케이션의 비밀키에 기초하여, 상기 애플리케이션을 통해 상기 부분 데이터에 대한 애플리케이션의 전자 서명을 생성하는 단계를 포함하는,
방법.
5. The method of claim 4,
The step of generating the electronic signature of the application comprises:
Based on the electronic signature of the owner of the entire data, the hash value of the partial data, and the secret key of the application stored in the secure area, generating an electronic signature of the application for the partial data through the application ,
Way.
데이터 구매 단말이 데이터 판매 단말로부터 부분 데이터를 획득하는 방법에 있어서,
전체 데이터의 일부인 상기 부분 데이터에 관한 정보를 획득하는 단계;
상기 부분 데이터를 요청하는 요청 데이터를 상기 데이터 판매 단말로 전송하는 단계;
상기 데이터 판매 단말의 보안 영역에 구축된 애플리케이션에서 생성된 상기 부분 데이터 및 상기 부분 데이터에 대한 상기 애플리케이션의 전자 서명을 상기 데이터 판매 단말로부터 수신하는 단계; 및
상기 애플리케이션의 전자 서명을 검증함으로써, 상기 수신된 부분 데이터의 유효성을 식별하는 단계를 포함하고,
상기 요청 데이터는,
상기 전체 데이터의 무결성을 검증하고, 상기 전체 데이터로부터 부분 데이터를 획득하는 애플리케이션의 설치 파일을 포함하고,
상기 애플리케이션은 상기 설치 파일을 통해서 상기 데이터 판매 단말의 보안 영역에 구축되는 것인,
방법.
A method for a data purchasing terminal to obtain partial data from a data selling terminal, the method comprising:
obtaining information about the partial data that is a part of the whole data;
transmitting request data for requesting the partial data to the data sales terminal;
receiving, from the data sales terminal, the partial data generated by an application built in a secure area of the data sales terminal and an electronic signature of the application for the partial data; and
identifying the validity of the received partial data by verifying the electronic signature of the application;
The requested data is
Verifies the integrity of the entire data and includes an installation file of an application for obtaining partial data from the entire data,
The application will be built in the secure area of the data sales terminal through the installation file,
Way.
제7항에 있어서,
상기 부분 데이터의 유효성을 식별하는 단계는,
상기 애플리케이션의 전자 서명에 기초하여, 상기 데이터 구매 단말이 전송한 설치 파일에 의해서 구축된 애플리케이션이 상기 전체 데이터로부터 상기 부분 데이터를 생성하였음을 식별하는 단계를 포함하는,
방법.
8. The method of claim 7,
The step of identifying the validity of the partial data comprises:
Based on the electronic signature of the application, comprising the step of identifying that the application built by the installation file sent by the data purchase terminal generated the partial data from the entire data,
Way.
제8항에 있어서,
상기 부분 데이터의 유효성을 식별하는 단계는,
상기 전체 데이터의 소유자의 공개키에 기초하여, 상기 애플리케이션의 전자 서명에 이용된 상기 전체 데이터의 소유자의 전자 서명의 유효성을 검증하는 단계; 및
상기 검증된 전체 데이터의 소유자의 전자 서명에 기초하여, 상기 전체 데이터의 유효성을 검증함으로써, 상기 전체 데이터로부터 획득된 상기 부분 데이터의 유효성을 식별하는 단계를 포함하는,
방법.
9. The method of claim 8,
The step of identifying the validity of the partial data comprises:
verifying the validity of the electronic signature of the owner of the entire data used for the electronic signature of the application based on the public key of the owner of the entire data; and
identifying the validity of the partial data obtained from the full data by verifying the validity of the full data based on an electronic signature of an owner of the verified full data;
Way.
제7항에 있어서,
상기 부분 데이터의 유효성을 식별하는 단계는,
상기 애플리케이션의 공개키 및 상기 부분 데이터의 해쉬값에 기초하여 상기 애플리케이션의 전자 서명을 검증함으로써, 상기 부분 데이터의 무결성을 식별하는 단계를 포함하는,
방법.
8. The method of claim 7,
The step of identifying the validity of the partial data comprises:
identifying the integrity of the partial data by verifying the electronic signature of the application based on the public key of the application and the hash value of the partial data;
Way.
전체 데이터로부터 부분 데이터를 생성하여 데이터 구매 단말로 전송하는 데이터 판매 단말에 있어서,
통신 인터페이스;
하나 이상의 명령어들을 저장하는 메모리;
상기 명령어들을 실행하는 프로세서를 포함하고,
상기 프로세서는 상기 명령어들을 실행함으로써,
상기 데이터 구매 단말로부터 상기 전체 데이터 중에서 상기 부분 데이터를 전송할 것을 요청하는 요청 데이터를 수신하도록 상기 통신 인터페이스를 제어하고,
상기 요청 데이터에 포함된 상기 전체 데이터의 무결성을 검증하고, 상기 전체 데이터로부터 부분 데이터를 획득하는 애플리케이션의 설치 파일을 이용하여, 상기 데이터 판매 단말의 보안 영역에 애플리케이션을 구축하고,
상기 보안 영역에 구축된 애플리케이션을 이용하여 상기 전체 데이터 중에서 상기 부분 데이터를 획득하고,
상기 애플리케이션에 의해서 상기 전체 데이터의 일부인 상기 부분 데이터가 획득되었음을 증명하는 정보인 애플리케이션의 전자 서명을 생성하고,
상기 부분 데이터 및 상기 애플리케이션의 전자 서명을 상기 데이터 구매 단말로 전송하도록 상기 통신 인터페이스를 제어하고,
상기 프로세서는,
상기 보안 영역으로부터 출력되는 상기 부분 데이터가 상기 요청 데이터에 상응하는지를 식별하고,
상기 식별 결과에 기초하여 상기 부분 데이터를 필터링하는,
데이터 판매 단말.
In the data sales terminal for generating partial data from the whole data and transmitting it to the data purchase terminal,
communication interface;
a memory storing one or more instructions;
a processor executing the instructions;
The processor by executing the instructions,
controlling the communication interface to receive request data for requesting to transmit the partial data among the entire data from the data purchasing terminal;
Verifies the integrity of the entire data included in the request data, and builds an application in the security area of the data sales terminal by using the installation file of the application to obtain partial data from the entire data,
obtaining the partial data from among the entire data by using an application built in the security area;
generating an electronic signature of the application, which is information proving that the partial data, which is a part of the entire data, has been obtained by the application;
controlling the communication interface to transmit the partial data and the electronic signature of the application to the data purchasing terminal;
The processor is
Identifies whether the partial data output from the security area corresponds to the request data;
filtering the partial data based on the identification result,
data sales terminal.
제11항에 있어서,
상기 프로세서는,
상기 요청 데이터에 포함되지 않은 데이터를 상기 부분 데이터로부터 제거하는,
데이터 판매 단말,
12. The method of claim 11,
The processor is
removing data not included in the request data from the partial data;
data sales terminal,
제11항에 있어서,
상기 프로세서는,
상기 식별 결과에 기초하여, 상기 애플리케이션을 이용해서 상기 요청 데이터에 상응하는 부분 데이터를 재생성하는,
데이터 판매 단말.
12. The method of claim 11,
The processor is
regenerating partial data corresponding to the requested data using the application based on the identification result;
data sales terminal.
제11항에 있어서,
상기 프로세서는,
상기 애플리케이션을 이용하여, 상기 전체 데이터의 유효성을 검증하고,
상기 검증된 전체 데이터로부터 상기 부분 데이터를 생성하고,
상기 부분 데이터에 대한 상기 애플리케이션의 전자 서명을 생성하는,
데이터 판매 단말.
12. The method of claim 11,
The processor is
using the application to verify the validity of the entire data;
generating the partial data from the verified full data;
generating an electronic signature of the application for the partial data;
data sales terminal.
제14항에 있어서,
상기 프로세서는,
상기 애플리케이션을 이용하여, 상기 전체 데이터에 대한 해쉬값과 상기 전체 데이터의 소유자의 전자 서명에 포함된 해쉬값이 동일한 것인지를 식별함으로써, 상기 전체 데이터의 유효성을 검증하는,
데이터 판매 단말.
15. The method of claim 14,
The processor is
Verifying the validity of the entire data by using the application to identify whether the hash value for the entire data and the hash value included in the electronic signature of the owner of the entire data are the same,
data sales terminal.
제14항에 있어서,
상기 프로세서는,
상기 전체 데이터의 소유자의 전자 서명 및 상기 부분 데이터의 해쉬값과 상기 보안 영역에 저장된 상기 애플리케이션의 비밀키에 기초하여, 상기 애플리케이션을 통해 상기 부분 데이터에 대한 애플리케이션의 전자 서명을 생성하는,
데이터 판매 단말.
15. The method of claim 14,
The processor is
Based on the electronic signature of the owner of the entire data and the hash value of the partial data and the secret key of the application stored in the secure area, generating an electronic signature of the application for the partial data through the application,
data sales terminal.
전체 데이터 중에서 부분 데이터를 데이터 판매 단말로부터 획득하는 데이터 구매 단말에 있어서,
통신 인터페이스;
하나 이상의 명령어들을 저장하는 메모리;
상기 명령어들을 실행하는 프로세서를 포함하고,
상기 프로세서는 상기 명령어들을 실행함으로써,
상기 전체 데이터의 일부인 상기 부분 데이터에 관한 정보를 획득하고,
상기 부분 데이터를 요청하는 요청 데이터를 상기 데이터 판매 단말로 전송하고, 상기 데이터 판매 단말의 보안 영역에 구축된 애플리케이션에서 생성된 상기 부분 데이터 및 상기 부분 데이터에 대한 상기 애플리케이션의 전자 서명을 상기 데이터 판매 단말로부터 수신하도록 상기 통신 인터페이스를 제어하고,
상기 애플리케이션의 전자 서명을 검증함으로써, 상기 수신된 부분 데이터의 유효성을 식별하고,
상기 요청 데이터는,
상기 전체 데이터의 무결성을 검증하고, 상기 전체 데이터로부터 부분 데이터를 획득하는 애플리케이션의 설치 파일을 포함하고,
상기 애플리케이션은 상기 설치 파일을 통해서 상기 데이터 판매 단말의 보안 영역에 구축되는 것인,
데이터 구매 단말.
A data purchasing terminal for acquiring partial data among all data from a data selling terminal, the data purchasing terminal comprising:
communication interface;
a memory storing one or more instructions;
a processor executing the instructions;
The processor by executing the instructions,
obtaining information about the partial data that is a part of the entire data,
The data sales terminal transmits the request data for requesting the partial data to the data sales terminal, and transmits the partial data generated by the application built in the security area of the data sales terminal and the electronic signature of the application for the partial data, the data sales terminal control the communication interface to receive from
identifying the validity of the received partial data by verifying the electronic signature of the application;
The requested data is
Verifies the integrity of the entire data and includes an installation file of an application for obtaining partial data from the entire data,
The application will be built in the secure area of the data sales terminal through the installation file,
data purchasing terminal.
제17항에 있어서,
상기 프로세서는,
상기 애플리케이션의 전자 서명에 기초하여, 상기 데이터 구매 단말이 전송한 설치 파일에 의해서 구축된 애플리케이션이 상기 전체 데이터로부터 상기 부분 데이터를 생성하였음을 식별하는,
데이터 구매 단말.
18. The method of claim 17,
The processor is
Based on the electronic signature of the application, identifying that the application built by the installation file sent by the data purchase terminal generated the partial data from the entire data,
data purchasing terminal.
제18항에 있어서,
상기 프로세서는,
상기 전체 데이터의 소유자의 공개키에 기초하여, 상기 애플리케이션의 전자 서명에 이용된 상기 전체 데이터의 소유자의 전자 서명의 유효성을 검증하고,
상기 검증된 전체 데이터의 소유자의 전자 서명에 기초하여, 상기 전체 데이터의 유효성을 검증함으로써, 상기 전체 데이터로부터 획득된 상기 부분 데이터의 유효성을 식별하는,
데이터 구매 단말.
19. The method of claim 18,
The processor is
Verifies the validity of the electronic signature of the owner of the entire data used for the electronic signature of the application based on the public key of the owner of the entire data,
identifying the validity of the partial data obtained from the full data by verifying the validity of the full data based on the electronic signature of the owner of the verified full data;
data purchasing terminal.
제17항에 있어서,
상기 프로세서는,
상기 애플리케이션의 공개키 및 상기 부분 데이터의 해쉬값에 기초하여 상기 애플리케이션의 전자 서명을 검증함으로써, 상기 부분 데이터의 무결성을 식별하는,
데이터 구매 단말.
18. The method of claim 17,
The processor is
identifying the integrity of the partial data by verifying the electronic signature of the application based on the public key of the application and the hash value of the partial data;
data purchasing terminal.
KR1020210020692A 2021-02-02 2021-02-16 A server using a hardware security architecture, electronic device that verifies the integrity of data transmitted from the server and a verification method using the same KR20220111618A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2021/019997 WO2022169105A1 (en) 2021-02-02 2021-12-28 Server using hardware security architecture, electronic device for verifying integrity of data transmitted from server, and verification method using same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20210014980 2021-02-02
KR1020210014980 2021-02-02

Publications (1)

Publication Number Publication Date
KR20220111618A true KR20220111618A (en) 2022-08-09

Family

ID=82844650

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210020692A KR20220111618A (en) 2021-02-02 2021-02-16 A server using a hardware security architecture, electronic device that verifies the integrity of data transmitted from the server and a verification method using the same

Country Status (1)

Country Link
KR (1) KR20220111618A (en)

Similar Documents

Publication Publication Date Title
US11671445B2 (en) Remedial actions based on user risk assessments
CN110990871A (en) Machine learning model training method, prediction method and device based on artificial intelligence
CN109478263A (en) System and equipment for architecture assessment and strategy execution
CA3147600A1 (en) Secure resource management to prevent fraudulent resource access
KR102046276B1 (en) A service providing method and apparatus for providing a single service by determining whether a plurality of users agree with each other
US20220139566A1 (en) Distributed medical testing framework
US12032702B2 (en) Automated health-check risk assessment of computing assets
US12033039B2 (en) System and method for maintaining network integrity for incrementally training machine learning models at edge devices of a peer to peer network
US20230113118A1 (en) Data compression techniques for machine learning models
US20230076024A1 (en) Method and device for controlling electronic device for federated learning
US11449632B1 (en) Utilizing a protected server environment to protect data used to train a machine learning system
Mohammadi et al. Balancing privacy and performance in federated learning: A systematic literature review on methods and metrics
KR20220106619A (en) Electronic device for performing federated learning using hardware security architecture and federated learning method using the thereof
Ramani et al. Optimized data management and secured federated learning in the Internet of Medical Things (IoMT) with blockchain technology
US20230388343A1 (en) Systems and methods for aida based exploit selection
KR20220111618A (en) A server using a hardware security architecture, electronic device that verifies the integrity of data transmitted from the server and a verification method using the same
US20200303068A1 (en) Automated treatment generation with objective based learning
US20210250401A1 (en) System and method of certification for incremental training of machine learning models at edge devices in a peer to peer network
US11918382B2 (en) Continual background monitoring of eye health
TW202331564A (en) Data poisoning method and data poisoning apparatus
EP3879482A1 (en) System and methods for success based health care payment
US20230342605A1 (en) Multi-stage machine-learning techniques for risk assessment
US20240231949A9 (en) Applying provisional resource utilization thresholds
US20240231948A9 (en) Applying provisional resource utilization thresholds
KR20240140577A (en) Method and apparatus for providing a customized artificial neural network model using federated learning

Legal Events

Date Code Title Description
A201 Request for examination