Khonde la chidziwitso: kuchititsa chinsinsi kothirira quantum

Nymchat bukhu la ndondomeko za luso

Kukambirana kwa kiyi ya Post-Quantum mu Nymchat

Kugawira ma public key a ML-KEM-768 kudzera ku Nostr popanda directory kapena registry, ndi kuwayambitsa kuchokera ku chinsinsi chomwe chilichonse choonetsedwa poyera sichikuonetsa.

Mtundu 1.0 Agosti 2026 Zikukhudza Nymchat 3.74+

Kuwonjezera njira yosinthana makiyi ya post-quantum pa messenger si vuto la cryptography kwenikweni. Zinthu zoyambira zakhazikitsidwa ndipo ma library alipo. Chovuta ndicho kuti wochitapo kanthu aliyense tsopano akufunika... wachiwiri kiyì wa poyera, ndipo dongosolo la maunganidwe losayendetsedwa ndi m'modzi ilibe malo osavuta oika kiyiwo. Chikalata chino chikufotokoza mmene Nymchat yakumanswira zimenezo — kumene kiyi wachiwiri ukuchokera, mmene umafika kwa anthu amene akuchifuna, komanso zomwe interface iliwololeka kunena za zotsatira zake — ndipo, mu gawo lomaliza, zomwe zotsatirazo sizikuteteza.

1Chovuta

Mauthenga apamtima a Nostr amakhala amachitidwa chinsinsi ndi NIP-44, yomwe ili ndi magawo awiri ogawika. Mbali imene imasokoneza uthenga weniweni — ChaCha20 ndi chizindikiro cha HMAC-SHA256, yomwe imagwiritsa ntchito mfungu kudzera mwa HKDF (RFC 5869) — siyopsezedwa mwachidunji ndi kompyuta ya quantum; algorithm ya Grover imapereka kuchepa kwa nthawi kudzera mu square-root pa symmetric key, ndipo zigawo 256 za bits zimatha kuthana ndi zimenezo. Chigawo chimene... amavomereza pa kiyi ndi elliptic-curve Diffie-Hellman mu secp256k1..., ndipo algorithm ya Shor imathetsa discrete logarithm mwachindunji. Kupeza kiyi imodzi yachinsinsi kuchokera ku kiyi yake yopezeka kumavumbulutsa m'mbuyomu chinsinsi chilichonse chomwe kiyi imeneyo inakhala ikupanga.

Chiwopsezo chomwe ichi chimapanga sichidikirira mpaka pamene makina ngati ameneŵa adzapezeka. Mdani yemwe ali ndi malo osungiramo akhoza kusunga uthenga wa chinsinsi lero ndipo azithetha uthengawu nthawi iliyonse yomwe luso lofunika lidzapezeka. Chilichonse chomwe chatumizidwa panopa ndipo chidzakhalabe chofunika mtsogolo, chawonongeka kale chinsinsi chake. Uku ndiko kugwirira ntchito koyipa kumene kusinthanitsana makiyi wa post-quantum kumalimbana nacho, ndipo ndicho chifukwa chake ntchitoyi ikuleza kulingoja kuti makinawo apangidwe.

1.1 Funso limene ndemba iyi imayankha

Njira yochepetsera vutoli ikudziwika bwino: kugwiritsa ntchito njira yosungira makiyi ya post-quantum pamodzi ndi njira zakale, kuti wovuta aziyenera kuzivunulira zonse ziwiri kuti athe kuwerenga chilichonse. Nymchat imagwiritsa ntchito ML-KEM-768 (FIPS 203). Zimenezi zimadzetsa vuto la kugawa nthawi yomweyo:

Funso

Kuti utumize uthenga kwa Alice lero, uli ndi chinthu chimodzi chofunika: npub yake. Ngati umathandizapo kusembetsa uthenga wa post-quantum, umapangidwa ndi chinthu chachiwiri — kiyi yake ya ML-KEM (public key). Kodi kiyi imeneyi imakhala kuti, ndipo bwanji umayipata kuti utha kumutumizira chilichonse?

Npub imakhala yodziyimira payokha. Mutha kuilemba papala, kuiverengera mokweza mawu, kapena kuiscan ku skrini, ndipo ndicho chosowa chilichonse chomwe munthu aliyense akufuna kuti akutumizire chinthu chobisika. Public key ya ML-KEM-768 ndi bytes 1,184. Sizingatheka kuverengeredwa mokweza mawu, sizidzapindira m'dzina la munthu, ndipo siziyenera kuikidwa m'QR code pafupi ndi chidindo chomwe ndi bytes 32 chokha.

Kukula ndicho chosavuta. Chinthu chovuta ndicho kuti kiyi ya chachiwiri imabweretsa mavuto atatu osiyana, ndipo gawo lelse la pepala lino ndi yankho ku mavutowo:

2Zolepheretsa kapangidwe

Zopinga zinayi zinapanga yankho, ndipo zikuthetsa mapulani ambiri owonekera musanale makodi alionse alembedwa.

  1. Zinsinsi zochepa ngati zingatheke. Ogwiritsa ntchito Nostr amakhala ndi chinsinsi chimodzi chokha, chomwe ndi nsec. Chinsinsi chilichonse chopambalira ndi njira ina yotayira mbiri yanu, ndipo munthu yemwe amadziwa kusunga nsec sadzazindikira kusunga chilichonse china. Gawo 3.1 likuonetsa kuti izi sizingatheke nthawi yomweyo — kiyi ya post-quantum yochokera ku nsec siipereka chilindikiridwe chilichonse cha post-quantum — choncho dongosololi limagwiritsa ntchito chinsinsi chimodzi chokha ndipo palibe china: chinthu chimodzi cha kiyi, chomwe chimapangidwa kamodzi pa umwini uliwonse, chowonekera m'njira yofanana ndi nsec ndipo pamalo ofanana, kuti aliyense amene amadziwa kusunga chimodzi adzazindikire kusunga chinafo. Gawo 10.1 lili ndi choonadi pa zomwe zimayenera kulipiridwa chifukwa cha zimenezi.
  2. Palibe ulamuliro. Palibe seva yomwe ingakhulirike kuti iuze kuti kiyi iti ndi ya ndani. Seva iliyonse yoterezi imakhala malo amene uthenga ukhoza kutumizidwanso kwina.
  3. Zida zambiri, umunthu umodzi. Chidziwitso cha Nostr nthawi zambiri imagwiritsidwa ntchito kuchokera ku mapulogalamu (clients) angapo nthawi imodzi. Zinthu zilizonse za kunci zomwe zilipo ziyenera kukhala zofanana pa onsewa, ndipo njira zomwe zimapita kuzi ziyenera kukhala zosawerengeka ndi mdani yemwe chinthu ichi chikudzateteza kwa iye.
  4. Palibe kukambirana. Kukambirana kulikonse pa njira imodzi komanso mafunso oti “kodi mumatengera makodi oteteza ati?” ndi mwayi womwe woerera angauchotsere kuti akukakamizeni kugwiritsa ntchito njira yofooka. Kapangidwe kake kakhala koyenera kuti kukhale palibe chomwe chingagwiritsidwe ntchito kochepetsa chitetezo.

