Pereiti prie turinio
Grįžti į Nymchat

Žinių bazė Kalbėtis su žmonėmis

Kvantims atsparus šifravimas

Privatūs pranešimai ir grupiniai pokalbiai tarp Nymchat vartotojų gali būti užšifruoti kad jų įrašymas šiandien užpuolikui nieko neperka, net kai atkeliauja kvantiniai kompiuteriai.

Problema, kurią ji išsprendžia

Įprastas Nostr šifravimas - NIP-44, kuris yra kas asmenines žinutes ir grupiniai pokalbiai yra pastatyti ant – turi dvi puses. Pusė to iš tikrųjų maišo tekstą (ChaCha20, HMAC-SHA256, HKDF) puikiai atlaiko kvantą kompiuteris. Pusė, kuri susitaria dėl rakto, nesutinka.

Pagrindinis susitarimas yra elipsinė kreivė Diffie-Hellman ant secp256k1, ta pati matematika, kurią naudoja Bitcoin. Šoro algoritmas tai išsprendžia tiesiai. Kiekvienas, kuris paleidžia jį pagal viešąjį raktą, atkuria privatus raktas, o kartu su juo ir kiekviena bendra paslaptis, kurią kada nors sukūrė tas raktas.

Nuimkite derlių dabar, iššifruokite vėliau

Tai nėra problema, kuri prasideda atėjus kvantiniams kompiuteriams. Priešas, turintis pakankamai saugykla gali įrašyti užšifruotą srautą šiandien, atsisėskite ant jo ir po metų iššifruokite. Viskas, ką siunčiate dabar ir kas tada dar svarbu, jau yra atskleista. Tai yra konkretus ataka ši funkcija pralaimi.

Kaip tai veikia

Nymchat palieka NIP-44 pranešimų formatą visiškai atskirai. Pagrindinis susitarimas, kurį jis jau naudoja, yra nepažeistas; prie jo pridedamas antras, nepriklausomas vienas.

  • standartą secp256k1 ECDH, lygiai kaip ir anksčiau;
  • ML-KEM-768, postkvantinis algoritmas NIST standartizuotas kaip FIPS 203. Jo saugumas priklauso nuo gardelės problemų, kurių Šoro algoritmas nepaliečia.

Abu jie yra Rūšiuoti, o ne maišytiPranešimas yra užšifruotas NIP-44 tiksliai taip, kaip visada buvo, ir tas baigtas šifravimo tekstas yra užantspauduotas antrą kartą po kvantinio sluoksnio – ChaCha20-Poly1305, paslėptas iš ML-KEM bendros paslapties. Siuntėjo raktas, gavėjo raktas, encapsuliacinis šifravimo tekstas ir gavėjo ML-KEM raktas yra surišti į tą išvestį kaip kontekstą, todėl sluoksnis negali būti ištrauktas iš vienos mainų ir atkurtas kitoje.

Kombinuotojas, pavyzdžiui, X-Wing arba Signal's PQXDH maišys abi paslaptis į vieną raktą vietoj. Nymchat ne, o priežastis yra praktiška, o ne kriptografinė: maišymui reikia žalios ECDH išvesties, o naršyklės plėtinys ar nuotolinis parašas niekada neperduos to atgal - jis grąžina baigtą šifravimo tekstą, kuris yra visas taškas laikant raktą, kur programa negali pasiekti.

Svarbi nuosavybė yra ta pati: rezultatas yra Mažiausiai tokia stipri kaip stipresnė pusėJei tinklelio kriptografija pasirodys silpnesnė nei tikėtasi, ML-KEM lūžimas tik nuplėšia išorinį sluoksnį ir palieka šiandieninį NIP-44 po juo.

Kiekvienas pranešimas gauna naują pokvantinį apsikeitimą, todėl atkuriant vieno pranešimo raktą atsiskleidžia nieko apie kitus.

