Non-Malleable Code Encoding Using Memory-Hard Functions
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing technologies fail to effectively protect secret data from continuous space-bounded tampering attacks, where attackers with limited computational space and memory can repeatedly tamper with the data, potentially revealing the secret.
Innovation Solution
The implementation of a method that uses a memory-hard function to encode a secret and generates a non-interactive proof of space, which is proof-extractable, to create a codeword that can be stored with minimal memory while maintaining tamper resistance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If non-malleable codes are used to protect secret data, then tamper detection capability is improved, but vulnerability to malware that accesses decoding function remains
Solution Approach 1:
The patent extracts the decoding function from the secure element and places it in trusted hardware outside the secure element. The secure element only stores the encoded secret data and performs verification, while the actual decoding operation is performed externally. This separation prevents malware inside the secure element from accessing the decoding function, as the function itself is removed from the vulnerable environment.
Solution Approach 2:
The patent introduces an intermediary trusted hardware component that acts as a mediator between the secure element and the external system. This intermediary performs the decoding operation in a secure environment and only returns the decoded secret to the external system after verification. The intermediary prevents direct access to the decoding function by malware while still enabling legitimate decoding operations.
2Loss of information
If proof-extractable non-interactive proof of space is used, then information leakage during tampering is reduced, but computational space requirement increases
Solution Approach 1:
The patent performs the computationally intensive proof-of-space generation in advance during the encoding phase, before any potential tampering attacks occur. The encoded data including the proof is stored in the secure element, eliminating the need for repeated high-space computations during operation. This preliminary action shifts the space requirement from the operational phase to the initial setup phase.
Solution Approach 2:
The patent creates a compact copy of the proof-of-space evidence that can be verified with minimal space requirements. The full computational proof is generated once with high space requirements, but the verification process uses a condensed representation that fits within the limited space of the secure element. This copying approach separates the space-intensive generation from the space-constrained verification.
Data Source
Figure 1
Figure 2
Figure 3A~3B
AI summary
Systems, methods, and apparatuses for protecting a secret on a device with limited memory, while still providing tamper resistance, are described. To achieve security, an encoding computer can apply a memory-hard function MHF to a secret S and determine a result Y, then determine a proof η for the result Y. Then, the encoding computer can send a codeword C comprising the secret S and the proof η to a decoding computer. The decoding computer can retrieve the codeword C from persistent memory and parse the secret S and the proof η. The decoding device can use transient memory to decode the codeword C by verifying the proof η was generated with the secret S and the result Y. When the correctness of the result Y is verified, the decoding device can apply a cryptographic function to input data using the secret S then reset the transient memory.