3Chinsinsi cha maziko chosadalira ena

Chosankhidwa chofunika kwambiri ndichoti kiyi ya ML-KEM decapsulation imapatsidwa kuchokera ku zinthu za kiyi zomwe palibe chinthu cha poyera chomwe chingazivumbulutse. Chilichonse cha umboni chimalandira chinsinsi chachikulu chimodzi, chopangidwa kamodzi:

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)

Maziko amasonyezedwa kwa wogwiritsa ntchito monga mmene nsec ilili: bech32 ndi chizindikiro chomveka kwa munthu nympq, choncho chimawerengeka kuti nympq1…, yowonekera pafupi ndi nsec pa skrini ya umboni kudzera m'njira yofanana yozitengera, yolengedwa ndi lamulira limodzi, isinalembedwa mokhalitsa ndipo sinatumizidwa kulikonse popanda chinsinsi. Si mawu achinsinsi ndipo si choyenera kulowetsa. Ndi zinthu za kiyi zomwe wogwiritsa ntchito akhoza kusunga, mofanana ndendende ndi nsec.

Mchere (salt) wasiyanitsidwa m'malo enieni mwachofuna, kuti palibe chinsinsi china chilichonse chomwe chingathe kupanga pasanganeyo yofanana. Zomwe epoch counter imayendetsa kuzungulira (Gawo 9).

3.1 Chifukwa chiyani chiwombonzi chosatheka kuchokera ku chiwombonzi cha chidziwitso

Dongosolo losavuta ndi kuyambitsa keypair kuchokera ku chinsinsi chomwe wogwiritsa ntchito kale ali nacho:

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

Zili ndi chokopa ndi zifukwa zinayi, zonsezo ndizowona: palibe chinthu chatsopano chofunika kusunga chifukwa nsec ndi chosungira kale; zipangizo zonse zovomereza mwa mtundu wake popanda njira yosatsanitsirana yomwe ingalephere; ndandanda imodzi yomwe ingasinthidwe pa dzina lililonse ndiyeni chifukwa zipangizo sizingakhale ndi kusiyana pa kiyi; ndipo kiyi imakhala kale isanatulutsidwe, kuti wogwiritsa ntchito athe kusunga chinthu chake pa nthawi yoyamba yomwe amagwiritsa ntchito.

Phindu lililonse la zinayi ndi lopanda phindu, chifukwa cha chinthu chimodzi. Algorithm ya Shor ikagwiritsidwa ntchito pa npub yofalitsidwa, imapereka nsec. Kupanga seed ndi algorithm yodziwika kwa aliyense pa nsec. Choncho mbandakucha amene amawononga mbali ya chikhalidwe amabwezeretsa mbali ya post-quantum pokhalira HKDF imodzi yomwe aliyense amagwiritsa ntchito. Polimbana ndi njira ya harvest-now-decrypt-later — ngozi imodzi yomwe chinthuchi chidapangidwira kuti chiziteteza — kiyi yochokera m'njira imeneyi siipereka chilichonse.

Lamulo lomwe zonse zimayendera

Kiyi ya ML-KEM decapsulation iyenera kuchokera ku entropy yomwe si yopezeka kuchokera ku nsec kapena yomwe inayamba kutumizidwa pansi pa classical-only encryption.

Chigawo chachiwiri cha lamuloli chimagwira ntchito yofanana ndi choyamba. Chinsinsi chomwe chapangidwa padaliwe ndipo chake chimalumikizidwa pakati pa zipangizo za wogwiritsa ntchito m'uthenga wamba wa NIP-44 ndi kulephera kofanana koma kuli ndi njira zina zowonjezera: munthu wakuipa amatsata uthenga umenewo lero ndipo amapeza kiyi yake kenako, ndipo maziko amagwa. N'chifukwa chake njira zomwe zili m'gawo lotsatira zilili chonchi, ndipo chilichonse mwa izo si “tumizani ku chipangizo chanu china.”

3.2 Kupeza root pa zida zina za wogwiritsa ntchito

Chinthu chochepetsa 3 cha Gawo 2 — umunthu m'modzi, zida zingapo — sizingatheke kudzera mu masamu apa, chifukwa cholinga chachikulu ndicho kuti kiyi si chinthu chomwe chimadalira chilichonse chomwe zida zimadziŵana kale. M'malo mwake, iyenera kukwaniritsidwa kudzera mu kusuntha, ndipo pali njira imodzi yokha: wogwiritsa ntchito amasuntha nympq1… kulemba makodi okha.

Mizu imaonetsedwa ngati nympq1… pafupi ndi nsec, ndipo chida chachiwiri chimalandira chofundikira m'paneli imodzi. Umeneu ndi njira yonse. Chida chomwe sichapatsidwa kodi chimalephera kutengapo mbali, chomwe Chigawo 4.2 chimachifotokoza.

Kutumiza m'manja ndi maziko okhazikika osati njira yoyamba yochitira chinthu. Lamulo lilipo m'gawo 3.1 limati mzati (root) sungathe kuyenda pansi pa kufinyika kwa chinsinsi komwe kuli kwa zinthu zakale okha, ndipo njira iliyonse yomwe ingapange kuti izi zichitike okha — monga kuphatikiza kudzera mu relay kapena kuphatikiza ndi kiyi ya umwini — imaphwanya zimenezo ndendende. Gawo limene wogwiritsa ntchito amachita ndilo chifukwa chake chitetezo chili chenechine.

Kapangidwe kake kumapereka mpata wa njira yozungulira: cholemba chikhoza kukhala ndi mndandanda wa zinthu zozungulira, chomwe chilichonse ndi AEAD blob pansi pa kiyi yomwe wogwiritsa ntchito akhoza kupezanso pa chida china — mwachitsanzo, zotsatira za passkey PRF. Palibe chimene chimapereka zimenezi lero, ndipo mpaka pamene chilichonse chidzachite zimenezi, ... nympq1… kodi ndiyo njira yokha kudutsa. Chigawo 10.1 chimafotokoza mtengo wake.

Rekodi yomweyo imakhala m'gulu lake la zosintha, nymchat-pq-root, ndipo imasinkhiza mofanana ndi momwe magulu ena amachitira. Ngakhale isakhale ndi zopaka, imagwira ntchito yofunika: kupezeka kwake ndiko kumene chida chapiri chimadziwa kuti chidindo ichi chakhala ndi mizu kale, chomwe chimalepheretsa kupanga chilidindo china chosolozana nacho (Chigawo 3.3).