Post-kvantinei pusei reikia savo rakto, ir tai, iš kur tas raktas ateina, lemia, ar visas dalykas yra vertas kažko. ne Dirbo iš savo nsecKvantinis kompiuteris, kuris sulaužo klasikinę pusę, atgauna jūsų nsec iš savo viešojo rakto, ir viskas, kas kyla iš nsec paskelbta formulė išeina su juo - dvi spynos atidarytos per vieną pertrauką. Kvantinis kodas už kiekvieną sąskaitą, vieną kartą, iš atsitiktinių baitų, kurių jokios viešosios vertės neatskleidžia. nympq1… Sėdi šalia tavęs nsec Tai nėra slaptažodis ir ne antras prisijungimas: tai yra pagrindinė medžiaga, kurią galite išsaugoti, kaip ir nsec.

Nėra ką įjungti

Tai nėra nustatymas. Postkvantinis šifravimas yra tai, kaip „Nymchat“ bendrauja su Nymchat taip pat įprastas šifravimas yra tai, kaip jis kalba su visa kita. Tai taikoma automatiškai kiekvieną asmeninę žinutę ir grupės pokalbį su kitu Nymchat vartotoju.

Nustatymai › Privatumas ir saugumas rodo, ar jis yra aktyvus ir kiek jūsų kontaktų jis šiuo metu pasiekia, bet tik kaip informacija - nėra perjungimo.

Tai veikia nepriklausomai nuo to, kaip prisijungiate. naršyklės plėtinys (NIP-07) arba nuotolinis pasirašytojas (NIP-46) prisijungimas niekada neperduoda jūsų tapatybės rakto programai, o tai yra visas taškas, kai naudojate vieną - ir tai nereikia. Dvi šifravimo pusės yra atskirtos: jūsų pasirašytojas daro tą dalį, kurią jis visada padarė, o programa daro post-kvantinę dalį su jūsų atkūrimo kodu, kurį ji tiesiogiai laiko.

Kiekvienas jūsų istorijos pranešimas lieka įskaitomas visuose įrenginiuose, išskyrus jūsų nsec, kaip ir anksčiau, ir išlieka taip visą sąskaitos gyvenimą. nympq1… atkūrimo kodas yra kvantinio atsparumo medžiaga, parašyta nuo šiol: nauji pranešimai, sinchronizuoti nustatymai ir archyvas, kurie keliauja su jais.

Taigi prietaisas turi laikyti šį kodą, kol jis gali juos atidaryti, o prietaiso pridėjimas dabar užima vieną papildomą žingsnį. nympq1… kodas iš įrenginio, kuris jau turi jį. Tai kartą per įrenginį, o ne kartą per prisijungimą. Tas žingsnis nėra trinties mes nepavyko pašalinti: kodas, kuris gali atvykti į naują įrenginį savaime turės keliauti ten įprasto pranešimo viduje, ir kad pranešimas yra būtent tai, ką užpuolikas ši funkcija egzistuoja sustabdyti yra įrašymas.

Aplikacija sukuria nympq1… kodas jums, todėl nėra nieko pasirinkti ir nieko išrasti. norėdami jį pamatyti: paspauskite savo nym atidaryti Peržiūrėti arba redaguoti Nym's DetalėsTada Atskleiskite šį nym privatų raktą ir atkūrimo kodąJis sėdi tiesiai žemiau jūsų nsec, su tuo pačiu rodyti ir kopijuoti mygtukus. Jūs niekada nereikia galvoti apie tai, kol dieną jūs pridedate antrą įrenginį.

Tuo tarpu nesusijęs įrenginys nėra užrakintas. jis toliau skaito viską, kas parašyta pagal senesnį šifravimą, ir toliau siunčia įprastai, o kai jį susieti, jis grįžta ir atidaro kvantinio atsparumo pranešimus, kurių anksčiau negalėjo perskaityti.

