Method and system for secure computational outsourcing and disguise
First Claim
1. A method for secure computational outsourcing comprising:
- determining a first set of actual arguments for an outsourced computation;
determining a second set of actual arguments for said outsourced computation;
preparing a first group of disguised arguments corresponding to said first set of actual arguments with a first computer;
preparing a second group of disguised arguments corresponding to said second set of actual arguments with a second computer;
outputting said first and second groups of disguised arguments from said first and second computers, respectively, for performance of said outsourced computation;
receiving said first and second groups of disguised arguments with a third computer;
performing said outsourced computation with said third computer using said first and second groups of disguised arguments to achieve a result;
sending said result from said third computer to said first and second computers; and
receiving said result with said first and second computers.
6 Assignments
0 Petitions
Accused Products
Abstract
A method and system for secure computational outsourcing and disguise. According to an embodiment, a first set of actual arguments and a second set of actual arguments for an outsourced computation are determined. A first group of disguised arguments corresponding to the first set of actual arguments is prepared with a first computer. A second group of disguised arguments corresponding to the second set of actual arguments is prepared with a second computer. The first and second groups of disguised arguments are output from the first and second computers, respectively, for performance of the outsourced computation. A third computer performs the outsourced computation and returns a disguised result to the first and/or second computers. The first and/or second computers then unveil the actual result from the disguised result.
-
Citations
37 Claims
-
1. A method for secure computational outsourcing comprising:
-
determining a first set of actual arguments for an outsourced computation;
determining a second set of actual arguments for said outsourced computation;
preparing a first group of disguised arguments corresponding to said first set of actual arguments with a first computer;
preparing a second group of disguised arguments corresponding to said second set of actual arguments with a second computer;
outputting said first and second groups of disguised arguments from said first and second computers, respectively, for performance of said outsourced computation;
receiving said first and second groups of disguised arguments with a third computer;
performing said outsourced computation with said third computer using said first and second groups of disguised arguments to achieve a result;
sending said result from said third computer to said first and second computers; and
receiving said result with said first and second computers. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method for secure computational outsourcing comprising:
-
providing to a computer a plurality of disguised arguments from a first source and a second source, said plurality of disguised arguments hiding a plurality of actual arguments;
providing said computer with one or more instructions for performing an outsourced computation on said plurality of disguised arguments;
performing said outsourced computation on said disguised arguments with said first computer using said one or more instructions; and
outputting a result of said outsourced computation with said computer to both said first source and said second source. - View Dependent Claims (17)
-
-
18. A system for secure computational outsourcing comprising:
-
a first computer operable to define a first set of actual arguments for an outsourced computation, said first computer being programmed to determine a first group of disguised arguments from said first set of actual arguments, said first group of disguised arguments hiding at least one characteristic of said first set of actual arguments;
a second computer operable to define a second set of actual arguments for said outsourced computation, said second computer being programmed to determine a second group of disguised arguments from said second set of actual arguments, said second group of disguised arguments hiding at least one characteristic of said second set of actual arguments;
first and second output devices responsive to said first and second computers, respectively, to output said first and second groups of disguised arguments for remote performance of said outsourced computation; and
first and second input devices to permit said first and second computers, respectively, to receive a disguised result of said outsourced computation performed with said first and second groups of disguised arguments, said first and second computers being operable to determine an actual answer from said disguised result. - View Dependent Claims (19, 20, 21, 22, 23)
-
-
24. A method for secure computational outsourcing comprising:
-
obtaining a first set of actual data;
preparing a first set of disguised data corresponding to said first set of actual data with a first computer;
transmitting said first set of disguised data from said first computer to a second computer;
preparing a second set of disguised data corresponding to a second set of actual data;
comparing said first set of disguised data to said second set of disguised data with said second computer; and
transmitting a result of said comparing step from said second computer to said first computer. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35)
-
-
36. A method for secure computational outsourcing comprising:
-
providing a first computer having a memory, said memory comprising a plurality of computation types, said plurality of computation types comprising at least one computation type selected from the group consisting of matrix multiplication, matrix inversion, solution of a linear system of equations, quadrature, convolution, solution of one or more differential equations, optimization, solution of a nonlinear system of equations, image edge detection, sorting, character string pattern matching, integral equations, statistical regression, statistical correlation, natural language processing, biometric data matching, database analysis, data mining, and classification problems;
providing a second computer having a memory, said memory comprising a plurality of computation types, said plurality of computation types comprising at least one computation type selected from the group consisting of matrix multiplication, matrix inversion, solution of a linear system of equations, quadrature, convolution, solution of one or more differential equations, optimization, solution of a nonlinear system of equations, image edge detection, sorting, character string pattern matching, integral equations, statistical regression, statistical correlation, natural language processing, biometric data matching, database analysis, data mining, and classification problems;
determining a first set of actual arguments for an outsourced computation;
determining a second set of actual arguments for said outsourced computation;
preparing a first group of disguised arguments corresponding to said first set of actual arguments with said first computer by classifying said outsourced computation into one of said plurality of computation types, selecting at least one of a plurality of disguising operations based on said classification, and performing said at least one selected disguising operation on said first set of actual arguments with said first computer to provide said first group of disguised arguments;
preparing a second group of disguised arguments corresponding to said second set of actual arguments with said second computer by classifying said outsourced computation into one of said plurality of computation types, selecting at least one of a plurality of disguising operations based on said classification, and performing said at least one selected disguising operation on said second set of actual arguments with said second computer to provide said first group of disguised arguments;
outputting said first and second groups of disguised arguments from said first and second computers, respectively, for performance of said outsourced computation;
receiving said first and second groups of disguised arguments with a third computer;
performing said outsourced computation with said third computer using said disguised arguments to produce a disguised result, said disguised result being in a disguised form relative to an actual result of said outsourced computation that would have been obtained by submitting said first and second sets of actual arguments to said third computer for said outsourced computation;
sending said disguised result from said third computer to said first and second computers;
receiving said disguised result with said first and second computers;
exchanging information related to said at least one selected disguising operation performed on said first set of actual arguments and said at least one selected disguising operation performed on said second set of actual arguments between said first and second computers to permit each of said first and second computers to compute an actual answer from said disguised result; and
computing said actual answer from said disguised result with said first and second computers.
-
-
37. A system for secure computational outsourcing comprising:
-
a first computer comprising a memory and a library of disguising operations stored in said memory, said library of disguising operations comprising at least one disguising operation selected from the group consisting of random object generation, argument dimension modification, linear operator modification, mathematical identity substitution, coordinate system modification, domain mapping, inserting partitions of unity, logical identity substitution, inserting redundant computations, and disguise function generation, said first computer being operable to define a first set of actual arguments for an outsourced computation, said first computer having a resident program for creating a first group of disguised arguments from said first set of actual arguments, said program capable of selecting one or more disguising operations from said library of disguising operations and applying said selected one or more disguising operations to said first set of actual arguments to create said first group of disguised arguments, said first group of disguised arguments hiding at least one characteristic of said first set of actual arguments, said program further capable of classifying said outsourced computation as being one of a plurality of computation types, said plurality of computation types comprising at least one computation type selected from the group consisting of matrix multiplication, matrix inversion, solution of a linear system of equations, quadrature, convolution, solution of one or more differential equations, optimization, solution of a nonlinear system of equations, image edge detection, sorting, character string pattern matching, integral equations, statistical regression, statistical correlation, natural language processing, biometric data matching, database analysis, data mining, and classification problems;
a second computer comprising a memory and a library of disguising operations stored in said memory, said library of disguising operations comprising at least one disguising operation selected from the group consisting of random object generation, argument dimension modification, linear operator modification, mathematical identity substitution, coordinate system modification, domain mapping, inserting partitions of unity, logical identity substitution, inserting redundant computations, and disguise function generation, said second computer being operable to define a second set of actual arguments for an outsourced computation, said second computer having a resident program for creating a second group of disguised arguments from said second set of actual arguments, said program capable of selecting one or more disguising operations from said library of disguising operations and applying said selected one or more disguising operations to said second set of actual arguments to create said second group of disguised arguments, said second group of disguised arguments hiding at least one characteristic of said second set of actual arguments, said program further capable of classifying said outsourced computation as being one of a plurality of computation types, said plurality of computation types comprising at least one computation type selected from the group consisting of matrix multiplication, matrix inversion, solution of a linear system of equations, quadrature, convolution, solution of one or more differential equations, optimization, solution of a nonlinear system of equations, image edge detection, sorting, character string pattern matching, integral equations, statistical regression, statistical correlation, natural language processing, biometric data matching, database analysis, data mining, and classification problems;
a first output device responsive to said first computer to output said first group of disguised arguments and first identifying information about said one or more disguising operations applied to said first set of actual arguments;
a second output device responsive to said second computer to output said second group of disguised arguments and second identifying information about said one or more disguising operations applied to said second set of actual arguments;
a computing center, said computing center being separated from said first and second computer and capable of receiving said first and second group of disguised arguments and performing said outsourced computation with said first and second groups of disguised arguments to produce a disguised result;
a first input device communicatively connected to said first computer and arranged to permit said first computer to receive said second identifying information about said one or more disguising operations applied to said second set of actual arguments from said second computer and to receive said disguised result of said outsourced computation performed with said first and second groups of disguised arguments from said computing center, said first computer being operable to determine an actual answer from said result based upon said first and second identifying information; and
a second input device communicatively connected to said second computer and arranged to permit said second computer to receive said first identifying information about said one or more disguising operations applied to said first set of actual arguments from said first computer and to receive said disguised result of said outsourced computation performed with said first and second groups of disguised arguments from said computing center, said second computer being operable to determine an actual answer from said result based upon said first and second identifying information.
-
Specification