Modular Multiplication Circuit with Lookup Table

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing cryptographic systems, such as Montgomery multiplication, face inefficiencies in computing modular operations due to time-consuming pre-computation of parameters like R2(mod n), which is critical for boot processes and memory-intensive, especially in integrated circuits with privacy concerns.

Innovation Solution

A method and circuit for computing modular multiplications or reductions by iteratively doubling an intermediate result and shifting its bits, with conditional subtraction based on the most significant bit or word, optimizing the computation of modular squares and multiplications.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If Montgomery multiplication method is used for cryptographic operations, then modular multiplication can be computed, but pre-computation of parameter R2(mod n) is time-consuming and memory-intensive

Engineering Contradiction:
Improvecomputation speedVSAvoidpre-computation time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-computing and storing multiplication results of the modulus n with powers of two (2^0*n, 2^1*n, 2^2*n, etc.) in a lookup table before the main cryptographic computation. This pre-computed data is then rapidly retrieved during the modular multiplication process, eliminating the need for time-consuming pre-computation of R2(mod n) and significantly accelerating the overall computation speed.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If pre-computed parameters are stored in memory, then computation speed improves, but memory requirements increase

Engineering Contradiction:
Improvecomputation speedVSAvoidmemory space
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent applies local quality by creating a specialized, localized lookup table that stores only the specific multiplication results of n with powers of two that are needed for the modular multiplication algorithm. This targeted approach stores data locally in a compact format, providing rapid access to frequently needed values while minimizing overall memory consumption compared to storing all possible pre-computed parameters.

Inventive Principle:
Principle #3Local quality

3Measurement precision

If iterative comparison and subtraction is performed for each bit, then modular reduction is achieved, but computation time increases

Engineering Contradiction:
Improvemodular reduction accuracyVSAvoiditeration time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-computing and storing the results of multiplying the modulus n with powers of two in a lookup table before the iterative process begins. During each iteration, instead of performing full multiplication and comparison operations, the algorithm simply retrieves pre-computed values from the lookup table and performs conditional subtractions, dramatically reducing the time per iteration while maintaining exact modular reduction accuracy.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent applies copying by creating a lookup table that contains copies of the modulus n multiplied by various powers of two. These copied values are stored in advance and repeatedly referenced during the iterative modular reduction process, eliminating the need to recompute these values during each iteration and significantly reducing computation time.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS8117251B2Computation of a multiplication operation with an electronic circuit and method
Publication Date: 2012.02.14 STMICROELECTRONICS SRL
  • US8117251B2 patent drawing
  • US8117251B2 patent drawing
  • US8117251B2 patent drawing

AI summary

A computing method and circuit for computing a modular operation with at least one operand having a binary representation. Iteratively for each bit of this operand, doubling the value of an intermediate result stored in a first memory element by shifting the bits of the intermediate result towards the most significant bit and, while the most significant bit of the intermediate result is one, updating this intermediate result by subtracting a modulus stored in a second memory element.