WO2019124770A1 - 단말 장치 및 단말 장치의 제어 방법 - Google Patents

단말 장치 및 단말 장치의 제어 방법 Download PDF

Info

Publication number
WO2019124770A1
WO2019124770A1 PCT/KR2018/014392 KR2018014392W WO2019124770A1 WO 2019124770 A1 WO2019124770 A1 WO 2019124770A1 KR 2018014392 W KR2018014392 W KR 2018014392W WO 2019124770 A1 WO2019124770 A1 WO 2019124770A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
terminal device
model
behavior data
server
Prior art date
Application number
PCT/KR2018/014392
Other languages
English (en)
French (fr)
Inventor
서재우
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US16/760,653 priority Critical patent/US11341253B2/en
Publication of WO2019124770A1 publication Critical patent/WO2019124770A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Definitions

  • the present invention relates to a control method for a terminal device and a terminal device, and more particularly, to a control method for a terminal device and a terminal device constituting a machine learning system.
  • Machine learning is a field of artificial intelligence (AI) technology, and is a modeling technique for generating models using data. Since modeling based on machine learning requires large amount of data and high computation amount collected over a certain period of time, it is common to learn through server rather than terminal device.
  • AI artificial intelligence
  • a machine learning server In particular, in a system in which a machine learning-based model is generated and utilized using data collected in a terminal device, a machine learning server generates a model using data collected from the terminal device. At this time, Can be a problem.
  • the server learns system call data received from the terminal device, behavior), and transmits the generated model to the terminal device.
  • the terminal device can detect the abnormal behavior of the user by comparing the model received from the server with the system call generated according to the operation of the terminal device of the user.
  • the server may analyze the system call data at any time to know what the user is doing through the terminal device, so the privacy of the terminal device user may be a problem.
  • a system call data encryption method can be considered.
  • a system call is encrypted through a probabilistic encryption scheme
  • the same system call is encrypted with another cipher text
  • a method of controlling a terminal device comprising the steps of: receiving, by a data type of action data generated as a user operates the terminal device, Generating a cipher text by encrypting the action data so that the same type of action data of the determined number is encrypted with different ciphertexts; transmitting the generated ciphertext to an external server; And monitoring the operation of the terminal device based on the received model when a model of the learned behavior data is received based on the received model.
  • the step of determining may include: obtaining statistical data on the frequency of occurrence of the behavior data by data type, and generating each cipher text when each of the behavior data types on the obtained statistical data is encrypted with at least one cipher text And determining the number of ciphertexts for each data type as the number of different ciphertexts so that the frequency count can be a predetermined frequency.
  • the predetermined number of frequencies may be different from the frequency of occurrence of the behavior data for each data type on the statistical data.
  • the step of monitoring may include generating ciphertext by encrypting behavior data generated after receiving the model so that the same type of behavior data of the determined number of units is encrypted with the different ciphertext, And comparing the cipher text with the model to monitor the operation of the terminal apparatus.
  • the generating step may sequentially encrypt the generated action data using a deterministic encryption scheme.
  • the behavior data may be learning data used by the external server for machine learning to generate the model.
  • the behavior data may include call data of a system call function provided by an operating system of the terminal device or data related to an operation performed by the terminal device, Or a model related to the operation pattern of the terminal apparatus.
  • the method may further include updating the model to a predetermined period.
  • the terminal device includes a communication unit for communicating with an external server and a plurality of different ciphertexts to be encrypted according to a data type of action data generated as a user operates the terminal device Encrypts the action data so that the same type of action data of the determined number of units is encrypted with different ciphertexts to generate a ciphertext, transmits the generated ciphertext to an external server, and performs learning based on the sent ciphertext And a processor for monitoring the operation of the terminal device based on the received model when a model for the behavior data is received.
  • the processor may obtain statistical data on the number of occurrences of the behavior data by data type, and when each of the behavior data types on the obtained statistical data is encrypted with at least one cipher text, It is possible to determine the number of ciphertexts for each data type as the number of ciphertexts that are different from each other.
  • the predetermined number of frequencies may be different from the frequency of occurrence of the behavior data for each data type on the statistical data.
  • the processor may generate the ciphertext by encrypting the action data generated after receiving the model so that the same type of behavior data of the determined number of units is encrypted with the different ciphertexts, It is possible to monitor the operation of the terminal device in comparison with the model.
  • the processor may sequentially encrypt the generated action data using a deterministic encryption scheme.
  • the behavior data may be learning data used by the external server for machine learning to generate the model.
  • the behavior data may include call data of a system call function provided by an operating system of the terminal device or data related to an operation performed by the terminal device, Or a model related to the operation pattern of the terminal apparatus.
  • the processor may update the model with a predetermined period.
  • the control method includes: Generating a cipher text by encrypting the action data so that the same type of action data of the determined number of units is encrypted with different ciphertexts; Transmitting the generated ciphertext to an external server, and monitoring a behavior of the terminal based on the received model when a model of the learned behavior data is received based on the sent ciphertext.
  • FIG. 1 is an illustration of an example machine learning system in accordance with an embodiment of the present disclosure
  • FIG. 2 is a block diagram of a terminal device according to an embodiment of the present disclosure
  • FIG. 3 is a diagram for illustrating frequency attack and uniform sampling and deterministic encryption according to one embodiment of the present disclosure
  • FIG. 4 is a detailed block diagram of a terminal device according to one embodiment of the present disclosure.
  • FIG. 5 is a diagram for explaining the operation of the machine learning system according to an embodiment of the present disclosure in a module unit
  • FIG. 6 is a flowchart illustrating an operation of a terminal device according to an embodiment of the present disclosure.
  • the expressions "having,” “having,” “including,” or “including” may be used to denote the presence of a feature (eg, a numerical value, a function, an operation, Quot ;, and does not exclude the presence of additional features.
  • expressions such as “A or B,” “ at least one of A and / or B, “or” one or more of A and / or B “, may include all possible combinations of the listed items .
  • “A or B,” “at least one of A and B,” or “at least one of A or B” includes (1) at least one A, (2) Or (3) at least one A and at least one B all together.
  • first,” “second,” “first,” or “second,” etc. may modify various components, But is used to distinguish it from other components and does not limit the components.
  • any such element may be directly connected to the other element or may be connected through another element (e.g., a third element).
  • a component e.g., a first component
  • another component e.g., a second component
  • there is no other component e.g., a third component
  • a processor configured (or configured) to perform the phrases "A, B, and C” may be implemented by executing one or more software programs stored in a memory device or a dedicated processor (e.g., an embedded processor) , And a generic-purpose processor (e.g., a CPU or an application processor) capable of performing the corresponding operations.
  • a machine learning system 10 includes a terminal device 100 and a server 200.
  • the terminal device 100 may be a smart TV, a tablet PC, a laptop computer, a digital photo frame, an LFD (Digital Photo Frame) A large format display, a tablet type display, a PDA, an electronic organizer, a smart refrigerator, a washing machine, a vacuum cleaner, a sound bar, a door lock, a radiator, a router, a microwave oven and the like.
  • a server 200 is shown in FIG. 1, a plurality of servers may perform an operation of the server 200 described below.
  • the terminal device 100 may transmit the behavior data of the user to the server 200.
  • the user's action data is data generated in the terminal device 100 as the user operates the terminal device 100, and is data related to the user's action through the terminal device 100.
  • the behavior data may include data relating to a system call that is called from an operating system of the terminal device 100 as the user operates the terminal device 100, And data related to operations performed by the terminal device 100 generated by operating the terminal device 100.
  • the present invention is not limited thereto.
  • the operation of the user for generating the behavior data includes a power ON / OFF operation of the terminal device 100, an application installation, execution, use or termination operation, a screen turn operation, a web page search operation, And all kinds of operations that can be performed by the user through the terminal device 100, for example. It is needless to say that the operations that can be performed by the user may vary depending on the type of the terminal device 100.
  • the terminal device 100 may transmit the behavior data to the server 200 whenever the behavior data is generated or may transmit the behavior data to the server 200 according to a predetermined unit of time or an operation unit according to the user operation.
  • the terminal device 100 may transmit data regarding the called system call to the server 200 each time a system call is called according to a user operation,
  • the data related to the called system call may be collected in an operation unit according to a predetermined time unit or a user operation and transmitted to the server 200.
  • the terminal apparatus 100 transmits data relating to the generated operation each time data relating to the operation of the terminal apparatus 100 is generated, 200 or may transmit data on the operation details of the terminal device 100 to the server 200 in a predetermined time unit.
  • the server 200 may generate machine learning models of behavior data received from the terminal device 100.
  • the model may be a model that is generated as a result of the server 200 learning the action data as learning data, and the model in which the server 200 is generated depending on which data is learned in what time unit.
  • the server 200 when the server 200 learns a system call that is called from the terminal device 100, the server 200 generates a model related to a pattern of a system call that is called when the terminal device 100 operates . In addition, when the server 200 learns data on the operation performed by the terminal device 100, the server 200 can generate a model related to the operation pattern of the terminal device 100.
  • the server 200 performs the calling A model for each behavior data can be generated by learning data at a predetermined time (for example, one day, three hours, etc.).
  • the server 200 may learn the behavior data received from the terminal device 100, update the model, and provide the updated model to the terminal device 100.
  • the update period may be set by the designer of the system 10 or the user of the terminal device 100.
  • the details of the server 200 learning the behavior data to create or update the model are not related to the gist of the present disclosure, and the description thereof will be omitted.
  • the server 200 transmits the generated model to the terminal device 100 and the terminal device 100 can perform various operations according to the model received from the server 200.
  • the terminal device 100 compares the currently received system call with the model received from the server 200 according to the operation of the terminal device 100, The abnormal operation of the terminal device 100 can be detected or monitored.
  • the terminal device 100 When the terminal device 100 receives the model related to the pattern in which the terminal device 100 operates, the terminal device 100 transmits data relating to the operation currently performed by the terminal device 100 (or the operation of the terminal device 100 of the current user) And the received model from the server 200 to detect or monitor an abnormal operation of the user or abnormal operation of the terminal device 100.
  • the operation that can be performed based on the model received by the terminal device 100 from the server 200 is not limited to the abnormal operation of the user or the abnormal operation of the terminal device 100, The operation of the terminal device 100 can be changed depending on which model is received through the learning of the terminal device 100.
  • the terminal device 100 transmits the action data to the server 200, and the server 200 receives the action data from the terminal device 200
  • the action data is transmitted through the terminal device 100.
  • the action data may be leaked in the process or the server 200, and the privacy of the user of the terminal device 100 may be infringed. For example, if the operator of the server 200 wishes to do so, he / she can analyze the behavior data at any time and know what the user of the terminal device 200 is doing.
  • the server 200 learns the behavior data It is impossible to create a meaningful model even if it becomes impossible or even learns. Also, when the terminal device 100 encrypts and transmits the behavior data to the server 200 through a deterministic encryption scheme that encrypts the same behavior data with the same ciphertext, when the server 200 learns ciphertext A frequency attack on the ciphertext can still be performed. Therefore, the privacy problem of the user of the terminal device 100 remains.
  • a system call is called in the order of read-read-write-open-read-open-write-open-read-read while the terminal device 100 operates according to a user's operation, Lt; / RTI > At this time, if the terminal device 100 encrypts the upper system call with the stochastic encryption method, the same system call is encrypted with different ciphertext, so that even if the server 200 can not learn the system call or learns, do.
  • the server 200 can learn a system call and generate a meaningful model. For example, if read is encrypted with 232 # $, write with 235 *, open with a, & &, the above system calls will be 232 # $ - 232 # $ - 235 * - a, the server 200 encrypts the ciphertext received from the terminal device 100 and transmits the ciphertext received from the terminal 200 to the server 200. [ Thereby generating a model related to the pattern of the system call. In other words, the server 200 can learn the pattern of the ciphertext even though 232 # $ is read, 235 * is write, and a and & / are open. .
  • the server 200 can find out what kind of system call is encrypted with the cipher text, the server 200 can still use the user's privacy through the server 200 This can be a problem.
  • the server 200 can know which cipher text has been encrypted with which cipher text by using statistical data on the frequency of occurrence of each type of system call that is called when the user uses the terminal device 100.
  • ciphertexts received from the terminal device 100 are constantly accumulated in the server 200.
  • Simply encrypting a system call with a deterministic cryptosystem means encrypting the same type of system call with the same ciphertext, so that the frequency of the type of ciphertext that is accumulated constantly follows the statistical data. Therefore, the server 200 compares the frequency of the stored cipher text with the frequency of the type of the system call on the statistical data, so that the server 200 can know which cipher text the system call is encrypted with.
  • the server 200 can know that the read is encrypted at 232 # $, the write is encrypted at 235 *, and the open is encrypted at a and & /. In this way, using the general statistical data on the frequency of each type of data, it is called frequency attack to find out which data is encrypted with certain ciphertext.
  • the server 200 can perform the frequency attack using the statistical data, so that the behavior data of the user of the terminal device 100 is still insecure.
  • the server 200 can learn the behavior data without a problem (such as hacking or frequency attack) of the user.
  • the terminal device 100 includes a communication unit 110 and a processor 120.
  • the communication unit 110 can perform communication with various types of external devices according to various types of wired and wireless communication methods.
  • the communication unit 110 can perform communication with the server 200 under the control of the processor 120.
  • the server 200 may be a machine learning server that receives and learns action data from the terminal device 100 and generates a model.
  • the communication unit 110 may communicate with a separate server that provides statistical data regarding the frequency of occurrence of each type of behavior data.
  • the server 200 may provide the statistical data to the terminal device 100 according to the embodiment.
  • the processor 120 controls the overall operation of the terminal device 100.
  • the processor 120 may generate behavior data as the user operates the terminal device 100.
  • the processor 120 may generate data relating to a system call function that is called as the user operates the terminal device 100.
  • the terminal device 100 equipped with an operating system calls a system call function supported by the operating system every time the terminal device 100 operates according to the user's operation.
  • the processor 120 determines whether the terminal device 100 operates You can generate data about the system call function that is called each time.
  • the processor 120 generates data relating to the system call function, which may be that the processor 120 separately generates data for the called system call function.
  • the processor 120 may invoke the system call function in accordance with the operation of the terminal device 100, and the processor 120 may be included in generating the data related to the system call function.
  • the type and order of the called system call function may vary depending on the type of operation performed by the terminal device 100.
  • the processor 120 may generate data related to an operation performed by the terminal device 100 generated as a user operates the terminal device 100.
  • the terminal device 100 operates accordingly, and the processor 120 can generate data on the details of the operation of the terminal device 100.
  • the data related to the operation performed by the terminal device 100 includes data such as power on, power off, application installation, execution, use, termination, page switching, web page access, Data regarding all sorts of operations that device 100 may perform may be included.
  • the processor 120 may encrypt the behavior data generated in the terminal device 100 with different numbers of ciphertexts according to the data types of the behavior data.
  • the processor 120 may use a deterministic encryption method.
  • the deterministic cryptosystem means a cryptosystem which is always encrypted with the same ciphertext even if the same data is separately encrypted.
  • the processor 120 may determine the number of different ciphertexts to be encrypted with the action data, and generate the ciphertext by encrypting the action data so that the same type of action data of the determined number of units is encrypted with different ciphertexts.
  • the processor 120 may uniformly sample the behavior data to generate a cipher text.
  • the uniform sampling means that the processor 120 divides and encrypts the behavior data so that the frequency of each type of ciphertext to be stored in the server 200 has a uniform distribution.
  • the processor 120 may use statistical data relating to the frequency of occurrence of behavior data by data type.
  • the frequency attack when a large number of ciphertexts encrypted with the action data are accumulated, the number of occurrences of the ciphertexts depends on the statistical data on the number of occurrences of the action data, It is impossible to perform frequency attack if the behavior data is encrypted so that the frequency of the accumulated ciphertext is different from the statistical data even if the ciphertext is accumulated.
  • processor 120 may be configured to cause the number of occurrences of each type of ciphertext to be equal if all of the behavior data types on the statistical data that may be used for frequency attack are encrypted with at least one ciphertext And generates the ciphertext by encrypting the action data generated by the terminal device 100 such that the same type of action data of the determined number of units is encrypted with different ciphertexts, Even if the cipher text transmitted by the server 100 is accumulated in the server 200, the frequency attack can be disabled.
  • 3 is a diagram for explaining frequency attack and uniform sampling and deterministic encryption according to one embodiment of the present disclosure; 3, only the read, write, and open functions of the system call function are called according to the operation of the terminal device 100. However, this is for convenience of explanation, and the type of the system call is limited to this Of course not.
  • FIG. 3 (a) shows statistical data concerning frequency counts for each type of system call.
  • the system call which is called while the terminal device 100 is operated according to the user's operation may be different in kind and order from one operation to another. However, when a large amount of data is accumulated and the statistics are calculated, the call frequency of the system call converges at a relatively constant rate.
  • FIG. 3 (a) shows statistical data called read, write, open at a ratio of 5: 2: 3.
  • 3 (b) is a diagram for explaining a frequency attack. If the terminal 200 encrypts the system call with a deterministic encryption method, that is, if the terminal 200 encrypts the system call with, for example, read a, write b, and open c, The number of ciphertexts stored in the server 200 can be increased by a, b, c (c) as shown in FIG. 3 (b) And a ratio of 5: 2: 3.
  • the server 200 compares the accumulated frequency of the cipher text with the statistical data shown in FIG. 3 (a), so that a is read, b is write, c is open, respectively. Since it is known what system calls are called in accordance with the operation of the terminal device 100, if the server 200 can know which system call each of the cipher texts is encrypted, It is possible to know what operation the terminal device 100 is performing from the cipher text and the privacy of the user of the terminal device 100 becomes a problem.
  • FIG. 3 (c) shows the frequency counts of the types of ciphertexts stored in the server 200 when the system calls are uniformly sampled and encrypted according to an embodiment of the present disclosure.
  • the processor 120 uses the statistical data as shown in FIG. 3 (a) to determine whether the number of ciphertexts to be accumulated in the server 200 is equal to the number of ciphertexts The number can be determined.
  • the processor 120 determines the number of ciphertexts for each type of system call that makes the frequencies of the ciphertexts constant, when read, write, and open on the statistical data as shown in Fig. 3 (a) .
  • read, write and open have a ratio of 5: 2: 3. Therefore, when five reads, two writes, and open are encrypted with three different ciphertexts, The number of ciphertexts can be expected to be constant.
  • the processor 120 determines 5, 2, or 3 as the number of different ciphertexts to be encrypted by the system call read, write, and open, and determines that the system call of the same type in the determined number of units is different from the ciphertext
  • the system call can be encrypted so as to be encrypted so as to generate a cipher text.
  • the server 200 can perform the same operation as that of the server 200, The cipher text received from the terminal device 100 can be learned and a meaningful model can be generated.
  • the operation of the processor 120 is described with reference to the system call data in FIG. 3, it is needless to say that the embodiment is not limited thereto.
  • data related to operations for example, power-on, power-off, web page access, application execution, page turning, image capture, etc.
  • the server 200 Can learn and generate a model.
  • the statistical data on the operation performed by the terminal device 100 is known, a frequency attack is possible despite the encryption of the behavior data.
  • the processor 120 can perform the operations performed by the terminal device 100, which is generated in the terminal device 100, based on the statistical data on the operations performed by the terminal device 100 And encrypts the uniformly sampled data with a deterministic cryptosystem so that the server 200 can generate a model without the possibility of a frequency attack.
  • the embodiment is not limited to the embodiment in which the processor 120 determines the number of different ciphertexts in which the behavior data is to be encrypted for each type of behavior data. As described above, even if ciphertexts are stored in the server 200, frequency attacks can not be performed if the behavior data is encrypted so that the frequency of the accumulated ciphertexts differs from the statistical data. Accordingly, the processor 120 may determine the number of ciphertexts such that the number of ciphertexts stored in the server 200 is different from the statistical data, as the number of different ciphertexts to be encrypted There will be.
  • the above-described statistical data may be stored in the terminal device 100 when the terminal device 100 is manufactured.
  • the present invention is not limited to this, and it may be that the processor 120 receives or updates the statistical data from the server through the communication unit 110.
  • the processor 120 may calculate statistical data for determining the number of ciphertexts using the behavior data stored in the terminal device 100, according to an embodiment.
  • the processor 120 may transmit the cipher text generated by encrypting the behavior data to the server 200 through the communication unit 110, as described above.
  • the server 200 can learn a cipher text received from the terminal device 100 and generate a model. For example, the server 200 can learn a system call and generate a model related to a pattern of a system call that is called when the terminal device 100 operates. In addition, the server 200 may learn data related to the operation performed by the terminal device 100 to generate a model related to the operation pattern of the terminal device 100. [ The description of the operations of the server 200 that are the same as those of FIG. 1 will be omitted.
  • the server 200 transmits the generated model to the terminal device 100.
  • the terminal device 100 can receive the model in which the behavior data is learned, more precisely, the model in which the cipher text is learned from the server 200.
  • the processor 120 can perform various operations based on the received model.
  • the processor 120 may monitor the operation of the terminal device 100 based on the received model when a model of the behavior data learned in the server 200 is received based on the transmitted cipher text. Specifically, the processor 120 may monitor the operation of the terminal apparatus 100 by comparing the model received from the server 200 with the currently generated behavior data.
  • the processor 120 transmits a system call, which is called according to the current operation of the terminal apparatus 100, The abnormal operation of the terminal device 100 or abnormal operation of the user can be monitored.
  • the model related to the pattern of the system call received from the server 200 is generated by the server 200 by learning the data related to the called system call as the user normally operates the terminal device 100 before generating the corresponding model It is. Therefore, for example, when the terminal device 100 is stolen or lost, the system call that is called by the other person operating the terminal device 100 in an abnormal case, such as when the terminal device 100 is used by another person,
  • the processor 120 may compare the model and the system call to detect an abnormal operation of the terminal device 100 or an abnormal operation of the user.
  • the processor 120 compares the received model with the data relating to the operation currently performed by the terminal apparatus 100 to determine whether or not the terminal apparatus 100 has abnormality of the terminal apparatus 100 It is needless to say that it is possible to monitor the operation or the abnormal operation of the user.
  • the processor 120 since the model received from the server 200 by the terminal device 100 is a model in which the cipher text is learned, the processor 120 must encrypt the currently generated action data in the same manner as described above, and compare with the model. Accordingly, the processor 120 encrypts the behavior data generated by the terminal device 100 after receiving the model so that the same type of behavior data of the different number of ciphertexts determined as described above is encrypted with different ciphertexts, And compare the generated ciphertext with the model.
  • the server 200 learns the behavior data (specifically, the cipher text in which the behavior data is encrypted) to generate a model, and transmits the generated model to the terminal device 100.
  • the embodiment is not limited thereto.
  • the server 200 may learn the behavior data (specifically, the cipher text in which the behavior data is encrypted) to generate the machine learning parameters necessary for the terminal device 100 to generate the model.
  • the processor 120 can generate a model based on the received parameter, and monitor the operation of the terminal device 100 as described above based on the generated model.
  • the terminal device 100 includes a communication unit 110, a processor 120, a display 130, a user input unit 140, and a storage unit 150.
  • the terminal device 100 includes a communication unit 110, a processor 120, a display 130, a user input unit 140, and a storage unit 150.
  • Each of the configurations shown in FIG. 4 is not necessarily included in the terminal device 100 ', and some configurations may be omitted or other configurations may be further included depending on the type of the terminal device 100'. In the following description of FIG. 4, duplicate descriptions of the same components as those described above are omitted.
  • the communication unit 110 can communicate with various external devices to transmit and receive various information.
  • the communication unit 110 transmits a cipher text encrypted with behavior data generated in the terminal device 100 'to the server 200, and transmits a model of the learned behavior data to the server 200 based on the transmitted cipher text .
  • the communication unit 110 may also receive statistical data related to the frequency of occurrence of the behavior data from the server 200 or a separate server that manages the statistical data.
  • the communication unit 110 may include at least one of a short-range wireless communication module (not shown) and a wireless LAN communication module (not shown).
  • a short-range wireless communication module is a communication module that performs data communication wirelessly with an external device located in a short distance.
  • the short-range wireless communication module includes a Bluetooth module, a ZigBee module, An infrared communication module, and the like.
  • a wireless LAN communication module is a module connected to an external network according to a wireless communication protocol such as WiFi, IEEE, or the like to communicate with an external server or external device.
  • the communication unit 110 further includes a mobile communication module for performing communication by accessing a mobile communication network according to various mobile communication standards such as 3rd Generation (3G), 3rd Generation Partnership Project (3GPP), and Long Term Evolution And can be used in accordance with communication standards such as HDMI (High-Definition Multimedia Interface), USB (Universal Serial Bus), IEEE (Institute of Electrical and Electronics Engineers) 1394, RS-232, RS-422, RS- And may further include a wired communication module (not shown).
  • 3G 3rd Generation
  • 3GPP 3rd Generation Partnership Project
  • Long Term Evolution And can be used in accordance with communication standards such as HDMI (High-Definition Multimedia Interface), USB (Universal Serial Bus), IEEE (Institute of Electrical and Electronics Engineers) 1394, RS-232, RS-422, RS- And may further include a wired communication module (not shown).
  • HDMI High-Definition Multimedia Interface
  • USB Universal Serial Bus
  • IEEE Institute of Electrical and Electronics Engineers 1394
  • the display 130 can display various images or screens according to the type of the terminal device 100 '.
  • the image may be an image in various formats such as text, still image, moving image, icon, GUI (Graphic User Interface), OSD (On Screen Display)
  • the display 130 may include various types of displays such as a liquid crystal display (LCD), an organic light emitting diode (OLED), an active matrix organic light-emitting diode (AM-OLED), a plasma display panel Can be implemented.
  • LCD liquid crystal display
  • OLED organic light emitting diode
  • AM-OLED active matrix organic light-emitting diode
  • plasma display panel Can be implemented.
  • the user input unit 140 may receive various user commands for operating the terminal device 100 '.
  • the user input unit 140 includes a microphone for receiving a user's voice, a push-type button for receiving a push operation of a user, a touch panel for receiving a user touch operation, a jog switch operable in a plurality of directions, An image sensor, a motion sensor for detecting movement of a user, and the like, but the present invention is not limited thereto.
  • the touch panel may include a touch screen having a mutual layer structure with the display 130.
  • the storage unit 150 stores various programs and data.
  • the storage unit 150 may store statistical data related to the frequency of occurrence of the action data.
  • the storage unit 150 may store an operating system (OS) for performing operations of the terminal device 100 'and various programs.
  • the storage unit 150 may include a random access memory (RAM), a read only memory (ROM), a solid state disk (SSD), a flash memory, a hard disk or an optical disk.
  • the storage unit 150 may be implemented as a cloud server or the like.
  • the camera unit captures an image of the outside of the terminal device 100 'according to a user operation.
  • the camera unit may include various image sensors, lenses, and the like.
  • the processor 120 controls the overall operation of the terminal device 100 '.
  • the processor 120 may control the terminal device 100 'to perform the operations of the processor 120 described above with reference to FIGS.
  • the processor 120 may operate an operating system or an application program to control hardware or software components connected to the processor 120, and may perform various data processing and calculations.
  • the processor 120 may load and process instructions or data received from at least one of the other components into a volatile memory and store the various data in a non-volatile memory.
  • Processor 120 may be implemented as a generic-purpose processor (e.g., a microprocessor, microprocessor, etc.) capable of performing the corresponding operations by executing one or more software programs stored in a memory device CPU or application processor).
  • a generic-purpose processor e.g., a microprocessor, microprocessor, etc.
  • the processor 120 may include a RAM 121, a ROM 122, a GPU 123, a main CPU 124 and first to nth interfaces 125-1, ..., 125-n .
  • the RAM 121, the ROM 122, the GPU 123, the main CPU 124 and the first to nth interfaces 125-1 to 125-n are connected to each other via a bus 126 .
  • the main CPU 124 accesses the storage unit 150 and performs booting using an operating system (O / S) stored in the storage unit 150.
  • the main CPU 124 can perform various operations using various programs stored in the storage unit 150, contents, data, and the like.
  • the ROM 122 stores a command set for booting the system and the like.
  • the main CPU 124 copies the O / S stored in the storage unit 140 to the RAM 121 according to the instruction stored in the ROM 122, executes O / S Boot the system.
  • the main CPU 124 copies various programs stored in the storage unit 150 to the RAM 121, executes programs copied to the RAM 121, and performs various operations.
  • the GPU 123 can generate a screen including various objects such as an icon, an image, text, and the like.
  • FIG. 5 is a diagram for explaining the operation of the machine learning system according to an embodiment of the present disclosure by dividing it into modules.
  • a terminal apparatus 100 includes a system 510, a behavior data collector 520, a deterministic encryption and uniform sampling unit 530, A training requestor 540 and an anomaly detector 550.
  • the server 200 includes a machine learning trainer 560 and a behavior data database (DB) 570.
  • DB behavior data database
  • the system 510 is a configuration for generating action data according to the operation of the terminal device 100 '.
  • the system 510 may be, but is not limited to, an operating system, middleware, or various applications.
  • the system 510 may provide a system call function that is called as the user operates the terminal device 100 ', or may generate data regarding the operations performed by the terminal device 100'.
  • the behavior data collection unit 520 collects behavior data every time the behavior data is generated in the system 510 or in a predetermined period.
  • the deterministic encryption and uniform sampling unit 530 uniformly samples and deterministically encrypts the behavior data collected by the behavior data collection unit 520 as described above to generate a cipher text.
  • AES Advanced Encryption Standard
  • DES Data Encryption Standard
  • the learning request unit 540 may transmit the ciphertext generated by the deterministic encryption and uniformity sampling unit 530 to the server 200 whenever a ciphertext is generated or at a predetermined period.
  • Machine learning is performed through the machine learning unit 560 of the server 200 and the behavior data transmitted from the terminal devices 100 and 100 '(specifically, the cipher text in which the behavior data is encrypted)
  • the behavior data is stored and held in the behavior data DB 570 for learning of the machine learning unit 560.
  • the generated model is provided to the terminal device 100 ', and the abnormal behavior detection unit 550 of the terminal device 100' Anomaly detection is performed.
  • the machine learning unit 560 of the server 200 mechanically learns the behavior data to provide the parameter to the terminal apparatus 100 '
  • the detection unit 550 may perform abnormality detection after generating the model using the parameters received from the server 200, but the present invention is not limited thereto.
  • the anomaly detection unit 550 receives the ciphertext collected by the behavior data collection unit 520 and encrypted by the deterministic encryption and uniformity sampling unit 530 after receiving the model (or parameter) from the server 200 (Or a model generated by using a parameter) received from the mobile terminal (or the mobile terminal).
  • Each module of the terminal device 100 'shown in FIG. 5 may be a program module stored in the storage unit 150. Accordingly, the processor 120 can execute the program module stored in the storage unit 150 to perform the above-described operations.
  • the terminal devices 100 and 100 ' can determine the number of different ciphertexts to be encrypted according to the data type of the action data generated as the user operates the terminal device (S610).
  • the action data may be call data of a system call function provided by the operating system of the terminal device 100, 100 'or data related to an operation performed by the terminal device 100, 100' no.
  • the terminal devices 100 and 100 'acquire statistical data on the number of occurrences of the behavior data by data type, and when each of the behavior data types on the obtained statistical data is encrypted with at least one cipher text,
  • the number of ciphertexts for each data type is determined by the number of different ciphertexts.
  • the preset number of frequencies may be a frequency number different from the occurrence frequency of each type of behavior data on the statistical data.
  • the number of occurrences of each type of behavior data may be the same, but is not limited thereto.
  • the terminal devices 100 and 100 generate the ciphertext by encrypting the behavior data so that the same type of behavior data of the determined number is encrypted with different ciphertexts (S620) (S630).
  • the server 200 can machine-learn the behavior data (specifically, the cipher text) received from the terminal devices 100 and 100 'to generate a model related to the behavior data. Specifically, when the behavior data received from the terminal devices 100 and 100 'is data relating to a system call (specifically, a cipher text in which data relating to a system call is encrypted) 100 ') of the system call can be generated.
  • the server 200 also receives data on the operation performed by the terminal apparatuses 100 and 100 '(specifically, the terminal apparatuses 100 and 100') when the behavior data received from the terminal apparatuses 100 and 100 ' And the data on the performed operation is encrypted ciphertext), a model related to the operation pattern of the terminal device 100, 100 'can be generated.
  • the server 200 generates a model not only by directly generating a model of the behavior data (specifically, ciphertext), but also by generating parameters for model generation . Meanwhile, the model (or parameter) provided by the server 200 may be updated at the terminal device 100 or 100 'at a predetermined period.
  • the terminal devices 100 and 100 receive the models (or parameters) so that the same type of behavior data of the number of units determined in step S610 is encrypted with different ciphertexts, (Or a model generated by the terminal devices 100 and 100 'using the parameters) received from the server 200, the cipher text generated after receiving the model (or parameter) To monitor the operation of the terminal devices 100 and 100 '.
  • the data related to the system call and the data related to the operations performed by the terminal devices 100 and 100 ' have been mainly described as examples of the behavior data, but the behavior data is not limited thereto. That is, statistical data related to the frequency of occurrence of each type of behavior data exists as data generated in the terminal devices 100 and 100 'according to the user's operation, Any data can be action data.
  • data related to a user's operation of releasing the lock screen of the terminal device 100, 100 ', data on the user's web surfing history, data on the online shopping details of the user, Data and the like can also be behavior data.
  • Such behavior data is also encrypted through uniform sampling and deterministic encryption, as described above, and the ciphertext is transmitted to the server 200.
  • the server 200 can learn the behavior data (more precisely, the cipher text) to generate a model. For example, when the behavior data is data relating to a lock screen release operation, the server 200 may generate a model related to a user's lock screen release operation pattern. In addition, when the behavior data is data relating to the application usage history of the user, the server 200 may generate a model related to the application usage pattern of the user. In addition, when the behavior data is data related to the online shopping details of the user, the server 200 may generate a model related to the online shopping pattern of the user. In addition, when the behavior data is data related to a text input by the user, the server 200 may generate a model related to the word usage pattern of the user.
  • the model generated in the server 200 is provided to the terminal devices 100 and 100 ', and the terminal devices 100 and 100' can perform various operations using the received model.
  • the operation of the terminal apparatuses 100 and 100 ' is monitored using the model received by the terminal apparatuses 100 and 100', but the present invention is not limited thereto.
  • the terminal devices 100 and 100 ' may provide a product recommendation service or an application recommendation service.
  • the terminal apparatuses 100 and 100 ' may provide related query or similarity recommendation service. More specific details as to what kind of operation can be performed according to the model received from the server 200 by the terminal apparatuses 100 and 100 'are irrelevant to the gist of the present disclosure and will not be described in further detail.
  • the server 200 generates a model through machine learning.
  • the technical idea of the present disclosure is not limited thereto.
  • the server 200 learns behavior data (specifically, cipher text) using a neural network or a deep learning algorithm and provides the learned model to the terminal devices 100 and 100 '
  • behavior data specifically, cipher text
  • various embodiments of the present disclosure may be implemented in software, including instructions stored on a machine-readable storage media readable by a machine (e.g., a computer).
  • the device may include a server 200 or a terminal device 100 or 100 'according to the disclosed embodiments, as an apparatus that can call stored instructions from the storage medium and operate according to the called instructions.
  • the instruction When the instruction is executed by a processor, the processor may perform functions corresponding to the instruction, either directly or under the control of the processor, using other components.
  • the instructions may include code generated or executed by the compiler or interpreter.
  • a device-readable storage medium may be provided in the form of a non-transitory storage medium.
  • 'non-temporary' means that the storage medium does not include a signal and is tangible, but does not distinguish whether data is stored semi-permanently or temporarily on the storage medium.
  • a method according to various embodiments disclosed in this disclosure may be provided in a computer program product.
  • a computer program product can be traded between a seller and a buyer as a product.
  • a computer program product may be distributed in the form of a machine readable storage medium (eg, compact disc read only memory (CD-ROM)) or distributed online through an application store (eg PlayStore TM).
  • an application store eg PlayStore TM
  • at least a portion of the computer program product may be temporarily stored, or temporarily created, on a storage medium such as a manufacturer's server, a server of an application store, or a memory of a relay server.
  • Each of the components may be comprised of a single entity or a plurality of entities, and some subcomponents of the aforementioned subcomponents may be omitted, or other subcomponents may be various May be further included in the embodiment.
  • some components e.g., modules or programs

Abstract

단말 장치의 제어 방법이 개시된다. 본 단말 장치의 제어 방법은, 사용자가 단말 장치를 조작함에 따라 생성되는 행위 데이터의 데이터 타입별로 행위 데이터가 암호화될 서로 다른 암호문의 개수를 결정하는 단계, 결정된 개수 단위의 동일한 타입의 행위 데이터가 서로 다른 암호문으로 암호화되도록 행위 데이터를 암호화하여 암호문을 생성하는 단계, 생성된 암호문을 외부 서버로 전송하는 단계, 전송된 암호문에 기초하여 학습된 행위 데이터에 대한 모델이 수신되면, 수신된 모델에 기초하여 단말 장치의 동작을 모니터링하는 단계를 포함한다. 이때, 모델은 기계 학습, 신경망 또는 딥러닝 알고리즘 중 적어도 하나에 따라 학습된 것일 수 있다.

Description

단말 장치 및 단말 장치의 제어 방법
본 개시는 단말 장치 및 단말 장치의 제어 방법에 관한 것으로, 보다 상세하게는, 기계 학습(machine learning) 시스템을 구성하는 단말 장치 및 단말 장치의 제어 방법에 관한 것이다.
최근 딥러닝을 중심으로 급격히 발전한 기계 학습 기술은 그 범용성으로 인해 자율 주행, 광고, 교육, 금융, 헬스 케어, 전자 상거래, 국방, 보안 등 다양한 분야에 적용이 시도되고 있으며, 이에 따라 다양한 지능형 시스템의 출현이 예고되고 있다.
기계 학습(machine learning)은 인공 지능 기술의 한 분야로서 데이터를 이용해 모델을 생성하는 모델링 기법이다. 기계 학습 기반의 모델링은 일정 시간 이상 수집된 대용량의 데이터와 높은 연산량이 요구되므로, 단말 장치보다는 서버를 통해서 학습이 진행되는 것이 일반적이다.
특히, 단말 장치에서 수집되는 데이터를 이용하여 기계 학습 기반의 모델을 생성 및 활용하는 시스템에서는, 기계 학습 서버가 단말 장치로부터 수집한 데이터를 이용하여 모델을 생성하게 되는데, 이때, 단말 장치 사용자의 프라이버시가 문제될 수 있다.
예를 들어, 단말 장치 운영 체제의 시스템 콜(system-call)을 학습하여 사용자의 이상 행위를 탐지하는 기계 학습 기반 시스템의 경우, 서버는 단말 장치로부터 수신된 시스템 콜 데이터를 학습하여 사용자 행위(user behavior)의 정상 패턴모델을 생성하고, 생성된 모델을 단말 장치로 전송한다. 이에 따라, 단말 장치는 서버로부터 수신한 모델과 사용자의 단말 장치 조작에 따라 발생하는 시스템 콜을 비교하여 사용자의 이상 행위를 탐지할 수 있다.
이와 같은 시스템에서, 서버는 언제든지 시스템 콜 데이터를 분석하여 사용자가 단말 장치를 통해 무엇을 하고 있는지 알 수 있으므로, 단말 장치 사용자의 프라이버시가 문제될 수 있다.
이러한 프라이버시 문제를 막기 위해, 시스템 콜 데이터를 암호화하는 방법을 생각해 볼 수 있는데, 확률론적 암호화 기법(probabilistic encryption scheme)을 통해 시스템 콜을 암호화하는 경우 동일한 시스템 콜이 다른 암호문으로 암호화되므로 기계 학습이 불가능한 문제점이 있고, 결정론적 암호화 기법(deterministic encryption scheme)을 통해 시스템 콜을 암호화하는 경우에도 기계 학습이 가능함은 별론, 시스템 콜에 관한 통계 데이터를 근거로 한 주파수 공격(frequency attack)에 취약해지는 문제가 여전히 존재하게 된다.
따라서, 단말 장치를 통해 수집되는 사용자의 행위 데이터를 이용하여 기계 학습 기반의 모델을 생성 및 활용하는 시스템에서, 사용자의 프라이버시 문제없이 서버에서 행위 데이터를 학습하고, 단말 장치에서 활용할 수 있는 기술에 대한 필요성이 대두된다.
본 개시는 상술한 문제점에 따른 것으로, 본 개시의 목적은, 프라이버시 문제없이 서버에서 단말 장치 사용자의 행위 데이터를 학습하고, 학습된 모델을 단말 장치에서 활용할 수 있는 단말 장치 및 단말 장치의 제어 방법을 제공함에 있다.
이상과 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따른 단말 장치의 제어 방법은 사용자가 상기 단말 장치를 조작함에 따라 생성되는 행위 데이터의 데이터 타입별로 상기 행위 데이터가 암호화될 서로 다른 암호문의 개수를 결정하는 단계, 상기 결정된 개수 단위의 동일한 타입의 행위 데이터가 서로 다른 암호문으로 암호화되도록 상기 행위 데이터를 암호화하여 암호문을 생성하는 단계, 상기 생성된 암호문을 외부 서버로 전송하는 단계, 상기 전송된 암호문에 기초하여 학습된 상기 행위 데이터에 대한 모델이 수신되면, 상기 수신된 모델에 기초하여 상기 단말 장치의 동작을 모니터링하는 단계를 포함한다.
또한, 상기 결정하는 단계는, 상기 행위 데이터의 데이터 타입별 발생 빈도 수에 관한 통계 데이터를 획득하는 단계 및 상기 획득된 통계 데이터 상의 행위 데이터 타입 각각이 적어도 하나의 암호문으로 암호화될 경우 각 암호문의 발생 빈도 수가 기설정된 빈도 수가 되도록 하는 데이터 타입별 암호문의 개수를 상기 서로 다른 암호 문의 개수로 결정하는 단계를 포함한다.
또한, 상기 기설정된 빈도 수는, 상기 통계 데이터 상의 상기 행위 데이터의 데이터 타입별 발생 빈도 수와는 상이할 수 있다.
또한, 상기 모니터링하는 단계는, 상기 결정된 개수 단위의 동일한 타입의 행위 데이터가 상기 서로 다른 암호문으로 암호화되도록, 상기 모델 수신 후 생성된 행위 데이터를 암호화하여 암호문을 생성하는 단계 및 상기 모델 수신 후 생성된 암호문을 상기 모델과 비교하여 상기 단말 장치의 동작을 모니터링하는 단계를 포함할 수 있다.
또한, 상기 생성하는 단계는, 결정론적 암호화 방식(deterministic encryption scheme)을 이용하여 상기 생성되는 행위 데이터를 순차적으로 암호화할 수 있다.
또한, 상기 행위 데이터는, 상기 외부 서버가 상기 모델을 생성하기 위해 기계 학습에 사용하는 학습 데이터일 수 있다.
또한, 상기 행위 데이터는, 상기 단말 장치의 운영 체제가 제공하는 시스템 콜 함수의 호출 데이터 또는 상기 단말 장치가 수행한 동작에 관한 데이터이고, 상기 모델은, 상기 단말 장치가 동작할 때 호출되는 시스템 콜의 패턴에 관한 모델 또는 상기 단말 장치의 동작 패턴에 관한 모델일 수 있다.
또한, 상기 모델을 기설정된 주기로 업데이트하는 단계를 더 포함할 수 있다.
한편, 본 개시의 일 실시 예에 따른 단말 장치는, 외부 서버와 통신하는 통신부 및 사용자가 상기 단말 장치를 조작함에 따라 생성되는 행위 데이터의 데이터 타입별로 상기 행위 데이터가 암호화될 서로 다른 암호문의 개수를 결정하며, 상기 결정된 개수 단위의 동일한 타입의 행위 데이터가 서로 다른 암호문으로 암호화되도록 상기 행위 데이터를 암호화하여 암호문을 생성하고, 상기 생성된 암호문을 외부 서버로 전송하며, 상기 전송된 암호문에 기초하여 학습된 상기 행위 데이터에 대한 모델이 수신되면, 상기 수신된 모델에 기초하여 상기 단말 장치의 동작을 모니터링하는 프로세서를 포함한다.
또한, 상기 프로세서는, 상기 행위 데이터의 데이터 타입별 발생 빈도 수에 관한 통계 데이터를 획득하고, 상기 획득된 통계 데이터 상의 행위 데이터 타입 각각이 적어도 하나의 암호문으로 암호화될 경우 각 암호문의 발생 빈도 수가 기설정된 빈도 수가 되도록 하는 데이터 타입별 암호문의 개수를 상기 서로 다른 암호 문의 개수로 결정할 수 있다.
또한, 상기 기설정된 빈도 수는, 상기 통계 데이터 상의 상기 행위 데이터의 데이터 타입별 발생 빈도 수와는 상이할 수 있다.
또한, 상기 프로세서는, 상기 결정된 개수 단위의 동일한 타입의 행위 데이터가 상기 서로 다른 암호문으로 암호화되도록, 상기 모델 수신 후 생성된 행위 데이터를 암호화하여 암호문을 생성하고, 상기 모델 수신 후 생성된 암호문을 상기 모델과 비교하여 상기 단말 장치의 동작을 모니터링할 수 있다.
상기 프로세서는, 결정론적 암호화 방식(deterministic encryption scheme)을 이용하여 상기 생성되는 행위 데이터를 순차적으로 암호화할 수 있다.
또한, 상기 행위 데이터는, 상기 외부 서버가 상기 모델을 생성하기 위해 기계 학습에 사용하는 학습 데이터일 수 있다.
또한, 상기 행위 데이터는, 상기 단말 장치의 운영 체제가 제공하는 시스템 콜 함수의 호출 데이터 또는 상기 단말 장치가 수행한 동작에 관한 데이터이고, 상기 모델은, 상기 단말 장치가 동작할 때 호출되는 시스템 콜의 패턴에 관한 모델 또는 상기 단말 장치의 동작 패턴에 관한 모델일 수 있다.
또한, 상기 프로세서는, 상기 모델을 기설정된 주기로 업데이트할 수 있다.
한편, 본 개시의 일 실시 예에 따른, 단말 장치의 제어 방법을 실행하기 위한 프로그램을 포함하는 컴퓨터 판독가능 기록 매체에 있어서, 상기 제어 방법은, 사용자가 상기 단말 장치를 조작함에 따라 생성되는 행위 데이터의 데이터 타입 별로 상기 행위 데이터가 암호화될 서로 다른 암호문의 개수를 결정하는 단계, 상기 결정된 개수 단위의 동일한 타입의 행위 데이터가 서로 다른 암호문으로 암호화되도록 상기 행위 데이터를 암호화하여 암호문을 생성하는 단계, 상기 생성된 암호문을 외부 서버로 전송하는 단계 및 상기 전송된 암호문에 기초하여 학습된 상기 행위 데이터에 대한 모델이 수신되면, 상기 수신된 모델에 기초하여 상기 단말 장치의 동작을 모니터링하는 단계를 포함한다.
이상 설명한 바와 같이 본 개시의 다양한 실시 예에 따르면, 프라이버시 문제없이 서버에서 단말 장치 사용자의 행위 데이터를 학습하고, 학습된 모델을 단말 장치에서 활용할 수 있게 된다.
도 1은 본 개시의 일 실시 예에 따른 기계 학습 시스템의 예시도,
도 2는 본 개시의 일 실시 예에 따른 단말 장치의 블럭도,
도 3은 주파수 공격 및 본 개시의 일 실시 예에 따른 균일 샘플링 및 결정론적 암호화를 설명하기 위한 도면,
도 4는 본 개시의 일 실시 다른 예에 따른 단말 장치의 상세 블럭도,
도 5는 도 5는 본 개시의 일 실시 예에 따른 기계 학습 시스템의 동작을 모듈 단위로 구분하여 설명하기 위한 도면, 및
도 6은 본 개시의 일 실시 예에 따른 단말 장치의 동작을 도시한 흐름도이다.
이하, 본 개시의 다양한 실시 예가 첨부된 도면을 참조하여 기재된다. 그러나, 이는 본 개시에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 실시 예의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
본 개시에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
본 개시에서, "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.
본 개시에서 사용된 "제1," "제2," "첫째," 또는 "둘째," 등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제 3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.
본 개시에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도록 변경된(adapted to)," "~하도록 만들어진(made to)," 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
이하에서 첨부된 도면을 참조하여 본 개시의 다양한 실시 예를 상세히 설명한다.
도 1은 본 개시의 일 실시 예에 따른 기계 학습 시스템의 예시도이다. 도 1에 따르면, 기계 학습(machine learning) 시스템(10)은 단말 장치(100) 및 서버(200)를 포함한다.
도 1에서는 단말 장치(100)의 일 예로 스마트폰을 도시하였지만 단말 장치(100)의 구현 예가 이에 한정되는 것은 아니며, 단말 장치(100)는 스마트 TV, 태블릿 PC, 랩탑 컴퓨터, 전자 액자, LFD(Large Format Display), 테이블형 디스플레이, PDA, 전자수첩, 스마트 냉장고, 세탁기, 청소기, 사운드 바, 도어락, 난방기, 공유기, 전자레인지 등과 같은 다양한 전자 장치로 구현될 수 있다. 또한, 도 1에서는 하나의 서버(200)를 도시하였지만, 복수로 구성된 서버들이 후술하는 서버(200)의 동작을 수행할 수도 있다.
단말 장치(100)는 사용자의 행위 데이터(behavior data)를 서버(200)로 전송할 수 있다. 여기서, 사용자의 행위 데이터는 사용자가 단말 장치(100)를 조작함에 따라 단말 장치(100)에서 생성되는 데이터로서, 단말 장치(100)를 통한 사용자의 행위와 관련된 데이터이다.
예를 들어, 행위 데이터는 사용자가 단말 장치(100)를 조작함에 따라 단말 장치(100)의 운영 체제(operating system)에서 호출되는 시스템 콜(system-call)에 관한 데이터 또는 사용자가 단말 장치(100)를 조작함에 따라 생성되는 단말 장치(100)가 수행한 동작에 관한 데이터 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
한편, 행위 데이터를 생성시키는 사용자의 조작에는 단말 장치(100)의 전원 온/오프 조작, 애플리케이션의 설치, 실행, 사용 또는 종료 조작, 화면 넘김 조작, 웹페이지 검색 조작, 카메라 촬영 조작, 텍스트 입력 조작 등 사용자가 단말 장치(100)를 통해 수행할 수 있는 모든 종류의 조작이 포함될 수 있다. 한편, 단말 장치(100)의 종류에 따라 사용자가 수행할 수 있는 조작이 달라질 수 있음은 물론이다.
단말 장치(100)는 행위 데이터가 생성될 때마다 행위 데이터를 서버(200)로 전송할 수도 있고, 기설정된 시간 단위 또는 사용자 조작에 따른 동작 단위로 행위 데이터를 서버(200)로 전송할 수도 있다.
예를 들어, 행위 데이터가 시스템 콜에 관한 데이터인 경우, 단말 장치(100)는 사용자의 조작에 따라 시스템 콜이 호출될 때마다 호출된 시스템 콜에 관한 데이터를 서버(200)로 전송할 수도 있고, 호출된 시스템 콜에 관한 데이터를 기설정된 시간 단위 또는 사용자 조작에 따른 동작 단위로 모아서 서버(200)로 전송할 수도 있다. 또한, 행위 데이터가 단말 장치(100)가 수행한 동작에 관한 데이터인 경우, 단말 장치(100)는 단말 장치(100)의 동작에 관한 데이터가 생성될 때마다 생성된 동작에 관한 데이터를 서버(200)로 전송할 수도 있고, 기설정된 시간 단위로 단말 장치(100)의 동작 내역에 관한 데이터를 서버(200)로 전송할 수도 있다.
서버(200)는 단말 장치(100)로부터 수신한 행위 데이터를 기계 학습(machine learning)하여 모델을 생성할 수 있다. 여기서, 모델은 서버(200)가 행위 데이터를 학습 데이터로 하여 학습한 결과물로서, 서버(200)가 어떤 데이터를 어떤 시간 단위로 학습하느냐에 따라 생성되는 모델은 달라질 수 있다.
예를 들어, 서버(200)가 단말 장치(100)에서 호출된 시스템 콜을 학습하는 경우, 서버(200)는 단말 장치(100)가 동작할 때 호출되는 시스템 콜의 패턴에 관한 모델을 생성할 수 있다. 또한, 서버(200)가 단말 장치(100)가 수행한 동작에 관한 데이터를 학습하는 경우, 서버(200)는 단말 장치(100)의 동작 패턴에 관한 모델을 생성할 수 있다.
이때, 시스템 콜이나 단말 장치(100)가 수행한 동작에 관한 데이터는 단말 장치(100)의 동작에 따라 순서를 가지고 호출 내지 생성되므로, 서버(200)는 이와 같이 순서를 가지고 호출 내지 생성된 행위 데이터를 기설정된 시간(예를 들어, 하루, 3시간 등) 단위로 학습하여 각 행위 데이터에 대한 모델을 생성할 수 있다.
또한, 서버(200)는 단말 장치(100)로부터 수신한 행위 데이터를 학습하여 모델을 업데이트하고, 업데이트된 모델을 단말 장치(100)로 제공할 수도 있다. 이때, 업데이트 주기는 시스템(10) 설계자 또는 단말 장치(100) 사용자에 의해 설정될 수 있다.
서버(200)가 행위 데이터를 학습하여 모델을 생성하거나 업데이트하는 보다 자세한 내용은 본 개시의 요지와 무관하므로, 이하 설명을 생략한다.
서버(200)는 생성한 모델을 단말 장치(100)로 전송하고, 단말 장치(100)는 서버(200)로부터 수신한 모델에 따라 다양한 동작을 수행할 수 있다.
예를 들어, 시스템 콜의 패턴에 관한 모델을 수신한 경우, 단말 장치(100)는 단말 장치(100)의 동작에 따라 현재 호출되는 시스템 콜과 서버(200)로부터 수신한 모델을 비교하여 사용자의 이상 조작 내지 단말 장치(100)의 이상 동작을 감지 또는 모니터링할 수 있다.
또한, 단말 장치(100)가 동작하는 패턴에 관한 모델을 수신한 경우, 단말 장치(100)는, 단말 장치(100)가 현재 수행하는 동작에 관한 데이터(또는 현재 사용자의 단말 장치(100) 조작 내역)와 서버(200)로부터 수신한 모델을 비교하여 사용자의 이상 조작 내지 단말 장치(100)의 이상 동작을 감지 내지 모니터링할 수 있다.
한편, 단말 장치(100)가 서버(200)로부터 수신한 모델에 기초하여 수행할 수 있는 동작이 사용자의 이상 조작 내지 단말 장치(100)의 이상 동작을 모니터링하는 것에 한정되는 것은 아니며, 어떤 행위 데이터의 학습을 통해 어떤 모델을 수신했는지에 따라 단말 장치(100)의 동작은 달라질 수 있다.
이상과 같은 기계 학습(machine learning) 시스템(10)의 일련의 동작 과정에서 단말 장치(100)는 서버(200)로 행위 데이터를 전송하고, 서버(200)는 단말 장치(200)로부터 행위 데이터를 수신하게 되는데, 행위 데이터는 단말 장치(100)를 통한 사용자의 행위에 관한 정보를 포함하고 있으므로, 단말 장치(100)가 행위 데이터를 암호화하지 않고 그대로 서버(200)로 전송한다면, 행위 데이터의 전송 과정이나 서버(200) 단에서 행위 데이터가 유출될 수 있어 단말 장치(100) 사용자의 프라이버시가 침해될 수 있다. 예를 들어, 서버(200) 운영자가 마음만 먹는다면 언제든지 행위 데이터를 분석하여 단말 장치(200) 사용자가 무엇을 하고 있는지 알 수 있게 된다.
위 프라이버시 문제를 해결하기 위해, 단말 장치(100)가 단순히 확률론적 암호화 기법(deterministic encryption scheme)을 통해 행위 데이터를 암호화하여 서버(200)로 전송하는 경우, 서버(200)는 행위 데이터를 학습할 수 없게 되거나 설사 학습하더라도 의미 있는 모델을 생성할 수 없게 된다. 또한, 단말 장치(100)가 동일한 행위 데이터를 동일한 암호문으로 암호화하는 결정론적 암호화 방식(deterministic encryption scheme)을 통해 행위 데이터를 암호화하여 서버(200)로 전송하는 경우, 서버(200)가 암호문을 학습하여 의미 있는 모델을 생성할 수 있음은 별론, 여전히 암호문에 대한 주파수 공격(frequency attack)이 가능하여 단말 장치(100) 사용자의 프라이버시 문제가 남게 된다.
예를 들어, 사용자의 조작에 따라 단말 장치(100)가 동작하면서 read - read - write - open - read - open - write - open - read - read와 같은 순서로 시스템 콜이 호출되어 서버(200)로 전송될 수 있다. 이때, 단말 장치(100)가 위 시스템 콜을 확률론적 암호화 방식으로 암호화한다면, 동일한 시스템 콜이 서로 다른 암호문으로 암호화되므로, 서버(200)가 시스템 콜을 학습할 수 없거나 학습하더라도 의미 없는 모델이 생성된다.
한편, 단말 장치(100)가 위 시스템 콜을 결정론적 암호화 방식으로 암호화한다면, 동일한 시스템 콜이 동일한 암호문으로 암호화되므로, 서버(200)는 시스템 콜을 학습하여 의미 있는 모델을 생성할 수 있다. 예를 들어, read는 232#$로, write는 235*로, open은 a,&/로 암호화된 경우, 위 시스템 콜은 232#$ - 232#$ - 235* - a,&/ - 232#$ - a,&/ - 235* - a,&/ - 232#$ - 232#$와 같이 암호화되어 서버(200)로 전송되며, 서버(200)는 단말 장치(100)로부터 수신한 암호문을 학습하여 시스템 콜의 패턴에 관한 모델을 생성할 수 있다. 즉, 서버(200)는 232#$가 read이고, 235*가 write이며, a,&/가 open 인지 알 수는 없지만, 암호문의 패턴을 학습할 수는 있으며, 이를 통해 의미 있는 모델을 생성할 수 있다.
한편, 단말 장치(100)가 위와 같이 시스템 콜을 결정론적 암호화 방식으로 암호화하더라도, 서버(200)가 어떤 시스템 콜이 어떤 암호문으로 암호화된 것인지 알 수 있다면 여전히 서버(200)를 통한 사용자의 프라이버시 유출이 문제될 수 있다.
구체적으로, 서버(200)는 사용자가 단말 장치(100)를 사용할 때 호출되는 시스템 콜의 유형별 발생 빈도에 관한 통계 데이터를 이용하여 어떤 시스템 콜이 어떤 암호문으로 암호화된 것인지 알 수 있다. 기계 학습은 기본적으로 많은 양의 데이터를 학습하여 모델을 생성하는 것이므로, 서버(200)에는 단말 장치(100)로부터 수신한 암호문이 지속적으로 축적된다. 단순히 시스템 콜을 결정론적 암호화 방식으로 암호화한다는 것은 동일한 유형의 시스템 콜을 동일한 암호문으로 암호화하는 것이므로, 지속적으로 축적되는 암호문의 유형별 빈도 수는 상기 통계 데이터를 따라가게 된다. 따라서, 서버(200)는 축적된 암호문의 유형별 빈도 수와 상기 통계 데이터 상에서 시스템 콜의 유형별 빈도 수를 비교하여 어떤 시스템 콜이 어떤 암호문으로 암호화된 것인지 알 수 있게 된다.
상기 예에서, 서버(200)에 축적된 암호문 232#$ : 235* : a,&/의 빈도 수가 5:2:3이고, 통계 데이터 상에서 read : write : open의 빈도 수가 5:2:3이라면, 서버(200)는 read가 232#$로 암호화되고, write가 235*로 암호화되고, open이 a,&/로 암호화된 것임을 알 수 있게 된다. 이와 같이, 데이터의 유형별 빈도 수에 관한 일반적인 통계 데이터를 이용하여 어떤 데이터가 어떤 암호문으로 암호화된 것인지 역으로 알아내는 것을 주파수 공격이라 한다.
즉, 단말 장치(100)가 결정론적 암호화 방식을 통해 행위 데이터를 암호화하더라도 서버(200)는 통계 데이터를 이용하여 주파수 공격이 가능하므로, 단말 장치(100) 사용자의 행위 데이터는 여전히 안전하지 않다.
그러나, 본 개시의 일 실시 예에 따르면, 이상과 같은 기계 학습(machine learning) 시스템(10)의 일련의 동작 과정에서, 단말 장치(100)가 행위 데이터를 행위 데이터의 타입별로 서로 다른 개수의 암호문으로 암호화하고, 이때, 결정론적 암호화 방식을 적용함으로써, 사용자의 프라이버시에 대한 문제(해킹이나 주파수 공격 등)없이 서버(200)가 행위 데이터를 학습할 수 있게 된다.
도 2는 본 개시의 일 실시 예에 따른 단말 장치(100)의 구성도이다. 도 2에 따르면, 단말 장치(100)는 통신부(110) 및 프로세서(120)를 포함한다.
통신부(110)는 각종 유, 무선 통신 방식에 따라 다양한 유형의 외부 기기와 통신을 수행할 수 있다. 특히, 통신부(110)는 프로세서(120)의 제어를 받아 서버(200)와 통신을 수행할 수 있다. 이때, 서버(200)는 단말 장치(100)로부터 행위 데이터를 수신하여 학습하고, 모델을 생성하는 기계 학습 서버일 수 있다.
한편, 통신부(110)는 행위 데이터의 데이터 타입별 발생 빈도 수에 관한 통계 데이터를 제공하는 별도의 서버와 통신할 수 있다. 그러나, 실시 예에 따라 서버(200)가 상기 통계 데이터를 단말 장치(100)로 제공할 수도 있다.
프로세서(120)는 단말 장치(100)의 전반적인 동작을 제어한다. 특히, 프로세서(120)는 사용자가 단말 장치(100)를 조작함에 따라 행위 데이터를 생성할 수 있다.
예를 들어, 프로세서(120)는 사용자가 단말 장치(100)를 조작함에 따라 호출되는 시스템 콜 함수에 관한 데이터를 생성할 수 있다. 구체적으로, 운영 체제를 탑재한 단말 장치(100)는 사용자의 조작에 따라 동작할 때마다 운영 체제가 지원하는 시스템 콜 함수가 호출되게 되는데, 프로세서(120)는 이와 같이 단말 장치(100)가 동작할 때마다 호출되는 시스템 콜 함수에 관한 데이터를 생성할 수 있다.
여기서, 프로세서(120)가 시스템 콜 함수에 관한 데이터를 생성한다는 것은, 프로세서(120)가, 호출되는 시스템 콜 함수에 대한 데이터를 별도로 생성하는 것일 수 있다. 또는 프로세서(120)가 단말 장치(100)의 동작에 따라 시스템 콜 함수를 호출하는 것 자체도 프로세서(120)가 시스템 콜 함수에 관한 데이터를 생성하는 것에 포함될 수 있다. 이때, 호출되는 시스템 콜 함수의 종류와 순서는 단말 장치(100)가 수행하는 동작의 종류에 따라 달라질 수 있다.
또한, 프로세서(120)는 사용자가 단말 장치(100)를 조작함에 따라 생성되는 단말 장치(100)가 수행한 동작에 관한 데이터를 생성할 수 있다. 구체적으로, 사용자가 단말 장치(100)를 조작하면 그에 따라 단말 장치(100)는 동작하며, 프로세서(120)는 단말 장치(100)가 동작한 내역에 관한 데이터를 생성할 수 있다. 예를 들어, 단말 장치(100)가 수행한 동작에 관한 데이터에는, 전원 온, 전원 오프, 애플리케이션의 설치, 실행, 사용, 종료, 페이지 전환, 웹페이지 접속, 사진 또는 동영상 촬영, 텍스트 입력 등 단말 장치(100)가 수행할 수 있는 모든 종류의 동작에 관한 데이터가 포함될 수 있다.
또한, 프로세서(120)는 단말 장치(100)에서 생성되는 행위 데이터를, 행위 데이터의 데이터 타입별로 서로 다른 개수의 암호문으로 암호화할 수 있다. 이때, 프로세서(120)는 결정론적 암호화 방식을 이용할 수 있다. 여기서, 결정론적 암호화 방식은 동일한 데이터가 별도로 암호화되더라도 항상 동일한 암호문으로 암호화되는 암호화 방식을 의미한다.
구체적으로, 프로세서(120)는 행위 데이터가 암호화될 서로 다른 암호문의 개수를 결정하고, 결정된 개수 단위의 동일한 타입의 행위 데이터가 서로 다른 암호문으로 암호화되도록 행위 데이터를 암호화하여 암호문을 생성할 수 있다.
이때, 본 개시의 일 실시 예에 따르면, 프로세서(120)는 행위 데이터를 균일 샘플링(uniform sampling)하여 암호문을 생성할 수 있다. 여기서, 균일 샘플링(uniform sampling)은, 서버(200)에 축적될 암호문의 타입별 빈도 수가 균등 분포(uniform distribution)를 갖도록 프로세서(120)가 행위 데이터를 나누어 암호화한다는 것을 의미한다. 이를 위해, 프로세서(120)는 행위 데이터의 데이터 타입별 발생 빈도 수에 관한 통계 데이터를 이용할 수 있다.
전술한 바와 같이, 주파수 공격은, 행위 데이터를 암호화한 암호문이 많이 축적되면 암호문의 종류별 발생 빈도 수가 행위 데이터의 종류별 발생 빈도 수에 대한 통계 데이터를 따르게 되는 성질을 이용하여 역으로 암호문이 어떤 행위 데이터를 암호화한 것인지 알아내는 것이므로, 행위 데이터를 암호화하되 암호문이 축적되더라도 축적된 암호문의 종류별 빈도 수가 통계 데이터와 달라지도록 행위 데이터를 암호화한다면 주파수 공격이 불가능해진다.
따라서, 본 개시의 일 실시 예에 따르면, 프로세서(120)는, 주파수 공격에 이용될 수 있는 상기 통계 데이터 상의 행위 데이터 타입 각각이 적어도 하나의 암호문으로 암호화될 경우 암호문들의 종류별 발생 빈도 수가 모두 같아지도록 하는 암호문의 개수를 행위 데이터의 데이터 타입별로 결정하고, 결정된 개수 단위의 동일한 타입의 행위 데이터가 서로 다른 암호문으로 암호화되도록 단말 장치(100)에서 생성되는 행위 데이터를 암호화하여 암호문을 생성함으로써, 단말 장치(100)가 전송하는 암호문이 서버(200)에서 축적되더라도 주파수 공격이 불가능하게 할 수 있다.
도 3은 주파수 공격 및 본 개시의 일 실시 예에 따른 균일 샘플링 및 결정론적 암호화를 설명하기 위한 도면이다. 한편, 도 3에서는 단말 장치(100)의 동작에 따라 시스템 콜 함수 중 read, write, open 만 호출되는 경우를 예로 들어 도시하였으나, 이는 설명의 편의를 위한 것일 뿐 시스템 콜의 종류가 이에 한정되는 것이 아님은 물론이다.
도 3의 (a)는 시스템 콜의 종류별 빈도 수에 관한 통계 데이터를 도시하고 있다. 사용자 조작에 따라 단말 장치(100)가 동작하면서 호출되는 시스템 콜은 사용자의 조작마다 그 종류 및 순서가 다를 수 있다. 그러나, 많은 양의 데이터를 축적하여 통계치를 계산해 보면 시스템 콜의 호출 빈도 수가 상대적으로 일정한 비율에 수렴하게 된다. 도 3의 (a)는 일 예로 read, write, open이 5:2:3의 비율로 호출되는 통계 데이터를 도시하고 있다.
도 3의 (b)는 주파수 공격을 설명하기 위한 도면이다. 단말 장치(100)가 시스템 콜을 단순히 결정론적 암호화 방식으로 암호화한다면, 즉, 예를 들어, read는 a로, write는 b로, open은 c로 각각 암호화한다면, 서버(200)가 단말 장치(100)로부터 수신한 암호문의 패턴 내지 순서를 학습하여 모델을 생성할 수 있음은 별론, 서버(200)에 축적되는 암호문의 빈도 수는 도 3의 (b)에 도시된 바와 같이 a, b, c가 5:2:3의 비율을 갖게 될 것임을 알 수 있다.
따라서, 서버(200)는 축적된 암호문의 종류별 빈도 수를 도 3의 (b)와 같이 계산한 후 도 3의 (a)의 통계 데이터와 비교하여 a가 read를, b가 write를, c가 open을 각각 암호화한 것임을 알 수 있게 된다. 단말 장치(100)의 동작에 따라 어떤 시스템 콜이 어떤 순서로 호출되는지는 알려진 내용이므로, 서버(200)가 각 암호문이 어떤 시스템 콜을 암호화한 것인지 알 수 있다면, 단말 장치(100)로부터 수신되는 암호문으로부터 단말 장치(100)가 어떤 동작을 하고 있는지 알 수 있어, 단말 장치(100) 사용자의 프라이버시가 문제된다.
도 3의 (c)는 본 개시의 일 실시 예에 따라 시스템 콜을 균일 샘플링하여 암호화한 경우, 서버(200)에 축적된 암호문의 종류별 빈도 수를 도시하고 있다. 본 개시의 일 실시 예에 따르면 프로세서(120)는 도 3의 (a)와 같은 통계 데이터를 이용하여 서버(200)에 축적될 암호문의 타입별 빈도 수가 균등 분포(uniform distribution)를 갖도록 하는 암호문의 개수를 결정할 수 있다.
구체적으로, 프로세서(120)는, 도 3의 (a)와 같은 통계 데이터 상의 read, write, open이 각각 암호화될 경우, 암호문들의 종류별 빈도 수가 일정해지도록 하는 시스템 콜의 타입별 암호문의 개수를 결정할 수 있다. 도 3의 (a)의 통계 데이터 상에서 read, write, open은 5:2:3의 비율을 가지므로, read가 5개, write가 2개, open이 3개의 서로 다른 암호문으로 암호화될 경우, 각 암호문의 빈도 수가 일정해질 것을 예상할 수 있다.
따라서, 프로세서(120)는 시스템 콜 read, write, open이 암호화될 서로 다른 암호문의 개수로, 5개, 2개, 3개를 결정하고, 결정된 개수 단위의 동일한 타입의 시스템 콜이 서로 다른 암호문으로 암호화되도록 시스템 콜을 암호화하여 암호문을 생성할 수 있다. 예를 들어, 사용자의 조작에 따라 단말 장치(100)가 동작하면서 read - read - write - open - read - open - write - open - read - read 와 같은 순서로 시스템 콜이 호출된 경우, 프로세서(120)는 호출된 시스템 콜에서 5개 단위의 read가 서로 다른 암호문 a, b, c, d, e로 암호화되고, 2개 단위의 write가 서로 다른 암호문 j, k로 암호화되며, 3개 단위의 open이 서로 다른 암호문 x, y, z로 암호화되도록 시스템 콜을 암호화하여 암호문 a - b - j - x - c - y - k - z - d - e를 생성할 수 있다.
프로세서(120)가 위와 같은 방식으로 시스템 콜을 암호화하여 암호문을 서버(200)로 전송하는 경우, 서버(200)가 축적된 암호문의 종류별 빈도 수를 계산하더라도, 도 3의 (c)와 같이 암호문의 종류별 빈도 수가 동일하게 나오므로, 도 3의 (a)와 같은 통계 데이터를 이용한 주파수 공격이 불가능해 진다.
한편, 단말 장치(100)가 같은 동작을 할 때 호출되는 시스템 콜은 동일하며, 프로세서(120)는 위와 같이 균일 샘플링된 시스템 콜을 결정론적 암호화 방식을 이용하여 순차적으로 암호화하므로, 서버(200)는 단말 장치(100)로부터 수신되는 암호문을 학습하여 유의미한 모델을 생성할 수 있게 된다.
한편, 도 3에서는 시스템 콜 데이터를 예로 들어 프로세서(120)의 동작을 설명하였으나, 실시 예가 이에 한정되는 것이 아님은 물론이다. 전술한 바와 같이, 사용자 조작에 따라 단말 장치(100)가 수행한 동작(예를 들어, 전원 온, 전원 오프, 웹페이지 접속, 애플리케이션 실행, 페이지 넘김, 영상 촬영 등)에 관한 데이터를 서버(200)가 학습하여 모델을 생성할 수 있다. 이 예에서도, 단말 장치(100)가 수행하는 동작에 관한 통계 데이터가 알려져 있다면, 행위 데이터의 암호화에도 불구하고, 주파수 공격이 가능하다. 따라서, 본 개시의 일 실시 예에 따르면, 프로세서(120)는 단말 장치(100)가 수행하는 동작에 관한 통계 데이터에 기초하여, 단말 장치(100)에서 생성되는 단말 장치(100)가 수행한 동작에 관한 데이터를 균일 샘플링하고, 균일 샘플링된 데이터를 결정론적 암호화 방식으로 암호화함으로써, 주파수 공격의 가능성 없이 서버(200)가 모델을 생성할 수 있도록 한다.
한편, 프로세서(120)가 행위 데이터의 타입별로 행위 데이터가 암호화될 서로 다른 암호문의 개수를 결정하는 실시 예가 이에 한정되는 것은 아니다. 전술한 바와 같이, 암호문이 서버(200)에 축적되더라도 축적된 암호문의 종류별 빈도 수가 통계 데이터와 달라지도록 행위 데이터를 암호화한다면 주파수 공격이 불가능해진다. 따라서, 프로세서(120)는, 서버(200)에 축적된 암호문의 종류별 빈도 수가 통계 데이터와는 다른 기설정된 분포를 가지도록 하는 암호문의 개수를, 행위 데이터가 암호화될 서로 다른 암호문의 개수로 결정할 수도 있을 것이다.
전술한 통계 데이터는 단말 장치(100) 제조시 단말 장치(100)에 기저장된 것일 수 있다. 그러나, 이에 한정되는 것은 아니며, 프로세서(120)가 통신부(110)를 통해 통계 데이터를 제공하는 서버로부터 수신 또는 업데이트한 것일 수도 있다. 또는 실시 예에 따라, 프로세서(120)가 단말 장치(100)에 축적된 행위 데이터를 이용하여 상기 암호문의 개수 결정을 위한 통계 데이터를 산출할 수도 있다.
한편, 프로세서(120)는 상술한 바와 같이 행위 데이터를 암호화하여 생성한 암호문을 통신부(110)를 통해 서버(200)로 전송할 수 있다.
서버(200)는 단말 장치(100)로부터 수신한 암호문을 학습하여 모델을 생성할 수 있다. 예를 들어, 서버(200)는 시스템 콜을 학습하여 단말 장치(100)가 동작할 때 호출되는 시스템 콜의 패턴에 관한 모델을 생성할 수 있다. 또한, 서버(200)는 단말 장치(100)가 수행한 동작에 관한 데이터를 학습하여 단말 장치(100)의 동작 패턴에 관한 모델을 생성할 수도 있다. 서버(200)의 동작에 관한 도 1과 중복되는 내용은 설명을 생략한다.
서버(200)는 생성된 모델을 단말 장치(100)로 전송하며, 단말 장치(100)는 행위 데이터가 학습된 모델, 정확하게는, 암호문이 학습된 모델을 서버(200)로부터 수신할 수 있다. 이에 따라, 프로세서(120)는 수신한 모델에 기초하여 다양한 동작을 수행할 수 있다.
특히, 프로세서(120)는 전송된 암호문에 기초하여 서버(200)에서 학습된 행위 데이터에 대한 모델이 수신되면, 수신된 모델에 기초하여 단말 장치(100)의 동작을 모니터링할 수 있다. 구체적으로, 프로세서(120)는 서버(200)로부터 수신한 모델과 현재 생성되는 행위 데이터를 비교하여 단말 장치(100)의 동작을 모니터링할 수 있다.
예를 들어, 단말 장치(100)가 동작할 때 호출되는 시스템 콜의 패턴에 관한 모델이 수신된 경우, 프로세서(120)는 단말 장치(100)의 현재 동작에 따라 호출되는 시스템 콜을 수신된 모델과 비교하여 단말 장치(100)의 이상 동작 내지 사용자의 이상 조작을 모니터링할 수 있다.
서버(200)로부터 수신한 시스템 콜의 패턴에 관한 모델은, 해당 모델 생성 이전에, 사용자가 단말 장치(100)를 정상적으로 조작함에 따라 호출된 시스템 콜에 관한 데이터를 서버(200)가 학습하여 생성한 것이다. 따라서, 예를 들어, 도난 또는 분실된 단말 장치(100)를 타인이 사용하는 경우 등과 같이, 비정상적인 경우에 타인이 단말 장치(100)를 조작함에 따라 호출되는 시스템 콜은 상기 모델과는 다른 패턴을 갖게 될 것이므로, 프로세서(120)는 모델과 시스템 콜을 비교하여 단말 장치(100)의 이상 동작 내지 사용자의 이상 조작을 감지할 수 있다.
단말 장치(100)의 동작 패턴에 관한 모델이 수신된 경우에도, 프로세서(120)는, 단말 장치(100)가 현재 수행하는 동작에 관한 데이터와 수신된 모델을 비교하여 단말 장치(100)의 이상 동작 내지 사용자의 이상 조작을 모니터링할 수 있음은 물론이다.
한편, 단말 장치(100)가 서버(200)로부터 수신하는 모델은 암호문이 학습된 모델이므로, 프로세서(120)는 현재 생성되는 행위 데이터를 전술한 방법과 동일하게 암호화한 후 모델과 비교해야 한다. 따라서, 프로세서(120)는, 전술한 바와 같이 결정된 서로 다른 암호문의 개수 단위의 동일한 타입의 행위 데이터가 서로 다른 암호문으로 암호화되도록, 모델 수신 후 단말 장치(100)에서 생성되는 행위 데이터를 암호화하여 암호문을 생성하고, 생성된 암호문을 모델과 비교할 수 있다.
한편, 이상에서는, 서버(200)가 행위 데이터(구체적으로는, 행위 데이터가 암호화된 암호문)를 학습하여 모델을 생성하고, 생성된 모델을 단말 장치(100)로 전송하는 경우를 예로 들었으나, 실시 예가 이에 한정되는 것은 아니다.
실시 예에 따라, 서버(200)는, 행위 데이터(구체적으로는, 행위 데이터가 암호화된 암호문)를 학습하여, 단말 장치(100)가 모델을 생성하는데 필요한 기계 학습 파라미터를 생성할 수도 있다. 이 경우, 파라미터가 수신되면, 프로세서(120)는 수신된 파라미터에 기초하여 모델을 생성하고, 생성된 모델에 기초하여 상술한 바와 같이 단말 장치(100)의 동작을 모니터링할 수 있다.
도 4는 본 개시의 다른 일 실시 예에 따른 단말 장치의 상세 블럭도이다. 도 4에 따르면, 단말 장치(100')는 통신부(110), 프로세서(120), 디스플레이(130), 사용자 입력부(140) 및 저장부(150)를 포함한다. 도 4에 도시된 각 구성은 반드시 단말 장치(100')에 모두 포함되어야 하는 것은 아니며, 단말 장치(100')의 종류에 따라 일부 구성이 생략되거나 다른 구성이 더 포함될 수도 있다. 도 4를 설명함에 있어, 전술한 것과 동일한 구성의 중복되는 내용은 설명을 생략한다.
통신부(110)는 다양한 외부 장치와 통신을 수행하여 각종 정보를 송, 수신할 수 있다. 특히, 통신부(110)는 단말 장치(100')에서 생성된 행위 데이터가 암호화된 암호문을 서버(200)로 전송하고, 전송된 암호문에 기초하여 학습된 행위 데이터에 대한 모델을 서버(200)로부터 수신할 수 있다. 또한, 통신부(110)는 행위 데이터의 종류별 빈도 수에 관한 통계 데이터를 서버(200) 또는 통계 데이터를 관리하는 별도의 서버로부터 수신할 수도 있다.
이를 위해, 통신부(110)는 근거리 무선 통신 모듈(미도시) 및 무선랜 통신 모듈(미도시) 중 적어도 하나의 통신 모듈을 포함할 수 있다. 근거리 무선 통신 모듈(미도시)은 근거리에 위치한 외부 기기와 무선으로 데이터 통신을 수행하는 통신 모듈로써, 예를 들어, 블루투스(Bluetooth) 모듈, 지그비(ZigBee) 모듈, NFC(Near Field Communication) 모듈, 적외선 통신 모듈 등이 될 수 있다. 또한, 무선랜 통신 모듈(미도시)은 와이파이(WiFi), IEEE 등과 같은 무선 통신 프로토콜에 따라 외부 네트워크에 연결되어 외부 서버 또는 외부 기기와 통신을 수행하는 모듈이다.
이 밖에 통신부(110)는 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evoloution) 등과 같은 다양한 이동 통신 규격에 따라 이동 통신망에 접속하여 통신을 수행하는 이동 통신 모듈을 더 포함할 수도 있으며, HDMI(High-Definition Multimedia Interface), USB(Universal Serial Bus), IEEE(Institute of Electrical and Eletronics Engineers) 1394, RS-232, RS-422, RS-485, Ethernet 등과 같은 통신 규격에 따른유선 통신 모듈(미도시)을 더 포함할 수도 있다.
디스플레이(130)는 단말 장치(100')의 종류에 따라 각종 영상 내지 화면을 표시할 수 있다. 여기서, 영상은 텍스트, 정지영상, 동영상, 아이콘, GUI(Graphic User Interface), OSD(On Screen Display) 등과 같은 다양한 포맷의 영상일 수 있다. 이를 위해, 디스플레이(130)는 LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diodes), AM-OLED(Active-Matrix Organic Light-Emitting Diode), PDP(Plasma Display Panel) 등과 같은 다양한 형태의 디스플레이로 구현될 수 있다.
사용자 입력부(140)는 단말 장치(100')를 조작하기 위한 다양한 사용자 명령을 입력받을 수 있다. 이를 위해, 사용자 입력부(140)는 사용자 음성을 수신하는 마이크, 사용자의 푸시 조작을 입력받는 푸시형 버튼, 사용자 터치 조작을 입력받는 터치 패널, 복수의 방향으로 조작 가능한 조그 스위치, 외부 영상을 입력받는 이미지 센서, 사용자의 움직임을 감지하는 모션 센서 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 한편, 터치 패널이 디스플레이(130)와 상호 레이어 구조를 이루는 터치 스크린을 포함할 수도 있다.
저장부(150)는 각종 프로그램 및 데이터를 저장한다. 특히, 저장부(150)는 행위 데이터의 종류별 빈도 수에 관한 통계 데이터를 저장할 수 있다. 또한, 저장부(150)는 단말 장치(100')의 동작을 수행하기 위한 운영 체제(operating system, o/s) 및 각종 프로그램을 저장할 수 있다. 이를 위해, 저장부(150)는 RAM(Random Access Memory), ROM(Read Only Memory), SSD(Solid State Disk), 플래시 메모리, 하드 디스크 또는 광디스크 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 실시 예에 따라, 저장부(150)는 클라우드 서버 등으로도 얼마든지 구현될 수다.
카메라부(미도시)는 사용자 조작에 따라 단말 장치(100') 외부의 영상을 촬영한다. 이를 위해, 카메라부(미도시)는 각종 이미지 센서 및 렌즈 등을 포함할 수 있다.
프로세서(120)는 단말 장치(100')의 전반적인 동작을 제어한다. 특히, 프로세서(120)는 단말 장치(100')를 제어하여 도 1 내지 도 3을 통해 전술한 프로세서(120)의 동작을 수행할 수 있다.
이를 위해, 프로세서(120)는 운영 체제 또는 응용 프로그램을 구동하여 프로세서(120)에 연결된 하드웨어 또는 소프트웨어 구성요소들을 제어할 수 있고, 각종 데이터 처리 및 연산을 수행할 수 있다. 또한, 프로세서(120)는 다른 구성요소들 중 적어도 하나로부터 수신된 명령 또는 데이터를 휘발성 메모리에 로드하여 처리하고, 다양한 데이터를 비휘발성 메모리에 저장할 수 있다.
프로세서(120)는 해당 동작을 수행하기 위한 전용 프로세서(예, 임베디드 프로세서) 또는 메모리 디바이스에 저장된 하나 이상의 소프트웨어 프로그램을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)로 구현될 수 있다.
프로세서(120)는 RAM(121), ROM(122), GPU(123), 메인 CPU(124) 및 제1 내지 제n 인터페이스(125-1,...,125-n)를 포함할 수 있다. RAM(121), ROM(122), GPU(123), 메인 CPU(124) 및 제1 내지 제n 인터페이스(125-1,...,125-n) 등은 버스(126)를 통해 서로 연결될 수 있다. 메인 CPU(124)는 저장부(150)에 액세스하여, 저장부(150)에 저장된 운영체제(O/S)를 이용하여 부팅을 수행한다. 그리고, 메인 CPU(124)는 저장부(150)에 저장된 각종 프로그램, 컨텐츠, 데이터 등을 이용하여 다양한 동작을 수행할 수 있다.
구체적으로, ROM(122)에는 시스템 부팅을 위한 명령어 세트 등이 저장된다. 턴온 명령이 입력되어 전원이 공급되면, 메인 CPU(124)는 ROM(122)에 저장된 명령어에 따라 저장부(140)에 저장된 O/S를 RAM(121)에 복사하고, O/S를 실행시켜 시스템을 부팅시킨다. 부팅이 완료되면, 메인 CPU(124)는 저장부(150)에 저장된 각종 프로그램을 RAM(121)에 복사하고, RAM(121)에 복사된 프로그램을 실행시켜 각종 동작을 수행한다. GPU(123)는 단말 장치(100')의 부팅이 완료되면, 아이콘, 이미지, 텍스트 등과 같은 다양한 객체를 포함하는 화면을 생성할 수 있다.
도 5는 본 개시의 일 실시 예에 따른 기계 학습 시스템의 동작을 모듈 단위로 구분하여 설명하기 위한 도면이다. 도 5에 따르면, 단말 장치(100')는 시스템(system)(510), 행위 데이터 수집부(behavior data collector)(520), 결정론적 암호화 및 균일 샘플링부(uniform sampler with deterministic encryption)(530), 학습 요청부(training requestor)(540) 및 이상 행위 감지부(anomaly detector)(550)을 포함하고, 서버(200)는 기계 학습부(machine learning Trainer)(560) 및 행위 데이터 데이터베이스(behavior data DB)(570)를 포함할 수 있다.
시스템(510)은 단말 장치(100')의 동작에 따라 행위 데이터를 생성하는 구성이다. 예를 들어, 시스템(510)은 운영 체제, 미들웨어 또는 각종 애플리케이션일 수 있으나, 이에 한정되는 것은 아니다. 예를 들어, 시스템(510)은 사용자가 단말 장치(100')를 조작함에 따라 호출되는 시스템 콜 함수를 제공하거나 단말 장치(100')가 수행한 동작에 관한 데이터를 생성할 수 있다.
행위 데이터 수집부(520)는 시스템(510)에서 행위 데이터가 생성될 때마다 또는 기설정된 주기로 행위 데이터를 수집한다.
결정론적 암호화 및 균일 샘플링부(530)는 행위 데이터 수집부(520)가 수집한 행위 데이터를 전술한 바와 같이 균일 샘플링 및 결정론적 암호화하여 암호문을 생성한다. 이때, 결정론적 암호화 방식으로는 AES(Advanced Encryption Standard)나 DES(Data Encryption Standard)이 이용될 수 있으나, 이에 한정되는 것은 아니다.
학습 요청부(540)는 결정론적 암호화 및 균일 샘플링부(530)에서 생성된 암호문을 암호문이 생성될 때마다 또는 기설정된 주기로 서버(200)로 전송할 수 있다.
단말 장치(100, 100')로부터 전송된 행위 데이터(구체적으로는 행위 데이터가 암호화된 암호문)는 서버(200)의 기계 학습부(560)를 통해 기계 학습이 진행되되며, 일정량 또는 일정 시간의 행위 데이터는 기계 학습부(560)의 학습을 위해 행위 데이터 DB(570)에 저장 및 유지된다.
한편, 기계 학습부(560)에서 모델이 생성되면, 생성된 모델은 단말 장치(100')로 제공되며, 단말 장치(100')의 이상 행위 감지부(550)는 모델에 기초하여 행위 데이터에 대해 이상 탐지를 수행한다. 이때, 본 개시의 일 실시 예에 따르면, 서버(200)의 기계 학습부(560)는 행위 데이터를 기계 학습하여 파라미터를 단말 장치(100')로 제공하고, 단말 장치(100')의 이상 행위 감지부(550)는 서버(200)로부터 수신한 파라미터를 이용하여 모델을 생성한 후 이상 탐지를 수행할 수 있으나, 이에 한정되는 것은 아니다.
구체적으로, 이상 행위 감지부(550)는, 모델(또는 파라미터) 수신 후에 행위 데이터 수집부(520)에 의해 수집되고 결정론적 암호화 및 균일 샘플링부(530)에 의해 암호화된 암호문을, 서버(200)로부터 수신한 모델(또는 파라미터를 이용하여 생성한 모델)과 비교하여 이상 탐지를 수행할 수 있다.
한편, 도 5에 도시된 단말 장치(100')의 각 모듈들은 저장부(150)에 저장된 프로그램 모듈일 수 있다. 따라서, 프로세서(120)는 저장부(150)에 저장된 프로그램 모듈을 실행시켜 상술한 동작을 수행할 수 있다.
도 6은 본 개시의 일 실시 예에 따른 단말 장치(100, 100')의 동작을 도시한 흐름도이다. 도 6에 따르면, 단말 장치(100, 100')는, 사용자가 단말 장치를 조작함에 따라 생성되는 행위 데이터의 데이터 타입별로 행위 데이터가 암호화될 서로 다른 암호문의 개수를 결정할 수 있다(S610). 이때, 행위 데이터는, 단말 장치(100, 100')의 운영 체제가 제공하는 시스템 콜 함수의 호출 데이터 또는 단말 장치(100, 100')가 수행한 동작에 관한 데이터일 수 있으나, 이에 한정되는 것은 아니다.
구체적으로, 단말 장치(100, 100')는, 행위 데이터의 데이터 타입별 발생 빈도 수에 관한 통계 데이터를 획득하고, 획득된 통계 데이터 상의 행위 데이터 타입 각각이 적어도 하나의 암호문으로 암호화될 경우 각 암호문의 발생 빈도 수가 기설정된 빈도 수가 되도록 하는 데이터 타입별 암호문의 개수를 서로 다른 암호 문의 개수로 결정할 수 있다. 여기서, 기설정된 빈도 수는, 통계 데이터 상의 행위 데이터의 데이터 타입별 발생 빈도 수와는 상이한 빈도 수 일 수 있다. 특히, 행위 데이터의 데이터 타입별 발생 빈도 수가 모두 동일할 수 있으나, 이에 한정되는 것은 아니다.
한편, 단말 장치(100, 100')는, 결정된 개수 단위의 동일한 타입의 행위 데이터가 서로 다른 암호문으로 암호화되도록 행위 데이터를 암호화하여 암호문을 생성하고(S620), 생성된 암호문을 외부 서버(200)로 전송할 수 있다(S630). 이때, 단말 장치(100, 100')는, AES 또는 DES와 같은 결정론적 암호화 방식(deterministic encryption scheme)을 이용하여 생성되는 행위 데이터를 순차적으로 암호화할 수 있다.
서버(200)는 단말 장치(100, 100')로부터 수신한 행위 데이터(구체적으로는, 암호문)를 기계 학습하여 해당 행위 데이터에 관한 모델을 생성할 수 있다. 구체적으로, 서버(200)는 단말 장치(100, 100')로부터 수신한 행위 데이터가 시스템 콜에 관한 데이터(구체적으로는, 시스템 콜에 관한 데이터가 암호화된 암호문)인 경우, 단말 장치(100, 100')가 동작할 때 호출되는 시스템 콜의 패턴에 관한 모델을 생성할 수 있다. 또한, 서버(200)는 단말 장치(100, 100')로부터 수신한 행위 데이터가 단말 장치(100, 100')가 수행한 동작에 관한 데이터(구체적으로는, 단말 장치(100, 100')가 수행한 동작에 관한 데이터가 암호화된 암호문)인 경우, 단말 장치(100, 100')의 동작 패턴에 관한 모델을 생성할 수 있다.
이때, 서버(200)가 모델을 생성한다는 것은 서버(200)가 해당 행위 데이터(구체적으로는, 암호문)에 대한 모델을 직접 생성하는 것뿐만 아니라, 모델 생성을 위한 파라미터를 생성하는 것까지 포함할 수 있다. 한편, 서버(200)가 제공하는 모델(또는 파라미터)은 기설정된 주기로 단말 장치(100, 100')에서 업데이트될 수 있다.
이에 따라, 단말 장치(100, 100')는, 전송된 암호문에 기초하여 학습된 행위 데이터에 대한 모델(또는 파라미터)이 수신되면, 수신된 모델(또는 파라미터)에 기초하여 단말 장치(100, 100')의 동작을 모니터링할 수 있다(S640).
구체적으로, 단말 장치(100, 100')는, 상기 S610 단계에서 결정된 개수 단위의 동일한 타입의 행위 데이터가 서로 다른 암호문으로 암호화되도록, 모델(또는 파라미터) 수신 후 단말 장치(100, 100')에서 생성된 행위 데이터를 암호화하여 암호문을 생성하고, 모델(또는 파라미터) 수신 후 생성된 암호문을 서버(200)로부터 수신한 모델(또는 파라미터를 이용하여 단말 장치(100, 100')가 생성한 모델)과 비교하여 단말 장치(100, 100')의 동작을 모니터링할 수 있다.
한편, 이상에서는, 행위 데이터의 예로 시스템 콜에 관한 데이터 및 단말 장치(100, 100')가 수행한 동작에 관한 데이터를 주로 설명하였으나, 행위 데이터가 이에 한정되는 것은 아니다. 즉, 사용자의 조작에 따라 단말 장치(100, 100')에서 생성되는 데이터로서, 행위 데이터의 종류별 빈도 수에 관한 통계 데이터가 존재하여 주파수 공격이 가능하고, 서버(200)에서 기계 학습이 가능한 데이터로는 어떤 데이터이든 행위 데이터가 될 수 있다. 예를 들어, 사용자가 단말 장치(100, 100')의 잠금 화면을 해제한 동작에 관한 데이터, 사용자의 웹 서핑 내역에 관한 데이터, 사용자의 온라인 쇼핑 내역에 관한 데이터, 사용자가 입력한 텍스트에 관한 데이터 등도 행위 데이터가 될 수 있다. 이와 같은 행위 데이터 역시 전술한 바와 같이, 균일 샘플링 및 결정론적 암호화를 통해 암호화되며, 서버(200)로 암호문이 전송된다.
서버(200)는 행위 데이터(정확히는, 암호문)를 학습하여 모델을 생성할 수 있다. 예를 들어, 행위 데이터가 잠금 화면 해제 동작에 관한 데이터인 경우, 서버(200)는 사용자의 잠금 화면 해제 동작 패턴에 관한 모델을 생성할 수 있다. 또한, 행위 데이터가 사용자의 애플리케이션 사용 내역에 관한 데이터인 경우, 서버(200)는 사용자의 애플리케이션 사용 패턴에 관한 모델을 생성할 수 있다. 또한, 행위 데이터가 사용자의 온라인 쇼핑 내역에 관한 데이터인 경우, 서버(200)는 사용자의 온라인 쇼핑 패턴에 관한 모델을 생성할 수 있다. 또한, 행위 데이터가 사용자가 입력한 텍스트에 관한 데이터인 경우, 서버(200)는 사용자의 단어 사용 패턴에 관한 모델을 생성할 수 있다.
이와 같이, 서버(200)에서 생성된 모델은 단말 장치(100, 100')로 제공되며, 단말 장치(100, 100')는 수신한 모델을 이용하여 다양한 동작을 수행할 수 있다. 한편, 이상에서는 단말 장치(100, 100')가 수신한 모델을 이용하여 단말 장치(100, 100')의 동작을 모니터링하는 것을 주로 예로 들어 설명하였으나, 이에 한정되는 것이 아님은 물론이다. 가령, 온라인 쇼핑 패턴에 관한 모델이나 애플리케이션 사용 패턴에 관한 모델을 수신한 경우, 단말 장치(100, 100')는 상품 추천 서비스나 애플리케이션 추천 서비스를 제공할 수도 있다. 또한, 사용자의 단어 사용 패턴에 관한 모델을 수신한 경우, 단말 장치(100, 100')는 관련 검색어 또는 유사어 추천 서비스를 제공할 수도 있다. 단말 장치(100, 100')가 서버(200)로부터 수신한 모델에 따라 어떤 동작을 수행할 수 있는지에 관한 보다 구체적인 내용은, 본 개시의 요지와 무관하므로 더 자세한 설명은 생략한다.
한편, 이상에서는, 서버(200)가 기계 학습(machine learning)을 통해 모델을 생성하는 것을 예로 들어 설명하였으나, 본 개시의 기술적 사상이 이에 한정되는 것은 아니다. 가령, 서버(200)가 신경망 또는 딥러닝 알고리즘을 이용하여 행위 데이터(구체적으로는, 암호문)를 학습하고, 학습된 모델을 단말 장치(100, 100')로 제공하는 시스템에서도 본 개시의 기술적 사상이 그대로 적용될 수 있음은 물론이다.
이상 설명한 바와 같이 본 개시의 다양한 실시 예에 따르면, 프라이버시 문제없이 서버에서 단말 장치 사용자의 행위 데이터를 학습하고, 학습된 모델을 단말 장치에서 활용할 수 있게 된다.
한편, 본 개시의 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 여기서, 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 서버(200) 또는 단말 장치(100, 100')를 포함할 수 있다. 상기 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 상기 프로세서의 제어하에 다른 구성요소들을 이용하여 상기 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
일 실시 예에 따르면, 본 개시에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
이상의 설명은 본 개시의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 개시의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 또한, 본 개시에 따른 실시 예들은 본 개시의 기술 사상을 한정하기 위한 것이 아니라 설명하기 한 것이고, 이러한 실시 예에 의하여 본 개시의 기술 사상의 범위가 한정되는 것은 아니다. 따라서, 본 개시의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 개시의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (15)

  1. 단말 장치의 제어 방법에 있어서,
    사용자가 상기 단말 장치를 조작함에 따라 생성되는 행위 데이터의 데이터 타입별로 상기 행위 데이터가 암호화될 서로 다른 암호문의 개수를 결정하는 단계;
    상기 결정된 개수 단위의 동일한 타입의 행위 데이터가 서로 다른 암호문으로 암호화되도록 상기 행위 데이터를 암호화하여 암호문을 생성하는 단계;
    상기 생성된 암호문을 외부 서버로 전송하는 단계;
    상기 전송된 암호문에 기초하여 학습된 상기 행위 데이터에 대한 모델이 수신되면, 상기 수신된 모델에 기초하여 상기 단말 장치의 동작을 모니터링하는 단계;를 포함하는 제어 방법.
  2. 제 1 항에 있어서,
    상기 결정하는 단계는,
    상기 행위 데이터의 데이터 타입별 발생 빈도 수에 관한 통계 데이터를 획득하는 단계; 및
    상기 획득된 통계 데이터 상의 행위 데이터 타입 각각이 적어도 하나의 암호문으로 암호화될 경우 각 암호문의 발생 빈도 수가 기설정된 빈도 수가 되도록 하는 데이터 타입별 암호문의 개수를 상기 서로 다른 암호 문의 개수로 결정하는 단계;를 포함하는 것을 특징으로 하는 제어 방법.
  3. 제 2 항에 있어서,
    상기 기설정된 빈도 수는,
    상기 통계 데이터 상의 상기 행위 데이터의 데이터 타입별 발생 빈도 수와는 상이한 것을 특징으로 하는 제어 방법.
  4. 제 1 항에 있어서,
    상기 모니터링하는 단계는,
    상기 결정된 개수 단위의 동일한 타입의 행위 데이터가 상기 서로 다른 암호문으로 암호화되도록, 상기 모델 수신 후 생성된 행위 데이터를 암호화하여 암호문을 생성하는 단계; 및
    상기 모델 수신 후 생성된 암호문을 상기 모델과 비교하여 상기 단말 장치의 동작을 모니터링하는 단계;를 포함하는 것을 특징으로 하는 제어 방법.
  5. 제 1 항에 있어서,
    상기 생성하는 단계는,
    결정론적 암호화 방식(deterministic encryption scheme)을 이용하여 상기 생성되는 행위 데이터를 순차적으로 암호화하는 것을 특징으로 하는 제어 방법.
  6. 제 1 항에 있어서,
    상기 행위 데이터는,
    상기 외부 서버가 상기 모델을 생성하기 위해 기계 학습에 사용하는 학습 데이터인 것을 특징으로 하는 제어 방법.
  7. 제 1 항에 있어서,
    상기 행위 데이터는,
    상기 단말 장치의 운영 체제가 제공하는 시스템 콜 함수의 호출 데이터 또는 상기 단말 장치가 수행한 동작에 관한 데이터이고,
    상기 모델은,
    상기 단말 장치가 동작할 때 호출되는 시스템 콜의 패턴에 관한 모델 또는 상기 단말 장치의 동작 패턴에 관한 모델인 것을 특징으로 하는 제어 방법.
  8. 제 2 항에 있어서,
    상기 모델을 기설정된 주기로 업데이트하는 단계;를 더 포함하는 것을 특징을 하는 제어 방법.
  9. 단말 장치에 있어서,
    외부 서버와 통신하는 통신부; 및
    사용자가 상기 단말 장치를 조작함에 따라 생성되는 행위 데이터의 데이터 타입별로 상기 행위 데이터가 암호화될 서로 다른 암호문의 개수를 결정하며, 상기 결정된 개수 단위의 동일한 타입의 행위 데이터가 서로 다른 암호문으로 암호화되도록 상기 행위 데이터를 암호화하여 암호문을 생성하고, 상기 생성된 암호문을 외부 서버로 전송하며, 상기 전송된 암호문에 기초하여 학습된 상기 행위 데이터에 대한 모델이 수신되면, 상기 수신된 모델에 기초하여 상기 단말 장치의 동작을 모니터링하는 프로세서;를 포함하는 단말 장치.
  10. 제 9 항에 있어서,
    상기 프로세서는,
    상기 행위 데이터의 데이터 타입별 발생 빈도 수에 관한 통계 데이터를 획득하고, 상기 획득된 통계 데이터 상의 행위 데이터 타입 각각이 적어도 하나의 암호문으로 암호화될 경우 각 암호문의 발생 빈도 수가 기설정된 빈도 수가 되도록 하는 데이터 타입별 암호문의 개수를 상기 서로 다른 암호 문의 개수로 결정하는 것을 특징으로 하는 단말 장치.
  11. 제 10 항에 있어서,
    상기 기설정된 빈도 수는,
    상기 통계 데이터 상의 상기 행위 데이터의 데이터 타입별 발생 빈도 수와는 상이한 것을 특징으로 하는 단말 장치.
  12. 제 9 항에 있어서,
    상기 프로세서는,
    상기 결정된 개수 단위의 동일한 타입의 행위 데이터가 상기 서로 다른 암호문으로 암호화되도록, 상기 모델 수신 후 생성된 행위 데이터를 암호화하여 암호문을 생성하고, 상기 모델 수신 후 생성된 암호문을 상기 모델과 비교하여 상기 단말 장치의 동작을 모니터링하는 것을 특징으로 하는 단말 장치.
  13. 제 9 항에 있어서,
    상기 프로세서는,
    결정론적 암호화 방식(deterministic encryption scheme)을 이용하여 상기 생성되는 행위 데이터를 순차적으로 암호화하는 것을 특징으로 하는 단말 장치.
  14. 제 9 항에 있어서,
    상기 행위 데이터는,
    상기 외부 서버가 상기 모델을 생성하기 위해 기계 학습에 사용하는 학습 데이터인 것을 특징으로 하는 단말 장치.
  15. 제 9 항에 있어서,
    상기 행위 데이터는,
    상기 단말 장치의 운영 체제가 제공하는 시스템 콜 함수의 호출 데이터 또는 상기 단말 장치가 수행한 동작에 관한 데이터이고,
    상기 모델은,
    상기 단말 장치가 동작할 때 호출되는 시스템 콜의 패턴에 관한 모델 또는 상기 단말 장치의 동작 패턴에 관한 모델인 것을 특징으로 하는 단말 장치.
PCT/KR2018/014392 2017-12-21 2018-11-22 단말 장치 및 단말 장치의 제어 방법 WO2019124770A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/760,653 US11341253B2 (en) 2017-12-21 2018-11-22 Terminal apparatus and control method of terminal apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2017-0177237 2017-12-21
KR1020170177237A KR102408348B1 (ko) 2017-12-21 2017-12-21 단말 장치 및 단말 장치의 제어 방법

Publications (1)

Publication Number Publication Date
WO2019124770A1 true WO2019124770A1 (ko) 2019-06-27

Family

ID=66993518

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2018/014392 WO2019124770A1 (ko) 2017-12-21 2018-11-22 단말 장치 및 단말 장치의 제어 방법

Country Status (3)

Country Link
US (1) US11341253B2 (ko)
KR (1) KR102408348B1 (ko)
WO (1) WO2019124770A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102127171B1 (ko) * 2019-08-30 2020-06-26 주식회사 카카오뱅크 신분증 인식 모델을 이용한 분산 학습 방법, 서버, 어플리케이션 및 이를 통한 신분증 인식 방법
KR102501824B1 (ko) * 2019-08-30 2023-02-20 주식회사 카카오뱅크 신분증 인식 모델을 이용한 분산 학습 방법, 서버, 어플리케이션 및 이를 통한 신분증 인식 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150110653A (ko) * 2013-01-25 2015-10-02 퀄컴 인코포레이티드 모바일 디바이스에 대한 거동 특징들의 적응적 관찰
KR20160008509A (ko) * 2013-03-18 2016-01-22 더 트러스티스 오브 컬럼비아 유니버시티 인 더 시티 오브 뉴욕 하드웨어 특징들을 사용한 이상 프로세스들의 비감시된 검출
KR20170056045A (ko) * 2015-11-12 2017-05-23 주식회사 엔젠소프트 다양한 웹 서비스 환경에서 사용자의 행위 패턴 분석을 통한 이상행위 탐지 방법과 그를 위한 장치
KR20170081386A (ko) * 2016-01-04 2017-07-12 한국전자통신연구원 다중 특징벡터를 이용하는 행위기반 악성코드 탐지 장치 및 방법
US20170264749A1 (en) * 2015-10-19 2017-09-14 Nanjing Howso Technology Co., Ltd CROWDSOURCING-MODE-BASED ANALYSIS METHOD FOR UTILIZATION OF WIRELESS NETWORK RESOURCES BY MOBILE Apps

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7072876B1 (en) * 2000-09-19 2006-07-04 Cigital System and method for mining execution traces with finite automata
JP2006053788A (ja) * 2004-08-12 2006-02-23 Ntt Docomo Inc ソフトウェア動作監視装置及びソフトウェア動作監視方法
US20070297606A1 (en) * 2006-06-27 2007-12-27 Tkacik Thomas E Multiple key security and method for electronic devices
JP5212208B2 (ja) 2009-03-23 2013-06-19 沖電気工業株式会社 受信装置、方法及びプログラム
US9160742B1 (en) 2013-09-27 2015-10-13 Emc Corporation Localized risk analytics for user authentication
CN105745663B (zh) 2013-12-19 2018-11-16 英特尔公司 包括机器学习快照评估的保护系统
US9866646B2 (en) 2015-08-07 2018-01-09 Bento Labs Inc. Systems and methods for anticipatory push search for a homescreen browser
US9960911B2 (en) * 2015-09-11 2018-05-01 Signalchip Innovations Private Limited System and method for securing wireless communication through physical layer control and data channel
US9830470B2 (en) 2015-10-09 2017-11-28 Sap Se Encrypting data for analytical web applications
US10341321B2 (en) * 2016-10-17 2019-07-02 Mocana Corporation System and method for policy based adaptive application capability management and device attestation
US20180191759A1 (en) * 2017-01-04 2018-07-05 American Express Travel Related Services Company, Inc. Systems and methods for modeling and monitoring data access behavior
US10586057B2 (en) * 2017-11-16 2020-03-10 Intuit Inc. Processing data queries in a logically sharded data store

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150110653A (ko) * 2013-01-25 2015-10-02 퀄컴 인코포레이티드 모바일 디바이스에 대한 거동 특징들의 적응적 관찰
KR20160008509A (ko) * 2013-03-18 2016-01-22 더 트러스티스 오브 컬럼비아 유니버시티 인 더 시티 오브 뉴욕 하드웨어 특징들을 사용한 이상 프로세스들의 비감시된 검출
US20170264749A1 (en) * 2015-10-19 2017-09-14 Nanjing Howso Technology Co., Ltd CROWDSOURCING-MODE-BASED ANALYSIS METHOD FOR UTILIZATION OF WIRELESS NETWORK RESOURCES BY MOBILE Apps
KR20170056045A (ko) * 2015-11-12 2017-05-23 주식회사 엔젠소프트 다양한 웹 서비스 환경에서 사용자의 행위 패턴 분석을 통한 이상행위 탐지 방법과 그를 위한 장치
KR20170081386A (ko) * 2016-01-04 2017-07-12 한국전자통신연구원 다중 특징벡터를 이용하는 행위기반 악성코드 탐지 장치 및 방법

Also Published As

Publication number Publication date
KR102408348B1 (ko) 2022-06-14
US20200349262A1 (en) 2020-11-05
US11341253B2 (en) 2022-05-24
KR20190075558A (ko) 2019-07-01

Similar Documents

Publication Publication Date Title
WO2017131300A1 (en) System and method to enable privacy-preserving real time services against inference attacks
WO2016137307A1 (en) Attestation by proxy
WO2016036115A1 (ko) 재등록을 관리하는 전자 장치 및 방법
WO2015012441A1 (en) Digital device and control method thereof
WO2017026732A1 (ko) 전자 장치 및 이의 알림 출력 제어 방법
WO2015016579A1 (en) Method for deciding location of target device and electronic device thereof
WO2019124770A1 (ko) 단말 장치 및 단말 장치의 제어 방법
WO2020258672A1 (zh) 网络访问的异常检测方法和装置
WO2020155773A1 (zh) 文本输入异常监控方法、装置、计算机设备及存储介质
WO2016200058A1 (ko) 바이너리 병합 장치, 방법 및 컴퓨터 프로그램
WO2020017834A1 (ko) 복수의 디스플레이장치를 포함하는 시스템 및 그 제어방법
WO2017090931A1 (ko) 이벤트 관리 서비스를 제공하는 전자 장치 및 방법
WO2016036049A1 (ko) 검색 서비스 제공 장치, 시스템, 방법 및 컴퓨터 프로그램
WO2020258658A1 (zh) 异常操作识别方法、装置、计算机设备及存储介质
WO2019050142A1 (ko) 슬레이브 디바이스와 데이터 통신을 수행하는 디바이스 및 방법
WO2018076539A1 (zh) 伪无线接入点识别方法及系统
WO2018084347A1 (ko) 영상 제공 장치 및 방법
WO2021118009A1 (ko) 디스플레이 장치 및 그 제어 방법
WO2021006667A1 (en) Electronic apparatus, method of controlling the same, server, and recording medium
WO2019066099A1 (ko) 통합된 분석 모델에 기초하여 이상 행동을 감지하는 시스템 및 그 방법
WO2019112127A1 (en) Electronic device and method for controlling the electronic device for joint transmission thereof
WO2019117404A1 (ko) 패킷 전송을 제어하는 서버 및 방법
WO2021145588A1 (ko) 액세스 포인트 및 이의 통신 연결 방법
WO2017150841A1 (ko) 전자장치, 어플리케이션 실행 시스템 및 그 제어방법
WO2022177268A1 (ko) 파편적 데이터 통합 장치 및 방법

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: 18890248

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18890248

Country of ref document: EP

Kind code of ref document: A1