SHA-2 Hash Computation With Parallel Message Scheduling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing cryptographic hash computations, such as SHA-256, are resource-intensive bottlenecks in applications like Filecoin, hindering parallelization across SIMD operations and multi-core CPUs due to sequential data dependencies.
Innovation Solution
Separate message schedule calculations from hash rounds and utilize SIMD instructions and SHA extensions to perform up to 8 rounds of message schedule in parallel, reducing computational overhead.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If SHA-256 hash computations are performed using conventional sequential methods, then cryptographic security and correctness are maintained, but computational efficiency and resource usage deteriorate due to sequential data dependencies preventing parallelization
Solution Approach 1:
The patent divides the hash computation into separate message schedule calculations and hash rounds. The message schedule is computed once and segmented into multiple independent sets, each usable by different hash round computations. This segmentation eliminates sequential data dependencies between rounds while maintaining cryptographic correctness, enabling parallel execution across multiple CPU cores and SIMD lanes.
Solution Approach 2:
The patent performs message schedule calculations as a preliminary action before executing the hash rounds. By pre-computing the message schedule and storing it in memory, the patent eliminates the need for repeated message schedule computations during each hash round, significantly reducing computational overhead and enabling parallel hash round executions without re-computing dependent values.
2Loss of energy
If message schedule calculations are performed separately from hash rounds, then computational overhead is reduced and parallelization is enabled, but implementation complexity increases
Solution Approach 1:
The patent segments the cryptographic computation into distinct message schedule generation and hash round execution phases. The message schedule is generated once and stored, then reused across multiple hash rounds. This segmentation reduces redundant computations and enables parallel hash round executions, with the trade-off of requiring separate memory storage for message schedules, which is managed through structured data layouts.
Solution Approach 2:
The patent introduces message schedule arrays as intermediary data structures that bridge the input message and the hash round computations. These intermediary arrays store pre-computed values that are reused across multiple rounds, acting as a mediator that decouples the computational dependency chain and enables parallel execution while maintaining data integrity.
3Use of energy by moving object
If redundant calculations in hash operations are minimized, then resource usage is optimized, but calculation precision may be affected
Solution Approach 1:
The patent performs message schedule calculations as a preliminary action with full precision, storing the results in dedicated memory arrays. This pre-computation with complete precision eliminates redundant high-precision calculations during each hash round, as the pre-computed values are directly reused. The precision is preserved because the message schedule values are stored without approximation, and the trade-off is acceptable memory usage for significant computational savings.
Solution Approach 2:
The patent creates copies of the message schedule values in dedicated memory arrays that can be efficiently accessed and reused across multiple hash rounds. Instead of re-computing values, the patent copies and reuses the pre-computed message schedule data, significantly reducing computational resource usage while maintaining exact precision through faithful data replication without approximation.
Data Source
AI summary
Methods, apparatus, and software for hashing data. The methods and apparatus employ novel improvements to hash algorithms, such as a SHA-2 hash algorithm to reduce computations and increase performance. In one aspect, calculation of SHA-2 message scheduling and SHA compression operations are separated under which an SHA-2 message schedule is applied to multiple rounds of SHA compression operations over multiple chunks of data for the data item being hashed. In another aspect, the SHA-2 message schedule is implemented such that message schedules for multiple message words or data blocks are performed in parallel. The approaches may be employed to reduce hash calculations for various purposes, including generating Filecoin nodes.


