Floating-Point Masking for Side Channel Attack Resistance
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing masking countermeasures against side channel attacks, particularly in cryptography, are vulnerable to deep machine learning approaches and high-order attacks, which can reveal masked data and exploit leakage.
Innovation Solution
The method involves using floating-point operations in conjunction with an invertible function that introduces non-null rounding errors, generating output binary words with a large Hamming distance, thereby decorrelating the distance of input integer numbers and output binary representations, making it harder for deep learning machines to identify masked data.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If affine masking countermeasures are used to protect substitution tables against side channel attacks, then security against traditional attacks is improved, but vulnerability to deep machine learning attacks and high-order attacks increases
Solution Approach 1:
The patent transforms the masking operation from simple XOR-based Boolean masking to floating-point multiplication with invertible functions. This parameter change in the mathematical domain creates non-linear transformations that decorrelate input-output relationships, making deep learning attacks ineffective while maintaining resistance against traditional side channel and high-order attacks.
Solution Approach 2:
The patent introduces floating-point arithmetic operations as an intermediary layer between the input data and the substitution table access. This intermediary transformation layer with invertible functions and controlled rounding errors breaks the direct correlation that deep learning models exploit, while still allowing legitimate cryptographic operations to proceed.
2Object-affected harmful factors
If floating-point operations with invertible functions are used to generate output binary words, then resistance against deep learning attacks is improved, but computational complexity increases
Solution Approach 1:
The patent pre-defines specific invertible floating-point functions and rounding error characteristics that will be used in the masking operation. By establishing these parameters in advance, the system avoids the need for complex dynamic function selection during execution, reducing runtime computational complexity while maintaining the security benefits of the floating-point transformation approach.
3Difficulty of detecting and measuring
If floating-point multiplication and invertible functions are applied to mask data, then Hamming distance between output binary words increases, but energy consumption increases
Solution Approach 1:
The patent applies floating-point operations selectively to specific critical data paths where masking is most needed, rather than uniformly applying complex transformations to all data. This localized application of floating-point multiplication and invertible functions achieves sufficient decorrelation for security while minimizing unnecessary energy consumption in less critical operations.
Data Source
Figure 1~2
Figure 3~3a
Figure 4~5
AI summary
A method is proposed for the generation of an output binary word from an input binary word. Such method comprises: - executing a first floating-point multiplication (5200) wherein the input binary word interpreted as an integer number is multiplied with a first predetermined number of floating-point type, resulting in a first argument number of floating-point type; - applying a predetermined invertible function (5220) to the first argument number delivering a first output number of the floating-point type, the output binary word being based on the first output number. The predetermined invertible function is configured to have the first output number having a non-null output rounding error resulting in having an application, to the first output number, of an invert function of the predetermined invertible function that delivers an input number of the floating-point type corresponding to the input operand with a non-null input error.