• Aucun résultat trouvé

3.2 Contremesures

3.2.1 État de l’art

Contremesures Algorithmiques. Il existe plusieurs contremesures logicielles (ou algorith- miques) pour rendre les attaques DPA plus difficiles à mener. L’une des premières, la méthode proposée en [43] est efficace contre la SPA et la DPA classique agissant dans des systèmes crypto- graphiques du type DES. La méthode consiste en trois étapes :

1. Introduction de délais aléatoires ; 2. Substitutions d’instructions ;

3. Modification du mode d’opération de l’algorithme cryptographique ;

Seuls, ces contremesures peuvent être contrecarrées par l’analyse statistique, notamment en aug- mentant le nombre d’échantillons pour attaque, mais ensemble elles s’avèrent efficaces.

Pour les systèmes à clé publique, la première méthode suggérée par [24] est applicable, et la deuxième est seulement une adaptation de la signature aveugle (blind signature3

) mentionnée aupa- ravant en [20]. La troisième méthode ne fonctionne que pour la cryptographie des courbes elliptiques (ECC - Elliptic Curve Cryptography). Pourtant l’attaque pour analyse de consommation raffinée (RPA - Refined Power Analysis) récemment proposé [47] outrepasse ces contremesures. D’un autre côté, la méthode BRIP4

contrecarre la RPA, mais seulement si le système cryptographique cible est le ECC, ne fonctionnant pas pour le RSA.

3

Une signature aveugle est un type de signature numérique dans laquelle le contenu du message est déguisé avant d’être signé, au travers d’une fonction qui va mêler le facteur d’aveuglement au message.

4

3.2. Contremesures 81

En ce qui concerne la protection du RSA, la contremesure d’aveuglement de message (mes- sage blinding) proposé par P. Kocher [53] semble être efficace pour contrecarrer l’attaque MRED (Modular Reduction on Equidistant Data) [14]5. En général, les contremesures protégeant l’algo-

rithme RSA contre les attaques pour analyse de consommation sont basées sur l’aveuglement de messages ou de l’exposant. Ces méthodes peuvent contribuer ou non pour la sécurité du système, selon la façon qu’elles ont été implantées, et selon le type d’attaque. Ce n’est pas rare qu’une contremesure contre une attaque s’avère inefficace contre d’autres, quand elles ne passent pas au champ adversaire. C’est à dire qu’une méthode pour contrecarrer une certaine attaque peut faciliter l’implantation d’une autre.

Néanmoins la manière la plus sûre de contrecarrer les attaques du type DPA reste celle de s’attaquer à son principe : briser la corrélation entre les données calculées et la consommation du circuit. D’une façon différente des travaux qui habituellement proposent l’usage du CRT pour accélérer le RSA (comme [51]), un autre approche suggère une implantation complète du RSA en RNS [6], [21]. Au delà d’accélérer le système, un usage intelligent de cette idée peut être utilisé comme contremesure afin d’empêcher les attaques DPA. Plus de détails sont donnés dans la Section 3.2.3.

Pourtant le problème de toutes ces approches c’est que cela demande le changement complet de l’algorithme en question afin de l’adapter à une arithmétique exotique. Au contraire, les contre- mesures matérielles ne demandent, a priori, des modifications dans l’algorithme cryptographique.

Contremesures Matérielles Les méthodes matérielles pour contrecarrer les attaques du genre DPA sont assez différentes des approches algorithmiques. Dans le cas des contremesures matérielles, les résultats intermédiaires des calculs cryptographiques ne sont pas pris en compte. Comme alter- native, l’idée c’est de cacher une part ou la totalité des informations de consommation à l’aide de différents bruits. Le bruit a une action directe sur le nombre d’échantillons nécessaires a un attaque DPA. La plupart n’empêche pas les attaques DPA, mais rend sa mis en œuvre fort plus compliqué. L’efficacité des contremesures contre la DPA dépend de l’implantation combinée des contreme- sures algorithmiques et matérielles [10]. Une contremesure matérielle a pour but de diminuer la corrélation entre données d’entrée et la consommation de puissance d’un circuit donné, augmen- tant ainsi le nombre d’échantillons nécessaires à un attaque DPA. Il y a deux axes principaux de contremesures matérielles.

