Motheo oa tsebo: khakanyo e sitanang le quantum

Pampiri ea boitsebiso ea mosebetsi ea Nymchat

Tumellano ea Sefofane sa ka mor'a Quantum ho Nymchat

Ho phatlalatsa lithupu tsa bofihlo tsa ML-KEM-768 ka Nostr ntle le mokgatlo kapa a rejista, le ho li tšesa ho tsoa sephiring seo ntho e ’ngoe le e ’ngoe ea umumano e sa se hlahisang.

Mofuta 1.0 Pherekhong 2026 E amana le Nymchat 3.74+

Ho kenya mokhoa oa post-quantum key exchange ho messenger ha se bothata ba khrifotogafi haholo. Lisebelisoa tsa motheo li tiisetsoe mme lisebelisoa tsa lenaneo li teng. Karolo e thata ke hore mohoeletsi e mong le e mong hona joale o hloka... ea bobeli senotlolo se bulehileng, mme lenete le sa itšetlehang ka motho a le mong ha le na sebaka se hlakileng sa ho se beha. Lekaletsana lena le hlalosa hore na Nymchat e araba joang seo — moo senotlolo sa bobeli se tsoang teng, mokhoa oo se fihlang ho batho ba se hlokang teng, le hore na sekopanya se lumelloa ho bolela eng ka sephetho seo — mme, karolong ea ho qetela, hore na sephetho seo ha se sireletse eng.

1Bothata

Melaetsa ea boiphihlelo ea Nostr e sisinyehoa ka NIP-44, e nang le likarolo tse peli tse ka aroloang. Karolo e hlorisang sengoloa se hlakileng — ChaCha20 le letshwao la HMAC-SHA256, e nehelletsoeng ka HKDF (RFC 5869) — ha e tšositsoe ka mokhoa o utloahalang ke khomphutha ea quantum; algorithm ea Grover e fana ka lebelo le hlahloang ka square-root khahlanong le symmetric key, 'me bits tse 256 li amogela seo. Karolo e le nngwe e o dumalana ho seneai ho na le elliptic-curve Diffie-Hellman holim'a secp256k1, mme algoritimo ea Shor e rarolla logarithm ea discrete ka ho feleletsa. Ho fumana kata e le 'ngoe ea sephiri ho tsoa ho eona ea sechaba ho hlahisa sekre se seng le se seng se arolelaneng seo kata eo e se hlahisitsoeng ka morao.

Tšohanyetso eo sena se e bapalang ha e emela ho fihla ha sesebelisoa se joalo. Moferefere ea nang le sebaka sa ho boloka lintho a ka rekota melaetsa e entso ka moralo (ciphertext) kajeno, 'me a e hlakole nako le nako ha bokhoni bo ka fihla. Ntho efe kapa efe e rometsoeng hona joale e tla neng e ntse e le bohloko ka nako eo, e se e tšepahala. Lena ke tšusumetsano e itseng eo post-quantum key exchange e e hlolanang, 'me ke lebaka leo mosebetsi o ke keng oa emela hore sesebelisoa se e haoe.

1.1 Potso eo pampiri ena e e arabang

Lekobiso lena le utloahala hantle: sebelisa mokhoa oa ho boloka lenaka oa post-quantum hammoho le phahlo ea mekhahlelo e tloaelehileng, hore mofeki a tlameha ho pshatla tsona tše peli hore a khone ho bala ntho efe kapa efe. Nymchat e sebelisa ML-KEM-768 (FIPS 203). Sena se hlahisa bothata ba pharalatso hang-hang:

Potso

Ho romela Alice molaetsa kajeno, o hloka ntho e le 'ngoe: npub ea hae. Ha o kenya mokhoa oa post-quantum, o hloka ntho ea bobeli — ML-KEM public key ea hae. Senotlolo seo se iphuthetsa kae, 'me o se fumana joang pele o ka mo romella ntho efe kapa efe?

Npub e ikemetsa. O ka e ngola pampiring, o e bala ka lentsoe le phahameng, kapa o e scan leihlopong, mme ke tsohle tseo motho e mong le e mong a li hlokang ho u romella molaetsa o sireletsehileng. Sokeyele ea sechaba ea ML-KEM-768 ke byte tse 1,184. Ha e ka baloe ka lentsoe le phahameng, ha e ke ke ea tahloa lebitso la mosebelisi, mme ha ea lokela ho ba ka khoutu ea QR ha e le haufi le boitsebiso bo nang le byte tse 32 feela.

Boholo ke karolo e bonolo. Karolo e boima ke hore konoa ya bobedi e tlisa mathata a mararo a fapaneng, mme karolo e setseng ya pampiri ena ke karabo e kgolo ho tsona:

2Limata tsa moralo

Meeli e nne e ile ea bopa karabo, 'me e kgoreletsa moralo o mongata o bonahalang pele ho ngoloa khoutu efe kapa efe.

  1. Lipiri tse se seng tse sennye haholo kang ha e kgonahala. Ba sebelisi ba Nostr ba se ba ntse ba tšoere sekreto a le senyane se le se seng feela, e leng nsec. Sekreto se seng le se seng se eketsoang ke tsela e nngwe ya ho lahlehelwa ke nalane ya hao, mme motho ya tsebang ho boloka nsec a ke ke a tseba ho boloka ntho e nngwe le nngwe. Karolo ea 3.1 e bontša hore sena se ke ke sa phetheha hang-hang — konokhe ea post-quantum e tsoang ho nsec ha e fane ka tšireletso e le 'ngoe ea post-quantum — kahoo moralo o sebelisa sekreto a le senyane se le se seng feela: karolo e le 'ngoe ea lisebelisoa tsa konokhe, e hlahisitsoeng hang feela bakeng sa boitsebiso, e bontšoa ka sebopeho se tšoanang le nsec le sebakeng se tšoanang, e le hore motho e mong le e mong ea tsebang ho boloka e le 'ngoe a tsebe le ho boloka e 'ngoe. Karolo ea 10.1 e bua ka nnete mabapi le hore na sena se sa ntse se senya eng.
  2. Ha ho na taolo. Ha ho na serivara se ka tšepahalang ho bolela hore khonofotso efe e amana le mang. Serivara sefe kapa sefe se joalo se fetoha sebaka moo melaetsa e ka fetolohelang litsela.
  3. Lisebelisoa tse ngata, boitsebiso bo le bong. Identity ea Nostr hangata e sebelisoa ka lerefo (clients) tse ngata ka nako e le ngoe. Lintlha tsohle tsa senotlolo tse teng li tlameha ho ba tse ling kaofela, 'me litsela tse li tsisa teng li ke ke tsa baloa ke motho ea lwantang (adversary) oo tšebeliso ena e lwantang le eona.
  4. Ha ho puisano. Papali efe kapa efe ea hore "ke li-cipher life o li lumellang?" e etsahalang ka hara tsela e tšoaneng ke sebaka seo mofeki a ka se sebelisang ho tlosa lintlha ho qobella hore ho sebelisetsoe tsela e fokolang. Moralo o tlameha o se na setho se ka fokotsang boleng.

