Cryptographic Hash Padding for Large Message Security
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing cryptographic hash functions face challenges in handling messages larger than the maximum size specified by standards, requiring message segmentation and independent validation to maintain interoperability and security, while existing padding methods may compromise security and efficiency.
Innovation Solution
A method for computing devices to determine the bit-length of messages and add an expanded length block if necessary, ensuring the padded message is a multiple of the fixed block size, while maintaining Merkle-Damgard strengthening for security, by setting bits in memory address locations and using a processor to adjust values for padding and length representation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If standard Merkle-Damgard padding is used to maintain security and interoperability, then security properties are preserved, but messages larger than the maximum size specified by standards cannot be processed
Solution Approach 1:
The patent segments the message processing into multiple standardized hashing operations. Large messages are divided into smaller blocks that each fit within the standard's maximum size constraints, allowing the system to process messages of arbitrary length while maintaining compliance with standard specifications and preserving security properties through iterative application of the hash function.
Solution Approach 2:
The patent introduces an additional dimension to the padding scheme by incorporating a length block that encodes the original message length. This extended padding approach (beyond traditional Merkle-Damgard) allows the system to handle messages larger than the standard maximum by providing length information that enables secure processing of segmented messages while maintaining collision resistance and preimage resistance.
2Adaptability or versatility
If messages are segmented into multiple pieces for hashing, then large messages can be processed, but independent validation of each piece is required increasing complexity
Solution Approach 1:
The patent performs preliminary actions by computing and storing the length block encoding the original message length before segmenting and hashing the message. This pre-computed length information is then used during validation to verify the complete message without requiring complex cross-validation between segments, simplifying the validation process while enabling large message processing.
3Adaptability or versatility
If the length block is extended to accommodate larger messages, then message size capability increases, but the risk of collisions may increase
Solution Approach 1:
The patent uses the length block as an intermediary element that bridges the gap between standard hashing capabilities and large message requirements. By encoding the message length in this intermediary structure and incorporating it into the padded message, the system maintains collision resistance properties while extending the usable message size range beyond traditional standard limitations.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A computing device and a computing device implemented method are provided for preparing a message a bit-length number of bits in length less than or equal to a pre-determined maximum size, for input to a cryptographic hash function operating on blocks of a predetermined block size of B bits. The computing device comprises a processor in communication with a memory for processing the message. The method comprises the processor padding the message by adding sufficient padding bits and a length block of length n bits, such that a padded bit-length of the padded message is an integer factor times the block size B; and the processor setting the bits of the length block such that if the bit-length is less than 2 n bits long, the bits of the length block represent the padded bit-length; and, if the bit-length is greater than or equal to 2 n bits long, the bits of the length block represent a pre-determined value non-representative of the bit-length