• Aucun résultat trouvé

Optimisation et sécurisation du STR-TRNG

5.5.2 Simulations de haut-niveau

Dans le même environnement de simulation, le modèleSPICEduSTR peut être rem-placé par son modèle comportemental. Nous pouvons alors effectuer des simulations haut-niveau en utilisant un modèle moins complexe qui réduit les temps d’exécution et permet de générer des séquences aléatoires de taille suffisante pour les différents tests statistiques. Ce modèle est écrit en VHDL et intègre les effets Charlie et drafting, ainsi que le jitter

créé localement par les cellules de Muller. Il décrit donc un comportement temporel per-mettant de modéliser le fonctionnement analogique de chacun des étages du STR. Nous avons configuré ce modèle de la manière suivante : le temps de propagation moyen d’un étage est fixé à 500 ps avec une déviation standard de 10 ps pour prendre en compte le

jitter.

Le testbench des simulations mixtes est conservé à l’identique et nous avons ainsi effectué les mêmes attaques de suppression de jetons et de modification du temps de propagation. Pour chaque attaque, nous mesurons la période d’oscillation de l’anneau qui

5.5. Simulations

Figure 5.12 – Traces d’une attaque par modification de temps de propagation. Un délai 5 fois plus important que le temps de propagation d’une cellule de Muller est ajouté entre les étages 124 et 0.

nous permet de retrouver ∆ϕ et de calculer la limite basse d’entropie théorique (4.7) et(4.13). Enfin, nous pouvons extraire 10 séquences de 20000 bits que nous évaluons avec les tests initialement décrits par le standard FIPS 140-1 [F94] – monobit, poker, runs et long runs– qui peuvent facilement être utilisés comme test en ligne.

Les résultats de ces simulations haut-niveau sont présentés dans le tableau 5.1. Il donne pour chaque attaque : l’effet escompté, la période d’oscillation mesurée TST R, la limite basse d’entropie calculée Hm, le nombre de séquences passant avec succès les tests statistiques ainsi que l’état des deux détecteurs (fréquencemètre et compteur de jetons).

Dans le scénario de référence, lorsqu’aucune attaque n’est effectuée, le STR de 125 étages oscille avec une période de 2,13 ns. La limite basse d’entropie est de 0,99118. Cela n’empêche pas les 10 séquences de passer avec succès les tests statistiques. Les deux dé-tecteurs ne remontent pas d’alarme.

Nous avons dans un premier temps effectué une attaque ajoutant un délai de 100 ps (le cinquième du temps de propagation d’un étage). Le fonctionnement de l’anneau n’est pas affecté. Au début et à la fin de l’attaque, une très courte période de temps apparaît avec un régime transitoire pendant laquelle les évènements se réorganisent uniformément dans l’anneau. Comme attendu, la fréquence d’oscillation et le niveau d’entropie par bit théorique diminuent légèrement (0,986). D’après les tests statistiques, les séquences sont toujours uniformément réparties. Mais cette attaque est détectée par le fréquencemètre qui observe le changement de fréquence et génère une alarme.

En augmentant la taille du retard inséré dans le STR à 1 ns (deux fois le temps de propagation d’un étage), nous parvenons à provoquer un bottleneck. Les évènements ne sont plus répartis de manière uniforme et la séparation temporelle maximale entre deux phases de l’anneau devient conséquente (> 100 ps) au regard de la résolution dans le scénario de référence (≈ 8,5 ps). En conséquence, la limite basse d’entropie est largement impactée – elle est très proche de 0 – et tous les tests statistiques sont en échec. Cette

Table 5.1 – Résultats des simulations haut-niveau.

Effet Attaque Tstr

(ns) Hmin FIPS

140-1 Compteurde jetons Fréquence-mètre

Référence N/A N/A 2,130 0,991 10/10 ok ok

Performances dégradées

modification

de ∆ϕ Supp. 10jetons 2,394 0,987 10/10 alarme alarme modification de ∆ϕ Ajout de100 ps 2,414 0,986 10/10 ok alarme Fonctionnement incorrect Phase covering mode Supp. 2 jetons 2,160 0,196 10/10 alarme ok Phase covering mode Supp. 12

jetons 2,544 0 0/10 alarme alarme

Burstmode Supp. 52

jetons 12,522 0 2/10 alarme alarme

Bottleneck

mode

Ajout de

1 ns 5,993 0 0/10 ok alarme

attaque est aussi révélée par le fréquencemètre qui détecte le changement drastique de la période d’oscillation (TST R≈6 ns).

Grâce au bloc de suppression de jetons, nous retirons 5 jetons (4 phases) du STR. L’anneau est toujours dans sa plage d’opérationevenly-spaced, avec 52 évènement répartis dans les 125 étages. Par ailleurs, comme 52 et 125 sont premiers entre eux, il n’y a pas de recouvrement de phases. La période d’oscillation et l’entropie minimum par bit ne sont que légèrement impactés. Les tests statistiques ne sont pas assez précis pour détecter cette modification qui est par contre signalée par le moniteur de jetons et le fréquencemètre.

