Aller au contenu principal

DER

Acronyme de Distinguished Encoding Rules. C’est un sous-ensemble strict des règles d’encodage ASN.1 définies dans la spécification ITU-T X.690, 2002 et utilisé pour encoder n’importe quel type de données dans une séquence binaire. DER est surtout utilisé dans des domaines spécifiques, comme en cryptographie, où les données doivent être encodées de manière standard et prédictible.

Sur Bitcoin, les signatures ECDSA sont encodées au format DER. Elles se composent de deux nombres (r,s) encodés. Le format de signature se compose des éléments suivants :

0x30 | length |  0x02 | r-length | r | 0x02 | s-length | s

Avec :

  • 0x30 (1 octet) : identifiant d’une structure composée ;
  • length (1 octet) : longueur des données suivantes ;
  • 0x02 (1 octet) : identifiant de donnée type INTEGER (nombre entier) ;
  • r-length (1 octet) : longueur de la valeur r suivante (généralement 32 ou 33 octets) ;
  • r (variable) : valeur r en tant qu’entier gros-boutiste (big-endian) ;
  • 0x02 (1 octet) : identifiant de donnée type INTEGER (nombre entier) ;
  • s-length (1 octet) : longueur de la valeur s suivante (généralement 32 ou 33 octets) ;
  • s (variable) : valeur s en tant qu’entier gros-boutiste (big-endian).

Dans une transaction Bitcoin, un octet est ajouté à la fin d’une signature DER pour indiquer le type de SigHash utilisé.

Termes associés :