Difficile de résister à expliquer quelques mots du dernier post de @how
J’ai repris pour cela un cours d’intro à la cryptographie pour économistes que j’avais donné il y a longtemps, voici quelques définitions et exemples pour que le mot sha256 soit moins mystérieux.
sha256 est une fonction de hachage. Une fonction de hachage est une fonction qui associe à un message de longueur arbitraire une valeur de longueur fixe appelée empreinte du message.
Le paragraphe suivant sur les propriétés peut-être zappé en première lecture.
Extrait du livre de D. Vergnaud, p.79 :
Les propriétés de que l’on attend d’une fonction de hachage 𝐻
résistance à la pré-image : étant donné une empreinte ℎ, il doit être caclulatoirement difficile de trouver un message 𝑚 tel que 𝐻(𝑚)=h.
résistance à la seconde pré-image : étant donné un message 𝑚
, il doit être caclulatoirement difficile de trouver un message 𝑚′≠𝑚 tel que 𝐻(𝑚)=𝐻(𝑚′)* ;
résistance aux collisions : il doit être caclulatoirement difficile de trouver deux messages 𝑚 et 𝑚′ tels que 𝐻(𝑚)=𝐻(𝑚′).
Pour le calcul : bibliothèque Python pour les fonctions de hachage :
Pour jouer un peu : tester une fonction de hachage sur deux textes quasi identiques avec une micro différence :
# Code python
import hashlib
m = hashlib.sha256(b"Texte de longueur quelconque....")
#b pour convertir la chaîne de caractère en type bytes
print(m.digest())#renvoie l'empreinte (digest) du texte, objet de type bytes
print(m.hexdigest())#format hexadecimal
m2 = hashlib.sha256(b"Texte de longueur quelconque....1")
#différence entre m et m2
#b pour convertir la chaîne de caractère en type bytes
print(m2.digest())#renvoie l'empreinte (digest) du texte, objet de type bytes
print(m2.hexdigest())#format hexadecimal
Ta fonction sha256sum
c’est la fonction sha256 + une vérification de l’empreinte par rapport au texte de référence ?
Non c’est simplement un raccourci pour passer le nom du fichier et obtenir le résultat de la commande sha256sum pour ce fichier : cela permet de créer le fichier de vérification. Moi je dis : la somme c’est ça et elle se trouve ici. Comme elle apparaît sur notre site web dans la fiche de présentation du livre et à côté du fichier PDF correspondant, si tu obtiens une copie du fichier, tu peux vérifier que la somme de ta copie correspond à celle que nous fournissons.
______________ nom du fichier destination
function ss() { sha256sum "$1" > "$1".sha256sum; } # Définit la fonction ss
^ commande ^ ^ renvoyer le résultat dans un fichier
\_ premier argument (nom du fichier source)
Si la source ($1) est livre.pdf alors la destination est fichier.pdf.sha256sum :
$ ss livre.pdf # crée le fichier livre.pdf.sha256sum
$ cat livre.pdf.sha256sum # lit le fichier livre.pdf.sha256sum
20db825136c0e838f08fa9c5fe5806d40f8b955f73d5840cf41973032e18cd16 livre.pdf.sha256sum
$# ss livre.pdf est équivalent à :
$ sha256sum livre.pdf > livre.pdf.sha256sum
Merci en tout cas pour l’éclairage ! Sans doute une explication plus précise devrait être fournie en lien avec la colonne SHA256sum sur les pages de présentation des livres