Chidziwitso cha kapangidwe: gulu limodzi limene silingagwiritse ntchito kiyi watsopano

The nymchat-pq-root gulu ayenera ayi zikhale zochitidwa chitetezo pogwiritsa ntchito kiyi ya ML-KEM yochokera ku mzizi. Ndondomeko imeneyi imasunga kope yokha ya mzizi uja, choncho kuika chitetezo mwa kiyi yochokera ku mzuzi uja kuli ngati kuika lock imene kiyi yake ili mkati mwa bokosi: palibe chida chilichonse chomwe chingathe kuzitsegula, kuphatikizapo chomwe chinailembera. Imatsekedwa m'njira zachikhalidwe — NIP-44 kwa yekha — kapena osati kutsekedwa konse. Iyi ndi malo amodzi omwe dongosolo limaloleza chitetezo cha zachikhalidwe chokha, ndipo lingathe kuchita zimenezi: ndondomeko imeneyi siili ndi mzizi lero, koma ili ndi chidziwitso choti uli.

Magulu ena onse a zinthu zokonzeradera angathe ndipo ayenera kugwiritsa ntchito kiyi wochokera mizu. Izi ndi chinthu chimodzi chokha chomwe sichikuyenera kuchitika, ndipo chimachitika chifukwa cha kudzibwereza osati chifukwa cha mphamvu.

3.3 Kupanga ndi kulandira

Poyamba kwambiri, kukhala ndi dzina lodzikhazikitsa, client amagwira ntchito mwa ndondomeko izi:

  1. Fufuzani chomwe chilipo nymchat-pq-root Cholembedwa.
  2. Cholembedwa chapezeka, ndipo chida ichi chingathe kuchivula — landirani ndipo dzulani umunthu uwu kuti ndi wozatha pa post-quantum.
  3. Cholemba chazindikika, ndipo chida ichi sichitha kuchitsegula — musapange mzizi watsopano, ndipo musatulutse chilengezo chilichonse. Uzani wogwiritsa ntchito kuti agwirizanitse chida ichi mwa kulemba... nympq1… kodi kuchokera ku chida chomwe kale chili nacho.
  4. Palibe cholembedwa — kupanga choyambira, kumasulira zolemba, kulengeza, ndipo kuonetsa nympq1… kodi kwa wogwiritsa ntchito kamodzi kuti athe kuusunga.

Gawo la 3 ndilo gawo lomwe ndi losavuta kulakwitsa, ndipo ndicho chomwe chimapangitsa kuti ndondomeko yazikidwa m'malamulo m'malo moti iyelemere kwa chilichonse chomwe chimagwiritsidwa ntchito. Zida ziwiri zomwe iliyonse idzaganiza zopanga mzizi wodziyimira yekha zidzapanga mizizi iwiri yosakhudzana pansi pa dzina limodzi, ndipo ndicho cholakwika chomwe ndondomeko iyi ili ikufuna kupewa.

4Chilengezo cha luso

Chigawo choonekera cha mapirapira a makiyi ochokera mwa ena chimaperekedwa ngati malo ozindikiridwa. NIP-01 chochitika — mtundu 30078, yolembedwa chizindikiro 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" zikutanthauza kuti relay imasunga chochitika chimodzi pa (kind, pubkey, d-tag), choncho kumasulira katsalira kumatsimutsira cholengezo cham'mbuyomu m'malo mwake. Choncho, chilichonse cha umboni (identity) chili ndi cholemba chimodzi chachisanathe, chomwe chimapangitsa kuti "fufuzani kiyi ya Alice" kukhale kufufuza kokha kosakayika m'malo mwa mndandanda ofunika kuphatikiza.

Saini ndiyo chogwirizanitsa. Chochitika ichi chasinidwa ndi kiyi ya mayidolo, choncho chidindo chakuti “kiyiyi ya ML-KEM ndi ya npub iyi” chili ndi mphamvu yofanana ndi npub yomweyo. Kusintha ndi kiyi ina ya encapsulation kumafunika kupanga chizindimiso chakukanika cha secp256k1. Wotsimikiza chinyengo yemwe angathe kuchita zimenezo safunika kudandaula ndi KEM.

Zilengezo zimatha. Masiku asanu ndi awiri NIP-40 Kutha kwa nthawi, komwe kumafalitsidwanso maola 24 onse, kumapangitsa kuti mbiri ikhale yowonetsa makasitomala amene akugwira ntchito panopa m'malo mwake amene anali kukagwira ntchito kale. Mzatiwokha sikumaphela nthawi; koma zomwe zikunenedwa za iwo ndizo zimaphela nthawi.

Chilengezo chomwe chatha chimapangidwa ngati chilengezo chomwe sichinakhale ndi kiyi: ogwirizana amatumiza NIP-44 yozama, yomwe login iliyonse ingathe kuwerenga, ndipo client imapitiriza kusinthanana kwa post-quantum pa ulendo wake wotsatira, pamene ikufalitsa kachiwiri. Choncho kukhala chete kwa nthawi yopitirira sabata kumayambitsa kutayika kwa chitetezo cha mautichensere amene anatumizidwa pa nthawi yomwe panali kusowa kwa chilengezo — amakhala otetezedwa ndi njira zakale m'malo mwa zoteteza ku quantum — koma sikugwira nawo kanthu kwina. Kutumizidwa sikukhudzidwa, chilichonse chomwe chalandiridwa chikhala chovomerezeka, ndipo palibe chilichonse chomwe chiyenera kuchitidwa pamene chilengezo chabweranso.

Kusagwirizana kumeneku ndicho chifukwa chotere kuthera kwa nthawi osati chinthu chochitikira mwachisawawa. Popanda imodzi, cholemba chimakhala ndi nthawi yaitali kuposa kiyi imene imatchula: chida chomwe chafutidwa, chabweretsedwa kukhala choyamba, kapena chomwe mizu yake yasinthidwa chimasiya malangizo otsatiridwa olemba uthenga m'kiyi imene palibe amene ali nayo masiku ano, ndipo mauthenga omwe atumizidwa pansi pake amatayika popanda kulengeza mbali zonse ziwiri. Masiku asanu ndi awiri amapanga malire a nthawi imeneyi, ndipo amalola ma relay kutaya cholemba chija okha m'malo mokulira makasitomala kuti azimva.

