Automatic Algorithm Masking for Side-Channel Attack Protection

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

VSEngineering 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

Engineering Contradiction:
Improvesecurity protectionVSAvoidautomation level
Core Design Contradiction:
ReliabilityVSExtent of automation

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.

Inventive Principle:
Principle #25Self-service

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.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Reliability

If masking is applied to protect sensitive data, then security against side-channel attacks is improved, but the complexity of the algorithm increases

Engineering Contradiction:
Improvesecurity protectionVSAvoidalgorithm complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #3Local quality

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

Engineering Contradiction:
Improvesecurity protectionVSAvoidalgorithm applicability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

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.

Inventive Principle:
Principle #13The other way round (Inversion)

4Reliability

If non-linear functions are masked, then security is maintained, but mask calculation becomes impossible without removing and reinserting masks

Engineering Contradiction:
Improvesecurity protectionVSAvoidprocessing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10735179B2Automatic insertion of masking into an algorithm
Publication Date: 2020.08.04 SECURE IC
  • US10735179B2 patent drawing
  • US10735179B2 patent drawing
  • US10735179B2 patent drawing

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.