Vidensgrundlag At tale med folk
Kvantebestandig kryptering
Private beskeder og gruppechat mellem Nymchat-brugere kan krypteres så at optagelse af dem i dag ikke køber en angriber noget, selv når kvantecomputere ankommer.
Denne side er maskinoversat for nemheds skyld. Den engelske original er den version, der gælder.
Problemet det løser
Almindelig Nostr-kryptering — NIP-44, som er hvad private beskeder og gruppechat er bygget på — har to halvdele. Den halvdel, der forvrænger faktisk teksten (ChaCha20, HMAC-SHA256, HKDF) holder fint mod et kvante computer. Den halvdel, der er enig om nøglen, gør det ikke.
Denne nøgleaftale er den elliptiske kurve Diffie-Hellman på secp256k1, den samme matematik som Bitcoin bruger. Shors algoritme løser det direkte. Enhver, der kører det mod en offentlig nøgle, genopretter privat nøgle, og med den enhver delt hemmelighed, som den nøgle nogensinde har produceret.
Dette er ikke et problem, der starter, når kvantecomputere ankommer. En modstander med nok opbevaring kan optage krypteret trafik i dag, sæt dig på den og dekrypter den år senere. Alt, hvad du sender nu, som stadig betyder noget dengang, er allerede afsløret. Det er det specifikke angribe denne funktion nederlag.
Hvordan det virker
Nymchat efterlader NIP-44-meddelelsesformatet helt alene. Den nøgleaftale, den allerede bruger, er uberørt; en anden, uafhængig er tilføjet omkring det.
- standarden secp256k1 ECDH, nøjagtig som før;
- ML-KEM-768, post-kvantealgoritmen NIST standardiseret som FIPS 203. Dens sikkerhed hviler på gitterproblemer, som Shors algoritme ikke berører.
De to er Lækkert, ikke blandetBudskabet er krypteret med NIP-44 præcis som det altid var, og den færdige kryptertekst er derefter forseglet en anden gang inde i det post-kvante lag – ChaCha20-Poly1305, nøglet fra den delte ML-KEM-hemmelighed.Sendersnøglen, modtagerens nøgle, encapsulationskrypterteksten og modtagerens ML-KEM-nøgle er bundet ind i den derivation som kontekst, så et lag ikke kan løftes fra den ene udveksling og afspilles på den anden.
En kombinator som X-Wing eller Signal's PQXDH blander begge hemmeligheder i én nøgle i stedet. Nymchat gør det ikke, og årsagen er praktisk snarere end kryptografisk: blanding har brug for den rå ECDH-udgang, og en browserudvidelse eller fjernsigner vil aldrig give det tilbage - det returnerer en færdig kryptertekst, hvilket er hele punktet for at holde nøglen, hvor appen ikke kan nå den.
Den vigtige egenskab er den samme på begge måder: resultatet er Mindst lige så stærk som den stærke halvdelHvis gitterkryptering viser sig at være svagere end håbet, bryder ML-KEM kun det ydre lag og efterlader dagens NIP-44 under. Hvis secp256k1 falder til en kvantecomputer, åbner det indre lag, men det ydre ikke.
Hver besked får en frisk post-kvanteudveksling, så gendannelse af én beskeds nøgle afslører intet om de andre.
Den post-kvante halvdel har brug for en nøgle af sig selv, og hvor den nøgle kommer fra, er det, der bestemmer, om hele ting er værd noget. ikke Arbejdet ud af din nsecEn kvantecomputer, der bryder den klassiske halvdel, genopretter din
nsec fra din offentlige nøgle, og alt, der stammer fra nsec ved en offentliggjort formel kommer ud med det - to låse åbnes af en pause. Postkvantekode for hver konto, én gang, fra tilfældige bytes, som ingen offentlig værdi afslører. nympq1… og sidder ved siden af dig nsec Det er ikke en adgangskode og ikke en anden login: det er nøglemateriale, du kan gemme, præcis som nsec.
Der er ikke noget at tænde på
Dette er ikke en indstilling. Post-kvantekryptering er simpelthen, hvordan Nymchat taler med Nymchat på samme måde som almindelig kryptering er, hvordan den taler med alt andet. Det gælder automatisk for hver privat besked og gruppechat med en anden Nymchat-bruger.
Indstillinger › Privatliv & Sikkerhed viser, om det er aktivt, og hvor mange af dine kontakter det når i øjeblikket, men kun som information - der er ingen switch.
En browser-udvidelse (NIP-07) eller fjernsigner (NIP-46) login giver aldrig din identitetsnøgle til appen, hvilket er hele pointen med at bruge en - og det behøver ikke. De to halvdele af krypteringen holdes adskilt: din signer gør den del, den altid har gjort, og appen gør den post-kvante del med din gendannelseskode, som den holder direkte. udvidelse og fjernsigner login er almindelige deltagere i begge retninger.
Intet, du allerede har, påvirkes.Hver meddelelse i din historie forbliver læsbar på alle enheder med intet andet end din nsec, præcis som før, og forbliver på den måde for livet af kontoen. nympq1… Genopretningskode er det kvantemodstandsdygtige materiale, der er skrevet fra nu af: nye meddelelser, og de synkroniserede indstillinger og arkiv, der rejser med dem.
Så en enhed skal holde den kode, før den kan åbne dem, og tilføje en enhed nu tager et ekstra skridt. nympq1…
Det er én gang pr. enhed, ikke én gang pr. login. Det trin er ikke friktion, vi ikke kunne fjerne: en kode, der kunne ankomme på en ny enhed af sig selv, ville have at rejse der inde i en almindelig besked, og det budskab er præcis, hvad angriberen denne funktion eksisterer for at stoppe er optagelse.
App’en genererer den nympq1… kode for dig, så der er intet at vælge og intet at opfinde. at se det: tryk på din nym for at åbne Se eller redigér Nym's detaljerSå
Oplev denne nym's private nøgle og gendannelseskodeDen ligger lige under din nsecDu behøver aldrig at tænke på det indtil den dag du tilføjer en anden enhed.
Den fortsætter med at læse alt skrevet under den ældre kryptering og fortsætter med at sende normalt, og når du linker den, går den tilbage og åbner de kvante-resistente beskeder, den ikke kunne læse før.
En anden enhed har brug for to ting: en nuværende version af appen, og
nympq1… En ældre build fortsætter med at arbejde – den bliver ikke afskåret – men den kan ikke læse det nuværende format, så mens den stadig er på kontoen, falder de kopier, du holder for dig selv, tilbage til den ældre, som den kan. En opdateret enhed, der ikke er blevet koblet endnu, læser din gamle historie og beder om koden.
Hvem du får det med
Begge parter har brug for det. Hver Nymchat-klient offentliggør en lille underskrevet, udløbende meddelelse, der siger det, og inkluderer sin post-quantum-nøgle, når den har en. At holde en gyldig meddelelse for nogen er, hvad der gør appen bruge den stærkere udveksling med dem. Der er ingen forhandling at blande sig i: enten nøglen er der eller den er ikke, og fordi meddelelsen er underskrevet af dens forfatter, skal en erstatningsnøgle forfalskes snarere end blot serveres.
Hvad en angriber, der kontrollerer en relæ kan det er at tilbageholde meddelelsen, så afsenderen aldrig ser en nøgle og falder tilbage til almindelig kryptering. Det er værd at sige klart. Det koster post-kvantebeskyttelse for disse meddelelser; det kan ikke gøre en ulæselig, og det kan ikke få dig til at acceptere en nøgle, der ikke er din.
Disse meddelelser varer en uge og opdaterer sig dagligt, mens du bruger appen. Hvis du er væk længere end det, forsvinder dine meddelelser, og du bliver læst som en almindelig Nostr-klient i et stykke tid: meddelelser, der sendes til dig i det mellemrum, krypteres på den normale måde i stedet for den kvantebestandige måde. De ankommer stadig, og du kan stadig læse dem - og intet, du modtog tidligere, påvirkes.
Alle andre bliver ved med at arbejde præcis som før. Bitchat brugere og enhver anden Nostr-klient modtager standard NIP-17Intet går i stykker, når du sender en besked til en person uden for Nymchat.
En post-kvante besked erstatter standarden i stedet for at blive sendt ved siden af den. At sende begge ville være meningsløst: en angriber ville simpelthen bryde den svagere kopi.
De kopier, der er adresseret til du få det også - den, dine andre enheder læser, den arkiv bag det, og dine synkroniserede indstillinger, som rejser samme vej og bærer dine samtaleliste, dine gruppenøgler og din beskedhistorik. Efterlader nogen af dem på det gamle kryptering ville have gjort dem til den svageste ting, du gemmer: læsbare af alle, der går i stykker nutidens kryptografi, uanset hvor omhyggeligt selve beskederne blev forseglet.
Forbliver læsbar af Bitchat
Bitchat kan ikke læse Nymchats beskedformat, så historisk har Nymchat sendt en anden kopi af hver besked i Bitchats format til alle, der måske bruger det - som for nogen du aldrig havde hørt fra, mente alle.
Meddelelsen ovenfor gør det gætte unødvendigt. Hvis nogen har udgivet en, er de det kører Nymchat, så Bitchat-kopien slettes, og kun den stærkere besked sendes. Hvis de ikke har, har intet ændret sig: de modtager stadig begge formater, præcis som før, så intet du sender kan blive ulæselig, fordi appen gættede forkert om, hvilken klient nogen bruger.
Ligesom selve krypteringen er dette automatisk og har ingen indstilling.
Nymchat kunne udlede, hvem der kører hvad ud fra offentlig kanalaktivitet, og det ville opdage mennesker før. Men den slutning er indimellem forkert, og at være forkert her betyder at sende en besked til nogen, kan deres app ikke åbne, uden fejl og uden genforsøg. En udgivet meddelelsen er underskrevet af dens forfatter og kan ikke forfalskes, så den bruges i stedet.
I gruppechat
Gruppemeddelelser er allerede krypteret separat for hvert medlem, så en gruppe kan blande begge slags frit - medlemmer, hvis klienter understøtter det, får den stærkere kryptering, resten får standard én, og gruppen fungerer normalt begge veje.
På grund af det er en gruppemeddelelse kun markeret som kvanteresistent når hver medlem modtog det på den måde. Hvis selv en kopi brugte standardudvekslingen, bærer denne kopi det samme besked, så beskeden som helhed er kun lige så beskyttet som dens svageste kopi. Appen siger "kvantebestandig til 8 ud af 10 medlemmer" i stedet for at runde op.
Gruppechats beholder også deres roterende engangstaster, som skjuler, hvem der er i en gruppe fra alle, der ser en stafet. Denne beskyttelse er upåvirket og fungerer præcis, som den gjorde.
Læser mærket
Hver privat besked og gruppe besked bærer en lille skjold Tapping enten mark forklarer, hvad det viser.
| Mærke | Mening |
|---|---|
| Hængelås | Hvem sendte den - om signaturen matcher den påståede forfatter. |
| Skjold | Begge sider holdt en post-quantum kode af deres egen, og den hybrid udveksling blev brugt for hver kopi af denne besked. |
| Stiplet skjold | Delvis kvantemodstandsdygtig - en gruppe besked, kun nogle medlemmer modtog en beskyttet kopi af. Fordi de andre bærer den samme tekst, behandle meddelelsen som konventionelt krypteret som helhed. |
| Struck-through skjold | Standard NIP-44-kryptering - stadig end-to-end krypteret, og stadig ulæselige for nogen end deltagerne i dag. |
| Intet skjold | Offentlige kanalindlæg kan læses på relæet efter design, så der anvendes ingen krypteringsmærke. |
Et manglende mærke ville være tvetydigt - det kunne ligeledes betyde “ikke kvante-resistent”, “denne opbygning er for gammel” eller “indikatoren er brudt” - og en sikkerhedsindikator, der ikke kan skelnes fra en brudt en, fortæller dig ikke noget.
Det sidder ved siden af låget i stedet for at erstatte det, fordi de to besvarer forskellige spørgsmål, og en meddelelse kan være den ene uden den anden - kvantemodstandsdygtig, men fra en uverificeret afsender, eller verificeret, men konventionelt krypteret.
Ældre beskeder holder skjoldet permanent. Alt, der blev sendt, før begge sider var på en kvantemodstandsdygtig opbygning, blev forseglet med den konventionelle udveksling, og at krypteringstekst allerede eksisterer på relæerne - det kan ikke genforsegles efter faktum.
Hvad det ikke gør
Dette beskytter indhold af dine beskeder. Det gør ikke alle dele af Nostr kvantesikker, og det er værd at være præcis omkring forskellen.
- Signaturer er stadig secp256k1. Nostr identiteter tegn med Schnorr på samme kurve. En modstander, der allerede havde en fungerende kvantecomputer, kunne smede en signatur og efterligne nogen i realtid. Hvad hybridudvekslingen stopper, er at læse registreret trafik - fortrolighed, ikke autentificering.
- Der er ingen fremadrettede hemmeligheder. Begge nøgler er langvarige: NIP-44 stammer sin nøgle fra din
nsec, og det post-kvante lag indkapsles til ML-KEM-nøglen bag dinnympq1…Hver meddelelse får en frisk indkapsling, så en meddelelses nøgle ikke åbner den næste - men den, der ender med at holde disse langsigtede nøgler, kan læse alt, hvad de nogensinde har optaget, ikke kun hvad der kom efter. Udløbet af beskeder reducere, og det er derfor denne funktion er rettet mod høst-nu-decrypt-senere snarere end på en nøgle, der bliver taget. - Metadata er uændret. En stafet ser stadig, at en begivenhed var rettet til en nøgle, og nogenlunde hvornår. Det varetages af gaveindpakning og engangsnøgler, ikke af dette.
- Bluetooth mesh er ikke dækket. En besked, der blev sendt af Mesh rejser inden for en Noise XX session, som er stærk, nuværende kryptering, men en klassisk nøgleudveksling - så det ikke bærer det post-kvante lag, selv mellem to Nymchat brugere. Skiltet afspejler dette: en meddelelse leveret over nettet er ikke mærket kvante-resistent.
- Din genopretningskode er en anden ting at holde. Det begynder med
nympq1Du vil finde det i Din Nyms detaljerPå samme side som dinnsec- tryk på din nym, så “Offentliggør denne nym's private nøgle og gendannelseskode”.nsecpå egen hånd genopbygger ikke din post-quantum-nøgle - det er præcis derfor det virker - så hvis ingen enhed holder den kode, og du ikke har nogen kopi af det, kan det, der blev forseglet til det, ikke åbnes igen.nsec. - Det kan ikke beskytte, hvad den anden side gør. En modtager kan stadig tage et screenshot, kopier eller gem en besked.
Dette er den samme position, som Signal indtager med sin egen post-kvanteopgradering: fix nøgleudvekslingen nu, fordi det er den del, en angriber kan handle på med tilbagevirkende kraft og behandle signaturer som en separat problem for, hvornår standarderne indhenter.
Kontrol af arbejdet
ML-KEM-implementeringen testes mod den officielle Test vektorer NIST offentliggør for FIPS 203Web-appen og mobilappen holdes desuden til et fælles sæt af testvektorer, hvilket er, hvad der garanterer en besked skrevet af den ene kan læses af den anden.
Begge er Åbne kilder under AGPL-3.0, og webapps builds er reproducerbare – se verificering af en build.
Gå dybere ind: Post-Quantum nøgleaftale i Nymchat - en teknisk whitepaper om, hvordan ML-KEM-nøglen distribueres uden et katalog, den nøjagtige konstruktion, der kombinerer de to nøgleudvekslinger, og de designs, der blev afvist.