One-Time Program Self-Destruction via Secure Memory Oblivious Transfer

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional computer programs can be copied, analyzed, and executed arbitrarily, making it difficult to limit user access or enforce one-time usage, which is undesirable in security applications such as cryptographic tasks and electronic cash systems.

Innovation Solution

The development of one-time programs that can be executed only once or a limited number of times, utilizing secure memory devices with interactive oblivious transfer protocols to store secret keys and self-destruct after use, ensuring that programs can only be run on a single input or a specified number of inputs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional software protection mechanisms are implemented, then software security is improved, but the code can still be reverse engineered or protection removed

Engineering Contradiction:
Improvesoftware securityVSAvoidreverse engineering capability
Core Design Contradiction:
ReliabilityVSObject-generated harmful factors

Solution Approach 1:

The patent implements one-time programs that are designed to be executed only once and then self-destruct. The program code is transformed into a form that can be run a predetermined number of times (typically once) and then becomes unusable. This disposable approach to software ensures that even if the code is copied or analyzed, it cannot be reused for malicious purposes, fundamentally addressing the reverse engineering problem by making the software obsolete after a single use.

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

2Ease of operation

If a vendor gives a user unlimited access to a program, then ease of operation is improved, but control over usage is lost

Engineering Contradiction:
Improveprogram accessibilityVSAvoidusage control
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent introduces dynamic usage control by transforming static software into one-time programs with predetermined execution limits. The program is compiled or transformed to include self-destruct mechanisms that automatically prevent further execution after the allowed number of uses. This dynamic approach allows vendors to maintain ease of operation during the authorized usage period while automatically enforcing usage control after expiration, eliminating the need for complex licensing systems.

Inventive Principle:
Principle #15Dynamics

3Reliability

If software protection mechanisms are built into programs, then security is improved, but the protection can be removed

Engineering Contradiction:
Improvesoftware protectionVSAvoidprotection removal capability
Core Design Contradiction:
ReliabilityVSObject-generated harmful factors

Solution Approach 1:

The patent fundamentally changes the software protection model by making the program itself disposable rather than relying on removable protection mechanisms. The one-time program is designed to execute its function and then self-destruct, eliminating any possibility of protection removal since the protected code ceases to exist after use. This approach transforms the security model from preventing unauthorized access to accepting that access occurs but limiting its duration to a single use.

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

Data Source

PatentUS8762736B1One-time programs
Publication Date: 2014.06.24 MASSACHUSETTS INST OF TECH
  • US8762736B1 patent drawing
  • US8762736B1 patent drawing
  • US8762736B1 patent drawing

AI summary

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.