3Sekreto sa motheo se ikemetseng

Qeto ea bohlokoa ke hore senotlolo sa decapsulation sa ML-KEM se tšepelletsoa ho tsoa ho lisebelisoa tsa senotlolo tseo ntho efe kapa efe e pepeneneng e ke keng ea li hlahisa. Boitsebiso ka leng le fumana senotlolo se le seng se seholo, se hlahisitsoeng hang feela:

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)

Motheo o bontšoa ho moetsi ka tsela eo nsec e bontšwang ka eona: bech32 ka tlhaku-selele e utloahalang ho batho nympq, kahoo se bala joalo ka nympq1…, e bontšoa kapele ho nsec tabeng ea boitsebiso ka tsela e tšoanang le ha nsec e bontšoa, e kopitsoe ka mokhoa o tšoanang, ha e kile ea ngolwa kapa ea romeloa hohle ka mokhoa o bulehileng. Ha se password ebile ha se login. Ke lisebelisoa tsa senotlolo tseo mo Using a ka li boloka, ka tsela e tšoanang le nsec.

Letswai le arolatsoe ka domain ka morero, kahoo sephiri se seng le se seng ha se ke sa khona ho hlahisa sehlopha sa lintlolo se tšoanang. Ho epoch counter e tsamaisa potololo (Karolo ea 9).

3.1 Hobaneng senotlolo se ke sa fumanoa ho tsoa ho senotlolo sa boitsebiso

Moralo o hlakileng ke ho tsoa ho keypair ho sephiri seo moeleli a se nang sona hona joale:

seed = HKDF(salt = "…", IKM = nsec)          // do not do this

E khahleha ka mabaka a mane, ohle a le 'nete: ha ho letho le ncha se hlokang ho tšehetsoa, hobane nsec e se e le tšehetso; sesebelisoa se seng le se seng se lumellana ka mokhoa oo se hlahisitsweng ka oona, ntle le molao oa ho leqeta (synchronization protocol) o ka fosa; pitsiso e le 'ngoe e ka fetoloang bakeng sa sebitso (identity) e bonahala e le e nepahetseng, hobane lisebelisoa li ke ke tsa lumellana ka ntlha ea senotlolo; le hore senotlolo se se ntse se le teng pele se hatisoa, kahoo mosebelisi (client) a ka khona ho tiisa ntho e itseng bakeng sa hae nakong ea pele ha a qala ho sebetsa.

Melemo eohle e meraro e le nne ha e na thuso, ka lebaka le le leng. Shor's algorithm e sebetsoang khahlanong le npub e bontšhitseng, e fana ka nsec. Seed derivation ke lenaneo le tsebahalang ho bohle le sebetsoang holim'a nsec. Kahoo, moferehi ea feteletsang lehlakore la khale (classical half) o aha hape lehlakore la post-quantum ka ho sebelisa HKDF e tšoanang le eo bohle ba e sebelisang. Khahlanong le "harvest-now-decrypt-later" — kotsi e le ’ngoe feela eo tšebeliso ena e lokiselitsoeng ho e thibela — konokhe e hlahisitsweng ka tsela ena ha e tlisetse ntho e letho hohle.

Molao oo tsohle li latelang ho oona

Key ea ML-KEM ea decapsulation e tlameha ho tsoa ho entropy e sa khoneng ho hlahisoa ho tsoa ho nsec, e bile e se e rometsoe ka mokhoa oa tšireletso oa mokhoa oa khale feela.

Temana ya bobedi ya molao oo e sebetsa joalo ka ya pele. Sekereiti se hlahisitsweng ka ho ikemela se ntseng se kopantsweng pakeng tsa lisebelisoa tsa mosebelisi ka hara molaetsa wa NIP-44 wa mofuta wa mohlala ke phoso e ne e le e le nngwe feela e nang le mehato e eketsehileng: mofetoaki o rekota molaetsa oo kajeno mme a fumana senotlolo sa sona sa mofuta wa khale hamorao, mme motheo o wa. Ke hobaneng mekhahlelo sekishoneng se latelang e le jwalo, le hore hobaneng ha e none e le "e romelle ho lisebelisoa tsa hau tse ding."

3.2 Ho fumana root ho lisebelisoa tse ling tsa mo sebelisi

Kokoana 3 ea Karolo ea 2 — boitsebiso bo le bong, lisebelisoa tse ngata — ha e ke ke ea khotsofatsoa ke lipalo mona, hobane ntlha ea bohlokoa ke hore senotlolo hase ntho e hlahiswang ke ntho efe kapa efe eo lisebelisoa li seng li e amathana eona. Ho tlameha ho khotsofatsoa ke tšabelano ho e-na le hoo, 'me ho na le tsela e le 'ngoe feela: moetusi o tsamaisa nympq1… ba itlhahabela ka khoutu.

Motso o bontšoa joalo ka nympq1… ho feta nsec, le sesebelisoa sa bobeli se a se amohela ha se kopolitsoe leboteng le le lekanang. Ke mokhoa oohle o sebetsang tjena. Sesebelisoa se sa fangoe khoutu se ke ke sa nka karolo, seo Karolo ea 4.2 e se hlalosang.

Ho fetisa ka letsoho ke motheo o reretsoeng ho e-na le hore e be mohato oa pele. Molao o karolong ea 3.1 o re motheo ha o mothaa ho tsamaea ka polokeho (encryption) ea mehlala ea khale feela, mme mofuta o mong le o mong oo o ka etsang hore sena se iphethele — ho sehlanyetsa ka relay, ho e kopanya le senotlolo sa boitsebiso — o qhekanyetsa hona seo. Mohato oo moetsi a o etsang ke lebaka leo polokeho e leng nnete ka lona.

Sebopeho se siea sebaka bakeng sa tsela e phuthelitsoeng: rekoto e ka nka lethathamo la liphuthelo, e 'ngoe le e 'ngoe e le AEAD blob tlas'a senotlolo seo moetleli a ka se kopitsang ho sesebelisoa se seng — mohlala, thuloutlo ea PRF ea passkey. Ha ho na se seng se fanoang hona joale, mme ho fihlela ho thoe ho na le se seng, ... nympq1… khoutu ke tsela e le nngwe ya ho feta. Karolo 10.1 e hlalosa hore na hoo ho le bokae.

