Chinyorwa chehunyanzvi cheNymchat
Kubvumirana kweChikamu cheChirongwa mushure mekuQuantum muNymchat
Kugovera ma public key eML-KEM-768 kuburikidza neNostr pasina directory kana registry, uye kuzvigadzira kubva pachinhu chakavanzika chisingatdiriwo nechimwe chero chinhu chinowanikwa pachena.
Kuwedzera kusanganiswa kwemakiyi anogona kuramba akachengeteka (post-quantum key exchange) mumeseji hachisi dambudziko re cryptography zvakanyanya. Nzira dzinobatsira dzakagadziridzwa zvakanaka uye ma-library aripo. Chinorema ndicho kuti munhu wese anenge achida... chipiri public key, uye ganetwork risina mutungamiri mumwe chete harina nzvimbo yakajeka yekuisa. Chinyorwa ichi chinotsanangura kuti Nymchat inopindura sei nyaya iyoyo — kuti kivha rechipiri rinobva kupi, kuti rinosvika sei kune vanhu vanoda, uye kuti interface inobvumidzwa kutaura zvakadii pamusoro pemhedzisiro iyoyo — uye,muchikamu chekupedzisira, kuti mutsindo iwoyo haadziviriri chii.
Peji ino yakaturikirwa nemuchina kuti zvirerukire. ChiRungu chepakutanga ndiyo shanduro inoshanda.
1Dambudziko racho
Meseji dzisina vanhu dzeNostr dzakavharwa ne NIP-44, iyo ine madimbu maviri anogona kusarurwa. Dimbu rinosanganisa zvinyorwa zvakachena — ChaCha20 nemavara eHMAC-SHA256, akapiwa kiyi kuburikidza ne HKDF (RFC 5869) — haisi kuva panjodzi inobata zvakanyanya nekomputa yequantum; algorithm yeGrover inopa kusarevedza kwe-square-root pakuenzanisa ne symmetric key, uye 256 bits inokwanisa kumira izvozvo. Chikamu chekuti anobvumira pachinye chekey ndicho elliptic-curve Diffie-Hellman pamusoro pe secp256k1...uye Shor's algorithm inogadzirisa dambudziko re-discrete logarithm zvachose. Kuwana kiyi imwe yakavanzika kubva kiyi yakatenderera kunoburitsa zvakare zvakavanzika zvose zvakagoverwa zvakagadzirwa neiyi kiyi.
Ngozi inoita haimiriri kusvikira michina yakadai yavapo. Muvengi ane nzvimbo yekuchengetera anogona kunyorera mashoko akavanzika nhasi, achazodzudzira kana simba rekuzviita rikasvika. Chinhu chipi zvacho chinotumirwa iye zvino chinenge chichichakosie pane iro ramangwana chava kutonyatsotyora kare. Ichi ndicho kupata kunogadziriswa nekuvandudzwa kwemakiyi anozvidzivirira kubva kuquantum, uye ndicho chikonzero nei basa iri risingagone kumirira kusvikira michina iyoyo yabudirira kuvakwa.
1.1 Mubvunzo chinyorwa chino chinopindura
Nzira yekugadzirisa dambudziko iri yave kunzwisisa zvakanaka: kushandisa nzira ye post-quantum key encapsulation pamwe chete ne nzira ye classical exchange, kuitira kuti munhu anoda kukuvadza (attacker) ave nekuvhunduka zvose kuti azove nekuverenga chimwe chinhu. Nymchat inoshandisa ML-KEM-768 (FIPS 203). Izvo zvinomutsa dambudziko rekugovera pakarepo:
Kuti utumire meseji kuna Alice nhasi, unoda chinhu chimwe chete: npub yake. Kana ukawedzera post-quantum exchange, unoda chimwe chete — ML-KEM public key yake. Iyo key inogara kupi, uye unozitora sei usati watumira chimwe chinhu kuna iye?
Npub yakazvimirira. Unogona kuinyora paphepha, kuiverenga nemuromo, kana kuishandisa kubva kuresaeni, uye ndiyo yose inodiwa nemunhu kuti akukurerere zvakavanzika. ML-KEM-768 public key inosvika ma 1,184 bytes. Haikwanisi kuverengwa nemuromo, hainganyatsoenderani nezita rekushandisa, uye haifaniri kuva mu QR code pedyo nechimiro chechimunhu chine ma 32 bytes chete.
Ukuru ndicho chikamu chakareruka. Chikamu chakaoma ndechokuti kiyi yechipiri inounza matambudziko matatu akasiyana, uye chikamu chakasara chenyaya ino ndicho mhinduro kudarizvo:
- Chinogona kutsiviwa. Chave isinganyatsoverengwa nekutarisa nekukurumidza ndicho chinhu chinotsvaga munhu anoda kupinda mune risingabvumidzwe kuchinja nechemavo. Chikamu chechina chinobatanidza icho nechimiro pachishandiswa chiratidzo, izvo zvinozvigadzirisa zvakananga.
- Chinofanira kufanana pazvishandiso zvose zvemushandisi. Account imwe chete pafoni nepa laptop inofanira kuva nechiitiro chimwe chete, kana kuti mameseji akachengetedzwa kumwe haagoni kuvhurwa kumwe. Chidimbu 3.2 chinonyatsotsanangura izvi.
- Inogona kurasika. Public key inoburitswa zvakare kubva kune chivande, saka chatinofanira kuona chichisara ndicho icho chivande icho — uye nekuda kwekuumbwa kwayo, hapana chimwe chinogona kuivaka zvakare. Chikamu 10.1 chinotaura zvakajeka kuti izvi zvinodhura zvakadii, nekuti izvi hazvisungwi nekugadzurudzwa zvakanyanya asi nekubhadharwa.
2Zvipingamiso zvekuronga
Zvipingamupiso zvina zvakagadzira mhinduro, uye zvakaramba nzira dzekugadzira dzakawanda dzinonyatsobuda pachena isati panyorwa kodingi.
- Zvinhu zvakavanzika zvishoma sezvingogona. Vashandisi veNostr vachine chinhu chimwe chete chakavanzika, iacho inonzi nsec. Chinhu chimwe chete chakawedzerwa chinenge imwe nzira yekurasikirwa nemhuri yemashoko ako, uye munhu anoziva kuchengetedza nsec haazozivi kuchengetedza chimwe chinhu zvakare. Chidimbu 3.1 chinoratidza kuti ichi chinogona kusazadziswa zvakananga — kiyi ye post-quantum inobva pane nsec haipi kuchengetedzeka kwe post-quantum zvachose — saka nzira yekugadzira inoshandisa chinhu chimwe chete chakavanzika chete uye kwete zvimwe: chikamu chimwe chete chekiyari, chinogadzirwa kamwe chete pamberi pezita remunhu, chinoratidzwa muchimiro chakafanana ne nsec uye panzvimbo imwe chete, kuti munhu wese anoziva kuchengetedza chimwe anozvaziva kuchengetedza chimwe zvakare. Chidimbu 10.1 chiri chokwadi pamusoro pezvinoreva izvi.
- Hapana kodzero. Hapana seva inogona kuvimbwa nayo kuti iudze kuti chave chinobva kuna ani. Seva yakadaiyo inova nzvimbo inobva yapindwa mafambiro emashoko achitsauka.
- Zvigadzirwa zvakawanda, chimiro chimwe. Zita reNostr rinowanzo shandiswa kubva ku clients vakawanda panguva imwe chete. Zvose zviri mumashoko emakiyi (key material) zvinofanira kuva zvakafanana pazvose izvi, uye nzira dzinouya nazvo hadzifaniri kuverengwa nemupikisani atiri kudzivirira.
- Hakuna kukurukurirana. Kusanganiswa kwemashoko ari mumugwagwa wemashoko ekubvunza kuti "ndeapi mapfambidziro emashoko amunotsigira?" imukana wekupambanuri unogona kubviswa kuti anomanikidza kushandiswa kwemashoko asina simba. Chirongwa ichi chinofanira kunge chisina chimwe chinhu chinogona kudzikisirwa simba.
3Chakavanzika chemidzi chakazvimirira
Sarudzo huru yakagadzwa ndeyekuti chikoshi cheML-KEM decapsulation chinobva pane zvinhu zvechivande zvisingabvudiswi nechimwe chinhu chiri pachena. Chimwe chimwe chiziviso chinopiwa chivande chimwe chete chepamusoro, chinogadzirwa kamwe chete:
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 inoratidzwa nevadzi sezvinonzi nsec: bech32 nechiziviso chinogona kuverengwa nemunhu
nympq, saka zvinoti nympq1…, inobatidzwa pedyo ne nsec pane identity screen mukati mekuvhurwa kwacho kuri kuitwa nenzira imwe chete, inokopidzwirwa nenzira imwe chete, isina kumborekodhwa uye isina kumbotumirwa kunzvimbo imwe chete isina kuchengetedzwa. Hachisi chivharamwozo uye hachisi chinhu chekupinda. Zvinhu zvemakiyi zvinogona kuchengetedzwa nemushandisi, sezvo nsec zvakadaro.
Salt yakaparadzanwa nedomain nekuda kwechinangwa, kuitira kuti hapana chimwe chakatovanzika chinogona kuburitsa keypair imwe chete. The epoch counter inobatanidza kutenderera (Chikamu 9)
3.1 Sei kiyi isingakwanisiki kubva kukiyiyi yepachidindo
Magadzirirwo akajeka ndekukudyiza keypair kubva pachivande chava nacho mushandisi:
seed = HKDF(salt = "…", IKM = nsec) // do not do this
Zvinokwezva nekuda kwezvikonzero zvina, zvose zvacho zviri zvechokwadi: hapana chitsva chinoda kudyidzirwa (backup), nekuti nsec pachazvo ndiyo backup; chishandiso chimwe nechimwe chichibvumirana nekuda kwakagadzirirwa, pasina nzira yekugadzirisa (synchronization protocol) inogona kukanganisa; chiziviso chimwe chete chinogona kuchinjwa paimwe imwe identity chiri pachena kuti chakakodzera, nekuti zvishandiso hazvigoneki kukanganisa pamusoro pechii (key); uye chii (key) chichigara chiripo kunyangwe risati rawanikwa, kuitira kuti mutengi (client) akwanise kuvhara chimwe chinhu paimwe pachake panguva yekutanga kushandisa.
Zvakanakira zvina zvose hazvine zvakunobatsira, nekuda kwechikonzero chimwe chete. Shor's algorithm ikashandiswa pakuita npub yakamboburitswa inopa nsec. Seed derivation inzira yakavhurika inoshandiswa pakuita nsec. Saka muvengi anoparadza chikamu checlassical anozvivaka zvakare chikamu chepost-quantum nekushandisa HKDF imwe chete inoshandiswa nevamwe vese. Pakurwisa nzira yekutora data iyezvino kuti udekuretsa mangwana (harvest-now-decrypt-later) — tsaona imwe chete iyo chinangwa chechiendo ichi ndechekuyimirisa — kiyi inobva mune iyi nzira haibatsiri chinhu zvachose.
Kiyi yeML-KEM decapsulation inofanira kubva kuentropy isingagoni kuburitswa kubva ku-nsec kana kuti kutumirwa pasi peencryption yepasichake checlassical chete.
Chidimbu chechipiri chemutemo uyu chinoita basa zvakafanana nechekutanga. Chivande chakagadzirwa pachayega icho chinobva chanyanyanyisirwa pakati pezvidzwanidzwa zvemutumi mukumesi rakajairika reNIP-44 ndiyo kuparara kuri kune matanho akawedzerwa: muvengi anochengetedza kumesi kacho nhasi wobva awana kiyi yacho mangwana, zvino midzi yose inobuda. Ndizvo zvinoita kuti nzira dziri muchidimbu chinotevera dzive dzakadai, uye kuti hapana imwe inoti “itumire kune rimwe chishandiso chako.”
3.2 Kuunza root kune zvimwe zvishandiso zvemushandisi
Chiringaniso 3 cheChikamu 2 — identity imwe chete, michina yakawanda — hachikwanisi kuzadziswa nekushandisa kuverengera pano, nekuti chinangwa chikuru ndechekuti kiyi hachisi chibereko chechimwe chinhu chazove chakaramba chiri pakati pemichina iyoyo. Inofanira kuzadziswa nekutakura panzvimbo pezvo, uye pane nzira imwe chete chete: mushandisi anotsvedza... nympq1… vanyore kodi vazvavo.
Mudzi unoratidzwa se nympq1… pedyo ne nsec, uye chidimbu chechipiri chinogamuchira zvakanyorwa mukapani imwe chete. Ndiyo nzira yose inoshanda. Chidimbu chisina kupiwa kodi chinogona kusakwanisa kutora chikamu, izvo Chikamu 4.2 chinotsanangura.
Kutumira kwemazvo kuri chigadzirwa chakagadzirwa pane kuti rive danho rekutanga. Mutemo uri muChikamu 3.1 unoti midzi haifanire kufamba pasi pe-encryption yemazuva ose chete, uye nzira dzose dzinogona kuita kuti izvi zvive zvinozvitorera — kudetemba kuburikidza ne-relay, kana kuiviga pamushonga wekuzivikanwa (identity key) — dzinokanganisa izvozvo chaizvo. Danho rinoitwa nemushandisi ndicho chikonzero nei kudzivirirwa kuri kwechokwadi.
Chimiro ichi chinosiya nzvimbo yeimwe nzira yakavigwa: rekodi rinogona kuva nechitsauko chezvakavigwa, imwe neimwe iAEAD blob pasi pemuchati (key) mutoroji anogona kuishandisa zvakare pane chimwe chishandiso — semuenzaniso, zvabuda muPRF ye-passkey. Hapana chinhu chinobuda chine izvi nhasi, uye kusvikira chimwe chabuda, ... nympq1… kodhi ndiyo
nzira imwe chete yekupfuura.
Chikamu 10.1 chinotaura mutengo wezvo.
Rekodi yacho pachayo inogara mumugomwe wezvirongedzo wazvo, nymchat-pq-root, uye inosimbana sezvinoita mamwe mapoka. Kunyangwe isina kuuya nezve 'wraps', inoita basa rakakosha: kuva kwayo ndiko kunozivisa chivara chechipiri kuti zita iri rine midzi kare, izvo zvinoita kuti isazvigadzire rimwe chete rinopikisa (Section 3.3).
The nymchat-pq-root chikamu chinofanira kwete kukiwa neML-KEM key yakabva kune root. Row iyoyo inochengetedza kofi imwe chete ye-root, saka kuivhara pasi pekey yakabva kune root kuitira kuti ive sechirongo chine kiyi yacho mukati: hapana chishandiso chinogona kuivhura, kusanganisira icho chakanyora. Inochengetedzwa nenzira yechivanhu — NIP-44 kuuzhimu — kana kuti isina kuchengetedzwa zvachose. Uku ndiko kuchaunganidzwa kwekugona kugamuchira kuchengetedzwa nenzira yechivanhu chete, uye zvinogona kuitika: row iyoyo haisine root nhasi, inochengetedza chete chokwadi chekuti pane imwe iripo.
Miganhu yese yemhando dzekugadzirisa inosara inogona uye inofanira kushandisa key inobva kumugodhi. Uyu ndiyo imwe chete inosiyana, uye imhando yekusiyana kwakabatana nekudzokorora pane kusimba.
3.3 Kuumbwa nekugamuchirwa
Pakuvhura, achichengetedza chimiro chakasimba, client anoshanda nenzira ino:
- Tsvaga zviri kuvepo
nymchat-pq-rootkurekodhi. - Rekodi yawanikwa, uye chigadzirwa ichi chinogona kudarura — igamuchirai uye
- Rekodi yawanikwa, uye mudziyo uyu haakwanisi kuchiunza — usagadzire root itsva, uye usazivise chero chiziviso zvachose. Kumbira mushandisi kuti abatanidze chishandiso ichi nekupinda
nympq1…kodi kubva kuchishandiso chine icho kare. - Hapana chinyorwa — sika midzi, buritsa rekodi, zivisa, uye ratidza...
nympq1…kodi kumushandisi kamwe chete kuti vagoni kuichengetedza.
Danho rechitatu ndiro danho riri nyore kukanganisa, uye ndicho chikonzero nei mitemo yekutevedzana yakanyorwa pane kusiya kuti imwe imwe inoshandiswa iite zvayo. Zviridzwa zviviri zviri kuedza kugadzira root zvinoburitsa roots mbiri dzisina kudyidzana pasi pezita rimwe chete, uye ndicho kukanganisa uku mitemo yekutevedzana yakagadzirwa kuti iigadzirise.
4Chiziviso chekukwanisa
Chikamu chepasi chiri pachena chemakiyi akagadzirwa chinoburitswa sechinhu chinogona kusuurwa.
NIP-01
chiitiko — mhando 30078, yakagadzirwa 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": [ ... ]
}
}
Zvinoreva kuti zvinogona kutsvagika (addressable) kuti relay inochengetedza chiitiko chimwe chete pamberi pe (kind, pubkey, d-tag), saka kudzokorora kupa nhau kunochinja nhau yakambopiwa yakanga iripo. Naizvozvo chimiro chimwe nechimwe chinoine rekurekodhwa rimwe chete riri panguva ino, izvo zvinoita kuti "kutsvaga kiyi yaAlice" kuve kutsvaga kwakajeka kwakakwana pane kuva nechedzidzo inoda kureverwa.
Saini ndiyo chibatidzo. Chiitiko ichi chakanyorwa nemavara echiziviso, saka chirevo chinoti “makanza uyu we ML-KEM unobatana ne npub iyi” chakasimba zvakafanana ne npub yacho pachacho. Kuchinja makanza emukana we encapsulation kunoda kuita mufananidzo we secp256k1 weunyengedzi. Munhu anogona kuita izvo haana kunetseka ne KEM.
Zviziviso zvinoperera. Mazuva manomwe NIP-40 Kuparara kwe nguva, kudzokororwa kuburitswa mazuva ose nemasvikiiti makumi maviri nemasere, kunochengetedza rekodi riri ruzivo pamusoro pemushandisi ari kuramba achishanda pane ruzivo rwemushandisi akambovepo asi asisashandi. Musoro wacho haupari nguva; ruzivo pamusoro parwo ndirwo runopera nguva chete.
Chiziviso chakashaikwa chinodudzwa zvakafanana nemuchidimbu chakange chisina kuuya nechiungano (key): vashandirwi vanotumira NIP-44 yacho isiri yedhipo, iyo mupinduro (login) wese anogona kuverenga, uye mutambi (client) anozotanga zvakare kushandisa post-quantum exchange pakuunganidza kwacho kunitotanga zvakare, kana akazozivisa zvakare. Saka kutosara wakanyarara kwenguva inodarika svondo rimwe chete kunokonzera kushaya kuchengetedzwa kwemashoko akatumirwa panguva iyoyo — mashoko acho anochengetedzwa nenzira yechinyakare pane kushandisa nzira inodzivirira quantum — uye hakuna chimwe chinorasika. Kutumirwa kwemashoko hakuvakwi, chinhu chinhasi chakagamuchirwa hachitadziswi kuverengwa, uye hapana chatinofanira kuita kana wadzoka.
Kusawirirana ikoko ndicho chikonzero chekupedza kwekushanda kwacho kwete nekuti zvakaitika ngozi. Pasina imwe, rekodi rinogara kupfuura chikoshi icho chinotaura nezvaro: chishandiso chakashambidzwa, chakagadziriswa zvakare, kana kuti midzi yacho yakatsiva inosiya murayiro unogara uriwo wekuchengetedza ruzivo pachikoshi chisingachashandiswi nemunhu, uye mameseji anotumwa acharasika pasina kuitika kwechikanganiso kumativi ose. Mazuva manomwe anogumisa nguva iyoyo, uye anobvumidza ma-relay kurasa rekodi acho pachavo pane kuvimba nevatengi kuti vazvione.
Field yemuchinjikadzi inotaura mafomati awo. Munda uri pk2...uye nhamba iyoyo inzvimbo yemuvimbano pane kuti ive yekushongedza: inozivisa mhando yemashoko (payload format) anogona kushandiswa nechii. Muverengi asina kuziva chikamu ichocho anopedzisa achiti “Nymchat client, hapana post-quantum key” uye anotuma NIP-44 yakajairika, inogona kuverengwa nekuvhura kwese. Iyo ndiyo nzira kwayo yekukanganisa, uye zvakakodzera kuzivisa semutemo kuti nhamba dzeformat dzinobuda kuti dzichengetedze izvi: kudai pane chikonzero chisingazivikanwi chinofanira kurema pakudzivirira, kwete pakuburitsa shoko. Key chamumwe munhu asina kukwanisa kushandisa chakoveka kupfuura kuti pasina key zvachose, nekuti shoko racho rinorasika pasina kuitika kwechikanganiso kune rimwe divi kana kune rimwe.
4.1 Kushaikwa kune zvazvinoreva, uye kune zvimero nhatu
Chinhu chidiki asi chakakosha: zviziviso zvinoitwa neclient rega rega reNymchat, kwete chete ave anokwanisa post-quantum, uye chikamu chekiyi hachisi chokumanikidzwa. Izvi zvinoita kuti pave nemagariro matatu akasiyana pane maviri:
| Zvaonekwa | Means | Tumira hunhu |
|---|---|---|
| Ziviso ine khesyi | Nymchat, inokwanisa post-quantum. | Chisanganiswa |
| Ziviso, hapana kiyi zvachose | Nymchat, yekare chete — post-quantum yakadzimwa, kana chishandiso chisati chabatanidzwa nemidzi yezivo. | NIP-17 yeChinyakare |
| Hapana chiziviso | Client asazivikanwi. Anogona kunge ari mushandisi weNostr kana weBitchat. | ChechiClassical, pamwe chete nechikumbatira chekukwanisa kushanda pamwe |
Kusanganisa mutsetse wetsatu newechina kwaizopa kurasikirwa kukuru. Chiziviso chisina kiyi chirevo chakasainidzwa chinoti murongi anoshandisa Nymchat, izvo zvinoita kuti nzira yekutumira isiye kupfura kweprotocol kwekufungidzira kwaizofanira kuwedzera kumunhu upi zvake ausina kukwanisa kuziva.
4.2 Chigadzirwa chisingakwanisi kuvhura midzi chinogara rakanyarara.
Ziviso inogona kuchinjwa: chiitiko chimwe chete chechimiro chimwe chete, chinyorwa chekupedzisira ndicho chinotora. Izvi ndizvo zvinoita kuti tsananguro yerekodhi imwe chete ishande, uye ndizvo zvinoita kuti chishandiso chisingabatanyi nemimwe zvakaipa kana chikaparidza. Chishandiso chakazivisa kiyi yacho yacho yakagadzira pachacho changaparadza rekodhi chaiyo uye chakaita kuti vashanyi vose vatange kushandisa kiyi imwe iyoyo iyo zvimwe zvishandiso zvisingagoni kuivhura.
Saka chishandiso chinoziva kuti midzi (root) iripo asi chisingakwanise kuivhura hachidamburi mashoko zvachose. Hachikanganisiki uye hachina kukiwa mune chirongwa ichi: chinoramba chichiverenga mameseji ose rine makirombo acho uye chinoramba chichitumira sezvakajairika, uku chichikurudzira mushandisi kuti achiunganidze. Kunyarara ndiko kwakakodzera kune chishandiso chisingakwanisi kutaura nezve kuzivikanwa kwacho.
5Kuzivikanwa uye sarudzo yekutumira
Vashandisi vanowana makiyi evamwe nenzira mbiri. Kugara wakanyoresa kunosanganisira vanhu uvo anotaurirana navo — kutaura kwakavhurika nemadhiramu emurongwa — kuitira kuti ziviso dzavo dzisvike semamiriro ezvinhu akajairika. Kumunhu waunganwa kwekupedzisira, kutsvaga kwekanguva kunoitwa panguva yekutumira, kune muganhu weSeconds 2.5; kana isina kuwanikwa mhinduro, shoko rinoenda nemazvo ekare, izvo ndizvo zvaitozvimba musati papindiswa post-quantum pane kuitika kwezvakaipa kwechitsva.
Mhinduro isiri yakanaka inochengetwa kwemaminitsi gumi pane kuchengetwa nekusingaperi. Mushandisi anobatanidza chishandiso chitsva, kana kuti anobva pakupinda nebrowser-extension achienda kune local key, anokwanisa kushandisa post-quantum pakati pekutaura, uye mhinduro inochengetwa nekusingaperi yekuti "kwete" yaizovabata pakushandisa classical encryption kusvika chiziviso ichocho chapera.
5.1 Nei pasina downgrade attack
Sarudzo yekuronga nzira inosvika pamubvunzo rimwe chete:
pq = (we hold a signed, unexpired ML-KEM key for this recipient)
Hapana kukurukurirana pamusoro peunyanzvi hwekuita zvinhu, hapana tsananguro yemaitiro anotsigirwa, uye hapana chikamu mushaki anogona kubvisa kuitira kuti ashandise nzira isina simba. Kuchichengetedza chiziviso. ndizvo kukurukura, uye zvakatsainwa. Nzira yekukundikana yekuziviso yakabviswa kana yakadziviswa ndeyekuti shoko rinoshanduka kuita chakare — nzira yaiva iripo musati pane chii chinobva pashandiswa uku — kwete kuti shoko rine mhando dzakasiyana risvitswa pasi kuita chinhu chinogona kufekerwa.
Kupindurirana kwayo zvakare kunoshanda uye zvine kukosha zvakanyanya: mushandisi anotumira hybrid chete kana ichine kiyi, uye kuva nekiyi uku ndiko kuratidza kuti uchiwana anokwanisa kudzorera zvakavharwa. Hapana mamiriro ezvinhu apo shoko rinotumirwa mushure me post-quantum kumunhu asingakwanisi kuriverenga.
6Kuvaka kwemhando dzakasiyana
Nymchat haitsivi NIP-44. Inozvakasira. Ciphertext yeNIP-44 isina kushandurwa ndiwo nhanzi yepasichigare, uye ML-KEM inopa AEAD yepasiregedzi yakatenderedza izvi:
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)
Zvinhu zvakavanzika zvose zvinotofanira kubudirira kubudiridzwa kuitira kuti shoko riverengwe: nzvimbo yepasichingana inoburitsa NIP-44 ciphertext chete, uye kuivhura kunoda ECDH yeparenda. Munhu anogona kushandisa masimba equantum anoparadza secp256k1 anowana kiyi yepakati asi achiri kusangana neML-KEM; kuaparadza ML-KEM kunobvisa nzvimbo yepasichingana asi inosiya NIP-44 yakasimba. Chinonzi chimwe nechimwe chinowana nzvimbo yacho:
kem_ssanopa machira ekunze chete. Hapana chinhu muchikamu chino chekugadzira chinobata mhedzisiro isina kugarwa ye ECDH, iyo inoshandiswa neChikamu 6.1.kem_ct,recip_kem_pkuye ma keyer ekuzivikanwa ose akabatidzwa semashoko anobatanidza, kuitira kuti nzvimbo yekunze iwanikwe nemashoko akanyorwa akagadzira iyo. Kusanganisa mharidzo yakavharwa pamanyorerwo emumwe mutumiri kunonzi hakushandi kwekuzivikanwa pane kunge kudzivhurwa.
Encapsulation inoitwa zvitsva pamashoko ose. ML-KEM key yewemugamuchiri inogara kwenguva refu, asi mashoko ose anotakura ciphertext yakazvimirira uye nekudaro yakazvimirira
kem_ss. Izvi ndizvo zvinoita kuti kubudisa nonce pane kuita kuti ive isina kurongeka zvive zvakavimbika:
ChaCha20-Poly1305
inoparadzwa nekushandisa zvakare (key, nonce) pair, uye pano key yacho pachacho itsva kumashoko ose, saka hapana pair inogona kudzokororwa.
6.1 Sei madenderedzera achisara akaparadzana
Mumwe nzira ndeyekusanganisa zvinhu zvinovanzika zvose kuva chave chimwe chekutaura uye kuipa iro kuNIP-44:
ck = HKDF-Extract(salt = "…",
IKM = ecdh_x || kem_ss || …) // do not do this
Chirongwa ichocho chakatsiga semagariro e cryptography. Chine dambudziko rimwe chete rekurongwa: chinoda
ecdh_x, x-coordinate isina kugadziriswa yeECDH output, sekey material — uye browser extension (NIP-07) kana musainiri ari kure (NIP-46) haidzoreri mutengo uyu. Inoita NIP-44 nekuda kwemudani uye inopa ciphertext, iyo ndiyo chinangwa chikuru chekuchengetedza kiyi panzvimbo isingasviki neapplication.
Kusanganisa zvakavanzika saka kunorasira pasi kupinda kwese kune vanochengetedza chifundo chezivo muna mutsainira, izvo zvinoreva vashandisi vanochengetedza zvakanyanya, uye hapana basa rinogona kuitwa pakugadzira chifundo rinogona kuchinja izvi. Kurongedza nekurasa kunobvisa kutenderana: NIP-44 inorarama yakazara uye inobuda pane zvose zvine chifundo chezivo, kusanganisira mutsainira, uku chikamu cheKEM chichibva kuchiyeuchidzo chekudzosa (recovery code) chine mushandisi nacho pachake. Kupinda muna mutsainira kuri kupa vashandisi vepost-quantum vanobatanidzwa zvakajairika kumativi maviri.
Mutengo ndewepamushando (bandwidth), uye hausi mudiki. Mashoko akavanzwa eML-KEM (ciphertext) ndi-1,088 bytes uye anogara pamushumo wega wega, akanyorwa nebase64url kuita characters 1,451; AEAD yakati kuti inowedzera Poly1305 tag inenge iri ma-16 bytes uye inokudza NIP-44 payload yatinoyambata nechikamu chimwe chete. Mushumo une characters 50 unokura kubva pa-176 bytes kusvika pa-1,712, uye mushumo une characters 2,000 unokura kubva pa-2,820 kusvika pa-5,238. Chitsidzo chacho ndechokuti mushumo wega wega unoda kusvika ma-1.5 KB, pasinei nekuti mushumo wakaderera zvakadii, izvi ndizvo zvinotambudzwa nekugadzira zvitsva (encapsulating afresh) nguva dzose panzvimbo pekushandisa chidoma chakabatsiranwa (shared secret).
6.2 Mapayiroudhi anozvitsanangura
The pq2. Prefix inoita kuti kuisa kushandiswa kuenderere mberi zvishoma nezvishoma: zvinotsanangura pachazvo, saka murambidzi anosarudza nzira yekuvhura nekutarisa zvakanyorwa (payload) pane kuvimba nechiyeuchidzo kana kuyeuka zvinoitwa nemumwe munhu. Muverengi asingazivi prefix anokundikana kuvhura payload iyoyo pane kuiverenga zvisizvo, uye mameseji akavharwa musati kuitwa post-quantum anoramba achiverengeka semeseji zvakajairika yeNIP-44 pasina kushandura.
ML-KEM decapsulation yakagadzirirwa kuti isambofamba zvisizvo: kana pakave neciphertext isina kurongeka zvakanaka, Fujisaki-Okamoto transform inopa chimwe chinhu chakavanzika chakafanana nepseudo-random pane kuburitsa error. Saka kiyi isiri iyo haibudiswi pachitarisiko cheKEM zvachose — inobuda semukwikwi weHMAC mukati meNIP-44, sezvinobuda kiyi yechiClassical isiri iyo. Vanoshandisa vanobata zvose zvakafanana, saka kukanganisa uku hakuna chimwe chinhu chinokudai dzose. Izvi ndizvo zvinoita kuti ruzha rwenzira rwomuChikamu 9.1 rwufambisike: mutengi anedza kiyi imwe neimwe akatevedzana uye anobvumira NIP-44 kuti iudze kuti ndeyipi yaive yakakodzera.
6.3 Mapadza maviri ekupakira chipo
A NIP-17 shoko rakavanzika uri NIP-59 kupakidza chipo: nyaya isina musayino, yakavharwa pasi pechìkeya cheuzivo hwemutumirira (mhando 13), kwayo kwakazopakupidzwa pasi pechìkeya chekushandisa kana kurega chakagadzirwa pameseji imwe neimwe (mhando 1059). Paunopinda (login) uine chìkeya cheuzivo zvakananga, Nymchat inosanganisa mhando mbiri idzi, imwe neimwe ichiine nzira yayo yekuzvivhara.
Login yemushandisi inowana nzvimbo yepasina chete. Chivharo chinoburitswa nemushandisi seNIP-44 yakajairika — application haionwi chete kiyi inochigadzira — saka haigoneki kuti iite hybridization panzvimbo iyoyo. Izvi hazvigadzirisi dambudziko rekupfura kuri kutaurwa: chivharo chinowanikwa chete kuburikidza ne 'wrap', uye 'wrap' ndicho chinochengetwa ne recorder. Muvengi ane traffic yakarekodhiwa anofanira kupinda ML-KEM kuti chivharo chionekwe kunyangwe kuti achidzvanyirira.
7Meseji dzechikwata uye kuwanikwa kusingazara
Shoko remapiripi harisi ciphertext imwe chete. Ndiwo plaintext imwe chete yakaparadzirwa kumunhu wese ari mugupo, kanguva kachikorekezwa nechivo cheML-KEM chemunhu iyeye. Munhu ari mugupo akaparadza chivo anowana hybrid wrap; ari asina kuaparadza anowana classical wrap.
Izvi zvinogadzira dambudziko rekuverenga rinoitwa nekukanganiswa kwekuvhura zvinhu pasina ungwaru. Kana masere kubva kune vanhu gumi akagamuchira kofi yehybrid, shoko rinenge riri kwete zvikamu masere muzana gumi dzakadzivirirwa. Muvengi anoda konyora imwe chete yechokwadi yemashoko akajeka iyo yakafanana muzvikamu zvose gumi, saka shoko rino rinosunungurwa chete kana zvese Kopi iri.
Naizvozvo Nymchat inoverenga kudzivirirwa kwemashoko pamashoko panguva yekuparadzira — nhamba iyi inozivikanwa chete panguva iyo mapeji ari kugadzirwa — uye chiziviso chinoti “chinodzivirirwa nequantum kune vamwe 8 kubva kuvanhu 10” pane kuti ipindure kuti shoko racho rakachengetedzwa. Pane kusingawanikwi nhamba, izvo zvakajairika kune... Ndakagamuchira shoko remapoka (murayiri chete ndiye anoverenga kudurura kwashoko), interface inotaura kuti kudzivirirwa kwakashama pane kwekuzara zvizere. Kudama kudzivirirwa kwakazara uchishandisa kopi yako chete kunenge kuri kutaura zvakanyanya nezvoshoko rose.
7.1 Zvinotaura chivharo
Chivharo chinotaura chokwadi pamusoro pe shoko, kwete nezve software yakautuma:
- Kuchengetedzeka kwakazara: kopyi imwe neimwe yemashoko aya asina kukiwa yakabuda ichiita hybrid.
- Zvimwe: dzimwe nhengo yemashoko emapoka yakatumirwa nenzira dzechinyakare. Yakatorwa yakaderera pane yakazara, nekuti kofi imwe chete yemashoko akachena (plaintext) inenge yakafanana nemamwe ose inokwanira mupikisani.
- Classical inoziviswa pachena pane kutaridzwa sehapana badge, nekuti kushaikwa kwechiziviso kunogona kukanganisa pakati pe "kasina kuchengetedzwa", "zvakakanganisika", uye kuti "iyi build haina chiyedzo ichi".
Mhedzisiro inonyorwa panguva shoko racho rakavharwa, pane kuti iongororwe zvakare kubva pane zvataurwa nemumwe munhu mushure mezvo. Mashoko akavanzwa aripo kare haagoni kuchengetedzwa zvakanaka kupfuura zvainge akachengetedzwa, uye chishandiso chinovandudza mashoko akare nekusimbiswa nechiziviso chitsva chaizvosimbisa zvinhu zvisizvo pamusoro pebytes ari pa-relay.
Mitemo yeguta iri pamusoro inowedzera pamusoro peizvi pane kuti ichitsiva izvi: shoko remuguta rinoitwa kuti ririndwe zvizere chete kana kuti konyora kwayo kwemunhu wese kwakamborindwa, uye shoko remuguta rwakagamuchirwa risina nhamba yekurindwa rinoratidza kuti rakashama zvishoma.
8Magwaro akanyorwa kwenyu
Zvinhu zvakawanda zvinoitwa nechirongwa chinoshandisa zvakavharwa zvichienderana nezviziviso zvemushandisi pachake: mamiriro ezvinhu akabatannya, cherechedzo yemataurirano, makiro emapoka, uye kuchengetedzwa kwemashoko. Izvi zvinobata zvakawanda nezve mushandisi kupfuura mashoko akati kuti anogona kuva nawo, saka kuzviisa sezvinhu zvakajairika kungavaidziita kuti zvive zvinhu zvakapfava zvakachengetedzwa, pasinei nekuti mashoko acho akachengetedzwa zvakadii. Anoshandisa nzira imwe chete yemanyorerwo akasanganiswa, yakavharirwa makiro emushandisi akabva pamutumbi wemakiro ake — nekusatendwa kumwe kune rimwe chete rakataurwa muChikamu 3.2, iyo nymchat-pq-root mupanda wacho rwega, usingagoni kuvharwa nechiperi chinogona kuumbwa nacho chete.
Zvinhu izvi ndizvo zvakakosha zvakanyanya mukugadzira. Chidimbu chemaererano kana mutsara wemakaghavu unogara panzvimbo imwe chete kwemakore akawanda, izvo ndizvo zvakanyanya zvatinobvunza munhu anotorera zvinhu iye zvino kuti azvinyangadza mberi — kupfuura mashoko mumwe chete, iwayo anogara kwekanguva pakufunga kwemushandisi.
Chigodi chimwe chinotonga mafomati pano pane kiyi. Chinyorwa chine kuraidzo yekuzvinyorera chinofanira kukwanisa kuverengwa na... zvese chishandiso paakaunti, saka chishandiso chimwe nechimwe chinonyatsotaura zvinogona kuvhura muna roster yaanozivisa nayo, uye akaunti inonyora chete zvose vanogona kuverenga. Kunyora chimwe chinhu chipi zvacho kungavhara chishandiso kubva muzvirongwa zvazvo — kukanganisa kusingataurwi kuri kudzivirirwa neChikamu 3.2 nenzira dzakasiyana, ichiuya kubva kune rimwe divi.
Chishandiso chinochengetedza zvinoratidza uyo asi chisina mvezu chinogona kusavhura chinhu chipisirwa nemakuva anobva kumvezu, kusanganisira nezvakarongwa zvaro. Izvi zvakaitwa nekuda kwechinangwa, kwete nekukanganisa, uye ndicho chikonzero nei Chidhanho 3.3 chine chiratidzo chekushambanidza pane kugadzira mvezu itsva: mvezu yechipiri haizovhura bhlobu iroro, inongopatsanura makuva ezvinoratidza uyo kuita maviri. Kusvikira mushandisi akaunganidza, chishandiso chinoramba chichishanda — chinoverenga zvinobvumidzwa nemakuva acho uye chinotuma nenzira dzakajairika.
Chigadzirwa chinotungamirira browser extension kana remote signer (NIP-46) hachina nsec yekubva nayo, asi chine recovery code, uye pasi pekuve nekunyorwa kwakadzama kweChikamu 6.1, izvo ndizvo zvose zvinoitirwa chikamu chepost-quantum: signer inoburitsa chikamu cheNIP-44 sezvazvo zvichigara zvichiita, uye client inochengetedza chikamu chekunze pachavo. Kupinda kwakadai ndiko kune mugove wezvakajairika kumadivi ose maviri.
9Kutenderera
The epoch Counter mukugadzira ndiyo inopa mukana wekushandura pasina zvimwe zvinhu zveki. Kukwidza counter iyi kunoburitsa kwezvikamu zveki zvitsva kubva kune imwe root imwe chete pamwe nekutsanangurwa kwakatsvaka zvakare; vamwe vanowana ki itsva kubva murekodhi inogona kushandurwa. Naizvozvo, kushandurwa uku hakuna kubvunza mushandisi kuti anyore chimwe chinhu zvakare: root inogadzirwa kamwe chete nekuzivikanwa uye epoch ndiyo inoshandura.
9.1 Nguva dzakare dzinochengetwa, uye hapana chinovandudzwa zvakare
Hapana chinotsandurwa kana kiyi ichinatswa. Mukoshi anogadzira mazano ekuti shoko rivhurwe kubva panguva yanhasi kusvika panguva inoti -3, saka shoko rakavharwa nguva pfupi dzisati kiyi inotsiva rinogona kuvhurwa nenguva kiyi yaishandiswa panguva yairi kutumirwa.
Ikapata iroro ndiyo inoita kuti kushandura maitiro (rotation) kuve kwakachengeteka: pasina iyo, kushandura maitiro kwese kwaizorasisa zvose zvanga zviri kutenderera. Chinhu chipi zvacho chakatopedza kuvharwa chinozorara chichigona kuverengwa kusvika pakuguma kweidentity, nekuti shoko rasingachavhuriki nemushandisi riri zvakaipisisa pane rine dziviriro isingagadziriswe kumashure (Chikamu 10.5).
10Zvisingachengetedzwe neizvi
Chinyorwa chinoburitsa chete zvinhu zvatinobatsirwa nezvazvo pane kuratidza mashandiro ezvigadzirwa hazvirevi kuti riri kutsanangura nzira inoshanda, uye kukudza zvakanyanya pfuma yekuchengetedzeka mune imwe nhambanidzo zvakaipira kupfupikisa kana kusazviita. Zvinotevera hazvisanganiswi nezvatinochengetedza nenzira ino.
10.1 Midzi i chivande chechipiri, uye kuirasa hakuna kudzoka.
Uyu ndiyo mutengo chaiyo wekurongeka uku. Chirevo chiri muChikamu 2 chinoti mushandisi anofanira kuva nechinhu chimwe chete chekuchengetedza chinogona kusazadziswa: nsec yega haina kugona kugadzirisa zvakare post-quantum key, nekuti chinangwa chikuru ndechekuti hapana chinhu chiri pachena kana chimwe chivande chinogona kuibvisa pachena. Kana hapana chigadzirwa chinochengeta root uye kana hapana wraps dzeChikamu 3.2 dzinogona kuvhurwa, zvinhu zvakachengetedzwa mune key yakabva ku-root hazvigoneki kuzvigadzirisa zvakare. Hapana escrow uye pane kusaita kuitira kuti pasave nevanhu vakuru vanogona kuichengetedza.
Kushandisa nzira yepamuviri ndiyo nzira yega, izvi zvine ukama hwakadzama kupfuura zvinoonekwa pakutanga. Mushandisi asingambotevedzera... nympq1… code anywhere ine kudokeza kwayo kune imwe chete chete, pachishandiso chimwe chete, uye kurasa chishandiso ichocho kunopedza mameseji ose epost-quantum, settings blob, nemugove wearchive wakanyorerwa kwayo. I...
nsec hazibatsiri; ndicho hunhu kuronga kwese kunotsigira pacho.
Nzira imwe neimwe yakavharwa inozodzoswa mushure inofanira kusvitsa mhosho imwe chete inofambiswa nenzira yemunhu. Munyengedzi anobata nzira iri nyore kupinda, saka chirongwa chinokosha sezvinobva kunzira yacho isina simba pakudzorerwa — semuenzaniso, shoko rekupinda rinochengeterwa mupfungwa, ingaita kuti zvose zvive neukosha hweshoko iroro, uye mutsara wakavharwa ndicho chinhu chaunochengeterwa munyengedzi anokohwa zvino achidudzira mushure anogona kuongorora zvinyoronyora asina kukurumidza.
10.2 Kuvimbiswa kwezivo, isiyana nekuchengetedzwa kwezvakavanzika
Saincha imwe neimwe muNostr ndiSchnorr pamusoro pe secp256k1, uye izvi hazvina kushandurwa pano. Muvengi ane komputa yequantum anogona kutorera saincha uye kuzvishupa semushandisi nenguva yacho. Zvinokunda nzira yekushandisa "hybrid key exchange" ndezvekuti "harvest-now-decrypt-later": muvengi anonyora mashoko nhasi haagoni kuaverenga mberi. Hazviiti kuti shoko risingagoni kutorerwa saincha kumuvengi ane komputa iyoyo kare. Kusiyana uku kuri kuitwa mumishandisirwo (applications) nekungwarira — chiratidzo chekuvhara (padlock) chinotaura nezvekuvimbika (authentication), chigare (shield) chinotaura nezvekuchengetedzwa kwemashoko (confidentiality), uye zvinhu izvi zvakasiyana nekuti shoko rinogona kuva nechimwe chete pasina chimwe.
Zvinobatawo zvatingogona kuva nezvivimbiso muChikamu chechina. Kusanganiswa kwe npub ne ML-KEM key kuri kuburikidza nesainiti ye secp256k1, saka muvengi anokwanisa kunyepetera anogona kusimutsira kiyi yake pachinzvimbo cheimwe. Kuchengetedza zvakavanzika kune muvengi ari kuuya hakuna kufanana nekuchengetedza chokwadi kune muvengi uyo.
10.3 Mashoko emashoko
Kupaka chipo kunovanza munhu anopa, munhu anogamuchira ari kudarika rimwe chete p tag, mhando yacho, uye
nyafu yenguva yemashoko ari mukati. Hachivanzi kuti chiitiko chiri kuvepo, ukuru hwacho, kana kuti rwakaitika rini
relay yakagamuchira. Kuongorora kwekufamba kwemashoko hakuziviswa nechikamu chekuronga uku.
10.4 Mambure isina konekura
Bluetooth mesh transport yeNymchat i purotokolo yakasiyana ine handshake yadzo pachayenyu, uye haisi yakabvautwa nebasa iri. Meseji inofamba ne mesh idzo imhando dzechinyakare.
10.5 Meseji dzatova kutumwa
Mashoko akanyoreswa nemaitiro ekare panguva iyo kumashure kana kumusoro kanga kusati asvika pamaikiyi epost-quantum anorarama semashoko ekare zvachose. Anopedza kuvapo uye haagoni kuvharwa zvakare. Kuchengetedzwa kunotanga pamashoko apo divi rose raiva nemakiyi epost-quantum, kwete panguva yekuti chishandiso ichi chakaiswa.
11Mazano akasiyana akatariswa
| Nzira | Sei kwete? |
|---|---|
| Gadzira key yepashure pequantum kubva paidentity key | Zvakadzonorerwa. Derivation iyoyo i-algorithm yakatenderwa pamusoro pe nsec, uye mupikisi we-quantum anokwanisa kuburitsa nsec kubva pane npub yakadhindwa, saka kuparadzwa kwechikamu checlassical kunounza kuparadzwa kwechikamu chepost-quantumwo zvakare. Yakagadzirisa dambudziko regovero rose riri mundondedzwa ino uye yakadzivirira pasina munhu. Chikamu 3.1. |
| Tumira root kune zvimwe zvishandiso zvemushandisi kuburikidza neNIP-44 | Zvakadzorwa nechimwe chikonzero chete zvakachena zvakasiyana. Root inotumirwa ichishandisa encryption chekare chete inogona kuwanikwa nemunhu wese akachengetedza shoko iroro akazopaza kiyi yacho kumashure, uyo ndiye mupikisani yaive yakagadzirirwa kuti root imire. |
| Mapadza emakiyi eML-KEM akagadzirwa pachake pane mudziyo wega wega | Zvakaramba. Zviridzwa zvichaiva nemaki akasiyana ekubvisa, uye kuziviswa kumwe chete kune zita rimwe chete hakukwanisi kutakura maki ose. Vamwe vashandisi vachashandisa maki akaparurwa pakupedzisira, uye chimwe chidoma chese chaiyo haizokwanisi kuverenga zvabuda. Muzizi rimwe chete kwemazita acho, rinofamba nenzira dzeChikamu 3.2, ndicho chinodzivirira izvi. |
| Fukidza root pasi pePIN | Zvakadzoswa. PIN ine nhamba ina iri mamita (bits) anoda kusvika gumi nematatu pamberi peanobvunza asiri paonline ane mutsara wakavharwa (wrapped row). Kuipa iye pamwe chete nemapfambiro maviri e256-bit kwaizokanganisa kukosha kwechivharo chiri nyore kupinda (weakest wrap). |
| Wedzera npub kuti iine maki miviri yese. | 1,184 bytes hachisi chiziviso chinogona kugoverwa, uye zvichaparadza kududza kwebhanzi kune maNostr client ose aripo akagadzirwa se 32 bytes. |
| Basa redirectory rakakosha | Anodzosa masimba ayo network yakagadzirwa kuti azvisarudze. Ani zvake anopindura kutsvaga ndiye anozvisarudza kuti ndiani anogona kuverenga shoko. |
| Isai jecha kumashoko acho mumwe nemumwe. | Hakugadzirisi chinhu: mutumira anoda wemurambiri key musati meseji yekutanga, izvo ndizvo zviri kuitika chaizvo pasina meseji rakambobuda kare rekuchitakura. |
| Kukurukurirana kwekugona mukati memugwagwa | Inovaka nzvimbo yekuderedza kuchengetedzeka. Muvengi anokwanisa kubvisa chiratidzo chesimba anomanikidza nzira yekare. |
| Post-quantum chete, hapana chikamu checlassical | Anosiya makore akawanda ekunyatsoongorora secp256k1 kuti awane chishandiso chitsva kwazvo. Chimwe chinobatana chinokundikana chete kana kuti zvose kukundikana. |
12Kuenzana kwekushandiswa
Nymchat inopa mhando mbiri dzakasiyana dzezvakagadzirwa izvi — imwe muJavaScript yehushumiri hwewebhu, imwe muDart yehushumiri hwefoni, kusanganisira ML-KEM-768 yakagadzirwa kubva pakutanga. Mhando mbiri dzechinhu chimwe chete kazhinji dzinogona kuva dambudziko, saka dzinoshandiswa kutarisa kuti dzinofambidzana here pane kuvimba kuti dzichafanana.
Magadzirirwo eDart ML-KEM akatsinhirwa neyakatarwa
NIST ACVP
miedzo yezvimalayidzo zvakazivikanwa ye ML-KEM-768 (ML-KEM-*-FIPS203) — nzvimbo 25 dzekugadzira maki (key-generation), 25 dzekuvhara (encapsulation) uye 10 dzekuvhura (decapsulation) cases, dzinovhura sezvinhu zvakazvimirira. Iyi ndiyo mivhekitori inoburitswa neNIST kuitira kuongorora kushanda kwezviitiko (implementation), saka kupfuura kwazvo kuri kuratidza kuti port yakakodzera, kwete kupfuura kuri kuratidza chete kuti vazhinji (clients) vari kubvumirana nemumwe nemumwe. Pamusoro pezvo, nzvimbo yakatarwa yemivhekitori yekuedza — kutsvaga mbeu (seed derivation), kuvhara (encapsulation), mafomati emashoko ese, uye mapakidzi akazara — inobva pane JavaScript reference uye inochengetwa nekuongororwa nemapurogiramu ekuedza ese maviri. Chivande chikuru (root secret) chinowedzera izvozvo pane kuichinja: kubva kuchiisa (root to seed), kubva kuchiisa (root to keypair), chidhori chevanhu (public fingerprint) chechikuru ichoichi, uye maki akabva, nonce nemashoko akabatana emapurogiramu ekunze ndemivhekitori yavo pachavo, kuitira kuti vazhinji vasakanganisana pamusoro pezvinenge zviri
nympq1… Kodhi inoreva kana nezve mabhayiti ambonzi akavharirwa nayo shoko. Kusiyana pakati pemaitiro emumwe nemumwe kunotadzisa kugadzirwa kwezvirongwa pane kuburitsa shoko iripi iro rimwe client risingakwanisi kuvhura.
Chidimbu chemunwe chinokosha kuzotaura pakati pezvinhu izvi. Ndicho chinotaura chishandiso kuti “uuyu ndiyo midzi yandakabata” kubva pakuti “uuyu ndiye mumwe”, uye muvhiri asingakwanisi kutevedzera chidimbu chemunwe chemumwe muvhiri ngaaona chinyorwa chakanaka chinongoitika sechisipo — uye ndokubva apa, achitevedzera Chikamu 3.3, agadzira midzi yechipiri uye akaparadzanisa kuzivikanwa. Ichi chidirivhu nekuda kwezvikonzero izvi chaizvo.
Nymchat im... Makodhi akavhurika pasi peAGPL-3.0. Chikamu chikuru checryptography chakatsanangurwa pano ndicho
js/nym-crypto.js uye js/modules/pq.js muna web client, uye
lib/core/crypto/ na- lib/features/identity/pq_registry.dart mu ma mobile clients.
Kuti uone tsananguro pfupi isina unyanzvi, tarisa... Peji re ruzivo pamusoro pekufihwa kwezvinyorwa kunodzivirira kwantamu.