Non-Malleable Code Encoding Using Memory-Hard Functions

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvetamper detection capabilityVSAvoidmalware vulnerability
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

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.

Inventive Principle:
Principle #2Taking out (Extraction)

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improveinformation leakage during tamperingVSAvoidcomputational space requirement
Core Design Contradiction:
Loss of informationVSVolume of stationary object

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #26Copying

Data Source

PatentEP3861671B1Continuous space-bounded non-malleable codes from stronger proofs-of-space
Publication Date: 2025.01.22 VISA INTERNATIONAL SERVICE ASSOCIATION
  • EP3861671B1 patent drawingFigure 1
  • EP3861671B1 patent drawingFigure 2
  • EP3861671B1 patent drawingFigure 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.