Patent ID: 8594329
Filing Date: 2013-11-26
Classification: H04L

Abstract:
1. A computer-implemented method of transforming data for evaluation of a function, using a computer with a processor, the method comprising: receiving, at the processor on a delegator, an input upon which the function is to be evaluated; selecting a first random message and a second random message; obtaining a first master public key and a second master public key; incorporating, with the processor at the delegator, the input into a request to perform a task that is transmitted to a server, by performing attribute-based encryption of both the first random message with the first master public key and the input as attributes, and the second random message with the second master public key and the input as attributes, to obtain a first ciphertext and a second ciphertext, the task being to decrypt one of the first and second ciphertexts and, when performed, provides a secondary result as one of the first and second random messages observable by the delegator, wherein the secondary result is different from an answer to which the server evaluates the function and is verified by the delegator with less computational expense than evaluation of the function on the input and wherein the task is only performed by the server after the server has verifiably evaluated the function based on the input; transmitting request data, indicative of the request with the input incorporated therein, to the server for performance of the task by the server; receiving, at the processor at the delegator, a returned result from the server indicative of the server performing the task, the returned result having a value that reflects both an answer to which the server has evaluated the function, and whether the answer is verified as being correct; and comparing the returned result to the first random message and to the second random message to determine both whether the server has verifiably evaluated the function based on the input, and the answer to which the server has evaluated the function based on the input, by determining whether the server has correctly decrypted the first ciphertext or the second ciphertext or neither the first nor the second ciphertext.