| Age | Commit message (Collapse) | Author |
|
De façon à ce que d'autres versions puissent réutiliser l'un ou
l'autre.
|
|
1. Ça ressemble plus à ce qu'on voit sur le schéma.
2. Pour une raison obscure, la version incrémentée bouffe souvent plus
de ROM et plus de cycles (jusqu'à 5% de ROM sur ARM).
|
|
|
|
Problème introduit par 3a57031.
|
|
Changements mineurs :
- remplacement du tableau intermédiaire F par une fonction,
- réécriture de la couche linéaire avec des boucles.
Le but est d'améliorer la lisibilité par rapport à la spécification,
tout en limitant les différences avec la version "felicsref".
|
|
|
|
Pour aider à l'implémentation VHDL.
|
|
Suite à la refacto de la gestion du tweak dans Lilliput-Ⅰ.
|
|
Ajout du nonce dans le tweak une bonne fois pour toute
à l'initialisation de l'algorithme, au lieu de le rajouter à chaque
tour de boucle.
Similaire à notre implémentation de SCT-2, et à l'implémentation de
référence de Deoxys-I.
|
|
|
|
Bug introduit par ce047dd.
|
|
Surtout par souci d'homogénéité.
|
|
- "block number" → "block index"
- "192" → "t"
- boucle de copie de l'index
- utilisation de size_t :
- par définition, aucune implémentation ne pourra traiter plus
d'octets que SIZE_MAX (donc pas plus de blocs),
- pas de raison de forcer un index de 64 bits sur ces pauvres
ATmega et MSP430.
|
|
SOUMISSION_NIST/REFERENCE_IMPLEMENTATION/src/add_vhdltbc/decrypt/crypt_pack.vhd, SOUMISSION_NIST/REFERENCE_IMPLEMENTATION/src/add_vhdltbc/decrypt/top.vhd, SOUMISSION_NIST/REFERENCE_IMPLEMENTATION/src/add_vhdltbc/encrypt/crypt_pack.vhd files
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Hopefully, le résultat est plus clair en construisant le tweak par
concaténations progressives.
|
|
|
|
|
|
Et petits nettoyages par-ci par-là.
|
|
Le code résultant ressemble plus à ce qui est décrit dans les
algorithmes 3 et 4.
|
|
Très similaire à ae_common._tweak_associated_data.
|
|
|
|
|
|
|
|
|
|
|
|
Pour que ce soit plus simple de remplacer la boucle par
generate 2 128
generate 1 256
… ce qui prend 6 minutes au lieu de 20 sur ma machine \o/
|
|
Et réutilisation de fonctions Python natives.
|
|
IME, itérer sur un range() est rarement la façon la plus expressive de
faire les choses ; les alternatives imposent une structure qui rendent
l'intention plus claire. E.g. quand on voit une compréhension, on
comprend que l'auteur cherche à filtrer et/ou transformer ce sur quoi
il itère.
Réutilisation de xor_state(), renommé xor() puisqu'il sert dans
plusieurs situations.
Séparation de ce xor() et des fonctions communes aux modes
authentifiés pour éviter un import circulaire.
|
|
Surtout la capitalisation des noms de fonction.
Retrait des lignes de '#' ; si il y a des séparations à faire, autant
ajouter des modules.
Correction de _MessageTweak.BLOCK en passant.
|
|
De sorte à ce qu'on puisse le lancer depuis n'importe quel dossier.
|
|
|
|
On bénéficie déjà de l'espace de nommage "lilliput".
|
|
Idem, renommage des fonctions privées avec un souligné pour que l'API
soit plus simple à comprendre.
⚠ Pas testé, ça prend littéralement 20 minutes à l'implémentation
Python de générer les vecteurs de test, et c'est l'heure du dodo…
|
|
Ajout d'un souligné devant les fonctions privées ; de cette façon,
>>> from lilliput import lilliput_ae_1
>>> help(lilliput_ae_1)
… ne montre que les fonctions "publiques", i.e. celles que
l'utilisateur est censé appeler.
|
|
Idéalement, il faudrait rajouter les bonnes dépendances dans le
Makefile…
|
|
|
|
|
|
En plus du paquet Python "lilliput", chaque dossier embarque
- un script "genkat_aead.py" qui génère les vecteurs de test via l'API
du module "crypto_aead",
- un module "crypto_aead" servant de point d'entrée générique,
- un module "parameters", qui permet à crypto_aead d'instancier
Lilliput-AE avec le bon mode et la bonne taille de clé.
Livraison dans ./crypto_aead sans se soucier de l'arborescence du
dépôt, par homogénéité avec make-package.sh.
Quelques ajustement dans genkat_aead.py pour que le lien avec
genkat_aead.c soit plus évident.
|
|
|
|
Et ajout d'un métascript pour vérifier la conformité.
Il ne reste plus qu'à… (bis)
|
|
Pour aider l'implémentation matérielle.
|