Modular Reduction Algorithm for SPA-Resistant Inverse Computation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing cryptographic algorithms, such as the extended Euclidean algorithm, are susceptible to Simple Power Analysis (SPA) attacks due to their reliance on integer division, which reveals sensitive information about processed numbers, potentially exposing secret keys.

Innovation Solution

The algorithm is modified to replace integer division with modular reduction, incorporating an enlargement parameter and modular shift operations to obscure the division result, thereby enhancing security against SPA attacks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the extended Euclidean algorithm is used to compute modular multiplicative inverse, then the computation is efficient and straightforward, but the algorithm becomes vulnerable to Simple Power Analysis (SPA) attacks due to the division operation revealing side-channel information

Engineering Contradiction:
Improvecomputation efficiencyVSAvoidvulnerability to SPA attacks
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

Solution Approach 1:

The patent introduces an intermediary transformation by replacing the direct division operation with a sequence of modular reduction operations. The division step q = a/b is transformed into intermediate calculations involving modular reductions (a mod b, a mod 2b, etc.) that do not directly expose the quotient value through power consumption patterns, thus protecting against SPA attacks while maintaining computational efficiency

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent changes the computational parameters by replacing the division operation with modular reduction operations. Instead of directly computing q = a/b, the algorithm computes equivalent results through modular arithmetic operations (a mod b, a mod 2b, etc.), which have different power consumption characteristics that do not leak sensitive information about the quotient

Inventive Principle:
Principle #35Parameter changes

2Ease of operation

If integer division is implemented using iteration loops with shifting and subtracting, then the division can be realized on microprocessors, but the current or power consumption and time consumption depend on the numbers processed, enabling SPA attacks

Engineering Contradiction:
Improveimplementability on microprocessorVSAvoidleakage of number information through power profile
Core Design Contradiction:
Ease of operationVSLoss of information

Solution Approach 1:

The patent introduces modular reduction as an intermediary operation that replaces direct division. The modular reduction operations serve as a mediator that achieves the same computational goal (obtaining quotient and remainder) without directly exposing the division result through power consumption patterns that would reveal information about the operands

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent makes the algorithm dynamic by using conditional logic that adapts the number of iterations and operations based on the relationship between operands. The modular reduction approach allows the algorithm to dynamically adjust its execution path without creating predictable power consumption patterns that would leak information about the specific numbers being processed

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10318245B2Device and method for determining an inverse of a value related to a modulus
Publication Date: 2019.06.11 INFINEON TECHNOLOGIES AG
  • US10318245B2 patent drawing
  • US10318245B2 patent drawing
  • US10318245B2 patent drawing

AI summary

A device for determining an inverse of an initial value related to a modulus, comprising a unit configured to process an iterative algorithm in a plurality of iterations, wherein an iteration includes two modular reductions and has, as an iteration loop result, values obtained by an iteration loop of an extended Euclidean algorithm.