Rekoto ka boyena e lula mofuteng oa liteenete oa eona, nymchat-pq-root, mme e itlhahloela tsela eo likarolo tse ling di etsang ka yona. Le ha e se na li-wrap, e etsa mosebetsi o bohlokoa: ho ba teng ha yona ke tsela eo sesebelisoa sa bobeli se ithutang ka yona hore boitsebiso bona bo se na motheo, seo se emang sesebelisoa seo hore se hlahise se seng se sa tšoaneng (Karolo 3.3).

Tlhahiso ea moralo: mofuta o le mong oo o ke keng oa sebelisa key e secha

Ha ho na lentsoe le le kang "the" ka Sesotho. nymchat-pq-root mokhahlo o lokela eseng ho bolokwa ka senotlolo sa ML-KEM se tsoang ho motheo. Mola oo o na le khophi e le nngwe feela ea motheo, kahoo ho o thiba ka senotlolo se tsoang ho motheo ke lokotlo e nang le senotlolo sa eona ka hare ho lokotlo: ha ho letho le ka li bukang, le kenyeletsa le le leng le le ngotseng. E thibilelletsoe ka mokhoa oa khale — NIP-44 ho eona ka boona — kapa e sa thibile. Lena ke leona sebaka feela moo moralo o amohelang tšireletso ea mokhoa oa khale feela, 'me o ka e fana ka eona: mola oo ha o na motheo kajeno, o na le nnete feela ea hore o teng.

Likarolo tsohle tsa litlhophiso tse ling li ka, ebile li lokela ho sebelisa senotlolo se tsoang mohlala o motle. Sena ke leqholoso le le leng feela, mme ke leqholoso mabapi le ho potapotela ho e-na le mabapi le matla.

3.3 Tlhaho le ho amohela

Ha sesebelisoa se qala, a nang le boitsebiso bo tiileng, mosebelisi o sebetsa ka tsela ena:

  1. Batla se se ntseng se le teng nymchat-pq-root oka.
  2. Rekoto e fumanehile, mme sesebelisoa sena se ka e bula — e amohele 'me u phatlalatse boitsebiso bona joalo ka bo khonang ho sebetsana le post-quantum.
  3. Rekoto e fumanehile, 'me sesebelisoa sena se ke ke sa e bula. — se ke wa hlahisa motheo o mocha, mme o se ke wa ntša phatlalatso efe kapa efe. Fa pitso ho moetleleli ho hokahanya sesebelisoa sena ka ho kenya... nympq1… khoutu ho sesebelisoa se seng se se na le hona.
  4. Ha ho na rekoto — hlahisa motheo, phatlalatsa rekoto, tsebisa, le ho bontša nympq1… khoutu ho moetusi hang feela hore ba khone ho e boloka.

Mohato wa 3 ke mohato oo ho bonolo ho o etsa hampe, mme ke lebaka leo tlhophiso e ngolletseng hona e seng ho tlohetlwa ho tlo etswa ke tshebetso e nngwe le e nngwe. Lisebelisoa tse pedi tse nngwe le e nngwe ha di kgetha ho hlahisa motso, di hlahisa metso e fapaneng tlas'a boitsebiso bo le bong, mme ke phoso eo tlhophiso ena e le teng ho e thibela.

4Tsebiso ea bokgoni

Karolo e bontšehang ea hlaku e peli e kopaneng e hlahisitsoeng e tšholletsoa e le ntho e ka tšoaroang ka aporo. NIP-01 ketsahalo — mofuta 30078, e amolotswe 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 ho bolela hore relay e boloka ketsahalo e le nngwe bakeng sa (mofuta, pubkey, d-tag), kahoo republish e nka sebaka sa pitsiso e fetileng hona hona. Ka hona, moqapi e mong le e mong o na le rekordo e le nngwe feela ya hona jwale, e leng se etsang hore “batla senotlolo sa Alice” e be ntho e le nngwe e hlakileng e seng lenane la ho le kopanya.

Tšito ke tlamo. Ketso ena e saenotsoe ke konokhethe ea boitsebiso, kahoo kōpo e reng “konokhethe ena ea ML-KEM ke ea npub ena” e matla joalo ka npub ka boyona. Ho fetola konokhethe e fapaneng ea pakanyetso ho hloka ho qapa saeno ea secp256k1. Mohemeli ea ka khonang ho etsa hoo ha a hloke ho hlokomela KEM.

Litsebiso li fela. Matlatsatsi a hlano NIP-40 ho fela nako, e hatisoa hape ka lihora tse 24, e etsa hore rekoto e be polelo ka moreki ea ntse e sebetsa ho e-na le ea neng e sebetsa. Motso ka bo boona ha o felle nako; feela boikemisetso ka sona bo fella nako.

Phetiso e felahetseng e baloa ka tsela e tšoanang le e nngwe e neng e sa tšoara senotlolo: balekane ba romela NIP-44 e tloaelehileng, eo mosebelisi e mong le e mong a ka e balang, 'me mosebelisi o tsoela pele ka phahamaniso ea post-quantum nakong ea tlamo e latelang ha a ntša hape. Kahoo, ho thola nako e fetang beke ho leketsa tšireletso ea melaetsa e rometsoeng nakong ea phomolo eo — e sireletsoeng ka mokhoa oa khale ho e-na le oa ho hloka (quantum-resistant) — mme ha ho leketse ntho e nngwe. Temoso ha e khetlhehe, ntho e seng e amoletsoeng e ke ke ea ba e ke keng ea baloa, 'me ha ho hlokehe ketso ha u khutla.

Ho se lekane hona ke lebaka la ho fela ha nako, eseng ntho e etsahetseng ka phoso. Ntle le e 'ngoe, litaba li ka nako e telele li phela ho feta senepe tseo li buang ka tsona: sesebelisoa se hlakolositsoeng, se ntshetsoeng sepoteng, kapa se fetotsoeng motheo oa sona se tlohela taelo e tsoelang pele ea ho boloka lintlha ho senepe seo ho seng motho ea se nang sona, 'me melaetsa e rometsoeng ka tsona e lahleha ntle le phoso mahlakoreng a mabeli. Matsatsi a supileng a thibela nako eo, 'me a lumella mahlale a ho fetisa (relays) ho lahle litaba tseo ka bona ho e-na le ho itšetleha ka mosebelisi hore a hlokomele.

Field ea bohlokoa e bitsa mokhoa oa eona. Lefelo ke pk2, mme nomoro ke karolo ea konteraka e seng mofuta oa tšoaniso: e bolela mokhoa oa mofuta oa molaetsa (payload) oo seseli se ka sebelisoang le oona. Mokolotsi ea sa hlokomeleng seohlo seo e tla fetohela hore “Nymchat client, ha ho na seseli sa post-quantum” 'me e romele NIP-44 e tloaelehileng, eo mosebelisi e mong le e mong a ka e balang. Ke tsela e nepahetseng ea ho hloleha, 'me ho lokela ho boleloa e le molao hore nomoro ea mokhoa e teng ho tiisa hore: kopo ea matla e sa tsejoeng e tlameha ho fokotsa tšireletso, eseng ho sitisa molaetsa ho fihla. Seseli seo moferelehi a ke keng a se sebelise se bohloko ho feta ho se na seseli le letho, hobane molaetsa oo se o hlahisang o lahleha ntle le phoso e bontšoa kapa e 'ngoe le e 'ngoe.

