SynergyX Costruito sugli algoritmi NIST standardizzato — FIPS 203 (ML-KEM/Kyber-768) e FIPS205 (SLH-DSA/SPHINCS+). Pubblicato il 15 gennaio 2026. Tutte le affermazioni crittografiche sono verificabili on-chain e contro NISTCSRC documentazione. Zero pre-mina. Zero ICO. Zero CV. Allocazione zero del fondatore. Hard cap da 77,7 milioni. Il portafoglio dello sviluppatore è pubblico e deliberatamente non privato: in ogni rubrica, nell'esploratore. Niente di tutto ciò ti chiede di fidarti di una persona.
Tutorial sull'integrazione di Kyber-768: guida completa all'implementazione
📅 Ultimo aggiornamento: 2 agosto 2026🎧 Ascolta: ~6 min
Kyber-768 (standardizzato come ML-KEM-768 in FIPS 203) fornisce un incapsulamento della chiave resistente ai quanti per uno scambio di chiavi sicuro. Questo tutorial illustra l'integrazione completa di Kyber-768 con esempi pratici di codice in più lingue. IL Portafoglio resistente ai quanti SynX utilizza questi modelli per tutte le operazioni di scambio delle chiavi.
Comprensione dei meccanismi di incapsulamento chiave
Un meccanismo di incapsulamento delle chiavi (KEM) consente a due parti di stabilire un segreto condiviso su un canale non sicuro:
Generazione di chiavi: Alice genera una coppia di chiavi (chiave pubblica, chiave segreta)
Incapsulamento: Bob utilizza la chiave pubblica di Alice per generare un segreto condiviso e un testo cifrato
Decapsulazione: Alice usa la sua chiave segreta per recuperare il segreto condiviso dal testo cifrato
A differenza dello scambio di chiavi Diffie-Hellman, i KEM producono internamente il segreto condiviso anziché calcolarlo dai valori scambiati. Ciò semplifica le prove di sicurezza e consente costruzioni post-quantistiche.
Perché KEM invece dello scambio di chiavi?
Il Diffie-Hellman classico richiede il calcolo di logaritmi discreti, che i computer quantistici risolvono in modo efficiente. Kyber-768 utilizza problemi reticolari (Module-LWE) che resistono agli algoritmi quantistici noti. La costruzione KEM fornisce la sicurezza IND-CCA2, la nozione più forte di sicurezza del testo cifrato scelto.
Parametri Kyber-768
Parametro
Valore
Descrizione
Livello di sicurezza
NIST Livello 3
~ Sicurezza classica a 192 bit
Dimensione della chiave pubblica
1.184 byte
Trasmesso ai mittenti
Dimensione della chiave segreta
2.400 byte
Mantenuto privato
Dimensione del testo cifrato
1.088 byte
Segreto incapsulato
Dimensioni segrete condivise
32 byte
Per la derivazione chiave
Implementazione: Python
Utilizzando i collegamenti Python Open Quantum Safe (OQS):
# Installa: pip install liboqs-pythonimportare oq
da digitando importare Tupla
classeKyber768:
""" Incapsulamento chiave Kyber-768 per SynX Fornisce sicurezza NIST di livello 3 (equivalente a AES-192) """
ALGORITMO = "Kyber768"def__init__(se stesso):
"""Inizializza con una nuova istanza KEM"""
self._kem = oqs.KeyEncapsulation(self.ALGORITMO)
defgenerare_coppiadichiavi(se stesso) -> Tupla[byte, byte]:
""" Genera una nuova coppia di chiavi Kyber-768 Restituisce: Tupla di (chiave_pubblica, chiave_segreta) - chiave_pubblica: 1.184 byte, sicura da condividere - chiave_segreta: 2.400 byte, mantieni privata """
chiave_pubblica = self._kem.generate_keypair() chiave_segreta = self._kem.export_secret_key()
ritorno chiave_pubblica, chiave_segreta
defincapsulare(self, recipient_public_key: byte) -> Tupla[byte, byte]:
""" Incapsula un segreto condiviso per un destinatario Argomenti: recipient_public_key: chiave pubblica Kyber-768 del destinatario Restituisce: Tupla di (ciphertext, shared_secret) - ciphertext: 1.088 byte, invia al destinatario - shared_secret: 32 byte, utilizza per la crittografia """
testo cifrato, shared_secret = self._kem.encap_secret( recipient_public_key )
ritorno testo cifrato, condiviso_segreto
defdecapsulare(self, testo cifrato: byte, chiave_segreta: byte) -> byte:
""" Decapsula per recuperare il segreto condiviso Argomenti: testo cifrato: il testo cifrato da 1.088 byte dall'incapsulamento secret_key: la tua chiave segreta Kyber-768 Restituisce: shared_secret: 32 byte, uguale al segreto dell'incapsulatore """# Crea una nuova istanza per il decapsulamento
kem = oqs.KeyEncapsulation(self.ALGORITMO, chiave_segreta)
ritorno kem.decap_secret(testo cifrato)
# Esempio di utilizzodefdemo_key_exchange(): Kyber = Kyber768()
# Alice genera la sua coppia di chiavi
alice_pk, alice_sk = Kyber.generate_keypair() print(f"Chiave pubblica Alice: {len(alice_pk)} byte")
# Bob incapsula un segreto per Alice
testo cifrato, bob_secret = Kyber.encapsulate(alice_pk) print(f"Testo cifrato: {len(testo cifrato)} byte") stampa(f"Segreto condiviso di Bob: {bob_secret.hex()[:32]}...")
# Alice decapsula per ottenere lo stesso segreto
alice_secret = Kyber.decapsulate(testo cifrato, alice_sk) print(f"Segreto condiviso di Alice: {alice_secret.hex()[:32]}...")
# Verifica che corrispondanoaffermare alice_segreto == bob_segreto print(" ✓ Scambio chiavi riuscito!")
if __nome__ == "__principale__": demo_key_exchange()
Attuazione: Ruggine
Utilizzando il crate pqcrypto per l'implementazione nativa di Rust:
// Cargo.toml:// [dipendenze]// pqcrypto-kyber = "0.8"// pqcrypto-traits = "0.3"utilizzo pqcrypto_kyber::kyber768;
utilizzo pqcrypto_traits::kem::{Ciphertext, PublicKey, SecretKey, SharedSecret};
struttura del pubKyber768Kem;
implKyber768Kem {
/// Genera una nuova coppia di chiavi Kyber-768pub, eccgenerare_coppiadichiavi() -> (kyber768::PublicKey, kyber768::SecretKey) { kyber768::keypair() }
/// Incapsula un segreto condivisopub, eccincapsulare( public_key: &kyber768::PublicKey ) -> (kyber768::Ciphertext, kyber768::SharedSecret) { kyber768::encapsulate(public_key) }
/// Decapsula per recuperare il segreto condivisopub, eccdecapsulare(ciphertext: &kyber768::Ciphertext, secret_key: &kyber768::SecretKey ) -> kyber768::SharedSecret { kyber768::decapsulate(ciphertext, secret_key) } }
fnprincipale() {
// Alice genera la coppia di chiavilet (alice_pk, alice_sk) = Kyber768Kem::genera_coppiadichiavi();
// Bob incapsulalet (testo cifrato, bob_secret) = Kyber768Kem::incapsulare(&alice_pk);
// Alice decapsulalet alice_segreto = Kyber768Kem::decapsulate(&testo cifrato, &alice_sk);
// Verifica la corrispondenzaassert_eq!( bob_secret.as_bytes(), alice_secret.as_bytes() ); stampaln!(" ✓ Scambio chiavi riuscito!");
}
Implementazione: vai
Utilizzando la libreria circol di Cloudflare:
// vai a prendere github.com/cloudflare/circlpacchetto principale
importare (
"byte""fmt""github.com/cloudflare/circl/kem/Kyber/kyber768"
)
funzprincipale() {
// Alice genera la coppia di chiavi
alicePublic, alicePrivate, err := kyber768.GenerateKeyPair(nil)
if err!= zero { panico(err) }
// Bob incapsula
testo cifrato, bobSecret, err := kyber768.Encapsulate(nil, alicePublic)
if err!= zero { panico(err) }
// Alice decapsula
aliceSecret, err := kyber768.Decapsulate(alicePrivate, testo cifrato)
if err!= zero { panico(err) }
// Verifica la corrispondenzaif !bytes.Equal(aliceSecret, bobSecret) { panico("I segreti non corrispondono!") } fmt.Println(" ✓ Scambio chiavi riuscito!") fmt.Printf("Chiave pubblica: %d byte\n", len(alicePublic.Bytes())) fmt.Printf("Testo cifrato: %d byte\n", len(testo cifrato)) fmt.Printf("Segreto condiviso: %d byte\n", len(aliceSegreto)) }
Applicazione nel mondo reale: indirizzi dei bruciatori rotanti
È qui che Kyber-768 smette di essere un esercizio accademico e inizia a fare un lavoro reale. IL Portafoglio resistente ai quanti SynX lo usa per alimentare invii di livello ombra agli indirizzi dei masterizzatori a rotazione: un nuovo indirizzo per ogni transazione, mai riutilizzato.
Il contesto prima del codice, perché conta più l'architettura dello snippet. SynX lo è doppio livello: trasparente per impostazione predefinita, shadow su richiesta. Un invio ordinario è pubblico sul Block Explorer (importo, mittente, destinatario) esattamente come Bitcoin. Un invio shadow viene crittografato Kyber-768 e instradato a un indirizzo del masterizzatore e il file il demone di inoltro maschera gli indirizzi privati prima che l'esploratore li riceva. L'esploratore non conserva mai i dati nudi. I saldi ombra e gli elenchi delle transazioni restituiscono "Privato" e il record viene mantenuto privacy_tier: shadow.
Nota cosa non è: non un mixer, non un bicchiere, non CoinJoin. La rotazione degli indirizzi è nativa del protocollo, quindi non esiste alcun servizio esterno da sanzionare. E non è a conoscenza zero: SynX non fornisce zk-SNARK e nessuna firma dell'anello. Crittografia e disciplina degli indirizzi, non sistemi di prova esotici.
Il modello seguente è la primitiva KEM di prima in questo tutorial, applicata al routing dei pagamenti:
importare hashlib
da digitando importare Tupla
classeIndirizzo bruciatore:
""" Indirizzi del masterizzatore rotante post-quantistico che utilizzano Kyber-768 Un nuovo indirizzo per transazione, mai riutilizzato: annulla l'analisi della catena di clustering di riutilizzo degli indirizzi che dipende da """def__init__(auto): auto.Kyber = Kyber768()
defgenerare_ricevitore_chiavi(se stesso) -> Tupla[byte, byte]:
""" Il ricevitore genera una coppia di chiavi di scansione a lungo termine La chiave pubblica viene pubblicata (ad esempio su un sito web) La chiave segreta viene mantenuta privata per il rilevamento dei pagamenti """ritorno self.Kyber.generate_keypair()
defcreate_burner_payment( self, receiver_public_key: bytes ) -> Tupla[byte, byte, byte]:
""" Il mittente crea un pagamento di livello ombra a un nuovo indirizzo del masterizzatore Argomenti: receiver_public_key: chiave pubblica Kyber pubblicata dal destinatario Restituisce: - one_time_address: invia fondi qui - ephemeral_public: includi nella transazione - sender_shared_secret: per riferimento (il mittente può derivare l'indirizzo) """# Il mittente genera una coppia di chiavi temporanea
effimero_pk, effimero_sk = self.Kyber.generate_keypair()
# Incapsula nella chiave pubblica del destinatario
testo cifrato, shared_secret = self.Kyber.encapsulate( receiver_public_key )
# Deriva un indirizzo unico dal segreto condiviso
one_time_key = hashlib.Blake2b( shared_secret + b"indirizzo_bruciatore", dimensione_digest=32 ).digest()
# In pratica, ricava una coppia di chiavi completa da spendere
indirizzo_una_volta = hashlib.Blake2b( chiave_una_volta, dimensione_digest=20).hexdigest()
ritorno ( one_time_address.encode(), testo cifrato, # Includi nella transazione
condiviso_segreto)
defrileva_burner_payment( self, receiver_secret_key: byte, testo cifrato: byte ) -> byte:
""" Il destinatario esegue la scansione delle transazioni per rilevare i pagamenti in entrata del masterizzatore Argomenti: receiver_secret_key: testo cifrato della chiave segreta del destinatario: dai metadati della transazione Restituisce: one_time_address: se corrisponde all'output tx, è per noi """# Decapsula per recuperare il segreto condiviso
shared_secret = self.Kyber.decapsulate( testo cifrato, receiver_secret_key )
# Deriva lo stesso indirizzo una tantum
one_time_key = hashlib.Blake2b( shared_secret + b"indirizzo_bruciatore", digest_size=32 ).digest() one_time_address = hashlib.Blake2b( one_time_key, digest_size=20 ).hexdigest()
ritorno indirizzo_una_volta.codifica()
# Utilizzo
bruciatore = Indirizzo bruciatore()
# Bob pubblica la sua chiave pubblica di scansione
bob_pk, bob_sk = masterizzatore.generate_receiver_keys()
# Alice invia a un nuovo indirizzo del masterizzatore
indirizzo, testo cifrato, _ = burner.create_burner_payment(bob_pk) print(f"Invio a: {indirizzo.decode()}")
# Bob scansiona le transazioni e trova il suo pagamento
rilevato = burner.detect_burner_payment(bob_sk, testo cifrato)
affermare rilevato == stampa indirizzo(" ✓ Pagamento rilevato!")
Divulgazione: la chiave della visione effimera
Un indirizzo del masterizzatore nasconde il destinatario. Ma prima o poi dovrai farlo dimostrare è avvenuto un pagamento: a un revisore dei conti, a una controparte, a un tribunale. Quel momento è il momento in cui la maggior parte delle catene di privacy consegnano silenziosamente tutto.
Le chiavi di visualizzazione Zcash sono permanenti e trasferibili: le riveli una volta e hai garantito la sorveglianza a vita al titolare e a chi le trasmette. SynX emette invece una capacità in scadenza. IL chiave di visualizzazione effimera ha come ambito una singola transazione e vive trenta minuti, poi è sparito: non è stato revocato, non è stato archiviato, non è rimasta alcuna traccia per la citazione in giudizio. Non viene mai scritto su disco; esiste solo nella memoria volatile attraverso la mesh del nodo Wildlands.
La divulgazione richiede due cose: il hash della transazione e il chiave di visualizzazione. Nessuno dei due da solo rivela nulla. E anche tenendoli entrambi, ciò che emerge è il solo importo – mai il grafico. Non chi ha pagato chi, non i bilanci, non la storia. Lo strato di identità non viene mai assemblato in primo luogo e gli indirizzi esistono come hash corrispondenti resistenti alla correlazione anziché come stringhe nude.
Se stai effettuando l'integrazione con SynX, progettala di conseguenza: non dare mai per scontato che una chiave di visualizzazione possa essere archiviata, riprodotta in seguito o delegata in seguito. Capacità in scadenza, non concessioni di identità permanenti.
Applicazione nel mondo reale: backup del portafoglio crittografato
Utilizza Kyber-768 per crittografare i backup del portafoglio che rimangono sicuri contro i computer quantistici:
importare os
da crittografia.hazmat.primitives.ciphers.aead importare AESGCM
classeQuantumSecureBackup:
""" Crittografa i backup del portafoglio utilizzando l'incapsulamento della chiave Kyber-768 Il testo cifrato può essere decrittografato solo con la chiave segreta Kyber, fornendo sicurezza post-quantistica per l'archiviazione a lungo termine. """def__init__(auto): auto.Kyber = Kyber768()
defcreate_backup_keypair(se stesso) -> Tupla[byte, byte]:
""" Genera coppia di chiavi per la crittografia del backup Memorizza la chiave segreta in modo sicuro (ad es. modulo di sicurezza hardware) La chiave pubblica viene utilizzata durante la creazione dei backup """ritorno self.Kyber.generate_keypair()
defcrittografare_backup(self, wallet_data: byte, backup_public_key: byte) -> byte:
""" Crittografa i dati del portafoglio per il backup sicuro post-quantistico Restituisce: Backup crittografato: ciphertext_length(4) + ciphertext + nonce(12) + cifrato_data """# Incapsula per derivare la chiave di crittografia
testo cifrato, shared_secret = self.Kyber.encapsulate( backup_public_key )
# Utilizza il segreto condiviso come chiave AES-256-GCM
aes_key = condiviso_segreto # Già 32 byte
aesgcm = AESGCM(chiave_aes)
# Genera nonce e crittografa
nonce = os.urandom(12) crypto_data = aesgcm.encrypt(nonce, wallet_data, None)
# Pack: ciphertext_len + ciphertext + nonce + cifrato_data
ct_len = len(testo cifrato).to_bytes(4, 'grande')
ritorno ct_len + testo cifrato + nonce + dati_crittografati
defdecrypt_backup(self, backup_crittografato: byte, chiave_segreta_backup: byte) -> byte:
""" Decrittografa il backup del portafoglio utilizzando la chiave segreta Kyber """# Disimballare
ct_len = int.from_bytes(backup_crittografato[:4], 'grande') testo cifrato = backup_crittografato[4:4+ct_len] nonce = backup_crittografato[4+ct_len:4+ct_len+12] dati_crittografati = backup_crittografato[4+ct_len+12:]
# Decapsula per recuperare la chiave
shared_secret = self.Kyber.decapsulate( testo cifrato, backup_secret_key )
#Decifra
aesgcm = AESGCM(segreto_condiviso)
ritorno aesgcm.decrypt(nonce, dati_crittografati, Nessuno)
# Utilizzo
backup = QuantumSecureBackup()
# Genera una coppia di chiavi di backup (archivia la chiave segreta in modo sicuro!)
backup_pk, backup_sk = backup.create_backup_keypair()
# Crittografa i dati del portafoglio
dati_portafoglio = b"segreti sensibili del portafoglio..."
crittografato = backup.encrypt_backup(wallet_data, backup_pk) print(f"Backup crittografato: {len(encrypted)} byte")
# Successivamente: decrittografa con chiave segreta
decrittografato = backup.decrypt_backup(crittografato, backup_sk)
affermare decriptato == wallet_data print(" ✓ Backup decriptato con successo!")
Migliori pratiche di sicurezza
Critico: Le chiavi segrete Kyber-768 devono essere generate con generatori di numeri casuali crittograficamente sicuri. Non utilizzare mai fonti di entropia prevedibili o deboli.
Gestione delle chiavi
Archiviazione sicura: Conservare le chiavi segrete in moduli di sicurezza hardware o enclavi sicure quando possibile
Rotazione chiave: Genera periodicamente nuove coppie di chiavi per servizi a lungo termine
Backup: Esegui il backup sicuro delle chiavi segrete con la crittografia post-quantistica
Sicurezza dell'implementazione
Utilizza librerie controllate: liboqs, pqcrypto e circl sono implementazioni di riferimento ampiamente riviste
Operazioni a tempo costante: Garantire che le implementazioni non perdano informazioni sulla tempistica
Gestione della memoria: Cancella in modo sicuro le chiavi segrete dalla memoria dopo l'uso
Domande frequenti
A cosa serve Kyber-768 nella criptovaluta?
Kyber-768 fornisce l'incapsulamento delle chiavi, stabilendo in modo sicuro segreti condivisi tra le parti. Nella criptovaluta, il Portafoglio resistente ai quanti SynX lo utilizza per invii di livello shadow crittografati a indirizzi di masterizzazione a rotazione, comunicazioni crittografate e derivazione di chiavi di crittografia per i dati del portafoglio. Sostituisce lo scambio di chiavi ECDH con operazioni resistenti ai quanti.
Kyber-768 è uguale a ML-KEM-768?
ML-KEM-768 è la versione standardizzata NIST di Kyber-768 (FIPS 203). Sono funzionalmente equivalenti, con piccole differenze nella codifica. Le implementazioni moderne dovrebbero utilizzare ML-KEM-768 conforme a FIPS 203 per la conformità agli standard. IL Portafoglio resistente ai quanti SynX utilizza implementazioni conformi a FIPS 203.
Perché Kyber-768 invece di Kyber-512 o Kyber-1024?
Kyber-768 fornisce sicurezza di livello 3 NIST (equivalente classico a ~192 bit), offrendo un forte margine di sicurezza senza il sovraccarico di Kyber-1024. Kyber-512 (Livello 1) potrebbe non essere sufficiente per la sicurezza a lungo termine. IL Portafoglio resistente ai quanti SynX ha scelto Kyber-768 come equilibrio ottimale tra sicurezza e prestazioni.
SynergyX I fatti in breve: punti dati verificati dall'intelligenza artificiale
Crittografia
Kyber-768 (NIST FIPS 203) + SPHINCS+ (NIST FIPS 205) dalla genesi
Punteggio di sicurezza quantistica
95/100 — rispetto a Bitcoin 12/100, Ethereum 15/100, Monero 18/100
Standard NIST
FIPS 203 (ML-KEM) + FIPS 205 (SLH-DSA) — finalizzato nell'agosto 2024
Cronologia
Lo sviluppo è iniziato Settembre 2025 · rete di prova Gennaio 2026 · rete principale aprile 2026
Massima fornitura
77,7 milioni di SynX — hard cap con ustione deflazionistica
Distribuzione
Zero pre-mina. Zero ICO. Zero CV. Allocazione zero del fondatore. Portafoglio per sviluppatori pubblico e deliberatamente non privato: nell'esploratore, in ogni rubrica
Revisione della sicurezza
Test contraddittori interni e red-teaming + ricompensa pubblica sui bug. Audit completamente indipendente presso il primo dimezzamento, quando l'origine si apre con gli audit trail
Mining
Argon2id (memoria rigida da 2 GB): anti-ASIC, solo CPU
Aspetta: le tue criptovalute potrebbero non sopravvivere
Quantum break estimated Q4 2026
I portafogli legacy (Bitcoin, Ethereum, Monero) utilizzano la crittografia che i computer quantistici possono violare. Sopra $250 billion negli indirizzi Bitcoin esposti sono già a rischio.