BLAKE Hashing Processor Instruction for G-Function Execution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional approaches to implementing the BLAKE secure hashing algorithm are computationally intensive and inefficient, requiring many instructions and incurring significant overhead due to data dependencies and data rearrangement operations, which limits parallelism and increases processing time.
Innovation Solution
The development of specialized instructions and a processor architecture that includes cryptographic hash execution logic, allowing for the execution of BLAKE secure hashing algorithm using a single instruction to perform the entire G-function on a set of state matrix data elements, reducing the number of operations and data movements by bringing all necessary data in once and writing the results back after completion.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If conventional approaches are used to implement the BLAKE secure hashing algorithm, then the algorithm can be executed using standard instructions, but the processing time increases significantly and parallelism is limited due to data dependencies and rearrangement operations
Solution Approach 1:
The patent combines multiple BLAKE algorithm operations (G-function evaluations, data rearrangements, and state matrix updates) into a single specialized instruction. This merging of operations eliminates the sequential execution requirements and reduces processing time by performing what would traditionally require multiple instructions in one unified operation.
Solution Approach 2:
The patent replaces conventional mechanical instruction execution with a specialized cryptographic hash execution unit that uses parallel data paths and simultaneous operation capabilities. This substitution enables multiple G-function evaluations to occur in parallel, dramatically reducing processing time compared to sequential conventional instruction execution.
2Productivity
If conventional approaches are used, then processor architecture remains simple, but the number of instructions and data movements increases, reducing parallelism
Solution Approach 1:
The specialized instruction is designed to perform multiple functions within a single operation, including executing G-function evaluations, handling data rearrangements, and updating state matrix elements. This multi-functionality enables parallelism by consolidating operations that would traditionally require separate instructions, while the complexity is managed through a unified instruction set extension rather than multiple specialized units.
3Ease of operation
If conventional approaches are used, then implementation is straightforward using standard instructions, but data dependencies and rearrangement operations create significant overhead
Solution Approach 1:
The specialized instruction is designed with built-in support for data rearrangements and state matrix updates as part of the execution process. By incorporating these operations into the instruction itself rather than requiring separate rearrangement instructions, the patent eliminates overhead associated with data movement and dependency management, while maintaining ease of implementation through a unified operation interface.
Data Source
AI summary
A method of an aspect includes receiving an instruction indicating a first source having at least one set of four state matrix data elements, which represent a complete set of four inputs to a G function of a cryptographic hashing algorithm. The algorithm uses a sixteen data element state matrix, and alternates between updating data elements in columns and diagonals. The instruction also indicates a second source having data elements that represent message and constant data. In response to the instruction, a result is stored in a destination indicated by the instruction. The result includes updated state matrix data elements including at least one set of four updated state matrix data elements. Each of the four updated state matrix data elements represents a corresponding one of the four state matrix data elements of the first source, which has been updated by the G function.


