Fa'amaumauga o le iloa: fa'amamafa e lē mafai ona lūlagia e le quantum

Nymchat pepa fa'atekinolosi

Malilie i le Kiliti i le Taimi i Mulimuli ane o le Quantum i le Nymchat

Fa'asoa atu ki lautele a le ML-KEM-768 i luga o le Nostr e aunoa ma se fa'amaumauga po'o se lisi fa'amaumauga, ma fa'atumuina mai i se mea lilo e le mafai ona toe fa'aalia e so'o se taua lautele.

Faʻasologa 1.0 Auēse 2026 E faʻatatau i le Nymchat 3.74+

O le fa'aopoopoina o se suiga o ki post-quantum i se polokalame fe'au e sili atu ona lē o se fa'afitauli o le kilitografia. O nei fa'avae ua fa'amaonia ma o lo'o iai nei polokalame. O le vaega faigata o le o le mana'omia lea e ia tagata auai uma nei o se lona lua ki lautele, ma o se polokalame e leai se pule central e leai se nofoaga manino e tuu ai i ai. O lenei pepa o lo'o fa'amatalaina ai pe fa'apefea ona tali Nymchat lena fesili — o fea e sau ai le ki lona lua, pe fa'apefea ona o'o atu i tagata e mana'omia ai, ma po'o le ā e fa'atagaina ai le interface e fai mai e uiga i le i'uga — ma, i le vaega mulimuli, po'o le ā e le puipuia e lena i'uga.

1Le fa'afitauli

O fe'au patino a le Nostr e fa'atofia i le NIP-44, lea e iai ni vaega lua e mafai ona faapitoese. O le vaega e faaliliu ai le plaintext — o le ChaCha20 ma se HMAC-SHA256 tag, e faaaogāina ai le... HKDF (RFC 5869) — e lē o lamatia na te tele e se komipiuta kuanitama; o le polokalame a Grover e fa'ateleina le vave i le square-root i le tautaga simetia, ma o le 256 bits e mafai ona tausia lenā mea. O le setengahā e malie i luga o le ki o le elliptic-curve Diffie-Hellman i luga o secp256k1, ma o le polokalame a Shor e foia atoatoa le logarithm faapitoa. O le toe mauaina o se ki patino mai lona ki lautele e fa'aalia ai i taimi ua mavae o sekreto uma na mafua mai lena ki.

O le tulaga faaleagaina o lenei mea e lē faatali se'i maua se masini faapenei. O se tagata faavaeai e iai mea e teuina e mafai ona faasaoina le ciphertext i lenei aso ma toe faamanino pe a maua le malosi e faia ai lena mea. So'o se mea e lafoina nei o le a toe taua i le lumana'i, ua uma ona ala'ia. O le ituaiga faaataitai lenei e faatamaia ai le suiga o le post-quantum key exchange, ma o le mafuaaga lea e lē mafai ai ona faatali se'i faufau le masini.

1.1 O le fesili e tali ai lenei pepa

Ua malamalama lelei i le faʻaitiitia o lenei tulaga: faʻaaoga se mekanisme faʻatapulaʻa o ki i le taimi ina uma le quantum faʻatasi ma le suʻesuʻega masani, ina ia manaʻomia ai e se tagata faʻaleagaina ona faʻaleagaina uma e lua ina ia mafai ai ona faitau se mea lava. O loʻo faʻaaogaina e le Nymchat le ML-KEM-768 (FIPS 203). O lena e vave lava fa'atupuina ai se fa'afitauli o le fa'asoa:

O le fesili

Ina ia e lafo se feau i Alice i le aso nei, e te mana'omia se mea e tasi: lona npub. Afai e fa'aopoopo se post-quantum exchange, e te mana'omia ai se isi mea — lona ML-KEM public key. O fea e i ai lea ki, ma o afea e te maua ai ae le'i e mafai ona lafo i ai se mea?

O le npub e mafaia ona faʻaaogā e lava lava. E mafai ona e tusia i luga o pepa, faitauina ma le leo, pe faʻasuu mai i se lau, ma o lena lava mea e manaʻomia e soʻo se tasi e faʻamauina (encrypt) ai feʻau mo oe. O le ML-KEM-768 public key e 1,184 bytes. E lē mafai ona faitauina ma le leo, e lē mafai ona faʻaaogā i se igoa faʻaaogā, ma e lē tatau ona tuʻu i totonu o se QR code faʻatasi ma se faʻasinomaga e 32 bytes lava e lua.

O le tele o le mea faigofie lea. O le mea faigata atu, o le aofai mai ai le ki lona lua ni faafitauli e tolu eseese, ma o le vaega totoe o lenei pepa o se tali tele lea ia i latou:

2Fa'atapula'a o le fuafuaga

E to'a ni tulaga fa'atapula'a na fa'atulaga ai le tali, ma na fa'aleaogaina ai le tele o faiga masani a'o le'i tusia se polokalame.

  1. O mea faalilolilo leitiiti lava e mafai. O tagata fa'aaogaina o le Nostr ua iai nei lava se mea fa'alilolilo e tasi, o le nsec. O so'o se isi mea fa'alilolilo e fa'aopoopo atu, o se isi auala lea e mafai ai ona iai le fa'amaumauga o lou tala'aga, ma o se tasi o lo'o iloa le fa'aputuina o se nsec, e lē mafai ona iloa le fa'aputuina o so'o se isi mea. O le Vaega 3.1 o fa'aalia ai e lē mafai ona fa'atino lenei mea i luga o le tulaga fa'aletino — o se ki post-quantum e maua mai i le nsec e le o ofoina atu se puipuiga post-quantum lava — o lea o le fuafuaga o lo'o fa'aaogaina ai e tasi lava le mea fa'alilolilo ma e lē toe fa'aopoopoina se isi: o se vaega e tasi o mea e fa'aaogaina mo le ki, e fo'ata i le tasi taimi mo fa'amoemoe ta'itasi, e fa'ailoa i le tulaga e tutusa ma le nsec ma i le mea e tutusa fo'i, ina ia mafai ai e so'o se tasi o lo'o iloa le teuina o le tasi, ona iloa lea fo'i ona teuina o le isi. O le Vaega 10.1 o fa'amaoni lava i le tau o lea mea.
  2. Leai se pule. E leai se server e mafai ona talitonuina e fa'ailoa ai po o fea le ki e a ia ai se tasi. So o se server fa'apenei, o le a avea ma le nofoaga e mafai ai ona suia le aga'i atu o feau.
  3. Masini e tele, fa'asinomaga e tasi. O se fa'ailoga Nostr e masani ona fa'aaogā i ni polokalame (clients) e sili atu i le tasi i le taimi e tasi. So'o se fa'amatalaga o le ki e iai, e tatau lava ona tutusa i la latou uma, ma auala e a'u atu ai ia te i latou e le tatau ona faitauina e le tagata fa'aleagaina o lo'o taumafie ona fa'aleagaina lenei vaega.
  4. Leai se feutaga'iga. O so'o se fefa'ataua'iga i totonu o fe'au e pei o le “o fea ciphers o lo'o e lagolagoina?” o se avanoa lea e mafai ai e se tagata fa'aleagaina ona aveese ai ina ia fa'atauaina ai le filifiliga e vaivai ai. E tatau ona leai se mea e mafai ona fa'aitiitia ai le tulaga o le fuafuaga.

