• Aucun résultat trouvé

Génération d’aléa : un état de l’art

4.3.6 Comparaison de différentes architectures

Pour donner une idée des performances atteignables pour chacune des trois architec-tures présentées précédemment, nous reprenons ici les résultats obtenus par Petura et al.[Pet+16] dans leur travail de comparaison deTRNGcompatible avec une implémenta-tion surFPGA. Letableau 4.2 donne ainsi les chiffres de débit et d’efficacité énergétique pour ces troisTRNGimplémentés dans un FPGASpartan 6 de Xilinx. Ce tableau donne aussi une estimation de l’entropie par bit telle que préconisée parAIS31 ainsi que le débit d’entropie (produit de l’entropie par le débit).

Table 4.2 – Comparaison des performances de trois TRNG, extrait de [Pet+16].

Type de TRNG Consommation[mW ] [Mbits/s] [bits/µJ]Débit Efficacité Entropie Débit d’entropie

par bit [bits d’entropie/µJ]

ERO-TRNG 2.16 0.0042 1.94 0.999 0.004

MURO-TRNG 54.72 2.57 46.9 0.999 2.567

STR-TRNG 65.9 154 2343.2 0.998 154.121

Comme anticipé, le ERO-TRNG, du fait de sa simplicité est aussi le générateur qui consomme le moins. Son débit d’entropie est par contre très faible. En multipliant le nombre de sources, le MURO-TRNG permet d’augmenter le débit d’entropie au prix d’une consommation plus élevée. De par son approche radicalement différente axée sur l’échantillonnage de chaque occurrence du jitter et non une accumulation de celui-ci, le STR-TRNGest le plus efficace (avec un facteur proche de 50 vis-à-vis duMURO-TRNG!) mais est aussi celui qui consomme le plus.

4.4 Générateur d’aléa statique : PUF

Une fonction physique non-clonable (Physical Unclonable Function) (PUF) peut être appréhendée comme une mémoire stockant un secret inhérent au circuit dans lequel il est embarqué. La particularité de cette mémoire vient du fait que son contenu n’est acces-sible que dynamiquement. Le secret n’est stocké ni électriquement ni de manière viacces-sible26, mais il peut être dynamiquement extrait en mesurant les micro variations résultant des phénomènes aléatoires qui perturbent et modifient le processus de fabrication. Ainsi ces dispositifs s’appuient sur le principe suivant : les disparités du processus de fabrication – le secret stocké physiquement – ne peuvent être mesurées autrement qu’avec lePUF. Toutes tentatives d’outrepasser ce principe, doit corrompre ce secret. Dans les circuits intégrés, ce

postulat est raisonnable au regard de l’état de l’art de l’analyse de la structure cristalline du silicium. Mais la validité de cette hypothèse doit être régulièrement reconsidérée par la communauté scientifique.

4.4.1 Principes de fonctionnement

Un PUFpeut être décomposé en trois parties (figure 4.17) :

1) Un ensemble de sources d’entropie, permettant de capturer les variations aléatoires et incontrôlables du processus de fabrication. Lorsqu’elles sont stimulées par un challenge C, une ou plusieurs de ces sources génèrent un signal analogique dont au moins l’une des grandeurs caractéristiques reflète les variations de fabrication. 2) Un bloc d’extraction composé d’une partie amplification et d’une partie

échantillon-nage27. Leurs objectifs sont d’augmenter le rapport signal à bruit (Signal-to-Noise Ratio) (SNR), en combinant, accumulant ou filtrant le signal en provenance de la source et de faire la conversion, dans le domaine numérique, de la caractéristique analogique exploitée.

3) Un bloc de post-traitement mettant en forme les mesures pour construire la réponse R du PUF tout en augmentant sa stabilité.

Figure 4.17 – Architecture générique d’un PUF.

Cette décomposition est très similaire à celle faite pour les TRNG (figure 4.8). La principale différence se situe au niveau des sources d’entropie. Alors qu’unTRNGva s’in-téresser aux variations dues au bruit d’une unique source28, unPUFva comparer un grand nombre de sources pour extraire de l’aléa statique – le bruit qui a été figé dans le circuit par le processus de fabrication. Mais de manière générale, les sources d’entropies utilisées dans les PUF sont les mêmes que celles utilisées par les TRNG. En faisant l’hypothèse réaliste que ces mesures ne sont pas parfaitement stables29, il est intéressant de remar-quer qu’unPUFpourra très souvent être utilisé dans un mode de fonctionnementTRNG. Des nombres aléatoires pourront être dérivés des variations entre les réponses fournies lorsqu’un même challenge est répété de nombreuses fois.

Par ailleurs, lesPUFsont par essence sensibles aux variations des conditions d’opéra-tion PVT. Pourtant, seules les disparités de fabrication (le « P ») doivent être extraites. Les autres (le « V » et le « T ») viennent perturber les mesures et introduire de l’insta-bilité dans les réponses. Pour s’en prémunir, des mesures différentielles sont généralement faites. Les réponses à un challenge sont alors construites en comparant plusieurs sources d’entropie. Il est cependant difficile de s’affranchir totalement de cette instabilité. Cer-taines variations de fabrication ont plus d’effet à basse température, d’autres augmentent

27. Dans les différentes architectures dePUFprésentées dans la suite de cette section, le bloc d’échan-tillonnage sera toujours représenté en rouge.

28. Cette unique source peut être une composition de plusieurs autres, comme c’est le cas pour le

MURO-TRNG

