Implementing portable content protection to secure secrets
First Claim
Patent Images
1. A method executed by a processor based system comprising:
- compiling a program in a random-execution-order to conceal a secret;
wherein compiling the program in the random-execution-order includes shuffling data across the program during compiling;
using a source language to identify one or more memory allocation and parallel stream objects of the program; and
enabling said random-execution-order of the program based on said one or more memory allocation and parallel stream objects;
using an applicative source language in a single-assignment semantics dialect to obtain the source code for the program;
introducing reference counting for heap-allocated objects to assist with real-time memory recycling for the single-assignment semantics dialect; and
executing the program in the random-execution-order to preserve upon recompilation the single-assignment semantics dialect of the applicative source language.
1 Assignment
0 Petitions
Accused Products
Abstract
A source-level compiler may randomly select compilation conventions to implement portable content protection, securing the secrets embedded in a program by shuffling associated data. The program may be developed using a source language that is applicative on the associated data. To obscure the embedded secrets, in one embodiment, pre-compiler software may be deployed for compiling the program in a random-execution-order based on a random seed indication that randomly selects compilation conventions and a shuffling algorithm that moves the associated data across the program during execution.
30 Citations
14 Claims
-
1. A method executed by a processor based system comprising:
-
compiling a program in a random-execution-order to conceal a secret; wherein compiling the program in the random-execution-order includes shuffling data across the program during compiling; using a source language to identify one or more memory allocation and parallel stream objects of the program; and enabling said random-execution-order of the program based on said one or more memory allocation and parallel stream objects; using an applicative source language in a single-assignment semantics dialect to obtain the source code for the program; introducing reference counting for heap-allocated objects to assist with real-time memory recycling for the single-assignment semantics dialect; and executing the program in the random-execution-order to preserve upon recompilation the single-assignment semantics dialect of the applicative source language. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. An article comprising a medium storing instructions that,
when executed by a processor-based system result in: -
compiling a program in a random-execution-order to conceal a secret; wherein compiling the program in the random-execution-order includes shuffling data across the program during execution; using a source language to identify one or more memory allocation and parallel stream objects of the program; and enabling said random-execution-order of the program based on said one or more memory allocation and parallel stream objects; using an applicative source language in a single-assignment semantics dialect to obtain the source code for the program; introducing reference counting for heap-allocated objects to assist with real-time memory recycling for the single-assignment semantics dialect; and executing the program in the random-execution-order to preserve upon recompilation the single-assignment semantics dialect of the applicative source language. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
Specification