NBOW Hash Function Parallel Block Cipher Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing block cipher hash functions, such as MDC-2 and double block length (DBL) hash functions, face limitations in achieving high rates and efficiency, with rate R often being less than 1/2 for key lengths equal to block lengths and twice for double key lengths, and are not as fast as desired.
Innovation Solution
The proposed NBOW (N Block One-Way) hash function processes N message blocks per round, using block ciphers like AES-128, with each block being XORed with other blocks and used as keys, and employing a Davies-Meyer like construction for efficient iteration, resulting in a rate of 1 or higher and improved performance by reducing the number of block operations per data block.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If traditional block cipher hash functions (MDC-2, DBL) are used, then security is maintained, but the hashing rate is limited to R < 1/2 for key lengths equal to block lengths
Solution Approach 1:
The message is divided into multiple blocks that are processed in parallel using multiple block ciphers. The hash function processes N message blocks per round, with each block being XORed with other blocks and used as keys for parallel block cipher operations, achieving a rate of 1 or higher by segmenting the processing into independent parallel paths.
Solution Approach 2:
The patent transitions from sequential single-block processing to multi-block parallel processing by introducing multiple block ciphers operating simultaneously. This dimensional change from single-threaded to multi-threaded block cipher operations enables the hashing rate to exceed 1, fundamentally changing the processing architecture.
2Quantity of substance
If double block length (DBL) hash functions are used, then output size is increased, but the number of block cipher operations doubles the key length requirements
Solution Approach 1:
Multiple block ciphers with the same key length are used to simultaneously produce multiple hash output blocks. Each block cipher operates independently with the same key size but produces distinct output blocks that are combined to form the final hash, achieving large output size without increasing individual key length requirements.
3Reliability
If more block cipher operations are performed per data block, then security strength is improved, but processing speed decreases
Solution Approach 1:
The hash function employs iterative rounds where multiple block ciphers operate continuously in parallel on different message blocks. The Davies-Meyer like construction enables continuous processing where output from one round becomes input for the next, maintaining security through multiple operations while achieving high throughput via parallel execution.
Solution Approach 2:
Message blocks are pre-XORed with other blocks and intermediate hash values to create diverse keys for the block ciphers. This preliminary mixing of data before encryption ensures that each block cipher operation contributes to both security and the overall hash computation efficiency, reducing redundant operations.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Various embodiments relate to a method of hashing a message M using a block cipher, including: producing N block cipher inputs by XORing message indices i, ... i + N - 1 respectively with state values S0, ... SN-1, wherein N is an integer greater than 1; producing N block cipher keys by XORing N different blocks of message M and at least one of state values S0, ... SN-1 for each of the N block cipher keys; encrypting the N block cipher inputs using the respective N block cipher keys to produce N block cipher outputs; combining the N block cipher outputs with N block cipher inputs to produce N block cipher combined outputs Tt, for t = 0, ..., N - 1; calculating Y0 = T0; calculating Yt = Yt-1 ⊕ Tt, for t = 1, ..., N - 1, calculating S'N-1 = YN-1 <<< a, where a is a number of bits to rotate where S'0,..., S'N-1 are new state values; and calculating S't = Yt ⊕ S'N-1, for t = 0,...,N-2.