KR101998853B1 - Method for verifying computation, apparatus and system for executing the method - Google Patents
Method for verifying computation, apparatus and system for executing the method Download PDFInfo
- Publication number
- KR101998853B1 KR101998853B1 KR1020170106870A KR20170106870A KR101998853B1 KR 101998853 B1 KR101998853 B1 KR 101998853B1 KR 1020170106870 A KR1020170106870 A KR 1020170106870A KR 20170106870 A KR20170106870 A KR 20170106870A KR 101998853 B1 KR101998853 B1 KR 101998853B1
- Authority
- KR
- South Korea
- Prior art keywords
- calculation
- result
- remote server
- delegation request
- delegation
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/008—Reliability or availability analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0709—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
Abstract
계산 검증 방법과 이를 수행하기 위한 장치 및 시스템이 개시된다. 개시되는 일 실시예에 따른 계산 검증 시스템은, 원격 서버 계산 위임 이벤트의 발생 여부를 확인하고, 원격 서버 계산 위임 이벤트가 발생하는 경우, 함수, 함수의 입력에 사용되는 입력값, 및 입력값에 대응하는 결과값이 저장된 입력 결과 리스트에서 함수 및 해당 함수의 입력에 사용되는 입력값을 추출하며, 추출한 함수 및 입력값을 포함하는 예비 계산 위임 요청을 전송하는 클라이언트 장치 및 예비 계산 위임 요청을 수신하고, 예비 계산 위임 요청에 대한 결과값을 클라이언트 장치로 전송하는 원격 서버를 포함하며, 클라이언트 장치는, 원격 서버로부터 수신한 결과값 및 입력 결과 리스트에 저장된 결과값을 비교하여 원격 서버의 신뢰도를 검증한다.A calculation verification method and apparatus and system for performing the same are disclosed. The calculation verification system according to an embodiment of the present invention confirms whether a remote server calculation delegation event has occurred and, when a remote server calculation delegation event occurs, corresponds to an input value used for inputting a function, a function, and an input value A client device that extracts a function and an input value used for inputting the function, and transmits a preliminary calculation delegation request including the extracted function and the input value, and a preliminary calculation delegation request, And a remote server for transmitting the result of the preliminary calculation delegation request to the client device. The client device verifies the reliability of the remote server by comparing the result value received from the remote server and the result value stored in the input result list.
Description
본 발명의 실시예는 계산 위임시 결과값에 대한 검증 기술과 관련된다. An embodiment of the present invention relates to a verification technique for the result value at the time of calculation delegation.
계산 위임(delegation of computation)이란 제1 컴퓨팅 장치가 시간과 자원이 많이 필요한 계산을 제2 컴퓨팅 장치로 요청하고 그 결과값을 제공받는 것을 의미한다. 이러한 계산 위임은 제1 컴퓨팅 장치의 컴퓨팅 용량이 제한되어 제2 컴퓨팅 장치로 계산을 위임하는 것이 직접 계산하는 것 보다 유리한 경우에 수행될 수 있다. 예를 들어, 클라우드 서비스를 제공하는 서버는 모바일 단말 등의 클라이언트들로부터 복잡한 계산을 위임 받아 그 결과 값을 전송하는 서비스를 제공할 수 있다. 그러나, 검증되지 않거나 신뢰할 수 없는 서버는 클라이언트들에게 의도적으로 변형된 결과값을 전송할 수 있다. 또한 서버에서 의도적으로 변형된 결과값을 전송하지 않더라도, 네트워크 전송 구간 등에서 결과값이 변형되거나 왜곡되는 경우가 발생할 수 있다. 이에 클라이언트는 계산 위임을 통해 서버로부터 수신된 결과값이 정확한 값인지를 검증할 필요가 있다. The delegation of computation means that the first computing device requests the second computing device for a computation that requires a lot of time and resources, and the result is provided. Such computation delegation may be performed when the computing capacity of the first computing device is limited and it is advantageous to delegate the computation to the second computing device rather than to compute directly. For example, a server providing a cloud service can provide a service for delegating complex calculation from clients such as a mobile terminal and transmitting the resultant value. However, unverified or untrusted servers may transmit intentionally modified results to clients. Even if the server does not intentionally transmit the modified result, the result may be distorted or distorted in the network transmission interval. Therefore, the client needs to verify whether the result value received from the server through the calculation delegation is correct value.
본 발명의 실시예는 계산을 위임한 원격 서버로부터 수신한 결과값을 검증할 수 있는 검증 방법과 이를 수행하기 위한 장치 및 시스템을 제공하기 위한 것이다.An embodiment of the present invention is to provide a verification method capable of verifying a result value received from a remote server to which calculation is delegated, and an apparatus and system for performing the verification method.
개시되는 일 실시예에 따른 계산 검증 시스템은, 원격 서버 계산 위임 이벤트의 발생 여부를 확인하고, 상기 원격 서버 계산 위임 이벤트가 발생하는 경우, 함수, 상기 함수의 입력에 사용되는 입력값, 및 상기 입력값에 대응하는 결과값이 저장된 입력 결과 리스트에서 함수 및 해당 함수의 입력에 사용되는 입력값을 추출하며, 추출한 함수 및 입력값을 포함하는 예비 계산 위임 요청을 전송하는 클라이언트 장치; 및 상기 예비 계산 위임 요청을 수신하고, 상기 예비 계산 위임 요청에 대한 결과값을 상기 클라이언트 장치로 전송하는 원격 서버를 포함하며, 상기 클라이언트 장치는, 상기 원격 서버로부터 수신한 결과값 및 상기 입력 결과 리스트에 저장된 결과값을 비교하여 상기 원격 서버의 신뢰도를 검증한다.The calculation verification system according to an embodiment of the present invention confirms whether a remote server calculation delegation event is generated, and when the remote server calculation delegation event occurs, an input value used for input of the function, A client device for extracting a function and an input value used for inputting the function in the input result list storing the result value corresponding to the value and transmitting a preliminary calculation delegation request including the extracted function and the input value; And a remote server for receiving the preliminary computation delegation request and for transmitting the result of the preliminary computational delegation request to the client device, wherein the client device further comprises: a result value received from the remote server; And verifies the reliability of the remote server.
상기 클라이언트 장치는, 상기 원격 서버로부터 수신한 결과값 및 상기 입력 결과 리스트에 저장된 결과값이 일치하는 경우, 계산 위임 요청을 상기 원격 서버로 전송하고, 상기 원격 서버로부터 상기 계산 위임 요청에 대한 결과값을 수신할 수 있다.Wherein the client device transmits a calculation delegation request to the remote server when the result value received from the remote server matches the result value stored in the input result list, Lt; / RTI >
상기 계산 검증 시스템은, 신뢰도가 검증된 로컬 컴퓨팅 장치를 더 포함하고, 상기 클라이언트 장치는, 상기 원격 서버로 전송하였던 계산 위임 요청을 상기 로컬 컴퓨팅 장치에게도 전송하며, 상기 로컬 컴퓨팅 장치로부터 상기 계산 위임 요청에 대한 결과값을 수신할 수 있다.Wherein the calculation verification system further comprises a verified local computing device, wherein the client device also transmits to the local computing device a computation delegation request that was sent to the remote server, Lt; / RTI >
상기 클라이언트 장치는, 상기 원격 서버로부터 수신한 계산 위임 요청에 대한 결과값과 상기 로컬 컴퓨팅 장치로부터 수신한 계산 위임 요청에 대한 결과값을 비교하여 상기 원격 서버의 신뢰도를 재검증할 수 있다.The client device may verify the reliability of the remote server by comparing the result of the calculation delegation request received from the remote server with the result of the calculation delegation request received from the local computing device.
상기 계산 검증 시스템은, 복수 개의 원격 서버를 포함하고, 상기 클라이언트 장치는, 상기 원격 서버 계산 위임 이벤트 발생 시 상기 함수 및 입력값을 포함하는 예비 계산 위임 요청을 상기 복수 개의 원격 서버로 각각 전송하고, 상기 복수 개의 원격 서버로부터 상기 예비 계산 위임 요청에 대한 결과값을 각각 수신하며, 상기 복수 개의 원격 서버로부터 수신한 결과값 및 상기 입력 결과 리스트에 저장된 결과값을 비교하여 상기 복수 개의 원격 서버들의 신뢰도를 검증할 수 있다.Wherein the calculation verification system includes a plurality of remote servers and the client device transmits a preliminary calculation delegation request including the function and the input value to the plurality of remote servers when the remote server calculation delegation event occurs, Receiving a result value of the preliminary calculation delegation request from the plurality of remote servers, comparing the result value received from the plurality of remote servers with the result value stored in the input result list, Can be verified.
상기 클라이언트 장치는, 상기 복수 개의 원격 서버들 중 상기 검증이 완료된 원격 서버들로 계산 위임 요청을 전송하고, 상기 원격 서버들로부터 상기 계산 위임 요청에 대한 결과값을 각각 수신할 수 있다.The client device may transmit a calculation delegation request to the verified remote servers among the plurality of remote servers and receive the result of the calculation delegation request from the remote servers, respectively.
상기 클라이언트 장치는, 상기 원격 서버들로부터 수신한 상기 계산 위임 요청에 대한 결과값들이 동일하지 않은 경우, 상기 수신한 결과값들 중 상호 일치하는 개수가 가장 많은 결과값을 상기 계산 위임 요청에 대응하는 결과값으로 결정할 수 있다.Wherein the client device is configured to, when the result values of the calculation delegation request received from the remote servers are not equal to each other, calculate a result value having the largest number of mutually matching among the received result values, Can be determined as a result value.
상기 계산 검증 시스템은, 신뢰도가 검증된 로컬 컴퓨팅 장치를 더 포함하고, 상기 클라이언트 장치는, 상기 검증이 완료된 원격 서버들로 전송하였던 계산 위임 요청을 상기 로컬 컴퓨팅 장치에게도 전송하며, 상기 로컬 컴퓨팅 장치로부터 상기 계산 위임 요청에 대한 결과값을 수신할 수 있다.Wherein the computational validation system further comprises a verified local computing device and wherein the client device also transmits to the local computing device a computational delegation request that was sent to the verified remote servers, And receive the result of the calculation delegation request.
상기 클라이언트 장치는, 상기 검증이 완료된 원격 서버들로부터 수신한 계산 위임 요청에 대한 결과값들과 상기 로컬 컴퓨팅 장치로부터 수신한 계산 위임 요청에 대한 결과값을 비교하여 상기 검증이 완료된 원격 서버들에 대해 신뢰도 점수를 부여할 수 있다.The client device compares the result of the calculation delegation request received from the verified remote servers with the result of the calculation delegation request received from the local computing device, A reliability score can be given.
개시되는 일 실시예에 따른 컴퓨팅 장치는, 하나 이상의 프로세서들; 메모리; 및 하나 이상의 프로그램들을 포함하고, 상기 하나 이상의 프로그램들은 상기 메모리에 저장되고, 상기 하나 이상의 프로세서들에 의해 실행되도록 구성되며, 상기 하나 이상의 프로그램들은, 원격 서버 계산 위임 이벤트의 발생 여부를 확인하기 위한 명령; 상기 원격 서버 계산 위임 이벤트가 발생하는 경우, 함수, 상기 함수의 입력에 사용되는 입력값, 및 상기 입력값에 대응하는 결과값이 저장된 입력 결과 리스트에서 함수 및 해당 함수의 입력에 사용되는 입력값을 추출하기 위한 명령; 추출한 함수 및 입력값을 포함하는 예비 계산 위임 요청을 원격 서버로 전송하기 위한 명령; 상기 원격 서버로부터 상기 예비 계산 위임 요청에 대한 결과값을 수신하기 위한 명령; 및 상기 원격 서버로부터 수신한 결과값 및 상기 입력 결과 리스트에 저장된 결과값을 비교하여 상기 원격 서버의 신뢰도를 검증하기 위한 명령을 포함한다.A computing device according to one disclosed embodiment includes: one or more processors; Memory; And one or more programs, wherein the one or more programs are stored in the memory and are configured to be executed by the one or more processors, the one or more programs comprising instructions for determining whether a remote server computation delegation event has occurred ; In the case where the remote server calculation delegation event occurs, a function, an input value used for inputting the function, and an input value used for inputting a function and a corresponding function in the input result list storing the result value corresponding to the input value An instruction to extract; Instructions for sending a preliminary computational delegation request containing the extracted function and input values to a remote server; Receiving a result value for the preliminary calculation delegation request from the remote server; And an instruction to verify the reliability of the remote server by comparing the result value received from the remote server with the result value stored in the input result list.
상기 하나 이상의 프로그램들은, 상기 원격 서버로부터 수신한 결과값 및 상기 입력 결과 리스트에 저장된 결과값이 일치하는 경우, 계산 위임 요청을 상기 원격 서버로 전송하기 위한 명령; 상기 원격 서버로부터 상기 계산 위임 요청에 대한 결과값을 수신하기 위한 명령; 상기 원격 서버로 전송하였던 계산 위임 요청을 신뢰도가 검증된 로컬 컴퓨팅 장치에게도 전송하기 위한 명령; 및 상기 로컬 컴퓨팅 장치로부터 상기 계산 위임 요청에 대한 결과값을 수신하기 위한 명령을 더 포함할 수 있다.Wherein the one or more programs include: instructions for sending a request for calculation delegation to the remote server if the result value received from the remote server and the result value stored in the input result list match; Receiving a result value for the calculation delegation request from the remote server; An instruction to transfer the computation delegation request to the trusted computing device; And receiving a result value for the computational delegation request from the local computing device.
상기 하나 이상의 프로그램들은, 상기 원격 서버로부터 수신한 계산 위임 요청에 대한 결과값과 상기 로컬 컴퓨팅 장치로부터 수신한 계산 위임 요청에 대한 결과값을 비교하여 상기 원격 서버의 신뢰도를 재검증하기 위한 명령을 더 포함할 수 있다.Wherein the one or more programs further include instructions for re-verifying the reliability of the remote server by comparing the result of the calculation delegation request received from the remote server with the result of the calculation delegation request received from the local computing device .
개시되는 다른 실시예에 따른 컴퓨팅 장치는, 하나 이상의 프로세서들; 메모리; 및 하나 이상의 프로그램들을 포함하고, 상기 하나 이상의 프로그램들은 상기 메모리에 저장되고, 상기 하나 이상의 프로세서들에 의해 실행되도록 구성되며, 상기 하나 이상의 프로그램들은, 원격 서버 계산 위임 이벤트의 발생 여부를 확인하기 위한 명령; 상기 원격 서버 계산 위임 이벤트가 발생하는 경우, 함수, 상기 함수의 입력에 사용되는 입력값, 및 상기 입력값에 대응하는 결과값이 저장된 입력 결과 리스트에서 함수 및 해당 함수의 입력에 사용되는 입력값을 추출하기 위한 명령; 추출한 함수 및 입력값을 포함하는 예비 계산 위임 요청을 복수 개의 원격 서버로 전송하기 위한 명령; 상기 복수 개의 원격 서버로부터 상기 예비 계산 위임 요청에 대한 결과값을 각각 수신하기 위한 명령; 및 상기 복수 개의 원격 서버로부터 수신한 결과값 및 상기 입력 결과 리스트에 저장된 결과값을 비교하여 상기 복수 개의 원격 서버의 신뢰도를 검증하기 위한 명령을 포함한다.A computing device according to another disclosed embodiment includes: one or more processors; Memory; And one or more programs, wherein the one or more programs are stored in the memory and are configured to be executed by the one or more processors, the one or more programs comprising instructions for determining whether a remote server computation delegation event has occurred ; In the case where the remote server calculation delegation event occurs, a function, an input value used for inputting the function, and an input value used for inputting a function and a corresponding function in the input result list storing the result value corresponding to the input value An instruction to extract; Instructions for sending a preliminary computational delegation request including the extracted function and input values to a plurality of remote servers; Receiving a result of the preliminary calculation delegation request from the plurality of remote servers, respectively; And comparing the result values received from the plurality of remote servers with the result values stored in the input result list to verify the reliability of the plurality of remote servers.
상기 하나 이상의 프로그램들은, 상기 복수 개의 원격 서버들 중 상기 검증이 완료된 원격 서버들로 계산 위임 요청을 전송하기 위한 명령; 및 상기 원격 서버들로부터 상기 계산 위임 요청에 대한 결과값을 각각 수신하기 위한 명령을 더 포함할 수 있다.The one or more programs further comprising: instructions for sending a computational delegation request to the verified remote servers of the plurality of remote servers; And receiving a result value for the calculation delegation request from the remote servers, respectively.
상기 하나 이상의 프로그램들은, 상기 원격 서버들로부터 수신한 상기 계산 위임 요청에 대한 결과값들이 동일한지 여부를 확인하기 위한 명령; 및 상기 계산 위임 요청에 대한 결과값들이 동일하지 않은 경우, 상기 결과값들 중 상호 일치하는 개수가 가장 많은 결과값을 상기 계산 위임 요청에 대응하는 결과값으로 결정하기 위한 명령을 더 포함할 수 있다.Wherein the one or more programs include: instructions for determining whether the result values for the computation delegation request received from the remote servers are the same; And a step of determining, as a result value corresponding to the calculation delegation request, a result value having the largest number of mutually matching values among the result values when the result values for the calculation delegation request are not identical .
상기 하나 이상의 프로그램들은, 상기 검증이 완료된 원격 서버들로 전송하였던 계산 위임 요청을 신뢰도가 검증된 로컬 컴퓨팅 장치에게도 전송하기 위한 명령; 및 상기 로컬 컴퓨팅 장치로부터 상기 계산 위임 요청에 대한 결과값을 수신하기 위한 명령을 더 포함할 수 있다.The one or more programs further comprising: instructions for sending a computation delegation request to the verified local computing device, the computational delegation request being sent to the verified remote servers; And receiving a result value for the computational delegation request from the local computing device.
상기 하나 이상의 프로그램들은, 상기 검증이 완료된 원격 서버들로부터 수신한 계산 위임 요청에 대한 결과값들과 상기 로컬 컴퓨팅 장치로부터 수신한 계산 위임 요청에 대한 결과값을 비교하기 위한 명령; 및 상기 비교 결과에 따라 상기 검증이 완료된 원격 서버들에 대해 신뢰도 점수를 부여하기 위한 명령을 더 포함할 수 있다. Wherein the one or more programs include instructions for comparing result values for a computational delegation request received from the verified remote servers with results for a computational delegation request received from the local computing device; And an instruction to assign a reliability score to the remote servers that have been verified according to the comparison result.
개시되는 일 실시예에 따른 계산 검증 방법은, 하나 이상의 프로세서들, 및 상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서, 원격 서버 계산 위임 이벤트의 발생 여부를 확인하는 단계; 상기 원격 서버 계산 위임 이벤트가 발생하는 경우, 함수, 상기 함수의 입력에 사용되는 입력값, 및 상기 입력값에 대응하는 결과값이 저장된 입력 결과 리스트에서 함수 및 해당 함수의 입력에 사용되는 입력값을 추출하는 단계; 추출한 함수 및 입력값을 포함하는 예비 계산 위임 요청을 원격 서버로 전송하는 단계; 상기 원격 서버로부터 상기 예비 계산 위임 요청에 대한 결과값을 수신하는 단계; 및 상기 원격 서버로부터 수신한 결과값 및 상기 입력 결과 리스트에 저장된 결과값을 비교하여 상기 원격 서버의 신뢰도를 검증하는 단계를 포함한다.A computational verification method according to one disclosed embodiment is a method performed in a computing device having one or more processors and a memory storing one or more programs executed by the one or more processors, The method comprising: In the case where the remote server calculation delegation event occurs, a function, an input value used for inputting the function, and an input value used for inputting a function and a corresponding function in the input result list storing the result value corresponding to the input value Extracting; Transmitting a preliminary calculation delegation request including the extracted function and the input value to a remote server; Receiving a result of the preliminary calculation delegation request from the remote server; And comparing the result value received from the remote server with the result value stored in the input result list to verify the reliability of the remote server.
개시되는 실시예에 의하면, 원격 서버로 계산을 위임하기 전에, 이미 결과값을 알고 있는 함수 및 입력값에 대해 예비 계산 위임 요청을 하고, 그 결과값을 수신하여 기 저장된 결과값과 비교함으로써, 원격 서버에 대한 사전 검증(1차 검증)을 수행할 수 있게 된다. 그리고, 사전 검증이 완료된 원격 서버에 대해 부하 초과 작업에 대한 계산 위임을 요청하여 그 결과값을 수신한 후, 신뢰도가 검증된 로컬 컴퓨팅 장치)로 해당 부하 초과 작업에 대해 다시 계산 위임을 요청하고 그 결과값을 수신한 후, 2개의 결과값을 비교함으로써, 원격 서버에 대한 2차 검증을 수행할 수 있게 된다. 또한, 1차 검증 결과 및 2차 검증 결과 중 하나 이상을 기반으로 원격 서버에 대한 신뢰도를 평가할 수 있게 된다. According to the disclosed embodiment, before a calculation is delegated to a remote server, a preliminary calculation delegation request is made to a function and an input value that already know the result value, and the result is received and compared with the previously stored result value, It is possible to perform pre-verification (primary verification) on the server. Then, the pre-verified remote server requests the calculation delegation for the overloaded operation, receives the resultant value, and requests the trusted local computing device to recalculate the overloaded operation. After receiving the result value, it is possible to perform the secondary verification on the remote server by comparing the two result values. In addition, the reliability of the remote server can be evaluated based on at least one of the first verification result and the second verification result.
도 1은 본 발명의 일 실시예에 따른 계산 검증 시스템의 구성을 나타낸 도면
도 2는 본 발명의 일 실시예에 따른 계산 검증 방법을 설명하기 위한 흐름도
도 3은 본 발명의 다른 실시예에 따른 계산 검증 시스템의 구성을 나타낸 도면
도 4는 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도1 is a diagram illustrating a configuration of a calculation verification system according to an embodiment of the present invention;
2 is a flowchart for explaining a calculation verification method according to an embodiment of the present invention.
3 is a diagram illustrating a configuration of a calculation verification system according to another embodiment of the present invention;
4 is a block diagram illustrating and illustrating a computing environment including a computing device suitable for use in the exemplary embodiments.
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.Hereinafter, specific embodiments of the present invention will be described with reference to the drawings. The following detailed description is provided to provide a comprehensive understanding of the methods, apparatus, and / or systems described herein. However, this is merely an example and the present invention is not limited thereto.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description, well-known functions or constructions are not described in detail since they would obscure the invention in unnecessary detail. The following terms are defined in consideration of the functions of the present invention, and may be changed according to the intention or custom of the user, the operator, and the like. Therefore, the definition should be based on the contents throughout this specification. The terms used in the detailed description are intended only to describe embodiments of the invention and should in no way be limiting. Unless specifically stated otherwise, the singular form of a term includes plural forms of meaning. In this description, the expressions "comprising" or "comprising" are intended to indicate certain features, numbers, steps, operations, elements, parts or combinations thereof, Should not be construed to preclude the presence or possibility of other features, numbers, steps, operations, elements, portions or combinations thereof.
이하의 설명에 있어서, 신호 또는 정보의 "전송", "통신", "송신", "수신" 기타 이와 유사한 의미의 용어는 일 구성요소에서 다른 구성요소로 신호 또는 정보가 직접 전달되는 것뿐만이 아니라 다른 구성요소를 거쳐 전달되는 것도 포함한다. 특히 신호 또는 정보를 일 구성요소로 "전송" 또는 "송신"한다는 것은 그 신호 또는 정보의 최종 목적지를 지시하는 것이고 직접적인 목적지를 의미하는 것이 아니다. 이는 신호 또는 정보의 "수신"에 있어서도 동일하다. 또한 본 명세서에 있어서, 2 이상의 데이터 또는 정보가 "관련"된다는 것은 하나의 데이터(또는 정보)를 획득하면, 그에 기초하여 다른 데이터(또는 정보)의 적어도 일부를 획득할 수 있음을 의미한다. In the following description, terms such as " transmission ", "transmission "," transmission ", "reception ", and the like, of a signal or information refer not only to the direct transmission of signals or information from one component to another But also through other components. In particular, "transmitting" or "transmitting" a signal or information to an element is indicative of the final destination of the signal or information and not a direct destination. This is the same for "reception" of a signal or information. Also, in this specification, the fact that two or more pieces of data or information are "related" means that when one piece of data (or information) is acquired, at least a part of the other data (or information) can be obtained based thereon.
또한, 제1, 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소도 제1 구성 요소로 명명될 수 있다.Also, the terms first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The terms may be used for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component.
도 1은 본 발명의 일 실시예에 따른 계산 검증 시스템의 구성을 나타낸 도면이다. 1 is a diagram illustrating a configuration of a calculation verification system according to an embodiment of the present invention.
도 1을 참조하면, 계산 검증 시스템(100)은 클라이언트 장치(102), 로컬 컴퓨팅 장치(104), 및 원격 서버(106)를 포함할 수 있다. 클라이언트 장치(102)는 통신 네트워크(150)를 통해 로컬 컴퓨팅 장치(104) 및 원격 서버(106)와 통신 가능하게 연결된다. 몇몇 실시예들에서, 통신 네트워크(150)는 인터넷, 하나 이상의 로컬 영역 네트워크(local area networks), 광역 네트워크(wire area networks), 셀룰러 네트워크, 모바일 네트워크, 그 밖에 다른 종류의 네트워크들, 또는 이러한 네트워크들의 조합을 포함할 수 있다.Referring to FIG. 1, a
클라이언트 장치(102)는 로컬 컴퓨팅 장치(104) 또는 원격 서버(106)로 계산을 위임하는 단말기일 수 있다. 클라이언트 장치(102)는 사용자가 휴대할 수 있는 모바일 단말기(예를 들어, 스마트 폰, 태블릿, 웨어러블 기기 등)일 수 있다.The
클라이언트 장치(102)는 하나 이상의 함수 및 각 함수의 입력으로 사용되는 하나 이상의 입력값을 포함하는 계산 위임 요청을 로컬 컴퓨팅 장치(104)로 전송할 수 있다. 클라이언트 장치(102)는 로컬 컴퓨팅 장치(104)로부터 계산 위임 요청에 대응하는 결과값을 수신할 수 있다. 클라이언트 장치(102)는 각 함수에 대해 입력값 및 결과값을 매칭하여 저장할 수 있다. The
즉, 클라이언트 장치(102)는 계산을 위임할 함수들에 대해 복수 개의 입력값을 포함하는 계산 위임 요청을 로컬 컴퓨팅 장치(104)로 전송하여 로컬 컴퓨팅 장치(104)에서 각 함수 및 입력값에 대한 계산을 수행하도록 할 수 있다. 그리고, 로컬 컴퓨팅 장치(104)로부터 각 함수 및 입력값에 대한 결과값을 수신하고, 각 함수에 대해 입력값 및 결과값을 매칭하여 저장할 수 있다. 클라이언트 장치(102)는 각 함수에 대한 입력값 및 결과값을 입력 결과 리스트에 저장할 수 있다. 상기 입력값은 랜덤하게 생성될 수도 있고, 별도의 입력값 생성 알고리즘을 이용하여 생성될 수도 있다. 표 1은 클라이언트 장치(102)에서 각 함수, 입력값, 및 결과값이 매칭되어 저장되는 상태를 예시적으로 나타낸 표이다. That is, the
클라이언트 장치(102)는 원격 서버 계산 위임 이벤트가 발생하는 경우, 입력 결과 리스트에 저장되어 있는 함수 및 해당 함수의 입력에 사용되는 입력값을 포함하는 예비 계산 위임 요청을 원격 서버(106)로 전송할 수 있다. 일 실시예에서, 원격 서버 계산 위임 이벤트는 클라이언트 장치(102)에서 계산을 수행하기에는 계산량이 많은(즉, 부하(Load)가 많은) 작업이 주어진 경우 발생할 수 있다. 예를 들어, 원격 서버 계산 위임 이벤트는 클라이언트 장치(102)에서 계산을 수행하는 경우 클라이언트 장치(102)의 CPU 점유율이 기 설정된 임계 점유율을 초과할 것으로 예상되거나 계산 시간이 기 설정된 임계 계산 시간을 초과할 것으로 예상되는 작업(이하, 부하 초과 작업으로 지칭할 수 있음)이 주어진 경우 발생할 수 있다. 또한, 원격 서버 계산 위임 이벤트는 클라이언트 장치(102)에 부하 초과 작업이 주어지고, 로컬 컴퓨팅 장치(104)와 접속이 불가한 상황(예를 들어, 클라이언트 장치(102)의 사용자가 클라이언트 장치(102)를 소지하고 로컬 컴퓨팅 장치(104)로부터 원거리로 이동한 상황 등)에서 발생할 수 있다. 다만, 본 발명의 실시예들에서 계산 위임 이벤트의 발생 조건은 반드시 클라이언트 장치(102)의 계산량 또는 부하와 연관될 필요는 없다. 즉, 클라이언트 장치(102)는 계산량 또는 부하가 많은 작업 이외에도 다양한 이유로 계산을 위임할 수 있으며, 본 발명의 실시예들은 특정 조건에 한정되는 것은 아님을 유의한다. 이하의 설명에서는 편의를 위해 클라이언트 장치(102)의 부하 초과 작업에 대하여 원격 서버(106)로 계산을 위임하는 상황을 가정하기로 한다.The
클라이언트 장치(102)는 원격 서버(106)로부터 예비 계산 위임 요청에 대응하는 결과값을 수신하고, 수신한 결과값과 입력 결과 리스트에 저장되어 있는 결과값(즉, 예비 계산 위임 요청에 포함된 함수 및 입력값과 대응하여 미리 저장된 결과값)을 비교하여 원격 서버(106)에 대한 신뢰도를 사전 검증할 수 있다. The
클라이언트 장치(102)는 원격 서버(106)로부터 수신한 결과값과 입력 결과 리스트에 저장되어 있는 결과값이 일치하는 경우, 원격 서버(106)로 부하 초과 작업을 포함하는 계산 위임 요청을 전송할 수 있다. 클라이언트 장치(102)는 부하 초과 작업의 계산 위임 요청에 대한 결과값을 원격 서버(106)로부터 수신할 수 있다. The
클라이언트 장치(102)는 원격 서버(106)에게 계산 위임하였던 부하 초과 작업에 대한 계산 위임 요청을 로컬 컴퓨팅 장치(104)로 전송할 수 있다. 예시적인 실시예에서, 클라이언트 장치(102)는 로컬 컴퓨팅 장치(104)와 접속이 가능하게 된 경우, 원격 서버(106)에게 계산 위임하였던 부하 초과 작업에 대한 계산 위임 요청을 다시 로컬 컴퓨팅 장치(104)로 전송할 수 있다. The
클라이언트 장치(102)는 부하 초과 작업에 대해 원격 서버(106)로부터 수신한 결과값과 로컬 컴퓨팅 장치(104)로부터 수신한 결과값을 비교하여 원격 서버(106)에 대한 신뢰도를 평가할 수 있다. 즉, 부하 초과 작업에 대해 원격 서버(106)로부터 수신한 결과값과 로컬 컴퓨팅 장치(104)로부터 수신한 결과값이 일치하는 경우, 원격 서버(106)에 대해 일정 수준의 신뢰도를 부여하거나 기존 신뢰도 보다 높은 신뢰도를 부여할 수 있다. The
로컬 컴퓨팅 장치(104)는 신뢰도가 검증된 단말기일 수 있다. 로컬 컴퓨팅 장치(104)는 신뢰도가 기 설정된 임계 신뢰도를 초과하며, 해당 신뢰도가 검증된 단말기일 수 있다. 로컬 컴퓨팅 장치(104)는 클라이언트 장치(102) 보다 계산 성능이 우수한 단말기일 수 있다. 즉, 로컬 컴퓨팅 장치(104)는 동일한 작업을 수행함에 있어 클라이언트 장치(102) 보다 CPU 점유율이 낮거나 클라이언트 장치(102) 보다 빠르게 계산할 수 있는 단말기일 수 있다. 예시적인 실시예에서, 로컬 컴퓨팅 장치(104)는 클라이언트 장치(102)와 유선 또는 근거리 무선 통신(예를 들어, 와이파이 또는 블루투스 등)을 통해 통신 가능하게 연결될 수 있다. The
로컬 컴퓨팅 장치(104)는 하나 이상의 함수 및 각 함수의 입력으로 사용되는 하나 이상의 입력값을 포함하는 계산 위임 요청에 대응하여 결과값을 산출한 후, 산출한 결과값을 클라이언트 장치(102)로 전송할 수 있다. 또한, 로컬 컴퓨팅 장치(104)는 부하 초과 작업에 대한 계산 위임 요청에 대응하여 결과값을 산출한 후, 산출한 결과값을 클라이언트 장치(102)로 전송할 수 있다. The
원격 서버(106)는 계산 위임 요청에 대해 계산을 위임하여 처리하기 위한 서버일 수 있다. 예시적인 실시예에서, 원격 서버(106)는 클라우드 서비스를 제공하는 서버일 수 있으나, 이에 한정되는 것은 아니다. 원격 서버(106)는 예비 계산 위임 요청에 대응하여 결과값을 산출한 후, 산출한 결과값을 클라이언트 장치(102)로 전송할 수 있다. 또한, 원격 서버(106)는 부하 초과 작업에 대한 계산 위임 요청에 대응하여 결과값을 산출한 후, 산출한 결과값을 클라이언트 장치(102)로 전송할 수 있다. The
개시되는 실시예에 의하면, 원격 서버(106)로 부하 초과 작업에 대한 계산을 위임하기 전에, 이미 결과값을 알고 있는 함수 및 입력값에 대해 예비 계산 위임 요청을 하고, 그 결과값을 수신하여 기 저장된 결과값과 비교함으로써, 원격 서버(106)에 대한 사전 검증(1차 검증)을 수행할 수 있게 된다. 그리고, 사전 검증이 완료된 원격 서버(106)에 대해 부하 초과 작업에 대한 계산 위임을 요청하여 그 결과값을 수신한 후, 신뢰도가 검증된 로컬 컴퓨팅 장치(104)로 해당 부하 초과 작업에 대해 다시 계산 위임을 요청하고 그 결과값을 수신한 후, 2개의 결과값을 비교함으로써, 원격 서버(106)에 대한 2차 검증을 수행할 수 있게 된다. 또한, 1차 검증 결과 및 2차 검증 결과 중 하나 이상을 기반으로 원격 서버(106)에 대한 신뢰도를 평가할 수 있게 된다. According to the disclosed embodiment, before delegating calculation to the
한편, 여기서는 클라이언트 장치(102)가 로컬 컴퓨팅 장치(104)로 계산 위임 요청을 하고, 로컬 컴퓨팅 장치(104)로부터 각 함수 및 입력값에 대한 결과값을 수신하여 입력 결과 리스트를 생성하는 것으로 설명하였으나, 이에 한정되는 것은 아니며 클라이언트 장치(102)가 각 함수 및 입력값에 대한 결과값을 계산한 후, 입력 결과 리스트를 생성할 수도 있다. It has been described herein that the
도 2는 본 발명의 일 실시예에 따른 계산 검증 방법을 설명하기 위한 흐름도이다. 도시된 흐름도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.2 is a flowchart illustrating a calculation verification method according to an embodiment of the present invention. In the illustrated flow chart, the method is described as being divided into a plurality of steps, but at least some of the steps may be performed in reverse order, combined with other steps, performed together, omitted, divided into detailed steps, One or more steps may be added and performed.
도 2를 참조하면, 클라이언트 장치(102)는 하나 이상의 함수 및 각 함수의 입력으로 사용되는 하나 이상의 입력값을 포함하는 계산 위임 요청을 로컬 컴퓨팅 장치(104)로 전송한다(S 101). Referring to FIG. 2, the
다음으로, 클라이언트 장치(102)는 로컬 컴퓨팅 장치(104)로부터 계산 위임 요청에 대응하는 결과값을 수신하고(S 103), 각 함수에 대해 입력값 및 결과값을 매칭하여 저장한다(S 105). 클라이언트 장치(102)는 각 함수에 대한 입력값 및 결과값을 입력 결과 리스트에 저장할 수 있다.Next, the
다음으로, 클라이언트 장치(102)는 원격 서버 계산 위임 이벤트가 발생한 경우(S 107), 입력 결과 리스트에 기 저장된 함수 및 해당 함수의 입력에 사용되는 입력값을 추출하고, 추출한 함수 및 입력값을 포함하는 예비 계산 위임 요청을 원격 서버(106)로 전송한다(S 109). Next, when the remote server calculation delegation event has occurred (S 107), the
다음으로, 클라이언트 장치(102)는 원격 서버(106)로부터 예비 계산 위임 요청에 대한 결과값을 수신하고(S 111), 수신한 결과값과 입력 결과 리시트에 기 저장된 결과값을 비교하여 원격 서버(106)를 1차 검증한다(S 113). Next, the
다음으로, 클라이언트 장치(102)는 원격 서버(106)로부터 수신한 결과값과 입력 결과 리스트에 기 저장된 결과값이 일치하는 경우, 원격 서버(106)로 부하 초과 작업을 포함하는 계산 위임 요청을 전송한다(S 115). Next, when the result value received from the
다음으로, 클라이언트 장치(102)는 원격 서버(106)로부터 부하 초과 작업의 계산 위임 요청에 대한 결과값을 수신한다(S 117). 다음으로, 클라이언트 장치(102)는 원격 서버(106)에게 계산 위임하였던 부하 초과 작업에 대한 계산 위임 요청을 로컬 컴퓨팅 장치(104)로도 전송한다(S 119). Next, the
다음으로, 클라이언트 장치(102)는 로컬 컴퓨팅 장치(104)로부터 부하 초과 작업의 계산 위임 요청에 대한 결과값을 수신하고(S 121), 원격 서버(106)로부터 수신한 결과값과 로컬 컴퓨팅 장치(104)로부터 수신한 결과값을 비교하여 원격 서버(106)에 대한 신뢰도를 평가한다(S 123). 즉, 원격 서버(106)에 대한 2차 검증을 수행할 수 있다. Next, the
도 3은 본 발명의 다른 실시예에 따른 계산 검증 시스템의 구성을 나타낸 도면이다. 도 3에서는 도 1에 도시한 실시예와 차이가 나는 부분을 중점적으로 설명하기로 한다. 3 is a diagram illustrating a configuration of a calculation verification system according to another embodiment of the present invention. In FIG. 3, the difference from the embodiment shown in FIG. 1 will be mainly described.
도 3을 참조하면, 계산 검증 시스템(100)은 클라이언트 장치(102), 로컬 컴퓨팅 장치(104), 및 복수 개의 원격 서버(106)를 포함할 수 있다. 예시적인 실시예에서, 원격 서버(106)는 제1 원격 서버(106-1), 제2 원격 서버(106-2), 및 제3 원격 서버(106-3)를 포함할 수 있다. Referring to FIG. 3, the
클라이언트 장치(102)는 원격 서버 계산 위임 이벤트가 발생하는 경우, 입력 결과 리스트에 저장되어 있는 함수 및 해당 함수의 입력에 사용되는 입력값을 포함하는 예비 계산 위임 요청을 제1 원격 서버(106-1), 제2 원격 서버(106-2), 및 제3 원격 서버(106-3)로 각각 전송할 수 있다. When a remote server calculation delegation event occurs, the
클라이언트 장치(102)는 제1 원격 서버(106-1), 제2 원격 서버(106-2), 및 제3 원격 서버(106-3)로부터 예비 계산 위임 요청에 대응하는 결과값을 각각 수신하고, 수신한 각 결과값과 입력 결과 리스트에 기 저장된 결과값을 비교하여 부하 초과 작업을 위임할 원격 서버를 결정할 수 있다. 클라이언트 장치(102)는 수신한 각 결과값이 입력 결과 리스트에 기 저장된 결과값과 일치하는 원격 서버를 부하 초과 작업을 위임할 원격 서버로 결정할 수 있다. The
클라이언트 장치(102)는 수신한 각 결과값이 입력 결과 리스트에 기 저장된 결과값과 일치하는 원격 서버로 부하 초과 작업에 대한 계산 위임 요청을 전송할 수 있다. 예를 들어, 제1 원격 서버(106-1) 내지 제3 원격 서버(106-3)로부터 수신한 각 결과값이 입력 결과 리스트에 기 저장된 결과값과 모두 일치하는 경우, 제1 원격 서버(106-1) 내지 제3 원격 서버(106-3)로 부하 초과 작업에 대한 계산 위임 요청을 각각 전송할 수 있다. The
클라이언트 장치(102)는 제1 원격 서버(106-1) 내지 제3 원격 서버(106-3)로부터 부하 초과 작업의 계산 위임 요청에 대한 결과값을 각각 수신할 수 있다. 수신한 각 결과값이 동일한 경우, 클라이언트 장치(102)는 해당 결과값을 부하 초과 작업에 대응하는 결과값으로 결정할 수 있다. 수신한 각 결과값이 동일하지 않은 경우, 클라이언트 장치(102)는 수신한 각 결과값 중 상호 일치하는 개수가 가장 많은 결과값을 부하 초과 작업에 대응하는 결과값으로 결정할 수 있다. The
클라이언트 장치(102)는 제1 원격 서버(106-1) 내지 제3 원격 서버(106-3)에게 계산 위임하였던 부하 초과 작업에 대한 계산 위임 요청을 로컬 컴퓨팅 장치(104)로 전송할 수 있다. The
클라이언트 장치(102)는 로컬 컴퓨팅 장치(104)로부터 수신한 결과값을 기반으로 제1 원격 서버(106-1) 내지 제3 원격 서버(106-3)로부터 수신한 결과값을 검증할 수 있다. 클라이언트 장치(102)는 로컬 컴퓨팅 장치(104)로부터 수신한 결과값과 일치하는 결과값을 전송한 원격 서버에 대해 기 설정된 신뢰도 가산 점수를 부여할 수 있다. 클라이언트 장치(102)는 로컬 컴퓨팅 장치(104)로부터 수신한 결과값과 일치하지 않는 결과값을 전송한 원격 서버에 대해 기 설정된 신뢰도 감산 점수를 부여할 수 있다. 클라이언트 장치(102)는 이러한 작업을 반복 수행하면서 각 원격 서버(106)들에 대해 신뢰도 평가를 수행할 수 있게 된다.The
도 4는 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경(10)을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술되는 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.4 is a block diagram illustrating and illustrating a
도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 클라이언트 장치(예를 들어, 클라이언트 장치(102))일 수 있다. 또한, 컴퓨팅 장치(12)는 로컬 컴퓨팅 장치(예를 들어, 로컬 컴퓨팅 장치(104))일 수 있다. 또한, 컴퓨팅 장치(12)는 서버 장치(예를 들어, 원격 서버(106))일 수 있다.The illustrated
컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.The
컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.The computer-
통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.
컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.The
이상에서 본 발명의 대표적인 실시예들을 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, . Therefore, the scope of the present invention should not be limited to the above-described embodiments, but should be determined by equivalents to the appended claims, as well as the appended claims.
100 : 계산 검증 시스템
102 : 클라이언트 장치
104 : 로컬 컴퓨팅 장치
106 : 원격 서버100: Calculation Verification System
102: Client device
104: Local computing device
106: remote server
Claims (18)
상기 예비 계산 위임 요청을 수신하고, 상기 예비 계산 위임 요청에 대한 결과값을 상기 클라이언트 장치로 전송하는 원격 서버; 및
신뢰도가 검증된 로컬 컴퓨팅 장치를 포함하며,
상기 클라이언트 장치는, 상기 원격 서버로부터 수신한 결과값 및 상기 입력 결과 리스트에 저장된 결과값을 비교하여 상기 원격 서버의 신뢰도를 1차 검증하고,
상기 원격 서버로부터 수신한 결과값 및 상기 입력 결과 리스트에 저장된 결과값이 일치하는 경우, 계산 위임 요청을 상기 원격 서버로 전송하며, 상기 원격 서버로부터 상기 계산 위임 요청에 대한 결과값을 수신하고,
상기 원격 서버로 전송하였던 계산 위임 요청을 상기 로컬 컴퓨팅 장치에게도 전송하며, 상기 로컬 컴퓨팅 장치로부터 상기 계산 위임 요청에 대한 결과값을 수신하며,
상기 원격 서버로부터 수신한 계산 위임 요청에 대한 결과값과 상기 로컬 컴퓨팅 장치로부터 수신한 계산 위임 요청에 대한 결과값을 비교하여 상기 원격 서버의 신뢰도를 2차 검증하는, 계산 검증 시스템.
A remote server calculation delegation event is generated, and when the remote server calculation delegation event occurs, a preliminary calculation delegation request is transmitted for pre-verification before a calculation delegation request is made, A client device for extracting an input value used for inputting a function and a corresponding function in an input result list storing an input value and a result value corresponding to the input value and transmitting a preliminary calculation delegation request including the extracted function and the input value, ;
A remote server receiving the preliminary calculation delegation request and transmitting a result value for the preliminary calculation delegation request to the client device; And
A trusted local computing device,
Wherein the client device first verifies the reliability of the remote server by comparing a result value received from the remote server and a result value stored in the input result list,
When the result value received from the remote server matches the result value stored in the input result list, transmits a calculation delegation request to the remote server, receives a result of the calculation delegation request from the remote server,
Sending a computation delegation request sent to the remote server to the local computing device, receiving a result of the computation delegation request from the local computing device,
Wherein the reliability of the remote server is secondarily verified by comparing the result of the calculation delegation request received from the remote server with the result of the calculation delegation request received from the local computing device.
상기 계산 검증 시스템은, 복수 개의 원격 서버를 포함하고,
상기 클라이언트 장치는,
상기 원격 서버 계산 위임 이벤트 발생 시 상기 함수 및 입력값을 포함하는 예비 계산 위임 요청을 상기 복수 개의 원격 서버로 각각 전송하고,
상기 복수 개의 원격 서버로부터 상기 예비 계산 위임 요청에 대한 결과값을 각각 수신하며,
상기 복수 개의 원격 서버로부터 수신한 결과값 및 상기 입력 결과 리스트에 저장된 결과값을 비교하여 상기 복수 개의 원격 서버들의 신뢰도를 1차 검증하는, 계산 검증 시스템.
The method according to claim 1,
Wherein the calculation verification system comprises a plurality of remote servers,
The client device comprising:
And transmitting a preliminary calculation delegation request including the function and the input value to the plurality of remote servers when the remote server calculation delegation event occurs,
Receiving a result of the preliminary calculation delegation request from the plurality of remote servers,
And compares the result value received from the plurality of remote servers with the result value stored in the input result list to firstly verify the reliability of the plurality of remote servers.
상기 클라이언트 장치는,
상기 복수 개의 원격 서버들 중 상기 검증이 완료된 원격 서버들로 계산 위임 요청을 전송하고, 상기 원격 서버들로부터 상기 계산 위임 요청에 대한 결과값을 각각 수신하는, 계산 검증 시스템.
The method of claim 5,
The client device comprising:
Send a computational delegation request to the verified remote servers of the plurality of remote servers and receive a result value for the computational delegation request from the remote servers, respectively.
상기 클라이언트 장치는,
상기 원격 서버들로부터 수신한 상기 계산 위임 요청에 대한 결과값들이 동일하지 않은 경우, 상기 수신한 결과값들 중 상호 일치하는 개수가 가장 많은 결과값을 상기 계산 위임 요청에 대응하는 결과값으로 결정하는, 계산 검증 시스템.
The method of claim 6,
The client device comprising:
If a result of the calculation delegation request received from the remote servers is not identical, a result value having the largest number of mutually matching outcomes among the received result values is determined as a result value corresponding to the calculation delegation request , Calculation verification system.
상기 클라이언트 장치는,
상기 검증이 완료된 원격 서버들로 전송하였던 계산 위임 요청을 상기 로컬 컴퓨팅 장치에게도 전송하며, 상기 로컬 컴퓨팅 장치로부터 상기 계산 위임 요청에 대한 결과값을 수신하는, 계산 검증 시스템.
The method of claim 6,
The client device comprising:
To the local computing device, a computation delegation request sent to the verified remote servers, and receives a result of the computational delegation request from the local computing device.
상기 클라이언트 장치는,
상기 검증이 완료된 원격 서버들로부터 수신한 계산 위임 요청에 대한 결과값들과 상기 로컬 컴퓨팅 장치로부터 수신한 계산 위임 요청에 대한 결과값을 비교하여 상기 검증이 완료된 원격 서버들에 대해 신뢰도 점수를 부여하는, 계산 검증 시스템.
The method of claim 8,
The client device comprising:
A reliability score is given to the verified remote servers by comparing the result of the calculation delegation request received from the verified remote servers with the result of the calculation delegation request received from the local computing device , Calculation verification system.
메모리; 및
하나 이상의 프로그램들을 포함하고,
상기 하나 이상의 프로그램들은 상기 메모리에 저장되고, 상기 하나 이상의 프로세서들에 의해 실행되도록 구성되며,
상기 하나 이상의 프로그램들은,
원격 서버 계산 위임 이벤트의 발생 여부를 확인하기 위한 명령;
상기 원격 서버 계산 위임 이벤트가 발생하는 경우, 함수, 상기 함수의 입력에 사용되는 입력값, 및 상기 입력값에 대응하는 결과값이 저장된 입력 결과 리스트에서 함수 및 해당 함수의 입력에 사용되는 입력값을 추출하기 위한 명령;
계산 위임 요청을 하기 전 사전 검증을 위해 상기 추출한 함수 및 입력값을 포함하는 예비 계산 위임 요청을 원격 서버로 전송하기 위한 명령;
상기 원격 서버로부터 상기 예비 계산 위임 요청에 대한 결과값을 수신하기 위한 명령;
상기 원격 서버로부터 수신한 결과값 및 상기 입력 결과 리스트에 저장된 결과값을 비교하여 상기 원격 서버의 신뢰도를 1차 검증하기 위한 명령;
상기 원격 서버로부터 수신한 결과값 및 상기 입력 결과 리스트에 저장된 결과값이 일치하는 경우, 계산 위임 요청을 상기 원격 서버로 전송하기 위한 명령;
상기 원격 서버로부터 상기 계산 위임 요청에 대한 결과값을 수신하기 위한 명령;
상기 원격 서버로 전송하였던 계산 위임 요청을 신뢰도가 검증된 로컬 컴퓨팅 장치에게도 전송하기 위한 명령;
상기 로컬 컴퓨팅 장치로부터 상기 계산 위임 요청에 대한 결과값을 수신하기 위한 명령; 및
상기 원격 서버로부터 수신한 계산 위임 요청에 대한 결과값과 상기 로컬 컴퓨팅 장치로부터 수신한 계산 위임 요청에 대한 결과값을 비교하여 상기 원격 서버의 신뢰도를 2차 검증하기 위한 명령을 포함하는, 컴퓨팅 장치.
One or more processors;
Memory; And
Comprising one or more programs,
Wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors,
The one or more programs,
A command to determine whether a remote server calculation delegation event has occurred;
In the case where the remote server calculation delegation event occurs, a function, an input value used for inputting the function, and an input value used for inputting a function and a corresponding function in the input result list storing the result value corresponding to the input value An instruction to extract;
Instructions for sending a preliminary computation delegation request to the remote server, the preliminary computational delegation request including the extracted function and the input value for preliminary validation before the computational delegation request;
Receiving a result value for the preliminary calculation delegation request from the remote server;
Comparing the result value received from the remote server with the result value stored in the input result list to firstly verify the reliability of the remote server;
An instruction to transmit a calculation delegation request to the remote server when the result value received from the remote server matches the result value stored in the input result list;
Receiving a result value for the calculation delegation request from the remote server;
An instruction to transfer the computation delegation request to the trusted computing device;
Receiving a result value for the computational delegation request from the local computing device; And
Comparing the result of the calculation delegation request received from the remote server with the result of the calculation delegation request received from the local computing device, and verifying the reliability of the remote server secondarily.
메모리; 및
하나 이상의 프로그램들을 포함하고,
상기 하나 이상의 프로그램들은 상기 메모리에 저장되고, 상기 하나 이상의 프로세서들에 의해 실행되도록 구성되며,
상기 하나 이상의 프로그램들은,
원격 서버 계산 위임 이벤트의 발생 여부를 확인하기 위한 명령;
상기 원격 서버 계산 위임 이벤트가 발생하는 경우, 함수, 상기 함수의 입력에 사용되는 입력값, 및 상기 입력값에 대응하는 결과값이 저장된 입력 결과 리스트에서 함수 및 해당 함수의 입력에 사용되는 입력값을 추출하기 위한 명령;
계산 위임 요청을 하기 전 사전 검증을 위해 상기 추출한 함수 및 입력값을 포함하는 예비 계산 위임 요청을 복수 개의 원격 서버로 전송하기 위한 명령;
상기 복수 개의 원격 서버로부터 상기 예비 계산 위임 요청에 대한 결과값을 각각 수신하기 위한 명령;
상기 복수 개의 원격 서버로부터 수신한 결과값 및 상기 입력 결과 리스트에 저장된 결과값을 비교하여 상기 복수 개의 원격 서버의 신뢰도를 1차 검증하기 위한 명령
상기 복수 개의 원격 서버들 중 상기 검증이 완료된 원격 서버들로 계산 위임 요청을 전송하기 위한 명령;
상기 원격 서버들로부터 상기 계산 위임 요청에 대한 결과값을 각각 수신하기 위한 명령
상기 검증이 완료된 원격 서버들로 전송하였던 계산 위임 요청을 신뢰도가 검증된 로컬 컴퓨팅 장치에게도 전송하기 위한 명령;
상기 로컬 컴퓨팅 장치로부터 상기 계산 위임 요청에 대한 결과값을 수신하기 위한 명령
상기 검증이 완료된 원격 서버들로부터 수신한 계산 위임 요청에 대한 결과값들과 상기 로컬 컴퓨팅 장치로부터 수신한 계산 위임 요청에 대한 결과값을 비교하여 상기 원격 서버들에 대해 2차 검증하기 위한 명령; 및
상기 비교 결과에 따라 상기 검증이 완료된 원격 서버들에 대해 신뢰도 점수를 부여하기 위한 명령을 포함하는, 컴퓨팅 장치.
One or more processors;
Memory; And
Comprising one or more programs,
Wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors,
The one or more programs,
A command to determine whether a remote server calculation delegation event has occurred;
In the case where the remote server calculation delegation event occurs, a function, an input value used for inputting the function, and an input value used for inputting a function and a corresponding function in the input result list storing the result value corresponding to the input value An instruction to extract;
Instructions for sending a preliminary computation delegation request including the extracted function and input values to a plurality of remote servers for preliminary verification before a computational delegation request;
Receiving a result of the preliminary calculation delegation request from the plurality of remote servers, respectively;
Comparing the result value received from the plurality of remote servers with the result value stored in the input result list and for verifying the reliability of the plurality of remote servers
Instructions for sending a computation delegation request to the verified remote servers of the plurality of remote servers;
Receiving a result of the calculation delegation request from the remote servers,
An instruction to send a computation delegation request to the verified local computing device;
Instructions for receiving a result value for the computational delegation request from the local computing device
Comparing the result of the calculation delegation request received from the verified remote servers with the result of the calculation delegation request received from the local computing device and performing a second verification on the remote servers; And
And to assign a confidence score to the verified remote servers according to the comparison result.
상기 하나 이상의 프로그램들은,
상기 원격 서버들로부터 수신한 상기 계산 위임 요청에 대한 결과값들이 동일한지 여부를 확인하기 위한 명령; 및
상기 계산 위임 요청에 대한 결과값들이 동일하지 않은 경우, 상기 결과값들 중 상호 일치하는 개수가 가장 많은 결과값을 상기 계산 위임 요청에 대응하는 결과값으로 결정하기 위한 명령을 더 포함하는, 컴퓨팅 장치.
14. The method of claim 13,
The one or more programs,
Determining whether the result of the calculation delegation request received from the remote servers is the same; And
Further comprising the step of determining, as a result value corresponding to the calculation delegation request, a result value having the largest number of mutually matched outcome values, when the result values for the calculation delegation request are not identical, .
상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서,
원격 서버 계산 위임 이벤트의 발생 여부를 확인하는 단계;
상기 원격 서버 계산 위임 이벤트가 발생하는 경우, 함수, 상기 함수의 입력에 사용되는 입력값, 및 상기 입력값에 대응하는 결과값이 저장된 입력 결과 리스트에서 함수 및 해당 함수의 입력에 사용되는 입력값을 추출하는 단계;
계산 위임 요청을 하기 전 사전 검증을 위해 상기 추출한 함수 및 입력값을 포함하는 예비 계산 위임 요청을 원격 서버로 전송하는 단계;
상기 원격 서버로부터 상기 예비 계산 위임 요청에 대한 결과값을 수신하는 단계;
상기 원격 서버로부터 수신한 결과값 및 상기 입력 결과 리스트에 저장된 결과값을 비교하여 상기 원격 서버의 신뢰도를 1차 검증하는 단계
상기 원격 서버로부터 수신한 결과값 및 상기 입력 결과 리스트에 저장된 결과값이 일치하는 경우, 계산 위임 요청을 상기 원격 서버로 전송하는 단계;
상기 원격 서버로부터 상기 계산 위임 요청에 대한 결과값을 수신하는 단계;
상기 원격 서버로 전송하였던 계산 위임 요청을 신뢰도가 검증된 로컬 컴퓨팅 장치에게도 전송하는 단계;
상기 로컬 컴퓨팅 장치로부터 상기 계산 위임 요청에 대한 결과값을 수신하는 단계; 및
상기 원격 서버로부터 수신한 계산 위임 요청에 대한 결과값과 상기 로컬 컴퓨팅 장치로부터 수신한 계산 위임 요청에 대한 결과값을 비교하여 상기 원격 서버의 신뢰도를 2차 검증하는 단계를 포함하는, 계산 검증 방법.
One or more processors, and
A method performed in a computing device having a memory storing one or more programs executed by the one or more processors,
Checking whether a remote server calculation delegation event has occurred;
In the case where the remote server calculation delegation event occurs, a function, an input value used for inputting the function, and an input value used for inputting a function and a corresponding function in the input result list storing the result value corresponding to the input value Extracting;
Transmitting a preliminary calculation delegation request including the extracted function and the input value to the remote server for preliminary verification before the calculation delegation request is made;
Receiving a result of the preliminary calculation delegation request from the remote server;
Comparing the result value received from the remote server with the result value stored in the input result list to firstly verify the reliability of the remote server
Transmitting a calculation delegation request to the remote server when the result value received from the remote server matches the result value stored in the input result list;
Receiving a result of the calculation delegation request from the remote server;
Transmitting a calculation delegation request transmitted to the remote server to a local computing device having reliability;
Receiving a result value for the computation delegation request from the local computing device; And
And secondly verifying the reliability of the remote server by comparing the result of the calculation delegation request received from the remote server with the result of the calculation delegation request received from the local computing device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170106870A KR101998853B1 (en) | 2017-08-23 | 2017-08-23 | Method for verifying computation, apparatus and system for executing the method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170106870A KR101998853B1 (en) | 2017-08-23 | 2017-08-23 | Method for verifying computation, apparatus and system for executing the method |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190021736A KR20190021736A (en) | 2019-03-06 |
KR101998853B1 true KR101998853B1 (en) | 2019-07-10 |
Family
ID=65760972
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170106870A KR101998853B1 (en) | 2017-08-23 | 2017-08-23 | Method for verifying computation, apparatus and system for executing the method |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101998853B1 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101273465B1 (en) * | 2007-03-16 | 2013-06-14 | 재단법인서울대학교산학협력재단 | Apparatus for batch verification and method using the same |
JP5614465B2 (en) | 2013-01-30 | 2014-10-29 | 沖電気工業株式会社 | Encryption communication device, proxy server, encryption communication device program, and proxy server program |
KR101472507B1 (en) * | 2014-01-22 | 2014-12-12 | 고려대학교 산학협력단 | Method for an outsourcing computation |
JP2016220062A (en) * | 2015-05-21 | 2016-12-22 | 沖電気工業株式会社 | Communication device, server, signature verification commission system, and signature verification commission method |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101475747B1 (en) | 2014-01-22 | 2014-12-23 | 고려대학교 산학협력단 | Method for an outsourcing multi-party computation using homomorphic encryption |
-
2017
- 2017-08-23 KR KR1020170106870A patent/KR101998853B1/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101273465B1 (en) * | 2007-03-16 | 2013-06-14 | 재단법인서울대학교산학협력재단 | Apparatus for batch verification and method using the same |
JP5614465B2 (en) | 2013-01-30 | 2014-10-29 | 沖電気工業株式会社 | Encryption communication device, proxy server, encryption communication device program, and proxy server program |
KR101472507B1 (en) * | 2014-01-22 | 2014-12-12 | 고려대학교 산학협력단 | Method for an outsourcing computation |
JP2016220062A (en) * | 2015-05-21 | 2016-12-22 | 沖電気工業株式会社 | Communication device, server, signature verification commission system, and signature verification commission method |
Also Published As
Publication number | Publication date |
---|---|
KR20190021736A (en) | 2019-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102069759B1 (en) | Dynamic Updates for CAPTCHA Challenges | |
US10757102B2 (en) | Methods, apparatus, and systems for identity authentication | |
CN110049087B (en) | Credibility verification method, system, device and equipment of alliance chain | |
US20150281239A1 (en) | Provision of access privileges to a user | |
CN104519049A (en) | Limiting efficacy of denial of service attack by increasing client resource demands | |
US11107079B2 (en) | Methods, systems, apparatuses and devices for verifying credibility of consortium blockchain | |
CN109257321B (en) | Secure login method and device | |
CN107248995B (en) | Account verification method and device | |
US20170161115A1 (en) | Sharing Method for Hardware Communication Apparatus and Terminal | |
CN110022345B (en) | Method, system, device and equipment for processing request in alliance chain | |
CN104519043A (en) | Fuzzing server responses to malicious client devices | |
US10798185B2 (en) | Systems and methods for automated session identifier propagation | |
US9609068B2 (en) | Session management system, session management apparatus, and non-transitory computer readable medium | |
JP2022539283A (en) | A method and system for validating blockchain data stored in a storage format different from the blockchain | |
US11025602B1 (en) | Method, apparatus and computer program product for performing authentication using multiple user devices | |
CN107395623B (en) | Interface access data verification method and device, computer storage medium and equipment | |
JP2014119962A5 (en) | ||
CN113946816A (en) | Cloud service-based authentication method and device, electronic equipment and storage medium | |
KR101998853B1 (en) | Method for verifying computation, apparatus and system for executing the method | |
CN104618324A (en) | Method and device for transmitting data and detecting data legality | |
US11816714B2 (en) | Service verification method and apparatus | |
CN109040056B (en) | User verification method based on server | |
CN107995214B (en) | Website login method and related equipment | |
KR102622252B1 (en) | Apparatus and method for transmitting contents | |
CN114328731A (en) | Information processing method, device, electronic equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |