summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-07-05Merge branch 'fix-concatenation'Kévin Le Gouguec
2019-07-05Ajout d'une explication dans le changelogKévin Le Gouguec
2019-07-05Ajout d'indices dans les tracesKévin Le Gouguec
2019-07-05Réécriture des commentaires schématiques sur les tweaksKévin Le Gouguec
2019-07-05Adaptation de l'implémentation PythonKévin Le Gouguec
2019-07-05Adaptation des tests et des tracesKévin Le Gouguec
- mise à jour des vecteurs de test i-128/test-ae-*crypt - affichage des tableaux d'octets par indices croissants
2019-07-05Changement de la concaténation des chaînes de bitsKévin Le Gouguec
L'implémentation précédente n'était pas cohérente. Étant données deux chaînes X et Y de longueur x et y, et Z=X∥Y de longueur z=x+y, - pad10* et la construction des tweaks fonctionnaient selon la logique "indices faibles = LSB", donc Z[0] = Y[0] Z[z-1] = X[x-1] - le découpage de M, C et A en blocs fonctionnait selon la logique "indices faibles = premiers blocs", donc Z[0] = X[0] Z[z-1] = Y[y-1] En conséquence, la façon dont M, C et A étaient paddés n'avait aucun sens, e.g. pour un message M de taille 35, pad10*(M*) donnait : { M[34], M[33], M[32], 0b10000000, 0, … } Les deux seules façons logiques de padder M* sont { M[32], M[33], M[34], 0b10000000, 0, … } ou { M[2], M[1], M[0], 0b10000000, 0, … } Après revue d'autres implémentations de ΘCB3 et SCT-2, j'ai choisi de suivre la convention MSB. En conséquence, quand la spécification dit Z = X∥Y L'implémentation traduira : Z[] = { X[0], … X[x-1], Y[0], … Y[y-1] } Dans la même logique, les compteurs de blocs seront insérés MSB d'abord et paddés en conséquence, e.g. j=0x01020304 ≡ J[] = { 0, …, 0x01, 0x02, 0x03, 0x04 }
2019-07-05Renommage de la version initiale en "v1"Kévin Le Gouguec
Une traduction automatique de la version en nom de dossier crypto_aead transformerait v1.0 en v10, or 1. nos dossiers s'appelaient v1 2. un jour on aura peut-être une version 10 (Le schéma de nommage crypto_aead ouvre la porte a pas mal d'ambiguïtés, de toute façon…)
2019-07-05Ajout d'un script de vérification plus exhaustifKévin Le Gouguec
2019-07-05Correction du patch de traces *pour l'implémentation threshold*Kévin Le Gouguec
🤦
2019-07-05Correction du patch de tracesKévin Le Gouguec
Cassé par b29cc9d. Léger ajustement du Makefile pour que les plantages soient plus simples à comprendre.
2019-07-05Résumé des modifications sur felicsrefKévin Le Gouguec
2019-07-05Simplification du format du changelogKévin Le Gouguec
2019-07-05Utilisation de "size_t" pour l'indexation d'un tableauKévin Le Gouguec
Cf. ef17fe7, surtout par souci d'homogénéité.
2019-07-04Merge branch 'fix-tweakey-m4'Kévin Le Gouguec
2019-07-04Résumé des modifications dans les implémentations C et PythonKévin Le Gouguec
2019-07-04Ajout de squelettes pour les changelogs des autres implémentationsKévin Le Gouguec
2019-07-04Résumé des modifications dans l'implémentation de référenceKévin Le Gouguec
2019-07-04Implémentation de M⁴ à l'aide de sa matriceKévin Le Gouguec
2019-07-04Mise à jour temporaire de l'implémentation PythonKévin Le Gouguec
2019-07-04Mise à jour des patchs de génération de tracesKévin Le Gouguec
2019-07-04Mise à jour de l'implémentation thresholdKévin Le Gouguec
2019-07-04Mise à jour de l'implémentation felicsrefKévin Le Gouguec
2019-07-04Mise à jour de l'implémentation tweakeyloopKévin Le Gouguec
2019-07-04Mise à jour des vecteurs de testKévin Le Gouguec
2019-07-04Ajout de la multiplication M⁴Kévin Le Gouguec
- α₀ devient M - α₁ M² - α₂ M³ - α₃ M⁴ - α₄ M_R - α₅ M_R² - α₆ M_R³
2019-07-04Ajout d'un changelog pour les implémentationsKévin Le Gouguec
2019-07-04Ajout d'un fichier de versionKévin Le Gouguec
L'idée étant que tous les scripts qui génèrent des dossiers au format crypto_aead consultent ce fichier au lieu de coder la version en dur. Un tag git pourrait probablement être utilisé au lieu d'un fichier. À réfléchir.
2019-07-02Réécriture de M_R³ en PythonKévin Le Gouguec
2019-07-02Réécriture de M_R² en PythonKévin Le Gouguec
2019-07-02Réécriture de M_R en PythonKévin Le Gouguec
2019-07-02Réécriture de M³ en PythonKévin Le Gouguec
2019-07-02Parallélisation de la génération des vecteurs PythonKévin Le Gouguec
2019-07-02Réécriture de M et M² en PythonKévin Le Gouguec
Pour que le lien avec la spec saute aux yeux.
2019-07-02Ajustement de la cible "test" du MakefileKévin Le Gouguec
La boucle précédente forçait l'arrêt au premier échec ; avec la nouvelle implémentation, "make -k" itère sur toutes les $(test_variants). Pratique pour afficher tous les vecteurs qui ont changé d'un seul coup…
2019-07-02Correction des dépendances .o → .hKévin Le Gouguec
2019-07-02Homogénéisation de l'espacement du codeKévin Le Gouguec
- 2 lignes entre le dernier #include et le début du code, - 2 lignes avant le #endif final, - pas d'espaces superflus pour LANES_NB (résidu d'alignement avec d'autres variables)
2019-07-01Factorisation de code dans l'implémentation à seuilKévin Le Gouguec
Plus facile à lire, je trouve (pas besoin de se demander "c'est quoi cette division ?" à chaque fois).
2019-06-27Déplacement de l'exemple d'implémentation de S-box dans sp3.1/Kévin Le Gouguec
2019-05-21Mise à jour de la version felicsref par rapport au dépôt sp4Kévin Le Gouguec
Calcul des sous-clés à la volée pendant le chiffrement.
2019-05-21Rajout d'inclusions manquantesKévin Le Gouguec
2019-05-21Dé-duplication de code dans l'implémentation FELICSKévin Le Gouguec
Apparemment les différents gcc de FELICS arrivent encore à comprendre qu'ils peuvent inligner les multiplications ; c'est quand on passe par un tableau de pointeurs de fonction qu'ils baissent les bras.
2019-05-21Réutilisation des multiplications dans l'implémentation FELICSKévin Le Gouguec
Plutôt que d'ajouter -Wno-unused-functin, on pourrait aussi déclarer les multiplications "static inline", ce qui par convention esquive les avertissements sur la non-utilisation.
2019-05-21Réutilisation de tweakey.c dans l'implémentation itérativeKévin Le Gouguec
2019-05-21Réutilisation des multiplications dans l'implémentation à seuilKévin Le Gouguec
2019-05-21Correction de dépendances entre objets et entêtesKévin Le Gouguec
Si e.g. multiplications.h changeait, tweakey.o n'était pas recompilé…
2019-05-21Extraction des multiplications hors de tweakey.cKévin Le Gouguec
De façon à ce que d'autres versions puissent réutiliser l'un ou l'autre.
2019-05-20Inversion de la seconde boucle de la couche linéaireKévin Le Gouguec
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).
2019-05-20Mise à jour du patch de tracesKévin Le Gouguec
2019-05-20Correction du calcul de FjKévin Le Gouguec
Problème introduit par 4aa9eec.