Processor Identifier Scrambling for Unauthorized Execution Prevention
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Processor design vendors face challenges in ensuring that application programs are executed only on licensed processor chips, as unlicensed customers can potentially run licensed application programs without paying royalties, due to the inability to differentiate processor cores.
Innovation Solution
A system utilizing a scrambling module that scrambles a portion of the application program with a unique identifier specific to the authorized processor, and a recovery module that unscrambles it only if the correct identifier is retrieved from the processor, preventing execution on unauthorized processors.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If the same processor core design is licensed to multiple customers, then the processor design can be widely adopted and manufactured, but any customer can potentially run application programs licensed to other customers without paying royalties
Solution Approach 1:
The patent applies local quality by making each processor core have a unique local identifier embedded in its hardware, while the application program is scrambled with a specific customer's identifier. This creates a localized match requirement between the processor's unique identifier and the program's expected identifier, allowing the same processor design to be reused across customers while ensuring each customer's programs can only run on their licensed processors.
Solution Approach 2:
The patent changes the parameter of the application program from a fixed executable state to a scrambled state that requires a specific key (customer identifier) to unscramble. This parameter transformation ensures that even though the processor core design remains the same across customers, the application programs become customer-specific through the scrambling mechanism, preventing unauthorized execution.
2Productivity
If application programs are provided in optimized object code format to customers, then the programs can execute efficiently on the processor, but the programs can be copied and executed on unauthorized processors
Solution Approach 1:
The patent applies preliminary action by scrambling the application program in advance before providing it to the customer. This pre-processing step transforms the executable code into an encrypted form that cannot be directly executed. The unscrambling operation is triggered at runtime when the processor's unique identifier matches the expected identifier, ensuring that only authorized processors can execute the program while maintaining execution efficiency.
Solution Approach 2:
The patent introduces an intermediary unscrambling mechanism that sits between the scrambled application program and the processor execution unit. This intermediary layer verifies the processor's authorization through identifier matching and converts the scrambled code into executable form only for authorized processors, thereby preventing unauthorized execution while maintaining efficiency for licensed customers.
3Ease of manufacture
If the processor design is fixed and cannot be changed by customers, then the processor vendor maintains control over the design, but customers cannot customize features to optimize their specific applications
Solution Approach 1:
The patent segments the processor design into two parts: a fixed core design that maintains vendor control and manufacturing consistency, and a customizable identifier field that allows customer-specific configuration. This segmentation enables the same base processor design to be manufactured uniformly while allowing each customer's processors to have unique identifiers embedded, facilitating both vendor control and customer customization needs.
Data Source
AI summary
A system and method for preventing an application program, which is licensed to a customer to be exclusively executed in a processor based on a certain processor design, from being executed properly in unauthorized processors is provided. The system includes a scrambling module and a recovery module. The scrambling module scrambles a selected portion of the application program using an identifier which identifies the authorized processor design. The recovery module adds an unscrambling program to the application program such that when the program is running in a processor, it retrieves a second identifier from the processor and unscrambles the scrambled portion of the application program using the retrieved second identifier. If the second identifier does not correspond to an authorized processor design, the unscrambling operation will incorrectly unscramble the scrambled portion and the application program will not run properly.


