WO2023128340A1 - Method and system for processing homomorphic encrypted data - Google Patents

Method and system for processing homomorphic encrypted data Download PDF

Info

Publication number
WO2023128340A1
WO2023128340A1 PCT/KR2022/019463 KR2022019463W WO2023128340A1 WO 2023128340 A1 WO2023128340 A1 WO 2023128340A1 KR 2022019463 W KR2022019463 W KR 2022019463W WO 2023128340 A1 WO2023128340 A1 WO 2023128340A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
user
server
encrypted
combining
Prior art date
Application number
PCT/KR2022/019463
Other languages
French (fr)
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 주식회사 디사일로
Publication of WO2023128340A1 publication Critical patent/WO2023128340A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • 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/40Network security protocols

Definitions

  • the present invention relates to a method and system for processing homomorphic encrypted data.
  • Cloud computing is convenient because users can share and use data anytime, anywhere through a network, but the cloud environment itself has a problem in that it is vulnerable to security.
  • a cloud server receives a data rental request from a data user, transmits data encrypted by the data provider, thereby enabling a data user to obtain only homomorphic encrypted operation results, and a method and method for the same I was trying to develop a system that does it.
  • the method may include sending a data combining request for data user data to a data server, receiving an external data list that can be combined from the data server according to the data combining request, and an external data list of any one of the external data lists. Determining a combination condition with data, receiving encrypted external data from the data server and isomorphically encrypting the user data, combining the encrypted user data and the encrypted external data using the combination condition and decrypting only the combining result corresponding to the combining condition, and transmitting the decoded combining result to the data server.
  • the determining of the combination condition may include determining a combination index using metadata of the user data, and isomorphic encryption of the user data based on the combination index and the metadata. It may further include generating a parameter for converting into a form.
  • the binding index and the parameter are transmitted to a data provider device providing the external data, and the encrypted external data is obtained using the binding index and the parameter by the data provider device.
  • the encrypting may further include receiving parameters for a homomorphic encryption operation from the data server.
  • the external data may be data including user's personal information.
  • the method includes the steps of receiving a data combining request including combining conditions of a data user from a data server, isomorphically encrypting data corresponding to the data combining request, and transmitting the encrypted data to the data server.
  • a data combining request including combining conditions of a data user from a data server, isomorphically encrypting data corresponding to the data combining request, and transmitting the encrypted data to the data server.
  • a data processing mediation method includes acquiring external data capable of data processing through a data provider device, receiving a data combining request including a combining condition from a data user device, and a list of external data that can be combined according to the combining condition among the external data. determining, transmitting the data combining request to a data provider device providing external data to be combined, receiving homomorphically encrypted external data from the data provider device, and converting the homomorphically encrypted external data to the data user device and receiving a decrypted combining result of data corresponding to the combining condition from the data user device.
  • users can safely rent data including personal information in a public cloud environment.
  • the data provider can process data even through a public cloud environment without considering security issues.
  • the data provider can enhance security by encrypting data using a homomorphic encryption technique.
  • the present invention can adjust the length of the encryption parameter and the corresponding encryption strength according to the amount and type of data, the service to be used for the data, etc., so that the data provider and the data user can trade data according to their respective requirements. .
  • Effects according to the present invention are not limited by the contents exemplified above, and more various effects are included in the present invention.
  • FIG. 1 is a schematic diagram of a data processing system according to one embodiment of the present invention.
  • FIG. 2 is a block diagram showing the configuration of a data provider device according to an embodiment of the present invention.
  • FIG. 3 is a flowchart of a data processing method of a data provider device according to an embodiment of the present invention.
  • FIG. 4 is a block diagram showing the configuration of a data server mediating data processing according to an embodiment of the present invention.
  • FIG. 5 is a flowchart of a data processing mediation method according to an embodiment of the present invention.
  • FIG. 6 is a block diagram showing the configuration of a data user device according to an embodiment of the present invention.
  • FIG. 7 is a flowchart of a data processing method of a data user device according to an embodiment of the present invention.
  • FIGS. 8 to 10 are schematic views illustrating data user interface screens capable of processing data according to an embodiment of the present invention.
  • FIG. 11 is a schematic flowchart of a data processing method according to an embodiment of the present invention.
  • expressions such as “A or B,” “at least one of A and/and B,” or “one or more of A or/and B” may include all possible combinations of the items listed together.
  • first,” “second,” “first,” or “second,” used in this document may modify various elements, regardless of order and/or importance, and refer to one element as It is used only to distinguish it from other components and does not limit the corresponding components.
  • a first user device and a second user device may represent different user devices regardless of order or importance.
  • a first element may be named a second element, and similarly, the second element may also be renamed to the first element.
  • a component e.g., a first component
  • another component e.g., a second component
  • the certain component may be directly connected to the other component or connected through another component (eg, a third component).
  • an element e.g, a first element
  • another element e.g., a second element
  • the element and the above It may be understood that other components (eg, third components) do not exist between the other components.
  • the expression “configured to” means “suitable for,” “having the capacity to,” depending on the circumstances. ,” “designed to,” “adapted to,” “made to,” or “capable of.”
  • the term “configured (or set) to” may not necessarily mean only “specifically designed to” hardware.
  • the phrase “device configured to” may mean that the device is “capable of” in conjunction with other devices or components.
  • a processor configured (or configured) to perform A, B, and C” may include a dedicated processor (e.g., embedded processor) to perform those operations, or by executing one or more software programs stored in a memory device.
  • a general-purpose processor eg, CPU or application processor
  • FIG. 1 is a schematic diagram of a data processing system according to one embodiment of the present invention.
  • a data processing system 1000 may include a data provider device 100 , a data server 200 , a data user device 300 and a cloud server 400 .
  • the data processing system 1000 may provide an environment in which users can process encrypted data on a public cloud.
  • processing data may be understood as transferring encrypted data between a device and a server or analyzing data within a device.
  • the data processing system 1000 may transmit homomorphically encrypted data between a data provider and a data user through the data server 200 .
  • the present invention may encrypt data through a homomorphic encryption technique so that an operation between encrypted data is possible.
  • the data to be homomorphically encrypted in the present invention may include the user's personal information, for example, the user's name, resident registration number, personal customs clearance number, driver's license number, user's call record, location (latitude, longitude) information, bank transaction information, land, real estate information, etc.
  • Data exchanged between each component in the data processing system 1000 is not a data source, but homomorphic encrypted data and parameters for homomorphic encryption operations (eg, the degree of a function used for homomorphic encryption operation (polynomial degree), It may be a scale bit or coefficient specified for homomorphic encryption operation, and the original data may be stored in each device.
  • homomorphic encrypted data and parameters for homomorphic encryption operations eg, the degree of a function used for homomorphic encryption operation (polynomial degree)
  • polynomial degree the degree of a function used for homomorphic encryption operation
  • the data processing system 1000 does not completely provide data to data users, but data so that homomorphically encrypted data can be processed in a designated area (web page or application environment provided by the data server 200). Intermediate between providers and data users.
  • the data provider device 100 is a user device that possesses data including personal information and provides the right to use the data, and may include an electronic device such as a PC, tablet PC, and smart phone.
  • the data provider device 100 may have an application for data processing installed and executed, or may access a web page provided by the data server 200, and isomorphically encrypt data that can be rented through the application or web page so that the data server 200 ) can be sent.
  • the data provider device 100 may pre-process data to enable operations between homomorphic encrypted data and encrypt the preprocessed data using a homomorphic encryption technique.
  • the parameter for the homomorphic encryption operation may be a parameter received from the data server 200 or the data user device 300 .
  • the data provider device 100 may generate and perform homomorphic encryption by generating a homomorphic encryption key reflecting the received parameters, and the data user device 300 that has performed homomorphic encryption through the same parameters can decrypt the combination result of the homomorphically encrypted data.
  • the data provider device 100 may provide additional information, such as a title of data, a brief description, and descriptions of items constituting a data field, when registering data so that data users can search for homomorphically encrypted data. can provide additional information, such as a title of data, a brief description, and descriptions of items constituting a data field, when registering data so that data users can search for homomorphically encrypted data.
  • the data provider device 100 isomorphically encrypted data and transmits it to the data server 200 at the request of the data user, or isomorphically encrypted data that can be rented without a data user's request and sends it to the data server 200.
  • can be sent Homomorphically encrypted data transmitted to the data server 200 may be included in a list of data available for rental of a web page or application.
  • the data server 200 is a server capable of mediating data rental or data combination between the data provider device 100 and the data user device 300, and may be implemented as a general-purpose computer, laptop, or cloud server.
  • the data server 200 may provide a web page or application for data rental, combination, and analysis to the data provider device 100 and the data user device 300 .
  • data server 200 may provide data provider device 100 and data user device 300 with the same parameters for homomorphic encryption operations. That is, the data server 200 may provide parameters in the mediation process so that calculation (combination) and decryption between homomorphically encrypted data are possible.
  • the data server 200 may register homomorphically encrypted data with the cloud server 400 .
  • the cloud server 400 is a server operated in a public cloud environment, and only homomorphically encrypted data may be registered in the cloud server 400 .
  • the data user device 300 is a user device that wants to use data including personal information, and may include an electronic device such as a PC, tablet PC, and smart phone.
  • the data user device 300 may have an application for data processing installed and executed, may access a web page provided by the data server 200, and may process homomorphically encrypted data through the application or web page.
  • processing the homomorphically encrypted data means obtaining a result of filtering, grouping, or sorting the data for data analysis, combining with data stored in the data user device 300, and combining the data. It can be understood as converting the result according to conditions specified by the data user.
  • the data user device 300 may determine a data analysis process (work flow) in advance.
  • the analysis process may include registering meta data, determining a binding index using the meta index, and generating parameters for homomorphic encryption operation.
  • the parameter for the homomorphic encryption operation is a parameter used for operation with another homomorphic encrypted data, for example, the polynomial degree of a function used for the homomorphic encryption operation, for the homomorphic encryption operation.
  • Some data included in meta data such as designated scale bits and coefficients, may be parameters for homomorphic encryption operation.
  • the data user device 300 may generate parameters for converting user data into a form capable of performing homomorphic encryption based on the binding index and meta data.
  • This analysis process may later be transferred to the data provider device 100, and the data provider device 100 may lend data only to the data user device 300 for which the data utilization method is specified.
  • the data user device 300 may pre-process the user data and encrypt the pre-processed data through a homomorphic encryption technique so that an operation between encrypted data is possible.
  • the parameters for homomorphic encryption may be parameters generated by the data user device 300 according to the data combination index or parameters received from the data server 200 .
  • the data user device 300 may generate and perform homomorphic encryption of a data user's encryption key in which parameters are reflected, and may receive homomorphically encrypted data from the data server 200 using the same parameters. The data user device 300 may combine this with its own homomorphically encrypted data and decrypt the combined result.
  • the cloud server 400 is a public cloud-based server capable of storing data in a sharable form.
  • the cloud server 400 includes homomorphically encrypted data provided by the data server 200 and results calculated in a homomorphically encrypted state. can be stored
  • the cloud server 400 may provide homomorphically encrypted data stored in the cloud database to the data server 200 .
  • the data processing system 1000 according to an embodiment of the present invention has been described.
  • a data provider and a data user are divided, but a data provider can become a data user, and a data user can also become a data provider, lending and analyzing data between them.
  • FIG. 2 is a block diagram showing the configuration of a data provider device according to an embodiment of the present invention.
  • the data provider device 100 may include a memory interface 110 , one or more processors 120 and a peripheral interface 130 .
  • the various components within data provider device 100 may be connected by one or more communication buses or signal lines.
  • the memory interface 110 may be connected to the memory 150 and transfer various data to the processor 120 .
  • the memory 150 is a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (eg SD or XD memory, etc.), RAM, SRAM, ROM, EEPROM, PROM, network storage storage, cloud , It may include at least one type of storage medium among blockchain databases.
  • memory 150 includes operating system 151 , communication module 152 , graphical user interface module (GUI) 153 , sensor processing module 154 , telephony module 155 , and application module 156 .
  • the operating system 151 may include instructions for processing basic system services and instructions for performing hardware tasks.
  • the communication module 152 may communicate with at least one of one or more other devices, computers, and servers.
  • a graphical user interface module (GUI) 153 may process a graphical user interface.
  • Sensor processing module 154 may process sensor-related functions (eg, process voice input received through one or more microphones 192 ).
  • the phone module 155 may process phone-related functions.
  • the application module 156 may perform various functions of a user application, such as electronic messaging, web browsing, media processing, navigation, imaging, and other processing functions.
  • the data provider device 100 may store one or more software applications 156 - 1 and 156 - 2 (eg, a data rental application) associated with a certain type of service in the memory 150 .
  • the memory 150 may store a digital assistant client module 157 (hereinafter referred to as a DA client module), thereby storing instructions and various user data 158 for performing client-side functions of the digital assistant.
  • a digital assistant client module 157 hereinafter referred to as a DA client module
  • various user data 158 for performing client-side functions of the digital assistant.
  • user-customized vocabulary data, preference data, other data such as the user's electronic address book, etc.
  • the DA client module 157 receives a user's voice input, text input, touch input, and/or gesture input through various user interfaces (eg, the I/O subsystem 140) provided in the data provider device 100. can be obtained.
  • various user interfaces eg, the I/O subsystem 140
  • the DA client module 157 may output audio-visual and tactile data.
  • the DA client module 157 may output data consisting of a combination of at least two of voice, sound, notification, text message, menu, graphic, video, animation, and vibration.
  • the DA client module 157 may communicate with a digital assistant server (not shown) using the communication subsystem 180 .
  • DA client module 157 may collect additional information about the surrounding environment of data provider device 100 from various sensors, subsystems, and peripheral devices to construct a context associated with user input. there is.
  • the DA client module 157 may infer the user's intention by providing context information together with the user's input to the digital assistant server.
  • the situational information that may accompany the user input may include sensor information, eg, lighting, ambient noise, ambient temperature, image of the surrounding environment, video, and the like.
  • the contextual information may include the physical state of the data provider device 100 (eg, device orientation, device location, device temperature, power level, speed, acceleration, motion patterns, cellular signal strength, etc.).
  • the contextual information is information related to the software state of the data provider device 100 (eg, processes running on the data provider device 100, installed programs, past and present network activity, background services, error logs, resource usage, etc.).
  • the memory 150 may include added or deleted commands, and furthermore, the data provider device 100 may include additional components other than those shown in FIG. 2 or may exclude some components.
  • the processor 120 may control overall operations of the data provider device 100 and may execute various commands for implementing an interface for schedule management by driving an application or program stored in the memory 150 .
  • the processor 120 may correspond to an arithmetic device such as a central processing unit (CPU) or an application processor (AP).
  • the processor 120 may be implemented in the form of an integrated chip (IC) such as a System on Chip (SoC) in which various computing devices such as a Neural Processing Unit (NPU) are integrated.
  • IC integrated chip
  • SoC System on Chip
  • NPU Neural Processing Unit
  • the processor 120 may lend data to data users, that is, data analysts who need the data, which will be described below with reference to FIG. 3 .
  • FIG. 3 is a flowchart of a data processing method of a data provider device according to an embodiment of the present invention.
  • the processor 120 may receive a data combining request including combining conditions of a data user from the data server 200 providing a data processing environment through the communication subsystem 180 (S110).
  • providing a data processing environment may be understood as distributing an application capable of processing data in the data server 200 or providing a web page capable of processing data.
  • the data combination request may be a request generated by the data user device 300, and may include metadata registered through the data user device 300, a combination index, and parameters for a homomorphic encryption operation. there is.
  • the processor 120 of the data provider device 100 can check what kind of processing (analysis) the data user will perform by renting his/her own data, and can pre-process the data in a form suitable for the data user.
  • the processor 120 may homomorphically encrypt data corresponding to the data combination request (S120).
  • the processor 120 may homomorphically encrypt only data corresponding to a data combination request among data stored in the memory 150 or a database connected to the data provider device 100 .
  • the processor 120 may receive parameters for a homomorphic encryption operation from the data server 200 . Accordingly, the processor 120 generates a homomorphic encryption key by using the parameters for the homomorphic encryption operation received from the data user device 300 and the parameters for the homomorphic encryption operation received from the data server 200 in step S110. , the preprocessed data can be encrypted.
  • the parameter received from the data server 200 may be the same as the parameter provided to the data user device 300, and accordingly, the encrypted result calculated through the homomorphic encrypted data is decrypted by the data user device 300 later. can do.
  • the processor 120 may transmit the homomorphically encrypted data to the data server 200 through the communication subsystem 180 .
  • the processor 120 may register homomorphically encrypted data in a web page or application capable of processing data.
  • the data transmitted to the data server 200 may be data including the user's personal information
  • the data server 200 in the present invention transfers the homomorphically encrypted data including the user's personal information to the cloud server ( 400) can be stored.
  • the peripheral interface 130 is connected to various sensors, subsystems, and peripheral devices to provide data so that the data provider device 100 can perform various functions.
  • that the data provider device 100 performs a certain function may be understood as being performed by the processor 120 .
  • Peripheral interface 130 may receive data from motion sensor 160, light sensor (light sensor) 161, and proximity sensor 162, through which data provider device 100 may receive orientation, light, and Proximity detection function, etc. can be performed.
  • peripheral interface 130 may receive data from other sensors 163 (positioning system-GPS receiver, temperature sensor, biometric sensor) through which data provider device 100 may receive other sensors. functions related to 163 can be performed.
  • the data provider device 100 may include a camera subsystem 170 coupled to the peripheral interface 130 and an optical sensor 171 coupled thereto, through which the data provider device 100 may take a picture. and various shooting functions such as video clip recording.
  • data provider device 100 may include communication subsystem 180 coupled with peripheral interface 130 .
  • the communication subsystem 180 is composed of one or more wired/wireless networks, and may include various communication ports, radio frequency transceivers, and optical transceivers.
  • data provider device 100 includes an audio subsystem 190 coupled to peripheral interface 130, which audio subsystem 190 includes one or more speakers 191 and one or more microphones 192.
  • the data provider device 100 can perform voice-activated functions, such as voice recognition, voice replication, digital recording, and telephony functions.
  • data provider device 100 may include I/O subsystem 140 coupled with peripheral interface 130 .
  • the I/O subsystem 140 may control the touch screen 143 included in the data provider device 100 through the touch screen controller 141 .
  • the touch screen controller 141 uses any one of a plurality of touch sensing technologies such as capacitive, resistive, infrared, surface acoustic wave technology, proximity sensor array, and the like to provide a user's touch and motion or touch. and cessation of movement.
  • I/O subsystem 140 may control other input/control devices 144 included in data provider device 100 via other input controller(s) 142 .
  • other input controller(s) 142 may control one or more buttons, rocker switches, thumb-wheels, infrared ports, USB ports, and pointer devices such as styluses and the like.
  • the data provider device 100 does not register the data source itself with the data server 200 or the cloud server 400 so that other users can use the data it has, but upon request for data use. , can provide only some of the data directly homomorphically encrypted on its own device.
  • a data server 200 capable of mediating between a data provider and a data user and providing a data processing space will be described.
  • FIG. 4 is a block diagram showing the configuration of a data server mediating data processing according to an embodiment of the present invention.
  • the data server 200 may include a communication interface 210, a memory 220, an I/O interface 230, and a processor 240, each of which includes one or more communication buses or signals. They can communicate with each other through lines.
  • the communication interface 210 may be connected to a plurality of data provider devices 100 through a wired/wireless communication network to exchange data.
  • the communication interface 210 may transmit a data combining request, a parameter for homomorphic encryption, a decrypted combining result, etc. to the data provider device 100, and homomorphically encrypted external data from the data provider device 100.
  • the external data may mean data stored in the data provider device 100 .
  • the communication interface 210 may receive a data combination request, homomorphically encrypted user data, and a decrypted combination result from the data user device 300, and external data that can be rented to the data user device 300. Lists, parameters for homomorphic encryption operations, and homomorphically encrypted external data can be transmitted.
  • the communication interface 210 enabling the transmission and reception of such data includes a communication pod 211 and a wireless circuit 212, where the wired communication port 211 is one or more wired interfaces, for example, Ethernet, This may include Universal Serial Bus (USB), FireWire, and the like.
  • the wireless circuit 212 may transmit/receive data with an external device through an RF signal or an optical signal.
  • wireless communication may use at least one of a plurality of communication standards, protocols and technologies, such as GSM, EDGE, CDMA, TDMA, Bluetooth, Wi-Fi, VoIP, Wi-MAX, or any other suitable communication protocol.
  • the memory 220 may store various data used in the data server 200 .
  • the memory 220 may store identification information of the data provider device 100 and the data user device 300 and may store parameters for homomorphic encryption of data.
  • the memory 220 may include volatile or non-volatile recording media capable of storing various data, commands, and information.
  • the memory 220 may be a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (eg SD or XD memory, etc.), RAM, SRAM, ROM, EEPROM, PROM, network storage storage , Cloud, and a blockchain database may include at least one type of storage medium.
  • the memory 220 may store configurations of at least one of the operating system 221 , the communication module 222 , the user interface module 223 , and one or more applications 224 .
  • Operating system 221 e.g. embedded operating systems such as LINUX, UNIX, MAC OS, WINDOWS, VxWorks, etc.
  • general system tasks e.g. memory management, storage device control, power management, etc.
  • general system tasks e.g. memory management, storage device control, power management, etc.
  • the communication module 223 may support communication with other devices through the communication interface 210 .
  • the communication module 220 may include various software components for processing data received by the wired communication port 211 or the wireless circuit 212 of the communication interface 210 .
  • the user interface module 223 may receive a user's request or input from a keyboard, touch screen, microphone, etc. through the I/O interface 230 and provide a user interface on a display.
  • Applications 224 may include programs or modules configured to be executed by one or more processors 230 .
  • an application for mediating data processing may be implemented on a server farm.
  • the I/O interface 230 may connect at least one of an input/output device (not shown) of the data server 200, for example, a display, a keyboard, a touch screen, and a microphone, to the user interface module 223.
  • the I/O interface 230 may receive user input (eg, voice input, keyboard input, touch input, etc.) together with the user interface module 223 and process a command according to the received input.
  • the processor 240 is connected to the communication interface 210, the memory 220, and the I/O interface 230 to control the overall operation of the data server 200, and to run applications or programs stored in the memory 220. Through this, various commands for processing homomorphic encrypted data can be performed.
  • the processor 240 may correspond to an arithmetic device such as a central processing unit (CPU) or an application processor (AP).
  • the processor 240 may be implemented in the form of an integrated chip (IC) such as a System on Chip (SoC) in which various computing devices are integrated.
  • the processor 240 may include a module for calculating an artificial neural network model, such as a Neural Processing Unit (NPU).
  • NPU Neural Processing Unit
  • the processor 240 may mediate data including sensitive information between a data user and a data provider, which will be described below with reference to FIG. 5 .
  • FIG. 5 is a flowchart of a data processing mediation method according to an embodiment of the present invention.
  • the processor 240 may acquire external data capable of data processing through the data provider device 100 (S210). Specifically, the processor 240 may obtain information on data capable of data processing (eg, analysis through rental) from the plurality of data provider devices 100 . For example, the processor 240 may obtain additional descriptions such as meta data of the external data, a title of the external data, a brief description, and a description of items constituting the data field.
  • data capable of data processing eg, analysis through rental
  • the processor 240 may obtain additional descriptions such as meta data of the external data, a title of the external data, a brief description, and a description of items constituting the data field.
  • the processor 240 may receive a data combining request including combining conditions from the data user device 300 through the communication interface 210 (S220).
  • the data combination request may include an analysis process (workflow) designed by the data user.
  • the analysis process may include a description of how to combine the two data and what kind of data processing (eg, filtering, grouping) is to be performed using the combined result.
  • the data combination request may include metadata of a data user, a combination index, and parameters for homomorphic encryption operation.
  • the processor 240 determines the validity of the analysis process included in the data combination request, and only when the analysis process is valid, the third party data including the user's personal information is transferred to the data user device 300. can be rented. If the analysis process is not valid, the processor 240 may transmit an analysis process (workflow) redesign notification to the data user device 300 through the communication interface 210 .
  • the processor 240 may determine a list of external data that can be combined according to a combination condition among external data (S230). For example, the processor 240 may determine external data that can be combined based on the data user's metadata or binding index, and the external data list including the name of the external data provider, the title of the external data, and a brief description of the external data. can create
  • the processor 240 may transmit the determined external data list to the data user device 300 through the communication interface 210 .
  • the processor 240 may transmit a data combination request to the data provider device 100 that is selected through the data user device 300 and provides external data to be combined (S240). Specifically, the processor 240 may transmit metadata of a data user, a binding index, and parameters for homomorphic encryption operation together with combining conditions.
  • the parameter for the homomorphic encryption operation may be a parameter extracted from the data user device 300 based on a binding index in the data user device 300 .
  • processor 240 may transmit parameters for the same homomorphic encryption operation to data user device 300 and data provider device 100 via communication interface 210 . That is, the processor 240 may transmit the same encryption parameter so that the homomorphically encrypted external data and the homomorphically encrypted user data are operated in an encrypted state and then decrypted by the data user device 300 .
  • the processor 240 may receive homomorphically encrypted external data from the data provider device 100 through the communication interface 210 and transmit the homomorphically encrypted external data to the data user device 300 ( S250).
  • each of the homomorphically encrypted data may be data including personal information of the user, and each data is homomorphic using a homomorphic encryption key in which parameters generated by the data server 200 and the data user device 300 are reflected. Since it is encrypted, calculation and decryption may be possible.
  • the processor 240 may receive a decrypted combination result of data corresponding to the combination condition from the data user device 300 through the communication interface 210 (S260).
  • the processor 240 may obtain a decryption result of data processed according to a combination condition, rather than a decryption result of homomorphically encrypted external data or user data, and may transmit it to the data provider device 100 .
  • data server 200 according to an embodiment of the present invention has been described.
  • data including users' personal information is homomorphically encrypted, combined, and decrypted in a state stored in each safe device, and the data server 200 can deliver only these results, and thus sensitive information mediation. risks can be minimized.
  • FIG. 6 is a block diagram showing the configuration of a data user device according to an embodiment of the present invention.
  • a data user device 300 may include a memory interface 310 , one or more processors 320 and a peripheral interface 330 .
  • the data user device 300 can have the same configuration as the data provider device 100. there is.
  • FIG. 6 a description of a configuration overlapping with that of FIG. 2 will be omitted, and a data processing method using homomorphic encryption performed by the processor 320 will be described with reference to FIG. 7.
  • FIGS. 8 to 10 illustrate data user interface screens capable of processing data according to an embodiment of the present invention. It is a schematic diagram for
  • the processor 320 may transmit a data combining request for user data to the data server 200 through the communication subsystem 380 (S310). Specifically, the processor 320 may obtain an analysis process (workflow) created (designed) by a data user through a touch screen 341 or other input/control device 344, and meta data of user data can register.
  • the processor 240 may register meta data by uploading meta data to a web page or application capable of data processing (rental, combination, and analysis).
  • the processor 320 may receive a list of external data that can be combined according to a data combination request from the data server 200 through the communication subsystem 380 (S320).
  • the external data may include the user's personal information, for example, the user's name, resident registration number, personal customs clearance number, driver's license number, user's call record, location (latitude, longitude) information, bank It may include transaction information, land, real estate information, and the like.
  • the data user device 300 includes an item 11 for selecting external data ( 3rd party data) and user data (local data) of the data provider according to the analysis process (workflow) this can be provided.
  • the data user device 300 may be provided with a data processing list 12 usable by the data user using external data and user data, and according to the previous data combination request, a list of external data 13 that can be combined can be listed.
  • the external data list may include the name of the external data provider, the title of the external data, and a brief description of the external data.
  • the processor 320 may determine a combination condition with any one external data from the list of external data (S330). Specifically, the processor 320 may determine a binding index using meta data of user data, and may generate a parameter for converting user data into a form capable of performing encryption on the basis of the binding index and meta data. For example, the processor 320 converts a polynomial degree of a function required for a homomorphic encryption operation in metadata, a scale bit designated for the homomorphic encryption operation, and a coefficient for the homomorphic encryption operation. It can be extracted as a parameter.
  • the combining condition may include data field selection information selected by the data user, and the processor 320 may pre-process the data in accordance with the combining condition.
  • the processor 320 may transmit the combination condition to the data server 200 through the communication subsystem 380, and the combination condition including the combination index and parameters is data providing external data through the data server 200. It may be delivered to the provider device 100 .
  • the processor 320 may receive homomorphically encrypted external data from the data server 200 and homomorphically encrypt user data (S340). At this time, the processor 320 may additionally receive parameters for the homomorphic encryption operation from the data server 200 in addition to the homomorphic encryption parameters generated by the processor 320, and accordingly, generate an encryption key reflecting the two parameters, The preprocessed user data can be homomorphically encrypted.
  • Homomorphically encrypted external data received from the data server 200 is data homomorphically encrypted by the data provider device 100, and the homomorphic encryption key generated by the processor 320 is used by the data server 200 and the data user device 300. ) may be reflected.
  • the processor 320 may combine the homomorphically encrypted user data and the homomorphically encrypted external data using a combination condition (S350).
  • the data user device 300 may be provided with an icon 14 for registering homomorphically encrypted user data, and homomorphically encrypted user data and homomorphically encrypted external data.
  • the analysis items 15 available to the data user may be listed.
  • filter in the corresponding analysis item 15
  • two homomorphically encrypted data are combined in the data user device 300, and a sequence to be filtered may be displayed in the form of a visual icon 16. .
  • the processor 320 may decode only the combining result corresponding to the combining condition and transmit the decoded combining result to the data server 200 (S360). Since external data and user data are encrypted using an encryption key reflecting the same parameters, the data user device 300 can decrypt the combined result using its own key.
  • the data user device 300 since the data user device 300 only checks the combined result, rather than outputting the external data and the original user data and the resulting combined result, all of the user's personal information may not be exposed.
  • the data user device 300 may process/analyze only external data without user data, and in this case, external data previously homomorphically encrypted in the data provider device 100 may be utilized.
  • the data user device 300 can be selectively used according to a desired analysis process without purchasing external data including user personal information.
  • FIG. 11 is a schematic flowchart of a data processing method according to an embodiment of the present invention.
  • a data rental request may be made through the data user device 300 .
  • the data user device 300 may transmit a data rental request for data processing (analysis) to the data server 200 (S1), and receive a list of external data capable of data processing (analysis/combination) as a response thereto (S1). It can (S2).
  • the data user device 300 may generate a binding index and parameters for homomorphic encryption (S3), and transmit a combining condition including them to the data server 200.
  • the data server 200 may transmit a data combining request by transferring all information received from the data user device 300 to the data provider device 100 (S5).
  • the data server 200 may provide the same parameters for the homomorphic encryption operation to the data provider device 100 and the data user device 300 (S6), and the external data and user data preprocessed in each device are , can be transmitted to the data server 200 in a homomorphic encrypted state (S7) (S8).
  • S7 homomorphic encrypted state
  • the data user device 300 requesting data rental may not transmit the homomorphically encrypted user data to the data server 200 .
  • the data user device 300 may receive homomorphically encrypted external data from the data server 200 (S9), combine the homomorphically encrypted data according to the combining condition (S10), and then decrypt it (S11). According to an embodiment, the data user device 300 may transmit the decrypted combination result to the data server 200 (S12), and the data server 200 may register it with the cloud server 400 (S13). .

