nofuture.go è un sistema di crittografia post-quantum avanzato che utilizza le librerie liboqs-go
e memguard
per proteggere i dati sensibili.
Per avviare una sessione sicura, nofuture.go
genera una coppia di chiavi Kyber1024-90s utilizzando il Key Encapsulation Mechanism (KEM).
kem := oqs.KeyEncapsulation{} kem.Init("Kyber1024-90s", nil) pubKey, secKey := kem.GenerateKeyPair()
Le chiavi vengono protette con memguard
, impedendo l'accesso da parte di malware o root.
L'ID della sessione può essere trasmesso su canali standard (chat, email) perché non contiene informazioni sensibili. Tuttavia, l'uso di canali cifrati è raccomandato.
Una volta ricevuta la chiave pubblica, il client genera una chiave segreta condivisa usando KEM:
ct, ss := kem.EncapSecretKey(rand.Reader)
Questa chiave viene poi protetta con memguard
per evitare leak di memoria.
I dati vengono cifrati con un HMAC basato su BLAKE2b e una cifratura sicura come XChaCha20-Poly1305.
Alla chiusura, tutte le chiavi e i buffer di memoria vengono distrutti immediatamente con memguard.Purge()
.
nofuture.go is an advanced post-quantum cryptography system using liboqs-go
and memguard
to protect sensitive data.
To start a secure session, nofuture.go
generates a Kyber1024-90s key pair using Key Encapsulation Mechanism (KEM).
kem := oqs.KeyEncapsulation{} kem.Init("Kyber1024-90s", nil) pubKey, secKey := kem.GenerateKeyPair()
Keys are protected with memguard
, preventing access from malware or root.
The session ID can be transmitted over standard channels (chat, email) since it contains no sensitive data. However, encrypted channels are recommended.
After receiving the public key, the client generates a shared secret key using KEM:
ct, ss := kem.EncapSecretKey(rand.Reader)
This key is then protected with memguard
to prevent memory leaks.
Data is encrypted using a BLAKE2b-based HMAC and a secure cipher like XChaCha20-Poly1305.
Upon closing, all keys and memory buffers are immediately destroyed using memguard.Purge()
.