4.1 Ho se be teng ho na le moelelo, mme ho na le mehlala e meraro

Taba e nyane empa e bohlokoa: phatlalatso e ntšoa ke mosebelisi (client) e mong le e mong oa Nymchat, eseng feela ba nang le bokhoni ba post-quantum, mme sehlopha sa 'key' se ka khethuoa. Sena se baka hore ho be le boemo bo tharo bo kgetholloang ho e le bo babeli:

Ho hlokometsoeHo bolelaRomela boitshwaro
Tsebiso e nang le khonoe Nymchat, e na le bokgoni ba post-quantum Mofuta o kopaneng
Tsebiso, ha ho na sello le le leng Nymchat, NIP-17 ea khale
Ha ho na phatlalatso Mokeli ea sa tsejeweng. A ka ba mosebelisi ea Nostr kapa Bitchat efe kapa efe. Ea mokhatlo, hammoho le phuthelo ea ho tsamaelana

Ho kopanya molora oa boraro le oa bone ho tla be ke ho lahlehelo e kholo. Tsebiso e se nang senotlolo ke polelo e saenoe e bontšang hore molihi o sebelisa Nymchat, e lumellang tsela ea molaetsa ho qoba cross-protocol wrap e neng e tlameha ho e kenya bakeng sa motho e mong le e mong eo e sa mo tsebeng.

4.2 Sesebelisoa se sa kgoneng ho bula motso se lula se thola.

Phetolo e ka fetoloa: ketsahalo e le nngwe bakeng sa boitsebiso, ho ngoloa ha ho qetela ke hona ho hlola. Ke seo se etsang hore moralo oa rekoto e le nngwe o sebetse, mme ke seo se etsang hore sesebelisoa se sa hokahantsweng se be kotsi ha se ntša tlhahiso. Sesebelisoa se ileng sa phatlalatsa senotlolo seo se se etletseng sona se tla senya rekoto ea nnete mme se etse hore baemeli bohle ba qale ho boloka lintho ka senotlolo seo lisebelisoa tse ling li ke keng tsa se bula.

Kahoo, sesebelisoa se tsebang hore ho na le motheo empa se ke ke sa khona ho se bula, ha se tsebise letho le le leng. Ha se senyehile 'me ha se sitisitswe ho sebelisa lenaneo: se ntse se bala molaetsa o mong le o mong oo se nang makala a o a bala, 'me se ntse se romela ka tsela e tloaelehileng, ha se ntse se kopa moetsi hore a se kopanye. Ho thola ke tsela e nepahetseng bakeng sa sesebelisoa se ke keng sa bua bakeng sa boitsebiso.

5Tlhahlobo le queto ea ho romela

Baetsi ba ithuta liki tsa ba bang ka litsela tse peli. Lenaneo le sa feleng le amana le batho eo mosebelisi a tšwarelanang le bona — lipuisano tse bulehileng le litho tsa sehlopha — kahoo litsebiso tsa bona li fihla e le liketsahalo tsa tlhaho. Bakeng sa motho ea kopanoang ka nako ea pele, potso e le 'ngoe e tsamaea nakong ea ho romela, e nang le nako e khetiloeng ea metsotso e 2.5; ha e se a rarolla, molaetsa o tsamaea ka mokhoa oa khale, e leng boitšoaro bo neng bo le teng pele ho eketsoa mokhoa oa post-quantum, ho e-na le mokhoa o mocha oa ho hloleha.

Sephetho se se seng se bolokiloe ka metsotso e leshome ho e-na le ka ho sa feleng. Moetapele ea kopanyang sesebelisoa se sesha, kapa ea tloha ho login ea browser-extension ho ea lekhala la sebaka, o fetoha a khonahatsa post-quantum har'a puisano, 'me karabo e se seng e bolokiloeng ka ho sa feleng e tla ba tšoara ka mokhoa oa khale oa ho sireletsa data (classical encryption) nako eohle eo pitsiso e ntseng e le teng.

5.1 Hobane'ng ha ho se na tšollo ea ho fokotsa

Qeto ea ho tataisa litsela e qetella ka potso e le nngwe:

pq = (we hold a signed, unexpired ML-KEM key for this recipient)

Ha ho na puisano ea bokhoni, ha ho le lenane la lisebelisoa tsa lipalo tse lumelloang, le ha ho se na lebalatšuo leo mofofotši a ka le hlakolang ho loma tsela e fokong. Ho tšoara phatlalatso. ke lipuisano, mme li saenwa. Mokhoa oo phoso e hlahlamang ka oona ha tsebiso e nkeloa kapa e tšoaretsoe ke hore molaetsa o fetoha oa mokhoa oa khale — boemo bo neng bo le teng pele ho tliswa tšebeliso ena — ho e-na le hore molaetsa o kopaneng o fokotsoeletsoe ho ntho e ka etsoang ka tsela e mpe.

Le tsela e fapaneng e nnete 'me e bohlokoa haholo: moreki o romela hybrid. fela ha e na kata, 'me ho tshwara kata ke bopaki ba hore mokganyi a ka kgona ho bula. Ha ho na boemo boo molaetsa o ka romelwang ka mor'a nako ea post-quantum ho motho ea ke keng a o bala.

6Tokiso e kopaneng

Nymchat ha e nyehele NIP-44. E a e khupela. Mongolo o hlakolletsoeng oa NIP-44 o sa fetotsoeng ke sehlopha se ka hare, 'me ML-KEM ke AEAD e ka ntle e e khupellang:

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)

Litokolo tsohle li tlameha ho ntshoa ha e le hore molaetsa o balwe: sehlaku-hlaku se ka ntle se fana feela ka ciphertext ea NIP-44, mme ho bula seo ho hloka ECDH ea khale. Moferelehi oa quantum ea lahlohang secp256k1 o fumana konokono e ka hare mme a ntse a tobane le ML-KEM; ho lahloha ha ML-KEM ho tlosa sehlaku-hlaku se ka ntle mme ho tlohela NIP-44 e ntse e le teng. Karolo e nngwe le e nngwe e fumana sebaka sa yona:

