Random Branch Execution for Side Channel Attack Resistance
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current countermeasures against side channel analysis and fault attacks in sensitive computations, such as those in cryptographic algorithms, are costly in terms of memory footprint and execution time, and often leak information, making them vulnerable to malicious attacks.
Innovation Solution
A method that generates random permutations of identifiers for multiple independent branches, ensuring each branch is executed in a unique and unpredictable sequence, with intermediate results stored to prevent reverse engineering, and using shared variables to optimize code footprint.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If multiple independent branches are executed to counter side channel attacks and fault attacks, then security against malicious attacks is improved, but execution time and memory footprint increase
Solution Approach 1:
The patent applies dynamics by making the execution sequence of multiple independent branches random and unpredictable. Instead of executing branches in a fixed order, the system dynamically determines the execution sequence through random permutation of branch identifiers. This dynamic approach prevents attackers from predicting which branch will be executed, thereby securing against side channel attacks while maintaining efficient execution by avoiding redundant operations.
Solution Approach 2:
The patent segments the sensitive computation into multiple independent branches, each representing a distinct computational path. By dividing the computation into separate segments that can be executed in any order, the system achieves both security (through unpredictability) and efficiency (through independent execution). The segmentation allows the system to execute only the necessary branches without redundant operations, reducing overall execution time compared to traditional countermeasures.
2Reliability
If multiple independent branches are executed to counter side channel attacks and fault attacks, then security against malicious attacks is improved, but memory footprint increases
Solution Approach 1:
The patent applies universality by using a single random permutation structure to control the execution of multiple independent branches. Instead of maintaining separate control mechanisms for each branch, the system uses one random permutation array that universally determines the execution sequence for all branches. This multi-functional approach reduces memory footprint while maintaining security, as the same permutation mechanism handles branch selection for both fault attack resistance and side channel attack prevention.
3Reliability
If traditional countermeasures are implemented, then security is improved, but the countermeasures themselves leak information through timing measurements and power consumption
Solution Approach 1:
The patent applies asymmetry by creating an unpredictable and non-reproducible execution sequence through random permutation. The execution path varies asymmetrically with each computation, making it impossible for attackers to detect patterns in timing measurements or power consumption. This asymmetric approach breaks the symmetry that attackers exploit in side channel analysis, thereby preventing information leakage while maintaining strong security against both side channel and fault attacks.
Data Source
AI summary
A processing unit executes a sensitive computation using multiple different and independent branches that each necessitate a given number of processing unit time units to be executed. Each execution of a sensitive computation includes: generating at least as many identifiers as the number of branches; associating each identifier to a unique branch; generating a random permutation of identifiers, wherein the number of occurrences of each identifier in the permutation is at least equal to the number of processing unit time units in the shortest of the branches; successively determining, wherein the determining includes processing each identifier in the random permutation, which branch to execute by each successive processing unit time units according to the identifier in the random permutation; and for each identifier of the random permutation, executing a processing unit time unit for the branch determined according to the identifier in the random permutation.