Munda wofunika umatchula kapangidwe kake. Munda ndi pk2ndipo nambalayi ndi gawo la mgwirizano m'malo mokongola okha: imatchula mtundu wa payload yomwe kiyi ingagwiritsidwe ntchito nayo. Womvera amene sakuwona mbali imeneyi amati “Nymchat client, palibe kiyi ya post-quantum” ndipo amatuma NIP-44 yachidala, yomwe login iliyonse ingathe kuwerenga. Umeneu ndiye njira yoyenera yothethera, ndipo ndikuyenera kunena monga lamulo limene nambala ya mtundu uyu imakhazikitsira: kudziwika kusakhala kwa chinthu chomwe chimapereka luso kumayenera kutaya chitetezo, osati kutaya uthenga. Kiyi yomwe mnzanu sangathe kugwiritsa ntchito ndi yoipa kuposa kupanda kiyi konse, chifukwa uthenga womwe imapanga umataya popanda kulengeza za zolakwika ku mbali iliyonse.

4.1 Kusowa kuli ndi tanthauzo, ndipo kuli ndi mitundu itatu

Chinthu chochepa koma chofunika: chilengezo chimaperekedwa ndi client aliyense wa Nymchat, osati iwo amene ali ndi luso la post-quantum okha, ndipo gawo la key ndi losankha. Zimenezi zimapanga zinthu zitatu zosiyana m'malo mwa ziwiri:

ZinaonekaNjiraTumiza makhalidwe
Chilengezo chokhala ndi kiyi Nymchat, ndokhali ndi luso la post-quantum Chosakaniza
Chilengezo, palibe kiyi konse Nymchat, zakale okha — popanda post-quantum, kapena chida chisanalumikizidwe ku mzizi wa identity. NIP-17 Yachikhalidwe
Palibe chilengezo Wogwiritsa ntchito wosadziwika. Akhoza kukhala wogwiritsa ntchito aliyense wa Nostr kapena Bitchat. Choldakali, komanso chokumba chogwirizana

Kuphatikiza mndandanda wachitatu ndi wachinayi kungakhale chitayiko chenicheni. Chilengezo chopanda kiyi ndi chidziwitso cholembedwa ndi sigini chakuti wotumiza amagwiritsa ntchito Nymchat, chomwe chimalola njira yotumizira kudzipatula kuphatikiza kwa maprotokolo osatidziwika komwe idakhala ikuyenera kuchita kwa aliyense amene sangathe kuzindikira.

4.2 Chida chomwe chimalephera kutsegula mzizi chimakhala chete

Chilengezo chikhoza kusinthidwa: chochitika chimodzi pa msindikidzi umodzi, ndipo chomwe cholembedwa chomaliza ndicho chimalandira. Izi ndizo zimapangitsa dongosolo la fomu imodzi kugwira ntchito, ndipo ndichoncho chimapangitsa chida chomwe sichilumikizidwa kukhala choopsa ngati chikuyambitsa zolemba. Chida chomwe chachititsa chilengezo cha kiyi chomwe chachipanga chokha chingafafanize fomu yeniyeni ndipo chisonyeze anzake onse kuti azimanga zinsinsi pogwiritsa ntchito kiyi yomwe zina zida sizingathe kuzitsegula.

Choncho, chida chomwe chimadziwa kuti mizu (root) ilipo koma chimalephera kuifika sichidziwitsa chilichonse. Sichidawonongeka ndipo sichinalandira mwayi wogwiritsa ntchito pulogalamu: chikupitirizabe kuwerenga uthenga uliwonse chomwe chili ndi makiyi ake ndipo chikupitirizabe kutumiza m'njira yodziwika, pamene chikupempha wogwiritsa ntchito kuti achilumikize. Kunyamula ndiko kachitidwe koyenera kwa chida chomwe chosatha kuyankhula za umunthu.

5Kupeza ndi chigamulo chotumiza

Ogwiritsa ntchito amadziwa ma kiyi a anzawu m'njira ziwiri. Kulembetsa kosatha kumakhudza anthu omwe ogwiritsa ntchito amachitirana nawo nkhani—makambidwe olozeka ndi mamembala a magulu—choncho zilengezo zawo zimafika ngati zochitika za nthawi zonse. Kwa munthu yemwe wapatsana nkhani koyamba, kafukufuku wa kamodzi amachitika pa nthawi yotumizira, osapitirira ndima 2.5 za ndaniyewo; ngati sikupambana, uthenga umakhala wamba, chomwe ndi mmene zinthu zinkachitikira m'mbuyomu musanatsirizidwe post-quantum, osati kulephera kwa njira yatsopano.

Zotsatira zoti "ayi" zasungidwa kwa mphindi khumi m'malo mwamuyaya. Munthu wogwiritsa ntchito yemwe amalumikiza chida chatsopano, kapena yemwe amachoka pa ulendo wozilumikiza pa browser kupita ku kiyi ya pakompyuta yake, amakhala ndi luso la post-quantum pakati pa zokambirana, ndipo kachidindo ka "ayi" kasungidwa kwamuyaya kumawapangitsa kupitiriza kugwiritsa ntchito njira zakale zofingsira (classical encryption) mpaka nthawi yoti chilengezo chimalire.

5.1 Chifukwa chiyani palibe kuukira kochepetsa chitetezo

Chosankha cha njira chimakhala funso limodzi:

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

Palibe kukambirana kwa luso, palibe mndandanda wa malamulo amene amatha kugwiritsidwa ntchito, komanso palibe gawo limene wakupha angathe kuchotsa kuti akukakamize njira yofooka. Kusunga chilengezo. ndi makambirano, ndipo asayinidwa. Njira yozizira ya chilengezo chomwe chachotsedwa kapena chozikidwa ndi kuti uthenga umakhala wamba — mmene zinthu ziliri musanakhazikitse chinthu ichi — m'malo moti uthenga wosakaniza uchepetsedwe kukhala chinthu chomwe chingatheke kuchinyenga.

Chotsutsana nako chili bwino ndipo ndi kofunika kwambiri: makasitomala amatumiza hybrid okha Pamene ikusunga kiyi, ndipo kukhala ndi kiyi kuli ngati umboni wakuti wolandira akhoza kutsegula. Palibe nthawi imene uthenga amatumizidwa pambuyo pa nthawi ya post-quantum kwa munthu amene sangathe kuwawerenga.

6Kumanga kosakaniza

Nymchat sikuthetsa NIP-44. Imathira NIP-44. Ciphertext ya NIP-44 yomwe sichinasinthidwa ndi mbali ya m'kati, ndipo ML-KEM imapanga AEAD ya m'panja mwa iye:

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)

Zinsinsi zonse ziwiri ziyenera kuzitenganso kuti uthenga uwerengedwe: mbali yakunja imapereka ciphertext ya NIP-44 yokha, ndipo kuzitsegula kumafuna ECDH yachikhalidwe. Mtsalakuti wa quantum yemwe angawononge secp256k1 amapata kiyi ya m'kati komanso kukumana ndi ML-KEM; kuwonongedwa kwa ML-KEM kumachotsa mbali yakunja ndipo imasiya NIP-44 yotetezedwa. Chinthu chilichonse chimakhala ndi pake kwake:

