Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
codecrypt — Outil de cryptographie post-quantique (CE DÉPÔT N'EST QU'UN MIROIR DU DÉPÔT PRINCIPAL, VEUILLEZ NE PAS SIGNALER DE BOGUES ICI) | Kitploit
Outils/GitHubGitHub/exaexa/codecrypt
Outils de Chiffrement/DéchiffrementCryptographieProtection de la Vie PrivéeArticles et Recherche
GitHubexaexa/codecrypt

codecrypt

Outil de cryptographie post-quantique (CE DÉPÔT N'EST QU'UN MIROIR DU DÉPÔT PRINCIPAL, VEUILLEZ NE PAS SIGNALER DE BOGUES ICI)

Voir le dépôt
32542il y a 3 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

Codecrypt

L'outil de cryptographie post-quantique.

Codecrypt n'est actuellement plus maintenu, même si je l'utilise toujours avec succès. Si vous êtes intéressé·e par son développement/maintenance, faites-moi signe.

À propos

Ceci est un programme Unix de type GnuPG pour le chiffrement et la signature qui n'utilise que des algorithmes résistants aux ordinateurs quantiques :

  • Cryptosystème de McEliece (variante compacte QC-MDPC) pour le chiffrement
  • Algorithme d'arbre de Merkle à base de hash (variante FMTSeq) pour les signatures numériques

Codecrypt est un logiciel libre. Le code est publié sous les termes de la LGPL3 dans l'espoir que cela facilitera les combinaisons avec d'autres outils.

Pourquoi cela ?

Allez lire http://pqcrypto.org/

Liens

  • page d'info : http://e-x-a.org/codecrypt/
  • téléchargement des paquets : http://e-x-a.org/codecrypt/files/

Paquets des distributions

  • Paquets Gentoo : https://packages.gentoo.org/packages/app-crypt/codecrypt avec l'ebuild actuel généralement disponible sur http://e-x-a.org/codecrypt/files
  • Paquets Debian : apt-get install codecrypt
  • Arch linux : voir https://aur.archlinux.org/packages/codecrypt/
  • Le port Windows est maintenu séparément ici : https://github.com/mike805/codecrypt-win32

Interfaces de langage :

  • Liaisons Python : https://github.com/mike805/codecrypt-python/

Documentation

Une page de manuel complète, typiquement UNIX, est fournie avec le paquet. Vous pouvez la consulter en ligne ici : http://e-x-a.org/codecrypt/ccr.1.html

Aperçu de la cryptographie utilisée

Pour atteindre l'objectif annoncé, codecrypt utilise de nombreuses primitives cryptographiques (traditionnelles, mais « sûres face au quantique »). Le choix des primitives repose sur la facilité d'audit de la conception, la simplicité et la sécurité offerte.

Le dépôt git de codecrypt contient doc/papers avec un tas non trié d'articles académiques et de diapositives sur les sujets pertinents.

Chiffrements de flux utilisés :

  • ChaCha20, le choix recommandé de djb
  • Le chiffrement de flux XSynd comme candidat intéressant et non traditionnel, également fondé sur des hypothèses issues de la théorie des codes ; les NUMS utilisés (il en faut beaucoup) sont expliqués dans le répertoire doc/nums du dépôt.
  • Arcfour pour la simplicité initiale de l'implémentation. Après les récentes attaques statistiques, je ne peux plus recommander l'utilisation d'une quelconque variante de RC4, mais le padding fourni et l'utilisation « hors ligne uniquement » de codecrypt rendent l'usage globalement sûr.

CRHF utilisés :

  • Les variantes de Cubehash ont été sélectionnées pour leur facilité d'implémentation, leur conception vraiment propre, leur assez bonne vitesse et la flexibilité des choix de paramètres. C'est aussi la seule possibilité de hash lorsque la bibliothèque Crypto++ n'est pas liée à codecrypt. Les KeyID sont des hash CUBE256 des clés publiques sérialisées correspondantes.
  • ripemd128 pour les petits hashs
  • tiger192 est utilisé comme alternative à Cubehash pour les hashs de 192 bits
  • Il existe toujours une variante avec SHA-256, SHA-384 ou SHA-512.

Algorithmes de signature :

  • FMTSeq avec de nombreuses possibilités et combinaisons des CRHF susmentionnés
  • Le support de SPHINCS256 est prévu pour la prochaine version