3Se mea lilo fa'avae lē fa'alagolago i se isi

O le faaiuga taua o le faalagolago lea o le ML-KEM decapsulation key i ni mea faavae o le ki e lē faaalia e se tasi taua lautele. O faailoga taatasi e maua se tasi le lilo autu, e faia lava e tasi:

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)

O le ulu e faaalia i le tagata faaaoga i le auala e faaalia ai se nsec: bech32 ma le tulaga fa'atomu e faigofie ona faitau e tagata nympq, o lea e pei ona faitauina nympq1…, fa'aalia i le itu o le nsec i le lau fa'amatalaga fa'ailoga i luga o le fa'agaoioiga fa'aalia e tutaga, fa'agaioia ma le fa'atonuga tutaga e tutaga, lē fa'amaumauina ma lē lafoina i so'o se mea i se tulaga manino. E lē o se upu fa'alilolilo ma e lē o se fa'aogaloga (login). O ni meataugata o le kunci e mafai e le tagata fa'aaoga ona teu, e tutusa lava ma le nsec.

Ua fa'atulaga lelei le masima (salt) i se vaega patino (domain-separated) ona o le fa'amoemoe, ina ia le mafai e se isi mea fa'alilolilo e maua ai le pa'aga ki (keypair) e tutusa. O le epoch o le counter e faatonuina ai le liliu (Vaega 9).

3.1 Aiseā e le mafai ona maua le ki mai le ki o le fa'ailoga

O le fuafuaga manino o le fa'atumuina lea o le keypair mai le mea lilo o lo'o iai nei i le tagata fa'aaoga:

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

E fa'atauaina i ni mafuaaga e fa, ma o mafuaaga moni uma lava: e leai se mea fou e mana'omia ona fa'amaumauina, auā o le nsec o le fa'amaumauina lea; o lo'o malilie uma masini ona o le fa'atulagaga, e leai se polokalame fa'afanau e mafai ona sese; o se fa'asilasilaga e mafai ona sui mo fa'ailoga ta'itasi e manino lava le sa'o, auā e lē mafai ona lē malilie masini e uiga i le ki; ma o lo'o iai le ki a'o le'i fa'asalalauina, ina ia mafai ai e se tagata fa'aaoga ona fa'amauina se mea i ai lava i lona lava i le taimi muamua e fa'aaoga ai.

E leai se aoga o nei fa'amanuiaga e fa'alua, ona o se mafua'aga e tasi. O le fa'aaogāina o le Shor's algorithm i se npub ua fa'asalalauina e maua ai le nsec. O le seed derivation o se polokalame lautele lea e fa'aaogā ai le nsec. O lea, o le tagata fa'aleagaina e fa'aleagaina ai le vaega classical, e toe fa'aleleia ai le vaega post-quantum e ala i le fa'aaogāina o le HKDF e tutusa ma le fa'aaogāina a isi lava. I lava o le 'harvest-now-decrypt-later' — o le tūlagāfea autu lea o lo'o iai lenei vaega e taofia ai — o se ki e maua i lenei auala e le toe fa'aopoopoina ai se mea lava.

O le tulafono e sau mai ai mea uma

O le ML-KEM decapsulation key e tatau ona sau mai

O le vaega lona lua o lea tulafono e tutusa lona aoga ma le vaega muamua. O se mea lilo ua faia na o ia, ona fa'afetena'i lea i le vaega o masini o le tagata fa'aaoga i totonu o se fe'au NIP-44 masani, o le mea lava lea e sese ae i se auala fa'aopoopo: o se tagata fa'aleagaina e fa'amaumau lena fe'au i le aso nei, ae toe maua lona ki masani i se taimi mulimuli ane, ona pa'ū lea le fa'avae. O le mea lea lava e tusa ai ai ala i le vaega o lo'o i luma, ma mafua ai ona leai se tasi o ia ala e pei o le “lafo i lau isi masini.”

3.2 Aumai le root i isi masini a le tagata fa'aaoga

O le Tulaga 3 o le Vaega 2 — tasi le fa'ailoga, e to'atele masini — e lē mafai ona fa'ataunuuina e ala i le matematika iinei, auā o le autu tele o lona uiga e lē o se mea e maua mai i mea ua uma ona fa'asoa i le va o masini. E tatau lava ona fa'ataunuuina e ala i le aveina, ma o ia lava le ala e tasi: o le fa'aaoga o lo'o aveina le nympq1… kōdu ia i latou lava.

O lo'o fa'aali atu le u'u o le nympq1… faatasi ma le nsec, ma se isi masini e talia pe fa'apipi'i i le pane lava e tasi. O le faiga atoa lenā. O se masini ua le'i tu'uina atu le kōdu e le mafai ona auai, lea o lo'o fa'amatalaina i le Vaega 4.2.

O le la'asaga manuia o se fa'avae ua fa'atulaga, nai lo se la'asaga muamua. O lo'o fai mai le tulafono i le Vaega 3.1 e lē mafai ona lafoina le pou fa'avae i lalo o le fa'amaumauina e na'o metotia fa'asolopito, ma o so'o se faiga e mafai ai ona fa'autometi lenei mea — e pei o le fa'afeso'ota'iina e ala i se relay, pe fusiina i le ki o le fa'ailoga — e solia lava lena tulafono. O le la'asaga o lo'o fa'atino e le tagata fa'aaoga o le mafua'aga lea e moni ai le puipuiga.

O le faiga e tuuina atu ai se avanoa mo se ala fa'apipi'i: o se fa'amatalaga e mafai ona iai se lisi o ni fa'apipi'iga, o le isi lava e avea o se AEAD blob i lalo o se ki e mafai ona toe fa'afo'i mai e le tagata fa'aaoga i se isi masini — mo se fa'ata'ita'iga, se fa'asilasilaga PRF o se passkey. E leai se mea o lo'o lafoina i aso nei, ma se'ia vagata'i se mea e faia, o le nympq1… O le kōdi lava e tasi le auala e sasa'o atu ai. O lo'o fa'amatala ai i le Vaega 10.1 le tau o lea mea.

O le fa'amatalaga lava ia o lo'o i ai i lona lava vaega o fa'atulagaga, nymchat-pq-root, ma fa'afetaui e pei ona fai ai isi vaega. E tusa lava pe le iai ni ufiufi, e faia lava ana galuega taua: o lona iai o le auala lea e iloa ai se isi masini e ua iai se fa'avae lenei fa'asinomaga, o le mea lea e taofia ai le faia o se isi fa'avae e tau vaega ai (Vaega 3.3).