Encapsulation imachitidwa patsopano pa uthenga uliwonse. Kiyi ya ML-KEM ya wolandira imakhala ya nthawi yaitali, koma uthenga uliwonse umadza ndi ciphertext yosakhudzana ndipo chifukwa chake ndi yosakhudzana kem_ss. Chimenechimacho ndichomwe chimapangitsa kuti kupeza nonce, m'malo moti ipangidwe mwachisawonjezere, kukhale kolondola: ChaCha20-Poly1305 imasweka chifukwa chogwiritsanso ntchito (key, nonce) imodzi, ndipo pano key imenezi ndi yatsopano pa uthenga uliwonse, choncho palibe pair imene ingabwerezezeke.

6.1 Chifukwa chiyani mizati imakhala osatengana

Njira ina ndiyo kusakaniza zinsinsi zonse ziwiri m'funguzo limodzi la zokambirana ndipo kupereka imeneyo kwa NIP-44:

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

Kamangidwe kamene kachi ndi kolimba monga cryptography. Lili ndi vuto limodzi la mkhalidwe wake: likufuna ecdh_x, x-coordinate yosayengedwa ya ECDH output, ngati zipangizo za kiyi — komanso browser extension (NIP-07) kapena osaina wochokera kutali (NIP-46) sizibweretsa chiwerengero chimenecho. Imachita NIP-44 m'malo mwa wopempha ndipo imapereka ciphertext, chomwe ndicho cholinga chachikulu chosunga kiyi pamalo omwe pulogalamu sitingafike.

Kusakaniza zinsinsi kumatanthoza chilichonse cho-login chomwe chimasunga kiyi ya chidziwitso m'signer, kutanthauza ogwiritsa ntchito odzipereka kwambiri, ndipo palibe ntchito iliyonse yo-derive kiyi yomwe ingasinthe zimenezi. Kupanga mipatula kumachotsa kudalira: NIP-44 imakhala bwino ndipo imapangidwa ndi chilichonse chomwe chimasunga kiyi ya chidziwitso, kuphatikizapo signer, pamene mbali ya KEM imapangidwa kuchokera ku kodi yobwezerera (recovery code) yomwe wogwiritsa ntchito amayisunga komanso. Malo o-login a signer ndi otenga nawo mbali wamba a post-quantum m'mbali zonse ziwiri.

Mtengo wake ndi bandwidth, ndipo si wochepa. Ciphertext ya ML-KEM ndi byte 1,088 ndipo imapita pamodzi ndi uthenga uliwonse, yomwe yamasulidwa kukhala makarakara 1,451 pogwiritsa ntchito base64url; AEAD yakunja iongeza tag ya Poly1305 ya byte 16 ndipo imakulitsa payload ya NIP-44 yomwe ikupaka ndi gawo la utatu. Uthenga wa makarakara 50 umakuluka kuchoka pa byte 176 kupita ku 1,712, ndipo wa makarakara 2,000 umakuluka kuchoka pa 2,820 kupita ku 5,238. Chiyambi chake ndi pafupifupi 1.5 KB pa uthenga uliwonse mosatengera mmene uthenga uliri wochepa, chomwe ndicho mtengo wopanga encapsulation yatsopano nthawi zonse m'malo mogwiritsa ntchito chinsinsi chomwe chidaperekedwa kale.

6.2 Payloads zomwe zimadzifotokoza

The pq2. Prefix imapangitsa kuti kukhazikitsa kukhale kotsatira pang'onopang'ono: imadzidziwitsa yokha, choncho wogwiritsa ntchito amasankha njira yotsegulira chinsinsi mwa kuunika payload m'malo motsimikizira chizindikiro kapena kukumbukira zomwe mnzake amapereka. Ofunda amene sakuzindikiratu prefix amalephera kutsegula payload imeneyo m'malo motayika kapena kuwerenga molakwika, ndipo mauthenga amene anatsekedwa asanatheze mbali iliyonse kuchita post-quantum amakhala owerengeka ngati NIP-44 yachikhalidwe popanda kusintha chilichonse.

Kukana kobisika

ML-KEM decapsulation yapangidwa kuti isalephere nthawi zonse: ngati ciphertext yolembedwa molakwika, Fujisaki-Okamoto transform imabweretsa chinsinsi cha pseudo-random choonetsera m'malo motulutsa cholakwika. Choncho, kiyi yolakwika sikuvonekera pa KEM layer n'komwe — imavonekera ngati kulephera kwa HMAC mkati mwa NIP-44, chomwe ndi mmene kiyi yamakono yolakwika imavonekera. Amene akugwiritsa ntchito amachitira zinthu ziwirizozi mofanana, choncho kulephera kumeneku sikupereka chizindikiro chilichonse chosiyanitsa. Izi ndizo zimapangitsa kuti mndandanda wa m'gawo la 9.1 ugwire ntchito: makasitoma amayesa kiyi iliyonse m'mbali m'mbali ndipo amapereka mwayi kwa NIP-44 kunena kuti iti inali yolondola.

6.3 Mizati yonse iwiri ya zipatso zophatikizira mphatso

A NIP-17 uthenga wobisika ndi NIP-59 kupaka malopakiso: nkhani yosayindikizidwa, yosefali pansi pa kiyi ya chidziwitso ya womtulukitsa (kind 13), kenako yapakupidwa pansi pa kiyi yoti igwiritsidwe ntchito kamodzi yomwe imapangidwa pa uthenga aliyense (kind 1059). Pa ulendo wolowa womwe uli ndi kiyi ya chidziwitso mwachindunji, Nymchat imasakaniza maulere awiriwa, aliyense ali ndi njira yake yokwirizira.

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
Mitundu yonse iwiri ya encryption ndi ya hybrid, aliyense ali ndi ML-KEM encapsulation yodziyimira payokha. Msinkhwa wa panja uli ndi kiyi ya chinsinsi chomwe chimagwiritsidwa ntchito kamodzi chabe, kuti chopakidwa chosauulula yemwe watumiza.

Login ya woyika chidindo imalandira mbali yakunja yokha. Chidindochi chimapangidwa ndi woyika chidindo monga NIP-44 yamba — pulogalamu sizimaona kiyi imene imachipanga — choncho chidindochi chimalephera kusakanidwa m'malo mwake. Izi sizichititsa kusintha chilichonse polimbana ndi kufuna kuukira kumeneku: chidindochi chimapezeka kudzera mbali yakunja yokha, ndipo mbali yakunja ndi zomwe wosunga amasunga. Mɗani amene ali ndi zolembedwa amayenera kuwononga ML-KEM musanayambe kuona chidindochi kuti achitire kwa.

7Mauthenga a m'magulu komanso kufika kwa chigawo

Uthenga wa gulu si ciphertext imodzi. Ndi plaintext yomweyo yofalitsidwa kwa membala aliyense, pamene chikhopoli chilichonse chikusungidwa mwa kiyi ya ML-KEM ya membala uyo. Membala amene wapereka kiyi amalandira hybrid wrap; yemwe sanapereke amalandira classical wrap.

