Bażi tal-għarfien: enkrizzjoni reżistenti għall-kwantum

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.

Verżjoni 1.0 Awwest 2026 Applika għal Nymchat 3.74+

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.

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:

Il-mistoqsija

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:

2Kostriżijiet tad-disinn

Erba' vinkolijiet determinaw il-risposta, u jeskludju l-aktar disinnijiet ovvji qabel ma jiġi miktub ebda kodiċi.

  1. 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.
  2. 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.
  3. 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.
  4. 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.

Ir-regola li kollox isegwi minnha

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).

Nota tal-disinn: dik il-kategorija waħda li ma tistax tuża l-klave l-ġdida

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:

  1. Iktar għal wieħed eżistenti nymchat-pq-root rekord.
  2. Instab rekord, u dan id-dispositiv jista' jinfidhlu — adottaha u annunċa din l-identità bħala kapaċi għall-post-quantum.
  3. 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ġà
  4. 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:

OsservatMezziIbgħ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:

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.

Rifjut impliċit

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.

A hybrid NIP-59 gift wrap: the rumor sealed under the sender's key, that seal wrapped under a per-message ephemeral key, both layers carrying a NIP-44 ciphertext inside a post-quantum AEAD. kind 1059 — wrap  ·  signed by a per-message ephemeral key content = pq2.<kem_ct>.<aead>   inner = NIP-44(eph, recip)   outer key = ML-KEM(recip) kind 13 — seal  ·  signed by the sender's identity key content = pq2.<kem_ct>.<aead>   inner = NIP-44(sender, recip)   outer key = ML-KEM(recip) rumor — unsigned the message: kind, content, tags, author pubkey unsigned on purpose — a signature would be portable proof
Żewġtien tal-livelli tal-enkrizzjoni huma ibridi, kull wieħda b'enkapsulazzjoni ML-KEM indipendenti. Il-livell barra huwa marbut ma' sigriet temporanju, sabiex il-wrap ma jikxefx l-imħarreġ.

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:

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.

Limitazzjoni li tista' tinstata

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&#39;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 &minus; 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&#x2019{%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.