Fa'amatalaga o le fuafuaga: le vaega e tasi e le mafai ona fa'aaoga le ki fou

Le nymchat-pq-root vaega e tatau e leai e fa'afiafiaina i le ML-KEM ki e maua mai i le a'u. O lea fa'asologa e taofia ai le kopi na o ia o le a'u, o lea o le fa'aloka o ia i lalo o se ki e maua mai i le a'u o se tuloki o lo'o i totonu o le pusa le ki o lo'o i ai: e le mafai ona tatala e so'o se masini, e aofia ai le masini na tusia ai. E fa'aloka i le auala masani — NIP-44 i le lava ia — pe a le faia lava. O le mea lava lea e talia ai e le fuafuaga se puipuiga masani lava, ma e mafai ona faia: e leai se a'u o lo'o i le fa'asologa i le asō, na'o le mea moni lava e iai se tasi.

O isi lava vaega o fa'atulagaga uma e mafai ma e tatau ona fa'aaogā le ki e sau mai le tūāā. O le fa'atatau lea na o le tasi, ma o se fa'atatau e uiga i le māfuta nai lo le malosi.

3.3 Tupuāiga ma le fa'aaogāina

I le amata o le fa'atūina, o lo'o iai se fa'ailoga tumau, e galue ai se tagata fa'aaoga i lenei fa'volgaga:

  1. Saili se mea o lo'o iai nymchat-pq-root Fa'amaumau.
  2. Ua maua se fa'amatalaga, ma e mafai e lenei masini ona tatala ai — fa'aaoga i ai ma fa'asalalau lenei fa'asinomaga e mafai ona fa'atino i le vaitau post-quantum.
  3. Ua maua se fa'amaumauga, ma e lē mafai e lenei masini ona tatala lona ufiufi — aua ne'i foa'i mai se ulu fou, ma aua ne'i faasalalauina lava se faasilasilaga. Faatonu le tagata faaaoga e faafeso'ota'i lenei masini e ala i le tu'uina atu o le nympq1… kodu mai se masini o lo'o iai nei.
  4. Leai se fa'amaumauga — faia se ulu, faasalalau le faamaumauga, faalauiloa, ma faaali le nympq1… kōdi i le tagata fa'aaoga mo le tasi lava taimi ina ia mafai ai ona latou teuina.

O le laasaga e tolu o le laasaga e faigofie ona sese, ma o le mafuaaga lea ua fa'amaoti ai le faasologa ae le'i tu'ua lava i le fa'atinoina a le isi ituaiga faiga. Afai e lua masini e filifili e faia lava se pū (root), o le a maua ai ni pū e lua e lē fa'alagolago i tasi i lalo o le tasi fa'asinomaga, ma o lena fa'alavelave o lo'o iai lenei faasologa ina ia taofia ai.

4Le faalauiloaga o le lavaaga

O le vaega lautele o le paripa o le ki ua maua mai ua faasalalauina o se mea e mafai ona sailia i se tulaga. NIP-01 fa'alavelave — ituaiga 30078, ua fa'ailoga 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": [ ... ]
  }
}

O le "addressable" o lona uiga o le relay o lo'o taofia se mea tasi (event) mo (^kind, pubkey, d-tag^), o lea o le toe faasalalauina (republish) e sui ai le faasalalauga muamua i le lava fa'apea. O lea, o ia fa'ailoga e iai lava se tasi fa'amaumauga o lo'o iai nei, o le mea lea e faia ai le "sailia o le ki a Alice" o se fa'amatalaga e tasi ma manino, ae lē o se lisi e mana'omia ona fa'afeso'ota'i.

O le suafa o le faamauina. O le mea o loo faia ua faailogaina e le ki o le faamaoni, o lea o le faamatalaga “o lenei ki ML-KEM e aoga i lenei npub” e malosi tutusa lava ma le npub lava ia. O le sui atu o se isi ki o le encapsulation e manaomia ai le faia o se faailoga secp256k1 faonapoto. O se tagata faaleagaina e mafai ona faia lena mea, e le toe manaomia ona faaleagaina le KEM.

E faamutu faasilasilaga. O se fitu aso NIP-40 fa'ai'uga, e toe fa'asalalauina i taimi uma e 24 o le itula, e taofia ai le fa'amaumauga ina ia avea o se fa'amatalaga e uiga i se tagata fa'aaoga o lo'o fa'aauau pea ona galue, ae lē o se tasi na galue muamua. O le ulu lava ia e lē fa'aiuina lava; na'o le fa'amaoniga e uiga i ai lava e fa'aiu.

O se faasilasilaga ua fa'alava e pei lava o se faasilasilaga e le'i iai se ki: e lafo e uo le NIP-44 masani, lea e mafai ona faitau e so'o se login, ma toe fa'aauau e le polokalame le fa'asoloina o le fa'asalalaga post-quantum i lona feso'ota'iga e soso'o ai, pe a toe fa'asalalauina. O lea, le fa'alava mo se taimi e sili atu i le vaiaso e fa'aleagaina ai le puipuiga o fa'amatalaga na lafo i lena vā faitau — o loo puipuia i se auala masani nai lo le puipuiga e le mafai ona fa'aleagaina e quantum — ma e leai se isi mea e fa'aleagaina ai. E le o a'afia le lafoina, e leai se mea ua mae'a ona maua e le mafai ona faitau, ma e le mana'omia se seisi gaioiga pe a toe fo'i mai.

O le lē tutusa lenā o le mafuaaga lea e mavae ai, ae lē o se mea na tupu fa'afuase'i. Afai e leai se tasi, o le fa'amaumauga o le a ola tumau sili atu i le ki o lo'o fa'ailoa mai ai: o se masini ua fa'amafa, ua toe fa'atulaga, po'o ua sui lona pito i luga, o le a tu'uina atu ai se fa'atonuga o lo'o tumau e fa'atumuina i se ki e leai se tasi e te'i maua toe, ma o fe'au na lafoina i lalo o lena o le a leiloa e aunoa ma se mea sese i le itu taitasi. E fitu aso e fa'atapula'a ai lea avanoa, ma e mafai ai e failauga ona tu'u i ai le fa'amaumauga lava ia, nai lo le fa'alagolago i tagata fa'aaoga ina ia silasila ai.

O lo'o fa'aigoa e le fulaga autu lona fa'atauga. O le pa'omaga o pk2...ā o le numera o se vaega lea o le feagaiga nai lo le matagofie: o lo'o fa'ailoa ai le ituaiga fa'amatalaga (payload format) e mafai ona fa'aaoga ai le ki. O se faitau e le iloa le vaega lea e fa'ai'u ai le mafaufau “Nymchat client, e leai se ki post-quantum” ma lafo atu le NIP-44 masani, lea e mafai ona faitau e so'o se login. O le ala lea sa'o o le lamatia, ma e taua le fa'amamafa o se tulafono o lo'o iai mo le numera o le ituaiga: o se talosaga o se malosiaga e le iloa e tatau ona fa'aitiitia ai le puipuiga, ae lē o le lafoina o le fe'au. O se ki e le mafai ona fa'aaoga e se tasi, e sili atu ona leaga nai lo le leai o se ki lava, ona o le fe'au e maua mai e leiloa ai e aunoa ma se mea sese i luga o le itu taitasi.

