Aller au contenu

SIV : Synthetic Initialization Vector

Cryptographie

SIV : Synthetic Initialization Vector. « Vecteur d'initialisation synthétique », par analogie avec un numéro de dossier calculé à partir du contenu du dossier plutôt que tiré d'un carnet à souches.

Principe : Une fonction pseudo-aléatoire à clé calcule un vecteur à partir des données associées, du nonce éventuel et du texte clair. Ce vecteur sert à la fois d'IV (Initialization Vector, vecteur d'initialisation) pour le chiffrement et de tag d'authentification.

Vérification : Au déchiffrement, on retrouve le clair avec le vecteur reçu, on recalcule le vecteur et on compare. Toute différence entraîne un rejet, et le clair n'est pas rendu.

Résistance au mauvais usage : Comme l'IV dépend du message, répéter un nonce ne révèle que l'égalité de deux messages identiques. On parle de résistance au mauvais usage du nonce (nonce misuse resistance).

Deux passes, deux déclinaisons : Le texte clair doit être lu en entier avant de chiffrer le premier octet. Les déclinaisons courantes sont AES-SIV, fondée sur CMAC (Cipher-based Message Authentication Code), et AES-GCM-SIV, fondée sur un hachage polynomial.

Ce qui arrive si on s'en passe

Sans vecteur synthétique, un chiffrement dépend d'un IV ou d'un nonce fourni de l'extérieur, et sa sécurité repose sur la discipline de ce qui le génère. Un IV fixe, un compteur remis à zéro ou un générateur aléatoire défaillant suffisent alors à faire fuiter des relations entre textes clairs, et dans les modes à compteur à exposer directement leur XOR. Certains modes authentifiés perdent en plus leur protection d'intégrité. L'approche SIV retire cette dépendance critique : la pire conséquence d'une répétition devient la révélation que deux messages sont identiques. Elle coûte une seconde passe sur les données, et son usage déterministe ne convient pas aux valeurs peu nombreuses et faciles à deviner.

Explication de la marmotte

Pour brouiller un message, beaucoup de méthodes ont besoin d'un point de départ différent à chaque fois, sinon les messages brouillés finissent par se trahir entre eux. Ici, au lieu de piocher ce point de départ au hasard ou dans un compteur, on le calcule à partir du message lui-même, avec une clé secrète. Ce même calcul sert aussi de sceau : à l'arrivée, on refait le calcul et on vérifie que tout correspond. Si l'expéditeur se trompe et répète un numéro, le seul indice laissé à un espion est que deux messages sont identiques.

Où ce terme est utilisé

← Tout le glossaire