Xirhangelo xa tekiniki xa Nymchat
Ku pfumana ka khondi ya ku landula Quantum e ka Nymchat
Ku fambisa tihlelo ta ML-KEM-768 ta vukosi hi Nostr nga ri na xitshuri kumbe xitshuri xa mavele, na ku ti tshamisa e xihundleni lexi yi nga yi kombisaka nchumu wo halkala.
Ku engeta ku vevanyisa vutshungulo bya post-quantum eka messenger a swi ri swiproblela swa cryptography swinene. Swiprimitive swi lulamisiwe naswona swivulavuri swi kona. Xiyenge xi lavaka matimba i leswaku munhu hoteleyaka sweswi a lava... sekondi khonini ya vulawu, naswona nhlangano lowu nga riki ni ntsandzavuko wa nkarhi wun'we wu nga riki na ndhawu leyi tlhamulaka yo yi veka. Xigwapa lexi xi hlamusela ndlela leyi Nymchat antswaka hi yona — hi kwihi khonini ya vumbirhi yi humaka kona, ndlela leyi yi fikelelayo kona eka vanhu lava yi lavaka hi yona, na leswi interface yi pfumelaka ku va na swona hi ta mhaka leyo — naswona, exikarhi ka xiphemu xa vugun'we, leswi mhaka leyo nga xi pfumelaka ku sirhelela.
Tluka leri ri hundzuluxeriwe hi muchini leswaku ri olova. Original ya Xinghezi i version leyi tirhaka.
1Xiphiqo
Migala ya ntsandzo ya Nostr yi fihliwe hi NIP-44, leyi nga na rivunyu lawa ma nga vekiwaka hi ku hlawulela. Rivalo leri xotlisaka mavele — ChaCha20 na tag ya HMAC-SHA256, leyi endliweke hi HKDF (RFC 5869) — a wu tlayiwi hi kompyuta ya quantum hi ndlela leyi nga ni matimba; algorithm ya Grover yi nyika ku htsakisa hi ku hlakula (square-root) ku kumeta xihlanganiso (symmetric key), naswona 256 bits yi xavisa leswi. Xahla xin’wana lexi u pfumela e khavini ku ni elliptic-curve Diffie-Hellman e secp256k1, naswona algorithm ya Shor yi tholula logarithm ya discrete hi ku helela. Ku antswa key yin'wana ya private e ku landza key ya public leyi landzelaka yi, swi kombisa swihundzuluxo swa xihundla leswi hlanganyeriweke swin'wana na swin'wana leswi key leyi nga swi endla swona hi ku pfuxa swa khale.
Xitshungulo lexi xi vumbaka xi nga ha langotiyelekile ku fika loko ximakangu lexi xi pfumala xi va xi ri kona. Mundzuku-mulu loyi a nga na ndhawu ya ku hlayisa swilo a nga kota ku veka swikwembu swa nkhulumo namuntlha naswona a ta va a ta va a ta xi vula loko nkhulumo lowu pfumaka wu fika. Swilo hinkwaswo leswi tsentiwaka namuntlha leswi nga ri nga ha na nkoka loko ndzuku wu fika swi nga tsariwanga hi ku vuriwa. Loko hi vula, leyi i nkhundzukiso lowu ku hlula hi wona ku kutekisa ka swikwembu swa ku tlula nkarhi wa quantum, naswona leyi i xivangelo lexi engano yi nga nga ri tlangelaka ku fika loko ximakangu lexi xi tuluriwaka.
1.1 Xiphiqo lexi xikhatlayi lexi xi pfuxulaka
Ku lulamisa swi tlhelo swi tiviwa kahle: tirhisa xitshungulo xa post-quantum key encapsulation mechanism swin'we na xitshungulo xa khale (classical exchange), leswaku mungholi u fanele ku tsundzuka xin'wana na xin'wana leswaku a nga ha ha kwata nchumu. Nymchat yi tirhisa ML-KEM-768 (FIPS 203). Sweswo swi vumba xiphiqo xa ku pharisa hi ku tsandzeka:
Ku tsala Alice namuntlha, u lava nchumu un'we: npub ya yena. Loko u koka post-quantum exchange, u lava nchumu wa vumbirhi — ML-KEM public key ya yena. Key leyo yi tshama kwihi, naswona u yi kuma njhani ku ringheta u nga ka yinganyela nchumu xin'wana?
Npub yi tshamela yin'we. U nga yi tsalela evonini, u yi hlaya hi kombiso, kumbe u yi hlayisa eka skrini, naswona i swin'wana leswi munhu a swi lavaka leswaku a ku endla xihundla. Xihundla xa ML-KEM-768 i bytes 1,184. A ku pfuni ku yi hlaya hi kombiso, a yi tlangi eka vito ra munhu, naswona a yi fanele ku va eka QR code ehansi ka xihlamuselo lexi nga riki bytes 32 ntsena.
Nkuluwa i xiphemu xo helela. Xiphemu lexi rharhakaka i leswaku khave ya angka yi tlisa swiphiqo swo tlhantlha leswi nga riki swin’we, naswona swin’wana swa xigatseno lexi i xivakalo xa swona:
- Xi nga tshwakanyisiwa. Xitolo lexi n'ambi hi munhu hi ku vona ka nkarhi hi xiyimo lexi mutshunguli a xi tanzisaka hi xa yena. Xiyenge xa 4 xi xi kumanyana na vumbunhu hi xihlawulelo, leswi swi lulamisaka leswi hi ku ntshunxwe.
- Swi fanele ku ri nchumu wo fanaka eka swiyidensiti ta mutirisi. Akauka yin'we eka foni na laptop ma fanele ma kombisa khunthu yin'we, kumbe timbulavanyo leti vangiweke eka yin'we ti nge vuleki eka yin'wana. Xiyenge xa 3.2 xi xi hlamusela.
- Ri nga lahleka. Xikongomana xa le hetele xi antswa eka xihundla, hi leswi xona lexi faneleke ku tshama xi ri kona i xihundla lexo — naswona hi ndlela leyi xi antswiweke nayo, xin’wana-xin’wana xin’wana xi nga yi antswi. Xiyenge xa 10.1 xi kombisa hi ndlela leyi rõhaka leswaku swi lava yini, hikuva leswi a swi pfumbuleriwi, kambe swi riwa hi ku ri xisa.
2Swikongomelo swa ku vumba
Swipfuxiselo swin'we swi tsimbile mphendulo, naswona swi ntshekisa swiendlo swin'wana swo tala swo vonakala tsariwa khodi yin'wana na yin'wana.
- Swihundzuluxo leswi nga riki swo tanihi. Vatsari va Nostr va tshame va ri na xihundla xin'we hi ku xiluva, i nsec. Xihundla xin'wana xin'wana xin'we xin'we xi engetelela ndlela yin'wana yo lahlekisa ri history ra wena, naswona munhu loyi a tivaka ku hlayisa nsec a nga ta tiva ku hlayisa xin'wana xin'wana xin'wana. Xiyenge xa 3.1 xi kombisa leswaku leswi a swi nga vuleki hi ku hela — nsela ya post-quantum leyi humaka eka nsec a yi engeteli nchumu wa ku sirhelela eka post-quantum — hi leswo, ntirho lowu wu tirhisa xihundla xin'we hi ku xiluva naswona wu nga wu tirhisi swo tala: xitshuri xin'we xin'we xa nsela, lexi hlamulerileke ka xiyimbi-hi xin'we hi xiyimbi-hi, lexi humelelaka hi xiyenge xin'we na nsec naswona exiyaveni xin'we, leswaku yena loyi a tivaka ku hlayisa xin'wana a ta tiva na ku hlayisa xin'wana xin'wana. Xiyenge xa 10.1 xi tshembeka hi leswaku swi lava yini.
- A ku na matimba. Ku nga ri na server leyi nga tshembekaka ku byela leswaku xikogo xin’wana na xin’wana xi nga ta xini. Server yin’wana na yin’wana leyi kombaka leswi yi va ndhawu leyi mikalahle yi nga rhendzeleka kona.
- Switirhiso swo tala, vukonwana xin'we. Xinyovelo ya Nostr yi tirhisiwa hi ma-client ya mangwalo ya nkarhi un'we. Swikungula hinkwaswo swa khunyi leswi nga riko swi fanele swi va swi ri swi fanaka eka yon'wana, naswona tindlela leti ti tisaka swilo leswi ti nga fanelanga ku vuriwa hi muxavisi loyi nchumu lowu wu lavaka ku lwisana na yena.
- A ku na ku xavisa. Swikombisana hinkwaswo swa "xana u seketela swivuriso swihi?" leswi endleverini ya nkanu i ndhawu leyi muxavisi a nga yi tirhisa ku herisa leswaku a endla leswaku ku tirhisiwa xiyero lexikavu. Xichavo xin'wana-wana xi fanele xi va ni nchumu lowu nga ha vengiwiwaka.
3Xihundzu xa mukanu lexi titshegaka hi xona xin'wana
Xikongomelo lexi xirhandzu xa xona i leswaku khavhi ya ML-KEM decapsulation yi tshamisiwe eka swilo swa khavhi leswi nga tivisiwi eka vanhu. Xinyamyalo xin'wana na xin'wana xi kuma xihundla xin'we xa nsekelo, lexi tlhanyiweke ka nkarhi xin'we:
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)
Root u kombisiwa e-user hi ndlela leyi nsec ri ri kona: bech32 hi xipiri lexi munhu a nga xi hlaya ka xona
nympq, handle swi hleriwa leswaku nympq1…, lowu kombisiwaka lexi laka nsec eka xikembu xa identity hi ndlela leyi fanaka ni leyi kombisiwaka, lowu kopiyetiwaka hi xikongomelo lexi fanaka, lowu nga riki lowu kotiwaka (log) kumbe lowu tindzisiwaka hi ndlela leyi nga ri na xihundla. A wu ri password naswona a wu ri login. I key material lexi mutirhisi a xi nga xi hlayisaka, hi ku fanana ni nsec.
Salt yi hlawuriwe hi ku lava hi ndhawu, ka leswaku xihundla xin'wana na xin'wana xi nga swi kota ku kuma khonxi ya swikokobelo leswi fanaka. Leyi epoch counter yi dzundzisa ku dindisela (Xikembe 9).
3.1 Hikwalaho ka yini khapu yi nga ha tikuviwi eka khapu ya vumunhu
Nhlamuselo lexi vonakalaka i ku tshamisa swikwere swimbirhi hi xihundla lexi mutlheleleli a xi nga na xona:
seed = HKDF(salt = "…", IKM = nsec) // do not do this
Swi toloveka hi swivalanu swin'we, hinkwaswo swi ri swinene: ku nga ri na xin'wana lexintshwa lexi faneleke ku kandziyiwa, hikuva nsec i xandla xa ku kandziya; xiviri xin'wana na xin'wana xi pfumama hi ndlela leyi antswaka, ku nga ri na xiprotoqolo xa ku kandziyana lexi nga ta tsundzuka; xitsundzuxo xin'we lexi nga ha tshanelaka eka xiyimbi xin'wana na xin'wana xi ri ntiyiso, hikuva xiviri xin'wana na xin'wana xi nga pfumani ku n'wayitela hi nchavi; naswona nchavi yi ri kona ku ringheta ku tshundziwa, leswaku xikombiso xi nga ha tshamela xin'wana xona eku sunguleni.
Swikweti swa mane swa rin'we swi nga ri na nkoka, hi xivanga xin'we. Algoritimu ya Shor leyi tirhisiwaka eka npub leyi vululaka yi nyika nsec. Ku hlamusela ka seed i algoritimu leyi vulavulaka eka nsec. Hi leswi, muntlhari loyi a vulaka xiyenge xa le ka nkarhi wa le ka ntsena (classical) wu pfuxa xiyenge xa post-quantum hi ku tirhisa HKDF yin'weleyo leyi vanhu van'wana va yi tirhisa na yona. Ku lwisana na 'harvest-now-decrypt-later' — xiyololo xin'we lexi xiyenge xi nga rito ku xi thibeta — xikombiso (key) lexi hlamuseleriweke hi ndlela leyi yi nga engeteli nchumu xin'we.
Xikongomelo xa ML-KEM xa decapsulation xi fanele xi huma eka entropy leyi a yi tikondzeriki eka nsec kumbe leyi nga tshamyiwiki hi encryption ya mbulavulo ntsena.
Xikongomelo xa swimbirhi swa xiruleni xi tirha ku fana ni lexi vumun'wana. Xihundzu lexi hlamulerisiweke hi xin'wana lexi pfandlanisiwaka exikarhi ka swiyinganyana swa mutirheleki eka mbulavulo wa NIP-44 wu ri ntsena i ntlhelo lowu fanaka ni le ku enetiweke hi ku engetela mintirho yo engeteriweke: munghakuli u tsindzela mbulavulo lowu namuntlha u tsandzeka xikongomelo xa le ka vusiwana loko ndzhaka yi humaka kona. I leswi swi endlaka leswaku mindhavuko eka xiyenge lexilavuriwaka yi ri mindhavuko leyi yi ri yona, naswona leswaku a ku na n'wana loyi a ri “yi yandzela exiyinganyanweni wa wena wun'wana.”
3.2 Ku kuma root eka swiendluliswa swo van'wana va mutlukela
Xikongomelo 3 ka Xiphemu 2 — identity yin'we, swiyinganyana swin'wana — a swi nga twalisiwa hi xihitungo lexi, hikuva xikongomelo xa ntiyiso hi leswaku xihundzu a xi ri nchumu lowu swiyinganyana leswi swi nga xi tivinya ka xona. Swi fanele ku twalisiwa hi ku lumkisa endzhaku, naswona ku na ndlela yin'we exi: mutluketi u lumkisa... nympq1… va tsala khodi hi vonanga.
Xinyandza xi kombisiwa hi ku ri nympq1… ku ehleketa hi nsec, naswona xihlovo xin'wana xi amukela leswi kumisiweke eka paneli yin'we. I xindlela hinkwayo ya ntirho. Xihlovo lexi nga fananga khodi xi nga sweri ku tlangela, leswi Xiyenge 4.2 xi chazelaka.
Ku hundzuluxa hi mkanu i xihundla lexi hi ku tiyisela, handle ku nga ri xivunyi va xivunyi. Xikongomelo eka Xiyenge 3.1 xi vulavula leswaku xikungulo xi nga swi kona ku famba hi ndlela ya ku pfala-himbirhi ya manguva ya le kaya ntsosha, naswona xin'wana na xin'wana ka tindlela leti ta endla leswaku swi endleka hi xivunyi — ku xitshatshatsha hi ku tsutsumisa hi relay, ku xi fihla eka xihundla-xinyenti — swi tlhantlha xito leri hi ku xiya. Xitlangutlanga lexi muxaveli a xi endlavo i xicereti lexi sirhelelo ri riki ntiyiso hi xona.
Xiyimbereti xi tshama ndhawu ya ndlela leyi hlanganiwaka: rekodi yi nga tshama xikombiso xa ti-wrap, xin'wana na xin'wana xi ri xitshungulo xa AEAD ehansi ka xikombiso lexi munhu a nga xi antswa eka xitsandzaka xin'wana — ku fana na xiphumu lexi hi passkey PRF. Aku na nchumu lowu humaka wo karhi namuntlha, naswona ku fika loko nchumu wo karhi wu ta huma, ... nympq1… khodi i
ndlela yin'we leyi pfumelaka ku fika.
Xikembe 10.1 xi kombisa leswi swi maliwaka hi tona.
Xikombiso xinene xi tshama eka mhangano wa swilulamisiwa xona, nymchat-pq-root, naswona u fambisana hi ndlela leyi swigolo swin'wana swi endlaka hi yona. Hambi ku ri a ku na swikwata, swi enza ntirho lowu hlawulekeke: ku ri kona ka wona i ndlela leyi xiwaveki xin'wana lexi dyondzaka hi vona leswaku xihlomulo lexi xi ri na ntshikilelo khale, leswi nga vula leswaku swi yimisa ku sika xin'wana lexi lwisaka na xona (Section 3.3).
Leyi nymchat-pq-root Kindzi kumele ngavi ku khongwa hi xikokwana xa ML-KEM lexi humaka eka xinyakalo. Xirhandzu lexi xi ri na xikopiya xin’we ntsena xa xinyakalo, hi ku ri tsekisa hi xikokwana lexi humaka eka xinyakalo i n’walubindzu leri xikokwana xa rona ri ri esikweni ra xitundzu: nchumu xin’wana xin’wana xi nga nga swi tlangula, ku hlanganisa na lexi xi nga xi tsala. Swi tsekisiwe hi ndlela ya khale — NIP-44 eka xinyakalo — kumbe swi nga tsekisiwi. Leyi i ndhawu yin’we leyi nhlamuselo yi amukelaka ku tsekisiwa hi ndlela ya khale ntsena, naswona swi nga swi endla: xirhandzu lexi a xi ri na xinyakalo namuntlha, ku ri tsalwa leswaku xin’wana xi ri kona.
Swikamu hinkwaswaku swa maSettings xin'wana na xin'wana swi nga tirhisa naswona swi fanele ku tirhisa khunyu lexi humaka eka xikongomelo. Leswi i xikupheka xin'we, naswona i xikupheka hi ta ku tengenana ku tlula hi ta matimba.
3.3 Ku humbereka na ku amukela
Ekuvangukeni, hi ku ri na vumbhoni lebyi nga tselaka, khlienti wu tshimbilela hi ndlela leyi:
- Tshavanya le a nga kona
nymchat-pq-rootKopa. - Xikombiso xi kumekile, naswona xihlawu lexi xi nga xi vula. — amukela swona u tshimbilela xihlamulamatlapa lexi leswi nga kota ku kombana na post-quantum.
- Xiriko xi kumileke, naswona xiteleketi lexi xi nga swi kota ku pfuka. — ku nga tavi root yin'wana ya le xiya, naswona u nga tivisi hi xin'wana na xin'wana. Vutisa mutlukeni ku kumanyisa xitirhisi lexi hi ku nghenisa...
nympq1…khodi e ku xitshini lexi nga ri na xona. - Ku nga ri na xikombiso — endla mbitsi, kumisa xingheniso, tivisa, naswona kombisa...
nympq1…khodi eka mutxuxeli ka nkarhi wo'ngana leswaku va nga swi hlayisa.
Nkarhi wa 3 i nkarhi lowu 쉬 ku n'wi sweka easy ka wona, naswona i mhaka leyi ndlela ya ku hlamusela yi kombisiwaka hi xona exikarhi ka ku tshika xikombisiwa xin'wana na xin'wana ku xi titsongahata. Xiendliso xin'wana na xin'wana leswi timelaka ku hlamusela xikumu (root) swi hlamusela mavun'wana mambirhi lama nga riki na vuxaka hi le tlhelo ka xihlamulaka xin'we, naswona i ntlhelo lowu ndlela leyi riko xona ku ta xila wona.
4Xitsakaxeko xa vukoni
Xivunene lexi vulavulaka xa makhwavhi embirhi lexi humeleleke ri tshakelwa xikuva lexi nga ni khomisiwo.
NIP-01
xirhendhelu — muxaka 30078, swi longeleke 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 swi vula leswaku relay yi hlaya event yin'we hi (kind, pubkey, d-tag), hi ku ri ku tlangela hi koya (republish) swi tlhantlhanya ntlokozeto lowu a wu bekileke eka ndhawu leyo. Hi leswi, xihlakozorhi xin'wana na xin'wana xi na rekodi yin'we ntsena ya sweswi, leswi endlayo leswaku "ku lava key ya Alice" ku hundza ku kombisa nchumu xin'we lexi nene, ku ri hi ku va xikombiso xa mahlomulo yo fana-fana leyi faneleke ku hlayisana.
Xikoti i xona xi vanyisaka. Mhaka yi tsaleriwe hi xikamu xitshikambiso xa munhu, hi leswaku xivumbeko lexi ti: "xikamu lexi xa ML-KEM xi tshama eka npub leyi" xi na matimba lawa an'a npub yo vona. Ku cinca xikamu xin'wana xa encapsulation swi lava ku faka xitshikumbo xa secp256k1. Mundlayi loyi a nga swi endla swona a nga ha faneli ku tlhantlha hi KEM.
Swivanyanyi swa fela nkarhi. Switsuku swa vun'we NIP-40 Ku fela, leswi humisiwaka hi malembe ya 24 hi xin'wana-xin'wana, swi endla leswaku xikombiso xi tshama xi ri nchazelo hi nkhundla lowu khumaka lowu nga tshamekiye nga nkarhi, ku kota leswaku a hi lowu a nga ri hona embiya. Xikombiso-nkulu (root) xin'we xin'we xin'we xi nga fali; nchazelo hi xona xinkulu hi xona lexi faka.
Xichavo lexi tlayekeke xi baletiwa hi ndlela yin'we hi lexi nga ka khave xinga: swivandla swi enziwa NIP-44 ya xivuku, leyi makhoneti hinkwaswo ma nga yi baletaka, naswona client yi tlhela yi sungula ku hkambanana hi ndlela ya post-quantum hi ku hkonekhela ha ku landza, loko yi tshama yi tivisiya hi swa le klayi. Hi ku ri na nkuva ku tlula xinwe vheke, swi vula leswaku vuhlayiseki bya migalaho leyi nga talikiwaka eka nkarhi lowu wu fihlekile — yi enkripitiwe hi ndlela ya xiklavu embiteni wa ku lwisana na quantum — naswona swi nga wu mali nchumu un'wana na un'wana. Ku fika ka migalaho akusi ngeyi, nchumu lowu nga ri kumile wu nga ha fambi, naswona akusi na nchumu lowu faneleke ku endliwa loko u ta vuyela.
Ku nga tshwanani loko ka ntsena i xin seco xa ku fela, hi ku nga ri nkukhuva. Hi ku nga ri yo rihi, tihlamuselo ti tala nkarhi wu tlulaka khapu leyi ti vulaka yona: swikambelo leswi hlakuriweiweke, swi tluliseliweke eku sungulweni, kumbe leswi ndzalo wa swona swi antswuriwiweke, swi siya xiyero xa ku pfaka eka khapu leyi munhu a nga ri na yona nkarhi wobuva, naswona timbulamuso leti nghenisiweke hi yona ti lahleka kunge ku na xiphiqo eka timphelela. Malembe ya supfu ya kanganyisa nkarhi lowu, naswona swi tshimbileta swindzila swi lahlekisa tihlamuselo hi vonkoko ematshan’weni yo tshembela eka vaklienti leswaku va vona.
Xihlamuselo xa xikongomelo xi vula xiyimberiso xayo. Xikungoni i pk2, naswona namba lowu i xiphemu xa xikongomelo handle ka ku va xihlamuselo-byin'wana: wu hlamusela xiyimo xa xiyenge lexi xikoti xi nga tirhisiwaka xona. Muvuli loyi a nga ri tivi xiphemu lexi u hetelela hi ku vula “Nymchat client, a nga ri na xikoti xa post-quantum” kutani va tsala NIP-44 yo sasekalaho, leyi unga nga yi hlaya hi yin'wana na yin'wana ya ku nghena. I ndlela leyi hlamalaka leyi nene, naswona swi fanele ku vuriwa hi ndlela ya xikongomelo leswaku ku numbelana ka xiyimo swi endliwa ku tiyisisa leswaku: xikombiso lexi nga ri tiviwi xi fanele ku pfumala vutshunguri, kambe ku nga pfumali ku tsala. Xikoti lexi n'wana-wa-xin'wana a nga xi tirhisi xi vile ku va nchumu lowu nga riki na xikoti na yena, hikuva xiyimbi lexi xi humisaka xi lahleka kuninga xihlohlolo xa eka yin'wana na yin'wana.
4.1 Ku nga ri kona swi na meaning, naswona swi ri hi tinanga ta ntlimu.
Xiphemu xin'wana lexi n'wayitaka kambe xi hlawhekaka: xihlamuselo xi tshimbuluxeriwa hi client yin'wana na yin'wana wa Nymchat, a hi leswi va nga ni matimba ya post-quantum ntsena, nasw
| Swi vonile | Vula | Rumela minkwayo |
|---|---|---|
| Xivutiso na khapu | Nymchat, swi nga tiyisela ku kwanthamu swa le ku ndzhaku. | Xihlanganiso |
| Xitsakantxu, a ku na n kunci n'we | Nymchat, swa mbulavulo wa le ka xinkheta fela — post-quantum a yi tsakali, kumbe xitirhisiwa lexi nga riki na ku kumana na madyondolo ya xihlayisi. | NIP-17 ya khale |
| A ku na xivulavulelo | Muxaveli loyi a nga tiviwiwiki. A nga va i muxaveli wa Nostr kumbe Bitchat un'wana na un'wana. | Ka swilo swa khale, ku eketela xikambalelo xa ku fambisana. |
Ku hlangana ka xirhozo xa gatse na xa n'xylwa swi ta va ku lahleka ka ntiyiso. Xitsakaxaka lexi nga riki na xikombiso-ka i xitsakaxaka lexi randziweke lexi kombisaka leswaku mundlayi u tirhisa Nymchat, leswi pfunaka ndlela ya ku yaka ku tsutsuma eka xihlangano lexi nga riki na ntiyiso xa timpfumo ta xiyimo lexi a ri faneleke ku xi engetela loko a nga ri tivi mundlayi.
4.2 Xivandzi lexi nga swi nga pfula migondzo xi tshama xi ri ni xin'we.
Xitshutshelelo xi nga tshanelisiwa: xihlamuselo xin'we hi xiyimeriso xin'we, xinkarhi lexi khalahla xi hlula. I swin'wana leswi endlovaka nhlamuselo ya xinyana-nyana ku tirha, naswona i swin'wana leswi endlovaka xidzana lexi nga riki na vuxaka ku va eku xichengeleti loko xi tshama. Xidzana lexi nga tshamisaka xikogo lexi xi xavelaka hi xona xi ta tlula nhlamuselo yen'weni naswona xi ta endla leswaku maloko hinkwawo ma enkripta hi xikogo lexi xidzana xin'wana-xin'wana xi nga riki na xona ku xi vula.
Hakuna xitshini lexi tivaka leswaku xikumu xi ri na xona kambe xi nga swi kota ku xi vula xi nga vulavuli xin'wana na xin'wana. A xi vongi naswona a xi khambiwi eka application: xi hala xiyandzaka xin'wana na xin'wana lexi nga na tikhapu ta xona naswona xi tsandza ku tsala hi ndlela ya xiyimo, loko xi kombela mutirhelela ku xi tswalisa. Ku tindzisa i nkhanu lowu loye eka xitshini lexi nga swi kota ku vulavula hi ta vumunhu.
5Ku kumuka na ntshiketo wa ku tsindza.
Vaakweti va tiva tikhunci ta vaaki hi ndlela yin'wana na yin'wana. Swikongomelo swo tshamela swi hlawula vanhu lava xikongomelo xi tshamaka xi tlangisana na vona — swiunga swa vuxaka na vaaki va xivingiga — leswaku mbulavulo wa vona wu fika tanihi swiendlo swo tlwaelekileke. Ekusirheni ka vaaki lava katsakanyaka ka nkarhi wa sungula, vuxunguxi bya nkarhi wu n'we byi tirhiswa hi nkarhi wa ku tsindza, hi sekonde 2.5; loko swi nga pfuki, mbulavulo wu famba hi ndlela ya khlisika, leswi a swi ri ndlela leyi a yi tirhiswaka loko post-quantum yi nga riki, handle ka leswaku i ndlela yin'wana ya ku nga tsuriwi.
Phuriso leri nga ri nge xona ri hlayisiwe hi mihafula ya khume, kunanzwana ni leswaku ri ta tshama hi ku ya ri nkarhi. Mushumeli loyi a kumanyisaka xitirhiso xin'wana xin'wana, kumbe loyi a humaka eka ku nghena hi browser-extension ku ya eka xikun'wana xa le kaya, u va ni matimba ya post-quantum eka nkarhi wa ku vulavula, naswona "a hi nge i" leri hlayisiwe hi ku ya ri nkarhi swi ta va swi tshama eka xivikyeko xa xinkhundla ku fika ku fela ka xilungaviso.
5.1 Hi yini ku nga ri na ku vuyisela ka ku hunguta xiyimo
Xitsengo xa ku tsongo xi endleka hi xivutiso xin'we xin'we:
pq = (we hold a signed, unexpired ML-KEM key for this recipient)
Ku nga ri na ku langutana hi vukwenzi, ku nga ri na xihlanganiso xa tindhavangisi leti pfumaka, naswona ku nga ri na xiga lexi mufambisi-wo-mbi a nga xi tsundzuxaka leswaku u endla ndlela yo matimba ya ntsena. Ku tshama ku hlamusela xihlamuselo. i ku vekanisa, naswona swi pfumariwe. Ndlela leyi xiboho xi hlamusela xona leyi xilako lexi hluviweke kumbe lexi tseketekeke i leswaku xiyimbi xi famba hi ndlela ya khale — swilo leswi a swi ri vona u nga ri na xiphemu lexi — ku kota leswaku xiyimbi lexi nga ri nge xin'wana xi hundzuluxiwa ku va xin'wana lexi nga ha tsandzeka ku pfuvliswa.
Swipika na swona swi vula leswi naswona swi na nkoka lowu tala: mklenti u tsindza hybrid Ntsena Loko ku ri ni khavula, naswona ku ri ni khavula i xivumbeko xa leswaku kumbeleyi u nga kota ku hundzuxa. A ku na xiyimeri xin'wana na xin'wana lexi xindzila ya post-quantum yi nga tumela mensa eka munhu loyi a nga nga ki naku yi hlaya.
6Ku aka leswi hlanganeke
Nymchat a wu tlangi NIP-44. Yi yi phaka. Xinyorisi xa NIP-44 lexi nga hundzululeriwanga i xigidi xa le hansi, naswona tivivi ta ML-KEM ti phaka AEAD leyi nga la houtloko eka xona:
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)
Swihundzu hinkwaswo swi fanele ku antswa leswaku xinyorisi xi twi tala: xitlangoti xa le hetelele xi nyika xitsalwa-xihundzu xa NIP-44 exolo, naswona ku tlangula swona swi lava ECDH ya le ka nkarhi lowu hundzeke. Munhu loyi a nga endlaka ku tlangula loyi a nga tsundzulaka loyi a pfuxaka secp256k1 u ta kuma xikiveti xa le ndzeni naswona u ta tshama a ri na ML-KEM; ku pfuxaka ka ML-KEM swi tlangula xitlangoti xa le hetelele naswona swi tshama swi tshama NIP-44. Xa xin'wana na xin'wana xi amukela ndhawu ya xona:
kem_ssswi nyika mahlanyelo ya xiyenge xa le hetelele hi xiwva hi xiwva. Ku nga ri na nchumu hi xitsundzuxo lexi wu khumbaka swilo swa ECDH swa ntiyiso, leswi xiyenge xa 6.1 xi swi vulekaka na swona.kem_ct,recip_kem_pknaswona ma-key ya vumbhoni hinkwawo ya kotiwa eka data yo hlawuleka, leswaku xiyenge lexikulu xi tiyisisiwe eka xinyorisi xin'wana-wana lexi xicerisaka. Ku koka madyondyondlo eka vumbhoni bya mundlandzisi un'wana swi ta pfumala vukongomisi ematshan'weni yo vula madyondyondlo.
Ku pfumala (encapsulation) swi endliwa hi ndlela yenhlohloko eka mbulavalo woka n'wana. Khunyi ya ML-KEM ya munghana yi tshama nkarhi wo leha, kambe mbulavalo woka n'wana wu endla ciphertext leyi nga riki ya xivun'wana naswona hi ntolovelo...
kem_ss. I lexi endlaka leswaku ku humisa nonce, ku ri ku yisa hi ku hlamula, ku va nene:
ChaCha20-Poly1305
swi tsemeka hi ku tirhisa hi ku tlhela swilo swombirhi (key, nonce), naswona laha key i ya nchumu woyontshwa eka xiyenge xin'wana-xin'wana, hi leswaku swilo swombirhi swi nga tlheli hi ku tlhela.
6.1 Hi yini mi-layer ti tshama ti hlawulekile
Xinkarhi lexin'wana i ku tsakanya swihundla swimbirhi eka xikombiso xin'we xa nkotašo naswona u nyika lexi eka NIP-44:
ck = HKDF-Extract(salt = "…",
IKM = ecdh_x || kem_ss || …) // do not do this
Ku aka loku loku ku nga ri kona ku tiyile eka vukryptografia. Swi na xiphiqo xin'we xa ndlela yo aka: swi lava
ecdh_x, x-coordinate ya ECDH ya xitshuri, hi swikimi — na browser extension (NIP-07) kumbe mubindzisi le ku hlayeke (NIP-46) a wu tfuluxisiwi xona xihlamuselo xin’wana. Yi endla NIP-44 ehenhla ka munhu loyi a tivisiaka naswona yi nyika xitshatshavela (ciphertext), leswi i xikongomelo xin’wana xa ku hlaya xikogo ematshan’weni leyi application yi nga swi fiki kona.
Ku tsanganisa swihundla swi hunguta ku nghena hinkwakwo ku khensela khave ya vukongomisi eka muxinigi, leswi vula leswaku i vakwerhi lava naxelekeke swinene, naswona ku tirhisiwa ka matirhiselo ya khave a ku nga swi cinca. Ku layeta swi tisa ku nga tshikani ku titshega eka xin'wana: NIP-44 yi tshama yi helela naswona yi antswa hi xin'wana xin'wana lexi tshameke khave ya vukongomisi, ku katsakanya muxinigi, kambe xicimbu xa KEM xi kandziyiwa hi khode ya ku tsindzuxa leyi makhun'wana a xi tshameke hi vona hi ku kongoma. Ku nghena hi muxinigi i vahlangu va xivindzi-quantum lava hlawuleke hi ku hela ka swilo hi ku n'wayitela.
Xikongomelo i bandwidth, naswona a xi ri xi nene. ML-KEM ciphertext i 1,088 bytes naswona yi fambela xiyimbi-mbuyavango xin'wana na xin'wana, yi hlamuleriwe hi base64url ku ya eka 1,451 xihlamuselo; AEAD ya le hetelelo yi engetela tag ya Poly1305 ya 16-byte naswona yi engetisa NIP-44 payload leyi pfumbeleyaka hi mutsongotelo wa mutsongotelo. Xiyimbi-mbuyavango xa 50-character xi kulu ka 176 bytes ku ya eka 1,712, naswona xa 2,000-character xi kulu ka 2,820 ku ya eka 5,238. Minolo i 1.5 KB exiyimbini regardless hi leswaku xiyimbi-mbuyavango xi eviwa hi ndlela ya yini, lexi i xitlhokovetselo xo enkela (encapsulating) hi nkarhi hinkwawo ematshan'weni yo tirhisa xihundzu lexi tivakawo (shared secret).
6.2 Swilo leswi tivuluxaka swiyonge
Leyi pq2. Xitlangoti xi endla leswaku ku vekiwa ka swilo swi endleka hi nkarhi hi nkarhi: xi tivuluxa hi rona, hi ku ri leswaku mvhuluki u kheta ndlela ya ku buluxa hi ku hlaya leswi endlisiweke eka xiyenge lexinene ematshan'weni yo tshemba xitshiketo kumbe ku hlayisa leswaku mun'wana loyi a nga na vona. Muhlavi loyi a nga tivivi xitlangoti u ta pfumala ku pfuka xiyenge lexinene ematshan'weni yo ri hlaya hi ndlela leyi nga riki ya ntiyiso, naswona timbulamadeko leti tsaliweke ndhawu hinkwayo ku ringeta ku endla post-quantum ti ta tshama ti riwa hi ndlela ya NIP-44 ya xivunene, ku nga ri na ku pinduka.
ML-KEM decapsulation yi humbriwe ku ta va ri yi nga tluli nkarhi hinkwawo: loko ku nga na ciphertext lexi nga riki nkarhi, Fujisaki-Okamoto transform yi engetela xihundla lexi nga riki na xinyunyweto (pseudo-random) lexi ri nga cinciki ematshan'weni ka xiphiqo. Hikwalaho, xikweni lexi xi nga riki nkarhi xi nga kumeki eka nkarhi wa KEM; xi kumeka xikwembu xa HMAC eka NIP-44, leswi swi fanaka na ndlela leyi xikweni xa mavele xi kumekaka ha yona. Vakulumisaka va veka tonombe hi ndlela yin'we, hikwalaho xiphiqo lexin'we xi nga ri na xikombiso xo hlawulela xin'wana eka xin'wana. I leswi swinene leswi endlayaka leswaku xiyimbiwa xa xiyenge 9.1 xi fambisela kahle: n'wini u languteta xikweni xin'wana hi xin'wana u lava NIP-44 yi byela leswaku i lexi a xi ri xin'wana lexi nga rilo.
6.3 Mindzhele ta mbili ta papiri ra xiphiwo
A NIP-17 Xikombiso xa xiyimbi i NIP-59 ku phaketa: tsheketo lowu nga riki na sign, lowu vangiweke hi khave ya vumbhoni ya ndlayeri (nhlohlotlo 13), ndzi phaketwa hi khave leyi nga hlayisiwiki leyi hlamuleraka hi xiyimbi xin'wana na xin'wana (nhlohlotlo 1059). Eka ku nghena (login) lowu nga ni khave ya vumbhoni hi ndlela yo tolovelekile, Nymchat yi kongakatana swiyenge swa swawo swimbirhi, xin'wana na xin'wana xi ri na ku pfala ka xona.
Xitirhi xa ku tsala xi kuma xiphepha xa lehenhla fela. Xitimbulu xi endliwa hi mun’wanuna wa ku tsala hi NIP-44 ya xivulavokati — application yi nga ka yi voni xitsirhi lexi xi endlaka — hi ku ri na xitirhi lexi xi nga kombatisiwaka ematshan'weni. Leswi a swi pfuni nchumu ku lumeni mahlundzu lawa: xitimbulu xi fanele xi kumeka hi ku xaveka fela, naswona xitsaveko i leswi muhlamuli a wu hlaviwaka na swona. Mugilemi loyi a nga ni swa ku tsala u fanele ku hlula ML-KEM vusiku xitimbulu xi nga riki xi vonakala ku lumela.
7Swivulavuri swa xigrupu na ku khumba swin'wana
Xikwembu xa migalahu axisi xincandza xin'we. I migalahu yin'we leyi velekiwaka eka nhenge hinkwayo, xitsandzaka xin'wana na xin'wana xi katsaka eka xichaviso xa ML-KEM xa nhenge loyi. Nhenge loyi a vulele xichaviso a kumaka xikandza lexi hlawulekeke (hybrid wrap); loyi a nga nga vuleli a kumaka xikandza xa xitenge (classical wrap).
Swi tisa xiphiqo xa ku balawela leswi ndlela yo tanihi yo tirhisa yi nga xi endli kahle. Loko vahlakani va 8 eka van'wana va 10 va amukela xikophi xa mianakanyo eka xin'wana na xin'wana, xinyorisi i ngavi tihlon'wana ta 8 hi 10 ti sirheleleke. Munhu loyi a lavaka ku tshimbilela u lava xikombiso xin'we xa mavisini (plaintext) lexi fanaka eka tihlon'wana ta 10 hatlfu, naswona mavisini ya sirheleleka loko ku ri na xihi na xihi Xikopiya i.
Nymchat hi leswaku yi landzelela ku hlayiselwa ka xiyenge xin'wana na xin'wana xa myorito loko ku hlayisela vanhu vanhinkulu — ku hlayisela swi tiviwa swi ri eka nkarhi lowu switimbiyela swi tsimbiwaka swa ri eka — naswona xitshatshisi xi hlamusela leswaku i “ku lwisana na quantum eka 8 ka 10 ka vahlanyi” embitisi ku vula leswaku xinyoriso xi sirhelelekile. Loko ku nga ri na ku hlayisela, leswi i swilo swa xivandla eka Kumile minkalaho ya xigrupo (a hi mtsalahisi endlaha leyi xanisiwaka), interface yi kombisa vukondzeri bya nkarhi endlaha hi ku nga ri bya nkarhi hinkwawo. Ku tiyisela vukondzeri hinkwawo hi ku tshama hi xikophi xa yena xinene xiya ku va ku vula swinene hi minkalaho hinkwayo.
7.1 Swi kombisaka hi xiavela
Xikongomana xi vula ntiyiso hi ta Xinyelovo, ku nga ha ta hi software leyi yi tumelaka:
- Sirhelelo ra nene: xikopi xin'wana na xin'wana xa mavuku lawa ma nga hundzisiki wu humile hi ndlela ya hybrid.
- Xikusu: Swikopi swin'wana swa mbulavulo wa tingingana swi humile hi ndlela ya khlassiki. Swi endliwe hi ndlela leyi kuciteke exikarhi ka ku va swa nene, hikuva swikopi swin'wana hi ndlela ya khlassiki swa mbulavulo lowu nga ri na xihundla lowu nga ri kona eka hinkwaswo swi pfanelele muxavisi.
- Classical yi vuriwa hi ku nene ku tlula ku kombisiwa hi ku nga ri na xikombiso, hikuva xikombiso lexi nga riki kona xi pfumala ku nene exikarhi ka “ku nga vikeleki”, “swi vageki”, ni “build leyi a yi na xitshila lexi”.
Xiboho xi kotiwa loko xikongomelo xi khomisiweka, ku kota ku kandziyiwa hi leswi munghana wa nkundla a vula hi nkarhi lowu taka. Ciphertext lexi pfumelaka hi nkarhi lowu xi nga ri na vukosi bya ku va ni xivukokotelo lexi tlulaka lexi xi nga na xona, kambe xihlangano lexi nga tsala hahlamuselo wa mavulavulelo ya le ku xiya hi ku tshembeka ka xivilavileri lava nga riki na vona, xi ta va xi vula swilo leswi nga riki ntiyiso hi ta bytes eka relay.
Swiendlu swa xivundla leswi kombisiweke ehenhla swi engetelerile eka leswi, hi ku nga xi titsundzula: xiyimbeletelo xa xivundla xi sindxiwa hi ku helela loko xikophi xa ndhawukati woka xi ri na ntsindzo, naswona xiyimbeletelo xa xivundla lexi amukeriweke lexi nga ri na ntsundzo wo tala xi kombisa leswaku xi nga ri na ntsindzo wo hela.
8Swikophi swi fambisiwe eka wena hi xikatiselo
Swilo swin'wana leswi khomiti yi hlayisaka swi pfumanyetiwe hi vumunhu bya n'wini: swilawulelo leswi hlanganisiweke, xikombiso xa tinhlamuselo, tikhapu ta tindlu, na xiyimbiwa xa mbulavulo. Leswi swi kombisa swinene hi n'wini ku tlula mbulavulo yin'wana na yin'wana, hi ku rihi ku va swona swa ndlela ya khale swa va swona swilo leswi tshamaka swo tshamela, ku nga khathalelwa leswaku mbulavulo yi pfumanyetiwe hi ku tiyisela. Swi tirhisa xihlangano xin'we, xi pfumanyetiwe hi tikhapu ya n'wini ya nseve — ku nga ri na xin'wana lexi hlamurisaka eka Xikamu 3.2, lexi nymchat-pq-root xigangano hi xona hi xona, lexi nga swi pfumeleri ku valiwa hi
xikoti lexi xona xinene xi nga xi endla.
Tiimbila leti i hiloko leri design yi hlawulekaka kona swinene-swinene. Xikombiso xa swiyimo kumbe xirito xa archive xi tshama exikhundleni xin’we swakanyana, leswi i xiyimeri lexi nkosana yo hlawula swilo swa nkarhi lowu lavaka ku swi hlaya endzhaku yi swi kombisaka — swi tlula swinene ku tlula xikwereti xin’we xin’we, lexi nga riki na nkarhi lowu miheyaka emianakanyweni ka mutluketi.
Xikongomelo xin'we xi lawula xiyimberiso lexi, hi ku tlula khave. Xikophi lexi nga na alamatara ya xona xi fanele xi fundeka hi xihi na xihi xidivayisi eka akaunti, leswaku xidivayisi xin'wana na xin'wana xi tivisa leswi xi nga swi pfura eka xichavo lexi xitibikovaka xivuxaka xa xona, naswona akaunti yi tsala leswi hinkwaswo leswi nga swi hlaya hi vona. Ku tsala xin'wana na xin'wana ku nga vanga leswaku xidivayisi xi pfumala ku kota ku pfura eka milawu ya xona — nkarhi lowu lowu u fana ni ku hleka ku nga twi tikangeti ka nkarhi lowu xiyenge 3.2 xi xi vengelaka hi tindlela to hlayeteka, hi ndlela leyi hlayeteke hi yona.
Xitirhi lexi tshamaka xihlamulamatlamu kambe xi nga ri na xinyangana xi nga pfuki xin'wana na xin'wana lexi vangetiweke hi xito lexi humaka eka xinyangana, ku katsa na swiyimo swa xona. I swilo leswi endliweke hi ku tiva, a hi ku baleka, naswona i leswi ndzhaka ya Xivuyelo 3.3 xi nga na xitsundzuxo xa xitirhi lexi ku endla ku khambanisa embitivi ka ku endla xinyangana xin'wana lexi tsariweke: xinyangana xin'wana xa swimbirhi xi nga wu endli leswaku xidzana xi tiviwa, xi ta xanisa xito xa xihlamulamatlamu hi swimbirhi. Ku fika loko mutirhi a xi khambanisa, xitirhi xi ta tshama xi tirha — xi tsariaka leswi xi nga na xito eka wona naswona xi tsindza hi ndlela ya khale.
Xitirho lexi tirhisiwaka eka browser extension kumbe xitirho xa remote signer (NIP-46) a xi na nsec yo koka hi yona, kambe xi na recovery code, naswona hi ku landza ku hleleka ka swilo leswi eka Xiyenge 6.1, i sweswo xinene lexi xiyenge xa post-quantum xi xi lavaka: xitirho xa signa xi endla xiyenge xa NIP-44 ku fana na le ka swilo swa le ka tona, naswona client yi tivangela xiyenge xa le handle hi yona. Ku nghena (login) ngalaho i nhengeleti wa xiyimo xa xitsongo eka tindlela ta hinkwato.
9Ku xava
Leyi epoch Xihlawuleki eka ku humelela i xona lexi endlaka leswaku ku hundzukisa swi khomiseka bila ku ri na swilo swa xihlava swo ntshwa. Ku engetela xona swi nyika xihlava xa xivungetu lexi ntshwa exikweni xin’we exikoti eka xichavo lexi vuyisiweke; vanhu lava fanaka na wena va kuma xihlava lexi ntshwa exikombisweni lexi nga cincaka. Hi leswi ku hundzukisa ka swi nga kombeli mutirhelela ku tsala xin’wana na xin’wana hi kuvalentelo ra vumbirhi: xikoti xi enetiwa hi ku khensela ka nkarhi muti wa vumbirhelela xin’we naswona nkarhi i xona lexi endlaka ku hundzukisa.
9.1 Swikembe swa khale swi hlayisiwa, naswona ku nga ri na nchumu lowu katsiwaka hi ku tlhela.
A hi na nchumu lowu tsaliwaka hi ku tlhela loko key yi cincaka. Client wu veka swilo leswi nga ta pfumuleriwa ku sukela eka epoch ya sweswi ku fika eka epoch ya -3, hi leswi molawo lowu khomanyisiwaka tsheketo lowu nga rhenga ku cinca wu nga tlhela wu pfumuleri hi keypair leyi a yi nga ri ya sweswi loko wu tsindzeleke.
Xinyengo lexi i xona lexi endlovaka ku cinca (rotation) ku va khome: handle hi ku nga ri na xona, ku cinca ku nga va ku tshikama xin’wana na xin’wana lexi a xi ri eka nkarhi lowu. Xin’wana na xin’wana lexi laha xi nga vavaletiweke xi ta tshama xi nga pfuliwa ku fika loko identity yi fela, hikuva nkarhi leri munhu a nga swi nga pfuka rona ri na vuswa byingi eka yena ku tlhela ri ri leri leswi ku sirisiwa swi nga hundzuluki ku ya endzhaku (Xiyenge 10.5).
10Leswi xona xi nga xi sirheleli kona
Xincwadzi lexi hlamuselaka swilo leswi nhlamuselo yi swi endaka xona a xi hlamuseli xitshundzaka, naswona ku engetela xiphemu xa vukorhokeri exivandzini swi biha wu tala ku xi tshwa. Swileswi landzelaka swi le he landza ka leswi nhlamuselo leyi yi sirheleleke byona.
10.1 Mutsako i xihundzu ra vumbirhi, naswona ku yi lahlaka ka ku nga vuyiswi.
Leswi i xitshuri xa ntiyiso xa xikongomiso lexi. Xikongomiso lexi ku Section 2 leswaku mutirheleli u fanele ku va ni nchumu un'we ntsena lowu faneleke ku vekiwa swi nga endliwi: nsec yin'we hi yona yi nga ha ku endla leswaku key ya post-quantum yi humelela, hikuva mhaka ya ntiyiso i leswaku nchumu wo halkala kumbe xihundla xin'we xin'we wu nga yi vula. Loko xitirhiso xin'we xin'a xi nga ri na "root" naswona nothinga ya "wraps" eka Section 3.2 yi nga vuleki, swilo leswi fihliweke hi key leyi humaka eka "root" swi nga ha ku kumeka. Ku nga ri na escrow naswona hi kusuhi na ku endla leswaku ku nga ri na nkhosi leyi nga nga yi hlanganisa.
Hi ku hundzuluxa hi matimba ya munhu ku ri nsela leyi riki na yo karhi, leswi swi ni vutlhari byo tala ku tlula leswi swi nga vuriwaka hi ku sungula. Munhu loyi a tirhisaka loyi a nga tshamaka a nga kopi... nympq1… Khodi yo vonxaka-vonkulu yi na xitipfuri xin'we ntsena, eN'wini wa xitirhiso xin'we, naswona ku lahleka ka xitirhiso xin'we swi lahlekisa msg yo vonxaka-vonkulu hinkwayo, settings blob na archive row leswi ko tlamuseliwe eka xona. Hi...
nsec a pfuni; i nchumu lowu nhlamuselo hinkwayo yi tshame eka wona.
Ndzila yo fihliwaka leyi engeteriwaka endzhaku yi fanele ku kota ku fihla hi ndlela leyi fanaka ni leyi handzuwaku. Mundzuki u tlangela ndzila leyi n'wi pfumaka yo tirhisa, hi lexi xiyero xa xiyero i xiyero xa ndzila leyi n'wi pfumaka yo vuyisela — hi xikombiso, nkanu wa ku hlayisa loyi u nga wu tsundzuka, wu ta endla leswaku xin'wana kato Swi va na xiyero lexi fanaka ni xiyero xa nkanu lowu, naswona ndzhila leyi fihliwaka i xitirhi lexi mundzuki a xi hlayisaka sweswi leswaku a xi hlula endzhaku hi nkarhi lowu n'wi pfumaka.
10.2 Ku tiqinisekisa, hi ku hlawukana na ku hlayisa xihundla
Minkatana hinkwayo eNostr i Schnorr eka secp256k1, naswona swi nga hundzuluki leswi. Muvangi loyi a nga na kompyutha ya quantum a nga kota ku fakeka minkatana naswona a tivisa hi munhu loyi a nga ri yena hi nkarhi lowu. Xilavele lexi xitwalatshina xa xihloko (hybrid key exchange) xi nga xi hlulaka i ku hlawula swilo swa manje ku ri hi ku vula hi ku pfumala hi ku endla: muvangi loyi a tsaxaka nkarhi wa sweswi a nga ta swi kota ku swi hlaya hi ku nkarhi lowu taka. A swi endli leswaku xiyimbeletelo xi nga tivisiwi ku fihla hi muvangi loyi a nga ri na xiyini lexi. Ku hlawukana lokhu ku pfumaleleke eka ti-application — xisidirisi xa xiteko xi kombisa ku tiyisisa, xisidirisi xa xihlangu xi kombisa ku fihleka, naswona i swikambiso leswi tshanaka hi ku hlawukana hikuva xiyimbeletelo xi nga va na xin'wana xin'wana ntsena handle ka xin'wana.
Swi nyikela xikongomelo eka leswi nkhuturi eka xiyenge xa 4 xi nga swi tshembisa. Ku thandana exikarhi ka npub na key ya ML-KEM i masignichi ya secp256k1, hi leswaku muxavisi loyi a nga swi endla swa mavevanyo a nga kota ku tshambisa key ya yena. Ku hlayisa xihundla exikarhi ka muxavisi wa siku leri taka a swi fanani na ku tshembeka exikarhi ka muxavisi.
10.3 Metadata
Ku phakanya xiphiqo swa hlayisa u nga a humisela kona, u nga a amukelaka kona ku tlula xin'we. p tag, swilo leswi swi nga endliwaka hi xona, na xikombiso-xilelule xa nkarhi wa mola wa le hansi. A wu fihli leswaku ku ni nkarhi lowu nga endliwaka, nkuluwa wa wona, kumbe loko relay yi ri kumile. Ku hlaziyela swilo swa nkarhi a ku kumeki hi xiyenge xin'wana na xin'wana xa xirito lexi.
10.4 Mesh yo nga ri na xikoneko
Xitshungulelo xa Bluetooth mesh xa Nymchat i protokol leyi hlawulekeke leyi nga na handshake ya yona, naswona a yi kumeleki hi ntirho lowu. Swikulumu leswi fambaka eka mesh i swa nkhenkhela.
10.5 Meseji leti tsuriweke
Xindzhele xa mbulavulo lexi tsariwikiwaka loko yin'wana ya va yi ri ya khale, xi ta tshama xi ri ya khale hi nkarhi wun'wana-wana. Xi ri kona khale naswona a xi nga tlherisiwi hi ndlela yin'wana. Vuhlayiseledi byi sungula eka mbulavulo lowu loko tinghenisi ta heri ta post-quantum ti rike na tona, a hi nkarhi lowu xihlamuselo xi sungulaka kona.
11Swindlela leswi vuriwetileke
| Ndlela | Hi yini ku nga ri kona? |
|---|---|
| Humeza khavhe yo landza quantum ku huma e khavheni ya vumunhu. | Swi pfumanyetiwile. Derivation i algorithm ya le xiyimbeni leyi humelela eka nsec, kambe mushayi-vundzuku wa quantum u tsundzuxa nsec eka npub leyi kumiyeleke, ndzhaka ya le xiyimbeni lexi ku tiyisiwa xitshuri xa classical ku nyika xitshuri xa post-quantum na xona. Swi xavule xiphiqo xin'wana na xin'wana xa distribution eka xincwadi lexi, kambe swi nga va si tihemela eka munhu a nga ri kona. Nhloko-xiyenge 3.1. |
| Humesa root e switirhiselo swo shinwe swa mutluketi hi NIP-44 | Swi lulamiwe hi nkambelo lowine hi ku fana ka swilo swo hlayaka. Ntsandzu leyi hundzisiwe hi ku vangiwa ka mivalo ya khale ntsena yi nga antsheka hi un'wana na un'wana loyi a hundzisile xiyimbezelo lexi naswona a nga vula xikongomelo xayo endzhaku, loyi i nchavi leyi ntsandzu yi nga ri yimisele ku yi yimisa yena. |
| Swikiyeri swa ML-KEM leswi endliweke hi ku hambanisa eka xitshuri xin'wana-xin'wana. | Swi landzuliwe. Switirhisiwa swi ta va ni ti-key ta decapsulation leti hlayaka hi ku fambana, naswona xitshunuri xin'we xin'we lexi cincaka hi xiholongonono xi nga swi kota ku tsutsumeta hinkwaswo. Vahambani va ta enkripita hi le key leyi vekiweke ya mhvalu, naswona swin'wana swa switirhisiwa swa ta nga swi kota ku hlaya mhlangano lowu. N'tsandzaka yin'we hi xiholongonono, leyi fambisiwaka hi mindzila ya Xiyenge 3.2, i yona leyi xavetaka leswi. |
| Fungela ntshava ehansi ka PIN. | Swi pfumama. PIN ya nomba yo tala ka 4 i makalaha ya 13 (bits) ku kumana na muhluki loyi a nga ri kona emushini (offline attacker) loyi a hakile xihlamukwana (wrapped row). Ku yi nyika eka milati ya 256-bit yin’we na yin’we swi ta tsimba hi xiyimo lexi pfumaka xa xihlamukwana lexi pfumaka swinene. |
| Khulisa npub leswaku yi va na makhunci ya mabiki | 1,184 bytes a hi xihlamuselo lexi nga pfumelaka ku kumanyiswa, naswona swi ta vanga vukanganisi eka ku hlahlulwa ka migidzi hinkwayo ya Nostr leyi khomaka ya xikongomelo lexi nga vuriwe hi leswaku i 32 bytes. |
| Ntirho wa ndzhaka wo kongomaka | Ku tlhela ku dzhenisa vutihlamuleri leswi xihaka-xihaka xi rike ku xevetela xona. Mani a hlamulaka ku fifatela, u tsari leswaku mani a nga ha kwata ku hlaya xiyimbi. |
| Tsaya khonzi eka mbulavulo un'wana na un'wana. | Swi nga xisunguli xin'wana: munderu u lava... wa amukakawo khavhi ku khale ka xikombiso xa xinkheta, leswi hi byona swi vumbekaka hi byona loko ku nga ri na xikombiso xa le ku xindzileyi lexi nga ri naku. |
| Ku vangama ka swikoni exikarhi ka xikanetelo | Swi tisa ndhawu yo hleka xiyimo. Mtsandzeleri loyi a nga kota ku hlakula xitshungulo xa vukosi u endla leswaku ndlela ya khale yi tirhisiwa. |
| Post-quantum ntsena, a ku na xiyenge xa mavele. | Ku lahla vuxokoxoko bya vumavunanga bya secp256k1 hi ku cinca na xihlamuselo lexi tsariweke swinene. Xihlanganisi xi hlamala loko ku ri swimbirhi Ku hlulwa. |
12Ku fana ka ku tirhisiwa
Nymchat yi engetela swiendliwa swimbirhi leswi nga riki na vuxaka bya vona — xin’wana hi JavaScript ya ta web application, xin’wana hi Dart ya ta mobile applications, ku katsaka na ML-KEM-768 port leyi endliweke ku sukela eku sunguleni. Swiendliwa swimbirhi swa xihlawheximbi xin’wana xin’wana swi tiviwa tanihi xiphiqo hi nkoka, hi leswi swi landisiwaka hi xin’wana hi xin’wana ematshan’weni ka ku tshembeka leswaku swi pfumelana.
Ndlela yo endliwa ya ML-KEM ya Dart yi pfumariwile ku humelanisa na le xi pfumama
NIST ACVP
Mitlolo ya mivazantla leyi tiviwikiwaka ya ML-KEM-768 (ML-KEM-*-FIPS203) — 25 swikombiso swa ku endla mafomu ya mafanya, 25 swikombiso swa ku fihla na 10 swikombiso swa ku vula, swi tirhisiwa hi ku fana na swivandla swa swona. Swilo leswi i swikombiso leswi NIST yi tivatisaka ku tiyisisa vuxavisi, hi leswaku ku pfandulela swona swi kombisa leswaku vuxavisi i bya ntiyiso, hi ku nga ri ku kombisa leswaku vaxavi vambirhi va lumelana fela. Ku tlula leswi, xivandla xin’we xa swikombiso swa ku lesa — ku hlamusela seed, ku fihla, timhaka ta payload, na ku fihla ku helelele — swi hlamuseleriwa hi JavaScript ya xikombiso kutanihi swi lesiwetiwa hi swivandla swa ku lesa swimbirhi. Xihundla xa xipfumo xi engetela xivandla xin’we xin’we ematshan’weni yo xi sassela: xipfumo kuya eka seed, xipfumo kuya eka keypair, xihlamuselo xa xipfumo xa le hetelele, na xihundla xi hlamuseleriweke, nonce na vuxaka bya xiphemu xa le hetelele i swikombiso swa swona, hi leswaku vaxavi vambirhi va nga ha pfanduleli hi leswaku yini a
nympq1… Khodi yi vulaka hi ta ta bayiti leyi ntlamavo yi valiweke na yona. Ku fambanana hi yin'wana na yin'wana ya maendlela ya ku tirhisa swi endla leswaku ku aka swi paza, ku tlula ku aka ntlamavo lowu xiyaka xin'wana xi nga swi pfuni ku wu pfula.
Xichavo-madyondlo xi fanela ku vuriwa exikarhi ka lava. I xona lexi hlamuselaka xihandzu leswaku "oyi i migodzi leyi ndlayimaka yo" ku sukela eka "oyi i yin'wana leyi hlayaka leyi", naswona n'wini-ntelekisi loyi a nga swi kumisa xichavo-madyondlo xa n'wini-ntelekisi un'wana a ta tlangela xikombiso lexi tsakaka ka xikombiso lexi nga riki na xona na xona — naswona hi ku landza Xiyenge 3.3, a tumbula migodzi ya vumbirhi naswona a tlandlamula vumunhu. I ndlela yo endla sweswo hi ntolovelo.
Nymchat i vula
mimbhelo hi ku landzela AGPL-3.0. Xin'wana xa nkoka xa nkambiso wa ku hlayisa xihundla lexi kombisiweke eka leswi i
js/nym-crypto.js na js/modules/pq.js eka xikongomisi xa webu, na
lib/core/crypto/ na lib/features/identity/pq_registry.dart e ka
ma-client ya mobile.
Ku hlamusela leri tsongo, leri nga riki hi vutivi bya vutshila, vona... Pajina ya ndzhaka ya vutivi hi vukanyisi lebyi nga tikangiki hi kwantamu.