4.1 E i ai se uiga le le iai, ma e tolu tulaga.

O se fa'amatalaga la'ititi ae tāua: o fa'asalalauina lea fa'asilasilaga e ia Nymchat client uma, e le gata i i latou e mafai ona fa'atino le post-quantum, ma e lē mana'omia le fa'aaogāina o le vaega o le 'key'. O lona uiga, o le a iai ni tulaga e tolu e eseese ai nai lo e lua:

Va'aiinaO lona uigaLafo le amio
Faasilasilaga ma se ki Nymchat, e mafai ona faatino le post-quantum. Fa'alua
Fa'alauiloaga, e leai se ki lava Nymchat, na'o le masani — tapena le post-quantum, po'o se masini e lē o fa'afeso'ota'i lava i le autu o le fa'amaoni. Kalasika NIP-17
Leai se faalauiloaga Tagata fa'aaoga e lē iloa. E mafai ona so'o se tagata fa'aaoga o le Nostr po'o le Bitchat. Fa'asolopito, fa'aopoopo i se ufiufi mo le feilosoliso

O le faʻaputuina o le faiva lona tolu i le faiva lona fa e avea ai ma mea faʻamaumau tele. O se faʻasilasilaga e aunoa ma se ki o se faʻamaumauga ua sainia e faʻailoa ai o loʻo faʻagaogaoina e le auʻu le Nymchat, lea e mafai ai ona lē faʻaaogā e le ala o le auʻu se ufiufi faʻasologa eseese e tatau ona faʻapipiʻi pe a lē mafai ona iloa se tasi.

4.2 O se masini e lē mafai ona tatala le ugatala e nofo filemu.

E mafai ona sui le faasilasilaga: mea tasi mo faailoga tasi, o le mea na tusia mulimuli e manumalo. O lena e faagasolo ai le fuafuaga o le tasi faamatalaga, ma o lena foi e faateleina ai le tulaga lamatia o se masini e le fesoota'i pe afai e faasalalauina mai ana faamatalaga. O se masini na faasilasilaina se ki na ua ia saunia mo ia lava, o le a faaleagaina ai le faamatalaga moni ma faia ai le tagata uma e faamau (encrypt) i lalo o se ki e le mafai ona tatala e isi masini.

O lea, o se masini e iloa o lo'o iai se auala (root) ae lē mafai ona tatalaina, e lē faia se fa'asalalauga lava e aunoa. E lē ua fa'aleagaina ma e lē ua tapuni i le polokalame: o lo'o faitau pea i so'o se fe'au o lo'o iai ana tia (keys) ma o lo'o lafo pea i le tulaga masani, a o fa'atonuina le tagata fa'aaoga e fa'afeso'ota'i. O le filemu o le amio sa'o lea mo se masini e lē mafai ona tautala mo le fa'ailoga (identity).

5Suʻesuʻega ma le faaiuga e lafo

E auala se lua e iloa ai e tagata fa'aaoga ki o isi tagata fa'atasi. O se fa'alēlea tumau e aofia ai tagata o lo'o talanoa sa'o ai se tagata fa'aaoga — talanoaga tatala ma iso o vaega — ina ia sau ai a latou fa'asilasilaga e pei o mea masani e tupu. Mo se tagata fa'atasi e feiloa'i mo le taimi muamua, e fa'atino se su'esu'ega e tasi i le taimi e lafo ai le fe'au, e lē sili atu i le 2.5 sekone; afai e le maua se tali, e avea le fe'au ma le masani (classical), o le amio lea na iai a'o le'i tu'uina atu le post-quantum, ae lē o se ituaiga fa'aletonu fou.

O se i'uga leaga e teuina mo le sefulu minute nai lo le faavavau. O se tagata faaaoga o lo'o feso'ota'i se masini fou, pe suia mai se faatumuiga i se browser-extension i se ki faalokalisi, e mafai ona avea ma tagata e mafai ona faaaogaina le post-quantum i le vaitau o se talanoaga, ma o se "leai" na teuina mo se taimi umi atoa, o le faaauau pea lea o lo latou faaaogaina o le encryption masani i le taimi o lo'o faataalia ai le faasilasilaga.

5.1 Aiseā e leai se fa'ata'itai fa'aititia.

O le fa'ai'uga o le lafoina e toe fa'atatau i se tasi lava fesili:

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

E leai se feutagaiga o le malosiaga, e leai se lisi o faiga o lo'o lagolagoina, ma e leai se vaega e mafai ona tapeina e se tagata faaleagaina ina ia fa'amalosia ai se ala e sili atu ona vaivai. O lo'o taofia le fa'asilasilaga. o le feutagaiga, ma ua faamamafa. O le tulaga o le lē manuia o se faalauiloaga ua aveesea pe taofia, o le a avea le feau ma mea masani — o le tulaga o iai muamua ae o lenei vaega — nai lo le faasitia o se feau faasoliga i se mea e mafai ona faafoliga.

O le liliu fo'i e moni fo'i ma e sili atu ona taua: o se tagata fa'atau o auina atu se hybrid na'o pe a ia teuina se ki, ma o le teuina o le ki o se faamaoniga lea e mafai ai e le tagata mauaina ona fa'aliliuina. E leai se tulaga e lafo ai se fe'au i le vaitau post-quantum i se tasi e le mafai ona faitauina.

6Le fausiaga fa'atauva'a

E lē suia e le Nymchat le NIP-44. E ufiufi lava o ia. O le NIP-44 ciphertext e lē suia o le vaega o totonu, ma e fa'aaogā moli ML-KEM mo se AEAD o luga i lona itu:

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)

E tatau lava ona toe maua sikretu uma e faitau ai le feau: o le vaega o luna e maua ai na'o se NIP-44 ciphertext, ma e mana'omia le ECDH masani e tatala ai. O se tagata faaleagainu quantum o le a fa'aleagaina le secp256k1, o le a maua ai le ki o totonu ae o le a toe feagai pea ma le ML-KEM; o se fa'aleagaina o le ML-KEM e aveese ai le vaega o luna ae tu'u atu ai le NIP-44. O vaega uma e iai lona tulaga faapitoa:

E faia le encapsulation i taimi uma i le savali ta'itasi fou. O le ki ML-KEM a le tagata mauaina e tumau mo se taimi umi, ae o le savali ta'itasi e iai lona ciphertext toa ma o lea e iai se toa. kem_ss. O lena lava e fa'atupu ai le sa'o o le maua mai o le nonce nai lo le faia o lona fa'ata'ita'itāina: ChaCha20-Poly1305 e fa'aleagaina i le toe fa'aaogaina o se (key, nonce) pair, ma o iinei o le key lava ia e fou mo lau o se fe'au, o lea e le mafai ona toe faia se pair.