Abstract

The present invention is a data processing method using homomorphic encryption, performed by a processor of a data user device. The method comprises the steps of: transmitting, to a data server, a data combination request for data user data; according to the data combination request, receiving a combinable external data list from the data server; determining a combination condition with any one piece of external data from among the external data list; receiving encrypted external data from the data server; homomorphically encrypting the user data; combining the encrypted user data with the encrypted external data by using the combination condition; and decrypting only a combination result corresponding to the combination condition, and transmitting the decrypted combination result to the data server.

Description

동형 암호화된 데이터 처리 방법 및 시스템Homomorphic encrypted data processing method and system
본 발명은 동형 암호화된 데이터 처리 방법 및 시스템에 관한 것이다. The present invention relates to a method and system for processing homomorphic encrypted data.
클라우드 컴퓨팅의 발달로 사람들은 많은 비용이 소요되는 스토리지 공 간을 임대하는 대신 클라우드 환경에 데이터를 저장하거나 필요에 따라 다른 사람들과 데이터를 공유할 수 있다. With the development of cloud computing, people can store data in a cloud environment or share data with others as needed instead of renting expensive storage space.
클라우드 컴퓨팅은 네트워크를 통해 사용자들은 언제 어디서든 데이터를 공유 및 사용할 수 있어 편리하지만, 클라우드 환경 자체는 보안에 취약하다는 문제점이 존재한다. Cloud computing is convenient because users can share and use data anytime, anywhere through a network, but the cloud environment itself has a problem in that it is vulnerable to security.
이에, 클라우드 환경에 저장되는 데이터를 보호하기 위한 각종 보안 기술이 개시되었다. 종래 보안 기술의 대부분은 클라우드 서버가 사용자가 저장하고자 하는 데이터를 사용자의 개인정보를 토대로 암호화하고, 데이터에 접근할 수 있는 토큰을 해당 사용자에게 제공하는 방식으로 구성되어 있다. Accordingly, various security technologies for protecting data stored in a cloud environment have been disclosed. Most of the conventional security technologies are configured in such a way that a cloud server encrypts data that a user wants to store based on the user's personal information and provides a token to access the data to the corresponding user.
그러나, 데이터의 용량이 큰 경우, 암호화된 데이터를 복호화하기까지 많은 시간이 소요되어, 데이터 검색 속도, 데이터 공유 속도가 느려지는 단점이 있으며, 클라우드 서버 또는 클라우드 서버와 사용자 디바이스 사이의 중간 서비스 업체가 외부로부터 해킹 당하는 경우에는 사용자의 개인정보가 노출되는 상황이 발생할 수도 있다. However, if the amount of data is large, it takes a lot of time to decrypt the encrypted data, which slows down the data search speed and data sharing speed. In the case of being hacked from the outside, a situation in which a user's personal information may be exposed may occur.
발명의 배경이 되는 기술은 본 발명에 대한 이해를 보다 용이하게 하기 위해 작성되었다. 발명의 배경이 되는 기술에 기재된 사항들이 선행기술로 존재한다고 인정하는 것으로 이해되어서는 안 된다.The background description of the invention has been prepared to facilitate understanding of the present invention. It should not be construed as an admission that matters described in the background art of the invention exist as prior art.
이에, 클라우드 환경에 데이터 원본을 저장하지 않고도, 데이터 제공자와 데이터 이용자 간에 데이터를 주고받을 수 있는 새로운 방식의 거래 방식이 요구된다. Accordingly, a new transaction method capable of exchanging data between a data provider and a data user without storing the original data in a cloud environment is required.
그 결과, 본 발명의 발명자들은, 클라우드 서버가 데이터 이용자로부터 데이터 대여 요청을 수신하는 경우, 데이터 제공자에 의해 암호화된 데이터를 전달함으로써, 데이터 이용자가 동형 암호화된 연산 결과만을 획득할 수 있는 방법 및 이를 수행하는 시스템을 개발하고자 하였다. As a result, the inventors of the present invention, when a cloud server receives a data rental request from a data user, transmits data encrypted by the data provider, thereby enabling a data user to obtain only homomorphic encrypted operation results, and a method and method for the same I was trying to develop a system that does it.
본 발명의 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The tasks of the present invention are not limited to the tasks mentioned above, and other tasks not mentioned will be clearly understood by those skilled in the art from the following description.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 데이터 처리 방법이 제공된다. 상기 방법은, 데이터 서버로 데이터 이용자 데이터에 대한 데이터 결합 요청을 송신하는 단계, 상기 데이터 결합 요청에 따라, 상기 데이터 서버로부터 결합 가능한 외부 데이터 목록을 수신하는 단계, 상기 외부 데이터 목록 중 어느 하나의 외부 데이터와의 결합 조건을 결정하는 단계, 상기 데이터 서버로부터 암호화된 외부 데이터를 수신하고, 상기 이용자 데이터를 동형 암호화하는 단계, 상기 암호화된 이용자 데이터와 상기 암호화된 외부 데이터를 상기 결합 조건을 이용하여 결합하는 단계 및 상기 결합 조건에 해당하는 결합 결과만을 복호화하고, 복호화된 결합 결과를 상기 데이터 서버로 송신하는 단계를 포함하도록 구성된다. In order to solve the above problems, a data processing method according to an embodiment of the present invention is provided. The method may include sending a data combining request for data user data to a data server, receiving an external data list that can be combined from the data server according to the data combining request, and an external data list of any one of the external data lists. Determining a combination condition with data, receiving encrypted external data from the data server and isomorphically encrypting the user data, combining the encrypted user data and the encrypted external data using the combination condition and decrypting only the combining result corresponding to the combining condition, and transmitting the decoded combining result to the data server.
본 발명의 특징에 따르면, 상기 결합 조건을 결정하는 단계는, 상기 이용자 데이터의 메타 데이터를 이용하여 결합 인덱스를 결정하는 단계와 상기 결합 인덱스 및 상기 메타 데이터를 기초로 상기 이용자 데이터를 동형 암호화 연산 가능한 형태로 변환하기 위한 파라미터를 생성하는 단계를 더 포함할 수 있다. According to a feature of the present invention, the determining of the combination condition may include determining a combination index using metadata of the user data, and isomorphic encryption of the user data based on the combination index and the metadata. It may further include generating a parameter for converting into a form.
본 발명의 다른 특징에 따르면, 상기 결합 인덱스 및 상기 파라미터는, 상기 외부 데이터를 제공하는 데이터 제공자 디바이스로 전달되며, 상기 암호화된 외부 데이터는, 상기 데이터 제공자 디바이스에 의해 상기 결합 인덱스 및 상기 파라미터를 이용하여 암호화된 데이터일 수 있다. According to another feature of the present invention, the binding index and the parameter are transmitted to a data provider device providing the external data, and the encrypted external data is obtained using the binding index and the parameter by the data provider device. may be encrypted data.
본 발명의 또 다른 특징에 따르면, 상기 암호화하는 단계는, 상기 데이터 서버로부터 동형 암호화 연산을 위한 파라미터를 수신하는 단계를 더 포함할 수 있다.According to another feature of the present invention, the encrypting may further include receiving parameters for a homomorphic encryption operation from the data server.
본 발명의 또 다른 특징에 따르면, 상기 외부 데이터는, 사용자의 개인정보가 포함된 데이터일 수 있다.According to another feature of the present invention, the external data may be data including user's personal information.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 다른 실시예에 따른 데이터 처리 방법이 제공된다. 상기 방법은, 데이터 서버로부터 데이터 이용자의 결합 조건을 포함하는 데이터 결합 요청을 수신하는 단계, 상기 데이터 결합 요청에 대응되는 데이터를 동형 암호화하는 단계 및 상기 암호화된 데이터를 상기 데이터 서버로 송신하는 단계를 포함하도록 구성된다. In order to solve the above problems, a data processing method according to another embodiment of the present invention is provided. The method includes the steps of receiving a data combining request including combining conditions of a data user from a data server, isomorphically encrypting data corresponding to the data combining request, and transmitting the encrypted data to the data server. configured to include
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 또 다른 실시예에 따른 데이터 처리 중개 방법이 제공된다. 상기 방법은, 데이터 제공자 디바이스를 통해 데이터 처리 가능한 외부 데이터를 획득하는 단계, 데이터 이용자 디바이스로부터 결합 조건을 포함하는 데이터 결합 요청을 수신하는 단계, 상기 외부 데이터 중 상기 결합 조건에 따라 결합 가능한 외부 데이터 목록을 결정하는 단계, 결합될 외부 데이터를 제공하는 데이터 제공자 디바이스로 상기 데이터 결합 요청을 전달하는 단계, 상기 데이터 제공자 디바이스로부터 동형 암호화된 외부 데이터를 수신하고, 상기 동형 암호화된 외부 데이터를 상기 데이터 이용자 디바이스로 송신하는 단계 및 상기 데이터 이용자 디바이스로부터 상기 결합 조건에 대응되는 데이터의 복호화된 결합 결과를 수신하는 단계를 포함하도록 구성된다. In order to solve the above problems, a data processing mediation method according to another embodiment of the present invention is provided. The method includes acquiring external data capable of data processing through a data provider device, receiving a data combining request including a combining condition from a data user device, and a list of external data that can be combined according to the combining condition among the external data. determining, transmitting the data combining request to a data provider device providing external data to be combined, receiving homomorphically encrypted external data from the data provider device, and converting the homomorphically encrypted external data to the data user device and receiving a decrypted combining result of data corresponding to the combining condition from the data user device.
기타 실시예의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.Other embodiment specifics are included in the detailed description and drawings.
본 발명은 사용자들이 개인 정보를 포함하는 데이터를 퍼블릭 클라우드 환경 상에서 안전하게 대여할 수 있다. According to the present invention, users can safely rent data including personal information in a public cloud environment.
또한, 본 발명은 데이터 제공자에 의해 데이터가 암호화 및 복호화됨에 따라, 데이터 제공자는 퍼블릭 클라우드 환경을 통해서도 보안 상의 문제를 고려하지 않고 데이터를 처리할 수 있다. 특히, 데이터 제공자는 동형 암호화 기법을 사용하여 데이터를 암호화함으로써, 보안을 강화시킬 수 있다. In addition, according to the present invention, as data is encrypted and decrypted by a data provider, the data provider can process data even through a public cloud environment without considering security issues. In particular, the data provider can enhance security by encrypting data using a homomorphic encryption technique.
또한, 본 발명은 데이터의 양, 종류, 데이터가 활용될 서비스 등에 따라 암호화 파라미터의 길이 및 그에 따른 암호화 강도를 조절할 수 있어, 데이터 제공자와 데이터 이용자는 각자의 요구 사항에 맞게 데이터를 거래할 수 있다. In addition, the present invention can adjust the length of the encryption parameter and the corresponding encryption strength according to the amount and type of data, the service to be used for the data, etc., so that the data provider and the data user can trade data according to their respective requirements. .
본 발명에 따른 효과는 이상에서 예시된 내용에 의해 제한되지 않으며, 더욱 다양한 효과들이 본 발명 내에 포함되어 있다.Effects according to the present invention are not limited by the contents exemplified above, and more various effects are included in the present invention.
도 1은 본 발명의 일 실시예에 따른 데이터 처리 시스템의 개략도이다.1 is a schematic diagram of a data processing system according to one embodiment of the present invention.
도 2는 본 발명의 일 실시예에 따른 데이터 제공자 디바이스의 구성을 나타낸 블록도이다.2 is a block diagram showing the configuration of a data provider device according to an embodiment of the present invention.
도 3은 본 발명의 일 실시예에 따른 데이터 제공자 디바이스의 데이터 처리 방법에 대한 순서도이다. 3 is a flowchart of a data processing method of a data provider device according to an embodiment of the present invention.
도 4는 본 발명의 일 실시예에 따른 데이터 처리를 중개하는 데이터 서버의 구성을 나타낸 블록도이다. 4 is a block diagram showing the configuration of a data server mediating data processing according to an embodiment of the present invention.
도 5는 본 발명의 일 실시예에 따른 데이터 처리 중개 방법에 대한 순서도이다. 5 is a flowchart of a data processing mediation method according to an embodiment of the present invention.
도 6은 본 발명의 일 실시예에 따른 데이터 이용자 디바이스의 구성을 나타낸 블록도이다. 6 is a block diagram showing the configuration of a data user device according to an embodiment of the present invention.
도 7은 본 발명의 일 실시예에 따른 데이터 이용자 디바이스의 데이터 처리 방법에 대한 순서도이다. 7 is a flowchart of a data processing method of a data user device according to an embodiment of the present invention.
도 8 내지 도 10은 본 발명의 일 실시예에 따른 데이터를 처리할 수 있는 데이터 이용자 인터페이스 화면을 설명하기 위한 개략도이다.8 to 10 are schematic views illustrating data user interface screens capable of processing data according to an embodiment of the present invention.
도 11은 본 발명의 일 실시예에 따른 데이터 처리 방법에 대한 개략적인 순서도이다. 11 is a schematic flowchart of a data processing method according to an embodiment of the present invention.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조부호가 사용될 수 있다.Advantages and features of the present invention, and methods of achieving them, will become clear with reference to the detailed description of the following embodiments taken in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below and will be implemented in various forms different from each other, only these embodiments make the disclosure of the present invention complete, and common knowledge in the art to which the present invention pertains. It is provided to completely inform the person who has the scope of the invention, and the present invention is only defined by the scope of the claims. In connection with the description of the drawings, like reference numerals may be used for like elements.
본 문서에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.In this document, expressions such as "has," "may have," "includes," or "may include" indicate the existence of a corresponding feature (eg, numerical value, function, operation, or component such as a part). , which does not preclude the existence of additional features.
본 문서에서, "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는(3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.In this document, expressions such as “A or B,” “at least one of A and/and B,” or “one or more of A or/and B” may include all possible combinations of the items listed together. . For example, “A or B,” “at least one of A and B,” or “at least one of A or B” (1) includes at least one A, (2) includes at least one B, Or (3) may refer to all cases including at least one A and at least one B.
본 문서에서 사용된 "제1," "제2," "첫째," 또는 "둘째," 등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 예를 들면, 제1 사용자 기기와 제2 사용자 기기는, 순서 또는 중요도와 무관하게, 서로 다른 사용자 기기를 나타낼 수 있다. 예를 들면, 본 문서에 기재된 권리범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 바꾸어 명명될 수 있다.Expressions such as “first,” “second,” “first,” or “second,” used in this document may modify various elements, regardless of order and/or importance, and refer to one element as It is used only to distinguish it from other components and does not limit the corresponding components. For example, a first user device and a second user device may represent different user devices regardless of order or importance. For example, without departing from the scope of rights described in this document, a first element may be named a second element, and similarly, the second element may also be renamed to the first element.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.A component (e.g., a first component) is "(operatively or communicatively) coupled with/to" another component (e.g., a second component); When referred to as "connected to", it should be understood that the certain component may be directly connected to the other component or connected through another component (eg, a third component). On the other hand, when an element (eg, a first element) is referred to as being “directly connected” or “directly connected” to another element (eg, a second element), the element and the above It may be understood that other components (eg, third components) do not exist between the other components.
본 문서에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도록 변경된(adapted to)," "~하도록 만들어진(made to)," 또는 "~ 를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된)프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.As used in this document, the expression "configured to" means "suitable for," "having the capacity to," depending on the circumstances. ," "designed to," "adapted to," "made to," or "capable of." The term "configured (or set) to" may not necessarily mean only "specifically designed to" hardware. Instead, in some contexts, the phrase "device configured to" may mean that the device is "capable of" in conjunction with other devices or components. For example, the phrase "a processor configured (or configured) to perform A, B, and C" may include a dedicated processor (e.g., embedded processor) to perform those operations, or by executing one or more software programs stored in a memory device. , may mean a general-purpose processor (eg, CPU or application processor) capable of performing corresponding operations.
본 문서에서 사용된 용어들은 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 다른 실시예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 문서에 기재된 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 본 문서에 사용된 용어들 중 일반적인 사전에 정의된 용어들은, 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미로 해석될 수 있으며, 본 문서에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 문서에서 정의된 용어일지라도 본 문서의 실시예들을 배제하도록 해석될 수 없다.Terms used in this document are only used to describe a specific embodiment, and may not be intended to limit the scope of other embodiments. Singular expressions may include plural expressions unless the context clearly dictates otherwise. Terms used herein, including technical or scientific terms, may have the same meaning as commonly understood by a person of ordinary skill in the art described in this document. Among the terms used in this document, terms defined in a general dictionary may be interpreted as having the same or similar meaning as the meaning in the context of the related art, and unless explicitly defined in this document, an ideal or excessively formal meaning. not be interpreted as In some cases, even terms defined in this document cannot be interpreted to exclude the embodiments of this document.
본 발명의 여러 실시예들의 각각 특징들이 부분적으로 또는 전체적으로 서로 결합 또는 조합 가능하며, 당업자가 충분히 이해할 수 있듯이 기술적으로 다양한 연동 및 구동이 가능하며, 각 실시예들이 서로에 대하여 독립적으로 실시 가능할 수도 있고 연관 관계로 함께 실시 가능할 수도 있다.Each feature of the various embodiments of the present invention can be partially or entirely combined or combined with each other, and as those skilled in the art can fully understand, various interlocking and driving operations are possible, and each embodiment can be implemented independently of each other. It may be possible to implement together in an association relationship.
본 명세서의 해석의 명확함을 위해, 이하에서는 본 명세서에서 사용되는 용어들을 정의하기로 한다.For clarity of interpretation of this specification, terms used in this specification will be defined below.
도 1은 본 발명의 일 실시예에 따른 데이터 처리 시스템의 개략도이다.1 is a schematic diagram of a data processing system according to one embodiment of the present invention.
도 1을 참조하면, 데이터 처리 시스템(1000)은 데이터 제공자 디바이스(100), 데이터 서버(200), 데이터 이용자 디바이스(300) 및 클라우드 서버(400)를 포함할 수 있다. Referring to FIG. 1 , a data processing system 1000 may include a data provider device 100 , a data server 200 , a data user device 300 and a cloud server 400 .
데이터 처리 시스템(1000)은 사용자들로 하여금 퍼블릭 클라우드 상에서 암호화된 데이터를 처리할 수 있는 환경을 제공할 수 있다. 여기서, 데이터를 처리한다는 것은 디바이스와 서버 간에 암호화된 데이터가 전달되거나, 디바이스 내에서 데이터를 분석하는 것으로 이해될 수 있다. The data processing system 1000 may provide an environment in which users can process encrypted data on a public cloud. Here, processing data may be understood as transferring encrypted data between a device and a server or analyzing data within a device.
구체적으로, 데이터 처리 시스템(1000)은 데이터 제공자와 데이터 이용자 사이에서 데이터 서버(200)를 통해 동형 암호화된 데이터를 전달할 수 있다. 특히, 본 발명은 암호화된 데이터 간의 연산이 가능할 수 있도록, 데이터를 동형 암호화 기법을 통해 암호화할 수 있다. Specifically, the data processing system 1000 may transmit homomorphically encrypted data between a data provider and a data user through the data server 200 . In particular, the present invention may encrypt data through a homomorphic encryption technique so that an operation between encrypted data is possible.
본 발명에서 동형 암호화되는 데이터는 사용자의 개인정보를 포함할 수 있으며, 예를 들어, 개인 정보는 사용자의 이름, 주민등록번호, 개인통관번호, 운전면허번호, 사용자의 통화 기록, 위치(위도, 경도) 정보, 은행 거래 정보, 토지, 부동산 정보 등을 포함할 수 있다. The data to be homomorphically encrypted in the present invention may include the user's personal information, for example, the user's name, resident registration number, personal customs clearance number, driver's license number, user's call record, location (latitude, longitude) information, bank transaction information, land, real estate information, etc.
데이터 처리 시스템(1000)에서 각 구성 요소들 간에 주고받는 데이터는 데이터 원본이 아닌, 동형 암호화된 데이터와 동형 암호화 연산을 위한 파라미터(예. 동형 암호화 연산을 위해 사용되는 함수의 차수(polynomial degree), 동형 암호화 연산을 위해 지정되는 스케일 비트(scale bit), 계수(coefficient))일 수 있으며, 데이터의 원본은 각자의 디바이스에 저장될 수 있다. Data exchanged between each component in the data processing system 1000 is not a data source, but homomorphic encrypted data and parameters for homomorphic encryption operations (eg, the degree of a function used for homomorphic encryption operation (polynomial degree), It may be a scale bit or coefficient specified for homomorphic encryption operation, and the original data may be stored in each device.
즉, 데이터 처리 시스템(1000)은 데이터 이용자들에게 데이터를 온전히 제공하는 것이 아니라, 지정된 영역(데이터 서버(200)가 제공하는 웹 페이지 또는 어플리케이션 환경 내)에서 동형 암호화된 데이터를 처리할 수 있도록 데이터 제공자와 데이터 이용자를 중개할 수 있다. That is, the data processing system 1000 does not completely provide data to data users, but data so that homomorphically encrypted data can be processed in a designated area (web page or application environment provided by the data server 200). Intermediate between providers and data users.
데이터 제공자 디바이스(100)는 개인정보를 포함하는 데이터를 소지하여, 해당 데이터의 이용 권한을 제공하는 사용자 디바이스로, PC, 태블릿 PC, 스마트 폰 등의 전자 장치를 포함할 수 있다. 데이터 제공자 디바이스(100)는 데이터 처리를 위한 어플리케이션이 설치되어 실행되거나, 데이터 서버(200)가 제공하는 웹 페이지에 접속할 수 있으며, 어플리케이션 또는 웹 페이지를 통해 대여 가능한 데이터를 동형 암호화시켜 데이터 서버(200)로 송신할 수 있다. The data provider device 100 is a user device that possesses data including personal information and provides the right to use the data, and may include an electronic device such as a PC, tablet PC, and smart phone. The data provider device 100 may have an application for data processing installed and executed, or may access a web page provided by the data server 200, and isomorphically encrypt data that can be rented through the application or web page so that the data server 200 ) can be sent.
데이터 제공자 디바이스(100)는 동형 암호화된 데이터 간의 연산이 가능하도록 데이터를 전처리하고, 전처리된 데이터를 동형 암호화 기법을 통해 암호화할 수 있다. 이때, 동형 암호화 연산을 위한 파라미터는 데이터 서버(200) 또는 데이터 이용자 디바이스(300)로부터 수신된 파라미터일 수 있다. The data provider device 100 may pre-process data to enable operations between homomorphic encrypted data and encrypt the preprocessed data using a homomorphic encryption technique. In this case, the parameter for the homomorphic encryption operation may be a parameter received from the data server 200 or the data user device 300 .
데이터 제공자 디바이스(100)는 수신된 파라미터가 반영된 동형 암호화 키를 생성하여 동형 암호화할 수 있으며, 동일한 파라미터를 통해 동형 암호화를 수행한 데이터 이용자 디바이스(300)는 동형 암호화된 데이터의 결합 결과를 복호화할 수 있다. The data provider device 100 may generate and perform homomorphic encryption by generating a homomorphic encryption key reflecting the received parameters, and the data user device 300 that has performed homomorphic encryption through the same parameters can decrypt the combination result of the homomorphically encrypted data. can
다양한 실시예에서, 데이터 제공자 디바이스(100)는 데이터 이용자들이 동형 암호화된 데이터를 검색할 수 있도록, 데이터 등록 시, 데이터의 제목, 개략적인 설명, 데이터 필드를 구성하는 항목들의 설명 등 부가 정보를 함께 제공할 수 있다. In various embodiments, the data provider device 100 may provide additional information, such as a title of data, a brief description, and descriptions of items constituting a data field, when registering data so that data users can search for homomorphically encrypted data. can provide
다양한 실시예에서, 데이터 제공자 디바이스(100)는 데이터 이용자의 요청에 따라 데이터를 동형 암호화하여 데이터 서버(200)로 송신하거나, 데이터 이용자의 요청 없이 대여 가능한 데이터를 동형 암호화하여 데이터 서버(200)로 송신할 수 있다. 데이터 서버(200)로 송신된 동형 암호화된 데이터는 웹 페이지 또는 어플리케이션의 대여 가능한 데이터 목록에 포함될 수 있다.In various embodiments, the data provider device 100 isomorphically encrypted data and transmits it to the data server 200 at the request of the data user, or isomorphically encrypted data that can be rented without a data user's request and sends it to the data server 200. can be sent Homomorphically encrypted data transmitted to the data server 200 may be included in a list of data available for rental of a web page or application.
데이터 서버(200)는 데이터 제공자 디바이스(100)와 데이터 이용자 디바이스(300) 간의 데이터 대여 또는 데이터 결합을 중개할 수 있는 서버로서, 범용 컴퓨터, 랩탑 및 클라우드 서버 등으로 구현될 수 있다.The data server 200 is a server capable of mediating data rental or data combination between the data provider device 100 and the data user device 300, and may be implemented as a general-purpose computer, laptop, or cloud server.
데이터 서버(200)는 데이터 제공자 디바이스(100) 및 데이터 이용자 디바이스(300)로 데이터 대여, 결합, 분석을 위한 웹 페이지 또는 어플리케이션을 제공할 수 있다. The data server 200 may provide a web page or application for data rental, combination, and analysis to the data provider device 100 and the data user device 300 .
다양한 실시예에서, 데이터 서버(200)는 동형 암호화 연산을 위한 동일한 파라미터를 데이터 제공자 디바이스(100) 및 데이터 이용자 디바이스(300)에 제공할 수 있다. 즉, 동형 암호화된 데이터들 간의 연산(결합) 및 복호화가 가능하도록, 데이터 서버(200)는 중개 과정에서 파라미터를 제공할 수도 있다.In various embodiments, data server 200 may provide data provider device 100 and data user device 300 with the same parameters for homomorphic encryption operations. That is, the data server 200 may provide parameters in the mediation process so that calculation (combination) and decryption between homomorphically encrypted data are possible.
다양한 실시예에서, 데이터 서버(200)는 동형 암호화된 데이터들을 클라우드 서버(400)에 등록할 수 있다. 여기서, 클라우드 서버(400)는 퍼블릭 클라우드 환경에서 운영되는 서버로, 동형 암호화된 데이터들만이 클라우드 서버(400)에 등록될 수 있다. In various embodiments, the data server 200 may register homomorphically encrypted data with the cloud server 400 . Here, the cloud server 400 is a server operated in a public cloud environment, and only homomorphically encrypted data may be registered in the cloud server 400 .
데이터 이용자 디바이스(300)는 개인정보를 포함하는 데이터를 이용하고자 하는 사용자 디바이스로, PC, 태블릿 PC, 스마트 폰 등의 전자 장치를 포함할 수 있다. 데이터 이용자 디바이스(300)는 데이터 처리를 위한 어플리케이션이 설치되어 실행되거나, 데이터 서버(200)가 제공하는 웹 페이지에 접속할 수 있으며, 어플리케이션 또는 웹 페이지를 통해 동형 암호화된 데이터를 처리할 수 있다. 여기서, 동형 암호화된 데이터를 처리한다는 것은 데이터 분석을 위해 데이터를 필터링(filtering), 그루핑(grouping), 소팅(sorting)한 결과를 얻거나, 데이터 이용자 디바이스(300)에 저장된 데이터와 결합하고, 결합 결과를 데이터 이용자가 지정한 조건에 따라 전환시키는 것으로 이해될 수 있다. The data user device 300 is a user device that wants to use data including personal information, and may include an electronic device such as a PC, tablet PC, and smart phone. The data user device 300 may have an application for data processing installed and executed, may access a web page provided by the data server 200, and may process homomorphically encrypted data through the application or web page. Here, processing the homomorphically encrypted data means obtaining a result of filtering, grouping, or sorting the data for data analysis, combining with data stored in the data user device 300, and combining the data. It can be understood as converting the result according to conditions specified by the data user.
데이터 이용자 디바이스(300)는 데이터 대여 요청 시, 데이터의 분석 과정(워크 플로우)을 미리 결정할 수 있다. 구체적으로, 분석 과정은 메타 데이터를 등록 후, 메타 인덱스를 이용하여 결합 인덱스를 결정하고, 동형 암호화 연산을 위한 파라미터를 생성하는 과정을 포함할 수 있다. 여기서, 동형 암호화 연산을 위한 파라미터란, 동형 암호화된 또 다른 데이터와의 연산을 위해 활용되는 파라미터이며, 예를 들어, 동형 암호화 연산을 위해 사용되는 함수의 차수(polynomial degree), 동형 암호화 연산을 위해 지정되는 스케일 비트(scale bit), 계수(coefficient) 등, 메타 데이터에 포함된 일부 데이터들이 동형 암호화 연산을 위한 파라미터가 될 수 있다. When requesting data rental, the data user device 300 may determine a data analysis process (work flow) in advance. Specifically, the analysis process may include registering meta data, determining a binding index using the meta index, and generating parameters for homomorphic encryption operation. Here, the parameter for the homomorphic encryption operation is a parameter used for operation with another homomorphic encrypted data, for example, the polynomial degree of a function used for the homomorphic encryption operation, for the homomorphic encryption operation Some data included in meta data, such as designated scale bits and coefficients, may be parameters for homomorphic encryption operation.
데이터 이용자 디바이스(300)는 결합 인덱스 및 메타 데이터를 기초로 이용자 데이터를 동형 암호화 연산 가능한 형태로 변환하기 위한 파라미터를 생성할 수 있다. The data user device 300 may generate parameters for converting user data into a form capable of performing homomorphic encryption based on the binding index and meta data.
이러한 분석 과정은 추후 데이터 제공자 디바이스(100)로 전달될 수 있으며, 데이터 제공자 디바이스(100)는 이와 같이 데이터 활용 방안이 지정된 데이터 이용자 디바이스(300)에 한해서만 데이터를 대여해 줄 수 있다.This analysis process may later be transferred to the data provider device 100, and the data provider device 100 may lend data only to the data user device 300 for which the data utilization method is specified.
데이터 이용자 디바이스(300)는 암호화된 데이터 간의 연산이 가능하도록, 이용자 데이터를 전처리하고, 전처리된 데이터를 동형 암호화 기법을 통해서 암호화할 수 있다. 이때, 동형 암호화를 위한 파라미터는 데이터 결합 인덱스에 따라 데이터 이용자 디바이스(300)가 생성한 파라미터이거나, 데이터 서버(200)로부터 수신된 파라미터일 수 있다. The data user device 300 may pre-process the user data and encrypt the pre-processed data through a homomorphic encryption technique so that an operation between encrypted data is possible. In this case, the parameters for homomorphic encryption may be parameters generated by the data user device 300 according to the data combination index or parameters received from the data server 200 .
데이터 이용자 디바이스(300)는 파라미터가 반영된 데이터 이용자의 암호화 키를 생성하여 동형 암호화할 수 있으며, 동일한 파라미터를 이용하여 동형 암호화된 데이터를 데이터 서버(200)로부터 전달받을 수 있다. 데이터 이용자 디바이스(300)는 이를 자신의 동형 암호화된 데이터와 결합하고, 결합 결과를 복호화할 수 있다. The data user device 300 may generate and perform homomorphic encryption of a data user's encryption key in which parameters are reflected, and may receive homomorphically encrypted data from the data server 200 using the same parameters. The data user device 300 may combine this with its own homomorphically encrypted data and decrypt the combined result.
클라우드 서버(400)는 데이터를 공유 가능한 형태로 저장할 수 있는 퍼블릭 클라우드 기반의 서버로서, 클라우드 서버(400)에는 데이터 서버(200)가 제공하는 동형 암호화된 데이터, 동형 암호화된 상태로 연산된 결과들이 저장될 수 있다. The cloud server 400 is a public cloud-based server capable of storing data in a sharable form. The cloud server 400 includes homomorphically encrypted data provided by the data server 200 and results calculated in a homomorphically encrypted state. can be stored
다양한 실시예에서, 클라우드 서버(400)는 클라우드 데이터베이스에 저장되어 있는 동형 암호화된 데이터를 데이터 서버(200)로 제공할 수 있다. In various embodiments, the cloud server 400 may provide homomorphically encrypted data stored in the cloud database to the data server 200 .
지금까지 본 발명의 일 실시예에 따른 데이터 처리 시스템(1000)에 대하여 설명하였다. 데이터 처리 시스템(1000)에서 데이터 제공자와 데이터 이용자를 구분하였으나, 데이터 제공자가 데이터 이용자가 될 수 있고, 데이터 이용자 역시 데이터 제공자가 되어, 서로 간의 데이터를 대여하고, 분석할 수 있다. So far, the data processing system 1000 according to an embodiment of the present invention has been described. In the data processing system 1000, a data provider and a data user are divided, but a data provider can become a data user, and a data user can also become a data provider, lending and analyzing data between them.
이하에서는, 데이터 대여 요청에 따라 선택적으로 데이터를 제공해주는 데이터 제공자 디바이스(100)에 대하여 설명하도록 한다. Hereinafter, the data provider device 100 that selectively provides data according to a data rental request will be described.
도 2는 본 발명의 일 실시예에 따른 데이터 제공자 디바이스의 구성을 나타낸 블록도이다.2 is a block diagram showing the configuration of a data provider device according to an embodiment of the present invention.
도 2를 참조하면, 데이터 제공자 디바이스(100)는 메모리 인터페이스(110), 하나 이상의 프로세서(120) 및 주변 인터페이스(130)를 포함할 수 있다. 데이터 제공자 디바이스(100) 내의 다양한 컴포넌트들은 하나 이상의 통신 버스 또는 신호 라인에 의해 연결될 수 있다.Referring to FIG. 2 , the data provider device 100 may include a memory interface 110 , one or more processors 120 and a peripheral interface 130 . The various components within data provider device 100 may be connected by one or more communication buses or signal lines.
메모리 인터페이스(110)는 메모리(150)에 연결되어 프로세서(120)로 다양한 데이터를 전할 수 있다. 여기서, 메모리(150)는 플래시 메모리 타입, 하드디스크 타입, 멀티미디어 카드 마이크로 타입, 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램, SRAM, 롬, EEPROM, PROM, 네트워크 저장 스토리지, 클라우드, 블록체인 데이터베이스 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.The memory interface 110 may be connected to the memory 150 and transfer various data to the processor 120 . Here, the memory 150 is a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (eg SD or XD memory, etc.), RAM, SRAM, ROM, EEPROM, PROM, network storage storage, cloud , It may include at least one type of storage medium among blockchain databases.
다양한 실시예에서, 메모리(150)는 운영 체제(151), 통신 모듈(152), 그래픽 사용자 인터페이스 모듈(GUI)(153), 센서 처리 모듈(154), 전화 모듈(155) 및 애플리케이션 모듈(156) 중 적어도 하나 이상을 저장할 수 있다. 구체적으로, 운영 체제(151)는 기본 시스템 서비스를 처리하기 위한 명령어 및 하드웨어 작업들을 수행하기 위한 명령어를 포함할 수 있다. 통신 모듈(152)은 다른 하나 이상의 디바이스, 컴퓨터 및 서버 중 적어도 하나와 통신할 수 있다. 그래픽 사용자 인터페이스 모듈(GUI)(153)은 그래픽 사용자 인터페이스를 처리할 수 있다. 센서 처리 모듈(154)은 센서 관련 기능(예를 들어, 하나 이상의 마이크(192)를 통해 수신된 음성 입력을 처리함)을 처리할 수 있다. 전화 모듈(155)은 전화 관련 기능을 처리할 수 있다. 애플리케이션 모듈(156)은 사용자 애플리케이션의 다양한 기능들, 예컨대 전자 메시징, 웹 브라우징, 미디어 처리, 탐색, 이미징, 기타 프로세스 기능을 수행할 수 있다. 아울러, 데이터 제공자 디바이스(100)는 메모리(150)에 어느 한 종류의 서비스와 연관된 하나 이상의 소프트웨어 애플리케이션(156-1, 156-2)(예. 데이터 대여 어플리케이션)을 저장할 수 있다.In various embodiments, memory 150 includes operating system 151 , communication module 152 , graphical user interface module (GUI) 153 , sensor processing module 154 , telephony module 155 , and application module 156 . ) At least one or more of them may be stored. Specifically, the operating system 151 may include instructions for processing basic system services and instructions for performing hardware tasks. The communication module 152 may communicate with at least one of one or more other devices, computers, and servers. A graphical user interface module (GUI) 153 may process a graphical user interface. Sensor processing module 154 may process sensor-related functions (eg, process voice input received through one or more microphones 192 ). The phone module 155 may process phone-related functions. The application module 156 may perform various functions of a user application, such as electronic messaging, web browsing, media processing, navigation, imaging, and other processing functions. In addition, the data provider device 100 may store one or more software applications 156 - 1 and 156 - 2 (eg, a data rental application) associated with a certain type of service in the memory 150 .
다양한 실시예에서, 메모리(150)는 디지털 어시스턴트 클라이언트 모듈(157)(이하, DA 클라이언트 모듈)을 저장할 수 있으며, 그에 따라 디지털 어시스턴트의 클라이언트 측의 기능을 수행하기 위한 명령어 및 다양한 사용자 데이터(158)(예. 사용자 맞춤형 어휘 데이터, 선호도 데이터, 사용자의 전자 주소록 등과 같은 기타 데이터)를 저장할 수 있다. In various embodiments, the memory 150 may store a digital assistant client module 157 (hereinafter referred to as a DA client module), thereby storing instructions and various user data 158 for performing client-side functions of the digital assistant. (eg user-customized vocabulary data, preference data, other data such as the user's electronic address book, etc.).
한편, DA 클라이언트 모듈(157)은 데이터 제공자 디바이스(100)에 구비된 다양한 사용자 인터페이스(예. I/O 서브시스템(140))를 통해 사용자의 음성 입력, 텍스트 입력, 터치 입력 및/또는 제스처 입력을 획득할 수 있다. Meanwhile, the DA client module 157 receives a user's voice input, text input, touch input, and/or gesture input through various user interfaces (eg, the I/O subsystem 140) provided in the data provider device 100. can be obtained.
또한, DA 클라이언트 모듈(157)은 시청각적, 촉각적 형태의 데이터를 출력할 수 있다. 예를 들어, DA 클라이언트 모듈(157)은 음성, 소리, 알림, 텍스트 메시지, 메뉴, 그래픽, 비디오, 애니메이션 및 진동 중 적어도 둘 하나 이상의 조합으로 이루어진 데이터를 출력할 수 있다. 아울러, DA 클라이언트 모듈(157)은 통신 서브시스템(180)을 이용하여 디지털 어시스턴트 서버(미도시)와 통신할 수 있다.In addition, the DA client module 157 may output audio-visual and tactile data. For example, the DA client module 157 may output data consisting of a combination of at least two of voice, sound, notification, text message, menu, graphic, video, animation, and vibration. In addition, the DA client module 157 may communicate with a digital assistant server (not shown) using the communication subsystem 180 .
다양한 실시예에서, DA 클라이언트 모듈(157)은 사용자 입력과 연관된 상황(context)을 구성하기 위하여 다양한 센서, 서브시스템 및 주변 디바이스로부터 데이터 제공자 디바이스(100)의 주변 환경에 대한 추가 정보를 수집할 수 있다. 예를 들어, DA 클라이언트 모듈(157)은 사용자 입력과 함께 상황 정보를 디지털 어시스턴트 서버에 제공하여 사용자의 의도를 추론할 수 있다. 여기서, 사용자 입력에 동반될 수 있는 상황 정보는 센서 정보, 예를 들어, 광(lighting), 주변 소음, 주변 온도, 주변 환경의 이미지, 비디오 등을 포함할 수 있다. 다른 예를 들어, 상황 정보는 데이터 제공자 디바이스(100)의 물리적 상태(예. 디바이스 배향, 디바이스 위치, 디바이스 온도, 전력 레벨, 속도, 가속도, 모션 패턴, 셀룰러 신호 강도 등)을 포함할 수 있다. 또 다른 예를 들어, 상황 정보는 데이터 제공자 디바이스(100)의 소프트웨어 상태에 관련된 정보(예. 데이터 제공자 디바이스(100)에서 실행 중인 프로세스, 설치된 프로그램, 과거 및 현재 네트워크 활동성, 백그라운드 서비스, 오류 로그, 리소스 사용 등)를 포함할 수 있다. In various embodiments, DA client module 157 may collect additional information about the surrounding environment of data provider device 100 from various sensors, subsystems, and peripheral devices to construct a context associated with user input. there is. For example, the DA client module 157 may infer the user's intention by providing context information together with the user's input to the digital assistant server. Here, the situational information that may accompany the user input may include sensor information, eg, lighting, ambient noise, ambient temperature, image of the surrounding environment, video, and the like. For another example, the contextual information may include the physical state of the data provider device 100 (eg, device orientation, device location, device temperature, power level, speed, acceleration, motion patterns, cellular signal strength, etc.). For another example, the contextual information is information related to the software state of the data provider device 100 (eg, processes running on the data provider device 100, installed programs, past and present network activity, background services, error logs, resource usage, etc.).
다양한 실시예에서, 메모리(150)는 추가 또는 삭제된 명령어를 포함할 수 있으며, 나아가 데이터 제공자 디바이스(100)도 도 2에 도시된 구성 외에 추가 구성을 포함하거나, 일부 구성을 제외할 수도 있다. In various embodiments, the memory 150 may include added or deleted commands, and furthermore, the data provider device 100 may include additional components other than those shown in FIG. 2 or may exclude some components.
프로세서(120)는 데이터 제공자 디바이스(100)의 전반적인 동작을 제어할 수 있으며, 메모리(150)에 저장된 어플리케이션 또는 프로그램을 구동하여 일정 관리용 인터페이스를 구현하기 위한 다양한 명령들을 수행할 수 있다. The processor 120 may control overall operations of the data provider device 100 and may execute various commands for implementing an interface for schedule management by driving an application or program stored in the memory 150 .
프로세서(120)는 CPU(Central Processing Unit)나 AP(Application Processor)와 같은 연산 장치에 해당할 수 있다. 또한, 프로세서(120)는 NPU(Neural Processing Unit)과 같은 다양한 연산 장치가 통합된 SoC(System on Chip)와 같은 통합 칩(Integrated Chip (IC))의 형태로 구현될 수 있다. The processor 120 may correspond to an arithmetic device such as a central processing unit (CPU) or an application processor (AP). In addition, the processor 120 may be implemented in the form of an integrated chip (IC) such as a System on Chip (SoC) in which various computing devices such as a Neural Processing Unit (NPU) are integrated.
다양한 실시예에서, 프로세서(120)는 데이터를 필요로 하는 데이터 이용자, 즉 데이터 분석가들에게 데이터를 대여해 줄 수 있으며, 이하 도 3을 참조하여 설명하도록 한다. In various embodiments, the processor 120 may lend data to data users, that is, data analysts who need the data, which will be described below with reference to FIG. 3 .
도 3은 본 발명의 일 실시예에 따른 데이터 제공자 디바이스의 데이터 처리 방법에 대한 순서도이다. 3 is a flowchart of a data processing method of a data provider device according to an embodiment of the present invention.
도 3을 참조하면, 프로세서(120)는 통신 서브 시스템(180)을 통해 데이터 처리 환경을 제공하는 데이터 서버(200)로부터 데이터 이용자의 결합 조건을 포함하는 데이터 결합 요청을 수신할 수 있다(S110). 여기서, 데이터 처리 환경을 제공한다는 것은 데이터 서버(200)에서 데이터 처리 가능한 어플리케이션을 배포하거나, 데이터 처리 가능한 웹 페이지를 제공하는 것으로 이해될 수 있다. Referring to FIG. 3 , the processor 120 may receive a data combining request including combining conditions of a data user from the data server 200 providing a data processing environment through the communication subsystem 180 (S110). . Here, providing a data processing environment may be understood as distributing an application capable of processing data in the data server 200 or providing a web page capable of processing data.
다양한 실시예에서, 데이터 결합 요청은 데이터 이용자 디바이스(300)에서 생성된 요청일 수 있으며, 이는 데이터 이용자 디바이스(300)를 통해 등록된 메타 데이터, 결합 인덱스 및 동형 암호화 연산을 위한 파라미터를 포함할 수 있다. In various embodiments, the data combination request may be a request generated by the data user device 300, and may include metadata registered through the data user device 300, a combination index, and parameters for a homomorphic encryption operation. there is.
즉, 데이터 제공자 디바이스(100)의 프로세서(120)는 데이터 이용자가 자신의 데이터를 대여하여 어떠한 처리(분석)를 수행할 것인지 확인할 수 있으며, 그에 맞는 형태로 데이터를 전처리할 수 있다. That is, the processor 120 of the data provider device 100 can check what kind of processing (analysis) the data user will perform by renting his/her own data, and can pre-process the data in a form suitable for the data user.
S110 단계 이후, 프로세서(120)는 데이터 결합 요청에 대응되는 데이터를 동형 암호화할 수 있다(S120). 프로세서(120)는 메모리(150) 또는 데이터 제공자 디바이스(100)와 연결된 데이터베이스에 저장된 데이터 중 데이터 결합 요청에 대응되는 데이터만을 동형 암호화할 수 있다. After step S110, the processor 120 may homomorphically encrypt data corresponding to the data combination request (S120). The processor 120 may homomorphically encrypt only data corresponding to a data combination request among data stored in the memory 150 or a database connected to the data provider device 100 .
다양한 실시예에서, 프로세서(120)는 데이터 서버(200)로부터 동형 암호화 연산을 위한 파라미터를 수신할 수 있다. 그에 따라, 프로세서(120)는 S110 단계에서 데이터 이용자 디바이스(300)로부터 전달받은 동형 암호화 연산을 위한 파라미터와 데이터 서버(200)로부터 수신된 동형 암호화 연산을 위한 파라미터를 이용하여 동형 암호화 키를 생성하고, 전처리된 데이터를 암호화할 수 있다. In various embodiments, the processor 120 may receive parameters for a homomorphic encryption operation from the data server 200 . Accordingly, the processor 120 generates a homomorphic encryption key by using the parameters for the homomorphic encryption operation received from the data user device 300 and the parameters for the homomorphic encryption operation received from the data server 200 in step S110. , the preprocessed data can be encrypted.
아울러, 데이터 서버(200)로부터 수신된 파라미터는 데이터 이용자 디바이스(300)로 제공된 파라미터와 동일할 수 있으며, 그에 따라 동형 암호화된 데이터를 통해 연산된 암호화된 결과는 추후 데이터 이용자 디바이스(300)가 복호화할 수 있다. In addition, the parameter received from the data server 200 may be the same as the parameter provided to the data user device 300, and accordingly, the encrypted result calculated through the homomorphic encrypted data is decrypted by the data user device 300 later. can do.
S120 단계 이후, 프로세서(120)는 통신 서브 시스템(180)을 통해 동형 암호화된 데이터를 데이터 서버(200)로 송신할 수 있다. 예를 들어, 프로세서(120)는 동형 암호화된 데이터를 데이터 처리 가능한 웹 페이지 또는 어플리케이션에 등록할 수 있다. After step S120 , the processor 120 may transmit the homomorphically encrypted data to the data server 200 through the communication subsystem 180 . For example, the processor 120 may register homomorphically encrypted data in a web page or application capable of processing data.
한편, 데이터 서버(200)로 송신되는 데이터는 사용자의 개인정보가 포함된 데이터일 수 있으며, 본 발명에서의 데이터 서버(200)는 사용자의 개인정보가 포함된, 동형 암호화된 데이터를 클라우드 서버(400)에 저장할 수 있다. On the other hand, the data transmitted to the data server 200 may be data including the user's personal information, and the data server 200 in the present invention transfers the homomorphically encrypted data including the user's personal information to the cloud server ( 400) can be stored.
다시 도 2를 참조하면, 주변 인터페이스(130)는 다양한 센서, 서브 시스템 및 주변 디바이스와 연결되어, 데이터 제공자 디바이스(100)가 다양한 기능을 수행할 수 있도록 데이터를 제공해 줄 수 있다. 여기서, 데이터 제공자 디바이스(100)가 어떠한 기능을 수행한다는 것은 프로세서(120)에 의해 수행되는 것으로 이해될 수 있다. Referring back to FIG. 2 , the peripheral interface 130 is connected to various sensors, subsystems, and peripheral devices to provide data so that the data provider device 100 can perform various functions. Here, that the data provider device 100 performs a certain function may be understood as being performed by the processor 120 .
주변 인터페이스(130)는 모션 센서(160), 조명 센서(광 센서)(161) 및 근접 센서(162)로부터 데이터를 제공받을 수 있으며, 이를 통해, 데이터 제공자 디바이스(100)는 배향, 광, 및 근접 감지 기능 등을 수행할 수 있다. 다른 예를 들어, 주변 인터페이스(130)는 기타 센서들(163)(포지셔닝 시스템-GPS 수신기, 온도 센서, 생체인식 센서)로부터 데이터를 제공받을 수 있으며, 이를 통해 데이터 제공자 디바이스(100)가 기타 센서들(163)과 관련된 기능들을 수행할 수 있다. Peripheral interface 130 may receive data from motion sensor 160, light sensor (light sensor) 161, and proximity sensor 162, through which data provider device 100 may receive orientation, light, and Proximity detection function, etc. can be performed. As another example, peripheral interface 130 may receive data from other sensors 163 (positioning system-GPS receiver, temperature sensor, biometric sensor) through which data provider device 100 may receive other sensors. functions related to 163 can be performed.
다양한 실시예에서, 데이터 제공자 디바이스(100)는 주변 인터페이스(130)와 연결된 카메라 서브시스템(170) 및 이와 연결된 광학 센서(171)를 포함할 수 있으며, 이를 통해 데이터 제공자 디바이스(100)는 사진 촬영 및 비디오 클립 녹화 등의 다양한 촬영 기능을 수행할 수 있다. In various embodiments, the data provider device 100 may include a camera subsystem 170 coupled to the peripheral interface 130 and an optical sensor 171 coupled thereto, through which the data provider device 100 may take a picture. and various shooting functions such as video clip recording.
다양한 실시예에서, 데이터 제공자 디바이스(100)는 주변 인터페이스(130)와 연결된 통신 서브 시스템(180)을 포함할 수 있다. 통신 서브 시스템(180)은 하나 이상의 유/무선 네트워크로 구성되며, 다양한 통신 포트, 무선 주파수 송수신기, 광학 송수신기를 포함할 수 있다.In various embodiments, data provider device 100 may include communication subsystem 180 coupled with peripheral interface 130 . The communication subsystem 180 is composed of one or more wired/wireless networks, and may include various communication ports, radio frequency transceivers, and optical transceivers.
다양한 실시예에서, 데이터 제공자 디바이스(100)는 주변 인터페이스(130)와 연결된 오디오 서브 시스템(190)을 포함하며, 이러한 오디오 서브 시스템(190)은 하나 이상의 스피커(191) 및 하나 이상의 마이크(192)를 포함함으로써, 데이터 제공자 디바이스(100)는 음성 작동형 기능, 예컨대 음성 인식, 음성 복제, 디지털 녹음, 및 전화 기능 등을 수행할 수 있다.In various embodiments, data provider device 100 includes an audio subsystem 190 coupled to peripheral interface 130, which audio subsystem 190 includes one or more speakers 191 and one or more microphones 192. By including, the data provider device 100 can perform voice-activated functions, such as voice recognition, voice replication, digital recording, and telephony functions.
다양한 실시예에서, 데이터 제공자 디바이스(100)는 주변 인터페이스(130)와 연결된 I/O 서브시스템(140)을 포함할 수 있다. 예를 들어, I/O 서브시스템(140)은 터치 스크린 제어기(141)를 통해 데이터 제공자 디바이스(100)에 포함된 터치 스크린(143)을 제어할 수 있다. In various embodiments, data provider device 100 may include I/O subsystem 140 coupled with peripheral interface 130 . For example, the I/O subsystem 140 may control the touch screen 143 included in the data provider device 100 through the touch screen controller 141 .
예를 들어, 터치 스크린 제어기(141)는 정전용량형, 저항형, 적외형, 표면 탄성파 기술, 근접 센서 어레이 등과 같은 복수의 터치 감지 기술 중 어느 하나의 기술을 사용하여 사용자의 접촉 및 움직임 또는 접촉 및 움직임의 중단을 검출할 수 있다. 다른 예를 들어, I/O 서브시스템(140)은 기타 입력 제어기(들)(142)를 통해 데이터 제공자 디바이스(100)에 포함된 기타 입력/제어 디바이스(144)를 제어할 수 있다. 일 예로서, 기타 입력 제어기(들)(142)은 하나 이상의 버튼, 로커 스위치(rocker switches), 썸 휠(thumb-wheel), 적외선 포트, USB 포트 및 스타일러스 등과 같은 포인터 디바이스를 제어할 수 있다.For example, the touch screen controller 141 uses any one of a plurality of touch sensing technologies such as capacitive, resistive, infrared, surface acoustic wave technology, proximity sensor array, and the like to provide a user's touch and motion or touch. and cessation of movement. For another example, I/O subsystem 140 may control other input/control devices 144 included in data provider device 100 via other input controller(s) 142 . As an example, other input controller(s) 142 may control one or more buttons, rocker switches, thumb-wheels, infrared ports, USB ports, and pointer devices such as styluses and the like.
지금까지 본 발명의 일 실시예에 따른 데이터 제공자 디바이스(100)에 대하여 설명하였다. 본 발명에 따르면, 데이터 제공자 디바이스(100)는 자신이 가지고 있는 데이터를 다른 사용자들이 사용하기 위해, 데이터 원본 자체를 데이터 서버(200) 또는 클라우드 서버(400)에 등록하는 것이 아니라, 데이터 이용 요청 시, 자신의 디바이스에서 직접 동형 암호화한 일부의 데이터만을 제공할 수 있다. So far, the data provider device 100 according to an embodiment of the present invention has been described. According to the present invention, the data provider device 100 does not register the data source itself with the data server 200 or the cloud server 400 so that other users can use the data it has, but upon request for data use. , can provide only some of the data directly homomorphically encrypted on its own device.
이하에서는 데이터 제공자와 데이터 이용자를 중개하고, 데이터 처리 공간을 마련할 수 있는 데이터 서버(200)에 대하여 설명하도록 한다. Hereinafter, a data server 200 capable of mediating between a data provider and a data user and providing a data processing space will be described.
도 4는 본 발명의 일 실시예에 따른 데이터 처리를 중개하는 데이터 서버의 구성을 나타낸 블록도이다. 4 is a block diagram showing the configuration of a data server mediating data processing according to an embodiment of the present invention.
도 4를 참조하면, 데이터 서버(200)는 통신 인터페이스(210), 메모리(220), I/O 인터페이스(230) 및 프로세서(240)를 포함할 수 있으며, 각 구성은 하나 이상의 통신 버스 또는 신호 라인을 통해 서로 통신할 수 있다. Referring to FIG. 4 , the data server 200 may include a communication interface 210, a memory 220, an I/O interface 230, and a processor 240, each of which includes one or more communication buses or signals. They can communicate with each other through lines.
통신 인터페이스(210)는 유/무선 통신 네트워크를 통해 복수의 데이터 제공자 디바이스(100)와 연결되어 데이터를 주고받을 수 있다. 예를 들어, 통신 인터페이스(210)는 데이터 제공자 디바이스(100)로 데이터 결합 요청, 동형 암호화를 위한 파라미터, 복호화된 결합 결과 등을 송신할 수 있으며, 데이터 제공자 디바이스(100)로부터 동형 암호화된 외부 데이터를 수신할 수 있다. 여기서, 외부 데이터란 데이터 제공자 디바이스(100)에 저장되어 있는 데이터를 의미할 수 있다. The communication interface 210 may be connected to a plurality of data provider devices 100 through a wired/wireless communication network to exchange data. For example, the communication interface 210 may transmit a data combining request, a parameter for homomorphic encryption, a decrypted combining result, etc. to the data provider device 100, and homomorphically encrypted external data from the data provider device 100. can receive Here, the external data may mean data stored in the data provider device 100 .
다른 예를 들어, 통신 인터페이스(210)는 데이터 이용자 디바이스(300)로부터 데이터 결합 요청, 동형 암호화된 이용자 데이터, 복호화된 결합 결과 등을 수신할 수 있으며, 데이터 이용자 디바이스(300)로 대여 가능한 외부 데이터 목록, 동형 암호화 연산을 위한 파라미터, 동형 암호화된 외부 데이터를 송신할 수 있다. For another example, the communication interface 210 may receive a data combination request, homomorphically encrypted user data, and a decrypted combination result from the data user device 300, and external data that can be rented to the data user device 300. Lists, parameters for homomorphic encryption operations, and homomorphically encrypted external data can be transmitted.
한편, 이러한 데이터의 송수신을 가능하게 하는 통신 인터페이스(210)는 통신 포드(211) 및 무선 회로(212)를 포함하며, 여기 유선 통신 포트(211)는 하나 이상의 유선 인터페이스, 예를 들어, 이더넷, 범용 직렬 버스(USB), 파이어와이어 등을 포함할 수 있다. 또한, 무선 회로(212)는 RF 신호 또는 광학 신호를 통해 외부 디바이스와 데이터를 송수신할 수 있다. 아울러, 무선 통신은 복수의 통신 표준, 프로토콜 및 기술, 예컨대 GSM, EDGE, CDMA, TDMA, 블루투스, Wi-Fi, VoIP, Wi-MAX, 또는 임의의 기타 적합한 통신 프로토콜 중 적어도 하나를 사용할 수 있다. On the other hand, the communication interface 210 enabling the transmission and reception of such data includes a communication pod 211 and a wireless circuit 212, where the wired communication port 211 is one or more wired interfaces, for example, Ethernet, This may include Universal Serial Bus (USB), FireWire, and the like. Also, the wireless circuit 212 may transmit/receive data with an external device through an RF signal or an optical signal. In addition, wireless communication may use at least one of a plurality of communication standards, protocols and technologies, such as GSM, EDGE, CDMA, TDMA, Bluetooth, Wi-Fi, VoIP, Wi-MAX, or any other suitable communication protocol.
메모리(220)는 데이터 서버(200)에서 사용되는 다양한 데이터를 저장할 수 있다. 예를 들어, 메모리(220)는 데이터 제공자 디바이스(100), 데이터 이용자 디바이스(300) 식별 정보를 저장할 수 있으며, 데이터의 동형 암호화를 위한 파라미터를 저장할 수 있다. The memory 220 may store various data used in the data server 200 . For example, the memory 220 may store identification information of the data provider device 100 and the data user device 300 and may store parameters for homomorphic encryption of data.
다양한 실시예에서, 메모리(220)는 각종 데이터, 명령 및 정보를 저장할 수 있는 휘발성 또는 비휘발성 기록 매체를 포함할 수 있다. 예를 들어, 메모리(220)는 플래시 메모리 타입, 하드디스크 타입, 멀티미디어 카드 마이크로 타입, 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램, SRAM, 롬, EEPROM, PROM, 네트워크 저장 스토리지, 클라우드, 블록체인 데이터베이스 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.In various embodiments, the memory 220 may include volatile or non-volatile recording media capable of storing various data, commands, and information. For example, the memory 220 may be a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (eg SD or XD memory, etc.), RAM, SRAM, ROM, EEPROM, PROM, network storage storage , Cloud, and a blockchain database may include at least one type of storage medium.
다양한 실시예에서, 메모리(220)는 운영 체제(221), 통신 모듈(222), 사용자 인터페이스 모듈(223) 및 하나 이상의 애플리케이션(224) 중 적어도 하나의 구성을 저장할 수 있다. In various embodiments, the memory 220 may store configurations of at least one of the operating system 221 , the communication module 222 , the user interface module 223 , and one or more applications 224 .
운영 체제(221)(예. LINUX, UNIX, MAC OS, WINDOWS, VxWorks 등의 내장형 운영 체제)는 일반적인 시스템 작업(예. 메모리 관리, 저장 디바이스 제어, 전력 관리 등)를 제어하고 관리하기 위한 다양한 소프트웨어 컴포넌트 및 드라이버를 포함할 수 있으며, 다양한 하드웨어, 펌웨어, 및 소프트웨어 컴포넌트 간의 통신을 지원할 수 있다.Operating system 221 (e.g. embedded operating systems such as LINUX, UNIX, MAC OS, WINDOWS, VxWorks, etc.) is a variety of software for controlling and managing general system tasks (e.g. memory management, storage device control, power management, etc.) components and drivers, and may support communication between various hardware, firmware, and software components.
통신 모듈(223)은 통신 인터페이스(210)를 통해 다른 디바이스와 통신을 지원할 수 있다. 통신 모듈(220)은 통신 인터페이스(210)의 유선 통신 포트(211) 또는 무선 회로(212)에 의해 수신되는 데이터를 처리하기 위한 다양한 소프트웨어 구성 요소들을 포함할 수 있다.The communication module 223 may support communication with other devices through the communication interface 210 . The communication module 220 may include various software components for processing data received by the wired communication port 211 or the wireless circuit 212 of the communication interface 210 .
사용자 인터페이스 모듈(223)은 I/O 인터페이스(230)를 통해 키보드, 터치 스크린, 마이크 등으로부터 사용자의 요청 또는 입력을 수신하고, 디스플레이 상에 사용자 인터페이스를 제공할 수 있다.The user interface module 223 may receive a user's request or input from a keyboard, touch screen, microphone, etc. through the I/O interface 230 and provide a user interface on a display.
애플리케이션(224)은 하나 이상의 프로세서(230)에 의해 실행되도록 구성되는 프로그램 또는 모듈을 포함할 수 있다. 여기서, 데이터 처리를 중개하기 위한 어플리케이션은 서버 팜(server farm) 상에서 구현될 수 있다. Applications 224 may include programs or modules configured to be executed by one or more processors 230 . Here, an application for mediating data processing may be implemented on a server farm.
I/O 인터페이스(230)는 데이터 서버(200)의 입출력 디바이스(미도시), 예컨대 디스플레이, 키보드, 터치 스크린 및 마이크 중 적어도 하나를 사용자 인터페이스 모듈(223)과 연결할 수 있다. I/O 인터페이스(230)는 사용자 인터페이스 모듈(223)과 함께 사용자 입력(예. 음성 입력, 키보드 입력, 터치 입력 등)을 수신하고, 수신된 입력에 따른 명령을 처리할 수 있다. The I/O interface 230 may connect at least one of an input/output device (not shown) of the data server 200, for example, a display, a keyboard, a touch screen, and a microphone, to the user interface module 223. The I/O interface 230 may receive user input (eg, voice input, keyboard input, touch input, etc.) together with the user interface module 223 and process a command according to the received input.
프로세서(240)는 통신 인터페이스(210), 메모리(220) 및 I/O 인터페이스(230)와 연결되어 데이터 서버(200)의 전반적인 동작을 제어할 수 있으며, 메모리(220)에 저장된 애플리케이션 또는 프로그램을 통해 동형 암호화된 데이터가 처리되기 위한 다양한 명령들을 수행할 수 있다. The processor 240 is connected to the communication interface 210, the memory 220, and the I/O interface 230 to control the overall operation of the data server 200, and to run applications or programs stored in the memory 220. Through this, various commands for processing homomorphic encrypted data can be performed.
프로세서(240)는 CPU(Central Processing Unit)나 AP(Application Processor)와 같은 연산 장치에 해당할 수 있다. 또한, 프로세서(240)는 다양한 연산 장치가 통합된 SoC(System on Chip)와 같은 통합 칩(Integrated Chip (IC))의 형태로 구현될 수 있다. 또는 프로세서(240)는 NPU(Neural Processing Unit)과 같이 인공 신경망 모델을 계산하기 위한 모듈을 포함할 수 있다.The processor 240 may correspond to an arithmetic device such as a central processing unit (CPU) or an application processor (AP). In addition, the processor 240 may be implemented in the form of an integrated chip (IC) such as a System on Chip (SoC) in which various computing devices are integrated. Alternatively, the processor 240 may include a module for calculating an artificial neural network model, such as a Neural Processing Unit (NPU).
다양한 실시예에서, 프로세서(240)는 데이터 이용자와 데이터 제공자 간에 민감정보를 포함한 데이터가 오고 갈 수 있도록 중개할 수 있으며, 이하 도 5를 참조하여 설명하도록 한다. In various embodiments, the processor 240 may mediate data including sensitive information between a data user and a data provider, which will be described below with reference to FIG. 5 .
도 5는 본 발명의 일 실시예에 따른 데이터 처리 중개 방법에 대한 순서도이다.5 is a flowchart of a data processing mediation method according to an embodiment of the present invention.
도 5를 참조하면, 프로세서(240)는 데이터 제공자 디바이스(100)를 통해 데이터 처리 가능한 외부 데이터를 획득할 수 있다(S210). 구체적으로, 프로세서(240)는 복수의 데이터 제공자 디바이스(100)로부터 데이터 처리(예. 대여를 통한 분석)가 가능한 데이터들의 정보를 획득할 수 있다. 예를 들어, 프로세서(240)는 외부 데이터의 메타 데이터, 외부 데이터의 제목, 개략적인 설명, 데이터 필드를 구성하는 항목들의 설명 등의 부가 설명을 획득할 수 있다.Referring to FIG. 5 , the processor 240 may acquire external data capable of data processing through the data provider device 100 (S210). Specifically, the processor 240 may obtain information on data capable of data processing (eg, analysis through rental) from the plurality of data provider devices 100 . For example, the processor 240 may obtain additional descriptions such as meta data of the external data, a title of the external data, a brief description, and a description of items constituting the data field.
S210 단계 이후, 프로세서(240)는 통신 인터페이스(210)를 통해 데이터 이용자 디바이스(300)로부터 결합 조건을 포함하는 데이터 결합 요청을 수신할 수 있다(S220). 여기서, 데이터 결합 요청에는 데이터 이용자가 설계한 분석 과정(워크 플로우)이 포함될 수 있다. 구체적으로, 분석 과정에는 두 개의 데이터를 어떻게 결합하고, 결합 결과를 이용하여 어떠한 데이터 처리(예. 필터링, 그룹화)를 수행 것인지에 대한 설명이 포함될 수 있다. 예를 들어, 데이터 결합 요청은 데이터 이용자의 메타 데이터, 결합 인덱스 및 동형 암호화 연산을 위한 파라미터가 포함될 수 있다. After step S210, the processor 240 may receive a data combining request including combining conditions from the data user device 300 through the communication interface 210 (S220). Here, the data combination request may include an analysis process (workflow) designed by the data user. Specifically, the analysis process may include a description of how to combine the two data and what kind of data processing (eg, filtering, grouping) is to be performed using the combined result. For example, the data combination request may include metadata of a data user, a combination index, and parameters for homomorphic encryption operation.
다양한 실시예에서, 프로세서(240)는 데이터 결합 요청에 포함된 분석 과정의 유효성을 판단하고, 분석 과정이 유효한 경우에 한하여, 데이터 이용자 디바이스(300)로 사용자의 개인정보가 포함된 제3자의 데이터를 대여해 줄 수 있다. 만약, 분석 과정이 유효하지 않은 경우, 프로세서(240)는 통신 인터페이스(210)를 통해 데이터 이용자 디바이스(300)로 분석 과정(워크 플로우) 재설계 알림을 송신할 수 있다.In various embodiments, the processor 240 determines the validity of the analysis process included in the data combination request, and only when the analysis process is valid, the third party data including the user's personal information is transferred to the data user device 300. can be rented. If the analysis process is not valid, the processor 240 may transmit an analysis process (workflow) redesign notification to the data user device 300 through the communication interface 210 .
S220 단계 이후, 프로세서(240)는 외부 데이터 중 결합 조건에 따라 결합 가능한 외부 데이터 목록을 결정할 수 있다(S230). 예를 들어, 프로세서(240)는 데이터 이용자의 메타 데이터 또는 결합 인덱스를 기초로 결합 가능한 외부 데이터를 결정할 수 있으며, 외부 데이터 제공자명, 외부 데이터 제목, 외부 데이터의 개략적인 설명을 포함하는 외부 데이터 목록을 생성할 수 있다. After step S220, the processor 240 may determine a list of external data that can be combined according to a combination condition among external data (S230). For example, the processor 240 may determine external data that can be combined based on the data user's metadata or binding index, and the external data list including the name of the external data provider, the title of the external data, and a brief description of the external data. can create
아울러, 프로세서(240)는 통신 인터페이스(210)를 통해 결정된 외부 데이터 목록을 데이터 이용자 디바이스(300)로 송신할 수 있다.In addition, the processor 240 may transmit the determined external data list to the data user device 300 through the communication interface 210 .
S230 단계 이후, 프로세서(240)는 데이터 이용자 디바이스(300)를 통해 선택되어 결합을 진행할 외부 데이터를 제공하는 데이터 제공자 디바이스(100)로 데이터 결합 요청을 전달할 수 있다(S240). 구체적으로, 프로세서(240)는 결합 조건과 함께 데이터 이용자의 메타 데이터, 결합 인덱스 및 동형 암호화 연산을 위한 파라미터를 전달할 수 있다. 여기서, 동형 암호화 연산을 위한 파라미터는 데이터 이용자 디바이스(300)에서 결합 인덱스를 기반으로 데이터 이용자 디바이스(300)에서 추출된 파라미터일 수 있다. After step S230, the processor 240 may transmit a data combination request to the data provider device 100 that is selected through the data user device 300 and provides external data to be combined (S240). Specifically, the processor 240 may transmit metadata of a data user, a binding index, and parameters for homomorphic encryption operation together with combining conditions. Here, the parameter for the homomorphic encryption operation may be a parameter extracted from the data user device 300 based on a binding index in the data user device 300 .
다양한 실시예에서, 프로세서(240)는 통신 인터페이스(210)를 통해 데이터 이용자 디바이스(300) 및 데이터 제공자 디바이스(100)로 동일한 동형 암호화 연산을 위한 파라미터를 송신할 수 있다. 즉, 프로세서(240)는 동형 암호화된 외부 데이터와 동형 암호화된 이용자 데이터가 암호화된 상태로 연산된 후, 데이터 이용자 디바이스(300)에 의해 복호화될 수 있도록 동일한 암호화 파라미터를 송신할 수 있다. In various embodiments, processor 240 may transmit parameters for the same homomorphic encryption operation to data user device 300 and data provider device 100 via communication interface 210 . That is, the processor 240 may transmit the same encryption parameter so that the homomorphically encrypted external data and the homomorphically encrypted user data are operated in an encrypted state and then decrypted by the data user device 300 .
S240 단계 이후, 프로세서(240)는 통신 인터페이스(210)를 통해 데이터 제공자 디바이스(100)로부터 동형 암호화된 외부 데이터를 수신하고, 동형 암호화된 외부 데이터를 데이터 이용자 디바이스(300)로 송신할 수 있다(S250). 여기서, 동형 암호화된 각각의 데이터는 사용자의 개인정보가 포함된 데이터일 수 있으며, 각각의 데이터는 데이터 서버(200) 및 데이터 이용자 디바이스(300)에서 생성된 파라미터가 반영된 동형 암호화 키를 이용하여 동형 암호화된 바, 연산 및 복호화가 가능할 수 있다. After step S240, the processor 240 may receive homomorphically encrypted external data from the data provider device 100 through the communication interface 210 and transmit the homomorphically encrypted external data to the data user device 300 ( S250). Here, each of the homomorphically encrypted data may be data including personal information of the user, and each data is homomorphic using a homomorphic encryption key in which parameters generated by the data server 200 and the data user device 300 are reflected. Since it is encrypted, calculation and decryption may be possible.
S250 단계 이후, 프로세서(240)는 통신 인터페이스(210)를 통해 데이터 이용자 디바이스(300)로부터 결합 조건에 대응되는 데이터의 복호화된 결합 결과를 수신할 수 있다(S260). 프로세서(240)는 동형 암호화된 외부 데이터, 이용자 데이터의 복호화된 결과가 아닌, 결합 조건에 따라 처리된 데이터의 복호화 결과를 획득할 수 있으며, 이를 데이터 제공자 디바이스(100)로 전달할 수 있다. After step S250, the processor 240 may receive a decrypted combination result of data corresponding to the combination condition from the data user device 300 through the communication interface 210 (S260). The processor 240 may obtain a decryption result of data processed according to a combination condition, rather than a decryption result of homomorphically encrypted external data or user data, and may transmit it to the data provider device 100 .
지금까지 본 발명의 일 실시예에 따른 데이터 서버(200)에 대하여 설명하였다. 본 발명에 따르면, 사용자의 개인정보가 포함된 데이터들이 각자의 안전한 디바이스 내에 저장된 상태로 동형 암호화, 결합 및 복호화되고, 데이터 서버(200)는 이러한 결과만을 전달해 줄 수 있으며, 그에 따라 민감 정보 중개에 따른 위험 부담을 최소화할 수 있다. So far, the data server 200 according to an embodiment of the present invention has been described. According to the present invention, data including users' personal information is homomorphically encrypted, combined, and decrypted in a state stored in each safe device, and the data server 200 can deliver only these results, and thus sensitive information mediation. risks can be minimized.
이하에서는 데이터 분석을 위해 개인정보를 포함하는 사용자 데이터를 필요로 하는 데이터 이용자 디바이스(300)에 대하여 설명하도록 한다. Hereinafter, a data user device 300 that requires user data including personal information for data analysis will be described.
도 6은 본 발명의 일 실시예에 따른 데이터 이용자 디바이스의 구성을 나타낸 블록도이다. 6 is a block diagram showing the configuration of a data user device according to an embodiment of the present invention.
도 6을 참조하면, 데이터 이용자 디바이스(300)는 메모리 인터페이스(310), 하나 이상의 프로세서(320) 및 주변 인터페이스(330)를 포함할 수 있다. Referring to FIG. 6 , a data user device 300 may include a memory interface 310 , one or more processors 320 and a peripheral interface 330 .
앞서 설명한 바와 같이, 사용자 개인정보를 포함하는 데이터를 제공할 수 있다면, 데이터 이용자는 데이터 제공자가 될 수 있으며, 그에 따라, 데이터 이용자 디바이스(300)는 데이터 제공자 디바이스(100)와 동일한 구성으로 이루어질 수 있다. As described above, if data including user personal information can be provided, a data user can become a data provider, and accordingly, the data user device 300 can have the same configuration as the data provider device 100. there is.
도 6에서 도 2와 중복되는 구성에 대한 설명은 생략하도록 하며, 도 7을 참조하여 프로세서(320)에 의해 수행되는 동형 암호를 이용한 데이터 처리 방법에 대하여 설명하도록 한다. In FIG. 6, a description of a configuration overlapping with that of FIG. 2 will be omitted, and a data processing method using homomorphic encryption performed by the processor 320 will be described with reference to FIG. 7.
도 7은 본 발명의 일 실시예에 따른 데이터 이용자 디바이스의 데이터 처리 방법에 대한 순서도이고, 도 8 내지 도 10은 본 발명의 일 실시예에 따른 데이터를 처리할 수 있는 데이터 이용자 인터페이스 화면을 설명하기 위한 개략도이다.7 is a flowchart of a data processing method of a data user device according to an embodiment of the present invention, and FIGS. 8 to 10 illustrate data user interface screens capable of processing data according to an embodiment of the present invention. It is a schematic diagram for
도 7을 참조하면, 프로세서(320)는 통신 서브 시스템(380)을 통해 데이터 서버(200)로 이용자 데이터에 대한 데이터 결합 요청을 송신할 수 있다(S310). 구체적으로, 프로세서(320)는 터치 스크린(341) 또는 기타 입력/제어 디바이스(344)를 통해 데이터 이용자가 생성(설계)한 분석 과정(워크 플로우)를 획득할 수 있으며, 이용자 데이터의 메타 데이터를 등록할 수 있다. 여기서, 프로세서(240)는 데이터 처리(대여, 결합 및 분석)가 가능한 웹 페이지 또는 어플리케이션에 메타 데이터를 업로드함으로써, 메타 데이터를 등록할 수 있다. Referring to FIG. 7 , the processor 320 may transmit a data combining request for user data to the data server 200 through the communication subsystem 380 (S310). Specifically, the processor 320 may obtain an analysis process (workflow) created (designed) by a data user through a touch screen 341 or other input/control device 344, and meta data of user data can register. Here, the processor 240 may register meta data by uploading meta data to a web page or application capable of data processing (rental, combination, and analysis).
분석 과정이 유효하고, 메타 데이터가 등록된 경우, 프로세서(320)는 통신 서브 시스템(380)을 통해 데이터 서버(200)로부터 데이터 결합 요청에 따라, 결합 가능한 외부 데이터 목록을 수신할 수 있다(S320). 여기서, 외부 데이터는 사용자의 개인정보를 포함할 수 있으며, 예를 들어, 개인 정보는 사용자의 이름, 주민등록번호, 개인통관번호, 운전면허번호, 사용자의 통화 기록, 위치(위도, 경도) 정보, 은행 거래 정보, 토지, 부동산 정보 등을 포함할 수 있다. If the analysis process is valid and the meta data is registered, the processor 320 may receive a list of external data that can be combined according to a data combination request from the data server 200 through the communication subsystem 380 (S320). ). Here, the external data may include the user's personal information, for example, the user's name, resident registration number, personal customs clearance number, driver's license number, user's call record, location (latitude, longitude) information, bank It may include transaction information, land, real estate information, and the like.
관련하여, 도 8을 참조하면, 데이터 이용자 디바이스(300)에는 분석 과정(워크 플로우)에 따라 데이터 제공자의 외부 데이터(3rd party 데이터)와 이용자 데이터(로컬 데이터)를 선택할 수 있는 항목(11)이 제공될 수 있다. 아울러, 데이터 이용자 디바이스(300)에는 외부 데이터와 이용자 데이터를 이용하여, 데이터 이용자가 사용 가능한 데이터 처리 목록(12)이 제공될 수 있으며, 앞선 데이터 결합 요청에 따라, 결합 가능한 외부 데이터 목록(13)이 나열될 수 있다. 예를 들어, 외부 데이터 목록에는 외부 데이터 제공자명, 외부 데이터 제목, 외부 데이터의 개략적인 설명이 포함될 수 있다. In this regard, referring to FIG. 8, the data user device 300 includes an item 11 for selecting external data ( 3rd party data) and user data (local data) of the data provider according to the analysis process (workflow) this can be provided. In addition, the data user device 300 may be provided with a data processing list 12 usable by the data user using external data and user data, and according to the previous data combination request, a list of external data 13 that can be combined can be listed. For example, the external data list may include the name of the external data provider, the title of the external data, and a brief description of the external data.
S320 단계 이후, 프로세서(320)는 외부 데이터 목록 중 어느 하나의 외부 데이터와의 결합 조건을 결정할 수 있다(S330). 구체적으로, 프로세서(320)는 이용자 데이터의 메타 데이터를 이용하여 결합 인덱스를 결정할 수 있으며, 결합 인덱스 및 메타 데이터를 기초로 이용자 데이터를 동헝 암호화 연산 가능한 형태로 변환하기 위한 파라미터를 생성할 수 있다. 예를 들어, 프로세서(320)는 메타 데이터에서 동형 암호화 연산을 위해 필요한 함수의 차수(polynomial degree), 동형 암호화 연산을 위해 지정되는 스케일 비트(scale bit), 계수(coefficient)를 동형 암호화 연산을 위한 파라미터로 추출할 수 있다. After step S320, the processor 320 may determine a combination condition with any one external data from the list of external data (S330). Specifically, the processor 320 may determine a binding index using meta data of user data, and may generate a parameter for converting user data into a form capable of performing encryption on the basis of the binding index and meta data. For example, the processor 320 converts a polynomial degree of a function required for a homomorphic encryption operation in metadata, a scale bit designated for the homomorphic encryption operation, and a coefficient for the homomorphic encryption operation. It can be extracted as a parameter.
아울러, 결합 조건에는 데이터 이용자가 선택한 데이터 필드 선택 정보가 포함될 수 있으며, 프로세서(320)는 결합 조건에 맞게 데이터를 전처리할 수 있다. In addition, the combining condition may include data field selection information selected by the data user, and the processor 320 may pre-process the data in accordance with the combining condition.
프로세서(320)는 통신 서브 시스템(380)을 통해 결합 조건을 데이터 서버(200)로 송신할 수 있으며, 결합 인덱스 및 파라미터를 포함하는 결합 조건은 데이터 서버(200)를 통해 외부 데이터를 제공하는 데이터 제공자 디바이스(100)로 전달될 수 있다. The processor 320 may transmit the combination condition to the data server 200 through the communication subsystem 380, and the combination condition including the combination index and parameters is data providing external data through the data server 200. It may be delivered to the provider device 100 .
S330 단계 이후, 프로세서(320)는 데이터 서버(200)로부터 동형 암호화된 외부 데이터를 수신하고, 이용자 데이터를 동형 암호화할 수 있다(S340). 이때, 프로세서(320)는 자신이 생성한 동형 암호화 파라미터 외에, 데이터 서버(200)로부터 동형 암호화 연산을 위한 파라미터를 추가로 수신할 수 있으며, 그에 따라, 두 개의 파라미터가 반영된 암호화 키를 생성하고, 전처리된 이용자 데이터를 동형 암호화할 수 있다. After step S330, the processor 320 may receive homomorphically encrypted external data from the data server 200 and homomorphically encrypt user data (S340). At this time, the processor 320 may additionally receive parameters for the homomorphic encryption operation from the data server 200 in addition to the homomorphic encryption parameters generated by the processor 320, and accordingly, generate an encryption key reflecting the two parameters, The preprocessed user data can be homomorphically encrypted.
데이터 서버(200)로부터 수신된 동형 암호화된 외부 데이터는 데이터 제공자 디바이스(100)에 의해 동형 암호화된 데이터이며, 프로세서(320)가 생성한 동형 암호화 키는 데이터 서버(200) 및 데이터 이용자 디바이스(300)에 의해 생성된 파라미터가 반영될 수 있다. Homomorphically encrypted external data received from the data server 200 is data homomorphically encrypted by the data provider device 100, and the homomorphic encryption key generated by the processor 320 is used by the data server 200 and the data user device 300. ) may be reflected.
S340 단계 이후, 프로세서(320)는 동형 암호화된 이용자 데이터와 동형 암호화된 외부 데이터를 결합 조건을 이용하여 결합할 수 있다(S350). After step S340, the processor 320 may combine the homomorphically encrypted user data and the homomorphically encrypted external data using a combination condition (S350).
관련하여, 도 9 및 도 10을 참조하면, 데이터 이용자 디바이스(300)에는 동형 암호화된 이용자 데이터를 등록할 수 있는 아이콘(14)이 제공될 수 있으며, 동형 암호화된 이용자 데이터와 동형 암호화된 외부 데이터가 결합된 상태에서 데이터 이용자가 이용 가능한 분석 항목(15)이 나열될 수 있다. 해당 분석 항목(15)에서 데이터 이용자가 “필터”를 선택할 경우, 데이터 이용자 디바이스(300)에는 두 개의 동형 암호화된 데이터가 결합되고, 필터링되는 시퀀스가 시각적인 아이콘 형태(16)로 표시될 수 있다. In this regard, referring to FIGS. 9 and 10 , the data user device 300 may be provided with an icon 14 for registering homomorphically encrypted user data, and homomorphically encrypted user data and homomorphically encrypted external data. In the combined state, the analysis items 15 available to the data user may be listed. When the data user selects “filter” in the corresponding analysis item 15, two homomorphically encrypted data are combined in the data user device 300, and a sequence to be filtered may be displayed in the form of a visual icon 16. .
S350 단계 이후, 프로세서(320)는 결합 조건에 해당하는 결합 결과만을 복호화하고, 복호화된 결합 결과를 데이터 서버(200)로 송신할 수 있다(S360). 외부 데이터와 이용자 데이터가 동일한 파라미터가 반영된 암호화 키를 이용하여 데이터를 암호화한 바, 데이터 이용자 디바이스(300)는 결합 결과를 자신의 키를 이용하여 복호화할 수 있다. After step S350, the processor 320 may decode only the combining result corresponding to the combining condition and transmit the decoded combining result to the data server 200 (S360). Since external data and user data are encrypted using an encryption key reflecting the same parameters, the data user device 300 can decrypt the combined result using its own key.
즉, 데이터 이용자 디바이스(300)는 외부 데이터, 이용자 데이터의 원본과 그에 따른 결합 결과를 출력하는 것이 아니라, 결합된 결과만을 확인하기 때문에 사용자의 개인정보 일체가 노출되지 않을 수 있다. That is, since the data user device 300 only checks the combined result, rather than outputting the external data and the original user data and the resulting combined result, all of the user's personal information may not be exposed.
다양한 실시예에서, 데이터 이용자 디바이스(300)는 이용자 데이터 없이 외부 데이터만을 처리/분석할 수도 있으며, 이러한 경우, 데이터 제공자 디바이스(100)에서 미리 동형 암호화된 외부 데이터를 활용할 수 있다. In various embodiments, the data user device 300 may process/analyze only external data without user data, and in this case, external data previously homomorphically encrypted in the data provider device 100 may be utilized.
지금까지 본 발명의 일 실시예에 따른 데이터 이용자 디바이스(300)에 대하여 설명하였다. 본 발명에 따르면, 데이터 이용자 디바이스(300)는 사용자 개인정보가 포함된 외부 데이터를 구매하지 않고도, 원하는 분석 과정에 맞게 선택적으로 이용할 수 있다. So far, the data user device 300 according to an embodiment of the present invention has been described. According to the present invention, the data user device 300 can be selectively used according to a desired analysis process without purchasing external data including user personal information.
이하에서는 데이터 제공자 디바이스(100), 데이터 서버(200) 및 데이터 이용자 디바이스(300)를 포함하는 3자 간의 동형 암호화된 데이터 처리 방법을 개략적으로 설명하도록 한다.Hereinafter, a method for processing homomorphic encrypted data between three parties including the data provider device 100, the data server 200, and the data user device 300 will be schematically described.
도 11은 본 발명의 일 실시예에 따른 데이터 처리 방법에 대한 개략적인 순서도이다. 11 is a schematic flowchart of a data processing method according to an embodiment of the present invention.
도 11을 참조하면, 데이터 제공자 디바이스(100)에 의해 처리 가능한 외부 데이터 정보가 등록된 상태에서, 데이터 이용자 디바이스(300)를 통한 데이터 대여 요청이 가능할 수 있다.Referring to FIG. 11 , in a state in which external data information that can be processed by the data provider device 100 is registered, a data rental request may be made through the data user device 300 .
데이터 이용자 디바이스(300)는 데이터 서버(200)로 데이터 처리(분석)을 위한 데이터 대여 요청을 송신할 수 있으며(S1), 이에 대한 응답으로 데이터 처리(분석/결합) 가능한 외부 데이터 목록을 수신할 수 있다(S2). The data user device 300 may transmit a data rental request for data processing (analysis) to the data server 200 (S1), and receive a list of external data capable of data processing (analysis/combination) as a response thereto (S1). It can (S2).
데이터 이용자 디바이스(300)는 결합 인덱스 및 동형 암호화를 위한 파라미터를 생성하고(S3), 이를 포함하는 결합 조건을 데이터 서버(200)로 송신할 수 있다. 데이터 서버(200)는 데이터 이용자 디바이스(300)로부터 수신한 일체의 정보를 데이터 제공자 디바이스(100)로 전달함으로써, 데이터 결합 요청을 송신할 수 있다(S5). The data user device 300 may generate a binding index and parameters for homomorphic encryption (S3), and transmit a combining condition including them to the data server 200. The data server 200 may transmit a data combining request by transferring all information received from the data user device 300 to the data provider device 100 (S5).
아울러, 데이터 서버(200)는 동형 암호화 연산을 위한 동일한 파라미터를 데이터 제공자 디바이스(100) 및 데이터 이용자 디바이스(300)로 제공할 수 있으며(S6), 각자의 디바이스에서 전처리된 외부 데이터 및 이용자 데이터는, 동형 암호화된 상태로 데이터 서버(200)에 전달될 수 있다(S7)(S8). 다만, 여기서, 데이터 대여를 요청한 데이터 이용자 디바이스(300)는 동형 암호화된 이용자 데이터를 데이터 서버(200)에 송신하지 않을 수도 있다. In addition, the data server 200 may provide the same parameters for the homomorphic encryption operation to the data provider device 100 and the data user device 300 (S6), and the external data and user data preprocessed in each device are , can be transmitted to the data server 200 in a homomorphic encrypted state (S7) (S8). However, here, the data user device 300 requesting data rental may not transmit the homomorphically encrypted user data to the data server 200 .
데이터 이용자 디바이스(300)는 데이터 서버(200)로부터 동형 암호화된 외부 데이터를 전달받아(S9), 결합 조건에 따라 동형 암호화된 데이터를 결합한 뒤(S10), 이를 복호화할 수 있다(S11). 실시예에 따라, 데이터 이용자 디바이스(300)는 복호화된 결합 결과를 데이터 서버(200)로 송신할 수 있으며(S12), 데이터 서버(200)는 클라우드 서버(400)에 등록할 수 있다(S13).The data user device 300 may receive homomorphically encrypted external data from the data server 200 (S9), combine the homomorphically encrypted data according to the combining condition (S10), and then decrypt it (S11). According to an embodiment, the data user device 300 may transmit the decrypted combination result to the data server 200 (S12), and the data server 200 may register it with the cloud server 400 (S13). .
이상 첨부된 도면을 참조하여 본 발명의 일 실시예들을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것은 아니고, 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형 실시될 수 있다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.Although one embodiment of the present invention has been described in more detail with reference to the accompanying drawings, the present invention is not necessarily limited to these embodiments, and may be variously modified and implemented without departing from the technical spirit of the present invention. there is. Therefore, the embodiments disclosed in the present invention are not intended to limit the technical idea of the present invention, but to explain, and the scope of the technical idea of the present invention is not limited by these embodiments. Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive. The protection scope of the present invention should be construed according to the claims below, and all technical ideas within the equivalent range should be construed as being included in the scope of the present invention.

