White-Box Cryptographic Implementation Fingerprinting
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing white-box cryptographic implementations face challenges in tracing the original owner of a leaked implementation, as existing methods require analyzing the code, which can be time-consuming and difficult due to obfuscation techniques, and there is a need to embed a fingerprint that can be identified through functional behavior without affecting normal functioning.
Innovation Solution
A method is introduced to determine a fingerprint identification by performing a keyed cryptographic operation using a network of lookup tables within the AES operation, where a specific message causes incorrect outcomes, allowing for unique identification of the original owner without code analysis, by modifying the output of S-boxes and using user-specific values, and incorporating finite state machines for obfuscation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If code obfuscation techniques are used to hide embedded knowledge and prevent reverse engineering, then tamper resistance is improved, but the ability to trace the original owner deteriorates
Solution Approach 1:
The patent embeds a fingerprint identifier into the white-box implementation during the compilation or generation phase, before the implementation is distributed. This preliminary embedding ensures that even though the code is later obfuscated, the fingerprint remains embedded in the functional behavior and can be used for traceability without requiring code analysis.
Solution Approach 2:
The patent uses a fingerprint identifier as an intermediary element that connects the obfuscated implementation to its origin. This fingerprint is embedded in a way that it manifests through the functional behavior of the implementation, serving as a mediator that enables traceability without exposing the obfuscated code structure.
2Loss of information
If a fingerprint is embedded in the code to enable tracing, then traceability is improved, but the complexity of code analysis increases
Solution Approach 1:
The patent extracts the traceability function from the code structure itself and embeds it as a separate fingerprint identifier that manifests through functional behavior. This allows tracing to be performed by observing input-output relationships rather than analyzing the obfuscated code, thereby reducing code analysis complexity.
Solution Approach 2:
The patent replaces the mechanical approach of embedding visible markers in the code with a functional approach where the fingerprint is embedded in the behavioral characteristics. Instead of analyzing code structure (mechanical analysis), tracing is performed by observing functional behavior, substituting one method for another.
3Loss of information
If the fingerprint identification method affects normal cryptographic operations, then tracing capability is improved, but cryptographic functionality deteriorates
Solution Approach 1:
The patent embeds the fingerprint identifier in a localized manner within the white-box implementation such that it only affects specific behavioral characteristics under certain conditions (specific input messages), while leaving the normal cryptographic operations unchanged. This ensures that tracing capability is improved without compromising cryptographic functionality.
Solution Approach 2:
The patent implements the fingerprint identification mechanism in a partial manner, where it only activates or manifests under specific conditions (when particular input messages are provided), rather than continuously affecting all operations. This allows tracing to be performed without interfering with normal cryptographic operations during typical use.
Data Source
Figure 1~2
Figure 3~4
Figure 5~6
AI summary
A method of determining a fingerprint identification of a cryptographic implementation in a cryptographic system, including: receiving, by the cryptographic system, an input message that is a fingerprint identification message; performing, by the cryptographic system, a keyed cryptographic operation mapping the fingerprint identification message into an output message that includes a fingerprint identification; and outputting the output message.