Jūsų kiti prietaisai

Antram įrenginiui reikia dviejų dalykų: dabartinės programos versijos ir nympq1… Senesnis statinys ir toliau veikia – jis nėra išjungtas – bet jis negali perskaityti dabartinio formato, todėl, nors jis vis dar yra paskyroje, kopijos, kurias išlaikote sau, sugrįžta į senesnę, kurią gali. Atnaujintas įrenginys, kuris dar nebuvo susietas, skaito senąją istoriją ir prašo kodo.

Su kuo tai gauni

Kiekvienas "Nymchat" klientas paskelbia nedidelį pasirašytą, pasibaigiantį skelbimą, sakydamas taip, ir įtraukia savo post-kvantinį raktą, kai jis turi vieną.

Kas užpuolikas, kuris kontroliuoja relė Gali tai yra susilaikyti nuo skelbimo, todėl siuntėjas niekada nemato rakto ir grįžta į įprastą šifravimą. Tai verta aiškiai pasakyti. Tai kainuoja post-kvantinę apsaugą tiems pranešimams; ji negali padaryti vieną neįskaitomą, ir ji negali priversti jus priimti raktą, kuris nėra jūsų. Klientai prašo kelių perdavimų, todėl slopinant tai užima visų jų kontrolę.

Šie skelbimai trunka savaitę ir atnaujinami kasdien, kai naudojate programą.Jei esate toli ilgiau nei tai, jūsų trūksta ir jūs skaitote kaip įprastą "Nostr" klientą tam tikrą laiką: pranešimai, siunčiami jums toje spragoje, yra užšifruoti įprastiniu būdu, o ne kvantiniu būdu.Jie vis dar atvyksta, ir jūs vis dar galite juos perskaityti - ir niekas, kurį gavote anksčiau, nėra paveiktas.Atidarant programą iš naujo skelbiamas jūsų skelbimas, o stipresnis šifravimas atnaujinamas savaime.

Visi kiti dirba lygiai taip pat, kaip anksčiau. Bitchat vartotojai ir bet kuris kitas „Nostr“ klientas gauna standartinį NIP-17Niekas nesibaigia, kai siunčiate žinutę kažkam už Nymchat.

Postkvantinė žinutė pakeičia standartinis, o ne siunčiamas kartu su juo. Siųsti abu būtų beprasmiška: užpuolikas paprasčiausiai sulaužytų silpnesnę kopiją.

Kopijos, skirtos tu gaukite taip pat – tą, kurią skaito kiti jūsų įrenginiai už jo esantį archyvą ir sinchronizuojamus nustatymus, kurie keliauja tuo pačiu keliu ir neša jūsų pokalbių sąrašą, grupės raktus ir pranešimų istoriją. Paliekant bet kurį iš tų senųjų šifravimas būtų padaręs juos silpniausiu jūsų saugomu daiktu: juos galėtų perskaityti visi, kurie sulaužys šiandieninė kriptografija, nesvarbu, kaip kruopščiai buvo užplombuoti patys pranešimai.

„Bitchat“ skaito

Bitchat negali perskaityti Nymchat pranešimų formato, todėl istoriškai Nymchat išsiuntė antrąją kopiją kiekvienas pranešimas Bitchat formatu visiems, kurie gali jį naudoti – kuri kam nors tu niekada negirdėjai, reiškė visus.

Aukščiau pateiktame skelbime to spėlioti nereikia. Jei kas nors paskelbė, tai yra veikia Nymchat, todėl Bitchat kopija atmetama ir siunčiama tik stipresnė žinutė. Jeigu jie niekas nepasikeitė: jie vis dar gauna abu formatus, lygiai taip pat, kaip anksčiau, taigi nieko gali tapti neįskaitoma, nes programa neteisingai atspėjo, kurį klientą kažkas naudoja.

Kaip ir pats šifravimas, jis yra automatinis ir neturi jokio nustatymo.

