summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
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".
2019-02-12Correction de grammaireKévin Le Gouguec
2019-02-12Réorganisation des inclusions d'entêtesKévin Le Gouguec
2019-02-12Ajout d'une déclaration de (renonciation aux) droits d'auteurKévin Le Gouguec
Avec une phrase de documentation en prime pour chaque fichier. Cf. issue #2.
2019-02-08Cohérence des sauts de ligne dans les entêtesKévin Le Gouguec
Deux lignes vides avant le #endif, sauf pour parameters.h et constants.h qui ne contiennent que des directives de préprocesseur.
2019-02-05Renommage de ae-common.h en lilliput-ae-utils.hKévin Le Gouguec
2019-02-05Renommage des entêtes de constantesKévin Le Gouguec
Aucune idée de pourquoi j'avais insisté pour nommer les deux "parameters" plutôt que de distinguer les constantes des paramètres. Peut-être par souci de compatibilité avec FELICS, qui utilise constants.h. 🤷
2019-02-05Mise en commun des sources à l'aide de liens symboliquesKévin Le Gouguec
2019-02-05Changement de l'implémentation de référenceKévin Le Gouguec
2019-02-04Retouches sur M₃ et M₄Kévin Le Gouguec
Ça me chiffonne de mettre deux instructions. En même temps, le cast me chiffonne aussi, donc je reviendrai peut-être sur cette décision… "x & 0x1f" a été remplacé par "(x<<3) >> 3" parce que c'est ce qu'un lecteur qui déroulerait l'expression de M₃ trouverait, et aussi parce que les compilateurs sont de toute façon suffisamment malins pour traduire le tout en un AND.
2019-02-04Implémentation de M₄Kévin Le Gouguec
2019-02-04Implémentation de M₃Kévin Le Gouguec
2019-02-01Implémentation de M₂Kévin Le Gouguec
2019-02-01Implémentation de M₁Kévin Le Gouguec
2019-02-01Ajout d'une implémentation supplémentaireKévin Le Gouguec
Cette implémentation utilisera les matrices M², M³, MR² et MR³ telles qu'exprimées dans la spécification, comme add_tabulatedtweakey ; en revanche, les matrices 8×8 M₁, M₂, M₃ et M₄ seront codées par des expressions booléennes (XORs et décalages) qui seront présentées dans la section "implémentation" du papier.
2018-12-17Organisation des différentes implémentationsKévin Le Gouguec
Au passage, officialisation de la version "i applications successives de M pour calculer Mⁱ" du key schedule.
2018-12-12Ajout d'une version alternative du key scheduleKévin Le Gouguec
Dans cette version, les multiplications par Mⁱ (resp. MRⁱ) sont faites en appliquant M (resp. MR) i fois, plutôt qu'en utilisant les expressions données dans la spécification.
2018-12-12Reformatage du code de référenceKévin Le Gouguec
Pour que la comparaison avec la spécification soit plus évidente.
2018-12-11Dépliage de la séquence induite par M₄ pour MR³Kévin Le Gouguec
2018-12-11Renommage des séquencesKévin Le Gouguec
En fait les séquences marchent dans un sens comme dans l'autre. ✨ MathéMagie ✨