Phuthello e etsoa haufinyane molaetseng o mong le o mong. Sifofane sa ML-KEM sa mo amohelang se phela nako e telele, empa molaetsa o mong le o mong o na le molaetsa o arukantseng o ikemetseng, mme ka hona, o na le... kem_ss. Ke seo se etsang hore ho hlahisa nonce ho e-na le ho e etsa ka mokhoa o sa tsepamang ho be ntho e nepahetseng: ChaCha20-Poly1305 e senyeha ka ho sebelisa hape sehlopha sa (key, nonce), mme mona key ka boyona e ncha bakeng sa molaetsa o mong le o mong, kahoo sehlopha se ke ke sa phetaha.

6.1 Hobaneng linae li lula li kgaohane

Tsela e 'ngoe ke ho kopanya litaba tseo bobeli ho etsa senotlolo se le seng sa puisano mme o se nehe ho NIP-44:

ck = HKDF-Extract(salt = "…",
                  IKM  = ecdh_x || kem_ss || …)          // do not do this

Sebopeho seo se tiile e le khritografia. Se na le bothata bo le bong ba sebopeho: se hloka ecdh_x, x-coordinate e hloekileng ea output ea ECDH, joalo ka lisebelisoa tsa lenَا — le extension ea browser (NIP-07) kapa moetsi oa saeno ea hōle (NIP-46) ha e khutlisise boleng leo. E etsa NIP-44 bakeng sa mofaki mme e neha ciphertext, eo e leng morero oohle oa ho tšoara senotlolo sebakeng seo lenaneo le ke keng la fihlela teng.

Ho kopanya litokolo kahoo ho kgobolla mofuta o mong le o mong wa ho kena o bolokang senotlolo sa boitsebiso ho moemeli, e leng ho re ba sebedisi ba hlokolosi ka ho fetisisa, mme ha ho na mosebetsi o ka etsoang ho ntshetsopele senotlolo o ka fetolang seo. Ho lokisa ka maemo ho tlosa boitlamo: NIP-44 e lula e le ntho e le mong mme e hlahiswa ke ntho efe kapa efe e nang le senotlolo sa boitsebiso, ho akarelletsa le moemeli, ha karolo ya KEM e balwa ho tswa ho khoutu ya ho phekola e reng mofaki e na le yona ka kotloloho. Ho kena ka moemeli ke baheng ba tloaelehileng ba post-quantum ka ditsela tseo di le tsona tseo.

Tekosto ke bandwidth, mme ha se e nyenyane. Ciphertext ea ML-KEM ke 1,088 bytes mme e tsamaea le molaetsa o mong le o mong, e beiloe ka base64url ho fihla ho litakhahlo tse 1,451; AEAD e kantle e eketsa tag ea Poly1305 ea 16-byte mme e phalatsanya payload ea NIP-44 eo e e fepang ka karolo e le tharo. Molaetsa o nang le litakhahlo tse 50 o hola ho tloha ho 176 bytes ho ea ho 1,712, mme o nang le litakhahlo tse 2,000 o hola ho tloha ho 2,820 ho ea ho 5,238. Tekanyo e ka tlase ke hoo e ka bang 1.5 KB ka molaetsa ho sa tsotellehe hore na molaetsa o mokgutshane hakae, e leng lefatše la ho fepetsa (encapsulating) hape nako le nako ho e-na le ho sebelisa sena se kopaneng (shared secret) hape.

6.2 Liphellotso tse itlhalosang

Ha ho na lentsoe le le kang "the" ka Sesotho. pq2. Sehlakuho se etsa hore tšebeliso e etsoe ka lintlha tse ntseng li eketseha: se iponahatsa ka boena, kahoo monnali o khetha tsela ea ho hlalosa ka ho hlahloba payload ho e-na le hore a tšepahale ka letšoao kapa a hopole se peer a se tšehetsang. Mofuta oa ho bala o sa hlaloseng sehlakuho o ke ke oa khona ho bula payload eo ho e-na le hore a e bale hampe, ’me melaetsa e tšepitsoeng pele le ’ngoe le ’ngoe e ka etsa post-quantum e tla ntse e balahala e le NIP-44 e tloaelehileng ntle le ho fetola ntho e nngwe.

Ho hana ho sa boleloang ka ho toba

Decapsulation ea ML-KEM e lokiselitsoe hore e se ke ea hloleha: ha ho fanoa ka ciphertext e senyehileng, mokhoa oa Fujisaki-Okamoto o khutlisetsa sena se fanoang se le se fosahehileng (pseudo-random secret) ho e-na le phoso. Ka lebaka leo, konokono e fosahetseng ha e tsoale ketsahalo sehlopheng sa KEM le kaofela — e tsoala ketsahalo e le tsela ea ho hloleha ha HMAC ka hara NIP-44, e le tsela e tšoanang le ha konokono ea khale e fosahetseng e tsoala ketsahalo. Baetsi ba phekola tsona ka tsela e tšoanang, kahoo phoso eo ha e na sesupo se se kgethallang. Ke hona le hona ho etsang hore lenane la likhetho la Karolo ea 9.1 le sebetse: moreki o leka konokono e 'ngoe le e 'ngoe ka tshohanyetso mme o lumella NIP-44 ho bolela efe e ne e le e nepahetseng.

6.3 Matata tše peli tsa paka ea mpho

A NIP-17 molaetsa oa semono ke NIP-59 paka ea mpho: molaetsa o sa saenoe, o tiilitswe ka sesebelisoa sa boitsebiso sa mofahali (mofuta 13), ka mor'a moo o pakiloa ka sesebelisoa se tlojoang se bapetsoeng molaetsa ka mong (mofuta 1059). Nakong ea ho kena moo sesebelisoa sa boitsebiso se tšoaretsoeng ka tsela e tletseng, Nymchat e kopanya mahlakore a mabeli, mola e mong le e mong o na le mokhoa oa hae oa ho iphutha.

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
Lere tsohle tse peli tsa ho sireletsa ke tsa mofuta o kopaneng (hybrid), mme e 'ngoe le e 'ngoe e na le ML-KEM encapsulation e ikemetseng. Lere la kantle le tšehla ka siri e sa tluang hape, kahoo mokhatlo ha o bontshe motho ea rometseng.

Mo-saena ea saenang o fumana lehlakore la kantle feela. Seal e etsoa ke mo-saena joalo ka NIP-44 e tloaelehileng — tlhahiso ha e bone konokono e e etsang — kahoo e ke ke ea kopanngoa hona sebakeng seo. Sena ha se na thibelo khahlanong le tšhollo e buuoang: seal e fumaneha feela ka tlas'a "wrap", 'me "wrap" ke seo moferehi a se bolokang. Moferefanyi ea nang le mosebetsi o rekotiotsoeng o tlameha ho pshatla ML-KEM pele seal e ka bonahala le ho hlaselloa.

7Melaetsa ea sehlopha le tšireletso e sa phethelang