Kodėl gi ne tik spėliojus iš viešosios veiklos

„Nymchat“ iš viešojo kanalo veiklos galėtų nuspręsti, kas ką valdo, ir pastebėtų žmonių greičiau. Tačiau ta išvada kartais yra klaidinga, o būti klaidinga čia reiškia siunčiant kam nors pranešimą, kurio programa negali atidaryti be klaidų ir nebandant iš naujo. Paskelbtas skelbimas yra pasirašytas jo autoriaus ir negali būti suklastotas, todėl jis naudojamas vietoje jo.

Grupiniuose pokalbiuose

Grupės pranešimai jau yra užšifruoti atskirai kiekvienam nariui, todėl grupė gali maišyti abiejų tipų pranešimus laisvai – nariai, kurių klientai jį palaiko, gauna stipresnį šifravimą, likusieji gauna standartinis, o grupė veikia normaliai bet kuriuo atveju.

Dėl šios priežasties grupės pranešimas yra pažymėtas kaip kvantiniam atsparumas tik tada, kai kas narys gavo taip. Jei nors viena kopija naudojo standartinį keitimą, ta kopija turi tą patį pranešimą, todėl visas pranešimas yra apsaugotas tik tiek, kiek yra silpniausia jo kopija. Programėlė sako „atsparus kvantiniam 8 iš 10 narių“, o ne suapvalinti.

Grupiniai pokalbiai taip pat išlaiko savo besisukantys vienkartiniai klavišai, kurie slepia, kas yra grupėje nuo visų, kurie žiūri estafetę. Ši apsauga nėra paveikta ir veikia tiksliai taip, kaip buvo.

Ženkliuko skaitymas

Kiekvienas privatus pranešimas ir grupės pranešimas turi mažą skydas Šalia padlock. palieskite bet kurį ženklą paaiškina, ką jis rodo.

PažymėtiReikšmė
Pakabinama spynaKas jį atsiuntė – ar parašas sutampa su autoriumi, kuriam pareikšta pretenzija.
SkydasAbi pusės turėjo savo post-kvantinį kodą, o hibridinis mainai buvo naudojami kiekvienai šio pranešimo kopijai.
Brūkšninis skydasIš dalies atsparus kvantui – grupės pranešimas tik kai kurie nariai gavo apsaugotą kopiją.Kadangi kiti nešioja tą patį tekstą, laikykite pranešimą kaip įprastai užšifruotą.
Skydas per skydąStandartinis NIP-44 šifravimas – vis dar end-to-end šifruotas, ir vis dar neįskaitomas niekam, išskyrus dalyvius šiandien.
Nėra skydoViešojo kanalo įrašai yra skaitomi perdavimo sistemoje pagal dizainą, todėl netaikomas joks šifravimo ženklas.

Trūkstamas ženklas būtų dviprasmiškas - tai taip pat gali reikšti “ne kvantinio atsparumo”, “šis statinys yra per senas” arba “indikatorius yra sulaužytas” - ir saugumo indikatorius, kuris negali būti atskirtas nuo sulaužyto, nieko jums nesako.

Jis sėdi šalia užrakto, o ne jį pakeičia, nes jie du atsako į skirtingus klausimus, o pranešimas gali būti vienas be kito - atsparus kvantui, bet iš nepatvirtinto siuntėjo, arba patikrintas, bet įprastai užšifruotas.

Senesni pranešimai nuolat išlaiko peršokimo skydą. Viskas, kas buvo išsiųsta prieš abi puses buvo kvantinio atsparumo konstrukcija buvo užantspauduota su įprastiniu mainų, ir kad šifravimo tekstas jau egzistuoja ant relės - ji negali būti iš naujo užantspauduota po fakto.

Ko nedaro

