Whitepaper tekniku ta' Nymchat
Skola tal-Kunci Post-Kwantika f'Nymchat
Distribuzzjoni tal-klavijiet pubbliċi ML-KEM-768 fuq Nostr mingħajr direttorju jew reġistru, u ssemmihom minn segret li l-ebda valur pubbliku ma jikxef.
L-aggiunta ta' skambju tal-klavijiet post-kwantiku f'messenger mhix essenzjalment problema ta' kriptografija. Il-primittivi huma standardizzati u l-libreriji eżistenti. Il-parti diffiċli hija li kull parteċipant issa għandu bżonn... tieni klaviet pubbliku, u netwerk deċentralizzat m'għandux post ovvju fejn iqegħħedha. Dan l-artiklu jiddeskrivi kif Nymchat twieġeb dak — fejn tiġi l-klaviet it-tieni, kif tasal għan-nies li għandha bżonnha, u x'inhu dak li l-interface hija permessa li ddikjara dwar ir-riżultat — u, fil-sezzjoni l-aħħar, x'inhu dak li r-riżultat ma jipproteġixx.
Din il-paġna hija tradotta bil-magni għall-konvenjenza. L-oriġinal bl-Ingliż huwa l-verżjoni li tapplika.
1Il-problema
Messaġġi privati ta' Nostr huma enkriptati b' NIP-44, li għandu żewġ metàli separabilevoli. Il-metà li tħawwad it-test mhux imċaffret — ChaCha20 b'tag HMAC-SHA256, imkeyjat permezz ta' HKDF (RFC 5869) — mhux periklat b'mod sinifikanti minn kompjuter kwantiku; l-algoritmu ta' Grover jikkostaw accelerazzjoni ta' kwadru-radikal kontra klav simmetriku, u 256 bits taqbel dan. Noftex li jaqbel fuq il-klav huwa elliptic-curve Diffie-Hellman fuq secp256k1, u l-algoritmu ta' Shor jsolvi l-logaritmu diskret direttament. Is-sab ta' klavijiet privati wieħed mill-kontrapp parti pubblika tiegħu jesponi retroattivament kull sigriet komuni li dak il-klavijiet produċiet.
Il-periklu li dan joħloq ma jinżammx għal wara sakemm tali imsina tesisti. Avversarju b'storagg jista' irreġistra ċifrat illumhekk u jiddidċifru kull meta tispiċċa l-kapaċità. Kewkhekk imkejjel issa li għadu japparti meta għandhom dak il-ħin huwa diġà kompromiss. Dan huwa l-attakk speċifiku li skambju tal-klavijiet post-kwantiku jikserxu, u hija r-raġuni għaliex ix-xogħol ma jistax jistenna sabiex il-masina tinbena.
1.1 Il-mistoqsija li dan l-artiklu jwieġeb
Il-mitigazzjoni hija magħrufa sew: uża meccanism ta' enkapsulazzjoni tal-klavijiet post-kwantiku flimkien mal-skambju klassiku, biex l-attakkatur ikollu jikserp it-tnejn biex iqra xi ħaula. Nymchat tuża ML-KEM-768 (FIPS 203). Dan immedjatament itteġġed problema ta' distribuzzjoni:
Biex tibgħat messaġġ lil Alice illum, għandek bżonn ħaġa waħda: l-npub tagħha. Żid skambju post-kwantiku u għandek bżonn ħaġa għOxra — il-ċwieċ pubbliku ML-KEM tagħha. Fejn tinsab dak il-ċwieċ, u kif iġġibu qabel ma tista' tibgħatilha xi ħaġa?
L-npub huwa kuntnut fih kollox. Tista' tiktebha fuq karta, taqraha b'lukkien, jew tiskannaha minn skrin, u dan huwa dak kollu li għandhom nies biex jienkripjawlek. Il-klavijiet pubbliku ML-KEM-768 huwa ta' 1,184 bytes. Ma jistax jitqara b'lukkien, ma jinżammx f'isem utent, u mhuwiex għandu jkun f'kodiċi QR ħdejn identità li hija biss 32 bytes.
Il-grandezza hija l-parti faċli. Il-parti aktar iebsa hija li it-tieni klavijiet jġibu tliet problemi differenti, u l-bqija ta' dan l-artiklu huwa essenzjalment risposta għalihom:
- Jista' jiġi sostitwit. Klave li ħadd ma jistgħandu jaqra minn nazzjoni huwa eżattament dak it-tip ta' ħaġa li attakkatur ibiddel b'wieħed tiegħu. Is-Sezzjoni 4 rabtitu mal-identità b'imża, li tsolvi din il-kwistjoni b'mod definitiv.
- Għandu jkun l-istess fuq apparati tal-utent. L-istess kont fuq telefon u fuq laptop għandu jippreżenta l-istess chiave, jew messaġġi ssiġillati għal wieħed ma jistgħux jitftħu fuq l-ieħor. Sekzjoni 3.2 twassal għalih.
- Jista' jitlost. Il-klavijiet pubbliku huwa rippubblikat minn sigriet, għalhekk dak li għandu jibqa' huwa dawk is-sigriet — u b'kostruzzjoni wala ħaġa oħra tirkostruġih. Is-Sezzjoni 10.1 tiddikjara b'mod ċar x'inhu l-kost tagħha, għax din mhix riżolta kemm ma hija mħallsa.
2Kostriżijiet tad-disinn
Erba' vinkolijiet determinaw il-risposta, u jeskludju l-aktar disinnijiet ovvji qabel ma jiġi miktub ebda kodiċi.
- Inqas sigrieti kemm jista' jkun. L-utenti ta' Nostr diġà jġarrbu eżattament sigriet wieħed, l-nsec. Kull sigriet addizzjonali huwa mod ieħor biex tinstedi l-istorja tiegħek, u xi ħadd li jaf kif jagħmel backup ta' nsec ma se jaħarfu kif jagħmel backup ta' ebda ħaġa oħra. Is-Sezzjoni 3.1 turi li dan ma jistax jiġi soddisfatt immedjatament — chiave post-kwantika derivata mill-nsec ma tipprovdi l-ebda protezzjoni post-kwantika — għalhekk id-disinn juża eżattament sigriet wieħed u m'hemmx aktar: biċċa waħda ta' materjal tal-klavi, ġenerejt darba għal kull identità, ippreżentata fl-istess forma bħall-nsec u fl-istess post, sabiex minħżejjer jaf kif iżomm wieħed jaf kif iżomm l-ieħor. Is-Sezzjoni 10.1 tkun onesta dwar dak li għadu jikkostar dan.
- Ebba awtorità. M'hemmx server li jista' jiġi fidut biex jgħid li ċavetta hu ta' min. Kull server tali jsir il-punt fejn il-messaġġi jistgħu jiġu riindirizzatiżi.
- Apparati multipli, identità waħda. Identità Nostr tintuża komunament minn diversi klienti flimkien. Kull materjal tal-klavijiet li jkun eżistenti għandu jispiċċa bħala identiku fuq kull wieħed minnhom, u d-dwieli li jġibuha hemm ma għandhomx ikunu leżibbli mill-avversarju li l-karatteristika qed tiddefendi kontu.
- Ebda negozjatiju. Kull skambju "in-band" ta' "liżiż ciphers tistgħu ssostnuż?" huwa superfiċi li l-attakkatur jista' jnaqqas biex iġbed l-għażla aktar dgħajfa. Id-disinn għandu ma jkollux xejn li jitnaqqas.
3Segret għerq indipendenti
Id-deċiżjoni fundamentali hija li l-klavijiet tad-dekapsużjoni tal-ML-KEM huma semiċjati minn materjal tal-klavijiet li l-ebda valur pubbliku ma jesponi. Kull identità tikseb segret tal-pedament wieħed, li jiġi ġenerat darba biss:
pqRoot = 32 bytes from a CSPRNG, generated ONCE per identity
seed = HKDF-Expand(
HKDF-Extract(salt = "nym-pq-root-v2", IKM = pqRoot),
info = "mlkem768/epoch/" || epoch,
64 bytes)
(ek, dk) = ML-KEM-768.KeyGen(seed)
Il-root jiġi ppreżentat lill-utent bħal kif jagħmilu nsec: bech32 bil-preffiss li jista' jinqara minn bnussena
nympq, hekk jitqara bħala nympq1…, li jidher ħdejn l-nsec fl-iskrin tal-identità wara l-istess interazzjoni ta' żvelar, kopjat bl-istess kontroll, qatt ma ġie riġistrat u qatt ma ssentx ebda post b'mod terbuka. Mhuwiex password u mhuwiex login. Huwa materjal tal-klavijiet li l-utent jista' jiffranka, eżattament bħall-nsec.
Is-salt huwa separat għall-domenju bilqteda, sabiex l-ebda sigriet ieħor ma jista' qatt jidderiva l-istess par tal-klavi. Il- epoch l-kontra tidderiża r-rotazzjoni (Sezzjoni 9).
3.1 Għaliex il-klav ma jistax jiġi dderivat mill-klav tal-identità
Id-disinn ovvju huwa li jiġi sseedat il-keypair mill-sigriet li l-utent għal diġadu għandu:
seed = HKDF(salt = "…", IKM = nsec) // do not do this
Huwa attraktiv għal erba' raġunijiet, kollha reali: ebda xejn ġdid li jiġi appoġġjat, għax in-nsec huwa diġà l-back-up; kull apparat qarmuni bi kostruzzjoni, mingħajr protokoll ta' sinkronizzazzjoni li jista' jidħol f'ħta tal-ħata; anons li jista' jinbidel għal kull identità li huwa ovvjamment korrett, għax l-apparati ma jistgħu xejgħist jiddisputaw dwar il-klavijiet; u l-klavijiet eżistenti qabel ma jiġu ppubblikati, sabiex il-klijent jista' jissigilla xi ħaġa għalih stess fuq l-ewwel ħarġa.
L-erba' benefiċċji huma bla valwa, għal raġuni waħda. L-algoritmu ta' Shor li jiġri kontra npub ippubblikat jagħti l-nsec. Id-derivazzjoni tas-seed hija algoritmu pubbliku fuq l-nsec. Għalhekk, l-avversarju li jikserrax il-parti klassika jerġa' jistruwixxi l-parti post-kwantika billi jkun qed jiġri l-istess HKDF li kull ħadd ieħor jiġri. Kontra "harvest-now-decrypt-later" — l-uniku periklu li l-karatteristika teżistenti biex twaqqafha — klavi dderivata b'dan il-modu ma żżid xejn għal kollox.
Il-klavijas tad-dekapsużjoni tal-ML-KEM għandha jiġi minn entropija li la tinsab derivabbli mill-nsec wala qatt titrasmetti taħt enkrizzjoni klassika biss.
Il-klawsula andra ta' dik ir-regola tagħmel l-istess xogħol kif l-ewwelha. Segret imġibil b'mod indipendenti li mbagħad jiġi ssinkronizzat bejn l-apparatijiet ta' utenti ġewt messaġġ NIP-44 ordinarju huwa l-istess falliment b'passi extra: avversarju jirreġistra dak il-messaġġ illum u jerġa' jġib il-ċwieċed klassiku tiegħu aktar tard, u r-root jaqa'. Għalhekk il-passi fis-sezzjoni li jmiss huma dakki l-passi li huma, u għaliex nonex minnhom huwa “ibgħatlu għall-apparat tiegħek l-ieħor.”
3.2 Il-ħasil tal-root għall-apparati l-oħra tal-utenti
Il-Kostnutxjoni 3 tas-Sezzjoni 2 — identità waħda, diversi apparati — ma tista'xiex tiġi sodisfatta bl-aritmetika hawnhekk, għax il-punti kollha huwa li l-klavijiet mhumiex funzjoni ta' xejn li l-apparati diġà jaqsimu. Trid tiġi sodisfatta bit-trasport minflok, u hemm eżatt pass wieħed: l-utent iċaqlaq il- nympq1… ikodifikaw lilhomx stess.
Il-ġbur jidher bħala nympq1… mażżejx l-nsec, u apparat sħliħ aċċettaha imważżgħa fl-istess pannell. Dak huwa l-mekkaniżmu kollu. Apparat li maġietux il-kodiċi ma jistax jipparteċipa, kif iddeskrivi Sekzjoni 4.2.
It-trasferiment manuali huwa punt deliberat aktar minn pass tal-ewwel. Ir-regola fis-Sezzjoni 3.1 tgħid li r-root qatt ma jistax jivvjaġġa taħt enkrizzjoni klassika biss, u kull mekanizma li tgħidli dan biex isir awtomatiku — is-syncing permezz ta' relay, jew il-wrapping mal-klavijiet tal-identità — ivviola proprjament dak. Il-pass li l-utent jagħmel huwa r-raġuni għaliex il-protezzjoni hija reali.
Il-format iħalli spazju għal triqqa' imwrappata: reġistru jista' jġorr lista ta' wraps, kull wieħ huwa blob AEAD taħt klavi li l-utenti jistgħu jirproduċu fuq apparat ieħor — output ta' PRF ta' passkey, b'eżempju. Nema xej's ma jipprovdi xx'luk wie'x illum, u sakemm xi ħaġa ma tagħmilx dan, il- nympq1… il-kodiċi huwa
l-unika triqqa' minn naħa għal oħra.
Sezzjoni 10.1 tgħid x'inhu l-kost tagħha.
Ir-rekord stess jinsab fid-dikataġġ tal-settings proprju tiegħu, nymchat-pq-root, u jisinkronizza kif jagħmlu l-kategoriji l-oħra. Anke mingħajr ma jġorr ebda wraps, jagħmil xogħol neċessarju: l-eżistenza tiegħu hija kif apparat sani jsir jaf li din l-identità għandha diġà root, li huwa x'inhu li jwaqqafu milli jimnta wieħed rivali (Sezzjoni 3.3).
Il- nymchat-pq-root kategorija trid le tkun imenkriptat għall-klavijiet ML-KEM derivati mir-root. Dik ir-linja hijateżżammar l-unika kopja tal-root, għalhekk is-sigill tagħha taħt klavijiet derivati mir-root huwa qofel li l-klavijiet tiegħu jinsabu ġewwa l-kaxxa: l-ebda apparat ma jistgħandu jinfetaħ, inkluż dak li qagħedha. Huwa sigillat klassikament — NIP-44 għal innif — jew ma jkunx għalxiex. Din hija l-unika post fejn id-disinn jaċċetta protezzjoni biss klassika, u jista' jagħmel dan: ir-linja ma teżżammar l-ebda root illum, biss il-fatt li wieħed preżenti.
Kull kategorija oħra ta' settings tista' u għandha tuża l-ċav derivat mill-għerq. Din hija l-unika eżċezjoni, u hija eżċezjoni dwar il-ċirkolarità minn qabel dwar is-saħħ.
3.3 Ġenerazzjoni u adozzjoni
Meta jitfaħ, b'identità li tibqa', klient jaħdem f'dan l-ordni:
- Iktar għal wieħed eżistenti
nymchat-pq-rootrekord. - Instab rekord, u dan id-dispositiv jista' jinfidhlu — adottaha u annunċa din l-identità bħala kapaċi għall-post-quantum.
- Reġistrazzjoni mitluqa, u dan l-apparat ma jistax jdejjaċċjaġġjaha — maġġerax root ġdid, u ma tippubblikax ebda anonsju għat-tlieta. Iġiblu lill-utent biex jgħaqqad dan id-dispositiv billi jidħol il-
nympq1…kodiċi minn apparat li għanduha diġà - Ebda rekord — ġenera root, ippubblika r-rekord, annunċa, u wri l-
nympq1…kodiċi lill-utent darba waħda sabiex ikun jista' jifżim
Il-pass 3 huwa l-pass li faċli li tagħmel mistake fih, u huwa r-raġuni għaliex l-ordni hija miktuba minn qabel minn thann li tħalliha lil kull implimentazzjoni. Żewġ apparati li kull wieħed iddeċieda li jġenera root jipproduċu żewġ roots indipendenti taħt identità waħda, u dak huwa l-falliment li din l-ordni għandha biex tippreventa.
4L-annunċju tal-kapaċità
Il-parti pubblika tal-parzija tal-klavi dderivata tiġi ppubblikata bħala indirizzabbli
NIP-01
avveniment — tip 30078, immarkat nym-pq:
{
"kind": 30078,
"tags": [
["d", "nym-pq"],
["t", "nym-pq"],
["expiration", "<unix seconds>"]
],
"content": {
"v": 2,
"alg": "mlkem768",
"nym": 1,
"epoch": 0,
"pk2": "<base64url ML-KEM-768 encapsulation key>",
"exp": <unix seconds>,
"devices": [ ... ]
}
}
Addressable tfisser li r-relay iżomm avveniment wieħed għal kull (tip, pubkey, d-tag), hekk rippubblika tirrifaċi l-annunċju preċedenti fl-istess post. Kull identità għalhekk għandha eżattament rekord kurrenti wieħed, li huwa x'jagħmel 'ilha l-klavijiet ta' Alice' ħsieb singolu mhux dubju minflok lista li trid tirrikonsilja.
Is-sigatura hija l-rabta. L-avveniment huwa sigillat bl-issigill tal-klaviera tal-identità, għalhekk id-dikjarar “dan il-klaviera ML-KEM għandu l-appartenenza lil dan l-npub” huwa b'saħħtu proprja kif l-npub stess. Is-sostituzzjoni ta' klaviera ta' enkapsulazzjoni differenti teħtieġ l-isfalsifikazzjoni ta' sigill secp256k1. Attakkatur li jista' jagħmel dan ma jeħtieġx jinkwetat dwar il-KEM.
Annunċi jiskadu. Ta' sbatax-jum NIP-40 skadenza, rippubblikata kull 24 sigħa, żżomm ir-rekord bħala stqarrija dwar klient li għadu qed jaħdem minnqa wieħed li kien qed jaħdem. L-għerq innifih qatt ma jiskada; biss il-klażim dwaru jiskada.
Annunċju li ntilef jitqara eżattament bħal wieħed li qatt ma kien għandu klavijiet: il-peers jibgħat NIP-44 ordinarju, li kull login jista' jaqra, u l-klijent jerġa' jsegwi l-scambju post-kwantiku fuq il-konnessjoni li jmiss tiegħu, meta jerġa' jippubblika. Għalhekk, li tibqa' sieket għal aktar minn ġimgħa jikkostta l-protezzjoni għall-messaġġi sentati waqt l-intervall — huma enkriptati b'mod klassiku minflok li jkunu reżistenti għall-kwantu — u ma jikkostax xejn ieħor. It-trasmiżjoni ma tiġix affettwata, xejn li diġà riċevut ma ssirx mhux qread, u l-ebda azzjoni mhija meħtieġa meta terġa' tiġi.
Dik l-asimetrija hija r-raġuni għall-iskadenza minfliexb tattAxident tagħha. Mingħajrha, rekord jibqa' aktar mill-klavijiet li jsemmi: apparat li jitmeħħa, jiġi riċċettat, jew li jinbidel il-ġbidien tiegħu jħalli instruzzjoni dejjem attiva biex jiġi eżekutat għal klavijiet li ħadd ma jgħandu aktar, u l-messaġġi mibgħutina taħtha jitlefku mingħajr ebda żball fuq kull naħa. Sebgħa jiem jiffissaw dak il-perjodu, u jħallu l-relays iżielu r-rekord infushom minfliexb ma jiddependi fuq il-klijenti biex jinnotawha.
Il-kamp tal-klavijiet isemmi l-format tiegħu. Il-kamp huwa pk2, u d-ċifra hija parti mill-kontratt minn qabel dekorazzjoni: hija tind defini l-format tal-payload li l-klavijiet jistgħu jintużaw miegħu. Il-lettur li ma jirrikonoxxix il-kamp ikkonkludi “Nymchat client, no post-quantum key” u jirsilja NIP-44 ordinarju, li kull login jista' jaqra. Dak huwa d-direzzjoni korretta tal-falliment, u huwa worth li niddikjarar bħala regola li n-numru tal-format jirrikisti li: affermazjoni ta' kapaċità mhux rikonoxxuta għandha toħti minn protezzjoni, qatt minn twassil. Klavijiet li ħaddieq ma jistax juża huwa agħtar minn l-ebda klavijiet, għaliex il-messaġġ li jipproduċi jintilef mingħajr żbalja fuq l-ebda naħa.
4.1 L-assenza hija sinifikanti, u tliet-valuri
Detalje sottile iżda importanti: l-annunċ huwappubblikat minn kull klient Nymchat, mhux biss dawk li huma kapaċi għall-post-quantum, u l-kamp tal-klavijiet huwa opsjonali. Dan iwassal għal tliet stati li jistgħu jiġu distinti minflok tnejn:
| Osservat | Mezzi | Ibgħat komportament |
|---|---|---|
| Avvis b'ċav | Nymchat, kapaċi post-kwantiku | Ibridu |
| Annunċju, ebda klav xejn | Nymchat, klassiku biss — post-quantum mhux aktiv, jew apparat li għadu mhux marbut mal-aslu tal-identità. | Klassiku NIP-17 |
| L-ebda annunċju | Klijent mhux magħruf. Jista' jkun kwalunkweż utent ta' Nostr jew Bitchat | Klassiku, u wrap ta' kompatibilità |
Il-kollistment tar-riga t-tielet fil-kwarta ikun tassew telf. Anonsju mingħajr klavijiet huwa deklarazzjoni imxemmeja li s-sender immaniġġa Nymchat, li tippermetti lill-pass tal-ħlas itvaqqat wrap spekulattiv cross-protokol li otherwise ikun għandu jinkludi għal kull ħadd li ma tistax tidentifika.
4.2 Dispositiv li ma jistgħax jiftaħ ir-root jibqa' sieket
L-annunċju huwa prestanattabbli: avveniment wieħed għal kull identità, l-aħħar kitba tirbaħ. Dak huwa li jġiegħel id-disinn tal-record wieħed jaħdem, u huwa wkoll dak li jġegħel apparat mhux marbut perikoluż jekk jippubblika. Apparat li annunċja l-klavijiet li kien għamel għalih innifsu se jittrasċa r-record reali u se jinstrinja kull peer jirrekkripta taħt klavijiet li l-apparati l-oħra ma jistgħux jifħtu.
Għalhekk, apparat li jaf li preżenza ta' root teżist imma ma jistax jiftaħha ma jippubblika l-ebda anons għal kollox. Mhux huwa spiċċat u mhux imqabda barra mill-applikazzjoni: għadu jaqra kull messaggio għallik li għandu l-klavi għalih u għadu jirsil klassikament, filwaqt li jagħti nota lill-utent biex jgħaqqdu. Is-silenzju huwa l-imġiba korretta għal apparat li ma jistax jitkellem għall-identità.
5Skoperta u d-deċiżjoni li tibgħat
Il-klienti jsiru jafnu l-iksijiet tal-pari b'żewġ modi. Issett ta' abbonatura dejjem taħdem għall-persuni li l-utent jamkorrespondi malhom — konversazzjonijiet taħoltu u membri tal-grupp — sabiex l-annunċi tagħhom jaslu bħala avvenimenti ordinarji. Għal pari li ssib għall-ewwel lần, query wieħed isir fil-ħin tat-telfiq, limitat għal 2.5 segund; jekk ma jirrisolvix, il-messaġġ imur bil-mod klassiku, li hija l-imġiba li kienet teżisti qabel ma żdied il-post-quantum minflok modaċjoni ta' falla ġdida.
Riżultat negattiv huwa kaxxat għal għaxar minuti minflok għal dejjem. Utenti li jgħaqqad apparat ġdid, jew li jinbidel mill-login ta' estensjoni tal-browser għal chiave lokali, isiru kapaċi għall-post-quantum noftex il-konversazzjoni, u "le" kaxxat b'mod permanenti ikollhom iżommhom fuq enkrizzjoni klassika mitluf il-validità tal-annunċju.
5.1 Għaliex m'hemmx attakk ta' downgrade
Id-deċiżjoni tar-routing tnaqqas għal mistoqsija waħda:
pq = (we hold a signed, unexpired ML-KEM key for this recipient)
M'hekkx hemm negozjazzjoni ta' kapaċità, l-ebda lista ta' algoritmi supportati, u l-ebda kamp li attaccatur jista' jneħħi biex jifred triqqa' aktar dgħajfa. Żżomm l-annunċju huwa il-negozjatijon, u huwa mimsiegħ. Il-mod ta' fażilment ta' anons li nqiess jew kien imżommet huwa li l-messaġġ isir klassiku — l-status quo qabel din il-karatteristika — minfliex li messaġġ ibrid jiġi ddeltat għal xi ħaġa li tista' tiġi forġata.
L-oppost ukoll huwa veru u huwa aktar importanti: klient jibgħat ibridu biss meta jkun għandu klavi, u li għandu l-klavi huwa prova li r-riċipjent jista' jiddikapsula. M'hemmx kundizzjoni fejn messaġġ jiġi sentat post-quantum lil xi ħadd li ma jistax jaqrawh.
6Il-kostruzzjoni ibrida
Nymchat ma jirriplasax NIP-44. Huwa jiffwrapha. Ċifrat NIP-44 mhux modifikat huwa l-livell tal-ġewwa, u l-ML-KEM jagħti l-ikjes għal AEAD ta' barra madwaru:
inner = nip44_encrypt(plaintext, conversation_key(sender, recipient))
info = "nymchat-pq2" || sender_secp_pk || recip_secp_pk || kem_ct || recip_kem_pk
prk = HKDF-Extract(salt = "nymchat-pq2-v1", IKM = kem_ss)
key = HKDF-Expand(prk, info || "key", 32)
nonce = HKDF-Expand(prk, info || "nonce", 12)
outer = ChaCha20-Poly1305(key, nonce, plaintext = inner, aad = info)
payload = "pq2." || base64url(kem_ct) || "." || base64url(outer)
Ż-żewġ sigrieti għadhom jeħtieġu jiġu rrikuperati biex titqara l-messaġġ: il-livell esterni jipproduċi biss ciphertext NIP-44, u biex tiftħu jeħtieġ l-ECDH klassiku. Avversarju kwantiku li jifreddan secp256k1 jieħu l-klavijiet interni u għadu jiffaċċja ML-KEM; spezzar ta' ML-KEM jneħħi l-livell esterni u jħalli l-NIP-44 sħiħ. Kull input jirbaħ il-post tiegħu:
kem_ssiskeyja biss il-livell estern. Xejn f'din id-derivazzjoni ma jmiss l-output ECDH raw, li hija x'inhu li s-Sezzjoni 6.1 tattivizza.kem_ct,recip_kem_pku ż-żewġ imkieff tal-identità huma marbuta bħala data assoċjata, sabiex il-livell ta' barra ikun marbut mal-transkrizzjoni eżatta li produċietha. It-tqasism ta' ciphertext fuq l-identità ta' ibangu qwerrid iċempel l-awtentikazzjoni minn qabel id-deċrittazzjoni.
L-inkapsulament isir mill-ġdid fuq kull messaġġ. Il-klavja ML-KEM tar-riċipjent hija ta' żmien twil, iżda kull messaġġ jġorr ciphertext indipendenti u għalhekk indipendenti
kem_ss. Dan huwa li jagħmel id-derivazzjoni tal-nonce, minflok ir-randominizzazzjoni tiegħu, sens u:
ChaCha20-Poly1305
jiġi mħassar permezz tal-użu mill-ġdid ta' koppja (ċwiekk, nonce), u hawn il-ċwiekk stess huwa ġdid għal kull messaġġ, għalhekk l-ebda koppja ma tista' tirtorra.
6.1 Għaliex l-istrati jibqgħu separati
L-alternattiva hija li tħawwad it-tnejn is-sigrieti f'ċav konversazzjoni wieħed u tgħaddih lil NIP-44:
ck = HKDF-Extract(salt = "…",
IKM = ecdh_x || kem_ss || …) // do not do this
Dik il-kostruzzjoni hija sodda bħala kriptografija. Hija għandha problema strutturali waħda: teħtieġ
ecdh_x, il-koordinata x mhux elaborata tal-output tal-ECDH, bħala materjal tal-klavijiet — u estensjoni tal-browser (NIP-07) jew imxatter remotu (NIP-46) qatt ma jirritorna dak il-valur. Huwa jeżegwita NIP-44 imħassib il-kallant u jagħti lura ciphertext, li huwa l-għan kollu ta' li żżomm il-klavijiet sabtu fejn l-applikazzjoni ma tistax tilħaqha.
Il-ħwalq tas-sigrieti għalhekk jeskludi kull login li żżomm il-klavijiet tal-identità f'signer, li hija tgħid lill-aktar utenti attenti, u l-ebda ammont ta' xogħol fuq id-derivazzjoni tal-klavijiet ma jista' jbidel dan. Il-stratifikazzjoni tneħħi d-dipendenza: NIP-44 jibqa' sħiħ u jiġi prodotti minn kwalunkwe ħaġa li żżomm il-klavijiet tal-identità, inkluż is-signer, waqt li l-nofs tal-KEM jitkalkula mill-kodiċi tal-irkupru li l-klijent iżżomm direttament. Il-logins tas-signer huma partisipanti ordinarji post-quantum f'żewġ direzzjonijiet.
Il-kost huwa l-bandwidth, u mhuwiex żgħir. Il-ciphertext tal-ML-KEM huwa ta' 1,088 bytes u jinsab fuq kull messaggio, imkodifikat b'base64url għal 1,451 karakteri; l-AEAD ta' barra jżid tag Poly1305 ta' 16-byte u jżid il-payload NIP-44 li jinkapsula b'terz. Messaggio ta' 50 karakteri jkabbar minn 176 bytes għal 1,712, u wieħed ta' 2,000 karakteri minn 2,820 għal 5,238. Il-minimu huwa madwar 1.5 KB għal kull messaggio indipendentement minn kemm huwa qasir il-messaggio, li huwa l-prezz tal-inkapsulazzjoni mill-ġdid kull darba minn than ir-riżuża ta' sigriet komuni.
6.2 Payloads li jiddeskrivu lilhom innifhom
Il- pq2. Il-prefix jagħmil id-deployment inkrementali: huwa li jiddeskrivi lilu nnifsu, sabiex il-klijent jagħżel il-mixxa tad-deċifrat billi jispeċja l-payload minflok billi jitvidi tag jew jiftakar x'issostni l-peer. Il-lettur li ma jirrikonoxxix prefix ma jkunx kapaċi jiftaħ dak il-payload minflok ma jaqra'lhu ħażin, u l-messaġġi ssiġillati qabel ma l-parti kull waħda tista' tagħmel post-quantum jibqgħu qsimi bħala NIP-44 ordinarju mingħajr migrazzjoni.
Id-dekapŝulazzjoni tal-ML-KEM iddesignata biex qatt ma tifall: jekk jingħata ciphertext imfarrat ħażin, it-tranformazzjoni Fujisaki-Okamoto tirritorna sigriet deterministiku pseudo-random minflok żball. Għalhekk, klavijiet ħażin ma jidhirx affatto fil-livell tal-KEM — jidher bħala falliment tal-HMAC ġewwa NIP-44, li hija l-istess tratta kif jidher klavijiet klassiku ħażin. Il-kallanti jitrattahom it-tnejn identikament, għalhekk il-falliment ma jġib l-ebda sinjal differenti. Huwa wkoll dak li jagħmel il-lista tal-kandidati tas-Sezzjoni 9.1 operabbli: il-klijent jipprova kull klavijiet waħda wara l-oħra u jħalli NIP-44 jgħid liema wieħed kien dak it-tajjeb.
6.3 It-tnejn il-manijiet tal-wrapp tal-rigal
A NIP-17 messaġġ privat huwa wieħed NIP-59 imballaġġ rigal: għanida mhux imniet, imsellata taħt il-ċwieċ tal-identità tal-madrux (tip 13), imbagħad imballata taħt ċwieċ temporanju ġenerat għal kull messaġġ (tip 1059). Fuq login li żżomm il-ċwieċ tal-identità direttament, Nymchat iżmerġi t-tnejn il-livelli, masing b'l-enkapsulazzjoni tiegħu stess.
Il-login ta' imxaria jieħu biss il-livell estern. Is-sigill jiġi prodotti mill-imxaria bħala NIP-44 ordinarju — l-applikazzjoni qatt ma tara l-klaviex li jsiruha — għalhekk ma jistax jiġi hybridizzat fil-post tiegħu. Dan ma jikkostawx xejn kontra l-attakk fil-kwistjoni: is-sigill huwa aċċessibbli biss permezz tal-wrap, u l-wrap huwa dak li jżomm ir-rekordator. Avversarju li għandu traffiku rrekkordat għandu jikserp ML-KEM qabel ma s-sigill jkun hettax viżibbli biex jattakkah.
7Messaġġi tal-grupp u kopertura parzjali
Messagg tal-grupp mhux ciphertext wieħed. Huwa l-istess plaintext li jitferra' għal kull membru, fejn kull kopja hija inkapsulata għall-klavijiet ML-KEM proprji ta' dak il-membru. Membru li ppubblika klavijiet jirċievi wrap ibridu; wieħ li ma ppubblikax jirċievi wrap klassiku.
Dan joħloq problema ta' kontabbiltà li implementazzjoni sempliċi tħerrs fiha. Jekk twiegħ tenin mill-membri jirċievu kopja ibrida, il-messaġġ huwa le tmienja l-għaxra protetti. L-avversarju jeħtieġ kopja klassika waħda ta' plain-text li tkun identika f'kollu għax, għalhekk il-messaġġ huwa protett biss jekk kull kopja hija.
Nymchat għalhekk traċċa l-ikcoveriġġ għal kull messaggio durante l-fan-out — il-kont jista' jkun biss magħruf waqt li l-wraps qed jinbnu — u l-badge jirrapporta "reżistenti għall-quantum għal 8 minn 10 membri" minflok ma jiddikjara li l-messaggio huwa protett. Fejn m'hemmx kont disponibbli, li hija l-każ normali għal riċevut messaġġ tal-grupp (chekk biss is-sender jikkonta l-fan-out), l-interfaċċa tirrapporta protezzjoni parzjali minn qabil protezzjoni sħiħa. Il-klażim ta' protezzjoni sħiħa ibbażat biss fuq il-kopja proprja stess ikun esagerazzjoni dwar il-messaġġ b'tuluq.
7.1 X'irrapporta s-skuda
Il-skut jiddikjara l-verità dwar il- messaġġ, mhux dwar is-softwer li xtaqha:
- Protezzjoni sħiħa: kull kopja ta' dan it-test plain ħarġet hybrid.
- Partizzjali: xi kopji ta' messaġġ tal-grupp ħarġu b'mod klassiku. Riżultat degradat minflok sħiħ, għax kopja klassika waħda ta' plain-text identika f'issaħħa hija kull ma għandu bżonn l-avversarju.
- Il-Klasiku huwa stipulat b'mod dirett minflok ma jidher permezz ta' nuvens ta' badge li ma juri xejn, għax indikatur nieqes huwa ambigwu bejn 'mhux protett', 'meqtul', u 'din il-verżjoni m'għandhiex din il-karatteristika'.
Id-deċiżjoni tiġi rreġistrata meta l-messaġġ jiġi ssiġillat minflok ma tiġi rikalkolata minn dak li jippubblika peer aktar tard. It-test imċiferat li diġà preżenti ma jistax isir protezzjonat aħjar minn kif kien, u interfaċċa li turi messaġġi qodma milliġi b'forza ta' anonsju ġdid tkun qed tiddikjara xi ħaġa falza dwar il-bytes fuq relay.
Ir-regoli tal-grupp ta' fuq jiżdiedu fuq dan minflok ma jirreplacawh: messaġġ tal-grupp huwa proteġit għal kollox biss meta l-kopja ta' kull membru kienet proteġita, u messaġġ tal-grupp riċevut b'ebda kont ta' kopertura juri 'parzjali'.
8Kopji indirizzati għalik stess
Divers affarijiet li l-kljent jaħżan huma enkriptati għall-identità tal-utenti stess: is-settings sinkronizzati, il-lista tal-konversazzjonijiet, l-ikjaves tal-grupp, u l-arkivju tal-messaġġi. Dawn iġibu aktar informazzjoni dwar utenti minn kif tagħmelha laħħa l-laħħa mill-aktar messaġġi singoli, għalhekk ittrażihom klassiċi jġegħelhom l-artifatt miktum mill-aktar dgħajf, irrispettivament minn kemm il-messaġġi stess kienu sigillati b'attenzjoni. Huma jużaw l-istess ibrid, ikapsulat mal-ikja tal-asa derivata mill-utenti stess — bil-istess eċċezzjoni waħda deskritta fis-Sezzjoni 3.2, il- nymchat-pq-root il-kategorija stess, li ma tista'x iseglat taħt
ċav li biss hi tista' tipproduċi.
Dawn l-artifatti huma fejn id-disinn huwa l-aktar importanti. A "blob" ta' settings jew linja ta' archivia toqgħod f'post wieħed għal snin, li hija eżattament it-tip ta' ħaġa li avversarju li jgħallim "ħasel-issa-deċifra-ftit-ikel" jġibilha — ħafna aktar minn kwalunkwe msiġġa singola, li hija mill-inqas efemera fil-moħħ tal-utenti stess.
Limitazzjoni wieħda jirregola l-format hawn minflok il-klavi. Kopja bi l-indirizz tagħha stess għandha tkun terbba minn kull apparat fuq il-kont, għalhekk kull apparat jiddikjara x'jista' jiftaħ fil-lista li l-annunċju tiegħu jġibha, u l-kont jikteb biss dak li kollha jistgħu jaqraw. Kittiba ta' xi ħaġa oħra tkun ikaqel apparat barra mill-settings tiegħu stess — l-istess falliment sieket li s-Sezzjoni 3.2 tevita b'modijiet oħra, billi jasal minn direzzjoni differenti.
Apparat li żżomm l-identità iżda mhux ir-root ma jistax jiftaħ xejn imbarrat mal-klavijiet derivati mir-root, inkluż is-settings tiegħu stess. Dak huwa konsegwenza intenzjonali, mhux ħasba, u għalhekk Sekzjoni 3.3 għandha prompt għal tali apparat biex jagħmel linking minflok ma jittimbra root ġdid: root sani ma jagħmilx il-blob qreadibbli, se jifräġmenta biss il-materjali tal-klavijiet tal-identità f'żewġ parti. Sakemm il-user ma jgħaqqadx dan, l-apparat ikompli jaħdem — jiddeċiedi... iqerra dak li għandu l-klavijiet tiegħu u jirsilja b'mod klassiku.
Apparat li jmexxi estensjoni tal-browser jew sigillat remott (NIP-46) ma għandux l-ebda nsec li jiddiventi minnu, iżda għandu l-kodiċi tal-irkupru, u taħt il-kostruzzjoni bil-layers ta' Sekzjoni 6.1, dak huwa kull ma għandha bżonn il-naħa post-kwantika: is-sigillatur jipproduċi s-satra NIP-44 kif dejjem għamel, u l-klijent jagħmel il-keying tas-satra ta' barra stess. Login bħal dan huwa partisipant ordinarju f'żewġ direzzjonijiet.
9Rotazzjoni
Il- epoch l-kontar fid-derivazzjoni huwa dak li jagħmel ir-rotazzjoni possibbli mingħajr materjal ċwiep ġdid. Il-żieda tiegħu jipproduċi par ċwiep ġdid mill-istess raduċ u anons ippubblikat mill-ġdid; il-peers jieħdu l-ċwiep il-ġdid mill-irrekord li jista' jinbidel. Ir-rotazzjoni għalhekk ma titlobx lill-utent jikteb xejn għal darbietiesen: ir-raduċ jiġi ġenerat darba għal kull identità u l-epoka hija li tagħmel it-tbidil.
9.1 L-epoki qodma jinżammu, u ebda xej'x ma jiġi enkriptat mill-ġdid.
Xejn ma jiġi miktub mill-ġdid meta l-klavijiet jirotaw. Klient jibni kandidati għad-deċrittarazzjoni mill-epoka kurrenti għal isfel sa l-epoka − 3, sabiex messaġġ imsigħat ftit qabel rotazzjoni għadu jinfeta' kontra l-par tal-klavijiet li kien kurrenti meta sienna.
Dak il-perjodu huwa li tagħmil ir-rotazzjoni sigura għal kollox: mingħajrha, kull rotazzjoni tħallek kull ma kienet qed jiġri lura. Kull ma kienet imċerpata diġà jibqa' qaltu għall-kmil tal-identità, għax messaġġ li l-utenti ma jistgħux jifetħu huwa deterministement agħtar ħażin għalihom minn wieħed li l-protezzjoni tiegħu ma tista'xx tiġi rriforzata retroattivament (Sezzjoni 10.5).
10Dak li dan ma jipproteġix
Dokument li jsemmi biss dak li jikkunċellija d-disinn mhuwiex deskrizzjoni ta' sistema, u li tifermenta żżejjed proprjetà ta' sigurtà f'interfaċċa huwa ħażin aktar minn li ma tgħidxha. Dak li jmissu huma barra minn dak li tdifendi din il-kostruzzjoni.
10.1 L-għerq huwa sigriet it-tieni, u t-telfa tiegħu mhux rikumerrabbli.
Dan huwa l-prezz reali tad-disinn. Il-kostrizzjoni fis-Sezzjoni 2 li l-utenti għandhom ikollhom eżattament ħaġa waħda biex iżommu ma tista'xxiħheld: l-nsec waħdu ma jirrikonstruixxi l-illaw post-kwantiku, għax il-punt kollu huwa li l-ebda valur pubbliku u l-ebda sigriet ieħor ma jikxefuha. Jekk l-ebda apparat ma jżomm ir-root u l-ebla’{%s} wraps tas-Sezzjoni 3.2 ma jistgħu jitftħu, il-materjal imsigħat mal-illaw derivat mir-root ma jistax jiġi rrikuperat. M'hemmx escrow u m'hemmx awtorità li tista' żżomm waħda dolożament.
Bil-trasferiment manwali l-unika triq, dan huwa aktar minnu jidher mill-ewwel. Utenti li qatt ma jikkoppja l- nympq1… code anywhere għandu eżatt kopja waħda tiegħu, fuq apparat wieħed, u t-telfa ta' dak l-apparat forfait kull messaggio post-quantum, blob tas-settings u linja tal-arkivju sigillata għalih. Il-
nsec ma jgħin xejn; dik hija l-proprjetà li d-disinn kollu jappoggia fuqha.
Kull triq imbalut li tiġi żżata aktar tard għandha tgħaddi mill-istess standard li tgħaddi minnu dik manuella. Attakkatur jattakka l-triq l-aktar irħisa disponibbli, għalhekk skema għandha l-istess valur li għandha r-rutta ta' restawrazzjoni l-aktar dgħajfa tagħha — passphrase li tista' tiftakar faċilment, per eżempju, tagħmel kollox jarġi biss dak li għandu valur il-passphrase, u r-linja imbalutata hija proprjament l-artifatt li l-adversarju li jġibilha-l-issa-u-jiddeċifra-tard jiġbor u jiddeċifra offline bil-ktieff.
10.2 Awtentikazzjoni, distinta minn konfidenzjalità
Kull emċija f'Nostr hija Schnorr fuq secp256k1, u dan ma tibdilx hawn. Avversarju b'kompjuter kwantiku jista' jifrigġa emċijiet u jippersonifika utent f'tempo reali. Dak li jilqgħod l-iskambju tal-klavi hybrid huwa "ħasid-issa-deċifrar-ftieq": attakkatur li jirrekordja traffiku illum ma jistax jaqrawh aktar tard. Dan ma jagħmilx messaġġ impossibbli li jiġi forġat kontra avversarju li għandu diġà l-magna. Din id-differenza hija mġebbeda fil-applikazzjonijiet b'mod deliberat — l-indikazzjoni tal-qfil tirrapporta awtentikazzjoni, is-scudo jirrapporta konfidenzjalità, u huma glifi separati għax messaġġ jista' jkollu wieħed mingħajr l-ieħor.
Huwa jlimita wkoll dak li l-annunċju fis-Sezzjoni 4 jista' jwiegħed. Il-rabt bejn npub u klavi ML-KEM huwa sigatura secp256k1, għalhekk avversarju li jista' jisfalsifika dawk jista' jissibstitwixxi klavi tiegħu stess. Il-konfidenzjalità kontra avversarju futuru mhix sama' mal-awtentika kontra wieħed.
10.3 Metadatak
L-imballaġġ tal-rigali jinkopri lil li għamel ir-rigal, lir-riċevitur lil hinn minn wieħed p it-tag, it-tip, u it-timestamp tal-messaġġ interni. Ma taħvisiex li l-avvent jirriżisti, id-dimensjoni tiegħu, jew meta rċevietha relè. L-analisi tat-traffiku mhix tritata minn ebda parti minn dan id-disinn.
10.4 Il-mesh offline
It-trasport Bluetooth mesh ta' Nymchat huwa protokoll separat b'dan il-handshake proprju tiegħu, u mhuwiex kopert minn dan ix-xogħol. Il-messaġġi fuq il-mesh huma klassiċi.
10.5 Messaġġi diġà imsira
Test imżitret waqt li kull naħa kienet għadha klassika jibqa' klassiku għal dejjem. Huwa diġà jeżisti u ma jistax jiġi mċalf mill-ġdid. Il-protezzjoni tibda mill-messaġġ fejn iż-żewġ naħat kellhom cwieċijiet post-kwantika, mhux fil-mument li l-karatteristika kienet imxegħla.
11Alternattivi kkunsidrati
| Approċċ | Għaliex mhux? |
|---|---|
| Deriva l-ċav post-kwantiku mill-ċav tal-identità | Rifiżat. Id-derivazzjoni hija algoritmu pubbliku fuq in-nsec, u avversar kwantiku jirriġera l-nsec mill-npub ippubblikat, għalhekk il-ħelsa tal-parti klassika tgħaddi l-parti post-kwantika miegħha. Solva kull problema ta' distribuzzjoni f'dan l-artiklu u ma ddifensx kontra ħadd. Sekzjoni 3.1. |
| Ibgħat l-root għall-apparati l-oħra tal-utent permezz ta' NIP-44 | Rifiġut għall-istess raġuni, biss b'ħwejjiġi differenti. Root imintrata taħt enkrizzjoni klassika biss hija rikuperabbli minn kullimkien li rreġista dik il-messaġġ u jifred il-klavijiet tagħha aktar tard, li huwa l-avversarju li l-root għandu jwaqqaf. |
| Par ikliet ML-KEM ġenerat separatament fuq kull apparat | Irrifjutat. L-apparatijiet ikollhom klavi ta' decapsulation differenti, u annunċ sostitutibbli wieħed għal kull identità ma jistax iġorrhom kollha. Il-peers jinkriptaw għall-klavi li kien ippubblikat l-aħħar, u kull apparat ieħor ma jkunx ikun kapaċi jaqra r-riżultat. Root wieħed għal kull identità, li jiġi mċaqqel permezz tal-paths tas-Sezzjoni 3.2, huwa dak li jipprevjeni dan. |
| Iqegħes ir-root taħt PIN | Irrifjutat. PIN ta' erba' numri huwa madwar il-13 bit kontra attakkatur offline li għandu r-rixiela imħassra. Offrih ħdejn żewġ rotav ta' 256 bit se juri b'mod ħażin il-valur tal-aktar wrap dgħajf. |
| Estendi l-npub biex iġġorr it-żewġ klaviżijiet | 1,184 bytes mhux identifikatur li jista' jiqsam, u kien se jħassar l-analisi ta' kull client Nostr eżistenti ta' indirizz li huwa definita bħala 32 bytes. |
| Servizz ta' direttorju prinċipali | Irrifornix l-awtorità li n-netwerk jeżisti biex jevitaha. Kulħadd li jwieġeb il-lookup iddeċiedi min jista' jaqra l-messaġġ. |
| Attacha l-klaviex għal kull messaġġ. | Ma jsolvi xejn: l-imħarreġ għandu bżonn il- tal-riċipjent ċav qabel l-ewwel messaġġ, li huwa proprjament il-każ fejn m'hemm l-ebda messaġġ preċedenti biex iġorrhu. |
| Negozjazzjoni tal-kapaċità flimkien tal-banda | Tħolq superfiċi ta' downgrade. Attakkatur li jista' jneħħi flag ta' kapaċità jġiegħel is-sentier klassiku. |
| Chaw post-kwantiku biss, mingħajr ebda parti klassika. | Jidħbat deċennji ta' analiżi ta' secp256k1 fil-kmexija għal element primittiv ħaffa aktar ġdid. Il-ħibridu jinsilħ biss jekk it-tnejn falliment. |
12Parità ta' implimentazzjoni
Nymchat jirrilaxxa żewġ implementazzjonijiet indipendenti ta' din il-kostruzzjoni — waħda f'JavaScript għall-applikazzjoni tal-web, u waħda f'Dart għall-applikazzjonijiet mobbli, inklużità port ta' ML-KEM-768 minn zero. Żewġ implementazzjonijiet tal-istess primittiv normallament huma riskju, għalhekk huma immitqina kontra xulxin minn qabel ma jiġu fidati li jaqbgħu l-istess.
L-implementazzjoni Dart ML-KEM hija validata kontra l-uffiċjali
NIST ACVP
testijiet b'tweġibiet magħrufa għal ML-KEM-768 (ML-KEM-*-FIPS203) — 25 ġenerazzjoni tal-klavi, 25
enkapsulazzjoni u 10 każijiet ta' dekapssulazzjoni, li jiġu rridu bħala suite tagħhom stess. Dawn huma l-vektori li NIST
ipubblika biex jivvalidaw implementazzjoni, għalhekk il-passaġġ tagħhom huwa prova li l-port huwa korrett, mhux
sempliċement prova li ż-żewġ klijenti jaqaru ma' xulxin. Fuq dan,
fixture komuni ta' vektori tat-test — derivazzjoni tal-seed, enkapsulazzjoni, it-żewġ formati tal-payload, u
gift wraps kompletament — tiġi ġenerata
nympq1… il-kodiċi jindika jew jgħid dwar il-byteijiet li jinstradu miegħod messaġġ. Diverġenza f'issaħħa ta' xi implementazzjoni twaqqaf il-build minflok ma tuġġrad messaġġ li l-client l-ieħor ma jistax jiftaħ.
Il-fingerprint يستحق li jiġi ssemmiet fost dawn. Huwa li jgħid lid-dispositiv “dan huwa r-root li għandi” minn “dan huwa wieħed differenti”, u klient li ma setgħach irreproduċi l-fingerprint ta' klient ieħor kien qiegħed jaqra rekord perfettament tajjeb bħala l-ebda rekord għal xejn — u mbagħad, segwut għall-Sezzjoni 3.3, joħloq r-root għandu wieħed sbiecH u jqasam l-identità. Huwa veċċtor għal eżattament dak ir-raġuni.
Nymchat huwa sorsi miftuħin taħt il-AGPL-3.0. Il-ċore kriptografiku deskritt hawnhekk huwa
js/nym-crypto.js u js/modules/pq.js fil-kljent tal-web, u
lib/core/crypto/ bi lib/features/identity/pq_registry.dart f-
il-klijenti mobbli.
Għal spjegazzjoni inqas twila u mhux teknika, ara... Paġna tal-bażi tal-għarfien dwar l-enkrizzjoni reżistenti għall-kwantum.