Inyandiko ya tekiniki ya Nymchat
Kumvikana ku mfunguzo nyuma ya Quantum muri Nymchat
Kugabanya amashanyarazi ya burundu ya ML-KEM-768 kuri Nostr nta dosiye cyangwa urutonde rw'ibanura bikoreshejwe, no kuyabyaza imizi kuva ku ibanga icyo nta kintu cyagaragaza mu buryo bugaragara.
Gushyira uburyo bwo guhererekanya amakuru y'ibanga ryo muri post-quantum muri messenger si ikibazo cy'ubumenyi bwo guhisha ibanga cyane. Ibintu by'ibanze byagenewe amategeko kandi amakipe (libraries) akoreshwa ariho. Ikibazo kigoye ni uko buri muntu ugiye kugira uruhare ubu akenera... kabiri ishingiro rya muntu rishingirwaho, kandi umuyoboro utagira umuyobozi umwe nta hantu hagaragara aho wakubika. Iyi nyandiko isobanura uko Nymchat ibisubiza ibyo — aho rya shingiro rya kabiri rivurukira, uko rigeza ku bantu babyenera, n'icyo ikoranabuhanga (interface) ryemerewe kuvuga ku bijyanye n'ibyo bibonye — kandi, mu gace ka nyuma, ibyo ibyo bibonye bitarinda.
Uru rupapuro rwahinduwe imashini kugirango byorohe. Umwimerere wicyongereza ni verisiyo ikoreshwa.
1Ikibazo
Ubutumwa bwihariye bwa Nostr bishyizwe mu muryango w'ibanga hakoreshejwe NIP-44, ifite ibice bibiri bishobora gutandukanywa. Igice gihindura inyandiko isanzwe — ChaCha20 ifite ikimenyetso (tag) cya HMAC-SHA256, koresheje urufunguzo ruri kuri HKDF (RFC 5869) — ntabwo igira ikibazo gikomeye kubera mudasobwa ya quantum; algoritme ya Grover ikuraho umuvuduko ukoresheje urugero rw'uruziga (square-root speedup) ku mfunguzo isanzwe (symmetric key), kandi bitsi 256 birabyihanganira. Igice cya kabiri... abyemera ku mfunguzo ni elliptic-curve Diffie-Hellman kuri secp256k1... kandi algorithm ya Shor isemba uburyo bwa discrete logarithm mu buryo bwuzuye. Gusubizwa ufunguzo wihariye umwe kuva ku ufunguzo ruri mu ruhame bituma ibanga ryose ryasangiwe ryo ufunguzo rwakoreye ryagaragara mu buryo bw'inyuma.
Icyago iki cyica ntacyo kigomba gutegereza ko imashini nk'iyo iboneka. Umwanzi ufite ububiko ashobora kwandika inyandiko yafashwe n'uburyo bwihishe uyu munsi, maze ayisobanura igihe cyose ubushobozi bwaba bwayibayeho. Icyose cyatumwe ubu ariko kikakomeye mu gihe kizaza, cyari cyamaze kwangirika. Ubu ni bwo bushakanyi bwihariye bwo guhinduranwa amashanyarazi nyuma ya quantum (post-quantum) butsinda, kandi ni yo mpamvu imikorere itagomba gutegereza ko imashini izashakwa.
1.1 Ikibazo iyi nyandiko isubiza
Uburyo bwo kugabanya ingaruka burashobora gusobanukirwa neza: gukoresha uburyo bwa post-quantum key encapsulation mechanism hamwe n'uburyo bwa kera bwo guhererekanya, kugira ngo umutekamutware ashobore gusoma ikintu icyo ari cyo cyose, agomba kurivunura byose kabiri. Nymchat ikoresha ML-KEM-768 (FIPS 203). Icyo bituma habaho ikibazo cy'isambazwa ako kanya:
Kwandikira Alice uyu munsi, ukeneye ikintu kimwe: npub ye. Niba ushaka gukoresha uburyo bwo guhererezanya ubutumwa bwiteza ibibazo mu gihe kizaza (post-quantum exchange), ukeneye n'ikindi — ikirango cya ML-KEM (ML-KEM public key). Icyo kirango gihaba he, kandi ukiyibona ute mbere y'uko umuha ikintu cyose?
Npub irihari wenyine. Ushobora kuyandika ku rupapuro, ukayisoma wohereye ijwi, cyangwa ukayisoma kuri screen, kandi ni byo byose umuntu akenera kugira ngo akurendikire. Ikirango cya ML-KEM-768 (public key) ni bytes 1,184. Ntabwo ishobora gusomwa wohereye ijwi, ntabwo ishobora kubyarira mu izina ry'umukoresha, kandi ntabwo ikwiye kuba muri QR code irundanye n'indangamuntu igaragaraza bytes 32 gusa.
Ingano ni igice cyoroheje. Igikomeye ni uko funguro ya kabiri izana ibibazo bitatu bitandukanye, kandi ibindi birimo muri iyi nyandiko ni igisubizo cyane kuri ibyo:
- Bishobora gusimbuzwa. Funguro ritari kimenyerewe gusomwa mu buryo bwihuse ni cyo kintu nyacyo umukora ibyaha wakivurura akageza uk'uwabo. Igice cya 4 kigihambira ku myirondoro ukoresheje umukono, ibi bikaba byakemura iki kibazo mu buryo bwuzuye.
- Bigomba kuba bimeze kimwe ku bikoresho byose by'umukoresha. Konti imwe kuri telefoni na laptop igomba kwerekana urufunguzo rumwe, cyangwa ubutumwa bw
- Ishobora gutakara. Icyapa cy'uburere kigaragazwa binyuze mu banga, nuko icyo bikenewe ko gikomeze gihari ari uwo banga — kandi binerweye uburyo bwabukozemo, nta kindi kintu cyose kishobora kuwubaka. Igice cya 10.1 kivuga mu mucyo ibyo bintu biba bifite igiciro, kuko iki kiproblem si ikibazwa gushaka umuti, ahubwo ni ikibazwa gishyura.
2Imipaka y'imiterere
Imipaka ine yagize igisubizo, kandi ibyo zikuraho imiterere isanzwe myinshi mbere y'uko hagurwa kode imwe yose.
- Amabanga make uko bishoboka. Abakoresha Nostr barimo bafite ibanga rimwe gusa, ari ryo nsec. Ibanga ryose ryongereyeho ni uburyo bundi bwo gutakaza amateka yawe, kandi umuntu uzi kubika nsec ntabwo azamenya kubika ikindi kintu cyose. Igice cya 3.1 kigaragaza ko ibi bitashobora gushyongorwa ako kanya — urufunguzo rwa post-quantum ruvuye kuri nsec ntiruhereza uburinzi bwa post-quantum na busa — bityo imiterere ikoresha ibanga rimwe gusa kandi ntabwo irukoresha urundi: igice kimwe gusa cy'ibyangombwa by'urufunguzo, kivanwa rimwe kuri buri muntu, kigaragazwa mu buryo bumwe n'ubw'nsec kandi mu mwanya umwe, kugira ngo uzi uko bakora ibyo kubika kimwe akamenya n'uko akora ibyo kubika ikindi. Igice cya 10.1 kigaragaza ukuri ku byo ibyo bishobora kugira igiciro.
- Nta ububasha. Nta serivisi ishobora kwizerwa ngo ivuge uwo mfunguzo ijyanye n'uwo. Iyo serivisi yose nk'iyo iba aho ubutumwa bushobora kuyoborwa mu nzira itandukanye.
- Ibikoresho byinshi, imyirondoro imwe. Imyirondoro ya Nostr akenshi ikoreshwa binyuze mu burembo (clients) bwinshi icyarimwe. Amakuru yose y'urufunguzo agomba kuba amwe kuri zo zose, kandi inzira zibageza kuri zo ntigomba kuba zishobora gusomwa n'umwanzi uwo gikorwa urimo kurinda.
- Nta kiganiro. Kumenyesha mu muhanda w'itumanaho "ni ubuhe buryo bwo kwitira (ciphers) mushobora gukoresha?" ni umwanya umugambanyi ashobora gukoresha kugira ngo asibe amakuru akoresheje uburyo butari bukomeye. Imiterere igomba kuba itagira uburyo bwose bwo kumanura urwego rw'umutekano.
3Ibanga ry'intongo ryihagararira
Icyemezo cy'ingenzi ni uko urufunguzo rwo gusohora amakuru (decapsulation) rwa ML-KEM rishingiye ku nkingi y'amakuru y'urufunguzo itagaragazwa n'ikintu cyose kigaragara mu ruhushya. Buri muntu (identity) ahabwa ibanga ry'ibanze rimwe, ryaremwe rimwe gusa:
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 uyerekanwa umukoresha nk'uko nsec ibikora: bech32 hamwe n'ikimenyetso cy'imbere cyumvikana n'abantu
nympq, bityo bishobora gusomwa n'uko bimeze nympq1…, ikigaragazwa iruhande rw'iyo nsec muri screen y'imiterere y'umuntu (identity screen) hashingiwe ku buryo bwo kuyerekana, yakozwe hakoreshejwe uburyo bumwe, ntigahora ibyanditswe kandi ntigahage n'aho mu buryo buhanitse. Si ijambo ry'ibanga kandi si uburyo bwo kwinjira. Ni amabwiriza y'urugero umukoresha ashobora kubika, nk'uko nsec imeze.
Umunyu washyizwe mu bice bitandukanye mu byerekeje, kugira ngo nta kindi kiba kirenga gashobora guhanga agashami k'urugero rumwe. Uwo epoch umubare utera ubusoboro (Igice cya 9).
3.1 Kuki urufunguzo rutashobora kubikuramo kuva ku rufunguzo rw'ubwite
Imiterere igaragara ni ugutangiza agashashari k'amashashari abiri ukoresheje ibanga umukoresha asanzwe afite:
seed = HKDF(salt = "…", IKM = nsec) // do not do this
Birakurura kubera impamvu enye, zose ari nyayo: nta kindu gishya kiba kikeneye gukorerwa backup, kubera ko nsec ari yo backup; buri gikoresho cyose cyemera imiterere yacyo, nta mishinga yo guhuza ishobora kwangirika; itangazo rimwe rishobora guhindurwa kuri buri muntu (identity) riragaragara ko ririmo ukuri, kubera ko ibikoresho bitashobora kutemeranya ku bijyanye n'urufunguzo; kandi urufunguzo ruriho mbere y'uko rwandikwa, bityo umukoresha ashobora gufunga ikintu kuri we ubwe ku nshuro ya mbere akoresha.
Inyungu enye zose nta gaciro bifite kubera impamvu imwe. Algorithm ya Shor ikoreshejwe kuri npub yagaragajwe itanga nsec. Kwerekana inkomoko y'ibanga (seed derivation) ni algorithm isanzwe ikorerwa nsec. Bityo, uwo mwanzi wamenye igice cy'uburyo bwa kera (classical half) areubaka nanone igice cy'ikoranabuhanga rya post-quantum akoresheje HKDF imwe nk'iyo bose bakoresha. Ku bijyanye no "gukura amakuru ubu maze kuyasoma ejo" (harvest-now-decrypt-later) — ikibazo cya mbere ubu buryo bwakorewe kugira ngo bukire — funguzo (key) yakorewe muri ubu buryo ntirwongera na gato.
Urufunguzo rwa ML-KEM rwo gukura mu mureri (decapsulation key) rugomba rutoroka kuri entropy itashobora kuboneka binyuze muri nsec kandi ntabwo yigeze itumwa ukoresheje uburyo bwo guhisha ibanga bwa kera (classical-only encryption) gusa.
Igice cya kabiri cy'iyo mategeko gifite akamaro nk'icyo cya mbere. Ibanga ryaremwe mu buryo bwihariye ririmo kongerwa hagati mu bikoresho by'umukoresha muri ubu buryo bwa NIP-44 ni ikosa ryo mu buryo bumwe ariko rurimo ibikorwa binyuranye: umwanzi yandika uwo mwanya uyu munsi maze akabona urufunguzo rwawo nyuma, imikorere y'ibanze irasenyuka. Ni yo mpamvu inzira ziri mu gice gikurikira ari zo ziriho, kandi ni yo mpamvu nta yo muri zo ivuga ngo "ubirekere ku rundi rukoresho rwawe."
3.2 Kuzana root ku bindi bikoresho by'umukoresha
Itegeko rya 3 rya Igice cya 2 — imyirondoro imwe, ibikoresho byinshi — ntashobora kubonezwa binyuze mu mibare hano, kuko intego nyamukuru ari uko urufunguzo rutagira isano n'ibyo ibikoresho byari bishakanye. Bigomba kubonezwa binyuze mu kwimurisha ibintu, kandi hari inzira imwe gusa: umukoresha ayimurisha nympq1… Bakora amakode ku bwabo.
Umwambi ugaragazwa nko nympq1… imbere ya nsec, n'ikindi gikoresho cyemera ko kishyirwa muri iyo pamaeli imwe. Uwo ni uburyo bwose bukora. Igikoresho kitahabwe ikode nticyashobora kugira uruhare, icyo Igice cya 4.2 kigaragaza.
Kuvunagura mu buryo bw'intambwe (manual transfer) ni urwego ruteganyijwe, atari intambwe ya mbere. Amategeko ari mu gice cya 3.1 avuga ko umutwe (root) adashobora kugenda ugarukirijwe gusa n'uburyo bwo guhisha amakuru bw'imiterere ya kera (classical-only encryption), kandi buri buryo bwose bwashobora kubikora mu buryo bw'ubwihutiranya (automatic) — nk'ubushyiranya binyuze mu rubuga (syncing through a relay), cyangwa kubishyira ku mfunguzo y'izina (wrapping it to the identity key) — bujyanye n'iyo mategeko. Intambwe umukoresha akora ni yo impamvu uburinzi ari bw'ukuri.
Imiterere itanga umwanya w'inzira yafunze: umwandiko ushobora kugira urutonde rw'ibintu byafunzwe, buri rimwe riri mu buryo bwa AEAD blob rishingiye ku mfunguzo umukoresha ashobora kongera kubona ku yindi kirango — urugero, umusaruro wa passkey PRF. Nta kintu cyose kigezweho kiba gifite ubwo buryo, kandi kugeza igihe ikintu kizaba gicika, ... nympq1… ikode ni
inzira yonyine yo kunyura.
Igice 10.1 kivuga ibyo bihennye.
Irekord ubwayo kiba mu cyiciro cy'amahindagurika kacyo bwite, nymchat-pq-root, kandi ikihuza nk'uko ibindi byiciro bikora. Niyo itari ifite wraps, ikora akazi gakerekanwa: kuboneka kwayo ni uburyo igikoresho cya kabiri kimenya ko uyu muntu asanzwe afite umutwe, ibyo bikaba ari byo bituma ritaremye undi mugenza (Igice 3.3).
The nymchat-pq-root icyiciro kigomba ntabwo bikubitiwe kuri funguzo ya ML-KEM ikomoka ku nkomoko. Uwo murongo urimo kopi imwe gusa y'iyo nkomoko, bityo kuyihishe ukoresheje funguzo ikomoka kuri iyo nkomoko ni nk'ifungo rifite funguzo yarimo muri agasanduku: nta kigikoresho cyashobora kugifungura, harimo n'icyo cyanditse. Ibihishewe mu buryo bwa kera — NIP-44 kuri wowe ubwawe — cyangwa ntacyo biba bimeze. Aha ni ho hantu hamwe igenekerezo ryemera kurindwa mu buryo bwa kera gusa, kandi rishobora kubikora: uwo murongo uyu munsi nta nkomoko urimo, ahubwo urimo gusa amakuru ko hari nkomoko ihari.
Ibindi byiciro byose by'izinganizo ashobora kandi agakwiye gukoresha icyapa cyaturutse ku nkingi y'ibanze. Ibi ni byo byonyine biba uburenge, kandi ni uburenge bujyanye n'imiterere isubiramo aho ku mbaraga.
3.3 Gukorwa no gukoreshwa
Iyo yafunguye, ifite ubumwe budahinduka, umukiriya akora mu buryo bukurikira:
- Shaka icya kihari
nymchat-pq-rootinyandiko. - Amakuru yabonetse, kandi iki gikoresho gishobora kubikuramo — yikoreshe hanyuma ukanamenyesha uko uyu mwirondoro ushobora guhangana n'imbaraga za quantum.
- Ikirimo cyabonetse, kandi iki gikoresho ntikishobora kugifungura — ntukore umushingi mushya, kandi ntushyire hanze itangazo ryose. Mubwire umukoresha kwihuza iki gikoresho ashyiramo
nympq1…imibare ivuye kuri igikoresho cyari cyari gifite. - Nta mbonerahamwe — hanga umusingi, oshyira inyandiko mu itangazamakuru, tangaza, kandi ugaragaze...
nympq1…ikodi ku mukoresha rimwe gusa kugira ngo bayibike.
Intambwe ya 3 ni yo intambwe yoroshye gukosora, kandi ni yo mpamvu urutonde rwanditswe aho kwereka buri mushinga uko rukora. Ibikoresho bibiri aho buri kimwe cyemeje kurema umutizi biteraganya imitizi ibiri itahurije hamwe munsi y'izina rimwe, kandi ari na yo nshingano urutonde ruri hano rurengera.
4Itangazo ry'ubushobozi
Igice cy'uburyo cy'amashashari yakuweho kishyirwa hanze nk'icyerekezo gishobora gukoreshwa.
NIP-01
igikorwa — ubwoko 30078, yashyizweho itag 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 bivuze ko relay ifite event imwe kuri buri (kind, pubkey, d-tag), bityo gusubiramo itangazo (republish) biba byasigaye ririmo mu mwanya waryo. Bityo, buri muntu (identity) agira inyandiko imwe gusa y'ubu, ibyo bituma "gushaka uburenganzira bwa Alice" (look up Alice's key) biba ari uburyo bumwe butaziganya aho kuba urutonde rw'ibintu ugomba guhuza.
Umukono ni wo wemeza Event ishyizweho umukono n'urugero rw'icyitwa identity key, bityo ikivugwa ko "urugero rwa ML-KEM ruri kuri ubu npub" rishobora gukomera nk'ubwo npub ubwo bwite. Guhindura urugero rwa encapsulation ukoresheje urundi rurashobora gusaba kwera umukono wa secp256k1. Umuntu ushaka kwangiza ushobora kubikora ntabwo akenera kwibanda ku bijyanye na KEM.
Imenyekanisha birangira. Iminsi irindwi NIP-40 Igihe cyo gusoza, yasubirwamo buri amasaha 24, bituma inyandiko ikomeza kuba ikivuga ku mukiriya ukiri mu kazi aho kuba ikivuga uwo wari ukora mbere. Umwibasanzure (root) ubwe ntushira na rimwe; gusa icyemezo (claim) cyacyo ni cyo gishira.
Ibumenyesho rishize igihe risomeka neza nk'iryo ryigeze rigaragaza urufunguzo: abafatanyabikorwa (peers) zirohereza NIP-44 isanzwe, ishobora gusomwa n'urukuta (login) rwose, kandi umukoresha (client) asubira mu masezerano yo kurinda amakuru (post-quantum exchange) ku nkurikiranire y'ubuhungiro bwe, igihe yongera gusohora amakuru. Bityo, kutavuga igihe kirekire kurusha ijuma rimwe bituma ubwirinzi bw'ubutumwa bwagezeyo muri icyo gihe bugabanuka — butumwa bwageragejwe uburyo bwa kera (classically encrypted) aho gukoresha uburyo bwo kurwanya quantum (quantum-resistant) — ariko ntibiba bifite ikindi kiguzi. Iburyo bwo kugeza ubutumwa ku muntu ntibihinduka, ibyaheretse ntibihinduka bitasomwa, kandi nta kindi kintu gikwiye gukorwa igihe ubutumwa bushika.
Uwo muryanya ni wo mpamvu y'uko ibintu bishira, aho kuba ari akaga k'uko bishira. Nta yo ibaho, inyandiko iba ibirenze kiyi (key) yayo: icyuma cyabonye gusibwa, kivanurwa, cyangwa cyahindurwa umutwe (root) kireka amabwiriza agakomeza kwakira amakuru kuri kiyi ko nta muntu uyifite na rimwe, kandi ubutumwa butumwa muri iyo kiyi bupfa nta kosa ryamenyekana kuri bose. Iminsi irindwi irafunga icyo gihe, kandi ibituma abageza ubutumwa (relays) ashyira imbere isibanishije inyandiko aho kwizera ko abakiriya babibona.
Ikibanza cy'ingenzi cyerekana imiterere yaryo. Ikibanza ni pk2...n'umubare ni igice cy'amasezerano aho kuba uburanga: urerekana uburyo bw'amakuru (payload format) umuringo ushobora gukoreshamo. Umusomyi utamenye uwo mwanya ashyira hamwe ko "Nymchat client, ntariho umuringo wa post-quantum" maze akohereza NIP-44 isanzwe, yo buri munyu ushobora gusoma. Icyo ni uburyo bwiza bwo kugwa, kandi ni byiza kwerekana nk'amategeko ko imibare y'imiterere ikoreshwa kugira ngo irindire ibi: igihamya cy'ubushobozi kitamenye kigomba gutuma umutekano ugabanuka, ariko ntigikwiye gutuma ubutumwa butagera. Umuringo umuntu adashobora gukoresha ni mubi kuruta kutagira na umuringo na mbere, kuko ubutumwa bwohererezwa bishira nta kimenyetso cy'ikosa kigaragaza ku ruhande rwose.
4.1 Kutariho bifite icyo bisobanura, kandi bikoresha agaciro gatatu
Ikintu gito ariko cy'ingenzi: itangazo rishyirwa hanze n'umukoresha wese wa Nymchat, si abafite ubushobozi bwa post-quantum gusa, kandi uburyo bw'urufunguzo si ngombwa. Ibi bitanga imiterere itatu itandukanye aho kuba ibiri kabiri:
| Byabonwe | Ibisobanuro | Ohereze imyitwarire |
|---|---|---|
| Itangazo ririmo funguro | Nymchat, ifite ubushobozi bwo guhangana n'ikoranabuhanga rya quantum | Icyavanzemo |
| Itangazo, ntahari funguzo na gato | Nymchat, uburyo busanzwe gusa — post-quantum bufunze, cyangwa igikoresho kitarabanje guhuza n'umwanzuro w'amazina. | Isanzwe NIP-17 |
| Nta itangazo | Umukiriya utazwi. Ashobora kuba umukoresha wose wa Nostr cyangwa Bitchat | Iby'amateka, ndetse n'umukuba w'ubushobozi bwo kwihuriza hamwe. |
Gushyira umurongo wa gatatu mu wa kane byaba igihombo gikomeye. Itangazo ritagira urufunguzo ni ikimenyetso cyashyiriweho umukono cyerekana ko uwo utumira akoresha Nymchat, bigatuma inzira yo kohereza irinda uburyo bwo gukinga hagati y'amaprotokolo (cross-protocol wrap) butari ngombwa, bwari bukwiye gukoreshwa ku muntu wese itashobora kumenya.
4.2 Igikoresho kitashobora gufungura root kigumya kutavuga
Itangazo rishobora gusimburwa: ibintu rimwe kuri buri muntu, ibyanditswe bya nyuma nibyo bigumirwa. Ibyo nibyo bituma igenamigambi ry'inyandiko imwe rikora, kandi nibyo bituma igikoresho kitarimo isano kiba akaga iyo kitangaje amakuru. Igikoresho kitangaje urufunguzo rwacyo rwigenewe cyatuma inyandiko nyayo isibwa, kikumira bagenzi bose mu gukoresha urufunguzo rw'ibanga rutarashobora gufungurwa n'ibindi bikoresho.
Nuko igikoresho kizi ko hari "root" ariko kityashobora kuyifungura, ntikimenyesha na busa. Ntacyo gipfuye kandi ntacyo kanyizwe mu gikorwa: kiracyasoma ubutumwa bwose bufite amashanyarazi (keys) aburyo, kandi kiracyohereza mu buryo busanzwe, ariko kigahamagara umukoresha kugira ngo akoneze (link) igikoresho. Kutavuga ni uburyo bukwiye ku gikoresho kidashobora kuvuga mu izina ry'icyo kimenyetso.
5Kugundura n'icyemezo cyo kohereza
Abakiriya bamenya amashure (keys) y'abandi mu buryo bubiri. Isesengura rirambye rishingira ku bantu umukoresha akorana na bo — mu biganiro bifunguye n'abagize amatsinda — ku buryo imenyekanisha yabo ija nk'ibintu bisanzwe. Ku muntu ubanje guhura na we, ubushakashatsi bw'inshuro imwe bukora igihe umbuto utumwa, buraheza kuri sekunde 2.5; niba bitashoboye, ubutumwa bujya mu buryo busanzwe (classical), ubu ni uburyo bwari buhari mbere y'uko uburyo bwa "post-quantum" bwongerwaho, aho kuba uburyo bushya bw'uko ibintu bikangara.
Igisubizo kinyuranye (negative result) kiberwa mu minota icumi aho kubikwa ibihe byose. Umukoresha ufunganije igikoresho gishya, cyangwa uva muri browser-extension ugasubira ku mfunguzo yaho (local key), agera mu rwego rwa post-quantum mu gihe ari mu biganiro, kandi igisubizo "o" (no) kibikwa iteka cyakomeza kumubanza mu buryo bwa kera bwo guhisha amakuru (classical encryption) mu gihe cyose amenyesho ririho.
5.1 Kuki nta gitero cyo kugabanyiriza urwego rw'umutekano buhari
Icyemezo cyo kuyobora inzira kigana kuri ikibazo kimwe:
pq = (we hold a signed, unexpired ML-KEM key for this recipient)
Nta kwemeranya kw'ubushobozi, nta rutonde rw'uburyo bwemewe, kandi nta gice umugizi w'ibibi ashobora gukuraho kugira ngo ahate inzira nshye. Gufata itangazo. ni ubuhuzamugambi, kandi bwashyiriweho umukono. Imiterere yo kugenda nabi y'itangazwa ryambuwe cyangwa ryagizwe n'ikibazo ni uko ubutumwa bujya mu buryo bwa kera — uko byari bimeze mbere y'iyi koreshwa — aho ubutumwa buvunaguye bumanurwa buhinduka ikintu cyashobora kwerekwa nabi.
Ubuhindukiranyiko na ko buri there kandi ni ko biba bifite akamaro kenshi: umukiriya atuma hybrid gusa iyo igifite urufunguzo, kandi kugira urufunguzo ni ikimenyetso cy'uko uwayihabwa ashobora gusobanura ubutumwa. Nta bihe ubutumwa bwabonewe mu gihe cy'ubutabazi bw'ubuhanga buhambaye (post-quantum) ku muntu utashobora kubusoma.
6Imyubakire ivanze
Nymchat ntisimbura NIP-44. Iyikubitiyeho. Icyandiko cya NIP-44 kitahindutse ni urwego rwo imbere, kandi ML-KEM ikoresha amashashari hagira AEAD ryo hanze kuri yo:
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)
Ibanga ryose ryombi ryagombaga kugaruka kugira ngo ubutumwa busomeke: urwego rwo hanze rugaragaza ubutumwa bw'ibanga rya NIP-44 gusa, kandi kubugurura bisaba ECDH isanzwe. Umwanzi ukoresha quantum usenyera secp256k1 ahabwa urufunguzo rwo imbere ariko akajya imbere na ML-KEM; gusenyera ML-KEM kwambura urwego rwo hanze ariko bigatekanye NIP-44 idahindutse. Buri kintu cyose gifite aho kigomba kugaragaramo:
kem_ssabona amashyiga y'uburyo bw'inyuma gusa. Nta kintu na kimwe muri ubu buvuzi bukora ku musaruro wa ECDH w'umwimerere, uwo ari wo igice cya 6.1 kibanze.kem_ct,recip_kem_pkkandi impamyabuhake zombi zifatanyije n'amakuru y'imikorere (associated data), ku buryo urwego rwo hanze ruremetse ku nyandiko (transcript) yabiremye neza. Kujyana inyandiko ifunze (ciphertext) ku muntu (identity) w'undi utumiye bituma kwemeza (authentication) kwanga aho gusoma (decrypting).
Encapsulation ikorwa bushya kuri buri butumwa. Ifunguzo rya ML-KEM rya uwo uhetseho rirambye, ariko buri butumwa buharamo ciphertext yihariye kandi bityo...
kem_ssNi ibyo bituma gukura nonce aho kuyihindura mu buryo butateguwe biba bifite ishingiro:
ChaCha20-Poly1305
birangirwa binyuze mu gukoresha kabiri (key, nonce) pair, kandi hano urugero (key) ubwacyo rushya kuri buri butumwa, bityo nta muryango ushobora gusubiramo.
6.1 Kuki amayero aguma atandukanye
Ibindi bishoboka ni kwivanga ibyo biganga byose mu funguzo rimwe ry'ibiganiro ukaba ugiha NIP-44:
ck = HKDF-Extract(salt = "…",
IKM = ecdh_x || kem_ss || …) // do not do this
Uwo mushinga urakomeye nk'uburyo bwa kriptogurafiya. Ifite ikibazo kimwe cy'ubwubatsi: ikeneye
ecdh_x, umubare wa x utahinduye wo muri ECDH, nk'ibikoresho by'urufunguzo — n'inyongezo ya browser (NIP-07) cyangwa umushyira umukono uherereye kure (NIP-46) ntibigera kugarura agaciro k'uwo muryo. Ikora NIP-44 mu izina ry'uyasaba hanyuma ikagahereza ciphertext, ari na cyo kintu cy'ingenzi cyo kubika urufunguzo ahantu porogaramu itagera.
Guhuza amabanga bivuze kutagira imyanya y'iyinjira yose ituma urufunguzo rw'indangagaciro rurundikwa muri "signer", bivuze abakoresha bitoza cyane, kandi nta buryo bwo guhindura uburyo bwo gukora urufunguzo (key derivation) bushobora kubihindura. Gushyira ibintu mu byiciro bituma itateganywa kwishingikiriza kuri bindi: NIP-44 iguma imeze imwe kandi ikorwa n'icyo cyose gifite urufunguzo rw'indangagaciro, harimo n'icyo gishinzwe gusinya, mu gihe igice cya KEM kikorwa hakoreshejwe urufunguzo rwo kwibukura (recovery code) uwo mukoresha (client) afite mu ntoki. Inyinjira z'ibyo gishinzwe gusinya ni abafatanyabikorwa basanzwe mu rwego rwa "post-quantum" mu mpande zombi.
Igiciro ni ubushobozi bw'imiyoboro, kandi si gato. Icyandiko cy'ibanga (ciphertext) cya ML-KEM ni ibayiti 1,088 kandi kiba kuri buri butumwa, cyahinduwe mu buryo bwa base64url kugeza ku ngero 1,451; AEAD yo hanze yongeramo ikimenyetso (tag) cya Poly1305 gifite ibayiti 16 kandi ikongera umubare w'ibikubiye muri NIP-44 ku gice cya gatatu. Ubutumwa bufite ingero 50 buva kuri ibayiti 176 bufungukira kuri 1,712, naho ubufite ingero 2,000 buva kuri 2,820 bufungukira kuri 5,238. Igiciro cyo hasi ni hafi 1.5 KB kuri buri butumwa bitewe n'uburyo ubutumwa bumeze, ari na ko bishyura bwo gukora uburyo bwo kwiringanisha (encapsulating) buri gihe aho gukoresha ibanga ryimwe (shared secret) ririho.
6.2 Amakuru yisobanura ubwenyine
The pq2. Imenyekanisha (prefix) ituma igikorwa cyo gushyira mu bikorwa genda gahanga: yiyamburira ibisobanuro, ku buryo umukoresha ahitamo inzira yo gusobanura amakuru binyuze mu gusuzuma ibiri muri payload aho kwizera inyandiko (tag) cyangwa kwibuka ibyo uwo muntu (peer) akoresha. Umusomyi utazi imenyekanisha ntashobora gusoma iyo payload aho kuyisoma nabi, kandi ubutumwa bwafunzwe mbere y'uko imitsi yombi yakoresha uburyo bwa post-quantum bukonta gusomwa nk'ubundi NIP-44 busanzwe nta guhindura rikenerwa.
Decapsulation ya ML-KEM yateguriwe ko itagira uburyo ikora amakosa: iyo uha ubutumwa bw'ibanga (ciphertext) butari bwuzuye neza, uburyo bwa Fujisaki-Okamoto bugarura ibanga rishingiye ku buryo bwihariye (pseudo-random secret) aho kugaragaza ikosa. Bityo, funguzo itari yo ntiyerekana ikosa mu rwego rwa KEM na busa — ikagaragazwa nk'ikosa rya HMAC muri NIP-44, nk'uko bimeze iyo funguzo isanzwe itari yo yagaragazwaga. Abakoresha ubu buryo babikora nk'uko bimeze kimwe, bityo ikosa ntiriboneka mu buryo butandukanye. Ni na ko bituma urutonde rw'izindi funguzo ruri mu gice cya 9.1 rukora: umukiriya azagerageza buri funguzo rimwe ku rindi hanyuma akerekeza NIP-44 ngo ibe ari yo yari yo.
6.3 Ibyiciro byombi by'imyambaro y'impano
A NIP-17 ubutumwa bwihariye ni NIP-59 gusimbuza nk'impano: inkuru itarashyirwaho umukono, ifunze hakoreshejwe urugero rw'icyemezo cy'uwohereje (ubwoko 13), hanyuma igafungwa muri urugero rw'icyemezo ruzajya rusingirwa kuri buri butumwa (ubwoko 1059). Kwinjira kugaragaza urugero rw'icyemezo mu buryo butaziguye, Nymchat ihuriza hamwe ibyo byo byombi, buri rimwe rifite uburyo bwacyo bwo kwifunga.
Umukoresha ushyira imbere umukono uhabwa urukuta rwa mbere gusa. Ibimenyetso (seal) bikorwa n'umushyira imbere umukono nk'uko NIP-44 isanzwe ibikora — porogaramu ntabwo ibona ufunguzo ikora ibyo — bityo ntishobora guhindurwa mu buryo bwuzuzanya (hybridized) aho ikorerwa. Ibi ntibivura ibintu ku bijyanye n'intambara ivugwaho: ibimenyetso bishobora kugerwaho gusa binyuze mu gishushanyo cy'urukuta (wrap), kandi urukuta ni rwo ruri mu byakujijwe. Umwanzi ufite amakuru y'itumanaho yarakozwe agomba kurenga ML-KEM mbere y'uko ibimenyetso biba bishobora kuboneka kugira ngo agatakaze.
7Ubutumwa bw'itsinda n'ubushobozi bw'igice
Ubutumwa bw'itsinda si umwandiko w'ibanga umwe. Ni ubutumwa busanzwe bumenyekanishijwe kuri buri wese mu butumwa, buri kopi yafunzwe ukoresheje funguzo ya ML-KEM ya buri wese. Umunyamuryango washyize hanze funguzo ahabwa uburyo bw'ubuvangage; uwo atabyashyize hanze ahabwa uburyo bwa kera.
Ibi biteraganya ikibazo cy'imibare aho imikorere yoroshye yibeshya. Niba munani mu munani b'abagize itsinda baronka kopi ivanze, ubutumwa ni ntabwo igice cya munani mu kumi kirinzwe. Umwanzi akenera kopi imwe isanzwe y'inyandiko isomeka ingana mu zose icumi, bityo ubutumwa burinzwe gusa niba buri kopiya ni.
Nymchat bityo ikurikirana ingano y'uburyo ubutumwa bwagezweho mu gihe cy'itumanaho (fan-out) — imibare ishobora kumenyekana gusa mu gihe ibikoresho by'ubwihisha (wraps) bikorwa — kandi ikimenyetso kerekana ko "urinde rw'imikoreshereze ya quantum kuri 8 muri 10 z'abagize itsinda" aho kwemera ko ubutumwa burinzwe. Iyo nta mibare ivuye, ari na byo biba bimeze mu buryo busanzwe ku... Byakiriwe ubutumwa bw'itsinda (umutumiza gusa ni we ugera ku mibare y'ubutumwa bwakwakuwe), isubiramo ryerekana ko hari uburinzi bw'igice aho kuba ubwuzuye. Kwemera ko hari uburinzi bwuzuye hashingiwe ku mwandiko w'umuntu ku giti cye gusa, byaba ari ukuvuga ibirenze ukuri ku bijyanye n'ubutumwa bwose.
7.1 Icyo ingabo raportera
Ingabo ivuga ukuri ku ubutumwa, si ku bijyanye na porogaramu yabigeze:
- Uburinzi bwuzuye: buri kopi y'iyi nyandiko isanzwe yasohotse mu buryo bwivange.
- Igice: bimwe mu bice by'ubutumwa bw'itsinda byoherejwe mu buryo busanzwe. Byakuye mu buryo bishobora kuba bitari byuzuye aho kuba byuzuye, kuko ibice rimwe gusa rya plaintext rimeze nk'ibindi ryemewe n'umwanzi.
- Classical ivugwaho mu buryo bugaragara aho kwerekana ko nta kimenyetso (badge) kirimo, kuko kutagaragara kw'ikimenyetso byashobora gutuma hagira ibitekerezo bitandukanye hagati ya “idafite uburinzi”, “itangiritse”, n’uko “iyi build itari ifite uwo mushinga”.
Icyemezo kirekwa igihe ubutumwa bafunye aho kuzuburwa binyuze mu byo umugenzi wahaye amakuru nyuma. Ibutumwa ririmo ibanga ririho ntirushaho kurindwa kurushaho uko ryari ririndwe mbere, kandi uburyo bwongera gusubira kubura ubutumwa bwa kera bishingiye ku kimenyetso gishya byaba byerekana amakuru atari yo yerekeye amakuru (bytes) ari kuri relay.
Amategeko y'itsinda ari hejuru yongeraho aya aho kuyasimbura: ubutumwa bw'itsinda burinzwe neza gusa iyo kopi ya buri munyamuryango yari irinzwe, kandi ubutumwa bw'itsinda bwakiriwe butagira umubare w'uburinzzi bwerekana ko burinzwe mu gice.
8Inkopi ziguwe kuri wowe ubwawe
Ibintu byinshi umukoresha atunga bishyizwe mu buryo bw'ibanga bishingiye ku miterere y'umukoresha ubwe: amabwiriza ashyizwe mu buryo bumwe, urutonde rw'ibiganiro, imfunguzo z'amatsinda, n'ububiko bw'ubutumwa. Ibi bifite amakuru menshi ku muntu kuruta ubutumwa bumwe na bumwe, bityo kubitekora mu buryo busanzwe byabigira ibintu bikomangane by'ibyo bitoranyije, niyo yaba ubutumwa bwite bwafunzwe neza cyane. Bikoresha uburyo bumwe bwivanzemo, bishyizwe mu mfuruka y'imfunguzo ivuye ku ntekerezo y'ibanze rw'umukoresha ubwe — uretse icyo kimwe kivugwa mu gice cya 3.2, ... nymchat-pq-root icyiciro ubwayo, kityashobora gufungwa n'imfunguzo ari cyo cyonyine ishobora kuyikora.
Ibi bikoresho ni ho igenamigambi rirebwa cyane. Inyandiko z'amategeko (settings blob) cyangwa umurongo w'inyandiko zibitse (archive row) ibera ahantu hamwe imyaka myinshi, icyo ni cyo kimwe na kimwe agafata umwanzi w'abafite intego yo kubika ubu hanyuma akabihindura mu gihe kizaza — kurusha ubutumwa bumwe na bumwe, bushobora kuba butari bw'igihe kirekire mu mutwe w'umukoresha.
Icyatunganya kimwe kigenga imiterere hano aho kureba funguzo. Ikinyandiko cyanditseho aho kinyereka kigomba gusomeka na buri Igikoresho kuri konti, bityo igikoresho buri kimwe kimenyekanisha ibyo gishobora gufungura muri gahunda (roster) ikimenyekanisha kigira, kandi konti yandika ibyo gusa bose bashobora gusoma. Kwandika ikindi cyose byatuma igikoresho kigahagarikwa mu miterere yacyo (settings) — ikosa ritagarara rirangwanye na ryo ryo mu gice cya 3.2 ririrwanya mu buryo bundi, buturutse mu nzira yindi.
Igikoresho gifite imyirondoro ariko kitari gifite umuyoboro wa mbere (root) ntigishobora gufungura ikintu cyose gicungwe n'uruziga rwakuwe ku muyoboro wa mbere, harimo n'amategeko yacyo. Ibyo ni umusanzu uteganyijwe, si amakosa yo kutibagirwa, kandi ni yo mpamvu Igice cya 3.3 gifite ubutumwa bwo guhuza (linking) aho guhanga umuyoboro wa mbere mushya: umuyoboro wa kabiri ntuzajya ufungura amakuru (blob), ahubwo waba ucyagabanyije mu bice bibiri gusa ibikoresho by'uruziga rw'imyirondoro. Kugeza igihe umukoresha azahuzanya, igikoresho kizakomeza gukora — kirasoma ibyo gifite uruziga rwabyo kandi kikabikomora mu buryo busanzwe.
Ibikoresho bikoresha browser extension cyangwa umukoresha w’izina rya kure (NIP-46) ntibifite nsec yo gukoreraho ibindi, ariko bifite kode yo gusubiramo (recovery code), kandi binyuze mu miterere y’amashirahamwe yo mu gace ka 6.1, ibyo ni byo byose igice cy’ikoranabuhanga rya post-quantum bikenera: umukoresha (signer) akora urwego rwa NIP-44 nk’uko yakora mbere, kandi umukiriya (client) ari we ukoresha urwego rwo hanze. Uburyo bwo kwinjira nk’ubwo ni uburyo busanzwe mu mpande zombi.
9Ihindukiranwa
The epoch Imenyekanisha (counter) mu guhindura amakuru ni cyo gifatika kuremura nta bindi bikoresho by'urufunguzo rushya bikenewe. Kuyongeraho bitanga urufunguzo rushya kuva ku nkomoko imwe hamwe n'itangazo ryasubijweho ryashyirwa hanze; abafatanyabikorwa bafata urufunguzo rushya mu mwandiko ushobora guhindurwa. Guhindura rero ntibubaze umukoresha kwandika ikindi kintu kabiri: inkomoko ikorwa rimwe gusa kuri buri mukoreshwa kandi igihe (epoch) nicyo kiba kiba cyihindurira.
9.1 Ibihe byashize bigumirwa, kandi nta kindu kirongorwa bushya.
Icyari cyose nticyongera kwandikwa igihe urufunguzo rwahinduye. Umukiriya akora urutonde rw'urufunguzo rwashobora gusoma ubutumwa guhera ku gihe (epoch) kigezeho kugeza ku gihe (epoch) -3, bityo ubutumwa bwafunzwe vuba mbere y'impinduka ruzashobora gufunguka ukoresheje urufunguzo (keypair) rwari ruriho igihe bwarabonye.
Icyo gihe ni cyo kigira ko guhindura (rotation) byaba byizewe: bitabayeho, buri guhindura byasiga ibintu byari biri mu nzira bitagashobora gukomeza. Icyo cyose cyari cyafunzwe cyakomeza gusomwa mu gihe cyose icyerekezo (identity) cyari gihari, kuko ubutumwa umukoresha atashobora gusubiramo gusoma ari bwo bubi kuruta ubutumwa aho uburinzi bwabwo butashobora kongerwamo ubundi bwo mu buryo bw'inyuma (Igice 10.5).
10Icyo iki ntikikingira
Inyandiko isonyeganya gusa ibyo igenamigambi ryihagira ntabwo ivuga ku buryo imikorere (system) rimeze, kandi kwivuga uburyo bw'umutekano mu buryo bwo guhuza ibintu (interface) bikabije kuruta kutabivuga. Ibi bikurikira ntibiri mu byo ubu buryo bwivugira.
10.1 Umuzi ni ibanga rya kabiri, kandi kuyatakaza ntibishobora gusubizwa.
Ibi ni igiciro nyacyo cy'uyu mureganyo. Icyatunganyirizwa muri Gice cya 2 kivuga ko umukoresha agomba kugira ikintu kimwe gusa akazigama ntacyo bishobora kugeraho: nsec wenyine ntishobora gusubiza ubu buryo bwa post-quantum key, kuko intego nyamukuru ari uko nta kintu cyagaragaza (public value) cyangwa ikindi kintu cy'ibanga (secret) gishobora kuyishingura. Iyo nta gikoresho cyigizemo umutwe (root) kandi nta murego (wraps) uri muri Gice cya 3.2 ushobora gufungurwa, ibintu byashyizwe mu mutekano hifashishijwe uwo mutwe ntibishobora gusubizwa. Nta muntu ufunguye ibanga (escrow) kandi nta n'ubuyobozi buhari buhagurirwa kubikora mu buryo bwihariye.
Iyo guhindura mu buryo bw'intoki ari bwo buryo bwonyine, ibi birushijeho kuba bikomeye kurusha uko bishobora kugaragara mu ntangiriro. Umukoresha utigeze akora kopi ya nympq1… code anywhere ifite kopi imwe gusa yayo, kuri igikoresho kimwe, kandi gutakaza icyo gikoresho bituma byangirika ubutumwa bwose bwa post-quantum, settings blob, n'umurongo w'archive ufunganyije na cyo. Iyo
nsec ntibifasha; iyo ni imiterere ubwubatsi bwose bwishingiye kuri yo.
Inzira yose yafunze yongerwaho nyuma igomba kuzamura urwego rumwe n'urwo iy'inzira isanzwe. Umugambi w'ubujura ugerageza inzira yoroheje cyane, bityo gahunda yose igira agaciro k'urugero rw'inzira yoroheje cyane yo gusubira mu buryo bwawo — urugero, ijambo ry'ibanga ryo kwibuka rihagurika agaciro k'ibyo byose kuri ryo jambo ryonyine, kandi umurongo wafunze ni wo mwanya umwanzi ukusanya ibintu ubu akabigeraho nyuma uba uwo akusanya akabikoreramo imirimo mu mutuzo.
10.2 Kwemeza uwo uri we, itandukanye n'uburyo bwo kubika ibanga
Umukono wese muri Nostr ni Schnorr kuri secp256k1, kandi ibyo ntibihindutse hano. Umugambanyi ufite mudasobwa ya quantum ashobora kurema imikono y'ibinyoma no kwiyemera nk'umukoresha mu gihe nyacyo. Icyo guhererekanya ry'amashyirahamwe mu buryo bwivanga (hybrid key exchange) gihangana na "kura ubu, usome nyuma": umugambanyi wandika amakuru y'itumanaho ryo uyu munsi ntashobora kurasoma nyuma. Ntibituma ubutumwa butashobora kwigwa imbere y'umugambanyi ufite iyo mashini karengarwe. Iri tandukaniro ryashyizwe mu mishinga (applications) mu gushaka — ikimenyetso cy'icyumu kigaragaza kwemeza (authentication), ikirango cy'uburindi kigaragaza ibanga (confidentiality), kandi ni ibimenyetso bitandukanye kuko ubutumwa bushobora kugira kimwe kitagira ikindi.
Bimugirira imipaka ibyo itangazo riri muri Igice cya 4 rishobora kwizera. Guhuzwa hagati ya npub n'urugero rwa ML-KEM ni umukono wa secp256k1, bityo umwanzi ushobora kwigira imikono ushobora kubikora ashobora gusimbuza urugero rwe. Kugira ibanga rishingiye ku mwanzi w'ejo si rumwe n'uburyo bwo kwemeza ukuri ku mwanzi umwe.
10.3 Amakuru ku makuru
Gupfukira impano bihishira uwatumye, uwayihabwa kure y'icyo kimwe p ikimenyetso, ubwoko, n'igihe cyabereye ubutumwa bw'imbere. Ntabwo ibihisha ko hari ibintu biri kubera, ingano yabyo, cyangwa igihe ubutumwa bwakiriwe na relay. Isuzuma ry'imigendekere y'ubutumwa ntarakorerwaho na rimwe mu bice by'uyu mushinga.
10.4 Mesh idafite interineti
Uburyo bwo kwitwara bwa Bluetooth mesh bwa Nymchat ni protokol yihariye ifite handshake yayo, kandi ntibavugwa muri ubu bushakashatsi. Ubutumwa bwo kuri mesh ni ubu busanzwe.
10.5 Ubutumwa yagezeho
Amakuru yafashishijwe mu buryo bw'ibanga yanditswe mu gihe imwe mu mpande yari ikoresha uburyo busanzwe, aguma mu buryo busanzwe iteka ryose. Yamaze kubaho kandi ntashobora kongera gukingirwa. Kurindwa guhera ku mwandiko aho impande zombi zari zifite amashimire ya post-quantum, si mu gihe ubu buryo bwasangiwe mu ngiro.
11Inzira zindi zagariweho
| Uburyo | Kuki bitari bwo? |
|---|---|
| Vamo funguzo ya post-quantum kuva kuri funguzo y'icyemezo. | Byagaranyijwe. Uburyo bwo kubikora ni uburyo bwagezweho bukorwa n'abantu bose kuri nsec, kandi umwanzi ukoresha quantum ashobora kubona nsec binyuze mu npub yasohotse, bityo gushyira mu kaga igice cy'imiterere ya kera bituma n'igice cy'icyera gishyira mu kaga icyarimwe. Byakemuye ibibazo byose by'itangwa muri iyi nyandiko kandi ntibyashoboye kurinda uwo ari we wese. Igice 3.1. |
| Kohereza umwanya w'ibanze ku bindi bikoresho by'umukoresha binyuze muri NIP-44 | Rejetwe kubera impamvu imwe ariko mu buryo butandukanye. Umusingi utangijwe binyuze mu buryo bwo guhisha amakuru bwa kera gusa, ushobora gusubizwa n'umuntu wese wari wafashe uwo mwanya akaza kumenya urufunguzo rwawo nyuma, ari na yo nshuti itari nziza umusingi uba uhawe kugira ngo uyirinde. |
| Funguzo ebyiri za ML-KEM zaremewe mu buryo butandukanye kuri buri gikoresho | Naremewe. Ibikoresho byari kuba bifite amazinga yo gusobanura amakuru (decapsulation keys) atandukanye, kandi itangazo rimwe rishobora gusimbura rimwe kuri buri muntu (identity) ntiryashobora kubikurikiramo byose. Abafatanyabikorwa (peers) babika amakuru ukoresheje amalinga (key) wari wasohotse nyuma, kandi ibindi bikoresho byose byaba bitashobora gusoma ibyo bishingiyeho. Umwanzuro umwe (root) kuri buri muntu, utambuka mu nzira zivugwa muri Igice cya 3.2, ni cyo giteza imbere ubu buryo bwo kubirinda. |
| Funga root munsi ya PIN | Nabyozwe. PIN ifite imibare ine ifite bit 13 hagati y'umutego offline ufite imirongo yafunzwe. Kuyishyira hamwe n'inzira ebyiri zifite bit 256 byavugisha ibintu bitari byo ku gaciro k'ubufunzi bukeye. |
| Kwagura npub kugira ngo yitwaze amifunguzo yombi | Bytes 1,184 si icyerekana ushobora gusangira, kandi byasenyura uburyo buri Nostr client ikoresha mu gusoma aho (address) yemejwe ko ari byte 32. |
| Serivisi y'ingenzi y'imbonerahamwe | Gusubiza ububasha imiyoboro yaremewe kwirinda. Uwo ari we wese usubiza ishakishisho agena uwo ashobora gusoma ubutumwa. |
| Shyira urufunguzo kuri buri butumwa | Ntibikemura na busa: utumiye akenera ubw'uwakira funguzo mbere y'ubutumwa bwa mbere, ari na ko bimeze neza kuko nta butumwa bwari buhari mbere bwo kubitwara. |
| Gucunga ubushobozi mu muryango w'itumanaho | Biteza uburyo bwo kugabanya umuvuduko w'umutekano. Umukora ibyaha ushobora gukuraho ikimenyetso cy'ubushobozi atuma hagendera mu nzira ya kera. |
| Nyuma ya quantum gusa, ntacyo gice cy'isanzwe | Isiga imyaka myinshi yo gusuzuma secp256k1 mu mwanya w'urugero rushya cyane. Iyivange ihomba gusa iyo byombi Kwatsindwa. |
12Ubwuzu mu gushyira mu bikorwa
Nymchat ikoresha uburyo bubiri butajyanye bwo gushyiraho ubu bwubakire — bumwe mu JavaScript ku bw'ikoranabuhanga rya webi, bumwe mu Dart ku bw'imbuga za terefone, harimo n'uburyo bushya bwa ML-KEM-768 bwubatswe kuva ku ntangiriro. Kubaho uburyo bubiri bwo gukoresha ikintu kimwe akenshi biba ikibazo, bityo bishyirwa mu kinyuranyo kugira ngo bigereranywe aho kwizwa ko bishyize hamwe.
Imikorere ya Dart ML-KEM iyemejwe hagereranyije n'iy'ofisiye
NIST ACVP
ibigeragezo bifite ibisubizo bizwi bya ML-KEM-768 (ML-KEM-*-FIPS203) — imiterere 25 yo gukora amazinga (key-generation), 25 yo guhata (encapsulation) n'imiterere 10 yo gusubiza (decapsulation), zikora nk'itsinda ryabyo bwite. Izo ni amavenzi (vectors) NIST ishyira hanze kugira ngo igenzure imikorere, bityo kubikora neza ni ikimenyetso cy'uko gahunda (port) yagenzwe neza, atari ikimenyetso gusa cy'uko abakoresha babiri bavugana rumwe. Ku bindi, imiterere isangiwe y'amavenzi yo kugenzura — ituruka ry'imigenderere (seed derivation), guhata, imiterere yose y'ibyo ubutumwa (payload formats), n'uburyo bwuzuye bwo guhata (complete gift wraps) — ikorwa binyuze muri JavaScript reference kandi igenzurwa n'amatsinda yose yo kugenzura. Ibanga rya nyamukuru (root secret) rirushaho kwagura iyo miterere aho kuyihindura: kuva kuri nyamukuru ujya ku miterere (seed), kuva kuri nyamukuru ujya ku mazinga (keypair), ikimenyetso cya nyamukuru (public fingerprint), n'amahanga (key), nonce, n'amakuru asanganwe (associated data) y'urwego rwo hanze ni amavenzi yabo bwite, bityo abakoresha babiri ntibashobora kutavugana ku cyo a
nympq1… Ikode ivuga ku bayiti ubutumwa bufungiwemo. Itandukaniro rishingiye ku buryo bwo shyira mu bikorwa bituma uburyo bwo kubaka (build) bwanga, aho kurema ubutumwa ikindi kinyabutwa kitashobora kugifungura.
Icyimenyetso cy'intoke (fingerprint) cyakwiriye kwitwa muri ibi. Ni cyo kiba kimenyesha igikoresho ko "iyi ni umunga nshobora kwitaho" aho kuvuga ko "iyi ni indi", kandi umukiriya utashobora kwerekana icyimenyetso cy'intoke cy'undi mukiriya, yaba asoma inyandiko nziza nk'aho nta nyandiko ihari na gato — hanyuma, ukurikije Igice cya 3.3, akore umunga wa kabiri akagabanya ubumwe bw'umutwe. Ni yo nzira ikoreshwa kubera impamvu nk'iyo.
Nymchat ni Inkomoko ifunguye munsi ya AGPL-3.0. Ishingiro ry'ubuhanga bw'ibanga rivugwa hano ni
js/nym-crypto.js na js/modules/pq.js mu web client, kandi
lib/core/crypto/ na lib/features/identity/pq_registry.dart mu bikoresho bya terefone
Ku isobanura rito ritagira amagambo y'ubumenyi, reba Urubuga rw'ubumenyi ku buhisha amakuru butajegajega n'imashini za quantum.