Tai apsaugo turinį jūsų žinučių. Tai nesudaro kiekvienos dalies Nostr kvantiškai atsparus, ir verta tiksliai nustatyti skirtumą.

  • Parašai vis dar yra secp256k1. Nostr tapatybės ženklas su Schnorr ant ta pati kreivė. Priešas, kuris jau turėjo veikiantį kvantinį kompiuterį, galėjo padirbti a pasirašyti ir apsimesti kuo nors realiuoju laiku. Ką hibridinė birža sustabdo, yra skaitymas įrašytas srautas – konfidencialumas, o ne autentifikavimas.
  • Nėra jokio išankstinio slaptumo. Abu raktai yra ilgalaikiai: NIP-44 gauna savo raktą iš jūsų nsec, ir post-kvantinis sluoksnis įkapsuojamas į ML-KEM raktą už jūsų nympq1… Kiekvienas pranešimas gauna šviežią kapsulę, todėl vieno pranešimo raktas neatidaro kito - bet kas galiausiai laikys tuos ilgalaikius raktus, gali perskaityti viską, ką kada nors įrašė, o ne tik tai, kas atėjo po. Pasibaigusios žinutės sumažinti, ir todėl ši funkcija yra nukreipta į derliaus nuėmimo-dabar-dešifruoti-vėliau, o ne į raktą, kuris yra paimtas.
  • Metaduomenys nesikeičia. Relė vis tiek mato, kad buvo skirtas įvykis raktą ir maždaug kada. Tai tvarko dovanų pakavimas ir vienkartiniai raktai, ne pagal tai.
  • „Bluetooth“ tinklelis nėra padengtas. Perkelta žinutė Mėsa keliauja per triukšmo XX sesiją, kuri yra stipri, dabartinis šifravimas, bet klasikinis raktų mainai - todėl jis nešioja post-kvantinį sluoksnį, net tarp dviejų Nymchat vartotojų. Ženklas atspindi tai: per tinklelį pristatytas pranešimas nėra pažymėtas kvantiniu atsparumu.
  • Jūsų atkūrimo kodas yra antras dalykas, kurį reikia išlaikyti. Jis prasideda nuo nympq1 Ją rasite ir Jūsų Nym detalėstoje pačioje vietoje kaip ir jūsų nsec — paspauskite savo nym, tada “Atskleiskite šį nym privatų raktą ir atkūrimo kodą”. nsec savarankiškai nesukuria jūsų post-kvantinio rakto – būtent todėl jis veikia – taigi, jei joks įrenginys neturi šio kodo ir jūs neturite jo kopijos, tai, kas buvo užantspauduota, negali būti vėl atidaryta. nsec.
  • Ji negali apsaugoti to, ką daro kita pusė. Gavėjas vis tiek gali padaryti ekrano kopiją, nukopijuokite arba išsaugokite žinutę.

Tai yra ta pati padėtis, kurią signalas užima po kvantinio atnaujinimo: pataisykite raktų keitimą dabar, nes tai yra dalis, kurią užpuolikas gali veikti atgaline data ir traktuoti parašus kaip a atskira problema, kai standartai pasivys.

Darbo tikrinimas

ML-KEM įgyvendinimas yra išbandytas prieš oficialų NIST vektoriniai testaiFIPS 203, todėl jis tikrinamas prieš patį standartą, o ne tik prieš save. žiniatinklio programa ir mobilioji programa taip pat laikomi bendrame bandymų vektorių rinkinyje, kuris garantuoja, kad vieno parašytą pranešimą gali perskaityti kitas.

Abu yra Atviras šaltinis pagal AGPL-3.0, o žiniatinklio programėlės statiniai yra atkuriami – žr. pastato patikrinimas.

Įžengti giliau: Post-Quantum raktų susitarimas Nymchat - techninė baltoji knyga apie tai, kaip ML-KEM raktas yra paskirstomas be katalogo, tiksli konstrukcija, kuri sujungia du raktų mainus, ir dizainai, kurie buvo atmesti.