Secure Processor With Encoded Instructions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Network devices are vulnerable to attacks that exploit flaws in the operating software stack, allowing attackers to execute malicious machine-language instructions, thereby gaining control of the device.

Innovation Solution

A processor with an instruction fetcher, decoder, and instruction processor that encodes and decodes machine-language instructions using a unique key, such as a MAC address, to prevent unauthorized execution, employing decoding tables to map encoded to decoded instructions, ensuring only valid instructions are executed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If machine-language instructions are executed directly without encoding, then processor execution speed is maintained, but the system becomes vulnerable to malicious code execution

Engineering Contradiction:
ImprovesecurityVSAvoidinstruction encoding complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by encoding machine-language instructions with a unique key before they are stored and executed. The encoding is performed in advance during system initialization or instruction loading, transforming the instructions into an encoded format that requires decoding before execution. This preliminary encoding step ensures that even if malicious instructions are injected, they cannot be executed without the correct key, thus preventing security vulnerabilities while maintaining a relatively simple execution process.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If instructions are encoded using a unique key, then unauthorized execution is prevented, but decoding overhead increases processing time

Engineering Contradiction:
ImprovesecurityVSAvoidinstruction execution speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies partial action by implementing a hybrid decoding approach where only certain instructions are decoded using the unique key, while other instructions are executed directly. The system identifies and decodes only the critical instructions that require security verification, allowing non-critical instructions to bypass the decoding step. This selective decoding reduces the overall overhead and maintains higher instruction execution speed while still providing security where needed.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If all instructions are decoded using decoding tables, then security is enhanced, but memory access time increases

Engineering Contradiction:
ImprovesecurityVSAvoidmemory access time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies the extraction principle by separating the decoding operation from the main execution flow. Instead of accessing decoding tables for every instruction, the system extracts and caches the decoded form of frequently executed instructions in a separate cache structure. When an instruction is encountered, the system first checks the cache for a match, and only accesses the decoding tables if the instruction is not found in the cache. This extraction and caching mechanism significantly reduces memory access time while maintaining security.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS7941640B1Secure processors having encoded instructions
Publication Date: 2011.05.10 MARVELL ASIA PTE LTD
  • US7941640B1 patent drawing
  • US7941640B1 patent drawing
  • US7941640B1 patent drawing

AI summary

A processor includes an instruction fetcher, a decoder, and an instruction processor. The instruction fetcher retrieves encoded machine-language instructions. The encoded machine-language instructions are encoded according to a predetermined key assigned only to the processor. The predetermined key is independent of opcodes of the processor. The decoder decodes each of the encoded machine-language instructions according to the predetermined key. The instruction processor executes the decoded machine-language instructions.