Algorithmes de chiffrement :

  • McEliece MDPC sur matrices quasi-cycliques. L'implémentation utilise quelques astuces pour accélérer la multiplication (plutôt lente) des matrices cycliques (notamment libfftm3 dans cette version). Pour le padding selon le schéma de Fujisaki-Okamoto, l'algorithme nécessite un chiffrement de flux et un CRHF ; les chiffrements et CRHF utilisés sont précisés dans le nom de l'algorithme — par ex. MCEQCMDPC128FO-CUBE256-CHACHA20 signifie que les paramètres sont calibrés pour offrir une sécurité de 128 bits, utilise le hash CUBE256 et le chiffrement de flux ChaCha20.
  • Le McEliece quasi-dyadique a été inclus dans codecrypt en tant qu'algorithme original, mais il est désormais brisé et affiche un message d'avertissement à chaque utilisation.

Mises en garde :

La cryptographie n'est pas destinée à un usage « en ligne », car certains algorithmes (notamment le décodage MDPC) sont (légèrement) vulnérables aux attaques temporelles.

Guide rapide

Tout est conçu pour fonctionner globalement comme GnuPG, mais avec une bonne marge de simplicité. Jouons avec des données aléatoires !

root@kitploit:~
ccr -g help
ccr -g sig --name "John Doe"    # your signature key
ccr -g enc --name "John Doe"    # your encryption key

ccr -K  #watch the generated keys
ccr -k

ccr -p -a -o my_pubkeys.asc -F Doe  # export your pubkeys for friends

#(now you should exchange the pubkeys with friends)

#see what people sent us, possibly check the fingerprints
ccr -inaf < friends_pubkeys.asc

#import Frank's key and rename it
ccr -ia -R friends_pubkeys.asc --name "Friendly Frank"

#send a nice message to Frank (you can also specify him by @12345 keyid)
ccr -se -r Frank < Document.doc > Message_to_frank.ccr

#receive a reply
ccr -dv -o Decrypted_verified_reply.doc <Reply_from_frank.ccr

#rename other's keys
ccr -m Frank -N "Unfriendly Frank"

#and delete pukeys of everyone who's Unfriendly
ccr -x Unfri

#create hashfile from a large file
ccr -sS hashfile.ccr < big_data.iso

#verify the hashfile
ccr -vS hashfile.ccr < the_same_big_data.iso

#create (ascii-armored) symmetric key and encrypt a large file
ccr -g sha256,chacha20 -aS symkey.asc
ccr -eaS symkey.asc -R big_data.iso -o big_data_encrypted.iso

#decrypt a large file
ccr -daS symkey.asc <big_data_encrypted.iso >big_data.iso

#password-protect all your private keys
ccr -L

#protect a symmetric key using another symmetric key
ccr -L -S symkey1 -w symkey2

#password-protect symkey2 with a custom cipher
ccr -L -S symkey2 -w @xsynd,cube512

Référence des options

Par souci d'exhaustivité, je liste ici toutes les options (également disponibles via ccr --help)

root@kitploit:~
Usage: ./ccr [options]

Common options:
 -h, --help     display this help
 -V, --version  display version information
 -T, --test     perform (probably nonexistent) testing/debugging stuff

Global options:
 -R, --in      set input file, default is stdin
 -o, --out     set output file, default is stdout
 -E, --err     the same for stderr
 -a, --armor   use ascii-armored I/O
 -y, --yes     assume that answer is `yes' everytime

Actions:
 -s, --sign     sign a message
 -v, --verify   verify a signed message
 -e, --encrypt  encrypt a message
 -d, --decrypt  decrypt an encrypted message

Action options:
 -r, --recipient    encrypt for given user
 -u, --user         use specified secret key
 -C, --clearsign    work with cleartext signatures
 -b, --detach-sign  specify file with detached signature
 -S, --symmetric    enable symmetric mode of operation where encryption
		    is done using symmetric cipher and signatures are
		    hashes, and specify a filename of symmetric key or hashes

Key management:
 -g, --gen-key        generate keys for specified algorithm
 -g help              list available cryptographic algorithms
 -k, --list           list the contents of keyring
 -K, --list-secret
 -i, --import         import keys
 -I, --import-secret
 -p, --export         export keys
 -P, --export-secret
 -x, --delete         delete matching keys
 -X, --delete-secret
 -m, --rename         rename matching keys
 -M, --rename-secret
 -L, --lock           lock secrets
 -U, --unlock         unlock secrets

Key management options:
 -F, --filter       only work with keys with matching names
 -f, --fingerprint  format full key IDs nicely for human eyes
 -N, --name         specify a new name for renaming or importing
 -n, --no-action    on import, only show what would be imported
 -w, --with-lock    specify the symmetric key for (un)locking the secrets
 -w @SPEC           ask for password and expand it to a symmetric key
                    of type SPEC for (un)locking the secret

Avertissement

Codecrypt dévore les données. Utilisez-le avec prudence. Lisez le manuel F.

L'auteur est un cryptographe autodidacte.

Télécharger l’outil