Automatic Algorithm Masking for Side-Channel Attack Protection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for protecting cryptographic algorithms against side-channel attacks are either limited to manual implementations, prone to errors, or only applicable to specific types of algorithms and implementations, lacking a fully automatic and robust solution for transforming unprotected algorithms into secure versions that can handle both linear and non-linear functions.
Innovation Solution
A computer-implemented method that transforms a call graph representation of an algorithm into a secured version by masking inputs, replacing unmasked internal variables with masked variables, replacing non-linear functions with equivalent functions, and unmasking outputs, while ensuring semantic preservation and applying to both linear and non-linear call graphs with deterministic execution time.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If manual masking implementation is used to protect against side-channel attacks, then security protection is provided, but the implementation is error-prone and not fully automatic
Solution Approach 1:
The system automatically transforms unprotected algorithms into protected versions without human intervention. The transformation process self-manages the entire masking workflow including call graph generation, masking application, and verification, eliminating the need for manual implementation while ensuring consistent security protection.
Solution Approach 2:
The patent replaces manual mechanical processes with automated computational processes. Instead of manually analyzing and masking algorithms, the system uses automatic call graph generation and program transformation techniques to apply masking systematically, substituting human effort with automated software tools that eliminate errors and increase reliability.
2Reliability
If masking is applied to protect sensitive data, then security against side-channel attacks is improved, but the complexity of the algorithm increases
Solution Approach 1:
The patent segments the algorithm into a call graph structure, identifying individual functions and their data flow. By applying masking at the function level rather than throughout the entire algorithm, the complexity is localized and managed in discrete units, making the protection mechanism more tractable and less overwhelming.
Solution Approach 2:
The masking is applied selectively to sensitive variables and functions identified in the call graph, rather than uniformly to all algorithm components. This local application of masking reduces unnecessary complexity in non-sensitive parts of the algorithm while maintaining security where needed.
3Reliability
If existing masking techniques are used, then protection against side-channel attacks is provided, but they are limited to specific types of algorithms and implementations
Solution Approach 1:
The patent creates a universal masking transformation system that works across different algorithm types by generating call graphs that represent the logical structure rather than implementation-specific details. This abstraction allows the same masking methodology to be applied to various algorithms including cryptographic functions, arithmetic operations, and logical operations regardless of their specific implementation.
Solution Approach 2:
Instead of adapting masking techniques to fit specific algorithm implementations, the patent inverts the approach by first analyzing the algorithm's logical structure through call graph generation, then applying masking based on this structure. This reversal allows the masking system to adapt to any algorithm rather than requiring algorithms to conform to masking constraints.
4Reliability
If non-linear functions are masked, then security is maintained, but mask calculation becomes impossible without removing and reinserting masks
Solution Approach 1:
The patent performs preliminary analysis of the call graph to identify non-linear functions and their data dependencies before applying masking. By pre-processing the algorithm structure and determining the masking strategy in advance, the system avoids the inefficiency of repeatedly removing and reinserting masks during execution, instead establishing a comprehensive masking plan that handles non-linear functions systematically.
Data Source
AI summary
A computer implemented method, program product, and system implementing said method, for transforming a call graph representation of an algorithm into a secured call graph representation of said algorithm. The call graph comprises inputs (a, b, f), internal variables being the edges of the graph (c, d, e), elementary functions being the nodes of the graph, said functions being either linear or not linear, and outputs (g), the method comprising:a step of masking each input of the call graph,a step of replacing each unmasked internal variable of the call graph with a masked variable,a step of replacing at least each non-linear function of the call graph with an equivalent function that applies to masked variables,a step of unmasking each output of the call graph.