Claims (15)

  1. 데이터 이용자 디바이스의 프로세서에 의해 수행되는 동형 암호를 이용한 데이터 처리 방법으로서,A data processing method using homomorphic encryption performed by a processor of a data user device,
    데이터 서버로 데이터 이용자 데이터에 대한 데이터 결합 요청을 송신하는 단계; sending a data combining request for data user data to a data server;
    상기 데이터 결합 요청에 따라, 상기 데이터 서버로부터 결합 가능한 외부 데이터 목록을 수신하는 단계; receiving a list of external data that can be combined from the data server according to the data combining request;
    상기 외부 데이터 목록 중 어느 하나의 외부 데이터와의 결합 조건을 결정하는 단계; determining a combination condition with any one external data from the external data list;
    상기 데이터 서버로부터 암호화된 외부 데이터를 수신하고, 상기 이용자 데이터를 동형 암호화하는 단계; receiving encrypted external data from the data server and homomorphically encrypting the user data;
    상기 암호화된 이용자 데이터와 상기 암호화된 외부 데이터를 상기 결합 조건을 이용하여 결합하는 단계; 및combining the encrypted user data and the encrypted external data using the combining condition; and
    상기 결합 조건에 해당하는 결합 결과만을 복호화하고, 복호화된 결합 결과를 상기 데이터 서버로 송신하는 단계; 를 포함하는, 데이터 처리 방법.decoding only the combining result corresponding to the combining condition and transmitting the decoded combining result to the data server; Including, data processing method.
  2. 제1항에 있어서, According to claim 1,
    상기 결합 조건을 결정하는 단계는, The step of determining the bonding conditions,
    상기 이용자 데이터의 메타 데이터를 이용하여 결합 인덱스를 결정하는 단계, 와Determining a binding index using metadata of the user data; and
    상기 결합 인덱스 및 상기 메타 데이터를 기초로 상기 이용자 데이터를 동형 암호화 연산 가능한 형태로 변환하기 위한 파라미터를 생성하는 단계, 를 더 포함하는 데이터 처리 방법.Generating a parameter for converting the user data into a form capable of performing homomorphic encryption based on the combined index and the meta data;
  3. 제2항에 있어서, According to claim 2,
    상기 결합 인덱스 및 상기 파라미터는, The binding index and the parameter,
    상기 외부 데이터를 제공하는 데이터 제공자 디바이스로 전달되며, It is transmitted to a data provider device providing the external data,
    상기 암호화된 외부 데이터는, The encrypted external data,
    상기 데이터 제공자 디바이스에 의해 상기 결합 인덱스 및 상기 파라미터를 이용하여 암호화된 데이터인, 데이터 처리 방법.and data encrypted using the binding index and the parameter by the data provider device.
  4. 제1항에 있어서, According to claim 1,
    상기 암호화하는 단계는, The encryption step is
    상기 데이터 서버로부터 동형 암호화 연산을 위한 파라미터를 수신하는 단계, 를 더 포함하는 데이터 처리 방법.The data processing method further comprising receiving parameters for homomorphic encryption operation from the data server.
  5. 제1항에 있어서, According to claim 1,
    상기 외부 데이터는, The external data is
    사용자의 개인정보가 포함된 데이터인, 데이터 처리 방법.Data that contains your personal information, how the data are processed.
  6. 데이터 제공자 디바이스의 프로세서에 의해 수행되는 동형 암호를 이용한 데이터 처리 방법으로서, A data processing method using homomorphic encryption performed by a processor of a data provider device, comprising:
    데이터 서버로부터 데이터 이용자의 결합 조건을 포함하는 데이터 결합 요청을 수신하는 단계; Receiving a data combining request including combining conditions of data users from a data server;
    상기 데이터 결합 요청에 대응되는 데이터를 동형 암호화하는 단계; 및Homomorphically encrypting data corresponding to the data combining request; and
    상기 암호화된 데이터를 상기 데이터 서버로 송신하는 단계; 를 포함하는 데이터 처리 방법.transmitting the encrypted data to the data server; Data processing method comprising a.
  7. 제6항에 있어서,According to claim 6,
    상기 데이터 결합 요청은, The data combination request,
    데이터 이용자 디바이스를 통해 등록된 메타 데이터, 결합 인덱스 및 암호화 파라미터를 더 포함하는 데이터 처리 방법.A data processing method further comprising meta data registered through a data user device, a binding index, and an encryption parameter.
  8. 제6항에있어서,According to claim 6,
    상기 암호화하는 단계는, The encryption step is
    상기 데이터 서버로부터 동형 암호화 연산을 위한 파라미터를 수신하는 단계, 를 더 포함하는 데이터 처리 방법.The data processing method further comprising receiving parameters for homomorphic encryption operation from the data server.
  9. 제8항에 있어서, According to claim 8,
    상기 파라미터는, The parameter is
    상기 데이터 결합 요청에 대응되는 데이터 이용자 디바이스로 제공된 파라미터와 동일한 파라미터인, 데이터 처리 방법.The data processing method, which is the same parameter as the parameter provided to the data user device corresponding to the data combination request.
  10. 제6항에 있어서, According to claim 6,
    상기 암호화된 데이터는, The encrypted data is
    사용자의 개인정보가 포함된 데이터인, 데이터 처리 방법.Data that contains your personal information, how the data are processed.
  11. 데이터 서버의 프로세서에 의해 수행되는 동형 암호를 이용한 데이터 처리 중개 방법으로서,As a data processing mediation method using homomorphic encryption performed by a processor of a data server,
    데이터 제공자 디바이스를 통해 데이터 처리 가능한 외부 데이터를 획득하는 단계; acquiring external data capable of data processing through a data provider device;
    데이터 이용자 디바이스로부터 결합 조건을 포함하는 데이터 결합 요청을 수신하는 단계; Receiving a data combination request including a combination condition from a data user device;
    상기 외부 데이터 중 상기 결합 조건에 따라 결합 가능한 외부 데이터 목록을 결정하는 단계; determining a list of external data that can be combined according to the combining condition among the external data;
    결합될 외부 데이터를 제공하는 데이터 제공자 디바이스로 상기 데이터 결합 요청을 전달하는 단계;forwarding the data combining request to a data provider device providing external data to be combined;
    상기 데이터 제공자 디바이스로부터 동형 암호화된 외부 데이터를 수신하고, 상기 동형 암호화된 외부 데이터를 상기 데이터 이용자 디바이스로 송신하는 단계; 및receiving homomorphically encrypted external data from the data provider device and transmitting the homomorphically encrypted external data to the data user device; and
    상기 데이터 이용자 디바이스로부터 상기 결합 조건에 대응되는 데이터의 복호화된 결합 결과를 수신하는 단계; 를 포함하는 데이터 처리 중개 방법.receiving a decrypted combining result of data corresponding to the combining condition from the data user device; A data processing mediation method comprising a.
  12. 제11항에 있어서, According to claim 11,
    상기 데이터 결합 요청을 전달하는 단계 이후에, After sending the data combination request,
    상기 데이터 이용자 디바이스 및 상기 데이터 제공자 디바이스로 동형 암호화 연산을 위한 동일한 파라미터를 송신하는 단계, 를 더 포함하는 데이터 처리 중개 방법.Transmitting the same parameter for a homomorphic encryption operation to the data user device and the data provider device.
  13. 제12항에 있어서,According to claim 12,
    상기 데이터 결합 요청을 전달하는 단계는, The step of transmitting the data combination request,
    상기 결합 조건과 함께 데이터 이용자의 메타 데이터, 결합 인덱스 및 파라미터를 전달하는 단계인, 데이터 처리 중개 방법.A step of transmitting metadata, a binding index, and parameters of a data user together with the binding condition, a data processing mediation method.
  14. 제11항에 있어서, According to claim 11,
    상기 복호화된 결합 결과를 수신하는 단계는, Receiving the decrypted combination result,
    상기 데이터 제공자 디바이스로 상기 복호화된 결합 결과를 전달하는 단계, 를 더 포함하는 데이터 처리 중개 방법.Transmitting the decrypted combination result to the data provider device, Data processing mediation method further comprising.
  15. 제11항에 있어서,According to claim 11,
    상기 동형 암호화된 각각의 데이터는, Each of the homomorphically encrypted data,
    사용자의 개인정보가 포함된 데이터인, 데이터 결합 중개 방법.A method of intermediary data binding, which is data containing the user's personal information.
