Method and system for side-channel testing a computing device and for improving resistance of a computing device to side-channel attacks
First Claim
Patent Images
1. A testing method for side-channel testing of computing devices, comprising the following steps. Step 1:
- measuring one or several physical characteristics observed during execution of a particular operation or set of operations and denoting the result as the signature of the operation. Step 2;
Comparing the signatures to determine dependence of the signatures on the type of the operation and the parameters of the operation. Step 3;
If no significant dependency is found, concluding that the device is resistant against a side-channel attack, otherwise, concluding that the device is not resistant against a side-channel attack.
0 Assignments
0 Petitions
Accused Products
Abstract
Our invention presents an effective method and system which are used to perform side-channel testing of computing devices, as well as to improve resistance of computing devices against side-channel attacks.
-
Citations
14 Claims
-
1. A testing method for side-channel testing of computing devices, comprising the following steps. Step 1:
- measuring one or several physical characteristics observed during execution of a particular operation or set of operations and denoting the result as the signature of the operation. Step 2;
Comparing the signatures to determine dependence of the signatures on the type of the operation and the parameters of the operation. Step 3;
If no significant dependency is found, concluding that the device is resistant against a side-channel attack, otherwise, concluding that the device is not resistant against a side-channel attack. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
- measuring one or several physical characteristics observed during execution of a particular operation or set of operations and denoting the result as the signature of the operation. Step 2;
-
10. A system for side-channel testing of computing devices, comprising the following:
- means to measure a physical characteristic or a set of characteristics of a computing device and/or its environment during execution of a particular operation, means to compare signatures and to measure or calculate a mathematical metric or a set of metrics to quantify the degree of similarity of signatures either for all operations and values of parameters or for a sample of operations and values of parameters.
- View Dependent Claims (11, 12, 13)
-
14. A method to improve side-channel resistance of computing devices which comprises the following steps:
-
Step 1;
Measure side-channel resistance metrics using one of the embodiments of the method for side-channel testing of computing devicesStep 2;
Perform all, or some of the following stepsa) Improve side-channel resistance metrics by using the step
1) repeatedly and changing the external and internal operating and design parameters of the device such as input voltage, clock signal amplitude or frequency, layout of internal electronic components to improve similarity of signatures and to optimize the side-channel resistance metric. Optimization in the space of parameters can either be done manually or automatically by using mathematical optimization techniques, such as the Newton method or the method of the steepest descent. Once the optimal values of the parameters have been found, modify the device design such that the device performs operations only if the parameters are in the optimal range. This can be done by adding environment sensors to the device. One may also optionally set different operating parameters for multiple instances of the same device, so that it becomes difficult to relate, signatures measured on two different instances of the same device.b) Identify an “
unsafe”
set of operations and parameter values which lead to signatures with unsatisfactory values of side-channel resistance metrics. Modify the algorithm executed by the device or the implementation of the algorithm to minimize or preclude the use of operations from the unsafe set, and therefore to improve the overall side-channel resistance of the device.c) Measure signatures for various pairs of operations A and B. If the signature of a particular operation A depends on the type or parameter values of another operation or set of operations B, such as the previous operation, the next operation, or an operation executed in parallel, vary the operation B to change the signature of operation A, so that it becomes more difficult to relate the measured signature to the type or parameters of the operation A. In particular add, delete or modify the operation B or its parameters in order to vary the signature of the operation A for the same value of parameters of the operation A. Perform variation of operation B either in a single device or across multiple instances of the same device so that it becomes difficult to relate signatures measured on two different instances of the same device. d) Measure signatures for different states of the computing device. If the signature of a particular operation A depends on the state of the computing device, such as values of the registers, memory, program counter, internal ports and buses, then varying the state of the computing device can be used to change the signature of operation A, so that it becomes more difficult to relate the measured signature to the type and parameters of operation A. Perform variation of the state of the computing device either in a single device or across multiple instances of the same device so that it becomes difficult to relate signatures measured on two different instances of the same device. e) Measure signatures varying the hardware design and layout of the device. If the signature of a particular operation A depends on the details of hardware design and layout of a particular device, introduce device variations in the hardware design and manufacturing process, to make two instances of the same device physically different so that it becomes difficult to relate signatures measured on two instances of the same device. f) For a logical function or mathematical calculation executed by the device, identify alternative sequences of operations implementing this logical function or mathematical operation. Introduce variation of the alternative sequences so that it becomes more difficult to relate the measured signatures to the type or parameters of the logical function or mathematical calculation. Perform variation of the alternative sequences either in a single device or across multiple instances of the same device so that it becomes difficult to relate signatures measured on two different instances of the same device.
-
Specification