Vector Processing KECCAK Hash Algorithm Subcubes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software implementations of the KECCAK secure hashing algorithm are constrained by the high number of logic operations requiring individual integer instructions, which limits performance due to the inability to efficiently utilize parallel execution of functions using vector instructions like SIMD or AVX.

Innovation Solution

The use of vector instructions and data paths to partition the KECCAK state cube into subcubes, allowing for parallel processing of KECCAK operations, reducing the number of instructions per round from over 100 to approximately eight by performing θ, ρ, π, and ι functions in a vector manner.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If individual integer instructions are used for each logic operation in KECCAK, then the implementation is simple to implement, but the processing speed is slow due to inability to utilize parallel execution

Engineering Contradiction:
ImproveEase of implementationVSAvoidProcessing speed
Core Design Contradiction:
Ease of manufactureVSSpeed

Solution Approach 1:

The KECCAK state cube is segmented into multiple subcubes, with each subcube processed by separate vector instructions. This segmentation enables parallel processing of multiple state elements simultaneously, transforming the sequential execution of individual integer instructions into concurrent vector operations, thereby resolving the contradiction between implementation simplicity and processing speed

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent replaces the mechanical sequential execution of individual integer instructions with vector instruction-based parallel processing. By substituting the traditional instruction execution mechanism with vectorized operations, the system achieves higher throughput while maintaining algorithmic correctness, thus resolving the speed limitation without sacrificing implementation feasibility

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Speed

If vector instructions are used to process KECCAK operations, then the processing speed increases through parallel execution, but the device complexity increases due to need for specialized vector processing

Engineering Contradiction:
ImproveProcessing speedVSAvoidInstruction complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent leverages existing SIMD and AVX vector instruction sets that are already present in modern processors. By utilizing these pre-existing multi-functional vector processing capabilities, the implementation achieves parallel execution speedups without requiring specialized hardware or complex custom instruction sets, thus resolving the contradiction between speed improvement and device complexity

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent changes the operational parameters by organizing KECCAK state data into vector-friendly formats that align with SIMD/AVX register widths. This parameter transformation enables efficient utilization of existing vector instructions, achieving high-speed parallel processing while avoiding the need for complex device modifications, thereby resolving the contradiction between speed and complexity

Inventive Principle:
Principle #35Parameter changes

3Reliability

If the KECCAK state cube is processed as a whole, then the algorithm maintains its security properties, but the number of instructions per round increases to over 100 instructions

Engineering Contradiction:
ImproveAlgorithm securityVSAvoidInstructions per round
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The KECCAK state cube is divided into multiple subcubes, allowing the algorithm to process segments in parallel while maintaining the overall security properties through proper mixing operations. This segmentation reduces the instruction count per parallel stream while achieving throughput equivalent to processing the entire state, thus resolving the contradiction between security integrity and instruction efficiency

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent merges multiple operations into unified vector instructions that perform multiple logical functions simultaneously. By combining several scalar operations into single vector operations, the implementation reduces the total instruction count while preserving the cryptographic security properties of the KECCAK algorithm, thereby resolving the contradiction between security and productivity

Inventive Principle:
Principle #5Merging (Combining)

4Adaptability or versatility

If scalar integer instructions are used for KECCAK operations, then the instruction set requirement is minimal, but the throughput is limited to single-operation-per-instruction

Engineering Contradiction:
ImproveInstruction set compatibilityVSAvoidThroughput
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent replaces scalar integer instruction execution with vector instruction-based processing, substituting the old mechanical execution model with a more efficient vectorized system. This substitution enables multiple operations per instruction while maintaining compatibility with existing processor architectures through standard SIMD/AVX instructions, thus resolving the contradiction between instruction set adaptability and throughput

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The patent transitions from one-dimensional scalar processing to multi-dimensional vector processing by organizing KECCAK state data into vector registers. This dimensional transformation enables parallel execution across multiple data elements simultaneously, achieving high throughput while maintaining compatibility with existing vector instruction sets, thereby resolving the contradiction between adaptability and productivity

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS10691458B2Method and apparatus to process KECCAK secure hashing algorithm
Publication Date: 2020.06.23 INTEL CORP
  • US10691458B2 patent drawing
  • US10691458B2 patent drawing
  • US10691458B2 patent drawing

AI summary

A processor includes a plurality of registers, an instruction decoder to receive an instruction to process a KECCAK state cube of data representing a KECCAK state of a KECCAK hash algorithm, to partition the KECCAK state cube into a plurality of subcubes, and to store the subcubes in the plurality of registers, respectively, and an execution unit coupled to the instruction decoder to perform the KECCAK hash algorithm on the plurality of subcubes respectively stored in the plurality of registers in a vector manner.