Molaetsa oa sehlopha hase ciphertext e le ’ngoe. Ke molaetsa o le mong (plaintext) o phelisitsoeng ho litho tsohle, kophi e ’ngoe le e ’ngoe e phuthetsoeng ka senotlolo sa ML-KEM sa leona. Litho e hlahisitsoeng senotlolo e fumana hybrid wrap; e sa hlahisitseng e fumana classical wrap.

Sena se baka bothata ba boitšatšisane seo tšebeliso e sa hlokolotseng e se etsang hampe. Haeba ba robeli ba ba leshome ba amohela kopji e kopaneng, molaetsa ke eseng robong ka robong e sireletsehileng. Mohemeli o hloka kopiko e le 'ngoe ea mongolo o hlakileng e tšoanang ka botlalo ho tsohle tse leshome, kahoo molaetsa o sireletsehile feela haeba mang le mang Khopi ke.

Nymchat kahoo e latela tšepahalo ea molaetsa ka molaetsa nakong ea fan-out — palo e tsebahala feela ha li-wrap li ntse li ehoa — 'me letšoao le bontša "e thibela quantum ho baeng ba 8 ho ba 10" ho e-na le ho tiisa hore molaetsa o sireletsehile. Moo palo e sa fumaneheheng, e leng boemo ba mohlala ba... Ke amohetse molaetsa oa sehlopha (motho ea rometseng feela o bala ho bosa), sebetsi se tlaleha hore ho na le tšireletso e lekaneng ho e-na le e feletseng. Ho bolela hore ho na le tšireletso e feletseng ho itšetlehile ka kopiyo ea motho ka bo boena ho tla ba ho feteletsa nnete mabapi le molaetsa ka kakaretso.

7.1 Se skete e se phetang

Leriba le bolela nnete ka molaetsa, hase mabapi le lenaneo le ileng la le romela:

Qeto e ngolwa ha molaetsa o pakotsoe ho e-na le hore e reketohe ho tsoa ho se tsebiso eo mofani a e fang hamorao. Ciphertext e seng e ntse e le teng e ke ke ea babaleloa hamolemo ho feta kamoo e neng e le kateng, mme interface e neng e nchafatsa melaetsa ea khale ka tšebeliso ea tsebiso e mocha e ne e ka bolela ntho e fosahetseng mabapi le bytes holim'a relay.

Melao ea sehlopha e kaholimo e eketsoa holim'a ena ho e-na le ho e fetola: molaetsa oa sehlopha o sireletsehile ka botlalo feela ha kopiyo ea mong le mong e ne e sireletsehile, 'me molaetsa oa sehlopha oo o amoletseng o se nang palo ea tšehetso o bontša e le e sa felelang.

8Dikopi tse ngolileng ho wena

Lintho tse ngata tseo "client" e li bolokang li kofetsoe ho boitsebiso ba moetsi ka boyona: litlhophiso tse kopantsoeng, len aha la lipuisano, lithepo tsa sehlopha, le khoilo ea melaetsa. Tsena li na le lintlha tse ngata ka moetsi ho feta melaetsa e mengata e le mong, kahoo ho li tlohela li le tsa tloaelehileng ho ka li etsa hore li be ntho e fokola e bolokehileng, e sa tsotellehe hore na melaetsa ka bo eona e kofetsoe ka hloko hakae. Li sebelisa mofuta o tšoanang o kopaneng, o pakiloeng ka thepo ea motheo ea moetsi ka boyona — ka lebaka le le leng le hlalositsoeng Karolo ea 3.2, ... nymchat-pq-root sehlopha ka bo boona, se se ke keng sa thibeloa ka sehlahla se se ka neng se ka hlahisitswe ke sona feela.

Lihlahisoa tsena ke tsona moo moralo o leng bohlokoa haholo. Sehlaku-hlaku sa litlhophiso kapa mola oa lenaneletso o lula sebakeng se le seng lilelimeng tse ngata, e leng sebopeho sa ntho seo moferehetsi ea hokolang hona joale a tšoereng hore a o hlole ka morao — ho feta molaetsa o le mong, oo o leng oa nakoana feela kelellong ea moetsi.

Taelo e le 'ngoe e laolang mokhoa mona ho e-na le hlahlo. Kopiko e nang le aporesi ea boena e lokela ho ba e balegalang ke mang le mang sesebelisoa se akhaonte, kahoo sesebelisoa se seng le se seng se bolela seo se ka se bulang lenaneong tsebiso e nang le lona, mme akhaonte e ngola feela seo bohle ba ka se balang. Ho ngola ntho efe kapa efe e neng e ka thibela sesebelisoa ho fihlela litlhophiso tsa sona — tsela e tšoanang ea ho hloleha e hlolehang e o qobellang Karolo ea 3.2 e e qobellang ka litsela tse ling, e tlang ka tsela e fapaneng.

Tlolo e tšoanetseng ho boleloa

Sesebelisoa se nang le boitsebiso empa se se nang 'motheo' ha se khone ho bula ntho efe kapa efe e tiileng ka senotlolo se tsoang ho 'motheo', ho akaretsa le litlhophiso tsa sona. Ke ntho e etsoang ka morero, eseng phoso, 'me ke mabaka a hore Karolo ea 3.3 e be le pitso ea sesebelisoa bakeng sa ho kopanya ho e-na le ho bopa 'motheo' o mocha: 'motheo' o 'mote o ne o ke ke oa etsa hore 'blob' e balehe, o ne o ka arola feela lisebelisoa tsa senotlolo tsa boitsebiso ka har'a tse peli. Ho fihlela moetsi a se kopanya, sesebelisoa se tsoela pele ho sebetsa — se bala seo se nang le lisene tsa sona mme se romela ka tsela ea khale.

Sesebelisoa se tsamaisang extension ea browser kapa mofofisi o hōle (NIP-46) ha se na nsec e ka hlahisoang ho eona, empa se na khoutu ea ho khutlela, mme ka tlase ho mofuta o arotsoeng oa Karolo ea 6.1, seo ke sona sehleletsa se hlokahalang se le mahlakore a post-quantum: mofofisi o hlahisa mahlakore a NIP-44 joalo ka tsela eo a ntse a etsa ka eona, 'me moklienete o roka mahlakore a holimo ka bo eona. Mohlao o joalo oa ho kena ke moeti oa tloaelehileng mahlakore a mabeli.

9Potoloho

Ha ho na lentsoe le le kang "the" ka Sesotho. epoch Khompo ka har'a ho hlahisa ke eona e etsang hore ho fetolo-fetolo ho khone ntle le lisebelisoa tse ncha tsa senotlolo. Ho e eketsa ho fana ka sehlopha se secha sa senotlolo ho tsoa pelong e le 'ngoe le phatlalatso e ncha e re phetiloeng hape; baetsi ba fumana senotlolo se secha ho rekoto e ka fetolwang. Kahoo, ho fetolo-fetolo ha ho kopele motheusi ho ngola ntho efe kapa efe hape: pelo e hlahisoa hang feela bakeng sa boitsebiso 'me nako ke eona e etsang phetoho.

