Implementing portable content protection to secure secrets
First Claim
Patent Images
1. A method comprising:
- developing a program including associated data and a secret based on a source language that is applicative on said associated data; and
compiling the program in a random-execution-order to obscure said secret.
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.
-
Citations
35 Claims
-
1. A method comprising:
-
developing a program including associated data and a secret based on a source language that is applicative on said associated data; and
compiling the program in a random-execution-order to obscure said secret. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method comprising:
-
developing for a program including one or more data variables, blocks of code, jumps and a secret in a control flow graph indicative of at least one unique variable layout for said one or more data variables; and
compiling the program based on said at least one unique variable layout to obscure said secret while shuffling data across the program during execution. - View Dependent Claims (12, 13, 14, 15)
-
-
16. An article comprising a medium storing instructions that, when executed by a processor-based system result in:
-
developing a program including associated data and a secret based on a source language that is applicative on said associated data; and
compiling the program in a random-execution-order to obscure said secret. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. An article comprising a medium storing instructions that, when executed by a processor-based system result in:
-
developing for a program including one or more data variables, blocks of code, jumps and a secret in a control flow graph indicative of at least one unique variable layout for said one or more data variables; and
compiling the program based on said at least one unique variable layout to obscure said secret while shuffling data across the program during execution. - View Dependent Claims (27, 28, 29, 30)
-
-
31. A system comprising:
-
a user interface to develop a program including associated data and a secret based on a source language that is applicative on said associated data;
a pre-compiler coupled to said user interface to compile the program in a random-execution-order to obscure said secret; and
a processor to execute said user interface and said pre-compiler. - View Dependent Claims (32, 33, 34, 35)
-
Specification