Le premier consiste en réduire le rapport signal sur bruit (SNR - Signal to Noise Ratio). Par définition du SNR, Ic est la consommation de courant du circuit attaqué, dans un instant t. Le

bruit causé par la contremesure matérielle s’appelle In. La consommation totale de courant peut

être écrite comme :

Itotal= Ic+ In

La variable k est l’atténuation du signal occasionnée par le courant In. Alors, le rapport signal

sur bruit (SNR) est donné pour :

5

82 Attaques et contremesures

SN R = 20 × logµ Ic kR

(3.1)

Diminuer le SNR signifie diminuer la corrélation entre le courant hypothétique correct et la consommation réelle du circuit. Pour réduire le SNR il existe plusieurs méthodes. Les travaux [87] et [69] proposent l’usage d’une logique à double rail balancée. L’idée de base c’est qu’une porte lo- gique devrait consommer une puissance équivalente si elle commute de zéro vers un, ou vice-versa. Le SNR est réduit par cette commutation indépendante des données d’entrée, dont les portes sont décrites dans des nouvelles cellules standards. Malheureusement les expériences montrent que cet objectif n’est que partiellement atteint. La logique à double rail n’est pas suffisante à elle seule pour garantir une signature de consommation complètement indépendante des données traitées [16]. Un problème potentiel c’est que la charge des portes peut différer à cause de différences de routage. La conception de portes à double-rail devrait assurer des charges égales et une consom- mation de puissance balancée. Pour y arriver, la procédure de groupage de cellules doit être fait très attentivement - ce qui implique un grand effort de développement. Au delà des coûts élevés de fabrication, le résultat final peut demander jusqu’à 15 fois plus de surface et 6 fois plus de consommation comparé à une procédé de synthèse conventionnel.

La deuxième approche matérielle pour prévenir les attaques DPA c’est la réduction de la corré- lation entre les données d’entrée et la consommation de puissance à travers de la mise en désordre aléatoire du moment dans lequel les données intermédiaires sont attaquées. Si le temps Tc est

différent à chaque trace, la corrélation entre la consommation de puissance hypothétique et la consommation réelle est grandement réduite. La contremesure proposée en [22] réside dans l’in- sertion de retards aléatoires. La méthode décrite en [10] contrecarre la DPA en utilisant blocs dont la consommation est gérée indépendamment afin de la masquer. Les approches [56] et [48] augmentent la difficulté de réaliser une DPA, mais comme est démontré en [55], même si le calcul direct de la probabilité maximale d’une consommation de puissance arrive dans un temps précis n’est pas pratique, c’est toujours faisable d’approcher cette valeur de façon empirique, basé dans un modèle logiciel de la contremesure.

Dans le cadre de cette thèse il est proposé une contremesure matérielle originale, qui n’essaye pas de "randomiser" la consommation, ni de créer du bruit pour la masquer. Il s’agit, au contraire, de compléter la consommation du circuit cryptographique afin de la rendre constante. L’idée est similaire à celle présentée par Adi Shamir en [91], en ce qui concerne le niveau d’abstraction. Pourtant le circuit décrit par Shamir considère seulement que l’attaquant sonde le Vcc, laissant la

ligne Gnd vulnérable. Par ailleurs, les deux capacités proposées ne sont pas intégrables car trop

grandes (100nF ), sauf si un approche SiP (System in Package) est envisageable.

Comme expliqué dans la prochaine sous-section, le circuit proposé par l’auteur de cette thèse masque la consommation si l’attaque est contre le Vcc(ou le Gnd), et est facilement intégrable dans

3.2. Contremesures 83