
Strumento di crittografia post-quantistica (QUESTO REPOSITORY È SOLO UNO SPECCHIO DI QUELLO PRINCIPALE, PER FAVORE NON SEGNALARE BUG QUI)
Lo strumento di crittografia post-quantistica.
Codecrypt attualmente non è più mantenuto, anche se lo uso ancora con successo. Se sei interessato a svilupparlo/mantenerlo, contattami.
Questo è un programma unix simile a GnuPG per cifratura e firma che usa solo algoritmi resistenti ai computer quantistici:
Codecrypt è software libero. Il codice è concesso in licenza secondo i termini della LGPL3, nella buona speranza che ciò renda più facili le combinazioni con altri strumenti.
Vai a leggere http://pqcrypto.org/
apt-get install codecryptWrapper linguistici:
C'è una pagina di manuale completa, in stile UNIX, fornita con il pacchetto. Puoi consultarla online qui: http://e-x-a.org/codecrypt/ccr.1.html
Per raggiungere l'obiettivo dichiarato, codecrypt usa molti primitive crittografiche (tradizionali, ma "sicure contro i quantistici"). Le scelte dei primitivi sono state basate su facile verificabilità del progetto, semplicità e sicurezza fornita.
Il repo git di codecrypt contiene doc/papers con un mucchio non ordinato di
articoli accademici e slide su argomenti rilevanti.
Cifrari a flusso usati:
doc/nums del repo.CRHF usati:
Algoritmi di firma:
Algoritmi di cifratura:
Avvertenze:
La crittografia non è pensata per l'uso "online", perché alcuni algoritmi (specialmente la decodifica MDPC) sono (leggermente) vulnerabili ad attacchi a tempo.
Tutto è pensato per funzionare più o meno come GnuPG, ma con un buon margine di semplicità. Giocherelliamo con dati casuali!
ccr -g help
ccr -g sig --name "John Doe" # la tua chiave di firma
ccr -g enc --name "John Doe" # la tua chiave di cifratura
ccr -K #guarda le chiavi generate
ccr -k
ccr -p -a -o my_pubkeys.asc -F Doe # esporta le tue chiavi pubbliche per gli amici
#(ora dovresti scambiare le chiavi pubbliche con gli amici)
#guarda cosa ci hanno mandato, eventualmente verifica le impronte
ccr -inaf < friends_pubkeys.asc
#importa la chiave di Frank e rinominala
ccr -ia -R friends_pubkeys.asc --name "Friendly Frank"
#invia un bel messaggio a Frank (puoi anche specificarlo con @12345 keyid)
ccr -se -r Frank < Document.doc > Message_to_frank.ccr
#ricevi una risposta
ccr -dv -o Decrypted_verified_reply.doc <Reply_from_frank.ccr
#rinomina le chiavi degli altri
ccr -m Frank -N "Unfriendly Frank"
#ed elimina le chiavi pubbliche di chiunque sia Unfriendly
ccr -x Unfri
#crea un file di hash da un file grande
ccr -sS hashfile.ccr < big_data.iso
#verifica il file di hash
ccr -vS hashfile.ccr < the_same_big_data.iso
#crea una chiave simmetrica (armor ascii) e cifra un file grande
ccr -g sha256,chacha20 -aS symkey.asc
ccr -eaS symkey.asc -R big_data.iso -o big_data_encrypted.iso
#decifra un file grande
ccr -daS symkey.asc <big_data_encrypted.iso >big_data.iso
#proteggi con password tutte le tue chiavi private
ccr -L
#proteggi una chiave simmetrica usando un'altra chiave simmetrica
ccr -L -S symkey1 -w symkey2
#proteggi con password symkey2 con un cipher personalizzato
ccr -L -S symkey2 -w @xsynd,cube512
Per completezza aggiungo qui l'elenco di tutte le opzioni (disponibile anche da
ccr --help)
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
Codecrypt mangia dati. Usalo con cautela. Leggi il manuale F.
L'autore è un crittografo autodidatta.