Pukapuka hangarau a Nymchat
Whakaae Kī Mā muri i te Quantum i roto i a Nymchat
Whakawhitiwhiti i ngā kī tūmatanu ML-KEM-768 mā Nostr me te kore he rārangi pūtea rānei he rārangi tahua rānei, me te whakatō i a rātou mai i tētahi mea huna e kore e whakaaturia e tētahi uara tūmatanu.
Ko te whakauru i tētahi whakawhiti kī mō te wā rārangi rārangi (post-quantum) ki tētahi rorohiko whakawhiti kōrero, ehara i te raru rārangi kōrero i te iti o te wā. Kua whakatau ngā tūāpapa matua, ā, kei te watea ngā kete kōrero. Ko te mea uaua ko te mea kei te hiahia ināianei a ia kaipanuku ki tētahi... tua kī tūmatanui, ā, he pūmanawa kore whakawhanake i runga i te mea kotahi e kore e kitea he wāhi mārama hei tukuna ai i tēnā. He whakamāramatanga tēnei pepa mō te pātuitanga a Nymchat ki tērā — mai i hea te kī tuarua e puta mai ai, me pēhea e tae atu ai ki te hunga e hiahia ana ki tēnā, me he aha te mea e taea e te mata e whakatau ai mō te hua — ā, i te waahanga whakamutunga, he aha te mea kāore e tiakina e tērā hua.
He mihini tenei wharangi kia pai ai. Ko te reo Ingarihi taketake te putanga e tika ana.
1Te raru
Ngā karere tūmataiti a Nostr e whakarongoia ana ki te NIP-44, e whai ana i ngā waahanga rua e taea te wehe. Ko te waahanga e whakawhatawhata ai i te tuhinga mātua — he ChaCha20 me tētahi HMAC-SHA256 tag, i whakahaerehia mā HKDF (RFC 5869) — kāore e whakahēria i te mea nui e te rorohiko quantum; he whakaterotanga pūtake-tau te utu o te tukanga a Grover ki te kī tōpū, ā, ka taea e te 256 bits te mau i tēnā. Ko te haurua e whakaae ki runga i te kī ko te elliptic-curve Diffie-Hellman i runga i secp256k1, ā, ka whakatika te algorithm a Shor i te discrete logarithm i te wā tonu. Mā te hokinga mai o tētahi kī tūmataiti i tōna kī mātāmua, ka whakaaturia i muri i te wā katoa ngā huna tahi katoa i hangaia e tau kī i mua.
Kāore ko te raru ka puta mai i tēnei e tuku i mua kia puta ai tētahi pūrere pēnei. Ko te kaiwhakawhiwhi kōrero e whai pūmanawa rārangi kōrero e taea te tuhituhi i te kōtuhinga i tēnei rā, ā, ka taea te whakakakaha i a ia i te wā ka puta mai ai te pūmanawa. Ko ngā mea katoa ka tuku i tēnei wā, e whai take ana i te wā e whakatika ana, kua raru atu rānei. Koinei te whakangao motuhake e whakangawhāwai ana te whakawhiti kōtuhinga i muri i te quantum, ā, koinei te take e kore e taea te tatari ki te hanga te pūrere.
1.1 Te pātai e whakautu ana tēnei pepa
He mea mārama te whakatika i tēnei āhua: whakamahia he mahinga whakawhiti kī i muri i te quantum hei whakakotahi ki te whakawhiti kī i mua, kia me te mea me whakakore e te kaiwhakawhiti tēnei katoa kia taea te pānui i tētahi mea. Kei te whakamahia e Nymchat te ML-KEM-768 (FIPS 203). Ka puta mai tonu he raru mō te whakarāhui:
Hei tuku karere ki a Alice i tenei rā, me he mea kotahi tāu e hiahia ana: tana npub. Ki te tāpiri he whakawhiti post-quantum, me he mea tuarua tāu e hiahia ana — tana ML-KEM public key. Kei hea e noho ana taua tuaka, ā, me pēhea te whiwhi i a ia i mua i te tuku i tētahi mea ki a ia?
He mea motuhake te npub. Ka taea te tuhi i runga i te pepa, te pānui i te reo, te mātāhau rānei i te mata, ā, koia katoa e hiahia ana te tangata kia whakaoho ki a koe. He 1,184 bytes te kī mātua ML-KEM-768. Kāore e taea te pānui i te reo, e kore e taea te whakauru i roto i te ingoa whakamahia, ā, e kore e tika te whakauru i roto i tētahi QR code ki te taha o tētahi tohu e 32 bytes noa iho ana.
Ko te nui te wāhanga ngāwari. Ko te wāhanga kaha ake ko te kawe a te kī tuarua i ngā raru e toru motuhake, ā ko te toenga o tēnei pepa he whakautu nui ki aua raru:
- Ka taea te whakakapi. Ko te kī e kore e taea te pānui i te titiro tere, ko te momo mea e whakakapi ai te kaiwhakawāwā ki tōna ake. Ka tūhono i te waahanga 4 ki te tautuhinga mā te tāhiti, e whakatau ana i tēnei i te wā tonu.
- Me whai whakaae i roto i ngā taputapu katoa o te kaiwhanonga. Me whai akauniti tō tahi i runga i te waea me te rorohiko e whakaaturia ana i te kī tō tahi, keiia, ka kore e taea te whakatuwhera i ngā karere kapi ki tētahi ki tētahi. Ka whakatakoto i tēnei te Wāhanga 3.2.
- Ka taea te ngaro. Ka whakaaturia anō te tuhinga matua huri noa i tētahi mea huna, nō reira ko taua mea huna anake e pūmau ai — ā, nā te hanganga, kāore he mea atu e taea e te mea atu e whakaora anō i a ia. E kī ana mārama te Wāhanga 10.1 i te utu o taua mea, nō te mea, ehara i te mea kua whakatau, engari kua utu.
2Ngā rāhui o te hoahoa
E whā ngā whakarāhui i hanga i te whakautu, ā, i whakakore i te nui o ngā hoahoa mārama i mua i te tuhituhi i tētahi kōtipe.
- Kia iti rawa ngā muna e taea ana. Kei te whai ngā kaiwhakamahi Nostr i tētahi kōrero huna noa iho, ko te nsec. Ko ia kōrero huna anō he huarahi anō hei ngaro ai tō hītori, ā, ko tētahi tangata e mōhiotia ana te tiaki i te nsec, ka kore e mōhiotia te tiaki i tētahi mea anō. E whakaatu ana te Wāhanga 3.1 e kore e taea te whakatutuki tēnei i te wā tonu — ko te kī post-quantum i puta mai i te nsec e kore e whai i te tiaki post-quantum katoa rānei — nō reira ko te hoahoa ka whakamahi i tētahi kōrero huna noa iho, kau anō: he wāhanga kī kotahi, ka hangaia mo te hātepe tētahi, ka whakaaturia i te āhua e rite ana ki te nsec me i te wāhi e rite ana, kia mōhiotia ai e te tangata e mōhiotia ana te tiaki i te tētahi, te tiaki i te tērā. He pono te Wāhanga 10.1 mō te utu ka puta ake ai i tērā.
- Kāore he mana. Kāore he tūāpapa e taea te whakapono ki te kī i te aha te kī e noho ana ki hea. Ko tētahi tūāpapa pēnei ka huri hei wāhi ka taea ai te huri i ngā pānui.
- Ngā tapono maha, he tohu kotahi. He tohu Nostr e whakamahia ana i ngā pūmanawa whakauru maha i te wā kotahi. Me puta he rite tonu ngā raunui kī katoa i runga i a rātou katoa, ā, me kore e taea te pānui i ngā huarahi e kawe ana i te mea ki reira e te kaimahi kino e tiaki ana te tūtohu i a ia.
- Kāore he whakawhitiwhiti kōrero. Ko te whakawhitiwhiti katoa i roto i te huarahi kotahi mō te pātai “he aha ngā rārangi tūtohu e taea e koe?” he wāhi mā te kaiwhakawewe e taea ai te whakakore kia whakahau ai i te rārangi māmā ake. Me kore he mea hei whakaiti i te taumata i roto i te hoahoa.
3He pūtake huna motuhake
Ko te whakatau matua ko te kī decapsulation ML-KEM i whakatōtia mai i te rawa kī e kore e whakaaturia e tētahi uara tūmatanui. Ka whiwhi ia identity i tētahi tūturu matua kotahi, i hangaia kotahi wānoa:
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)
Ka whakaaturia te pūtake ki te kaiwhakamahi pēnei i te nsec: bech32 me te tīpako e taea e te tangata te pānui
nympq, ā, ko te kōrero ko nympq1…, e whakaaturia ana i te taha o te nsec i te mata tohu i raro i te mahi whakaaturia pēnei tonu, i kōpiritia i te whakahaere pēnei tonu, kāore e tuhituhi ki te rārangi, ā, kāore e tuku ana ki tētahi wāhi i te rārangi mā. Ehara i te kupu huna, ā, ehara i te whakauru rārangi. He taonga matua tēnei ka taea e te kaiwhakamahi te tiaki, e rite tonu ana ki te nsec.
Ko te salt he mea whakarite i te mea e hiahia ana kia motuhake te wāhanga, kia kore ai he mea huna atu e taea ai te whakatipu i te pātuhi rāngai e rite ana. Ko te epoch Whakaoho i te huringa te kōpaka (Wāhanga 9).
3.1 He aha te take e kore ai e taea te whai mai i te kī mai i te kī tuakiri
Ko te hoahoa e kitea ana ko te whakatō i te keypair i te mea huna kua whai ana te kaiwhakamahi:
seed = HKDF(salt = "…", IKM = nsec) // do not do this
He mea hiahia tēnei nō ngā take e whā, he tika katoa ēnei: kāore he mea hou hei tautoko, nō te mea ko te nsec tonu te tautoko; e whakaae ana ngā taputapu katoa nā te hanganga, kāore he tikanga whakakotahi e hapa ai; he whakatau e taea te whakahoki i tētahi mō ia tohu e mārama ana he tika, nō te mea kāore e taea te whakatau rerekē o ngā taputapu mō te kī; ā, kei te whai te kī i mua i te whakaputa, kia taea ai e te kaiwhakamahi te pupuri i tētahi mea mō ia ia i te wā tuatahi.
He kore take katoa ngā hua e whā, mō tētahi take. Ko te algoritimu a Shor i whakamahia ki tētahi npub kua whakaputa ka puta mai te nsec. Ko te whakatupu i te seed he algoritimu mā te katoa i runga i te nsec. Nō reira, ko te kaiwhakawhiti e whakatau ana i te waahanga whakamahinga noa, ka whakaora kembali i te waahanga post-quantum mā te whakamahi i te HKDF e whakamahia ana e te katoa. Ki te 'harvest-now-decrypt-later' — te tūponotanga kotahi i whai take ai tēnei pūmanawa hei whakakore — he kore te tāpaetanga o te tuaka i whai ake i tēnei huarahi.
Me puta mai te kī decapsulation o te ML-KEM i te entropy e kore e taea te whakatupu mai i te nsec, ā, e kore hoki i tuku i raro i te whakamātau tūārangi noa iho.
Ko te waahanga tuarua o taua ture e mahi ana i te mahi e rite ana ki te tuatahi. Ko tētahi huna i hangaia motuhake, ka whakakotahi i waenga i ngā taputapu a te kaiwhakamahi i roto i tētahi karere NIP-44 noa iho, he raru pēnei noa iho i te raru o mua, he nekehanga anō i whai ake ai: ka tuhituhi tētahi kaiwhakawā i taua karere i tenei rā, ka whakahoki i tana kī māori i muri ake nei, ka ngaro te taketake. Ko tēnā te take e pēnei ai ngā ara i te wāhanga e whai ake nei, ā, ko te take e kore ai he tētahi o ngā ara he “tuku ki tō taputapu kē.”
3.2 Te whakawhiti i te root ki ngā taputapu atu a te kaiwhakamahi
Te rāhui 3 o te Wāhanga 2 — he tohu kotahi, he taputapu maha — e kore e taea te whakatutuki mā te pāngarau i konei, nō te mea ko te take matua ko te kī ehara i te mahi nō tētahi mea kua rānei tūhonatia e ngā taputapu. Me whakatutuki mā te whakawhiti i te mea, ā, he kotahi te huarahi: ka whakawhiti te kaiwhakamahi i te nympq1… tuhituhi kōti i a rātou anā.
E whakaaturia ana te pūtake hei nympq1… ki te taha o te nsec, ā, ka whakatau te taputapu tuarua i te mea kua whakauru ki te panepane kotahi. Koia te katoa o te mahere mahi. Ko te taputapu kāore i whiwhi i te kōtihi, e kore e taea te whai wāhi, e whakaaturia ana i te Wāhanga 4.2.
He tūāpapa whakatau te whakawhiti ā-ringa, kaua he takepū tuatahi. Ko te ture i te Wāhanga 3.1 e kī ana e kore e taea te rere i raro i te whakamātao mā te tikanga tawhito anake te pūtake, ā ko ia rāngai e waiho ana i tēnei hei mea ā-tūtohu — te whakakotahi i te mea mā te relay, te kapi i te mea ki te tāpae hātepe — ka whakakāriki i tērā mea tonu. Ko te takepū ka mahia e te kaiwhakamahi ko te take mō te tika o te tiaki.
Te hanganga ka waiho i te wā mō tētahi huarahi whakakāpiti: ka taea e tētahi pūkete te whakatū i tētahi rārangi whakakāpiti, ko ia tētahi AEAD blob i raro i tētahi kī ka taea e te kaiwhakamahi te whakahoki ki tētahi kēti rerekē — hei tauira, he pūtake PRF passkey. Kāore he mea e whakatū ana i tēnei rā, ā, kia puta mai tētahi mea, ko te nympq1… Ko te kōti te huarahi kotahi noa iho ki te atu. E whakaatu ana te Wāhanga 10.1 i te utu o tēnā.
Ko te tuhi anake e noho ana i tōna ake rāngai whakarite, nymchat-pq-root, ā, ka whakakotahi pēnei i ngā rōpū kē. Ahakoa kāore he whāriki e whai ake ana, ka mahia ana te mahi e hiahiatia ana: ko tōna tūnga te ara e mōhio ai tētahi taputapu tuarua, kua whai pūtake tēnei whakaaturanga kua oti, ko tēnei hoki te mea e whakakore ai i te hanga i tētahi tuatahi (Te Wāhanga 3.3).
Te nymchat-pq-root rāngai me kaore e whakakauatiatia ana ki te kī ML-KEM i puta mai i te pūtake. Kei taua rārangi te kopitanga kotahi noa o te pūtake, nō reira, te whakapuāia i raro i te kī i puta mai i te pūtake he kōnā kei te kī i roto i te pātaka: kāore he taputapu e taea te whakatuwhera i tēnā, tae atu ki te taputapu i tuhia ai. He whakapuāia tēnei i te ara mātua — NIP-44 ki a ia anake — pehea rānei, kāore i te mea. Koinei te wāhi kotahi e whakaae ana te hoahoa ki te tiaki mātua noa iho, ā, ka taea tēnei: kāore he pūtake kei taua rārangi i tēnei rā, ko te mea kei te pūtake anake he kei te watea tētahi.
Ko ngā wāhanga tautuhing katoa e tuatahi atu nei, ka taea, me whakamahi hoki te kī i puta mai i te pūtake. Koinei te waahanga motuhake kotahi, ā, he waahanga motuhake e pā ana ki te huringa, kaua e pā ana ki te kaha.
3.3 Te whakatupu me te whakahāngai
I te tīmata, e pupuri ana i tētahi tohu mau tonu, ka mahi te client i tenei taurangi:
- Rapua tētahi e tū ana
nymchat-pq-roottūtohu. - Kua kitea te pūkete, ā ka taea e tēnei taputapu te whakakā i a ia. — kia whakamahi, me te whakatau i tēnei tautuhinga hei mea e taea ana i muri i te ao quantum.
- Kua kitea te rēkoti, ā, kāore e taea e tēnei pūrere te whakawhaki i tēnei. — kaua e hanga he pūtake hou, ā, kaua e whakaputa i tētahi pānui katoa. Whakaohooho i te kaiwhakamahi kia hono tēnei taputapu mā te whakauru i te
nympq1…kōti nā tētahi taputapu kua whai i tēnā. - Kāore he rēkoti — hangā i te pūtake, whakaputa i te rēkoti, pānui, ā, whakaaturia te
nympq1…tuku te kōti ki te kaiwhakamahi kotahi wā kia taea e rātou te tiaki.
Ko te kaupapa tuatoru (Step 3) te kaupapa e ngāwari ana te hapa i ai, ā, koia te take i tuhia ai te whakaritenga, kaua e waiho noa ki ngā whakatinana katoa. Ko ngā taputapu rua e whakatau ana ki te hanga tūāpapa, ka puta mai ngā tūāpapa rua e kore e hono ana i raro i te tūtohu kotahi, ā, koia te raru e whai ake ana te whakaritenga hei whakaweto i ai.
4Te pānui pūkenga
Ko te taha mārā o te pāremata kī whakatupu e whakaputaia ana hei mea taea te whakatūinga.
NIP-01
hikotanga — reanga 30078, kua tāpiritia 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": [ ... ]
}
}
Ko te "addressable" ka whakarite a te relay i tētahi whakapuaki mō ia (kind, pubkey, d-tag), nā reira ko te whakaputa anō ka whakakapi i te whakapuaki o mua. Ko te take, he rēkoti kotahi tonu te auaha o ia tohu, nā reira ko te "rapu i te kī a Alice" he pānui kotahi e kore e hē, kaua ko tētahi rārangi hei whakarite.
Ko te siniata te tūhono. Ka tāpiritia te tohu e te kī tohu, nō reira ko te whakatau "ko tēnei kī ML-KEM tēnei npub e pā ana ki" he kaha katoa i te npub anake. Ko te whakakapi i tētahi kī pūkohu rerekē me te hanga i tētahi tāpiritanga secp256k1 tūmataiti. Ko te kaiwhakawhiwhinga e taea ai tērā, e kore e hiahia kia whai rānei i te KEM.
Ka mutu ngā pānui. He whitu ngā rā NIP-40 Te whakamutunga, e whakaputa anō ana i ia 24 hau, ka mau ai te rēkōti hei whakatau mō te kaiwhakamahi e rere ana tonu, kaua ko tētahi kua mutu noa iho. Kāore te pūtake anake e mutunga ana; ko te whakatau mō ia anake e mutunga ana.
Ko te whakatapu kua kōpaka e pānuiā ana tēnei hei mea kore i rānei i whakatūpato i tētahi kaupapa matua: ka tuku i te NIP-44 mōrearea e te hoa, e taea e ia whakauru katoa te pānui, ā, ka tīmata anō te kōrerorero pūtaiao i muri i te quantum i te hononga ā-mārama o te rāta, i te wā e whakatakoto anō ai ia. Nō reira, te noho māhorahora i te wā ake i te wiki e ngaro ai te tiaki mō ngā karere i tuku i te wā o te gap — he rārangi mōrearea mō te wā o mua rātou i te mea, kaua i te rārangi e kore e taea e te pūtaiao quantum — ā, kāore he mea anō e ngaro ana. Kāore he pānga ki te tuku, e kore he mea i tae atu e kore e taea te pānui, ā, kāore he mahi e hiahiatia ana i te hokinga mai.
Ko tēnā kore e taurite ana te take mō te whakamutunga, kaua ko te hapa o tēnā mea. Ki te kore tētahi, ka kaha ake te noa o te rārangi tuhi i te kī e whakaaturia ana e ia: he taputapu kua muku, kua whakaoho anō, rānei kua huri tōna tūāpapa, ka waiho tētahi tohutohu hei whakauru ki tētahi kī kāore kei te kīanga a tētahi anō, ā, ka ngaro ngā kaupapa i aia i raro i tēnā, ā, kāore he hapa i tētahi taha. E whitu ngā rā e whānui ana i tērā wā, ā, ka taea e ngā whakarerere te tuku i te rārangi tuhi katoa, kaua ko te whakangapakia ki ngā kaiwhakamahi kia kite ai rātou.
E tohu ana te nama matua i tōna hanganga. Ko te papa... pk2, ā, ko te tau he wāhanga o te whakaaetanga, kaua he taunaha noa: ka whakaatu ia i te auaha o te pūtake e taea te whakamahi ai te tuaka. Ko te kaipānui kāore e mōhio ki te wāhi e whakakāti ana i te mea ko “Nymchat client, kāore he tuaka i muri i te quantum” ā, ka tuku i te NIP-44 mōno, e taea e tētahi atu iho katoa te pānui. Koia te huarahi tika mō te raru, ā, he pai te whakatakoto hei kaupapa: ko te whāinga o te taurangi auaha ko te whakamanahona: ko te whakatau i te pūmanawa kāore e mōhio ana me whakaiti i te tiaki, kaua i te tuku i te rongo. He kino ake te tuaka kāore e taea te whakamahi e te hoa i te kore rānei i te tuaka, nō te mea ka ngaro te rongo ka puta mai, ā, kāore he hapa i tētahi taha.
4.1 He mea whai take te korenga, ā, he uara e toru.
He kōrero iti noa engari he mea nui tēnei: ka whakatakoto te pānui e ia Nymchat client katoa, ehara i te mea ko ngā mea e taea te post-quantum noa iho, ā, he mea kōwhiringa te kōrero matua. Ka puta ai he wāhanga e toru e taea te mōhio, ehara i te rua:
| Kua kitea | Tikanga | Tuku tikanga |
|---|---|---|
| Pānui me te kī | Nymchat, he pūmanawa mō te wā muri i te quantum | Hapapa |
| Pānui, kāore he kī i te mea katoa | Nymchat, he mea ā-matua noa — kua whakakore i te ao pūmanawa-mōrearea, he taputapu rānei kāore anō i hono ki te pūtake o te tohu. | Kāpakaliti NIP-17 |
| Kāore he pānui | Kāore e mōhioa te kaiwhaiwhai. He kaiwhaiwhai Nostr rānei Bitchat rānei pea. | Tawhito, me te kōpaki whakakotahitanga. |
Ko te whakakotahi i te rārangi tuatoru ki te rārangi tuawhā he ngāraratanga tūturu. Ko te whakatauakorero kore kī he whakatautaki kua whaiahi e whakaatu ana ko te kai tono e whakahaere ana i te Nymchat, e taea ai e te huarahi tuku te whakakore i te huri rārangataki i waenga i ngā tikanga rerekē e meitei ake ai ia ki tētahi tangata kāore e taea te mōhio.
4.2 Ka noho mārie tētahi taputapu e kore e taea te whakatuwhera i te pūtake.
He mea whakakapi te whāhitiwhiti: he taha kotahi mō ia tohu, ko te tuhituhi hou katoa e kaha ana. Koia tēnā te mea e mahi ai te hoahoa rēkoti kotahi, ā, koia hoki te mea e whai ai i te raru tētahi taputapu kāore i hono i te wā e whakaputa ana ia. Ka riro atu te rēkoti pono mā te taputapu i whāhitiwhiti i te kī i hangaia mā tōna akea, ā, ka whakatū i ngā hoa katoa ki te huna i te rārangi i raro i te kī e kore e taea e ngā taputapu atu te whakatuwhera.
Nā reira, he pūrere e mōhio ana he pūtake kei te watea engari e kore e taea te whakatuwhera i a ia, e kore e whakaputa i tētahi pānui i te mea katoa. Ehara i te mea kua pakaru, ā, ehara i te mea kua tūmomo i te whakahaere: ka pānui tonu ia i ia rongo e whai ana i ngā kī, ā, ka tukuna tonu i te āhua mātua, i te wā e whakaohooho ana i te kaiwhakamahi kia hono i a ia. Ko te kore kōrero te tikanga tika mō tētahi pūrere e kore e taea te kōrero mō te tohu rangatira.
5Te Whakamātau me te whakatau mō te tuku
Ka mōhio te hunga kaiwhakamahi ki ngā tātai matua o ngā hoa mā ngā huarahi e rua. He rārangi tūtohu tūmau te mea e whai ana i te hunga e kōrero ana te kaiwhakamahi me a rātou — ngā kōrerorero tuwhera me ngā mema o te rōpū — kia tae mai ai ā rātou whakatau hei tūponotanga noa iho. Mō te hoa e tūtohu i te wā tuatahi, ka mahia he pātai kotahi i te wā tuku, e rārangi ana i te 2.5 sekona; mehemea kāore e whakatika, ka huri te karere ki te āhua tawhito, ko te mahi i whai ake i mua i te whakauru i te post-quantum, kaua he rerekētanga hē hou.
Ka whakatūpato i te mahara he whakataunga "kāore" mō te tekau i roto i te miniti, kaua e noho mō te wā katoa. Ka taea te whakamahi i te mātai-quantum i roto i te kōrerorero tētahi kaiwhakamahi ka hono i tētahi taputapu hou, mēnā rānei ka neke atu i te rārangi ingoa browser-extension ki te tuhinga matua, ā, ka mau tonu rātou ki te whakamahinga ihi mēnā ka whakatūpato i te mahara he "kāore" mō te wā katoa o te whakaputanga.
5.1 He aha te kore e puta ai he whakaeke whakamoremongatia
Ka whakaiti te whakatau whakatere ki tētahi pātai kotahi:
pq = (we hold a signed, unexpired ML-KEM key for this recipient)
Kāore he whakahāngā pūkore, kāore he rārangi mō ngā pūmanawa e tautokohia ana, ā, kāore he wāhi ka taea e te kaiwhakararu te whakakorea kia whakahau ai ki tētahi huarahi iti ake te kaha. Kei te pupuri i te whakatauako. ko te whakatauako, ā, kua tāpiri te tohu. Ko te ara rerekē mō te whakatauako i huriia rānei i whakararangitia, ko te rere o te karere ki te huarahi tawhito — te tūāpapa i mua i tenei taonga — kaua ko te karere huriwhiri e hurihia hei mea e taea te whakahehe.
He tika hoki te whakakāinga, ā, he mea nui ake: ka tuku te kaiwhakawhiti i te huriwhiri. anake Inā kei te kī, ā ko te mau i te kī he tohu kei te taea e te kaiunu te whakakore i te pūtea. Kāore he wā e tuku ai he kōrero mā muri i te quantum ki tētahi tangata e kore e taea e ia te pānui i te kōrero.
6Te hanganga hapa-rere
Kāore e whakakapi i te NIP-44 a Nymchat. Ka whakawhiri i tēnā. Ko te kōpūputu NIP-44 kore whakarerekē te tauira ki roto, ā ko ngā tuhinga ML-KEM te AEAD ki waho i tēnā:
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)
Me whakarato tonu ngā huna e rua kia taea ai te pānui i te kupu: ko te kapa waho e puta ana he NIP-44 ciphertext anake, ā ka tuwhera tērā mā te ECDH tawhito. Ko te kaiwhakawete quantum ka whakatau i te secp256k1 ka whiwhi i te kī o roto, engari ka tū tonu i mua i te ML-KEM; ko te whakatau i te ML-KEM ka tango i te kapa waho, ā ka waiho te NIP-44 kia tū tonu. Ka whai take tō ia whakauru:
kem_sste tūtohu i te pae waho anake. Kāore he mea i roto i tenei whakatupu e pā ana ki te tukunga ECDH mātua, ko te mea e whakaoho ana i te Wāhanga 6.1.kem_ct,recip_kem_pkā, kua whakakotahi i ngā rei mōhietanga hei raraunga tūhonohono, kia mau ai te kōpaka waho ki te tuhi taketake i whakatupu i a ia. Ko te whakaurunga o tētahi kōtuhi ki tētahi mōhietanga kaihuri rerekē ka hē te whakaū i te tika, kaua i te whakakore i te kōtuhi.
Ka mahia te whakawhanake i runga i ia mātau hou. Ko te tuakiri ML-KEM o te tangata e tāruatia ana e mau tonu ana, engari he kōrero kura motuhake ia mātau, ā, nō reira he motuhake...
kem_ss. Koia tēnei e waiho ai i te whakatupu i te nonce, i te mea i te whakaoirawao i a ia, kia tika ai:
ChaCha20-Poly1305
Ka kino mā te whakamahi anō i tētahi pair (kī, nonce), ā, i konei, he hou te kī anake mō ia rongo, nō reira, kāore he pair e taea te whakahokia.
6.1 He aha te take e mau ana ai ngā papa kia motuhake
Ko te huarahi kē ko te whakakotahi i ngā huna e rua ki roto i tētahi kī kōrero kotahi, ā, tukuna tēnā ki a NIP-44:
ck = HKDF-Extract(salt = "…",
IKM = ecdh_x || kem_ss || …) // do not do this
He tika tēnei hanganga hei whakamahi i te cryptography. He raru hanganga kotahi kei te mea: me
ecdh_x, te x-coordinate taketake o te hua ECDH, hei taonga matua — me he whakawhanaketanga kōpaki (NIP-07) rānei he kaiwhakaponotanga i te mamao (NIP-46) kāore e hoki mai i taua uara. Ka mahia te NIP-44 mō te kaiwhāea, ā, ka hoki mai he kōtuhinga kōrero, ko te take tino nui hoki o te noho i te tātai ki tētahi wāhi e kore e taea e te pūmanawa te tou atu atu.
Nā reira, ko te whakakotahi i ngā mea huna e whakakore i ngā rāhui katoa e pupuri ana i te tuapapa tuakiri i roto i te kaitohi, ko te kī iho, ko ngā kaiwhakamahi tino mātau, ā, e kore e taea te huri i tēnā mā te mahi whakatipu tuapapa. Ko te whakahauhanga ka whakakore i te tūtohu: ka mau tonu te NIP-44 i te katoa, ā, ka hangaia e tētahi e pupuri ana i te tuapapa tuakiri, tae atu ki te kaitohi, i te wā e ngana ana te hawhe KEM i te kōtuhi whakahoki e pupuri ana te kaiwhakamahi i tōna ake mea. Ko ngā rāhui kaitohi he kaiwhai noa i te wā o te post-quantum i ngā ara e rua.
Ko te utu ko te bandwidth, ā, ehara i te iti. Ko te ciphertext ML-KEM he 1,088 bytes, ā, kei roto i ia kauhau, i whakatūpatoa ki te base64url ki te 1,451 ngā tohu; ka tāpiri te AEAD waho he tag Poly1305 16-byte, ā, ka whakanui i te payload NIP-44 e kōpaki ana e te tahi-toru. Ko te kauhau e 50 ngā tohu, ka piki mai i te 176 bytes ki te 1,712, ā ko te kauhau e 2,000 ngā tohu, ka piki mai i te 2,820 ki te 5,238. Ko te iti rawa ko te rerekē i te 1.5 KB mō ia kauhau, ahakoa iti noa te kauhau, ko te utu tēnei mō te whakamahi i te enkapsulā hou i ia wā i te mea kāore e whakamahi anō i te wātapu tahi.
6.2 Ngā pūtake e whakaaturia ana i a rātou anake
Te pq2. Ko te tīpako ka whakatāinga ai te whakawhanake i te tata: e whakaaturia ana e ia ake te āhua o te mea, kia kōwhiri ai te kaiwhakamahi i te huarahi whakakore pūreirei mā te tirotiro i te mea, kaua e whakapono ana ki tētahi tohu i te mea rānei mā te mahara ki te mea tautoko ana tētahi atu. Ko te kaipānui kāore e mōhio ki te tīpako, ka kore e taea te whakatuwhera i te mea rānei, kaua e pōhēhē i te pānui i a ia, ā, ko ngā kauhau i whakakāti i mua i te taea o te kaupapa post-quantum e tū tonu ana hei NIP-44 noa iho, me te kore he huri.
He hoahoa te ML-KEM decapsulation kia kore e hē i te wā katoa: ki te puta he ciphertext hē, ka tukuna e te Fujisaki-Okamoto transform he huna pseudo-random e whai ana i tētahi tukatuka, kaua ko tētahi hē. Nā reira, kāore he kaupapa hē e puta i te KEM layer—he hē HMAC kei roto i te NIP-44 te mea ka puta, e rite tonu ana ki te puta o tētahi classical key hē. Ka whakahāngai te hunga whakamahi i tō uri katoa, nō reira ehara i te mea ka kitea te rerekētanga i te hē. Ko tēnei hoki te mea e whai ake ai te rārangi kōwhiringa i te Wāhanga 9.1: ka whakamātau te klien i ia kaupapa i te wā katoa, ā, ka whakaaetia te NIP-44 kia kī mai i te mea tika.
6.3 Ngā papa e rua o te pākete koha
A NIP-17 Ko te karere tūmataiti he NIP-59 pāpakati koha: he kōrero pūreirei kāore i whāitiatia, kua whakauru i raro i te kī tohu tohu o te kai tuku (momo 13), ka whāriatia rā anei i raro i tētahi kī mō te kōrero kotahi anake (momo 1059). I runga i te urunga e pupuri ana i te kī tohu tohu tika, ka whakakotahi a Nymchat i ngā raupapa e rua, he mea whai rānei i tōna ake pūtea tūmomo.
Ko te whakauru a te kaitohi e whiwhi ana i te kikaha waho anake. Ko te tāpae e hangaia ana e te kaitohi hei NIP-44 mōnoako — kāore e kite i te kī e hanga ana i tēnā te pūmanawa — nō reira, e kore e taea te whakatehu i te wāhanga tēnā. Kāore he whai i te mea tenei ki te whakaeke e pā ana nei: e taea anake te rongo i te tāpae mā te kōpaki, ā ko te kōpaki te mea e tiakina ana e te kaiwhakamātau. Me whakatau te kaiwhakaeke e noho ana ki te rāranga kōrero i te ML-KEM i mua i te kitea o tētahi tāpae hei whakaeke.
7Ngā karere rōpū me te whāngai waahanga
Ehara te rongoā ā-rōpū i te kōtuhi kotahi. Ko te kōtuhi mōrearea kotahi anō e whakatau ake ana ki ia mema, he kōpaki rānei e pūrangiaitia ana ki te kī ML-KEM o ia mema. Ko te mema kua whakatakotoko i tētahi kī, ka whiwhi ia i te whāngai hurihipiri; ko te kua kore ai, ka whiwhi ia i te whāngai wānanga.
Ka hanga i tētahi raru tātai tēnei e hē ana i te whakamahi ā-ngāwari. Ki te whiwhi te waru o te tekau o ngā mema i tētahi kopia hurianga, ko te rongo ko kaore e waru mā te tekau te tiakitanga. He kaiwhakapawe e hiahiatia ana he kopia kōpaka kotahi o tētahi kōrero matua e rite tonu ana i te katoa e tekau, nō reira ko te karere e tiakina ana anake i te mea ia Ko te kōpiti.
Nā reira, ka whaiwhai a Nymchat i te whanui o ia kauhau i te wā o te fan-out — ka mōhiotia anake te tau i te wā e hangaia ana ngā wrap — ā, ka whakaatu te tohu i te 'e kore e taea e te quantum te whakakore ki 8 o te 10 o ngā mema' i te mea kaua e kī he tiakanga te kauhau. I te wā e kore e wātea ai he tau, ko te mea tūturu mō... Kua whiwhi karere rōpū (ko te kai tono anake te kaute i te fan-out), e whakaatu ana te papahiko i te tiaki waahanga, kaua i te tiaki katoa. He whakakakā te kī i te tiaki katoa mā te kaha o te kopia motuhake anake mō te karere katoa.
7.1 Te mea e pūrongo ana te parepare
E kī ana te parepare i te pono mō te Karere, ehara i te mea e pā ana ki te pūmanawa i tuku mai i tēnā:
- Tiaki katoa: i haere atu ko ia kōpitu o tēnei tuhinga mārama i te hanga hapaemi.
- Parte: ka rere atu he kopitanga nō tētahi karere rōpū i te āhua kōtuhi. Kua whakaiti i te hā, kaua i te katoa, nō te mea, he tino nui mō te kaiwhakawewe tētahi kopitanga kōtuhi o te kōrero e rite tonu ana ki ngā katoa.
- Ka kīia tika te 'Classical' engari kaua e whakaaturia hei tohu kore, nō te mea he raru te mōhio ki te mea he “kāore e tiaki”, “kore e mahi”, rānei “kāore tēnei hanganga e whai i tēnei āhua”.
Ka tuatahi te whakatau i te wā e hūmārie ana te kauhau, kaua e whakarerekē mai i ngā mea ka whakaata mai tētahi hoa i muri ake. Ko ngā raraunga huna kua oti te noho e kore e taea te kaha ake te tiaki i te mea i te mua, ā, he tūtohu e whakarerekē ana i ngā kauhau tawhito i runga i te whakaputanga hou ka whakaatu i te mea he hē mō ngā tūtohu kei runga i te whakawhiti.
Ko ngā ture rōpū i runga nei he whāngai i tēnei, ehara i te whakakapi i tēnei: ko te karere rōpū e tiakina katoa ana anake i te wā e tiakina ai te kopi a ia mema katoa, ā, ko te karere rōpū i tae mai e kore e whakaatu i te tau tūtohu tiaki e whakaatu ana i te 'partial'.
8Ngā kōpia i whakahāngaihia ki a koe
He mea maha kei te tūpato i te kaipiri e whakakope ana ki te tohu mōrearea o te kaiwhakamahi: ngā tūtohu whakakotahi, te rārangi kōrero, ngā tīpako rōpū, me te pātaka kōrero. He nui ake ngā mōhiotanga e mōhiatia mā te mea nei i te kōrero kotahi, nō reira, me te whakarite i a rātou kia kore e whakakope, ka puta ai te raru nui ake i ngā kōrero katoa, ahakoa pēhea te tiaki i ngā kōrero anake. He rite te whakamahinga o te mānga, kua whakakope ki te tīpako matua i puta mai i te tuapapa o te kaiwhakamahi anake — me te kotahi pēnei i te whakamārama i te Wāhanga 3.2, te nymchat-pq-root te rōpū iho, e kore e taea te tūtohu i raro i
te kī e taea anake e ia te hanga.
Ko ēnei taonga te wāhi e tino whai take ai te hoahoa. He kōpaki settings rānei he rārangi kōtuhi rānei e noho ana i tētahi wāhi mō ngā tau maha, ko te momo mea tonu tēnei e kohia ana e te kaiwhakawhai e hiahia ana ki te kohi ināianei kia whakakore i te hūnuku i muri ake nei — he nui ake i tētahi kupu whakahoki noa iho, e kitea ana hei mea mō te wā poto anake i roto i te mahara o te kaiwhakamahi.
He rāhui e whakahaere ana i te hanganga i konei, kaua i te kī. Me taea te pānui i te kōpiku i whāia ai te ingoa mā ia taputapu kei te akauneti, nō reira ka whakaatu te taputapu katoa i te mea e taea e ia te whakatuwhera i roto i te rōstā e whakatakoto ana tōna pānui, ā, ka tuhituhi te akauneti i te mea anake e taea e rātou katoa te pānui. Ko te tuhituhi i tētahi mea anō ka whakakī i te taputapu i waho i āna tautuhinga anake — te hapa korereo e whai ake ana i te Wāhanga 3.2 mā ngā huarahi kē, mai i tētahi huarahi rerekē.
Ko te taputapu e pupuri ana i te tohu, engari ehari i te pūtake, e kore e taea e ia te whakatuwhera i tētahi mea anō kua huna ki te kī i puta mai i te pūtake, tae atu ki ōna tautuhinga anake. He tukanga kua whakaritea tērā, ehara i te hē, ā, ko tēnā te take e whai ana ai te Wāhanga 3.3 i tētahi tohu taputapu mō te hononga, kaua mō te hanga pūtake hou: kāore te pūtake tuarua e waiho i te pūtea rorohiko kia taea te pānui, ka mātāwheke noa i te mātauranga kī o te tohu ki te rua. Ki te kore e hono te kaiwhakamahi, ka haere tonu te mahi a te taputapu — ka pānui ia i ngā mea kua whiwhi ia i ngā kī mō, ā, ka tuku i te ara māmā.
He taputapu e whakahaere ana i tētahi extension i te browser rānei he kai tohu tawhiti (NIP-46) kāore e pupuri i tētahi nsec hei whakatupu mai ai, engari e pupuri ana i te recovery code, ā, i raro i te hanganga kōpaka o te Wāhanga 6.1, koia iho te mea e hiahia ana te waahanga pāpāhou-quantum: ka hanga te kai tohu i te kōpaka NIP-44 me te mea i mahia i mua, ā, ko te client rānei te kaiwhakaoho i te kōpaka waho tonu. Ko tēnei momo whakauru he kaiwhai mōrite i ngā ara e rua.
9Whakakari
Te epoch Ko te tau piki i roto i te whakawhanake koia e taea ai te huringa me te kore he kī hou. Me te piki ake i tēnā, ka puta mai tētahi pairi kī hou i te tūāpapa kotahi me tētahi whakatauāhua whakahāngai hou; ka tango te hunga kōtuitui i te kī hou i te rēkoti e taea te huri. Nā reira, ehara i te mea ka pāhia te kaiwhakahaere kia tuhia anō tētahi mea: ka hangaia te tūāpapa mō tētahi ingoa kotahi anake, ā, ko te wāhanga te mahi huringa.
9.1 Ka waiho ngā wāpū o mua, ā, kāore he mea e whakakōpaka anō.
Kāore he mea e whakarerekētia i te wā e huri ana te kī. Ka hanga he kiritaki i ngā tauira whakakore i te huna i te wā o ināianei ki te wā − 3, kia taea tonu te whakatuwhera i tētahi karere i whakapihi i mua i te huringa mā te pūtake kī e i te wā i tīmata ai te tuku.
Ko taua wā e whai haumaru ai te huri i te whakamahinga: me te kore taua, ka ngaro ngā mea katoa e rāhui ana i ia huri. Ko ngā mea kua tiakina kua oti, ka taea tonu te pānui i te ao o te whakaūtohi, nō te mea he mea kino ake mō te kaiwhakamahi te karere kāore e taea e ia te whakatuwhera, kia kei te karere e kore e taea te whakapakari ake i tōna tiaki i mua (Wāhanga 10.5).
10He aha tēnei e kore e tiaki ai
He pepa e whakarārangi ana i ngā hua ka whakatutuki e tētahi hoahoa anake, ehara i te whakaahua i tētahi pūnaha, ā, he kino ake te whakaohorahora i tētahi āhuatanga haumaru i roto i tētahi whakawhitiwhiti i te kore e kōrero rānei. Ko ngā mea e whai ake nei kei waho i te mea e tiaki ana tēnei hanganga.
10.1 He huna tuarua te pūtake, ā, ka kore e taea te whakaora anō i te ngaro o tēnei.
Koinei te utu tūturu o te hoahoa. Kāore e taea te whakatutuki i te tūtohu i roto i te Wāhanga 2 kua kīia ai me whai mea kotahi noa te kaiwhanake hei tiaki: kāore te nsec motuhake e whakaora i te kī post-quantum, nō te mea ko te take matua ko te kore e whakaaturia e tētahi uara tūwhera rānei tētahi mea huna anō. Ki te kore he tapone e pupuri ana i te pūtake, ā, kāore e taea te whakatuwhera i ngā pūtau i roto i te Wāhanga 3.2, e kore e taea te whakahoki i ngā mea i tūmatatatia ki te kī i puta mai i te pūtake. Kāore he escrow, ā, kua whakarite motuhake rānei kia kore e whai mana tētahi i te mea e pupuri ana i tēnā.
Me te whakawhiti mā te ringaringa te huarahi kotahi, he tino kaha ake tēnei i te mea ka pānuihia i te tīmatanga. He kaiwhakamahi kāore e kopia i te... nympq1… He kopu kotahi noa iho e noho ana i te kōdere i ngā wāhi katoa, i runga i tētahi tapone noa iho, ā, mēnā ka ngaro tērā tapone, ka ngaro ngā mēsina katoa post-quantum, ngā settings blob, me ngā rārangi archive e whakatauia ana ki tēnei. Te
nsec kāore e āwhina; ko taua te tūāhua e tū ana ai te hoahoa katoa.
Me pāhia tēnei tūāpapa e rite ana ki te huarahi ā-ringa ngā huarahi whāriki katoa e tāpirihia ana i te wā e whai ake nei. Ka whakatānga te kaiwhakatā ki te huarahi iti utu rawa e kitea ana, nō reira, ko te uara o tētahi hoahoa ko te uara o tōna huarahi whakaoora iti rawa—hei tauira, he kī rānei e mau tonu ana i te mahara, ka whakatau i te katoa ki te uara o tērā kī, ā ko te rārangi whāriki ko te taonga tika noa iho e kohia e te kaiwhakatā e 'kohikohi ināianei, whakakore i te wā e wātea ana' ka whakatika i te wā e wātea ana i waho i te pūmanawa.
10.2 Te whakamārama i te tangata, e rerekē ana i te huna
Ko ia tāpiriti ki Nostr he Schnorr ki runga i te secp256k1, ā, kaore i huri i konei. He kaiwhakawhiti rākei e whai ana i tētahi rorohiko quantum ka taea te hanga tāpiriti tūmataiti me te tū hei tētahi kaiwhakamahi i te wā tonu. Ko te mea e whakatika ai te tukutuku mātua hurihiri ko te 'kohikohi ināianei, whakakorea i te wā e tū mai ana': kaore e taea e te kaiwhakawhiti i te marea i te rā nei te pānui i te wā ā muri ake. Kaore e waiho i te kaupapa tuhi hei mea kore e taea te hanga tūmataiti mō tētahi kaiwhakawhiti e whai ana i te rorohiko. Ka whakatakotohia tēnei whakamārama ki roto i ngā whakamahi i runga i te tūmanako — ko te tohu kōpaki e whakaatu ana i te whakaaetanga, ko te kōpaki e whakaatu ana i te huna, ā, he tohu motuhake rāua, nō te mea ka taea te whiwhi i te kotahi me te kore te tahi.
Ka whakawā hoki ia i te mea ka taea e te whakapuaki i te Wāhanga 4 te whakatau. Ko te hononga i waenga i te npub me te ML-KEM kī he tāpeti secp256k1, nō reira, ko te kaiwhakawhiti e taea te hangarua i aua, ka taea te whakakāinga i tētahi kī nōna anō. Ehara te huna i mua i te kaiwhakawhiti o te wā e whai ake nei i te tika o te whakaū ki tēnā kaiwhakawhiti.
10.3 Ngā raraunga mātua
Te whiriwhiri koha e huna ana i te kai tuku, te kai whiwhi i muri i te kotahi. p te tohu, te momo, me te wā tuhono o te karere i roto. Kāore e huna i te mea kua puta tētahi take, tōna nui, me te wā i tae ai ki te whakawhiti. Kāore e whāia te tātari tūrua e tētahi waahanga o tēnei hoahoa.
10.4 Te mesh kore hononga
Ko te hātepe whakawhiti Bluetooth mesh o Nymchat he hātepe motuhake ā-whakawhitiwhiti ake, ā, kāore e whāiti ana i roto i tēnei mahi. He karere ā-noa ngā karere mā te mesh.
10.5 Ngā karere kua tuku
Ko te kōpaki kōrero huna i tuhituhihia i te wā i noho noa ai tētahi taha ki te hangarau tuatahi, ka noho noa noa ki te hangarau tuatahi i te wā katoa. Kua oti te puta, ā, e kore e taea te tatau anō. Ka tīmata te tiaki i te karere i whai ana i ngā kī 'post-quantum' ngā taha e rua, ehara i te wā i whakakā ai i te āhua.
11Ngā kōwhiringa kua whakaaroa
| Tikanga | He aha te kore? |
|---|---|
| Whakaputa mai i te kī i muri i te quantum i te kī tohu. | Whakakore. Ko te whakatupu he tukanga matūhia mō te nsec, ā, ka whakaora te kaiwhakawā quantum i te nsec i te npub kua whakaputa, nō reira, mēnā ka whakakore te taha kōrua, ka whakakore hoki te taha post-quantum me ia. Whakatau ia i ngā raru whakarāpopoto katoa i roto i tēnei pepa, ā, kāore i tiaki i tētahi tangata. Wāhanga 3.1. |
| Tukuna te pūtake ki ngā taputapu atu o te kaiwhakamahi mā NIP-44 | Whakakoretia i te take kotahi i raro i te āhua rerekē. Ko te pūtake i tuku i raro i te whakamātau pūtuhi tawhito noa iho, ka taea te hoki mai e tētahi tangata i tuhituhi i te reo me te whakatika i tōna kī i muri ake, ko tēnā rā te kaiwhakawhiti e whai ana te pūtake ki te whakakore i a ia. |
| He pair kī ML-KEM i hangaia motuhake i runga i ia taputapu | Whakakore. Ka whai i ngā kī tūmatatenga rerekē ngā taputapu, ā, e kore e taea e tētahi whakamōhio whakarerekētanga mō ia tohu te whakawhiti i te katoa. Ka whakamātau kōpaki te hunga tūhonohono ki tētahi kī i whakaputa i te wā whakamutunga, ā, ka kore e taea e ngā taputapu katoa atu te pānui i te hua. Ko te tūāpapa kotahi mō ia tohu, e neke ana mā ngā huarahi o te Wāhanga 3.2, te mea e whakaiwhai ana i tēnā. |
| Whakapakihia te pūtake i raro i tētahi PIN | Whakahēria. He tata ki ngā bit e tekau mā toru te uaua o he PIN e whā rārangi tau ana ki tētahi kaikōpaki offline e pupuri ana i te rārangi whāpakihia. Ka whakaatu hē i te uaua o te whāpakihanga iti rawa te whakaaturanga i tēnei ki te ngā huarahi e rua e 256-bit ana. |
| Whakawhānui i te npub kia whai ai ngā kī e rua | Ehara i tētahi tohu e taea te tiri te 1,184 bytes, ā ka whakakore i te tātari a ia mea Nostr client e noho ana ki te tohu rerenga e whakaritea ana hei 32 bytes. |
| He ratonga rārangi matua | Ka whakahoki mai i te mana e tū ana te pūnaha ki te whakawātea i ai. Ko te tangata ka whakautu i te rapu, ka whakatau ia ko wai e taea ai te pānui i te karere. |
| Whakauru i te kī ki ia karere | Kāore e whakatau i tētahi mea: me te kai tono e hiahia ana i te a te kaiwhakawhiwhi Ko te kī i mua i te tuatahi kōrero, koia tēnei te āhua i te kore he kōrero i mua hei mau i tēnā. |
| Whakarite pūmanawa i roto i te kōnga | Whakatū i tētahi tūāpapa whakaiti taumata. Ko te kaiwhakawhaki e taea te whakakore i tētahi tohu pūkenga, ka whakamanahia te ara tawhito. |
| Mā muri i te kūantamu anake, kāore he wāhanga mātātuhi. | Whakakore i ngā tau maha o te tātari i te secp256k1 hei whakakapi i tētahi tūāpapa hou ake. Ka raru anake te mea huriwhatu ki te... e rua Kua raru. |
12Tauarity o te whakatinanatanga
Ka tuku a Nymchat i ngā whakamahinga rua motuhake o tēnei hanganga — kotahi i te JavaScript mō te pūmanawa web, kotahi i te Dart mō ngā pūmanawa mobile, tae atu ki te whakawhiti ML-KEM-768 i hangaia mai i te tīmatanga. He mea raru mō te hunga whakamahi te waiho i ngā whakamahinga rua o tēnei tūāpapa, nō reira, ka whakatairitea rāua kia kitea te rerekētanga, kaua ko te whakapono kia tūturu katoa.
Ko te whakamahinga ML-KEM a Dart kua whakaūtia ki te mea matua
NIST ACVP
ngā whakamātau whakautu mōhiotia mō ML-KEM-768 (ML-KEM-*-FIPS203) — 25 whakakāinga matua, 25 whakawhanake rārangi huna, me 10 whakamātau whakakāinga rārangi huna, e whakahaerea ana hei rārangi motuhake. Ko aua ngā tūtohu i whakaputa a te NIST hei whakaū i te whakamahinga, nō reira ko te hāngai o aua tūtohu he tohu kei tika te huringa, ehara i te tohu noa iho kei whakaae ngā mea rua e whakamahia ana ki te tahi. Ki runga i taua mea, he rārangi tūtohu whakamātau tahi — te tupu i te kākano, te whakawhanake rārangi huna, ngā tauira huringa katoa, me ngā kete kura katoa — ka hangaia mai i te JavaScript matua, ā, ka tirohia e ngā rārangi whakamātau e rua. Ka whakawhānui te tūmataiti matua i taua rārangi, ehara i te huringa: matua ki te kākano, matua ki te rārangi matua, te tohu matua, me te rārangi matua, te nonce, me ngā raraunga e whai ana i te waahanga waho, he tūtohu motuhake ā rātou, nō reira e kore e raru ngā mea rua e whakamahia ana mō te
nympq1… Ko te kōdere e tohu ana i ngā byte e tūmaki ai te karere. Ko te rerekētanga i tētahi whakatinatanga ka whakatūpato i te hanganga, kia kore ai e puta he karere e kore e taea e te tētahi atu kāuhuira te whakatuwhera.
Ko te tohu mātāpuna te mea e tika ana hei kōrero i roto i ēnei. Ko ia te mea e whakaatu ana ki te tapone i te rerekētanga o te "ko tēnei te taketake kei aku ringa" me te "he taketake rerekē tēnei", ā, he kaiwhakahaere e kore e taea te whakaatu i te tohu mātāpuna o tētahi atu kaiwhakahaere ka kitea tētahi rēkoti tino tika hei rēkoti kore — ā, ka whai ake i te Wāhanga 3.3, ka hanga he taketake tuarua, ka whakamahia hoki te tūmatanui hei kōpaka. He ara tērā mō tērā take tonu.
Ko Nymchat Mātāpuna tūwhera i raro i te AGPL-3.0. Ko te tūāpapa rarakau e whakamāramahia ana i konei ko
js/nym-crypto.js a js/modules/pq.js i te pūmanawa web client, ā
lib/core/crypto/ me lib/features/identity/pq_registry.dart i roto i ngā kārihi mobile
Mō te whakamārama poto, kāore e hāngai ki te hangarau, tirohia te Pae mātauranga mō te whakamātau kōpaki tūtohu quantum.