PCT/KR2022/019463 2021-12-30 2022-12-02 Method and system for processing homomorphic encrypted data WO2023128340A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2021-0192462 2021-12-30
KR1020210192462A KR102401485B1 (en) 2021-12-30 2021-12-30 Method and system for processing homomorphic encrypted data

Publications (1)

Publication Number Publication Date
WO2023128340A1 true WO2023128340A1 (en) 2023-07-06

Family

ID=81806658

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/019463 WO2023128340A1 (en) 2021-12-30 2022-12-02 Method and system for processing homomorphic encrypted data

Country Status (2)

Country Link
KR (1) KR102401485B1 (en)
WO (1) WO2023128340A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102401485B1 (en) * 2021-12-30 2022-05-24 주식회사 디사일로 Method and system for processing homomorphic encrypted data

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180136267A (en) * 2017-06-14 2018-12-24 한국스마트인증 주식회사 Method for Protecting Personal Data Using Homomorphic Encryption
US20190280880A1 (en) * 2018-12-21 2019-09-12 Alibaba Group Holding Limited Blockchain data protection based on generic account model and homomorphic encryption
KR20210064675A (en) * 2019-11-26 2021-06-03 주식회사 더블체인 Security system for data trading and data storage based on block chain and method therefor
KR20210104655A (en) * 2020-02-14 2021-08-25 구글 엘엘씨 Securing multi-party reach and frequency estimation
KR102303253B1 (en) * 2021-03-15 2021-09-17 주식회사 에프원시큐리티 System for managing did for blockchain platform user
KR102401485B1 (en) * 2021-12-30 2022-05-24 주식회사 디사일로 Method and system for processing homomorphic encrypted data

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5412414B2 (en) * 2010-12-08 2014-02-12 株式会社日立製作所 Searchable cryptographic processing system
KR101622703B1 (en) * 2015-09-25 2016-05-23 거창군 Real estate appraisal system having administration convenience function
KR101884776B1 (en) * 2016-08-30 2018-08-02 숭실대학교산학협력단 Method and system for transporting patient information
KR102219305B1 (en) * 2018-05-18 2021-02-24 변상구 System for protecting personal stored file securely in cloud environment

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180136267A (en) * 2017-06-14 2018-12-24 한국스마트인증 주식회사 Method for Protecting Personal Data Using Homomorphic Encryption
US20190280880A1 (en) * 2018-12-21 2019-09-12 Alibaba Group Holding Limited Blockchain data protection based on generic account model and homomorphic encryption
KR20210064675A (en) * 2019-11-26 2021-06-03 주식회사 더블체인 Security system for data trading and data storage based on block chain and method therefor
KR20210104655A (en) * 2020-02-14 2021-08-25 구글 엘엘씨 Securing multi-party reach and frequency estimation
KR102303253B1 (en) * 2021-03-15 2021-09-17 주식회사 에프원시큐리티 System for managing did for blockchain platform user
KR102401485B1 (en) * 2021-12-30 2022-05-24 주식회사 디사일로 Method and system for processing homomorphic encrypted data

