AES Engine Two-Way Parity Detection for Fault Coverage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current fault detection methods in encryption systems, such as duplicating the AES engine or using single parity, are either too costly or provide inadequate fault coverage, especially in high-throughput environments where errors can quickly spread throughout data blocks.

Innovation Solution

Implementing a two-way parity fault detection system that segments data into smaller parts, computes and compares parity bits throughout the encryption and decryption processes, and optionally duplicates control logic to detect faults efficiently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the AES engine is duplicated to detect faults, then fault detection capability is improved, but hardware cost and complexity increase significantly

Engineering Contradiction:
Improvefault detection capabilityVSAvoidhardware cost
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The data is segmented into smaller blocks, and parity bits are computed for each segment independently. This allows fault detection to be performed on portions of data rather than requiring complete duplication of the AES engine, thereby reducing hardware complexity while maintaining fault detection capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Parity bits serve as intermediary elements that enable fault detection without requiring direct duplication of the encryption engine. By computing and comparing parity bits of segmented data, the system detects faults through this intermediate mechanism rather than through full engine duplication.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Device complexity

If single parity method is used to reduce overhead, then hardware cost is reduced, but fault coverage becomes inadequate

Engineering Contradiction:
Improvehardware overheadVSAvoidfault coverage
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

Data is divided into multiple segments, and separate parity bits are computed for each segment. This segmentation enables detection of faults that might occur at different stages of the encryption process, significantly improving fault coverage compared to a single parity bit for the entire data block, while still avoiding the high overhead of full duplication.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Instead of applying parity checking to the entire data block at once (single parity), the method applies partial parity checking to multiple smaller segments. This excessive segmentation approach ensures that even if some segments are missed or faults occur between checkpoints, the overall fault coverage remains high.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If complex non-linear algorithms are used for encryption, then security is improved, but susceptibility to faults increases

Engineering Contradiction:
ImprovesecurityVSAvoidfault susceptibility
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

Parity bits are computed preliminarily for each data segment before the full encryption process completes. This preliminary action establishes expected parity values that can be used to detect faults during or after encryption, allowing the system to identify errors introduced by the complex non-linear algorithms without compromising security.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9646175B2Two-way parity error detection for advanced encryption standard engines
Publication Date: 2017.05.09 SYNOPSYS INC
  • US9646175B2 patent drawing
  • US9646175B2 patent drawing
  • US9646175B2 patent drawing

AI summary

A method of improving the operation of a processor executing a cryptographic process, by automatically detecting faults during both encryption and decryption operations by the cryptographic process, comprises segmenting the data to be encrypted and encrypting the data segments using a complex non-linear algorithm that can lead to faults; computing an output parity bit from a selected step of the algorithm for a selected data segment, based on the input value of that segment; comparing the actual output parity bit of the selected segment with the computed output parity bit for that segment; and determining whether a fault exists, based on whether the actual output parity bit matches the computed output parity bit for the selected segment.