summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
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-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-05Utilisation de "size_t" pour l'indexation d'un tableauKévin Le Gouguec
Cf. ef17fe7, surtout par souci d'homogénéité.
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 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-04Ajout de la multiplication M⁴Kévin Le Gouguec
- α₀ devient M - α₁ M² - α₂ M³ - α₃ M⁴ - α₄ M_R - α₅ M_R² - α₆ M_R³
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-02Réécriture de M et M² en PythonKévin Le Gouguec
Pour que le lien avec la spec saute aux yeux.
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-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-20Correction du calcul de FjKévin Le Gouguec
Problème introduit par 4aa9eec.
2019-05-20Réécriture de l'implémentation des couches non-linéaire et linéaireKévin Le Gouguec
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".
2019-05-16Ajout de traces pour la version thresholdKévin Le Gouguec
Pour aider à l'implémentation VHDL.
2019-05-03Ajustement de la gestion du nonce pour ΘCB3Kévin Le Gouguec
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.
2019-05-03Correction d'un commentaire du mode ΘCB3Kévin Le Gouguec
2019-05-03Correction du mode ΘCB3 quand sizeof(size_t)<8Kévin Le Gouguec
Bug introduit par 3bb63d9.
2019-05-02Utilisation de "size_t" pour l'indexation d'un tableauKévin Le Gouguec
Surtout par souci d'homogénéité.
2019-05-02Homogénéisation de la gestion de l'index de bloc dans les tweaksKévin Le Gouguec
- "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.
2019-03-27Update ↵nist-submission-2019-03-27Gaetan Leplus
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
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 de GaëtanKévin Le Gouguec
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