Multi-Layer Residue Number System for Large Dynamical Range

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing electronic calculating devices face challenges in achieving a large dynamical range using Residue Number Systems (RNS) due to the need for either very large moduli or a large number of moduli, which results in cumbersome table sizes and complexity, especially in white-box cryptography where table lookup is employed.

Innovation Solution

The implementation of a multi-layer RNS system where integers are represented as a sequence of residues modulo multiple moduli, allowing for a fixed, small set of RNS moduli to achieve a large dynamical range, enabling efficient computations such as additions, subtractions, and multiplications with small tables, and employing pseudo-residues to reduce the complexity of modular arithmetic.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a large dynamical range is achieved by increasing the number of moduli or size of moduli in RNS, then the computational range is improved, but the table size and device complexity become too large

Engineering Contradiction:
Improvedynamical rangeVSAvoidtable size
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent divides the RNS representation into multiple layers, where each layer uses a separate set of moduli. The upper layer handles large integers with large moduli, while the lower layer handles smaller integers with small moduli. This segmentation allows the system to achieve a large dynamical range without requiring a single large table, as each layer can use its own optimized table size appropriate to its modulus size.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from a single-layer RNS to a multi-layer RNS structure, adding a dimensional aspect to the representation. Instead of using one set of moduli to achieve large range, the system stacks multiple RNS layers vertically, where each layer contributes to the overall dynamical range. This dimensional change allows the system to achieve large computational range while keeping individual table sizes small and manageable.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Adaptability or versatility

If very large moduli are used to achieve large dynamical range, then the computational capability is improved, but the number of required tables increases

Engineering Contradiction:
Improvedynamical rangeVSAvoidnumber of tables
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent segments the computational task across multiple layers, each handling different ranges of values with appropriately sized moduli. This segmentation allows the system to use small moduli in lower layers (requiring fewer and smaller tables) while still achieving large overall dynamical range through the combination of layers. The upper layer uses larger moduli but fewer of them, reducing the total number of tables required.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the parameters of the RNS representation by introducing a hierarchical structure with varying modulus sizes across layers. Instead of uniformly using large moduli throughout, the system uses small moduli in lower layers and large moduli in upper layers. This parameter change optimizes the balance between computational range and the number of tables required, as small moduli require fewer table entries.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If the number of moduli is increased to achieve large dynamical range, then the computational range is improved, but the computation time and complexity increase

Engineering Contradiction:
Improvedynamical rangeVSAvoidcomputation time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent segments the computation into multiple layers, each optimized for specific ranges of values. This segmentation allows parallel processing within each layer, reducing overall computation time. Each layer can independently perform computations on its residues without waiting for other layers, and the results are combined through the Chinese Remainder Theorem, achieving large dynamical range without proportional increase in computation time.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary decomposition of large integer operations into smaller operations on each layer before combining results. By pre-organizing the computation into layered residues and using pre-computed tables for each layer, the system avoids the need for complex single-step operations on very large integers, thereby reducing computation time while maintaining large dynamical range capability.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP3552091A1An electronic calculating device arranged to calculate the product of integers
Publication Date: 2019.10.16 KONINKLIJKE PHILIPS NV

AI summary

An electronic calculating device (100; 200) arranged to calculate the product of integers, the device comprising a storage (110) configured to store integers (210, 220) in a multi-layer residue number system (RNS) representation, the multi-layer RNS representation having at least an upper layer RNS and a lower layer RNS, the upper layer RNS being a residue number system for a sequence of multiple upper moduli (M i ), the lower layer RNS being a residue number system for a sequence of multiple lower moduli (m i ), an integer (x) being represented in the storage by a sequence of multiple upper residues (x i = (x) Mi ; 211, 221) modulo the sequence of upper moduli (M i ), upper residues (x j ; 210.2, 220.2) for at least one particular upper modulus (M j ) being further-represented in the storage by a sequence of multiple lower residues ((x j ) mj , 212, 222) of the upper residue (x j ) modulo the sequence of lower moduli (m i ), wherein at least one of the multiple lower moduli (m i ) does not divide a modulus of the multiple upper moduli (M j ).