Coffre-fort temporel

Mars 2023

C'est quand même étonnant tous ces articles qui n'abordent quasiment jamais la notion du temps, et proposent des succédanés de pendule...

Commençons par revenir aux basiques et introduire le temps dans nos histoires.

De nos jours, les solutions cryptographiques sont bien connues et très courantes, il suffit de regarder nos TPM, puce de nos cartes à puce et autres cartes SIM.

Une puce cryptographique est essentiellement un coffre-fort.

Pour rappel, ces puces cryptographiques contiennent une mémoire sécurisée inaccessible de l'extérieur, et des moyens de calcul (processeur) pour chiffrer, déchiffrer, exécuter les opérations basiques du genre vérifier que le mot de passe proposé est le bon.

Ce qui nous intéresse, c'est relâcher un secret à une date fixée.

Commençons par le secret, qui sera numérique. La première idée consiste à placer le secret dans le coffre-fort, et c'est bien naturel.

Par exemple, le secret est une image que l'on place dans le coffre-fort.
Sauf qu'il prend toute la place avec sa grosse tête !

S'il s'agit d'un message qui doit être révélé plus tard, comme du texte, une archive zip, des images ─peu importe─, le plus économique est de chiffrer ce message avec des méthodes conventionnelles, puis de planquer la clé de déchiffrement dans le coffre, clé qui sera très petite en place mémoire comparée au message.

On place la clé de déchiffrement dans le coffre-fort.
L'image chiffrée peut être stockée n'importe où, publiquement.

On notera que cette clé peut se présenter sous la forme d'un mot de passe, puisque l'on sait en dériver une clé de déchiffrement.

Autrement dit, on connait des fonctions où on entre un mot de passe, et il en sort une clé de déchiffrement, pas besoin de stocker cette fameuse clé.

Pour l'instant, pas besoin de la panoplie d'algorithmes de chiffrement dans la puce cryptographique, uniquement de la mémoire, blindée contre les tentatives d'accès de l'extérieur. Lorsque la clé de déchiffrement, devenue le secret secondaire caché dans la puce, est relâchée, alors on déchiffre le fichier et on obtient le secret initial

Quand la clé de déchiffrement est relâchée, on peut déchiffrer l'image.

Maintenant il faut ajouter la date.

La date de libération doit être connue de la puce, aussi faut-il la stocker dans la puce cryptographique :

Il faut stocker la date de libération dans la puce cryptographique
à l'abri des modifications. Mais elle n'est pas spécialement secrète.

On notera qu'il faut protéger la date de libération contre toute modification, mais elle n'est pas forcément secrète (on pourrait la consulter).

Maintenant, il faut fournir la date courante.

Avec la date courante, la puce pourra décider si la date de libération est dépassée.

Et là, c'est le drame. Comment être sûr que l'on fournit la véritable heure absolue provenant d'une horloge atomique dont on n'aurait éventuellement aucun doute ?

Aie confiance ! Les informations reçues proviennent vraiment d'une horloge ?

Non seulement il va falloir mettre l'horloge dans un autre coffre-fort, mais aussi ajouter la panoplie de chiffrement pour sécuriser les échanges.

Il faut mettre l'horloge en sécurité, et chiffrer les communications.

Et puis, on n'est pas à l'abri d'une destruction de l'horloge, ce qui rendrait le système totalement inopérant.

Il suffit de neutraliser l'horloge ou couper la communication pour que ça ne marche plus.

La solution est simple : mettre l'horloge dans notre coffre-fort.

Autant mettre l'horloge dans le coffre, ça élimine tous ces problèmes de communication.

Sauf qu'il reste un petit problème: il faut alimenter l'horloge pour qu'elle marche.

Et l'alimentation électrique pour l'horloge ?

C'est un vrai problème ! Si l'horloge n'est pas alimentée, ça ne marchera pas. Bon, OK, on met aussi la pile dans le coffre-fort. Facile à dire, me direz-vous.

Tout dans le circuit intégré = la puce cryptographique, seul moyen d'être sûr.

Mais là, ça devient pénible si jamais on veut des années de fonctionnement, car embarquer de l'énergie, qui plus est de manière sécurisée (il ne faudrait pas qu'un malandrin vienne couper le fil de l'alimentation) ce n'est pas simple.

Délai

Le système réel est un poil plus compliqué car il faut entrer les données dans le coffre, ce qui est très simple à faire en réalité. Il faut juste ne pas se louper en évitant la possibilité d'écraser les informations, cette écriture ne doit marcher qu'une seule fois.

Exemple de secret à relâcher à une date précise.
Oui, je sais, j'ai eu chaud aux fesses, avec la réforme qui se tramait...

Le système n'a pas besoin forcément de comparer les dates en permanence. Il suffit de le faire au moment où on en a besoin, ce qui sera plus économe en énergie. On pourra éventuellement fournir de l'extérieur cette énergie pour faire la comparaison, vu que ce n'est pas critique. Mais pas pour l'horloge interne !

On remarquera que la date absolue n'est pas utile car c'est une vue de l'esprit humain. Seul compte le délai, en langage d'électronicien on appelle ça un monostable, et pour les cryptographes, c'est apparemment un problème de calcul long à réaliser.

Mais bon, cette histoire de délai ou de date absolue est secondaire. En réalité, une horloge, même atomique, ne sait comptabiliser que des délais, il faut lui fournir manuellement l'heure absolue. Comme votre montre.

Le problème s'est déplacé : comment intégrer une horloge et son alimentation avec une puce cryptographique ?

Eh bien, nous allons nous intéresser aux horloges, de préférence celles qu'on peut intégrer dans du silicium.