Coffre-fort temporel
J'ai assez râlé que tous ces articles sur la cryptographie temporelle ne commençaient quasiment jamais par regarder ce qu'était le temps, et surtout, comment on le mesure.
C'est d'autant plus crucial que l'on ajoute un léger problème de ressource en énergie pour faire cette mesure du temps. On aimerait bien que ça ne consomme rien...
Nous allons donc nous intéresser aux horloges dites embarquées, celles que l'on pourrait mettre avec du silicium, base de nos processeurs de calcul.
Ne venez pas me chercher des poux avec la relativité restreinte et les histoires de dilatation du temps. Ce n'est pas le problème ici, on va rester très terre à terre. Pas d'histoire de temps propre, pas de gravité démentielle, pas de vitesse relativiste...
C'est le seul moyen d'être sûr pour éviter d'avoir à faire confiance au monde extérieur.
Pour rappel, on se fiche bien de l'heure absolue : on a uniquement besoin de pouvoir mesurer un délai, c'est-à-dire le temps écoulé entre deux évènements. Avec ça, on pourra se débrouiller totalement, car on sait toujours du moins on le supposera quel jour on est en pratique, en particulier au moment où on entrera la date de libération du secret.
La difficulté, pour notre application, ce sont les histoires de sécurité.
Si vous avez lu la page sur les produits existants,
vous avez déjà vu des solutions où l'horloge est interne, avec des piles dedans
pour alimenter tout ça.
Mais on voit bien que ça ne sera pas bien solide ce truc-là...
Horloges embarquées
Garder le temps localement n'est pas un problème nouveau : nos montres font ça quotidiennement. Et on sait d'avance que le problème n'est pas résolu totalement en termes de :
- Précision
- Consommation d'énergie
Pour mesurer le temps, on utilise systématiquement un oscillateur, qu'il soit mécanique ou électronique. Il existe essentiellement deux types d'oscillateurs électroniques :
- des oscillateurs à quartz
- des oscillateurs sans quartz, éventuellement manufacturable entièrement avec des technologies silicium.
On oubliera les horloges atomiques, qui, même avec les efforts réalisés pour les rendre miniatures, ne sont pas vraiment sécurisables du point de vue matériel, ou du moins, il faudra vraiment beaucoup d'efforts pour y arriver.
Mais pour sécuriser un truc pareil contre une attaque matérielle, on n'est pas rendu.
Le quartz offre l'avantage d'avoir une fréquence d'oscillation relativement stable, bien que dépendant de la température, pour un coût de fabrication modique. C'est souvent pire avec les oscillateurs en silicium, mais ceux-ci s'améliorent.
On arrive à des précisions de l'ordre de 20 ppm, soit 10 minutes par an, avec le quartz.
La dépendance avec la température est éventuellement gênante du point de vue sécurité si une haute précision est requise, puisque l'on peut ralentir ou accélérer l'horloge en modifiant la température du système. À ne pas oublier lors de la spécification du système.
Consommation électrique des RTC
Et évidemment, d'une manière générale, plus c'est précis, plus c'est couteux énergétiquement parlant. Mais de quoi on parle côté consommation électrique ? Quelle est la taille de la pile qu'il faudra ?
Des circuits spécialisés sont vendus pour conserver l'heure, on les appelle RTC Real-Time Clocks. Ce sont les fabriquants de puces électroniques silicium qui les conçoivent et tous les RTC requièrent une pile pour fonctionner.
Quelques exemples de consommation histoire de voir où on met les pieds :
- MicroCrystal : 45 nA, embarque le crystal
- Cymbet : 20 nA avec une horloge RC
- Texas Instruments : 30 nA au mieux
Et quelle est la taille d'une batterie pour disons, 10 ans ?
À 20 nA, en une heure il nous faudra 20 nA.h. En un an, on a 8766 heures, soit 175 µA.h, pour 10 ans on arrive à 1.7 mA.h, ou encore 6 coulombs.
on voit immédiatement que c'est bien trop vulnérable.
Les plus petites piles boutons font 5 mm de diamètre et 2 mm d'épaisseur et embarquent une dizaine de mA.h. Sauf que ces piles ont une auto-décharge probablement plus grande que la consommation électrique.
Et inutile d'espérer du côté des supercapacités, l'autodécharge est encore pire, et la densité volumique d'énergie est moins bonne que le chimique.
Sécurité matérielle
côté sécurité, c'est mal barré.
- Un quartz est relativement gros, ce qui est plus difficile à protéger contre les intrusions. Vaudrait mieux l'éviter.
- La taille de la pile n'est pas micrométrique, peu compatible avec une puce silicium, et donc tout aussi difficile à protéger
- Quartz et piles sont sensibles à la température, par exemple on pourrait "geler" oui bon ralentir ou accélérer l'horloge en la mettant au congélateur ou au four
- Pour ne pas arranger les choses, tout ceci sera sensible aux champs électromagnétiques, voir simplement électrostatiques, il faudra donc les blinder comme une bête.
Et pour rappel, pas question de compter sur l'environnement pour récupérer de l'énergie. Oubliez le solaire ou le thermique, il faut être totalement autonome.
Bref, l'enfant se présente mal comme on dit.
Horloge avec une batterie nucléaire ?
Et l'énergie nucléaire ?
Et oui, on sait faire des sources électriques basées sur l'énergie nucléaire, en particulier des batteries betavoltaïques.
Ces batteries peuvent produire une cinquantaine de microwatt. Sans arrêt.
oui bon, presque sans arrêt, ça dépendra de l'isotope utilisé.
Ah ben c'est déjà mieux : à 1000 nA et 3 volt, on parle de 3 microwatt pour la consommation d'une RTC. C'est nettement plus compatible.
Et une batterie betavoltaïque, c'est plus ou moins compatible CMOS car il suffit de présenter l'isotope radioactif devant une diode pour collecter l'énergie. Voilà qui est nettement plus prometteur.
Nous tenons donc une première solution: on utilise une horloge embarquée en silicium, et on ajoute une source radioactive avec de quoi convertir la radioactivité en électricité.
Mais on peut mieux faire 😀
Horloges sans batterie
La mesure du temps sans batterie ?
Il y a eu quelques propositions ésotériques, voici un papier qui parait alléchant à la vue du titre :
- Persistent Clocks for Batteryless Sensing Devices Josiah HESTER / 2016
Ce papier expose la situation et propose deux techniques :
- TARDIS software-only qu'ils disent. En fait, c'est du hardware : on regarde à quelle vitesse une RAM se dégrade lorsqu'elle n'est plus alimentée. Donc en réalité une mesure basée sur la décharge d'une capacité à travers des résistances de fuite. Ça va bien pour des temps assez courts, à la rigueur, comme une perte de puissance momentanée. Et encore.
Le docteur Who aurait certainement une meilleure solution.
- CusTARD : par opposition à leur solution "software", cette fois on met une vraie capacité et on suit la décharge avec un CAN. Ça ira bien sur des temps assez courts.
Tout ceci va être extrêmement sensible à la température, et pas question d'utiliser ça pour des temps longs, même une journée ne parait déjà l'infini…
Et puis je me demande encore comment ils font tourner leurs algorithmes. Sans batterie.
Conclusion : pas d'espoir de ce côté-là.
Une demi-solution ?
Les phénomènes naturels dépendants du temps, ce n'est pas nouveau, c'est même courant. Une réaction chimique par exemple. Mais ils sont souvent difficiles à reproduire de manière fiable pour en faire une référence temporelle. Et souvent dépendant de la température, ce qui rend les choses peu pratiques et fiables à long terme.
Nos horloges atomiques au césium 133 font intervenir directement les atomes, et ce fut un phénomène de choix pour définir la seconde.
Depuis on s'est rendu compte qu'elles dépendaient du champ gravitationnel comme toutes choses d'ailleurs, mais c'est secondaire pour nous, j'ai indiqué dès le départ que l'on ne prendrait pas en compte les effets relativistes, restreints ou généraux.
Il existe un phénomène dépendant du temps, bien connu d'ailleurs : la désintégration radioactive.
Mais si, vous connaissez déjà la datation au carbone 14 et probablement aussi les histoires de demi-vie qui s'y rattachent.
Bon, pour ceux qui ne s'en souviennent plus : les atomes se désintègrent, c'est un phénomène aléatoire, qui suit une loi particulière de décroissance : au bout d'un certain temps, toujours le même pour un isotope donné, il n'en reste que la moitié. On appelle ce temps la demi-vie.
Le miracle est là : c'est un phénomène naturel qui ne requiert aucune énergie. Autrement dit, c'est une horloge qui marche toute seule.
🤯 🤩 🤓
Il "suffit" de mesurer la radioactivité au départ, et calculer le niveau de radioactivité que l'on aura après le délai souhaité avec la formule de décroissance ci-dessus.
On mesure alors périodiquement (ou au moment souhaité, pas besoin de garder les yeux sur le lait) pour savoir si le délai s'est écoulé.
Entre deux mesures, aucune énergie n'est dépensée.
Cerise sur le gâteau, ça ne dépend pas de la température vu qu'on est au niveau du noyau atomique, qui se fiche bien de l'agitation thermique.
Voici donc l'idée qui m'a traversé l'esprit quand j'ai lu l'article de JP.Delahaye. Désolé.
Bon, c'est bien joli cette idée d'utiliser la demi-vie, mais comment faire cela en pratique et de manière sécurisée ?
Et là, j'aurai forcément la réaction épidermique " tu ne peux pas utiliser la radioactivité pour faire ça ! ".
Ah là là... ça m'énerve
Ne vous énervez pas si vous vouliez poser un brevet, c'est déjà fait : Notice n° FR3125143 Circuit intégré programmable utilisant une source radioactive.