One-time programs
First Claim
Patent Images
1. A computer-implemented method in which a computer system performs operations comprising:
- identifying a program to be converted to a new program having a predetermined lifetime; and
compiling, by said computer system in communication with a secure hardware device wherein said secure hardware device comprises a One-Time Memory (OTM), said OTM initialized with two keys k0 and k1 and a tamper proof bit set to a value of zero, wherein said OTM receives an input bit b, verifies said tamper proof bit is zero, sets said tamper proof bit to a 1, and outputs a key kb based on said two keys and said input bit, said program to produce said new program having a predetermined lifetime and wherein said new program having a predetermined lifetime is guaranteed to only have the predetermined lifetime and wherein said predetermined lifetime comprises a predetermined number of uses and wherein said program is executed at most k times, wherein k is equal to or greater than one,wherein said secure hardware device stores security data and wherein execution of said program having a predetermined lifetime requires use of at least a portion of said security data.
2 Assignments
0 Petitions
Accused Products
Abstract
A method, apparatus and computer program product for providing one-time programs is presented. A program to be converted to a new program having a predetermined lifetime is identified. The program is compiled to produce the new program having a predetermined lifetime and wherein the new program having a predetermined lifetime is guaranteed to only have the predetermined lifetime.
28 Citations
51 Claims
-
1. A computer-implemented method in which a computer system performs operations comprising:
-
identifying a program to be converted to a new program having a predetermined lifetime; and compiling, by said computer system in communication with a secure hardware device wherein said secure hardware device comprises a One-Time Memory (OTM), said OTM initialized with two keys k0 and k1 and a tamper proof bit set to a value of zero, wherein said OTM receives an input bit b, verifies said tamper proof bit is zero, sets said tamper proof bit to a 1, and outputs a key kb based on said two keys and said input bit, said program to produce said new program having a predetermined lifetime and wherein said new program having a predetermined lifetime is guaranteed to only have the predetermined lifetime and wherein said predetermined lifetime comprises a predetermined number of uses and wherein said program is executed at most k times, wherein k is equal to or greater than one, wherein said secure hardware device stores security data and wherein execution of said program having a predetermined lifetime requires use of at least a portion of said security data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A non-transitory computer readable storage medium having computer readable code thereon for providing a program having a predetermined lifetime, the medium including instructions in which a computer system performs operations comprising-implemented method in which a computer system performs operations comprising:
-
identifying a program to be converted to a new program having a predetermined lifetime; and compiling said program by said computer system in communication with a secure hardware device wherein said secure hardware device comprises a One-Time Memory (OTM), said OTM initialized with two keys k0 and k1 and a tamper proof bit set to a value of zero, wherein said OTM receives an input bit b, verifies said tamper proof bit is zero, sets said tamper proof bit to a 1, and outputs a key kb based on said two keys and said input bit, to produce said new program having a predetermined lifetime and wherein said new program having a predetermined lifetime is guaranteed to only have the predetermined lifetime and wherein said predetermined lifetime comprises a predetermined number of uses and wherein said program is executed at most k times, wherein k is equal to or greater than one, wherein said secure hardware device stores security data and wherein execution of said program having a predetermined lifetime requires use of at least a portion of said security data. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34)
-
-
35. A computer system comprising:
-
a memory; a processor; a communications interface; an interconnection mechanism coupling the memory, the processor and the communications interface; and wherein the memory is encoded with an application providing a program having a predetermined lifetime, that when performed on the processor, provides a process for processing information, the process causing the computer system to perform the operations of; identifying a program to be converted to a new program having a predetermined lifetime; and compiling said program by said computer system in communication with a secure hardware device wherein said secure hardware device comprises a One-Time Memory (OTM), said OTM initialized with two keys k0 and k1 and a tamper proof bit set to a value of zero, wherein said OTM receives an input bit b, verifies said tamper proof bit is zero, sets said tamper proof bit to a 1, and outputs a key kb based on said two keys and said input bit, to produce said new program having a predetermined lifetime and wherein said new program having a predetermined lifetime is guaranteed to only have the predetermined lifetime and wherein said predetermined lifetime comprises a predetermined number of uses and wherein said program is executed at most k times, wherein k is equal to or greater than one, wherein said secure hardware device stores security data and wherein execution of said program having a predetermined lifetime requires use of at least a portion of said security data. - View Dependent Claims (36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51)
-
Specification