4.4. Générateur d’aléa statique : PUF avec la tension d’alimentation, et il n’est généralement pas possible de les discriminer. Cela peut conduire à des effets de non-linéarité et d’inversion des grandeurs physiques mesurées. Par exemple, la différence entre les fréquences d’oscillation de deuxRO pourra être négative dans certaines conditions et positive dans d’autres. Afin de remédier à ce problème, une calibration des PUF est habituellement faite. Seules les sources étant très impactées par les variations de fabrication seront utilisées. Le processus de calibration per-mettra de les identifier et les paires de sources à comparer30seront stockées dans uneNVM du circuit. D’autres approches utilisant des codes correcteurs d’erreurs (Error Correction Codes) (ECC) sont aussi largement utilisées [Bös+08;MTV09;YD10;MVV12;Che+17] car elles permettent de limiter la taille duhelper dataà stocker. Il apparaît cependant que ces solutions peuvent faciliter le travail d’un attaquant [Koe+14;DV14;SFP20].

Suivant les méthodes d’extraction et de post-traitement utilisées, chacune de ces sources d’entropie peut être caractérisée de manière binaire ou non, permettant de générer un ou plusieurs bits de réponse. La première approche permet d’obtenir des réponses globalement plus stables, alors que la deuxième permet de réduire la taille des PUF et d’augmenter leur efficacité (nombre de bits extrait par unité de surface ou d’énergie).

4.4.2 Évaluation

La qualité d’unPUFpeut être évaluée de différentes manières [MGS13]. Généralement trois caractéristiques sont particulièrement regardées :

L’unicité – la capacité d’extraire une réponse unique pour chaque circuit.

La stabilité – la capacité de produire des réponses stables malgré le bruit, ou les variations PVT.

L’imprédictibilité– la capacité de générer des réponses aléatoires avec une entropie par bit la plus grande possible.

Chacune de ces caractéristiques peut être mesurée à l’aide d’une métrique dédiée. Si l’on suppose un ensemble de N circuits (di)1≤i≤N. Pour chaque circuit, une réponse de n bits est extraite L fois. On note alors rl

i la l-ième réponse du circuit di, avec 1 ≤ i ≤ N and 1 ≤ l ≤ L.

4.4.2.1 Évaluer l’unicité

Les réponses de deux circuits différents di et dj doivent avoir une très forte probabilité d’être différentes. C’est à dire, rl

i6= rm

j , ∀(l, m) ∈ [1; T ] et ∀(i, j) ∈ [1; N] avec i 6= j. Une métrique usuelle pour mesurer l’unicité U se base sur la distance de Hamming inter-circuit. Elle peut être calculée avec l’équation suivante :

U = 1 N(N − 1)L N X i=1 N X k=1,k6=i L X l=1 HD(rl i, rk) n (4.17)

avec rk la valeur moyenne des L réponses extraites du PUF k, n le nombre de bits des réponses et HD la distance de Hamming entre deux vecteurs. Dans l’idéal, cette métrique doit être 0.5.

4.4.2.2 Évaluer la stabilité

Pour un challenge donné, répété L fois dans n’importe quelles conditions de tension, de température ou de vieillissement, la réponse d’un circuit di doit toujours être la même :

rl

i ne doit pas varier dans le temps. Une métrique habituellement utilisée pour évaluer la stabilité Si d’un PUF i est la distance de Hamming intra-circuit, qui peut être calculée avec l’équation suivante :

Si = 1 L L X l=1 HD(rl i, ri) n (4.18)

Idéalement, sa valeur doit être 0.

4.4.2.3 Évaluer l’imprédictibilité

Les réponses provenant de N circuits doivent être imprévisibles et uniformément ré-parties. Comme pour tout générateur de nombres aléatoires (Random Number Generator) (RNG), cela peut être évalué en utilisant les tests statistiques de la suite SP800-22. Les réponses de tous lesPUF sont regroupées en une suite de bits sur laquelle les tests sont appliqués. Le taux de succès de ces tests est alors utilisé comme métrique. Généralement, pour limiter les dépendances liées au bruit, les valeurs moyennes ri sont utilisées.

4.4.2.4 Autres paramètres

La consommation dynamique des PUF n’est pas très étudiée dans la littérature. Ces primitives ne sont pas utilisées fréquemment dans un fonctionnement normal et leur consommation dynamique est donc généralement négligeable vis-à-vis du système. La consommation statique (courant de fuite) peut être plus problématique, surtout pour les circuits passant beaucoup de temps en mode veille et pour ceux implémentés dans une technologie avancée. Ainsi, la surface31 occupée par ces circuits, ou le nombre de transis-tors, est une caractéristique à regarder lors de la comparaison des différentes architectures. Pour relier cette caractéristique au besoin de sécurité, on peut plus particulièrement s’in-téresser à l’efficacité des PUF que nous définissons comme le nombre de bits d’entropie pouvant être générés par transistor des sources.

La latence de réponse des PUF est un autre paramètre peu étudié. Il nous semble pourtant être une caractéristique sensible de ces primitives. Une latence importante mène à une plus grande sensibilité aux variations basses fréquences de la température ou au bruit de scintillement, et dégrade la stabilité des réponses. Mais plus important encore, un long temps de réponse peut entrainer des comportements hasardeux de la part des utilisateurs. Pour s’affranchir de la perte de temps et d’énergie associée à la lecture du PUF, ceux-ci pourront être tentés de stocker le secret dans une mémoire plus facilement accessible, mais non-sécurisée. Un tel comportement anéantirait alors les avantages de ces primitives et pourrait compromettre toute la sécurité du système.