9.1 Libeke tse khale li bolokiloe, mme ha ho ntho e nngwe e re-encrypt-oang hape.

Ha ho na se re ntshetsoeng ha konokono e fetoha. Mokhanni o bopa mekhahlelo ea ho bula melaetsa ho tloha nako ea hona joale ho isa nako e fetileng ka mekhahlelo e 3, kahoo molaetsa o neng o thibelletsoe haufi le nako ea phetoho o ntse o ka bula ka konokono e neng e sebelisoa nakong eo o neng o rometsoe.

Lefensetane leo ke lona le etsang hore ho fetoloa ho tšepahala: ntle le lona, phetolo e nngwe le e nngwe e ne e tla lahlehetsa ntho e neng e ntse e sebetsa. Ntho e nngwe le e nngwe e se e koetsoe e tla ntse e ka balwa nakong eohle ea boitsebiso, hobane molaetsa oo moetsi a ka se o lentšang o mpe haholo ho o mong eo tšireletso ea eona e ke keng ea ntlafatsoa ka mor'a hore ntho e etsahale (Karolo ea 10.5).

10Sena se sa sireletseng

Lephethe le bontšang feela se etlohlong ke mokhoa o etsoang hase hlaloso ea tsamaiso, 'me ho hlalosa tšireletso e fetang nnete ka har'a interface ho mpe ho feta ho e tlohela. Tse latelang li ka ntle ho se tšoareng ke mokhoa ona.

10.1 Mololohali ke sekreto sa bobeli, mme ho e lahleha ho ke ke ha khonahala ho e fumana hape.

Ke tefo ea nnete ea moralo ona. Boitšoetso bo ka Karolo ea 2 ba hore moetsi o lokela ho ba le ntho e le 'ngoe feela ea ho e boloka bo ke ke ba phetheha: nsec ka eona eona ha e aha hape senotlolo sa post-quantum, hobane ntlha ea bohlokoa ke hore ha ho na boleng bo pepeneneng le sephiri se seng le se seng se se hlahisang. Ha ho na sesebelisoa se nang le motheo 'me ha ho na lipako tsa Karolo ea 3.2 tse ka bulehuang, lisebelisoa tse tseketseng senotlolo se tsoang ho motheo li ke ke tsa fumaneha hape. Ha ho na escrow 'me ho seng ho etsoe hore ho se be le mokoa ea ka neng ea ka ba le eona.

Ka ho fetisa ka letsoho e le tsela feela, sena se matla ho feta se ka bonahalo qalong. Mosebelisi ea sa kopitseng... nympq1… khoutu e hohle e na le kophi e le nngwe feela ea eona, lelekaneng le le leng, 'me ho lahleha ha lelekaneng leo ho lahleha molaetsa o mong le o mong oa post-quantum, settings blob le mola oa archive o tiileng ho eona. Ho nsec ha se thuso; ke tšebetso eo moralo ka moka o itšetlehileng ka eona.

Tsela efe kapa efe e hloholiloeng e eketsoang hamorao e tlameha ho kopana le maemo a tšoanang le a tsela e etsoang ka letsoho. Mohemari o hlasela tsela e fokolang e teng, kahoo mokhoa o na le boleng bo tšoanang le boleng ba tsela e fokoloheng ea ho hophola — mantsoe a hopolloang (passphrase), mohlala, a tla etsa hore ntho eohle e be le boleng bo tšoanang le boleng ba mantsoe ao, mme mola o hloholiloeng ke ntho e bokelloang ke mohemari ea bokellang hona joale e hlakolang hamorao, e oelang ntle le marang-rang ka nako eo e e ratang.

10.2 Ho netefatsa boitsebiso, e fapaneng le botsitso

Motsamaiso o mong le o mong wa signature ka Nostr ke Schnorr holim'a secp256k1, mme seo ha se fetohile mona. Moemedi o mpe ea nang le khomphutha ea quantum a ka etsa signature tse phoso le ho ipuella e le moethusi ka nako e le teng. Se papalitso ea seseli ea mofuta o kopaneng e hlolang ke ho bokella hona joale le ho hlakola hamorao: moemedi o mpe ea rekotho melaetsa kajeno ha a ka e bala hamorao. Ha e etse hore molaetsa o ke ke oa etsoa signature e phoso ho moemedi ea seng a na le khomphutha eo. Phapang ena e tsamaea le lisebelisoa ka morero — sesupo sa lokotolo se bolela ho tiisa tumello, sekhupho se bolela tšireletso ea molaetsa, mme ke litšoantšo tse fapaneng hobane molaetsa o ka ba le e 'ngoe ntle le e 'ngoe.

Sena se boela se thaela hore na phatlalatso ea Temana ea 4 e ka tšepisa eng. Ho kopanya pakeng tsa npub le senotlolo sa ML-KEM ke tumello ea secp256k1, kahoo moetsi oa bobe ea khonang ho uba tumello tseo a ka khona ho fetohela ka senotlolo sa hae se itseng. Boitshwaro ba sephiri khahlanong le moetsi oa bobe oa nakong e tlang ha se joalo ka botsitso khahlanong le moetsi oa bobe.

10.3 Metadata

Ho paka mpho ho pata moromedi, moamoheli ho feta e le e le 'ngoe p letšoao, mofuta, le nako ea molaetsa o ka hare. Ha se ho pata hore ho na le ketsahalo, boholo ba eona, kapa hore na relay e e amohetse neng. Tlhahlobo ea melaetsa ha e rarollouoeng ke karolo efe kapa efe ea moralo ona.

10.4 Mesh e ntle le marang-rang

Setshwaretso sa Bluetooth mesh sa Nymchat ke protokole e e ikemetseng e nang le handshake ea eona, mme ha se akaretsoa ke mosebetsi ona. Melaetsa ka holim'a mesh ke ea tloaelehileng.

10.5 Melaetsa e se e romiloe

Molaetsa o patiloeng o nketsoeng ha mahlakore a mabeli a ne a sa ntse a sebedisa mokhoa wa khale, o lula a le wa khale ka ho sa feleng. O se ele o teng mme ha a ka a patisoa hape. Tshireletso e qala molaetseng oo mahlakore a mabeli a neng a sebedisa masela a post-quantum, eseng nakong eo tshebetso ena e neng e tsebisoa teng.

11Dikgetho tse ling tse nahannguoeng