En retirant 2 ou 12 évènements (1 ou 6 jetons 4 phases) l’anneau conserve sa distri-bution uniforme mais nous déclenchons le mode de phase covering. Le nombre d’étages et le nombre d’évènements ne sont plus premiers entre eux et la résolution de phase du STRse retrouve respectivement multipliée par 5 puis 25. L’entropie minimale théorique en sortie du générateur est gravement réduite. Nous remarquons cependant que la précision du fréquencemètre ne lui permet pas de détecter l’attaque. Les tests statistiques sont par ailleurs tout aussi incapables de déceler cette perte d’entropie. Dans notre cas, comme le générateur fonctionne en mode interne, ce comportement s’explique par un déphasage favorable entre la phase qui échantillonne et celle qui est échantillonnée : l’échantillonnage est toujours fait dans une zone d’incertitude liée au jitter. Ce déphasage, qui est lié au délai δ comme décrit dans lafigure 5.4, est dépendant de la température et de la tension. Suivant les conditions d’opération du circuit, il est donc possible que l’entropie soit beau-coup plus proche de la valeur minimale calculée théoriquement (0,196) et que les tests deviennent négatifs. Mais dans le cas plus critique où le générateur est utilisé en mode externe, il est aussi possible que la dérive entre leSTRet l’horloge d’échantillonnage soit suffisante pour leurrer les tests statistiques. Dans ce cas, seul le compteur de jetons permet de détecter l’attaque.

Nous avons testé un dernier cas, pour lequel seuls 5 jetons (10 évènements) sont conser-vés dans l’anneau. Celui-ci rentre alors dans un modeburst et sa fréquence diminue énor-mément. La plus grande distance entre deux phases devient très importante et l’entropie minimale est nulle. Comme attendu les deux détecteurs d’attaque lèvent leur alarme alors que de manière anecdotique quelques séquences passent avec succès les tests.

Les différentes simulations haut niveau confirment la dangerosité des attaques que nous avons imaginées. Elles montrent aussi la pertinence des contremesures proposées. De manière intéressante, une redondance existe entre les trois détecteurs et la plupart des

5.6. Implémentation ASIC attaques sont révélées par au moins deux d’entre eux. Si leSTRest construit de manière à empêcher le mode phase covering (L est un nombre premier), l’attaque par insertion de délai reste la plus dangereuse : lorsque le délai ajouté est suffisamment petit, elle peut réduire l’entropie mais n’être détectée que par le fréquencemètre. Le dimensionnement de ce dernier est donc particulièrement critique. Il doit s’adapter aux variations de fréquence inhérentes aux différentes conditions d’opération, être assez précis pour détecter une va-riation de fréquence suspecte, mais aussi pouvoir réagir rapidement pour ne pas laisser passer des attaques très brèves. En pratique, ces contraintes sont très difficiles à concilier, et il peut s’avérer utile de surdimensionner le générateur afin qu’il accepte une plage de fréquence de fonctionnement plus importante. Les mesures de fréquence pourront alors être moins précises mais aussi beaucoup plus rapides. Afin de garantir le plus haut niveau de sécurité, le mode interne doit aussi être privilégié. Dans ce mode, le blocage temporaire de l’anneau stoppe aussi la génération des bits aléatoires. Un agresseur ne peut donc plus utiliser ce biais pour prendre le contrôle du générateur.

5.6 Implémentation ASIC

Pour compléter notre étude sur la « manipulabilité » du STR-TRNG nous avons réa-lisé un circuit de test en technologie UMC 55nm ULP. Ce circuit a plusieurs objectifs. En premier lieu, son but est de valider sur silicium l’attaque par suppression de jetons ainsi que le bloc de monitoring associé. Ensuite, nous souhaitons comparer deux types de cellule de Muller. La Muller conventionnelle a été utilisée lors de la construction des premiersSTR-TRNGpour ASIC ([Che14]), cependant cette porte n’est généralement pas disponible dans les bibliothèques de cellules standard. Nous souhaitons donc construire pour la première fois un générateur utilisant une Muller de type analogique [FM04] qui, contrairement à ce que son nom sous-entend, peut être construite uniquement avec des cellules standards. Cette cellule est d’autant plus intéressante que lesSTRl’utilisant pré-sentent un fonctionnement totalement symétrique avec un rapport cyclique très proche de 50 %19. Enfin, avec ce testchip, nous souhaitons aussi analyser l’influence du placement et du routage automatique duSTRsur les performances du générateur. Pour obtenir des anneaux performants, il est en effet nécessaire de placer et de router manuellement chacun des étages pour obtenir une structure la plus régulière possible. Nous souhaitons donc statuer sur la capacité des outils à construire automatiquement desSTRéquilibrés.