Method and system for secure computational outsourcing and disguise
First Claim
1. A method for securing original data from unauthorized access, theft and tampering, said original data and an associated computer program being stored in a computer memory, said method comprising:
- performing a disguising operation on said original data to disguise said original data, wherein said original data comprises a plurality of data elements, and wherein said disguising operation comprises;
generating an associated random number for each data element of said original data; and
modifying each data element of said original data to generate modified data, each data element of said original data being modified by adding said associated random number to said data element;
performing a tamperproofing operation on said computer program;
saving said associated random numbers in a local file;
sending said modified data to a remote system without said associated random numbers;
receiving a modified result from said remote system, said modified result being computed using said modified data; and
using said random numbers with said modified result to compute an unmodified result.
6 Assignments
0 Petitions
Accused Products
Abstract
Method and system for secure computational outsourcing and disguise of data, computer programs, pictures, and databases from unauthorized access, theft, and tampering using disguising and tamperproofing operations. In some embodiments, the disguising operation includes generating a random number for each data element, and modifying each data element with the random numbers. In some embodiments, the computer program, written in a first programming language, is partitioned into first and second programs; the first program determines whether access to the data is authorized, the second program entangles the second program and the data; and the second program is translated into a second programming language. An embodiment of the present invention comprises a method for identifying the subject of a first picture by comparison to a second picture. Embodiments comprise securing a computer program with real programming code by creating dummy program code and mixing the dummy and real program code.
43 Citations
24 Claims
-
1. A method for securing original data from unauthorized access, theft and tampering, said original data and an associated computer program being stored in a computer memory, said method comprising:
-
performing a disguising operation on said original data to disguise said original data, wherein said original data comprises a plurality of data elements, and wherein said disguising operation comprises; generating an associated random number for each data element of said original data; and modifying each data element of said original data to generate modified data, each data element of said original data being modified by adding said associated random number to said data element; performing a tamperproofing operation on said computer program; saving said associated random numbers in a local file; sending said modified data to a remote system without said associated random numbers; receiving a modified result from said remote system, said modified result being computed using said modified data; and using said random numbers with said modified result to compute an unmodified result. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for securing data from unauthorized access, theft and tampering, said data and an associated computer program being stored in a computer memory, said computer program being written in a first programming language, said method comprising:
-
partitioning said computer program into a first program and a second program; executing said first program to determine whether access to said data is authorized; executing said second program to entangle said second program and said data; and translating said second program into a second programming language to secure said data. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A method for securing data from unauthorized access, theft and tampering, said data having an associated first computer program written in a first programming language, said data and said first computer program being stored on a computer, said method comprising the steps of:
-
creating a second programming language; creating a second computer program to emulate said second programming language, said second computer program configured to be executed on said computer; and translating said first computer program into said second programming language using said second computer program to secure said data.
-
-
15. A computer-implemented method for securing a picture from unauthorized access, theft, and tampering, said method comprising:
-
identifying a plurality of points on said picture to create a planar graph; determining coordinates for each of said points on said planar graph; indexing said point coordinates to create a first vector; and performing a disguising operation on said first vector. - View Dependent Claims (16, 17, 18, 19)
-
-
20. A computer-implemented method for identifying said subject of a first picture by comparison to a second picture, said method comprising:
-
identifying a plurality of points on said first and second pictures to create first and second planar graphs, respectively; determining coordinates for each of said points on each of said first and second planar graphs; indexing said point coordinates for each of said first and second planar graphs to create first and second vectors, respectively; performing a disguising operation on said first and second vectors; and comparing said first and second disguised vectors. - View Dependent Claims (21)
-
-
22. A method for securing computer program code from unauthorized access, theft, and tampering, said computer program code operable to perform a real operation on a real input to produce a real output, said method comprising:
-
creating dummy program code operable to perform a dummy operation on a dummy input to produce a dummy output; replicating each of said real input and said dummy input at least one time; performing said real operation using said replicated real input and said replicated dummy input to produce a first output; performing said real operation using said first output if said first output comprises said real input to produce a second output; performing said dummy operation using said first output if said first output comprises said dummy input to produce a third output; storing said second output as said real output; and storing said third output as said dummy output. - View Dependent Claims (23, 24)
-
Specification