Izi zimapanga vuto la kulembetsa zolemba limene njira yosavuta yoyendetsera imachita zolakwika. Ngati mamembala asanu ndi atatu mwa khumi alandira kope yosakaniza, uthenga ndi ayi mbali zisanu ndi zitatu mwa khumi zatsogolo. Mtsamvere akufunika kope limodzi la makhalidwe akale la uthenga weniweni lomwe lili lofanana m'zonse khumi, choncho uthenga uli chitetezedwa ngati yekha ngati iliyonse Kopiyo ndi.

Nymchat chifukwa chake imatsatira mlingo wa uthenga pa uthenga pa nthawi yofalitsira — chiwerengero chimadziwika pokhapokha pamene zinthu zikukonzedwa — ndipo chizindikiro chimasonyeza kuti “imatha kupirira quantum kwa mamembala 8 mwa 10” m'malo mokuti ithandize kuti uthenga ukhale otetezeka. Pamene palibe chiwerengero chosungidwa, chomwe ndi chinthu chofala kwa a Zalandiridwa uthenga wa gulu (wokutumiza yekha amabwerera nambala ya uthenga wofalikira), interface imasonyeza chitetezo chachidule m'malo mwa chitetezo chathunthu. Kunena kuti pali chitetezo chathunthu pogwiritsa ntchito kope yake yekha kungakhale kunena zoona mopitirira muyezo chokhudza uthenga wonse.

7.1 Zomwe chitetezo chimapereka malipoti

Chikhadu chimatiira choonadi chokhudza uthenga, osati za pulogalamu yomwe inatumiza:

Chigamulo chimalembedwa pamene uthenga watsekedwa m'malo motengera zimene mnzake amalengeza pambuyo pake. Uthenga wa chinsinsi umene ulipo kale sungathe kukhala otetezeka kwambiri kuposa mmene analili, ndipo njira yosonyezera yomwe ingakhale ikusonyeza kachiwiri uthenga wakale chifukwa cha chilengezo chatsopano idzakhala ikunena zinthu zonyenga za ma bytes pa relay.

Malamulo a gulu amene ali pamwamba awa amatsata malamulo awa m'malo mothetsa awa: uthenga wa gulu umathandizidwa kwambiri pokhapokha pamene kope la membala aliyense linali kotero, ndipo uthenga wa gulu womwe walandiridwa popanda chiwerengero cha chitetezo amasonyeza kuti ndi wotsala pang'ono.

8Ma kopiyo zalembedwerera inu nokha

Zinthu zingapo zomwe pulayenti imasunga zasunika mwambo wa chinsinsi malinga ndi umboni wa munthu yemwe akugwiritsa ntchito: zolinga zomwe zikusinkhanidwa, mndandanda wa zokambirana, mafoni a gulu, komanso malo osungira mauthenga. Izi zimapereka chidziwitso chambiri za munthu kuposa uthenga m'modzi m'modzi, choncho kuzisiya monga zakale kungazipangitse kukhala zinthu zofooka kwambiri zomwe zasungidwa, mosatengera mmene mauthenga enawa asungidwira mosamala. Amagwiritsa ntchito njira imodzi yosakaniza, yomwe yasungidwa m'kalata yomwe yachokera ku fungo la umboni wa munthu yemwe akugwiritsa ntchito — kupatula chinthu chimodzi chomwe chafotokozedwa m'gawo la 3.2, ... nymchat-pq-root gulu limenelalo, lomwe silingathe kutsekedwa ndi kiyi yomwe iwake yekha angathe kuipanga.

Zinthu izi ndizo pamene kapangidwe kake kuli kofunika kwambiri. Ndondomeko ya malsettings kapena nkhani imodzi mu archive imakhala pamalo amodzi kwa zaka zambiri, zomwe ndizo zinthu zomwe mbandela yemwe amasonkhanitsa zinthu tsopano kuti azizivula kenako akatha amakonda kusunga—kuposa uthenga umodzi uliwonse, womwe m'maganizo a wogwiritsa ntchito amakhala wopita msanga.

Chinthu chimodzi chimalamulira kapangidwe wa m'malo pano m'malo mwa kiyi. Nakopiyo yomwe ili ndi dzina ndi komwe kuli iyenera kukhala yomveka kwa iliyonse chida pa akaunti, choncho chida chilichonse chimalengeza zomwe chingathe kutsegula m'ndandanda umene chilengezo chake chikusungamo, ndipo akaunti imalembanso zomwe zonse zimatha kuwerenga basi. Kulemba chilichonse china kungatheteza chida ku zoyendetsera zake — kulephera kosadziwika kumene Gawo 3.2 limapewa ndi njira zina, kudzera m'njira ina yosiyana.

Chinthu choletsa choyenera kutchulidwa

Chida chomwe chili ndi chidziwitso koma chilibe maziko (root) chosatheka kutsegula chilichonse chomwe chotsekeredwa ndi kiyi yochokera ku maziko amenewo, kuphatikizapo zokhazikika zake. Izi ndi zotsatira zofuna, osati kulakwa popanda kudziwa, ndipo ndichifukwa chake Gawo 3.3 chili ndi chidziwitso cha chida chogwirizanitsa m'malo mopanga maziko atsopano: maziko achiwiri sizingapangetse blob kukhala yowoneka, adzagawitsa zinthu za kiyi ya chidziwitsozo m'madera awiri. Mpaka munthu akagwirizanitsa, chida chikupitiriza kugwira ntchito — chimawerenga zomwe chili ndi mwayi waziyo ndipo timatuma m'njira yodziwika.

Chida chomwe chikuendesetsa extension ya browser kapena wosaina wa kutali (NIP-46) sichili ndi nsec yochokera mwa yake, koma chili ndi kodi yobwezerera, ndipo pansi pa kachitidwe ka mipatala wa m'gawo 6.1, zimene mbali ya post-quantum ikufunika ndizozo: wosaina amapanga mpatala wa NIP-44 monga momwe amachitira nthawi zonse, ndipo wogwiritsa ntchito amapanga kiyi ya mpatala wonjezekako yekha. Kulowapo koteroko ndi mbali ya mwayi m'njira zonse ziwiri.

9Kuzungulika

The epoch Chibwerere m'derivation ndicho chimapangitsa kuti kusintha kukhale kotheka popanda kiyi yatsopano. Kuwonjezera nambalayi kumapereka kiyi yatsopano kuchokera pa mzizi umodzi komanso chilengezo chofalitsanso; anzanu amalandira kiyi yatsopano kuchokera mu mbiri yomwe ingasinthidwe. Choncho kusintha sikupempha wogwiritsa ntchito kuti alembe chilichonse nthawi ya chachiwiri: mzizi umapangidwa kamodzi pa msinkhu ndipo epoch ndiyo imachita kusinthaku.

