Shuffling Mechanism for Data Blocks Using Incremental Permutation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing shuffling techniques for mitigating side-channel attacks either require large precomputations, additional data structures, or do not generate enough permutations, limiting their effectiveness in securing data processing systems.
Innovation Solution
A method for shuffling data blocks that uses a random number generator and an increment function, such as addition, multiplication, or exponential functions, to reorder operations without precomputations and with minimal memory usage, generating more permutations than existing methods like RSI and RS, and using a small fixed amount of memory.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If random permutation (RP) is used to generate all possible permutations, then the number of permutations increases, but additional data structures and memory are required
Solution Approach 1:
The patent extracts the permutation generation logic from complex data structures and implements it using a simple incremental function that generates permutations on-demand. Instead of storing all permutations in advance, the system extracts only the necessary permutation information when needed, eliminating the need for large additional data structures while maintaining the ability to generate all n! permutations.
Solution Approach 2:
The patent performs preliminary setup by establishing an incremental function and initial permutation state, then generates subsequent permutations through simple iterative increments. This preliminary action allows the system to avoid precomputing and storing all permutations, instead generating them sequentially as needed with minimal memory overhead.
2Reliability
If random permutation (RP) is used to generate all possible permutations, then the security against side-channel attacks improves, but precomputation time increases
Solution Approach 1:
The patent performs a minimal preliminary setup by initializing the permutation generator with basic parameters and an incremental function. This preliminary action is sufficient to enable on-demand generation of all permutations without requiring extensive precomputation and storage, thus reducing precomputation time while maintaining security.
Solution Approach 2:
The permutation generator is designed to be self-service, automatically generating the next permutation in the sequence through the incremental function without requiring external precomputation or large stored tables. The system serves its own permutation generation needs through iterative computation, eliminating the need for time-consuming precomputation of all permutations.
3Speed
If random starting index (RSI) or reverse shuffle (RS) is used instead of RP, then execution speed improves, but the number of generated permutations decreases
Solution Approach 1:
The patent changes the parameter of permutation generation from limited schemes (RSI, RS) that produce only a subset of permutations to an incremental scheme that can generate all n! permutations. By adjusting the incremental parameter, the system maintains fast execution speed comparable to RSI and RS while dramatically increasing the number of achievable permutations, thus resolving the trade-off between speed and versatility.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A method is provided for shuffling an order of a plurality of data blocks. In the method, a random number is generated, the random number corresponding to an index for a data block of the plurality of data blocks, where each data block of the plurality of data blocks has an index that uniquely identifies each data block of the plurality of data blocks. The increment function with a parameter is applied to the random number to generate a new index, the new index corresponds to a data block of the plurality of data blocks. The data block corresponding to the new index is selected as the next data block of a reordering of the plurality of data blocks. The method is iterated until the reordering of the plurality of data blocks is complete.