6.1 Aiseā e tumau ai vaega ia e fa'avasega

O le isi filifiliga o le fa'atasia o na mea fa'alilo e lua i se ki o le talanoaga e tasi ma tu'uina atu lea i le NIP-44:

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

O lenā fausiaga e mautū i le kryptografia. E iai se tasi fa'afitauli i lona fa'avae: e mana'omia ecdh_x, le x-coordinate moni o le fa'asilasilaga o le ECDH, o se mea fa'avae mo le ki — ma se fa'aopoopo i le polokalame (NIP-07) po o se tagia mai i se nofoaga mamao (NIP-46) e le toe foai mai lena tau. E faia le NIP-44 i le itu o le tagata o lo'o fesili atu ma toe foai mai se ciphertext, o le autū lea o le taofia o le ki i se isi nofoaga e le mafai ona o'o atu i ai e le polokalame.

O le fa'aviliuliina o fa'alupelupe o lona uiga o le fa'aleaogaina lea o so'o se fa'alogaina (login) e taofia ai le taga fa'ailoga (identity key) i totonu o se signer, o lona uiga o tagata fa'aaoga fa'aeteete tele, ma e le mafai ona suia e so'o se galuega i le fa'asalinoina o le taga (key derivation). O le fa'atulaga i vaega (layering) e aveese ai le fa'alagolago: o le NIP-44 o le a tumau pea ma maua mai e mea lava e taofia ai le taga fa'ailoga, e aofia ai le signer, ae o le vaega o le KEM o le a fuafuaina mai le kōdu toe fa'afo'i (recovery code) o lo'o iai i le tagata fa'aaoga lava ia. O fa'alogaina a le signer o ni tagata auai masani i le vaitau post-quantum i itu uma e lua.

O le tau o lenei mea o le bandwidth, ma e lē itiiti. O le ML-KEM ciphertext e 1,088 bytes ma o lo'o fa'aopoopo i się isi fe'au, ua fa'atinoina i le base64url-encoding e oo atu i le 1,451 fa'ailoga; o le AEAD i fafo e fa'aopoopo ai se 16-byte Poly1305 tag ma fa'atupula'ia ai le NIP-44 payload o lo'o ufiufi ai i se vaega e tasi i le tolu. O se fe'au e 50 fa'ailoga e tupu mai le 176 bytes i le 1,712, ma se tasi e 2,000 fa'ailoga mai le 2,820 i le 5,238. O le tulaga fa'avae e tusa pali i le 1.5 KB i fe'au ta'itasi e tusa lava po'o le fa'aitiiti o le fe'au, lea o le tau lea o le fa'atinoina o le encapsulation fou i taimi uma nai lo le toe fa'aaogaina o se sekreto e fa'asoa ai.

6.2 Fa'amatalaga e fa'amatala lava ia

Le pq2. O le prefix e fa'atupula'ia ai le fa'atinoina o le fa'aaogāina: e mafai lava ona fa'amatalaina e ia lava, o lea e filifili ai le tagata fa'aaoga le ala e tatala ai (decryption) e ala i le siakiina o le fa'amatalaga (payload) nai lo le fa'alagolago i se tagi pe manatua mea e lagolagoina e le isi tagata. O se faitau e le iloa se prefix e le mafai ona tatala le fa'amatalaga nai lo le faitau sese i ai, ma fa'amatalaga na fa'atautaia a'o le'i mafai e le eseesega lava ona faia le post-quantum, o le a tumau pea le mafai ona faitau i ai e pei o le NIP-44 masani e aunoa ma se suiga.

Tuua fa'alilolilo

O le ML-KEM decapsulation ua fuafuaina ina ia le fa'aletonu lava e tasi: pe a tu'uina atu se ciphertext e le sa'o le fa'atulagaga, e toe fo'i mai e le Fujisaki-Okamoto transform se sekretu pseudo-random e fa'alagolago i se fa'atulagaga (deterministic) nai lo se mea sese (error). O le mea lea, o se ki sese e le fa'aalia lava i le KEM layer — e fa'aalia o se fa'alapa'oti o le HMAC i totonu o le NIP-44, e tutusa lava ma le fa'aalia o se ki masani (classical key) sese. O i latou o lo'o fa'aaogaina (callers) e tutusa lava le va'ai i la'ua ia e lua, o lea e leai se fa'ailoga e mafai ona fa'ailoa ai le ituaiga fa'aletonu. O le mea lea fo'i ua mafai ai ona fa'atino le lisi o filifiliga i le Vaega 9.1: e taumafai le tagata fa'aaoga (client) i kila ki e tasi tusa i latou, ma fa'atagaina le NIP-44 e fa'ailoa po'o fea le ki sa sa'o.

6.3 O vaega lua o le papā o le meaalofa

A NIP-17 fe'au patino o se NIP-59 fa'atofia i le meataaliga: se tala e le'i fa'amaonia, ua fa'atauta'ia i lalo o le ki o le fa'ailoga o le au'uaina (ituaiga 13), ona fa'atofia lea i lalo o se ki e fa'aaogāina na'o le taimi lava e tasi ma faia mo fe'au ta'itasi (ituaiga 1059). I se fa'ailogaina o lo'o taofia ai le ki o le fa'ailoga i luga o le taimi lava e tasi, e fa'atafa'atasi ai e le Nymchat vaega lua, o ia vaega ta'itasi e iai lona lava fa'atogalemuaga.

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
O vaega fa'alilolilo uma e lua o vaega fa'avavau, ma o le vaega ta'itasi e iai lona lava ML-KEM encapsulation. O le vaega i fafo e fa'atatau i se mea fa'alilolilo e fa'aaogāina lava e tasi, ina ia aua ne'i fa'aalia e le fa'aliloliloina le tagata auina atu.

O le fa'amaoniina o le tagata fa'atumuina e maua na'o le vaega i fafo. O le fa'ailoga e saunia e le tagata fa'atumuina e pei o se NIP-44 masani — e le vaai ina ia le polokalame i le ki o loo saunia ai — o lea e le mafai ona fa'atapula'a (hybridized) i luga o lea nofoaga. E leai se a'afiaga lenei i le fa'amalosi o loo mafaufauina: e mafai ona maua le fa'ailoga na'o lava e ala i le 'wrap', ma o le 'wrap' o le mea lea e teuina e se fa'alogoina. O se tagata fa'aleagaina o loo taofi auaunaga fa'alogoina e tatau ona fa'aleagaina le ML-KEM a'o le'i vaaia lava se fa'ailoga e mafai ona fa'amalosi ai.

7Feau fa'atasi ma le aoao se vaega

