summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2019-03-27Quelques corrections de dernière minute sur les implems VHDLKévin Le Gouguec
2019-03-26[implem-vhdl] Ajout d'un entête avec auteurs et dédicace CC0Kévin Le Gouguec
2019-03-26[implem-vhdl] Déplacement dans SOUMISSION_NISTKévin Le Gouguec
2019-03-26[implem-vhdl] Ajout des sources VHDLGaetan Leplus
2019-03-26Add new directory: add_vhdlGaetan Leplus
2019-03-25Merge branch 'refactor-python-implem'Kévin Le Gouguec
2019-03-25[implem-python] Ajustements dans _tweak_messageKévin Le Gouguec
Hopefully, le résultat est plus clair en construisant le tweak par concaténations progressives.
2019-03-25[implem-python] Retrait de range()s et variables intermédiairesKévin Le Gouguec
2019-03-25[implem-python] Suppression d'une ligne de '#'Kévin Le Gouguec
2019-03-25[implem-python] Construction de _tweak_message par concaténationKévin Le Gouguec
Et petits nettoyages par-ci par-là.
2019-03-25[implem-python] Suppression de variables intermédiairesKévin Le Gouguec
Le code résultant ressemble plus à ce qui est décrit dans les algorithmes 3 et 4.
2019-03-25[implem-python] Simplification de _tweak_tagKévin Le Gouguec
Très similaire à ae_common._tweak_associated_data.
2019-03-25[implem-python] Simplification de _add_tag_jKévin Le Gouguec
2019-03-25[implem-python] Remplacement de _tweak_tag_end par une concaténationKévin Le Gouguec
2019-03-25[implem-python] Ajustements de formeKévin Le Gouguec
2019-03-25[implem-python] Ajout des entêtes manquantsKévin Le Gouguec
2019-03-24[implem-python] Remplacement de _low_part par du "tranchage" natifKévin Le Gouguec
2019-03-24[implem-python] Réécriture de certains range() dans ae_common.pyKévin Le Gouguec
Et réutilisation de fonctions Python natives.
2019-03-24[implem-python] Réécriture de certains range() dans tbc.pyKévin Le Gouguec
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.
2019-03-24[implem-python] Conformité PEP8Kévin Le Gouguec
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.
2019-03-24[implem-python] Correction de la documentation de Lilliput-ⅠKévin Le Gouguec
2019-03-24[implem-python] Renommage des modules des modes authentifiésKévin Le Gouguec
On bénéficie déjà de l'espace de nommage "lilliput".
2019-03-23[implem-python] Documentation de Lilliput-Ⅰ et Lilliput-TBCKévin Le Gouguec
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…
2019-03-23[implem-python] Documentation du mode authentifié Lilliput-ⅡKévin Le Gouguec
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.
2019-03-23[implem-python] Documentation du paquet "lilliput"Kévin Le Gouguec
2019-03-22[implem-python] Déplacement dans le dossier SOUMISSION_NISTKévin Le Gouguec
Et ajout d'un métascript pour vérifier la conformité. Il ne reste plus qu'à… (bis)
2019-03-22Simplification et documentation de pad10*Kévin Le Gouguec
Pas besoin de la condition. Ajout d'un exemple.
2019-03-20Ajout de l'implémentation "FELICS"Kévin Le Gouguec
Semblable en tout point à l'implémentation de référence, sauf pour des optimisations manuelles dans tweakey.c. Les gains sont significatifs même si surprenants : Lilliput-I-128 on AVR (vref with -O3) code_size: -3.21% (7420 ↘ 7182) code_ram: -2.08% (530 ↘ 519) code_time: -26.13% (176922 ↘ 130701) Lilliput-I-192 on AVR (vref with -O3) code_size: -3.66% (7550 ↘ 7274) code_ram: -1.90% (578 ↘ 567) code_time: -28.34% (228210 ↘ 163530) Lilliput-I-256 on AVR (vref with -O3) code_size: -4.05% (7698 ↘ 7386) code_ram: -1.71% (642 ↘ 631) code_time: -29.87% (301863 ↘ 211704) Lilliput-II-128 on AVR (vref with -O3) code_size: -3.04% (6704 ↘ 6500) code_ram: -2.94% (511 ↘ 496) code_time: -25.97% (181884 ↘ 134648) Lilliput-II-192 on AVR (vref with -O3) code_size: -3.56% (6682 ↘ 6444) code_ram: -1.97% (559 ↘ 548) code_time: -26.30% (264608 ↘ 195028) Lilliput-II-256 on AVR (vref with -O3) code_size: -4.06% (6804 ↘ 6528) code_ram: -1.77% (623 ↘ 612) code_time: -28.47% (354220 ↘ 253368) Lilliput-I-128 on MSP (vref with -O3) code_time: -17.72% (153285 ↘ 126129) Lilliput-I-192 on MSP (vref with -O3) code_size: -1.02% (8466 ↘ 8380) code_time: -19.77% (199203 ↘ 159828) Lilliput-I-256 on MSP (vref with -O3) code_time: -20.90% (268416 ↘ 212328) Lilliput-II-128 on MSP (vref with -O3) code_size: -2.49% (6336 ↘ 6178) code_time: -13.25% (172179 ↘ 149363) Lilliput-II-192 on MSP (vref with -O3) code_size: -1.22% (6406 ↘ 6328) code_time: -17.93% (227943 ↘ 187063) Lilliput-II-256 on MSP (vref with -O3) code_size: -1.30% (6600 ↘ 6514) code_time: -19.98% (307751 ↘ 246251) Lilliput-I-128 on ARM (vref with -O3) code_time: -16.94% (104944 ↘ 87170) Lilliput-I-192 on ARM (vref with -O3) code_time: -18.41% (132736 ↘ 108295) Lilliput-I-256 on ARM (vref with -O3) code_time: -18.74% (175979 ↘ 143001) Lilliput-II-128 on ARM (vref with -O3) code_time: -17.63% (114004 ↘ 93907) Lilliput-II-192 on ARM (vref with -O3) code_time: -17.55% (157405 ↘ 129780) Lilliput-II-256 on ARM (vref with -O3) code_time: -18.44% (206440 ↘ 168382) Lilliput-I-128 on PC (vref with -O3) code_time: -11.43% (11744 ↘ 10402) Lilliput-I-192 on PC (vref with -O3) code_time: -10.54% (14593 ↘ 13055) Lilliput-I-256 on PC (vref with -O3) code_time: -11.80% (18856 ↘ 16631) Lilliput-II-128 on PC (vref with -O3) code_size: -1.02% (7421 ↘ 7345) code_time: -9.11% (13080 ↘ 11889) Lilliput-II-192 on PC (vref with -O3) code_time: -10.51% (16809 ↘ 15043) Lilliput-II-256 on PC (vref with -O3) code_time: -10.96% (21970 ↘ 19561)
2019-03-15Nettoyage d'espacesKévin Le Gouguec
… En vrai je ne vois pas de bonne raison de se soucier des espaces en bout de ligne. Les outils de diff savent les ignorer, les éditeurs savent les ignorer… 🤷
2019-03-15Ajout de commentaires pour decrire la TI de refAlexandre Adomnicai
2019-03-14Correction de la génération du tweak pour ΘCB3Kévin Le Gouguec
L'implémentation de référence se basait sur les indices figurant dans le papier de Deoxys. Deux questions à résoudre, que d'autres se sont sans doute déjà posées : - Est-ce que ce l-1 est normal dans le papier de Deoxys ? - Est-ce que nos changements d'indices sont bien tous corrects ? En tout cas, les implémentations Python et C sont maintenant d'accord.
2019-03-12Homogénéisation de la déclaration des auteurs des implémentationsKévin Le Gouguec
Ça m'embêtait qu'on liste plusieurs personnes, puis qu'on dise "the implementer has…" ; repompé le "hereby denoted…" de Keccak.
2019-03-12Utilisation d'un générateur d'aléa pour l'implémentation à seuilKévin Le Gouguec
Un peu de machinerie à mettre en place pour permettre l'ajout de fichiers arbitraires dans une implémentation.
2019-03-12Ajustements mineurs sur l'implémentation à seuilKévin Le Gouguec
- retrait de stdio.h (inutile) - "aération" du prototype de _state_init
2019-03-12Ajustement des caractères d'espacementKévin Le Gouguec
- fins de ligne UNIX (\n) - espaces plutôt que tabulations
2019-03-12Retrait des suffixes _TIKévin Le Gouguec
Dans le but de rendre diff -ru ref add_threshold plus digeste.
2019-03-12Ajustement des entêtes des fichiers sourcesKévin Le Gouguec
- ordre alphabétique des auteurs, - un auteur par ligne, date sur une ligne séparée : maintenance et diff plus simples, - brève description de chaque fichier.
2019-03-12Ajout de l'implémentation à seuil d'ordre 1Kévin Le Gouguec
Modifications nécessaires dans l'infra : - retrait conditionnel de test-tweakey, vu que l'API n'est pas la même pour l'implémentation à seuil, - retrait conditionnel de l'avertissement "-Wparentheses", plus agaçant qu'autre chose sur les calculs booléens de cipher.c, e.g. y_hi&3 ^ (y_hi&8)>>1 où la priorité est intuitive (shifts avant AND avant XOR). C'est dommage de perdre les avertissements sur if (a&b == c), mais tant pis… On va compter sur La Suite De Test®©™ pour nous couvrir. Co-authored-by: Alexandre Adomnicai <a.adomnicai@trusted-objects.com> Co-authored-by: leo <leo.reynaud17@gmail.com>
2019-02-21Ajustement de l'alignement de certaines variablesKévin Le Gouguec
2019-02-20Changement de l'implémentation de référenceKévin Le Gouguec
Et suppression de l'implémentation add_tweakeysequences, qui n'a plus aucun intérêt (plus lente et plus grosse que les deux autres).
2019-02-20Adaptation du code de α₆Kévin Le Gouguec
2019-02-20Adaptation du code de α₅Kévin Le Gouguec
2019-02-20Adaptation du code de α₃Kévin Le Gouguec
2019-02-20Adaptation du code de α₂Kévin Le Gouguec
2019-02-20Renommage des variables des vecteurs-colonnes du tweakey scheduleKévin Le Gouguec
On utilise des minuscules dans la spécification.
2019-02-13Clarification de commentaires dans l'implémentationKévin Le Gouguec
2019-02-13Renommage des fichiers implémentant les modes AEKévin Le Gouguec
Pour qu'ils soient plus proches du nom donné dans la spécification.
2019-02-12Correction des descriptions des implémentations du tweakey scheduleKévin Le Gouguec
Les renommages récents les ont chamboulées un peu.
2019-02-12Utilisation du tweakey schedule "itératif" comme référenceKévin Le Gouguec
Au final, il n'est pas moins performant que l'autre ; cf. issue #4.
2019-02-12Reformulation de l'implémentation de α₃Kévin Le Gouguec
- Changement de l'implémentation de référence en conséquence (les compilateurs savent très bien optimiser les deux shifts en un seul AND) - Retouche du phrasé : "multiplication αᵢ" plutôt que "αᵢ multiplication". Je n'ai pas de pointeurs vers une règle de grammaire particulière, mais c'est par comparaison avec "Planet Earth" ou "Operation Overlord".