Also Published As

Publication number Publication date
KR102401485B1 (en) 2022-05-24

Similar Documents

Publication Publication Date Title
JP3610341B2 (en) Network device and remote control relay server
WO2014069777A1 (en) Transit control for data
WO2023128345A1 (en) Personal identification method and system using homomorphically encrypted image
WO2013054993A1 (en) Integrated authentication system using electronic contract
US20120331566A1 (en) Capturing and manipulating content using biometric data
WO2013191325A1 (en) Method for authenticating trusted platform-based open id, and apparatus and system therefor
WO2017190561A1 (en) Method for realizing password inputting by means of virtual keyboard, terminal, server, system and storage medium
WO2017122980A1 (en) Electronic device and method for authenticating identification information thereof
WO2023128342A1 (en) Method and system for identifying individual using homomorphically encrypted voice
WO2023128340A1 (en) Method and system for processing homomorphic encrypted data
WO2015101332A1 (en) Password classification management method and system
WO2018035929A1 (en) Method and apparatus for processing verification code
WO2016186325A1 (en) Social network service system and method using image
WO2013183818A1 (en) Method and system for message service in multi-device environment, and apparatus therefor
WO2016137185A1 (en) Electronic device and method for providing drm content by the electronic device
WO2015111926A1 (en) Electronic device and user interface display method for the same
WO2018169150A1 (en) Locked screen-based user authentication system and method
WO2016200058A1 (en) Binary merging device, method, and computer program
WO2015105289A1 (en) User security authentication system and method therefor in internet environment
WO2012053875A2 (en) Apparatus and system for transceiving data through fingerprint information
WO2019164264A1 (en) Electronic apparatus and operating method thereof
WO2020190099A1 (en) Electronic device for managing personal information and operating method thereof
WO2023128341A1 (en) Method and system for fraudulent transaction detection using homomorphically encrypted data
WO2015099287A1 (en) Method for authenticating user by using one-time password, and device therefor
WO2016093652A2 (en) Family album service providing method for enabling family album to be used by enabling family members to access cloud server through telephone number

Legal Events

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

Ref document number: 22916486

Country of ref document: EP

Kind code of ref document: A1