White-Box Message Encryption with Seed-Based Masking Against CPA
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
White-box encryption algorithms are vulnerable to chosen-plaintext attacks (CPA) in real-world applications, leading to potential breaches in data security due to identical ciphertexts being generated for identical blocks, especially in environments where the encryption process is visible and modifiable.
Innovation Solution
Implement a mask generation function (MGF) within the white-box encryption algorithm to generate unique masks for each block, using a seed-based approach that integrates with existing encryption APIs, ensuring different ciphertexts are generated for different blocks, even when the same plaintext is encrypted, thereby enhancing semantic security.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If white-box encryption algorithm is used, then encryption process is visible and modifiable, but vulnerability to chosen-plaintext attacks increases
Solution Approach 1:
The patent introduces a mask generation function (MGF) as an intermediary component between the plaintext and the encryption process. The MGF takes the plaintext and generates a mask, which is then used to encrypt the plaintext. This intermediary mask layer prevents direct observation of the encryption process while maintaining visibility of the overall encryption flow, thereby resolving the contradiction between ease of operation and security against CPA.
Solution Approach 2:
The patent segments the encryption process into distinct functional components: mask generation, masking, and encryption. By dividing the encryption process into separate stages with specific functions (MGF for mask generation, separate masking step, and final encryption), the system maintains operational clarity while preventing vulnerable patterns in the encryption output, thus addressing the CPA vulnerability issue.
2Device complexity
If identical plaintext blocks are encrypted, then encryption process is simple, but ciphertexts become identical creating security vulnerability
Solution Approach 1:
The patent applies preliminary action by generating a mask before the actual encryption process. The mask is generated in advance using the mask generation function, and then this pre-computed mask is used to encrypt the plaintext. This preliminary mask generation ensures that even identical plaintext blocks receive different treatment through the mask, maintaining semantic security without complicating the overall encryption process.
Solution Approach 2:
The patent changes the encryption parameter by introducing a mask that is generated based on the plaintext content. Instead of using a fixed or simple encryption key, the system dynamically generates a mask parameter through the MGF, which then modifies the encryption process. This parameter change ensures that identical plaintext blocks produce different ciphertexts while keeping the encryption mechanism relatively simple.
3Reliability
If mask generation function is added, then CPA resistance is improved, but encryption process complexity increases
Solution Approach 1:
The patent makes the mask generation function universal by designing it to handle multiple purposes: generating masks for encryption, ensuring semantic security, and maintaining compatibility with existing encryption APIs. The MGF serves multiple functions within a single component, which improves CPA resistance without proportionally increasing the overall system complexity.
Solution Approach 2:
The patent merges the mask generation functionality with the existing encryption API structure. By integrating the MGF into the encryption process flow rather than adding it as a separate external component, the system achieves CPA resistance while minimizing the increase in process complexity. The MGF and encryption function are combined in a coordinated manner that maintains operational simplicity.
Data Source
AI summary
A method for encrypting messages is provided. The method for encrypting messages includes: generating a seed; generating a mask based on the seed; generating a masked message by masking an original message using the mask; acquiring a target message by performing white box encryption on the masked message; and disclosing the target message and the seed.