O le feau a se vaega e lē o se ciphertext e tasi. O le lava plaintext lea e fa'asoa atu i tagata lava ia o le vaega, o le kopi ta'itasi fo'i e fa'atautinatia i le ML-KEM key a le tagata lava ia. O se tagata o le vaega ua uma ona fa'asalalau se kunci, e maua se hybrid wrap; o le tagata ua le'i fa'ia fo'i, e maua se classical wrap.

O lenei e mafua ai se fa'afitauli i le fa'atulagaga o tala lea e sese ai se faiga faigofie. Afai e ō e sefulu tagata o lo'o mauaina se kopi fa'alaupuga, o le fe'au o le e leai valu o le sefulu e puipuia. E mana'omia e se tagata faalavelave se kopi masani o se plaintext e tutusa i mea uma e sefulu, o lea e puipuia le fe'au na'o le afai uma o le kopi.

O le mea lea, o lo'o siaki e le Nymchat le fua o le puipuia o auaunoa i taimi o le fan-out — e mafai ona iloa na'o le numera a'o fausiaina ufiufi — ma o le fa'ailoga o lo'o fa'ailoa mai le “e le mafai ona fa'agata'ia e le quantum i le 8 mai le 10 o tagata” nai lo le fa'apea atu o lo'o puipuia le fe'au. I soo se taimi e leai se numera o iai, lea o le tulaga masani mo se maua feau fa'atasiaga (na'o le au'u e faitau le fa'asalalaga atu), o lo'o fa'ailoa mai e le polokalame le puipuiga e lē atoatoa ae lē o le atoatoa lava. O le fa'amauina o le puipuiga atoatoa e fa'alagolago i le kopi lava o le tagata e maua, o le a avea ma fa'amauaga sese mo le feau i lona lava ia.

7.1 O ā mea e lipotiina e le puipui

O lo'o fa'ailoa e le pu le mea moni e uiga i le fe'au, e lē uiga i le polokalame na auina atu ai:

O le faaiuga e fa'amaumauina pe a fa'amau le fe'au, nai lo le toe su'esu'eina mai mea e fa'ailoa mai e se isi tagata i se taimi mulimuli ane. O fa'amaumauga fa'alilolilo (ciphertext) o lo'o iai nei e lē mafai ona sili atu ona puipui i lo iai nei, ma se feso'ota'iga (interface) e toe fa'aali mai fe'au tuai ona o se fa'asilasilaga fou, o le a fa'amauina ai se mea sese e uiga i bytes i luga o se relay.

O tulafono a le vaega o lo'o i luga e fa'aopoopo i lenei tulafono ae le o le suiina o ai: o se feau a le vaega e puipuia atoatoa na'o lava afai e puipuia kopi a tagata lava ia o le vaega, ma o se feau a le vaega na maua ae e leai se numera o le puipuiga, o le a fa'aalia ai le 'partial'.

8Kopia e fa'asolo atu i ai oe lava

O ni mea e to'atele o mea e teuina e se polokalame o lo'o fa'afiafiaina i le fa'asinomaga a le tagata fa'aaoga: tulaga fa'atulagaina ua fa'afeso'ota'i, le lisi o talanoaga, ki o vaega, ma le fa'aputuaga o fe'au. O nei mea e iai fa'amatalaga tele e uiga i se tagata fa'aaoga nai lo fe'au ta'itasi, o lea, pe a taofi pea i le tulaga masani, o le a avea ai ma mea teuina pito sili ona vaivai tusa lava po'o le fa'alogo fa'apefea lava o fe'au itu lava. O lo'o fa'aaogā le ituaiga fa'avavau (hybrid) tutusa, o lo'o fa'atutuina i le ki ua maua mai i le amataga a le tagata fa'aaoga — ma le tasi fa'ata'itasi o lo'o fa'amatalaina i le Vaega 3.2, o le nymchat-pq-root le vaega lava ia, lea e lē mafai ona tapuni i lalo o se ki lea na'o ia lava e mafai ona faia.

O nei mea faʻaalaala o fea e sili ona tāua ai le fuafuaga. O se vaega o faʻasologa poʻo se lisi i se faʻaputuga e nofo ai i se mea e tele tausaga, lea e tutusa lava ma mea e aumai e se tagata faʻaleagainu e aumai nei faʻamatalaga ina ia faʻaliliuina i lū i le lumanaʻi — e sili atu lona tele nai lo soʻo se feʻau e tasi, lea e lē tumau lava i le mafaufau o le tagata faʻaaoga.

O se fa'atapula'iga e pulea ai le fa'asologa iinei nai lo le ki. O se kopi ua tuuina atu i ai lava le suaga e tatau ona faitauina e uma masini i luga o le akaunt, ina ia faailoa ai masini taatasi le mea e mafai ona tatalaina i le lisi o lo'o iai i lona faasilasilaga, ma o le akaunt na te tusia na o mea e mafai ona faitau e ia uma. O le tusia o se isi mea lava e faamuta ai le mafai ona faaaogāina o ona lava faatulagaga e se masini — le faaletonu faalilolilo lava lea e puavai e Vaega 3.2 e ala i isi auala, e sau mai se isi itu.

O se faatapula'a e tatau ona ta'ua

O se masini o lo'o taofia ai le faailoga ae lē o le pitoaga, e lē mafai ona tatala se mea lava ua sili i le ki e maua mai i le pitoaga, e aofia ai lava ona lava faatulagaga. O se i'uga lea ua fa'atulaga muamua, ae lē o se mea ua tu'ua, ma o le mafua'aga lea e iai ai se fa'ailoilo i le Vaega 3.3 mo le fa'afeso'ota'i nai lo le faia o se pitoaga fou: o le pitoaga lona lua e lē mafai ai ona faitauina le 'blob', ae na'o le vaevaeina o le mea o lo'o i ai le ki o le faailoga i ni vaega lua. Se'ia o'o ina fa'afeso'ota'i e le tagata fa'aaoga, o le fa'aauau pea ona galue le masini — e faitau mea o lo'o iai ana ki mo i latou ma lafoina i le tulaga masani.

O se masini o lo'o fa'agaioia se browser extension po'o se remote signer (NIP-46) e leai se nsec e mafai ona fa'avae ai, ae o lo'o iai le recovery code, ma i lalo o le fa'atulagaga o le Vaega 6.1, o le mea lea lava e mana'omia e le vaega post-quantum: o lo'o saunia e le signer le vaega NIP-44 pei ona masani ai, ae o le client e fa'aaoga lava le kī i le vaega o i fafo. O lenei ituaiga login e avea ma sui masani i itu uma lava.

9Liliu

Le epoch O le numera (counter) i le fa'asologa o le mea lea e mafai ai ona suia (rotation) e aunoa ma ni fa'amatalaga fou o le ki. O le fa'atupula'ia o lenei numera e maua ai se lua ki fou mai le pito malosi (root) lava e tasi ma se fa'asilasilaga fou ua toe fa'alauiloa; o isi tagata o lo'o feso'ota'i (peers) e maua ai le ki fou mai le fa'amatalaga e mafai ona sui. O lea, o le suiga e lē mana'omia ai e le tagata fa'aaoga ona toe tusia se mea lava e lua: o le pito malosi e maua lava e tasi mo le fa'ailoga ma o le vaitau (epoch) e faia ai le suiga.

9.1 E teuina vaitau tuai, ma e leai se mea e toe fa'asalaina i se ata fa'alilolilo

E le toe tusia se mea pe a suia se ki. O le tagata fa'aaoga e fa'aputuputu avanoa e faitau ai fa'amatalaga mai le vaitau o loo i ai nei i le vaitau − 3, ina ia mafai lava ona faitau se fe'au na tapuni ae uma lava le suiga o le ki, e fa'aaoga ai le paripaati o le ki sa fa'aaoga i le taimi na lafo ai.

O lea taimi e mafai ai ona saogalemu le faia o suiga: e aunoa atu i ai, o so'o se suiga o le a fa'aletonu ai mea o lo'o fa'atinoina. O mea uma ua mae'a ona tapuni, o le a mafai pea ona faitau mo le taimi o lo'o ola ai le fa'ailoga, auā o se feau e le mafai lagi ona tatala e le tagata fa'aaoga e sili atu lona leaga i lo se mea e le mafai ona fa'aleleia atili lona puipuiga i le taimi ua mavae (Vaega 10.5).

10O ā mea e le puipuiina e lenei

O se tusitusiga e na o le lisiina o mea o lo'o ausia e se fuafuaga, e lē o se fa'amatalaina o se polokalame, ma o le fa'amamafa tele o se uiga o le saogalemu i se feso'ota'iga e sili atu ona leaga nai lo le lē fa'ailoaina. O mea o lo'o i lalo e lē o i totonu o mea o lo'o puipuia e lenei fausiaga.

10.1 O le faavae o se isi faalilolilo lona lua, ma le leiloa o lea e lē toe maua ai.

O le tau moni lenei o le fuafuaga. E le mafai ona ausia le tulaga i le Vaega 2 e tatau ai ona iai se mea e tasi lava e taofia e le tagata fa'aaoga: e le mafai ona toe fausiaina le ki post-quantum e na'o le nsec, auā o le autu lava o le mea lea, e leai se tauauniseluga po'o se isi mea fa'alilolilo e mafai ona fa'aalia ai. Afai e leai se masini o lo'o taofi le "root" ma e le mafai ona tatala ni tasi o le "wraps" mai le Vaega 3.2, o fa'amatalaga ua fa'atonuina i le ki e maua mai i le "root" e le mafai ona toe maua. E leai se escrow ma e fa'atulaga malosi lava e leai se pulega e mafai ona taofi se mea.

O le lafoina manuai o le ala lava e tasi, e sili atu lona manino nai lo le faitau tonu muamua. O se tagata fa'aaoga e le tau'uina lava le nympq1… code anywhere e iai na'o se tasi le kopi o ia, i luga o se masini e tasi, ma le leiloa o lea masini e fa'amaumau ai feau post-quantum uma, settings blob ma row o le archive ua fa'apipi'i i ai. O le nsec e le fesoasoani; o le uiga lea e fa'avae ai le fuafuaga atoa.

O so'o se ala fa'aputu e fa'aopoopo i mulimuli ane, e tatau ona ausia le tulaga e tutusa ma le ala fa'atinoina ma le lima. O se tagata fa'aleagaina e taula'i i le ala sili ona taugofie e mafai ona fa'aaogāina, o lea o le tau o se fuafuaga e tutusa ma le tau o lona ala fa'aleleia sili ona vaivai — mo se fa'ata'ita'iga, o se upu fa'ailoga e manatua faigofie, o le a fa'aitiitia ai le tau o le mea atoa i le tau o le upu fa'ailoga lea, ma o le vaega fa'aputu o le mea tonu lea e maua e se tagata fa'aleagaina e fa'aputu nei ma fa'aliliu mulimuli, e fa'aputuina ma fa'atinoina i le taimi lava e malie ai i fafo mai le initaneti.

10.2 Fa'amautūina, e ese mai i le fa'alilolilo

O so'o se faailoga (signature) i le Nostr o le Schnorr lea i luga o le secp256k1, ma e le suia lena iinei. O se tagata faaleagainu o lo'o ia se komipiuta quantum e mafai ona faiga ni faailoga ma faafoliga ai le tagata faaaoga i le taimi lava lena. O le mea e pulea ai e le suiga o ki (hybrid key exchange) o le "sailia nei ma faamatalaina mulimuli ane": o se tagata faaleagainu o lo'o faamaumauina faamatalaga i le aso, e le mafai ona faitauina lena faamatalaga i le lumanai. E le faia ai se feau ina ne'i mafai ona faiga e se tagata faaleagainu o lo'o ia i latou nei le masini. O lenei eseesega ua faaaogā malosi i polokalame — o le faailoga o le tapuni e faailoa ai le faamaonia (authentication), o le puipui e faailoa ai le lilo (confidentiality), ma o ni faailoga eseese lava ona e mafai ona maua e se feau le tasi ae leai le isi.

E fa'atapula'a ai foi le mea e mafai ona folafolau ai i le fa'asilasilaga i le Vaega 4. O le fa'afetaui i le va o se npub ma se ML-KEM key o se fa'ailoga secp256k1, o lea o se tagata fa'ata'ita'i e mafai ona faiga-leaga ia mea, e mafai ona sui i se isi ki a latou lava. O le lilo i o puta fa'ata'ita'i i le lumana'i e lē tutusa ma le fa'amaoni i o puta fa'ata'ita'i.

10.3 Fa'amatalaga fa'avae

O le ufiufiina o meaalofa e fa'alilo ai le tagata auina atu, le tagata mauaina e sili atu i luga o se tasi p o le fa'ailoga, le ituaiga, ma le taimi o le feau o lo'o i totonu. E le ufiufi o lo'o iai se mea ua tupu, lona umi, po'o le taimi na maua ai e se relay. E le va'ava'ai atu i su'esu'ega o le feso'ota'iga i so'o se vaega o lenei fuafuaga.

10.4 Le mesh offline

O le avega Bluetooth mesh a Nymchat o se polokalotike ese lava ma lona lava faatulagaga faamalumalu, ma e lē aofia i lenei galuega. O savali i luga o le mesh o savali masani.

10.5 Feau ua uma ona lafoina

O fa'amauina o fe'au lilo na fai i le taimi na o le tasi po o le lua o loo fa'aaogāina pea metotia fa'asāoloto, e tumau pea i le tulaga fa'asāoloto mo le fa'avavau. Ua uma ona i ai ma e lē mafai ona toe fa'amauina i se auala lilo. O le puipuiga e amata i le fe'au lea ua iai nei le fa'aaogāina o ki "post-quantum" i le lua itu, ae lē o le taimi na amata ai ona fa'agaogaoina lea vaega.

11Filiga isi na mafaufau i ai

FaigaAiseā le le?
Maua mai le ki post-quantum mai le ki fa'ailoga Na fa'aleaogaina. O le fa'atonutonuina o se polokalame lautele i luga o le nsec, ma o se tagata fa'aleagaina quantum e toe maua ai le nsec mai le npub ua fa'asalalauina, o lea, o le fa'aleagaina o le vaega fa'asēmanti e aumaia ai fo'i le vaega post-quantum. Na fa'atonutonuina ai lava so'o se fa'afitauli o le fa'asoa i lenei pepa, ae le puipuia i se tasi lava. Vaega 3.1.
Auina atu le root i isi masini a le tagata fa'aaoga e ala i le NIP-44 Fa'aleleia i le mafuaaga tutusa i ni teuga eseese. O se 'root' e lafoina i lalo o se fa'atulagaga fa'alata e fa'atatau i metotia masani lava, e mafai ona toe maua e so'o se tasi na fa'amaumauina lena fe'au ma toe fa'aleagaina lona ki i se taimi mulimuli ane, o le tagata fa'aleagaina lea o lo'o iai ai le 'root' ina ia taofia ai.
O se pa'aga o ki ML-KEM ua foa'i eseese i luga o masini ta'itasi Fa'amusuia. O masini o le a iai ni ki fa'aumitia eseese, ma o se fa'asilasilaga e mafai ona sui mo taimi uma mo se fa'ailoga e lē mafai ona aofia ai uma. O uo o le a fa'amaumauina i le ki na fa'asalalauina i le taimi mulimuli, ma o isi masini uma o le a lē mafai ona faitauina le i'uga. O se auala autu e tasi mo taimi uma mo se fa'ailoga, e fa'asoloina e ala i auala o le Vaega 3.2, o le mea lea e aloese ai mai lena mea.
Fa'atutuluga le root i lalo o se PIN Na te'ena. O se PIN e fa'alanu numera e 4 e tusa ma le 13 bits i le fa'aleagaina offline i se tagata o lo'o taofia le wrapped row. O le fa'atusatusa atu o lenei mea i ni auala e 256-bit se lua o le a fa'afoliga sese ai le taua o le wrap pito sili ona vaivai.
Faʻaaga le npub ina ia tauave ai ki lua. E lē o se fa'ailoga e mafai ona fa'asoa atu le 1,184 bytes, ma o le a fa'aleagaina ai le fa'agasologa o le faitauina a polokalame Nostr uma o lo'o iai nei o tulaga fa'ailoga (address) o lo'o fa'amatalaina e tusa ma le 32 bytes.
O se auaunaga autū o le diretori Toe faafo'i mai le pulega lea na faia ai le feso'ota'iga ina ia aloese ai i ai. O ai lava e tali i le sailiga, o ia lava e faia le faaiuga po o ai e mafai ona faitau le feau.
Fa'apipi'i le ki i fe'au ta'itasi. E lē fofo se mea: e mana'omia e le tagata lafo le a le tagata mauaina ki a'o le'i lafo le fe'au muamua, lea e mautinoa ai ona e aunoa ma se fe'au muamua e aveina atu ai.
Feutaga'iga o malosiaga i totonu o le lala Fausia ai se avanoa e faaititia ai le tulaga saogalemu. O se tagata faaleagainu e mafai ona aveese se faailoga o le malosiaga, e faamalosia ai le ala masani.
Na'o le post-quantum, e leai se vaega masani Fa'aleaogaina o le tele o tausaga o su'esu'ega o le secp256k1 e sui ai i se fa'avae fou e sili atu ona fou. E fa'aletonu lava se fa'atasia pe afai lava e e lua fa'ata'itai.

12Tutusa o le fa'atinoina

O loo tuuina atu e le Nymchat ni faiga faavae lua e lē faalua o lenei fausiaga — tasi i le JavaScript mo le polokalame i luga o le upega tafa'ilagi, tasi i le Dart mo polokalame telefoni, e aofia ai se ML-KEM-768 ua fausiaina mai le amataga. O ni faiga faavae lua o le mea tutusa e masani lava ona avea ma tulaga faigata, o lea ua faatusatusa le tasi i le tasi nai lo le faalagolago i le tutusa o latou faaiuga.

O le fa'atinoina o le Dart ML-KEM ua fa'amaonia fa'atusitusia ma le ofisiali NIST ACVP faataitai mo tali ua iloa mo ML-KEM-768 (ML-KEM-*-FIPS203) — 25 tulaga faia o ki, 25 encapsulation ma 10 tulaga decapsulation, fa'atinoina o latou lava suite. O ia o vega o lo'o fa'asalalau e le NIST e fa'amaonia ai se fa'atinoina, o lea o le pasia o ia o se fa'amaoniga o lo'o sa'o le port, ae lē na'o se fa'amaoniga o lo'o malie le to'alua o tagata fa'aaoga ia o latou lava. E i luga o lea, se fa'atulagaga fa'aluga o vega fa'ata'itā — seed derivation, encapsulation, ituaiga payload uma lava, ma ni gift wraps atoatoa — e maua mai i le JavaScript reference ma siaki e to'alua suite fa'ata'itā. O le root secret e fa'aopoopo i lea fa'atulagaga nai lo le sui atu i ai: mai le root i le seed, mai le root i le keypair, le public fingerprint a le root, ma le ki na maua, nonce, ma fa'amatalaga e fa'atutusa ma le vaega o lua o ni vega la latou lava, ina ia lē mafai ai ona lē malie le to'alua o tagata fa'aaoga e uiga i se... nympq1… O lona uiga o le kōti e uiga i byte o lo'o sili ai se feau. Afai e lē tutusa le fa'atinoina i le tasi po'o le isi, e faila le fausiaina (build) nai lo le faia o se feau e lē mafai ona tatala e le isi client.

E tatau ona ta'ua le faailoga i luga o nei mea. O le mea lea e fa'ailoa ai i se masini le eseesega o le "o lenei o le pū o lo'u ia" mai le "o lenei o se isi lava," ma o se tagata fa'aaoga e lē mafai ona toe faia le faailoga o se isi tagata fa'aaoga, o le a va'aia ai se fa'amaumauga lelei e pei o se mea e leai lava — ma ona tuli mai, e tusa ai ma le Vaega 3.3, ia faia se isi pū e lua ma vaevae le fa'asinomaga. O se ala lea mo lena lava mafuaaga.

O Nymchat o tatala punaoa i lalo o le AGPL-3.0. O le fatu kryptografia o lo'o fa'amatalaina iinei o le js/nym-crypto.js ma js/modules/pq.js i le web client, ma lib/core/crypto/ ma lib/features/identity/pq_registry.dart i polokalame feavea'i.

Mo le fa'amatalaga pupu'u ma le lē fa'atekinika, va'ai i le la'asaga o le fa'aputuputu o fa'amatalaga e uiga i le fa'atulaga lē faitauina e fa'asiasi i le kwantamu.