MokhoaHobaneng e se jalo?
Fomosa lekhidiki la post-quantum ho tsoa ho lekhidiki la boitsebiso E lahetsoe. Derivation ena ke algorithm e pepeneneng holim'a nsec, mme quantum adversary o khutlisetsa nsec ho tsoa npub e pepeneng, kahoo ho pshatla lehlakore la mantlha (classical) le fana ka lehlakore la post-quantum le leona. E rarollotse mathata ohle a pharalatsong (distribution) a pampiring ena mme ha e sireletse motho le mong. Karolo ea 3.1.
Romela root ho lisebelisoa tse ling tsa mosebelisi ka NIP-44 Ho koletsoe ka lebaka le le 'ngoe feela, empa ka sebopeho se fapaneng. Molaetsa oa motheo o rometsoeng ka mokhoa oa ho sireletsa oa mehleng ea khale feela o ka fumanoa ke motho e mong le e mong ea nkileng molaetsa oo eaba o senya senotlolo sa oona hamorao, e leng mohemeli eo molaetsa oa motheo o lokelang ho o thibela.
ML-KEM keypair e hlahisitsweng ka ho ikhethela ho sesebelisoa ka seo-seo Ho hanaile. Lisebelisoa li ne li ka ba le lintlha tsa ho bula (decapsulation keys) tse fapaneng, 'me phatlalatso e le 'ngoe e ka fetoloang bakeng sa boitsebiso ka bong e ke ke ea khona ho tšoara tsohle. Baahi ba ne ba ka tšoara (encrypt) ka efe kapa efe ea lintlha tseo e neng e hatisitsoe qetellong, 'me lisebelisoa tsohle tse ling li ne li ke ke tsa khona ho bala sephetho seo. Motheo o le mong bakeng sa boitsebiso ka bong, o tsamaeesang ka litsela tsa Karolo ea 3.2, ke sona se thibelang seo.
Phuthela motheo tlas'a PIN Ho hana. PIN ea linomoro tse li-4 e na le li-bit tse ka bang 13 khahlanong le mohatlapi ea sa tšeliseng marang-rang ea nang le mola o 'phuthelitsoeng'. Ho e fana kapele ho litsela tse peli tsa li-256-bit ho ka fosa molaetsa oa hore na ho phuthello e fokolang e na le boleng bofe.
Atolosa npub ho nka liki tsohle tse peli Bytes tse 1,184 hase letšoao leo le ka abeloang, mme ho tla senya mokhoa o mong le o mong oo lisebelisoa tsa Nostr tse hlahlobang (parsing) ahloli (address) e hlalositsoeng e le bytes tse 32 ka oona.
Tšebeletso ea bohlokoa ea directory Ho khutlisetsa boetapele bo sehlophiso se leng ho bo qoba. Motho eafe kapa efe ea arabelang lipatlisiso ke eena ea etsang qeto ea hore na ke mang ea ka balang molaetsa.
Beha senotlolo molaetseng o mong le o mong Ha e rarolle letho: motho ea rometseng o hloka ea mamoheli lenotlolo pele ho molaetsa oa pele, e leng boemo bo hlakileng ha ho na molaetsa oa pele o o tsisametsang.
Papiso ea bokhoni ka hara tsela e tšoanang Ho baka sebaka sa ho fokotsa boemo. Moetsi oa bohloko ea khonang ho tlosa letšoao la bokhoni o tiisa tsela ea khale.
Post-quantum feelo, ha ho na karolo ea khale O lahla lilemo tse mashome a tlhahlobo ea secp256k1 ho fetisetsa motheo o mocha haholo. Sehlophiso se kopaneng se hlolehla feela haeba bobeli ho hloleha.

12Tekanyo ea tšebeliso

Nymchat e fana ka mekhoa e peli e ikemetseng ea sebopeho sena — e le e hla e le JavaScript bakeng sa tšebeletso ea web, le e hla e le Dart bakeng sa lisebelisoa tsa mobile, ho akaretsa mofuta oa ML-KEM-768 o entsoeng ho tloha qalong. Ho ba le mekhoa e peli ea ntho e le 'ngoe hangata ke taba e kotsi, kahoo li sebelisoa ho hlahloba e mong le e mong ho e-na le hore li tšepoe hore li lumellana.

Implementation ea Dart ML-KEM e tiisitsoe khahlanong le ea semmuso NIST ACVP liteksi tsa liphetho tse tsebahalang bakeng sa ML-KEM-768 (ML-KEM-*-FIPS203) — mehlala e 25 ea ho bōpa konokono, mehlala e 25 ea ho kenya le mehlala e 10 ea ho ntša, e tsamaeang e le sehlopha sa eona se ikemetseng. Tseo ke mabitso a mahlale ao NIST e a tšohlafatsoeng ho netefatsa tšebeliso, kahoo ho feta hoo ke bopaki ba hore mosebetsi o nepahetse, eseng bopaki feela ba hore bareki ba babeli ba lumellana. Ho feta moo, sehlophiso se kopaneng sa mabitso a mahlale a tlhahlobo — ho tsoa ho seed derivation, encapsulation, mefuta ea payload e 'ngoe le e 'ngoe, le mefuta e feletseng ea 'gift wraps' — se hlahisoa ho tsoa ho JavaScript reference mme se hlahloboa ke mehlala ea tlhahlobo e 'ngoe le e 'ngoe. Sefofane sa motheo (root secret) se eketsa sehlophiso seo ho e-na le ho se fetola: motheo ho seed, motheo ho keypair, 'fingerprint' ea sechaba ea motheo, le konokono e hlahisitsoeng, nonce le data e amanang ea leqephe la kantle ke mabitso a mahlale a aona a ikemetseng, kahoo bareki ba babeli ba ke ke ba sa lumellane ka se nympq1… Khoutu e bolela kapa e mabapi le libaitse tseo molaetša o tswhetsoang ka tsona. Phapang ho tšebeliso ea e ’ngoe le e ’ngoe e sitisa tlhahiso ho e-na le ho hlahisa molaetša oo khalehene e ’ngoe e ke keng ea o bula.

Letshwao la menwana le lokela ho tsebisoa har'a tsena. Ke sona se bolellang sesebelisoa hore “ena ke motheo oo ke o nang le oona” ho fapana le hore “ena ke o mong o fapaneng”, mme moreki ea ke keng ea khona ho kopitsa letshwao la menwana la moreki e mong, a ka bala litala tse nepahetseng e le hore ha ho na litala letho — ebe, ho latela Karolo ea 3.3, a bopa motheo o 'ngoe le ho arola boitsebiso. Ke sebaphatsi ka lebaka leo feela.

Nymchat ke Mohloli o bulehileng ka tlas'a AGPL-3.0. Motheo oa khopitografia o hlalositsoeng mona ke js/nym-crypto.js le js/modules/pq.js ka har'a web client, mme lib/core/crypto/ le lib/features/identity/pq_registry.dart ho bakuli ba mobile.

Bakeng sa tlhaloso e khutšoanyane e seng ea mahlale, sheba Leqephe la motheo oa tsebo mabapi le khoneng e kganelang quantum.