Modular Exponentiation Using Pre-stored Reverse Instructions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional modular exponentiation methods used in cryptography, such as RSA, require a large number of computational operations, leading to perceptible delays in encrypting and decrypting data, while maintaining low memory requirements is a challenge due to the need for unconstrained iterations in exponentiation calculations.

Innovation Solution

A method that generates an integer representation of data text using a sequence of intermediate numbers, where each is based on two or fewer earlier numbers, with pre-stored instructions allowing for reduced computational operations and low memory usage, by deriving and executing instructions in a reverse-chronological order, utilizing only two memory elements.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If conventional square-and-multiply modular exponentiation is used, then memory requirements are low (only two memory elements needed), but computational time is long resulting in perceptible delays

Engineering Contradiction:
Improvecomputational timeVSAvoidmemory requirements
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent pre-computes and stores a lookup table of pre-stored instructions that map to specific computational operations. During exponentiation, these pre-prepared instructions are retrieved and executed in reverse-chronological order, eliminating the need for real-time computation of intermediate values and reducing overall computational time while maintaining low memory usage during execution

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The exponentiation process is divided into discrete computational steps represented by pre-stored instructions. Each instruction corresponds to a specific operation on intermediate numbers, allowing the complex exponentiation to be broken down into manageable segments that can be executed efficiently in reverse order, reducing total computational operations required

Inventive Principle:
Principle #1Segmentation

2Speed

If unconstrained iterations are employed to increase speed, then computational time is reduced, but memory requirements become prohibitively large

Engineering Contradiction:
Improveexponentiation speedVSAvoidnumber of memory elements
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent pre-computes the sequence of intermediate numbers and their corresponding operations and stores them as pre-stored instructions in a compact format. During execution, these pre-prepared instructions are retrieved and executed in reverse-chronological order, achieving high speed while requiring only two memory elements for the actual computation, avoiding the need to store all intermediate values simultaneously

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Instead of computing intermediate numbers in chronological order and storing them for later use, the patent computes and stores instructions in reverse-chronological order. The execution process then follows the reverse of the natural computation sequence, allowing fast computation without requiring large memory storage for intermediate results

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

Data Source

PatentEP2334006B1Side-channel resistant modular exponentiation
Publication Date: 2016.03.23 NXP BV
  • EP2334006B1 patent drawingFigure 1
  • EP2334006B1 patent drawingFigure 2
  • EP2334006B1 patent drawingFigure 3

AI summary

In the field of cryptography there is a need to reduce the time taken to cryptographically transform data text while maintaining the low memory requirements associated with conventional square-and-multiply modular exponentiation. A method of cryptographically transforming data text c comprises the step of generating an integer representation m of the data text c according to m=cd where d is a predetermined exponent. The step of generating the integer representation m includes generating a sequence of intermediate numbers, each intermediate number being based on two or fewer earlier numbers in the sequence. Generating a sequence of intermediate numbers includes retrieving a pre-stored instruction to determine which two or fewer earlier numbers in the sequence a given intermediate number is based on and the functional manipulation of the or each earlier number required to generate the given intermediate number.