Dynamic Masking for DES Round Keys Against Side-Channel Attacks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Devices implementing DES encryption methods with 'on demand' round key generation are vulnerable to side-channel attacks, as the Hamming distance between successive round keys remains observable, and existing masking techniques do not effectively protect against such attacks.

Innovation Solution

A method involving the use of alternating binary masks (all ones and all zeros) for each round key, where each round key is masked with a unique mask, making it difficult for attackers to distinguish between key differences and mask differences, thereby obscuring the secret key.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If round keys are generated on demand and masked with a predetermined mask, then memory consumption is reduced, but the device remains vulnerable to side-channel attacks because the Hamming distance between masked keys remains observable

Engineering Contradiction:
Improvememory consumptionVSAvoidsecurity against side-channel attacks
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent applies dynamics by making the mask variable rather than fixed. The mask changes according to the round index and is computed dynamically using a non-linear function of the round index, ensuring that each round key is masked with a different pattern. This dynamic masking prevents attackers from observing consistent Hamming distance patterns between successive masked round keys, thereby securing the system while maintaining on-demand key generation.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the parameter of the mask from a static predetermined value to a dynamic value that varies with the round index. Specifically, the mask for round r is computed as a non-linear function of r, causing the mask parameters to change with each encryption round. This parameter change ensures that the Hamming distance between consecutive masked round keys does not reveal information about the secret key, resolving the security vulnerability.

Inventive Principle:
Principle #35Parameter changes

2Device complexity

If a fixed mask is applied to all round keys, then the masking operation is simple, but it fails to protect against side-channel attacks as the Hamming distance remains unchanged

Engineering Contradiction:
Improvemasking operation complexityVSAvoidsecurity protection effectiveness
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The patent transforms the static masking operation into a dynamic one by computing the mask based on the round index. Instead of using a fixed mask for all rounds, the system computes a unique mask for each round using a non-linear function of the round index. This increases the complexity slightly but provides effective security by ensuring that the Hamming distance between masked round keys does not leak secret key information.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent applies preliminary action by pre-computing or pre-determining the mask values based on round indices before the actual encryption rounds begin. The masks are prepared in advance according to the non-linear function of round indices, so that when encryption rounds execute, the appropriate masks are already available. This approach balances complexity by avoiding runtime mask computation while still providing dynamic masking protection.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10862669B2Encryption/description method protected against side-channel attacks
Publication Date: 2020.12.08 IDEMIA FRANCE SAS
  • US10862669B2 patent drawing
  • US10862669B2 patent drawing
  • US10862669B2 patent drawing

AI summary

The present invention relates to a method for encryption or decryption of a data block from a secret key, wherein the method comprises: generating a first round key kr dependent on the secret key, selecting each of a first mask (−br) and a second mask (−br+1) in a set consisting of a mask of bits all at one and a mask of all zero bits, calculating a first masked key kr′ from the first round key kr and the first mask (−br) as follows:kr′=kr⊕(−br)wherein ⊕ is an exclusive disjunction, executing a first encryption round applied to two first data dependent on the data block, by means of the first masked round key kr′ so as to produce two second data, after producing the first masked key kr′, generating a second round key kr+1 dependent on the secret key, calculating a second masked key kr+1′ from the second round key kr+1 and the second mask (−br+1) as follows: kr+1′=kr+1⊕(−br+1), calculating two third data Lrb<sub2>r+1</sub2>, Rrb<sub2>r+1 </sub2>as follows:Rrb<sub2>r+1</sub2>=Rrb<sub2>r</sub2>⊕(−br−1)⊕(−br)Lrb<sub2>r+1</sub2>=Lrb<sub2>r</sub2>⊕(−br−1)⊕(−br)and executing a second encryption round following the first encryption round, wherein the second encryption round is applied to the two third data Lrb<sub2>r+1</sub2>, Rrb<sub2>r+1 </sub2>by means of the second masked round key kr+1′.