9.1 Magawo akale amasungidwa, ndipo palibe chimene chimasandulidwa kachiwiri kukhala chinsinsi.

Palibe chomwe chimasinidwanso pamene kiyi imasintha. Makasitomala amakonza zinthu zozindikira kumasulira kuyambira nthawi yamakono mpaka nthawi ya epoch -3, choncho uthenga womwe unafunsidwa pang'ono musanasintha kiyi, ukatheka kumasuliridwa pogwiritsa ntchito kiyi yomwe inali yogwiritsidwa ntchito nthawi yomwe uthenga unatumizidwa.

Liwu limeneli ndilo limapangitsa kuti kusintha kukhale kotetezeka kutengapo: popanda limeneli, kusintha konse kungasiya chilichonse chomwe chinali pa ntchito. Chilichonse chomwe chinali chotsekedwa kale chimakhala chovomerezeka pa moyo wonse wa identity, chifukwa uthenga womwe wogwiritsa ntchito sangathe kutsegulanso ndi wowonongeka kwambiri kwa iwo kuposa uthenga womwe chitetezo chake changathe kusinthidwa m'mbuyomo (Chigawo 10.5).

10Zomwe izi sizikuteteza

Cholemba chomwe chimangofotokoza zomwe dongosolo limachita si kumasulira dongosolo, ndipo kulozera mopambanitsa chinthu cha chitetezo mu interface ndi koopsa kuposa kuchisiya. Zotsatira izi sizili m'kati mwa zomwe dongosoli limateteza.

10.1 Mzizi ndi chinsinsi chachiwiri, ndipo kutaya kwake sikutheka kubwezeretsedwa

Ili ndi mtengo weniweni wa dongosolo limeneli. Chofunika m'Gawo 2 chakuti wogwiritsa ntchito ayenera kukhala ndi chinthu chimodzi chokha chosunga sichitheka: nsec yokha sikubwezeretsa kiyi ya post-quantum, chifukwa cholinga chachikulu ndicho kuti palibe chinthu choonekera kwa aliyense kapena chinsinsi china chomwe chingauvetule kiyi imeneyo. Ngati palibe chida chomwe chikusunga mzizi (root) ndipo palibe mbali iliyonse ya Section 3.2 yomwe ingathe kutsegulidwa, zinthu zozikidwa pa kiyi yochokera ku mzizi (root) sizingatheke kuzibwezeretsa. Palibe malo osungirako chinsinsi (escrow) ndipo panodzi chosankhidwa palibe bungwe lililonse limene lingathe kukhala nalo.

Pogwiritsa ntchito transfer yomwe imachitika mwa manja ndilo njira yokha, izi ndi zozama kuposa mmene zingawoneke poyamba. Munthu wogwiritsa ntchito yemwe samakopera... nympq1… code anywhere ili ndi kope limodzi lokha la iye, pa chida chimodzi, ndipo kutaya chida chimenecho kumatanitsa uthenga uliwonse wa post-quantum, settings blob ndi archive row yosefaliidwa nayo. The nsec sizikuthandiza; uyo ndi khalidwe kamangidwe konse kamadalira pa.

Njira iliyonse yowosungidwa yomwe ionjezeredwa kumapeto iyenera kukwaniritsa zofunika zomwe njira yomanja imachitira. Woeretsa amayesa njira yofewa yomwe ilipo, choncho ndondomeko imakhala yofunika malinga ndi mphamvu ya njira yake yofookera yomwe ili yofooka — mwachitsanzo, mawu otsekemera amene anthu angawakhale okumbukira, angapangitse chinthu chonsecho kukhala chofofoka malinga ndi mphamvu ya mawuwo, ndipo ndondomeko yowosungidwa imeneyi ndiyo chinthu chomwe woeretsa yemwe amasonkhanitsa zinthu tsopano kuti achideketsere m'tsogolo amasonkhanitsa ndipo amachigwiritsa ntchito mofatsa popanda kukhala patsogolo.

10.2 Kutsimikizira umwini, osiyana ndi chinsinsi

Saini iliyonse mu Nostr ndi Schnorr pa secp256k1, ndipo zimenezi sizidzasintha pano. Woipa amene ali ndi kompyuta ya quantum akhoza kupanga saini zabodza komanso kudzichititsa kuti ndi wogwiritsa ntchito wina nthawi yomweyo. Zomwe kusinthana kwa makiyi a hybrid kumalimbana nazo ndi njira ya "konza lero, werenga m'tsogolo": woyang'anira amene akujambula ndandanda lero sangathe kuiverenga mtsogolo. Sizimapangitsa kuti uthenga usathe kupangidwa zabodza kwa woipa yemwe kale ali ndi kompyutoyo. Kusiyanaku kuli kusungidwa mofunitsitsa m'mapulogalamu — chizindikiro cha kiyi (padlock) chimasonyeza chitsimikizo (authentication), chitetezo (shield) chimasonyeza chinsinsi (confidentiality), ndipo ndi zizindikiro zosiyana chifukwa uthenga ukhoza kukhala ndi chimodzi popanda china.

Zimaperekeranso malire pa zomwe chilengezo mu Gawoli 4 chingathe kulonjeza. Kugwirizana pakati pa npub ndi kiyi ya ML-KEM ndi chizindikiro cha secp256k1, choncho mdani yemwe angathe kupanga chizindikiro cholakwika akhoza kusintha ndi kiyi yake. Chinsinsi ku mdani wa m'tsogolo si chofanana ndi kuona kuti chinthu ndi choonadi ku mdani wa m'tsogolo.

10.3 Zambiri za zambiri

Kupaka mphatso kumabisa wotumiza, wolandira kupitirira modzi p chizindikiro, mtundu, ndi nthawi ya uthenga wamkati. Sizibisa kuti chinthu chachitika, kukula kwake, kapena nthawi yomwe relay inayalandira. Kuunika kwa kulumikizana sikukukhudzidwa ndi gawo lililonse la dongosolo ili.

10.4 Mesh yosakhala pa intaneti

Bluetooth mesh transport ya Nymchat ndi ndondomeko yosiyana yomwe ili ndi handshake yake, ndipo ntchitoyi siikukhudzidwa. Uthenga wofalitsidwa kudzera mu mesh ndi wamba.

10.5 Mithenga yatumizidwa kale

Uthenga wofunitika womwe wasungidwa pamene kumbali imodzi inali pa njira zakale, umakhala wa njira zakale nthawi zonse. Ulipo kale ndipo sungathekuphimbidwanso. Chitetezo chimayamba pa uthenga womwe kumbali zonse zinali ndi makiyi a post-quantum, osati pa nthawi yomwe chinthucho chinayambitsidwa.

11Zosankha zomwe zinaonereka

NjiraChifukwa chiyani osati?
Pezani kiyi wa post-quantum kuchokera ku kiyi wa chizindimiso Zatengedwa. Kudzipanga kumeneku ndi njira yozindikika pa nsec, ndipo mbandakucha wa quantum amadzisodzera nsec kuchokera pa npub yofalitsidwa, choncho kuwononga mbali ya classical kumapereka mbali ya post-quantum nayo. Inathetsa vuto lililonse la kugawa m'chikalatachi ndipo sinateteza ku aliyense. Gawo 3.1.
Tumizani mzizi ku zida zina za wogwiritsa ntchito kudzera ku NIP-44 Zakanidwa chifukwa chomwechimodzi koma m'maonekedwe osiyana. Mfundo yaikulu (root) yofambitsidwa pogwiritsa ntchito njira zochitira chinsinsi za m'mbuyomo okha ingathekuledwa ndi aliyense amene anasunga uthenga umenewo ndipo akatsegula kiyi yake nthawi ina, chomwe ndi choopsa chomwe mfundo yaikulu imeneyi yakufuna kuletsa.
ML-KEM keypair imene yapangidwa mosiyana pa chida chilichonse Zatsutsidwa. Zida zingakhale ndi makiyi osiyanasiyana a decapsulation, ndipo chilengezo chimodzi chomwe chingasinthidwe pa dzina limodzi sachingasunga onsewo. Anthu amene ali nawo adzakaika chinsinsi pogwiritsa ntchito makiyi amene anachuluka posachedwapa, ndipo chida chilichonse china chidzalephera kuwerenga zotsatira zake. Mzati mmodzi pa dzina limodzi, womwe umayendetsedwa ndi njira za m'Chigawo 3.2, ndicho chomwe chimapewa zimenezi.
Phatikizani root pansi pa PIN Zakanidwa. PIN ya manambala anayi ili ndi bitu 13 pafupifupi pokana mlamuliri amene ali offline yemwe ali ndi wrapped row. Kuionesa pambali pa njira ziwiri za bitu 256 kungapereke chithunzi chosayenera cha mtengo wa wrap yofooka kwambiri.
Kukulitsa npub kuti ikhale ndi makiyi onse awiri 1,184 bytes si chizindikiro chomwe chingagawidwe, ndipo zidawononga momwe mapulogalamu onse a Nostr omwe alipo amamasulira kotala yomwe idafotokozedwa ngati 32 bytes.
Ntchito yofunika ya ndandanda Kubwereretsa ulamuliro womwe network imakhala kuti ichiteteze kutali nawo. Aliyense amene amayankha kufunafuna amalamulira kuti ndani akhoza kuwerenga uthenga.
Phatikizani kiyi pa uthenga uliwonse Sizikuthetsa kanthu: wotumiza akufuna wa wolandira Kiyi musanakhale uthenga woyamba, chomwe ndicho chimachitika ndendende popanda uthenga woyamba woti uliweke.
Kukambirana kwa luso m'njira imodzi Zimapanga malo oti chitetezo chichepetseke. Mbanduzi yemwe angathe kuchotsa chizindikiro cha luso amaputa njira yakale.
Post-quantum chokha, palibe gawo la zakale Amasiya zaka zambiri zozindikira za secp256k1 kuti apeze chinthu choyambira chatsopano kwambiri. Zinthu zosakaniza zimafela ngati onse kulephera.

12Kulingana kwa kukhazikitsa

Nymchat imapereka njira ziwiri zodzipatula zoyendetsera chinthu chino — imodzi mu JavaScript kwa web application, ndipo imodzi mu Dart kwa mobile applications, kuphatikizapo ML-KEM-768 yomwe yapangidwa kuyambira pansi. Njira ziwiri zoyendetsera chinthu chimodzi nthawi zambiri zimakhala chovuta, choncho zimayesedwa kuti ziwirizanepo m'malo motaya mtima kuti zikhale zofanana.

Kagwiritsidwe ntchito ka Dart ML-KEM kwatsimikizidwa poyerekeza ndi yovomerezeka NIST ACVP Mayeso a mayankho odziwika a ML-KEM-768 (ML-KEM-*-FIPS20325 za kupanga makiyi, 25 za kuphatikiza, komanso 10 za kutulutsa, zomwe zikuyendetsedwa monga gulu lawo lenileni. Izi ndi ma vector omwe NIST imatulutsa kuti owonetsera kuti kukhazikitsidwa kwa pulogalamu kuli bwino, choncho kupita kwa ma vector amenewa ndi umboni woti kusintha kwa pulogalamu (port) kuli bwino, osati umboni woti makasitomala awiri akugwirizana okha. Kupitirira apo, chida chamodzi cha ma test vector — kupezeka kwa seed, kuphatikiza, ma payload formats onse awiri, komanso ma gift wraps onse — chimapangidwa kuchokera ku JavaScript reference ndipo chimayezedwa ndi magulu onse awiri a mayeso. Chinsinsi cha m'mbali (root secret) chimawonjezera chida chimenechi m'malo mopatsa chinthu china: root kupita ku seed, root kupita ku keypair, chizindikiro cha pakati cha root, komanso key, nonce, ndi data yogwirizana ndi kotala yakunja amene amachokera mwa izi ndi ma vector awo okha, choncho makasitomala awiri sangagwirizane pa zomwe... nympq1… "Code" kutanthauza ma byte omwe uthenga waphatikizidwa nawo. Kusiyana pakati pa njira zilizonse zoyambitsira kumapangitsa kuti kukhazikitsidwe (build) kulephere, m'malo moti kutengere uthenga womwe wina wogwiritsa ntchito sangathe kutsegula.

Chidindo cha chala chiyenera kudziwika pakati pa izi. Ndi chomwe chimapatsa chidziwitso chida kuti “uyu ndiye mzizi ndimene ndili naye” kuchokera ku “uyu ndi wina wosiyana”, ndipo wogwiritsa ntchito amene sangathe kudzera chidindo cha wogwiritsa ntchito wina adzaona mbiri yabwino kukhala ngati palibe mbiri sama—ndipo kenako, kutsatira Gawo 3.3, kupanga mzizi wachiwiri ndi kugawa umboni. Ndi njira chifukwa cha chomwecho chenicheni.

Nymchat ndi Pulogalamu yotseguka pansi pa AGPL-3.0. Chigawo chachikulu cha cryptographic chomwe chachuluzidwa pano ndi js/nym-crypto.js ndi js/modules/pq.js m'web client, ndipo lib/core/crypto/ ndi lib/features/identity/pq_registry.dart mu makasitomala a mafoni.

Kuti muone ufotokozera wamfupi wosakhala wa luso lapadera, onani... Tsamba la mabase a chidziwitso lokhudza encryption yomwe imalimbana ndi kwantamu.